Ralphis
IDL Founder

Posts: 8692
Registered: 09-02 |
Pardon my ignorance as I'm no programmer, but I will do my best to explain the situation as I understand it.
I asked Randy two years ago: "Are the slopes in 1.23 from Build?"
He replied:
The slopes themselves were (and still are) entirely my own code. The part that's from Build is the wall boundary calculations. The way Doom did it was too imprecise for any useful sloping, so I was in the process of rewriting it to use the standard perspective divide equations, then Build's source was released, and I saw I was going in the same direction as it, so I just used its code to save myself some time. I don't think I ever released anything with slopes but without Build code, however, and thanks to Seagate's crappy firmware, I no longer have any archived source code beyond what's already on available from zdoom.org/files, so here's a list of Build-touched functions (in the current release; some of them, I'm sure, aren't present in 1.23):
*R_AddLine: Everything before
code: backsector = line->backsector
*R_RenderDecal: Uses the same projection code as R_AddLine. It's just standard perspective divide stuff, so anything you rewrote it with would probably look like basically the same thing.
*wallscan/maskwallscan/transmaskwallscan: multicolumn rasterizers straight from Build
*OWallMost/WallMost: calculate top and bottom edges of walls, also straight from build
*PrepWall/PrepLWall: calculate texture coordinates and scales along a wall, for use with wallscan
*a.asm: everything in here (probably called a.nas in 1.23)
There might be others, but I'm pretty sure that's all of it. The wallscan prep routines are basically all for splitting up R_RenderSegLoop so that it can draw four columns at a time instead of just one, which can be significantly faster depending on your processor's cache. You could remove those and go back to the old R_RenderSegLoop without affecting slopes, but there will be a significant performance hit.
Long story short: I'm trying help search for a possible way to get slopes implemented in Odamex sometime in the future while using code that is compatible with its license.
Last edited by Ralphis on 08-05-11 at 17:54
|