Build 4313
SVN-
Generale
Fix building on MinGW (MinGW-w64 was OK). DONT_BUILD.
Nickname SVN e nomi Git sono unificati per persona.
Fix building on MinGW (MinGW-w64 was OK). DONT_BUILD.
In the C code, rename sprite[].filler to 'blend'.
Also, fix a missed .filler -> g_ambiencePlaying[] rewrite in the editor. In C-CON, 'detail' is kept as alias to C-side (former) .filler / now .blend, but that name is *deprecated*.
factor out polymer_invalidateartmap(), use it in invalidatetile().
This fixes updating the viewscreen in Polymer's ART mapping mode.
Fix yellow keycards
Fix a missing reference to WEAPON_POS_LOWER
engine.c: in calc_bufplc(), cope with negative lwall[] values.
This should fix the crash encountered here: http://forums.duke4.net/topic/1348-mapster32-problems-and-bugs/page__view__findpost__p__184069 a-c.c also gets a new switch macro, DEBUG_WITH_VALGRIND.
sounds.c: do S_MusicVolume() in S_SoundStartup().
This fixes this initialization issue: http://forums.duke4.net/topic/7144-midi-volume-weirdness/
Fix compilation of C++ build, but not starting up yet.
BUILD_LUNATIC.
Get rid of neartag* global variables. LunaCON: fix 'operate'.
Reincarnate RTS sound functionality together with cleaning up related code.
- Make Win+F* also make play and RTS sound, since modern OS's window managers like to eat Alt-F*. (Some Win+F* may be inaccessible too, but together all 10 should hopefully be covered.) - Fix an issue where keys other than F1-F10 were considered as starting an RTS sound and crashing EDuke32 in the process
Fix USE_OPENGL=0 build... again. DONT_BUILD.
Fix respawn operation with monsters off, rewriting G_OperateRespawns().
BUILD_LUNATIC.
Eliminate a memory leak when changing resolutions with SDL_Renderer 8-bit mode.
Fix "the issue where if you hold down a key and enter the console then release it that the key remains held down until you hit it again outside the console".
Introduce support for PlayStation CD-XA audio, a simple ADPCM format.
It's functional, but due to the odd 37.8 KHz nature of the format, I will need to add a resampler to the audiolib to prevent the aliasing artifacts that occur at present. I also hear clicks/pops every so often, but I do not know if a resampler would fix these as well or if they are a separate problem. Note that you cannot directly use the four XA files on the Total Meltdown disc because they each contain eight songs. They would need to be split using a utility I wrote that is outside the scope of this SVN.
Fix a harmless C++ warning. (malloc casting, for those interested)
EDuke32 has me so accustomed to straight C... using a template and pass-by-reference makes my day.
Per-map ART tiles: don't back up or restore reserved tiles.
This prevents a crash and maybe other badnesses when e.g. loading a map with ART tiles, doing something that allocates a reserved tile (such as looking into a viewscreen), then loading another map where the tilesiz* of TILE_VIEWSCR is restored to 0.
fix one error message, make -h/--help display usage.
Actually, right now, any first arg starting with '-' will show the usage.
Fix the startup window freeze under SDL2+Windows when a Yes/No box was supposed to be displayed.
Fix a case where the bonus screen would immediately end with an input press because all code between iterations of the bonus screen would execute in less than 1/120th of a second, not leaving any time for totalclock to increment.
EDuke32. Where our code runs so fast, it breaks old code.
Fix the display of the multiplayer results screen.
Fix USE_OPENGL=0 build. DONT_BUILD.
Lunatic/m32: make Mapster23 actually start stand-alone, oops.
fix setup under Mapster32, remove a few obsolete lines in defs_common.lua.
fix a couple of spelling mistakes in the doc, found using Emacs ispell.
Rewrite and unify the handling of the scrollwheel between layers, fixing it in the editor's 2D mode and tile selector under SDL.
The scrollwheel is unique among PC input because it has no innate "hold length". Previously, the layers gave the mousewheel a fake hold length to allow the not-necessarily-synchronous game/editor code to pick up the input before the layers marked it as "no longer pressed". This passed under Windows, but it didn't slide under SDL. Besides the two problems listed above, it also potentially limited the rate of weapon selection, where scrolling too fast would not register every clicks. [Unrelatedly, this is still the case when you scroll faster than the game's own tickrate, but addressing that would require rewriting input handling to go through a list of "events" for each tic instead of looking at overall pressed/unpressed states.]
fix parsing negated labels, getnumber* with neg. 'max'.
Exposed by this snippet from a.m32: getnumber256 .owner "OWNER (projection picnum): " -MAXTILES Now, Alt+KP2 works as expected in 3D mode.
Really fix the Pause key on Windows/SDL2.
This requires enabling the same workaround as for Linux. Maybe it's not system-dependent at all.
Do not consider system gamearrays for updating from demos.
This generally fixes demo playback. Before, tilesizx[]/tilesizy[] were written into twice as many bytes as needed. Now, don't do that at all.
Fix mouse buttons 4 and 5 on SDL2/Windows.
Fix building stand-alone libcache1d.so.