Commit graph

532 commits

Author SHA1 Message Date
Mitchell Richters
577099284f - SW: Increment PlayClock at the end of the tic, not at the start. 2023-01-02 16:49:02 +11:00
Mitchell Richters
b03d674a74 - SW: Fix tank track velocity.
* Originating from 8efe6f638b.
* Velocity was correctly floatified initially but because it was unwrapped, it never got adjusted for Q28.4 later on.
2023-01-02 14:41:43 +11:00
Mitchell Richters
56d9ccfc9c - SW: Fix tank tracks not working.
* Originating from 0c146e7ccb.
2023-01-02 14:39:43 +11:00
Mitchell Richters
7760eff4ba - SW: Fix issue with RC tank in $seabase.
* Originated from 8efe6f638b.
* I'm sure this was meant to be 0.05, but became 0.5 by mistake.
* Use something closer to `12800. / 262144.`.
* Fixes #831.
2023-01-02 14:36:55 +11:00
Mitchell Richters
f431d51c2f - SW: Add inertia correction to PlayerWarpUpdatePos().
* Warping between sectors such as the clouds in $volcano now maintains perfect velocity, etc.
2023-01-02 11:53:10 +11:00
Mitchell Richters
9d5bae0c8e - SW: Fix clipmove call within DoPlayerMoveVehicle().
* Originating from 05ad1e38e9.
* Fixes #829.
2022-12-29 20:32:58 +11:00
Mitchell Richters
b0b2f1bf1b - SW: Only bring the weapon back up after doing chops if not on a vehicle with a weapon. 2022-12-29 19:25:17 +11:00
Mitchell Richters
c240c8e6ee - SW: Fix two bad calls to pushmove() where a fixed point adjustment was used.
* Came in from 3ac4e7ed2d.
* Fixes #816.
2022-12-29 19:02:56 +11:00
Mitchell Richters
dcd0e62466 - SW: Remove call to doYawKeys() from DoPlayerDeathFollowKiller(). 2022-12-29 14:35:42 +11:00
Mitchell Richters
572ec96467 - SW: Reset player's render angle state only for the console player. 2022-12-29 14:35:41 +11:00
Mitchell Richters
7593114fc7 - SW: Tidy up UpdatePlayerSprite() a bit. 2022-12-29 14:35:41 +11:00
Mitchell Richters
774c7795b1 - SW: Apply same fix to DoPlayerClimb(). 2022-12-29 14:35:38 +11:00
Mitchell Richters
7e1e447f98 - SW: Apply same fix to DoPlayerFly(). 2022-12-29 14:27:59 +11:00
Mitchell Richters
09304ef298 - SW: Fix player diving height issues.
* Fixes #822.
2022-12-29 14:27:59 +11:00
Mitchell Richters
6c7797a9f0 - SW: Clean up some noisy commented out calls to DoPlayerHeight(). 2022-12-29 13:50:27 +11:00
Mitchell Richters
4890f1d9dc - SW: Adjustments to the death height code on the back of the last commit. 2022-12-23 19:18:07 +11:00
Mitchell Richters
5f1581be9d - SW: Rework the player's height adjustment to use the pos.Z setter from during the refactor.
* I tried to get smart during the refactor when I should have kept it simple.
* Fixes #813.
2022-12-23 19:18:07 +11:00
Mitchell Richters
cf5ba0886a - SW: Properly guard the call to PlayerDeathReset() in TerminateLevel().
* Stems from an oversight in 28b97486cd.
* Fixes #796.
2022-12-17 06:32:03 +11:00
Mitchell Richters
8bbf7f4e00 Revert "- SW: Revert last commit and apply changes directly in pp->setHeightAndZ() so all bases are covered."
This reverts commit a643a74083.

