Build 3797
SVN-
Generale
Test commit from SVN since I may have bricked my local git clone. (r3796 doesn't show up as SVN-committed for me, partial commit?) The change itself is a very small tweak in m32help.hlp.
Nickname SVN e nomi Git sono unificati per persona.
Test commit from SVN since I may have bricked my local git clone. (r3796 doesn't show up as SVN-committed for me, partial commit?) The change itself is a very small tweak in m32help.hlp.
prototypical gamevar serialization, currently very CON-centric.
initialize SPRITE_HARDCODED_BADGUY on Lua state recreation, too.
partially implement {save,load}mapstate CON commands.
What is missing is saving and restoring per-player and per-actor gamevars. Also add a test CON mutator 'mapstate.con'.
allow desktop-sized windowed modes, add 1680x1050 to defaults list.
Make G_{Save,Restore}MapState() take no input arguments.
Instead, MapInfo[ud.volume_number*MAXLEVELS+ud.level_number] is accessed inside these functions.
Remove redundant checks for some map state function uses.
Also, prettify G_FreeMapState(), remove some duplicate function decls and resurrect 'savestate' and 'restorestate' OSD commands for the debug build.
fix Lua->CON line translation by recreating the line info, too.
conditionally compile out more code in savegame/gamevars.[ch].
Also, make the savegame major version 2 in the Lunatic build.
accept any number of *.lua modules on the command line.
There's no option letter for loading them, and the extension is checked case sensitively. Lua modules are loaded after CON translated to Lua. Also remove -testlua option.
Fix signed/unsigned comparison warnings and mismatched format char warning.
fix randgen module after md4 removal, run DEFS_BC_SIZE cmd only once.
Sanitize hard coded render mode numbers... replace all references to rendmode 0, 3, 4, etc with proper REND_CLASSIC, REND_POLYMOST, REND_POLYMER labels.
Alter cvar system to fill the cvar name into the description line automatically, and remove the cvar name from the descriptions for all cvars
Unify glow and detail texture setup between polymost and mdsprite
Some further texcache refactoring. Removes all of the texcache globals and shoves them into a struct for easy management.
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.)
make flipping closer to classic.
This fixes cases A and B in test_tileoffsets.map.
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.
Fix two possible signed left shift overflows.
texcache.c: use Bfilelength(), fixing Linux build.
remove old gamevar/serialization code.
Lunatic rotatesprite: disallow FULL16 coordinates since Lua numbers are FP.
Promote pr_customaspect to double from float to match the array of predefined aspect ratios that's in the menu
Fix a warning and uncomment something I accidentally left commented during testing
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.
Properly handle shading models with traditional fog when r_usetileshades is also enabled.
Rename gltexinvalidateall to gltexinvalidatetype and add an enum for the two currently accepted values, INVALIDATE_ALL and INVALIDATE_ART
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)
Remove deleted md4 library related files from the Visual Studio project
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
Classic rotatesprite: fix second assertion failure documented in prev. commit.
Classic rotatesprite: add assertion failing with DNF mod, comment another.
Among other things, rotatesprite doesn't cope well with large zoom values. Two assertions are added that guard qinterpolatedown16short() calls: in the failing case, they would write outside the destination arrays. Another (existing) assertion is commented a little and like for the first, instructions are given how to reproduce its failure.
sync rotatesprite* with CON.
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.
premap.c: remove a missed unused variable.
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.
Ignore ART mapping for TILE_ANIM, which is dynamically populated by the game
during ANM playback.
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)
Revert to spherical shading; it's not like you could look up in classic anyway.
Fix interaction between ART mapping and lighting.
Finish Polymer cancer mode and enable by default.
TODO: figure out wtf is wrong with rotatesprite, linear filtering.
reading of map-text prototype.
Also fixes a couple of oversights (introduced) with the saving.
Factor out four instances of duplicate code into append_ext_UNSAFE().
move readintostr() into defs_common.lua, fix an oversight.
first prototype of map-text saving.
make on-disk gamearray footer contain non-printable chars.
Also, allow writing userdefs[].auto_run.
MSVC build fix
New Polymer feature: shitty mode.
Fix Makefile fuckery.