Commit Graph

893 Commits

Author SHA1 Message Date
Christoph Oelckers 57a9419f8e - use FString for returning strings from the script parser.
This is mainly a preparation for merging the parser into sc_man, because sc_man does not keep token texts in a static variable.
This commit also fixes a handful of places that were flagged by the stricter conversion rules of FString.
2020-09-13 10:29:57 +02:00
Christoph Oelckers 89316aea33 - demoted the SWCustom parser to the primitive Hexen interface after finding out that this is all the Build parser can do.
This also meant I had to add symbol support to the old style number parsers.
2020-09-12 10:23:47 +02:00
Christoph Oelckers af7ad28ad6 - fixed some warnings that came back through the backdoor. 2020-09-10 23:28:50 +02:00
Christoph Oelckers d5b9a9ee43 Merge remote-tracking branch 'remotes/Github_private/InputStuffs' into back_to_basics2 2020-09-10 23:25:43 +02:00
Christoph Oelckers ef5ac2319e - migrated SW's info script parser to sc_man. 2020-09-10 17:46:54 +02:00
Mitchell Richters baeea5bf3c - SW: Fix angle speed while walking on sector objects like the bus in Seppuku Station.
* `playerSetAngle()` is too rigid since it continually sets angle until target reached, causing sluggish input. We only need to add a delta here.
2020-09-10 23:12:51 +10:00
Mitchell Richters 19fd0331d4 - SW: Interpolate vehicle sector objects for now, until something better can be determined. 2020-09-10 20:47:41 +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
Mitchell Richters be6e0d87d7 Revert "- SW: Attempt at making vehicle movement work nicely while uninterpolated."
This reverts commit 28a3ef131f.

I mostly added this to visualise an attempt at how I've attempted to make the vehicles work with unsynchronised input. I don't wish for this to be committed to the main branch as it's a net negative.
2020-09-10 19:56:13 +10:00
Christoph Oelckers 0c55c61b17 - SW load screen setup. 2020-09-09 23:10:18 +02:00
Christoph Oelckers 2ffb6a3580 - finally got rid of SWBOOL. 2020-09-09 20:32:24 +02:00
Christoph Oelckers e044582aef - fixed all issues with SWBOOL as pointed out by a type-safe wrapper class. 2020-09-09 20:28:05 +02: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 28a3ef131f - SW: Attempt at making vehicle movement work nicely while uninterpolated. 2020-09-09 22:45:21 +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 b72a3326d0 Merge branch 'back_to_basics2' into InputStuffs
# Conflicts:
#	source/core/d_net.cpp
2020-09-09 06:56:27 +10:00
Christoph Oelckers 298949ceb8 - more compat.h cleanup
Its elimination is getting closer. :)
2020-09-08 18:48:18 +02:00
Christoph Oelckers ec1c42b04a - got rid of common.h
All still relevant content was moved to places closer to its use.
2020-09-08 18:39:47 +02:00
Christoph Oelckers 8d2d36457f - consolidated the map name display on startup
Fixes #275
2020-09-08 18:28:41 +02: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 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