Build 3875
SVN-
clean up 'geom' module, make walls readable with pseudo-member 'z'.
SVN handles and Git names are merged into one person.
clean up 'geom' module, make walls readable with pseudo-member 'z'.
Fix one-sided y-flipped floor-aligned sprites, introduced in r3776.
Add a test case in test_tileoffsets.map.
Allow negating an action's viewtype 5 or 7, meaning to x-flip the shown sprite.
tweak sector.STAT.* and other names a little.
sector[].ceiling/.floor gets a reference to a ceiling-or-floor struct.
Also, make sector[].*stat a bitint type. Now, a piece of code could look like this: local sec = sector[i] local ceil = sec.ceiling ceil.statx:flip(sector.STAT.SMOOSH)
Lunatic/classic: in TROR maps (V10), enable non-power-of-two wall drawing.
Also, fix clearing a bunch in new-format-map (=Lunatic) build.
allow setting first walls of TROR sectors independently.
In 3D mode, Alt+F now only attempts to set the first wall of the aimed at wall, not collecting upper/lower neighbors. For this, press Shift+Alt+F. In 2D mode, they are always collected.
Make deletion of an ambient sound MUSICANDSFX sprite stop its sound again.
Add a test case source/lunatic/test/delmusicsfx.lua.
fix 'zadd' DEF token handling. (Polymer has it right.)
With DNCOORDS display, print number of sprites currently on the screen.
Only in debugging builds.
implement dragpoint, clipmove*; fix gamearray serialization.
don't extern 'clipmovetraceboxnum', add a new func. clipmovex() instead.
The 'x' is for "extended", since its last arg is a switch of whether to disable sliding. Use that from gameexec.c.
For DNCOORDS display, add current sprite count and #inserted sprites / last sec.
Only in debugging builds.
Add -Wall option and sector[].*bunch, warn on some NYI gamevar flags.
fix possible NULL pointer dereference in polymer_getbuildmaterial().
Unify glow and detail texture setup between polymost and mdsprite
when 3D-inserting sprite higher than z extent, position at floor...
... when aiming at the floor.
fix centering of y-flipped wall sprites. (Case D in test_tileoffsets.)
engine.c: add tile offset debugging code guarded by DEBUG_TILEOFFSETS.
Also, update test_tileoffsets.map with a new 'dimension': cstat 128 (sprite centering). It has an issue in Polymer marked with a silver D.
fix floor sprites with y flipping by removing special-case code.
This fixes the case marked with the silver letter C in test_tileoffsets.map. The orientation of the sprites is correct (matches classic) as far as I can see, there are now only problems with translation.
rewrite sprite x/y flipping so that data flow is explicit.
Also, add some defines for sprite cstats to build.h (SPR_*) and use them.
Make the menus look the same in all rendering modes, because the LOADSCREEN tile looks like shit when any kind of palette-based shading is involved. So, now everyone gets the ugly metal looking MENUSCREEN.
Get rid of that old model occlusion checking hack I wrote for Polymost years ago. I actually didn't know this was still in EDuke32... it's one of the worst things I've ever written. :p
A bit more work on the Polymost shade table mode (r_usetileshades)
Add an experimental shading mode to Polymost for .art tiles, in which extra textures are allocated for each shade level based on the classic mode shade tables. Enable with r_usetileshades 1 (disabled by default). This uses a lot of memory and is still very WIP (a lot of the shading is completely wrong at this point).
Also, further refactor texcache code.
Fix issue with Polymer checkbox in startup window, as reported at http://forums.duke4.net/topic/2961-paper-cuts-minor-bugs-and-annoyances/page__view__findpost__p__158208
a.m32: rotatesprite testing.
Variables dt_* are defined. If dt_t (tile number) is >=0 that tile is drawn using 'rotatespritea'.
don't save sector[].wallnum, signal last wall of sector in point2.
make 'corruptcheck tryfix ?' (or '??') not require c. number range.
for some nextwall/nextsector corruptions, suggest making wall white.
Selected by writing e.g. 'corruptcheck tryfix 1-14 ??' in the console. Like with the first alternative, the corruption numbers / range (here, 1-14) must be given.
Mapster32 corruptcheck: on nextsector/nextwall oob, suggest making wall white.
... in the auto-correction. Also, - make two similar corruptions level 5 (wallptr oob, wallptr+wallnum oob). - in drawscreen_drawwall(), do a more strict bound check, not only >=0.
Mapster32 corruptcheck: if some members out of MAX bounds, signal level 5.
Hook ART mapping to rotatesprite.
The visibility calculation relies on the distance, which might not be entirely accurate in rotatesprite, so maybe it'll be too dark in some cases.
Make ART mapping work with any number of shade offsets (eg. BLOOD pal)
Finish Polymer cancer mode and enable by default.
TODO: figure out wtf is wrong with rotatesprite, linear filtering.
New Polymer feature: shitty mode.