Commit Graph

21 Commits

Author SHA1 Message Date
Mitchell Richters e3c2757f1c - sethorizon(): Ensure `SB_CENTERVIEW` bit is always cleared if horizon target is set. 2021-04-02 23:23:24 +11:00
Mitchell Richters 9c01bde44e - gameinput.cpp: Block player input within `sethorizon()` and `applylook()` if target for each has been set by the ticker.
* Stops players having the ability to provide input and fight the system trying to set an input.
2021-04-02 22:47:19 +11:00
Mitchell Richters 029f8807df - Make `360. / 2048.` a constant expression and replace all uses throughout code. 2021-04-01 10:42:22 +11:00
Mitchell Richters 25eaeff0db - Wrap all `g_gameType & GAMEFLAG_BLOOD` checks into `isBlood()` inline. 2021-01-02 14:46:58 +11:00
Mitchell Richters 532d128afd - Blood: Migrate game's slopetilting code to `calcviewpitch()`. 2021-01-02 14:40:35 +11:00
Mitchell Richters 4397646cc4 - Duke: Move cancellation of spin from `FinalizeInput()` into `applylook()` in gameinput.cpp. 2021-01-02 10:26:22 +11:00
Mitchell Richters 36c25ee2a0 - gameinput.cpp: Break out `processMovement()`'s turnheldamt calculations into functions. 2021-01-02 09:53:03 +11:00
Mitchell Richters dac08a2cb9 - calcviewpitch(): Fix issue with returning `horizoff` to 0 from negative slope. 2021-01-02 01:15:58 +11:00
Mitchell Richters 8003753989 - Duke/SW: Move each game's check of `cl_slopetilting` into `calcviewpitch()` backend function. 2021-01-02 00:34:44 +11:00
Mitchell Richters 6d12159006 - Duke/SW: Consolidate each game's slopetilting function into backend solution.
* Based on SW's implementation purely for its commentary, but includes a fix from Duke's.
* Allow disabling Duke's slopetilting via `cl_slopetilting` like SW.
2021-01-02 00:30:11 +11:00
Mitchell Richters 5c87b7b894 - Return to center using tangent of pitch, as per original games (Duke/SW).
* Preserves the original return to center feel more accurately as original algorithm can't directly translate to pitch. If we ever get rid of Build's horizon throughout the games, this can go on the chopping block then as a necessity.
2020-12-30 18:04:00 +11:00
Mitchell Richters 80ff918b17 - gameinput.h: For PlayerAngle struct methods `settarget()`, properly set target as angle + delta between angle & target within method and not game-side. 2020-11-26 17:26:29 +11:00
Mitchell Richters 42689e02c4 - gameinput.cpp: Define `getincanglebam()` and slightly clean up other getincangle*() functions. 2020-11-22 21:18:11 +01:00
Mitchell Richters ade1a80515 - gameinput.cpp: Remove crouch bool from `applylook()` since we can now just rely in the actions bitfield that's already incoming as required and default `scaleAdjust` in the prototype to `1`. 2020-11-07 18:25:06 +11:00
Mitchell Richters 6e3d414b3c - inputstate.cpp: Move `checkCrouchToggle()` from gameinput.ccp into `ApplyGlobalInput()` and use static bool for crouch toggling vs. game-side bool. 2020-11-07 18:16:16 +11:00
Mitchell Richters 4ef0d20e0e - gameinput.cpp: Consolidate `checkCrouchToggle()` from Duke with discrete implementations from Blood in 7c8efde38c and Exhumed in 032db82f82 to unify the functionality. 2020-11-07 13:44:25 +11:00
Mitchell Richters c9708a5464 - `CONTROL_GetInput()`: Reverse polarity of dx/dz and update `processMovement()` appropriately. 2020-11-07 09:56:57 +11:00
Mitchell Richters c98f7ac491 - gameinput.cpp: Don't set a target when serialising `PlayerHorizon` struct.
* Fixes #131.
2020-10-22 09:41:21 +11:00
Mitchell Richters fb91fc49a3 - processMovement(): Add commentary around avel constants used within function and how they came to be. Also clean up some left-over code. 2020-10-15 20:12:34 +11:00
Christoph Oelckers cb8d2eb94c - added serializers for PlayerAngle and PlayerHorizon. 2020-10-11 16:55:12 +02:00
Christoph Oelckers 1757ef2aa6 - split the game input code off gamecontrol.cpp into its own file. 2020-10-11 16:33:43 +02:00