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
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
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
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
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
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
1060d74e08
- SW's automap sprite drawer.
2020-09-06 21:50:02 +02: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
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
Christoph Oelckers
fd2ce0321e
- transitioned SW to level change event system
2020-09-04 21:15:15 +02:00
Christoph Oelckers
b8d2d626ca
- cleaned out some leftover network variables
2020-09-04 20:48:29 +02:00
Christoph Oelckers
e5e8c02f1d
- WIP level transition refactored to a game independent event system.
2020-09-04 19:43:35 +02:00
Christoph Oelckers
3e5e956b72
- run most cheats through the network.
...
The remaining excpetions are the "give" CCMD and any level change action.
Unfortunately the implementation of most cheats is not multiplayer safe so right now it'd only be useful for demo recording (assuming that worked to begin with... ;))
2020-09-03 01:32:51 +02:00
Christoph Oelckers
a0874a26a7
- noclip cheat and splitting of Exhumed's cheat code into its own file.
2020-09-03 00:41:32 +02:00
Christoph Oelckers
66bf8113b8
- implemented the 'god' cheat as a network command.
...
This was mainly chosen as something simple to get the basics set up.
2020-09-03 00:29:17 +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
Christoph Oelckers
141b5c00cd
- cleanup.
2020-09-02 20:58:37 +02:00
Christoph Oelckers
4d5e2f5bda
- dead data removal in network.cpp and the player struct.
2020-09-02 20:58:21 +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
2f05a93547
Merge branch 'Packet' into back_to_basics2
...
# Conflicts:
# source/core/gamestruct.h
# source/games/duke/src/gameloop.cpp
# source/games/duke/src/player_d.cpp
2020-08-31 00:09:56 +02:00
Christoph Oelckers
b8258da997
- cleaning out some trash from compat.h.
...
The header from hell...
2020-08-30 23:34:40 +02:00
Mitchell Richters
10962e2193
- SW: Implement cl_showmagamt
for the game's shotgun and uzi.
...
* SW does not have any special characters in its BigFont, so currently there's no divider between ammunition amounts. This is to be discussed on the PR.
2020-08-30 20:24:37 +02:00
Mitchell Richters
e32cd81cc7
- Unify stat fps
for all games.
2020-08-30 20:24:36 +02:00
Christoph Oelckers
0c455acaa2
- more work to switch over to the new loop.
...
Mainly separation of ticker and render calls
2020-08-30 10:42:44 +02:00
Christoph Oelckers
d49aedacea
- continued work on main loop - added a few new entry points to the game interface.
2020-08-30 00:55:49 +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
dc1f56e8f9
Merge remote-tracking branch 'remotes/Github_private/back_to_basics2' into Packet
...
# Conflicts:
# source/core/inputstate.cpp
# source/exhumed/src/exhumed.h
2020-08-29 01:19:48 +02:00
Christoph Oelckers
847fa48724
- cleaned out the remaining parts of baselayer.h
...
In particular this means to remove the option to disable widescreen aspect ratios. The way this was handled makes no sense with the current render backend.
The aspect ratio code will have to be redone entirely to properly obey the backend's settings.
2020-08-28 09:06:49 +02:00
Christoph Oelckers
d62d2eaec7
- processed all remaining local input CCMDs and removed some bits only needed for multiplayer.
...
These MP bits should be reimplemented as network commands later, they only take up valuable space in the bit field.
2020-08-28 00:03:35 +02:00
Christoph Oelckers
f597f7c265
- made the GameFunc constants global again.
...
With most of the more specific features being migrated to CCMDs the list is relatively clean now, with merely 2 buttons that are game specific.
2020-08-27 00:25:59 +02:00
Christoph Oelckers
c7e667a17a
- transition weapon selection in SW.
...
Thanks to the macro insanity for trivial operations in this code base this turned out to be a lot more troublesome than Duke...
2020-08-27 00:06:59 +02:00
Christoph Oelckers
abf715eace
- unified the packet structures of all games.
...
Currently the bit fields are still separate and they have to be merged, but for now the added memory does not matter.
Having this structure in the common parts will allow work on consolidating the input code, though.
2020-08-26 17:12:48 +02:00
Mitchell Richters
e0aaaf1f60
- All Games: Move gameclock
and lastTic
to gamecontrol.
2020-08-26 09:49:44 +10:00
Mitchell Richters
76776d24d7
- All Games: Remove use of ClockTicks
and replace with int
.
2020-08-26 09:49:42 +10:00
Mitchell Richters
40739d9176
- SW: Add ogameclock
and use in places where ototalclock
was used.
...
* Duke used `ototalclock` only to keep track of when the game ticked. SW uses it in the rendering code for differentials between tics so we should preserve that to prevent issues down the track.
2020-08-26 09:48:51 +10:00
Christoph Oelckers
84b6af24d3
- renamed the fields in SW's packet structure to match Duke's.
...
Preparation for moving the packet management into public code.
2020-08-25 22:06:01 +02:00
Mitchell Richters
386661f1ba
- SW: Migrate to GZDoom time code like Duke.
2020-08-25 19:51:32 +02:00
Christoph Oelckers
f1a988b221
- make use of map bindings
...
All automap controls have been moved there, and sizeup/sizedown have been made CCMDs, taking screen size management entirely out of the game modules
2020-08-24 20:20:15 +02:00
Christoph Oelckers
debb4b17b6
- transitioned SW's automap to the global variables
...
Also copied the automap label output to the status bar for proper ordering.
2020-08-24 19:36:17 +02:00
Christoph Oelckers
7859a29e95
- use global variables to track automap state
...
So far implemented in Duke/RR.
2020-08-24 19:31:43 +02:00
Christoph Oelckers
adb98a47ba
- restructured the main loop code so that the actual loop is in the common code.
2020-08-23 17:47:05 +02:00
Mitchell Richters
da2b1347ef
- SW: Change smoothratio
from int to double for storing returned result from CalcSmoothRatio()
with full precision.
2020-08-18 18:25:58 +10:00