Commit graph

19672 commits

Author SHA1 Message Date
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
Major Cooke
e91485c50c Added GetString/Int/Double/Object(UI) functions to Service.
- These functions serve to deprecate (UI)Get and allow for reducing string translations, as well as passing in objects for maximum flexibility.
2021-07-27 16:26:39 +03:00
Rachael Alexanderson
a4c8fbcc50 - language update 2021-07-25 07:49:24 -04: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
alexey.lysiuk
411b4976c0
- fixed EBlastFlags enum definition 2021-07-21 15:44:07 +03:00
Kaelan
65d9d83ddd Add 'BF_ONLYVISIBLETHINGS' Flag to A_Blast
Adds 'BF_ONLYVISIBLETHINGS' flag to A_Blast, and enables A_Blast to only affect actors that have a line of sight to calling actor.
2021-07-21 06:48:50 -04:00
drfrag
1eeee98b65 - Fixed typo in Heretic light definition. 2021-07-19 20:47: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
Rachael Alexanderson
250fac5b7e - add player setup to simple options menu 2021-07-09 07:50:26 -04:00
alexey.lysiuk
ddd6970549
- fixed dehacked codepointer aliases
https://forum.zdoom.org/viewtopic.php?t=72747
2021-07-09 12:45:58 +03:00
Christoph Oelckers
15a0baadd6 - fixed ZScript compilation. 2021-07-08 10:04:47 +02:00
Christoph Oelckers
fbf5b9f2d7 - MBF21: fix for missile flag checks. 2021-07-06 10:35:44 +02:00
Christoph Oelckers
21164cf0c6 - fixed brightmap definitions for the SpiderMastermind. 2021-07-06 10:35:09 +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
2d63974d3a - fixed: splashes need the MOVEWITHSECTOR flag. 2021-07-02 08:16:29 +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