------------------------------------------------------------------------ r1982 | plagman | 2011-08-20 14:06:00 -0700 (Sat, 20 Aug 2011) | 7 lines Polymer: 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. ------------------------------------------------------------------------ r1981 | plagman | 2011-08-20 14:05:49 -0700 (Sat, 20 Aug 2011) | 4 lines Polymer: 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. ------------------------------------------------------------------------ r1980 | plagman | 2011-08-20 14:05:38 -0700 (Sat, 20 Aug 2011) | 17 lines Polymer: 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. ------------------------------------------------------------------------ r1979 | plagman | 2011-08-20 14:05:24 -0700 (Sat, 20 Aug 2011) | 4 lines Polymer: 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. ------------------------------------------------------------------------ r1978 | plagman | 2011-08-20 14:05:14 -0700 (Sat, 20 Aug 2011) | 3 lines Polymer: Don't bother fogcalc()ing invisible planes. Doesn't actually matter that much. ------------------------------------------------------------------------ r1977 | plagman | 2011-08-20 14:05:04 -0700 (Sat, 20 Aug 2011) | 8 lines Polymer: handle floor/ceiling translucency. Assigns the right alpha value to floor/ceiling planes if their translucency bits are set and make sure that changing the cstat now triggers an update of the material for editing purposes. This doesn't do anything by itself, but will be needed to correctly draw floor/ceiling masks. ------------------------------------------------------------------------ r1976 | plagman | 2011-08-20 14:04:53 -0700 (Sat, 20 Aug 2011) | 4 lines Polymer: Reorganize main displayrooms loop a bit. When walking the sectors, put more drawing work between queuing and reaping the occlusion queries to potentially make them more efficient. ------------------------------------------------------------------------ r1975 | plagman | 2011-08-20 14:04:42 -0700 (Sat, 20 Aug 2011) | 5 lines Polymer: Correct(er) TROR walking. Enumerate the vertical siblings of each walked sector and check them against the current frustum. No occlusion queries yet, but that should correct any missing sectors until a flaw in that logic is discovered. ------------------------------------------------------------------------ r1974 | plagman | 2011-08-20 14:04:28 -0700 (Sat, 20 Aug 2011) | 4 lines Polymer skeleton cleanup. Reorganize polymer.c a bit to match the order of prototypes from the header, move macros from the middle into the header. ------------------------------------------------------------------------ r1973 | helixhorned | 2011-08-20 04:54:16 -0700 (Sat, 20 Aug 2011) | 1 line disable undo/redo editor feature until I can debug the disappearing sprites ------------------------------------------------------------------------