Commit graph

782 commits

Author SHA1 Message Date
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
Mitchell Richters
5984fda8a1 - PlayerAngle: Repair issues with addadjustment() method following changes in 4ffe004483 that were affecting negative input. 2021-04-06 06:01:54 +10: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
008391a2ad - license correction for ct_chat.cpp
This was supposed to get the same treatment as d_net.cpp, i.e get the old license restored and be released under a duplicate GPL/Doom Source license but it was somehow missed when it got added. Also removed all leftover Doom specific parts.
2021-04-05 08:59:06 +02:00
Christoph Oelckers
658712d893 - removed duplicate d_gui.h file. 2021-04-05 08:56:44 +02:00
Christoph Oelckers
8e31c34b06 - fixed tileImportFromTexture.
* the parser read numbers with leading zeros as octal, which is not wanted here
* texture lookup by file name must be forced for root directory entries.
2021-04-04 21:02:04 +02:00
Christoph Oelckers
97a0cb2a10 - handle voxel rotation in the backend to enable it for all games.
This was previously only present in the Blood module and missed in Exhumed from upstream so the entire option was rather pointless.
Fixes #290
2021-04-04 10:33:29 +02:00
Christoph Oelckers
952bccbf5f - added a check for game-side-defined voxels when discarding one-sided wall sprites viewed from the back. 2021-04-03 21:49:28 +02:00
Mitchell Richters
e3c2757f1c - sethorizon(): Ensure SB_CENTERVIEW bit is always cleared if horizon target is set. 2021-04-02 23:23:24 +11:00
Mitchell Richters
9c01bde44e - gameinput.cpp: Block player input within sethorizon() and applylook() if target for each has been set by the ticker.
* Stops players having the ability to provide input and fight the system trying to set an input.
2021-04-02 22:47:19 +11:00
Mitchell Richters
4ffe004483 - Further work within PlayerAngle and PlayerHorizon structs following 39fe9efaff and bf2d8078a4.
* Reduce code repetition.
* Clamp incoming horizon when using `settarget()` methods.
* Eliminate double calculation that was occurring in `processhelpers()`.
2021-04-02 22:47:17 +11:00
Mitchell Richters
c076310e34 - InputState::ClearAllInput(): Only clear crouch_toggle bool if outside of a level, and resend SB_CROUCH sync bit if inside a level and crouch_toggle is true.
* Fixes #287.
2021-04-01 13:46:16 +11:00
Mitchell Richters
4321efa21c - Re-arrange swaddons[] const char array so that /gameroot is picked up first following changes in f4b27bbd27.
* Since f4b27bbd27, `D:/Program Files (x86)/Steam/steamapps/common/Shadow Warrior Classic/gameroot/addons/Sw.grp` was being picked up instead of `D:/Program Files (x86)/Steam/steamapps/common/Shadow Warrior Classic/gameroot/SW.GRP`.
* Fixes #289.
2021-04-01 12:25:57 +11:00
Mitchell Richters
029f8807df - Make 360. / 2048. a constant expression and replace all uses throughout code. 2021-04-01 10:42:22 +11:00
Mitchell Richters
aa35b6a479 - binaryangle.h: Fix constexpr issue on GCC builds following bf2d8078a4. 2021-04-01 08:32:07 +11:00
Mitchell Richters
c630ad9110 Revert "- subjective fix to Duke 3D's RPG harsh recoil."
This reverts commit 839a7bcbe4.

Revert "- Duke: Restore RPG harsh recoil behind a CVAR."

This reverts commit 88a49b0d22.

# Conflicts:
#	source/core/gamecvars.cpp
#	source/core/gamecvars.h
2021-03-31 20:35:18 +11:00
Mitchell Richters
bf2d8078a4 - PlayerHorizon: Replicate changes to settarget() and processhelpers() methods from 39fe9efaff. 2021-03-31 19:44:50 +11:00
Mitchell Richters
39fe9efaff - PlayerAngle: Adjust how settarget() methods store angle for unsynchronised angle adjustments and adjust processhelpers() method accordingly.
* Repairs angle issues raised in https://forum.zdoom.org/viewtopic.php?f=340&p=1185365.
2021-03-31 19:43:41 +11:00
Christoph Oelckers
60979ee478 - fixed: G_BuildTiccmd needs to clear the command struct.
This could otherwise pick up some stray data from earlier calls and create bogus input.
Fixes #97
2021-03-15 10:11:49 +01:00
Christoph Oelckers
aa789c7605 - adapt to changed value range of module master volume in ZMusic.
The default was far too quiet and had to be increased to let the player have comparable output to the rest of the music system.
2021-03-14 08:51:59 +01:00
Christoph Oelckers
f4b27bbd27 - sort the game selection list by definition order in grpinfo.txt.
This is to have consistent ordering, independent of where the files are found.
Game order is: Duke, Blood, Shadow Warrior, Redneck Rampage, Nam, WW2GI, Exhumed, all the official mission packs are grouped below the game they belong to.
2021-03-12 23:45:03 +01:00
Christoph Oelckers
ad8654ed06 - fixed maphack loader.
The duplicate 'currentSprite' variable prevented it from doing anything.
Also cleaned up the interface a bit to avoid using a global variable for parameter passing.

