Commit graph

2592 commits

Author SHA1 Message Date
Mitchell Richters
359371527b - Move Duke's vehicle input processor into gameinput.cpp. 2023-04-02 18:32:36 +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
e1ea0492e1 - savegame version bump. 2023-04-02 08:50:05 +02: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
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
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
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
b5a9085aed - Exhumed: Restore more accurate pitch adjustment for Ramses.
* Use `maphoriz(-11)` instead of some voodoo degree amount so it's clear when comparing sources.
* Don't stop interpolating while doing Ramses.
* Apply Ramses pitch amount to `nVertDestPan`, just like the original.
* Don't reset all angles when initialising Ramses, just set the yaw angle.
* Don't return player's view to center when doing Ramses, use the delta between `nDestVertPan` and the player's pitch, using same formula as original.
* Comment in how normal/non-ramses `nDestVertPan` setting should be 8x the sprite Z move delta, not 2x. I know it's not correct, but its been this way for a long time and we probably should CVAR it.
* When doing the player's death pitch, it's 40.156 degrees (horizon of 108), not 38 degrees (horizon of 100). This was a misread of mine way back when.
2023-03-26 22:13:57 +11:00
Christoph Oelckers
b6da4ecddf - backend update from GZDoom. 2023-03-26 11:45:25 +02:00
Mitchell Richters
0387282e37 - Fix two particularly loud warnings from GCC builds.
* `warning: type qualifiers ignored on function return type`.
2023-03-26 15:35:33 +11:00
Mitchell Richters
0da2afe3d7 - Duke: Tidy up some of the pitch stuff.
* Remove some extern'd CVARs that didn't need externing.
* Change `player_struct::centeringView()` bool into proper method to handle the operation.
* Operation now properly unsets `SB_CENTERVIEW` if conditions aren't met instead of relying on implied behaviour from the rest of the playsim.
2023-03-26 13:35:12 +11:00
Mitchell Richters
a5a9882d9a - Duke: Add a myriad of pitch recentering CVARs.
* Needs to be reworked into some kind of MP-safe flagging once we have demos/MP going. This will do for now.
* Fixes #853.
2023-03-26 12:46:14 +11:00
Christoph Oelckers
8503f34eb5 - fix error message crash in SNDINFO parser. 2023-03-25 12:24:11 +01:00
Christoph Oelckers
c6054595d0 - fixed lookup table generation for foggy fades.
ColorMatcher.Pick is not correct here, fortunately we do not need this for fog setup as it never uses the lookup so just do a normal copy of the first (fullbright) table.
2023-03-25 11:42:50 +01:00
Mitchell Richters
9906586569 - Make walltype::normalAngle() normalise the returned value. 2023-03-24 19:50:26 +11:00
Mitchell Richters
e85162df97 - Removed unused lastTic global. 2023-03-23 17:38:01 +11:00
Mitchell Richters
e5f3f5f149 - Make setForcedSyncInput() require a player index.
* This should only ever apply to the console player.
2023-03-23 17:09:02 +11:00
Mitchell Richters
7da3b097fb - Remove the extern status for gamesetinput.
* We don't need to save this variable, we reset it at the start of every tic anyway.
2023-03-23 17:03:43 +11:00
Mitchell Richters
4d6419732a - Duke: Add CVAR to allow disabling pitch reset with pitch input.
* Need to add this to the menu to address #853.
2023-03-23 15:54:58 +11:00
Mitchell Richters
88e6a6e894 - Rework ff652f454c slightly to accept an InputPacket pointer. 2023-03-22 20:08:53 +11:00
Mitchell Richters
ff652f454c - Tidy up how games reapply needed bits at start of tic. 2023-03-22 18:17:50 +11:00
CandiceJoy
9c65d2cde1 Fixed Mac default wad/grp search paths. 2023-03-19 20:41:46 +01:00
Mitchell Richters
4153c38bd3 - Clean up GameInterface struct a bit.
* Make everything that's overridden abstract.
* Remove defunct/deleted methods.
2023-03-19 11:27:07 +11:00
Mitchell Richters
de5b73c60f - SW: Fix strafing issue due to missing bool negation. 2023-03-19 11:14:04 +11:00
Christoph Oelckers
9b751d6469 use GAMENAMELOWERCASE for defining GAME_DIR.
This was handled inconsistently in different parts of the Mac backend.
2023-03-18 12:31:32 +01:00
Mitchell Richters
1147030bca - Remove concept of InputOptions, its messy and unnecessary. 2023-03-18 21:16:50 +11:00
Mitchell Richters
366423a09b - Extra const-ness that I'm not sure matters or not. 2023-03-18 20:14:01 +11:00
Mitchell Richters
672c53c35c - Move CCMD pause to gamecontrol.cpp so it can be static. 2023-03-18 19:54:05 +11:00
Mitchell Richters
b3c27a177e - Consolidate each game's gi-GetInput() into a unified function.
* Eliminates a lot of boilerplate.
* Consolidation of input accumulation buffers discretely used in each game.
* Allows privatisation of `PlayerAngles::CameraAngles`.
2023-03-18 19:49:25 +11:00
Mitchell Richters
3442290fa2 - Repair bad setup for global input scale uncovered after making Duke better.
* `I_GetInputFrac()` must always be called, even if we don't use it otherwise the value grows too large.
2023-03-18 19:29:29 +11:00
Mitchell Richters
4355a44721 - Duke: Rework input blocking setup.
* Takes the duplicated conditions out of the input handler and makes the ticker responsible by forcing synchronised input.
2023-03-18 19:29:29 +11:00
Mitchell Richters
bd3e9b305e - Adjust signatures of input functions slightly for consistency. 2023-03-18 19:29:29 +11:00
Mitchell Richters
5a6495956f - Duke: Move Quick_Kick button test into ApplyGlobalInput() as it doesn't seem to share a bit with any other game anymore. 2023-03-18 19:17:30 +11:00
Mitchell Richters
a45890e064 - Move some Duke-specific stuff out of ApplyGlobalInput(). 2023-03-18 09:15:15 +11:00
Mitchell Richters
eed9716d86 - Move joyaxes[] array from getHidInput() directly into ControlInfo. 2023-03-17 20:58:38 +11:00
Mitchell Richters
08d22f49f4 - Negate ControlInfo::dpitch to match data out of backend. 2023-03-17 20:58:13 +11:00
Mitchell Richters
fc069feac6 - Negate ControlInfo::dyaw to match data out of backend. 2023-03-17 20:58:13 +11:00
Mitchell Richters
446218dd7b - Get mouse/controller input by pointed variable and not copy on return. 2023-03-17 20:58:11 +11:00
Mitchell Richters
1f97e73501 - Rename ControlInfo joystick variables to names matching backend. 2023-03-17 20:16:58 +11:00
Mitchell Richters
81caf74721 - Tidy up coord stat to use gi->getConsoleActor() and also print pitch. 2023-03-17 17:28:26 +11:00
Mitchell Richters
3c4b4e4483 - Tidy up warptocoords CCMD since everything is in an actor now.
* Now accepts floating point inputs.
* Restores lost pitch capability.
2023-03-17 17:28:04 +11:00
Mitchell Richters
d329328191 - Rename PlayerAngles::RenderAngles to CameraAngles.
* Better conveys what it is and separates it from the already established `getRender*()` methods around the place.
* Sorry Simon!
2023-03-17 14:20:36 +11:00