Commit graph

1090 commits

Author SHA1 Message Date
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
Christoph Oelckers
757d7be18b - 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 11:54:39 +01:00
Christoph Oelckers
30f4e2b29d - replaced the engine automap drawer with one leveraging the newly added sector geometry data.
This eliminates a lot of code depending on Build's projection math.
2021-03-20 16:20:48 +01:00
Christoph Oelckers
af6c6c8ef0 - added the DrawInfo class. 2021-03-18 10:23:53 +01:00
Christoph Oelckers
e9dd1c104b - started adding the draw list code from GZDoom. 2021-03-18 10:19:13 +01:00
Christoph Oelckers
b492cbcebb - ported my old Build-style renderer for Doom from 2008 and the wall renderer from GZDoom to work with Build data.
It renders walls, but y-panning is still broken.
2021-03-17 16:54:36 +01:00
Christoph Oelckers
90cb82d244 - disable the player specific volume modifiers if replay gain is enabled.
These two functions would get into the way of each other otherwise.
2021-03-14 09:05:28 +01:00
Christoph Oelckers
8ae5d0b30e - backend update from GZDoom. 2021-03-13 01:21:38 +01:00
Christoph Oelckers
ee5950e7ad - backend update from GZDoom. 2021-03-07 13:21:15 +01:00
Christoph Oelckers
9104fba3ec - moved colormap constants to backend. 2021-03-06 23:06:26 +01:00
Christoph Oelckers
5b85105762 - re-added the fix for the inverted card reader in Twin Dragon's Map 10.
This accidentally got lost when the one-sided key fix was generalized.
2021-03-06 12:20:03 +01:00
Christoph Oelckers
bbd5c0ac8b - transitioned voxel rendering to use the backend's implementation. 2021-03-02 17:10:34 +01:00
Christoph Oelckers
4b59acd251 - Blood: Check the sound's internal loop flag when playing a sound.
Fixes #275
2021-03-02 11:59:20 +01:00
Christoph Oelckers
b9050b1a35 - Blood: properly clip the gauge for throwing dynamite force instead of stretching it. 2021-03-02 03:31:10 +01:00
Christoph Oelckers
2f2d0443f2 - fixed size setup for most menus.
All of Raze's menus scale to 320x200 and to get proper mouse coordinates the definitions must reflect that as well.
Fixes #271
2021-03-01 13:08:10 +01:00
Christoph Oelckers
80404558f6 - RR: Fixed the drink and eat meters on the status bar.
Turned out that the status bar's DrawGraphic cannot handle it with its coordinate hackery, this needs a separate, cleaner interface function that does not mess around with the pivot which needs to be passed unaltered to the backend to properly rotate around it
2021-02-28 22:34:52 +01:00
Christoph Oelckers
ce87e18f90 - block Escape to toggle the console while AppActive is false.
This is for testing #174 - this is the only place in the code where the escape key is explicitly checked.
2021-02-27 13:47:30 +01:00
Christoph Oelckers
ba5ede65b8 - backend update from GZDoom. 2021-02-26 19:06:10 +01:00
Christoph Oelckers
4c915180da - fixed stale pointer access in Unix version of D_AddFile.
Pointer was assigned a buffer of a local variable that went out of scope before checking its content.
Fixes #268 (hopefully)
2021-02-26 13:28:02 +01:00
Christoph Oelckers
c96e04e6c9 - backend update from GZDoom. 2021-02-12 14:44:54 +01:00
Christoph Oelckers
ba22df2a2a - removed unused I_GetBuildTimeFrac function. 2021-02-03 12:18:58 +01:00
Christoph Oelckers
8e0c50c22c - fixed: F2DDrawer::AddPoly was missing a texture validation check.
This caused problems when the automap wanted to render portal planes, which normally use an invalid texture as marker.
Fixes #263
2021-02-02 23:13:40 +01:00
Christoph Oelckers
e7ab4cd176 - backend update from GZDoom. 2021-01-29 13:20:00 +01:00
Mitchell Richters
ff0be3079e - m_fixed.h: Fix incorrect return type for MulScaleF() originating from 8cf2588bad. 2021-01-29 21:19:15 +11:00
Rachael Alexanderson
3f30d91323 - 21:9 improvements
- vid_aspect is now set to change to 21:9's ACTUAL aspect - 64:27
- screen elements now scale to 64:27 properly. to restore classic behavior, set cvar `vid_allowtrueultrawide` to false
2021-01-17 11:45:12 -05:00
Mitchell Richters
5124c0daec - Amalgamate ksgn and sgn into Sgn in cmdlib.h, and remove pragmas.h. 2021-01-05 07:31:37 +11:00
Mitchell Richters
f20daa2595 - Replace divscale64() calls with DivScaleU() from common. 2021-01-05 07:31:17 +11:00
Mitchell Richters
8cf2588bad - Replace fmulscale##() calls with MulScaleF() from common.
* Regex for reference: fmulscale([0-9]+)\((.+)(\)+)
2021-01-05 07:31:13 +11:00
Mitchell Richters
8f75f06efd - Replace tmulscale##() calls with TMulScale() from common. 2021-01-05 07:31:08 +11:00
Rachael Alexanderson
fc7dada764 - sync from gzdoom 2021-01-02 07:52:59 -05:00
Christoph Oelckers
b73b59cf66 - fixed badly inherited exception subclass. 2020-12-30 09:55:57 +01:00
Rachael Alexanderson
218b0cfb03 - syncing these files over from GZDoom
- this does not actually yet build for Windows ARM64, but it does put the framework in place to make that possible in the near future
2020-12-12 09:20:02 -05:00
Christoph Oelckers
dd7d661f9a - explicitly disable mipmapping for indexed textures.
It looks like this code was not handled properly.
2020-12-10 20:46:44 +01:00
Christoph Oelckers
94d3d643d7 - fixed: the file system's entry count was not updated before rehashing.
This broke Blood's RFS parser.
2020-12-09 18:56:17 +01:00
Christoph Oelckers
5a5f9b8e02 - backend update from GZDoom. 2020-11-23 15:54:06 +01:00
alexey.lysiuk
07eeba88fa - fixed incorrect autosegs section addresses on macOS
It appeared that getsectbyname() returns address stored in executable header as is, i.e. without adjusting it for ASLR
2020-11-14 12:48:39 +02:00
Christoph Oelckers
36479b623d - re-fixed crosshair scale to only use one CVAR for everything. 2020-11-13 17:56:55 +01:00
sinisterseed
34dfb6c5fc - fixed crosshair scaling in Exhumed & the other games.
The problem was that the CVARs operating the scale were different between Exhumed and the other titles, meaning that "crosshairscale" worked in one, but not the others. They have now been split.
Also lowered the default crosshair size as it was too much for Exhumed.
Fixes #180.
2020-11-13 18:33:18 +02:00
alexey.lysiuk
555007539d - eliminate dependency on linking order for autosegs registration
This fixes #164
2020-11-13 09:41:58 +01:00
alexey.lysiuk
6b12514a29 - fixed compilation with MSVC 14.28.29333 from VS2019 16.8.0
This fixes #175

