Commit graph

1168 commits

Author SHA1 Message Date
Christoph Oelckers
377829d6a2 - let hex fonts use the luminosity translations. 2021-05-25 12:59:08 +02:00
Christoph Oelckers
0bab333f36 - redid font translation so that it doesn't need to crush the font characters' color set to the base palette.
Right now it creates a special type of luminance translation that can operate on a true color bitmap.
2021-05-25 12:59:08 +02:00
Christoph Oelckers
b2545f8042 - PlayMusic script function. 2021-05-23 16:21:04 +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
0c6e2f0c9e - silenced some warnings. 2021-05-22 15:34:04 +02:00
Christoph Oelckers
d7a47b2f3a - route all accesses to gameaction from the backend through the sysCallbacks.
gameactions are frontend specific so this needs to be decoupled.
2021-05-22 13:02:34 +02:00
Christoph Oelckers
6ae09f8ec9 - ported Doom's type-on text screens as a screen job overlay. 2021-05-22 12:08:08 +02:00
Christoph Oelckers
5337513044 - ported GZDoom's subtitle drawer to the cutscene framework.
For later use, this isn't used yet.
2021-05-22 10:26:53 +02:00
Christoph Oelckers
0d793a59fd - moved the cutscene core to 'engine'.
More adjustments for making this code compatible with GZDoom.
2021-05-22 02:15:49 +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
1dff0502b0 - moved libvpx and libsmackerdec to more fitting places, plus some project cleanup. 2021-05-22 01:06:51 +02:00
Christoph Oelckers
16c6e2db05 - silence float truncation warnings for explicit casts. 2021-05-21 21:06:48 +02:00
Christoph Oelckers
4739c71b39 - PNG 16 bit support from GZDoom. 2021-05-21 21:06:11 +02:00
Christoph Oelckers
264d42179e - optimized the wall drawer a bit to avoid repeated calls to the render API's deoth bias function.
The setters in FRenderState should check if the value actually changes and the wall drawer should only call it for non-translucent wall sprites.
2021-05-21 19:07:22 +02:00
Christoph Oelckers
eae97ded1b - backend update from GZDoom. 2021-05-17 20:33:40 +02:00
Christoph Oelckers
60fe1d32fb - Blood: unpositioned sounds must be limited to one per channel. 2021-05-16 11:51:51 +02:00
Christoph Oelckers
781cb32dcf - fixed all issues with Duke's/RR's status bar. 2021-05-15 16:46:08 +02:00
Christoph Oelckers
f84f58e714 - ported Duke and RR status bars.
Compiles but not tested yet.
2021-05-15 14:27:32 +02:00
Christoph Oelckers
d311792e06 - engine side preparations for Duke Statusbar scriptification.
Mainly, gotweapon had to be reverted to a flat bool array to avoid implementing FixedBitArray for the VM.
Also adding a few new tile names and PushV for string arrays.
2021-05-15 10:44:35 +02:00
Christoph Oelckers
bdfe40af7c - properly terminate base64 data. 2021-05-13 22:28:36 +02:00
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
783b94f922 - more warning fixes in 'core'. 2021-05-12 21:48:14 +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
Cacodemon345
36b910a253 Fix compilation on OpenBSD 2021-05-10 08:25:14 +02:00
Christoph Oelckers
2f9e32f748 Merge branch 'newrenderer' 2021-05-06 17:04:35 +02:00
Rachael Alexanderson
7b45144023 - these changes were missing from the last Vulkan update 2021-05-06 04:27:58 -04:00
Christoph Oelckers
56fcf904b5 - Backend update from GZDoom. 2021-05-03 14:48:55 +02:00
Christoph Oelckers
8003ab6fa3 Merge branch 'scriptable_cutscenes' into newrenderer 2021-05-02 22:37:46 +02:00
Christoph Oelckers
4c2266ee88 - fixed incomplete SW ending cutscene. 2021-05-01 20:31:51 +02:00
Christoph Oelckers
4069a5096a - scriptified Exhumed's 2D content (minus the programmatic textures.) 2021-04-30 20:08:36 +02:00
Christoph Oelckers
3c27ec8cbd - tested all of Duke's and RR's cutscenes. 2021-04-30 20:08:33 +02:00
Christoph Oelckers
af8d06994a - implemented the scripting interface layer. 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
b515543016 - added varargs pushv function to Array<int>.
We'll need this for the ANM sound arrays.
Support for other array<> types to be done later.
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
1022564cab - initial framework for scriptification of screen jobs. 2021-04-30 20:08:23 +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
dca964444b - backend fixes from GZDoom. 2021-04-25 11:32:50 +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
14971f9569 Merge branch 'master' into newrenderer 2021-04-22 00:10:37 +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
cd45a1f035 - made more parts of USER serialization friendly. 2021-04-22 00:03:14 +02:00
Christoph Oelckers
dcb393bc44 - started reorganizing SW's memory management.
Need to get rid of all those unmanaged allocations and present game data in an easily serializable form.
This adds a managed TPointer class that replicates the useful parts of std::unique_pointer but steers clear of its properties that often render it useless.
2021-04-22 00:03:14 +02:00
Christoph Oelckers
b8f9bdb7c1 - made savepic work with new renderer. 2021-04-21 22:32:27 +02:00
Christoph Oelckers
f51872db25 Merge branch 'master' into newrenderer 2021-04-20 20:46:06 +02:00
Christoph Oelckers
8c5a9c23c3 - tileimportfromtexture and copytile. 2021-04-20 20:04:44 +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
588fa5ffe2 - fixed: FileSystem.CreatePathlessCopy must set the copy to not have a full path.
Otherwise it may evade special lookup rules for music and not be found
2021-04-20 20:00:47 +02:00
Mitchell Richters
2f696e1a95 Merge branch 'master' into newrenderer 2021-04-19 20:50:37 +10:00
Christoph Oelckers
c8e466c995 - delete the "New savegame" node before starting work on the savegame.
This caused an off-by-one issue in the displayed list.
2021-04-19 12:48:06 +02: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
3906d5cfb0 - fixed: the fullscreen color blends did not set their command's screenFade member.
Since this remained 0, those blends lost their color.
2021-04-17 23:43:16 +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
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
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
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
9a58299bee Merge branch 'master' into newrenderer2 2021-04-14 22:37:59 +02:00
Christoph Oelckers
f6c4c19b02 - added a filter to the directory loader to remove EDuke32's texture cache files.
These cause problems with the texture manager.
2021-04-14 22:12:15 +02:00
Christoph Oelckers
b5dbc3cf29 - allow specifying startup .con files via GAMEINFO. 2021-04-13 18:08:55 +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
6142f9d795 - added CHANF_FORCE flag for forcing non-looped sounds to start, even when sound is paused.
Blood needs this for its PlayerSound controller, which is run right on map load - so without this it wouldn't start the sound when a map is initiated from the console.
2021-04-11 21:14:09 +02:00
Christoph Oelckers
6b684e74ba - migrated 'texture' .def command. 2021-04-10 14:09:08 +02:00
Christoph Oelckers
333581a084 Merge branch 'master' into newrenderer2
# Conflicts:
#	source/build/src/defs.cpp
2021-04-09 19:57:56 +02:00
Christoph Oelckers
f20acca498 - always default the resource ID to -1, even for dummy entries.
Better be safe than sorry, this should never happen in Blood but we never know what people may load...
2021-04-08 22:03:25 +02:00
Christoph Oelckers
a530dfbe35 Merge branch 'master' into newrenderer2 2021-04-08 18:52:54 +02:00
Christoph Oelckers
cecd34efc7 - moved a bit more script parsing functionality into the backend and tried it out on the 'skybox' command. 2021-04-08 14:00:08 +02:00
Christoph Oelckers
e0ee3a6701 - fixed: Vulkan did not define NPOT_EMULATION for its fragment shader. 2021-04-08 09:29:08 +02:00
Christoph Oelckers
0b79649dc2 Merge branch 'master' into newrenderer2 2021-04-06 16:14:21 +02:00
Christoph Oelckers
424c0ce3f4 - testing some script parser improvements. 2021-04-06 15:07:12 +02:00
Christoph Oelckers
cbe25d9d6b - Blood: disable look left and look right in the classic key configuration. 2021-04-06 12:06:03 +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
Christoph Oelckers
30c7dbd579 Merge branch 'master' into newrenderer2 2021-04-05 21:25:41 +02:00
Christoph Oelckers
8ea13f7c65 - implemented support for paletted textures to Vulkan backend. 2021-04-05 21:24:29 +02:00
Christoph Oelckers
e098e0ca2e - added VR mode init code as this is actually functional with the new renderer.
Also moved a few things out of gl_texture.cpp as this file is scheduled to go away with Polymost.
2021-04-05 20:12:11 +02:00
Christoph Oelckers
9a46fa7ef0 Merge branch 'master' into newrenderer2 2021-04-05 19:20:56 +02:00
Christoph Oelckers
41072eb020 - fixed uninitialized scale variable in sky code. 2021-04-05 19:20:41 +02:00
Christoph Oelckers
869433ee2e - fixed invalidation of programmatic textures.
This is only relevant for Vulkan because it stores the descriptor sets with the material, not the hardware texture.
2021-04-05 19:18:57 +02:00
Christoph Oelckers
c0f1949fb9 - fixed some swapped parameters in status bar code. 2021-04-05 19:07:59 +02:00
Christoph Oelckers
5030ca50ff Merge branch 'master' into newrenderer2 2021-04-05 18:05:53 +02:00
Christoph Oelckers
ec460df2c0 - always ensure that the global index buffer is not empty.
This needs to be valid for Vulkan, even if it isn't used.
2021-04-05 18:05:44 +02:00
Christoph Oelckers
0017b5d9c5 - pad out the StreamData buffer to 16 bytes and avoid any form of conditional compilation here.
Vulkan does not manage to get the shader properly compiled without this.
2021-04-05 18:00:02 +02:00
Christoph Oelckers
f2dd4ceaab - always ensure that the global index buffer is not empty.
This needs to be valid for Vulkan, even if it isn't used.
2021-04-05 18:00:02 +02:00
Christoph Oelckers
96fb96617f - backend update from GZDoom. 2021-04-05 17:59:54 +02:00
Christoph Oelckers
c303884274 - better handling for Duke's scrolling cloudy skies.
* Using the Doom-style dome here because it looks better.
* this necessitated changes to the backend to allow both types of sky domes at the same time
* do not clamp panning fields for cloudy sky with the new renderer because this makes the texture jump.
2021-04-04 20:35:38 +02:00
Christoph Oelckers
ab36b86a59 - sky tweaking
* Build skies need a different mesh for the dome - the one from GZDoom distorts them too much.
* made adjustment to the positioning math after redoing the mesh
* Exhumed abuses some strange effect of the original sky placement math which means the y-offsetting must be disabled for this game.
* RRRA sky initialization fixed. It must be done after setting up the tiles.
2021-04-03 21:06:02 +02:00
Christoph Oelckers
638f19172a - voxel rendering.
The stock voxels of Blood and SW seem to work so far, but not all edge cases have been tested.
2021-04-02 18:20:07 +02:00
Christoph Oelckers
b7e8815133 - some further lightening of compat.h. 2021-03-24 21:13:36 +01:00
Christoph Oelckers
1297e4ed02 - SW's line to sprite portals are working now.
Also fixed a clipper issue with Blood's line to line portals.
2021-03-24 10:33:50 +01:00
Christoph Oelckers
096ce5e025 - initial sky fixes. 2021-03-22 16:02:52 +01:00
Christoph Oelckers
a12f277846 - fixed uninitialized clear color variable. 2021-03-22 12:07:51 +01:00
Christoph Oelckers
e884a418f8 - portal WIP 2021-03-22 12:07:29 +01:00
Christoph Oelckers
cecfbb76e8 - fixed uninitialized clear color variable. 2021-03-22 12:07:15 +01:00
Christoph Oelckers
63f057d93f - portal and sky WIP. 2021-03-21 22:48:01 +01:00
Christoph Oelckers
98e4a3035d - updated the earcut.hpp triangulator.
The old one wasn't triangulating the bathroom sector in DUKEDC2 properly, the bug got fixed upstream in the mean time.
2021-03-21 17:18:15 +01:00