Commit Graph

19608 Commits

Author SHA1 Message Date
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
Cacodemon345 5b1b6f1db4 Add Windows 11 detection 2021-06-28 20:18:52 +02:00
Christoph Oelckers c4ed0cefde - MBF21: implemented new line flags.
While 'block players' was just a simple remap, 'block land monsters' required quite a bit of work...
This also fixes the bug that BLOCK_FLOATERS was never checked for sliding against a wall.
2021-06-28 20:17:08 +02:00
Christoph Oelckers 057cc0678b - MBF21: handling of new flags in sector special. 2021-06-28 16:20:35 +02:00
alexey.lysiuk 256451115b - report correct macOS version with older SDKs
When built against 10.15 SDK or earlier, macOS 11.0+ returns 10.16 for compatibility, and external process is needed to output the actual version for us
2021-06-15 10:35:33 +03:00
alexey.lysiuk cf4c72d4a7 - fixed potential crash when sound sequence is destroyed
Level can be unset if sound sequence destruction happens after saved game loading failure

https://forum.zdoom.org/viewtopic.php?t=72551
2021-06-14 09:30:51 +03:00
Christoph Oelckers 4e46a83734 - fixed bad type in FxFontCast. 2021-06-14 08:00:08 +02:00
alexey.lysiuk 38f2402d2d - added `TVector2<>` constructor from `float*`
As we seem to do not like explicit constructors, this will make temporary `TVector3<>` object creation much less probable
2021-06-13 10:42:34 +03:00
alexey.lysiuk ff784fc905 - fixed parsing of 2D vectors in OBJ model loader
There is no `TVector2<>` constructor that accepts a pointer to float. However, there is such constructor in `TVector3<>`, so `TVector2<>` can be constructed from `float*` implicitly via temporary `TVector3<>` object.
2021-06-13 10:42:34 +03:00
Rachael Alexanderson e8f007c6ce - fix missing border flat on heretic shareware 2021-06-11 09:17:49 -04:00
alexey.lysiuk e0f07d7088 - fixed initialization of model frames
Replaced loop arrays initialization and obvious comments with something more readable, I hope

https://forum.zdoom.org/viewtopic.php?t=72523
2021-06-10 11:54:26 +03:00
Player701 adad028b33 - Fixed impassable exit line in 007ltsd.wad E4M7 2021-06-08 14:56:44 +03:00
alexey.lysiuk 5b1c73e15f - prevent redundant string copying in Strife conversation parser
strifedialogue.cpp:110:22: warning: loop variable 'addd' of type 'const FString' creates a copy from type 'const FString' [-Wrange-loop-analysis]
2021-06-08 10:31:45 +03:00
alexey.lysiuk e166eeb13d - added detection of macOS 12 Monterey 2021-06-08 10:25:05 +03:00
Christoph Oelckers b3fd8ce12a - fixed permission validation in OptionMenuItemCommand.DoCommand.
This was missing the InMenu check like the other critical menu functions.
2021-06-07 08:16:53 +02:00