Maggio 2020
-
cleanups and consolidations
Mostra dettagli
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
Mostra dettagli
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
Mostra dettagli
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
Mostra dettagli
This only affected KMT mode, and only on certain system configurations.
-
Fix breaking glass
Mostra dettagli
-
Generale
sw/src/demo.cpp:DemoPlayBack: Add a call to timerUpdateClock, which
Mostra dettagli
is now required. Previously, it would be called from faketimerhandler, which in turn is called from the engine.
-
Generale
sw/src/copysect.cpp: Temporarily disable interpolation of sector object
Mostra dettagli
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
Mostra dettagli
separate checks of the form sop->xmid == INT32_MAX
-
Generale
sw/src/sync.cpp:SOSync: Remove commented out code
-
Remove unused DoubleInitAWE32 variable
-
Modify getinput to update oq16ang/oq16horiz with the same amount
Mostra dettagli
of change that camq16ang/camq16horiz gets. Such an update is possible after making sure that UpdateInputs (faketimerhandler) is never called from domovethings.
-
Generale
sw/src/network.cpp: Remove from UpdateInputs the checks of totalclock
Mostra dettagli
and ready2send and the call to timerUpdateClock, which are now done before calling UpdateInputs itself from RunLevel.
-
Generale
Rename faketimerhandler -> UpdateInputs and keep an empty
Mostra dettagli
faketimerhandler stub in SW. This basically deprecates the usage of faketimerhandler in the game.
-
Generale
sw/src/game.cpp:RunLevel: Call faketimerhandler in a loop, based on code
Mostra dettagli
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
Mostra dettagli
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
Mostra dettagli
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
-
Generale
Allow '.' to stand for 'this host' in the P2P mmulti host sequence
Mostra dettagli
Same as JFBuild commit 274d8d886dde7cac081acf9698348d1168c18852
-
Remove pre-release software warning
-
Generale
Synchronize file extensions for GRP scanning between Duke 3D and SW
Mostra dettagli
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
Mostra dettagli
for now, due to possible jitters. Currently leaving remote-controlled SOs.
-
Call FunctionKeys from getinput only if the latter is called
Mostra dettagli
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
Mostra dettagli
by the player. Make sure looking up/down is still smooth.
-
Disable interpolation of sector objects that
Mostra dettagli
don't move as smooth as possible in multiplayer
-
Generale
Store sector object interpolation data in saved game
-
Generale
Remove the preceding sprite interpolation functions, not needed anymore
-
Let's make use of interpso.*. Still need to do a few more things.
-
Generale
Add Sector Object interpolation menu toggle; Still having no impact.
-
Add the currently-unused interpso.* files, enabling interpolation
Mostra dettagli
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.
Mostra dettagli
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.