Fixes #279
2021-03-07 09:39:16 +01:00
Christoph Oelckers
9104fba3ec - moved colormap constants to backend. 2021-03-06 23:06:26 +01:00
Christoph Oelckers
cb14e3023e - fixed "roll" in maphack parser 2021-03-02 21:47:43 +01:00
sinisterseed
8d5682fa97 - version bump.
We're past 0.8 for some time now, and slowly approaching 1.0 :) .
2021-03-02 17:53:25 +02:00
Mitchell Richters
e0f1a83f40 Revert "- SW: Alt implementation for preparing a nuke."
This reverts commit 4fcec5f6d3.

Functionality wasn't working properly, most players will never use it and care only for 100% originality. Was a nice idea, though.

# Conflicts:
#	source/core/gamecvars.cpp
#	source/games/sw/src/panel.cpp
2021-03-02 20:02:20 +11:00
Christoph Oelckers
d28d5a5e1f - use real fog, even in palette emulation mode.
Using the palette to apply fog is just far too broken and cannot be kept in check with all the hacks the Build engine allows.
This only works if all elements on screen use the identity translation lookup which is basically never the case.
Real fog, on the other hand, can easily be applied to everything.
2021-02-27 13:30:52 +01:00
Christoph Oelckers
2094b6420f - use local screen size variables in automap code. 2021-02-27 12:30:20 +01:00
Christoph Oelckers
99f1f0952a - little bit of engine cleanup. 2021-02-25 12:16:21 +01:00
Mitchell Richters
4589f6f26d Merge remote-tracking branch 'public/chasecam_unification' 2021-02-25 20:33:36 +11:00
Rachael Alexanderson
4c0591a25b - port over -noautoexec that I did from GZDoom 2021-02-21 11:12:19 -05:00
Mitchell Richters
cff97c9cf3 - calcChaseCamPos(): Restore original algorithms for new position via GameInterface struct.
* Averaging out the values was a net negative for all games. Each games' original value is tuned to the specific games.
2021-02-18 21:47:39 +11:00
Mitchell Richters
ba57429ac6 - Blood, Duke & SW: Create new backend chasecam function and replace game-specific versions with it.
* Based off SW's implementation.
2021-02-18 21:47:37 +11:00
Mitchell Richters
2abda0e27d - All Games: Migrate each game's clock counter to backend solution. 2021-02-18 21:47:33 +11:00
Christoph Oelckers
5b6aa372ea - fixed autoaim check and adjusted presentation in the menu to be correct for all games.
Fixes #264
2021-02-06 10:56:11 +01:00
Christoph Oelckers
8ffda1c9d1 - Duke: Calculate the true font height of the numbers for alignment in the Statusbar.
The original tiles are all 15 pixels tall, but depending on the games can vary in their true height, so use CheckRealHeight on them to get their true dimensions.
Fixes #250
2021-02-01 00:09:22 +01:00
Christoph Oelckers
7b72fccfa2 - fixed hires replacement code not to destroy the intended translation in case there is no replacement. 2021-01-29 13:08:26 +01:00
Christoph Oelckers
52ba0461bc - fixed hires lookup for tiles using special palettes.
In these cases the palette needs to be ignored and the base version picked. The proper handling for this case was undefined, working in some cases and not in others.
Fixes #247
2021-01-29 11:48:32 +01:00
Christoph Oelckers
26c5d5aa32 - SW: fixed issue with autoselecting single episode entries with non-empty subtitles.
This case needs different offsets.
2021-01-27 23:53:26 +01:00
Christoph Oelckers
981a2c7e5c - Exhumed: restored old static switch array.
There's side effects in here that broke the door logic and made doors automatically open sometimes.
2021-01-24 14:49:51 +01:00
Mitchell Richters
7fcf1c94a1 - Exhumed: Minor fixes to panning code.
* Stop panning if underwater.
* Remove overload from PlayerHorizon from d32dcd5f8e that was causing problems for other games.
* Remove static bool `plrFalling` also from d32dcd5f8e and add `bIsFalling` to `Player` struct, hooking up with save code as well.
2021-01-05 17:07:56 +11:00