Build 3819
SVN-
fix 'zadd' DEF token handling. (Polymer has it right.)
-
General
With DNCOORDS display, print number of sprites currently on the screen.
Show details
Only in debugging builds.
SVN handles and Git names are merged into one person.
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.
Fix model HUD weapons not showing in Polymer, introduced in r3717.
do not pass $(STDCPPLIB) to final eduke32/mapster32 linking step.
Fix TARGET sprites used as switches, introduced in r3679.
auto-detect LameDuke's PALETTE.DAT and read tables accordingly.
LameDuke's shade table has 32 gradients of shade, like Duke3D. For the translucency table though, only the diagonal + one half is stored because it's symmetric (50/50 translucency).
Automatically execute mapname.cfg at map load time. This allows different maps in mods to have different rendering settings (shadescale, etc). This is not currently suitable for standalone user maps as there's no functionality to reset such cvars back to default at the next map load (so, if using this in a mod, every map needs to have a cfg).
a.m32: add user variable 'override_basepal'.
Set it to >=0 to override the base palette (water, slime, ...) in 3D mode. This can be useful to navigate Lameduke's underwater sections, since its LOOKUP.DAT only contains 8 lookup tables, but no other *base* palettes. Consequently, base palettes >=1 will make the whole screen black when Lameduke's LOOKUP.DAT is loaded into EDuke32 or Mapster32.
Classic drawmasks(): if sprite is on other side of maskwall, always draw it first.
This fixes the bug reported here: http://forums.duke4.net/topic/5340-bug-with-masked-walls/page__view__findpost__p__123233 But I haven't checked the change for any adverse effects.
engine.c: stylistic tweaks of drawmasks().
in tsprite access, fix checking min/max/RO; tweak RESPAWN preview.
This fixes RESPAWN preview wrongly clamping the previewed tsprite z coords to [-524288 .. 524288] (x/y limits). Also, make the previewed tsprites be 33% translucent with the option of 66% translucency by setting 'showrespawn_fulltrans' to 1 in a.m32.
in quick tile selection [G], if tile is nonexistent, revert it.
tweak the 'loaded map' message a bit.
- colorize the trailing part if there is corruption or (new) if sprites were removed - also corrupt-check when loading <V7 map - move start{pos,ang,sectnum} to build.c - remove pointless ...[].extra = -1 before loading map, scantoasc*[] comment
Mask the seam that shows up when drawing the scuba HUD overlay in OpenGL by drawing SCUBAMASK 3 times... once at the left position + 1, and then at the proper left and right positions. It's definitely a hack, but at least it lives on the game side of things.