include\algorithm(7419,1): error C2678: binary '=': no operator found which takes a left-hand operand of type 'const T' (or there is no acceptable conversion) (compiling source file source\common\scripting\jit\jit.cpp)
include\algorithm(7419,17): error C3892: '_First': you cannot assign to a variable that is const (compiling source file source\core\searchpaths.cpp)
2020-11-12 11:38:53 +02:00
Christoph Oelckers
a92b4943f9 - Duke: use original colors for inventory status display.
I took one liberty and still use green/yellow/red for the percentage, but this now uses palette translations so that it works better with hires replacements.
2020-11-11 11:49:05 +01:00
Christoph Oelckers
3558289d70 - give forward declared enum a type. 2020-11-10 21:44:15 +01:00
Christoph Oelckers
96fbfdcf86 - made hires replacements work for untranslated fonts. 2020-11-10 21:34:49 +01:00
Christoph Oelckers
ed599d0f05 - moved the hires texture replacement logic into a backend callback.
This way it can be handled transparently to the calling code.
Fonts do not work yet, though.
2020-11-10 16:22:02 +01:00
Christoph Oelckers
40358febc1 - changed render interface to resolve textures to materials in the backend.
This is needed to have a unified spot where to resolve textures for both 2D and 3D.
2020-11-10 09:08:48 +01:00
Christoph Oelckers
918425469a - fixed crosshair setup.
Fixes #168
2020-11-09 17:20:14 +01:00
Christoph Oelckers
4e6e564e14 - silenced message about missing function prototypes for exports.
This is necessary to later separate the games' script content from each other because there'd be lots of unprototyped functions otherwise.
2020-11-05 18:59:21 +01:00
Christoph Oelckers
1a300aa220 - fixed GC crash with new statusbar code.
It looks GZDoom never run in the case where using Create<> to create an object this left a pointer uninitialized.
To be safe, use Calloc instead of Malloc to get the memory for the new object so that everything is nulled.
2020-11-03 06:51:42 +01:00
Christoph Oelckers
7a482c6284 - make DHUDFont an object. 2020-10-31 13:20:54 +01:00
Christoph Oelckers
7de6528a1f - the status bars work as objects.
# Conflicts:
#	source/common/menu/menudef.cpp
2020-10-31 13:20:54 +01:00
Christoph Oelckers
f341fbc1fb - backend update. 2020-10-28 21:46:43 +01:00
Christoph Oelckers
5abc5c0509 - option menu positioning fix. 2020-10-25 17:11:45 +01:00
Christoph Oelckers
7dda316391 - define console background for Blood. 2020-10-25 15:31:20 +01:00
Christoph Oelckers
94892cc1f8 - set up the main menu background as default console background for Duke and its offspring games. 2020-10-25 15:06:06 +01:00
Christoph Oelckers
74df8f55da - moved c_console.cpp to 'common'. 2020-10-25 13:26:40 +01:00
Christoph Oelckers
8d3585afe1 - console cleanup.
The bulk of the console is now free of game dependencies.
2020-10-25 13:14:42 +01:00
Christoph Oelckers
273ad5e133 - backend update 2020-10-25 09:20:26 +01:00
Christoph Oelckers
aeda977bc2 - fixed incomplete font initialization. 2020-10-24 21:02:00 +02:00
Christoph Oelckers
c33525381e - undid the native part of GetFullscreenRect because the functions are not compatible. 2020-10-24 18:13:45 +02:00
Christoph Oelckers
c82d9d2908 - backend update from GZDoom. 2020-10-24 17:30:47 +02:00
Christoph Oelckers
c2828fe2e3 fixed undefined end of list behavior of iterators
Also fixed a few warnings
2020-10-18 12:14:05 +02:00
Christoph Oelckers
bc0a55de41 - backend update. 2020-10-17 16:01:31 +02:00
Christoph Oelckers
197a5f642a - properly delete backing images in the texture manager.
Although the images themselves are automatically taken down, any memory they allocate is not - and some of the special tile classes do need dynamic storage.
2020-10-15 20:22:41 +02:00
Mitchell Richters
38c0af4d34 - D_AddFile(): Check the existence of the file before enumerating entire directory to find it as input might be coming in correctly. 2020-10-15 06:50:41 +11:00
Mitchell Richters
be42a6e28d - Amend 9d84f92c0e to just do true case-insensitivity.
* adding /home/mrichters/.config/raze/Blood/sOuNdS.rFf, 1747 lumps
2020-10-14 20:18:53 +11:00
Mitchell Richters
9d84f92c0e - Amend bce15428d5 to only check case on the filename, not the full path.
* Still to be tested when I get home, but need it committed to get it off my laptop anyway.
2020-10-14 18:58:55 +11:00
Christoph Oelckers
25d79285a3 - added the resource file name to the listmaps printout. 2020-10-14 01:13:36 +02:00
Christoph Oelckers
817fa8aba3 - save the entire engine state as JSON.
The sprite lists may still need optimization. Due to different handling between Blood and the core engine they need to be written out completely which is quite wasteful.
2020-10-13 20:18:08 +02:00
Christoph Oelckers
bdc1f66131 - missed an include. 2020-10-12 20:30:12 +02:00
Christoph Oelckers
bce15428d5 - for Unix-like systems, check added resources for lower and uppercase variants if the specified one cannot be found. 2020-10-12 20:01:40 +02:00
Christoph Oelckers
8e1c71b867 Merge branch 'InputContinuation' 2020-10-11 15:24:51 +02:00
Christoph Oelckers
47e452f452 - fixed the real issue for the sound problems and reverted the last commit.
It was far more serious than a botched merge.
2020-10-11 13:44:23 +02:00
Christoph Oelckers
820b37721b - moved tab completion code into 'common' as well. 2020-10-11 00:08:07 +02:00
Christoph Oelckers
242a70e610 - split the command line buffer off from c_console.cpp and reactivated the check for CONBACK. 2020-10-10 23:16:08 +02:00
Christoph Oelckers
fe2e96d3a6 Merge branch 'master' into InputContinuation
# Conflicts:
#	source/games/duke/src/duke3d.h
2020-10-10 21:39:27 +02:00
Christoph Oelckers
a39cf290e3 - Blood: fixed: The player's inventory and some other state were reset for each level, not each new game. 2020-10-10 20:20:12 +02:00
Christoph Oelckers
e95fea1056 - fixed: Toggling palette emulation should reset the texture filter in the samplers. 2020-10-10 18:57:16 +02:00
Christoph Oelckers
16fd505f9a - make sure that sfxinfo_t is always fully initialized by adding initializer values to all fields.
Let's hope this finally fixes those sound hiccups.
2020-10-10 09:47:00 +02:00
Christoph Oelckers
b21beb4039 - made the options search work.
This required changing how the engine credits menu work because it created a circular dependency in its original form.
2020-10-09 22:33:02 +02:00