Build 4882
SVN-
Generale
engine.c: fix clipmove() against upper part of wall-aligned sprites.
Nickname SVN e nomi Git sono unificati per persona.
engine.c: fix clipmove() against upper part of wall-aligned sprites.
game.c: revert changes of r4861 ("consult g_mirrorCount instead of gotpic[]").
always return non-negative values from 'clipmove' and related.
Previously, the C function clipmove() returned negative values when hit a wall (32768+wallnum) or sprite (49152+spritenum) because internally, these values were encoded into a *signed* 16-bit integer. This made no difference to C code using it, since it always proceeded by bit checks, but was inconsistent with documentation on CON 'clipmove' on the wiki. The following commands are affected too, since they use the value returned by clipmove(): 'clipmovenoslide', 'movesprite'. Also, the value of actor[].movflag ('htmovflag' from CON). Also, fix 'clipmove*' in LunaCON and add lunatic/test/checknearwall.con as an example of how to implement a being-close-to-a-wall checker as requested in http://forums.duke4.net/topic/7869-determining-closeness-to-a-wall/
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.