Build 1982
SVN-
fix external view.
Show details
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.
Show details
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.
Show details
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.
Show details
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.
Show details
Doesn't actually matter that much.