Commit graph

65 commits

Author SHA1 Message Date
Mitchell Richters
f39939d114 - gamecontrol: Initial setup of PlayerHorizon struct and deployment within Duke.
* Started with the most complicated game first.
* Struct made up of fixedhoriz class units.
* Append currently outgoing function names with `2` at the end to avoid conflict.
2020-10-07 17:12:48 +11:00
Mitchell Richters
9b12675f4e - processMovement(): Re-arrange parameter variables somewhat so game-specific parameters are at the end and to allow some common defaults so they don't need specifying. 2020-09-25 22:26:50 +10:00
Mitchell Richters
9e0bd569f7 Merge branch 'back_to_basics2' into Input_UnifyProcessMovement
# Conflicts:
#	source/exhumed/src/input.cpp
2020-09-25 00:17:16 +10:00
Mitchell Richters
f0262039b6 - Exhumed: Fixed issues with call to playerProcessHelpers() not occurring after dying. 2020-09-25 00:04:19 +10:00
Mitchell Richters
04af1d9ce8 - All Games: Unify processMovement(). 2020-09-24 22:32:37 +10:00
Mitchell Richters
8690c633d8 - Blood: Add extra call to inputState.ClearAllInput() in StartLevel(). 2020-09-24 00:20:40 +10:00
Mitchell Richters
e078ea6ebd - Blood/Exhumed/SW: Hook up gi->clearlocalinputstate(). 2020-09-24 00:15:51 +10:00
Mitchell Richters
9b85816f70 - Exhumed: Fix ordering issue in gi->GetInput() preventing player from pressing use to start again. 2020-09-23 23:45:32 +10:00
Mitchell Richters
d338e60841 - Exhumed: Hook up crouch action to applylook() that was forgotten during initial implementation. 2020-09-22 16:06:12 +10:00
Mitchell Richters
f8210ef8ee - Exhumed: Clean out some old bools regarding old panning code. 2020-09-21 20:44:02 +10:00
Mitchell Richters
d46787cd96 - Exhumed: Restore synchronised input, hook up rest of backend input functions and get rid of nPlayerDAng. 2020-09-21 20:37:09 +10:00
Mitchell Richters
fa1ce1c021 - Exhumed: Hooked up tic-rate input helpers. Also removed nDestVertPan[]. 2020-09-21 19:29:16 +10:00
Mitchell Richters
3de787235d - Exhumed: Initial uplift of player input. Still more to do. 2020-09-21 18:36:11 +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
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
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
df6d480519 - took automap code out of Exhumed's game module and added handling for cleaning movement in automap follow mode.
I cannot say I was surprised when discovering that this game had no handling for that at all...
2020-09-06 10:23:38 +02:00
Christoph Oelckers
04dd939d65 - Exhumed: don't clear all button state when dead.
This makes it impossible to respawn.
Fixes #338
2020-09-05 12:14:30 +02:00
Christoph Oelckers
adbedd30c4 - consolidated the 4 functions for handling the automap zoom. 2020-09-05 00:58:25 +02:00
Christoph Oelckers
8114309e89 - compat.h cleanup.
* use static_assert directly. Raze is C++17, no need for that macro shit.
* removed CONSTEXPR - I seriously fail to see the use here, many of the functions marked as CONSTEXPR cannot possibly even be constant evaluated so the declaration makes no sense. Removed most of these and replaced the valid ones with the official constexpr keyword.
* got rid of EDUKE_PREDICT_FALSE - this makes zero sense in script parsing code, at best it will save a few microseconds. Clean code wins.
* replaced Blrintf with xs_CRoundToInt. Shitty name is shitty name, even if derived from POSIX.
* replaced Bstr*casecmp with str*icmp. As these get defined in the CMake project based on actual compiler checks they are preferable here.
* removed lots of other stuff that is not needed with a minimum compiler requirement of C++17.
2020-09-04 21:24:48 +02:00
Christoph Oelckers
b49e050baf - transitioned Exhumed to the new main loop.
Fixed #301
2020-09-02 22:55:57 +02:00
Christoph Oelckers
b1a3080671 - migrated Exhumed to a local ticker as well.
gameclock is history - all games now run on a timer that increments once per tick under their own control and not independently of the ticker routine.
2020-09-02 21:42:12 +02: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
d40e53eb53 - more Exhumed pitch change fixes. 2020-08-31 21:48:17 +02:00
Christoph Oelckers
6b1fa22aed - fixed view centering in Exhumed.
Switched to GDX's code because the one present here looked quite weird.
This still does not feature interpolation.
Fixes #296
2020-08-31 21:41:39 +02: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
fe7f3a2f9e - handle the run key. 2020-08-29 00:57:07 +02:00
Christoph Oelckers
b9e0f493b2 - transitioned the 5 primary action keys: Open, Jump, Crouch and Fire/AltFire. 2020-08-28 23:25:08 +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
ee7d558282 - removed the remains of sending pause with the input packets.
None of this was really working anymore, but will have to be rethought once a network stream exists again.
But even then, this is better sent as a separate command, and in MP only.
2020-08-27 22:38:52 +02:00
Christoph Oelckers
447573aa36 - consolidation of invprev, invnext and invuse. 2020-08-27 22:19:24 +02:00
Christoph Oelckers
43de0d8312 - consolidation of inventory item activation through hotkeys.
This also adds hotkeys for Exhumed which never implemented them.
2020-08-27 21:25:09 +02:00
Christoph Oelckers
10df3e094a - rework of weapon input to use common features in shared code.
This also adds stubs for all unimplemented features in the games for easier addition.
2020-08-27 00:53:35 +02:00
Christoph Oelckers
4b299fa412 - Exhumed also handled. 2020-08-27 00:58:21 +02:00
Mitchell Richters
0c300c181f - Exhumed: Unify game with single timer instead of getting forward/side velocity at 120Hz.
* Player movement is close, but not exactly as it was. Requires more work if it is to be considered.

