February 2026
-
Silence unused variable warnings in `ASSERT` macro
-
Enable `-dp`, `-dr`, `-ddr`, `-dt`, `-de` cmd parameters for demos
-
Fix warning: format string is not a string literal (potentially insecure) [-Wformat-security]
Show details
- Follow-up to
- 954e9b1 — SW: Add template function TerminateWithMsg and wrapper TerminateWithSimpleMsg (Build 10651)
October 2025
-
Fix null pointer dereferences in case of showing inventory bar right before player kill
-
Comment out definition and declaration of unused function _ErrMsg
-
Use TerminateWithMsg in _Assert
-
Use TerminateWithMsg in JS_DrawMirrors
-
Use TerminateWithMsg in JS_PlockError as well
Show details
There are unfortunate duplications of the shared string, but such occurrences don't seem to be that common so far.
-
Cleanup of what was non-RENDERTYPEWIN code
-
Remove not fully ported heap check code and related definitions
-
Remove DEBUG-specific console commands mem, checkheap, dumpheap
-
Replace a few more printf calls, none being compiled, with LOG_F/VLOG_F
-
Replace a few printf calls with uses of LOG_F(ERROR, ...)
Show details
Trailing '\n' characters have been removed again.
-
Do replace multiple calls to TerminateGame+print/wm_msgbox+exit
Show details
These are done using TerminateWithMsg, except for a few instances in which the strings were meant to be printed without formatting, where TerminateWithSimpleMsg is used instead. Trailing '\n' characters have been removed from input strings. For code previously using printf and not wm_msgbox or loguru, this should resolve instances in which the program would abort without relevant logs, at least under specific platforms. Note that printf had its usage under DOS.
-
Add template function TerminateWithMsg and wrapper TerminateWithSimpleMsg
Show details
TerminateWithMsg is going to be used instead of separate sets of calls to TerminateGame, printf/wm_msgbox and exit. It'll use wm_msgbox, not printf (originally used under DOS), and also go through LOG_F. This is an inline function definition using a variadic template, allowing the use of LOG_F and also matching loguru::log. TerminateWithSimpleMsg is a wrapper that allows printing a string without formatting.
-
Move #endif directive to the end of game.h
-
Improve prediction of interpolated bob_z value
Show details
The addition of the "bob_z" field to the PREDICT struct might be unnecessary, technically speaking, but it probably won't hurt to ensure values are synced.
-
Fixed player movement prediction, now actually based on predicted angle
-
Fix switch to double Uzi for multiplayer games upon pick-up of second Uzi
-
Simplify HandleWeaponAutoSwitch usage to go through the DamageData array
-
Fix multiplayer sync errors with the weapon auto-switching toggle
Show details
This also permanently enables weapon auto-switching for PedanticMode. The idea here is that outside of pedantic mode, within multiplayer games, a new bit or more of the inspected player's Flags2 field will be set for the weapon. Afterwards, only for player no. myconnectindex, the function getinput will set loc->bits as if a matching key was pressed for selecting the weapon. loc->bits should be properly synced. Note that each player's structure, including Flags2, is reset within InitNewGame, but not from InitLevel as far as I may tell.
-
Introduce new weapon auto-switch PF2 flags for a follow-up commit
-
Fix voxels introducing glitched sprites in ROR sectors
Show details
- Follow-up to
- 6e6b82d — Use a tspr->clipdist bit to specify legacy voxels instead of tspr->cstat 48 (Build 10380)
December 2024
-
Add `classic` subdirectory to search path when Redux is detected
Show details
SWCR v1.1.9 edits SW.GRP to incorrectly address the issue of invisible Bouncing Betty mines. Fortunately, the copy in the DOSBox installation is unmodified. The true cause of the problem is in the code and VoidSW already fixes it. See-also: e0b7c69d39816718acd54029e7309b4921937b9a See-also: 5d02c8bd5fb4e0c897128cb868472c7e2c34bd2d
-
Handle the absence of voxel and parental lock .txt files correctly
Show details
Avoids showing the user a nonsensical error message and prevents aborting in debug builds.
July 2024
-
Add Quick Save and Quick Load gamefuncs
Show details
See also 9b05319ebd2a018438dd1e8b79d1e347387f065c
June 2024
-
Fix GRP checksumming log messages
March 2024
-
Restore reverb delay to original value on toggle
November 2023
-
Update port credits
September 2023
August 2023
-
Fix regression in 611edc9672272fe651d66734c0448be7695b256d
Show details
If you made saves since then, loading them will likely scramble your cfg settings, but you should not lose any progress at least.
-
Fix screen border tile in Polymer
-
Clean up exit screen code
-
Make some variables and literals related to movefifo unsigned
Show details
Avoids OOB detections by UBSan.
-
Fix maybe-uninitialized warnings
-
Add new alt reverb option for sound menu
-
Search XDG paths for music
May 2023
-
Fix minor warnings
-
Fix warning: 'basepal_' violates the C++ One Definition Rule [-Wodr]
Show details
I don't understand how something in SW's common_game.h could conflict with Duke3D's common_game.h right now, but it did.
-
Fix misleading indentation in MP text chat code
-
Remove unused globals relating to mouse axes
-
Fix warning C4805: '==': unsafe mix of type 'short' and type 'bool' in operation
-
Include config.h from network.cpp for CommPlayerName
-
Remove unnecessary `extern "C"`
July 2022
-
correctly accept a player name on the command line and save to config
February 2022
-
Use static palette data for colmatch
December 2021
-
use CONTROL_SetAnalogAxisSensitivity() instead of CONTROL_SetAnalogAxisScale() for mouse
Show details
I don't think this is perfect but it should be an improvement.