Commit graph

17409 commits

Author SHA1 Message Date
Christoph Oelckers
f783a94835 - treat 'vid_adapter 0' as what Windows considers the primary monitor.
Courtesy of https://devblogs.microsoft.com/oldnewthing/20070809-00/?p=25643
2021-09-12 10:02:30 +02:00
Christoph Oelckers
b550f57ce3 - fixed: Brightmap application for horizons was undefined..
This depended on the state of the previously rendered portal which could have switched it off.
2021-09-12 08:37:19 +02:00
Christoph Oelckers
43c38a2097 Merge branch 'master' of https://github.com/coelckers/gzdoom 2021-09-09 13:58:23 +02:00
Rachael Alexanderson
f56ad02716 - enable cvar blacklisting for defcvars for certain platform variables 2021-09-05 10:27:06 -04:00
Rachael Alexanderson
42d948f2fe - demote unknown/invalid defcvars to warnings 2021-09-05 09:47:05 -04:00
Rachael Alexanderson
79cbaf5d4f - split defcvars parser into its own file 2021-09-05 08:21:34 -04:00
Christoph Oelckers
b5294e9e90 - backend update from Raze. 2021-08-31 07:59:37 +02:00
Christoph Oelckers
78fd7aa090 - fixed bad file in last commit. 2021-08-24 16:03:53 +02:00
Christoph Oelckers
c2a2e08f05 - exported STAYONLIFT flag. 2021-08-24 15:50:30 +02:00
Christoph Oelckers
196a4c0b36 - added a modified version of MBF's stay-on-lift feature.
The reason this was never added was the hard dependency on the line trigger types. This implements some modified logic that does not try to find all potential lifts in the map.
Also moving the MBF flags to compatflags so that they are easier to control by the user as these must be part of compatibility presets.
2021-08-24 11:48:07 +02:00
alexey.lysiuk
4bd617187b - fixed crash on getting location description without a level
Run `bench` CCMD in fullscreen console, i.e. with no level loaded, wait five seconds, open menu