# Conflicts:
#	source/exhumed/src/exhumed.cpp
#	source/exhumed/src/ps_input.h
2020-08-26 17:26:42 +02:00
Christoph Oelckers
c1b1182f90 - fix weapon selection in Exhumed.
Like Blood it looks like the request isn't processed immediately so it needs to stick around.
2020-08-26 16:59:42 +02:00
Mitchell Richters
a6cc3c4128 - Exhumed: Migrate to GZDoom time code like Duke and SW. 2020-08-26 09:48:57 +10:00
Christoph Oelckers
5df0a7241f - disabled a few menu options for unsupported features in Exhumed.
Fixes #255
2020-08-25 20:40:30 +02:00
Christoph Oelckers
76811a1881 - InputState cleanup
This removes most of the InputState class because it is no longer used.
The only remaining places still checking scan codes are the modifiers for sizeup and sizedown.
All the rest was remapped to safer methods. The multiplayer taunts are currently inoperable, they will need support of shift-bindings to get proper support.
2020-08-24 20:34:18 +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
e158775e67 - … and for Exhumed
This game does not implement follow mode.
Note: Follow mode needs to be simplified across games!
2020-08-24 19:54:26 +02:00
Christoph Oelckers
1a0e413d5c - use CCMDs for Exhumed's input where applicable.
- made crosshair toggle consistent across games.
2020-08-23 16:11:18 +02:00
Christoph Oelckers
3a3ba43985 - Exhumed: moved the input code out of the main loop 2020-08-23 07:41:29 +02:00
Christoph Oelckers
8b3e3b6d4a - cleaned out some waiting code.
There's still too many loops but this at least gets rid of the empty ones.
2020-08-22 10:17:24 +02:00
Christoph Oelckers
aa5f42e5f4 - more header consolidation and cleanup.
In particular, this removes the pointless kTrue and kFalse constants.
2020-08-18 18:56:56 +02:00
Christoph Oelckers
4ea93ebccc Exhumed code cleanup
merging all AI headers and removing several unused files
2020-08-18 18:56:39 +02:00
Christoph Oelckers
d464017363 - cleaned up the input code a bit. 2020-01-01 11:35:47 +01:00
Christoph Oelckers
7fd86c8640 - config.cpp was also free of actual content. 2019-12-26 18:36:07 +01:00