December 2021
-
fix use of value before validation in polymer_updatewall()
-
prevent potential deferencing of null ptr
-
this sort of type punning isn't necessary anymore
-
update TinySoundFont to e86d986ed6ccb93b4ee41d2de656c49c721b18db
-
fix copy/paste error in screentextRender()
Show details
For some reason, this error didn't propagate into screentextGetSize().
-
optimize modulo operations out of a few common OPL3 emulator functions
-
sort opl3_slot struct by member size
-
only fix16_to_int the player's angle once when throwing pipebombs or placing tripbombs
-
merge identical cases in switch
-
any compiler worth half a shit will optimize this away but I want the static analyzer to shut up about calling strlen within a loop
-
promote globalypanning to type of globalzd before shift
-
fix copy/paste error
-
consolidate identical cases in softsurface_blitBuffer() switch statement
-
General
This check wasn't doing anything
-
prevent leak of address of object on stack in polymost_dorotatespritemodel()
-
C++11 syntax for default constructors in vectormath lib
-
General
GetWindowLong -> GetWindowLongPtr
-
add SDL_STATIC so Fury can static link SDL on Linux, but not any of its dependencies or other required libraries
-
fix potential crash in polymost_fillpolygon()
-
no need to set initDone twice
-
fix faulty logic in OSD_SetLogFile()
-
these conditions are already checked above
-
fix undefined behavior
-
fix accidental use of initprintf() instead of buildprint()
-
fix console debug output when loading hightile textures and model skins takes too long
-
remove dead code branch
-
wow I'm dumb sometimes
-
fix possible file handle leak in osdcmd_artdump()
-
Only attempt to switch subweapon if we actually have the weapon
Show details
This fixes a bug in World Tour where trying to switch to the flamethrower while the current weapon is the freezer, and you have flamethrower ammo but not the actual weapon itself, then this instead locks the weapon key, preventing you from switching back to the freezer from other weapons. This bug also affected the Shrinker, but only if CON code changes the 'gotweapon 11' value to 0 after the player obtains the weapon.
-
Remove the 'previousboardfilename' mapart hack
Show details
This was a bandaid that prevented repeatedly loading the same mapart when loading savegames. This meant having to constantly update the buffer whenever clearing mapart, which is undesirable. Fixes mapart not reloading after quitting to title, or ending an episode and then loading a savegame.
-
use FX_GetPosition() in S_GetSlot() to take the age of a voice into account when selecting a voice to cancel when attempting to play more than MAXSOUNDINSTANCES of a single sound simultaneously
-
basic MV_GetPosition() support for FMT_VOC/FMT_WAV
-
move a debug assertion
-
bump GL version to 3.0, drop GLES APIs since we don't use them
-
fix crash trying to play negative sound indexes from mistagged switches
-
tiny polymost optimization; swap 4 floating point divisions for multiplications in polymost_bindPth()
-
Reset all actor vars in prelevel() regardless of the sprite's statnum
Show details
Previously, only sprites with statnum 0 would have their per-actor variables reset to the default on map load. This meant that sprites with statnums that were pre-defined in the map would inherit the actor var values of the sprites with corresponding spriteNums from the previous map. Additionally, the per-actor var reset is now performed before EVENT_PRELEVEL, meaning that any changes to actorvar that occur in this event will now persist. Previously, altering actor vars for sprites with statnum 0 in this event would not have any effect, as they would be reset to their defaults afterwards.
-
Disable Rumble menu item if no controller found
-
fix more stupid errors in b6740a7b32d352e6d71a5be0bc118f381599933e
-
Prevent segfaults when no sounds are defined.
-
Add sanity checking to CON decimals, hex constants and labels
Show details
* Scripts no longer compile if a hex constant is malformed (e.g. 0x, 0xz) * Compiler will now warn if a decimal or hex constant isn't terminated in a sane manner. (example: digit is followed by letters: "100ab") * Compiler will now warn if a label starts with digits. This is done to prevent ambiguity between integer constants and actual labels.
November 2021
-
fix dumbass GL state oversights
-
fix stupid copy/paste error in b6740a7b32d352e6d71a5be0bc118f381599933e
-
WIP controller force feedback (rumble) support
Show details
Currently hard-coded with no real customization; algorithm and range of values will certainly change but the current implementation attempts to automatically discern appropriate force feedback values based on the potential damage inflicted by projectiles the player fires, events occurring in the map such as explosions and earthquakes, and on the damage the player receives. A future commit will likely contain a way to send the force feedback impulses from CON.
-
work on controller features
-
fix oversight in current A_RadiusDamage() implementation that allowed a sprite to inflict radius damage on itself
-
fix animvpx
-
unify some code duplication between gloadtile_hi() and mdloadskin()
-
update to 7d44011c7d450488e6ab695d09eb959f7d38414b
Show details
No functional changes here.
-
fix Fury build