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
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
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
Mitchell Richters
6e4e2b04eb
- Fix pitch direction for controller input.
2022-12-15 08:42:43 +11:00
Mitchell Richters
ba3e8a9842
- Change most input constants to be doubles, and not DAngle objects.
...
* These are base scales that when divided by the game's ticrate, become degrees of angle. Too confusing...
* 3x genuine degree values remain.
2022-12-11 19:43:56 +01:00
Mitchell Richters
2c592405fa
- Separate pitch/yaw key input into separate functions and apply from the ticker.
2022-12-11 19:43:56 +01:00
Mitchell Richters
968d0ae0d2
- Implement new scaled angle change setup and remove enforcement of synchronised input.
2022-12-11 19:43:55 +01:00
Mitchell Richters
bb1113c251
- Remove the whole angle locking concept, we can just force synchronised input instead which is cleaner.
2022-12-11 18:42:01 +01:00
Mitchell Richters
6c0493868e
- Implement new method for applying scaled angle changes.
...
* This method works more accurately to how an angle change would occur under interpolated circumstances.
2022-12-11 18:42:01 +01:00
Mitchell Richters
abdeeac205
- Rework PlayerAngles::doViewPitch()
to apply at ticrate like PlayerAngles::doViewYaw()
.
2022-12-11 18:41:59 +01:00
Mitchell Richters
fdcf8bbe2f
- Reorder variables in getscaledangle()
.
2022-12-11 18:41:59 +01:00
Mitchell Richters
f9aeee5b4a
- Split out view angle stuff out of PlayerAngles::applyYaw()
into PlayerAngles::doViewYaw()
.
...
* Do all the view angle stuff as interpolated changes in the playsim as well, there's no need for these to be done at ticrate.
2022-12-11 18:41:59 +01:00
Mitchell Richters
2b9e3f804d
- Remove wrapper usage within gameinput.cpp.
2022-12-11 18:41:59 +01:00
Mitchell Richters
d7d76d5fc4
- Move all PlayerAngles view angle properties into new DRotator objects.
2022-12-11 18:41:58 +01:00
Mitchell Richters
175b182805
- Invert rotscrnang
so it rolls forward, consistent with all other angles.
2022-12-11 18:41:58 +01:00
Mitchell Richters
630c10856e
- Re-write PlayerAngles
scaled adjustment methods.
2022-12-11 18:41:58 +01:00
Mitchell Richters
24ec58f4e6
- Change wrapper internals for previous yaw to the actor's sprite DRotator and make sure all the games load a level.
2022-12-11 18:41:57 +01:00
Mitchell Richters
16a48cba17
- Change wrapper internals for previous pitch to the actor's sprite DRotator and make sure all the games load a level.
2022-12-11 18:41:57 +01:00
Mitchell Richters
850c988dfa
- Wrap access to previous yaw.
2022-12-11 18:41:57 +01:00
Mitchell Richters
be466fec8d
- Wrap access to current yaw.
2022-12-11 18:41:57 +01:00
Mitchell Richters
fd05d320ff
- Wrap access to previous pitch.
2022-12-11 18:41:56 +01:00
Mitchell Richters
15f1d89855
- Wrap access to current pitch.
2022-12-11 18:41:56 +01:00
Mitchell Richters
60a97f781e
- Add DCoreActor
pointer as PlayerAngles::pActor
, setting and nulling where the player's actor is set.
2022-12-11 18:41:56 +01:00
Mitchell Richters
b9f5bb71cc
- Merge PlayerHorizon
and PlayerAngle
structs into PlayerAngles
struct.
2022-12-11 18:41:56 +01:00
Mitchell Richters
d75ac9e445
- Rename PlayerAngle
prototypes in preparation for replacement work.
2022-12-11 18:41:56 +01:00
Mitchell Richters
9b6f01dff0
- Rename PlayerAngle
private members in preparation for replacement work.
2022-12-11 18:41:56 +01:00
Mitchell Richters
353c2a20fd
- Rename remaining PlayerAngle
methods.
2022-12-11 18:41:55 +01:00
Mitchell Richters
a061f2baef
- Rename PlayerAngle::spin
to its destined final name.
2022-12-11 18:41:55 +01:00
Mitchell Richters
a42750f37f
- Rename PlayerAngle::orotscrnang
in preparation for replacement work.
2022-12-11 18:41:55 +01:00
Mitchell Richters
7d34288290
- Rename PlayerAngle::rotscrnang
in preparation for replacement work.
2022-12-11 18:41:55 +01:00
Mitchell Richters
3a0ec29c18
- Rename PlayerAngle::olook_ang
in preparation for replacement work.
2022-12-11 18:41:55 +01:00
Mitchell Richters
644cf82238
- Rename PlayerAngle::look_ang
in preparation for replacement work.
2022-12-11 18:41:55 +01:00
Mitchell Richters
50cf22ec53
- Rename PlayerAngle::oang
in preparation for replacement work.
2022-12-11 18:41:55 +01:00
Mitchell Richters
bd063de5f5
- Rename PlayerAngle::ang
in preparation for replacement work.
2022-12-11 18:41:54 +01:00
Mitchell Richters
d810afa2e9
- Rename PlayerHorizon
prototypes in preparation for replacement work.
2022-12-11 18:41:54 +01:00
Mitchell Richters
b38f9a8779
- Rename PlayerHorizon
private members in preparation for replacement work.
2022-12-11 18:41:54 +01:00
Mitchell Richters
9ab8db04db
- Rename remaining PlayerHorizon
methods.
2022-12-11 18:41:54 +01:00
Mitchell Richters
723631cc81
- Rename PlayerHorizon::ohorizoff
in preparation for replacement work.
2022-12-11 18:41:54 +01:00
Mitchell Richters
216fad7e18
- Rename PlayerHorizon::horizoff
in preparation for replacement work.
2022-12-11 18:41:53 +01:00
Mitchell Richters
0c53990c87
- Rename PlayerHorizon::ohoriz
in preparation for replacement work.
2022-12-11 18:41:53 +01:00
Mitchell Richters
401a829d54
- Rename PlayerHorizon::horiz
in preparation for replacement work.
2022-12-11 18:41:53 +01:00
Mitchell Richters
25460e8e98
- Fix change to constant in last commit.
...
* How did that little `3` not make it in...
2022-12-09 20:00:37 +11:00
Mitchell Richters
2a82ef85b8
- Minor optimisation to the return to centre code.
2022-12-09 18:00:56 +11:00
Mitchell Richters
92bf00d3e9
- Fix incorrect sector usage in calcviewpitch()
.
2022-12-09 17:48:26 +11:00
Mitchell Richters
1772238653
- Fix incorrect value for PITCH_HORIZOFFSPEED
input constant.
2022-12-07 15:21:52 +11:00
Mitchell Richters
df63e5411b
- Fix incorrect sign for PITCH_HORIZOFFCLIMB
input constant.
2022-12-07 13:11:59 +11:00
Mitchell Richters
817a0cb94a
- Clamp applied mouse input to be within safe ranges to interpolate with.
...
* Input greater than 180 degrees in a single tic can cause the input to be applied backwards.
2022-11-07 19:38:22 +11:00
Mitchell Richters
11f279fddd
- Slight input code tidy-up.
2022-11-06 21:59:07 +11:00
Mitchell Richters
033e0ea7bc
- Make rotscrnang return to zero at same speed as look_ang.
2022-11-06 21:59:07 +11:00
Christoph Oelckers
902f8c9706
- silenced lots of warnings for deliberate type conversions.
...
The ones in d_net.cpp are not in active code.
2022-10-30 16:51:35 +01:00
Mitchell Richters
cea2b6b428
- Rename PlayerHorizon::__horiz
back to horiz
.
2022-10-30 16:51:12 +01:00
Mitchell Richters
0600bf5860
- Negate everything to do with PlayerHorizon::__horiz
where appropriate, including some loose horizoff
members.
2022-10-30 16:51:11 +01:00
Mitchell Richters
619b8005ac
- Rename PlayerHorizon::horiz
in prep for negating this angle throughout code.
2022-10-30 16:51:11 +01:00
Mitchell Richters
c3adf5ea58
- Slight clean up of input constants.
2022-10-25 07:07:14 +02:00
Mitchell Richters
5d8cc1b4fc
- Store all input speed constants as DAngle to avoid calling DAngle::fromDeg()
all the time.
2022-10-25 07:07:02 +02:00
Mitchell Richters
2baf35ed2d
- Slightly tidy up PlayerHorizon::applyinput()
.
2022-10-25 07:06:55 +02:00
Mitchell Richters
8d3f3c6025
- Cut over to DAngle
from fixedhoriz
and remove the latter.
2022-10-25 07:06:55 +02:00
Mitchell Richters
0d8b2ba59d
- Tidy up all constants in gameinput.cpp
and convert to native degrees/pitch where appropriate.
2022-10-25 07:06:55 +02:00
Mitchell Richters
eedcfb46c6
- Convert calcviewpitch()
to work with a temporary DAngle so we can eliminate the temporary tanhoriz()
friend.
2022-10-25 07:06:54 +02:00
Mitchell Richters
ca8f8d6d36
- Remove all remaining q16horiz()
calls, also correcting a long-standing Duke bug.
2022-10-25 07:06:54 +02:00
Mitchell Richters
8697e5f054
- Replace all q16horiz(0)
calls.
2022-10-25 07:06:54 +02:00
Mitchell Richters
5bf23f0642
- Develop new scaled horizon return to centre with initial return from full articulation scaled by the pitch's sine.
...
* When coming back from a full view pitch using the original algorithm, the initial snap-back from 90 degrees is very aggressive.
* Return to centre speed retuned to be 1:1 to the ms with the tangent at Duke/SW's clamped pitch.
2022-10-25 07:06:54 +02:00
Mitchell Richters
d923ef9a8c
- Perform horizon's return to centre using pitch instead of tangent.
...
* Return to centre speed tuned to be 1:1 to the ms with the tangent at Duke/SW's clamped pitch.
2022-10-25 07:06:53 +02:00
Mitchell Richters
5851c0f2c6
- Clean up some q16horiz usage and how the view pitch is clamped.
2022-10-25 07:06:53 +02:00
Mitchell Richters
4ef9ec93ea
- Remove fixedhoriz::asbuildf()
and associated buildf friend.
...
* The new friend `tanhoriz()` is just for the input code for now.
2022-10-25 07:06:53 +02:00
Mitchell Richters
fcdb360b92
- Add fixedhoriz::Sgn()
.
2022-10-25 07:06:53 +02:00
Mitchell Richters
e4ae726015
- Rename fixedhoriz::aspitch()
to Degrees()
to match DAngle
objects.
2022-10-25 07:06:53 +02:00
Mitchell Richters
95cd74bdc0
- renamed slope functions so that the int versions get a special name.
2022-10-22 12:17:02 +02:00
Mitchell Richters
85f716e49b
- floatify calcviewpitch
2022-10-22 12:17:00 +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
Mitchell Richters
def2b9d483
- Flip svel
around in the input code so we can use proper anti-clockwise vector math.
2022-10-20 00:48:09 +02:00
Mitchell Richters
bc018dd946
- Use getCorrectedScale()
in conjunction with looking keys like scaletozero()
functions.
2022-10-18 19:52:02 +02:00
Mitchell Richters
bdc6a5cf69
- Remove fudging from I_GetInputFrac()
and correct getPushBuild()
.
2022-10-18 19:52:02 +02:00
Mitchell Richters
478e7a6801
- Eliminate some TAngle floating point Build method usage.
2022-10-05 00:36:31 +02:00
Mitchell Richters
5c84f93c08
- Use the static constexpr nullAngle
everywhere possible.
2022-10-05 00:36:30 +02:00
Mitchell Richters
b23e77d9c7
- Replace player's ang
with DAngle
object.
...
* This commit does not build. Committed items are everything that's been done by find and replace.
* Next commit has hand-performed changes that are better separated out for clarity.
2022-10-05 00:36:27 +02:00
Mitchell Richters
7a6f5c0864
- Replace binangle
usage in PlayerHorizon::calcviewpitch()
with DAngle
object.
2022-10-05 00:36:27 +02:00
Mitchell Richters
13ea55b4cb
- Replace player's rotscrnang
and look_ang
angles with DAngle
objects.
...
* Went the el cheapo route and added some floating point Build angle methods. As these and the integer build methods are really just refactoring aids, we'll come back to this in due course.
2022-10-05 00:36:26 +02:00
Christoph Oelckers
b31e6c0bdf
- replaced getclosestpointonwall_internal with a floating point version based on NearestPointLine.
2022-08-05 17:04:46 +02:00
Mitchell Richters
79022e8afa
- Clean up and simplify getincangle()
/getincanglebam()
functions and inline them.
2022-07-23 12:57:45 +10:00
Mitchell Richters
4324f923bc
- Call updateTurnHeldAmt()
after doing the turn, not before it. This gives one tic more preamble.
2022-07-23 10:37:32 +10:00
Mitchell Richters
e016f65321
- Don't adjust joystick pitch/yaw speeds based on whether autorun is enabled or not.
...
* Only SW did this out of the box.
* Duke never did, NBlood has no working joystick setup to compare with, and GZDoom doesn't either.
* Fixes #693 .
2022-07-23 10:37:32 +10:00
Mitchell Richters
a423b93ad8
- Use turnscale
in controller pitch calculations, which is only used in SW when on a sector object, and is original behaviour.
2022-07-23 10:37:32 +10: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
Mitchell Richters
c68e112867
- Remove some unnecessary branching and abs()
calls in processMovement()
.
...
* Since fvel/svel is clamped at the end of the function, these tests just aren't necessary.
* Reversed the logic in some if statements so the most likely outcome doesn't fall to the else branch.
2022-07-23 10:37:32 +10:00
Mitchell Richters
ea17352aea
- Do some small tidying up in gameinput.cpp
and change how some constants are stored.
2022-07-23 10:37:32 +10:00
Mitchell Richters
1906491129
- Move some PlayerHorizon
/PlayerAngle
class methods out into inlines in gameinput.cpp
.
...
* These class methods did nothing with the objects inside the class, they worked generically so they're better as inlines.
* Also tidied up some of the internals so they're easier to read.
2022-07-23 10:37:32 +10:00
Mitchell Richters
612dd049f9
- Remove unused PlayerPosition
structure.
...
* There were some plans around this being in use for all the various player structs in each game, but it hasn't come to be.
* Code remains in the commit history, it can come back if it's of use in the future.
2022-05-30 21:33:14 +10:00
Mitchell Richters
70d2a8dc78
- Remove a seldom-used getTicrateScale()
overload.
2022-05-30 21:06:32 +10:00
Mitchell Richters
118ceb18ca
- Capitalise vec2_t
y
variable.
2021-12-30 09:57:02 +01:00
Mitchell Richters
3c9cd926ba
- Capitalise vec2_t
x
variable.
2021-12-30 09:57:02 +01:00
Christoph Oelckers
41506f35db
- calcviewpitch
2021-12-26 23:08:40 +01:00
Mitch Richters
8fefead4e5
- Remove cancellation of quick turn if mouse/keyboard/controller angle input is detected that was introduced in 2129d3b4e7
.
...
* Requested in https://forum.zdoom.org/viewtopic.php?f=342&t=73231
* Neither EDuke32 nor GZDoom do this, so the rationale is we shouldn't either.
2021-11-29 00:56:32 +01:00
Christoph Oelckers
fcbb7320a8
- Duke/RR: added all checks needed for not letting Duke crash with noclip when not accepting -1 as a valid sector pointer.
...
All places that were causing a crash are now guared by calling 'insector()'.
2021-11-29 00:56:31 +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