Commit graph

44 commits

Author SHA1 Message Date
Xaser Acheron
97859fd608 fix MBF21 GetSoundArg off-by-one: sound indices are 1-indexed in args because Killough 2022-01-18 08:06:29 +01:00
Christoph Oelckers
49ab6612cb - fixed Dehacked parsing issues with weapon properties.
Due to a badly used string length check this code didn't really do what it was supposed to.
2022-01-07 00:31:57 +01:00
Christoph Oelckers
77d74a11d1 - removed most templates.h includes. 2021-10-30 10:49:12 +02:00
Christoph Oelckers
3c961a2aa2 - avoid multiple Dehacked mappings to the same function.
Due to some MBF21 related changes these would cause interference.
Instead the two affected functions, A_NailBomb and A_RadiusDamage are now separate script functions that just call A_Explode with the correct parameters.
2021-10-03 18:16:37 +02:00
Christoph Oelckers
3acc5a2723 - fixed code generation issues with parameterized MBF21 functions. 2021-09-19 12:59:24 +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
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
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
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
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
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
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
Xaser Acheron
4b7560cd36 fix: MBF's A_Spawn DEH codepointer should use misc2 as spawnheight, not distance 2021-02-25 08:05:10 +01:00
Christoph Oelckers
db895b43b2 - copied constexpr declarations plus a few fixed in utility code and fixed a few places where this triggered a compile error now. 2020-09-27 08:36:30 +02:00
alexey.lysiuk
fcb6e1b18c - merge whitespaces before comparing Dehacked texts
With introduction of localization support, several strings are no longer identical to the original messages
Double spaces were removed, and letter case was changed
The latter is already handled, extra whitespaces are now deleted to deal with the former

https://forum.zdoom.org/viewtopic.php?t=69236
2020-07-12 11:07:49 +03:00
Christoph Oelckers
a28182fe35 - moved the script compiler's backend to 'common'. 2020-04-11 20:20:55 +02:00
Christoph Oelckers
f02c5c0a56 - took InitializeDefaults out of PClass and moved it to PClassActor.
Like so many other parts, this created a hard dependency of the low level code on very invasive game content.
2020-04-11 20:20:53 +02:00
Christoph Oelckers
b3c7b81893 - decoupled the string table from game implementation details.
Using callbacks now to query needed game state.
2020-04-11 20:19:51 +02:00
Christoph Oelckers
05d8856fe0 - moved file system implementation to 'common'. 2020-04-11 14:00:20 +02:00
Christoph Oelckers
80c6d5b276 - renamed more stuff and also moved the Strife teaser voice handling out of the file system. 2020-04-11 14:00:19 +02:00
Christoph Oelckers
c1bb7de23a - more file system refactoring.
* moved the sprite renaming out of the file system entirely into a caller-provided callback.
* renamed several functions to closer match the terms of a file system.
* moved the VM interface out of the implementation.
2020-04-11 14:00:19 +02:00
Christoph Oelckers
6bccde3b51 - renamed the file system related classes to actually use the term "FileSystem". 2020-04-11 14:00:18 +02:00
Christoph Oelckers
ace3e29473 - removed the implicit conversion operators from FName.
These were creating dangerous interdependencies. It is better to do explicit conversions when needed.
As an added plus, this means that zstring.h no longer depends on name.h which was very annoying.
2020-04-11 14:00:13 +02:00
Christoph Oelckers
6996d54a23 - moved more code to 'common'.
This is all low level utilities with no dependencies on game logic. Having this in a separate directory makes sharing with Raze a lot easier.
2020-04-11 14:00:12 +02:00
Christoph Oelckers
b0ecb02d6b - move SuperFastHash to its own set of files, instead of having this tied to the console.
- replace swapvalues with std::swap globally.
- added some additions to utility code from Raze, mainly to reduce file content differences.
- reduced some unused utilities
2020-04-11 14:00:10 +02:00
Christoph Oelckers
6bfdf904b9 - removed use of copystring in Dehacked code and cleaned up the list of includes in cmdlib.cpp 2020-04-11 14:00:07 +02:00
alexey.lysiuk
5a19010699 - added ability to filter VM disassembly dump
Use '-dumpdisasm something' to output functions with 'something' in their printable names
Open and close output file only once when processing code generated by Dehacked, and calculate its sizes as well
2020-01-19 16:48:35 +02:00
alexey.lysiuk
f32aff3396 - fixed A_PlaySound() called from Dehacked
The recently added argument was missing from PlaySound code pointer handling
Verified other Dehacked functions, and changed one incorrect comment
2020-01-12 11:48:45 +02:00
Christoph Oelckers
76ee658be4 Made several classes trivially copyable,
Many had leftover non-default constructors/ assignment operators, and some were initialized, even though the initialized data was never used.

In case of FCycler this even caused a default setting to be overwritten when used inside FDynamicLight.
2019-09-09 09:52:33 +02:00
Christoph Oelckers
cf74118d53 - fixed the extremely long standing bug that Lost Souls didn't reacquire their target when slamming into something.
This was one of that annoying old design mistakes where Doom and Heretic features were poorly merged together. The Heretic Gargoyle uses very similar coding but performs a subtly different action when actually hitting another actor. This different action was made the default, even for the Lost Soul.
It has now been changed that both monsters use their original action, being distinguished by an actor flag. For compatibility with custom definitions Heretic's behavior, which has been the default in ZDoom will be the preferred one. The one of the Lost Soul can be reactivated by a flag.
2019-08-11 09:00:29 +02:00
Christoph Oelckers
8177583e2f - treat configurations which load a secondary WAD on top of a primary IWAD like SVE to consider the secondary WAD an actual IWAD as well.
This fixes localization of the SVE menu.
2019-07-15 20:48:00 +02:00
Christoph Oelckers
4668fa95e3 - when altering the default string table, make sure that all existing text for the given label is removed that comes from an older resource file.
If this isn't done there can be a mix of content from different sources, depending on the language. It's better to have correct English text than unfitting localized versions.
2019-04-13 14:43:49 +02:00
Christoph Oelckers
ce1ecd0d4b - implemented string table macros. 2019-03-02 12:06:24 +01:00
Christoph Oelckers
495298079b - rewrote the language table so that it doesn't have to reload everything on a language change.
It now reads everything into a two-dimensional TMap and creates a list of mappings that apply to the current setting.
The constant need for reloading was the main blocker in redesigning how Dehacked strings get inserted. Currently they override everything, but IWAD-based Dehacked text shouldn't block PWAD overrides from PWADs' LANGUAGE lumps and instead be treated as coming from an [en default] block.

This also renames the main block from [enu default] to [en default], because it should be treated as the English default for all English locales and not just make it fall through to the base default as it did before.
2019-02-06 13:59:41 +01:00
Christoph Oelckers
979f1df281 Merge remote-tracking branch 'remotes/origin/master' into new_level_refactor
# Conflicts:
#	src/g_level.cpp
#	src/p_user.cpp
2019-02-05 13:49:07 +01:00
Christoph Oelckers
32e5be83ea - moved a few more files and copied the data related parts of p_things.cpp to g_doomedmap.cpp 2019-02-01 19:48:17 +01:00
Renamed from src/d_dehacked.cpp (Browse further)