Build 9292
GIT-
Save console variable settings to voidsw_cvars.cfg
Nickname SVN e nomi Git sono unificati per persona.
Save console variable settings to voidsw_cvars.cfg
Add icns icon to macOS .app bundle
Add GRP scanning for the actual original tdragon.zip
Fix regression causing the last heat seeker to be a normal missile
It was caused by the fix for crashing when firing outside the map. Also port said fix to the bunny rockets.
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
This should hopefully be a better way of fixing the lack of
interpolation of player turning/aiming/movement, while being carried by a sector object, without SO interpolation. This is a continuation of 73a0aa394e906a65633d61f3c749c9b9b7e66aaa and bf31bc2987a3eccd31d343622327bd4ee0f9c5a1, aiming to fix a jitter in case the player is continuously getting pushed by a wall (e.g., on the boat in level 5). Basically, this moves the relevant assignments from track.cpp:MovePlayer and MovePoints to player.cpp:DoPlayerMove. Unless a call to one of these functions has been missed, pushwall and clipmove can be called from player.cpp in the following instances, which should be covered: - Via DoPlayerMove, which is the function getting the fix now. - Via DoPlayerSlide, which is called in the beginning of DoPlayerMove. - Via DoPlayerCurrent when called from DoPlayerCrawl/DoPlayerWade, followed by DoPlayerMove. - Via DoPlayerCurrent when called from DoPlayerDive, followed by DoPlayerMove if the player doesn't stop diving.
Call OSD_DisplayQueued in DemoPlayback,
so OSD commands can have an effect from here
Remove TitleLevel (probably dating back to 1995 prototype builds)
Remove DemoOverride, ScenePlayBack and SceneLevel
Write Numsprites to saved game (and update/dup nearby comment)
Don't interpolate a sector object if the corresponding lasttic value is 0
Add the macro SO_EMPTY and use it instead of
separate checks of the form sop->xmid == INT32_MAX
Remove unused DoubleInitAWE32 variable
Modify getinput to update oq16ang/oq16horiz with the same amount
of change that camq16ang/camq16horiz gets. Such an update is possible after making sure that UpdateInputs (faketimerhandler) is never called from domovethings.
Remove commented out code accessing non-existing variable
Fail gracefully from WarpToArea instead of aborting
Clear the background during cinematics
Add -j<dir> command line parameter
Allow Strafe Left and Right to turn vehicles
Remove pre-release software warning
Add forgotten call to FreeGroupsCache()
Fix warning: function 'MNU_ClearFlags' is not needed and will not be emitted [-Wunneeded-internal-declaration]
Fix music volume slider
Add FOV slider
Remove unused wfe_Clock variable
This hopefully resolves issues with leaving multiplayer games
Interpolate sector objects in non-demo, single player games.
Let's see if this is breaking anything.
Reset the number of interpolations on level load
Let's replace the macro PEDANTIC_MODE with variable PedanticMode
Rename q16avel -> q16angvel and q16horz -> q16aimvel.
While it is understandable that avel and horz came from Duke3D, having both q16horiz and q16horz in the updated SW_PACKET struct can be confusing, and the alternative notation is more consistent with the original struct field names of angvel and aimvel, as well as the differing uses of the name angvel still present in player.cpp.
This is a better place for a slave which quits to set QuitFlag
Use the old interpolation path in drawscreen if player is dead
With the input tied to frame rate, disable aiming while the
player is dead, and also disable horizontal aiming while on a ladder.
Make horiz centering a bit less immediate again
Revert the changes from JFSW commit 7d0deafe81b0ffa30d77cfe242e454f8b4487a1f
related to the definitions of RANDOM_NEG in bunny.cpp, ripper.cpp and ripper2.cpp. Do so in a way that isn't re-introducing compiler warnings. This partially fixes compatibility with demos made for SW 1.2. Additionally, replace the 3 separate definitions of RANDOM_NEG with a common one within game.h.
Fix a few memory access errors related to demo support
Make quitting by closing the window, now done via CON_Quit,
a bit more usable in multiplayer, hiding the engine's console.
Modify MenuLevel and RunLevel by using CON_Quit,
toggling MultiPlayQuitFlag on instead of QuitFlag in multiplayer games if a player tries to close the window. Further update MNU_QuitCustom to use CON_Quit. - In RunLevel, this fixes quit of game for all players. - In MenuLevel, this leads to transmit of PACKET_TYPE_MENU_LEVEL_QUIT. However, the work isn't complete, since the game isn't shut down on the peers' sides, leading to possibly undesired side-effects. Currently known issue: - If the master closes the window, the scores won't be shown for the master. Reason is that waitforeverybody will terminate the app.
Add a few calls to handleevents around key press loops. Also check
quitevent in the game, and further call getpackets within StatScreen.
Make sure StatScreen is called around the same time for
all players after level change. This is done by adding calls to getpackets within the BonusScreen and StatScreen while loops. It is related to a change from the DOS versions of 1997. Basically, dosendpackets immediately sends all packets via the commit driver under DOS, while in the mmulti port in use here, sending might be postponed. This was leading to a problem with the game entering waitforeverybody before showing the stats. In particular, it initially attempted to send a PACKET_TYPE_PLAYER_READY message, which could get postponed in the manner described above. In case it received PACKET_TYPE_PLAYER_READY messages from all other peers before the time arrived for sending pending packets, though, waitforeverybody would return, eventually leading to a call to StatScreen/BonusScreen, without sending the pending message until the user in question continued. Other peers would have to wait for the given player to confirm level change before they could see their own stat screens.
Fix a bug in getpackets, making SW's Master-Slave code usable,
including 3+ players sessions.
Do limit Master/Slave support to 2-players sessions.
Thanks to LittleTijn for testing and inspecting.
Comment out function parameters accessed only in commented out code
Mark function parameters as unused in cases we can't easily change
the functions' signatures (often due to being used as callbacks/hooks)
Remove a bunch of unused function parameters
Handle cases in which the result of an expression
with (possible) side-effects is written to an unused var.
Comment out unused vars, which would become
used if previously commented out code was uncommented (including a few instances of uninitialized var reads).
Remove a ton of unused vars
Activate engine compatibility
Don't restart the music when loading a save playing the same track
Add handleevents to end credits
From JFSW commit 0c651743f8371fade0231e9c3206ca25e6ae5269
Fix potential blank 3DR logo
From JFSW commit 18d1c68893693e68d0ce7d41bd1eacbec5655d4f
Fix potential buffer overrun in colormap
From JFSW commit 18d1c68893693e68d0ce7d41bd1eacbec5655d4f