May 2020
-
Add the oangdiff field to USER struct as suggested by Hendricks,
Show details
and use it in MovePoints. This will be used for interpolating the angles of sprites carried by SOs soon.
-
Interpolate the player's bob_z, based on suggestion by Striker.
Show details
Using pp instead of ppp seems to work better with prediction.
-
General
sw/src/network.cpp: Disable most of the packet transmission
Show details
debug messages unless NET_DEBUG_MSGS is defined
-
General
sw/src/draw.cpp: Import from Duke3D the Polymost shadow drawing hacks
-
General
sw/src/network.cpp: Fix waitforeverybody in Master/Slave
Show details
modes. This uses SVN r1135 and r1143 as a reference.
-
General
sw/src/network.cpp: Fix sending of messages in Master/Slave.
Show details
Thanks Dynamo for spotting the bug.
-
General
sw/src/draw.cpp:analyzesprites: Interpolate other players' sprites, in a
Show details
similar manner to what's done in Duke3D (with the addition of the angle). There seem to be some jitters with this, mostly in Master/Slave mode. Decreasing PAKRATE in mmulti.cpp might also increase the frequency of this occuring in Peer-2-Peer mode.
-
General
sw/src/jsector.cpp:JS_DrawMirrors: Make camera oscilation
Show details
less dependent on the frame rate. It would probably be better to update this from the game loop side, like in Duke3D, but it's still better than the preceding situation.
-
Q16.16 refinements in DoPlayerDeathFollowKiller.
-
Add GetDeltaQ16Angle.
-
General
Add PedanticQ16AngleFloor to sw/src/game.h and use it in DoPlayerTurn
-
Remove drive_oangvel from PLAYERstruct. We can use local variables instead.
-
General
SW - Hopefully a better way to decide if getinput should call
Show details
DoPlayerTurn/DoPlayerHorizon while input is tied to the frame rate: Introduce the new player flags PF2_INPUT_CAN_TURN and PF2_INPUT_CAN_AIM. Set PF2_INPUT_CAN_TURN if DoPlayerTurn can be called outside of getinput. Similarly set PF2_INPUT_CAN_AIM if DoPlayerHorizon can be called in this manner. getinput will only call DoPlayerTurn/DoPlayerHorizon if PF2_INPUT_CAN_TURN/PF2_INPUT_CAN_AIM is set. These flags are reset right before the call to the player's current DoPlayerAction function. For one example in which this assists, it's not always the case that DoPlayerDeathFollowKiller may call DoPlayerTurn, even if we assume that pp->input.q16angvel is never zero.
-
Temporarily lock angle and horiz right upon player death
-
General
sw/src/draw.cpp:drawscreen: Don't interpolate while the game is paused
-
General
sw/src/game.cpp: Remove unused ReloadPromptMode variable
-
General
Minor SW cleanup: Have a single declaration of
Show details
GamePaused within game.h. Do the same with ReloadPrompt.
-
Migrate the player's RevolveAng field to Q16.16 format.
Show details
This fixes truncations of q16ang in MovePlayer. One known fixed issue is a minor micro-shaking effect, reproduced while standing on a non-moving SO (e.g., the bus in level 1). The latter is also related to the use of camq16ang. Based in idea on patch from mjr4077au.
-
General
sw/src/draw.cpp:drawscreen: Use GetQ16AngleFromVect for pointing
Show details
at a remote-controlled SO. In case PedanticMode == FALSE, this leads to small improvements with aiming at the car in EXAMPLE.MAP.
-
General
Add GetQ16AngleFromVect wrapper function to sw/src/game.h
-
General
Add gethiq16angle and the getq16angle wrapper to the engine
-
Lock angle and horiz right after teleporting to sprite
-
General
sw/src/draw.cpp:drawscreen: Removing the check that pp->sop_control
Show details
is non-null seems to resolve the newly introduced interpolation issue for looking up/down while controlling a sector object. We can also remove the PF_DEAD test, since game.cpp:getinput should lock any kind of aiming. src/src/game.cpp:getinput: We now, however, need to further lock turning here while controlling a sector object.
-
Ensure the player's rendering angle is in sync with a rotating
Show details
sector. This re-introduces the angle interpolation in drawscreen while sector object interpolation is in use. A side-effect of this is that looking up/down is now less smooth while controlling a sector object (e.g., a turret).
-
General
sw/src/track.cpp:MovePlayer: We also need to update pp->camq16ang here.
Show details
Note that this angle is currently not interpolated, as done for the sector.
-
General
sw/src/track.cpp:MovePlayer: Missed this in preceding interpolation fixes
-
General
sw/src/track.cpp: If interpolation is enabled, also cover
Show details
the SO's midpoint. Fixes aiming at a remote controlled SO.
-
fix buffer overflow crash
-
block horiz input while the player view is returning to center
-
Disable dead code in implementation of undocumented SE 128
Show details
Avoids warning: bitwise or with non-zero value always evaluates to true [-Wtautological-bitwise-compare]
-
Fix redundant sqr/ksqr functions
-
Fix -Wformat warnings
-
General
Link with -pthread when building with clang on Windows
-
Add FIXMATH_FUNC_ATTRS to relevant function definitions
Show details
Avoids warning: missing exception specification [-Wmissing-exception-spec]
-
Change TEXT_* from enums to #defines
Show details
Avoids warning: bitwise operation between different enumeration types is deprecated [-Wdeprecated-enum-enum-conversion]
-
Move ENET_PROTOCOL_COMMAND_FLAG_* to ENetProtocolCommand
Show details
Avoids warning: bitwise operation between different enumeration types is deprecated [-Wdeprecated-enum-enum-conversion]
-
General
debugbreak.h: Use FORCE_INLINE macro instead of attributes
Show details
Avoids warning: 'gnu_inline' attribute without 'extern' in C++ treated as externally available, this changed in Clang 10 [-Wgnu-inline-cpp-without-extern]
-
Avoid C++20 -Wvolatile warning
-
General
Replace deprecated is_pod with is_standard_layout && is_trivial
-
General
compat.h: Add CXXSTD definition for C++20
-
General
Remove GitLab CI/CD configuration
Show details
Synthesis builds are now kicked off with a post-commit hook.
-
remove LIBXMP_CORE_DISABLE_IT preprocessor definition
Show details
This seems to fix memory corruption issues with .xm playback... ???
-
General
engine, audiolib: clean up most SDL_MAJOR_VERSION checks so they're relative to version 2
-
comment the reason SetWindowGrab exists
-
General
Fix trains not moving spawn points with higher indexes than player count.
-
use timerGetPerformanceCounter() instead of timerGetHiTicks() for CON performance profiling
-
move gameHandleEvents() (and therefore system event pumping) back to directly in the main loop
Show details
I'm hoping this is OK now that the issues with SDL and GetClipCursor() have been worked around.
-
bypass SDL_SetWindowGrab on Windows
-
make CON_GETFLORZOFSLOPE and CON_GETCEILZOFSLOPE TROR aware
-
add yax_getflorzofslope() and yax_getceilzofslope()