https://forum.zdoom.org/viewtopic.php?t=73109&start=15#p1198234
2021-08-24 11:34:28 +03:00
Christoph Oelckers
03c8fd9956 - block user overrides for the logic module of core fragment shaders. 2021-08-24 10:24:23 +02:00
Christoph Oelckers
dfd51ec6d5 - added missing MBF21 Dehacked keys "blood color" and "dropped item". 2021-08-22 16:36:10 +02:00
Christoph Oelckers
854e11a9de - made CheckMeleeRange a normal function again.
This way it can be directly used as a native ZScript export.
Like SuggestMissileAttack the change to a method was for virtual overrides that have been turned into flags since then.
2021-08-21 12:44:36 +02:00
Christoph Oelckers
ac48518abc - merged SuggestMissileAttack back into P_CheckMissileRange.
This was once a virtual function to handle the various monster specific modifiers but this had been changed into properties a long time ago.
2021-08-21 12:37:23 +02:00
Christoph Oelckers
d15f450fef - implemented MBF's monsters_avoid_hazards feature.
Both as a map flag for MBF21 support and as an actor flag for better control.
2021-08-21 12:29:24 +02:00
Christoph Oelckers
5382e7c17b - fixed compilation 2021-08-21 12:22:53 +02:00
Christoph Oelckers
8bdd4befbf - replaced deprecated throw() with noexcept in TObjPtr 2021-08-21 12:22:15 +02:00
Christoph Oelckers
b1de11dce8 - added a map flag to disable MF6_JUMPDOWN.
Not really useful but since MBF has this we may need it if we support the OPTIONS lump for MBF21 later.
This is intentionally not exposed to MAPINFO.
2021-08-21 11:37:57 +02:00
Christoph Oelckers
ff497996a3 - added a per-level AVOIDMELEE flag.
This already existed as a per-actor flag, but for proper MBF support it needs to be settable on a per-map basis as well.
2021-08-21 10:55:22 +02:00
Christoph Oelckers
4614ce41cd - allow passing a remap table to BestColor. 2021-08-21 10:55:21 +02:00
Christoph Oelckers
19c8eb1e33 - fixed bad check for gl pipeline type. 2021-08-20 08:07:16 +02:00
Rachael Alexanderson
2096fefcee Merge remote-tracking branch 'origin/master' into gles2_merge 2021-08-18 12:31:47 -04:00
Marisa Kirisame
13bdd324e1 hud models: add nullptr check for psprites without caller. 2021-08-15 08:47:04 +02:00
Christoph Oelckers
109069f718 - removed the unused palette parameter from the V_GetColor family of functions. 2021-08-14 09:57:23 +02:00
Rachael Alexanderson
92a3731f20 Merge remote-tracking branch 'origin/master' into gles2_merge 2021-08-13 08:11:58 -04:00
Christoph Oelckers
c3772fe203 - changed FString API to use ptrdiff_t instead of long for signed size arguments. 2021-08-12 00:45:59 +02:00
Marisa Kirisame
1d96b68e1a Fixed IsHUDModelForPlayerAvailable limitation. 2021-08-11 20:09:25 +02:00
Marisa Kirisame
888eab3063 HUD model tweaks:
- Look up HUD models by referencing the psprite's caller, rather than player's ReadyWeapon.
- Allow Strife hands psprite to be a model.
2021-08-11 20:09:25 +02:00
Christoph Oelckers
f34258281f - fixed: crushing stairs must use HexenCrush mode.
This was the default for floors even in Doom, so it must also apply to the stairs.
2021-08-11 19:58:57 +02:00
alexey.lysiuk
ed606b8ed3 - extended 2D buffer lifetime to the end of the frame 2021-08-11 19:50:49 +02:00
alexey.lysiuk
387aef27ad - use RefCountedPtr to manage 2D shape buffer infos 2021-08-11 19:50:49 +02:00
alexey.lysiuk
76ecf44549 - added RefCountedBase without virtual destructor 2021-08-11 19:50:49 +02:00
alexey.lysiuk
bbcd522052 - made RefCountedPtr follow rule of five 2021-08-11 19:50:49 +02:00
Gutawer
67e7d1a6f5 - make RenderCommands able to use Shape2D vertex buffers past the Shape2D's lifetime without crashing 2021-08-11 19:50:49 +02:00
Christoph Oelckers
ccf46281df - fixed line color handling in V_BreakLines.
This cannot use the last color found while reading ahead - it must pick the last color of the string part that just got broken out into its own line when starting the next one.
2021-08-11 16:01:40 +02:00
Christoph Oelckers
139f501ec5 - run the dynamic light recreation loop before calling the light ticker.
This was done afterward which performed some needed cleanup too late.
2021-08-11 15:41:42 +02:00
Christoph Oelckers
1097bd6c73 - fixed: instead of checking gl_lights, better check Level->HasDynamicLights.
Especially in the thinker code this is needed for software rendering.
Strictly speaking, the software renderer should do the same, but it checks r_dynlight in so many places deep in the logic where the level is not available.
2021-08-11 14:09:00 +02:00
Christoph Oelckers
26d00e14c7 - file system update from Raze. 2021-08-11 12:39:32 +02:00
Christoph Oelckers
3adadfe4d3 - do not run the dynamic light ticker when lights are switched off. 2021-08-11 12:39:17 +02:00
Christoph Oelckers
f662c629e3 - ensure that shadowmap indices only get set when shadowmaps are enabled.
Having valid indices set when shadowmaps are off would cause the shader to run the full checks for all lights.
2021-08-11 10:06:22 +02:00
Christoph Oelckers
436ec28e94 - fixed file system's zip loader to not strip away a 'filter/' prefix. 2021-08-11 10:01:11 +02:00
Christoph Oelckers
c24f644a61 - do not perform shadowmap updates when dynamic lights are disabled. 2021-08-11 08:08:29 +02:00
Christoph Oelckers
6a63d9e70e - moved the CheckForRestart call one level up so that it is within the Windows code and does not need #ifdefs. 2021-08-10 22:17:00 +02:00
Christoph Oelckers
4505bfa4b8 - delay the restart action from the error pane until after everything has been shut down.
This cannot be done from a place where the old instance still can write to the config file, which happens only in the shutdown process.
2021-08-10 22:09:32 +02:00
Christoph Oelckers
b6156ac490 - re-fixed the font spacing. 2021-08-10 22:04:32 +02:00
Christoph Oelckers
9cd1e8cf7a - use proper XMove for sheet fonts. 2021-08-10 21:18:27 +02:00
Christoph Oelckers
99c66071fb - use original menu spacing for skill and episode menus if all elements are patches. 2021-08-10 21:08:26 +02:00
Christoph Oelckers
f29eff5b4c - fixed: the software scene drawer must be deleted before calling ST_Endoom.
This contains render data that won't get deleted in time before taking down the render backend if not manually performed.
2021-08-10 19:22:19 +02:00
Christoph Oelckers
03b7324f71 - reorder evaluation for 'if' statements to handle the condition first.
Otherwise this won't emit errors if a bad condition is used with an empty conditional part.
2021-08-10 19:03:40 +02:00
Christoph Oelckers
a16088f4b4 - fixed two vr_* CVARs not getting archived. 2021-08-10 18:51:44 +02:00
Christoph Oelckers
61efe76ffd - fixed: palette index 0 (transparent) was left uninitialized for BMF fonts. 2021-08-10 18:18:44 +02:00
Christoph Oelckers
4cee567b23 - fixed: P_RoughMonsterSearch did not pass the fov parameter to its worker functions. 2021-08-10 18:04:10 +02:00
Christoph Oelckers
61739b4086 - fixed BlockThingsIterator to not reset its list of processed actors when traversing portals. 2021-08-10 18:00:14 +02:00
alexey.lysiuk
747c291ae1 - fixed patch version in compatibility implementation of macOS detection 2021-08-07 12:37:18 +03:00
alexey.lysiuk
a21c388dd6 - destroyed stale thinkers after change level failure
https://forum.zdoom.org/viewtopic.php?t=72890
2021-08-06 15:10:21 +03:00
alexey.lysiuk
dcfd72c766 - fixed crash after change level failure
https://forum.zdoom.org/viewtopic.php?t=72890
2021-08-06 15:02:00 +03:00
Cacodemon345
a067466dd8 SDL2: Properly print white bold text to the screen 2021-08-04 20:27:14 +03:00
Christoph Oelckers
441cd0796f - merged gzdoom-gles2 and fixed some issues with pipeline size validation. 2021-08-03 20:12:19 +02:00
Christoph Oelckers
a8a5613675 - use proper music check in 'idmus' CCMD. 2021-08-03 12:59:10 +02:00
Christoph Oelckers
b82b5384a0 - Backend update from Raze.
* voc loader fix.
* better prefix detection in Zip loader.
* SDL Vulkan init.
* disabling of shadowmap management when the feature is off.
2021-08-03 12:52:21 +02:00
Christoph Oelckers
c1a8776a15 - updated common code from screenjob branch.
That is, all parts not related to cutscenes.
2021-08-03 12:30:44 +02:00
drfrag
f89e6950c3 - Make changemap use + for next and +$ for nextsecret maps. 2021-07-29 10:16:10 +02:00
drfrag
5a0dc4297f - Extend the changemap command to allow warping to next or nextsecret. 2021-07-28 10:24:25 -04:00
alexey.lysiuk
7a3d8bd0e5 - fixed crash after fatal error in SDL backend
https://forum.zdoom.org/viewtopic.php?t=72885
2021-07-28 09:50:34 +03:00
alexey.lysiuk
b5247182f4 - fixed premature destruction of status bar
Status bar was already freed while `FCajunMaster::RemoveAllBots()` function may still access it
Status bar is destroyed a bit later in `P_Shutdown()` function

