Commit Graph

822 Commits

Author SHA1 Message Date
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 a919e526ec - SW: the intro's sound may not be paused when the menu opens. 2021-04-19 21:39:44 +02:00
Christoph Oelckers 27ca71a6ec - allow specifying a .def file in GAMEINFO.
This will be loaded on top of the regular .def files and not replace them.
2021-04-17 23:52:45 +02:00
Christoph Oelckers cd58b1d055 - made the tile size getters a bit more robust.
They should not crash on invalid sprites.
2021-04-17 12:40:23 +02: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 f28aa8f06c - properly pause streaming soundtracks of movies as well.
This is not relevant for any of the stock movies as they use separate sound files, we need to be aware of mods using the streaming sound capabilities of MVE and SMK.
2021-04-16 22:14:11 +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 e580407d7d - the remaining Exhumed screens.
These are not tested yet, a bit more work is needed to allow this.
2021-04-16 20:48:40 +02:00
Christoph Oelckers fed15a79e4 - Exhumed's intro screens. 2021-04-16 20:08:20 +02:00
Christoph Oelckers 4950b556c9 - handled SW's screens. 2021-04-16 18:43:59 +02:00
Christoph Oelckers 2a2c85c082 - migrated Duke's intro images and the first episode's ending animation. 2021-04-16 17:24: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
Christoph Oelckers 6cb84dc554 - split out the movie player into its own file. 2021-04-15 23:55:29 +02:00
Christoph Oelckers 61a6321cd6 - Exhumed: Change map command to start the level directly without going through the scrolling map. 2021-04-15 18:55:54 +02:00
Christoph Oelckers bc007d75de - make map art work. 2021-04-14 14:16:09 +02:00
Christoph Oelckers b5dbc3cf29 - allow specifying startup .con files via GAMEINFO. 2021-04-13 18:08:55 +02:00
Christoph Oelckers 4fe3c50c7c - used the newly added game ID as reference for GAMEINFO to autoselect which game to start a mod with.
While in GZDoom this uses the IWAD name, the same approach is a lot more problematic here because of name duplications with far more incompatible content.
So this allows targeting a group of base games instead of one specific version.
2021-04-13 18:08:55 +02:00
Christoph Oelckers 6ad3ac8ef9 - added GameID field to GrpInfo.
This is for allowing new features easier referencing of the various records.
2021-04-13 18:08:55 +02:00
Christoph Oelckers 230312e7f3 - re-fixed Blood skill selection. 2021-04-13 18:08:55 +02:00
Christoph Oelckers 88fb2185fa - Blood: default skill is 2, not 3. 2021-04-13 00:31:49 +02:00
Christoph Oelckers 92cdec077d - fixed some bogus range checks in automap code. 2021-04-12 20:54:12 +02:00
Christoph Oelckers aed7e8166e - fixed setup of startup title. 2021-04-12 19:39:42 +02:00
Christoph Oelckers a15ac43722 - enable embedding of blood.rff and sounds.rff in mod archives when playing Blood
Some mods provide pregenerated resources, this allows loading them without picking them apart first.
2021-04-12 00:31:36 +02:00
Christoph Oelckers f87e40131f - Blood: add a dummy sound entry at index 0.
Parts of the sound system treat entry 0 as "no sound" so nothing placed there would play.
This made the one custom sound in "The Way of Ira" not play because as the last sound being defined it ended up in the first, invalid slot.
2021-04-12 00:31:36 +02:00
Christoph Oelckers 135dd1f081 - added PlaySound CCNDs. 2021-04-12 00:31:23 +02:00
Christoph Oelckers 0ee28fb45e - also handle SW's voxels. 2021-04-11 13:38:23 +02:00
Christoph Oelckers e5e23cd63c - make sure voxels are being precached.
In Blood's case it also needs to check the game-side array to find everything.
2021-04-11 13:19:48 +02:00
Christoph Oelckers e4cf768fa8 - call StartPrecaching to keep Vulkan happy. 2021-04-11 10:50:04 +02:00
Christoph Oelckers 9fd3ab6b5e - fixed texture precaching.
After the migration to GZDoom's full backend this never created any textureds when precaching things.
2021-04-11 09:59:55 +02:00
Christoph Oelckers b3bcedda6c - moved backend independent HUD code out of glbackend.cpp. 2021-04-11 08:40:18 +02:00
Christoph Oelckers 184d9be6b1 - fixed palette setup for duplicate base palettes.
Due to some old code it could happen that these weren't fully set up and missed their translations.
Fixes #301 - Blood's invulnerability palette is identical to the base.
2021-04-10 21:42:53 +02:00
Christoph Oelckers addfe4e904 - activate the progress bar on the startup screen. 2021-04-10 19:28:46 +02:00
Christoph Oelckers db5fbe3bbb - make the startup banner in the initial console window work. 2021-04-10 19:14:30 +02:00
Christoph Oelckers ff0a3df302 - fixed extended music lookup again.
# Conflicts:
#	source/core/parsefuncs.h
2021-04-09 21:28:23 +02:00
Christoph Oelckers fb02b38279 - better .def loading logic.
To allow cumulative loading without interfering with other ports, Raze will now look for files called xxxx-raze.def, where xxxx is the default .def name (e.g. duke3d-raze.def for Duke3D.) and if that is found, cumulatively load all same-named files - it will fall back on the default name if no such thing is found.
-def still overrides both and will not cumulatively load.
2021-04-09 14:30:01 +02:00
Christoph Oelckers 778a75c097 - fixed rffdefineid handler passing a bad file name to the backend. 2021-04-08 21:36:52 +02:00
Christoph Oelckers 51c4c47183 - block manual advancing of intermission screens when already fading out.
This seems to cause some serious stability issues with how they handle the 2D drawer.
2021-04-08 18:01:42 +02:00
Christoph Oelckers 793d2d99ef - re-fixed the music lookup. 2021-04-08 17:46:53 +02:00
Christoph Oelckers fc1fbfe8b3 - fixed .def 'music' parsing.
This was incomplete and just ignored Duke's special music, and the levelnum generation used an outdated formula so that it never managed to assign any music to the maps.
2021-04-08 16:35:26 +02:00
Christoph Oelckers e2f570a70a - fixed: extended sound lookup must check the sound/ folder. 2021-04-08 16:05:32 +02:00
Christoph Oelckers 1439897b65 - fixed extended music lookup.
The logic was inverted for extended lookup which always resulted in failure to find the song.
2021-04-08 15:55:37 +02:00
Christoph Oelckers 58fb938aa7 - block opening of the menu in the fade out phase of a screenjob and in Exhumed's map/intermission screens.
At these places there's some inteference that can bring the engine into an unstable state.
This is not a real fix, just a quick workaround. The actual problem requires closer examination why these are the only places where this happens.
2021-04-07 19:39:48 +02:00
Christoph Oelckers 424c0ce3f4 - testing some script parser improvements. 2021-04-06 15:07:12 +02:00
Christoph Oelckers fc314b6616 - allow loading Zips where all content is in a subdirectory.
The same logic as in GZDoom applies: The root must not have any other content and the subdirectory must contain identifiable game content.
Some handling was also added to strip out macOS resource fork folders because they can contain data that can confuse file detection.
2021-04-06 01:06:03 +02:00