Build 6903
SVN-
General
SVN handles and Git names are merged into one person.
Add "swaparrays" command, which performs a pointer-swap on arrays of the same storage class.
Factor out the parsing of gamearray names.
Remix resizearray in the following ways:
Make only one allocation instead of two. Calculate array byte sizes in a way compatible with GAMEARRAY_BOOLEAN. Clear the expanded part of grown arrays using correct counts for non-int32 sizes. Support resizing an array to 0 to free it.
Implement the copy command for GAMEARRAY_BOOLEAN.
Fix two regressions completely breaking the correctness of the copy command, introduced in r6343.
Ensure that anywhere the def parser takes a tilenum or palnum accepts defined tokens in addition to integer literals, if it doesn't already.
Affects fogpal, nofloorpalrange, setuptilerange, dummytilerange, undefinetilerange, definemodelframe, definevoxeltiles, texhitscanrange, nofullbrightrange, and light.
Revert r6526 and r6527. This restores the longstanding behavior of the killit command, and setting sprites' xrepeat to zero, to not actually delete sprites unless their statnum is STAT_ACTOR or STAT_MISC. Be sure to set a sprite's statnum to one of these statnums if you want it to be deleted.
This should fix the broken E1L1 sector warp in the existing release of the Duke 64 mod, and the Polymer light culling used in HHR.
Slight cosmetic cleanup
Implement graceful playback failure
Fix MIDI playback on non-Windows platforms
Bump the default cache size to 96 MiB.
Disable S_ClearSoundLocks, preventing sounds from being marking purgable, and causing them to get prematurely evicted.
This fixes the absent sound issues in WWII GI.
WWII GI: Remove the hack/approximation for the bazooka display code because one of the general weapon system fixes made it work incorrectly, and also made a direct port of the original code work correctly. Accuracy FTW!
Fix some printf warnings.
WWII GI: Fix the chaingun replacement to always reload even if you continue holding down fire.
WWII GI: Fix the chaingun replacement to not fire in bursts of 3 per fire button press.
WWII GI: Fix mistakes in our version of the weapon display code.
WWII GI: Update the default values of the weapon gamevars to correctly match the original game.
Fix NORM_(SPRITE|WALL|SECTOR) macros to use MAX$1 instead of ARRAY_SIZE, which would fail due to the structs not being statically allocated.
Patch prepared by Striker.
Add spawnceilingglass, spawnwallglass, and spawnwallstainedglass commands.
Patch from Striker.
Add resetplayerflag 8, which mandates reload and not savegame load in single player.
MIDI/Windows: Immediately MPU_Init after MPU_Reset so that MIDI_Reset can take effect.
MIDI/Windows: Return early from MPU_Init if MPU_Reset was not previously called to shut the MPU down.
Allow component cflags to override global CWARNS for clang-tools rule.
Update glad to 0.1.18a0
Don't apply weapon shade interpolation to the shrinker/expander crystal at all.
Fix build
Add EVENT_DAMAGESPRITE, EVENT_POSTDAMAGESPRITE, EVENT_DAMAGEWALL, EVENT_DAMAGECEILING, and EVENT_DAMAGEFLOOR.
In these events, THISACTOR is the projectile (or source of damage), and RETURN is the sprite/wall/sector affected. Set RETURN to -1 to cancel any hardcoded effects. ud.return 1 through 5 are the parameters passed to hitradius if RADIUSEXPLOSION is the source of the damage. ud.return 1 is -1 otherwise. New tokens "damageeventtile" and "damageeventtilerange" or tiledata[].gameflags & SFLAG_DAMAGEEVENT to enable processing for receivers with corresponding tilenums. CON commands to replicate hardcoded effects (beyond switching tilenums, such as spawning glass) are forthcoming. Use of EVENT_DAMAGEHPLANE is hereby discouraged. Patch from Striker, based on work by Fox.
Fix MSVC build
Instrument the code to build without the struct trackers and disable them when the build options eliminate all uses of them (currently USE_OPENGL=0).
Minor cleanup regarding buildtypes.h
Fix horizoff with q16. This solve the problem with horiz returning to center after standing on a sloped floor.
Patch from Fox.
Add gettiledata/settiledata. Same members as tiledata[] quick access struct. Not all fields writable.
Patch from Striker.
Fix smoothness of q16 mouse aiming
xa.cpp: Tabs to spaces.
xa.cpp: Fix the crackling noise.
xa.cpp: Cleanup that didn't help the crackling noise.
In case a requested quick load upon death cannot be completed, perform a pistol start instead of doing nothing
Improve file loading
Fix save deletion in the load menu not closing the verification prompt appropriately.
While here, also fix the formatting of the save cleanup verification prompt to center vertically since the message was expanded to 3 lines.
Accept "BUILDART" prepended to ART files
Remove " Settings" from user profile folders on Windows
Menu stuff
Add verification screens for deleting saves
"Clean Up Obsolete Saves"
Autosave culling
Change header string to "E32SAVEGAME" (but still accept "EDuke32SAVE")
Improve r6723. Adds EVENT_LASTWEAPON.
Patch from Fox.
Re-allow negative hitags on crack sprites.
Perform CON_SAVE after a frame is drawn
Menu stuff
Avoid filtering seams by drawing custom scrollbars twice, like the scuba gear and chaingun.
Patch from Fox.