Commit graph

2653 commits

Author SHA1 Message Date
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
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
Mitchell Richters
8bcbc1b892 - Null the roll angle used for weapon drawing when looking left/right and with Blood's delirium for now.
* Intended to make the look left/right keys better, but doesn't work properly for weapons made up of layered parts of varying sizes.
* Fixes #879.
2023-03-16 16:34:31 +11:00
Mitchell Richters
e8f2f98473 - Repair voxel 2D vector adjustment.
* Originates from a6fb831894.
* Division taken off, probably mixing up x/yrepeat and x/yoffset.
* Fixes #869.
2023-03-15 20:42:24 +11:00
Mitchell Richters
0dba1af7c0 - Move canslopetilt test for PlayerAngles::doViewPitch(). 2023-03-15 16:36:56 +11:00
Mitchell Richters
a90665732c - Clean up other PlayerAngles interfaces for consistency. 2023-03-14 21:45:38 +11:00
Mitchell Richters
62561d863e - Tidy up PlayerAngles::doPitchKeys() interface by passing the whole sync packet through. 2023-03-14 21:45:37 +11:00
Mitchell Richters
c1f52b1137 - Adjust PlayerAngles::doViewPitch() so that view pitch always resets to 0 upon enabling mouse aiming. 2023-03-14 21:45:36 +11:00
Mitchell Richters
18ef460a99 - Tidy up interface for PlayerAngles::doViewPitch() since we have internal access to the player's actor. 2023-03-14 21:45:36 +11:00
alexey.lysiuk
41d7118099 - fixed compilation error
source\core\razefont.cpp(60,3): error C2181: illegal else without matching if
2023-02-21 10:30:44 +02:00
Christoph Oelckers
07d87940f2 - completed all of Blood's and Duke's fonts. 2023-02-20 16:52:51 +01:00
Christoph Oelckers
b645929035 - fixed some message mappings. 2023-02-19 13:01:20 +01:00
Christoph Oelckers
29de90beb6 - Duke: disable the 1.5 BigFont for languages using the Cyrillic or Greek alphabet
This font is incomplete, unlike the 1.3 variant, so for these languages use the font that can render them.
2023-02-11 10:43:09 +01:00
Mitchell Richters
f8035bb4ba - Re-calculate the sector for each eye if it has a shift factor applied. 2023-02-06 19:55:46 +11:00
Mitchell Richters
2020860ffe - For I_GetInputFrac(), just have the caller check if input is synchronised. 2023-02-05 08:40:25 +11:00
Mitchell Richters
9961a66a1f - Remove inputScale global and make static in mainloop.cpp. 2023-02-05 08:37:37 +11:00
Mitchell Richters
1938efabe6 - Fix bad return in scaletozero() from 924b601199. 2023-02-05 08:27:44 +11:00
Mitchell Richters
924b601199 - Change scaletozero() to return true when back at 0 to save callers having to test angle's signum again. 2023-02-04 19:01:01 +11:00
Mitchell Richters
5fd4fbfde5 - Remove some leftover debug code. 2023-02-04 17:05:20 +11:00
Mitchell Richters
30de9c1922 - Factor in view pitch when clamping player's actor pitch. 2023-02-04 17:05:19 +11:00
Mitchell Richters
991ef5c27f - Minor input tidy-up. 2023-02-04 17:05:18 +11:00
Christoph Oelckers
9783b8c402 - scriptified World Tour's flamethrowerflame.
The first of 3 mixed native/CON items which are the last things remaining in the main thinker loops.
2023-01-28 16:31:45 +01:00
Christoph Oelckers
acac74715f partially Revert "- pass shade values to sky renderer"
This reverts commit 380864d6fb.

The report this was supposed to address was bogus.
2023-01-28 09:21:53 +01:00
Rachael Alexanderson
2778ee72cd - fix commit 532a726ae3 - i_pauseinbackground is not supposed to bypass menu/console pause 2023-01-27 03:02:13 -05:00
Christoph Oelckers
5ebce5afba - fix last commit 2023-01-21 15:08:47 +01:00
Christoph Oelckers
dbef2f74d1 - print an error when a sound file cannot be found. 2023-01-21 14:51:43 +01:00
Christoph Oelckers
9379e873b3 - error out when encountering an unknown $ token in SNSINFO.
No need to preserve this insanity from old ZDoom times.
2023-01-21 09:34:25 +01:00
Christoph Oelckers
acfca3fbdc - fixed SNDINFO parser to actually read new sound definitions. 2023-01-18 06:58:37 +01:00
Christoph Oelckers
3ab1ae5f7a - allow setting Blood's relative volume hack value via SNDINFO. 2023-01-15 16:18:48 +01:00
Christoph Oelckers
bb7f00988a - give Blood's sounds well defined names so they can be defined via SNDINFO. 2023-01-15 16:15:28 +01:00
Christoph Oelckers
841402a776 - allow setting loop points for WAV sounds or other simple formats. 2023-01-15 15:19:21 +01:00
Christoph Oelckers
f1c3a6548f - use backend pitch features for Duke instead of replicating them on the game side. 2023-01-15 13:18:54 +01:00
Christoph Oelckers
8859712a7b - copied $pitchset SNDINFO command from GZDoom. 2023-01-15 12:22:07 +01:00
Christoph Oelckers
8de7aa5975 - corrected error messages. 2023-01-15 12:14:47 +01:00
Christoph Oelckers
ad0bff921b - allow setting Duke's relevant sound properties through SNDINFO. 2023-01-15 11:54:24 +01:00
Christoph Oelckers
fca0bdf379 - Backend update from GZDoom. 2023-01-15 09:30:01 +01:00
Christoph Oelckers
1bfccbcb6e - explicitly destroy the AltHUD when exiting.
This is to avoid problems with the GC on shutdown.
2023-01-14 14:09:25 +01:00
Christoph Oelckers
6c3d03cd48 - fixed incorrect sector in a few sprites of World Tour E5L1. 2023-01-14 13:18:53 +01:00
Christoph Oelckers
b991af2dbc - fixed incomplete statnum setup. 2023-01-09 23:39:20 +01:00
Christoph Oelckers
deaec2d91d - disabled property-type definition of spritetype members.
As it turned out this is simply too dangerous - these should be left to be loaded from the map data or set manually.
All remaining setups using this feature have either been moved to Initialize or other meta properties that are not affected by map loading.
2023-01-08 16:45:09 +01:00
Christoph Oelckers
905a9bfeae - backend update from GZDoom. 2023-01-07 19:30:49 +01:00