Commit Graph

19588 Commits

Author SHA1 Message Date
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
Christoph Oelckers dc7ba3778d - fixed explosive damage radius for clericflame.
This was fixed before but must have gotten lost somehow...
2021-06-07 07:46:13 +02:00
emily 4f034950be Make sprite shadows ignore float bob 2021-06-06 13:40:17 +02:00
Christoph Oelckers 8b5847d4a2 - corrected the NUL checks in S_FindSkinnedSound. 2021-06-04 08:26:29 +02:00
alexey.lysiuk 7d1ce1c8cd - fixed parsing of MAPxx par times in BEX lumps
https://forum.zdoom.org/viewtopic.php?t=72458
2021-06-03 16:46:55 +03:00
Christoph Oelckers 30e24938ca - let dynamic lights call UpdateLocation instead of just setting their position right after being spawned.
This ensures that the position is correct and that everything gets set up properly.
2021-05-31 22:13:40 +02:00
Christoph Oelckers b0ccd3a7df - moved Doom specific font init code out of the backend. 2021-05-31 22:13:40 +02:00
drfrag d9db8984af - Fixed crash calling ChangeSky() with an invalid texture. 2021-05-29 15:07:45 -04:00
Zandrewnum acb4d89f52 APROP_Soundclass update again
- Just set init for SoundClass to empty.
- Removed code block from SetActorProperty for APROP_Soundclass that does nothing
- Lower-cased soundclass in FSerializer
- Created a new const char to read the player's soundclass. If the playerpawn returns NAME_None for it's default, then it will set defaultsoundclass to "player". After running the skin code, the function now returns defaultsoundclass or soundclass, depending if soundclass is empty or not.
- Renamed GetSoundClass to S_GetSoundClass
2021-05-28 20:22:37 +02:00
Zandrewnum a5cf0c6605 Sound Class renovations
- SoundClass is instantiated to "" by default. Since this property is only used when it is not empty (otherwise GetSoundClass just defaults to player), we can get away with this.
- We may want the soundclass to remain the same if we explicitly set it to the same one that is currently used (say, we set SoundClass to "Caleb" so all other skins can use it)
- GetActorProperty for APROP_SoundClass just calls GetSoundClass,
- CheckActorProperty also just runs GetSoundClass
- GetSoundClass is no longer a static method. We needed to access it in other places.
- Made renovations to GetSoundClass. First of all, SoundClass is no longer instantiated there. Secondly, skinned sounds are now returned if SoundClass is empty. Thirdly, "sclass" in this method will return the default soundclass of the player pawn or SoundClass, depending on if SoundClass is empty. Finally, sclass will retrieve "player" if it is empty.
2021-05-28 20:22:37 +02:00
Shiny Metagross 4c9461d364 Update d_player.h
- Deleted some comment fragments I left when trying to get the SoundClass to init to NAME_SoundClass
2021-05-28 20:22:37 +02:00
Zandrewnum c7cd25cbcc Made S_FindSkinnedSound to use GetSoundClass again
- I couldn't simply init SoundClass to NAME_SoundClass, even after converting it to the appropriate type. Probably because NAME_SoundClass hasn't been parsed from decorate yet. Instead, I change it to NAME_SoundClass through GetSoundClass if it's valid and currently "player".
- The skin checker code in GetSoundClass now checks if the SoundClass is equal to NAME_SoundClass. This mechanism exists so that way reverting the SoundClass to NAME_SoundClass processes the skin soundclass code. If it's different, the code is not processed.
- Just returns sclass. This is never null, so there's no need to check if so.
- S_FindSkinnedSound just uses GetSoundClass. This makes sure skins are checked.
2021-05-28 20:22:37 +02:00
Zandrewnum f6bdbfe535 APROP_SoundClass inits a default value and checks for null pointers
- Gave default init value to SoundClass as "Player"
- Changed SoundClass detection to use the if/else structure
- Checked for null pointer in S_FindSkinnedSound when reading the player's sound class
2021-05-28 20:22:37 +02:00
Zandrewnum 852a96497d Added APROP_SoundClass
- Added APROP_SoundClass to GetActorProperty, SetActorProperty, CheckActorProperty
2021-05-28 20:22:37 +02:00
nashmuhandes 08fc91fe3e Add 'AddDialogues' in MAPINFO to additively add Strife NPC dialogs without overwriting each other. 2021-05-28 16:15:37 +02:00
Christoph Oelckers 868220107b - added fallback to the parenthesis glyphs for the braces. 2021-05-28 12:36:47 +02:00
Christoph Oelckers 38520e36c8 - fixed generation of default color range for the option menu font. 2021-05-28 12:11:34 +02:00
Christoph Oelckers 20b665c161 - fixed: Actors did not set the position when spawning a dynamic light.
It always reused the previous content of the 'Pos' field which was either undefined or an older position where the actor was located when last spawning a light.
2021-05-28 11:25:01 +02:00
Christoph Oelckers d36fd4f42b - fixed: GetColorTranslation did not handle translation-less single pic 'fonts' properly. 2021-05-28 10:47:11 +02:00
nashmuhandes 75e18cca3c Fixed wrong parameter type passed into TryMove here 2021-05-28 09:10:43 +02:00
Chronos Ouroboros f19f825ccb - fix DaggerAlert using FindState incorrectly. 2021-05-28 00:34:04 -03:00