Build 4873
SVN-
General
engine.c: fix clipmove() against floor-aligned sprites.
Show details
Introduced in r3207. Oops.
SVN handles and Git names are merged into one person.
engine.c: fix clipmove() against floor-aligned sprites.
Introduced in r3207. Oops.
sounds.c: don't crash S_PlayMusic() if passed null pointer for 'fn'.
This may happen if no title/end music is defined from CON. Thanks to Zaxtor for the bug report.
Fix the Screen Size slider so that it works properly after the screen size has been modified in-game with [-]/[+].
Fix selecting "None" for Anisotropy.
Fix opening a MenuEntryOptionList when the option's value is "Custom".
Fix playing end-of-episode ANMs.
fix 'writearraytofile' for 64-bit platforms.
Tweak the behavior of viewscreens to what is more logical IMO.
- At a given time, at most one viewscreen may display TILE_VIEWSCR, namely that one which is g_curViewscreen - sync kinds of distance to compare against VIEWSCREEN_ACTIVE_DISTANCE (was Manhattan vs. dist(), now both the latter) - fix resetting to VIEWSCREEN tile when player is greater from it than that distance. When the player is closer to it again, it is *not* reset to TILE_VIEWSCR. - more sync'd g_curViewscreen and sprite[i].yvel (for 'i' being the viewscreen sprite) Note: in a multiplayer context, this needs to be thought about once more.
In C-CON build, prevent leak of gamevar/gamearray labels on savegame loading.
Also, rewrite the loops in Gv_Free() and Gv_Clear() in the plain fashion so that they are correct even if the number of gamearrays exceeds the number of gamevars.
cache1d.c: Revert changes in r4665 unrelated to unrolling, fixing oob write.
Specifically, we must make sure that dasizeof <= LZWSIZE (or so) in c1d_{read,write}_compressed() (what the assertion in the last commit was about, and is now redundant). This fixes saving of e.g. large gamearrays with the C-CON build. Bump BYTEVERSION. An alternative for setting dasizeof to 1 would be to factor it and keep dividing as long as it's > LZWSIZE.
include wall[].ypanning in wall invalidation logic.
Fixes bug reported here: http://forums.duke4.net/topic/1348-mapster32-problems-and-bugs/page__view__findpost__p__213759
Bump MAXJOYAXES to 9 to avoid menu corruption, and fix _functio.h, CONFIG_FunctionNameToNum, CONFIG_AnalogNameToNum, so that this does not crash.
Fix the MAXJOYBUTTONS discrepancy between _control.h and gamedefs.h.
Fix "bright red" player color.
Add a custom exception handler that saves the crash information to the log and directs the user to submit it to us. DONT_BUILD.
Work around a performance regression caused by r4080. DONT_BUILD.
show on-screen errors even in passive menu; fix '(display)rand*' for large values.
Also, some minor style cleanup in game.c. DONT_BUILD.
fix handling of 'remappal' attribute for 'makepalookup'.
Fix build. DONT_BUILD.
Fix building with `make -B`. (`make veryclean` is now obsolete.) DONT_BUILD.
Fix building the Build Tools. DONT_BUILD.
Fix the previous commit. DONT_BUILD.
voxmodel.c: fix Polymost rendering of voxels.
This reverts/corrects two semantic changes of r4639 as far as what is now voxmodel.c (formerly part of mdsprite.c) is concerned. One correction ends up having no effect (m->bscale is always 1.f for voxel models, as far as I can see), but is the proper rewrite. Also, in osdcmds.c:registerosdcommands(), tweak two help strings.
fix tilesizx[]/tilesizy[] access. Can also 'copy' from them.
M32Script cleanup. Fixes at least one non-minor and one minor bug.
fix actor[] and player[] indexing after LuaJIT bugfix 66515a054c0826ce.
astub.c: revert portions of r4763, fixing display of some "member edit" dialogs.
Specifically, this fixes edit lines for 2 members, e.g. "(X,Y)pan".
gamevars.c: don't leak memory in Gv_NewArray(). DONT_BUILD.
Fix USE_OPENGL=0 build error in r4779.
Fix build on platforms not magically #defining UNREFERENCED_PARAMETER. DONT_BUILD.
Fix EVENT_ANIMATESPRITES.
Fix warnings with VS2013 update 4. DONT_BUILD.
Fix names of savegames. DONT_BUILD.
Fix displaying a savegame preview shot when in OpenGL and/or when the selected slot is empty. DONT_BUILD.
Menu structure revision. Structs reordered to eliminate slop. MenuGroup_t eliminated. MenuPos_t split into MenuMenuFormat_t and MenuEntryFormat_t. DROIDMENU build fixed. DONT_BUILD.
Fix the crash in the ASM relating to the dynamic allocation of ylookup.
Fix mousewheel under SDL 1.2. DONT_BUILD.
Fix POLYMER=0 GTK C++ build. DONT_BUILD.
Fix warnings and errors related to the banners. DONT_BUILD.
Fix C/GTK2/SDL1.2 build. DONT_BUILD.
astub.c: fix warnings with CPLUSPLUS=1 related to forgotten TrackerCast().
Fix taking over floor pal in the unlikely event that no fog pals are defined.
This DOES NOT fix the more complex issue discussed at the forums.
Fix USE_OPENGL=0 build.
Fix crash using INTERNAL DEFAULTS after CON error when CON modules were given.
demote wall check "corruptions" introduced in r4569 to level 2.
The winding of a loop -- with clockdir() -- is determined by examining the two line segments spanned between the points following a leftmost point of the loop. If the loop contains a leftmost point that belongs to the "right" side (as can happen with sliding door constructions), there's a chance that an outer loop is misclassified.
introduce two signed integer types, use in engine.c and a-c.c.
They classify former uses of int64_t into two classes: - coord_t: those that represent coordinates and need 64-bit precision for proper functioning with large values - inthi_t: those that were added for e.g. casts merely to prevent undefined behavior on overflow DONT_BUILD.
Amend r4378 to hopefully make "stuck in water" fix work properly.
NOTE: lizmen may walk on water. I don't yet know why.
fix a crash when m32_settings.cfg contains video setting.
Such as "vid_gamma". In that case, setbrightness() would have been called without basepaltableptr having been initialized. The fix is by moving the preparational setbasepaltable() call from ExtPostStartupWindow() to ExtInit(), just before the OSD command dispatching.
fix possible integer overflow in loopinside().
This could happen when building outside the "classic" grid limits and would then lead to e.g. incorrect loop assignment on sector splitting. Bug reported by MetHy.
game.c: fix -game_dir and -j by moving G_ExtInit() after G_CheckCommandLine().
prototypical checker for wall loops, enabled partially.
Inspired by http://forums.duke4.net/topic/7506-tror-question/page__view__findpost__p__199151 the corruption checker now checks for certain conditions of the loops of each sector. Recall that CW loops are outer and CCW loops are inner. - If a sector has no or more than one outer loop, count that as corruption (level 4 and 3, respectively). - (Disabled) For sectors with exactly one outer loop, check that all inner ones are inside it. This is currently not compiled due to an asymmetry of loopinside() for degenerate cases, similar to pre-r3898 inside().
A couple of Lunatic updates. DONT_BUILD.
- LunaCON: support for setting userdef[].m_volume_number, getting .last_level - bump con_lang.MAXEVENTS - fix compilation of astub.c
Fix MSVC build.
DONT_BUILD.
Fix C++ -Woverflow warnings in KenBuild.
DONT_BUILD.
Fix Synthesis (at least partially).
Re-add $(abspath ...) wrapping to libdirs to try and fix Synthesis.
Three Mac patches from rhoenie:
-sdlayer: Apple and GTK are not mutually exclusive. -Makefile.common: Specify WITHOUT_GTK?=1 by default. -Makefile: Limit linking with the QuickTime framework to OS X 10.6 and below. One fix from me: -osxbuild.sh: Fix building tools.
Apply unpackssi_64bit_fix.patch from Gentoo Linux, with modifications.
Lunatic fixes:
1 compiler error. 2 compiler warnings. 1 runtime warning. Note that at this time, CPLUSPLUS=1 LUNATIC=1 fails to build due to C++ function mangling, and Win64 Lunatic crashes. DONT_BUILD.