Commit graph

111 commits

Author SHA1 Message Date
Christoph Oelckers
0c397033f1 added the remaining needed GetChars calls. 2023-12-05 22:39:27 +01:00
Christoph Oelckers
ee07ae35aa retrieve time in fillSummary. 2023-10-01 12:10:56 +02:00
Mitchell Richters
85482b0951 - Fix CVAR comments from previous commit. 2023-04-05 17:59:04 +10:00
Mitchell Richters
32e6e1ce5f - Allow disabling of level start/end cutscenes if a user desires.
* Allows for situations where in Blood or Exhumed, you wish to have a shortcut that directly gets you into a level.
* Could be used for seamless playing options if a user doesn't care for level ending screens.
* Not exposing this to the menu for now as I doubt demand would be high for such a thing.
2023-04-05 17:46:40 +10:00
Christoph Oelckers
998def2487 - another backend update from GZDoom. 2022-06-06 15:28:41 +02:00
Christoph Oelckers
4b9ea92969 - gracefully handle when a map tries to exit twice.
This case left a broken ScreenJobRunner behind which later crashed on garbage collection.
2022-01-15 19:20:58 +01:00
Christoph Oelckers
ca10495d7c - Blood: back up player state before ending the level, not just before loading the new one.
The latter is too late, the player's actor data may already be stale and invalid here.
2021-12-26 23:09:56 +01:00
Christoph Oelckers
f765783437 - various small bits of cleanup. 2021-11-29 00:57:11 +01:00
Mitchell Richters
37f8fc8b0d - Allow disabling of load screens like how they were before the move of ScreenJob from native code to ZScript. 2021-08-26 10:34:00 +10:00
Christoph Oelckers
5aa27bad3b - flag SW's cutscenes as 'boss death only'. 2021-08-13 22:25:13 +02:00
Christoph Oelckers
d98a567597 - halt the game timer when setting up a cutscene and when starting movie playback.
These are both lengthy operations that can take several 100s of milliseconds, so when starting a streaming video they can throw off the timing quite significantly.
With this the intermissiondelay counter could be removed as it was only there to flush the accumulated time before starting video playback.
2021-05-23 14:36:54 +02:00
Christoph Oelckers
f69fe334fc - removed duplicate variable. 2021-05-22 09:22:30 +02:00
Christoph Oelckers
e10bcf6294 - split the screen job code into a generic and a Raze specific part.
Preparations for porting this to GZDoom.
2021-05-22 01:35:50 +02:00
Christoph Oelckers
b0cc5c14e2 - fixed bad argument count in ScreenJobRunner.Validate call. 2021-05-21 17:32:36 +02:00
Christoph Oelckers
1168341d5a - fixed more warnings in 'core'. 2021-05-12 21:47:32 +02:00
Christoph Oelckers
fd6dd7f467 - Skip the load screen if the level is started from the console.
In this case the load screen is not helpful as it blocks the actual level start, requiring closing and reopening the console first before entering any commands that need the level.
2021-05-12 00:36:04 +02:00
Christoph Oelckers
a1381c0ff2 - fixed Blood cutscene setup to avoid dependency on the sound code initialization.
It now only stores the sound name or ID but not the internal index which is only looked up when needed.
2021-05-02 18:10:59 +02:00
Christoph Oelckers
bb9d492db6 - migrated RRRA as well. 2021-05-02 14:01:10 +02:00
Christoph Oelckers
825963661b - migrated volumes to the new storage. 2021-05-02 00:35:56 +02:00
Christoph Oelckers
b21dadeef0 - we need to wait a bit before starting the intro scene.
The game timer actually starts before the main loop is ready so we have to wait with the cutscene until the loop is in sync with the timer.
2021-05-01 19:46:17 +02:00
Christoph Oelckers
4069a5096a - scriptified Exhumed's 2D content (minus the programmatic textures.) 2021-04-30 20:08:36 +02:00
Christoph Oelckers
eaf5e1fba5 - Cutscene support in Blood.
Intro tested, rest to do.
2021-04-30 20:08:34 +02:00
Christoph Oelckers
869dbd70e5 - fixed the design by merging the episode start handler into ShowIntermission.
Tying the start-of-episode cutscene to the cluster does not really work because it gets triggered by all maps of the cluster.
All currently existing intro cutscenes are tied to the map anyway.
Also correcting transition movie name for RRRA E2L1.
2021-04-30 20:08:34 +02:00
Christoph Oelckers
cdccdec3e7 - final cleanup on new cutscene interfacw
* fixed frame gaps when exiting a cutscene. This must be properly synchronized with the state handler in the main loop.
* reactivated the loading screens. With texture precaching working the delay when loading a map becomes significant enough to require a visual feedback.
* RR does not play 'bonusmusic' on its summary screen.
2021-04-30 20:08:34 +02:00
Christoph Oelckers
ad01aee5ec - fixed RR summary screen 2021-04-30 20:08:33 +02:00
Christoph Oelckers
6d743ce921 - most of the summary screen is working 2021-04-30 20:08:33 +02:00
Christoph Oelckers
3c27ec8cbd - tested all of Duke's and RR's cutscenes. 2021-04-30 20:08:33 +02:00
Christoph Oelckers
06abc0cfe2 - removed debug output and fixed fade flag setup and missing OnTick return 2021-04-30 20:08:33 +02:00
Christoph Oelckers
26a7700579 - Duke's intro works, without fading. 2021-04-30 20:08:32 +02:00
Christoph Oelckers
1166b00af2 - switched intro movie playing over to the new system
Not tested yet.
2021-04-30 20:08:32 +02:00
Christoph Oelckers
af8d06994a - implemented the scripting interface layer. 2021-04-30 20:08:32 +02:00
Christoph Oelckers
4ff2010bd1 - moved the entire screen job management to the script side.
This isn't hooked up yet and lots of code is commented out, the games won't start with this commit.
2021-04-30 20:08:30 +02:00
Christoph Oelckers
1022564cab - initial framework for scriptification of screen jobs. 2021-04-30 20:08:23 +02:00
Christoph Oelckers
4a7430c8e4 - got rid of JobDesc. 2021-04-30 20:08:23 +02:00
Christoph Oelckers
805b91b721 - put ScreenJobRunner declaration into header. 2021-04-30 20:08:23 +02:00
Christoph Oelckers
71e5f9b70f - changed screen job list to work without per-job completion callbacks.
They made things more complex than necessary and do not translate well to scripting.
2021-04-30 20:08:22 +02:00
Christoph Oelckers
fb5e2fe0c0 - use flags instead of bools. 2021-04-30 20:08:22 +02:00
Christoph Oelckers
af3eac8456 - simplified screen job setup where all elements can be skipped in one go. 2021-04-30 20:08:22 +02:00
Christoph Oelckers
9e40e49c2c - generalized the special key handling for skipping cutscenes. 2021-04-20 15:01:26 +02:00
Mitchell Richters
321bfe86f8 - DSkippableScreenJob::OnEvent(): Ensure previously ignored keys don't cause a screenjob to skip.
* Volume up/down on the keyboard when trying to listen to a cut-scene shouldn't skip it.
2021-04-20 20:07:20 +10:00
Christoph Oelckers
962e313eb2 - fixed screen job fadeout. 2021-04-17 00:16:18 +02:00
Christoph Oelckers
2b9a527aba - added a 'Start' method to DScreenJob.
Since the menu pauses the ticker this is needed to perform initial setup before the first frame.
2021-04-16 23:29:53 +02:00
Christoph Oelckers
584e4bfb4a - explicitly check for opening the console when running a screen job. 2021-04-16 22:39:48 +02:00
Christoph Oelckers
3910146740 - skip the fade-in of the screen job if it starts while the game is paused.
While this works with the current code it simply does not look good.
2021-04-16 22:21:57 +02:00
Christoph Oelckers
1852c0b802 - properly pause the screen job player if the menu is open.
Still needs a bit of work for movies with embedded streaming sound.
2021-04-16 22:03:01 +02:00
Christoph Oelckers
2942e011bf - cleaned up the screen job's fade handling, now that the jobs no longer depend on an external timer. 2021-04-16 21:27:54 +02:00
Christoph Oelckers
4950b556c9 - handled SW's screens. 2021-04-16 18:43:59 +02:00
Christoph Oelckers
6ed1d5e678 - DBlackScreen and DImageScreen migrated to event-based handling. 2021-04-16 17:24:58 +02:00
Christoph Oelckers
aad6158288 - cleanup of movie player code, migration to event interface. 2021-04-16 17:24:58 +02:00
Christoph Oelckers
dbd3e1de44 - Screen Job refactoring WIP.
Framework to let them handle proper input events.
Not used yet.
2021-04-16 17:24:58 +02:00