Build 2063
SVN-
fix stupid typo that broke r2057
Nickname SVN e nomi Git sono unificati per persona.
fix stupid typo that broke r2057
Fix GCC 4.6 out-of-bounds and uninitialized warnings involving bossmove[].
My choice of solution is simply to add an extra set of values duplicating the previous five because doing so would definitely show the user no changes. I could have tinkered with the messy loop where the out-of-bounds references are made but there is no guarantee I could have succeeded or kept compatibility.
remove two instances of duplicate USE_OPENGL preprocessor checks missed by the removal of the POLYMOST definition
move Electric Fence (EFENCE) handling from build/Makefile to Makefile.common
constantly get the textures handle for projective spotlights
Getting the texture handles without requiring invalidation means we can handle ART-animating tilenums without impacting performance too much.
fix horizontal spotlight SEs constantly getting invalidated
Polymer has a hack that snaps horiz values of spotlights between 90 and 110 to 90 and 110 to avoid triggering aliasing artifacts with perfectly horizontal spotlights. Propagate that change all the way to the spotlight SE sprite so that the code won't think that the horiz is always different from the light and mark it invalid each frame.
preliminary support for GL_ARB_debug_output
This won't actually do anything until the a debug bit is added when creating the context, but that requires support for GLX_create_context which SDL doesn't support. I'll add support for WGL_create_context to winlayer in a bit as a stopgap. Also updates our local copy of glext.h with a fresh one from the Khronos registry.
Fix upside-down projective textures
We need to Y-invert the projection texcoords when sampling from the lightmap.
apply ART animation to spotlight lightmaps.
Discard cached sprite planes on texinvalidate
Sprites would stick with their old material on global palette change. This goes through all prsprites and clobbers their CRCs so that an alternate skin / tint / highpal can be applied accordingly.
account for model flipping for backface culling.
The winding order of faces is different if only flipping about X or Y, and we were unconditionally culling CW faces.
fix leading whitespace in polymer_drawmdsprite
fix a stupid copy&paste error that made sector[].ceilingbunch/floorbunch not functioning
fix for the fix
When X- or Y-flipping a selection of highlighted sectors, also handle setting
the nextwall pointers correctly; Add some 'asksave=1' and 'make old-nextwalls invalid'.
Makefile lines for building with libvpx from Macports on OSX
Sanitize drawing sprites at different levels with TROR/classic. This should fix
most problems where sprites appear to be drawn through walls.
Two tweaks to make the precaching more efficient/less redundant in the game.
First, if we're in Polymer, don't precache tinted tiles that have a highpal for that certain pal. Second, don't precache tiles for palnum 251 (the last non-reserved one, which is used as a crosshair pal). Assuming that there are no other tints, this cuts the initial precache time and cache size on disk in half.
lunatic bits and pieces
When inserting a new sprite and determining its picnum by frequency count
of the picnums of all sprites, omit the newly inserted sprite itself!
in 3 planes -> packed format conversion code, group together the
three individual loops and compile the enclosing function at -O3 (-O1 for debugging builds). Now, the time for this conversion ranges from 7 to 18 ms per frame across various tested machines, a clear improvement.
package ebacktrace1.dll, remove backtrace.dll and libi*.dll
Makefile: remove ebacktrace1.dll on 'veryclean' target
backtrace.c: add flags to open() so that the log file is opened user-r/w.
This way, crashlogs will really be appended. Additionally, print a time at the end of each backtrace. winlayer.c: load ebacktrace1.dll instead of the old one Makefile.common: when building with DEBUGANYWAY=1, don't omit frame pointers This will let us get a stack trace for crashes with the release build code.
When searching a nextwall for a white wall after dragging a point,
exclude grayed out walls.
enable VPX support for Windows
Add backtrace.c (the same that was used to build backtrace.dll earlier) to tree
and build our own DLL, now called ebacktrace1.dll. The change consists of breaking the link to the libintl lib and its dependencies, so the backtrace dll is now the only one required.
Add statically linked libvpx to tree, built with gcc-4.5 mingw and
./configure --disable-vp8-encoder --disable-multithread Also add VPX/VP8 headers for an easy build on Windows. Throw in the necessary lines into the Makefile but do not enable VPX support yet.
Fix
http://forums.duke4.net/topic/1348-mapster32-problems-and-bugs/page__st__480 (I think, didn't test it)
First Lunatic development bits.
- protect stat bit 2 when pasting to ceilings or floors
- when pasting to walls or maskwalls, the following user bits are kept now: 4 (top/bottom alignment [O]) 1+64 (blocking, hitscan) 8+256 (x/y-flip) - print '(one-sided)' when pressing Shift + ([B] or [H]) on a wall
sanitize backface culling
Keep track of which side is getting culled, swap around mirrors, swap around model drawing.
fix picking