Agosto 2026
-
Generale
Use lld just for linking
Ottobre 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
Mostra dettagli
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, ...)
Mostra dettagli
Trailing '\n' characters have been removed again.
-
Do replace multiple calls to TerminateGame+print/wm_msgbox+exit
Mostra dettagli
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
Mostra dettagli
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
-
Increase mmulti.cpp's MAXPAKSIZE (size of pakbuf in bytes) to 2048.
Mostra dettagli
This appeared to fix a long-standing issue, where a relatively high ping between two players (say, about 750ms) could start increasing over time due to accumulated messages not being sent sufficiently fast.
-
Log a warning from mmulti.cpp:dosendpackets in case output pakbuf lacks space for all data.
Mostra dettagli
Do so with a given threshold, i.e., turn off the warning until there are 16 consecutive calls to dosendpackets in which pakbuf has enough space for all data to send.
-
Improve prediction of interpolated bob_z value
Mostra dettagli
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
Mostra dettagli
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
Marzo 2024
-
Fix playback volumes of "Duke-Tag!" announcement sounds
Mostra dettagli
The modified code has an unconditional call to S_PlaySound from S_PlaySound3D with no check of the flag SF_GLOBAL. This is also done with a higher priority than Duke Talk sounds now, which should similarly match DOS v1.5.
- Risolve
- terminx/eduke32#263
- Coautore
- Evan Ramos
Luglio 2023
-
Fix typo in PR light offset for EXPLOSION2.
Mostra dettagli
Also fixes attempts to read data for sprite no. -1 in case of no parent sprite.
Maggio 2023
Ottobre 2022
-
If 8-bpp mode couldn't be initialized using GL, retry without GL (sdlayer.cpp).
-
Generale
kextract/kgroup: Add call to engineCreateAllocator.
Mostra dettagli
This was required for kgroup's call to Bopendir.
Luglio 2022
-
Generale
sw/src/game.h: Remove declaration of CommPlayerName,
Mostra dettagli
now conflicting with extern "C" declaration from config.h. The "extern" itself isn't needed, but this is a good chance for removal.
Aprile 2022
-
Revert 22d85479a52ea9fd066daf283b3941b934858808.
Mostra dettagli
There are maps which depend on projectiles getting reflected by walls with the picnum of MIRROR.
Marzo 2022
-
List SF2 before ALSA in the menu, matching the order in soundcardnames
Gennaio 2022
-
app_main macOS fix (the #endif used to be followed by OSD_SetLogFile)
Novembre 2021
-
add mus_tryformats cvar and menu option to control loading OGG/FLAC replacements for MIDI
Mostra dettagli
Based on MR !175.
Settembre 2021
-
Fix a typo in P_DisplayWeapon from port of SHOTGUN_WEAPON case for WW2GI
-
Generale
Ken-Build, Duke3D, SW, mmulti: Replace rand with wrand almost everywhere.
Mostra dettagli
Outside of 3rd party libraries, remaining uses are the Polymer-specific macro LIGHTRAD2 within Duke3D, system_15bit_rand and vox2poly. Also use WRANDOM_MAX in SW.
-
Add wrand, intended to mimic the behaviors of Watcom C 10.0's rand.
Mostra dettagli
Also add WRANDOM_MAX. This will be used in SW, preventing possible freezes.
-
Generale
Remove Brand macro. It was used just in Ken-Build.
-
Split krand definitions from build.h to a new header, random.h
Marzo 2021
Agosto 2020
-
Don't try to open device if it isn't in
Mostra dettagli
the list as returned by ALSADrv_MIDI_ListPorts. Opening a device with ALSA_PortID == 0 might technically be successful even if not present.
-
Generale
Audio / Duke3D: Modify alsa_mididevinfo_t to manage memory use of
Mostra dettagli
the "name" field on its own. Also make sure that the for loop in Menu_RefreshSoundProperties isn't accessing copies of the objects, including temporary copies of the "name" strings. It could be managed in a better way, but this should be usable for now.
-
Do free driver name strings duplicated using Xstrdup
-
Refuse to initialize if Client:Port pair isn't in the list
-
Fix potential crashes in menu if no ALSA MIDI device is found
Luglio 2020
-
Generale
Revert "sw/src/game.cpp: Use initsingleplayers instead of initmultiplayers"
Mostra dettagli
This reverts commit 4274a6160ce2f64676b79364cf83f185814811f6, i.e., SVN r8667.
-
Rename danetmode -> networkmode and make it use the same values
Mostra dettagli
as in the previously used newer mmulti revision from JFBuild. Also use MMULTI_MODE_MS and MMULTI_MODE_P2P, now a part of an enum.
-
Constify the string params in a few functions
-
If a saved load is loaded at a point which is right after killing
Mostra dettagli
a boss, ensure that FinishTimer and FinishAnim are appropriately updated. This commit bumps GameVersion. Additionally, the set of FinishAnim to 0 in NewLevel had to move to a different location (InitLevelGlobals2), so it doesn't override the value stored in the saved game.