engine: reject mbf21 and shit24 wads. there is no way to know if it is safe to ignore...
[k8vavoom.git] / source / decorate / vc_decorate.h
blobbfeeb685537cb6342e498baa10131b804927507a
1 //**************************************************************************
2 //**
3 //** ## ## ## ## ## #### #### ### ###
4 //** ## ## ## ## ## ## ## ## ## ## #### ####
5 //** ## ## ## ## ## ## ## ## ## ## ## ## ## ##
6 //** ## ## ######## ## ## ## ## ## ## ## ### ##
7 //** ### ## ## ### ## ## ## ## ## ##
8 //** # ## ## # #### #### ## ##
9 //**
10 //** Copyright (C) 1999-2006 Jānis Legzdiņš
11 //** Copyright (C) 2018-2023 Ketmar Dark
12 //**
13 //** This program is free software: you can redistribute it and/or modify
14 //** it under the terms of the GNU General Public License as published by
15 //** the Free Software Foundation, version 3 of the License ONLY.
16 //**
17 //** This program is distributed in the hope that it will be useful,
18 //** but WITHOUT ANY WARRANTY; without even the implied warranty of
19 //** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 //** GNU General Public License for more details.
21 //**
22 //** You should have received a copy of the GNU General Public License
23 //** along with this program. If not, see <http://www.gnu.org/licenses/>.
24 //**
25 //**************************************************************************
26 #ifndef VAVOOM_DECORATE_HEADER
27 #define VAVOOM_DECORATE_HEADER
30 enum {
31 GAME_Doom = 0x01,
32 GAME_Heretic = 0x02,
33 GAME_Hexen = 0x04,
34 GAME_Strife = 0x08,
35 GAME_Raven = GAME_Heretic|GAME_Hexen,
36 GAME_Chex = 0x10,
37 GAME_Any = 0xff,
40 enum { MAX_DECORATE_TRANSLATIONS = 0xffff };
41 enum { MAX_BLOOD_TRANSLATIONS = 0xffff };
44 struct VLineSpecInfo {
45 VStr Name;
46 int Number;
50 void ReadLineSpecialInfos ();
51 void ProcessDecorateScripts ();
52 void ShutdownDecorate ();
53 void CompilerReportMemory ();
55 // returns `nullptr` if not found
56 extern const VLineSpecInfo *FindLineSpecialByName (VStr s);
57 // returns `nullptr` if not found
58 extern const VLineSpecInfo *FindLineSpecialByNumber (int num);
59 // returns 0 if not found
60 extern int FindScriptLineSpecialByName (VStr s);
62 // list of all classes that need to be limited in some way
63 extern TArray<VClass *> NumberLimitedClasses;
65 // GameInfo is not spawned yet, so keep them here
66 extern TArray<VDamageFactor> CustomDamageFactors;
68 // do not spawn classes from this set
69 // it is filled by decorate parser, and used to block spawning of known blood
70 extern TMapNC<VName, bool> BlockedSpawnSet;
71 // forced replacements
72 extern TMapNC<VName, VClass *> ForceReplacements;
73 // classes the loader can skip
74 extern TMapNC<VName, bool> ListLoaderCanSkipClass;
76 extern bool decoIgnorePlayerSpeed;
77 extern bool decorateSkipBDWClasses;
79 // 0: no game defs, otherwise bitor of GAME_xxx
80 extern vuint32 SC_ParseGameDef (VScriptParser *sc, bool allowAny=true);
83 #endif