Build 1793
SVN-
General
use sprite's cstat bit 2048 for approximately the same effect as spritenoshade; some side-view and other editor tweaks
SVN handles and Git names are merged into one person.
use sprite's cstat bit 2048 for approximately the same effect as spritenoshade; some side-view and other editor tweaks
temporarily bump the additional space after wall[] to 1024 walltypes in the editor; display map corruption status in upper left corner in the corrupt case.
More OSX build fixery and printf/scanf cleanup for 64-bit systems
* Fix a serious logic mistake with checksectorpointer. Previously, a white wall could 'connect' to a red one, leaving the reverse link intact and creating a situation like this: w_new <-> w <-- w_old.
* Have the corruption checker catch this case among a few other new ones. Rename OSD command 'autocorruptcheck' to simply 'corruptcheck' with options 'corruptcheck <seconds>', 'corruptcheck now' and 'corruptcheck tryfix'. * When pasting sector selection into valid player space (releasing AltGr), ask whether a surrounding outer loop should be created since this is probably not always desired.
fix some issues with compilation on mac osx; make B, N, M keys behave the same as KP1, KP2, KP3 when pointing at a polymer light (hack around keyboard strangeness)
make [ and ] keys cycle search matches and Alt-[ and Alt-] cycle corrupt places; make Alt behave the same as Shift when panning/resizing textures in 3D mode to work around dead Shift+KP5+KP2/8 combination.
Fix handling of lotag and friends in generic sprite search. Tags like 65535 which are really (int16_t)(-1) are now also found.
print 'cached tile' messages only from 5 ms up so as not to flood the OSD/log; quit on out of mem in one more place; new tool md2tool to query MD2 model info or change the scale/translate fields so that desired bounds are produced
With the help of Coccinelle, eliminate a few sector[-1] accesses and calculations of §or[-1] (bound checking code not committed).
fix non-Polymer build
Fix clipshape bug reported by DeeperThought. Reason was absent-mindedness while coding :/
fix false save failure message and clean up begindrawing/enddrawing pairs
Too much stuff for one commit.
engine: * sector-like sprite clipping now works with x- xor y-flipped actual sprites mapster32: * corruption checker has been hooked up to loading/saving routines to inform/warn the user * also warn if mouse pointer is over corrupt wall which is shown in pink then: you should not move such a wall! * faster map loading by deferring polymer_loadboard to 3d mode entrance (also removes some 'glGetTexLevelParameteriv returned GL_FALSE' warnings) * more logical maphack light handling, the logic is still a bit dodgy though * some menu and misc. function fixup * redundancy elimination... API: * added consts various for 'char *filename' parameters * loadboard() now accepts bit 4 for flags (formerly 'fromwhere')
have gltexcompr option in mapster32; fix prhighpal.py script
Make mapster32 know r_downsize parameter. For best caching performance, this and glusetexcache should be the same as for the game. Highpalookup script can now generate maps equivalent to the current PHRP tint defs.
A bunch of mutually unrelated updates.
First, there's a new script for the generation of highpalookup images. Python 2.6, NumPy and PIL are required. Next, the map corruption checker has been ported to C. This is so that Mapster32 will be able to take decisions more cleverly based on the corruptness of the map. It also catches a few more issues like inconsistent nextwall/nextsector tags now. Finally, link the executables with --large-address-aware on Windows. This gives a gig more private virtual memory on XP when booting with /3GB. YMMV, but I can play IW2 with Polymer now.
Make deferred polymer model processing not crash; make tile name search case-insensitive.
(ATM broken) support for PNG highpal files; their dimensions must be the same as the TGA ones.
Split MD3 model post-processing into common and Polymer parts and defer the latter if the game is started with a different renderer. This has the benefit of faster startup times and much less memory consumption in that case. When the user switches to Polymer later in-game, all processing is done in one run. I've observed crashes due to the music system if it takes too long, so the it may be unreliable. Also some calloc->malloc where the clearing is unnecessary.
d'oh