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
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
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
9961a66a1f
- Remove inputScale
global and make static in mainloop.cpp
.
2023-02-05 08:37:37 +11:00
Mitchell Richters
5a8612110d
- Process scaled angle adjustments in each game's render function, not from the input function.
...
* Previous config had the potential to call `I_GetInputFrac()` nearly twice in a row, which would have resulted in some hitching.
* Calling from each game's render function avoids the above and means we can start applying scaled angle changes one frame faster.
2022-12-11 18:42:01 +01:00
Christoph Oelckers
c6b3cf3e0a
- Duke: fixed long standing problem that pressing Escape or walking backwards does not switch off the camera view.
2022-11-19 18:26:17 +01:00
Christoph Oelckers
6a6e9299ca
- added missing returns in the failure cases of useitem and slot CCMDs.
2022-11-10 07:41:20 +01:00
Mitchell Richters
293a71ed55
- Remove horizon from gi->WarpToCoords()
since we don't even print the horizon in our stats.
2022-10-25 07:06:54 +02:00
Mitchell Richters
8bfcb8c939
- Floatify InputPacket::fvel
and InputPacket::svel
.
...
* Since all velocities are floated, we can now take each game's keymove scaling into its ticker and use a consistent keymove size, making non-mouselook and controller input truly identical across the games without having to try and fudge any values.
2022-10-20 00:48:09 +02:00
Christoph Oelckers
f4d8ccf7b9
- floatified WarpToCoords
2022-10-13 20:58:12 +02:00
Christoph Oelckers
c1d603e1e9
- backend update from GZDoom.
2022-10-02 20:33:18 +02:00
Mitchell Richters
78fcf2b4f0
- Move invertmouse
and invertmousex
CVARs from gameinput.cpp
to inputstate.cpp
.
...
* Old setup was inverting the entire player's horz/avel, even for joystick input while not inverting `mousemovex` or `mousemovey` at all.
2022-07-23 10:37:32 +10:00
Mitch Richters
c6774d5efd
- Duke/RR: Re-add micro-movement cancellation for RR's vehicles that was dropped in 466bc84697
.
2021-12-26 23:09:50 +01:00
Christoph Oelckers
016a907c20
- replaced vec2_t with FVector2.
2021-12-14 10:07:06 +01:00
Mitch Richters
e491d15ff9
- Move InputScale()
out of inputstate.cpp and into i_time.cpp
as I_GetInputFrac()
to make it available to GZDoom for potential future requirements.
...
* As part of this, feed the output of `I_GetInputFrac()` to `gi->GetInput()` instead of having each game's virtual override calling it locally.
2021-11-29 00:55:01 +01:00
Mitch Richters
1228cb6044
- InputState::AddEvent()
: Partially revert changes performed in 4d629e7de8
that were believed not necessary. This functionality is still needed in some of Exhumed's cutscenes that are performed in-engine and not as a screenjob.
2021-11-19 08:11:32 +11:00
Mitch Richters
4d629e7de8
- Make screenjob valid keys for skipping ignore the Alt key as its used for modifiers, and special keys like the screenshot bind.
...
* Partially revert 8bb13bc4c2
as its changes are no longer needed.
* Partially revert 9e40e49c2c
as its changes are no longer needed.
* Fixes #577 .
2021-11-18 20:59:07 +11:00
Mitch Richters
6581d9d709
- InputScale()
: Tidy up some math I just put in.
...
* Time for bed... *yarns*.
2021-11-10 22:23:59 +11:00
Mitch Richters
3c4afaa6ee
- InputScale()
: Add enabled-by-default scaler to returned value from function to correct drift that occurs as the frame-rate increases, taking into account different scaling ratios needed for differing ticrates.
2021-11-10 20:27:19 +11:00
Mitch Richters
5a33caa635
- InputScale()
: Add enabled-by-default scaler to returned value from function to correct drift that occurs as the frame-rate increases, taking into account different scaling ratios needed for differing ticrates.
2021-11-10 20:13:06 +11:00
Mitchell Richters
6894be4ad1
- Use the new isSWALL()
wrapper everywhere.
2021-07-11 12:40:01 +10:00
Mitchell Richters
c076310e34
- 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.
...
* Fixes #287 .
2021-04-01 13:46:16 +11:00
Christoph Oelckers
99f1f0952a
- little bit of engine cleanup.
2021-02-25 12:16:21 +01:00
Mitchell Richters
25eaeff0db
- Wrap all g_gameType & GAMEFLAG_BLOOD
checks into isBlood()
inline.
2021-01-02 14:46:58 +11:00
Mitchell Richters
4aae71f0ee
- InputState::ClearAllInput(): Call resetTurnHeldAmt()
when clearing input.
2021-01-02 10:00:29 +11:00
Christoph Oelckers
ae36ea88c3
- wrap all checks of cl_syncinput in an inline function.
2020-11-30 23:40:16 +01:00
Christoph Oelckers
ed8266df0b
- fixed bad args check in WarpToCoords CCMD.
2020-11-29 16:06:15 +01:00
Christoph Oelckers
a34f5debe8
- route the shared control CCMDs through the game interface instead of registering local variants for each game.
2020-11-29 13:35:09 +01:00
Mitchell Richters
f9f365a593
- Ensure crouch_toggle
bool from 6e3d414b3c
is serialised when saving game, and cleared when InputState::ClearAllInput()
is called.
2020-11-08 07:30:48 +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
c9708a5464
- CONTROL_GetInput()
: Reverse polarity of dx/dz and update processMovement()
appropriately.
2020-11-07 09:56:57 +11:00
Mitchell Richters
44e4c5ff78
- Fix joystick scaling following shift to fixedhoriz and binangle.
...
* Remove joystick scaling from `CONTROL_GetInput()`.
* Store turnspeed as constant at top of `processMovement()` and use it for joystick yaw/pitch scaling. This adds the advantage of having the out-of-box turning speed match the keyboard's turn speed and also attenuates when the player is not running.
2020-10-09 11:34:14 +11:00
Mitchell Richters
babd7b9556
- InputState: Proposed new sensitivity dividers now that mouse input is based on true pitch and true angle.
2020-10-07 23:25:36 +11:00
Christoph Oelckers
a558703740
- bumped up the vertical mouse movement factor to 1/5 from 1/8.
...
1/8 was far too low for an average mouse
2020-09-29 18:14:22 +02:00
Mitchell Richters
0bb9904338
- Tune mouse input following changes in b57e13ff62
.
...
* Reduce `hidInput->mouseturny` to previous scaling (0.25 of incoming input).
* Change `hidInput->mouseturnx` to be 0.5 of incoming input (33% slower than b57e13ff62
, but matches what other ports by providing a 2:1 scale).
* Remove further divisions beyond m_side and m_forward and adjust code in `processMovement()` accordingly.
* Change scaling for `mousevelscale` in `processMovement()` to be 1/160th of keymove. Slightly lower for Duke and a lot faster for Blood where it's needed.
2020-09-29 21:02:36 +10:00
Christoph Oelckers
b57e13ff62
- mouse code update.
...
May still need some tweaking of the factors.
2020-09-28 22:36:43 +02:00
Mitchell Richters
71d667cdc9
- ApplyGlobalInput()
: Fix const issue.
2020-09-25 13:33:44 +10:00
Mitchell Richters
aa14ee1232
- InputState: Scale dyaw/dpitch with regards to ticrate. All testing on initial uplift was with Duke at 30Hz. SW running at 40Hz therefore is not at the same speed as the others.
2020-09-25 00:25:49 +10:00
Christoph Oelckers
d74d65bece
- clear the 2D drawers in the correct place.
2020-09-15 21:52:02 +02:00
Christoph Oelckers
38cc094ac3
- adapt ClearAllInput to new globalized code.
2020-09-10 23:35:42 +02:00
Mitchell Richters
fa9fa88fce
Merge branch 'back_to_basics2' into InputStuffs
...
# Conflicts:
# source/core/gamestruct.h
# source/games/duke/src/duke3d.h
# source/sw/src/input.cpp
# source/sw/src/player.cpp
2020-09-07 07:51:37 +10:00
Christoph Oelckers
18b39fd952
- first stage of generic automap code.
...
Lines and textures get rendered, not all colors are correct - sprites yet to do...
2020-09-06 20:49:43 +02:00