https://forum.zdoom.org/viewtopic.php?t=72843
2021-07-28 09:48:52 +03:00
Cacodemon345
b4fe164192 Search $HOME/.local/share/games/doom directory...
...for soundfonts, IWADs and WAD files.

This partially matches Chocolate Doom behaviour.
2021-07-23 15:51:55 -04:00
Jeroen de Baat
8ac8e31a61 Fix typo in sw renderer comment 2021-07-21 20:58:41 +02:00
drfrag
2d0a876ab1 - Fix wrong thiswad check for materials too. 2021-07-18 13:11:57 +03:00
drfrag
d00c6e4ecc - Added missing null pointer check. 2021-07-17 23:23:32 +02:00
Gaerzi
3f9a3a454b Brightmaps fix
See https://forum.zdoom.org/viewtopic.php?f=2&t=72687 for more information.
2021-07-16 21:14:59 +02:00
Rachael Alexanderson
eb2646b613 - change previous /0 fix: as suggested here: cb8ae0b560 (commitcomment-53414064) 2021-07-13 06:32:54 -04:00
Christoph Oelckers
0cffeef2c6 - added map option to disable shadowmaps.
Prompted by 'Hurt' which has > 4000 lights and runs into both performance issues and unpredictable light selection for the limited amount of shadowmap slots.
2021-07-13 11:54:25 +02:00
Rachael Alexanderson
cb8ae0b560 - fix /0 error caused by having a completely black font character. this error was triggered by Return of the Triad. 2021-07-13 00:15:39 -04:00
alexey.lysiuk
e02690af58 - do not precache unreferenced textures
https://forum.zdoom.org/viewtopic.php?t=72649
2021-07-12 13:27:49 +03:00
Christoph Oelckers
e453f97872 - Backend update from Raze. 2021-07-11 09:53:01 +02:00
Christoph Oelckers
92a92b1303 - fixed: MBF21' scrollers need to divide the offsets by 8. 2021-07-04 11:33:34 +02:00
Christoph Oelckers
9082ef7d49 - MBF21: more work on flags.
* added handlers for the missing upper flags in the first flag word.
* refactored some code related to MF_BOUNCES to adapt to other flags' changes to avoid constant property updates for too many flags.
* treat anything with RF_ZDOOMTRANS as non-translucent for the purpose of the flag checks.
2021-07-02 19:48:58 +02:00
Christoph Oelckers
e82fd43313 - tweaked shadow code a bit.
* let CASTSPRITESHADOW act as an override for render style checks. If this is set we can assume that a shadow is desired regardless of style.
* reordered code to do the more costly checks only when needed.
2021-07-02 09:12:26 +02:00
Christoph Oelckers
5273ef360e - fixed: shadow alpha for translucent objects was not correct in the hardware renderer. 2021-07-02 08:54:15 +02:00
Christoph Oelckers
8547a55677 - better sprite shadow control
* exclude sprites which are not either opaque or use regular blended translucency from casting shadows.
* exclude wall and flat sprites from casting shadows.

