Build 2054
SVN-
apply ART animation to spotlight lightmaps.
SVN handles and Git names are merged into one person.
apply ART animation to spotlight lightmaps.
Discard cached sprite planes on texinvalidate
Sprites would stick with their old material on global palette change. This goes through all prsprites and clobbers their CRCs so that an alternate skin / tint / highpal can be applied accordingly.
account for model flipping for backface culling.
The winding order of faces is different if only flipping about X or Y, and we were unconditionally culling CW faces.
fix leading whitespace in polymer_drawmdsprite
sanitize backface culling
Keep track of which side is getting culled, swap around mirrors, swap around model drawing.
fix leak of GL query objects
In cases where performing occlusion queries for multiple red walls leading to the same sector, we would sometimes leak a number of query objects. This was apparently harmless on NVIDIA drivers, but would leak tons of memory on ATI.
fix sector masks translucency.
The code was using the Polymer-cached version of the sector cstat to determine the translucency of its diffuse material, meaning it would never get it right on the first try; that's what you get for having completely different variables named 's' and 'sec'.
Don't draw back faces of sector masks.
We normally enable backface culling always, but turn it off for two-sided sprites; we need to make sure it's re-enabled after that as sector masks are drawn after.
fix external view.
Some of the ROR code was operating under the assumption that drawasks always correspond to one call of polymer_displarooms(), but that's not necessarily the case; external view draws all sectors from the top polymer_drawrooms(), which was causing crashes. Just ignore the sector mask queues in external view mode, we already don't draw masked walls.
propagate lights across vertical boundaries.
Check all the bunch siblings if we get a floor/ceiling hit and walk them if their own planes hit.
add preliminary support for sector masks.
When walking the sectors in displayrooms, detect floor/sector masks to place them in a mask queue. The queues are allocated on the heap, but a stack pointer is maintained by the displayrooms to allow it to play nice with mirror recursion. Right now the masks are drawn after all of drawmasks is finished; that means you can see sprites and wall masks through sector masks, but not the opposite. There is a slight attempt at blending far to near, but nothing too conclusive yet; that means that in some cases some sector masks won't be visible through other sector masks, but it should work for trivial cases. The next step would be to copy all the drawmasks logic into Polymer and have it (attempt to) properly interleave sector masks where they belong in the blending order.
Don't draw 1-way walls twice.
Previously they would get counted both as 1-way walls for immediate drawing and as mask walls for delayed drawing.
Don't bother fogcalc()ing invisible planes.
Doesn't actually matter that much.