Christoph Oelckers
4feae913cd
-Blood: merge redundant gFrameCount and gLevelTime variables, reset the timers as the first thing when loading a level.
...
They need to be reset when level data gets set because the current value is used as base.
It was most easily observed at the start of the first level where the grave only would open after a lengthy delay - which was the play time of the last level being played.
2020-09-02 07:47:26 +02:00
Christoph Oelckers
b21f49a1e1
- handle r_NoInterpolate in Blood's ticker so that the game isn't locked to 30 fps.
2020-09-02 07:11:47 +02:00
Mitchell Richters
715a61adbd
- Blood: Re-position actortime clocking and remove #ifdef guarded call to non-existent function.
...
I believe this is the right place and I got it wrong when doing e32cd81cc7
. The change in this commit is more like where Duke times actortime.
2020-09-02 09:15:18 +10:00
Christoph Oelckers
e5612b82c7
- fixed: The tile manager created its backup arrays before loading .def files.
...
This could let such textures disappear with the new main loop.
2020-09-02 00:36:49 +02:00
Christoph Oelckers
8d63e735d0
- transitioned Blood to the new main loop.
...
Mostly working but interpolation is not correct yet and for some strange reason the numbers on the HUD are gone.
2020-09-01 23:34:04 +02:00
Christoph Oelckers
7747fc7fb0
- rewrote the EndMgr in Blood to work as a screen job.
...
This removes the special handling for it in the main loop.
Some functions and variables in the kill and secret managers were also given more meaningful names.
Fixes #313
2020-09-01 21:27:32 +02:00
Christoph Oelckers
fda74a47b4
- use gFrameClock plus interpolation for third person view and tick the flash counter for the CTF HUD in the ticker, not the drawer.
...
This removes a lot of mess.
2020-09-01 20:15:34 +02:00
Christoph Oelckers
4b45ee150f
- Blood: replaced several uses of gameclock with gFrameClock
...
Mainly those which do not use its full precision.
Choke needs interpolation support, though.
2020-09-01 20:08:37 +02:00
Christoph Oelckers
31fc39b051
- Blood code cleanup
...
deleting blocks of unused code, in particular some networking leftovers.
Also moving a few functions around
2020-09-01 19:49:05 +02:00
Christoph Oelckers
dfb6c0d6fa
- Blood: moved the precaching code to its own file.
2020-09-01 19:39:30 +02: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
Mitchell Richters
e32cd81cc7
- Unify stat fps
for all games.
2020-08-30 20:24:36 +02:00
Christoph Oelckers
ffe5b114f3
- the engine starts on the new main loop and is capable of running the intros and the menu, but not the game yet.
2020-08-30 12:49:21 +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
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
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
b9e0f493b2
- transitioned the 5 primary action keys: Open, Jump, Crouch and Fire/AltFire.
2020-08-28 23:25:08 +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
536e7455f2
- moved I_StartFrame to the top of the loop and cleaned up baselayer.hj
2020-08-28 08:44:44 +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
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
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
99486cba7e
- gave Blood the same treatment.
2020-08-27 00:21:11 +02:00
Christoph Oelckers
d0655a1068
- renamed the fields in Blood's packet structure to match Duke's.
2020-08-26 16:59:41 +02:00
Christoph Oelckers
3fc79940f2
- merged the bit fields in Blood's packet structure.
...
Whatever this was for it made that thing extremely unwieldy.
With these merged the resulting structure doesn't look much different from Duke's anymore.
2020-08-26 16:59:41 +02:00
Christoph Oelckers
b76168f673
- moved the main event processing functions into the global main loop.
...
Now, with all the Build timer stuff removed these calls were all identical between games.
2020-08-26 16:59:41 +02:00
Mitchell Richters
5bfd4069ef
- Blood: Cleanup some timing variables following timing uplift.
...
* Remove cast of int on `gFrameClock` since gFrameClock is now just an int.
* Remove unused `gFrameTicks`.
* Remove unused `gFrameRate`.
* Rename `gFrame` to `gFrameCount` so it's easier to search and distinguish from `gFrameClock` without relying on regex.
2020-08-26 20:55:46 +10:00
Mitchell Richters
2bf11ad378
- All Games: Remove use of timerGetTicks()
.
2020-08-26 09:49:38 +10:00
Mitchell Richters
aba5c4c134
- All Games: Remove use of timerGetHiTicks()
.
2020-08-26 09:49:36 +10:00
Mitchell Richters
b883204f6a
- All Games: Remove remaining use of totalclock
and associated timing code.
2020-08-26 09:49:34 +10:00
Mitchell Richters
d358c71f82
- Blood: Migrate to GZDoom time code like Duke, SW and Exhumed.
2020-08-26 09:49:23 +10:00
Christoph Oelckers
9440ddb68f
- thinned out Blood's network code.
2020-08-25 23:04:08 +02:00
Christoph Oelckers
e97fb2ab7f
- reduce message spam in the notification display.
2020-08-25 20:21:18 +02:00
Christoph Oelckers
435e13dfa4
cleanup of the timer interface.
...
* rewrote all uses of timerSetCallback. Most were unnecessary or long obsolete, the sound updates need to run per frame, not per tic and the UI tickers need to be handled in the main loop anyway.
* Use a more precise timer to animate the menu transition.
* uncouple other menu animations from the game timer.
2020-08-25 19:42:11 +02:00
Christoph Oelckers
ce853c5376
- Blood does not restart the intro sequence.
...
Fixes #247
2020-08-25 18:06:16 +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
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
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
78bfbdb253
- Exhumed status bar work.
...
Unfortunately this is a bit limited due to how the data was designed.
2020-08-20 17:04:21 +02:00
Christoph Oelckers
d645674c1c
- consolidated the DEF parser parts in the backend.
...
Only Blood had some special handling - better implement callbacks here instead of requiring a second parsing pass.
2020-08-19 20:29:37 +02:00
Christoph Oelckers
57cdcda253
- initiate a proper game state reset when ending an episode.
...
Fixes #207 .
2020-08-18 20:56:18 +02:00
Christoph Oelckers
57efb26567
- wrap Blood's main loop into an exception handler for recoverable errors.
2020-08-16 20:04:27 +02:00
Christoph Oelckers
9700b8435b
- handle Blood's level progression by the actual level data, not some episode/level pair.
...
This should allow loading user maps again.
2020-08-16 13:49:28 +02:00
Christoph Oelckers
598ea99441
- simplify the music starting code in Blood.
2020-08-16 12:35:46 +02:00
Christoph Oelckers
0ac8568be0
- removed redundant fields from Blood's startup info struct.
2020-08-16 11:58:42 +02:00
Christoph Oelckers
7bb6b6a1ee
- do not call handleEvents outside the main loop.
...
In other places I_GetEvent should be used to call the system's message pump and keep the app responsive, but all game side processing should be skipped.
2020-08-16 10:00:13 +02:00