May 2020
-
cleanups and consolidations
Show details
Zeroing of fields when starting playback moved to common functions, revised allocation of memory for FLAC, Vorbis, XA, and XMP, addition of "snd_lazyalloc" cvar to control reusal of memory blocks allocated for Vorbis, XA, and XMP playback, other misc code cleanup.
-
less nasty looking MV_Voices[] allocation
Show details
This removes the +2 bytes at the end of the allocation--I checked out the valgrind_errors.log referenced by the deleted comment and it looks like the issue fixed by 2e2e0e3af3378734c4f0b890c6b4d10253628416. This is the commit to revert if weird audio crashes start happening.
-
further tweak swinging door behavior
Show details
This adds a z position check to the collision check that controls the reversing swinging door behavior.
-
fix poorly written time comparison in vsync handling
Show details
This only affected KMT mode, and only on certain system configurations.
-
Fix breaking glass
Show details
-
General
sw/src/demo.cpp:DemoPlayBack: Add a call to timerUpdateClock, which
Show details
is now required. Previously, it would be called from faketimerhandler, which in turn is called from the engine.
-
General
sw/src/copysect.cpp: Temporarily disable interpolation of sector object
Show details
if any of its sectors is impacted by CopySectorWalls. Fixes a possible flicker with the drill at the end of level 2.
-
Don't interpolate a sector object if the corresponding lasttic value is 0
-
Add the macro SO_EMPTY and use it instead of
Show details
separate checks of the form sop->xmid == INT32_MAX
-
General
sw/src/sync.cpp:SOSync: Remove commented out code
-
Remove unused DoubleInitAWE32 variable
-
Modify getinput to update oq16ang/oq16horiz with the same amount
Show details
of change that camq16ang/camq16horiz gets. Such an update is possible after making sure that UpdateInputs (faketimerhandler) is never called from domovethings.
-
General
sw/src/network.cpp: Remove from UpdateInputs the checks of totalclock
Show details
and ready2send and the call to timerUpdateClock, which are now done before calling UpdateInputs itself from RunLevel.
-
General
Rename faketimerhandler -> UpdateInputs and keep an empty
Show details
faketimerhandler stub in SW. This basically deprecates the usage of faketimerhandler in the game.
-
General
sw/src/game.cpp:RunLevel: Call faketimerhandler in a loop, based on code
Show details
from EDuke32-OldMP. Main difference from EDuke32-OldMP is that this is done even while staying in the menu; Behaviors will otherwise break. We should also call timerUpdateClock() before the loop, especially after removing the call to this function from faketimerhandler soon.
-
Remove commented out code accessing non-existing variable
-
Remove FAKETIMERHANDLER and calls to faketimerhandler via this macro
-
While not exactly a favorite of mine, this fixes the floorz updates
Show details
of the secret rotating pillar in level 1 with SO interpolation. The drill in level 2 is also covered. So far, SetVatorActive seems to be the only place where interpolation of ceiling/floorz may be set, outside of the SO interpolation code.
-
Fail gracefully from WarpToArea instead of aborting
-
Clear the background during cinematics
-
Add -j<dir> command line parameter
-
Fix logical error in ifmatch size, plus cleanup
-
Only pass --high-entropy-va when we pass --dynamicbase
-
this bit of the main loop needs to go
Show details
The logic here is incorrect when considering anything run from within G_DoMoveThings() that may directly trigger drawing.
-
remove weird framejitter shit from FPS limiter because it doesn't do what I wanted it to
-
split chunks of main loop off into Net_DedicatedServerStdin() and G_DrawFrame()
-
fix VS2019 16.6 build error
-
Allow Strafe Left and Right to turn vehicles
-
General
Allow '.' to stand for 'this host' in the P2P mmulti host sequence
Show details
Same as JFBuild commit 274d8d886dde7cac081acf9698348d1168c18852
-
Remove pre-release software warning
-
General
Synchronize file extensions for GRP scanning between Duke 3D and SW
Show details
This way running both from the same folder won't invalidate the cache.
-
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
-
Add "Game Saved" message
-
Fall back gracefully if map mirror tags are not fully correct
-
Instrument Saveables with debug_break
-
Add PanelSpriteFunc values to saveables
-
Afraid that we should disable almost all kinds of SOs in multiplayer
Show details
for now, due to possible jitters. Currently leaving remote-controlled SOs.
-
Call FunctionKeys from getinput only if the latter is called
Show details
from faketimerhandler. This should fix the timing of playing an RTS file's sound and sending the corresponding message.
-
Fix aiming in coop view
-
Don't interpolate a non-remote sector object controlled
Show details
by the player. Make sure looking up/down is still smooth.
-
Disable interpolation of sector objects that
Show details
don't move as smooth as possible in multiplayer
-
General
Store sector object interpolation data in saved game
-
General
Remove the preceding sprite interpolation functions, not needed anymore
-
Let's make use of interpso.*. Still need to do a few more things.
-
General
Add Sector Object interpolation menu toggle; Still having no impact.
-
Add the currently-unused interpso.* files, enabling interpolation
Show details
of sector objects as whole groups of points and sprite angles. The following goals are intended to be achieved with this code: - Make it easy to let the user toggle sector object interpolation. - Interpolate the angles of sprites carried by sector objects. - Use the right amount of samples for interpolating a sector object, depending on the players' locations, as done in the checks within DoSector. Unfortunately, modifying DoSector itself to unconditionally call MoveSectorObjects(sop, synctics) technically changes the way sectors move (in the logical sense), and was found out to make a specifically constructed user map unbeatable. - Make it easy to disable interpolation of a whole sector object in case of a need. This is especially important if such an object is controlled by a player in multiplayer, mostly since this isn't compatible with the way player prediction is working.
-
Add the currently unused InterpolateSO option.
Show details
A known issue, which also applies to existing settings like the voxel toggle, is that its value gets written to the saved game, and when such a game is loaded, the its value gets overwritten by the one in the saved game. Options should move to settings.cfg later, anyway.