Commit graph

20731 commits

Author SHA1 Message Date
Mitchell Richters
bcbebc5c1a - Blood: Fix potential null actor access in gi->CanSave(). 2023-04-02 19:51:12 +10:00
Mitchell Richters
9dfb805b38 - Duke: Fix potential null actor access in gi->CanSave(). 2023-04-02 19:51:12 +10:00
Mitchell Richters
7217ce6ff9 - Duke: Ensure hard landing check is done after pitch keys.
* Oversight from e9a5f745fc.
2023-04-02 19:51:12 +10:00
Mitchell Richters
272dfa762d - Remove backend crouch toggle solution redeploy with Duke/Exhumed/Blood using new ESyncBit bit.
* I tried to make this work in 2020 but its been nothing but headache. It's something for the game to control via a flag, not the backend to determine.
* For SW, this restores its original implementation.
2023-04-02 18:32:40 +10:00
Mitchell Richters
b9cf8a13c6 - Inline the remainder of InputState methods. 2023-04-02 18:32:40 +10:00
Mitchell Richters
ea4e850674 - Move remaining mouse CVARs from inputstate.cpp to gameinput.cpp. 2023-04-02 18:32:39 +10:00
Mitchell Richters
13cb52a0db - Move HIDInput struct from inputstate.h to gameinput.h. 2023-04-02 18:32:39 +10:00
Mitchell Richters
10cd63f383 - Use an FVector2 inside HIDInput. 2023-04-02 18:32:39 +10:00
Mitchell Richters
4387294aff - Eliminate the duplicate mouse storage since we have things in the right spot now. 2023-04-02 18:32:39 +10:00
Mitchell Richters
eeb67a2cdd - Move all mouse CVARs from inputstate.cpp to gameinput.cpp. 2023-04-02 18:32:39 +10:00
Mitchell Richters
64b05b6f06 - Move remaining CCMDs and non-inputstate related items to gameinput.cpp. 2023-04-02 18:32:38 +10:00
Mitchell Richters
43febd5aa1 - Stop passing inputBuffer around within gameinput.cpp since everything's local now. 2023-04-02 18:32:38 +10:00
Mitchell Richters
3c82014d0e - Move ApplyGlobalInput() into gameinput.cpp.
* Doesn't really belong in inputstate.cpp, it was just placed there in 2020 for lack of a better spot at the time.
2023-04-02 18:32:38 +10:00
Mitchell Richters
9e1ca0cb8f - Make the turbo turn functions static within gameinput.cpp. 2023-04-02 18:32:38 +10:00
Mitchell Richters
359371527b - Move Duke's vehicle input processor into gameinput.cpp. 2023-04-02 18:32:36 +10:00
Mitchell Richters
563c79322d - Duke: Make vehicle input code work generically for possible reusage. 2023-04-02 18:25:04 +10:00
Mitchell Richters
5e153d6404 - Duke: Merge vehicle input code into one function. 2023-04-02 18:24:05 +10:00
Mitchell Richters
03eb105df1 - Duke: Move RRRA vehicle tilting out of the input code and into the playsim. 2023-04-02 18:24:05 +10:00
Mitchell Richters
c13745efc8 - Remove the mouse input negation out of the event handler. 2023-04-02 18:24:05 +10:00
Mitchell Richters
b340807a6b - Remove now-unneeded inline wrapper getHidInput(). 2023-04-02 18:24:05 +10:00
Mitchell Richters
46b5977a6a - Recover two ESyncBit values for other uses.
* By masking aiming+centering, we have look bits :)
2023-04-02 18:24:05 +10:00
Christoph Oelckers
bae18b3023 - removed debug output 2023-04-02 09:14:15 +02:00
Christoph Oelckers
e1ea0492e1 - savegame version bump. 2023-04-02 08:50:05 +02:00
Christoph Oelckers
65fcab71c3 - language update 2023-04-02 08:49:57 +02:00
Christoph Oelckers
1e7850b17e - fixed last commit 2023-04-01 12:27:48 +02:00
Christoph Oelckers
a64f19c16d - had to apply the RapidJson NaN workaround to another place.
So instead of fixing the bug they actually replicated it into a second function. :(
It's too bad that we cannot enable proper writing of NaNs and Infs because it makes most JSON formatters emit an error on this undefined extension of the format.
2023-04-01 10:26:51 +02:00
Christoph Oelckers
5f3065d9f1 - Duke: fixed weapon spread with non-pistol hitscan weapons. 2023-04-01 09:49:22 +02:00
Mitchell Richters
86711f666b - Exhumed: Tidy up StartDeathSeq(). 2023-03-29 19:41:05 +11:00
Mitchell Richters
3e4dd94fe5 - Exhumed: Tidy up a bunch of small player functions. 2023-03-29 19:40:42 +11:00
Mitchell Richters
0467b02393 - Exhumed: Mark all player static arrays as const. 2023-03-29 19:39:54 +11:00
Mitchell Richters
daf63ce209 Revert "- InputState::ClearAllInput(): Only clear crouch_toggle bool if outside of a level, and resend SB_CROUCH sync bit if inside a level and crouch_toggle is true."
This reverts commit c076310e34.

* It's no longer needed with 70706d3da8.
2023-03-29 13:21:14 +11:00
Mitchell Richters
70706d3da8 - Don't stop getting input when we're paused.
* This is the cause of the long-standing crouch toggle issues, as well as a few other things.
2023-03-29 13:20:55 +11:00
Mitchell Richters
7feb5a9a9b Revert "- Duke: Temporary workaround for last commit so the player returns to centre on level load."
This reverts commit 2b22e49a9b.

* It's no longer needed with 06dd971291.
2023-03-29 13:20:55 +11:00
Mitchell Richters
06dd971291 - When the gameaction is ga_level, return and don't break.
* This was causing the first input packet to only be sent to the playsim after the first tic occurred.
* Previous: player 1 of 1 (1 nodes); E1L1: Hollywood Holocaust; PlayClock: 4; PlayClock: 4; PlayClock: 12;, etc.
* Current: player 1 of 1 (1 nodes); E1L1: Hollywood Holocaust; PlayClock: 0; PlayClock: 4; PlayClock: 8;, etc.
* Fixes #900.
2023-03-29 13:20:47 +11:00
Mitchell Richters
7caec5fa69 - Clean out where inputState.ClearAllInput() is called.
* We can do this from just a few places and achieve the same result as having it sprinkled everywhere did.
2023-03-29 09:05:49 +11:00
Mitchell Richters
9f8cda4be3 - Move call to I_GetInputFrac() to ensure we're never stalled waiting for a tic. 2023-03-29 09:04:40 +11:00
Mitchell Richters
d665037075 - Clean out where Net_ClearFifo() is called.
* We can do this from one place and achieve the same result as having it sprinkled everywhere did.
2023-03-29 09:04:38 +11:00
Mitchell Richters
96055fbc03 - Clean out all games setting gameaction = ga_level and do it centrally. 2023-03-29 03:10:16 +11:00
Mitchell Richters
9618ba1e78 - Don't serialise player angles twice. 2023-03-28 09:15:58 +11:00
Mitchell Richters
72be2623c3 - Exhumed: Remove useless sectortype extern pointer. 2023-03-28 08:51:51 +11:00
Mitchell Richters
c6a53265eb - Exhumed: Misc tidy-ups.
* The setting of `Player::bIsFiring` needs to be done before setting a new weapon.
* Tidy up some weird reverse engineering `while (1)` loop which GDX doesn't do.
2023-03-28 08:45:14 +11:00
Mitchell Richters
42d791e7c2 - Exhumed: Fix clip calculation setup.
* Since game maintains its own clip capacities, we need to use them instead of the generic handler for the games that do not.
* Clean up the game-side code in `CheckClip()` to use `min()`.
* Repair issue with pistol clip calculation that was using modulo when it shouldn't. A full weapon with 300 will divide into 6 with no remainder, therefore nothing in the clip.
* Fixes #906.
2023-03-27 22:05:35 +11:00
Mitchell Richters
892dde030f - Tidy up nested branch in calcChaseCamPos(). 2023-03-27 20:43:55 +11:00
Mitchell Richters
6c2717fcde - Avoid testing if we're synchronising input twice in getInput(). 2023-03-27 20:01:56 +11:00
Mitchell Richters
79745668a6 - Exhumed: Take advantage of getWrappedIndex() in updatePlayerInventory() as well. 2023-03-27 18:47:30 +11:00
Mitchell Richters
1ed655e0e7 - Exhumed: Further clean up updatePlayerWeapon().
* Rename a few variables for better clarity as to what's going on.
* Add new inline to the backend `getWrappedIndex()` that properly wraps around negative values based on the supplied maximum using modulo.
* Directly set the weapon when doing the next/prev tests to avoid unnecessary tests to see whether the player has the weapon or not.
2023-03-27 18:47:05 +11:00
Mitchell Richters
ebedf46434 - Exhumed: Reset view pitch back to 0 when doing Ramses, using game's formula.
* Ensure's a smooth return to 0 so the player's actual pitch can be targeted towards Ramses.
* In situations where the player had their view pitch changed in the ticker, this would have never reset.
2023-03-27 18:08:56 +11:00
Mitchell Richters
0594a5cb91 - Exhumed: Properly repair height test after reviewing GDX.
* The code in this game is so much tidier to understand what's what...
2023-03-27 18:08:55 +11:00
Mitchell Richters
bd8b033120 - Exhumed: Logic fixes to some underwater tests following review of GDX.
* Necessitated a little bit of rearranging in the player ticker but the grouping of all inputs into one function makes sense.
2023-03-27 18:08:55 +11:00
Mitchell Richters
94f188c926 - Exhumed: Restore original grenade pickup code.
* When I read this against the generic weapon pickup code, it looked similar enough but the grenade's logic is reversed. That is, after picking up the weapon, equip the player. The generic weapon handler equips the player, then gives them ammo.
* Fixes #904.
2023-03-27 18:08:55 +11:00