In both of these cases the shadow math is unable to produce anything useful that doesn't look off.
2021-07-02 08:47:58 +02:00
Christoph Oelckers
ff129b26d1 - MBF21: added the code generator for the new functions. 2021-07-01 17:42:24 +02:00
Christoph Oelckers
483c1f6dcf - MBF21: added the weapon functions. 2021-07-01 17:42:24 +02:00
alexey.lysiuk
e63f3e394c - fixed format specifier compilation warnings
src/common/engine/serializer_internal.h:241: warning: format specifies type 'long long' but the argument has type 'int64_t' (aka 'long') [-Wformat]
src/common/engine/serializer_internal.h:250: warning: format specifies type 'long long' but the argument has type 'int64_t' (aka 'long') [-Wformat]
src/common/rendering/vulkan/system/vk_device.cpp:364:29: warning: format specifies type 'unsigned long long' but the argument has type 'uint64_t' (aka 'unsigned long') [-Wformat]
src/common/rendering/vulkan/system/vk_framebuffer.cpp:701:57: warning: format specifies type 'unsigned long long' but the argument has type 'VkDeviceSize' (aka 'unsigned long') [-Wformat]
2021-07-01 13:19:18 +03:00
Christoph Oelckers
c8557b8ab4 - let the DEH parser handle 64 bit values.
We may need them, depending on how the MBF21 flag stuff evolves.
2021-07-01 08:55:01 +02:00
Christoph Oelckers
7ade3b829b - moved MF_INCHASE to flags7.
Due to how the MBF21 flag checkers work the first flag word may not repurpose any unused flags in it. We still need MF_SLIDE to be usable by them, despite being totally unused.
2021-07-01 08:55:01 +02:00
alexey.lysiuk
29f6dd23b9 - fixed compilation with GCC and Clang
src/playsim/p_maputl.cpp:1691:42: error: too many arguments provided to function-like macro invocation
src/gamedata/d_dehacked.cpp:2385:62: error: cannot pass non-trivial object of type 'FString' to variadic function;
2021-07-01 09:24:33 +03:00
Christoph Oelckers
c700682a36 - MBF21: ported the code pointers to ZScript.
So far it's just the functions and some initial changes to Dehacked's parser. None of this is usable yet.
2021-07-01 00:53:15 +02:00
Christoph Oelckers
f701ef5c68 - MBF21: Added parser for the state's 'fast' flag. 2021-06-30 17:44:08 +02:00
Christoph Oelckers
1a0398ae59 - MBF21: new weapon flags.
Except for NOAUTOSWITCHTO all remappings to existing features.
2021-06-30 17:19:38 +02:00
Christoph Oelckers
b043a5a5de - add melee range support to A_Saw and A_Punch.
This is merely for MBF21 support and not a recommended editing feature! There are better ways to define the range of a player's attack!
2021-06-30 14:48:13 +02:00
alexey.lysiuk
a9ad3d1fc3 - prevent appearance of dangling pointers in corpse queue
A dangling pointer in corpse queue may appear if actor is added to the queue when GC is in propagation state.
Enqueued corpse actor remains white, and if it’s destroyed and garbage collected before dequeue, a dangling pointer will be accessed during its removal from the queue.
In console, do `summon CorpseSpawner` and `gc now` with the following script loaded. Without a write barrier, it will crash in two seconds.