* Fixes #795
2022-12-16 08:44:38 +11:00
Mitchell Richters
a643a74083 - SW: Revert last commit and apply changes directly in pp->setHeightAndZ() so all bases are covered. 2022-12-15 18:16:38 +11:00
Mitchell Richters
b83d321c4b - SW: Don't use pp->setHeightAndZ() when setting PLAYER_CRAWL_HEIGHTF. 2022-12-15 18:06:07 +11:00
Mitchell Richters
28b97486cd - SW: For single player games, call PlayerDeathReset() from TerminateLevel() and not DoPlayerDeathCheckKeys().
* This fixes issues where player stats like health, etc are shown onscreen as reset before the entire view reloads.
2022-12-11 19:46:27 +01:00
Mitchell Richters
b8a8164b24 - SW: Don't call DoSpawnTeleporterEffect() upon death.
* This causes an air bubble to spawn above the player for a single tic, even while on land until the level truly restarts.
* Since we're restarting, its better to just not do this.
2022-12-11 19:46:27 +01:00
Mitchell Richters
9b73f46aff - SW: Don't reset player pitch upon death.
* This _somewhat_ addresses #770 by hiding the effects of it.
* Since we re-init `Player::Angles` when a new actor is spawned, this all resets anyway.
2022-12-11 19:46:27 +01:00
Mitchell Richters
2c592405fa - Separate pitch/yaw key input into separate functions and apply from the ticker. 2022-12-11 19:43:56 +01:00
Mitchell Richters
470b4efac8 - Remove PlayerAngles::setYaw() method usage and remaining associated code. 2022-12-11 19:43:56 +01:00
Mitchell Richters
491a42d2bb - Remove PlayerAngles::addYaw() method usage. 2022-12-11 19:43:56 +01:00
Mitchell Richters
7a7758efaa - Remove PlayerAngles::addPitch() method usage. 2022-12-11 19:43:56 +01:00
Mitchell Richters
968d0ae0d2 - Implement new scaled angle change setup and remove enforcement of synchronised input. 2022-12-11 19:43:55 +01:00
Mitchell Richters
9437ea9622 - Move input vector rotation for Duke and SW into the playsim.
* The next commit needs this to ensure the vector is rotated using the most current angle.
2022-12-11 19:43:55 +01:00
Mitchell Richters
6c0493868e - Implement new method for applying scaled angle changes.
* This method works more accurately to how an angle change would occur under interpolated circumstances.
2022-12-11 18:42:01 +01:00
Mitchell Richters
2a284c73c9 - SW: Remove all remaining angle wrapper usage and the wrappers themselves. 2022-12-11 18:42:00 +01:00
Mitchell Richters
abdeeac205 - Rework PlayerAngles::doViewPitch() to apply at ticrate like PlayerAngles::doViewYaw(). 2022-12-11 18:41:59 +01:00
Mitchell Richters
f9aeee5b4a - Split out view angle stuff out of PlayerAngles::applyYaw() into PlayerAngles::doViewYaw().
* Do all the view angle stuff as interpolated changes in the playsim as well, there's no need for these to be done at ticrate.
2022-12-11 18:41:59 +01:00
Mitchell Richters
d7d76d5fc4 - Move all PlayerAngles view angle properties into new DRotator objects. 2022-12-11 18:41:58 +01:00
Mitchell Richters
bef4536c1f - Remove old PlayerAngles backup/restore methods. 2022-12-11 18:41:58 +01:00
Mitchell Richters
630c10856e - Re-write PlayerAngles scaled adjustment methods. 2022-12-11 18:41:58 +01:00
Mitchell Richters
aa868232c8 - Clean up all previously annotated angle/yaw checks. 2022-12-11 18:41:58 +01:00
Mitchell Richters
a84e09048e - Change wrapper internals for current yaw to the actor's sprite DRotator and make sure all the games load a level. 2022-12-11 18:41:57 +01:00
Mitchell Richters
7f5b97a0b7 - Change wrapper internals for current pitch to the actor's sprite DRotator and make sure all the games load a level. 2022-12-11 18:41:57 +01:00
Mitchell Richters
850c988dfa - Wrap access to previous yaw. 2022-12-11 18:41:57 +01:00
Mitchell Richters
be466fec8d - Wrap access to current yaw. 2022-12-11 18:41:57 +01:00
Mitchell Richters
fd05d320ff - Wrap access to previous pitch. 2022-12-11 18:41:56 +01:00
Mitchell Richters
15f1d89855 - Wrap access to current pitch. 2022-12-11 18:41:56 +01:00
Mitchell Richters
b9f5bb71cc - Merge PlayerHorizon and PlayerAngle structs into PlayerAngles struct. 2022-12-11 18:41:56 +01:00
Mitchell Richters
d75ac9e445 - Rename PlayerAngle prototypes in preparation for replacement work. 2022-12-11 18:41:56 +01:00
Mitchell Richters
353c2a20fd - Rename remaining PlayerAngle methods. 2022-12-11 18:41:55 +01:00
Mitchell Richters
50cf22ec53 - Rename PlayerAngle::oang in preparation for replacement work. 2022-12-11 18:41:55 +01:00
Mitchell Richters
bd063de5f5 - Rename PlayerAngle::ang in preparation for replacement work. 2022-12-11 18:41:54 +01:00
Mitchell Richters
d810afa2e9 - Rename PlayerHorizon prototypes in preparation for replacement work. 2022-12-11 18:41:54 +01:00