Build 10669
GIT-
Generale
Use lld just for linking
Nickname SVN e nomi Git sono unificati per persona.
Use lld just for linking
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
There are unfortunate duplications of the shared string, but such occurrences don't seem to be that common so far.
Increase mmulti.cpp's MAXPAKSIZE (size of pakbuf in bytes) to 2048.
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.
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
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
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.
Fix playback volumes of "Duke-Tag!" announcement sounds
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.
Fix typo in PR light offset for EXPLOSION2.
Also fixes attempts to read data for sprite no. -1 in case of no parent sprite.
Reset pathsearchmode to the original value after getting mod dir names in the GTK startup window.
Add screentext.con as previously present under source/duke3d/src/lunatic
If 8-bpp mode couldn't be initialized using GL, retry without GL (sdlayer.cpp).
kextract/kgroup: Add call to engineCreateAllocator.
This was required for kgroup's call to Bopendir.
sw/src/game.h: Remove declaration of CommPlayerName,
now conflicting with extern "C" declaration from config.h. The "extern" itself isn't needed, but this is a good chance for removal.
Revert 22d85479a52ea9fd066daf283b3941b934858808.
There are maps which depend on projectiles getting reflected by walls with the picnum of MIRROR.
List SF2 before ALSA in the menu, matching the order in soundcardnames
app_main macOS fix (the #endif used to be followed by OSD_SetLogFile)
add mus_tryformats cvar and menu option to control loading OGG/FLAC replacements for MIDI
Based on MR !175.
Fix a typo in P_DisplayWeapon from port of SHOTGUN_WEAPON case for WW2GI
Ken-Build, Duke3D, SW, mmulti: Replace rand with wrand almost everywhere.
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.
Also add WRANDOM_MAX. This will be used in SW, preventing possible freezes.
Remove Brand macro. It was used just in Ken-Build.
Split krand definitions from build.h to a new header, random.h
Process empty skill name definitions as if they were " ".
Fixes assertion failure with Suburbs TC.
Comment out writes of unused values to k while preparing the skill menu
Fix buffer overflows with parsing out of range strings in CON files
Don't try to open device if it isn't in
the list as returned by ALSADrv_MIDI_ListPorts. Opening a device with ALSA_PortID == 0 might technically be successful even if not present.
Audio / Duke3D: Modify alsa_mididevinfo_t to manage memory use of
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
Revert "sw/src/game.cpp: Use initsingleplayers instead of initmultiplayers"
This reverts commit 4274a6160ce2f64676b79364cf83f185814811f6, i.e., SVN r8667.
Rename danetmode -> networkmode and make it use the same values
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
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.
Remove unused BetaVersion variable
source/build/include: Remove elauxlib.h and elua.h.
Again, it is clear that Helixhorned was spending a lot of time on Lunatic for EDuke32.
Remove LPeg sources
Remove LPeg Windows libraries
Remove LPeg from platform/Windows/lib/instructions.txt
Remove re LPeg-related code