```
class TestCorpse : Actor
{
	States
	{
	Spawn:
		POSS U 1 A_Die;
	Death:
		POSS U 1 A_QueueCorpse;
		Stop;
	}
}

class CorpseSpawner : Actor
{
	override void Tick()
	{
		A_SpawnItem("TestCorpse");
	}
}
```

https://forum.zdoom.org/viewtopic.php?t=69842
2021-06-30 10:19:08 +03:00
Christoph Oelckers
9b3782ea0f - MBF21: remaining actor properties. 2021-06-29 22:32:38 +02:00
Christoph Oelckers
e2e8ec8b3e - MBF21: implemented thing flags. 2021-06-29 21:08:58 +02:00
Christoph Oelckers
0bb5ec0d22 - MBF21: splash group. 2021-06-29 17:47:52 +02:00
Christoph Oelckers
cc801a7efa - MBF21: added projectile group. 2021-06-29 17:33:16 +02:00
Christoph Oelckers
bca8d01ab3 - MBF21: infighting groups. 2021-06-29 01:34:14 +02:00
Christoph Oelckers
9b4a4157b9 - added an OnDestroy method to Shape2D so that its users can explicitly free the data it holds.
In this case it is very important to care about management, because this class will hold GPU-side buffers!
2021-06-28 22:21:27 +02:00
Christoph Oelckers
3bef08b1aa - MBF21: implemented the new line scroller types.
These extend the parameter set of Scroll_Texture_Offsets, so in Hexen/UDMF format the advanced scroll types are also available for the tag-less variant.
2021-06-28 22:06:07 +02:00
Cacodemon345
5b1b6f1db4 Add Windows 11 detection 2021-06-28 20:18:52 +02:00