Richard C. Gobeille
e2d79b4682
engine: add yax_getflorzofslope() and yax_getceilzofslope()
2020-05-22 17:01:36 +02:00
Richard C. Gobeille
5e677d6089
Duke3d: restore previous version of VM_ASSERT macro for compilers other than MSVC
2020-05-22 17:01:35 +02:00
Richard C. Gobeille
3ab314e95a
engine: make cliptestsector() (used by clipmove(), etc) TROR aware
...
This is intended to help with issues where enemies get stuck in thin TROR layers.
# Conflicts:
# source/build/src/clip.cpp
2020-05-22 17:00:55 +02:00
Richard C. Gobeille
14f3eb17f1
Duke3d: flip CON_USE_COMPUTED_GOTO dispatch macro logic around so the branch is taken less often
2020-05-22 17:00:12 +02:00
Richard C. Gobeille
34126a50be
Duke3d: change random_angle hack in CON_MOVE to match CON_AI
2020-05-22 17:00:11 +02:00
Richard C. Gobeille
b0902f916a
Duke3d: zero player return_to_center when setting horizRecenter to false
2020-05-22 17:00:10 +02:00
Richard C. Gobeille
2d4f6be147
Duke3d: convert several more VM error checks into VM_ASSERT statements
...
# Conflicts:
# source/duke3d/src/gameexec.cpp
2020-05-22 17:00:09 +02:00
Richard C. Gobeille
7fbcab3dc1
Duke3d: VM_ASSERT fix
2020-05-22 16:57:34 +02:00
Richard C. Gobeille
86e2f4ec8a
Revert "Duke3d: set .horizRecenter when handling SK_CENTER_VIEW"
...
This reverts commit ef06d8c3dba3e4ccf9388bf31404ab23ebdcb37e.
2020-05-22 16:57:01 +02:00
Richard C. Gobeille
1f82cfa3bf
Duke3d: replace VM_CONDITIONAL macro with a lambda
...
# Conflicts:
# source/duke3d/src/gameexec.cpp
2020-05-22 16:57:00 +02:00
Richard C. Gobeille
c0160065e4
Duke3d: this is intended to fix an issue where CON VM errors within a CON_FOR loop could cause an infinite loop
2020-05-22 16:56:24 +02:00
Richard C. Gobeille
8cf064b90c
Duke3d: add a few missing VM_ASSERT checks
2020-05-22 16:56:23 +02:00
Richard C. Gobeille
1a1112b4c1
Duke3d: fix OOB memory access in CON_FOR
2020-05-22 16:55:37 +02:00
Richard C. Gobeille
dc9c6ce2e6
Duke3d: allow SE_14_SUBWAY_CAR to move STAT_PLAYER sprites
...
Fixes #18 .
2020-05-22 16:54:12 +02:00
Richard C. Gobeille
23909f8ca1
Duke3d: hoist checks for ST_2_UNDERWATER outside of loops in SE_14_SUBWAY_CAR processing
2020-05-22 16:54:10 +02:00
Richard C. Gobeille
45fd214ffe
Duke3d: remove interpolation fixups from subway
...
These aren't needed anymore after Striker's patch to improve overall interpolation.
2020-05-22 16:54:09 +02:00
Richard C. Gobeille
b19d258870
Duke3d: fix APLAYER radius damage distance calculation regression
...
Fixes #20 .
2020-05-22 16:54:08 +02:00
Richard C. Gobeille
f5788c331e
Clarify clipupdatesector() log message a bit
...
# Conflicts:
# source/build/src/clip.cpp
2020-05-22 16:52:08 +02:00
Richard C. Gobeille
32ddabb12c
Derp...
...
Probably actually fixes #4 . Regardless, I want to note that this is really sub-optimal.
# Conflicts:
# source/duke3d/src/m32def.cpp
2020-05-22 16:51:27 +02:00
Richard C. Gobeille
61d82c8152
Fix really stupid error with CON_NULLOP branch detection
...
Fixes #4 .
# Conflicts:
# source/duke3d/src/gamedef.cpp
# source/duke3d/src/m32def.cpp
2020-05-22 16:50:28 +02:00
Richard C. Gobeille
94d098f8ef
Fix a crash with tabledivide64()
...
Fixes #1 .
2020-05-22 16:50:02 +02:00
Jordon Moss
79d2bb1bb8
Fix player sprite disappearing and chat indicator using the wrong sprite when typing.
2020-05-22 16:48:44 +02:00
Jordon Moss
658a96ce19
Re-added a check in VM_Move that probably should't have been removed.
2020-05-22 16:48:24 +02:00
Mitchell Richters
d98813f00f
SW: Allow sector object interpolations to be disabled for debugging.
...
New code is causing some issues. Upstream allow it to be toggled, so let's do that also.
2020-05-22 16:43:34 +02:00
Mitchell Richters
355ef884c8
Menudef: Polympost -> Polymost.
2020-05-22 16:42:35 +02:00
Christoph Oelckers
bad17f29e0
- made some tweaks to the anti-z-fighting code in Polymost.
...
It now picks the minimum of the current formula and the one from before June 2017 - the current one was causing problems with sprites in the distance so now the old one is used as an upper bound.
2020-05-22 16:27:45 +02:00
Christoph Oelckers
683672a1be
- added missing game specific autoload handler.
2020-05-22 01:24:40 +02:00
Mitchell Richters
45cc95401f
SW: Make game compile after upstream backports.
2020-05-21 18:47:37 +02:00
Evan Ramos
0ab81904c2
SW: Allow Strafe Left and Right to turn vehicles
2020-05-21 18:47:37 +02:00
Evan Ramos
9d11c7dfb1
SW: Add FOV support.
2020-05-21 18:47:37 +02:00
Evan Ramos
edccdccfb4
SW: Fall back gracefully if map mirror tags are not fully correct
2020-05-21 18:47:37 +02:00
Evan Ramos
e6dd2741f3
SW: Instrument Saveables with debug_break
2020-05-21 18:47:37 +02:00
Evan Ramos
9eefd3d892
SW: Add PanelSpriteFunc values to saveables
2020-05-21 18:47:37 +02:00
NY00123
024d4e7297
SW: Afraid that we should disable almost all kinds of SOs in multiplayer
...
for now, due to possible jitters. Currently leaving remote-controlled SOs.
2020-05-21 18:47:37 +02:00
NY00123
ab99b3b79d
SW: Call FunctionKeys from getinput only if the latter is called
...
from faketimerhandler. This should fix the timing of playing an
RTS file's sound and sending the corresponding message.
2020-05-21 18:47:37 +02:00
NY00123
75c76f073a
SW: Fix aiming in coop view
2020-05-21 18:47:37 +02:00
NY00123
5baba6b9f3
SW: Don't interpolate a non-remote sector object controlled
...
by the player. Make sure looking up/down is still smooth.
2020-05-21 18:47:37 +02:00
NY00123
bdacab366a
SW: Disable interpolation of sector objects that
...
don't move as smooth as possible in multiplayer
2020-05-21 18:47:37 +02:00
NY00123
f3654d80e7
Store sector object interpolation data in saved game
2020-05-21 18:47:37 +02:00
NY00123
27675d9f4f
Remove the preceding sprite interpolation functions, not needed anymore
2020-05-21 18:47:37 +02:00
NY00123
221172311c
SW: Let's make use of interpso.*. Still need to do a few more things.
2020-05-21 18:47:37 +02:00
NY00123
2b1e32bf3d
SW: Add the currently-unused interpso.* files, enabling interpolation
...
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.
2020-05-21 18:47:37 +02:00
NY00123
f6a5572775
SW: Add the currently unused InterpolateSO option.
...
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.
2020-05-21 18:47:37 +02:00
NY00123
890a737152
SW: Add the oangdiff field to USER struct as suggested by Hendricks,
...
and use it in MovePoints. This will be used for interpolating
the angles of sprites carried by SOs soon.
2020-05-21 18:47:37 +02:00
NY00123
d467ce3eb8
SW: Interpolate the player's bob_z, based on suggestion by Striker.
...
Using pp instead of ppp seems to work better with prediction.
2020-05-21 18:47:37 +02:00
NY00123
10e4c3e121
sw/src/draw.cpp: Import from Duke3D the Polymost shadow drawing hacks
2020-05-21 18:47:37 +02:00
NY00123
33043b3b05
sw/src/network.cpp: Fix waitforeverybody in Master/Slave
...
modes. This uses SVN r1135 and r1143 as a reference.
2020-05-21 18:47:37 +02:00
NY00123
dea7c83361
sw/src/network.cpp: Fix sending of messages in Master/Slave.
...
Thanks Dynamo for spotting the bug.
2020-05-21 18:47:37 +02:00
NY00123
63743eea67
sw/src/draw.cpp:analyzesprites: Interpolate other players' sprites, in a
...
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.
2020-05-21 18:47:37 +02:00
NY00123
5a6dd2224f
sw/src/jsector.cpp:JS_DrawCameras: Make camera oscilation
...
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.
2020-05-21 18:47:37 +02:00