Commit Graph

1295 Commits

Author SHA1 Message Date
Christoph Oelckers e5dd4a8638 - made the scripted version of Blood's status bar functional. 2021-05-12 21:50:02 +02:00
Christoph Oelckers 778378fd5c - scriptified version of Blood's status bar compiles.
Not tested yet.
2021-05-12 21:50:02 +02:00
Christoph Oelckers acb4830eb5 - ported the BaseStatusBar class to ZScript.
Not hooked up yet, but it compiles.
2021-05-12 21:50:01 +02:00
Christoph Oelckers cb2bc7967a - fixed the remaining warnings. 2021-05-12 21:50:01 +02:00
Christoph Oelckers d097c8e635 - removed the non-functional and long abandoned level music alias feature.
With RMAPINFO such a hack is no longer needed for anything.
2021-05-12 21:48:40 +02:00
Christoph Oelckers 783b94f922 - more warning fixes in 'core'. 2021-05-12 21:48:14 +02:00
Christoph Oelckers 1168341d5a - fixed more warnings in 'core'. 2021-05-12 21:47:32 +02:00
Christoph Oelckers 7283de0084 - fixed some very noisy warnings in two headers. 2021-05-12 21:47:32 +02:00
Christoph Oelckers 03289f5097 - silenced some warnings. 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 9dd9dc8efd - handle savegame loads like GZDoom.
They are synchronized with the game loop and should not be initiated directly from the menu.
2021-05-12 00:31:49 +02:00
Christoph Oelckers 499ed52972 - route savegame requests through the newwork, just like GZDoom does.
Although a bit overkill for single player saves only, this will ensure consistent behavior between both engines regarding the menu.
2021-05-12 00:21:26 +02:00
Christoph Oelckers 5d5af0cb09 - fixed error message spam when trying to load a non-existent voxel using .def. 2021-05-11 00:48:35 +02:00
Christoph Oelckers d90b23ba9a - take down the savegame loader's resources in proper order. 2021-05-10 20:14:38 +02:00
Christoph Oelckers e74aca291c - position tweaking for Nam's skies.
Why is this such an utter mess to get skies placed correctly? :(
2021-05-10 20:13:28 +02:00
Christoph Oelckers d466ec081a - fixed incorrect order of resource deallocation in savegame reader. 2021-05-08 09:22:08 +02:00
Christoph Oelckers 325af156e7 - fixed loop in ProcessBunch to account for array reallocation. 2021-05-08 09:16:06 +02:00
Christoph Oelckers 79823b430c - reinstate the old code for rendering the first portal without stencil
The previous commit fixes the true issue causing the problems - with this back the restriction is not needed anymore.
2021-05-07 00:26:22 +02:00
Christoph Oelckers b644000b02 - fixed texture y-flipping on bottom tiers of walls.
The flip flag was taken from the wrong side of the wall.
2021-05-07 00:18:13 +02:00
Christoph Oelckers 29b0106a96 - fixed yet another problem with the local 'sprite' variables in HWWall causing problems.
This variable and its companions in HWFlat and HWSprite have now been renamed to avoid these issues.
2021-05-07 00:09:30 +02:00
Christoph Oelckers 3fce8ab693 - added support for the 3 missing Duke Vacation SSIs. 2021-05-06 17:14:18 +02:00
Christoph Oelckers 2f9e32f748 Merge branch 'newrenderer' 2021-05-06 17:04:35 +02:00
Christoph Oelckers 72e4220929 - added an option to dump the list of discovered games to a JSON file. 2021-05-06 12:03:33 +02:00
Christoph Oelckers c679f83f75 - make all games return to the main menu when the game is ended with F10.
Duke still went to the intro movies which was a bit problematic.
2021-05-04 11:32:09 +02:00
Christoph Oelckers a7adef360b - fixed compilation with Clang. 2021-05-04 00:11:43 +02:00
Christoph Oelckers a303da37a9 - added a mapinfo dumper and used it to verify correctness of the data generated from game-native definitions.
Also simplified the levelnumber setup a bit.
2021-05-03 23:00:24 +02:00
Christoph Oelckers 7d77b2315f - merged the few remaining contents of mmulti.h into d_net.h 2021-05-03 19:01:00 +02:00
Christoph Oelckers 6589222da6 Merge branch 'scriptable_cutscenes' into newrenderer 2021-05-03 18:50:41 +02:00
Christoph Oelckers d206a767b2 - added render workaround for CP07. 2021-05-03 17:48:35 +02:00
Christoph Oelckers d8b808576f - restrict the sky portal shortcut to skies in scenes where there are no other portals.
This entire setup does not work with sector portals, causing various render glitches in Shadow Warrior's portals. This also applies to skies within portals so it is now restricted to single sky setups.
2021-05-03 14:52:23 +02:00
Christoph Oelckers 56fcf904b5 - Backend update from GZDoom. 2021-05-03 14:48:55 +02:00
Christoph Oelckers 389340f97c - use sections for rendering. 2021-05-03 00:15:09 +02:00
Christoph Oelckers 30b1b046e4 - added an intermediate data structure to decouple the rendering from the immediate map data.
This will be needed for sectors consisting of disjoint parts and for providing some help with addressing rendering anomalies
2021-05-03 00:04:36 +02:00
Christoph Oelckers f40e52ab34 - fixed issues with validation of command line specified main game GRP file name. 2021-05-02 22:56:53 +02:00
Christoph Oelckers 8003ab6fa3 Merge branch 'scriptable_cutscenes' into newrenderer 2021-05-02 22:37:46 +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 575a38d835 - added RMAPINFO handler for Blood's message array. 2021-05-02 18:00:11 +02:00
Christoph Oelckers c1b4fdff83 - added a "clearall" instruction to RMAPINFO.
Since, unlike GZDoom, this format is additive and uses defaults for map progression it would otherwise a bit tricky to compile new episodes without accidentally pulling in some original special features.
2021-05-02 17:42:19 +02:00
Christoph Oelckers dfd47ea33a - migrated SW to RMAPINFO as well.
Also removed the 'definecutscene' code from the .def parser as this was never meant to be more than a temporary solution.
2021-05-02 17:35:25 +02:00
Christoph Oelckers 4b064b9f34 - migrated Exhumed's level setup to RMAPINFO.
This game never had a proper setup so this also fixes the crashes with visiting the multiplayer maps.
2021-05-02 15:54:19 +02:00
Christoph Oelckers bb9d492db6 - migrated RRRA as well. 2021-05-02 14:01:10 +02:00
Christoph Oelckers a28b4ea06a - migrated Route66 and fixed some issues pointed out by this mod. 2021-05-02 13:29:41 +02:00
Christoph Oelckers 6f4e380728 - migrated RR's cutscene definitions.
Also turned several level-specific init options into map flags or map parameters.
2021-05-02 13:12:24 +02:00
Christoph Oelckers 15f9861633 - summary screens, too. 2021-05-02 12:28:32 +02:00
Christoph Oelckers 4458f8c929 - migrated the global cutscenes to RMAPINFO as well. 2021-05-02 12:22:40 +02:00
Christoph Oelckers 2d4e91615f - migrated Duke's cutscene definitions to the new RMAPINFO.txt. 2021-05-02 12:02:55 +02:00
Christoph Oelckers dbd179be5c - RR progression fixes.
* E1L7 abuses an 'end the game' command to progress to E2L1, this needs special treatment.
* handle ENDGAME.MAP more cleanly by injecting an 'engine.con' into the compilation chain to define its map record. The main issue with this is that it needs to be defined before the regular CONs run.
* check the already defined 'clearinventory' and 'clearweapons' flags that are exposed through RMAPINFO (Duke/RR only so far.)
2021-05-02 10:55:22 +02:00
Christoph Oelckers 1798380f23 - adapted map transition in Duke/RR.
There's still some issues which will be taken care of by adding map flags.
2021-05-02 10:35:43 +02:00
Christoph Oelckers e9385ed4e8 - adapted Blood to the new level progression features and simplified several parts, particularly the clumsy retrieval of the next level.
Some cheats in Duke will not work correctly with this commit!
2021-05-02 09:08:57 +02:00
Christoph Oelckers 93bfc35ad6 - use the volumes to find the starting maps for the menu and the clusters for the cutscenes. 2021-05-02 01:01:30 +02:00
Christoph Oelckers 825963661b - migrated volumes to the new storage. 2021-05-02 00:35:56 +02:00
Christoph Oelckers f732d4ec64 - added MAPINFO parser, based on GZDoom's.
This isn't hooked up yet, but all necessary structures and fields have been added so that selected pieces can be tested.
2021-05-01 22:52:28 +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 27799def63 - rewrote movie player so that the decoder backends only perform the decoding but do not draw the frames themselves.
This caused twq problems:

1. It made it impossible to let the client apply effects to the video.
2. The client had no control when rendering stopped.

Now the backends only provide a texture handle that the client must draw. One immediate benefit is that Blood's fixed viewport scaling is now available to all video formats.
2021-05-01 18:59:16 +02:00
Christoph Oelckers 4069a5096a - scriptified Exhumed's 2D content (minus the programmatic textures.) 2021-04-30 20:08:36 +02:00
Christoph Oelckers cd1306dd05 - fixed mapinfo array.
Due to reallocations it must be an array of pointers.
2021-04-30 20:08:34 +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 0dc6980e5c - made episode intro cutscenes a game independent feature.
So far only defined for Duke E4 but all the logic is outside the game code now and can be universally handled.
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 ef6d8c2c67 - added cutscene definitions for Duke and finalized the definecutscene parser. 2021-04-30 20:08:32 +02:00
Christoph Oelckers 021f1b7832 - make SummaryInfo a struct instead of passing a list of values to the script classes. 2021-04-30 20:08:32 +02:00
Christoph Oelckers e05f900315 - added the data structures to hold the cutscene data. 2021-04-30 20:08:31 +02:00
Christoph Oelckers 21aa5c9234 - added game flags for all supported add-ons. 2021-04-30 20:08:31 +02:00
Christoph Oelckers 66799d9a6d - more screen job setup work.
* interface for movie player done.
* first cutscene definition done.
* all converted classes removed from C++ code.
2021-04-30 20:08:30 +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 4636a52699 - MP summary screen ported. 2021-04-30 20:08:24 +02:00
Christoph Oelckers 7fbe153ae7 - more Duke screen porting. 2021-04-30 20:08:24 +02:00
Christoph Oelckers e75f0c17e4 - ported the TitleScreen class. 2021-04-30 20:08:23 +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 aa6bd8ffcc - factor in angoff when placing sprites. 2021-04-25 11:58:03 +02:00
Christoph Oelckers 8c379f7a44 Merge branch 'master' into newrenderer 2021-04-25 11:33:47 +02:00
Christoph Oelckers 79875d44e0 - moved MD4 calculator out of backend.
Only map hacks use MD4, this does not need to be shared.
2021-04-25 11:33:38 +02:00
Christoph Oelckers ad28630df6 - offloaded map patches to data files.
This is a lot easier to manage than having them in the code.
For now it piggybacks on the map hack feature, later this should use the same scripted approach as GZDoom.
2021-04-24 23:07:35 +02:00
Christoph Oelckers a7046eaee4 - fixed animations on skies.
Lunatic Fringe made this very obvious.
2021-04-24 20:04:02 +02:00
Christoph Oelckers 5585351c0f - added a hack to help the new renderer with Lunatic Fringe.
This is by no means a permanent solution but having it buys some time to find something more universal that won't affect performance too badly and investigate the need for a more robust solution.
The idea here is to define pairs of walls where when the first element of the pair is seen, it will treat the second one as view blocking.
This is used as the two offending windows (sectors 151 and 152) to cope with the lack of a height sensitive clipper.
2021-04-24 20:00:54 +02:00
Christoph Oelckers be08a2f800 - clipper rework
* let the clipper work on relative angles to simplify the math.
* properly initialize the initial visible range and preserve it for multiple invocations.
* track the maximum visible angular range per sector. While possibly not sufficient to handle every edge case imaginable it has low overhead and is still useful to eliminate obvious cases that do not need more complex checks. It is enough to fix the blue door in Duke E3L4.
* removed unused elements of the clipper.
2021-04-24 12:08:38 +02:00
Christoph Oelckers 53e698e707 - 0.10.0 2021-04-22 22:03:50 +02:00
Christoph Oelckers db7527fa43 - fix sky palette in Polymost mode. 2021-04-22 22:03:16 +02:00
Mitchell Richters 6fca2de7f3 - Fix clocking of timer when doing cumulative loads in `loaddefinitionsfile()`. 2021-04-22 18:57:41 +10:00
Mitchell Richters 8e53489487 - Remove some leftover stuff from `gamecontrol.h`. 2021-04-22 18:53:14 +10:00
Mitchell Richters 733f4f7aea - Move all the timing code from `LoadDefinitions()` to `loaddefinitionsfile()` 2021-04-22 18:50:49 +10:00
Mitchell Richters 27767f61ae - Move `for (auto& m : *userConfig.AddDefs)` loop from `loaddefinitionsfile()` into `LoadDefinitions()` and rework debug timer code to accommodate.
* Change also reverts 5af7be42a2.
2021-04-22 16:33:45 +10:00
Mitchell Richters c0e5599478 Merge branch 'master' into newrenderer 2021-04-22 08:58:26 +10:00
Mitchell Richters ab4c18a73a - `processMovement()`: Remove attenuation of `hidInput->dyaw` that was missed when scaling was removed from backend in 44e4c5ff78. 2021-04-22 08:58:17 +10:00
Mitchell Richters 5af7be42a2 - `LoadDefinitions()`: Remove if statement added in 1ea25e5d0e that was causing added DEF files not to load.
* The loop for `userConfig.AddDefs` feels like it should be moved out of `loaddefinitionsfile()` and into `LoadDefinitions()`, but that's subject to discussion.
2021-04-22 08:44:59 +10:00
Christoph Oelckers 14971f9569 Merge branch 'master' into newrenderer 2021-04-22 00:10:37 +02:00
Christoph Oelckers c17ec5fa45 - cleanup of savegame framework 2021-04-22 00:03:17 +02:00
Christoph Oelckers 97d8aee2e8 - savegame code cleanup. 2021-04-22 00:03:17 +02:00
Christoph Oelckers 8fee2b3ed7 - save SW's User array as JSON. 2021-04-22 00:03:15 +02:00
Christoph Oelckers 9c3aa7bb6c - use the proper file names for loading -adddefs. 2021-04-21 23:55:40 +02:00
Christoph Oelckers eb573bea23 - removed all compensation for the clamped shades.
None of this is needed, the shader can work with out of range shades to produce proper lighting.
2021-04-21 22:48:55 +02:00
Christoph Oelckers dc0df7d081 - don't clamp shade values in the setup pass.
We need their proper values when setting up the lighting.
2021-04-21 22:32:27 +02:00
Christoph Oelckers 9092b5c392 - removed some unused stuff from engine. 2021-04-21 22:32:27 +02:00
Christoph Oelckers b8f9bdb7c1 - made savepic work with new renderer. 2021-04-21 22:32:27 +02:00
Mitchell Richters 98a9963bb5 - Fix release builds of project and remove old `def_.cpp` stub file. 2021-04-22 06:30:44 +10:00
Christoph Oelckers c67a3e76b4 - seems I missed a bit... 2021-04-21 18:34:34 +02:00
Christoph Oelckers 35594a5516 - def parser cleanup, plus some better error messages. 2021-04-21 18:16:08 +02:00
Christoph Oelckers ba5e7d419c - cleaned up the remains of the old def parser. 2021-04-21 18:15:55 +02:00
Christoph Oelckers 1ea25e5d0e - reworked the def parser's main loop. 2021-04-21 18:15:25 +02:00
Christoph Oelckers 8c854441bc - model command migrated 2021-04-21 18:15:12 +02:00
Christoph Oelckers 542e1b2ba7 - ported all simple model commands.
'model' is the last remaining one.
2021-04-21 18:15:12 +02:00
Mitchell Richters 93edeac791 - Clean-up of input functions.
* Remove unused `getincanglef()`.
* Remove unused `getincangleq16()`.
* In `PlayerHorizon` struct, clamp value when setting target in `__settarget()`, not each public `settarget()` overload.
* Rename `PlayerAngle` method `applylook()` to `applyinput()`.
* Rename `PlayerHorizon` method `sethorizon()` to `applyinput()`.
* In `PlayerHorizon::applylook()`, slightly clean return to centre code so it doesn't do math if already at 0.
* In `PlayerAngle::applylook()`, slightly clean rotscrnang/look_ang code so it doesn't do math if already at 0 and reposition where mouse input is applied so that if input is applied, the player never enters a spin.
* In `Duke3d::player_struct::apply_seasick()`, use `buildfang()` method instead of scaling float to BAM within function.
2021-04-21 20:41:04 +10:00
Christoph Oelckers b49de68c86 - migrated highpalookup, basepalette and undefbasepaletterange. 2021-04-20 22:43:02 +02:00
Christoph Oelckers f51872db25 Merge branch 'master' into newrenderer 2021-04-20 20:46:06 +02:00
Christoph Oelckers 16f45ffe3d - fixed small oversight in makepalookup parser. 2021-04-20 20:44:22 +02:00
Christoph Oelckers 512411d0fa - parseUndefTexture(Range) 2021-04-20 20:41:15 +02:00
Christoph Oelckers 1518156386 - parseUndefPalookupRange 2021-04-20 20:41:15 +02:00
Christoph Oelckers 276fd19462 - parseMakePalookup 2021-04-20 20:41:15 +02:00
Christoph Oelckers 6fb09f36c7 - fixed a few parsing errors. 2021-04-20 20:41:04 +02:00
Christoph Oelckers aaad546729 - palookup. 2021-04-20 20:21:51 +02:00
Christoph Oelckers bb119fa928 - parseNumAlphaTabs 2021-04-20 20:21:51 +02:00
Christoph Oelckers 82a0b0502b - parseBlendTable 2021-04-20 20:21:51 +02:00
Christoph Oelckers 01f93f4cca - several smaller texture (un)definition commands. 2021-04-20 20:05:35 +02:00
Christoph Oelckers 8c5a9c23c3 - tileimportfromtexture and copytile. 2021-04-20 20:04:44 +02:00
Christoph Oelckers 97637e4d2d - parseArtFile. 2021-04-20 20:03:19 +02:00
Christoph Oelckers 2761ced670 - handle 2 dead .def commands. 2021-04-20 20:02:19 +02:00
Christoph Oelckers afb2cd3b82 - fixed NoFullbrightRange.
Ever since the texture system switchover this only set a dead bit, it has to explicitly mark the texture as not having a brightmap.
2021-04-20 20:02:08 +02:00
Christoph Oelckers 40a632a2ae - rffdefineid 2021-04-20 19:39:12 +02:00
Christoph Oelckers 643b969dff - added another weird Build specialty: no vertical sprite offset flipping for face sprites.
Just... why...? :?
2021-04-20 19:37:32 +02:00
Christoph Oelckers be20b6a839 - fixed: wall sprites do not need NPOT emulation. 2021-04-20 16:58:18 +02:00
Christoph Oelckers 9e40e49c2c - generalized the special key handling for skipping cutscenes. 2021-04-20 15:01:26 +02:00
Christoph Oelckers d078b511b8 - flip backwards oriented wall sprites before submitting them to the render list.
Backwards orientation will break the translucent object sorter so this needs to be sorted out beforehand.
2021-04-20 14:30:22 +02:00
Mitchell Richters d34070b8ae - gameinput.h: Remove precise bool from `horizsumfrac()`, `look_anghalf()` and `looking_arc()` added in a4895cb270.
* It looks terrible to have low precision math versions of look_anghalf and looking_arc since we always interpolate `look_ang` now, so lets just not.
2021-04-20 21:12:17 +10: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 ccdf9d13f1 - do not render sprites that are extremely close to the camera.
These can temorarily cover the entire screen so everything with a distance of less than 4 map units will now be skipped if it is a face sprite.
2021-04-20 00:15:11 +02: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
Mitchell Richters de06030ea0 - gameinput.cpp: Make `sethorizon()`, `applylook()` and `calcviewpitch()` class functions of `PlayerHorizon` and `PlayerAngle` where appropriate. 2021-04-19 20:50:10 +10:00
Mitchell Richters 171d541112 Merge branch 'master' into newrenderer 2021-04-18 10:05:10 +10: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 eff7d66742 - fixed Clang compilation error. 2021-04-17 18:47:15 +02:00
Christoph Oelckers cdf89b9175 - portal rendering fix when viewing through two-sided walls outside the actual portal area.
If there's more portal area behind such a line its range in the clipper needs to be cleared again.
2021-04-17 18:32:40 +02:00
Christoph Oelckers 82194bbf6b Merge branch 'master' into newrenderer
# Conflicts:
#	source/games/exhumed/src/2d.cpp
2021-04-17 13:22:30 +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 dc8b72b2ce Merge branch 'master' into newrenderer2
# Conflicts:
#	source/games/duke/src/actors.cpp
#	source/games/duke/src/hudweapon_d.cpp
#	source/games/duke/src/hudweapon_r.cpp
#	source/games/duke/src/render.cpp
2021-04-15 19:34:03 +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
Mitchell Richters a4895cb270 - All Games: Allow for HUD interpolation to be disabled.
* Requested by users, really don't know why...
* Interpolation values are guarded by the CVAR.
* For Blood, integer truncation is employed just like original game.
* For all games where more precise sine/cosine math has been utilised, no changes have been made.
2021-04-15 13:35:53 +10:00
Mitchell Richters 92d1d7fbde - Fix potential overflow issue in `binangle::tosigned()` and `getincanglebam()`. 2021-04-15 08:25:08 +10:00
Christoph Oelckers 9a58299bee Merge branch 'master' into newrenderer2 2021-04-14 22:37:59 +02:00
Christoph Oelckers f83e678ea0 - use the smooth ratio from the game logic in the renderer instead of calling I_GetTimeFrac again.
Unlike the higher level code this does not check for game over conditions.
2021-04-14 21:17:32 +02:00
Christoph Oelckers 2b1072eb91 - fixed bad sector addressing in flat sprites drawer. 2021-04-14 19:17:40 +02:00
Christoph Oelckers 5c306c61d6 - better fix for shadow rendering. 2021-04-14 14:46:15 +02:00
Christoph Oelckers bc007d75de - make map art work. 2021-04-14 14:16:09 +02:00
Christoph Oelckers f4ec9a1921 - 4 more .def commands ported 2021-04-13 18:14:46 +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 798cf2f973 Merge branch 'newrenderer2' of https://github.com/coelckers/Raze-private into newrenderer2 2021-04-12 20:25:56 +02:00
Christoph Oelckers 9598b626c9 Merge branch 'master' into newrenderer2 2021-04-12 20:03:50 +02:00
Christoph Oelckers aed7e8166e - fixed setup of startup title. 2021-04-12 19:39:42 +02:00
Christoph Oelckers 89be30b720 - handle fullbright sprite hackery using negative shade values. 2021-04-12 18:57:10 +02:00
Christoph Oelckers bf019ac028 - Build must draw the sky for completely closed sectors as well. 2021-04-12 16:31:44 +02:00
Christoph Oelckers 3cc05e5532 - fixed handling of single-tile skies with palette translation. 2021-04-12 16:00:00 +02:00
Christoph Oelckers 26d737c279 - fixed double-add of xoffset for wall sprites. 2021-04-12 15:50:52 +02:00
Christoph Oelckers 10d0de8dbf Merge branch 'master' into newrenderer2 2021-04-12 15:06:12 +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 ef95754e87 - fixed bad texture checks. 2021-04-11 18:38:26 +02:00
Christoph Oelckers aebcc13c4a - migrated voxel parsing stuff. 2021-04-11 18:37:11 +02:00
Christoph Oelckers c33eea2540 - migrating 'tint .def command. 2021-04-11 15:23:42 +02:00
Christoph Oelckers 42d02834b1 Merge branch 'master' into newrenderer2
# Conflicts:
#	source/build/include/build.h
#	source/build/src/polymost.cpp
#	source/build/src/voxmodel.cpp
#	source/core/gamecontrol.cpp
#	source/core/gamestruct.h
#	source/games/blood/src/animatesprite.cpp
#	source/games/blood/src/misc.h
#	source/games/blood/src/view.cpp
#	source/games/duke/src/render.cpp
#	source/games/sw/src/draw.cpp
#	source/games/sw/src/game.h
#	source/games/sw/src/jsector.cpp
#	source/glbackend/glbackend.cpp
2021-04-11 14:38:56 +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
Mitchell Richters f343bd8d5e - Fix death camera issues stemming from f254eeb465.
* Adjustment in `__addadjustment()` needs to be signed.
* Output of `bvectangbam()` needs to be signed before Duke/SW left-shift the value.
2021-04-11 17:52:29 +10:00
Mitchell Richters 534271c62a - PlayerHorizon::interpolatedsum(): Cut over interpolation code to inline functions that was missed when doing e76f63e2c0. 2021-04-11 17:50:32 +10:00
Mitchell Richters 656705bcd7 - binangle: Add `signedrad()` and `signeddeg()` methods for consistency with the unsigned methods.
* Left out from f254eeb465.
2021-04-11 17:02:44 +10:00
Mitchell Richters e76f63e2c0 - Consolidate all game interpolation code into inline functions. 2021-04-11 16:45:35 +10:00