Christoph Oelckers
867b8f006f
Reverted key input changes from yesterday.
...
At least the SW version did not work right so let's take no chances here.
2020-09-15 21:54:10 +02:00
Christoph Oelckers
eb4e0b1b83
- restrict keyboard input to the actual tic in SW as well.
...
Also fixed the blocking of the strafe key with sector objects - this must have gotten lost somewhere.
2020-09-14 21:25:53 +02:00
Mitchell Richters
c5648be2bd
- SW: Properly scale controller input.
2020-09-14 19:29:12 +10:00
Mitchell Richters
3fc96e8840
- SW: Stop keyboard fvel/svel from allowing loc.fvel
/loc.svel
like Duke.
...
* Stops overshooting keymove when playing with `cl_syncinput 0`.
* Keymove is never as high as MAXFVEL/MAXSVEL, which is used as a thrash point for controller input.
* Fixes #390 .
2020-09-14 18:54:03 +10:00
Mitchell Richters
3df0d40312
- SW: Fix stupid issue with playerSetAngle()
and tweak how angTarget
/horizTarget
is determined to have been met.
2020-09-10 20:26:19 +10:00
Christoph Oelckers
1a647e8104
- globally search and replaced TRUE and FALSE in SW.
...
There were a handful of warnings afterward which were also addressed.
The SWBOOL type has not been handled yet.
2020-09-09 19:52:52 +02:00
Mitchell Richters
b2272bd377
SW: Partially revert 73d0772e87
and do in a way that's more fidele to the original workflow.
2020-09-09 23:01:37 +10:00
Mitchell Richters
e24521b189
- SW: Uplift playerSetHoriz()
similar to uplift to playerSetAngle()
in b832442e31
.
2020-09-09 22:04:59 +10:00
Mitchell Richters
b832442e31
- SW: New implementation of playerSetAngle()
that works better for intended purpose. This corrects the issues with angle not being quite right when getting onto a ladder.
2020-09-09 21:29:03 +10:00
Mitchell Richters
48630914b1
- SW: Remove boat code from new input code for cleanliness.
2020-09-09 00:34:51 +10:00
Mitchell Richters
1e3199413c
- SW: Rename all Tank-related function code to Vehicle.
2020-09-08 21:54:48 +10:00
Mitchell Richters
8625ac573d
- SW: Comment out all boat code, it's actually not used within the game at all and was very confusing...
2020-09-08 21:40:20 +10:00
Mitchell Richters
73d0772e87
- SW: Call DoPlayerMoveTurret()
in processMovement()
in lieu of DoPlayerTurnTurret()
and don't interpolate sector object's sprite while !cl_syncinput
.
...
* Makes operating the tank silky smooth while unsynchronised.
2020-09-08 19:42:22 +10:00
Mitchell Richters
083ed3e9b7
- SW: Handle angAdjust
and horizAdjust
directly in processMovement()
instead of via DoPlayerTurn()
/DoPlayerHorizon()
.
...
* Eliminates issues with when to call when player is dead, etc. Handles cases like climbing a ladder which doesn't trigger `DoPlayerTurn()`.
2020-09-08 06:50:38 +10:00
Mitchell Richters
5145bf907a
- SW: Hook up all vehicle turn code in processMovement()
except for DoPlayerTurnTankRect()
, which still needs considerations.
...
* Issue in `DoPlayerTurnTurret()` with `PlaySOsound()` calls occurring too frequently, still requires investigation on how to best handle this.
2020-09-08 06:22:47 +10:00
Mitchell Richters
e1a5e37126
- SW: Handle DoPlayerTurn()
/DoPlayerHorizon()
better while dead.
2020-09-07 21:50:43 +10:00
Mitchell Richters
681a8ebec2
- SW: Hook up horizAdjust
and adjust all ticrate amendments of q16horiz
via playerAddHoriz()
/playerSetHoriz()
.
2020-09-07 21:47:15 +10:00
Mitchell Richters
e36c9fc78c
- SW: Hook up angAdjust
and adjust all ticrate amendments of q16ang
via playerAddAngle()
/playerSetAngle()
.
...
* Promoted some uses of `getangle()` upscaled to Q16.16 with `gethiq16angle()` for higher precision.
2020-09-07 21:30:06 +10:00
Mitchell Richters
40a00be202
- SW: Remove inputScale
const from processMovement()
. Isn't needed anymore since input scaling in DoPlayerTurn()
has been removed.
2020-09-07 20:25:26 +10:00
Mitchell Richters
3667116274
- SW: Uplift of DoPlayerHorizon()
and PlayerAutoLook()
.
...
* Set `PF2_INPUT_CAN_AIM` explicitly where `DoPlayerHorizon()` would have been done within the original game.
* Replace original centering code and route `SB_CENTERVIEW` through the `SB_LOOK_UP`/`SB_LOOK_DOWN` code.
* With this commit, first person input is now nice again. Vehicle code still to be looked at.
2020-09-07 20:20:41 +10:00
Mitchell Richters
e84c8379d9
- SW: Uplift of DoPlayerTurn()
.
...
* Set `PF2_INPUT_CAN_TURN` explicitly where `DoPlayerTurn()` would have been done within the original game.
* Uplift the turn 180 code to full Q16.16.
* Eliminate stupid input scaling so input matches that provided by the input device.
* Ticrate angle adjustments outside of the player's control still to be uplifted.
2020-09-07 19:23:48 +10:00
Mitchell Richters
6e6373deda
- SW: Remove camq16*
variables from game and backend code that supported them.
...
* `cl_syncinput 0` is very raw at the moment.
2020-09-07 08:40:14 +10:00
Mitchell Richters
d1d40c6982
- SW: Move SW's input scaler into processMovement()
. Doesn't need to be available to any other function.
2020-09-07 08:07:53 +10:00
Mitchell Richters
6c091a116f
- SW: Fix issues from fa9fa88fce
while merging back_to_basics2
into working branch.
2020-09-07 07:56:42 +10: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
38cd38f0eb
Merge branch 'automap' into back_to_basics2
2020-09-06 23:13:36 +02:00
Mitchell Richters
cc3551dcaa
- SW: Ensure player's fvel/svel is calculated using q16ang
, and not camq16ang
.
...
Fixes #328 , again.
2020-09-07 05:21:00 +10:00
Mitchell Richters
613c32e6a2
- SW: Ensure player's fvel/svel is calculated using q16ang
, and not camq16ang
.
...
Fixes #328 , again.
2020-09-07 05:19:49 +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
Mitchell Richters
c183143ec6
- SW: Clear out the local input buffer while paused like Duke does.
2020-09-06 21:57:33 +10:00
Mitchell Richters
07d4c78e1f
- SW: Manually remove call to MoveScrollMode2D()
in anticipation of branch automap
being merged.
2020-09-06 21:55:37 +10:00
Mitchell Richters
46a12cf58a
- SW: Clean up gi->GetInput()
by removing some unneeded local variables.
2020-09-06 21:47:00 +10:00
Mitchell Richters
dfc3a13428
- SW: Finalise cleanup from remaining code in getinput()
to processWeapopn()
.
2020-09-06 21:46:26 +10:00
Mitchell Richters
e94bd9da04
- SW: Replace use of scaleAdjustmentToInterval()
in lieu of backend solution from 290e615807
.
2020-09-06 21:30:47 +10:00
Mitchell Richters
256e23673d
- SW: Clean up all the game's scaling stuff in processMovement()
.
2020-09-06 21:21:12 +10:00
Mitchell Richters
348be65399
- SW: Commence re-factoring getinput()
into processMovement()
, starting with top-most code.
2020-09-06 21:03:27 +10:00
Mitchell Richters
dd4251da09
- SW: Split getinput()
's input bits code into its own static function.
2020-09-06 20:52:58 +10:00
Mitchell Richters
ce160f7ac1
- SW: Split getinput()
's weapon code into its own static function.
2020-09-06 20:49:21 +10:00
Mitchell Richters
0ef9da6a0c
- SW: Make game's local input buffer static within input.cpp.
2020-09-06 20:19:29 +10:00
Mitchell Richters
722537a1f0
- InputState: Make CONTROL_GetInput()
return an object instead of accepting a pointer and provide to games as a function parameter.
...
* Provide read-only/const results from `CONTROL_GetInput()` so games can't change received input.
* Change non-descript `info` to `hidInput` (Human Interface Device).
* Remove a few unused prototypes.
2020-09-06 20:18:26 +10:00
Christoph Oelckers
a6c92aec64
- removed all automap code from SW and the flat drawer from the backend.
...
This should have been the last parts of automap code.
Now on to rebuild this thing in a cleaner fashion...
2020-09-06 12:14:08 +02:00
Mitchell Richters
d73ea118df
- SW: Get cl_syncinput 0
(default) working properly.
...
* Joystick input probably not appropriately scaled. Refactor is coming but lets just get the game workable for now.
* Fixes #328 .
2020-09-06 19:17:58 +10:00
Christoph Oelckers
b7db8b988d
- SW: Ignore follow mode setting when not on the automap.
...
Fixes #311 .
2020-09-04 22:54:11 +02:00
Christoph Oelckers
a222a7d7c9
- transitioned Shadow Warrior to new main loop.
...
Problem: Does not work yet with cl_syncinput = 0. Something about those angle and horizon settings is not right yet.
2020-09-02 20:58:37 +02:00
Mitchell Richters
17da849add
- SW: Get synchronised input going in a testable way. This is not a complete re-factor, just enough to get it going.
...
* Remove bool `PedanticMode`.
* Transition appropriate lines to `cl_syncinput`.
* Remove inlines added purely only to maintain DOS demo compatibility.
* Fix a few pedantic Q16.16 >> Int >> Q16.16 conversions.
2020-09-01 23:08:23 +10:00
Mitchell Richters
1354d52c05
- Major cleanup of Q16.16 utilisation within games and engine.
...
* Remove fix16.h/cpp and utilise library from m_fixed.h.
* Extend m_fixed.h with two inline functions for int to/from float operations.
* Replace fix16_floor operations with those from xs_Float.h
* Replace multiple Q16.16 conversions from 0 to just be 0.
* Replaced all found in-game bit-shifts and multiplications/divisions with inline functions from m_fixed.h
* Replaced many casts of FRACUNIT as double in SW's panel.cpp as it is converted to double by way of type promotion.
* Fixed missed precision fixes in SW's panel.cpp where some types weren't declared correctly.
* Replaced 100+ `Cos()/Sin() >> 16` operations for Blood with inline functions `CosScale16()/SinScale16()`.
2020-09-01 23:00:47 +10:00
Christoph Oelckers
3204a3e5fc
- negated the meaning of SB_AIMMODE.
...
This is because 'classic' aim mode will reset the view if the mouseaim key is not pressed.
The problem with this is that an empty input packet will trigger a view reset. If the meaning is inverted the default aim mode is free mouse view which doesn't try to alter any view state and is therefore preferable for an empty packet.
Fixes #292
2020-08-31 20:51:22 +02:00
Christoph Oelckers
56d0647412
- migrated the last 3 remaining UI controls to CCMDs.
2020-08-29 17:49:15 +02:00
Christoph Oelckers
694444b62a
- converted the remaining input bits.
...
Looks like it is working in all games except Blood (not that it surprises me that it's Blood again which has issues...)
2020-08-29 13:32:55 +02:00
Christoph Oelckers
7659107b75
- removed SW's SK_AUTO_AIM for good.
...
When networking becomes a thing again this can be done as a server CVAR without such a messy approach.
2020-08-29 02:19:41 +02:00