Commit graph

7438 commits

Author SHA1 Message Date
Mitchell Richters
2176435831 - Duke: Replace sprite z pos numeric values with correct enum values for each game. 2021-04-15 18:02:16 +10:00
Mitchell Richters
6cebd7fca2 Merge branch 'master' into newrenderer2 2021-04-15 18:01:26 +10:00
Mitchell Richters
aeb16e390c - Duke: Add resurrected flag to handle resurrection via cheating or when pissing in RR. 2021-04-15 18:00:58 +10:00
Mitchell Richters
d5b14a8de3 - Duke: Remove some direct array accesses in lieu of player_struct pointer. 2021-04-15 16:34:24 +10:00
Mitchell Richters
242f958c41 - Duke: Clean up some duplicated code in hudweapon_*.cpp files. 2021-04-15 15:49:36 +10: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
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
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
Mitchell Richters
7b57df3c8f - Exhumed: Redo player panning code.
* Initial implementation from d32dcd5f8e was not working properly and already had some workarounds for when the player was underwater, etc.
* Re-read implementation in GDX and rebased off of it.
* Fixes #303.
2021-04-13 21:56:01 +10:00
Christoph Oelckers
eaebcfcd7d - Exhumed: hotfix for moving on sloped floors 2021-04-13 00:31:50 +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
1e40e93da4 - fixed the vertical offsets of the World Tour skies.
They were rendered too low.
2021-04-12 19:47:16 +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
efe76a6647 - Blood: fixed crash with badly defined drop objects.
Got -1 for picnum there, this was causing crashes.
2021-04-12 16:32:42 +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
d25838fe15 - Blood: fixed issue with INI detection when having content added by RFS files. 2021-04-12 00:31:36 +02:00
Christoph Oelckers
135dd1f081 - added PlaySound CCNDs. 2021-04-12 00:31:23 +02:00
Christoph Oelckers
9b977ba96e - fixed mixup of values 0 and -1 in sound code.
0 means 'default', -1 means 'silent'. This caused playback issues for useSoundGen. All other places were passing proper volume values along, this is the only one to read the volume from map data.
2021-04-11 22:42:24 +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
fd6a71cac5 - fixed a random crash with an empty sprite I just experienced. 2021-04-11 21:14:09 +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
32250f704f - mograted Blood's precaching to the backend's implementation. 2021-04-11 12:42:59 +02:00
Christoph Oelckers
6342926871 - disabled the QAV preload calls in Blood.
Aside from not having been functional, this is ultimately more harmful than useful as it forces loading of a large number of textures at the same time during gameplay instead of spreading them out.
2021-04-11 12:10:52 +02:00
Christoph Oelckers
d663d84596 - changed precaching setup for Exhumed.
This looks overly simplistic - I doubt it's enough to catch everything.
2021-04-11 10:54:10 +02:00
Christoph Oelckers
e4cf768fa8 - call StartPrecaching to keep Vulkan happy. 2021-04-11 10:50:04 +02:00
Mitchell Richters
e959226914 - Fix RRRA bike/boat angle adjustments following changes in f343bd8d5e.
* Because we're wrapping a negative number around to be unsigned, we need to do that after we've done our bit-shift operations.
2021-04-11 18:34:07 +10:00
Christoph Oelckers
387c62d584 - rewrote SW's precaching code.
* made it palette aware
* use backend facilities to track precached data.
* fixes bug in animation precaching loops - they only precached the base index over and over again.
2021-04-11 10:20:52 +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
Christoph Oelckers
b3bcedda6c - moved backend independent HUD code out of glbackend.cpp. 2021-04-11 08:40:18 +02:00
Christoph Oelckers
0bdbf0f1cb - fixed: alpha was never set for voxels.
Fixes #304
2021-04-11 08:26:36 +02:00
Mitchell Richters
f254eeb465 - binaryangle.h: Remove lookangle class and replace use with binangle.
* Added in fca846272e to deal with signed adjustments but its just not needed.
* Made better use of `binangle`/`fixedhoriz` class getters and setters than before as well.
2021-04-11 15:45:53 +10: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
a5ed7ba8a3 - two more simple .def commands. 2021-04-10 16:35:29 +02:00
Christoph Oelckers
6b684e74ba - migrated 'texture' .def command. 2021-04-10 14:09:08 +02:00
Christoph Oelckers
057b8a7354 - cleanup of bvectan family of functions.
This can be greatly simplified to a single bvectangbam function using atan2 directly.
2021-04-10 12:54:29 +02:00
Christoph Oelckers
b4d89cbac3 - got rid of the remaining occurences of gethiq16angle and all related tables. 2021-04-10 12:10:28 +02:00
Christoph Oelckers
35221188db - inlined Clipper::PointToAngle 2021-04-10 10:56:11 +02:00
Christoph Oelckers
2e191f2742 - consolidated the SetLightAndFog code fragments. 2021-04-10 10:34:20 +02:00
Mitchell Richters
8ebd1a9ebc - binaryangle.h: Clean up HorizToPitch() since we're on the new renderer. 2021-04-10 10:06:30 +10:00
Mitchell Richters
28fb752446 - Replace gethiq16angle() with bvectangbam() in renderer code. This addresses some observed clipping issues in the new renderer. 2021-04-10 09:23:02 +10:00
Christoph Oelckers
e0dc261dfd - fixed edge case in wall sorter when the camera is exactly on a line that's being checked. 2021-04-10 00:05:29 +02:00
Christoph Oelckers
02dedaad46 - Blood: undid restriction for original QAV for Guns Akimbo shotgun fix. 2021-04-09 22:48:39 +02:00
Christoph Oelckers
345275db5d - better handling for portal lines having sloped back sectors.
This is a very ugly special case that probably needs a bit more work to get right, for now this should be enough as this combination is rather rare.
2021-04-09 22:48:16 +02:00
Christoph Oelckers
19a4c12e6a - Blood: undid restriction for original QAV for Guns Akimbo shotgun fix. 2021-04-09 22:11:16 +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
2084c53538 - fixed extended music lookup again. 2021-04-09 21:21:53 +02:00
Christoph Oelckers
92697686cb - migrated a few more .def commands. 2021-04-09 19:59:03 +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
2820c50f3e - Blood: let the RFS parser handle forward slashes when cutting out the base directory of a given file name. 2021-04-09 18:25:32 +02:00
alexey.lysiuk
57c7a85d9f - fixed compilation with Clang
source/build/src/defs.cpp:3198:56: error: cannot pass non-trivial object of type 'FString' to variadic function; expected type from format string was 'char *' [-Wnon-pod-varargs]
2021-04-09 15:55:30 +03: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
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
778a75c097 - fixed rffdefineid handler passing a bad file name to the backend. 2021-04-08 21:36:52 +02:00
Christoph Oelckers
9f08f9786a - consolidated a bit of dead content in .def parser. 2021-04-08 20:03:50 +02:00
Christoph Oelckers
c9483353ff - some more translucency checks. 2021-04-08 19:56:18 +02:00
Christoph Oelckers
1362a7ebc5 - added extended translucency support and did a bit of code consolidation. 2021-04-08 19:45:18 +02:00
Christoph Oelckers
794cab2d54 - removed some dead code. 2021-04-08 18:54:39 +02:00
Christoph Oelckers
a530dfbe35 Merge branch 'master' into newrenderer2 2021-04-08 18:52:54 +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
a53ed46bae - fixed item placement on SW minihud.
Fixes #295
2021-04-08 17:43:56 +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
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
4d29cd2df2 - I shouldn't have used WT's skies as reference - they got front and back faces swapped. 2021-04-08 13:54:58 +02:00
Christoph Oelckers
38ecfc8fa5 - added handling for cubemapped skyboxes. 2021-04-08 12:47:31 +02:00
Christoph Oelckers
b68512ef88 - on closer inspection, do not draw skies on intra-sky lines ever - the renderer already takes care of this elsewhere. 2021-04-08 10:10:15 +02:00
Christoph Oelckers
d348377bd8 - when drawing skies on walls where both sides are sky, use the backside's texture.
This fixes a sky anomaly in RR's E1L1.
2021-04-08 09:45:17 +02:00
Christoph Oelckers
e0ee3a6701 - fixed: Vulkan did not define NPOT_EMULATION for its fragment shader. 2021-04-08 09:29:08 +02:00