Commit graph

870 commits

Author SHA1 Message Date
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
cb7e797842 - SW: Partially revert changes from df0331a4c3. 2020-09-08 20:48:01 +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
c00217163b - SW: Fix turret sound with unsynchronised input. 2020-09-08 19:38:32 +10:00
Mitchell Richters
cda79496ce - SW: Fix DoPlayerDeathHoriz() with unsynchronised input. 2020-09-08 18:12:45 +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
f14405f9cc SW: getinput -> processMovement(). 2020-09-08 06:24:26 +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
0619281a34 - SW: Remove unused centering bool from PLAYERp struct. 2020-09-07 22:48:25 +10:00
Mitchell Richters
df0331a4c3 - SW: Promote all vehicle angle code to proper Q16.16.
* Input still rough with `cl_syncinput 0` for vehicles.
2020-09-07 22:36:11 +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
2e2ca03812 - SW: Promote recoil_horizoff to Q16.16 to avoid down-scaling only to upscale. 2020-09-07 21:34:13 +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
1cc1c21029 - SW: Add resetinputhelpers() and hook up within game. 2020-09-07 21:15:53 +10:00
Mitchell Richters
77816bf3d3 - SW: Promote adjustment of helpers to double since some values will be coming in with higher precision. 2020-09-07 21:03:30 +10:00
Mitchell Richters
584ec935ed - SW: Add Duke's input helpers and adjust to suit SW.
* These are temporary until a backend solution is available after all games have had initial uplift.
2020-09-07 20:35:35 +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
57db150ed3 - SW: Fix player sprite on the automap.
Now where did that wrong number come from? I have no idea.
2020-09-06 23:30:19 +02:00
Christoph Oelckers
38cd38f0eb Merge branch 'automap' into back_to_basics2 2020-09-06 23:13:36 +02:00
Christoph Oelckers
1060d74e08 - SW's automap sprite drawer. 2020-09-06 21:50:02 +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
Christoph Oelckers
809f8b5d4b - hooked up the new automap framework. 2020-09-06 12:44:58 +02: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
677efb20ba - SW: Don't check SB_RUN as player action in ChopsCheck().
Fixes #312.
2020-09-06 19:18:14 +10: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
7dbae8b8f4 - enabled autosaves.
Fixes #55
This only creates them but does not auto-resume from them.
2020-09-05 22:39:27 +02:00
Christoph Oelckers
c1786001b2 - route all game state changes through game actions.
This is to avoid problems with the main loop not calling Ticker and Render in sync.
2020-09-05 15:43:34 +02:00
Christoph Oelckers
32ec9ff369 - consolidated crosshair drawing and added ZDoom's crosshair code.
For Exhumed this is the default, for the other games it is an option.
Fixes #269.
2020-09-05 13:57:26 +02:00
Christoph Oelckers
adbedd30c4 - consolidated the 4 functions for handling the automap zoom. 2020-09-05 00:58:25 +02:00
Christoph Oelckers
b54fd2f054 - fixed: Entering the menu from SW's intro may not stop the sound.
This is a singular special case, everything else must do it.
Fixes #335
2020-09-05 00:07:06 +02:00