Commit Graph

11928 Commits

Author SHA1 Message Date
Christoph Oelckers d2de11cd99 - hide the message display on intermission screens.
Fixes #336
2020-09-04 23:56:04 +02:00
Christoph Oelckers f72b283519 - fixed alignment of Exhumed's menu captions. 2020-09-04 23:31:41 +02:00
Christoph Oelckers 5a90f35aed - fixed order of Exhumed cinema texts and their color.
Fixes #286
2020-09-04 23:16:21 +02:00
Christoph Oelckers b7db8b988d - SW: Ignore follow mode setting when not on the automap.
Fixes #311.
2020-09-04 22:54:11 +02:00
Christoph Oelckers 2e8b808683 - added a C_ClearMessages function for the console and fixed game restart after death.
Fixes #322
2020-09-04 22:23:38 +02:00
Christoph Oelckers 1eb99f69c2 - transitioned Exhumed to level change events. 2020-09-04 21:59:38 +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 5bc80d2468 - macro cleanup 2020-09-04 21:17:24 +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 3eef0db6f6 - check if a map file exists before starting it. 2020-09-04 20:47:40 +02:00
Christoph Oelckers 97f395bd72 - transitioned Blood to the new level change messaging system 2020-09-04 20:46:44 +02:00
Christoph Oelckers 77f96a1c75 - fixing some issues. Level transitions in Duke are working now. 2020-09-04 19:43:36 +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 1cf0ca3f75 - save the global view variables in a savegame.
I have no idea why but these did not get restored to something useful anymore.
2020-09-04 01:17:06 +02:00
Christoph Oelckers b253ae123f - run screen jobs with uncapped frame rate.
Fixes #325
2020-09-03 18:36:37 +02:00
Christoph Oelckers 8f0a885f63 - route 'give' through the network for all games. 2020-09-03 17:39:41 +02:00
Christoph Oelckers fb334e7f1a - transitioned Blood's give command and changed SW's not to call the cheat handler. 2020-09-03 16:31:31 +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 66d8eae8e1 - implemented the framework for freeform network commands.
Unlike ZDoom this uses callbacks for implementation to keep game specific parts encapsulated to the game code.
2020-09-02 23:27:02 +02:00
Christoph Oelckers b3d89a6a0b - removed the old main loop. 2020-09-02 23:03: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
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
Christoph Oelckers b3d4bab4dd - deleted sync.cpp. 2020-09-02 20:57:03 +02:00
Christoph Oelckers 621a1e0b3d - removed the packet averaging code.
This is also part of the backend code and won't be needed here anymore.
2020-09-02 20:57:03 +02:00
Christoph Oelckers e19923ce4b - removed setGameClockStart.
This won't be needed anymore.
2020-09-02 20:57:03 +02:00
sinisterseed aed5f91b9c - small update to the credits (lowskill has evolved into sinisterseed) 2020-09-02 14:37:20 +02:00
Mitchell Richters 6e6f5dbb5b - Blood: Further tweak positioning for when ammo remaining gets lower than 10. 2020-09-02 19:42:16 +10:00
Mitchell Richters 1e8066ac59 - Blood: Tweak positioning for when using `cl_showmagamt 1`.
This moves the ammo count and inventory item icon/count over by 9px to compensate.
2020-09-02 19:13:30 +10:00
Christoph Oelckers aabbbcb2ff - reset the network timer after lengthy operations.
This includes loading a level and busy-waiting for a sound to play.
Also block these loops and the sounds they wait for in network games to avoid problems from longer delays here.
The problem seems to be directly inherited from ZDoom which shows the same issue with screen wipes.

Fixes #297
2020-09-02 10:00:07 +02:00
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 c5636e9917 - Blood: Partially revert b8b8e7a638 in case someone really wants to run with `cl_interpolate 0`. 2020-09-02 14:55:44 +10:00
Mitchell Richters b8b8e7a638 - Blood: Get synchronised input going in a testable way. This is not a complete re-factor, just enough to get it going. 2020-09-02 13:20:37 +10:00
Mitchell Richters 253d1a3989 - SW: Re-position actortime clocking.
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:28:41 +10: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 921f4e54d9 - made a slash for the ammo display in Blood. 2020-09-02 00:45:27 +02: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 35b14753e7 - "alternative weapon" should be active in all games except Exhumed. 2020-09-01 21:30:22 +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 e320e79df0 - use gFrameClock in DoSectorLighting
The higher precision of gameclock went totally unused in here.
2020-09-01 20:12:02 +02:00
Christoph Oelckers d0a3e1781e - Blood: eliminated gameclock in weapon draw code 2020-09-01 20:10:36 +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