diff --git a/docs/classes.txt b/docs/classes.txt
index 682d3229..543d7490 100644
--- a/docs/classes.txt
+++ b/docs/classes.txt
@@ -173,7 +173,7 @@ IMPLEMENT_SERIAL. For a class that won't be saved to disk, do this:
should be sure to change if you change the structs. The code for
serializing sector_t and line_t can be found in P_SerializeWorld() in
p_saveg.cpp. The code for serializing player_t is in p_user.cpp as
- player_s::Serialize().
+ player_t::Serialize().
To determine the type of an object, you can use the IsA() and IsKindOf()
methods of DObject. IsA() tests if the object is an instance of a
@@ -210,8 +210,8 @@ END_POINTERS
If you add pointers to any class, you need to update this list accordingly.
The player class uses a hack, because it is not derived from DObject, to
-clear pointers. See player_s::FixPointers() in p_user.cpp if you add any
-pointers to player_s.
+clear pointers. See player_t::FixPointers() in p_user.cpp if you add any
+pointers to player_t.
When you want to destroy any object derived from DThinker (this includes all
actors), call that object's Destroy() method. Do not use delete, because it
diff --git a/docs/rh-log.txt b/docs/rh-log.txt
index 1d607e93..34b459e5 100644
--- a/docs/rh-log.txt
+++ b/docs/rh-log.txt
@@ -1,4 +1,36 @@
+July 21, 2008
+- Converted most sprintf (and all wsprintf) calls to either mysnprintf or
+ FStrings, depending on the situation.
+- Changed the strings in the wbstartstruct to be FStrings.
+- Changed myvsnprintf() to output nothing if count is greater than INT_MAX.
+ This is so that I can use a series of mysnprintf() calls and advance the
+ pointer for each one. Once the pointer goes beyond the end of the buffer,
+ the count will go negative, but since it's an unsigned type it will be
+ seen as excessively huge instead. This should not be a problem, as there's
+ no reason for ZDoom to be using text buffers larger than 2 GB anywhere.
+- Ripped out the disabled bit from FGameConfigFile::MigrateOldConfig().
+- Changed CalcMapName() to return an FString instead of a pointer to a static
+ buffer.
+- Changed startmap in d_main.cpp into an FString.
+- Changed CheckWarpTransMap() to take an FString& as the first argument.
+- Changed d_mapname in g_level.cpp into an FString.
+- Changed DoSubstitution() in ct_chat.cpp to place the substitutions in an
+ FString.
+- Fixed: The MAPINFO parser wrote into the string buffer to construct a map
+ name when given a Hexen map number. This was fine with the old scanner
+ code, but only a happy coincidence prevents it from crashing with the new
+ code.
+
+July 21, 2008 (Changes by Graf Zahl)
+- Added MF4_BOSSDEATH to the Minotaur.
+- Fixed: The boss brain looped to the wrong state.
+- Converted Heretic's Staff, GoldWand, Crossbow and Gauntlets to DECORATE.
+- fixed: Morphing to a class without a face definition crashed.
+- Converted all of Heretic's actors except the weapons to DECORATE.
+- Added the option to define the ActorInfos for native classes in DECORATE.
+
July 20, 2008 (Changes by Graf Zahl)
+- Fixed: When copying visplanes the sky texture was forgotten.
- converted the boss brain to DECORATE.
- added an abstract base class for special map spots that are maintained in
lists and rewrote the boss brain, the mace and DSparil to use it.
@@ -22,6 +54,31 @@ July 18, 2008 (Changes by Graf Zahl)
- Added const char &operator[] (unsigned int index) to FString class.
- Added Skulltag's Teleport_NoStop action special.
+July 17, 2008
+- Added the 'B' conversion specifier to StringFormat::VWorker() for printing
+ binary numbers.
+
+July 16, 2008
+- Added CMake support for building with MinGW, MSYS, and NMake. Linux support
+ is probably broken until I get around to booting into Linux again. Niceties
+ provided over the existing Makefiles they're replacing:
+ * All command-line builds can use the same build system, rather than having
+ a separate one for MinGW and another for Linux.
+ * Microsoft's NMake tool is supported as a target.
+ * Progress meters.
+ * Parallel makes work from a fresh checkout without needing to be primed
+ first with a single-threaded make.
+ * Porting to other architectures should be simplified, whenever that day
+ comes.
+
+July 15, 2008
+- Replaced the makewad tool with zipdir. This handles the dependency tracking
+ itself instead of generating an external makefile to do it, since I couldn't
+ figure out how to generate a makefile with an external tool and include it
+ with a CMake-generated makefile. Where makewad used a master list of files
+ to generate the package file, zipdir just zips the entire contents of one or
+ more directories.
+
July 15, 2008 (Changes by Graf Zahl)
- Fixed: Strife's EntityBoss didn't copy friendliness information to the
sub-entities.
@@ -47,6 +104,10 @@ July 12, 2008 (Changes by Graf Zahl)
- Fixed: ACS's ActivatorSound must check if the activator is valid.
- Changed stats drawing so that multi-line strings can be used.
+July 9, 2008
+- Added the gdtoa package from netlib's fp library so that ZDoom's printf-style
+ formatting can be entirely independant of the CRT.
+
July 5, 2008
- Added a check to G_DoSaveGame() to prevent saving when you're not actually
in a level.
diff --git a/gzdoom.sln b/gzdoom.sln
index 28d90faf..7752c573 100644
--- a/gzdoom.sln
+++ b/gzdoom.sln
@@ -26,10 +26,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wadsrc", "wadsrc\wadsrc.vcp
{24A19C02-F041-4AB0-A1A1-02E1E88EDBD3} = {24A19C02-F041-4AB0-A1A1-02E1E88EDBD3}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "makewad", "tools\makewad\makewad.vcproj", "{24A19C02-F041-4AB0-A1A1-02E1E88EDBD3}"
- ProjectSection(ProjectDependencies) = postProject
- {F9D9E7D4-E1A2-4866-9E85-B1B14137EE63} = {F9D9E7D4-E1A2-4866-9E85-B1B14137EE63}
- EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "updaterevision", "tools\updaterevision\updaterevision.vcproj", "{6077B7D6-349F-4077-B552-3BC302EF5859}"
EndProject
@@ -47,6 +43,12 @@ EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lights", "wadsrc_lights\lights.vcproj", "{31090871-A623-4BBC-A167-DE821CD1240C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dumb_static", "dumb\vc6\dumb_static\dumb_static.vcproj", "{8997289F-10BF-4678-8BAA-3BB509C84953}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zipdir", "tools\zipdir\zipdir.vcproj", "{24A19C02-F041-4AB0-A1A1-02E1E88EDBD3}"
+ ProjectSection(ProjectDependencies) = postProject
+ {F9D9E7D4-E1A2-4866-9E85-B1B14137EE63} = {F9D9E7D4-E1A2-4866-9E85-B1B14137EE63}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gdtoa", "gdtoa\gdtoa.vcproj", "{B68E0ABF-B627-48A3-A92F-D8F827A75054}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/gzdoom.vcproj b/gzdoom.vcproj
index 191bc70e..1d59d999 100644
--- a/gzdoom.vcproj
+++ b/gzdoom.vcproj
@@ -55,8 +55,8 @@
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
OmitFramePointers="true"
- AdditionalIncludeDirectories="src\win32,src\sound,src,zlib,src\g_shared,src\g_doom,src\g_raven,src\g_heretic,src\g_hexen,src\g_strife;flac;jpeg-6b;snes_spc\snes_spc"
- PreprocessorDefinitions="NDEBUG,WIN32,_WIN32,_WINDOWS,USEASM,HAVE_STRUPR,HAVE_FILELENGTH,SILENT_INSTANT_FLOORS"
+ AdditionalIncludeDirectories="src\win32,src\sound,src,zlib,src\g_shared,src\g_doom,src\g_raven,src\g_heretic,src\g_hexen,src\g_strife;flac;jpeg-6b;snes_spc\snes_spc;gdtoa"
+ PreprocessorDefinitions="NDEBUG,WIN32,_WIN32,_WINDOWS,USEASM,NO_MANIFEST"
StringPooling="true"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
@@ -172,8 +172,8 @@
Name="VCCLCompilerTool"
Optimization="0"
InlineFunctionExpansion="0"
- AdditionalIncludeDirectories="src\win32;src\sound;src;zlib;src\g_shared;src\g_doom;src\g_raven;src\g_heretic;src\g_hexen;src\g_strife;flac;jpeg-6b;snes_spc\snes_spc"
- PreprocessorDefinitions="WIN32,_DEBUG,_WIN32,_WINDOWS,USEASM,_CRTDBG_MAP_ALLOC,HAVE_STRUPR,HAVE_FILELENGTH"
+ AdditionalIncludeDirectories="src\win32;src\sound;src;zlib;src\g_shared;src\g_doom;src\g_raven;src\g_heretic;src\g_hexen;src\g_strife;flac;jpeg-6b;snes_spc\snes_spc;gdtoa"
+ PreprocessorDefinitions="WIN32,_DEBUG,_WIN32,_WINDOWS,USEASM,_CRTDBG_MAP_ALLOC,NO_MANIFEST"
MinimalRebuild="true"
RuntimeLibrary="1"
EnableFunctionLevelLinking="true"
@@ -1552,37 +1552,39 @@
+
+
+
-
-
-
@@ -1596,37 +1598,39 @@
+
+
+
-
-
-
@@ -1640,38 +1644,40 @@
+
+
+
-
-
-
@@ -1684,38 +1690,40 @@
+
+
+
-
-
-
@@ -1728,38 +1736,40 @@
+
+
+
-
-
-
@@ -2768,6 +2778,10 @@
RelativePath="docs\classes.txt"
>
+
+
diff --git a/jpeg-6b/jpeg-6b.vcproj b/jpeg-6b/jpeg-6b.vcproj
index 0c171937..c6d6ce0d 100644
--- a/jpeg-6b/jpeg-6b.vcproj
+++ b/jpeg-6b/jpeg-6b.vcproj
@@ -11,6 +11,9 @@
+
@@ -77,6 +80,69 @@
Name="VCPostBuildEventTool"
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -274,6 +405,10 @@
>
+
+
diff --git a/snes_spc/snes_spc.vcproj b/snes_spc/snes_spc.vcproj
index 42560a6d..ea0e62bf 100644
--- a/snes_spc/snes_spc.vcproj
+++ b/snes_spc/snes_spc.vcproj
@@ -11,6 +11,9 @@
+
@@ -77,6 +80,69 @@
Name="VCPostBuildEventTool"
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -377,12 +662,10 @@
>
-
-
+
diff --git a/src/a.nas b/src/a.nas
index cdcbd7f0..196e8317 100644
--- a/src/a.nas
+++ b/src/a.nas
@@ -3,7 +3,7 @@
; See the included license file "BUILDLIC.TXT" for license info.
; This file has been modified from Ken Silverman's original release
-%include "src/valgrind.inc"
+%include "valgrind.inc"
SECTION .data
diff --git a/src/am_map.cpp b/src/am_map.cpp
index 8530e8fb..50ae598d 100644
--- a/src/am_map.cpp
+++ b/src/am_map.cpp
@@ -733,7 +733,7 @@ void AM_loadPics ()
for (i = 0; i < 10; i++)
{
- sprintf (namebuf, "AMMNUM%d", i);
+ mysnprintf (namebuf, countof(namebuf), "AMMNUM%d", i);
marknums[i] = TexMan.CheckForTexture (namebuf, FTexture::TEX_MiscPatch);
}
diff --git a/src/b_game.cpp b/src/b_game.cpp
index b3f8d010..c6b6a0fe 100644
--- a/src/b_game.cpp
+++ b/src/b_game.cpp
@@ -327,7 +327,8 @@ bool FCajunMaster::SpawnBot (const char *name, int color)
}
if (TEAMINFO_IsValidTeam (thebot->lastteam))
{ // Keep the bot on the same team when switching levels
- sprintf (concat+strlen(concat), "\\team\\%d\n", thebot->lastteam);
+ mysnprintf (concat + strlen(concat), countof(concat) - strlen(concat),
+ "\\team\\%d\n", thebot->lastteam);
}
Net_WriteString (concat);
}
@@ -602,7 +603,7 @@ bool FCajunMaster::LoadBots ()
}
}
appendinfo (newinfo->info, "team");
- sprintf (teamstr, "%d", teamnum);
+ mysnprintf (teamstr, countof(teamstr), "%d", teamnum);
appendinfo (newinfo->info, teamstr);
gotteam = true;
break;
diff --git a/src/c_bind.cpp b/src/c_bind.cpp
index e7fb2838..f713257b 100644
--- a/src/c_bind.cpp
+++ b/src/c_bind.cpp
@@ -275,7 +275,7 @@ static const char *KeyName (int key)
if (KeyNames[key])
return KeyNames[key];
- sprintf (name, "#%d", key);
+ mysnprintf (name, countof(name), "#%d", key);
return name;
}
diff --git a/src/c_cmds.cpp b/src/c_cmds.cpp
index 1a739b38..33d10d4a 100644
--- a/src/c_cmds.cpp
+++ b/src/c_cmds.cpp
@@ -247,7 +247,7 @@ CCMD (idclev)
{
int epsd, map;
char buf[2];
- char *mapname;
+ FString mapname;
buf[0] = argv[1][0] - '0';
buf[1] = argv[1][1] - '0';
@@ -283,9 +283,9 @@ CCMD (hxvisit)
if ((argv.argc() > 1) && (*(argv[1] + 2) == 0) && *(argv[1] + 1) && *argv[1])
{
- char mapname[9];
+ FString mapname("&wt@");
- sprintf (mapname, "&wt@%c%c", argv[1][0], argv[1][1]);
+ mapname << argv[1][0] << argv[1][1];
if (CheckWarpTransMap (mapname, false))
{
diff --git a/src/c_console.cpp b/src/c_console.cpp
index c0fe66a5..7a92f7ee 100644
--- a/src/c_console.cpp
+++ b/src/c_console.cpp
@@ -1174,7 +1174,7 @@ void C_DrawConsole (bool hw2d)
if (TickerLabel)
{
tickbegin = (int)strlen (TickerLabel) + 2;
- sprintf (tickstr, "%s: ", TickerLabel);
+ mysnprintf (tickstr, countof(tickstr), "%s: ", TickerLabel);
}
if (tickend > 256 - ConFont->GetCharWidth(0x12))
tickend = 256 - ConFont->GetCharWidth(0x12);
@@ -1184,7 +1184,8 @@ void C_DrawConsole (bool hw2d)
tickstr[tickend + 2] = ' ';
if (TickerPercent)
{
- sprintf (tickstr + tickend + 3, "%d%%", Scale (TickerAt, 100, TickerMax));
+ mysnprintf (tickstr + tickend + 3, countof(tickstr) - tickend - 3,
+ "%d%%", Scale (TickerAt, 100, TickerMax));
}
else
{
diff --git a/src/c_cvars.cpp b/src/c_cvars.cpp
index 91bbcbc2..04f8e2aa 100644
--- a/src/c_cvars.cpp
+++ b/src/c_cvars.cpp
@@ -268,15 +268,15 @@ char *FBaseCVar::ToString (UCVarValue value, ECVarType type)
return value.String;
case CVAR_Int:
- sprintf (cstrbuf, "%i", value.Int);
+ mysnprintf (cstrbuf, countof(cstrbuf), "%i", value.Int);
break;
case CVAR_Float:
- sprintf (cstrbuf, "%g", value.Float);
+ mysnprintf (cstrbuf, countof(cstrbuf), "%g", value.Float);
break;
case CVAR_GUID:
- FormatGUID (cstrbuf, *value.pGUID);
+ FormatGUID (cstrbuf, countof(cstrbuf), *value.pGUID);
break;
default:
@@ -356,7 +356,7 @@ UCVarValue FBaseCVar::FromInt (int value, ECVarType type)
break;
case CVAR_String:
- sprintf (cstrbuf, "%i", value);
+ mysnprintf (cstrbuf, countof(cstrbuf), "%i", value);
ret.String = cstrbuf;
break;
@@ -390,7 +390,7 @@ UCVarValue FBaseCVar::FromFloat (float value, ECVarType type)
break;
case CVAR_String:
- sprintf (cstrbuf, "%g", value);
+ mysnprintf (cstrbuf, countof(cstrbuf), "%g", value);
ret.String = cstrbuf;
break;
@@ -891,7 +891,7 @@ UCVarValue FColorCVar::FromInt2 (int value, ECVarType type)
if (type == CVAR_String)
{
UCVarValue ret;
- sprintf (cstrbuf, "%02x %02x %02x",
+ mysnprintf (cstrbuf, countof(cstrbuf), "%02x %02x %02x",
RPART(value), GPART(value), BPART(value));
ret.String = cstrbuf;
return ret;
diff --git a/src/c_dispatch.cpp b/src/c_dispatch.cpp
index 06770547..66878b4a 100644
--- a/src/c_dispatch.cpp
+++ b/src/c_dispatch.cpp
@@ -246,13 +246,13 @@ static int ListActionCommands (const char *pattern)
for (i = 0; i < NUM_ACTIONS; ++i)
{
if (pattern == NULL || CheckWildcards (pattern,
- (sprintf (matcher, "+%s", ActionMaps[i].Name), matcher)))
+ (mysnprintf (matcher, countof(matcher), "+%s", ActionMaps[i].Name), matcher)))
{
Printf ("+%s\n", ActionMaps[i].Name);
count++;
}
if (pattern == NULL || CheckWildcards (pattern,
- (sprintf (matcher, "-%s", ActionMaps[i].Name), matcher)))
+ (mysnprintf (matcher, countof(matcher), "-%s", ActionMaps[i].Name), matcher)))
{
Printf ("-%s\n", ActionMaps[i].Name);
count++;
diff --git a/src/c_expr.cpp b/src/c_expr.cpp
index 82d972bd..6fcd19c4 100644
--- a/src/c_expr.cpp
+++ b/src/c_expr.cpp
@@ -351,7 +351,7 @@ static FStringProd *DoubleToString (FProduction *prod)
char buf[128];
FStringProd *newprod;
- sprintf (buf, "%g", static_cast(prod)->Value);
+ mysnprintf (buf, countof(buf), "%g", static_cast(prod)->Value);
newprod = NewStringProd (buf);
M_Free (prod);
return newprod;
diff --git a/src/cmdlib.cpp b/src/cmdlib.cpp
index e4df119a..9731874e 100644
--- a/src/cmdlib.cpp
+++ b/src/cmdlib.cpp
@@ -315,9 +315,9 @@ bool CheckWildcards (const char *pattern, const char *text)
// [RH] Print a GUID to a text buffer using the standard format.
-void FormatGUID (char *text, const GUID &guid)
+void FormatGUID (char *buffer, size_t buffsize, const GUID &guid)
{
- sprintf (text, "{%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}",
+ mysnprintf (buffer, buffsize, "{%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}",
(uint32)guid.Data1, guid.Data2, guid.Data3,
guid.Data4[0], guid.Data4[1],
guid.Data4[2], guid.Data4[3],
@@ -375,7 +375,7 @@ void CreatePath(const char * fn)
if (c!='\\' && c!='/')
{
- sprintf(name, "%s/", fn);
+ mysnprintf(name, countof(name), "%s/", fn);
DoCreatePath(name);
}
else DoCreatePath(fn);
diff --git a/src/cmdlib.h b/src/cmdlib.h
index 12808a49..4916eee1 100644
--- a/src/cmdlib.h
+++ b/src/cmdlib.h
@@ -48,7 +48,7 @@ void ReplaceString (char **ptr, const char *str);
bool CheckWildcards (const char *pattern, const char *text);
-void FormatGUID (char *text, const GUID &guid);
+void FormatGUID (char *buffer, size_t buffsize, const GUID &guid);
const char *myasctime ();
diff --git a/src/codepointers.h b/src/codepointers.h
index edaf077c..08da4328 100644
--- a/src/codepointers.h
+++ b/src/codepointers.h
@@ -99,12 +99,6 @@ ACTOR(PlayerSkinCheck)
ACTOR(QueueCorpse)
ACTOR(DeQueueCorpse)
ACTOR(SetGravity)
-
-// Special code pointers for Strife's player - not to be used elsewhere!
-ACTOR(ItBurnsItBurns)
-ACTOR(CrispyPlayer)
-ACTOR(DropFire)
-
ACTOR(ClearTarget)
ACTOR(LookEx)
ACTOR(JumpIfTargetInLOS)
@@ -113,3 +107,54 @@ ACTOR(DamageChildren)
ACTOR(CheckForReload)
ACTOR(ResetReloadCounter)
ACTOR(ClearReFire)
+
+// Heretic stuff
+ACTOR(Feathers)
+ACTOR(BeakRaise)
+ACTOR(BeakAttackPL1)
+ACTOR(BeakAttackPL2)
+ACTOR(Sor1Pain)
+ACTOR(Sor1Chase)
+ACTOR(Srcr1Attack)
+ACTOR(SorcererRise)
+ACTOR(Srcr2Decide)
+ACTOR(Srcr2Attack)
+ACTOR(Sor2DthInit)
+ACTOR(Sor2DthLoop)
+ACTOR(BlueSpark)
+ACTOR(GenWizard)
+ACTOR(TimeBomb)
+ACTOR(ImpDeath)
+ACTOR(ImpXDeath1)
+ACTOR(ImpExplode)
+ACTOR(PodPain)
+ACTOR(RemovePod)
+ACTOR(MakePod)
+ACTOR(AccTeleGlitter)
+ACTOR(VolcanoSet)
+ACTOR(VolcanoBlast)
+ACTOR(VolcBallImpact)
+ACTOR(LichAttack)
+ACTOR(LichIceImpact)
+ACTOR(LichFireGrow)
+ACTOR(WhirlwindSeek)
+ACTOR(KnightAttack)
+ACTOR(DripBlood)
+ACTOR(GhostOff)
+ACTOR(WizAtk1)
+ACTOR(WizAtk2)
+ACTOR(WizAtk3)
+
+ACTOR(StaffAttack)
+ACTOR(FireGoldWandPL1)
+ACTOR(FireGoldWandPL2)
+ACTOR(FireCrossbowPL1)
+ACTOR(FireCrossbowPL2)
+ACTOR(GauntletAttack)
+
+
+// Special code pointers for Strife's player - not to be used elsewhere!
+ACTOR(ItBurnsItBurns)
+ACTOR(CrispyPlayer)
+ACTOR(DropFire)
+
diff --git a/src/ct_chat.cpp b/src/ct_chat.cpp
index 2953483d..b223b08f 100644
--- a/src/ct_chat.cpp
+++ b/src/ct_chat.cpp
@@ -55,7 +55,7 @@ static void CT_ClearChatMessage ();
static void CT_AddChar (char c);
static void CT_BackSpace ();
static void ShoveChatStr (const char *str, BYTE who);
-static bool DoSubstitution (char *out, const char *in);
+static bool DoSubstitution (FString &out, const char *in);
static int len;
static BYTE ChatQueue[QUEUESIZE];
@@ -309,7 +309,7 @@ static void CT_ClearChatMessage ()
static void ShoveChatStr (const char *str, BYTE who)
{
- char substBuff[256];
+ FString substBuff;
if (str[0] == '/' &&
(str[1] == 'm' || str[1] == 'M') &&
@@ -341,20 +341,20 @@ static void ShoveChatStr (const char *str, BYTE who)
//
//===========================================================================
-static bool DoSubstitution (char *out, const char *in)
+static bool DoSubstitution (FString &out, const char *in)
{
player_t *player = &players[consoleplayer];
AWeapon *weapon = player->ReadyWeapon;
const char *a, *b;
a = in;
- while ((b = strchr (a, '$')))
+ out = "";
+ while ( (b = strchr(a, '$')) )
{
- strncpy (out, a, b - a);
- out += b - a;
+ out.AppendCStrPart(a, b - a);
a = ++b;
- while (*b && isalpha (*b))
+ while (*b && isalpha(*b))
{
++b;
}
@@ -363,71 +363,69 @@ static bool DoSubstitution (char *out, const char *in)
if (len == 6)
{
- if (strnicmp (a, "health", 6) == 0)
+ if (strnicmp(a, "health", 6) == 0)
{
- out += sprintf (out, "%d", player->health);
+ out.AppendFormat("%d", player->health);
}
- else if (strnicmp (a, "weapon", 6) == 0)
+ else if (strnicmp(a, "weapon", 6) == 0)
{
if (weapon == NULL)
{
- out += sprintf (out, "no weapon");
+ out += "no weapon";
}
else
{
- out += sprintf (out, "%s", weapon->GetClass()->TypeName.GetChars());
+ out += weapon->GetClass()->TypeName;
}
}
}
else if (len == 5)
{
- if (strnicmp (a, "armor", 5) == 0)
+ if (strnicmp(a, "armor", 5) == 0)
{
AInventory *armor = player->mo->FindInventory();
- int armorpoints = armor != NULL ? armor->Amount : 0;
- out += sprintf (out, "%d", armorpoints);
+ out.AppendFormat("%d", armor != NULL ? armor->Amount : 0);
}
}
else if (len == 9)
{
- if (strnicmp (a, "ammocount", 9) == 0)
+ if (strnicmp(a, "ammocount", 9) == 0)
{
if (weapon == NULL)
{
- out += sprintf (out, "0");
+ out += '0';
}
else
{
- out += sprintf (out, "%d", weapon->Ammo1 != NULL ? weapon->Ammo1->Amount : 0);
+ out.AppendFormat("%d", weapon->Ammo1 != NULL ? weapon->Ammo1->Amount : 0);
if (weapon->Ammo2 != NULL)
{
- out += sprintf (out, "/%d", weapon->Ammo2->Amount);
+ out.AppendFormat("/%d", weapon->Ammo2->Amount);
}
}
}
}
else if (len == 4)
{
- if (strnicmp (a, "ammo", 4) == 0)
+ if (strnicmp(a, "ammo", 4) == 0)
{
if (weapon == NULL || weapon->Ammo1 == NULL)
{
- out += sprintf (out, "no ammo");
+ out += "no ammo";
}
else
{
- out += sprintf (out, "%s", weapon->Ammo1->GetClass()->TypeName.GetChars());
+ out.AppendFormat("%s", weapon->Ammo1->GetClass()->TypeName.GetChars());
if (weapon->Ammo2 != NULL)
{
- out += sprintf (out, "/%s", weapon->Ammo2->GetClass()->TypeName.GetChars());
+ out.AppendFormat("/%s", weapon->Ammo2->GetClass()->TypeName.GetChars());
}
}
}
}
else if (len == 0)
{
- *out++ = '$';
- *out = 0;
+ out += '$';
if (*b == '$')
{
b++;
@@ -435,9 +433,8 @@ static bool DoSubstitution (char *out, const char *in)
}
else
{
- *out++ = '$';
- strncpy (out, a, len);
- out += len;
+ out += '$';
+ out.AppendCStrPart(a, len);
}
a = b;
}
@@ -448,7 +445,7 @@ static bool DoSubstitution (char *out, const char *in)
return false;
}
- strcpy (out, a);
+ out += a;
return true;
}
diff --git a/src/d_dehacked.cpp b/src/d_dehacked.cpp
index 646d7ed7..7b3c0c06 100644
--- a/src/d_dehacked.cpp
+++ b/src/d_dehacked.cpp
@@ -1755,11 +1755,11 @@ static int PatchPars (int dummy)
if (moredata) {
// At least 3 items on this line, must be E?M? format
- sprintf (mapname, "E%cM%c", *Line2, *space);
+ mysnprintf (mapname, countof(mapname), "E%cM%c", *Line2, *space);
par = atoi (moredata + 1);
} else {
// Only 2 items, must be MAP?? format
- sprintf (mapname, "MAP%02d", atoi(Line2) % 100);
+ mysnprintf (mapname, countof(mapname), "MAP%02d", atoi(Line2) % 100);
par = atoi (space);
}
@@ -1939,7 +1939,7 @@ static int PatchText (int oldSize)
{ // Music names are never >6 chars
char musname[9];
level_info_t *info = LevelInfos;
- sprintf (musname, "d_%s", oldStr);
+ mysnprintf (musname, countof(musname), "d_%s", oldStr);
while (info->level_name)
{
@@ -2577,7 +2577,7 @@ void FinishDehPatch ()
// Create a new class that will serve as the actual pickup
char typeNameBuilder[32];
- sprintf (typeNameBuilder, "DehackedPickup%d", touchedIndex);
+ mysnprintf (typeNameBuilder, countof(typeNameBuilder), "DehackedPickup%d", touchedIndex);
PClass *subclass = RUNTIME_CLASS(ADehackedPickup)->CreateDerivedClass
(typeNameBuilder, sizeof(ADehackedPickup));
AActor *defaults2 = GetDefaultByType (subclass);
diff --git a/src/d_main.cpp b/src/d_main.cpp
index f275b4e8..e8cf00d0 100644
--- a/src/d_main.cpp
+++ b/src/d_main.cpp
@@ -187,7 +187,7 @@ bool devparm; // started game with -devparm
const char *D_DrawIcon; // [RH] Patch name of icon to draw on next refresh
int NoWipe; // [RH] Allow wipe? (Needs to be set each time)
bool singletics = false; // debug flag to cancel adaptiveness
-char startmap[8];
+FString startmap;
bool autostart;
bool advancedemo;
FILE *debugfile;
@@ -1053,7 +1053,7 @@ void D_DoAdvanceDemo (void)
{
BorderNeedRefresh = screen->GetPageCount ();
democount++;
- sprintf (demoname + 4, "%d", democount);
+ mysnprintf (demoname + 4, countof(demoname) - 4, "%d", democount);
if (Wads.CheckNumForName (demoname) < 0)
{
demosequence = 0;
@@ -1865,7 +1865,7 @@ static const char *BaseFileSearch (const char *file, const char *ext, bool lookf
if (lookfirstinprogdir)
{
- sprintf (wad, "%s%s%s", progdir.GetChars(), progdir[progdir.Len() - 1] != '/' ? "/" : "", file);
+ mysnprintf (wad, countof(wad), "%s%s%s", progdir.GetChars(), progdir[progdir.Len() - 1] != '/' ? "/" : "", file);
if (FileExists (wad))
{
return wad;
@@ -1874,7 +1874,7 @@ static const char *BaseFileSearch (const char *file, const char *ext, bool lookf
if (FileExists (file))
{
- sprintf (wad, "%s", file);
+ mysnprintf (wad, countof(wad), "%s", file);
return wad;
}
@@ -1914,7 +1914,7 @@ static const char *BaseFileSearch (const char *file, const char *ext, bool lookf
}
if (dir != NULL)
{
- sprintf (wad, "%s%s%s", dir, dir[strlen (dir) - 1] != '/' ? "/" : "", file);
+ mysnprintf (wad, countof(wad), "%s%s%s", dir, dir[strlen (dir) - 1] != '/' ? "/" : "", file);
if (FileExists (wad))
{
return wad;
@@ -2246,11 +2246,11 @@ void D_DoomMain (void)
// get skill / episode / map from parms
if (gameinfo.gametype != GAME_Hexen)
{
- strcpy (startmap, (gameinfo.flags & GI_MAPxx) ? "MAP01" : "E1M1");
+ startmap = (gameinfo.flags & GI_MAPxx) ? "MAP01" : "E1M1";
}
else
{
- strcpy (startmap, "&wt@01");
+ startmap = "&wt@01";
}
autostart = false;
@@ -2282,7 +2282,7 @@ void D_DoomMain (void)
}
}
- strncpy (startmap, CalcMapName (ep, map), 8);
+ startmap = CalcMapName (ep, map);
autostart = true;
}
@@ -2296,7 +2296,7 @@ void D_DoomMain (void)
}
else
{
- strncpy (startmap, Args->GetArg (p+1), 8);
+ startmap = Args->GetArg (p + 1);
Args->GetArg (p)[0] = '-';
autostart = true;
}
@@ -2358,7 +2358,7 @@ void D_DoomMain (void)
if (autostart)
{
FString temp;
- temp.Format ("Warp to map %s, Skill %d ", startmap, gameskill + 1);
+ temp.Format ("Warp to map %s, Skill %d ", startmap.GetChars(), gameskill + 1);
StartScreen->AppendStatusLine(temp);
}
diff --git a/src/d_net.cpp b/src/d_net.cpp
index 83db8f21..a7cc718f 100644
--- a/src/d_net.cpp
+++ b/src/d_net.cpp
@@ -1379,7 +1379,7 @@ bool DoArbitrate (void *userdata)
stream = &netbuffer[4];
s = ReadString (&stream);
- strncpy (startmap, s, 8);
+ startmap = FString(s, 8);
delete[] s;
rngseed = ReadLong (&stream);
C_ReadCVars (&stream);
@@ -1600,10 +1600,10 @@ void D_CheckNetGame (void)
if (Args->CheckParm ("-debugfile"))
{
- char filename[20];
- sprintf (filename,"debug%i.txt",consoleplayer);
- Printf ("debug output to: %s\n",filename);
- debugfile = fopen (filename,"w");
+ char filename[20];
+ mysnprintf (filename, countof(filename), "debug%i.txt", consoleplayer);
+ Printf ("debug output to: %s\n", filename);
+ debugfile = fopen (filename, "w");
}
if (netgame)
diff --git a/src/d_netinfo.cpp b/src/d_netinfo.cpp
index 1f946814..af5745c5 100644
--- a/src/d_netinfo.cpp
+++ b/src/d_netinfo.cpp
@@ -411,7 +411,7 @@ void D_UserInfoChanged (FBaseCVar *cvar)
if (4 + strlen(cvar->GetName()) + escaped_val.Len() > 256)
I_Error ("User info descriptor too big");
- sprintf (foo, "\\%s\\%s", cvar->GetName(), escaped_val.GetChars());
+ mysnprintf (foo, countof(foo), "\\%s\\%s", cvar->GetName(), escaped_val.GetChars());
Net_WriteByte (DEM_UINFCHANGED);
Net_WriteString (foo);
diff --git a/src/dobjtype.cpp b/src/dobjtype.cpp
index 537bf84d..5866e89f 100644
--- a/src/dobjtype.cpp
+++ b/src/dobjtype.cpp
@@ -145,7 +145,14 @@ void PClass::StaticFreeData (PClass *type)
delete type->ActorInfo;
type->ActorInfo = NULL;
}
- delete type;
+ if (type->bRuntimeClass != 2)
+ {
+ delete type;
+ }
+ else
+ {
+ type->Symbols.ReleaseSymbols();
+ }
}
else
{
@@ -290,6 +297,42 @@ PClass *PClass::CreateDerivedClass (FName name, unsigned int size)
return type;
}
+// This is used by DECORATE to assign ActorInfos to internal classes
+void PClass::InitializeActorInfo ()
+{
+ Symbols.SetParentTable (&ParentClass->Symbols);
+ Defaults = new BYTE[Size];
+ if (ParentClass->Defaults != NULL)
+ {
+ memcpy (Defaults, ParentClass->Defaults, Size);
+ if (Size > ParentClass->Size)
+ {
+ memset (Defaults + ParentClass->Size, 0, Size - ParentClass->Size);
+ }
+ }
+ else
+ {
+ memset (Defaults, 0, Size);
+ }
+
+ bRuntimeClass = 2; // Class is internal but actor data external
+
+ FActorInfo *info = ActorInfo = new FActorInfo;
+ info->Class = this;
+ info->GameFilter = GAME_Any;
+ info->SpawnID = 0;
+ info->DoomEdNum = -1;
+ info->OwnedStates = NULL;
+ info->NumOwnedStates = 0;
+ info->Replacement = NULL;
+ info->Replacee = NULL;
+ info->StateList = NULL;
+ info->DamageFactors = NULL;
+ info->PainChances = NULL;
+ m_RuntimeActors.Push (this);
+}
+
+
// Create the FlatPointers array, if it doesn't exist already.
// It comprises all the Pointers from superclasses plus this class's own Pointers.
// If this class does not define any new Pointers, then FlatPointers will be set
diff --git a/src/dobjtype.h b/src/dobjtype.h
index 626c7c10..bb86753c 100644
--- a/src/dobjtype.h
+++ b/src/dobjtype.h
@@ -103,7 +103,7 @@ struct PClass
PClass *HashNext;
FMetaTable Meta;
BYTE *Defaults;
- bool bRuntimeClass; // class was defined at run-time, not compile-time
+ BYTE bRuntimeClass; // class was defined at run-time, not compile-time
unsigned short ClassIndex;
PSymbolTable Symbols;
@@ -113,6 +113,7 @@ struct PClass
void InsertIntoHash ();
DObject *CreateNew () const;
PClass *CreateDerivedClass (FName name, unsigned int size);
+ void InitializeActorInfo ();
void BuildFlatPointers ();
void FreeStateList();
diff --git a/src/doomstat.h b/src/doomstat.h
index 182bed8d..a58aca80 100644
--- a/src/doomstat.h
+++ b/src/doomstat.h
@@ -68,7 +68,7 @@ extern GameMission_t gamemission;
// Selected skill type, map etc.
//
-extern char startmap[8]; // [RH] Actual map name now
+extern FString startmap; // [RH] Actual map name now
extern bool autostart;
diff --git a/src/doomtype.h b/src/doomtype.h
index dac73fe1..95287d6e 100644
--- a/src/doomtype.h
+++ b/src/doomtype.h
@@ -153,23 +153,23 @@ enum
//
// Fixed point, 32bit as 16.16.
//
-#define FRACBITS 16
-#define FRACUNIT (1<DrawTexture (TexMan(name), (320-13*8)/2, (200-8*8)/2, DTA_320x200, true, TAG_DONE);
}
}
diff --git a/src/g_game.cpp b/src/g_game.cpp
index dab6b5f4..0de51d25 100644
--- a/src/g_game.cpp
+++ b/src/g_game.cpp
@@ -1960,13 +1960,13 @@ static void PutSaveComment (FILE *file)
// Get level name
//strcpy (comment, level.level_name);
- sprintf(comment, "%s - %s", level.mapname, level.level_name);
+ mysnprintf(comment, countof(comment), "%s - %s", level.mapname, level.level_name);
len = (WORD)strlen (comment);
comment[len] = '\n';
// Append elapsed time
levelTime = level.time / TICRATE;
- sprintf (comment+len+1, "time: %02d:%02d:%02d",
+ mysnprintf (comment + len + 1, countof(comment) - len - 1, "time: %02d:%02d:%02d",
levelTime/3600, (levelTime%3600)/60, levelTime%60);
comment[len+16] = 0;
diff --git a/src/g_heretic/a_chicken.cpp b/src/g_heretic/a_chicken.cpp
index db2fe529..73ee1f84 100644
--- a/src/g_heretic/a_chicken.cpp
+++ b/src/g_heretic/a_chicken.cpp
@@ -12,166 +12,22 @@
#include "d_event.h"
#include "gstrings.h"
+void P_UpdateBeak (AActor *actor);
+
static FRandom pr_chickenplayerthink ("ChickenPlayerThink");
static FRandom pr_chicattack ("ChicAttack");
static FRandom pr_feathers ("Feathers");
static FRandom pr_beakatkpl1 ("BeakAtkPL1");
static FRandom pr_beakatkpl2 ("BeakAtkPL2");
-void A_BeakRaise (AActor *);
-void A_BeakAttackPL1 (AActor *);
-void A_BeakAttackPL2 (AActor *);
-
-void A_Feathers (AActor *);
-void A_ChicAttack (AActor *);
-
-void P_UpdateBeak (AActor *);
-
-// Beak puff ----------------------------------------------------------------
-
-class ABeakPuff : public AStaffPuff
-{
- DECLARE_STATELESS_ACTOR (ABeakPuff, AStaffPuff)
-public:
- void BeginPlay ();
-};
-
-IMPLEMENT_STATELESS_ACTOR (ABeakPuff, Heretic, -1, 0)
- PROP_Mass (5)
- PROP_RenderStyle (STYLE_Translucent)
- PROP_Alpha (HR_SHADOW)
- PROP_AttackSound ("chicken/attack")
-END_DEFAULTS
-
-void ABeakPuff::BeginPlay ()
-{
- Super::BeginPlay ();
- momz = FRACUNIT;
-}
-
-// Beak ---------------------------------------------------------------------
-
-class ABeak : public AWeapon
-{
- DECLARE_ACTOR (ABeak, AWeapon)
-};
-
-class ABeakPowered : public ABeak
-{
- DECLARE_STATELESS_ACTOR (ABeakPowered, ABeak)
-};
-
-FState ABeak::States[] =
-{
-#define S_BEAKREADY 0
- S_NORMAL (BEAK, 'A', 1, A_WeaponReady , &States[S_BEAKREADY]),
-
-#define S_BEAKDOWN (S_BEAKREADY+1)
- S_NORMAL (BEAK, 'A', 1, A_Lower , &States[S_BEAKDOWN]),
-
-#define S_BEAKUP (S_BEAKDOWN+1)
- S_NORMAL (BEAK, 'A', 1, A_BeakRaise , &States[S_BEAKUP]),
-
-#define S_BEAKATK1 (S_BEAKUP+1)
- S_NORMAL (BEAK, 'A', 18, A_BeakAttackPL1 , &States[S_BEAKREADY]),
-
-#define S_BEAKATK2 (S_BEAKATK1+1)
- S_NORMAL (BEAK, 'A', 12, A_BeakAttackPL2 , &States[S_BEAKREADY])
-};
-
-IMPLEMENT_ACTOR (ABeak, Heretic, -1, 0)
- PROP_Weapon_SelectionOrder (10000)
- PROP_Weapon_Flags (WIF_DONTBOB|WIF_BOT_MELEE)
- PROP_Weapon_UpState (S_BEAKUP)
- PROP_Weapon_DownState (S_BEAKDOWN)
- PROP_Weapon_ReadyState (S_BEAKREADY)
- PROP_Weapon_AtkState (S_BEAKATK1)
- PROP_Weapon_HoldAtkState (S_BEAKATK1)
- PROP_Weapon_YAdjust (15)
- PROP_Weapon_SisterType ("BeakPowered")
-END_DEFAULTS
-
-IMPLEMENT_STATELESS_ACTOR (ABeakPowered, Heretic, -1, 0)
- PROP_Weapon_Flags (WIF_DONTBOB|WIF_BOT_MELEE|WIF_POWERED_UP)
- PROP_Weapon_AtkState (S_BEAKATK2)
- PROP_Weapon_HoldAtkState (S_BEAKATK2)
- PROP_Weapon_SisterType ("Beak")
-END_DEFAULTS
-
-// Chicken player -----------------------------------------------------------
-
class AChickenPlayer : public APlayerPawn
{
- DECLARE_ACTOR (AChickenPlayer, APlayerPawn)
+ DECLARE_CLASS (AChickenPlayer, APlayerPawn)
public:
void MorphPlayerThink ();
};
-FState AChickenPlayer::States[] =
-{
-#define S_CHICPLAY 0
- S_NORMAL (CHKN, 'A', -1, NULL , NULL),
-
-#define S_CHICPLAY_RUN (S_CHICPLAY+1)
- S_NORMAL (CHKN, 'A', 3, NULL , &States[S_CHICPLAY_RUN+1]),
- S_NORMAL (CHKN, 'B', 3, NULL , &States[S_CHICPLAY_RUN+2]),
- S_NORMAL (CHKN, 'A', 3, NULL , &States[S_CHICPLAY_RUN+3]),
- S_NORMAL (CHKN, 'B', 3, NULL , &States[S_CHICPLAY_RUN+0]),
-
-#define S_CHICPLAY_ATK (S_CHICPLAY_RUN+4)
- S_NORMAL (CHKN, 'C', 12, NULL , &States[S_CHICPLAY]),
-
-#define S_CHICPLAY_PAIN (S_CHICPLAY_ATK+1)
- S_NORMAL (CHKN, 'D', 4, A_Feathers , &States[S_CHICPLAY_PAIN+1]),
- S_NORMAL (CHKN, 'C', 4, A_Pain , &States[S_CHICPLAY]),
-
-#define S_CHICPLAY_DIE (S_CHICPLAY_PAIN+2)
- S_NORMAL (CHKN, 'E', 6, A_Scream , &States[S_CHICPLAY_DIE+1]),
- S_NORMAL (CHKN, 'F', 6, A_Feathers , &States[S_CHICPLAY_DIE+2]),
- S_NORMAL (CHKN, 'G', 6, NULL , &States[S_CHICPLAY_DIE+3]),
- S_NORMAL (CHKN, 'H', 6, A_NoBlocking , &States[S_CHICPLAY_DIE+4]),
- S_NORMAL (CHKN, 'I', 6, NULL , &States[S_CHICPLAY_DIE+5]),
- S_NORMAL (CHKN, 'J', 6, NULL , &States[S_CHICPLAY_DIE+6]),
- S_NORMAL (CHKN, 'K', 6, NULL , &States[S_CHICPLAY_DIE+7]),
- S_NORMAL (CHKN, 'L', -1, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (AChickenPlayer, Heretic, -1, 0)
- PROP_SpawnHealth (30)
- PROP_RadiusFixed (16)
- PROP_HeightFixed (24)
- PROP_PainChance (255)
- PROP_SpeedFixed (1)
- PROP_Gravity (FRACUNIT/8)
- PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_DROPOFF|MF_NOTDMATCH|MF_FRIENDLY)
- PROP_Flags2 (MF2_WINDTHRUST|MF2_SLIDE|MF2_PASSMOBJ|MF2_PUSHWALL|MF2_FLOORCLIP|MF2_TELESTOMP)
- PROP_Flags3 (MF3_NOBLOCKMONST)
- PROP_Flags4 (MF4_NOSKIN)
-
- PROP_SpawnState (S_CHICPLAY)
- PROP_SeeState (S_CHICPLAY_RUN)
- PROP_PainState (S_CHICPLAY_PAIN)
- PROP_MissileState (S_CHICPLAY_ATK)
- PROP_MeleeState (S_CHICPLAY_ATK)
- PROP_DeathState (S_CHICPLAY_DIE)
-
- // [GRB]
- PROP_PlayerPawn_JumpZ (FRACUNIT)
- PROP_PlayerPawn_ViewHeight (21*FRACUNIT)
- PROP_PlayerPawn_ForwardMove1 (FRACUNIT * 2500 / 2048)
- PROP_PlayerPawn_ForwardMove2 (FRACUNIT * 2500 / 2048)
- PROP_PlayerPawn_SideMove1 (FRACUNIT * 2500 / 2048)
- PROP_PlayerPawn_SideMove2 (FRACUNIT * 2500 / 2048)
- PROP_PlayerPawn_MorphWeapon ("Beak")
-
- PROP_PainSound ("chicken/pain")
- PROP_DeathSound ("chicken/death")
-END_DEFAULTS
-
-AT_GAME_SET(ChickenPlayer)
-{
- RUNTIME_CLASS(AChickenPlayer)->Meta.SetMetaString(APMETA_SoundClass, "chicken");
-}
+IMPLEMENT_CLASS(AChickenPlayer)
void AChickenPlayer::MorphPlayerThink ()
{
@@ -200,102 +56,6 @@ void AChickenPlayer::MorphPlayerThink ()
}
}
-// Chicken (non-player) -----------------------------------------------------
-
-class AChicken : public AMorphedMonster
-{
- DECLARE_ACTOR (AChicken, AMorphedMonster)
-};
-
-FState AChicken::States[] =
-{
-#define S_CHICKEN_LOOK 0
- S_NORMAL (CHKN, 'A', 10, A_Look , &States[S_CHICKEN_LOOK+1]),
- S_NORMAL (CHKN, 'B', 10, A_Look , &States[S_CHICKEN_LOOK+0]),
-
-#define S_CHICKEN_WALK (S_CHICKEN_LOOK+2)
- S_NORMAL (CHKN, 'A', 3, A_Chase , &States[S_CHICKEN_WALK+1]),
- S_NORMAL (CHKN, 'B', 3, A_Chase , &States[S_CHICKEN_WALK+0]),
-
-#define S_CHICKEN_PAIN (S_CHICKEN_WALK+2)
- S_NORMAL (CHKN, 'D', 5, A_Feathers , &States[S_CHICKEN_PAIN+1]),
- S_NORMAL (CHKN, 'C', 5, A_Pain , &States[S_CHICKEN_WALK+0]),
-
-#define S_CHICKEN_ATK (S_CHICKEN_PAIN+2)
- S_NORMAL (CHKN, 'A', 8, A_FaceTarget , &States[S_CHICKEN_ATK+1]),
- S_NORMAL (CHKN, 'C', 10, A_ChicAttack , &States[S_CHICKEN_WALK+0]),
-
-#define S_CHICKEN_DIE (S_CHICKEN_ATK+2)
- S_NORMAL (CHKN, 'E', 6, A_Scream , &States[S_CHICKEN_DIE+1]),
- S_NORMAL (CHKN, 'F', 6, A_Feathers , &States[S_CHICKEN_DIE+2]),
- S_NORMAL (CHKN, 'G', 6, NULL , &States[S_CHICKEN_DIE+3]),
- S_NORMAL (CHKN, 'H', 6, A_NoBlocking , &States[S_CHICKEN_DIE+4]),
- S_NORMAL (CHKN, 'I', 6, NULL , &States[S_CHICKEN_DIE+5]),
- S_NORMAL (CHKN, 'J', 6, NULL , &States[S_CHICKEN_DIE+6]),
- S_NORMAL (CHKN, 'K', 6, NULL , &States[S_CHICKEN_DIE+7]),
- S_NORMAL (CHKN, 'L', -1, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (AChicken, Heretic, -1, 122)
- PROP_SpawnHealth (10)
- PROP_RadiusFixed (9)
- PROP_HeightFixed (22)
- PROP_Mass (40)
- PROP_SpeedFixed (4)
- PROP_PainChance (200)
- PROP_Flags (MF_SOLID|MF_SHOOTABLE)
- PROP_Flags2 (MF2_MCROSS|MF2_WINDTHRUST|MF2_FLOORCLIP|MF2_PASSMOBJ|MF2_PUSHWALL)
- PROP_Flags3 (MF3_DONTMORPH|MF3_ISMONSTER)
-
- PROP_SpawnState (S_CHICKEN_LOOK)
- PROP_SeeState (S_CHICKEN_WALK)
- PROP_PainState (S_CHICKEN_PAIN)
- PROP_MeleeState (S_CHICKEN_ATK)
- PROP_DeathState (S_CHICKEN_DIE)
-
- PROP_SeeSound ("chicken/pain")
- PROP_AttackSound ("chicken/attack")
- PROP_PainSound ("chicken/pain")
- PROP_DeathSound ("chicken/death")
- PROP_ActiveSound ("chicken/active")
- PROP_Obituary("$OB_CHICKEN")
-END_DEFAULTS
-
-// Feather ------------------------------------------------------------------
-
-class AFeather : public AActor
-{
- DECLARE_ACTOR (AFeather, AActor)
-};
-
-FState AFeather::States[] =
-{
-#define S_FEATHER 0
- S_NORMAL (CHKN, 'M', 3, NULL , &States[S_FEATHER+1]),
- S_NORMAL (CHKN, 'N', 3, NULL , &States[S_FEATHER+2]),
- S_NORMAL (CHKN, 'O', 3, NULL , &States[S_FEATHER+3]),
- S_NORMAL (CHKN, 'P', 3, NULL , &States[S_FEATHER+4]),
- S_NORMAL (CHKN, 'Q', 3, NULL , &States[S_FEATHER+5]),
- S_NORMAL (CHKN, 'P', 3, NULL , &States[S_FEATHER+6]),
- S_NORMAL (CHKN, 'O', 3, NULL , &States[S_FEATHER+7]),
- S_NORMAL (CHKN, 'N', 3, NULL , &States[S_FEATHER+0]),
-
-#define S_FEATHERX (S_FEATHER+8)
- S_NORMAL (CHKN, 'N', 6, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (AFeather, Heretic, -1, 121)
- PROP_RadiusFixed (2)
- PROP_HeightFixed (4)
- PROP_Gravity (FRACUNIT/8)
- PROP_Flags (MF_MISSILE|MF_DROPOFF)
- PROP_Flags2 (MF2_NOTELEPORT|MF2_CANNOTPUSH|MF2_WINDTHRUST)
- PROP_Flags3 (MF3_DONTSPLASH)
-
- PROP_SpawnState (S_FEATHER)
- PROP_DeathState (S_FEATHERX)
-END_DEFAULTS
-
//----------------------------------------------------------------------------
//
// PROC A_ChicAttack
@@ -338,12 +98,12 @@ void A_Feathers (AActor *actor)
}
for (i = 0; i < count; i++)
{
- mo = Spawn (actor->x, actor->y, actor->z+20*FRACUNIT, NO_REPLACE);
+ mo = Spawn("Feather", actor->x, actor->y, actor->z+20*FRACUNIT, NO_REPLACE);
mo->target = actor;
mo->momx = pr_feathers.Random2() << 8;
mo->momy = pr_feathers.Random2() << 8;
mo->momz = FRACUNIT + (pr_feathers() << 9);
- mo->SetState (&AFeather::States[S_FEATHER+(pr_feathers()&7)]);
+ mo->SetState (mo->SpawnState + (pr_feathers()&7));
}
}
@@ -413,7 +173,7 @@ void A_BeakAttackPL1 (AActor *actor)
damage = 1 + (pr_beakatkpl1()&3);
angle = player->mo->angle;
slope = P_AimLineAttack (player->mo, angle, MELEERANGE, &linetarget);
- P_LineAttack (player->mo, angle, MELEERANGE, slope, damage, NAME_Melee, RUNTIME_CLASS(ABeakPuff), true);
+ P_LineAttack (player->mo, angle, MELEERANGE, slope, damage, NAME_Melee, "BeakPuff", true);
if (linetarget)
{
player->mo->angle = R_PointToAngle2 (player->mo->x,
@@ -446,7 +206,7 @@ void A_BeakAttackPL2 (AActor *actor)
damage = pr_beakatkpl2.HitDice (4);
angle = player->mo->angle;
slope = P_AimLineAttack (player->mo, angle, MELEERANGE, &linetarget);
- P_LineAttack (player->mo, angle, MELEERANGE, slope, damage, NAME_Melee, RUNTIME_CLASS(ABeakPuff), true);
+ P_LineAttack (player->mo, angle, MELEERANGE, slope, damage, NAME_Melee, "BeakPuff", true);
if (linetarget)
{
player->mo->angle = R_PointToAngle2 (player->mo->x,
diff --git a/src/g_heretic/a_dsparil.cpp b/src/g_heretic/a_dsparil.cpp
index 203f360f..6f0aff39 100644
--- a/src/g_heretic/a_dsparil.cpp
+++ b/src/g_heretic/a_dsparil.cpp
@@ -17,368 +17,6 @@ static FRandom pr_s2d ("Srcr2Decide");
static FRandom pr_s2a ("Srcr2Attack");
static FRandom pr_bluespark ("BlueSpark");
-void A_Sor1Chase (AActor *);
-void A_Sor1Pain (AActor *);
-void A_Srcr1Attack (AActor *);
-void A_SorZap (AActor *);
-void A_SorcererRise (AActor *);
-void A_SorRise (AActor *);
-void A_SorSightSnd (AActor *);
-void A_Srcr2Decide (AActor *);
-void A_Srcr2Attack (AActor *);
-void A_Sor2DthInit (AActor *);
-void A_SorDSph (AActor *);
-void A_Sor2DthLoop (AActor *);
-void A_SorDExp (AActor *);
-void A_SorDBon (AActor *);
-void A_BlueSpark (AActor *);
-void A_GenWizard (AActor *);
-
-// Boss spot ----------------------------------------------------------------
-
-class ABossSpot : public ASpecialSpot
-{
- DECLARE_STATELESS_ACTOR (ABossSpot, ASpecialSpot)
-};
-
-IMPLEMENT_STATELESS_ACTOR (ABossSpot, Heretic, 56, 141)
- PROP_RenderFlags (RF_INVISIBLE)
-END_DEFAULTS
-
-// Sorcerer (D'Sparil on his serpent) ---------------------------------------
-
-class ASorcerer1 : public AActor
-{
- DECLARE_ACTOR (ASorcerer1, AActor)
-};
-
-FState ASorcerer1::States[] =
-{
-#define S_SRCR1_LOOK 0
- S_NORMAL (SRCR, 'A', 10, A_Look , &States[S_SRCR1_LOOK+1]),
- S_NORMAL (SRCR, 'B', 10, A_Look , &States[S_SRCR1_LOOK+0]),
-
-#define S_SRCR1_WALK (S_SRCR1_LOOK+2)
- S_NORMAL (SRCR, 'A', 5, A_Sor1Chase , &States[S_SRCR1_WALK+1]),
- S_NORMAL (SRCR, 'B', 5, A_Sor1Chase , &States[S_SRCR1_WALK+2]),
- S_NORMAL (SRCR, 'C', 5, A_Sor1Chase , &States[S_SRCR1_WALK+3]),
- S_NORMAL (SRCR, 'D', 5, A_Sor1Chase , &States[S_SRCR1_WALK+0]),
-
-#define S_SRCR1_PAIN (S_SRCR1_WALK+4)
- S_NORMAL (SRCR, 'Q', 6, A_Sor1Pain , &States[S_SRCR1_WALK+0]),
-
-#define S_SRCR1_ATK (S_SRCR1_PAIN+1)
- S_NORMAL (SRCR, 'Q', 7, A_FaceTarget , &States[S_SRCR1_ATK+1]),
- S_NORMAL (SRCR, 'R', 6, A_FaceTarget , &States[S_SRCR1_ATK+2]),
- S_NORMAL (SRCR, 'S', 10, A_Srcr1Attack , &States[S_SRCR1_WALK+0]),
- S_NORMAL (SRCR, 'S', 10, A_FaceTarget , &States[S_SRCR1_ATK+4]),
- S_NORMAL (SRCR, 'Q', 7, A_FaceTarget , &States[S_SRCR1_ATK+5]),
- S_NORMAL (SRCR, 'R', 6, A_FaceTarget , &States[S_SRCR1_ATK+6]),
- S_NORMAL (SRCR, 'S', 10, A_Srcr1Attack , &States[S_SRCR1_WALK+0]),
-
-#define S_SRCR1_DIE (S_SRCR1_ATK+7)
- S_NORMAL (SRCR, 'E', 7, NULL , &States[S_SRCR1_DIE+1]),
- S_NORMAL (SRCR, 'F', 7, A_Scream , &States[S_SRCR1_DIE+2]),
- S_NORMAL (SRCR, 'G', 7, NULL , &States[S_SRCR1_DIE+3]),
- S_NORMAL (SRCR, 'H', 6, NULL , &States[S_SRCR1_DIE+4]),
- S_NORMAL (SRCR, 'I', 6, NULL , &States[S_SRCR1_DIE+5]),
- S_NORMAL (SRCR, 'J', 6, NULL , &States[S_SRCR1_DIE+6]),
- S_NORMAL (SRCR, 'K', 6, NULL , &States[S_SRCR1_DIE+7]),
- S_NORMAL (SRCR, 'L', 25, A_SorZap , &States[S_SRCR1_DIE+8]),
- S_NORMAL (SRCR, 'M', 5, NULL , &States[S_SRCR1_DIE+9]),
- S_NORMAL (SRCR, 'N', 5, NULL , &States[S_SRCR1_DIE+10]),
- S_NORMAL (SRCR, 'O', 4, NULL , &States[S_SRCR1_DIE+11]),
- S_NORMAL (SRCR, 'L', 20, A_SorZap , &States[S_SRCR1_DIE+12]),
- S_NORMAL (SRCR, 'M', 5, NULL , &States[S_SRCR1_DIE+13]),
- S_NORMAL (SRCR, 'N', 5, NULL , &States[S_SRCR1_DIE+14]),
- S_NORMAL (SRCR, 'O', 4, NULL , &States[S_SRCR1_DIE+15]),
- S_NORMAL (SRCR, 'L', 12, NULL , &States[S_SRCR1_DIE+16]),
- S_NORMAL (SRCR, 'P', -1, A_SorcererRise , NULL)
-};
-
-IMPLEMENT_ACTOR (ASorcerer1, Heretic, 7, 142)
- PROP_SpawnHealth (2000)
- PROP_RadiusFixed (28)
- PROP_HeightFixed (100)
- PROP_Mass (800)
- PROP_SpeedFixed (16)
- PROP_PainChance (56)
- PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_COUNTKILL)
- PROP_Flags2 (MF2_MCROSS|MF2_FLOORCLIP|MF2_PASSMOBJ|MF2_PUSHWALL|MF2_BOSS)
- PROP_Flags3 (MF3_DONTMORPH|MF3_NORADIUSDMG|MF3_NOTARGET)
- PROP_Flags4 (MF4_NOICEDEATH)
-
- PROP_SpawnState (S_SRCR1_LOOK)
- PROP_SeeState (S_SRCR1_WALK)
- PROP_PainState (S_SRCR1_PAIN)
- PROP_MissileState (S_SRCR1_ATK)
- PROP_DeathState (S_SRCR1_DIE)
-
- PROP_SeeSound ("dsparilserpent/sight")
- PROP_AttackSound ("dsparilserpent/attack")
- PROP_PainSound ("dsparilserpent/pain")
- PROP_DeathSound ("dsparilserpent/death")
- PROP_ActiveSound ("dsparilserpent/active")
- PROP_Obituary("$OB_DSPARIL1")
- PROP_HitObituary("$OB_DSPARIL1HIT")
-END_DEFAULTS
-
-// Sorcerer FX 1 ------------------------------------------------------------
-
-class ASorcererFX1 : public AActor
-{
- DECLARE_ACTOR (ASorcererFX1, AActor)
-};
-
-FState ASorcererFX1::States[] =
-{
-#define S_SRCRFX1 0
- S_BRIGHT (FX14, 'A', 6, NULL , &States[S_SRCRFX1+1]),
- S_BRIGHT (FX14, 'B', 6, NULL , &States[S_SRCRFX1+2]),
- S_BRIGHT (FX14, 'C', 6, NULL , &States[S_SRCRFX1+0]),
-
-#define S_SRCRFXI1 (S_SRCRFX1+3)
- S_BRIGHT (FX14, 'D', 5, NULL , &States[S_SRCRFXI1+1]),
- S_BRIGHT (FX14, 'E', 5, NULL , &States[S_SRCRFXI1+2]),
- S_BRIGHT (FX14, 'F', 5, NULL , &States[S_SRCRFXI1+3]),
- S_BRIGHT (FX14, 'G', 5, NULL , &States[S_SRCRFXI1+4]),
- S_BRIGHT (FX14, 'H', 5, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (ASorcererFX1, Heretic, -1, 144)
- PROP_RadiusFixed (10)
- PROP_HeightFixed (10)
- PROP_SpeedFixed (20)
- PROP_Damage (10)
- PROP_DamageType (NAME_Fire)
- PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY)
- PROP_Flags2 (MF2_NOTELEPORT)
- PROP_RenderStyle (STYLE_Add)
-
- PROP_SpawnState (S_SRCRFX1)
- PROP_DeathState (S_SRCRFXI1)
-END_DEFAULTS
-
-AT_SPEED_SET (SorcererFX1, speed)
-{
- SimpleSpeedSetter (ASorcererFX1, 20*FRACUNIT, 28*FRACUNIT, speed);
-}
-
-// Sorcerer 2 (D'Sparil without his serpent) --------------------------------
-
-FState ASorcerer2::States[] =
-{
-#define S_SOR2_LOOK 0
- S_NORMAL (SOR2, 'M', 10, A_Look , &States[S_SOR2_LOOK+1]),
- S_NORMAL (SOR2, 'N', 10, A_Look , &States[S_SOR2_LOOK+0]),
-
-#define S_SOR2_WALK (S_SOR2_LOOK+2)
- S_NORMAL (SOR2, 'M', 4, A_Chase , &States[S_SOR2_WALK+1]),
- S_NORMAL (SOR2, 'N', 4, A_Chase , &States[S_SOR2_WALK+2]),
- S_NORMAL (SOR2, 'O', 4, A_Chase , &States[S_SOR2_WALK+3]),
- S_NORMAL (SOR2, 'P', 4, A_Chase , &States[S_SOR2_WALK+0]),
-
-#define S_SOR2_RISE (S_SOR2_WALK+4)
- S_NORMAL (SOR2, 'A', 4, NULL , &States[S_SOR2_RISE+1]),
- S_NORMAL (SOR2, 'B', 4, NULL , &States[S_SOR2_RISE+2]),
- S_NORMAL (SOR2, 'C', 4, A_SorRise , &States[S_SOR2_RISE+3]),
- S_NORMAL (SOR2, 'D', 4, NULL , &States[S_SOR2_RISE+4]),
- S_NORMAL (SOR2, 'E', 4, NULL , &States[S_SOR2_RISE+5]),
- S_NORMAL (SOR2, 'F', 4, NULL , &States[S_SOR2_RISE+6]),
- S_NORMAL (SOR2, 'G', 12, A_SorSightSnd , &States[S_SOR2_WALK+0]),
-
-#define S_SOR2_PAIN (S_SOR2_RISE+7)
- S_NORMAL (SOR2, 'Q', 3, NULL , &States[S_SOR2_PAIN+1]),
- S_NORMAL (SOR2, 'Q', 6, A_Pain , &States[S_SOR2_WALK+0]),
-
-#define S_SOR2_ATK (S_SOR2_PAIN+2)
- S_NORMAL (SOR2, 'R', 9, A_Srcr2Decide , &States[S_SOR2_ATK+1]),
- S_NORMAL (SOR2, 'S', 9, A_FaceTarget , &States[S_SOR2_ATK+2]),
- S_NORMAL (SOR2, 'T', 20, A_Srcr2Attack , &States[S_SOR2_WALK+0]),
-
-#define S_SOR2_TELE (S_SOR2_ATK+3)
- S_NORMAL (SOR2, 'L', 6, NULL , &States[S_SOR2_TELE+1]),
- S_NORMAL (SOR2, 'K', 6, NULL , &States[S_SOR2_TELE+2]),
- S_NORMAL (SOR2, 'J', 6, NULL , &States[S_SOR2_TELE+3]),
- S_NORMAL (SOR2, 'I', 6, NULL , &States[S_SOR2_TELE+4]),
- S_NORMAL (SOR2, 'H', 6, NULL , &States[S_SOR2_TELE+5]),
- S_NORMAL (SOR2, 'G', 6, NULL , &States[S_SOR2_WALK+0]),
-
-#define S_SOR2_DIE (S_SOR2_TELE+6)
- S_NORMAL (SDTH, 'A', 8, A_Sor2DthInit , &States[S_SOR2_DIE+1]),
- S_NORMAL (SDTH, 'B', 8, NULL , &States[S_SOR2_DIE+2]),
- S_NORMAL (SDTH, 'C', 8, A_SorDSph , &States[S_SOR2_DIE+3]),
- S_NORMAL (SDTH, 'D', 7, NULL , &States[S_SOR2_DIE+4]),
- S_NORMAL (SDTH, 'E', 7, NULL , &States[S_SOR2_DIE+5]),
- S_NORMAL (SDTH, 'F', 7, A_Sor2DthLoop , &States[S_SOR2_DIE+6]),
- S_NORMAL (SDTH, 'G', 6, A_SorDExp , &States[S_SOR2_DIE+7]),
- S_NORMAL (SDTH, 'H', 6, NULL , &States[S_SOR2_DIE+8]),
- S_NORMAL (SDTH, 'I', 18, NULL , &States[S_SOR2_DIE+9]),
- S_NORMAL (SDTH, 'J', 6, A_NoBlocking , &States[S_SOR2_DIE+10]),
- S_NORMAL (SDTH, 'K', 6, A_SorDBon , &States[S_SOR2_DIE+11]),
- S_NORMAL (SDTH, 'L', 6, NULL , &States[S_SOR2_DIE+12]),
- S_NORMAL (SDTH, 'M', 6, NULL , &States[S_SOR2_DIE+13]),
- S_NORMAL (SDTH, 'N', 6, NULL , &States[S_SOR2_DIE+14]),
- S_NORMAL (SDTH, 'O', -1, A_BossDeath , NULL)
-};
-
-IMPLEMENT_ACTOR (ASorcerer2, Heretic, -1, 143)
- PROP_SpawnHealth (3500)
- PROP_RadiusFixed (16)
- PROP_HeightFixed (70)
- PROP_Mass (300)
- PROP_SpeedFixed (14)
- PROP_PainChance (32)
- PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_COUNTKILL|MF_DROPOFF)
- PROP_Flags2 (MF2_MCROSS|MF2_FLOORCLIP|MF2_PASSMOBJ|MF2_PUSHWALL|MF2_BOSS)
- PROP_Flags3 (MF3_DONTMORPH|MF3_FULLVOLACTIVE|MF3_NORADIUSDMG|MF3_NOTARGET)
- PROP_Flags4 (MF4_NOICEDEATH)
-
- PROP_SpawnState (S_SOR2_LOOK)
- PROP_SeeState (S_SOR2_WALK)
- PROP_PainState (S_SOR2_PAIN)
- PROP_MissileState (S_SOR2_ATK)
- PROP_DeathState (S_SOR2_DIE)
-
- PROP_SeeSound ("dsparil/sight")
- PROP_AttackSound ("dsparil/attack")
- PROP_PainSound ("dsparil/pain")
- PROP_ActiveSound ("dsparil/active")
- PROP_Obituary("$OB_DSPARIL2")
- PROP_HitObituary("$OB_DSPARIL2HIT")
-END_DEFAULTS
-
-// Sorcerer 2 FX 1 ----------------------------------------------------------
-
-class ASorcerer2FX1 : public AActor
-{
- DECLARE_ACTOR (ASorcerer2FX1, AActor)
-public:
- void GetExplodeParms (int &damage, int &distance, bool &hurtSource);
-};
-
-FState ASorcerer2FX1::States[] =
-{
-#define S_SOR2FX1 0
- S_BRIGHT (FX16, 'A', 3, A_BlueSpark , &States[S_SOR2FX1+1]),
- S_BRIGHT (FX16, 'B', 3, A_BlueSpark , &States[S_SOR2FX1+2]),
- S_BRIGHT (FX16, 'C', 3, A_BlueSpark , &States[S_SOR2FX1+0]),
-
-#define S_SOR2FXI1 (S_SOR2FX1+3)
- S_BRIGHT (FX16, 'G', 5, A_Explode , &States[S_SOR2FXI1+1]),
- S_BRIGHT (FX16, 'H', 5, NULL , &States[S_SOR2FXI1+2]),
- S_BRIGHT (FX16, 'I', 5, NULL , &States[S_SOR2FXI1+3]),
- S_BRIGHT (FX16, 'J', 5, NULL , &States[S_SOR2FXI1+4]),
- S_BRIGHT (FX16, 'K', 5, NULL , &States[S_SOR2FXI1+5]),
- S_BRIGHT (FX16, 'L', 5, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (ASorcerer2FX1, Heretic, -1, 145)
- PROP_RadiusFixed (10)
- PROP_HeightFixed (6)
- PROP_SpeedFixed (20)
- PROP_Damage (1)
- PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY)
- PROP_Flags2 (MF2_NOTELEPORT)
- PROP_RenderStyle (STYLE_Add)
-
- PROP_SpawnState (S_SOR2FX1)
- PROP_DeathState (S_SOR2FXI1)
-END_DEFAULTS
-
-AT_SPEED_SET (Sorcerer2FX1, speed)
-{
- SimpleSpeedSetter (ASorcerer2FX1, 20*FRACUNIT, 28*FRACUNIT, speed);
-}
-
-void ASorcerer2FX1::GetExplodeParms (int &damage, int &distance, bool &hurtSource)
-{
- damage = 80 + (pr_s2fx1() & 31);
-}
-
-// Sorcerer 2 FX Spark ------------------------------------------------------
-
-class ASorcerer2FXSpark : public AActor
-{
- DECLARE_ACTOR (ASorcerer2FXSpark, AActor)
-};
-
-FState ASorcerer2FXSpark::States[] =
-{
-#define S_SOR2FXSPARK 0
- S_BRIGHT (FX16, 'D', 12, NULL , &States[S_SOR2FXSPARK+1]),
- S_BRIGHT (FX16, 'E', 12, NULL , &States[S_SOR2FXSPARK+2]),
- S_BRIGHT (FX16, 'F', 12, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (ASorcerer2FXSpark, Heretic, -1, 0)
- PROP_RadiusFixed (20)
- PROP_HeightFixed (16)
- PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY)
- PROP_Flags2 (MF2_NOTELEPORT|MF2_CANNOTPUSH)
- PROP_RenderStyle (STYLE_Add)
-
- PROP_SpawnState (S_SOR2FXSPARK)
-END_DEFAULTS
-
-// Sorcerer 2 FX 2 ----------------------------------------------------------
-
-class ASorcerer2FX2 : public AActor
-{
- DECLARE_ACTOR (ASorcerer2FX2, AActor)
-};
-
-FState ASorcerer2FX2::States[] =
-{
-#define S_SOR2FX2 0
- S_BRIGHT (FX11, 'A', 35, NULL , &States[S_SOR2FX2+1]),
- S_BRIGHT (FX11, 'A', 5, A_GenWizard , &States[S_SOR2FX2+2]),
- S_BRIGHT (FX11, 'B', 5, NULL , &States[S_SOR2FX2+1]),
-
-#define S_SOR2FXI2 (S_SOR2FX2+3)
- S_BRIGHT (FX11, 'C', 5, NULL , &States[S_SOR2FXI2+1]),
- S_BRIGHT (FX11, 'D', 5, NULL , &States[S_SOR2FXI2+2]),
- S_BRIGHT (FX11, 'E', 5, NULL , &States[S_SOR2FXI2+3]),
- S_BRIGHT (FX11, 'F', 5, NULL , &States[S_SOR2FXI2+4]),
- S_BRIGHT (FX11, 'G', 5, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (ASorcerer2FX2, Heretic, -1, 146)
- PROP_RadiusFixed (10)
- PROP_HeightFixed (6)
- PROP_SpeedFixed (6)
- PROP_Damage (10)
- PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY)
- PROP_Flags2 (MF2_NOTELEPORT)
- PROP_RenderStyle (STYLE_Add)
-
- PROP_SpawnState (S_SOR2FX2)
- PROP_DeathState (S_SOR2FXI2)
-END_DEFAULTS
-
-// Sorcerer 2 Telefade ------------------------------------------------------
-
-class ASorcerer2Telefade : public AActor
-{
- DECLARE_ACTOR (ASorcerer2Telefade, AActor)
-};
-
-FState ASorcerer2Telefade::States[] =
-{
-#define S_SOR2TELEFADE 0
- S_NORMAL (SOR2, 'G', 8, NULL , &States[S_SOR2TELEFADE+1]),
- S_NORMAL (SOR2, 'H', 6, NULL , &States[S_SOR2TELEFADE+2]),
- S_NORMAL (SOR2, 'I', 6, NULL , &States[S_SOR2TELEFADE+3]),
- S_NORMAL (SOR2, 'J', 6, NULL , &States[S_SOR2TELEFADE+4]),
- S_NORMAL (SOR2, 'K', 6, NULL , &States[S_SOR2TELEFADE+5]),
- S_NORMAL (SOR2, 'L', 6, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (ASorcerer2Telefade, Heretic, -1, 0)
- PROP_Flags (MF_NOBLOCKMAP)
- PROP_SpawnState (S_SOR2TELEFADE)
-END_DEFAULTS
-
//----------------------------------------------------------------------------
//
// PROC A_Sor1Pain
@@ -433,19 +71,21 @@ void A_Srcr1Attack (AActor *actor)
P_TraceBleed (damage, actor->target, actor);
return;
}
+
+ const PClass *fx = PClass::FindClass("SorcererFX1");
if (actor->health > (actor->GetDefault()->health/3)*2)
{ // Spit one fireball
- P_SpawnMissileZ (actor, actor->z + 48*FRACUNIT, actor->target, RUNTIME_CLASS(ASorcererFX1));
+ P_SpawnMissileZ (actor, actor->z + 48*FRACUNIT, actor->target, fx );
}
else
{ // Spit three fireballs
- mo = P_SpawnMissileZ (actor, actor->z + 48*FRACUNIT, actor->target, RUNTIME_CLASS(ASorcererFX1));
+ mo = P_SpawnMissileZ (actor, actor->z + 48*FRACUNIT, actor->target, fx);
if (mo != NULL)
{
momz = mo->momz;
angle = mo->angle;
- P_SpawnMissileAngleZ (actor, actor->z + 48*FRACUNIT, RUNTIME_CLASS(ASorcererFX1), angle-ANGLE_1*3, momz);
- P_SpawnMissileAngleZ (actor, actor->z + 48*FRACUNIT, RUNTIME_CLASS(ASorcererFX1), angle+ANGLE_1*3, momz);
+ P_SpawnMissileAngleZ (actor, actor->z + 48*FRACUNIT, fx, angle-ANGLE_1*3, momz);
+ P_SpawnMissileAngleZ (actor, actor->z + 48*FRACUNIT, fx, angle+ANGLE_1*3, momz);
}
if (actor->health < actor->GetDefault()->health/3)
{ // Maybe attack again
@@ -456,7 +96,7 @@ void A_Srcr1Attack (AActor *actor)
else
{ // Set state to attack again
actor->special1 = 1;
- actor->SetState (&ASorcerer1::States[S_SRCR1_ATK+3]);
+ actor->SetState (actor->FindState("Missile2"));
}
}
}
@@ -473,8 +113,8 @@ void A_SorcererRise (AActor *actor)
AActor *mo;
actor->flags &= ~MF_SOLID;
- mo = Spawn (actor->x, actor->y, actor->z, ALLOW_REPLACE);
- mo->SetState (&ASorcerer2::States[S_SOR2_RISE]);
+ mo = Spawn("Sorcerer2", actor->x, actor->y, actor->z, ALLOW_REPLACE);
+ mo->SetState (mo->FindState("Rise"));
mo->angle = actor->angle;
mo->CopyFriendliness (actor, true);
}
@@ -496,7 +136,7 @@ void P_DSparilTeleport (AActor *actor)
DSpotState *state = DSpotState::GetSpotState();
if (state == NULL) return;
- spot = state->GetSpotWithMinDistance(RUNTIME_CLASS(ABossSpot), actor->x, actor->y, 128*FRACUNIT);
+ spot = state->GetSpotWithMinDistance(PClass::FindClass("BossSpot"), actor->x, actor->y, 128*FRACUNIT);
if (spot == NULL) return;
prevX = actor->x;
@@ -504,9 +144,9 @@ void P_DSparilTeleport (AActor *actor)
prevZ = actor->z;
if (P_TeleportMove (actor, spot->x, spot->y, spot->z, false))
{
- mo = Spawn (prevX, prevY, prevZ, ALLOW_REPLACE);
+ mo = Spawn("Sorcerer2Telefade", prevX, prevY, prevZ, ALLOW_REPLACE);
S_Sound (mo, CHAN_BODY, "misc/teleport", 1, ATTN_NORM);
- actor->SetState (&ASorcerer2::States[S_SOR2_TELE]);
+ actor->SetState (actor->FindState("Teleport"));
S_Sound (actor, CHAN_BODY, "misc/teleport", 1, ATTN_NORM);
actor->z = actor->floorz;
actor->angle = spot->angle;
@@ -565,14 +205,17 @@ void A_Srcr2Attack (AActor *actor)
chance = actor->health < actor->GetDefault()->health/2 ? 96 : 48;
if (pr_s2a() < chance)
{ // Wizard spawners
- P_SpawnMissileAngle (actor, RUNTIME_CLASS(ASorcerer2FX2),
- actor->angle-ANG45, FRACUNIT/2);
- P_SpawnMissileAngle (actor, RUNTIME_CLASS(ASorcerer2FX2),
- actor->angle+ANG45, FRACUNIT/2);
+
+ const PClass *fx = PClass::FindClass("Sorcerer2FX2");
+ if (fx)
+ {
+ P_SpawnMissileAngle (actor, fx, actor->angle-ANG45, FRACUNIT/2);
+ P_SpawnMissileAngle (actor, fx, actor->angle+ANG45, FRACUNIT/2);
+ }
}
else
{ // Blue bolt
- P_SpawnMissile (actor, actor->target, RUNTIME_CLASS(ASorcerer2FX1));
+ P_SpawnMissile (actor, actor->target, PClass::FindClass("Sorcerer2FX1"));
}
}
@@ -589,7 +232,7 @@ void A_BlueSpark (AActor *actor)
for (i = 0; i < 2; i++)
{
- mo = Spawn (actor->x, actor->y, actor->z, ALLOW_REPLACE);
+ mo = Spawn("Sorcerer2FXSpark", actor->x, actor->y, actor->z, ALLOW_REPLACE);
mo->momx = pr_bluespark.Random2() << 9;
mo->momy = pr_bluespark.Random2() << 9;
mo->momz = FRACUNIT + (pr_bluespark()<<8);
@@ -606,9 +249,10 @@ void A_GenWizard (AActor *actor)
{
AActor *mo;
- mo = Spawn (actor->x, actor->y, actor->z - GetDefault()->height/2, ALLOW_REPLACE);
+ mo = Spawn("Wizard", actor->x, actor->y, actor->z, ALLOW_REPLACE);
if (mo != NULL)
{
+ mo->z -= mo->GetDefault()->height/2;
if (!P_TestMobjLocation (mo))
{ // Didn't fit
mo->Destroy ();
@@ -650,19 +294,7 @@ void A_Sor2DthLoop (AActor *actor)
{
if (--actor->special1)
{ // Need to loop
- actor->SetState (&ASorcerer2::States[S_SOR2_DIE+3]);
+ actor->SetState (actor->FindState("DeathLoop"));
}
}
-//----------------------------------------------------------------------------
-//
-// D'Sparil Sound Routines
-//
-//----------------------------------------------------------------------------
-
-void A_SorZap (AActor *actor) {S_Sound (actor, CHAN_BODY, "dsparil/zap", 1, ATTN_NONE);}
-void A_SorRise (AActor *actor) {S_Sound (actor, CHAN_BODY, "dsparil/rise", 1, ATTN_NONE);}
-void A_SorDSph (AActor *actor) {S_Sound (actor, CHAN_BODY, "dsparil/scream", 1, ATTN_NONE);}
-void A_SorDExp (AActor *actor) {S_Sound (actor, CHAN_BODY, "dsparil/explode", 1, ATTN_NONE);}
-void A_SorDBon (AActor *actor) {S_Sound (actor, CHAN_BODY, "dsparil/bones", 1, ATTN_NONE);}
-void A_SorSightSnd (AActor *actor) {S_Sound (actor, CHAN_BODY, "dsparil/sight", 1, ATTN_NONE);}
diff --git a/src/g_heretic/a_hereticartifacts.cpp b/src/g_heretic/a_hereticartifacts.cpp
index 8326157b..f52b5516 100644
--- a/src/g_heretic/a_hereticartifacts.cpp
+++ b/src/g_heretic/a_hereticartifacts.cpp
@@ -10,25 +10,13 @@
class AArtiTomeOfPower : public APowerupGiver
{
- DECLARE_ACTOR (AArtiTomeOfPower, APowerupGiver)
+ DECLARE_CLASS (AArtiTomeOfPower, APowerupGiver)
public:
bool Use (bool pickup);
};
-FState AArtiTomeOfPower::States[] =
-{
- S_NORMAL (PWBK, 'A', 350, NULL, &States[0])
-};
-IMPLEMENT_ACTOR (AArtiTomeOfPower, Heretic, 86, 134)
- PROP_Flags (MF_SPECIAL|MF_COUNTITEM)
- PROP_Flags2 (MF2_FLOATBOB)
- PROP_SpawnState (0)
- PROP_Inventory_PickupFlash (1)
- PROP_Inventory_Icon ("ARTIPWBK")
- PROP_PowerupGiver_Powerup ("PowerWeaponLevel2")
- PROP_Inventory_PickupMessage("$TXT_ARTITOMEOFPOWER")
-END_DEFAULTS
+IMPLEMENT_CLASS (AArtiTomeOfPower)
bool AArtiTomeOfPower::Use (bool pickup)
{
@@ -55,70 +43,28 @@ bool AArtiTomeOfPower::Use (bool pickup)
// Time bomb ----------------------------------------------------------------
-class AActivatedTimeBomb : public AActor
+void A_TimeBomb(AActor *self)
{
- DECLARE_ACTOR (AActivatedTimeBomb, AActor)
-public:
- void PreExplode ()
- {
- z += 32*FRACUNIT;
- alpha = OPAQUE;
- }
-};
-
-FState AActivatedTimeBomb::States[] =
-{
- S_NORMAL (FBMB, 'A', 10, NULL , &States[1]),
- S_NORMAL (FBMB, 'B', 10, NULL , &States[2]),
- S_NORMAL (FBMB, 'C', 10, NULL , &States[3]),
- S_NORMAL (FBMB, 'D', 10, NULL , &States[4]),
- S_NORMAL (FBMB, 'E', 6, A_Scream , &States[5]),
- S_BRIGHT (XPL1, 'A', 4, A_Explode, &States[6]),
- S_BRIGHT (XPL1, 'B', 4, NULL , &States[7]),
- S_BRIGHT (XPL1, 'C', 4, NULL , &States[8]),
- S_BRIGHT (XPL1, 'D', 4, NULL , &States[9]),
- S_BRIGHT (XPL1, 'E', 4, NULL , &States[10]),
- S_BRIGHT (XPL1, 'F', 4, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (AActivatedTimeBomb, Heretic, -1, 0)
- PROP_Flags (MF_NOGRAVITY)
- PROP_RenderStyle (STYLE_Translucent)
- PROP_Alpha (HR_SHADOW)
-
- PROP_SpawnState (0)
-
- PROP_DeathSound ("misc/timebomb")
-END_DEFAULTS
+ self->z += 32*FRACUNIT;
+ self->RenderStyle = STYLE_Add;
+ self->alpha = FRACUNIT;
+ A_Explode(self);
+}
class AArtiTimeBomb : public AInventory
{
- DECLARE_ACTOR (AArtiTimeBomb, AInventory)
+ DECLARE_CLASS (AArtiTimeBomb, AInventory)
public:
bool Use (bool pickup);
};
-FState AArtiTimeBomb::States[] =
-{
- S_NORMAL (FBMB, 'E', 350, NULL, &States[0]),
-};
-IMPLEMENT_ACTOR (AArtiTimeBomb, Heretic, 34, 72)
- PROP_Flags (MF_SPECIAL|MF_COUNTITEM)
- PROP_Flags2 (MF2_FLOATBOB)
- PROP_SpawnState (0)
- PROP_Inventory_DefMaxAmount
- PROP_Inventory_PickupFlash (1)
- PROP_Inventory_FlagsSet (IF_INVBAR|IF_FANCYPICKUPSOUND)
- PROP_Inventory_Icon ("ARTIFBMB")
- PROP_Inventory_PickupSound ("misc/p_pkup")
- PROP_Inventory_PickupMessage("$TXT_ARTIFIREBOMB")
-END_DEFAULTS
+IMPLEMENT_CLASS (AArtiTimeBomb)
bool AArtiTimeBomb::Use (bool pickup)
{
angle_t angle = Owner->angle >> ANGLETOFINESHIFT;
- AActor *mo = Spawn (
+ AActor *mo = Spawn("ActivatedTimeBomb",
Owner->x + 24*finecosine[angle],
Owner->y + 24*finesine[angle],
Owner->z - Owner->floorclip, ALLOW_REPLACE);
diff --git a/src/g_heretic/a_hereticglobal.h b/src/g_heretic/a_hereticglobal.h
index cde20aff..3d1ff192 100644
--- a/src/g_heretic/a_hereticglobal.h
+++ b/src/g_heretic/a_hereticglobal.h
@@ -21,25 +21,6 @@ class APhoenixPuff : public AActor
DECLARE_ACTOR (APhoenixPuff, AActor)
};
-class ASorcerer2 : public AActor
-{
- DECLARE_ACTOR (ASorcerer2, AActor)
-};
-
-class AWizard : public AActor
-{
- DECLARE_ACTOR (AWizard, AActor)
-public:
- void NoBlockingSet ();
-};
-
void P_DSparilTeleport (AActor *actor);
-class AStaffPuff : public AActor
-{
- DECLARE_ACTOR (AStaffPuff, AActor)
-public:
- void BeginPlay ();
-};
-
#endif //__A_HERETICGLOBAL_H__
diff --git a/src/g_heretic/a_hereticimp.cpp b/src/g_heretic/a_hereticimp.cpp
index dad20dff..3640d9ad 100644
--- a/src/g_heretic/a_hereticimp.cpp
+++ b/src/g_heretic/a_hereticimp.cpp
@@ -8,218 +8,6 @@
#include "gstrings.h"
static FRandom pr_imp ("ImpExplode");
-static FRandom pr_impmeatk ("ImpMeAttack");
-static FRandom pr_impmsatk ("ImpMsAttack");
-static FRandom pr_impmsatk2 ("ImpMsAttack2");
-
-void A_ImpExplode (AActor *);
-void A_ImpMeAttack (AActor *);
-void A_ImpMsAttack (AActor *);
-void A_ImpMsAttack2 (AActor *);
-void A_ImpDeath (AActor *);
-void A_ImpXDeath1 (AActor *);
-void A_ImpXDeath2 (AActor *);
-
-// Heretic imp (as opposed to the Doom variety) -----------------------------
-
-class AHereticImp : public AActor
-{
- DECLARE_ACTOR (AHereticImp, AActor)
-};
-
-FState AHereticImp::States[] =
-{
-#define S_IMP_LOOK 0
- S_NORMAL (IMPX, 'A', 10, A_Look , &States[S_IMP_LOOK+1]),
- S_NORMAL (IMPX, 'B', 10, A_Look , &States[S_IMP_LOOK+2]),
- S_NORMAL (IMPX, 'C', 10, A_Look , &States[S_IMP_LOOK+3]),
- S_NORMAL (IMPX, 'B', 10, A_Look , &States[S_IMP_LOOK+0]),
-
-#define S_IMP_FLY (S_IMP_LOOK+4)
- S_NORMAL (IMPX, 'A', 3, A_Chase , &States[S_IMP_FLY+1]),
- S_NORMAL (IMPX, 'A', 3, A_Chase , &States[S_IMP_FLY+2]),
- S_NORMAL (IMPX, 'B', 3, A_Chase , &States[S_IMP_FLY+3]),
- S_NORMAL (IMPX, 'B', 3, A_Chase , &States[S_IMP_FLY+4]),
- S_NORMAL (IMPX, 'C', 3, A_Chase , &States[S_IMP_FLY+5]),
- S_NORMAL (IMPX, 'C', 3, A_Chase , &States[S_IMP_FLY+6]),
- S_NORMAL (IMPX, 'B', 3, A_Chase , &States[S_IMP_FLY+7]),
- S_NORMAL (IMPX, 'B', 3, A_Chase , &States[S_IMP_FLY+0]),
-
-#define S_IMP_MEATK (S_IMP_FLY+8)
- S_NORMAL (IMPX, 'D', 6, A_FaceTarget , &States[S_IMP_MEATK+1]),
- S_NORMAL (IMPX, 'E', 6, A_FaceTarget , &States[S_IMP_MEATK+2]),
- S_NORMAL (IMPX, 'F', 6, A_ImpMeAttack , &States[S_IMP_FLY+0]),
-
-#define S_IMP_MSATK1 (S_IMP_MEATK+3)
- S_NORMAL (IMPX, 'A', 10, A_FaceTarget , &States[S_IMP_MSATK1+1]),
- S_NORMAL (IMPX, 'B', 6, A_ImpMsAttack , &States[S_IMP_MSATK1+2]),
- S_NORMAL (IMPX, 'C', 6, NULL , &States[S_IMP_MSATK1+3]),
- S_NORMAL (IMPX, 'B', 6, NULL , &States[S_IMP_MSATK1+4]),
- S_NORMAL (IMPX, 'A', 6, NULL , &States[S_IMP_MSATK1+5]),
- S_NORMAL (IMPX, 'B', 6, NULL , &States[S_IMP_MSATK1+2]),
-
-#define S_IMP_PAIN (S_IMP_MSATK1+6)
- S_NORMAL (IMPX, 'G', 3, NULL , &States[S_IMP_PAIN+1]),
- S_NORMAL (IMPX, 'G', 3, A_Pain , &States[S_IMP_FLY+0]),
-
-#define S_IMP_DIE (S_IMP_PAIN+2)
- S_NORMAL (IMPX, 'G', 4, A_ImpDeath , &States[S_IMP_DIE+1]),
- S_NORMAL (IMPX, 'H', 5, NULL , &States[S_IMP_DIE+1]),
-
-#define S_IMP_XDIE (S_IMP_DIE+2)
- S_NORMAL (IMPX, 'S', 5, A_ImpXDeath1 , &States[S_IMP_XDIE+1]),
- S_NORMAL (IMPX, 'T', 5, NULL , &States[S_IMP_XDIE+2]),
- S_NORMAL (IMPX, 'U', 5, NULL , &States[S_IMP_XDIE+3]),
- S_NORMAL (IMPX, 'V', 5, A_ImpXDeath2 , &States[S_IMP_XDIE+4]),
- S_NORMAL (IMPX, 'W', 5, NULL , &States[S_IMP_XDIE+4]),
-
-#define S_IMP_CRASH (S_IMP_XDIE+5)
- S_NORMAL (IMPX, 'I', 7, A_ImpExplode , &States[S_IMP_CRASH+1]),
- S_NORMAL (IMPX, 'J', 7, A_Scream , &States[S_IMP_CRASH+2]),
- S_NORMAL (IMPX, 'K', 7, NULL , &States[S_IMP_CRASH+3]),
- S_NORMAL (IMPX, 'L', -1, NULL , NULL),
-
-#define S_IMP_XCRASH (S_IMP_CRASH+4)
- S_NORMAL (IMPX, 'X', 7, NULL , &States[S_IMP_XCRASH+1]),
- S_NORMAL (IMPX, 'Y', 7, NULL , &States[S_IMP_XCRASH+2]),
- S_NORMAL (IMPX, 'Z', -1, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (AHereticImp, Heretic, 66, 5)
- PROP_SpawnHealth (40)
- PROP_RadiusFixed (16)
- PROP_HeightFixed (36)
- PROP_Mass (50)
- PROP_SpeedFixed (10)
- PROP_PainChance (200)
- PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_FLOAT|MF_NOGRAVITY|MF_COUNTKILL)
- PROP_Flags2 (MF2_MCROSS|MF2_SPAWNFLOAT|MF2_PASSMOBJ|MF2_PUSHWALL)
- PROP_Flags3 (MF3_DONTOVERLAP)
- PROP_Flags4 (MF4_MISSILEMORE)
-
- PROP_SpawnState (S_IMP_LOOK)
- PROP_SeeState (S_IMP_FLY)
- PROP_PainState (S_IMP_PAIN)
- PROP_MeleeState (S_IMP_MEATK)
- PROP_MissileState (S_IMP_MSATK1)
- PROP_CrashState (S_IMP_CRASH)
- PROP_DeathState (S_IMP_DIE)
- PROP_XDeathState (S_IMP_XDIE)
-
- PROP_SeeSound ("himp/sight")
- PROP_AttackSound ("himp/attack")
- PROP_PainSound ("himp/pain")
- PROP_DeathSound ("himp/death")
- PROP_ActiveSound ("himp/active")
- PROP_Obituary("$OB_HERETICIMP")
- PROP_HitObituary("$OB_HERETICIMPHIT")
-END_DEFAULTS
-
-// Heretic imp leader -------------------------------------------------------
-
-class AHereticImpLeader : public AHereticImp
-{
- DECLARE_ACTOR (AHereticImpLeader, AHereticImp)
-};
-
-FState AHereticImpLeader::States[] =
-{
-#define S_IMP_MSATK2 0
- S_NORMAL (IMPX, 'D', 6, A_FaceTarget , &States[S_IMP_MSATK2+1]),
- S_NORMAL (IMPX, 'E', 6, A_FaceTarget , &States[S_IMP_MSATK2+2]),
- S_NORMAL (IMPX, 'F', 6, A_ImpMsAttack2 , &AHereticImp::States[S_IMP_FLY]),
-};
-
-IMPLEMENT_ACTOR (AHereticImpLeader, Heretic, 5, 7)
- PROP_SpawnHealth (80)
-
- PROP_MeleeState (PROP_CLEAR_STATE)
- PROP_MissileState (S_IMP_MSATK2)
- PROP_Flags4Clear(MF4_MISSILEMORE) // The imp leader does have a 'normal' missile range!
-
- PROP_AttackSound ("himp/leaderattack")
-END_DEFAULTS
-
-// Heretic imp chunk 1 ------------------------------------------------------
-
-class AHereticImpChunk1 : public AActor
-{
- DECLARE_ACTOR (AHereticImpChunk1, AActor)
-};
-
-FState AHereticImpChunk1::States[] =
-{
- S_NORMAL (IMPX, 'M', 5, NULL , &States[1]),
- S_NORMAL (IMPX, 'N', 700, NULL , &States[2]),
- S_NORMAL (IMPX, 'O', 700, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (AHereticImpChunk1, Heretic, -1, 0)
- PROP_Mass (5)
- PROP_Radius (4)
-
- PROP_SpawnState (0)
-END_DEFAULTS
-
-// Heretic imp chunk 2 ------------------------------------------------------
-
-class AHereticImpChunk2 : public AActor
-{
- DECLARE_ACTOR (AHereticImpChunk2, AActor)
-};
-
-FState AHereticImpChunk2::States[] =
-{
- S_NORMAL (IMPX, 'P', 5, NULL , &States[1]),
- S_NORMAL (IMPX, 'Q', 700, NULL , &States[2]),
- S_NORMAL (IMPX, 'R', 700, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (AHereticImpChunk2, Heretic, -1, 0)
- PROP_Mass (5)
- PROP_Radius (4)
-
- PROP_SpawnState (0)
-END_DEFAULTS
-
-// Heretic imp ball ---------------------------------------------------------
-
-class AHereticImpBall : public AActor
-{
- DECLARE_ACTOR (AHereticImpBall, AActor)
-};
-
-FState AHereticImpBall::States[] =
-{
-#define S_IMPFX 0
- S_BRIGHT (FX10, 'A', 6, NULL , &States[S_IMPFX+1]),
- S_BRIGHT (FX10, 'B', 6, NULL , &States[S_IMPFX+2]),
- S_BRIGHT (FX10, 'C', 6, NULL , &States[S_IMPFX+0]),
-
-#define S_IMPFXI (S_IMPFX+3)
- S_BRIGHT (FX10, 'D', 5, NULL , &States[S_IMPFXI+1]),
- S_BRIGHT (FX10, 'E', 5, NULL , &States[S_IMPFXI+2]),
- S_BRIGHT (FX10, 'F', 5, NULL , &States[S_IMPFXI+3]),
- S_BRIGHT (FX10, 'G', 5, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (AHereticImpBall, Heretic, -1, 10)
- PROP_RadiusFixed (8)
- PROP_HeightFixed (8)
- PROP_SpeedFixed (10)
- PROP_Damage (1)
- PROP_Flags (MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY)
- PROP_Flags2 (MF2_WINDTHRUST|MF2_NOTELEPORT)
- PROP_RenderStyle (STYLE_Add)
-
- PROP_SpawnState (S_IMPFX)
- PROP_DeathState (S_IMPFXI)
-END_DEFAULTS
-
-AT_SPEED_SET (HereticImpBall, speed)
-{
- SimpleSpeedSetter (AHereticImpBall, 10*FRACUNIT, 20*FRACUNIT, speed);
-}
//----------------------------------------------------------------------------
//
@@ -233,100 +21,21 @@ void A_ImpExplode (AActor *self)
self->flags &= ~MF_NOGRAVITY;
- chunk = Spawn (self->x, self->y, self->z, ALLOW_REPLACE);
+ chunk = Spawn("HereticImpChunk1", self->x, self->y, self->z, ALLOW_REPLACE);
chunk->momx = pr_imp.Random2 () << 10;
chunk->momy = pr_imp.Random2 () << 10;
chunk->momz = 9*FRACUNIT;
- chunk = Spawn (self->x, self->y, self->z, ALLOW_REPLACE);
+ chunk = Spawn("HereticImpChunk2", self->x, self->y, self->z, ALLOW_REPLACE);
chunk->momx = pr_imp.Random2 () << 10;
chunk->momy = pr_imp.Random2 () << 10;
chunk->momz = 9*FRACUNIT;
if (self->special1 == 666)
{ // Extreme death crash
- self->SetState (&AHereticImp::States[S_IMP_XCRASH]);
+ self->SetState (self->FindState("XCrash"));
}
}
-//----------------------------------------------------------------------------
-//
-// PROC A_ImpMeAttack
-//
-//----------------------------------------------------------------------------
-
-void A_ImpMeAttack (AActor *self)
-{
- if (!self->target)
- {
- return;
- }
- S_Sound (self, CHAN_WEAPON, self->AttackSound, 1, ATTN_NORM);
- if (self->CheckMeleeRange ())
- {
- int damage = 5+(pr_impmeatk()&7);
- P_DamageMobj (self->target, self, self, damage, NAME_Melee);
- P_TraceBleed (damage, self->target, self);
- }
-}
-
-//----------------------------------------------------------------------------
-//
-// PROC A_ImpMsAttack
-//
-//----------------------------------------------------------------------------
-
-void A_ImpMsAttack (AActor *self)
-{
- AActor *dest;
- angle_t an;
- int dist;
-
- if (!self->target || pr_impmsatk() > 64)
- {
- self->SetState (self->SeeState);
- return;
- }
- dest = self->target;
- self->flags |= MF_SKULLFLY;
- S_Sound (self, CHAN_WEAPON, self->AttackSound, 1, ATTN_NORM);
- A_FaceTarget (self);
- an = self->angle >> ANGLETOFINESHIFT;
- self->momx = FixedMul (12*FRACUNIT, finecosine[an]);
- self->momy = FixedMul (12*FRACUNIT, finesine[an]);
- dist = P_AproxDistance (dest->x - self->x, dest->y - self->y);
- dist = dist/(12*FRACUNIT);
- if (dist < 1)
- {
- dist = 1;
- }
- self->momz = (dest->z + (dest->height>>1) - self->z)/dist;
-}
-
-//----------------------------------------------------------------------------
-//
-// PROC A_ImpMsAttack2
-//
-// Fireball attack of the imp leader.
-//
-//----------------------------------------------------------------------------
-
-void A_ImpMsAttack2 (AActor *self)
-{
- if (!self->target)
- {
- return;
- }
- S_Sound (self, CHAN_WEAPON, self->AttackSound, 1, ATTN_NORM);
- if (self->CheckMeleeRange ())
- {
- int damage = 5+(pr_impmsatk2()&7);
- P_DamageMobj (self->target, self, self, damage, NAME_Melee);
- P_TraceBleed (damage, self->target, self);
- return;
- }
- P_SpawnMissile (self, self->target, RUNTIME_CLASS(AHereticImpBall));
-}
-
//----------------------------------------------------------------------------
//
// PROC A_ImpDeath
@@ -337,10 +46,6 @@ void A_ImpDeath (AActor *self)
{
self->flags &= ~MF_SOLID;
self->flags2 |= MF2_FLOORCLIP;
- if (self->z <= self->floorz)
- {
- //self->SetState (&AHereticImp::States[S_IMP_CRASH]);
- }
}
//----------------------------------------------------------------------------
@@ -357,18 +62,3 @@ void A_ImpXDeath1 (AActor *self)
self->special1 = 666; // Flag the crash routine
}
-//----------------------------------------------------------------------------
-//
-// PROC A_ImpXDeath2
-//
-//----------------------------------------------------------------------------
-
-void A_ImpXDeath2 (AActor *self)
-{
- self->flags &= ~MF_NOGRAVITY;
- if (self->z <= self->floorz)
- {
- self->SetState (&AHereticImp::States[S_IMP_CRASH]);
- }
-}
-
diff --git a/src/g_heretic/a_hereticmisc.cpp b/src/g_heretic/a_hereticmisc.cpp
index cc1ea9e1..3e3a24b3 100644
--- a/src/g_heretic/a_hereticmisc.cpp
+++ b/src/g_heretic/a_hereticmisc.cpp
@@ -18,129 +18,6 @@ static FRandom pr_volcano ("VolcanoSet");
static FRandom pr_blast ("VolcanoBlast");
static FRandom pr_impact ("VolcBallImpact");
-// --- Pods -----------------------------------------------------------------
-
-void A_PodPain (AActor *);
-void A_RemovePod (AActor *);
-void A_MakePod (AActor *);
-
-// Pod ----------------------------------------------------------------------
-
-class APod : public AActor
-{
- DECLARE_ACTOR (APod, AActor)
- HAS_OBJECT_POINTERS
-public:
- void BeginPlay ();
- TObjPtr Generator;
-
- void Serialize (FArchive &arc);
-};
-
-IMPLEMENT_POINTY_CLASS (APod)
- DECLARE_POINTER (Generator)
-END_POINTERS;
-
-void APod::Serialize (FArchive &arc)
-{
- Super::Serialize (arc);
- arc << Generator;
-}
-
-FState APod::States[] =
-{
-#define S_POD_WAIT 0
- S_NORMAL (PPOD, 'A', 10, NULL , &States[S_POD_WAIT+0]),
-
-#define S_POD_PAIN (S_POD_WAIT+1)
- S_NORMAL (PPOD, 'B', 14, A_PodPain , &States[S_POD_WAIT+0]),
-
-#define S_POD_DIE (S_POD_PAIN+1)
- S_BRIGHT (PPOD, 'C', 5, A_RemovePod , &States[S_POD_DIE+1]),
- S_BRIGHT (PPOD, 'D', 5, A_Scream , &States[S_POD_DIE+2]),
- S_BRIGHT (PPOD, 'E', 5, A_Explode , &States[S_POD_DIE+3]),
- S_BRIGHT (PPOD, 'F', 10, NULL , &AActor::States[S_FREETARGMOBJ]),
-
-#define S_POD_GROW (S_POD_DIE+4)
- S_NORMAL (PPOD, 'I', 3, NULL , &States[S_POD_GROW+1]),
- S_NORMAL (PPOD, 'J', 3, NULL , &States[S_POD_GROW+2]),
- S_NORMAL (PPOD, 'K', 3, NULL , &States[S_POD_GROW+3]),
- S_NORMAL (PPOD, 'L', 3, NULL , &States[S_POD_GROW+4]),
- S_NORMAL (PPOD, 'M', 3, NULL , &States[S_POD_GROW+5]),
- S_NORMAL (PPOD, 'N', 3, NULL , &States[S_POD_GROW+6]),
- S_NORMAL (PPOD, 'O', 3, NULL , &States[S_POD_GROW+7]),
- S_NORMAL (PPOD, 'P', 3, NULL , &States[S_POD_WAIT+0])
-};
-
-BEGIN_DEFAULTS (APod, Heretic, 2035, 125)
- PROP_SpawnHealth (45)
- PROP_RadiusFixed (16)
- PROP_HeightFixed (54)
- PROP_PainChance (255)
- PROP_Flags (MF_SOLID|MF_NOBLOOD|MF_SHOOTABLE|MF_DROPOFF)
- PROP_Flags2 (MF2_WINDTHRUST|MF2_PUSHABLE|MF2_SLIDE|MF2_PASSMOBJ|MF2_TELESTOMP)
- PROP_Flags3 (MF3_DONTMORPH|MF3_NOBLOCKMONST|MF3_DONTGIB)
- PROP_Flags5 (MF5_OLDRADIUSDMG)
-
- PROP_SpawnState (S_POD_WAIT)
- PROP_PainState (S_POD_PAIN)
- PROP_DeathState (S_POD_DIE)
-
- PROP_DeathSound ("world/podexplode")
-END_DEFAULTS
-
-void APod::BeginPlay ()
-{
- Super::BeginPlay ();
- Generator = NULL;
-}
-
-// Pod goo (falls from pod when damaged) ------------------------------------
-
-class APodGoo : public AActor
-{
- DECLARE_ACTOR (APodGoo, AActor)
-};
-
-FState APodGoo::States[] =
-{
-#define S_PODGOO 0
- S_NORMAL (PPOD, 'G', 8, NULL , &States[S_PODGOO+1]),
- S_NORMAL (PPOD, 'H', 8, NULL , &States[S_PODGOO+0]),
-
-#define S_PODGOOX (S_PODGOO+2)
- S_NORMAL (PPOD, 'G', 10, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (APodGoo, Heretic, -1, 0)
- PROP_RadiusFixed (2)
- PROP_HeightFixed (4)
- PROP_Gravity (FRACUNIT/8)
- PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF)
- PROP_Flags2 (MF2_NOTELEPORT|MF2_CANNOTPUSH)
-
- PROP_SpawnState (S_PODGOO)
-END_DEFAULTS
-
-// Pod generator ------------------------------------------------------------
-
-class APodGenerator : public AActor
-{
- DECLARE_ACTOR (APodGenerator, AActor)
-};
-
-FState APodGenerator::States[] =
-{
- S_NORMAL (TNT1, 'A', 35, A_MakePod , &States[0])
-};
-
-IMPLEMENT_ACTOR (APodGenerator, Heretic, 43, 126)
- PROP_Flags (MF_NOBLOCKMAP|MF_NOSECTOR)
- PROP_SpawnState (0)
-END_DEFAULTS
-
-// --- Pod action functions -------------------------------------------------
-
//----------------------------------------------------------------------------
//
// PROC A_PodPain
@@ -160,7 +37,7 @@ void A_PodPain (AActor *actor)
}
for (count = chance > 240 ? 2 : 1; count; count--)
{
- goo = Spawn (actor->x, actor->y, actor->z + 48*FRACUNIT, ALLOW_REPLACE);
+ goo = Spawn("PodGoo", actor->x, actor->y, actor->z + 48*FRACUNIT, ALLOW_REPLACE);
goo->target = actor;
goo->momx = pr_podpain.Random2() << 9;
goo->momy = pr_podpain.Random2() << 9;
@@ -178,7 +55,7 @@ void A_RemovePod (AActor *actor)
{
AActor *mo;
- if ( (mo = static_cast(actor)->Generator) )
+ if ( (mo = actor->master))
{
if (mo->special1 > 0)
{
@@ -197,7 +74,7 @@ void A_RemovePod (AActor *actor)
void A_MakePod (AActor *actor)
{
- APod *mo;
+ AActor *mo;
fixed_t x;
fixed_t y;
fixed_t z;
@@ -209,142 +86,20 @@ void A_MakePod (AActor *actor)
x = actor->x;
y = actor->y;
z = actor->z;
- mo = Spawn (x, y, ONFLOORZ, ALLOW_REPLACE);
+ mo = Spawn("Pod", x, y, ONFLOORZ, ALLOW_REPLACE);
if (!P_CheckPosition (mo, x, y))
{ // Didn't fit
mo->Destroy ();
return;
}
- mo->SetState (&APod::States[S_POD_GROW]);
+ mo->SetState (mo->FindState("Grow"));
P_ThrustMobj (mo, pr_makepod()<<24, (fixed_t)(4.5*FRACUNIT));
S_Sound (mo, CHAN_BODY, "world/podgrow", 1, ATTN_IDLE);
actor->special1++; // Increment generated pod count
- mo->Generator = actor; // Link the generator to the pod
+ mo->master = actor; // Link the generator to the pod
return;
}
-// --- Teleglitter ----------------------------------------------------------
-
-void A_SpawnTeleGlitter (AActor *);
-void A_SpawnTeleGlitter2 (AActor *);
-void A_AccTeleGlitter (AActor *);
-
-// Teleglitter generator 1 --------------------------------------------------
-
-class ATeleGlitterGenerator1 : public AActor
-{
- DECLARE_ACTOR (ATeleGlitterGenerator1, AActor)
-};
-
-FState ATeleGlitterGenerator1::States[] =
-{
- S_NORMAL (TGLT, 'A', 8, A_SpawnTeleGlitter , &States[0])
-};
-
-IMPLEMENT_ACTOR (ATeleGlitterGenerator1, Heretic, 74, 166)
- PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOSECTOR)
- PROP_SpawnState (0)
-END_DEFAULTS
-
-// Teleglitter generator 2 --------------------------------------------------
-
-class ATeleGlitterGenerator2 : public AActor
-{
- DECLARE_ACTOR (ATeleGlitterGenerator2, AActor)
-};
-
-FState ATeleGlitterGenerator2::States[] =
-{
- S_NORMAL (TGLT, 'F', 8, A_SpawnTeleGlitter2 , &States[0])
-};
-
-IMPLEMENT_ACTOR (ATeleGlitterGenerator2, Heretic, 52, 167)
- PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOSECTOR)
- PROP_SpawnState (0)
-END_DEFAULTS
-
-// Teleglitter 1 ------------------------------------------------------------
-
-class ATeleGlitter1 : public AActor
-{
- DECLARE_ACTOR (ATeleGlitter1, AActor)
-};
-
-FState ATeleGlitter1::States[] =
-{
- S_BRIGHT (TGLT, 'A', 2, NULL , &States[1]),
- S_BRIGHT (TGLT, 'B', 2, A_AccTeleGlitter , &States[2]),
- S_BRIGHT (TGLT, 'C', 2, NULL , &States[3]),
- S_BRIGHT (TGLT, 'D', 2, A_AccTeleGlitter , &States[4]),
- S_BRIGHT (TGLT, 'E', 2, NULL , &States[0])
-};
-
-IMPLEMENT_ACTOR (ATeleGlitter1, Heretic, -1, 0)
- PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY|MF_MISSILE)
- PROP_RenderStyle (STYLE_Add)
- PROP_SpawnState (0)
- PROP_Damage (0)
-END_DEFAULTS
-
-// Teleglitter 2 ------------------------------------------------------------
-
-class ATeleGlitter2 : public AActor
-{
- DECLARE_ACTOR (ATeleGlitter2, AActor)
-};
-
-FState ATeleGlitter2::States[] =
-{
- S_BRIGHT (TGLT, 'F', 2, NULL , &States[1]),
- S_BRIGHT (TGLT, 'G', 2, A_AccTeleGlitter , &States[2]),
- S_BRIGHT (TGLT, 'H', 2, NULL , &States[3]),
- S_BRIGHT (TGLT, 'I', 2, A_AccTeleGlitter , &States[4]),
- S_BRIGHT (TGLT, 'J', 2, NULL , &States[0])
-};
-
-IMPLEMENT_ACTOR (ATeleGlitter2, Heretic, -1, 0)
- PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY|MF_MISSILE)
- PROP_RenderStyle (STYLE_Add)
- PROP_SpawnState (0)
- PROP_Damage (0)
-END_DEFAULTS
-
-// --- Teleglitter action functions -----------------------------------------
-
-//----------------------------------------------------------------------------
-//
-// PROC A_SpawnTeleGlitter
-//
-//----------------------------------------------------------------------------
-
-void A_SpawnTeleGlitter (AActor *actor)
-{
- AActor *mo;
- fixed_t x = actor->x+((pr_teleg()&31)-16)*FRACUNIT;
- fixed_t y = actor->y+((pr_teleg()&31)-16)*FRACUNIT;
-
- mo = Spawn (x, y,
- actor->Sector->floorplane.ZatPoint (actor->x, actor->y), ALLOW_REPLACE);
- mo->momz = FRACUNIT/4;
-}
-
-//----------------------------------------------------------------------------
-//
-// PROC A_SpawnTeleGlitter2
-//
-//----------------------------------------------------------------------------
-
-void A_SpawnTeleGlitter2 (AActor *actor)
-{
- AActor *mo;
- fixed_t x = actor->x+((pr_teleg2()&31)-16)*FRACUNIT;
- fixed_t y = actor->y+((pr_teleg2()&31)-16)*FRACUNIT;
-
- mo = Spawn (x, y,
- actor->Sector->floorplane.ZatPoint (actor->x, actor->y), ALLOW_REPLACE);
- mo->momz = FRACUNIT/4;
-}
-
//----------------------------------------------------------------------------
//
// PROC A_AccTeleGlitter
@@ -359,135 +114,9 @@ void A_AccTeleGlitter (AActor *actor)
}
}
-// --- Volcano --------------------------------------------------------------
-
-void A_VolcanoSet (AActor *);
-void A_VolcanoBlast (AActor *);
-void A_VolcBallImpact (AActor *);
-extern void A_BeastPuff (AActor *);
-
-// Volcano ------------------------------------------------------------------
-
-class AVolcano : public AActor
-{
- DECLARE_ACTOR (AVolcano, AActor)
-};
-
-FState AVolcano::States[] =
-{
- S_NORMAL (VLCO, 'A', 350, NULL , &States[1]),
- S_NORMAL (VLCO, 'A', 35, A_VolcanoSet , &States[2]),
- S_NORMAL (VLCO, 'B', 3, NULL , &States[3]),
- S_NORMAL (VLCO, 'C', 3, NULL , &States[4]),
- S_NORMAL (VLCO, 'D', 3, NULL , &States[5]),
- S_NORMAL (VLCO, 'B', 3, NULL , &States[6]),
- S_NORMAL (VLCO, 'C', 3, NULL , &States[7]),
- S_NORMAL (VLCO, 'D', 3, NULL , &States[8]),
- S_NORMAL (VLCO, 'E', 10, A_VolcanoBlast , &States[1])
-};
-
-IMPLEMENT_ACTOR (AVolcano, Heretic, 87, 150)
- PROP_RadiusFixed (12)
- PROP_HeightFixed (20)
- PROP_Flags (MF_SOLID)
-
- PROP_SpawnState (0)
-END_DEFAULTS
-
-// Volcano blast ------------------------------------------------------------
-
-class AVolcanoBlast : public AActor
-{
- DECLARE_ACTOR (AVolcanoBlast, AActor)
-};
-
-FState AVolcanoBlast::States[] =
-{
-#define S_VOLCANOBALL 0
- S_NORMAL (VFBL, 'A', 4, A_BeastPuff , &States[S_VOLCANOBALL+1]),
- S_NORMAL (VFBL, 'B', 4, A_BeastPuff , &States[S_VOLCANOBALL+0]),
-
-#define S_VOLCANOBALLX (S_VOLCANOBALL+2)
- S_NORMAL (XPL1, 'A', 4, A_VolcBallImpact , &States[S_VOLCANOBALLX+1]),
- S_NORMAL (XPL1, 'B', 4, NULL , &States[S_VOLCANOBALLX+2]),
- S_NORMAL (XPL1, 'C', 4, NULL , &States[S_VOLCANOBALLX+3]),
- S_NORMAL (XPL1, 'D', 4, NULL , &States[S_VOLCANOBALLX+4]),
- S_NORMAL (XPL1, 'E', 4, NULL , &States[S_VOLCANOBALLX+5]),
- S_NORMAL (XPL1, 'F', 4, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (AVolcanoBlast, Heretic, -1, 123)
- PROP_RadiusFixed (8)
- PROP_HeightFixed (8)
- PROP_SpeedFixed (2)
- PROP_Damage (2)
- PROP_DamageType (NAME_Fire)
- PROP_Gravity (FRACUNIT/8)
- PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF)
- PROP_Flags2 (MF2_NOTELEPORT)
-
- PROP_SpawnState (S_VOLCANOBALL)
- PROP_DeathState (S_VOLCANOBALLX)
-
- PROP_DeathSound ("world/volcano/blast")
-END_DEFAULTS
-
-// Volcano T Blast ----------------------------------------------------------
-
-class AVolcanoTBlast : public AActor
-{
- DECLARE_ACTOR (AVolcanoTBlast, AActor)
-};
-
-FState AVolcanoTBlast::States[] =
-{
-#define S_VOLCANOTBALL 0
- S_NORMAL (VTFB, 'A', 4, NULL , &States[S_VOLCANOTBALL+1]),
- S_NORMAL (VTFB, 'B', 4, NULL , &States[S_VOLCANOTBALL+0]),
-
-#define S_VOLCANOTBALLX (S_VOLCANOTBALL+2)
- S_NORMAL (SFFI, 'C', 4, NULL , &States[S_VOLCANOTBALLX+1]),
- S_NORMAL (SFFI, 'B', 4, NULL , &States[S_VOLCANOTBALLX+2]),
- S_NORMAL (SFFI, 'A', 4, NULL , &States[S_VOLCANOTBALLX+3]),
- S_NORMAL (SFFI, 'B', 4, NULL , &States[S_VOLCANOTBALLX+4]),
- S_NORMAL (SFFI, 'C', 4, NULL , &States[S_VOLCANOTBALLX+5]),
- S_NORMAL (SFFI, 'D', 4, NULL , &States[S_VOLCANOTBALLX+6]),
- S_NORMAL (SFFI, 'E', 4, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (AVolcanoTBlast, Heretic, -1, 124)
- PROP_RadiusFixed (8)
- PROP_HeightFixed (6)
- PROP_SpeedFixed (2)
- PROP_Damage (1)
- PROP_DamageType (NAME_Fire)
- PROP_Gravity (FRACUNIT/8)
- PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF)
- PROP_Flags2 (MF2_NOTELEPORT)
-
- PROP_SpawnState (S_VOLCANOTBALL)
- PROP_DeathState (S_VOLCANOTBALLX)
-END_DEFAULTS
//----------------------------------------------------------------------------
//
-// PROC A_BeastPuff
-//
-//----------------------------------------------------------------------------
-
-void A_BeastPuff (AActor *actor)
-{
- if (pr_volcano() > 64)
- {
- fixed_t x, y, z;
-
- x = actor->x + (pr_volcano.Random2 () << 10);
- y = actor->y + (pr_volcano.Random2 () << 10);
- z = actor->z + (pr_volcano.Random2 () << 10);
- Spawn ("Puffy", x, y, z, ALLOW_REPLACE);
- }
-}//----------------------------------------------------------------------------
-//
// PROC A_VolcanoSet
//
//----------------------------------------------------------------------------
@@ -513,7 +142,7 @@ void A_VolcanoBlast (AActor *volcano)
count = 1 + (pr_blast() % 3);
for (i = 0; i < count; i++)
{
- blast = Spawn (volcano->x, volcano->y,
+ blast = Spawn("VolcanoBlast", volcano->x, volcano->y,
volcano->z + 44*FRACUNIT, ALLOW_REPLACE);
blast->target = volcano;
angle = pr_blast () << 24;
@@ -549,7 +178,7 @@ void A_VolcBallImpact (AActor *ball)
P_RadiusAttack (ball, ball->target, 25, 25, NAME_Fire, true);
for (i = 0; i < 4; i++)
{
- tiny = Spawn (ball->x, ball->y, ball->z, ALLOW_REPLACE);
+ tiny = Spawn("VolcanoTBlast", ball->x, ball->y, ball->z, ALLOW_REPLACE);
tiny->target = ball;
angle = i*ANG90;
tiny->angle = angle;
diff --git a/src/g_heretic/a_hereticweaps.cpp b/src/g_heretic/a_hereticweaps.cpp
index 10db6cc5..0de0ef28 100644
--- a/src/g_heretic/a_hereticweaps.cpp
+++ b/src/g_heretic/a_hereticweaps.cpp
@@ -15,6 +15,7 @@
#include "gi.h"
#include "r_translate.h"
#include "a_specialspot.h"
+#include "thingdef/thingdef.h"
static FRandom pr_sap ("StaffAtkPL1");
static FRandom pr_sap2 ("StaffAtkPL2");
@@ -41,10 +42,6 @@ static FRandom pr_fp2 ("FirePhoenixPL2");
#define FLAME_THROWER_TICS (10*TICRATE)
-#define USE_GWND_AMMO_1 1
-#define USE_GWND_AMMO_2 1
-#define USE_CBOW_AMMO_1 1
-#define USE_CBOW_AMMO_2 1
#define USE_BLSR_AMMO_1 1
#define USE_BLSR_AMMO_2 5
#define USE_SKRD_AMMO_1 1
@@ -64,139 +61,13 @@ END_DEFAULTS
// --- Staff ----------------------------------------------------------------
-void A_StaffAttackPL1 (AActor *);
-void A_StaffAttackPL2 (AActor *);
-
-// Staff --------------------------------------------------------------------
-
-class AStaff : public AHereticWeapon
-{
- DECLARE_ACTOR (AStaff, AHereticWeapon)
-};
-
-class AStaffPowered : public AStaff
-{
- DECLARE_STATELESS_ACTOR (AStaffPowered, AStaff)
-};
-
-FState AStaff::States[] =
-{
-#define S_STAFFREADY 0
- S_NORMAL (STFF, 'A', 1, A_WeaponReady , &States[S_STAFFREADY]),
-
-#define S_STAFFDOWN (S_STAFFREADY+1)
- S_NORMAL (STFF, 'A', 1, A_Lower , &States[S_STAFFDOWN]),
-
-#define S_STAFFUP (S_STAFFDOWN+1)
- S_NORMAL (STFF, 'A', 1, A_Raise , &States[S_STAFFUP]),
-
-#define S_STAFFREADY2 (S_STAFFUP+1)
- S_NORMAL (STFF, 'D', 4, A_WeaponReady , &States[S_STAFFREADY2+1]),
- S_NORMAL (STFF, 'E', 4, A_WeaponReady , &States[S_STAFFREADY2+2]),
- S_NORMAL (STFF, 'F', 4, A_WeaponReady , &States[S_STAFFREADY2+0]),
-
-#define S_STAFFDOWN2 (S_STAFFREADY2+3)
- S_NORMAL (STFF, 'D', 1, A_Lower , &States[S_STAFFDOWN2]),
-
-#define S_STAFFUP2 (S_STAFFDOWN2+1)
- S_NORMAL (STFF, 'D', 1, A_Raise , &States[S_STAFFUP2]),
-
-#define S_STAFFATK1 (S_STAFFUP2+1)
- S_NORMAL (STFF, 'B', 6, NULL , &States[S_STAFFATK1+1]),
- S_NORMAL (STFF, 'C', 8, A_StaffAttackPL1 , &States[S_STAFFATK1+2]),
- S_NORMAL (STFF, 'B', 8, A_ReFire , &States[S_STAFFREADY]),
-
-#define S_STAFFATK2 (S_STAFFATK1+3)
- S_NORMAL (STFF, 'G', 6, NULL , &States[S_STAFFATK2+1]),
- S_NORMAL (STFF, 'H', 8, A_StaffAttackPL2 , &States[S_STAFFATK2+2]),
- S_NORMAL (STFF, 'G', 8, A_ReFire , &States[S_STAFFREADY2+0])
-};
-
-IMPLEMENT_ACTOR (AStaff, Heretic, -1, 0)
- PROP_Weapon_SelectionOrder (3800)
- PROP_Flags2Set(MF2_THRUGHOST)
- PROP_Weapon_Flags (WIF_WIMPY_WEAPON|WIF_BOT_MELEE)
- PROP_Weapon_UpState (S_STAFFUP)
- PROP_Weapon_DownState (S_STAFFDOWN)
- PROP_Weapon_ReadyState (S_STAFFREADY)
- PROP_Weapon_AtkState (S_STAFFATK1)
- PROP_Weapon_SisterType ("StaffPowered")
-END_DEFAULTS
-
-IMPLEMENT_STATELESS_ACTOR (AStaffPowered, Heretic, -1, 0)
- PROP_Weapon_Flags (WIF_WIMPY_WEAPON|WIF_READYSNDHALF|WIF_POWERED_UP|WIF_BOT_MELEE|WIF_STAFF2_KICKBACK)
- PROP_Weapon_UpState (S_STAFFUP2)
- PROP_Weapon_DownState (S_STAFFDOWN2)
- PROP_Weapon_ReadyState (S_STAFFREADY2)
- PROP_Weapon_AtkState (S_STAFFATK2)
- PROP_Weapon_ReadySound ("weapons/staffcrackle")
- PROP_Weapon_SisterType ("Staff")
-END_DEFAULTS
-
-// Staff puff ---------------------------------------------------------------
-
-FState AStaffPuff::States[] =
-{
- S_BRIGHT (PUF3, 'A', 4, NULL , &States[1]),
- S_NORMAL (PUF3, 'B', 4, NULL , &States[2]),
- S_NORMAL (PUF3, 'C', 4, NULL , &States[3]),
- S_NORMAL (PUF3, 'D', 4, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (AStaffPuff, Heretic, -1, 0)
- PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY)
- PROP_Flags3 (MF3_PUFFONACTORS)
- PROP_RenderStyle (STYLE_Translucent)
- PROP_Alpha (HR_SHADOW)
- PROP_SpawnState (0)
- PROP_AttackSound ("weapons/staffhit")
-END_DEFAULTS
-
-void AStaffPuff::BeginPlay ()
-{
- Super::BeginPlay ();
- momz = FRACUNIT;
-}
-
-// Staff puff 2 -------------------------------------------------------------
-
-class AStaffPuff2 : public AStaffPuff
-{
- DECLARE_ACTOR (AStaffPuff2, AStaffPuff)
-public:
- void BeginPlay ();
-};
-
-FState AStaffPuff2::States[] =
-{
- S_BRIGHT (PUF4, 'A', 4, NULL , &States[1]),
- S_BRIGHT (PUF4, 'B', 4, NULL , &States[2]),
- S_BRIGHT (PUF4, 'C', 4, NULL , &States[3]),
- S_BRIGHT (PUF4, 'D', 4, NULL , &States[4]),
- S_BRIGHT (PUF4, 'E', 4, NULL , &States[5]),
- S_BRIGHT (PUF4, 'F', 4, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (AStaffPuff2, Heretic, -1, 0)
- PROP_SpawnState (0)
- PROP_RenderStyle (STYLE_Add)
- PROP_Alpha (OPAQUE)
- PROP_AttackSound ("weapons/staffpowerhit")
-END_DEFAULTS
-
-void AStaffPuff2::BeginPlay ()
-{
- Super::BeginPlay ();
- momz = 0;
-}
-
//----------------------------------------------------------------------------
//
// PROC A_StaffAttackPL1
//
//----------------------------------------------------------------------------
-void A_StaffAttackPL1 (AActor *actor)
+void A_StaffAttack (AActor *actor)
{
angle_t angle;
int damage;
@@ -209,17 +80,23 @@ void A_StaffAttackPL1 (AActor *actor)
return;
}
+ int index = CheckIndex (2, NULL);
+ if (index < 0) return;
+
+ damage = EvalExpressionI (StateParameters[index], actor);
+ const PClass *puff = PClass::FindClass ((ENamedName)StateParameters[index+1]);
+
+
AWeapon *weapon = player->ReadyWeapon;
if (weapon != NULL)
{
if (!weapon->DepleteAmmo (weapon->bAltFire))
return;
}
- damage = 5+(pr_sap()&15);
angle = actor->angle;
angle += pr_sap.Random2() << 18;
slope = P_AimLineAttack (actor, angle, MELEERANGE, &linetarget);
- P_LineAttack (actor, angle, MELEERANGE, slope, damage, NAME_Melee, RUNTIME_CLASS(AStaffPuff), true);
+ P_LineAttack (actor, angle, MELEERANGE, slope, damage, NAME_Melee, puff, true);
if (linetarget)
{
//S_StartSound(player->mo, sfx_stfhit);
@@ -229,201 +106,6 @@ void A_StaffAttackPL1 (AActor *actor)
}
}
-//----------------------------------------------------------------------------
-//
-// PROC A_StaffAttackPL2
-//
-//----------------------------------------------------------------------------
-
-void A_StaffAttackPL2 (AActor *actor)
-{
- angle_t angle;
- int damage;
- int slope;
- player_t *player;
- AActor *linetarget;
-
- if (NULL == (player = actor->player))
- {
- return;
- }
-
- AWeapon *weapon = player->ReadyWeapon;
- if (weapon != NULL)
- {
- if (!weapon->DepleteAmmo (weapon->bAltFire))
- return;
- }
- // P_inter.c:P_DamageMobj() handles target momentums
- damage = 18+(pr_sap2()&63);
- angle = actor->angle;
- angle += pr_sap2.Random2() << 18;
- slope = P_AimLineAttack (actor, angle, MELEERANGE, &linetarget);
- P_LineAttack (actor, angle, MELEERANGE, slope, damage, NAME_Melee, RUNTIME_CLASS(AStaffPuff2), true);
- if (linetarget)
- {
- //S_StartSound(player->mo, sfx_stfpow);
- // turn to face target
- actor->angle = R_PointToAngle2 (actor->x,
- actor->y, linetarget->x, linetarget->y);
- }
-}
-
-// --- Gold wand ------------------------------------------------------------
-
-void A_FireGoldWandPL1 (AActor *);
-void A_FireGoldWandPL2 (AActor *);
-
-// Gold wand ----------------------------------------------------------------
-
-class AGoldWand : public AHereticWeapon
-{
- DECLARE_ACTOR (AGoldWand, AHereticWeapon)
-};
-
-class AGoldWandPowered : public AGoldWand
-{
- DECLARE_STATELESS_ACTOR (AGoldWandPowered, AGoldWand)
-};
-
-FState AGoldWand::States[] =
-{
-#define S_GOLDWANDREADY 0
- S_NORMAL (GWND, 'A', 1, A_WeaponReady , &States[S_GOLDWANDREADY]),
-
-#define S_GOLDWANDDOWN (S_GOLDWANDREADY+1)
- S_NORMAL (GWND, 'A', 1, A_Lower , &States[S_GOLDWANDDOWN]),
-
-#define S_GOLDWANDUP (S_GOLDWANDDOWN+1)
- S_NORMAL (GWND, 'A', 1, A_Raise , &States[S_GOLDWANDUP]),
-
-#define S_GOLDWANDATK1 (S_GOLDWANDUP+1)
- S_NORMAL (GWND, 'B', 3, NULL , &States[S_GOLDWANDATK1+1]),
- S_NORMAL (GWND, 'C', 5, A_FireGoldWandPL1 , &States[S_GOLDWANDATK1+2]),
- S_NORMAL (GWND, 'D', 3, NULL , &States[S_GOLDWANDATK1+3]),
- S_NORMAL (GWND, 'D', 0, A_ReFire , &States[S_GOLDWANDREADY]),
-
-#define S_GOLDWANDATK2 (S_GOLDWANDATK1+4)
- S_NORMAL (GWND, 'B', 3, NULL , &States[S_GOLDWANDATK2+1]),
- S_NORMAL (GWND, 'C', 4, A_FireGoldWandPL2 , &States[S_GOLDWANDATK2+2]),
- S_NORMAL (GWND, 'D', 3, NULL , &States[S_GOLDWANDATK2+3]),
- S_NORMAL (GWND, 'D', 0, A_ReFire , &States[S_GOLDWANDREADY])
-};
-
-IMPLEMENT_ACTOR (AGoldWand, Heretic, -1, 0)
- PROP_Flags5 (MF5_BLOODSPLATTER)
- PROP_Weapon_SelectionOrder (2000)
- PROP_Weapon_AmmoUse1 (USE_GWND_AMMO_1)
- PROP_Weapon_AmmoGive1 (25)
- PROP_Weapon_UpState (S_GOLDWANDUP)
- PROP_Weapon_DownState (S_GOLDWANDDOWN)
- PROP_Weapon_ReadyState (S_GOLDWANDREADY)
- PROP_Weapon_AtkState (S_GOLDWANDATK1)
- PROP_Weapon_YAdjust (5)
- PROP_Weapon_MoveCombatDist (25000000)
- PROP_Weapon_AmmoType1 ("GoldWandAmmo")
- PROP_Weapon_SisterType ("GoldWandPowered")
-END_DEFAULTS
-
-IMPLEMENT_STATELESS_ACTOR (AGoldWandPowered, Heretic, -1, 0)
- PROP_Weapon_Flags (WIF_POWERED_UP)
- PROP_Weapon_AmmoUse1 (USE_GWND_AMMO_2)
- PROP_Weapon_AmmoGive1 (0)
- PROP_Weapon_AtkState (S_GOLDWANDATK2)
- PROP_Weapon_SisterType ("GoldWand")
-END_DEFAULTS
-
-// Gold wand FX1 ------------------------------------------------------------
-
-class AGoldWandFX1 : public AActor
-{
- DECLARE_ACTOR (AGoldWandFX1, AActor)
-};
-
-FState AGoldWandFX1::States[] =
-{
-#define S_GWANDFX1 0
- S_BRIGHT (FX01, 'A', 6, NULL , &States[S_GWANDFX1+1]),
- S_BRIGHT (FX01, 'B', 6, NULL , &States[S_GWANDFX1+0]),
-
-#define S_GWANDFXI1 (S_GWANDFX1+2)
- S_BRIGHT (FX01, 'E', 3, NULL , &States[S_GWANDFXI1+1]),
- S_BRIGHT (FX01, 'F', 3, NULL , &States[S_GWANDFXI1+2]),
- S_BRIGHT (FX01, 'G', 3, NULL , &States[S_GWANDFXI1+3]),
- S_BRIGHT (FX01, 'H', 3, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (AGoldWandFX1, Heretic, -1, 151)
- PROP_RadiusFixed (10)
- PROP_HeightFixed (6)
- PROP_SpeedFixed (22)
- PROP_Damage (2)
- PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY)
- PROP_Flags2 (MF2_NOTELEPORT)
- PROP_RenderStyle (STYLE_Add)
-
- PROP_SpawnState (S_GWANDFX1)
- PROP_DeathState (S_GWANDFXI1)
-
- PROP_DeathSound ("weapons/wandhit")
-END_DEFAULTS
-
-// Gold wand FX2 ------------------------------------------------------------
-
-class AGoldWandFX2 : public AGoldWandFX1
-{
- DECLARE_ACTOR (AGoldWandFX2, AGoldWandFX1)
-};
-
-FState AGoldWandFX2::States[] =
-{
- S_BRIGHT (FX01, 'C', 6, NULL , &States[1]),
- S_BRIGHT (FX01, 'D', 6, NULL , &States[0])
-};
-
-IMPLEMENT_ACTOR (AGoldWandFX2, Heretic, -1, 152)
- PROP_SpeedFixed (18)
- PROP_Damage (1)
-
- PROP_SpawnState (0)
-
- PROP_DeathSound ("")
-END_DEFAULTS
-
-// Gold wand puff 1 ---------------------------------------------------------
-
-class AGoldWandPuff1 : public AActor
-{
- DECLARE_ACTOR (AGoldWandPuff1, AActor)
-};
-
-FState AGoldWandPuff1::States[] =
-{
- S_BRIGHT (PUF2, 'A', 3, NULL , &States[1]),
- S_BRIGHT (PUF2, 'B', 3, NULL , &States[2]),
- S_BRIGHT (PUF2, 'C', 3, NULL , &States[3]),
- S_BRIGHT (PUF2, 'D', 3, NULL , &States[4]),
- S_BRIGHT (PUF2, 'E', 3, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (AGoldWandPuff1, Heretic, -1, 0)
- PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY)
- PROP_Flags3 (MF3_PUFFONACTORS)
- PROP_SpawnState (0)
- PROP_RenderStyle (STYLE_Add)
-END_DEFAULTS
-
-// Gold wand puff 2 ---------------------------------------------------------
-
-class AGoldWandPuff2 : public AGoldWandFX1
-{
- DECLARE_STATELESS_ACTOR (AGoldWandPuff2, AGoldWandFX1)
-};
-
-IMPLEMENT_STATELESS_ACTOR (AGoldWandPuff2, Heretic, -1, 0)
- PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY)
- PROP_SpawnState (S_GWANDFXI1)
-END_DEFAULTS
//----------------------------------------------------------------------------
//
@@ -455,7 +137,7 @@ void A_FireGoldWandPL1 (AActor *actor)
{
angle += pr_fgw.Random2() << 18;
}
- P_LineAttack (actor, angle, PLAYERMISSILERANGE, pitch, damage, NAME_None, RUNTIME_CLASS(AGoldWandPuff1));
+ P_LineAttack (actor, angle, PLAYERMISSILERANGE, pitch, damage, NAME_None, "GoldWandPuff1");
S_Sound (actor, CHAN_WEAPON, "weapons/wandhit", 1, ATTN_NORM);
}
@@ -485,224 +167,20 @@ void A_FireGoldWandPL2 (AActor *actor)
return;
}
angle_t pitch = P_BulletSlope(actor);
- momz = FixedMul (GetDefault()->Speed,
+ momz = FixedMul (GetDefaultByName("GoldWandFX2")->Speed,
finetangent[FINEANGLES/4-((signed)pitch>>ANGLETOFINESHIFT)]);
- P_SpawnMissileAngle (actor, RUNTIME_CLASS(AGoldWandFX2), actor->angle-(ANG45/8), momz);
- P_SpawnMissileAngle (actor, RUNTIME_CLASS(AGoldWandFX2), actor->angle+(ANG45/8), momz);
+ P_SpawnMissileAngle (actor, PClass::FindClass("GoldWandFX2"), actor->angle-(ANG45/8), momz);
+ P_SpawnMissileAngle (actor, PClass::FindClass("GoldWandFX2"), actor->angle+(ANG45/8), momz);
angle = actor->angle-(ANG45/8);
for(i = 0; i < 5; i++)
{
damage = 1+(pr_fgw2()&7);
- P_LineAttack (actor, angle, PLAYERMISSILERANGE, pitch, damage, NAME_None, RUNTIME_CLASS(AGoldWandPuff2));
+ P_LineAttack (actor, angle, PLAYERMISSILERANGE, pitch, damage, NAME_None, "GoldWandPuff2");
angle += ((ANG45/8)*2)/4;
}
S_Sound (actor, CHAN_WEAPON, "weapons/wandhit", 1, ATTN_NORM);
}
-// --- Crossbow -------------------------------------------------------------
-
-void A_FireCrossbowPL1 (AActor *);
-void A_FireCrossbowPL2 (AActor *);
-void A_BoltSpark (AActor *);
-
-// Crossbow -----------------------------------------------------------------
-
-class ACrossbow : public AHereticWeapon
-{
- DECLARE_ACTOR (ACrossbow, AHereticWeapon)
-};
-
-class ACrossbowPowered : public ACrossbow
-{
- DECLARE_STATELESS_ACTOR (ACrossbowPowered, ACrossbow)
-};
-
-FState ACrossbow::States[] =
-{
-#define S_WBOW 0
- S_NORMAL (WBOW, 'A', -1, NULL , NULL),
-
-#define S_CRBOW (S_WBOW+1)
- S_NORMAL (CRBW, 'A', 1, A_WeaponReady , &States[S_CRBOW+1]),
- S_NORMAL (CRBW, 'A', 1, A_WeaponReady , &States[S_CRBOW+2]),
- S_NORMAL (CRBW, 'A', 1, A_WeaponReady , &States[S_CRBOW+3]),
- S_NORMAL (CRBW, 'A', 1, A_WeaponReady , &States[S_CRBOW+4]),
- S_NORMAL (CRBW, 'A', 1, A_WeaponReady , &States[S_CRBOW+5]),
- S_NORMAL (CRBW, 'A', 1, A_WeaponReady , &States[S_CRBOW+6]),
- S_NORMAL (CRBW, 'B', 1, A_WeaponReady , &States[S_CRBOW+7]),
- S_NORMAL (CRBW, 'B', 1, A_WeaponReady , &States[S_CRBOW+8]),
- S_NORMAL (CRBW, 'B', 1, A_WeaponReady , &States[S_CRBOW+9]),
- S_NORMAL (CRBW, 'B', 1, A_WeaponReady , &States[S_CRBOW+10]),
- S_NORMAL (CRBW, 'B', 1, A_WeaponReady , &States[S_CRBOW+11]),
- S_NORMAL (CRBW, 'B', 1, A_WeaponReady , &States[S_CRBOW+12]),
- S_NORMAL (CRBW, 'C', 1, A_WeaponReady , &States[S_CRBOW+13]),
- S_NORMAL (CRBW, 'C', 1, A_WeaponReady , &States[S_CRBOW+14]),
- S_NORMAL (CRBW, 'C', 1, A_WeaponReady , &States[S_CRBOW+15]),
- S_NORMAL (CRBW, 'C', 1, A_WeaponReady , &States[S_CRBOW+16]),
- S_NORMAL (CRBW, 'C', 1, A_WeaponReady , &States[S_CRBOW+17]),
- S_NORMAL (CRBW, 'C', 1, A_WeaponReady , &States[S_CRBOW+0]),
-
-#define S_CRBOWDOWN (S_CRBOW+18)
- S_NORMAL (CRBW, 'A', 1, A_Lower , &States[S_CRBOWDOWN]),
-
-#define S_CRBOWUP (S_CRBOWDOWN+1)
- S_NORMAL (CRBW, 'A', 1, A_Raise , &States[S_CRBOWUP]),
-
-#define S_CRBOWATK1 (S_CRBOWUP+1)
- S_NORMAL (CRBW, 'D', 6, A_FireCrossbowPL1 , &States[S_CRBOWATK1+1]),
- S_NORMAL (CRBW, 'E', 3, NULL , &States[S_CRBOWATK1+2]),
- S_NORMAL (CRBW, 'F', 3, NULL , &States[S_CRBOWATK1+3]),
- S_NORMAL (CRBW, 'G', 3, NULL , &States[S_CRBOWATK1+4]),
- S_NORMAL (CRBW, 'H', 3, NULL , &States[S_CRBOWATK1+5]),
- S_NORMAL (CRBW, 'A', 4, NULL , &States[S_CRBOWATK1+6]),
- S_NORMAL (CRBW, 'B', 4, NULL , &States[S_CRBOWATK1+7]),
- S_NORMAL (CRBW, 'C', 5, A_ReFire , &States[S_CRBOW+0]),
-
-#define S_CRBOWATK2 (S_CRBOWATK1+8)
- S_NORMAL (CRBW, 'D', 5, A_FireCrossbowPL2 , &States[S_CRBOWATK2+1]),
- S_NORMAL (CRBW, 'E', 3, NULL , &States[S_CRBOWATK2+2]),
- S_NORMAL (CRBW, 'F', 2, NULL , &States[S_CRBOWATK2+3]),
- S_NORMAL (CRBW, 'G', 3, NULL , &States[S_CRBOWATK2+4]),
- S_NORMAL (CRBW, 'H', 2, NULL , &States[S_CRBOWATK2+5]),
- S_NORMAL (CRBW, 'A', 3, NULL , &States[S_CRBOWATK2+6]),
- S_NORMAL (CRBW, 'B', 3, NULL , &States[S_CRBOWATK2+7]),
- S_NORMAL (CRBW, 'C', 4, A_ReFire , &States[S_CRBOW+0])
-};
-
-IMPLEMENT_ACTOR (ACrossbow, Heretic, 2001, 27)
- PROP_Flags (MF_SPECIAL)
- PROP_SpawnState (S_WBOW)
-
- PROP_Weapon_SelectionOrder (800)
- PROP_Weapon_AmmoUse1 (USE_CBOW_AMMO_1)
- PROP_Weapon_AmmoGive1 (10)
- PROP_Weapon_UpState (S_CRBOWUP)
- PROP_Weapon_DownState (S_CRBOWDOWN)
- PROP_Weapon_ReadyState (S_CRBOW)
- PROP_Weapon_AtkState (S_CRBOWATK1)
- PROP_Weapon_YAdjust (15)
- PROP_Weapon_MoveCombatDist (24000000)
- PROP_Weapon_AmmoType1 ("CrossbowAmmo")
- PROP_Weapon_SisterType ("CrossbowPowered")
- PROP_Weapon_ProjectileType ("CrossbowFX1")
- PROP_Inventory_PickupMessage("$TXT_WPNCROSSBOW")
-END_DEFAULTS
-
-IMPLEMENT_STATELESS_ACTOR (ACrossbowPowered, Heretic, -1, 0)
- PROP_Weapon_Flags (WIF_POWERED_UP)
- PROP_Weapon_AmmoUse1 (USE_CBOW_AMMO_2)
- PROP_Weapon_AmmoGive1 (0)
- PROP_Weapon_AtkState (S_CRBOWATK2)
- PROP_Weapon_SisterType ("Crossbow")
- PROP_Weapon_ProjectileType ("CrossbowFX2")
-END_DEFAULTS
-
-// Crossbow FX1 -------------------------------------------------------------
-
-class ACrossbowFX1 : public AActor
-{
- DECLARE_ACTOR (ACrossbowFX1, AActor)
-};
-
-FState ACrossbowFX1::States[] =
-{
-#define S_CRBOWFX1 0
- S_BRIGHT (FX03, 'B', 1, NULL , &States[S_CRBOWFX1]),
-
-#define S_CRBOWFXI1 (S_CRBOWFX1+1)
- S_BRIGHT (FX03, 'H', 8, NULL , &States[S_CRBOWFXI1+1]),
- S_BRIGHT (FX03, 'I', 8, NULL , &States[S_CRBOWFXI1+2]),
- S_BRIGHT (FX03, 'J', 8, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (ACrossbowFX1, Heretic, -1, 147)
- PROP_RadiusFixed (11)
- PROP_HeightFixed (8)
- PROP_SpeedFixed (30)
- PROP_Damage (10)
- PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY)
- PROP_Flags2 (MF2_NOTELEPORT|MF2_PCROSS|MF2_IMPACT)
- PROP_RenderStyle (STYLE_Add)
-
- PROP_SpawnState (S_CRBOWFX1)
- PROP_DeathState (S_CRBOWFXI1)
-
- PROP_SeeSound ("weapons/bowshoot")
- PROP_DeathSound ("weapons/bowhit")
-END_DEFAULTS
-
-// Crossbow FX2 -------------------------------------------------------------
-
-class ACrossbowFX2 : public ACrossbowFX1
-{
- DECLARE_ACTOR (ACrossbowFX2, ACrossbowFX1)
-};
-
-FState ACrossbowFX2::States[] =
-{
-#define S_CRBOWFX2 0
- S_BRIGHT (FX03, 'B', 1, A_BoltSpark , &States[S_CRBOWFX2])
-};
-
-IMPLEMENT_ACTOR (ACrossbowFX2, Heretic, -1, 148)
- PROP_SpeedFixed (32)
- PROP_Damage (6)
- PROP_RenderStyle (STYLE_Add)
- PROP_SpawnState (S_CRBOWFX2)
-END_DEFAULTS
-
-// Crossbow FX3 -------------------------------------------------------------
-
-class ACrossbowFX3 : public ACrossbowFX1
-{
- DECLARE_ACTOR (ACrossbowFX3, ACrossbowFX1)
-};
-
-FState ACrossbowFX3::States[] =
-{
-#define S_CRBOWFX3 0
- S_BRIGHT (FX03, 'A', 1, NULL , &States[S_CRBOWFX3]),
-
-#define S_CRBOWFXI3 (S_CRBOWFX3+1)
- S_BRIGHT (FX03, 'C', 8, NULL , &States[S_CRBOWFXI3+1]),
- S_BRIGHT (FX03, 'D', 8, NULL , &States[S_CRBOWFXI3+2]),
- S_BRIGHT (FX03, 'E', 8, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (ACrossbowFX3, Heretic, -1, 149)
- PROP_SpeedFixed (20)
- PROP_Damage (2)
- PROP_FlagsClear (MF_NOBLOCKMAP)
- PROP_Flags2 (MF2_WINDTHRUST|MF2_THRUGHOST|MF2_NOTELEPORT|MF2_PCROSS|MF2_IMPACT)
- PROP_RenderStyle (STYLE_Add)
-
- PROP_SpawnState (S_CRBOWFX3)
- PROP_DeathState (S_CRBOWFXI3)
-
- PROP_SeeSound ("")
-END_DEFAULTS
-
-// Crossbow FX4 -------------------------------------------------------------
-
-class ACrossbowFX4 : public AActor
-{
- DECLARE_ACTOR (ACrossbowFX4, AActor)
-};
-
-FState ACrossbowFX4::States[] =
-{
-#define S_CRBOWFX4 0
- S_BRIGHT (FX03, 'F', 8, NULL , &States[S_CRBOWFX4+1]),
- S_BRIGHT (FX03, 'G', 8, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (ACrossbowFX4, Heretic, -1, 0)
- PROP_Flags (MF_NOBLOCKMAP)
- PROP_Gravity (FRACUNIT/8)
- PROP_RenderStyle (STYLE_Add)
- PROP_SpawnState (S_CRBOWFX4)
-END_DEFAULTS
-
//----------------------------------------------------------------------------
//
// PROC A_FireCrossbowPL1
@@ -724,9 +202,9 @@ void A_FireCrossbowPL1 (AActor *actor)
if (!weapon->DepleteAmmo (weapon->bAltFire))
return;
}
- P_SpawnPlayerMissile (actor, RUNTIME_CLASS(ACrossbowFX1));
- P_SpawnPlayerMissile (actor, RUNTIME_CLASS(ACrossbowFX3), actor->angle-(ANG45/10));
- P_SpawnPlayerMissile (actor, RUNTIME_CLASS(ACrossbowFX3), actor->angle+(ANG45/10));
+ P_SpawnPlayerMissile (actor, PClass::FindClass("CrossbowFX1"));
+ P_SpawnPlayerMissile (actor, PClass::FindClass("CrossbowFX3"), actor->angle-(ANG45/10));
+ P_SpawnPlayerMissile (actor, PClass::FindClass("CrossbowFX3"), actor->angle+(ANG45/10));
}
//----------------------------------------------------------------------------
@@ -750,29 +228,115 @@ void A_FireCrossbowPL2(AActor *actor)
if (!weapon->DepleteAmmo (weapon->bAltFire))
return;
}
- P_SpawnPlayerMissile (actor, RUNTIME_CLASS(ACrossbowFX2));
- P_SpawnPlayerMissile (actor, RUNTIME_CLASS(ACrossbowFX2), actor->angle-(ANG45/10));
- P_SpawnPlayerMissile (actor, RUNTIME_CLASS(ACrossbowFX2), actor->angle+(ANG45/10));
- P_SpawnPlayerMissile (actor, RUNTIME_CLASS(ACrossbowFX3), actor->angle-(ANG45/5));
- P_SpawnPlayerMissile (actor, RUNTIME_CLASS(ACrossbowFX3), actor->angle+(ANG45/5));
+ P_SpawnPlayerMissile (actor, PClass::FindClass("CrossbowFX2"));
+ P_SpawnPlayerMissile (actor, PClass::FindClass("CrossbowFX2"), actor->angle-(ANG45/10));
+ P_SpawnPlayerMissile (actor, PClass::FindClass("CrossbowFX2"), actor->angle+(ANG45/10));
+ P_SpawnPlayerMissile (actor, PClass::FindClass("CrossbowFX3"), actor->angle-(ANG45/5));
+ P_SpawnPlayerMissile (actor, PClass::FindClass("CrossbowFX3"), actor->angle+(ANG45/5));
}
-//----------------------------------------------------------------------------
+//---------------------------------------------------------------------------
//
-// PROC A_BoltSpark
+// PROC A_GauntletAttack
//
-//----------------------------------------------------------------------------
+//---------------------------------------------------------------------------
-void A_BoltSpark (AActor *bolt)
+void A_GauntletAttack (AActor *actor)
{
- AActor *spark;
+ angle_t angle;
+ int damage;
+ int slope;
+ int randVal;
+ fixed_t dist;
+ player_t *player;
+ const PClass *pufftype;
+ int power;
+ AActor *linetarget;
- if (pr_boltspark() > 50)
+ if (NULL == (player = actor->player))
{
- spark = Spawn (bolt->x, bolt->y, bolt->z, ALLOW_REPLACE);
- spark->x += pr_boltspark.Random2() << 10;
- spark->y += pr_boltspark.Random2() << 10;
+ return;
}
+
+ int index = CheckIndex (1, NULL);
+ if (index < 0) return;
+
+ power = EvalExpressionI (StateParameters[index], actor);
+
+ AWeapon *weapon = player->ReadyWeapon;
+ if (weapon != NULL)
+ {
+ if (!weapon->DepleteAmmo (weapon->bAltFire))
+ return;
+ }
+ player->psprites[ps_weapon].sx = ((pr_gatk()&3)-2) * FRACUNIT;
+ player->psprites[ps_weapon].sy = WEAPONTOP + (pr_gatk()&3) * FRACUNIT;
+ angle = actor->angle;
+ if (power)
+ {
+ damage = pr_gatk.HitDice (2);
+ dist = 4*MELEERANGE;
+ angle += pr_gatk.Random2() << 17;
+ pufftype = PClass::FindClass("GauntletPuff2");
+ }
+ else
+ {
+ damage = pr_gatk.HitDice (2);
+ dist = MELEERANGE+1;
+ angle += pr_gatk.Random2() << 18;
+ pufftype = PClass::FindClass("GauntletPuff1");
+ }
+ slope = P_AimLineAttack (actor, angle, dist, &linetarget);
+ P_LineAttack (actor, angle, dist, slope, damage, NAME_Melee, pufftype);
+ if (!linetarget)
+ {
+ if (pr_gatk() > 64)
+ {
+ player->extralight = !player->extralight;
+ }
+ S_Sound (actor, CHAN_AUTO, "weapons/gauntletson", 1, ATTN_NORM);
+ return;
+ }
+ randVal = pr_gatk();
+ if (randVal < 64)
+ {
+ player->extralight = 0;
+ }
+ else if (randVal < 160)
+ {
+ player->extralight = 1;
+ }
+ else
+ {
+ player->extralight = 2;
+ }
+ if (power)
+ {
+ P_GiveBody (actor, damage>>1);
+ S_Sound (actor, CHAN_AUTO, "weapons/gauntletspowhit", 1, ATTN_NORM);
+ }
+ else
+ {
+ S_Sound (actor, CHAN_AUTO, "weapons/gauntletshit", 1, ATTN_NORM);
+ }
+ // turn to face target
+ angle = R_PointToAngle2 (actor->x, actor->y,
+ linetarget->x, linetarget->y);
+ if (angle-actor->angle > ANG180)
+ {
+ if ((int)(angle-actor->angle) < -ANG90/20)
+ actor->angle = angle+ANG90/21;
+ else
+ actor->angle -= ANG90/20;
+ }
+ else
+ {
+ if (angle-actor->angle > ANG90/20)
+ actor->angle = angle-ANG90/21;
+ else
+ actor->angle += ANG90/20;
+ }
+ actor->flags |= MF_JUSTATTACKED;
}
// --- Mace -----------------------------------------------------------------
@@ -1411,258 +975,6 @@ boom:
}
}
-// --- Gauntlets ------------------------------------------------------------
-
-void A_GauntletAttack (AActor *);
-void A_GauntletSound (AActor *);
-
-// Gauntlets ----------------------------------------------------------------
-
-class AGauntlets : public AHereticWeapon
-{
- DECLARE_ACTOR (AGauntlets, AHereticWeapon)
-};
-
-class AGauntletsPowered : public AGauntlets
-{
- DECLARE_STATELESS_ACTOR (AGauntletsPowered, AGauntlets)
-};
-
-FState AGauntlets::States[] =
-{
-#define S_WGNT 0
- S_NORMAL (WGNT, 'A', -1, NULL , NULL),
-
-#define S_GAUNTLETREADY (S_WGNT+1)
- S_NORMAL (GAUN, 'A', 1, A_WeaponReady , &States[S_GAUNTLETREADY]),
-
-#define S_GAUNTLETDOWN (S_GAUNTLETREADY+1)
- S_NORMAL (GAUN, 'A', 1, A_Lower , &States[S_GAUNTLETDOWN]),
-
-#define S_GAUNTLETUP (S_GAUNTLETDOWN+1)
- S_NORMAL (GAUN, 'A', 1, A_Raise , &States[S_GAUNTLETUP]),
-
-#define S_GAUNTLETREADY2 (S_GAUNTLETUP+1)
- S_NORMAL (GAUN, 'G', 4, A_WeaponReady , &States[S_GAUNTLETREADY2+1]),
- S_NORMAL (GAUN, 'H', 4, A_WeaponReady , &States[S_GAUNTLETREADY2+2]),
- S_NORMAL (GAUN, 'I', 4, A_WeaponReady , &States[S_GAUNTLETREADY2+0]),
-
-#define S_GAUNTLETDOWN2 (S_GAUNTLETREADY2+3)
- S_NORMAL (GAUN, 'G', 1, A_Lower , &States[S_GAUNTLETDOWN2]),
-
-#define S_GAUNTLETUP2 (S_GAUNTLETDOWN2+1)
- S_NORMAL (GAUN, 'G', 1, A_Raise , &States[S_GAUNTLETUP2]),
-
-#define S_GAUNTLETATK1 (S_GAUNTLETUP2+1)
- S_NORMAL (GAUN, 'B', 4, A_GauntletSound , &States[S_GAUNTLETATK1+1]),
- S_NORMAL (GAUN, 'C', 4, NULL , &States[S_GAUNTLETATK1+2]),
- S_BRIGHT (GAUN, 'D', 4, A_GauntletAttack , &States[S_GAUNTLETATK1+3]),
- S_BRIGHT (GAUN, 'E', 4, A_GauntletAttack , &States[S_GAUNTLETATK1+4]),
- S_BRIGHT (GAUN, 'F', 4, A_GauntletAttack , &States[S_GAUNTLETATK1+5]),
- S_NORMAL (GAUN, 'C', 4, A_ReFire , &States[S_GAUNTLETATK1+6]),
- S_NORMAL (GAUN, 'B', 4, A_Light0 , &States[S_GAUNTLETREADY]),
-
-#define S_GAUNTLETATK2 (S_GAUNTLETATK1+7)
- S_NORMAL (GAUN, 'J', 4, A_GauntletSound , &States[S_GAUNTLETATK2+1]),
- S_NORMAL (GAUN, 'K', 4, NULL , &States[S_GAUNTLETATK2+2]),
- S_BRIGHT (GAUN, 'L', 4, A_GauntletAttack , &States[S_GAUNTLETATK2+3]),
- S_BRIGHT (GAUN, 'M', 4, A_GauntletAttack , &States[S_GAUNTLETATK2+4]),
- S_BRIGHT (GAUN, 'N', 4, A_GauntletAttack , &States[S_GAUNTLETATK2+5]),
- S_NORMAL (GAUN, 'K', 4, A_ReFire , &States[S_GAUNTLETATK2+6]),
- S_NORMAL (GAUN, 'J', 4, A_Light0 , &States[S_GAUNTLETREADY2+0])
-};
-
-IMPLEMENT_ACTOR (AGauntlets, Heretic, 2005, 32)
- PROP_Flags (MF_SPECIAL)
- PROP_Flags5 (MF5_BLOODSPLATTER)
- PROP_SpawnState (S_WGNT)
-
- PROP_Weapon_SelectionOrder (2300)
- PROP_Weapon_Flags (WIF_WIMPY_WEAPON|WIF_BOT_MELEE)
- PROP_Weapon_UpState (S_GAUNTLETUP)
- PROP_Weapon_DownState (S_GAUNTLETDOWN)
- PROP_Weapon_ReadyState (S_GAUNTLETREADY)
- PROP_Weapon_AtkState (S_GAUNTLETATK1)
- PROP_Weapon_HoldAtkState (S_GAUNTLETATK1+2)
- PROP_Weapon_Kickback (0)
- PROP_Weapon_YAdjust (15)
- PROP_Weapon_UpSound ("weapons/gauntletsactivate")
- PROP_Weapon_SisterType ("GauntletsPowered")
- PROP_Inventory_PickupMessage("$TXT_WPNGAUNTLETS")
-END_DEFAULTS
-
-IMPLEMENT_STATELESS_ACTOR (AGauntletsPowered, Heretic, -1, 0)
- PROP_Weapon_Flags (WIF_WIMPY_WEAPON|WIF_POWERED_UP|WIF_BOT_MELEE)
- PROP_Weapon_UpState (S_GAUNTLETUP2)
- PROP_Weapon_DownState (S_GAUNTLETDOWN2)
- PROP_Weapon_ReadyState (S_GAUNTLETREADY2)
- PROP_Weapon_AtkState (S_GAUNTLETATK2)
- PROP_Weapon_HoldAtkState (S_GAUNTLETATK2+2)
- PROP_Weapon_SisterType ("Gauntlets")
-END_DEFAULTS
-
-void A_GauntletSound (AActor *actor)
-{
- // Play the sound for the initial gauntlet attack
- S_Sound (actor, CHAN_WEAPON, "weapons/gauntletsuse", 1, ATTN_NORM);
-}
-
-// Gauntlet puff 1 ----------------------------------------------------------
-
-class AGauntletPuff1 : public AActor
-{
- DECLARE_ACTOR (AGauntletPuff1, AActor)
-public:
- void BeginPlay ();
-};
-
-FState AGauntletPuff1::States[] =
-{
-#define S_GAUNTLETPUFF1 0
- S_BRIGHT (PUF1, 'A', 4, NULL , &States[S_GAUNTLETPUFF1+1]),
- S_BRIGHT (PUF1, 'B', 4, NULL , &States[S_GAUNTLETPUFF1+2]),
- S_BRIGHT (PUF1, 'C', 4, NULL , &States[S_GAUNTLETPUFF1+3]),
- S_BRIGHT (PUF1, 'D', 4, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (AGauntletPuff1, Heretic, -1, 0)
- PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY)
- PROP_Flags3 (MF3_PUFFONACTORS)
- PROP_RenderStyle (STYLE_Translucent)
- PROP_Alpha (HR_SHADOW)
- PROP_SpawnState (S_GAUNTLETPUFF1)
-END_DEFAULTS
-
-void AGauntletPuff1::BeginPlay ()
-{
- Super::BeginPlay ();
- momz = FRACUNIT * 8 / 10;
-}
-
-// Gauntlett puff 2 ---------------------------------------------------------
-
-class AGauntletPuff2 : public AGauntletPuff1
-{
- DECLARE_ACTOR (AGauntletPuff2, AGauntletPuff1)
-};
-
-FState AGauntletPuff2::States[] =
-{
-#define S_GAUNTLETPUFF2 0
- S_BRIGHT (PUF1, 'E', 4, NULL , &States[S_GAUNTLETPUFF2+1]),
- S_BRIGHT (PUF1, 'F', 4, NULL , &States[S_GAUNTLETPUFF2+2]),
- S_BRIGHT (PUF1, 'G', 4, NULL , &States[S_GAUNTLETPUFF2+3]),
- S_BRIGHT (PUF1, 'H', 4, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (AGauntletPuff2, Heretic, -1, 0)
- PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY)
- PROP_RenderStyle (STYLE_Translucent)
- PROP_Alpha (HR_SHADOW)
-
- PROP_SpawnState (S_GAUNTLETPUFF2)
-END_DEFAULTS
-
-//---------------------------------------------------------------------------
-//
-// PROC A_GauntletAttack
-//
-//---------------------------------------------------------------------------
-
-void A_GauntletAttack (AActor *actor)
-{
- angle_t angle;
- int damage;
- int slope;
- int randVal;
- fixed_t dist;
- player_t *player;
- const PClass *pufftype;
- AInventory *power;
- AActor *linetarget;
-
- if (NULL == (player = actor->player))
- {
- return;
- }
-
- AWeapon *weapon = player->ReadyWeapon;
- if (weapon != NULL)
- {
- if (!weapon->DepleteAmmo (weapon->bAltFire))
- return;
- }
- player->psprites[ps_weapon].sx = ((pr_gatk()&3)-2) * FRACUNIT;
- player->psprites[ps_weapon].sy = WEAPONTOP + (pr_gatk()&3) * FRACUNIT;
- angle = actor->angle;
- power = actor->FindInventory (RUNTIME_CLASS(APowerWeaponLevel2));
- if (power)
- {
- damage = pr_gatk.HitDice (2);
- dist = 4*MELEERANGE;
- angle += pr_gatk.Random2() << 17;
- pufftype = RUNTIME_CLASS(AGauntletPuff2);
- }
- else
- {
- damage = pr_gatk.HitDice (2);
- dist = MELEERANGE+1;
- angle += pr_gatk.Random2() << 18;
- pufftype = RUNTIME_CLASS(AGauntletPuff1);
- }
- slope = P_AimLineAttack (actor, angle, dist, &linetarget);
- P_LineAttack (actor, angle, dist, slope, damage, NAME_Melee, pufftype);
- if (!linetarget)
- {
- if (pr_gatk() > 64)
- {
- player->extralight = !player->extralight;
- }
- S_Sound (actor, CHAN_AUTO, "weapons/gauntletson", 1, ATTN_NORM);
- return;
- }
- randVal = pr_gatk();
- if (randVal < 64)
- {
- player->extralight = 0;
- }
- else if (randVal < 160)
- {
- player->extralight = 1;
- }
- else
- {
- player->extralight = 2;
- }
- if (power)
- {
- P_GiveBody (actor, damage>>1);
- S_Sound (actor, CHAN_AUTO, "weapons/gauntletspowhit", 1, ATTN_NORM);
- }
- else
- {
- S_Sound (actor, CHAN_AUTO, "weapons/gauntletshit", 1, ATTN_NORM);
- }
- // turn to face target
- angle = R_PointToAngle2 (actor->x, actor->y,
- linetarget->x, linetarget->y);
- if (angle-actor->angle > ANG180)
- {
- if ((int)(angle-actor->angle) < -ANG90/20)
- actor->angle = angle+ANG90/21;
- else
- actor->angle -= ANG90/20;
- }
- else
- {
- if (angle-actor->angle > ANG90/20)
- actor->angle = angle-ANG90/21;
- else
- actor->angle += ANG90/20;
- }
- actor->flags |= MF_JUSTATTACKED;
-}
-
// --- Blaster (aka Claw) ---------------------------------------------------
void A_FireBlasterPL1 (AActor *);
@@ -2229,7 +1541,7 @@ END_DEFAULTS
int AHornRodFX2::DoSpecialDamage (AActor *target, int damage)
{
- if (target->IsKindOf (RUNTIME_CLASS (ASorcerer2)) && pr_hrfx2() < 96)
+ if (target->IsKindOf (PClass::FindClass("Sorcerer2")) && pr_hrfx2() < 96)
{ // D'Sparil teleports away
P_DSparilTeleport (target);
return -1;
@@ -2665,7 +1977,7 @@ END_DEFAULTS
int APhoenixFX1::DoSpecialDamage (AActor *target, int damage)
{
- if (target->IsKindOf (RUNTIME_CLASS (ASorcerer2)) && pr_pfx1() < 96)
+ if (target->IsKindOf (PClass::FindClass("Sorcerer2")) && pr_hrfx2() < 96)
{ // D'Sparil teleports away
P_DSparilTeleport (target);
return -1;
diff --git a/src/g_heretic/a_ironlich.cpp b/src/g_heretic/a_ironlich.cpp
index db2c6f43..f6523d97 100644
--- a/src/g_heretic/a_ironlich.cpp
+++ b/src/g_heretic/a_ironlich.cpp
@@ -11,235 +11,14 @@ static FRandom pr_foo ("WhirlwindDamage");
static FRandom pr_atk ("LichAttack");
static FRandom pr_seek ("WhirlwindSeek");
-void A_LichAttack (AActor *);
-void A_LichIceImpact (AActor *);
-void A_LichFireGrow (AActor *);
-void A_WhirlwindSeek (AActor *);
-
-// Ironlich -----------------------------------------------------------------
-
-class AIronlich : public AActor
-{
- DECLARE_ACTOR (AIronlich, AActor)
-public:
- void NoBlockingSet ();
-};
-
-FState AIronlich::States[] =
-{
-#define S_HEAD_LOOK 0
- S_NORMAL (LICH, 'A', 10, A_Look , &States[S_HEAD_LOOK]),
-
-#define S_HEAD_FLOAT (S_HEAD_LOOK+1)
- S_NORMAL (LICH, 'A', 4, A_Chase , &States[S_HEAD_FLOAT]),
-
-#define S_HEAD_ATK (S_HEAD_FLOAT+1)
- S_NORMAL (LICH, 'A', 5, A_FaceTarget , &States[S_HEAD_ATK+1]),
- S_NORMAL (LICH, 'B', 20, A_LichAttack , &States[S_HEAD_FLOAT]),
-
-#define S_HEAD_PAIN (S_HEAD_ATK+2)
- S_NORMAL (LICH, 'A', 4, NULL , &States[S_HEAD_PAIN+1]),
- S_NORMAL (LICH, 'A', 4, A_Pain , &States[S_HEAD_FLOAT]),
-
-#define S_HEAD_DIE (S_HEAD_PAIN+2)
- S_NORMAL (LICH, 'C', 7, NULL , &States[S_HEAD_DIE+1]),
- S_NORMAL (LICH, 'D', 7, A_Scream , &States[S_HEAD_DIE+2]),
- S_NORMAL (LICH, 'E', 7, NULL , &States[S_HEAD_DIE+3]),
- S_NORMAL (LICH, 'F', 7, NULL , &States[S_HEAD_DIE+4]),
- S_NORMAL (LICH, 'G', 7, A_NoBlocking , &States[S_HEAD_DIE+5]),
- S_NORMAL (LICH, 'H', 7, NULL , &States[S_HEAD_DIE+6]),
- S_NORMAL (LICH, 'I', -1, A_BossDeath , NULL)
-};
-
-IMPLEMENT_ACTOR (AIronlich, Heretic, 6, 20)
- PROP_SpawnHealth (700)
- PROP_RadiusFixed (40)
- PROP_HeightFixed (72)
- PROP_Mass (325)
- PROP_SpeedFixed (6)
- PROP_PainChance (32)
- PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_COUNTKILL|MF_NOBLOOD)
- PROP_Flags2 (MF2_MCROSS|MF2_PASSMOBJ|MF2_PUSHWALL)
- PROP_Flags3 (MF3_DONTMORPH|MF3_DONTSQUASH)
- PROP_Flags4 (MF4_BOSSDEATH)
-
- PROP_SpawnState (S_HEAD_LOOK)
- PROP_SeeState (S_HEAD_FLOAT)
- PROP_PainState (S_HEAD_PAIN)
- PROP_MissileState (S_HEAD_ATK)
- PROP_DeathState (S_HEAD_DIE)
-
- PROP_SeeSound ("ironlich/sight")
- PROP_AttackSound ("ironlich/attack")
- PROP_PainSound ("ironlich/pain")
- PROP_DeathSound ("ironlich/death")
- PROP_ActiveSound ("ironlich/active")
- PROP_Obituary("$OB_IRONLICH")
- PROP_HitObituary("$OB_IRONLICHHIT")
-END_DEFAULTS
-
-void AIronlich::NoBlockingSet ()
-{
- P_DropItem (this, "BlasterAmmo", 10, 84);
- P_DropItem (this, "ArtiEgg", 0, 51);
-}
-
-// Head FX 1 ----------------------------------------------------------------
-
-class AHeadFX1 : public AActor
-{
- DECLARE_ACTOR (AHeadFX1, AActor)
-};
-
-FState AHeadFX1::States[] =
-{
-#define S_HEADFX1 0
- S_BRIGHT (FX05, 'A', 6, NULL , &States[S_HEADFX1+1]),
- S_BRIGHT (FX05, 'B', 6, NULL , &States[S_HEADFX1+2]),
- S_BRIGHT (FX05, 'C', 6, NULL , &States[S_HEADFX1+0]),
-
-#define S_HEADFXI1 (S_HEADFX1+3)
- S_BRIGHT (FX05, 'D', 5, A_LichIceImpact , &States[S_HEADFXI1+1]),
- S_BRIGHT (FX05, 'E', 5, NULL , &States[S_HEADFXI1+2]),
- S_BRIGHT (FX05, 'F', 5, NULL , &States[S_HEADFXI1+3]),
- S_BRIGHT (FX05, 'G', 5, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (AHeadFX1, Heretic, -1, 164)
- PROP_RadiusFixed (12)
- PROP_HeightFixed (6)
- PROP_SpeedFixed (13)
- PROP_Damage (1)
- PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY)
- PROP_Flags2 (MF2_NOTELEPORT|MF2_THRUGHOST)
- PROP_RenderStyle (STYLE_Add)
-
- PROP_SpawnState (S_HEADFX1)
- PROP_DeathState (S_HEADFXI1)
-END_DEFAULTS
-
-AT_SPEED_SET (HeadFX1, speed)
-{
- SimpleSpeedSetter (AHeadFX1, 13*FRACUNIT, 20*FRACUNIT, speed);
-}
-
-// Head FX 2 ----------------------------------------------------------------
-
-class AHeadFX2 : public AActor
-{
- DECLARE_ACTOR (AHeadFX2, AActor)
-};
-
-FState AHeadFX2::States[] =
-{
-#define S_HEADFX2 0
- S_BRIGHT (FX05, 'H', 6, NULL , &States[S_HEADFX2+1]),
- S_BRIGHT (FX05, 'I', 6, NULL , &States[S_HEADFX2+2]),
- S_BRIGHT (FX05, 'J', 6, NULL , &States[S_HEADFX2+0]),
-
-#define S_HEADFXI2 (S_HEADFX2+3)
- S_BRIGHT (FX05, 'D', 5, NULL , &States[S_HEADFXI2+1]),
- S_BRIGHT (FX05, 'E', 5, NULL , &States[S_HEADFXI2+2]),
- S_BRIGHT (FX05, 'F', 5, NULL , &States[S_HEADFXI2+3]),
- S_BRIGHT (FX05, 'G', 5, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (AHeadFX2, Heretic, -1, 0)
- PROP_RadiusFixed (12)
- PROP_HeightFixed (6)
- PROP_SpeedFixed (8)
- PROP_Damage (3)
- PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY)
- PROP_Flags2 (MF2_NOTELEPORT)
- PROP_RenderStyle (STYLE_Add)
-
- PROP_SpawnState (S_HEADFX2)
- PROP_DeathState (S_HEADFXI2)
-END_DEFAULTS
-
-// Head FX 3 ----------------------------------------------------------------
-
-class AHeadFX3 : public AActor
-{
- DECLARE_ACTOR (AHeadFX3, AActor)
-};
-
-FState AHeadFX3::States[] =
-{
-#define S_HEADFX3 0
- S_BRIGHT (FX06, 'A', 4, A_LichFireGrow , &States[S_HEADFX3+1]),
- S_BRIGHT (FX06, 'B', 4, A_LichFireGrow , &States[S_HEADFX3+2]),
- S_BRIGHT (FX06, 'C', 4, A_LichFireGrow , &States[S_HEADFX3+0]),
- S_BRIGHT (FX06, 'A', 5, NULL , &States[S_HEADFX3+4]),
- S_BRIGHT (FX06, 'B', 5, NULL , &States[S_HEADFX3+5]),
- S_BRIGHT (FX06, 'C', 5, NULL , &States[S_HEADFX3+3]),
-
-#define S_HEADFXI3 (S_HEADFX3+6)
- S_BRIGHT (FX06, 'D', 5, NULL , &States[S_HEADFXI3+1]),
- S_BRIGHT (FX06, 'E', 5, NULL , &States[S_HEADFXI3+2]),
- S_BRIGHT (FX06, 'F', 5, NULL , &States[S_HEADFXI3+3]),
- S_BRIGHT (FX06, 'G', 5, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (AHeadFX3, Heretic, -1, 0)
- PROP_RadiusFixed (14)
- PROP_HeightFixed (12)
- PROP_SpeedFixed (10)
- PROP_Damage (5)
- PROP_Flags (MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY)
- PROP_Flags2 (MF2_WINDTHRUST|MF2_NOTELEPORT)
- PROP_RenderStyle (STYLE_Add)
-
- PROP_SpawnState (S_HEADFX3)
- PROP_DeathState (S_HEADFXI3)
-END_DEFAULTS
-
-AT_SPEED_SET (HeadFX3, speed)
-{
- SimpleSpeedSetter (AHeadFX3, 10*FRACUNIT, 18*FRACUNIT, speed);
-}
-
-// Whirlwind ----------------------------------------------------------------
-
class AWhirlwind : public AActor
{
- DECLARE_ACTOR (AWhirlwind, AActor)
+ DECLARE_CLASS (AWhirlwind, AActor)
public:
int DoSpecialDamage (AActor *target, int damage);
};
-FState AWhirlwind::States[] =
-{
-#define S_HEADFX4 0
- S_NORMAL (FX07, 'D', 3, NULL , &States[S_HEADFX4+1]),
- S_NORMAL (FX07, 'E', 3, NULL , &States[S_HEADFX4+2]),
- S_NORMAL (FX07, 'F', 3, NULL , &States[S_HEADFX4+3]),
- S_NORMAL (FX07, 'G', 3, NULL , &States[S_HEADFX4+4]),
- S_NORMAL (FX07, 'A', 3, A_WhirlwindSeek , &States[S_HEADFX4+5]),
- S_NORMAL (FX07, 'B', 3, A_WhirlwindSeek , &States[S_HEADFX4+6]),
- S_NORMAL (FX07, 'C', 3, A_WhirlwindSeek , &States[S_HEADFX4+4]),
-
-#define S_HEADFXI4 (S_HEADFX4+7)
- S_NORMAL (FX07, 'G', 4, NULL , &States[S_HEADFXI4+1]),
- S_NORMAL (FX07, 'F', 4, NULL , &States[S_HEADFXI4+2]),
- S_NORMAL (FX07, 'E', 4, NULL , &States[S_HEADFXI4+3]),
- S_NORMAL (FX07, 'D', 4, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (AWhirlwind, Heretic, -1, 165)
- PROP_RadiusFixed (16)
- PROP_HeightFixed (74)
- PROP_SpeedFixed (10)
- PROP_Damage (1)
- PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY)
- PROP_Flags2 (MF2_NOTELEPORT|MF2_SEEKERMISSILE)
- PROP_Flags3 (MF3_EXPLOCOUNT)
- PROP_RenderStyle (STYLE_Translucent)
- PROP_Alpha (HR_SHADOW)
-
- PROP_SpawnState (S_HEADFX4)
- PROP_DeathState (S_HEADFXI4)
-END_DEFAULTS
+IMPLEMENT_CLASS(AWhirlwind)
int AWhirlwind::DoSpecialDamage (AActor *target, int damage)
{
@@ -309,18 +88,18 @@ void A_LichAttack (AActor *actor)
randAttack = pr_atk ();
if (randAttack < atkResolve1[dist])
{ // Ice ball
- P_SpawnMissile (actor, target, RUNTIME_CLASS(AHeadFX1));
+ P_SpawnMissile (actor, target, PClass::FindClass("HeadFX1"));
S_Sound (actor, CHAN_BODY, "ironlich/attack2", 1, ATTN_NORM);
}
else if (randAttack < atkResolve2[dist])
{ // Fire column
- baseFire = P_SpawnMissile (actor, target, RUNTIME_CLASS(AHeadFX3));
+ baseFire = P_SpawnMissile (actor, target, PClass::FindClass("HeadFX3"));
if (baseFire != NULL)
{
- baseFire->SetState (&AHeadFX3::States[S_HEADFX3+3]); // Don't grow
+ baseFire->SetState (baseFire->FindState("NoGrow"));
for (i = 0; i < 5; i++)
{
- fire = Spawn (baseFire->x, baseFire->y,
+ fire = Spawn("HeadFX3", baseFire->x, baseFire->y,
baseFire->z, ALLOW_REPLACE);
if (i == 0)
{
@@ -394,7 +173,7 @@ void A_LichIceImpact (AActor *ice)
for (i = 0; i < 8; i++)
{
- shard = Spawn (ice->x, ice->y, ice->z, ALLOW_REPLACE);
+ shard = Spawn("HeadFX2", ice->x, ice->y, ice->z, ALLOW_REPLACE);
angle = i*ANG45;
shard->target = ice->target;
shard->angle = angle;
@@ -419,7 +198,7 @@ void A_LichFireGrow (AActor *fire)
if (fire->health == 0)
{
fire->Damage = fire->GetDefault()->Damage;
- fire->SetState (&AHeadFX3::States[S_HEADFX3+3]);
+ fire->SetState (fire->FindState("NoGrow"));
}
}
diff --git a/src/g_heretic/a_knight.cpp b/src/g_heretic/a_knight.cpp
index 9879bd4f..c84da946 100644
--- a/src/g_heretic/a_knight.cpp
+++ b/src/g_heretic/a_knight.cpp
@@ -11,170 +11,6 @@
static FRandom pr_dripblood ("DripBlood");
static FRandom pr_knightatk ("KnightAttack");
-void A_KnightAttack (AActor *);
-void A_DripBlood (AActor *);
-void A_AxeSound (AActor *);
-
-// Knight -------------------------------------------------------------------
-
-class AKnight : public AActor
-{
- DECLARE_ACTOR (AKnight, AActor)
-public:
- void NoBlockingSet ();
-};
-
-FState AKnight::States[] =
-{
-#define S_KNIGHT_STND 0
- S_NORMAL (KNIG, 'A', 10, A_Look , &States[S_KNIGHT_STND+1]),
- S_NORMAL (KNIG, 'B', 10, A_Look , &States[S_KNIGHT_STND+0]),
-
-#define S_KNIGHT_WALK (S_KNIGHT_STND+2)
- S_NORMAL (KNIG, 'A', 4, A_Chase , &States[S_KNIGHT_WALK+1]),
- S_NORMAL (KNIG, 'B', 4, A_Chase , &States[S_KNIGHT_WALK+2]),
- S_NORMAL (KNIG, 'C', 4, A_Chase , &States[S_KNIGHT_WALK+3]),
- S_NORMAL (KNIG, 'D', 4, A_Chase , &States[S_KNIGHT_WALK+0]),
-
-#define S_KNIGHT_ATK (S_KNIGHT_WALK+4)
- S_NORMAL (KNIG, 'E', 10, A_FaceTarget , &States[S_KNIGHT_ATK+1]),
- S_NORMAL (KNIG, 'F', 8, A_FaceTarget , &States[S_KNIGHT_ATK+2]),
- S_NORMAL (KNIG, 'G', 8, A_KnightAttack , &States[S_KNIGHT_ATK+3]),
- S_NORMAL (KNIG, 'E', 10, A_FaceTarget , &States[S_KNIGHT_ATK+4]),
- S_NORMAL (KNIG, 'F', 8, A_FaceTarget , &States[S_KNIGHT_ATK+5]),
- S_NORMAL (KNIG, 'G', 8, A_KnightAttack , &States[S_KNIGHT_WALK+0]),
-
-#define S_KNIGHT_PAIN (S_KNIGHT_ATK+6)
- S_NORMAL (KNIG, 'H', 3, NULL , &States[S_KNIGHT_PAIN+1]),
- S_NORMAL (KNIG, 'H', 3, A_Pain , &States[S_KNIGHT_WALK+0]),
-
-#define S_KNIGHT_DIE (S_KNIGHT_PAIN+2)
- S_NORMAL (KNIG, 'I', 6, NULL , &States[S_KNIGHT_DIE+1]),
- S_NORMAL (KNIG, 'J', 6, A_Scream , &States[S_KNIGHT_DIE+2]),
- S_NORMAL (KNIG, 'K', 6, NULL , &States[S_KNIGHT_DIE+3]),
- S_NORMAL (KNIG, 'L', 6, A_NoBlocking , &States[S_KNIGHT_DIE+4]),
- S_NORMAL (KNIG, 'M', 6, NULL , &States[S_KNIGHT_DIE+5]),
- S_NORMAL (KNIG, 'N', 6, NULL , &States[S_KNIGHT_DIE+6]),
- S_NORMAL (KNIG, 'O', -1, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (AKnight, Heretic, 64, 6)
- PROP_SpawnHealth (200)
- PROP_RadiusFixed (24)
- PROP_HeightFixed (78)
- PROP_Mass (150)
- PROP_SpeedFixed (12)
- PROP_PainChance (100)
- PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_COUNTKILL)
- PROP_Flags2 (MF2_MCROSS|MF2_FLOORCLIP|MF2_PASSMOBJ|MF2_PUSHWALL)
-
- PROP_SpawnState (S_KNIGHT_STND)
- PROP_SeeState (S_KNIGHT_WALK)
- PROP_PainState (S_KNIGHT_PAIN)
- PROP_MeleeState (S_KNIGHT_ATK)
- PROP_MissileState (S_KNIGHT_ATK)
- PROP_DeathState (S_KNIGHT_DIE)
-
- PROP_SeeSound ("hknight/sight")
- PROP_AttackSound ("hknight/attack")
- PROP_PainSound ("hknight/pain")
- PROP_DeathSound ("hknight/death")
- PROP_ActiveSound ("hknight/active")
- PROP_Obituary("$OB_BONEKNIGHT")
- PROP_HitObituary("$OB_BONEKNIGHTHIT")
-END_DEFAULTS
-
-void AKnight::NoBlockingSet ()
-{
- P_DropItem (this, "CrossbowAmmo", 5, 84);
-}
-
-// Knight ghost -------------------------------------------------------------
-
-class AKnightGhost : public AKnight
-{
- DECLARE_STATELESS_ACTOR (AKnightGhost, AKnight)
-};
-
-IMPLEMENT_STATELESS_ACTOR (AKnightGhost, Heretic, 65, 129)
- PROP_FlagsSet (MF_SHADOW)
- PROP_Flags3 (MF3_GHOST)
- PROP_RenderStyle (STYLE_Translucent)
- PROP_Alpha (HR_SHADOW)
-END_DEFAULTS
-
-// Knight axe ---------------------------------------------------------------
-
-class AKnightAxe : public AActor
-{
- DECLARE_ACTOR (AKnightAxe, AActor)
-};
-
-FState AKnightAxe::States[] =
-{
-#define S_SPINAXE 0
- S_BRIGHT (SPAX, 'A', 3, A_AxeSound , &States[S_SPINAXE+1]),
- S_BRIGHT (SPAX, 'B', 3, NULL , &States[S_SPINAXE+2]),
- S_BRIGHT (SPAX, 'C', 3, NULL , &States[S_SPINAXE+0]),
-
-#define S_SPINAXEX (S_SPINAXE+3)
- S_BRIGHT (SPAX, 'D', 6, NULL , &States[S_SPINAXEX+1]),
- S_BRIGHT (SPAX, 'E', 6, NULL , &States[S_SPINAXEX+2]),
- S_BRIGHT (SPAX, 'F', 6, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (AKnightAxe, Heretic, -1, 127)
- PROP_RadiusFixed (10)
- PROP_HeightFixed (8)
- PROP_SpeedFixed (9)
- PROP_Damage (2)
- PROP_Flags (MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY)
- PROP_Flags2 (MF2_WINDTHRUST|MF2_NOTELEPORT|MF2_THRUGHOST)
-
- PROP_SpawnState (S_SPINAXE)
- PROP_DeathState (S_SPINAXEX)
-
- PROP_DeathSound ("hknight/hit")
-END_DEFAULTS
-
-AT_SPEED_SET (KnightAxe, speed)
-{
- SimpleSpeedSetter (AKnightAxe, 9*FRACUNIT, 18*FRACUNIT, speed);
-}
-
-// Red axe ------------------------------------------------------------------
-
-class ARedAxe : public AKnightAxe
-{
- DECLARE_ACTOR (ARedAxe, AKnightAxe)
-};
-
-FState ARedAxe::States[] =
-{
-#define S_REDAXE 0
- S_BRIGHT (RAXE, 'A', 5, A_DripBlood , &States[S_REDAXE+1]),
- S_BRIGHT (RAXE, 'B', 5, A_DripBlood , &States[S_REDAXE+0]),
-
-#define S_REDAXEX (S_REDAXE+2)
- S_BRIGHT (RAXE, 'C', 6, NULL , &States[S_REDAXEX+1]),
- S_BRIGHT (RAXE, 'D', 6, NULL , &States[S_REDAXEX+2]),
- S_BRIGHT (RAXE, 'E', 6, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (ARedAxe, Heretic, -1, 128)
- PROP_Damage (7)
- PROP_FlagsSet (MF_NOBLOCKMAP)
- PROP_Flags2Clear (MF2_WINDTHRUST)
-
- PROP_SpawnState (S_REDAXE)
- PROP_DeathState (S_REDAXEX)
-END_DEFAULTS
-
-AT_SPEED_SET (RedAxe, speed)
-{
- SimpleSpeedSetter (ARedAxe, 9*FRACUNIT, 18*FRACUNIT, speed);
-}
-
//----------------------------------------------------------------------------
//
// PROC A_DripBlood
@@ -218,20 +54,10 @@ void A_KnightAttack (AActor *actor)
S_Sound (actor, CHAN_BODY, actor->AttackSound, 1, ATTN_NORM);
if (actor->flags & MF_SHADOW || pr_knightatk () < 40)
{ // Red axe
- P_SpawnMissileZ (actor, actor->z + 36*FRACUNIT, actor->target, RUNTIME_CLASS(ARedAxe));
+ P_SpawnMissileZ (actor, actor->z + 36*FRACUNIT, actor->target, PClass::FindClass("RedAxe"));
return;
}
// Green axe
- P_SpawnMissileZ (actor, actor->z + 36*FRACUNIT, actor->target, RUNTIME_CLASS(AKnightAxe));
+ P_SpawnMissileZ (actor, actor->z + 36*FRACUNIT, actor->target, PClass::FindClass("KnightAxe"));
}
-//---------------------------------------------------------------------------
-//
-// PROC A_AxeSound
-//
-//---------------------------------------------------------------------------
-
-void A_AxeSound (AActor *actor)
-{
- S_Sound (actor, CHAN_BODY, "hknight/axewhoosh", 1, ATTN_NORM);
-}
diff --git a/src/g_heretic/a_wizard.cpp b/src/g_heretic/a_wizard.cpp
index b3f1f59a..d35ab053 100644
--- a/src/g_heretic/a_wizard.cpp
+++ b/src/g_heretic/a_wizard.cpp
@@ -10,126 +10,6 @@
static FRandom pr_wizatk3 ("WizAtk3");
-void A_WizAtk1 (AActor *);
-void A_WizAtk2 (AActor *);
-void A_WizAtk3 (AActor *);
-void A_GhostOff (AActor *);
-
-// Class definitions --------------------------------------------------------
-
-FState AWizard::States[] =
-{
-#define S_WIZARD_LOOK 0
- S_NORMAL (WZRD, 'A', 10, A_Look , &States[S_WIZARD_LOOK+1]),
- S_NORMAL (WZRD, 'B', 10, A_Look , &States[S_WIZARD_LOOK+0]),
-
-#define S_WIZARD_WALK (S_WIZARD_LOOK+2)
- S_NORMAL (WZRD, 'A', 3, A_Chase , &States[S_WIZARD_WALK+1]),
- S_NORMAL (WZRD, 'A', 4, A_Chase , &States[S_WIZARD_WALK+2]),
- S_NORMAL (WZRD, 'A', 3, A_Chase , &States[S_WIZARD_WALK+3]),
- S_NORMAL (WZRD, 'A', 4, A_Chase , &States[S_WIZARD_WALK+4]),
- S_NORMAL (WZRD, 'B', 3, A_Chase , &States[S_WIZARD_WALK+5]),
- S_NORMAL (WZRD, 'B', 4, A_Chase , &States[S_WIZARD_WALK+6]),
- S_NORMAL (WZRD, 'B', 3, A_Chase , &States[S_WIZARD_WALK+7]),
- S_NORMAL (WZRD, 'B', 4, A_Chase , &States[S_WIZARD_WALK+0]),
-
-#define S_WIZARD_ATK (S_WIZARD_WALK+8)
- S_NORMAL (WZRD, 'C', 4, A_WizAtk1 , &States[S_WIZARD_ATK+1]),
- S_NORMAL (WZRD, 'C', 4, A_WizAtk2 , &States[S_WIZARD_ATK+2]),
- S_NORMAL (WZRD, 'C', 4, A_WizAtk1 , &States[S_WIZARD_ATK+3]),
- S_NORMAL (WZRD, 'C', 4, A_WizAtk2 , &States[S_WIZARD_ATK+4]),
- S_NORMAL (WZRD, 'C', 4, A_WizAtk1 , &States[S_WIZARD_ATK+5]),
- S_NORMAL (WZRD, 'C', 4, A_WizAtk2 , &States[S_WIZARD_ATK+6]),
- S_NORMAL (WZRD, 'C', 4, A_WizAtk1 , &States[S_WIZARD_ATK+7]),
- S_NORMAL (WZRD, 'C', 4, A_WizAtk2 , &States[S_WIZARD_ATK+8]),
- S_NORMAL (WZRD, 'D', 12, A_WizAtk3 , &States[S_WIZARD_WALK+0]),
-
-#define S_WIZARD_PAIN (S_WIZARD_ATK+9)
- S_NORMAL (WZRD, 'E', 3, A_GhostOff , &States[S_WIZARD_PAIN+1]),
- S_NORMAL (WZRD, 'E', 3, A_Pain , &States[S_WIZARD_WALK+0]),
-
-#define S_WIZARD_DIE (S_WIZARD_PAIN+2)
- S_NORMAL (WZRD, 'F', 6, A_GhostOff , &States[S_WIZARD_DIE+1]),
- S_NORMAL (WZRD, 'G', 6, A_Scream , &States[S_WIZARD_DIE+2]),
- S_NORMAL (WZRD, 'H', 6, NULL , &States[S_WIZARD_DIE+3]),
- S_NORMAL (WZRD, 'I', 6, NULL , &States[S_WIZARD_DIE+4]),
- S_NORMAL (WZRD, 'J', 6, A_NoBlocking , &States[S_WIZARD_DIE+5]),
- S_NORMAL (WZRD, 'K', 6, NULL , &States[S_WIZARD_DIE+6]),
- S_NORMAL (WZRD, 'L', 6, NULL , &States[S_WIZARD_DIE+7]),
- S_NORMAL (WZRD, 'M', -1, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (AWizard, Heretic, 15, 19)
- PROP_SpawnHealth (180)
- PROP_RadiusFixed (16)
- PROP_HeightFixed (68)
- PROP_Mass (100)
- PROP_SpeedFixed (12)
- PROP_PainChance (64)
- PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_COUNTKILL|MF_FLOAT|MF_NOGRAVITY)
- PROP_Flags2 (MF2_MCROSS|MF2_PASSMOBJ|MF2_PUSHWALL)
- PROP_Flags3 (MF3_DONTOVERLAP)
-
- PROP_SpawnState (S_WIZARD_LOOK)
- PROP_SeeState (S_WIZARD_WALK)
- PROP_PainState (S_WIZARD_PAIN)
- PROP_MissileState (S_WIZARD_ATK)
- PROP_DeathState (S_WIZARD_DIE)
-
- PROP_SeeSound ("wizard/sight")
- PROP_AttackSound ("wizard/attack")
- PROP_PainSound ("wizard/pain")
- PROP_DeathSound ("wizard/death")
- PROP_ActiveSound ("wizard/active")
- PROP_Obituary("$OB_WIZARD")
- PROP_HitObituary("$OB_WIZARDHIT")
-END_DEFAULTS
-
-void AWizard::NoBlockingSet ()
-{
- P_DropItem (this, "BlasterAmmo", 10, 84);
- P_DropItem (this, "ArtiTomeOfPower", 0, 4);
-}
-
-class AWizardFX1 : public AActor
-{
- DECLARE_ACTOR (AWizardFX1, AActor)
-};
-
-FState AWizardFX1::States[] =
-{
-#define S_WIZFX1 0
- S_BRIGHT (FX11, 'A', 6, NULL , &States[S_WIZFX1+1]),
- S_BRIGHT (FX11, 'B', 6, NULL , &States[S_WIZFX1+0]),
-
-#define S_WIZFXI1 (S_WIZFX1+2)
- S_BRIGHT (FX11, 'C', 5, NULL , &States[S_WIZFXI1+1]),
- S_BRIGHT (FX11, 'D', 5, NULL , &States[S_WIZFXI1+2]),
- S_BRIGHT (FX11, 'E', 5, NULL , &States[S_WIZFXI1+3]),
- S_BRIGHT (FX11, 'F', 5, NULL , &States[S_WIZFXI1+4]),
- S_BRIGHT (FX11, 'G', 5, NULL , NULL)
-};
-
-IMPLEMENT_ACTOR (AWizardFX1, Heretic, -1, 140)
- PROP_RadiusFixed (10)
- PROP_HeightFixed (6)
- PROP_SpeedFixed (18)
- PROP_Damage (3)
- PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY)
- PROP_Flags2 (MF2_NOTELEPORT)
- PROP_RenderStyle (STYLE_Add)
-
- PROP_SpawnState (S_WIZFX1)
- PROP_DeathState (S_WIZFXI1)
-END_DEFAULTS
-
-AT_SPEED_SET (WizardFX1, speed)
-{
- SimpleSpeedSetter (AWizardFX1, 18*FRACUNIT, 24*FRACUNIT, speed);
-}
-
-// --- Action functions -----------------------------------------------------
-
//----------------------------------------------------------------------------
//
// PROC A_GhostOff
@@ -191,10 +71,11 @@ void A_WizAtk3 (AActor *actor)
P_TraceBleed (damage, actor->target, actor);
return;
}
- mo = P_SpawnMissile (actor, actor->target, RUNTIME_CLASS(AWizardFX1));
+ const PClass *fx = PClass::FindClass("WizardFX1");
+ mo = P_SpawnMissile (actor, actor->target, fx);
if (mo != NULL)
{
- P_SpawnMissileAngle(actor, RUNTIME_CLASS(AWizardFX1), mo->angle-(ANG45/8), mo->momz);
- P_SpawnMissileAngle(actor, RUNTIME_CLASS(AWizardFX1), mo->angle+(ANG45/8), mo->momz);
+ P_SpawnMissileAngle(actor, fx, mo->angle-(ANG45/8), mo->momz);
+ P_SpawnMissileAngle(actor, fx, mo->angle+(ANG45/8), mo->momz);
}
}
diff --git a/src/g_level.cpp b/src/g_level.cpp
index cf533709..528e3672 100644
--- a/src/g_level.cpp
+++ b/src/g_level.cpp
@@ -780,12 +780,18 @@ static void G_DoParseMapInfo (int lump)
break;
case MITL_MAP: // map
+ {
+ char maptemp[8];
+ char *mapname;
+
levelflags = defaultinfo.flags;
sc.MustGetString ();
- if (IsNum (sc.String))
+ mapname = sc.String;
+ if (IsNum (mapname))
{ // MAPNAME is a number; assume a Hexen wad
- int map = atoi (sc.String);
- sprintf (sc.String, "MAP%02d", map);
+ int mapnum = atoi (mapname);
+ mysnprintf (maptemp, countof(maptemp), "MAP%02d", mapnum);
+ mapname = maptemp;
HexenHack = true;
// Hexen levels are automatically nointermission,
// no auto sound sequences, falling damage,
@@ -800,7 +806,7 @@ static void G_DoParseMapInfo (int lump)
| LEVEL_MONSTERFALLINGDAMAGE
| LEVEL_HEXENHACK;
}
- levelindex = FindWadLevelInfo (sc.String);
+ levelindex = FindWadLevelInfo (mapname);
if (levelindex == -1)
{
levelindex = wadlevelinfos.Reserve(1);
@@ -824,13 +830,13 @@ static void G_DoParseMapInfo (int lump)
{
levelinfo->WallHorizLight = levelinfo->WallVertLight = 0;
}
- uppercopy (levelinfo->mapname, sc.String);
+ uppercopy (levelinfo->mapname, mapname);
sc.MustGetString ();
if (sc.String[0] == '$')
{
// For consistency with other definitions allow $Stringtablename here, too.
levelflags |= LEVEL_LOOKUPLEVELNAME;
- ReplaceString (&levelinfo->level_name, sc.String+1);
+ ReplaceString (&levelinfo->level_name, sc.String + 1);
}
else
{
@@ -874,6 +880,7 @@ static void G_DoParseMapInfo (int lump)
}
}
break;
+ }
case MITL_CLUSTERDEF: // clusterdef
sc.MustGetNumber ();
@@ -999,22 +1006,26 @@ static void ParseMapInfoLower (FScanner &sc,
case MITYPE_MAPNAME: {
EndSequence newSeq;
bool useseq = false;
+ char maptemp[8];
+ char *mapname;
sc.MustGetString ();
- if (IsNum (sc.String))
+ mapname = sc.String;
+ if (IsNum (mapname))
{
- int map = atoi (sc.String);
+ int mapnum = atoi (mapname);
if (HexenHack)
{
- sprintf (sc.String, "&wt@%02d", map);
+ mysnprintf (maptemp, countof(maptemp), "&wt@%02d", mapnum);
}
else
{
- sprintf (sc.String, "MAP%02d", map);
+ mysnprintf (maptemp, countof(maptemp), "MAP%02d", mapnum);
}
+ mapname = maptemp;
}
- if (sc.Compare ("endgame"))
+ if (stricmp (mapname, "endgame") == 0)
{
newSeq.Advanced = true;
newSeq.EndType = END_Pic1;
@@ -1064,7 +1075,7 @@ static void ParseMapInfoLower (FScanner &sc,
}
useseq = true;
}
- else if (strnicmp (sc.String, "EndGame", 7) == 0)
+ else if (strnicmp (mapname, "EndGame", 7) == 0)
{
int type;
switch (sc.String[7])
@@ -1080,46 +1091,46 @@ static void ParseMapInfoLower (FScanner &sc,
newSeq.EndType = type;
useseq = true;
}
- else if (sc.Compare ("endpic"))
+ else if (stricmp (mapname, "endpic") == 0)
{
sc.MustGetString ();
newSeq.EndType = END_Pic;
newSeq.PicName = sc.String;
useseq = true;
}
- else if (sc.Compare ("endbunny"))
+ else if (stricmp (mapname, "endbunny") == 0)
{
newSeq.EndType = END_Bunny;
useseq = true;
}
- else if (sc.Compare ("endcast"))
+ else if (stricmp (mapname, "endcast") == 0)
{
newSeq.EndType = END_Cast;
useseq = true;
}
- else if (sc.Compare ("enddemon"))
+ else if (stricmp (mapname, "enddemon") == 0)
{
newSeq.EndType = END_Demon;
useseq = true;
}
- else if (sc.Compare ("endchess"))
+ else if (stricmp (mapname, "endchess") == 0)
{
newSeq.EndType = END_Chess;
useseq = true;
}
- else if (sc.Compare ("endunderwater"))
+ else if (stricmp (mapname, "endunderwater") == 0)
{
newSeq.EndType = END_Underwater;
useseq = true;
}
- else if (sc.Compare ("endbuystrife"))
+ else if (stricmp (mapname, "endbuystrife") == 0)
{
newSeq.EndType = END_BuyStrife;
useseq = true;
}
else
{
- strncpy ((char *)(info + handler->data1), sc.String, 8);
+ strncpy ((char *)(info + handler->data1), mapname, 8);
}
if (useseq)
{
@@ -1550,26 +1561,22 @@ void P_RemoveDefereds (void)
}
}
-bool CheckWarpTransMap (char mapname[9], bool substitute)
+bool CheckWarpTransMap (FString &mapname, bool substitute)
{
- if (mapname[0] == '&' && (mapname[1]&223) == 'W' &&
- (mapname[2]&223) == 'T' && mapname[3] == '@')
+ if (mapname[0] == '&' && (mapname[1] & 0xDF) == 'W' &&
+ (mapname[2] & 0xDF) == 'T' && mapname[3] == '@')
{
- level_info_t *lev = FindLevelByWarpTrans (atoi (mapname + 4));
+ level_info_t *lev = FindLevelByWarpTrans (atoi (&mapname[4]));
if (lev != NULL)
{
- strncpy (mapname, lev->mapname, 8);
- mapname[8] = 0;
+ mapname = lev->mapname;
return true;
}
else if (substitute)
{
- mapname[0] = 'M';
- mapname[1] = 'A';
- mapname[2] = 'P';
- mapname[3] = mapname[4];
- mapname[4] = mapname[5];
- mapname[5] = 0;
+ char a = mapname[4], b = mapname[5];
+ mapname = "MAP";
+ mapname << a << b;
}
}
return false;
@@ -1580,12 +1587,12 @@ bool CheckWarpTransMap (char mapname[9], bool substitute)
// Can be called by the startup code or the menu task,
// consoleplayer, playeringame[] should be set.
//
-static char d_mapname[256];
+static FString d_mapname;
static int d_skill=-1;
void G_DeferedInitNew (const char *mapname, int newskill)
{
- strncpy (d_mapname, mapname, 8);
+ d_mapname = mapname;
d_skill = newskill;
CheckWarpTransMap (d_mapname, true);
gameaction = ga_newgame2;
@@ -1625,10 +1632,11 @@ CCMD (open)
}
if (argv.argc() > 1)
{
- sprintf(d_mapname, "file:%s", argv[1]);
+ d_mapname = "file:";
+ d_mapname += argv[1];
if (!P_CheckMapData(d_mapname))
{
- Printf ("No map %s\n", d_mapname);
+ Printf ("No map %s\n", d_mapname.GetChars());
}
else
{
@@ -1679,7 +1687,10 @@ void G_DoNewGame (void)
{
G_NewInit ();
playeringame[consoleplayer] = 1;
- if (d_skill != -1) gameskill = d_skill;
+ if (d_skill != -1)
+ {
+ gameskill = d_skill;
+ }
G_InitNew (d_mapname, false);
gameaction = ga_nothing;
}
@@ -2004,34 +2015,30 @@ void G_DoCompleted (void)
AM_Stop ();
wminfo.finished_ep = level.cluster - 1;
- strncpy (wminfo.lname0, level.info->pname, 8);
- strncpy (wminfo.current, level.mapname, 8);
+ wminfo.lname0 = level.info->pname;
+ wminfo.current = level.mapname;
if (deathmatch &&
(dmflags & DF_SAME_LEVEL) &&
!(level.flags & LEVEL_CHANGEMAPCHEAT))
{
- strncpy (wminfo.next, level.mapname, 8);
- strncpy (wminfo.lname1, level.info->pname, 8);
+ wminfo.next = level.mapname;
+ wminfo.lname1 = level.info->pname;
}
else
{
if (strncmp (nextlevel, "enDSeQ", 6) == 0)
{
- strncpy (wminfo.next, nextlevel, 8);
- wminfo.lname1[0] = 0;
+ wminfo.next = FString(nextlevel, 8);
+ wminfo.lname1 = "";
}
else
{
level_info_t *nextinfo = FindLevelInfo (nextlevel);
- strncpy (wminfo.next, nextinfo->mapname, 8);
- strncpy (wminfo.lname1, nextinfo->pname, 8);
+ wminfo.next = nextinfo->mapname;
+ wminfo.lname1 = nextinfo->pname;
}
}
- wminfo.next[8]=0;
- wminfo.lname0[8]=0;
- wminfo.lname1[8]=0;
- wminfo.current[8]=0;
CheckWarpTransMap (wminfo.next, true);
@@ -2632,21 +2639,18 @@ bool FLevelLocals::IsFreelookAllowed() const
return !(dmflags & DF_NO_FREELOOK);
}
-char *CalcMapName (int episode, int level)
+FString CalcMapName (int episode, int level)
{
- static char lumpname[9];
+ FString lumpname;
if (gameinfo.flags & GI_MAPxx)
{
- sprintf (lumpname, "MAP%02d", level);
+ lumpname.Format("MAP%02d", level);
}
else
{
- lumpname[0] = 'E';
- lumpname[1] = '0' + episode;
- lumpname[2] = 'M';
- lumpname[3] = '0' + level;
- lumpname[4] = 0;
+ lumpname = "";
+ lumpname << 'E' << ('0' + episode) << 'M' << ('0' + level);
}
return lumpname;
}
@@ -2745,11 +2749,11 @@ const char *G_MaybeLookupLevelName (level_info_t *ininfo)
// Strip out the header from the localized string
if (info->mapname[0] == 'E' && info->mapname[2] == 'M')
{
- sprintf (checkstring, "%s: ", info->mapname);
+ mysnprintf (checkstring, countof(checkstring), "%s: ", info->mapname);
}
else if (info->mapname[0] == 'M' && info->mapname[1] == 'A' && info->mapname[2] == 'P')
{
- sprintf (checkstring, "%d: ", atoi(info->mapname + 3));
+ mysnprintf (checkstring, countof(checkstring), "%d: ", atoi(info->mapname + 3));
}
thename = strstr (lookedup, checkstring);
if (thename == NULL)
diff --git a/src/g_level.h b/src/g_level.h
index 1367a660..6da01a8f 100644
--- a/src/g_level.h
+++ b/src/g_level.h
@@ -356,7 +356,7 @@ extern FWorldGlobalArray ACS_GlobalArrays[NUM_GLOBALVARS];
extern bool savegamerestore;
// mapname will be changed if it is a valid warptrans
-bool CheckWarpTransMap (char mapname[9], bool substitute);
+bool CheckWarpTransMap (FString &mapname, bool substitute);
void G_InitNew (const char *mapname, bool bTitleLevel);
@@ -391,7 +391,7 @@ level_info_t *FindLevelInfo (const char *mapname);
level_info_t *FindLevelByNum (int num);
level_info_t *CheckLevelRedirect (level_info_t *info);
-char *CalcMapName (int episode, int level);
+FString CalcMapName (int episode, int level);
void G_ParseMapInfo (void);
void G_UnloadMapInfo ();
diff --git a/src/g_raven/a_minotaur.cpp b/src/g_raven/a_minotaur.cpp
index 87669e90..b9625a2f 100644
--- a/src/g_raven/a_minotaur.cpp
+++ b/src/g_raven/a_minotaur.cpp
@@ -110,7 +110,7 @@ FState AMinotaur::States[] =
S_NORMAL (MNTR, 'E', 5, NULL , &States[S_MNTR_FADEOUT+6]),
S_NORMAL (MNTR, 'E', 5, A_MinotaurFade1 , &States[S_MNTR_FADEOUT+7]),
S_NORMAL (MNTR, 'E', 5, A_MinotaurFade0 , &States[S_MNTR_FADEOUT+8]),
- S_NORMAL (MNTR, 'E', 10, NULL , NULL),
+ S_NORMAL (MNTR, 'E', 10, A_BossDeath , NULL),
};
IMPLEMENT_ACTOR (AMinotaur, Heretic, 9, 0)
@@ -124,6 +124,7 @@ IMPLEMENT_ACTOR (AMinotaur, Heretic, 9, 0)
PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_COUNTKILL|MF_DROPOFF)
PROP_Flags2 (MF2_FLOORCLIP|MF2_PASSMOBJ|MF2_BOSS|MF2_PUSHWALL)
PROP_Flags3 (MF3_NORADIUSDMG|MF3_DONTMORPH|MF3_NOTARGET)
+ PROP_Flags4 (MF4_BOSSDEATH)
PROP_SpawnState (S_MNTR_LOOK)
PROP_SeeState (S_MNTR_WALK)
diff --git a/src/g_shared/a_debris.cpp b/src/g_shared/a_debris.cpp
index a04fe273..2d52c45b 100644
--- a/src/g_shared/a_debris.cpp
+++ b/src/g_shared/a_debris.cpp
@@ -41,7 +41,7 @@ void P_SpawnDirt (AActor *actor, fixed_t radius)
z = actor->z + (pr_dirt()<<9) + FRACUNIT;
char fmt[8];
- sprintf(fmt, "Dirt%d", 1 + pr_dirt()%6);
+ mysnprintf(fmt, countof(fmt), "Dirt%d", 1 + pr_dirt()%6);
dtype = PClass::FindClass(fmt);
if (dtype)
{
diff --git a/src/g_shared/a_morph.cpp b/src/g_shared/a_morph.cpp
index fd20fa8d..9f910be7 100644
--- a/src/g_shared/a_morph.cpp
+++ b/src/g_shared/a_morph.cpp
@@ -151,12 +151,15 @@ bool P_MorphPlayer (player_t *activator, player_t *p, const PClass *spawntype, i
// taking events, set up the face, if any;
// this is only needed for old-skool skins
// and for the original DOOM status bar.
- if ((p == &players[consoleplayer]) &&
- (strcmp(spawntype->Meta.GetMetaString (APMETA_Face), "None") != 0))
+ if (p == &players[consoleplayer])
{
- StatusBar->SetFace(&skins[p->MorphedPlayerClass]);
- }
+ const char *face = spawntype->Meta.GetMetaString (APMETA_Face);
+ if (face != NULL && strcmp(face, "None") != 0)
+ {
+ StatusBar->SetFace(&skins[p->MorphedPlayerClass]);
+ }
+ }
return true;
}
diff --git a/src/g_shared/a_weapons.cpp b/src/g_shared/a_weapons.cpp
index 1303f3ec..1571ec69 100644
--- a/src/g_shared/a_weapons.cpp
+++ b/src/g_shared/a_weapons.cpp
@@ -922,7 +922,8 @@ CCMD (weaponsection)
tackOn = fullSection + 4;
}
- sprintf (tackOn, ".%s.WeaponSlots", WeaponSection.GetChars());
+ mysnprintf (tackOn, countof(fullSection) - (tackOn - fullSection),
+ ".%s.WeaponSlots", WeaponSection.GetChars());
if (GameConfig->SetSection (fullSection))
{
LocalWeapons.RestoreSlots (*GameConfig);
@@ -1032,7 +1033,7 @@ void FWeaponSlots::SaveSlots (FConfigFile &config)
}
if (index > 0)
{
- sprintf (keyname, "Slot[%d]", i);
+ mysnprintf (keyname, countof(keyname), "Slot[%d]", i);
config.SetValueForKey (keyname, buff);
}
}
diff --git a/src/g_shared/shared_hud.cpp b/src/g_shared/shared_hud.cpp
index ab882dc7..680d34e0 100644
--- a/src/g_shared/shared_hud.cpp
+++ b/src/g_shared/shared_hud.cpp
@@ -179,7 +179,7 @@ static void DrawHudNumber(int color, int num, int x, int y, int trans=0xc000)
{
char text[15];
- sprintf(text, "%d", num);
+ mysnprintf(text, countof(text), "%d", num);
DrawHudText(color, text, x, y, trans);
}
@@ -206,7 +206,7 @@ static void DrawStatus(player_t * CPlayer, int x, int y)
DTA_KeepRatio, true,
DTA_VirtualWidth, hudwidth, DTA_VirtualHeight, hudheight, DTA_Alpha, 0xc000, TAG_DONE);
- sprintf(tempstr, "%i ", CPlayer->accuracy);
+ mysnprintf(tempstr, countof(tempstr), "%i ", CPlayer->accuracy);
screen->DrawText(hudcolor_stats, x+space, y, tempstr,
DTA_KeepRatio, true,
DTA_VirtualWidth, hudwidth, DTA_VirtualHeight, hudheight, DTA_Alpha, 0xc000, TAG_DONE);
@@ -216,7 +216,7 @@ static void DrawStatus(player_t * CPlayer, int x, int y)
DTA_KeepRatio, true,
DTA_VirtualWidth, hudwidth, DTA_VirtualHeight, hudheight, DTA_Alpha, 0xc000, TAG_DONE);
- sprintf(tempstr, "%i ", CPlayer->stamina);
+ mysnprintf(tempstr, countof(tempstr), "%i ", CPlayer->stamina);
screen->DrawText(hudcolor_stats, x+space, y, tempstr,
DTA_KeepRatio, true,
DTA_VirtualWidth, hudwidth, DTA_VirtualHeight, hudheight, DTA_Alpha, 0xc000, TAG_DONE);
@@ -235,7 +235,7 @@ static void DrawStatus(player_t * CPlayer, int x, int y)
DTA_KeepRatio, true,
DTA_VirtualWidth, hudwidth, DTA_VirtualHeight, hudheight, DTA_Alpha, 0xc000, TAG_DONE);
- sprintf(tempstr, "%i/%i ", multiplayer? CPlayer->secretcount : level.found_secrets, level.total_secrets);
+ mysnprintf(tempstr, countof(tempstr), "%i/%i ", multiplayer? CPlayer->secretcount : level.found_secrets, level.total_secrets);
screen->DrawText(hudcolor_stats, x+space, y, tempstr,
DTA_KeepRatio, true,
DTA_VirtualWidth, hudwidth, DTA_VirtualHeight, hudheight, DTA_Alpha, 0xc000, TAG_DONE);
@@ -248,7 +248,7 @@ static void DrawStatus(player_t * CPlayer, int x, int y)
DTA_KeepRatio, true,
DTA_VirtualWidth, hudwidth, DTA_VirtualHeight, hudheight, DTA_Alpha, 0xc000, TAG_DONE);
- sprintf(tempstr, "%i/%i ", multiplayer? CPlayer->itemcount : level.found_items, level.total_items);
+ mysnprintf(tempstr, countof(tempstr), "%i/%i ", multiplayer? CPlayer->itemcount : level.found_items, level.total_items);
screen->DrawText(hudcolor_stats, x+space, y, tempstr,
DTA_KeepRatio, true,
DTA_VirtualWidth, hudwidth, DTA_VirtualHeight, hudheight, DTA_Alpha, 0xc000, TAG_DONE);
@@ -261,7 +261,7 @@ static void DrawStatus(player_t * CPlayer, int x, int y)
DTA_KeepRatio, true,
DTA_VirtualWidth, hudwidth, DTA_VirtualHeight, hudheight, DTA_Alpha, 0xc000, TAG_DONE);
- sprintf(tempstr, "%i/%i ", multiplayer? CPlayer->killcount : level.killed_monsters, level.total_monsters);
+ mysnprintf(tempstr, countof(tempstr), "%i/%i ", multiplayer? CPlayer->killcount : level.killed_monsters, level.total_monsters);
screen->DrawText(hudcolor_stats, x+space, y, tempstr,
DTA_KeepRatio, true,
DTA_VirtualWidth, hudwidth, DTA_VirtualHeight, hudheight, DTA_Alpha, 0xc000, TAG_DONE);
@@ -548,7 +548,7 @@ static int DrawAmmo(player_t * CPlayer, int x, int y)
int maxammo = inv->MaxAmount;
int ammo = ammoitem? ammoitem->Amount : 0;
- sprintf(buf,"%3d/%3d", ammo,maxammo);
+ mysnprintf(buf, countof(buf), "%3d/%3d", ammo, maxammo);
int tex_width= clamp(ConFont->StringWidth(buf)-def_width, 0, 1000);
@@ -692,7 +692,7 @@ static void DrawInventory(player_t * CPlayer, int x,int y)
{
char buffer[10];
int xx;
- sprintf(buffer,"%d",rover->Amount);
+ mysnprintf(buffer, countof(buffer), "%d", rover->Amount);
if (rover->Amount>=1000) xx = 32 - IndexFont->StringWidth(buffer);
else xx = 22;
@@ -764,17 +764,17 @@ static void DrawCoordinates(player_t * CPlayer)
int xpos = vwidth - SmallFont->StringWidth("X: -00000")-6;
int ypos = 18;
- sprintf(coordstr, "X: %d", x>>FRACBITS);
+ mysnprintf(coordstr, countof(coordstr), "X: %d", x>>FRACBITS);
screen->DrawText(hudcolor_xyco, xpos, ypos, coordstr,
DTA_KeepRatio, true,
DTA_VirtualWidth, vwidth, DTA_VirtualHeight, vheight, TAG_DONE);
- sprintf(coordstr, "Y: %d", y>>FRACBITS);
+ mysnprintf(coordstr, countof(coordstr), "Y: %d", y>>FRACBITS);
screen->DrawText(hudcolor_xyco, xpos, ypos+h, coordstr,
DTA_KeepRatio, true,
DTA_VirtualWidth, vwidth, DTA_VirtualHeight, vheight, TAG_DONE);
- sprintf(coordstr, "Z: %d", z>>FRACBITS);
+ mysnprintf(coordstr, countof(coordstr), "Z: %d", z>>FRACBITS);
screen->DrawText(hudcolor_xyco, xpos, ypos+2*h, coordstr,
DTA_KeepRatio, true,
DTA_VirtualWidth, vwidth, DTA_VirtualHeight, vheight, TAG_DONE);
@@ -864,15 +864,15 @@ void DrawHUD()
if (am_showtotaltime)
{
seconds = level.totaltime / TICRATE;
- sprintf(printstr, "%02i:%02i:%02i", seconds/3600, (seconds%3600)/60, seconds%60);
+ mysnprintf(printstr, countof(printstr), "%02i:%02i:%02i", seconds/3600, (seconds%3600)/60, seconds%60);
DrawHudText(hudcolor_ttim, printstr, hudwidth-length, bottom, FRACUNIT);
bottom -= fonth;
}
if (am_showtime)
{
- seconds= level.time /TICRATE;
- sprintf(printstr, "%02i:%02i:%02i", seconds/3600, (seconds%3600)/60, seconds%60);
+ seconds = level.time /TICRATE;
+ mysnprintf(printstr, countof(printstr), "%02i:%02i:%02i", seconds/3600, (seconds%3600)/60, seconds%60);
DrawHudText(hudcolor_time, printstr, hudwidth-length, bottom, FRACUNIT);
bottom -= fonth;
@@ -880,12 +880,12 @@ void DrawHUD()
if (level.clusterflags&CLUSTER_HUB)
{
seconds= level.maptime /TICRATE;
- sprintf(printstr, "%02i:%02i:%02i", seconds/3600, (seconds%3600)/60, seconds%60);
+ mysnprintf(printstr, countof(printstr), "%02i:%02i:%02i", seconds/3600, (seconds%3600)/60, seconds%60);
DrawHudText(hudcolor_ltim, printstr, hudwidth-length, bottom, FRACUNIT);
}
}
- sprintf(printstr,"%s: %s",level.mapname,level.level_name);
+ mysnprintf(printstr, countof(printstr), "%s: %s", level.mapname, level.level_name);
screen->DrawText(hudcolor_titl, 1, hudheight-fonth-1, printstr,
DTA_KeepRatio, true,
DTA_VirtualWidth, hudwidth, DTA_VirtualHeight, hudheight, TAG_DONE);
diff --git a/src/g_shared/shared_sbar.cpp b/src/g_shared/shared_sbar.cpp
index 440b8d04..f25e3d4f 100644
--- a/src/g_shared/shared_sbar.cpp
+++ b/src/g_shared/shared_sbar.cpp
@@ -109,10 +109,10 @@ CUSTOM_CVAR (Int, crosshair, 0, CVAR_ARCHIVE|CVAR_GLOBALCONFIG)
num = -num;
}
size = (SCREENWIDTH < 640) ? 'S' : 'B';
- sprintf (name, "XHAIR%c%d", size, num);
+ mysnprintf (name, countof(name), "XHAIR%c%d", size, num);
if ((lump = Wads.CheckNumForName (name, ns_graphics)) == -1)
{
- sprintf (name, "XHAIR%c1", size);
+ mysnprintf (name, countof(name), "XHAIR%c1", size);
if ((lump = Wads.CheckNumForName (name, ns_graphics)) == -1)
{
strcpy (name, "XHAIRS1");
@@ -1155,7 +1155,7 @@ void DBaseStatusBar::Draw (EHudState state)
value = &CPlayer->mo->z;
for (i = 2, value = &CPlayer->mo->z; i >= 0; y -= height, --value, --i)
{
- sprintf (line, "%c: %d", labels[i], *value >> FRACBITS);
+ mysnprintf (line, countof(line), "%c: %d", labels[i], *value >> FRACBITS);
screen->DrawText (CR_GREEN, xpos, y, line,
DTA_KeepRatio, true,
DTA_VirtualWidth, vwidth, DTA_VirtualHeight, vheight,
@@ -1184,13 +1184,13 @@ void DBaseStatusBar::Draw (EHudState state)
y = 8;
if (am_showtime)
{
- sprintf (line, "%02d:%02d:%02d", time/3600, (time%3600)/60, time%60); // Time
+ mysnprintf (line, countof(line), "%02d:%02d:%02d", time/3600, (time%3600)/60, time%60); // Time
screen->DrawText (CR_GREY, SCREENWIDTH - 80*CleanXfac, y, line, DTA_CleanNoMove, true, TAG_DONE);
y+=8*CleanYfac;
}
if (am_showtotaltime)
{
- sprintf (line, "%02d:%02d:%02d", totaltime/3600, (totaltime%3600)/60, totaltime%60); // Total time
+ mysnprintf (line, countof(line), "%02d:%02d:%02d", totaltime/3600, (totaltime%3600)/60, totaltime%60); // Total time
screen->DrawText (CR_GREY, SCREENWIDTH - 80*CleanXfac, y, line, DTA_CleanNoMove, true, TAG_DONE);
}
@@ -1233,7 +1233,7 @@ void DBaseStatusBar::Draw (EHudState state)
i = 0;
if (cluster == NULL || !(cluster->flags & CLUSTER_HUB))
{
- i = sprintf (line, "%s: ", level.mapname);
+ i = mysnprintf (line, countof(line), "%s: ", level.mapname);
}
line[i] = TEXTCOLOR_ESCAPE;
line[i+1] = CR_GREY + 'A';
@@ -1249,9 +1249,8 @@ void DBaseStatusBar::Draw (EHudState state)
// Draw monster count
if (am_showmonsters)
{
- sprintf (line, "MONSTERS:"
- TEXTCOLOR_GREY " %d/%d",
- level.killed_monsters, level.total_monsters);
+ mysnprintf (line, countof(line), "MONSTERS:" TEXTCOLOR_GREY " %d/%d",
+ level.killed_monsters, level.total_monsters);
screen->DrawText (highlight, 8, y, line,
DTA_CleanNoMove, true, TAG_DONE);
y += height;
@@ -1260,9 +1259,8 @@ void DBaseStatusBar::Draw (EHudState state)
// Draw secret count
if (am_showsecrets)
{
- sprintf (line, "SECRETS:"
- TEXTCOLOR_GREY " %d/%d",
- level.found_secrets, level.total_secrets);
+ mysnprintf (line, countof(line), "SECRETS:" TEXTCOLOR_GREY " %d/%d",
+ level.found_secrets, level.total_secrets);
screen->DrawText (highlight, 8, y, line,
DTA_CleanNoMove, true, TAG_DONE);
y += height;
@@ -1271,9 +1269,8 @@ void DBaseStatusBar::Draw (EHudState state)
// Draw item count
if (am_showitems)
{
- sprintf (line, "ITEMS:"
- TEXTCOLOR_GREY " %d/%d",
- level.found_items, level.total_items);
+ mysnprintf (line, countof(line), "ITEMS:" TEXTCOLOR_GREY " %d/%d",
+ level.found_items, level.total_items);
screen->DrawText (highlight, 8, y, line,
DTA_CleanNoMove, true, TAG_DONE);
}
@@ -1661,16 +1658,16 @@ void DBaseStatusBar::AddFaceToImageCollectionActual (void *skn, FImageCollection
{
for (j = 0; j < ST_NUMSTRAIGHTFACES; j++)
{
- sprintf (names[facenum++], "%sST%d%d", prefix, i, j);
+ mysnprintf (names[facenum++], countof(names[0]), "%sST%d%d", prefix, i, j);
}
- sprintf (names[facenum++], "%sTR%d0", prefix, i); // turn right
- sprintf (names[facenum++], "%sTL%d0", prefix, i); // turn left
- sprintf (names[facenum++], "%sOUCH%d", prefix, i); // ouch!
- sprintf (names[facenum++], "%sEVL%d", prefix, i); // evil grin ;)
- sprintf (names[facenum++], "%sKILL%d", prefix, i); // pissed off
+ mysnprintf (names[facenum++], countof(names[0]), "%sTR%d0", prefix, i); // turn right
+ mysnprintf (names[facenum++], countof(names[0]), "%sTL%d0", prefix, i); // turn left
+ mysnprintf (names[facenum++], countof(names[0]), "%sOUCH%d", prefix, i); // ouch!
+ mysnprintf (names[facenum++], countof(names[0]), "%sEVL%d", prefix, i); // evil grin ;)
+ mysnprintf (names[facenum++], countof(names[0]), "%sKILL%d", prefix, i); // pissed off
}
- sprintf (names[facenum++], "%sGOD0", prefix);
- sprintf (names[facenum++], "%sDEAD0", prefix);
+ mysnprintf (names[facenum++], countof(names[0]), "%sGOD0", prefix);
+ mysnprintf (names[facenum++], countof(names[0]), "%sDEAD0", prefix);
images->Add (nameptrs, ST_NUMFACES, namespc);
}
diff --git a/src/g_strife/a_alienspectres.cpp b/src/g_strife/a_alienspectres.cpp
index ef061909..8a0c6287 100644
--- a/src/g_strife/a_alienspectres.cpp
+++ b/src/g_strife/a_alienspectres.cpp
@@ -577,7 +577,7 @@ void A_AlienSpectreDeath (AActor *self)
{
return;
}
- sprintf (voc, "svox/voc%d", log);
+ mysnprintf (voc, countof(voc), "svox/voc%d", log);
S_Sound (CHAN_VOICE, voc, 1, ATTN_NORM);
player->player->SetLogNumber (log);
}
diff --git a/src/g_strife/a_coin.cpp b/src/g_strife/a_coin.cpp
index a1fa0499..a9f7d83a 100644
--- a/src/g_strife/a_coin.cpp
+++ b/src/g_strife/a_coin.cpp
@@ -33,7 +33,7 @@ const char *ACoin::PickupMessage ()
{
static char msg[64];
- sprintf (msg, GStrings("TXT_XGOLD"), Amount);
+ mysnprintf (msg, countof(msg), GStrings("TXT_XGOLD"), Amount);
return msg;
}
}
diff --git a/src/g_strife/a_thingstoblowup.cpp b/src/g_strife/a_thingstoblowup.cpp
index 588b99c1..5776e186 100644
--- a/src/g_strife/a_thingstoblowup.cpp
+++ b/src/g_strife/a_thingstoblowup.cpp
@@ -84,7 +84,7 @@ void A_GiveQuestItem (AActor *self)
char messageid[64];
- sprintf(messageid, "TXT_QUEST_%d", questitem);
+ mysnprintf(messageid, countof(messageid), "TXT_QUEST_%d", questitem);
const char * name = GStrings[messageid];
if (name != NULL)
diff --git a/src/g_strife/strife_sbar.cpp b/src/g_strife/strife_sbar.cpp
index b0a95553..e73ce1c1 100644
--- a/src/g_strife/strife_sbar.cpp
+++ b/src/g_strife/strife_sbar.cpp
@@ -584,7 +584,7 @@ private:
{
case POP_Log:
// Draw the latest log message.
- sprintf (buff, "%02d:%02d:%02d",
+ mysnprintf (buff, countof(buff), "%02d:%02d:%02d",
(level.time/TICRATE)/3600,
((level.time/TICRATE)%3600)/60,
(level.time/TICRATE)%60);
diff --git a/src/gameconfigfile.cpp b/src/gameconfigfile.cpp
index 0a8914d4..1eb832b8 100644
--- a/src/gameconfigfile.cpp
+++ b/src/gameconfigfile.cpp
@@ -142,100 +142,6 @@ void FGameConfigFile::MigrateOldConfig ()
// Set default key bindings. These will be overridden
// by the bindings in the config file if it exists.
C_SetDefaultBindings ();
-
-#if 0 // Disabled for now, maybe forever.
- int i;
- char *execcommand;
-
- i = strlen (GetPathName ()) + 8;
- execcommand = new char[i];
- sprintf (execcommand, "exec \"%s\"", GetPathName ());
- execcommand[i-5] = 'c';
- execcommand[i-4] = 'f';
- execcommand[i-3] = 'g';
- cvar_defflags = CVAR_ARCHIVE;
- C_DoCommand (execcommand);
- cvar_defflags = 0;
- delete[] execcommand;
-
- FBaseCVar *configver = FindCVar ("configver", NULL);
- if (configver != NULL)
- {
- UCVarValue oldver = configver->GetGenericRep (CVAR_Float);
-
- if (oldver.Float < 118.f)
- {
- C_DoCommand ("alias idclip noclip");
- C_DoCommand ("alias idspispopd noclip");
-
- if (oldver.Float < 117.2f)
- {
- dimamount = *dimamount * 0.25f;
- if (oldver.Float <= 113.f)
- {
- C_DoCommand ("bind t messagemode; bind \\ +showscores;"
- "bind f12 spynext; bind sysrq screenshot");
- if (C_GetBinding (KEY_F5) && !stricmp (C_GetBinding (KEY_F5), "menu_video"))
- {
- C_ChangeBinding ("menu_display", KEY_F5);
- }
- }
- }
- }
- delete configver;
- }
- // Change all impulses to slot commands
- for (i = 0; i < NUM_KEYS; i++)
- {
- char slotcmd[8] = "slot ";
- char *bind, *numpart;
-
- bind = C_GetBinding (i);
- if (bind != NULL && strnicmp (bind, "impulse ", 8) == 0)
- {
- numpart = strchr (bind, ' ');
- if (numpart != NULL && strlen (numpart) < 4)
- {
- strcpy (slotcmd + 5, numpart);
- C_ChangeBinding (slotcmd, i);
- }
- }
- }
-
- // Migrate and delete some obsolete cvars
- FBaseCVar *oldvar;
- UCVarValue oldval;
-
- oldvar = FindCVar ("autoexec", NULL);
- if (oldvar != NULL)
- {
- oldval = oldvar->GetGenericRep (CVAR_String);
- if (oldval.String[0])
- {
- SetSection ("Doom.AutoExec", true);
- SetValueForKey ("Path", oldval.String, true);
- }
- delete oldvar;
- }
-
- oldvar = FindCVar ("def_patch", NULL);
- if (oldvar != NULL)
- {
- oldval = oldvar->GetGenericRep (CVAR_String);
- if (oldval.String[0])
- {
- SetSection ("Doom.DefaultDehacked", true);
- SetValueForKey ("Path", oldval.String, true);
- }
- delete oldvar;
- }
-
- oldvar = FindCVar ("vid_noptc", NULL);
- if (oldvar != NULL)
- {
- delete oldvar;
- }
-#endif
}
void FGameConfigFile::DoGlobalSetup ()
@@ -334,15 +240,17 @@ void FGameConfigFile::DoGameSetup (const char *gamename)
{
MigrateOldConfig ();
}
- subsection = section + sprintf (section, "%s.", gamename);
+ sublen = countof(section) - 1 - mysnprintf (section, countof(section), "%s.", gamename);
+ subsection = section + countof(section) - sublen - 1;
+ section[countof(section) - 1] = '\0';
- strcpy (subsection, "UnknownConsoleVariables");
+ strncpy (subsection, "UnknownConsoleVariables", sublen);
if (SetSection (section))
{
ReadCVars (0);
}
- strcpy (subsection, "ConsoleVariables");
+ strncpy (subsection, "ConsoleVariables", sublen);
if (SetSection (section))
{
ReadCVars (0);
@@ -355,19 +263,19 @@ void FGameConfigFile::DoGameSetup (const char *gamename)
// The NetServerInfo section will be read when it's determined that
// a netgame is being played.
- strcpy (subsection, "LocalServerInfo");
+ strncpy (subsection, "LocalServerInfo", sublen);
if (SetSection (section))
{
ReadCVars (0);
}
- strcpy (subsection, "Player");
+ strncpy (subsection, "Player", sublen);
if (SetSection (section))
{
ReadCVars (0);
}
- strcpy (subsection, "Bindings");
+ strncpy (subsection, "Bindings", sublen);
if (!SetSection (section))
{ // Config has no bindings for the given game
if (!bMigrating)
@@ -384,7 +292,7 @@ void FGameConfigFile::DoGameSetup (const char *gamename)
}
}
- strcpy (subsection, "DoubleBindings");
+ strncpy (subsection, "DoubleBindings", sublen);
if (SetSection (section))
{
while (NextInSection (key, value))
@@ -393,7 +301,7 @@ void FGameConfigFile::DoGameSetup (const char *gamename)
}
}
- strcpy (subsection, "ConsoleAliases");
+ strncpy (subsection, "ConsoleAliases", sublen);
if (SetSection (section))
{
const char *name = NULL;
@@ -415,7 +323,7 @@ void FGameConfigFile::DoGameSetup (const char *gamename)
// Separated from DoGameSetup because it needs all the weapons properly defined
void FGameConfigFile::DoWeaponSetup (const char *gamename)
{
- strcpy (subsection, "WeaponSlots");
+ strncpy (subsection, "WeaponSlots", sublen);
if (!SetSection (section) || !LocalWeapons.RestoreSlots (*this))
{
@@ -425,7 +333,7 @@ void FGameConfigFile::DoWeaponSetup (const char *gamename)
void FGameConfigFile::ReadNetVars ()
{
- strcpy (subsection, "NetServerInfo");
+ strncpy (subsection, "NetServerInfo", sublen);
if (SetSection (section))
{
ReadCVars (0);
@@ -455,19 +363,20 @@ void FGameConfigFile::ArchiveGameData (const char *gamename)
{
char section[32*3], *subsection;
- subsection = section + sprintf (section, "%s.", gamename);
+ sublen = countof(section) - 1 - mysnprintf (section, countof(section), "%s.", gamename);
+ subsection = section + countof(section) - 1 - sublen;
- strcpy (subsection, "Player");
+ strncpy (subsection, "Player", sublen);
SetSection (section, true);
ClearCurrentSection ();
C_ArchiveCVars (this, 4);
- strcpy (subsection, "ConsoleVariables");
+ strncpy (subsection, "ConsoleVariables", sublen);
SetSection (section, true);
ClearCurrentSection ();
C_ArchiveCVars (this, 0);
- strcpy (subsection, netgame ? "NetServerInfo" : "LocalServerInfo");
+ strncpy (subsection, netgame ? "NetServerInfo" : "LocalServerInfo", sublen);
if (!netgame || consoleplayer == 0)
{ // Do not overwrite this section if playing a netgame, and
// this machine was not the initial host.
@@ -476,35 +385,35 @@ void FGameConfigFile::ArchiveGameData (const char *gamename)
C_ArchiveCVars (this, 5);
}
- strcpy (subsection, "UnknownConsoleVariables");
+ strncpy (subsection, "UnknownConsoleVariables", sublen);
SetSection (section, true);
ClearCurrentSection ();
C_ArchiveCVars (this, 2);
- strcpy (subsection, "ConsoleAliases");
+ strncpy (subsection, "ConsoleAliases", sublen);
SetSection (section, true);
ClearCurrentSection ();
C_ArchiveAliases (this);
- M_SaveCustomKeys (this, section, subsection);
+ M_SaveCustomKeys (this, section, subsection, sublen);
strcpy (subsection, "Bindings");
SetSection (section, true);
ClearCurrentSection ();
C_ArchiveBindings (this, false);
- strcpy (subsection, "DoubleBindings");
+ strncpy (subsection, "DoubleBindings", sublen);
SetSection (section, true);
ClearCurrentSection ();
C_ArchiveBindings (this, true);
if (WeaponSection.IsEmpty())
{
- strcpy (subsection, "WeaponSlots");
+ strncpy (subsection, "WeaponSlots", sublen);
}
else
{
- sprintf (subsection, "%s.WeaponSlots", WeaponSection.GetChars());
+ mysnprintf (subsection, sublen, "%s.WeaponSlots", WeaponSection.GetChars());
}
SetSection (section, true);
ClearCurrentSection ();
@@ -535,7 +444,7 @@ FString FGameConfigFile::GetConfigPath (bool tryProg)
if (pathval != NULL)
return FString(pathval);
-#ifndef unix
+#ifdef _WIN32
path = NULL;
HRESULT hr;
@@ -602,7 +511,7 @@ void FGameConfigFile::AddAutoexec (DArgs *list, const char *game)
const char *key;
const char *value;
- sprintf (section, "%s.AutoExec", game);
+ mysnprintf (section, countof(section), "%s.AutoExec", game);
if (bMigrating)
{
diff --git a/src/gameconfigfile.h b/src/gameconfigfile.h
index a3f7d578..8970c87a 100644
--- a/src/gameconfigfile.h
+++ b/src/gameconfigfile.h
@@ -69,6 +69,7 @@ private:
char section[64];
char *subsection;
+ size_t sublen;
};
extern FString WeaponSection;
diff --git a/src/hu_scores.cpp b/src/hu_scores.cpp
index 1b68ef9d..ee22e9ba 100644
--- a/src/hu_scores.cpp
+++ b/src/hu_scores.cpp
@@ -213,7 +213,7 @@ static void HU_DoDrawScores (player_t *player, player_t *sortedplayers[MAXPLAYER
if (teams[i].players)
{
char score[80];
- sprintf (score, "%d", teams[i].score);
+ mysnprintf (score, countof(score), "%d", teams[i].score);
screen->SetFont (BigFont);
screen->DrawText (teams[i].GetTextColor (), scorexwidth, gamestate == GS_INTERMISSION ? y * 4 / 5 : y / 2, score,
@@ -277,9 +277,9 @@ static void HU_DrawTimeRemaining (int y)
seconds = timeleft / TICRATE;
if (hours)
- sprintf (str, "Level ends in %02d:%02d:%02d", hours, minutes, seconds);
+ mysnprintf (str, countof(str), "Level ends in %02d:%02d:%02d", hours, minutes, seconds);
else
- sprintf (str, "Level ends in %02d:%02d", minutes, seconds);
+ mysnprintf (str, countof(str), "Level ends in %02d:%02d", minutes, seconds);
screen->DrawText (CR_GREY, SCREENWIDTH/2 - SmallFont->StringWidth (str)/2*CleanXfac,
y, str, DTA_CleanNoMove, true, TAG_DONE);
@@ -321,7 +321,7 @@ static void HU_DrawPlayer (player_t *player, bool highlight, int x, int y, int h
deathmatch ? color = sb_deathmatch_yourplayercolor : color = sb_cooperative_yourplayercolor;
}
- sprintf (str, "%d", deathmatch ? player->fragcount : player->killcount);
+ mysnprintf (str, countof(str), "%d", deathmatch ? player->fragcount : player->killcount);
screen->DrawText (color, SCREENWIDTH / 4, y, player->playerstate == PST_DEAD && !deathmatch ? "DEAD" : str,
DTA_CleanNoMove, true, TAG_DONE);
diff --git a/src/i_net.cpp b/src/i_net.cpp
index 6e080df8..905f3cda 100644
--- a/src/i_net.cpp
+++ b/src/i_net.cpp
@@ -900,7 +900,7 @@ const char *neterror (void)
case WSAEDISCON: return "EDISCON";
default:
- sprintf (neterr, "%d", code);
+ mysnprintf (neterr, countof(neterr), "%d", code);
return neterr;
}
}
diff --git a/src/m_alloc.cpp b/src/m_alloc.cpp
index 23d0edc6..1c14f3de 100644
--- a/src/m_alloc.cpp
+++ b/src/m_alloc.cpp
@@ -32,8 +32,8 @@
**
*/
-#include "i_system.h"
#include
+#include "i_system.h"
#ifndef _MSC_VER
#define _NORMAL_BLOCK 0
diff --git a/src/m_cheat.cpp b/src/m_cheat.cpp
index fb61103f..0b3a4ae3 100644
--- a/src/m_cheat.cpp
+++ b/src/m_cheat.cpp
@@ -241,7 +241,7 @@ void cht_DoCheat (player_t *player, int cheat)
int killcount = P_Massacre ();
// killough 3/22/98: make more intelligent about plural
// Ty 03/27/98 - string(s) *not* externalized
- sprintf (msgbuild, "%d Monster%s Killed", killcount, killcount==1 ? "" : "s");
+ mysnprintf (msgbuild, countof(msgbuild), "%d Monster%s Killed", killcount, killcount==1 ? "" : "s");
msg = msgbuild;
}
break;
diff --git a/src/m_menu.cpp b/src/m_menu.cpp
index 736fe671..1e802294 100644
--- a/src/m_menu.cpp
+++ b/src/m_menu.cpp
@@ -1401,7 +1401,7 @@ void M_QuickSave ()
M_SaveGame (0);
return;
}
- sprintf (tempstring, GStrings("QSPROMPT"), quickSaveSlot->Title);
+ mysnprintf (tempstring, countof(tempstring), GStrings("QSPROMPT"), quickSaveSlot->Title);
strcpy (savegamestring, quickSaveSlot->Title);
M_StartMessage (tempstring, M_QuickSaveResponse, true);
}
@@ -1437,7 +1437,7 @@ void M_QuickLoad ()
M_LoadGame (0);
return;
}
- sprintf (tempstring, GStrings("QLPROMPT"), quickSaveSlot->Title);
+ mysnprintf (tempstring, countof(tempstring), GStrings("QLPROMPT"), quickSaveSlot->Title);
M_StartMessage (tempstring, M_QuickLoadResponse, true);
}
@@ -1519,20 +1519,20 @@ void M_DrawHereticMainMenu ()
{
int frame = (MenuTime / 5) % 7;
- sprintf (name, "FBUL%c0", (frame+2)%7 + 'A');
+ mysnprintf (name, countof(name), "FBUL%c0", (frame+2)%7 + 'A');
screen->DrawTexture (TexMan[name], 37, 80, DTA_Clean, true, TAG_DONE);
- sprintf (name, "FBUL%c0", frame + 'A');
+ mysnprintf (name, countof(name), "FBUL%c0", frame + 'A');
screen->DrawTexture (TexMan[name], 278, 80, DTA_Clean, true, TAG_DONE);
}
else
{
int frame = (MenuTime / 3) % 18;
- sprintf (name, "M_SKL%.2d", 17 - frame);
+ mysnprintf (name, countof(name), "M_SKL%.2d", 17 - frame);
screen->DrawTexture (TexMan[name], 40, 10, DTA_Clean, true, TAG_DONE);
- sprintf (name, "M_SKL%.2d", frame);
+ mysnprintf (name, countof(name), "M_SKL%.2d", frame);
screen->DrawTexture (TexMan[name], 232, 10, DTA_Clean, true, TAG_DONE);
}
}
@@ -1666,7 +1666,7 @@ static void DrawClassMenu(void)
}
screen->DrawTexture (TexMan[boxLumpName[classnum]], 174, 8, DTA_Clean, true, TAG_DONE);
- sprintf (name, walkLumpName[classnum], ((MenuTime >> 3) & 3) + 1);
+ mysnprintf (name, countof(name), walkLumpName[classnum], ((MenuTime >> 3) & 3) + 1);
screen->DrawTexture (TexMan[name], 174+24, 8+12, DTA_Clean, true, TAG_DONE);
}
@@ -2609,9 +2609,8 @@ static void SendNewColor (int red, int green, int blue)
{
char command[24];
- sprintf (command, "color \"%02x %02x %02x\"", red, green, blue);
+ mysnprintf (command, countof(command), "color \"%02x %02x %02x\"", red, green, blue);
C_DoCommand (command);
-
R_GetPlayerTranslation (MAKERGB (red, green, blue), &skins[PlayerSkin], translationtables[TRANSLATION_Players][MAXPLAYERS]);
}
@@ -2967,7 +2966,7 @@ bool M_SaveLoadResponder (event_t *ev)
case GK_F1:
if (!SelSaveGame->Filename.IsEmpty())
{
- sprintf (workbuf, "File on disk:\n%s", SelSaveGame->Filename.GetChars());
+ mysnprintf (workbuf, countof(workbuf), "File on disk:\n%s", SelSaveGame->Filename.GetChars());
if (SaveComment != NULL)
{
V_FreeBrokenLines (SaveComment);
diff --git a/src/m_misc.h b/src/m_misc.h
index 9802ead7..2ced7e74 100644
--- a/src/m_misc.h
+++ b/src/m_misc.h
@@ -41,7 +41,7 @@ void M_ScreenShot (const char *filename);
void M_LoadDefaults ();
bool M_SaveDefaults (const char *filename);
-void M_SaveCustomKeys (FConfigFile *config, char *section, char *subsection);
+void M_SaveCustomKeys (FConfigFile *config, char *section, char *subsection, size_t sublen);
FString GetUserFile (const char *path, bool nodir=false);
diff --git a/src/m_options.cpp b/src/m_options.cpp
index 1ea88f89..77f4332c 100644
--- a/src/m_options.cpp
+++ b/src/m_options.cpp
@@ -1440,7 +1440,7 @@ void M_InitVideoModesMenu ()
{
/*
Depths[currval].value = currval;
- sprintf (name, "%d bit", i);
+ mysnprintf (name, countof(name), "%d bit", i);
Depths[currval].name = copystring (name);
*/
BitTranslate[currval++] = i;
@@ -1496,13 +1496,13 @@ void M_SizeDisplay (int diff)
CCMD (sizedown)
{
M_SizeDisplay (-1);
- S_Sound (CHAN_VOICE, "menu/change", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/change", 1, ATTN_NONE);
}
CCMD (sizeup)
{
M_SizeDisplay (1);
- S_Sound (CHAN_VOICE, "menu/change", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/change", 1, ATTN_NONE);
}
// Draws a string in the console font, scaled to the 8x8 cells
@@ -1784,7 +1784,7 @@ void M_OptDrawer ()
{
char tbuf[16];
- sprintf (tbuf, "%d.", item->b.position);
+ mysnprintf (tbuf, countof(tbuf), "%d.", item->b.position);
x = CurrentMenu->indent - SmallFont->StringWidth (tbuf);
screen->DrawText (CR_GREY, x, y, tbuf, DTA_Clean, true, TAG_DONE);
}
@@ -2077,10 +2077,10 @@ void M_OptDrawer ()
{
if (printed)
{
- fillptr += sprintf (fillptr, " ");
+ fillptr += mysnprintf (fillptr, countof(flagsblah) - (fillptr - flagsblah), " ");
}
printed = true;
- fillptr += sprintf (fillptr, "%s = %d", vars[i]->GetName (), **vars[i]);
+ fillptr += mysnprintf (fillptr, countof(flagsblah) - (fillptr - flagsblah), "%s = %d", vars[i]->GetName (), **vars[i]);
}
}
screen->DrawText (ValueColor,
@@ -2177,7 +2177,7 @@ void M_OptResponder (event_t *ev)
CurrentMenu->items[CurrentItem].a.selmode = modecol;
}
- S_Sound (CHAN_VOICE, "menu/cursor", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/cursor", 1, ATTN_NONE);
}
break;
@@ -2241,7 +2241,7 @@ void M_OptResponder (event_t *ev)
if (CurrentMenu->items[CurrentItem].type == screenres)
CurrentMenu->items[CurrentItem].a.selmode = modecol;
- S_Sound (CHAN_VOICE, "menu/cursor", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/cursor", 1, ATTN_NONE);
}
break;
@@ -2263,7 +2263,7 @@ void M_OptResponder (event_t *ev)
{
++CurrentItem;
}
- S_Sound (CHAN_VOICE, "menu/cursor", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/cursor", 1, ATTN_NONE);
}
break;
@@ -2286,7 +2286,7 @@ void M_OptResponder (event_t *ev)
{
++CurrentItem;
}
- S_Sound (CHAN_VOICE, "menu/cursor", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/cursor", 1, ATTN_NONE);
}
break;
@@ -2324,12 +2324,12 @@ void M_OptResponder (event_t *ev)
else
item->a.cvar->SetGenericRep (newval, CVAR_Float);
}
- S_Sound (CHAN_VOICE, "menu/change", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/change", 1, ATTN_NONE);
break;
case palettegrid:
SelColorIndex = (SelColorIndex - 1) & 15;
- S_Sound (CHAN_VOICE, "menu/cursor", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/cursor", 1, ATTN_NONE);
break;
case discretes:
@@ -2359,14 +2359,14 @@ void M_OptResponder (event_t *ev)
if (item->e.values == Depths)
BuildModesList (SCREENWIDTH, SCREENHEIGHT, DisplayBits);
}
- S_Sound (CHAN_VOICE, "menu/change", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/change", 1, ATTN_NONE);
break;
case ediscrete:
value = item->a.cvar->GetGenericRep(CVAR_String);
value.String = const_cast(M_FindPrevVal(value.String, item->e.enumvalues, (int)item->b.numvalues));
item->a.cvar->SetGenericRep(value, CVAR_String);
- S_Sound (CHAN_VOICE, "menu/change", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/change", 1, ATTN_NONE);
break;
case bitmask:
@@ -2385,7 +2385,7 @@ void M_OptResponder (event_t *ev)
value.Int = (value.Int & ~bmask) | int(item->e.values[cur].value);
item->a.cvar->SetGenericRep (value, CVAR_Int);
}
- S_Sound (CHAN_VOICE, "menu/change", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/change", 1, ATTN_NONE);
break;
case discrete_guid:
@@ -2400,14 +2400,14 @@ void M_OptResponder (event_t *ev)
*(item->a.guidcvar) = item->e.guidvalues[cur].ID;
}
- S_Sound (CHAN_VOICE, "menu/change", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/change", 1, ATTN_NONE);
break;
case inverter:
value = item->a.cvar->GetGenericRep (CVAR_Float);
value.Float = -value.Float;
item->a.cvar->SetGenericRep (value, CVAR_Float);
- S_Sound (CHAN_VOICE, "menu/change", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/change", 1, ATTN_NONE);
break;
case screenres:
@@ -2431,7 +2431,7 @@ void M_OptResponder (event_t *ev)
item->a.selmode = col;
}
}
- S_Sound (CHAN_VOICE, "menu/cursor", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/cursor", 1, ATTN_NONE);
break;
default:
@@ -2473,12 +2473,12 @@ void M_OptResponder (event_t *ev)
else
item->a.cvar->SetGenericRep (newval, CVAR_Float);
}
- S_Sound (CHAN_VOICE, "menu/change", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/change", 1, ATTN_NONE);
break;
case palettegrid:
SelColorIndex = (SelColorIndex + 1) & 15;
- S_Sound (CHAN_VOICE, "menu/cursor", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/cursor", 1, ATTN_NONE);
break;
case discretes:
@@ -2508,14 +2508,14 @@ void M_OptResponder (event_t *ev)
if (item->e.values == Depths)
BuildModesList (SCREENWIDTH, SCREENHEIGHT, DisplayBits);
}
- S_Sound (CHAN_VOICE, "menu/change", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/change", 1, ATTN_NONE);
break;
case ediscrete:
value = item->a.cvar->GetGenericRep(CVAR_String);
value.String = const_cast(M_FindNextVal(value.String, item->e.enumvalues, (int)item->b.numvalues));
item->a.cvar->SetGenericRep(value, CVAR_String);
- S_Sound (CHAN_VOICE, "menu/change", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/change", 1, ATTN_NONE);
break;
case bitmask:
@@ -2534,7 +2534,7 @@ void M_OptResponder (event_t *ev)
value.Int = (value.Int & ~bmask) | int(item->e.values[cur].value);
item->a.cvar->SetGenericRep (value, CVAR_Int);
}
- S_Sound (CHAN_VOICE, "menu/change", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/change", 1, ATTN_NONE);
break;
case discrete_guid:
@@ -2549,14 +2549,14 @@ void M_OptResponder (event_t *ev)
*(item->a.guidcvar) = item->e.guidvalues[cur].ID;
}
- S_Sound (CHAN_VOICE, "menu/change", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/change", 1, ATTN_NONE);
break;
case inverter:
value = item->a.cvar->GetGenericRep (CVAR_Float);
value.Float = -value.Float;
item->a.cvar->SetGenericRep (value, CVAR_Float);
- S_Sound (CHAN_VOICE, "menu/change", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/change", 1, ATTN_NONE);
break;
case screenres:
@@ -2583,7 +2583,7 @@ void M_OptResponder (event_t *ev)
item->a.selmode = col;
}
}
- S_Sound (CHAN_VOICE, "menu/cursor", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/cursor", 1, ATTN_NONE);
break;
default:
@@ -2641,7 +2641,7 @@ void M_OptResponder (event_t *ev)
setmodeneeded = true;
NewBits = BitTranslate[DummyDepthCvar];
}
- S_Sound (CHAN_VOICE, "menu/choose", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/choose", 1, ATTN_NONE);
SetModesMenu (NewWidth, NewHeight, NewBits);
}
else if ((item->type == more ||
@@ -2652,7 +2652,7 @@ void M_OptResponder (event_t *ev)
&& item->e.mfunc)
{
CurrentMenu->lastOn = CurrentItem;
- S_Sound (CHAN_VOICE, "menu/choose", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/choose", 1, ATTN_NONE);
if (item->type == safemore || item->type == rsafemore)
{
ActivateConfirm (item->label, item->e.mfunc);
@@ -2687,7 +2687,7 @@ void M_OptResponder (event_t *ev)
if (item->e.values == Depths)
BuildModesList (SCREENWIDTH, SCREENHEIGHT, DisplayBits);
- S_Sound (CHAN_VOICE, "menu/change", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/change", 1, ATTN_NONE);
}
else if (item->type == control)
{
@@ -2700,7 +2700,7 @@ void M_OptResponder (event_t *ev)
else if (item->type == listelement)
{
CurrentMenu->lastOn = CurrentItem;
- S_Sound (CHAN_VOICE, "menu/choose", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/choose", 1, ATTN_NONE);
item->e.lfunc (CurrentItem);
}
else if (item->type == inverter)
@@ -2708,7 +2708,7 @@ void M_OptResponder (event_t *ev)
value = item->a.cvar->GetGenericRep (CVAR_Float);
value.Float = -value.Float;
item->a.cvar->SetGenericRep (value, CVAR_Float);
- S_Sound (CHAN_VOICE, "menu/change", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/change", 1, ATTN_NONE);
}
else if (item->type == screenres)
{
@@ -2716,7 +2716,7 @@ void M_OptResponder (event_t *ev)
else if (item->type == colorpicker)
{
CurrentMenu->lastOn = CurrentItem;
- S_Sound (CHAN_VOICE, "menu/choose", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/choose", 1, ATTN_NONE);
StartColorPickerMenu (item->label, item->a.colorcvar);
}
else if (item->type == palettegrid)
@@ -2752,7 +2752,7 @@ void M_OptResponder (event_t *ev)
NewBits = BitTranslate[DummyDepthCvar];
setmodeneeded = true;
testingmode = I_GetTime(false) + 5 * TICRATE;
- S_Sound (CHAN_VOICE, "menu/choose", 1, ATTN_NONE);
+ S_Sound (CHAN_VOICE | CHAN_UI, "menu/choose", 1, ATTN_NONE);
SetModesMenu (NewWidth, NewHeight, NewBits);
}
}
@@ -3205,7 +3205,7 @@ static void BuildModesList (int hiwidth, int hiheight, int hi_bits)
if (/* hi_bits == showbits && */ width == hiwidth && height == hiheight)
ModesItems[i].e.highlight = ModesItems[i].a.selmode = c;
- sprintf (strtemp, "%dx%d%s", width, height, letterbox?TEXTCOLOR_BROWN" LB":"");
+ mysnprintf (strtemp, countof(strtemp), "%dx%d%s", width, height, letterbox?TEXTCOLOR_BROWN" LB":"");
ReplaceString (str, strtemp);
}
else
@@ -3302,7 +3302,7 @@ static void SetModesMenu (int w, int h, int bits)
{
char strtemp[64];
- sprintf (strtemp, "TESTING %dx%dx%d", w, h, bits);
+ mysnprintf (strtemp, countof(strtemp), "TESTING %dx%dx%d", w, h, bits);
ModesItems[VM_ENTERLINE].label = copystring (strtemp);
ModesItems[VM_TESTLINE].label = "Please wait 5 seconds...";
}
@@ -3357,7 +3357,7 @@ void M_LoadKeys (const char *modname, bool dbl)
if (GameNames[gameinfo.gametype] == NULL)
return;
- sprintf (section, "%s.%s%sBindings", GameNames[gameinfo.gametype], modname,
+ mysnprintf (section, countof(section), "%s.%s%sBindings", GameNames[gameinfo.gametype], modname,
dbl ? ".Double" : ".");
if (GameConfig->SetSection (section))
{
@@ -3388,7 +3388,7 @@ int M_DoSaveKeys (FConfigFile *config, char *section, int i, bool dbl)
return i;
}
-void M_SaveCustomKeys (FConfigFile *config, char *section, char *subsection)
+void M_SaveCustomKeys (FConfigFile *config, char *section, char *subsection, size_t sublen)
{
if (ControlsMenu.items == ControlsItems)
return;
@@ -3404,9 +3404,9 @@ void M_SaveCustomKeys (FConfigFile *config, char *section, char *subsection)
if (item->type == whitetext)
{
assert (item->e.command != NULL);
- sprintf (subsection, "%s.Bindings", item->e.command);
+ mysnprintf (subsection, sublen, "%s.Bindings", item->e.command);
M_DoSaveKeys (config, section, (int)i, false);
- sprintf (subsection, "%s.DoubleBindings", item->e.command);
+ mysnprintf (subsection, sublen, "%s.DoubleBindings", item->e.command);
i = M_DoSaveKeys (config, section, (int)i, true);
}
else
diff --git a/src/oplsynth/music_opl_mididevice.cpp b/src/oplsynth/music_opl_mididevice.cpp
index d08c97a1..d1f71cbe 100644
--- a/src/oplsynth/music_opl_mididevice.cpp
+++ b/src/oplsynth/music_opl_mididevice.cpp
@@ -45,9 +45,9 @@
// MACROS ------------------------------------------------------------------
-#if defined(_DEBUG) && defined(_WIN32)
+#if defined(_DEBUG) && defined(_WIN32) && defined(_MSC_VER)
#define DEBUGOUT(m,c,s,t) \
- { char foo[128]; sprintf(foo, m, c, s, t); OutputDebugString(foo); }
+ { char foo[128]; mysnprintf(foo, countof(foo), m, c, s, t); OutputDebugString(foo); }
#else
#define DEBUGOUT(m,c,s,t)
#endif
diff --git a/src/p_buildmap.cpp b/src/p_buildmap.cpp
index 706da768..db3e9889 100644
--- a/src/p_buildmap.cpp
+++ b/src/p_buildmap.cpp
@@ -373,7 +373,7 @@ static void LoadSectors (sectortype *bsec)
sec->floorplane.d = -sec->floortexz;
sec->floorplane.c = FRACUNIT;
sec->floorplane.ic = FRACUNIT;
- sprintf (tnam, "BTIL%04d", LittleShort(bsec->floorpicnum));
+ mysnprintf (tnam, countof(tnam), "BTIL%04d", LittleShort(bsec->floorpicnum));
sec->floorpic = TexMan.GetTexture (tnam, FTexture::TEX_Build);
sec->SetXScale(sector_t::floor, (bsec->floorstat & 8) ? FRACUNIT*2 : FRACUNIT);
sec->SetYScale(sector_t::floor, (bsec->floorstat & 8) ? FRACUNIT*2 : FRACUNIT);
@@ -386,7 +386,7 @@ static void LoadSectors (sectortype *bsec)
sec->ceilingplane.d = sec->ceilingtexz;
sec->ceilingplane.c = -FRACUNIT;
sec->ceilingplane.ic = -FRACUNIT;
- sprintf (tnam, "BTIL%04d", LittleShort(bsec->ceilingpicnum));
+ mysnprintf (tnam, countof(tnam), "BTIL%04d", LittleShort(bsec->ceilingpicnum));
sec->ceilingpic = TexMan.GetTexture (tnam, FTexture::TEX_Build);
if (bsec->ceilingstat & 1)
{
@@ -480,9 +480,9 @@ static void LoadWalls (walltype *walls, int numwalls, sectortype *bsec)
char tnam[9];
FTextureID overpic, pic;
- sprintf (tnam, "BTIL%04d", LittleShort(walls[i].picnum));
+ mysnprintf (tnam, countof(tnam), "BTIL%04d", LittleShort(walls[i].picnum));
pic = TexMan.GetTexture (tnam, FTexture::TEX_Build);
- sprintf (tnam, "BTIL%04d", LittleShort(walls[i].overpicnum));
+ mysnprintf (tnam, countof(tnam), "BTIL%04d", LittleShort(walls[i].overpicnum));
overpic = TexMan.GetTexture (tnam, FTexture::TEX_Build);
walls[i].x = LittleLong(walls[i].x);
@@ -807,7 +807,7 @@ void ACustomSprite::BeginPlay ()
char name[9];
Super::BeginPlay ();
- sprintf (name, "BTIL%04d", (args[0] + args[1]*256) & 0xffff);
+ mysnprintf (name, countof(name), "BTIL%04d", (args[0] + args[1]*256) & 0xffff);
picnum = TexMan.GetTexture (name, FTexture::TEX_Build);
scaleX = args[2] * (FRACUNIT/64);
diff --git a/src/p_conversation.cpp b/src/p_conversation.cpp
index e1b6d6c9..8d40186a 100644
--- a/src/p_conversation.cpp
+++ b/src/p_conversation.cpp
@@ -328,7 +328,7 @@ static FStrifeDialogueNode *ReadRetailNode (FileReader *lump, DWORD &prevSpeaker
// The speaker's voice for this node, if any.
speech.Backdrop[0] = 0; //speech.Sound[8] = 0;
- sprintf (fullsound, "svox/%s", speech.Sound);
+ mysnprintf (fullsound, countof(fullsound), "svox/%s", speech.Sound);
node->SpeakerVoice = fullsound;
// The speaker's name, if any.
@@ -397,7 +397,7 @@ static FStrifeDialogueNode *ReadTeaserNode (FileReader *lump, DWORD &prevSpeaker
// The speaker's voice for this node, if any.
if (speech.VoiceNumber != 0)
{
- sprintf (fullsound, "svox/voc%u", speech.VoiceNumber);
+ mysnprintf (fullsound, countof(fullsound), "svox/voc%u", speech.VoiceNumber);
node->SpeakerVoice = fullsound;
}
else
@@ -491,7 +491,7 @@ static void ParseReplies (FStrifeDialogueReply **replyptr, Response *responses)
{
char moneystr[128];
- sprintf (moneystr, "%s for %u", rsp->Reply, rsp->Count[0]);
+ mysnprintf (moneystr, countof(moneystr), "%s for %u", rsp->Reply, rsp->Count[0]);
reply->Reply = copystring (moneystr);
reply->NeedsGold = true;
}
@@ -759,7 +759,7 @@ void P_StartConversation (AActor *npc, AActor *pc, bool facetalker, bool saveang
++i;
}
char goodbye[25];
- sprintf(goodbye, "TXT_RANDOMGOODBYE_%d", 1+(pr_randomspeech() % NUM_RANDOM_GOODBYES));
+ mysnprintf(goodbye, countof(goodbye), "TXT_RANDOMGOODBYE_%d", 1+(pr_randomspeech() % NUM_RANDOM_GOODBYES));
item.label = (char*)GStrings[goodbye];
if (item.label == NULL) item.label = "Bye.";
item.b.position = i;
@@ -907,7 +907,7 @@ static void DrawConversationMenu ()
AInventory *coin = cp->ConversationPC->FindInventory (RUNTIME_CLASS(ACoin));
char goldstr[32];
- sprintf (goldstr, "%d", coin != NULL ? coin->Amount : 0);
+ mysnprintf (goldstr, countof(goldstr), "%d", coin != NULL ? coin->Amount : 0);
screen->DrawText (CR_GRAY, 21, 191, goldstr, DTA_320x200, true,
DTA_FillColor, 0, DTA_Alpha, HR_SHADOW, TAG_DONE);
screen->DrawTexture (TexMan(((AInventory *)GetDefaultByType (RUNTIME_CLASS(ACoin)))->Icon),
diff --git a/src/p_interaction.cpp b/src/p_interaction.cpp
index f6142d74..76e5bb2a 100644
--- a/src/p_interaction.cpp
+++ b/src/p_interaction.cpp
@@ -265,7 +265,7 @@ void ClientObituary (AActor *self, AActor *inflictor, AActor *attacker)
attacker->player->frags[attacker->player - players]++;
self = attacker;
gender = self->player->userinfo.gender;
- sprintf (gendermessage, "OB_FRIENDLY%c", '1' + (pr_obituary() & 3));
+ mysnprintf (gendermessage, countof(gendermessage), "OB_FRIENDLY%c", '1' + (pr_obituary() & 3));
message = GStrings(gendermessage);
}
else
diff --git a/src/p_lnspec.cpp b/src/p_lnspec.cpp
index a1d1bfbe..67e3d1c5 100644
--- a/src/p_lnspec.cpp
+++ b/src/p_lnspec.cpp
@@ -2718,7 +2718,7 @@ FUNC(LS_SendToCommunicator)
if (it != NULL && it->player != NULL && it->FindInventory(NAME_Communicator))
{
char name[32];
- sprintf (name, "svox/voc%d", arg0);
+ mysnprintf (name, countof(name), "svox/voc%d", arg0);
if (!arg3)
{
diff --git a/src/p_user.cpp b/src/p_user.cpp
index cec1ac53..fbde2cde 100644
--- a/src/p_user.cpp
+++ b/src/p_user.cpp
@@ -362,7 +362,7 @@ void player_t::SetLogNumber (int num)
char lumpname[16];
int lumpnum;
- sprintf (lumpname, "LOG%d", num);
+ mysnprintf (lumpname, countof(lumpname), "LOG%d", num);
lumpnum = Wads.CheckNumForName (lumpname);
if (lumpnum == -1)
{
diff --git a/src/r_main.cpp b/src/r_main.cpp
index 5c15a0b8..b3b25703 100644
--- a/src/r_main.cpp
+++ b/src/r_main.cpp
@@ -656,7 +656,7 @@ void R_SetWindow (int windowSize, int fullWidth, int fullHeight, int stHeight)
UCVarValue value;
char temp[16];
- sprintf (temp, "%d x %d", viewwidth, viewheight);
+ mysnprintf (temp, countof(temp), "%d x %d", viewwidth, viewheight);
value.String = temp;
r_viewsize.ForceSet (value, CVAR_String);
}
diff --git a/src/r_plane.cpp b/src/r_plane.cpp
index 89f5c70c..ca932d8f 100644
--- a/src/r_plane.cpp
+++ b/src/r_plane.cpp
@@ -701,6 +701,7 @@ visplane_t *R_CheckPlane (visplane_t *pl, int start, int stop)
new_pl->viewy = pl->viewy;
new_pl->viewz = pl->viewz;
new_pl->viewangle = pl->viewangle;
+ new_pl->sky = pl->sky;
pl = new_pl;
pl->minx = start;
pl->maxx = stop;
diff --git a/src/r_polymost.cpp b/src/r_polymost.cpp
index c2a344ba..bae0bb5b 100644
--- a/src/r_polymost.cpp
+++ b/src/r_polymost.cpp
@@ -665,7 +665,7 @@ void drawquad(float x0, float y0, float x1, float y1, float x2, float y2, float
void printnum(int x, int y, int num)
{
- char foo[16]; sprintf (foo, "%d", num);
+ char foo[16]; mysnprintf (foo, countof(foo), "%d", num);
RenderTarget->DrawText (CR_WHITE, x, y, foo);
}
diff --git a/src/r_things.cpp b/src/r_things.cpp
index f49aca1d..346b0d48 100644
--- a/src/r_things.cpp
+++ b/src/r_things.cpp
@@ -476,7 +476,7 @@ void R_InitSkins (void)
{
if (stricmp (skins[i].name, skins[j].name) == 0)
{
- sprintf (skins[i].name, "skin%d", (int)i);
+ mysnprintf (skins[i].name, countof(skins[i].name), "skin%d", (int)i);
Printf (PRINT_BOLD, "Skin %s duplicated as %s\n",
skins[j].name, skins[i].name);
break;
@@ -657,7 +657,7 @@ void R_InitSkins (void)
if (!remove)
{
if (skins[i].name[0] == 0)
- sprintf (skins[i].name, "skin%d", (int)i);
+ mysnprintf (skins[i].name, countof(skins[i].name), "skin%d", (int)i);
// Now collect the sprite frames for this skin. If the sprite name was not
// specified, use whatever immediately follows the specifier lump.
diff --git a/src/s_advsound.cpp b/src/s_advsound.cpp
index 1a2c513f..b834dea2 100644
--- a/src/s_advsound.cpp
+++ b/src/s_advsound.cpp
@@ -1017,7 +1017,7 @@ static void S_AddSNDINFO (int lump)
char temp[16];
sc.MustGetNumber ();
- sprintf (temp, "MAP%02d", sc.Number);
+ mysnprintf (temp, countof(temp), "MAP%02d", sc.Number);
info = FindLevelInfo (temp);
sc.MustGetString ();
if (info->mapname[0] && (!(info->flags & LEVEL_MUSICDEFINED)))
diff --git a/src/s_sound.cpp b/src/s_sound.cpp
index a50d5c33..d47f2774 100644
--- a/src/s_sound.cpp
+++ b/src/s_sound.cpp
@@ -201,21 +201,21 @@ void S_NoiseDebug (void)
else
{
// X coordinate
- sprintf (temp, "%.0f", origin.X);
+ mysnprintf (temp, countof(temp), "%.0f", origin.X);
screen->DrawText (color, 70, y, temp, TAG_DONE);
// Y coordinate
- sprintf (temp, "%.0f", origin.Z);
+ mysnprintf (temp, countof(temp), "%.0f", origin.Z);
screen->DrawText (color, 120, y, temp, TAG_DONE);
// Z coordinate
- sprintf (temp, "%.0f", origin.Y);
+ mysnprintf (temp, countof(temp), "%.0f", origin.Y);
screen->DrawText (color, 170, y, temp, TAG_DONE);
// Distance
if (chan->DistanceScale > 0)
{
- sprintf (temp, "%.0f", (origin - listener).Length());
+ mysnprintf (temp, countof(temp), "%.0f", (origin - listener).Length());
screen->DrawText (color, 260, y, temp, TAG_DONE);
}
else
@@ -225,15 +225,15 @@ void S_NoiseDebug (void)
}
// Volume
- sprintf (temp, "%.2g", chan->Volume);
+ mysnprintf (temp, countof(temp), "%.2g", chan->Volume);
screen->DrawText (color, 220, y, temp, TAG_DONE);
// Channel
- sprintf (temp, "%d", chan->EntChannel);
+ mysnprintf (temp, countof(temp), "%d", chan->EntChannel);
screen->DrawText (color, 300, y, temp, TAG_DONE);
// Flags
- sprintf (temp, "%s3%sZ%sU%sM%sN%sA%sL%sE",
+ mysnprintf (temp, countof(temp), "%s3%sZ%sU%sM%sN%sA%sL%sE",
(chan->ChanFlags & CHAN_IS3D) ? TEXTCOLOR_GREEN : TEXTCOLOR_BLACK,
(chan->ChanFlags & CHAN_LISTENERZ) ? TEXTCOLOR_GREEN : TEXTCOLOR_BLACK,
(chan->ChanFlags & CHAN_UI) ? TEXTCOLOR_GREEN : TEXTCOLOR_BLACK,
@@ -1770,13 +1770,13 @@ bool S_ChangeCDMusic (int track, unsigned int id, bool looping)
{
char temp[32];
- if (id)
+ if (id != 0)
{
- sprintf (temp, ",CD,%d,%x", track, id);
+ mysnprintf (temp, countof(temp), ",CD,%d,%x", track, id);
}
else
{
- sprintf (temp, ",CD,%d", track);
+ mysnprintf (temp, countof(temp), ",CD,%d", track);
}
return S_ChangeMusic (temp, 0, looping);
}
@@ -2054,7 +2054,7 @@ CCMD (playsound)
CCMD (idmus)
{
level_info_t *info;
- char *map;
+ FString map;
int l;
if (argv.argc() > 1)
@@ -2063,7 +2063,9 @@ CCMD (idmus)
{
l = atoi (argv[1]);
if (l <= 99)
+ {
map = CalcMapName (0, l);
+ }
else
{
Printf ("%s\n", GStrings("STSTR_NOMUS"));
@@ -2137,9 +2139,13 @@ CCMD (cd_play)
char musname[16];
if (argv.argc() == 1)
+ {
strcpy (musname, ",CD,");
+ }
else
- sprintf (musname, ",CD,%d", atoi(argv[1]));
+ {
+ mysnprintf (musname, countof(musname), ",CD,%d", atoi(argv[1]));
+ }
S_ChangeMusic (musname, 0, true);
}
diff --git a/src/sound/music_midi_timidity.cpp b/src/sound/music_midi_timidity.cpp
index 442b1ef3..c16e5a08 100644
--- a/src/sound/music_midi_timidity.cpp
+++ b/src/sound/music_midi_timidity.cpp
@@ -474,7 +474,7 @@ bool TimiditySong::LaunchTimidity ()
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, err, 0, (LPTSTR)&msgBuf, 0, NULL))
{
- sprintf (hres, "%08lx", err);
+ mysnprintf (hres, countof(hres), "%08lx", err);
msgBuf = hres;
}
diff --git a/src/sound/music_timidity_mididevice.cpp b/src/sound/music_timidity_mididevice.cpp
index 92a0d08c..a96b06bc 100644
--- a/src/sound/music_timidity_mididevice.cpp
+++ b/src/sound/music_timidity_mididevice.cpp
@@ -468,10 +468,10 @@ int TimidityMIDIDevice::PlayTick()
};
#ifdef _WIN32
char buffer[128];
- sprintf(buffer, "C%02d: %11s %3d %3d\n", (status & 15) + 1, commands[(status >> 4) & 7], parm1, parm2);
+ mysnprintf(buffer, countof(buffer), "C%02d: %11s %3d %3d\n", (status & 15) + 1, commands[(status >> 4) & 7], parm1, parm2);
OutputDebugString(buffer);
#else
- fprintf(stderr, "C%02d: %11s %3d %3d\n", (status & 15) + 1, commands[(status >> 4) & 7], parm1, parm2);
+ //fprintf(stderr, "C%02d: %11s %3d %3d\n", (status & 15) + 1, commands[(status >> 4) & 7], parm1, parm2);
#endif
}
}
diff --git a/src/st_stuff.cpp b/src/st_stuff.cpp
index 47f007c5..655391c9 100644
--- a/src/st_stuff.cpp
+++ b/src/st_stuff.cpp
@@ -383,8 +383,8 @@ static bool Cht_ChangeLevel (cheatseq_t *cheat)
static bool Cht_ChangeStartSpot (cheatseq_t *cheat)
{
char cmd[64];
-
- sprintf (cmd, "changemap %s %c", level.mapname, cheat->Args[0]);
+
+ mysnprintf (cmd, countof(cmd), "changemap %s %c", level.mapname, cheat->Args[0]);
C_DoCommand (cmd);
return true;
}
diff --git a/src/stats.h b/src/stats.h
index 81066b3c..39aa7344 100644
--- a/src/stats.h
+++ b/src/stats.h
@@ -43,9 +43,13 @@ extern "C" double CyclesPerSecond;
#define _interlockedbittestandset64 hackfixfor
#define _interlockedbittestandreset64 x64compilation
+#define _interlockedbittestandset wtfnmake
+#define _interlockedbittestandreset doesittoo
#include
#undef _interlockedbittestandset64
#undef _interlockedbittestandreset64
+#undef _interlockedbittestandset
+#undef _interlockedbittestandreset
typedef QWORD cycle_t;
diff --git a/src/svnrevision.h b/src/svnrevision.h
index 551f9dbf..9cc96f13 100644
--- a/src/svnrevision.h
+++ b/src/svnrevision.h
@@ -3,5 +3,5 @@
// This file was automatically generated by the
// updaterevision tool. Do not edit by hand.
-#define ZD_SVN_REVISION_STRING "1076"
-#define ZD_SVN_REVISION_NUMBER 1076
+#define ZD_SVN_REVISION_STRING "1082"
+#define ZD_SVN_REVISION_NUMBER 1082
diff --git a/src/textures/buildtexture.cpp b/src/textures/buildtexture.cpp
index d89ff840..21e3cc41 100644
--- a/src/textures/buildtexture.cpp
+++ b/src/textures/buildtexture.cpp
@@ -79,7 +79,7 @@ FBuildTexture::FBuildTexture (int tilenum, const BYTE *pixels, int width, int he
LeftOffset = left;
TopOffset = top;
CalcBitSize ();
- sprintf (Name, "BTIL%04d", tilenum);
+ mysnprintf (Name, countof(Name), "BTIL%04d", tilenum);
UseType = TEX_Build;
}
diff --git a/src/thingdef/thingdef.cpp b/src/thingdef/thingdef.cpp
index 780f8bc9..5f9079c3 100644
--- a/src/thingdef/thingdef.cpp
+++ b/src/thingdef/thingdef.cpp
@@ -287,6 +287,10 @@ static void ParseActionDef (FScanner &sc, PClass *cls)
static FActorInfo *CreateNewActor(FScanner &sc, FActorInfo **parentc, Baggage *bag)
{
FName typeName;
+ const PClass *replacee = NULL;
+ int DoomEdNum = -1;
+ PClass *ti = NULL;
+ FActorInfo *info = NULL;
// Get actor name
sc.MustGetString();
@@ -339,10 +343,14 @@ static FActorInfo *CreateNewActor(FScanner &sc, FActorInfo **parentc, Baggage *b
{
sc.ScriptError ("Parent type '%s' not found", colon);
}
- else if (parent->ActorInfo == NULL)
+ else if (!parent->IsDescendantOf(RUNTIME_CLASS(AActor)))
{
sc.ScriptError ("Parent type '%s' is not an actor", colon);
}
+ else if (parent->ActorInfo == NULL)
+ {
+ sc.ScriptError ("uninitialized parent type '%s'", colon);
+ }
else
{
*parentc = parent->ActorInfo;
@@ -351,8 +359,57 @@ static FActorInfo *CreateNewActor(FScanner &sc, FActorInfo **parentc, Baggage *b
else sc.UnGet();
}
- PClass *ti = parent->CreateDerivedClass (typeName, parent->Size);
- FActorInfo *info = ti->ActorInfo;
+ // Check for "replaces"
+ if (sc.CheckString ("replaces"))
+ {
+
+ // Get actor name
+ sc.MustGetString ();
+ replacee = PClass::FindClass (sc.String);
+
+ if (replacee == NULL)
+ {
+ sc.ScriptError ("Replaced type '%s' not found", sc.String);
+ }
+ else if (replacee->ActorInfo == NULL)
+ {
+ sc.ScriptError ("Replaced type '%s' is not an actor", sc.String);
+ }
+ }
+
+ // Now, after the actor names have been parsed, it is time to switch to C-mode
+ // for the rest of the actor definition.
+ sc.SetCMode (true);
+ if (sc.CheckNumber())
+ {
+ if (sc.Number>=-1 && sc.Number<32768) DoomEdNum = sc.Number;
+ else sc.ScriptError ("DoomEdNum must be in the range [-1,32767]");
+ }
+
+ if (sc.CheckString("native"))
+ {
+ ti = (PClass*)PClass::FindClass(typeName);
+ if (ti == NULL)
+ {
+ sc.ScriptError("Unknown native class '%s'", typeName.GetChars());
+ }
+ else if (ti->ParentClass != parent)
+ {
+ sc.ScriptError("Native class '%s' does not inherit from '%s'",
+ typeName.GetChars(),parent->TypeName.GetChars());
+ }
+ else if (ti->ActorInfo != NULL)
+ {
+ sc.ScriptMessage("Redefinition of internal class '%s'", typeName.GetChars());
+ }
+ ti->InitializeActorInfo();
+ info = ti->ActorInfo;
+ }
+ else
+ {
+ ti = parent->CreateDerivedClass (typeName, parent->Size);
+ info = ti->ActorInfo;
+ }
MakeStateDefines(parent->ActorInfo->StateList);
@@ -373,40 +430,14 @@ static FActorInfo *CreateNewActor(FScanner &sc, FActorInfo **parentc, Baggage *b
*info->PainChances = *parent->ActorInfo->PainChances;
}
- // Check for "replaces"
- sc.MustGetString ();
- if (sc.Compare ("replaces"))
+ if (replacee != NULL)
{
- const PClass *replacee;
-
- // Get actor name
- sc.MustGetString ();
- replacee = PClass::FindClass (sc.String);
-
- if (replacee == NULL)
- {
- sc.ScriptError ("Replaced type '%s' not found", sc.String);
- }
- else if (replacee->ActorInfo == NULL)
- {
- sc.ScriptError ("Replaced type '%s' is not an actor", sc.String);
- }
replacee->ActorInfo->Replacement = ti->ActorInfo;
ti->ActorInfo->Replacee = replacee->ActorInfo;
}
- else
- {
- sc.UnGet();
- }
- // Now, after the actor names have been parsed, it is time to switch to C-mode
- // for the rest of the actor definition.
- sc.SetCMode (true);
- if (sc.CheckNumber())
- {
- if (sc.Number>=-1 && sc.Number<32768) info->DoomEdNum = sc.Number;
- else sc.ScriptError ("DoomEdNum must be in the range [-1,32767]");
- }
+ info->DoomEdNum = DoomEdNum;
+
if (parent == RUNTIME_CLASS(AWeapon))
{
// preinitialize kickback to the default for the game
@@ -707,8 +738,8 @@ void FinishThingdef()
for(int i=0;i<31;i++)
{
char fmt[20];
- sprintf(fmt, "QuestItem%d", i+1);
- QuestItemClasses[i]=PClass::FindClass(fmt);
+ mysnprintf(fmt, countof(fmt), "QuestItem%d", i+1);
+ QuestItemClasses[i] = PClass::FindClass(fmt);
}
}
diff --git a/src/thingdef/thingdef_properties.cpp b/src/thingdef/thingdef_properties.cpp
index ff9b63db..fd17e573 100644
--- a/src/thingdef/thingdef_properties.cpp
+++ b/src/thingdef/thingdef_properties.cpp
@@ -172,6 +172,7 @@ static flagdef ActorFlags[]=
DEFINE_FLAG(MF3, DONTOVERLAP, AActor, flags3),
DEFINE_FLAG(MF3, DONTMORPH, AActor, flags3),
DEFINE_FLAG(MF3, DONTSQUASH, AActor, flags3),
+ DEFINE_FLAG(MF3, EXPLOCOUNT, AActor, flags3),
DEFINE_FLAG(MF3, FULLVOLACTIVE, AActor, flags3),
DEFINE_FLAG(MF3, ISMONSTER, AActor, flags3),
DEFINE_FLAG(MF3, SKYEXPLODE, AActor, flags3),
diff --git a/src/timidity/instrum_dls.cpp b/src/timidity/instrum_dls.cpp
index 13a0528c..5be96f71 100644
--- a/src/timidity/instrum_dls.cpp
+++ b/src/timidity/instrum_dls.cpp
@@ -784,7 +784,7 @@ static const char *SourceToString(USHORT usSource)
case CONN_SRC_CC93:
return "CC93";
default:
- sprintf(unknown, "UNKNOWN (0x%04x)", usSource);
+ mysnprintf(unknown, countof(unknown), "UNKNOWN (0x%04x)", usSource);
return unknown;
}
}
@@ -802,7 +802,7 @@ static const char *TransformToString(USHORT usTransform)
case CONN_TRN_SWITCH:
return "SWITCH";
default:
- sprintf(unknown, "UNKNOWN (0x%04x)", usTransform);
+ mysnprintf(unknown, countof(unknown), "UNKNOWN (0x%04x)", usTransform);
return unknown;
}
}
@@ -876,7 +876,7 @@ static const char *DestinationToString(USHORT usDestination)
case CONN_DST_FILTER_Q:
return "FILTER_Q";
default:
- sprintf(unknown, "UNKNOWN (0x%04x)", usDestination);
+ mysnprintf(unknown, countof(unknown), "UNKNOWN (0x%04x)", usDestination);
return unknown;
}
}
diff --git a/src/tmap.nas b/src/tmap.nas
index e27b7ca1..28d2ba39 100644
--- a/src/tmap.nas
+++ b/src/tmap.nas
@@ -33,7 +33,7 @@
BITS 32
-%include "src/valgrind.inc"
+%include "valgrind.inc"
; Segment/section definition macros.
diff --git a/src/tmap2.nas b/src/tmap2.nas
index da95a3d8..7f6ed82d 100644
--- a/src/tmap2.nas
+++ b/src/tmap2.nas
@@ -37,7 +37,7 @@
BITS 32
-%include "src/valgrind.inc"
+%include "valgrind.inc"
%define SPACEFILLER4 (0x44444444)
diff --git a/src/tmap3.nas b/src/tmap3.nas
index 05b68aae..49444419 100644
--- a/src/tmap3.nas
+++ b/src/tmap3.nas
@@ -1,4 +1,4 @@
-%include "src/valgrind.inc"
+%include "valgrind.inc"
%ifdef M_TARGET_WATCOM
SEGMENT DATA PUBLIC ALIGN=16 CLASS=DATA USE32
diff --git a/src/v_font.cpp b/src/v_font.cpp
index d4c1c6f5..0b428826 100644
--- a/src/v_font.cpp
+++ b/src/v_font.cpp
@@ -306,7 +306,7 @@ FFont::FFont (const char *name, const char *nametemplate, int first, int count,
for (i = 0; i < count; i++)
{
charlumps[i] = -1;
- sprintf (buffer, nametemplate, i + start);
+ mysnprintf (buffer, countof(buffer), nametemplate, i + start);
lump = Wads.CheckNumForName (buffer, ns_graphics);
if (doomtemplate && lump >= 0 && i + start == 121)
{ // HACKHACK: Don't load STCFN121 in doom(2), because
diff --git a/src/v_video.cpp b/src/v_video.cpp
index fdb351f8..1835fb0e 100644
--- a/src/v_video.cpp
+++ b/src/v_video.cpp
@@ -819,7 +819,7 @@ void DFrameBuffer::DrawRateStuff ()
int chars;
int rate_x;
- chars = sprintf (fpsbuff, "%2u ms (%3u fps)", howlong, LastCount);
+ chars = mysnprintf (fpsbuff, countof(fpsbuff), "%2u ms (%3u fps)", howlong, LastCount);
rate_x = Width - chars * 8;
Clear (rate_x, 0, Width, 8, 0, 0);
SetFont (ConFont);
diff --git a/src/w_wad.cpp b/src/w_wad.cpp
index f2bd9543..249e5d20 100644
--- a/src/w_wad.cpp
+++ b/src/w_wad.cpp
@@ -465,13 +465,10 @@ void FWadCollection::AddFile (const char *filename, const char * data, int lengt
// Rearrange the name and extension in a part of the lump record
// that I don't have any use for in order to cnstruct the fullname.
rff_p->Name[8] = '\0';
- sprintf ((char *)rff_p->IDontKnow, "%s.", rff_p->Name);
- rff_p->Name[0] = '\0';
+ strcpy ((char *)rff_p->IDontKnow, rff_p->Name);
+ strcat ((char *)rff_p->IDontKnow, ".");
strcat ((char *)rff_p->IDontKnow, rff_p->Extension);
lump_p->fullname = copystring ((char *)rff_p->IDontKnow);
- if (strstr ((char *)rff_p->IDontKnow, "TILE"))
- rff_p = rff_p;
-
lump_p++;
}
Printf (" (%u files)", header.rff.NumLumps);
@@ -715,7 +712,7 @@ void FWadCollection::AddFile (const char *filename, const char * data, int lengt
{
char path[256];
- sprintf(path, "%s:", filename);
+ mysnprintf(path, countof(path), "%s:", filename);
char * wadstr = path+strlen(path);
for(unsigned int i = 0; i < EmbeddedWADs.Size(); i++)
diff --git a/src/wi_stuff.cpp b/src/wi_stuff.cpp
index c0ffc559..7c5b443f 100644
--- a/src/wi_stuff.cpp
+++ b/src/wi_stuff.cpp
@@ -317,10 +317,10 @@ void WI_LoadBackground(bool isenterpic)
case GAME_Doom:
if (gamemode != commercial)
{
- char * level = isenterpic? wbs->next : wbs->current;
+ const char *level = isenterpic ? wbs->next : wbs->current;
if (IsExMy(level))
{
- sprintf(buffer, "$IN_EPI%c", level[1]);
+ mysnprintf(buffer, countof(buffer), "$IN_EPI%c", level[1]);
lumpname = buffer;
}
}
@@ -353,7 +353,7 @@ void WI_LoadBackground(bool isenterpic)
{
if (IsExMy(wbs->next))
{
- sprintf(buffer, "$IN_HTC%c", wbs->next[1]);
+ mysnprintf(buffer, countof(buffer), "$IN_HTC%c", wbs->next[1]);
lumpname = buffer;
}
}
@@ -842,7 +842,7 @@ void WI_drawEL ()
//
//====================================================================
-int WI_MapToIndex (char *map)
+int WI_MapToIndex (const char *map)
{
unsigned int i;
@@ -904,11 +904,11 @@ int WI_drawNum (int x, int y, int n, int digits, bool leadingzeros = true)
if (leadingzeros)
{
- sprintf (text, "%07d", n);
+ mysnprintf (text, countof(text), "%07d", n);
}
else
{
- sprintf (text, "%7d", n);
+ mysnprintf (text, countof(text), "%7d", n);
if (digits < 0)
{
text_p = strrchr (text, ' ');
@@ -1980,7 +1980,7 @@ void WI_loadData(void)
for (i = 0; i < 10; i++)
{ // numbers 0-9
- sprintf (name, "WINUM%d", i);
+ mysnprintf (name, countof(name), "WINUM%d", i);
num[i] = TexMan[name];
}
}
@@ -2004,7 +2004,7 @@ void WI_loadData(void)
for (i = 0; i < 10; i++)
{
- sprintf (name, "FONTB%d", 16 + i);
+ mysnprintf (name, countof(name), "FONTB%d", 16 + i);
num[i] = TexMan[name];
}
}
diff --git a/src/wi_stuff.h b/src/wi_stuff.h
index 28be48f0..a3a0e07e 100644
--- a/src/wi_stuff.h
+++ b/src/wi_stuff.h
@@ -47,11 +47,11 @@ typedef struct wbstartstruct_s
int finished_ep;
int next_ep;
- char current[9]; // [RH] Name of map just finished
- char next[9]; // next level, [RH] actual map name
+ FString current; // [RH] Name of map just finished
+ FString next; // next level, [RH] actual map name
- char lname0[9];
- char lname1[9];
+ FString lname0;
+ FString lname1;
int maxkills;
int maxitems;
diff --git a/src/win32/eaxedit.cpp b/src/win32/eaxedit.cpp
index b94b0948..fa73ce4b 100644
--- a/src/win32/eaxedit.cpp
+++ b/src/win32/eaxedit.cpp
@@ -196,7 +196,7 @@ LRESULT AddEnvToDropDown (HWND hCtl, bool showID, const ReverbContainer *env)
if (showID)
{
- sprintf (buff, "(%3d,%3d) %s", HIBYTE(env->ID), LOBYTE(env->ID), env->Name);
+ mysnprintf (buff, countof(buff), "(%3d,%3d) %s", HIBYTE(env->ID), LOBYTE(env->ID), env->Name);
i = SendMessage (hCtl, CB_ADDSTRING, 0, (LPARAM)buff);
}
else
@@ -255,9 +255,9 @@ void SetIDEdits (HWND hDlg, WORD id)
{
char text[4];
- sprintf (text, "%d", HIBYTE(id));
+ mysnprintf (text, countof(text), "%d", HIBYTE(id));
SendMessage (GetDlgItem (hDlg, IDC_EDITID1), WM_SETTEXT, 0, (LPARAM)text);
- sprintf (text, "%d", LOBYTE(id));
+ mysnprintf (text, countof(text), "%d", LOBYTE(id));
SendMessage (GetDlgItem (hDlg, IDC_EDITID2), WM_SETTEXT, 0, (LPARAM)text);
}
@@ -406,11 +406,11 @@ LRESULT CALLBACK EditControlProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lP
int vali = SendMessage (env->SliderHWND, TBM_GETPOS, 0, 0);
if (env->Float)
{
- sprintf (buff, "%d.%03d", vali/1000, abs(vali%1000));
+ mysnprintf (buff, countof(buff), "%d.%03d", vali/1000, abs(vali%1000));
}
else
{
- sprintf (buff, "%d", vali);
+ mysnprintf (buff, countof(buff), "%d", vali);
}
CallWindowProc (StdEditProc, hWnd, WM_SETTEXT, 0, (LPARAM)buff);
CallWindowProc (StdEditProc, hWnd, EM_SETSEL, 0, -1);
@@ -487,7 +487,7 @@ void UpdateControl (const EnvControl *control, int value, bool slider)
}
if (control->Float)
{
- sprintf (buff, "%d.%03d", value/1000, abs(value%1000));
+ mysnprintf (buff, countof(buff), "%d.%03d", value/1000, abs(value%1000));
if (CurrentEnv != NULL)
{
CurrentEnv->Properties.*control->Float = float(value) / 1000.0;
@@ -495,7 +495,7 @@ void UpdateControl (const EnvControl *control, int value, bool slider)
}
else
{
- sprintf (buff, "%d", value);
+ mysnprintf (buff, countof(buff), "%d", value);
if (CurrentEnv != NULL)
{
CurrentEnv->Properties.*control->Int = value;
@@ -542,10 +542,10 @@ void UpdateControls (ReverbContainer *env, HWND hDlg)
}
EnableWindow (GetDlgItem (hDlg, IDC_REVERT), !env->Builtin);
- sprintf (buff, "%d", HIBYTE(env->ID));
+ mysnprintf (buff, countof(buff), "%d", HIBYTE(env->ID));
SendMessage (GetDlgItem (hDlg, IDC_ID1), WM_SETTEXT, 0, (LPARAM)buff);
- sprintf (buff, "%d", LOBYTE(env->ID));
+ mysnprintf (buff, countof(buff), "%d", LOBYTE(env->ID));
SendMessage (GetDlgItem (hDlg, IDC_ID2), WM_SETTEXT, 0, (LPARAM)buff);
SavedProperties = env->Properties;
@@ -690,7 +690,7 @@ void SuggestNewName (const ReverbContainer *env, HWND hEdit)
{
len = 31 - numdigits;
}
- sprintf (text + len, "%d", number);
+ mysnprintf (text + len, countof(text) - len, "%d", number);
probe = Environments;
while (probe != NULL)
@@ -829,7 +829,7 @@ INT_PTR CALLBACK NewEAXProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
static char foo[80];
ti.uId = 2;
ti.hwnd = GetDlgItem (hDlg, IDC_EDITID2);
- sprintf (foo, "This ID is already used by \"%s\".", rev->Name);
+ mysnprintf (foo, countof(foo), "This ID is already used by \"%s\".", rev->Name);
ti.lpszText = foo;
ShowErrorTip (ToolTip, ti, hDlg, "Bad ID");
}
diff --git a/src/win32/fb_ddraw.cpp b/src/win32/fb_ddraw.cpp
index 19aeeb21..d4438ba4 100644
--- a/src/win32/fb_ddraw.cpp
+++ b/src/win32/fb_ddraw.cpp
@@ -1164,7 +1164,7 @@ void DDrawFB::Update ()
}
unclock (BlitCycles);
- LOG1 ("cycles = %d\n", BlitCycles);
+ LOG1 ("cycles = %llu\n", BlitCycles);
Buffer = NULL;
LockCount = 0;
diff --git a/src/win32/i_crash.cpp b/src/win32/i_crash.cpp
index 16841194..dec1b380 100644
--- a/src/win32/i_crash.cpp
+++ b/src/win32/i_crash.cpp
@@ -53,6 +53,9 @@
#include
#include
#include
+
+#define USE_WINDOWS_DWORD
+#include "doomtype.h"
#include "resource.h"
#include "version.h"
#include "m_swap.h"
@@ -637,23 +640,24 @@ HANDLE WriteTextReport ()
break;
}
}
- j = sprintf (CrashSummary, "Code: %08lX", CrashPointers.ExceptionRecord->ExceptionCode);
+ j = mysnprintf (CrashSummary, countof(CrashSummary), "Code: %08lX", CrashPointers.ExceptionRecord->ExceptionCode);
if ((size_t)i < sizeof(exceptions)/sizeof(exceptions[0]))
{
- j += sprintf (CrashSummary + j, " (%s", exceptions[i].Text);
+ j += mysnprintf (CrashSummary + j, countof(CrashSummary) - j, " (%s", exceptions[i].Text);
if (CrashPointers.ExceptionRecord->ExceptionCode == EXCEPTION_ACCESS_VIOLATION)
{
// Pre-NT kernels do not seem to provide this information.
if (verinfo.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS)
{
- j += sprintf (CrashSummary + j, " - tried to %s address %08lX",
+ j += mysnprintf (CrashSummary + j, countof(CrashSummary) - j,
+ " - tried to %s address %08lX",
CrashPointers.ExceptionRecord->ExceptionInformation[0] ? "write" : "read",
CrashPointers.ExceptionRecord->ExceptionInformation[1]);
}
}
CrashSummary[j++] = ')';
}
- j += sprintf (CrashSummary + j, "\r\nAddress: %p", CrashPointers.ExceptionRecord->ExceptionAddress);
+ j += mysnprintf (CrashSummary + j, countof(CrashSummary) - j, "\r\nAddress: %p", CrashPointers.ExceptionRecord->ExceptionAddress);
Writef (file, "%s\r\nFlags: %08X\r\n\r\n", CrashSummary, CrashPointers.ExceptionRecord->ExceptionFlags);
Writef (file, "Windows %s %d.%d Build %d %s\r\n\r\n",
@@ -1125,15 +1129,15 @@ static void DumpBytes (HANDLE file, BYTE *address)
{
if ((i & 15) == 0)
{
- line_p += sprintf (line_p, "\r\n%p:", address);
+ line_p += mysnprintf (line_p, countof(line) - (line_p - line), "\r\n%p:", address);
}
if (SafeReadMemory (address, &peek, 1))
{
- line_p += sprintf (line_p, " %02x", *address);
+ line_p += mysnprintf (line_p, countof(line) - (line_p - line), " %02x", *address);
}
else
{
- line_p += sprintf (line_p, " --");
+ line_p += mysnprintf (line_p, countof(line) - (line_p - line), " --");
}
address++;
}
@@ -1918,12 +1922,13 @@ static DWORD CALLBACK StreamEditBinary (DWORD_PTR cookie, LPBYTE buffer, LONG cb
BYTE buf16[16];
DWORD read, i;
char *buff_p = (char *)buffer;
+ char *buff_end = (char *)buffer + cb;
repeat:
switch (info->Stage)
{
case 0: // Write prologue
- buff_p += sprintf (buff_p, "{\\rtf1\\ansi\\deff0"
+ buff_p += mysnprintf (buff_p, buff_end - buff_p, "{\\rtf1\\ansi\\deff0"
"{\\colortbl ;\\red0\\green0\\blue80;\\red0\\green0\\blue0;\\red80\\green0\\blue80;}"
"\\viewkind4\\pard");
info->Stage++;
@@ -1939,19 +1944,19 @@ repeat:
goto repeat;
}
char *linestart = buff_p;
- buff_p += sprintf (buff_p, "\\cf1 %08lx:\\cf2 ", info->Pointer);
+ buff_p += mysnprintf (buff_p, buff_end - buff_p, "\\cf1 %08lx:\\cf2 ", info->Pointer);
info->Pointer += read;
for (i = 0; i < read;)
{
if (i <= read - 4)
{
- buff_p += sprintf (buff_p, " %08lx", *(DWORD *)&buf16[i]);
+ buff_p += mysnprintf (buff_p, buff_end - buff_p, " %08lx", *(DWORD *)&buf16[i]);
i += 4;
}
else
{
- buff_p += sprintf (buff_p, " %02x", buf16[i]);
+ buff_p += mysnprintf (buff_p, buff_end - buff_p, " %02x", buf16[i]);
i += 1;
}
}
@@ -1959,7 +1964,7 @@ repeat:
{
*buff_p++ = ' ';
}
- buff_p += sprintf (buff_p, "\\cf3 ");
+ buff_p += mysnprintf (buff_p, buff_end - buff_p, "\\cf3 ");
for (i = 0; i < read; ++i)
{
BYTE code = buf16[i];
@@ -1967,17 +1972,17 @@ repeat:
if (code == '\\' || code == '{' || code == '}') *buff_p++ = '\\';
*buff_p++ = code;
}
- buff_p += sprintf (buff_p, "\\par\r\n");
+ buff_p += mysnprintf (buff_p, buff_end - buff_p, "\\par\r\n");
}
break;
case 2: // Write epilogue
- buff_p += sprintf (buff_p, "\\cf0 }");
+ buff_p += mysnprintf (buff_p, buff_end - buff_p, "\\cf0 }");
info->Stage = 4;
break;
case 3: // Write epilogue for truncated file
- buff_p += sprintf (buff_p, "--- Rest of file truncated ---\\cf0 }");
+ buff_p += mysnprintf (buff_p, buff_end - buff_p, "--- Rest of file truncated ---\\cf0 }");
info->Stage = 4;
break;
@@ -2015,11 +2020,11 @@ static void SetEditControl (HWND edit, HWND sizedisplay, int filenum)
size = GetFileSize (TarFiles[filenum].File, NULL);
if (size < 1024)
{
- sprintf (sizebuf, "(%lu bytes)", size);
+ mysnprintf (sizebuf, countof(sizebuf), "(%lu bytes)", size);
}
else
{
- sprintf (sizebuf, "(%lu KB)", size/1024);
+ mysnprintf (sizebuf, countof(sizebuf), "(%lu KB)", size/1024);
}
SetWindowText (sizedisplay, sizebuf);
@@ -2125,7 +2130,7 @@ static void UploadFail (HWND hDlg, const char *message, int reason)
{
char buff[512];
- sprintf (buff, "%s: %d", message, reason);
+ mysnprintf (buff, countof(buff), "%s: %d", message, reason);
SetWindowText (GetDlgItem (hDlg, IDC_BOINGSTATUS), buff);
if (reason >= 10000 && reason <= 11999)
@@ -2681,7 +2686,7 @@ static DWORD WINAPI UploadProc (LPVOID lpParam)
sizeof(MultipartBinaryHeader)-1 +
sizeof(MultipartHeaderGZip)-1 + fileLen +
sizeof(MultipartFooter)-1;
- headerLen = sprintf (xferbuf, PostHeader, contentLength);
+ headerLen = mysnprintf (xferbuf, countof(xferbuf), PostHeader, contentLength);
bytesSent = send (sock, xferbuf, headerLen, 0);
if (bytesSent != headerLen)
{
@@ -2710,7 +2715,7 @@ static DWORD WINAPI UploadProc (LPVOID lpParam)
UploadFail (parm->hDlg, "Could not upload report", WSAGetLastError());
throw 1;
}
- headerLen = sprintf (xferbuf, "Windows %08lX %p %X %08lX %08lX %08lX %08lX %08lX %s",
+ headerLen = mysnprintf (xferbuf, countof(xferbuf), "Windows %08lX %p %X %08lX %08lX %08lX %08lX %08lX %s",
CrashPointers.ExceptionRecord->ExceptionCode,
CrashPointers.ExceptionRecord->ExceptionAddress,
!!CrashPointers.ExceptionRecord->ExceptionInformation[0],
@@ -2746,7 +2751,7 @@ static DWORD WINAPI UploadProc (LPVOID lpParam)
}
// Send the report file.
- headerLen = sprintf (xferbuf, "%s%s", MultipartBinaryHeader, MultipartHeaderZip);
+ headerLen = mysnprintf (xferbuf, countof(xferbuf), "%s%s", MultipartBinaryHeader, MultipartHeaderZip);
bytesSent = send (sock, xferbuf, headerLen, 0);
if (bytesSent == SOCKET_ERROR)
@@ -3059,7 +3064,7 @@ void DisplayCrashLog ()
GAMENAME" crashed but was unable to produce\n"
"detailed information about the crash.\n"
"\nThis is all that is available:\n\nCode=XXXXXXXX\nAddr=XXXXXXXX";
- sprintf (ohPoo + sizeof(ohPoo) - 23, "%08lX\nAddr=%p", CrashCode, CrashAddress);
+ mysnprintf (ohPoo + countof(ohPoo) - 23, 23, "%08lX\nAddr=%p", CrashCode, CrashAddress);
MessageBox (NULL, ohPoo, GAMENAME" Very Fatal Error", MB_OK|MB_ICONSTOP);
if (WinHlp32 != NULL)
{
diff --git a/src/win32/i_input.cpp b/src/win32/i_input.cpp
index 0314fffc..debe7efb 100644
--- a/src/win32/i_input.cpp
+++ b/src/win32/i_input.cpp
@@ -827,7 +827,7 @@ LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
}
#ifdef _DEBUG
char foo[256];
- sprintf (foo, "Session Change: %ld %d\n", lParam, wParam);
+ mysnprintf (foo, countof(foo), "Session Change: %ld %d\n", lParam, wParam);
OutputDebugString (foo);
#endif
}
@@ -1064,7 +1064,7 @@ bool SetJoystickSection (bool create)
if (g_pJoy != NULL && SUCCEEDED(g_pJoy->GetDeviceInfo (&inst)))
{
- FormatGUID (section + 9, inst.guidInstance);
+ FormatGUID (section + 9, countof(section) - 9, inst.guidInstance);
strcpy (section + 9 + 38, ".Axes");
return GameConfig->SetSection (section, create);
}
diff --git a/src/win32/i_main.cpp b/src/win32/i_main.cpp
index 783e0244..7adef077 100644
--- a/src/win32/i_main.cpp
+++ b/src/win32/i_main.cpp
@@ -964,22 +964,23 @@ void DoMain (HINSTANCE hInstance)
//
//==========================================================================
-void DoomSpecificInfo (char *buffer)
+void DoomSpecificInfo (char *buffer, size_t bufflen)
{
const char *arg;
+ char *const buffend = buffer + bufflen - 2; // -2 for CRLF at end
int i;
- buffer += wsprintf (buffer, "ZDoom version " DOTVERSIONSTR " (" __DATE__ ")\r\n");
- buffer += wsprintf (buffer, "\r\nCommand line: %s\r\n", GetCommandLine());
+ buffer += mysnprintf (buffer, buffend - buffer, "ZDoom version " DOTVERSIONSTR " (" __DATE__ ")\r\n");
+ buffer += mysnprintf (buffer, buffend - buffer, "\r\nCommand line: %s\r\n", GetCommandLine());
for (i = 0; (arg = Wads.GetWadName (i)) != NULL; ++i)
{
- buffer += wsprintf (buffer, "\r\nWad %d: %s", i, arg);
+ buffer += mysnprintf (buffer, buffend - buffer, "\r\nWad %d: %s", i, arg);
}
if (gamestate != GS_LEVEL && gamestate != GS_TITLELEVEL)
{
- buffer += wsprintf (buffer, "\r\n\r\nNot in a level.");
+ buffer += mysnprintf (buffer, buffend - buffer, "\r\n\r\nNot in a level.");
}
else
{
@@ -987,18 +988,18 @@ void DoomSpecificInfo (char *buffer)
strncpy (name, level.mapname, 8);
name[8] = 0;
- buffer += wsprintf (buffer, "\r\n\r\nCurrent map: %s", name);
+ buffer += mysnprintf (buffer, buffend - buffer, "\r\n\r\nCurrent map: %s", name);
if (!viewactive)
{
- buffer += wsprintf (buffer, "\r\n\r\nView not active.");
+ buffer += mysnprintf (buffer, buffend - buffer, "\r\n\r\nView not active.");
}
else
{
- buffer += wsprintf (buffer, "\r\n\r\nviewx = %d", viewx);
- buffer += wsprintf (buffer, "\r\nviewy = %d", viewy);
- buffer += wsprintf (buffer, "\r\nviewz = %d", viewz);
- buffer += wsprintf (buffer, "\r\nviewangle = %x", viewangle);
+ buffer += mysnprintf (buffer, buffend - buffer, "\r\n\r\nviewx = %d", viewx);
+ buffer += mysnprintf (buffer, buffend - buffer, "\r\nviewy = %d", viewy);
+ buffer += mysnprintf (buffer, buffend - buffer, "\r\nviewz = %d", viewz);
+ buffer += mysnprintf (buffer, buffend - buffer, "\r\nviewangle = %x", viewangle);
}
}
*buffer++ = '\r';
@@ -1093,7 +1094,7 @@ LONG WINAPI CatchAllExceptions (LPEXCEPTION_POINTERS info)
char *custominfo = (char *)HeapAlloc (GetProcessHeap(), 0, 16384);
CrashPointers = *info;
- DoomSpecificInfo (custominfo);
+ DoomSpecificInfo (custominfo, 16384);
CreateCrashLog (custominfo, (DWORD)strlen(custominfo));
// If the main thread crashed, then make it clean up after itself.
diff --git a/src/win32/i_system.cpp b/src/win32/i_system.cpp
index 48d21966..80745fdf 100644
--- a/src/win32/i_system.cpp
+++ b/src/win32/i_system.cpp
@@ -515,74 +515,6 @@ void I_Quit (void)
extern FILE *Logfile;
bool gameisdead;
-// We should use ZDoom's internal formatting routine here so that the extended
-// format specifiers work here as well.
-
-struct snprintf_state
-{
- char *buffer;
- size_t maxlen;
- size_t curlen;
- int ideallen;
-};
-
-static int myvsnprintf_helper(void *data, const char *cstr, int cstr_len)
-{
- snprintf_state *state = (snprintf_state *)data;
-
- if (INT_MAX - state->ideallen > cstr_len)
- {
- state->ideallen = INT_MAX;
- }
- else
- {
- state->ideallen += cstr_len;
- }
- if (state->curlen + cstr_len > state->maxlen)
- {
- cstr_len = (int)(state->maxlen - state->curlen);
- }
- if (cstr_len > 0)
- {
- memcpy(state->buffer + state->curlen, cstr, cstr_len);
- state->curlen += cstr_len;
- }
- return cstr_len;
-}
-
-// Unlike the MS CRT function snprintf, this one always writes a terminating
-// null character to the buffer. It also returns the full length of the string
-// that would have been output if the buffer had been large enough. In other
-// words, it follows BSD/Linux rules and not MS rules.
-int myvsnprintf(char *buffer, size_t count, const char *format, va_list argptr)
-{
- size_t originalcount = count;
- if (count != 0)
- {
- count--;
- }
- if (count > INT_MAX)
- {
- count = INT_MAX;
- }
- snprintf_state state = { buffer, count, 0, 0 };
- StringFormat::VWorker(myvsnprintf_helper, &state, format, argptr);
- if (originalcount > 0)
- {
- buffer[state.curlen] = '\0';
- }
- return state.ideallen;
-}
-
-int mysnprintf(char *buffer, size_t count, const char *format, ...)
-{
- va_list argptr;
- va_start(argptr, format);
- int len = myvsnprintf(buffer, count, format, argptr);
- va_end(argptr);
- return len;
-}
-
void STACK_ARGS I_FatalError (const char *error, ...)
{
static BOOL alreadyThrown = false;
diff --git a/src/win32/st_start.cpp b/src/win32/st_start.cpp
index 10a832fc..66c7512c 100644
--- a/src/win32/st_start.cpp
+++ b/src/win32/st_start.cpp
@@ -548,7 +548,7 @@ void FBasicStartupScreen :: NetProgress(int count)
{
char buf[16];
- sprintf (buf, "%d/%d", NetCurPos, NetMaxPos);
+ mysnprintf (buf, countof(buf), "%d/%d", NetCurPos, NetMaxPos);
SetDlgItemText (NetStartPane, IDC_NETSTARTCOUNT, buf);
SendDlgItemMessage (NetStartPane, IDC_NETSTARTPROGRESS, PBM_SETPOS, MIN(NetCurPos, NetMaxPos), 0);
}
diff --git a/src/win32/win32iface.h b/src/win32/win32iface.h
index c54e4d40..1114d550 100644
--- a/src/win32/win32iface.h
+++ b/src/win32/win32iface.h
@@ -425,11 +425,11 @@ FILE *dbg;
#define STARTLOG
#define STOPLOG
#define LOG(x) { OutputDebugString(x); }
-#define LOG1(x,y) { char poo[1024]; sprintf(poo, x, y); OutputDebugString(poo); }
-#define LOG2(x,y,z) { char poo[1024]; sprintf(poo, x, y, z); OutputDebugString(poo); }
-#define LOG3(x,y,z,zz) { char poo[1024]; sprintf(poo, x, y, z, zz); OutputDebugString(poo); }
-#define LOG4(x,y,z,a,b) { char poo[1024]; sprintf(poo, x, y, z, a, b); OutputDebugString(poo); }
-#define LOG5(x,y,z,a,b,c) { char poo[1024]; sprintf(poo, x, y, z, a, b, c); OutputDebugString(poo); }
+#define LOG1(x,y) { char poo[1024]; mysnprintf(poo, countof(poo), x, y); OutputDebugString(poo); }
+#define LOG2(x,y,z) { char poo[1024]; mysnprintf(poo, countof(poo), x, y, z); OutputDebugString(poo); }
+#define LOG3(x,y,z,zz) { char poo[1024]; mysnprintf(poo, countof(poo), x, y, z, zz); OutputDebugString(poo); }
+#define LOG4(x,y,z,a,b) { char poo[1024]; mysnprintf(poo, countof(poo), x, y, z, a, b); OutputDebugString(poo); }
+#define LOG5(x,y,z,a,b,c) { char poo[1024]; mysnprintf(poo, countof(poo), x, y, z, a, b, c); OutputDebugString(poo); }
#else
#define STARTLOG
#define STOPLOG
diff --git a/src/zstrformat.cpp b/src/zstrformat.cpp
index 567ebbd8..bcb26490 100644
--- a/src/zstrformat.cpp
+++ b/src/zstrformat.cpp
@@ -1,11 +1,96 @@
+/*
+** zstrformat.cpp
+** Routines for generic printf-style formatting.
+**
+**---------------------------------------------------------------------------
+** Copyright 2005-2008 Randy Heit
+** All rights reserved.
+**
+** Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions
+** are met:
+**
+** 1. Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** 2. Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in the
+** documentation and/or other materials provided with the distribution.
+** 3. The name of the author may not be used to endorse or promote products
+** derived from this software without specific prior written permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+** THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+**---------------------------------------------------------------------------
+**
+** Portions of this file relating to printing floating point numbers
+** are covered by the following copyright:
+**
+**---------------------------------------------------------------------------
+** Copyright (c) 1990, 1993
+** The Regents of the University of California. All rights reserved.
+**
+** This code is derived from software contributed to Berkeley by
+** Chris Torek.
+**
+** Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions
+** are met:
+** 1. Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** 2. Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in the
+** documentation and/or other materials provided with the distribution.
+** 4. Neither the name of the University nor the names of its contributors
+** may be used to endorse or promote products derived from this software
+** without specific prior written permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+** ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+** OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+** HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+** OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+** SUCH DAMAGE.
+**
+**---------------------------------------------------------------------------
+**
+** Even though the standard C library has a function to do printf-style
+** formatting in a generic way, there is no standard interface to this
+** function. So if you want to do some printf formatting that doesn't fit in
+** the context of the provided functions, you need to roll your own. Why is
+** that?
+**
+** Maybe Microsoft wants you to write a better one yourself? When used as
+** part of a sprintf replacement, this function is significantly faster than
+** Microsoft's offering. When used as part of a fprintf replacement, this
+** function turns out to be slower, but that's probably because the CRT's
+** fprintf can interact with the FILE object on a low level for better
+** perfomance. If you sprintf into a buffer and then fwrite that buffer, this
+** routine wins again, though the difference isn't great.
+*/
+
#include
#include
#include
#include
#include
#include
+#include
#include "zstring.h"
+#include "gdtoa.h"
#ifndef _MSC_VER
#include
@@ -14,21 +99,32 @@ typedef unsigned __int64 uint64_t;
typedef signed __int64 int64_t;
#endif
-// Even though the standard C library has a function to do printf-style formatting in a
-// generic way, there is no standard interface to this function. So if you want to do
-// some printf formatting that doesn't fit in the context of the provided functions,
-// you need to roll your own. Why is that?
-//
-// Maybe Microsoft wants you to write a better one yourself? When used as part of a
-// sprintf replacement, this function is significantly faster than Microsoft's
-// offering. When used as part of a fprintf replacement, this function turns out to
-// be slower, but that's probably because the CRT's fprintf can interact with the
-// FILE object on a low level for better perfomance. If you sprintf into a buffer
-// and then fwrite that buffer, this routine wins again, though the difference isn't
-// great.
+/*
+ * MAXEXPDIG is the maximum number of decimal digits needed to store a
+ * floating point exponent in the largest supported format. It should
+ * be ceil(log10(LDBL_MAX_10_EXP)) or, if hexadecimal floating point
+ * conversions are supported, ceil(log10(LDBL_MAX_EXP)). But since it
+ * is presently never greater than 5 in practice, we fudge it.
+ */
+#define MAXEXPDIG 6
+#if LDBL_MAX_EXP > 999999
+#error "floating point buffers too small"
+#endif
+
+#define DEFPREC 6
+
+static const char hexits[16] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
+static const char HEXits[16] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
+static const char spaces[16] = {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '};
+static const char zeroes[17] = {'0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','.'};
+static const char dotchar = '.';
namespace StringFormat
{
+ static int writepad (OutputFunc output, void *outputData, const char *pad, int padsize, int spaceToFill);
+ static int printandpad (OutputFunc output, void *outputData, const char *p, const char *ep, int len, const char *with, int padsize);
+ static int exponent (char *p0, int exp, int fmtch);
+
int Worker (OutputFunc output, void *outputData, const char *fmt, ...)
{
va_list arglist;
@@ -40,43 +136,6 @@ namespace StringFormat
return len;
}
- static inline int writepad (OutputFunc output, void *outputData, const char *pad, int padsize, int spaceToFill)
- {
- int outlen = 0;
- while (spaceToFill > 0)
- {
- int count = spaceToFill > padsize ? padsize : spaceToFill;
- outlen += output (outputData, pad, count);
- spaceToFill -= count;
- }
- return outlen;
- }
-
- // Gasp! This is supposed to be a replacement for sprintf formatting, but
- // I used sprintf for doubles anyway! Oh no!
- static int fmt_fp (OutputFunc output, void *outputData, int flags, int precision, int width, double number, char type)
- {
- char *buff;
- char format[16];
- int i;
-
- format[0] = '%';
- i = 1;
- if (flags & F_MINUS) format[i++] = '-';
- if (flags & F_PLUS) format[i++] = '+';
- if (flags & F_ZERO) format[i++] = '0';
- if (flags & F_BLANK) format[i++] = ' ';
- if (flags & F_HASH) format[i++] = '#';
- format[i++] = '*';
- format[i++] = '.';
- format[i++] = '*';
- format[i++] = type;
- format[i++] = '\0';
- buff = (char *)alloca (1000 + precision);
- i = sprintf (buff, format, width, precision, number);
- return output (outputData, buff, i);
- }
-
int VWorker (OutputFunc output, void *outputData, const char *fmt, va_list arglist)
{
const char *c;
@@ -233,18 +292,13 @@ namespace StringFormat
// Now that that's all out of the way, we should be pointing at the type specifier
{
- static const char hexits[18] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','0','x'};
- static const char HEXits[18] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','0','X'};
- static const char spaces[16] = {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '};
- static const char zeroes[17] = {'0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','.'};
- static const char plusprefix = '+';
- static const char minusprefix = '-';
- static const char dotchar = '.';
- const char *prefix = NULL;
- int prefixlen = 0;
+ char prefix[3];
+ int prefixlen;
+ char hexprefix = '\0';
+ char sign = '\0';
int postprefixzeros = 0;
int size = flags & 0xF000;
- char buffer[32], *ibuff;
+ char buffer[80], *ibuff;
const char *obuff = 0;
char type = *c++;
int bufflen = 0;
@@ -253,8 +307,32 @@ namespace StringFormat
uint64_t int64arg = 0;
const void *voidparg;
const char *charparg;
+ double dblarg;
const char *xits = hexits;
int inlen = len;
+ /*
+ * We can decompose the printed representation of floating
+ * point numbers into several parts, some of which may be empty:
+ *
+ * [+|-| ] [0x|0X] MMM . NNN [e|E|p|P] [+|-] ZZ
+ * A B ---C--- D E F
+ *
+ * A: 'sign' holds this value if present; '\0' otherwise
+ * B: hexprefix holds the 'x' or 'X'; '\0' if not hexadecimal
+ * C: obuff points to the string MMMNNN. Leading and trailing
+ * zeros are not in the string and must be added.
+ * D: expchar holds this character; '\0' if no exponent, e.g. %f
+ * F: at least two digits for decimal, at least one digit for hex
+ */
+ const char *decimal_point = ".";/* locale specific decimal point */
+ int signflag; /* true if float is negative */
+ int expt; /* integer value of exponent */
+ char expchar = 'e'; /* exponent character: [eEpP\0] */
+ char *dtoaend; /* pointer to end of converted digits */
+ int expsize = 0; /* character count for expstr */
+ int ndig = 0; /* actual number of digits returned by dtoa */
+ char expstr[MAXEXPDIG+2]; /* buffer for exponent string: e+ZZZ */
+ char *dtoaresult = NULL; /* buffer allocated by dtoa */
// Using a bunch of if/else if statements is faster than a switch, because a switch generates
// a jump table. A jump table means a possible data cache miss and a hefty penalty while the
@@ -263,7 +341,8 @@ namespace StringFormat
if (type == 'x' || type == 'X' ||
type == 'p' ||
type == 'd' || type == 'u' || type == 'i' ||
- type == 'o')
+ type == 'o' ||
+ type == 'B')
{
if (type == 'X' || type == 'p')
{
@@ -360,6 +439,14 @@ namespace StringFormat
}
intarg = int(int64arg);
}
+ else if (type == 'B')
+ { // Binary: Dump digits until it fits in an unsigned int
+ while (int64arg > UINT_MAX)
+ {
+ *--ibuff = char(int64arg & 1) + '0'; int64arg >>= 1;
+ }
+ intarg = int(int64arg);
+ }
else
{
if (type != 'u')
@@ -413,10 +500,19 @@ namespace StringFormat
}
else if (type == 'u')
{ // Decimal
- while (intarg != 0)
+ int i;
+
+ // Unsigned division is typically slower than signed division.
+ // Do it at most once.
+ if (intarg > INT_MAX)
{
*--ibuff = char(intarg % 10) + '0'; intarg /= 10;
}
+ i = (int)intarg;
+ while (i != 0)
+ {
+ *--ibuff = char(i % 10) + '0'; i /= 10;
+ }
}
else if (type == 'o')
{ // Octal
@@ -425,6 +521,13 @@ namespace StringFormat
*--ibuff = char(intarg & 7) + '0'; intarg >>= 3;
}
}
+ else if (type == 'B')
+ { // Binary
+ while (intarg != 0)
+ {
+ *--ibuff = char(intarg & 1) + '0'; intarg >>= 1;
+ }
+ }
else
{ // Hexadecimal
while (intarg != 0)
@@ -439,14 +542,16 @@ namespace StringFormat
{
if (bufflen >= precision)
{
- prefix = zeroes;
- prefixlen = 1;
+ sign = '0';
}
}
else if (type == 'x' || type == 'X')
{
- prefix = xits + 16;
- prefixlen = 2;
+ hexprefix = type;
+ }
+ else if (type == 'B')
+ {
+ hexprefix = '!';
}
}
bufflen = (int)(ptrdiff_t)(&buffer[sizeof(buffer)] - ibuff);
@@ -519,59 +624,149 @@ namespace StringFormat
*va_arg (arglist, int *) = inlen;
}
}
- else if (type == 'e' || type == 'E' ||
- type == 'f' || type == 'F' ||
- type == 'g' || type == 'G')
+ else if (type == 'f' || type == 'F')
{
- // IEEE 754 floating point numbers
-#ifdef _MSC_VER
-#define FP_SIGN_MASK (1ui64<<63)
-#define FP_EXPONENT_MASK (2047ui64<<52)
-#define FP_FRACTION_MASK ((1ui64<<52)-1)
-#else
-#define FP_SIGN_MASK (1llu<<63)
-#define FP_EXPONENT_MASK (2047llu<<52)
-#define FP_FRACTION_MASK ((1llu<<52)-1)
-#endif
- union
+ expchar = '\0';
+ goto fp_begin;
+ }
+ else if (type == 'g' || type == 'G')
+ {
+ expchar = type - ('g' - 'e');
+ if (precision == 0)
{
- double d;
- uint64_t i64;
- } number;
- number.d = va_arg (arglist, double);
-
- if (precision < 0) precision = 6;
-
- flags |= F_SIGNED;
-
- if ((number.i64 & FP_EXPONENT_MASK) == FP_EXPONENT_MASK)
+ precision = 1;
+ }
+ goto fp_begin;
+ }
+#if 0
+ // The hdtoa function provided with FreeBSD uses a hexadecimal FP constant.
+ // Microsoft's compiler does not support these, so I would need to hack it
+ // together with ints instead. It's very do-able, but until I actually have
+ // some reason to print hex FP numbers, I won't bother.
+ else if (type == 'a' || type == 'A')
+ {
+ if (type == 'A')
{
- if (number.i64 & FP_SIGN_MASK)
- {
- flags |= F_NEGATIVE;
- }
- if ((number.i64 & FP_FRACTION_MASK) == 0)
- {
- obuff = "Infinity";
- bufflen = 8;
- }
- else if ((number.i64 & ((FP_FRACTION_MASK+1)>>1)) == 0)
- {
- obuff = "NaN";
- bufflen = 3;
- }
- else
- {
- obuff = "Ind";
- }
+ xits = HEXits;
+ hexprefix = 'X';
+ expchar = 'P';
}
else
{
- // Converting a binary floating point number to an ASCII decimal
- // representation is non-trivial, so I'm not going to do it myself.
- // (At least for now.)
- len += fmt_fp (output, outputData, flags, precision, width, number.d, type);
- continue;
+ hexprefix = 'x';
+ expchar = 'p';
+ }
+ if (precision >= 0)
+ {
+ precision++;
+ }
+ dblarg = va_arg(arglist, double);
+ dtoaresult = obuff = hdtoa(dblarg, xits, precision, &expt, &signflag, &dtoaend);
+ if (precision < 0)
+ {
+ precision = (int)(dtoaend - obuff);
+ }
+ if (expt == INT_MAX)
+ {
+ hexprefix = '\0';
+ }
+ goto fp_common;
+ }
+#endif
+ else if (type == 'e' || type == 'E')
+ {
+ expchar = type;
+ if (precision < 0) // account for digit before decpt
+ {
+ precision = DEFPREC + 1;
+ }
+ else
+ {
+ precision++;
+ }
+fp_begin:
+ if (precision < 0)
+ {
+ precision = DEFPREC;
+ }
+ dblarg = va_arg(arglist, double);
+ obuff = dtoaresult = dtoa(dblarg, expchar ? 2 : 3, precision, &expt, &signflag, &dtoaend);
+//fp_common:
+ decimal_point = localeconv()->decimal_point;
+ flags |= F_SIGNED;
+ if (signflag)
+ {
+ flags |= F_NEGATIVE;
+ }
+ if (expt == INT_MAX) // inf or nan
+ {
+ if (*obuff == 'N')
+ {
+ obuff = (type >= 'a') ? "nan" : "NAN";
+ flags &= ~F_SIGNED;
+ }
+ else
+ {
+ obuff = (type >= 'a') ? "inf" : "INF";
+ }
+ bufflen = 3;
+ flags &= ~F_ZERO;
+ }
+ else
+ {
+ flags |= F_FPT;
+ ndig = (int)(dtoaend - obuff);
+ if (type == 'g' || type == 'G')
+ {
+ if (expt > -4 && expt <= precision)
+ { // Make %[gG] smell like %[fF].
+ expchar = '\0';
+ if (flags & F_HASH)
+ {
+ precision -= expt;
+ }
+ else
+ {
+ precision = ndig - expt;
+ }
+ if (precision < 0)
+ {
+ precision = 0;
+ }
+ }
+ else
+ { // Make %[gG] smell like %[eE], but trim trailing zeroes if no # flag.
+ if (!(flags & F_HASH))
+ {
+ precision = ndig;
+ }
+ }
+ }
+ if (expchar)
+ {
+ expsize = exponent(expstr, expt - 1, expchar);
+ bufflen = expsize + precision;
+ if (precision > 1 || (flags & F_HASH))
+ {
+ ++bufflen;
+ }
+ }
+ else
+ { // space for digits before decimal point
+ if (expt > 0)
+ {
+ bufflen = expt;
+ }
+ else // "0"
+ {
+ bufflen = 1;
+ }
+ // space for decimal pt and following digits
+ if (precision != 0 || (flags & F_HASH))
+ {
+ bufflen += precision + 1;
+ }
+ }
}
}
@@ -580,21 +775,32 @@ namespace StringFormat
{
if (flags & F_NEGATIVE)
{
- prefix = &minusprefix;
- prefixlen = 1;
+ sign = '-';
}
else if (flags & F_PLUS)
{
- prefix = &plusprefix;
- prefixlen = 1;
+ sign = '+';
}
else if (flags & F_BLANK)
{
- prefix = spaces;
- prefixlen = 1;
+ sign = ' ';
}
}
+ // Construct complete prefix from sign and hex prefix character
+ prefixlen = 0;
+ if (sign != '\0')
+ {
+ prefix[0] = sign;
+ prefixlen = 1;
+ }
+ if (hexprefix != '\0')
+ {
+ prefix[prefixlen] = '0';
+ prefix[prefixlen + 1] = hexprefix;
+ prefixlen += 2;
+ }
+
// Pad the output to the field width, if needed
int fieldlen = prefixlen + postprefixzeros + bufflen;
const char *pad = (flags & F_ZERO) ? zeroes : spaces;
@@ -617,9 +823,55 @@ namespace StringFormat
outlen += output (outputData, prefix, prefixlen);
}
outlen += writepad (output, outputData, zeroes, sizeof(spaces), postprefixzeros);
- if (bufflen > 0)
+ if (!(flags & F_FPT))
{
- outlen += output (outputData, obuff, bufflen);
+ if (bufflen > 0)
+ {
+ outlen += output (outputData, obuff, bufflen);
+ }
+ }
+ else
+ {
+ if (expchar == '\0') // %[fF] or sufficiently short %[gG]
+ {
+ if (expt <= 0)
+ {
+ outlen += output (outputData, zeroes, 1);
+ if (precision != 0 || (flags & F_HASH))
+ {
+ outlen += output (outputData, decimal_point, 1);
+ }
+ outlen += writepad (output, outputData, zeroes, sizeof(zeroes), -expt);
+ // already handled initial 0's
+ precision += expt;
+ }
+ else
+ {
+ outlen += printandpad (output, outputData, obuff, dtoaend, expt, zeroes, sizeof(zeroes));
+ obuff += expt;
+ if (precision || (flags & F_HASH))
+ {
+ outlen += output (outputData, decimal_point, 1);
+ }
+ }
+ outlen += printandpad (output, outputData, obuff, dtoaend, precision, zeroes, sizeof(zeroes));
+ }
+ else // %[eE] or sufficiently long %[gG]
+ {
+ if (precision > 1 || (flags & F_HASH))
+ {
+ buffer[0] = *obuff++;
+ buffer[1] = *decimal_point;
+ outlen += output (outputData, buffer, 2);
+ outlen += output (outputData, obuff, ndig - 1);
+ outlen += writepad (output, outputData, zeroes, sizeof(zeroes), precision - ndig);
+ }
+ else // XeYY
+ {
+ outlen += output (outputData, obuff, 1);
+ }
+ outlen += output (outputData, expstr, expsize);
+ }
}
if ((flags & F_MINUS) && fieldlen < width)
@@ -627,7 +879,166 @@ namespace StringFormat
outlen += writepad (output, outputData, pad, sizeof(spaces), width - fieldlen);
}
len += outlen;
+ if (dtoaresult != NULL)
+ {
+ freedtoa(dtoaresult);
+ dtoaresult = NULL;
+ }
}
}
}
+
+ static int writepad (OutputFunc output, void *outputData, const char *pad, int padsize, int spaceToFill)
+ {
+ int outlen = 0;
+ while (spaceToFill > 0)
+ {
+ int count = spaceToFill > padsize ? padsize : spaceToFill;
+ outlen += output (outputData, pad, count);
+ spaceToFill -= count;
+ }
+ return outlen;
+ }
+
+ static int printandpad (OutputFunc output, void *outputData, const char *p, const char *ep, int len, const char *with, int padsize)
+ {
+ int outlen = 0;
+ int n2 = (int)(ep - p);
+ if (n2 > len)
+ {
+ n2 = len;
+ }
+ if (n2 > 0)
+ {
+ outlen = output (outputData, p, n2);
+ }
+ return outlen + writepad (output, outputData, with, padsize, len - (n2 > 0 ? n2 : 0));
+ }
+
+ static int exponent (char *p0, int exp, int fmtch)
+ {
+ char *p, *t;
+ char expbuf[MAXEXPDIG];
+
+ p = p0;
+ *p++ = fmtch;
+ if (exp < 0)
+ {
+ exp = -exp;
+ *p++ = '-';
+ }
+ else
+ {
+ *p++ = '+';
+ }
+ t = expbuf + MAXEXPDIG;
+ if (exp > 9)
+ {
+ do
+ {
+ *--t = '0' + (exp % 10);
+ }
+ while ((exp /= 10) > 9);
+ *--t = '0' + exp;
+ for(; t < expbuf + MAXEXPDIG; *p++ = *t++)
+ { }
+ }
+ else
+ {
+ // Exponents for decimal floating point conversions
+ // (%[eEgG]) must be at least two characters long,
+ // whereas exponents for hexadecimal conversions can
+ // be only one character long.
+ if (fmtch == 'e' || fmtch == 'E')
+ {
+ *p++ = '0';
+ }
+ *p++ = '0' + exp;
+ }
+ return (int)(p - p0);
+ }
};
+
+//========================================================================//
+// snprintf / vsnprintf imitations
+
+#ifdef __GNUC__
+#define GCCPRINTF(stri,firstargi) __attribute__((format(printf,stri,firstargi)))
+#define GCCFORMAT(stri) __attribute__((format(printf,stri,0)))
+#define GCCNOWARN __attribute__((unused))
+#else
+#define GCCPRINTF(a,b)
+#define GCCFORMAT(a)
+#define GCCNOWARN
+#endif
+
+struct snprintf_state
+{
+ char *buffer;
+ size_t maxlen;
+ size_t curlen;
+ int ideallen;
+};
+
+static int myvsnprintf_helper(void *data, const char *cstr, int cstr_len)
+{
+ snprintf_state *state = (snprintf_state *)data;
+
+ if (INT_MAX - cstr_len < state->ideallen)
+ {
+ state->ideallen = INT_MAX;
+ }
+ else
+ {
+ state->ideallen += cstr_len;
+ }
+ if (state->curlen + cstr_len > state->maxlen)
+ {
+ cstr_len = (int)(state->maxlen - state->curlen);
+ }
+ if (cstr_len > 0)
+ {
+ memcpy(state->buffer + state->curlen, cstr, cstr_len);
+ state->curlen += cstr_len;
+ }
+ return cstr_len;
+}
+
+extern "C"
+{
+
+// Unlike the MS CRT function snprintf, this one always writes a terminating
+// null character to the buffer. It also returns the full length of the string
+// that would have been output if the buffer had been large enough. In other
+// words, it follows BSD/Linux rules and not MS rules.
+int myvsnprintf(char *buffer, size_t count, const char *format, va_list argptr)
+{
+ size_t originalcount = count;
+ if (count != 0)
+ {
+ count--;
+ }
+ if (count > INT_MAX)
+ { // This is probably an error. Output nothing.
+ originalcount = 0;
+ count = 0;
+ }
+ snprintf_state state = { buffer, count, 0, 0 };
+ StringFormat::VWorker(myvsnprintf_helper, &state, format, argptr);
+ if (originalcount > 0)
+ {
+ buffer[state.curlen] = '\0';
+ }
+ return state.ideallen;
+}
+
+int mysnprintf(char *buffer, size_t count, const char *format, ...)
+{
+ va_list argptr;
+ va_start(argptr, format);
+ int len = myvsnprintf(buffer, count, format, argptr);
+ va_end(argptr);
+ return len;
+}
+
+}
diff --git a/src/zstring.cpp b/src/zstring.cpp
index 011ef517..9f392643 100644
--- a/src/zstring.cpp
+++ b/src/zstring.cpp
@@ -3,7 +3,7 @@
** A dynamically-allocated string class.
**
**---------------------------------------------------------------------------
-** Copyright 2005-2007 Randy Heit
+** Copyright 2005-2008 Randy Heit
** All rights reserved.
**
** Redistribution and use in source and binary forms, with or without
diff --git a/src/zstring.h b/src/zstring.h
index ebfb357b..ad79fb11 100644
--- a/src/zstring.h
+++ b/src/zstring.h
@@ -281,6 +281,7 @@ namespace StringFormat
F_SIGNED = 32,
F_NEGATIVE = 64,
F_ZEROVALUE = 128,
+ F_FPT = 256,
// Format specification size prefixes
F_HALFHALF = 0x1000, // hh
diff --git a/tools/fixrtext/fixrtext.vcproj b/tools/fixrtext/fixrtext.vcproj
index bc78575e..cc50b605 100644
--- a/tools/fixrtext/fixrtext.vcproj
+++ b/tools/fixrtext/fixrtext.vcproj
@@ -169,6 +169,10 @@
+
+
diff --git a/tools/lemon/lemon.vcproj b/tools/lemon/lemon.vcproj
index 137b9d7b..9f46d4df 100644
--- a/tools/lemon/lemon.vcproj
+++ b/tools/lemon/lemon.vcproj
@@ -220,7 +220,6 @@
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="0"
- CallingConvention="0"
CompileAs="1"
DisableSpecificWarnings="4996"
/>
@@ -357,6 +356,10 @@
+
+
diff --git a/tools/re2c/re2c.vcproj b/tools/re2c/re2c.vcproj
index dbaedb5f..c1090618 100644
--- a/tools/re2c/re2c.vcproj
+++ b/tools/re2c/re2c.vcproj
@@ -217,7 +217,6 @@
WarningLevel="3"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="0"
- CallingConvention="0"
DisableSpecificWarnings="4996"
/>
-
-
+
diff --git a/tools/updaterevision/updaterevision.vcproj b/tools/updaterevision/updaterevision.vcproj
index f39914dc..0421cbb6 100644
--- a/tools/updaterevision/updaterevision.vcproj
+++ b/tools/updaterevision/updaterevision.vcproj
@@ -23,7 +23,7 @@
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
- CharacterSet="1"
+ CharacterSet="2"
>
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/wadsrc/Makefile b/wadsrc/Makefile
deleted file mode 100644
index 366bad8a..00000000
--- a/wadsrc/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# NMAKE doesn't know how to handle executables that use forward slashes in
-# their paths, but it can handle forward slashes in dependencies. Heh.
-# The wadsrc project file redefines MAKEWAD using backslashes instead. It
-# also defines NOLOGO, so you don't need to see NMAKE's banner.
-#
-# Summary: If you use Visual C++, the provided project file is set up to
-# build the wad correctly with nmake. If you use GCC, then "make" is
-# sufficient to build the wad.
-
-RM=rm -f
-SLASH=/
-MAKEWAD=..$(SLASH)tools$(SLASH)makewad$(SLASH)makewad
-
-makethewad: wadmake Makefile2
- $(MAKE) $(NOLOGO) -f Makefile2
-
-wadmake: zdoom.lst
- $(MAKEWAD) -make wadmake zdoom.lst
-
-clean:
- $(RM) wadmake zdoom.pk3
-
-# This target is for Visual C++'s Rebuild All command
-nrebuild: clean
- $(MAKE) NOLOGO=$(NOLOGO) SLASH=$(SLASH)
- copy gzdoom.pk3 ..\..
-
-# Copy the wad to my testing area
-andcopy: makethewad
- copy gzdoom.pk3 ..\..
diff --git a/wadsrc/Makefile.mgw b/wadsrc/Makefile.mgw
deleted file mode 100644
index 554730b9..00000000
--- a/wadsrc/Makefile.mgw
+++ /dev/null
@@ -1,21 +0,0 @@
-MAKEWAD=../tools/makewad/makewad
-
-ifneq ($(MAKECMDGOALS),clean)
-include Makefile2
-endif
-ifeq ($(findstring msys,$(shell sh --version 2>nul)),msys)
-export OSTYPE=msys
-endif
-
-wadmake: zdoom.lst $(MAKEWAD).exe
- $(MAKEWAD) -make wadmake zdoom.lst
-
-clean:
-ifeq ($(OSTYPE),msys)
- rm -f wadmake gzdoom.pk3
-else
- del /q /f wadmake gzdoom.pk3 2>nul
-endif
-
-../tools/makewad/makewad.exe:
- $(MAKE) -C ../tools/makewad -f Makefile
diff --git a/wadsrc/Makefile2 b/wadsrc/Makefile2
deleted file mode 100644
index 82d1cf51..00000000
--- a/wadsrc/Makefile2
+++ /dev/null
@@ -1,2 +0,0 @@
-include wadmake
-
diff --git a/wadsrc/althudcf.txt b/wadsrc/althudcf.txt
deleted file mode 100644
index 52456118..00000000
--- a/wadsrc/althudcf.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Fist PUNGC0
-PunchDagger PNCHD0
-Beak ""
-Snout ""
diff --git a/wadsrc/amrka0.png b/wadsrc/amrka0.png
deleted file mode 100644
index c95d00af..00000000
Binary files a/wadsrc/amrka0.png and /dev/null differ
diff --git a/wadsrc/animated.lmp b/wadsrc/animated.lmp
deleted file mode 100644
index 100c804c..00000000
Binary files a/wadsrc/animated.lmp and /dev/null differ
diff --git a/wadsrc/animdefs.txt b/wadsrc/animdefs.txt
deleted file mode 100644
index 2c492ddb..00000000
--- a/wadsrc/animdefs.txt
+++ /dev/null
@@ -1,291 +0,0 @@
-// Tome of Power
-texture optional SPINBK0
-pic SPINBK0 tics 3
-pic SPINBK1 tics 3
-pic SPINBK2 tics 3
-pic SPINBK3 tics 3
-pic SPINBK4 tics 3
-pic SPINBK5 tics 3
-pic SPINBK6 tics 3
-pic SPINBK7 tics 3
-pic SPINBK8 tics 3
-pic SPINBK9 tics 3
-pic SPINBK10 tics 3
-pic SPINBK11 tics 3
-pic SPINBK12 tics 3
-pic SPINBK13 tics 3
-pic SPINBK14 tics 3
-pic SPINBK15 tics 3
-
-// Speed Boots
-texture optional SPBOOT0
-pic SPBOOT0 tics 3
-pic SPBOOT1 tics 3
-pic SPBOOT2 tics 3
-pic SPBOOT3 tics 3
-pic SPBOOT4 tics 3
-pic SPBOOT5 tics 3
-pic SPBOOT6 tics 3
-pic SPBOOT7 tics 3
-pic SPBOOT8 tics 3
-pic SPBOOT9 tics 3
-pic SPBOOT10 tics 3
-pic SPBOOT11 tics 3
-pic SPBOOT12 tics 3
-pic SPBOOT13 tics 3
-pic SPBOOT14 tics 3
-pic SPBOOT15 tics 3
-
-// Defensive Power
-texture optional SPSHLD0
-pic SPSHLD0 tics 3
-pic SPSHLD1 tics 3
-pic SPSHLD2 tics 3
-pic SPSHLD3 tics 3
-pic SPSHLD4 tics 3
-pic SPSHLD5 tics 3
-pic SPSHLD6 tics 3
-pic SPSHLD7 tics 3
-pic SPSHLD8 tics 3
-pic SPSHLD9 tics 3
-pic SPSHLD10 tics 3
-pic SPSHLD11 tics 3
-pic SPSHLD12 tics 3
-pic SPSHLD13 tics 3
-pic SPSHLD14 tics 3
-pic SPSHLD15 tics 3
-
-// Minotaur Active
-texture optional SPMINO0
-pic SPMINO0 tics 3
-pic SPMINO1 tics 3
-pic SPMINO2 tics 3
-pic SPMINO3 tics 3
-pic SPMINO4 tics 3
-pic SPMINO5 tics 3
-pic SPMINO6 tics 3
-pic SPMINO7 tics 3
-pic SPMINO8 tics 3
-pic SPMINO9 tics 3
-pic SPMINO10 tics 3
-pic SPMINO11 tics 3
-pic SPMINO12 tics 3
-pic SPMINO13 tics 3
-pic SPMINO14 tics 3
-pic SPMINO15 tics 3
-
-// The Wings of Wrath are not included, because they stop spinning when
-// you stop flying, so they can't be a simple animation.
-
-switch doom 1 SW1BRCOM on pic SW2BRCOM tics 0
-switch doom 1 SW1BRN1 on pic SW2BRN1 tics 0
-switch doom 1 SW1BRN2 on pic SW2BRN2 tics 0
-switch doom 1 SW1BRNGN on pic SW2BRNGN tics 0
-switch doom 1 SW1BROWN on pic SW2BROWN tics 0
-switch doom 1 SW1COMM on pic SW2COMM tics 0
-switch doom 1 SW1COMP on pic SW2COMP tics 0
-switch doom 1 SW1DIRT on pic SW2DIRT tics 0
-switch doom 1 SW1EXIT on pic SW2EXIT tics 0
-switch doom 1 SW1GRAY on pic SW2GRAY tics 0
-switch doom 1 SW1GRAY1 on pic SW2GRAY1 tics 0
-switch doom 1 SW1METAL on pic SW2METAL tics 0
-switch doom 1 SW1PIPE on pic SW2PIPE tics 0
-switch doom 1 SW1SLAD on pic SW2SLAD tics 0
-switch doom 1 SW1STARG on pic SW2STARG tics 0
-switch doom 1 SW1STON1 on pic SW2STON1 tics 0
-switch doom 1 SW1STON2 on pic SW2STON2 tics 0
-switch doom 1 SW1STONE on pic SW2STONE tics 0
-switch doom 1 SW1STRTN on pic SW2STRTN tics 0
-
-switch doom 2 SW1BLUE on pic SW2BLUE tics 0
-switch doom 2 SW1CMT on pic SW2CMT tics 0
-switch doom 2 SW1GARG on pic SW2GARG tics 0
-switch doom 2 SW1GSTON on pic SW2GSTON tics 0
-switch doom 2 SW1HOT on pic SW2HOT tics 0
-switch doom 2 SW1LION on pic SW2LION tics 0
-switch doom 2 SW1SATYR on pic SW2SATYR tics 0
-switch doom 2 SW1SKIN on pic SW2SKIN tics 0
-switch doom 2 SW1VINE on pic SW2VINE tics 0
-switch doom 2 SW1WOOD on pic SW2WOOD tics 0
-
-switch doom 3 SW1PANEL on pic SW2PANEL tics 0
-switch doom 3 SW1ROCK on pic SW2ROCK tics 0
-switch doom 3 SW1MET2 on pic SW2MET2 tics 0
-switch doom 3 SW1WDMET on pic SW2WDMET tics 0
-switch doom 3 SW1BRIK on pic SW2BRIK tics 0
-switch doom 3 SW1MOD1 on pic SW2MOD1 tics 0
-switch doom 3 SW1ZIM on pic SW2ZIM tics 0
-switch doom 3 SW1STON6 on pic SW2STON6 tics 0
-switch doom 3 SW1TEK on pic SW2TEK tics 0
-switch doom 3 SW1MARB on pic SW2MARB tics 0
-switch doom 3 SW1SKULL on pic SW2SKULL tics 0
-
-switch heretic SW1OFF on pic SW1ON tics 0
-switch heretic SW2OFF on pic SW2ON tics 0
-
-switch hexen SW_1_UP on sound Switch1 pic SW_1_DN tics 0
-switch hexen SW_2_UP on sound Switch1 pic SW_2_DN tics 0
-switch hexen VALVE1 on sound ValveTurn pic VALVE2 tics 0
-switch hexen SW51_OFF on sound Switch2 pic SW51_ON tics 0
-switch hexen SW52_OFF on sound Switch2 pic SW52_ON tics 0
-switch hexen SW53_UP on sound RopePull pic SW53_DN tics 0
-switch hexen PUZZLE5 on sound Switch1 pic PUZZLE9 tics 0
-switch hexen PUZZLE6 on sound Switch1 pic PUZZLE10 tics 0
-switch hexen PUZZLE7 on sound Switch1 pic PUZZLE11 tics 0
-switch hexen PUZZLE8 on sound Switch1 pic PUZZLE12 tics 0
-
-switch strife GLASS01 on sound world/glassbreak pic GLASS02 tics 0
-switch strife GLASS03 on sound world/glassbreak pic GLASS04 tics 0
-switch strife GLASS05 on sound world/glassbreak pic GLASS06 tics 0
-switch strife GLASS07 on sound world/glassbreak pic GLASS08 tics 0
-switch strife GLASS17 on sound world/glassbreak pic GLASS18 tics 0
-switch strife GLASS19 on sound world/glassbreak pic GLASS20 tics 0
-switch strife SWKNOB01 on sound switches/knob pic SWKNOB02 tics 0
-switch strife SWLITE01 on pic SWLITE02 tics 0
-switch strife SWCHN01 on sound switches/chain pic SWCHN02 tics 0
-switch strife COMP01 on sound world/glassbreak pic COMP04B tics 0
-switch strife COMP05 on sound world/glassbreak pic COMP12B tics 0
-switch strife COMP09 on sound world/glassbreak pic COMP12B tics 0
-switch strife COMP12 on sound world/glassbreak pic COMP04B tics 0
-switch strife COMP13 on sound world/glassbreak pic COMP12B tics 0
-switch strife COMP17 on sound world/glassbreak pic COMP20B tics 0
-switch strife COMP21 on sound world/glassbreak pic COMP28B tics 0
-switch strife WALTEK09 on sound world/glassbreak pic WALTEKB1 tics 0
-switch strife WALTEK10 on sound world/glassbreak pic WALTEKB1 tics 0
-switch strife WALTEK15 on sound world/glassbreak pic WALTEKB1 tics 0
-switch strife SWFORC01 on pic SWFORC02 tics 0
-switch strife SWEXIT01 on pic SWEXIT02 tics 0
-switch strife DORSBK01 on sound switches/stone pic DORSBK02 tics 0
-switch strife SWSLD01 on sound switches/keycard pic SWSLD02 tics 0
-switch strife DORWS04 on sound switches/bolt pic DORWS05 tics 0
-switch strife SWIRON01 on pic SWIRON02 tics 0
-switch strife GLASS09 on sound world/glassbreak pic GLASS10 tics 0
-switch strife GLASS11 on sound world/glassbreak pic GLASS12 tics 0
-switch strife GLASS13 on sound world/glassbreak pic GLASS14 tics 0
-switch strife GLASS15 on sound world/glassbreak pic GLASS16 tics 0
-switch strife SWFORC03 on pic SWFORC04 tics 0
-switch strife SWCIT01 on pic SWCIT02 tics 0
-switch strife SWTRMG01 on pic SWTRMG04 tics 0
-switch strife SWMETL01 on pic SWMETL02 tics 0
-switch strife SWWOOD01 on pic SWWOOD02 tics 0
-switch strife SWTKBL01 on pic SWTKBL02 tics 0
-switch strife AZWAL21 on pic AZWAL22 tics 0
-switch strife SWINDT01 on pic SWINDT02 tics 0
-switch strife SWRUST01 on pic SWRUST02 tics 0
-switch strife SWCHAP01 on pic SWCHAP02 tics 0
-switch strife SWALIN01 on pic SWALIN02 tics 0
-switch strife SWWALG01 on pic SWWALG02 tics 0
-switch strife SWWALG03 on pic SWWALG04 tics 0
-switch strife SWTRAM01 on pic SWTRAM02 tics 0
-switch strife SWTRAM03 on pic SWTRAM04 tics 0
-switch strife SWORC01 on pic SWORC02 tics 0
-switch strife SWBRIK01 on pic SWBRIK02 tics 0
-switch strife SWIRON03 on pic SWIRON04 tics 0
-switch strife SWIRON05 on pic SWIRON06 tics 0
-switch strife SWIRON07 on pic SWIRON08 tics 0
-switch strife SWCARD01 on pic SWCARD02 tics 0
-switch strife SWSIGN01 on pic SWSIGN02 tics 0
-switch strife SWLEV01 on pic SWLEV02 tics 0
-switch strife SWLEV03 on pic SWLEV04 tics 0
-switch strife SWLEV05 on pic SWLEV06 tics 0
-switch strife SWBRN01 on pic SWBRN02 tics 0
-switch strife SWPIP01 on sound switches/valve pic SWPIP02 tics 0
-switch strife SWPALM01 on sound switches/scanner pic SWPALM02 tics 0
-switch strife SWKNOB03 on pic SWKNOB04 tics 0
-switch strife ALTSW01 on pic ALTSW02 tics 0
-switch strife COMP25 on sound world/glassbreak pic COMP28B tics 0
-switch strife COMP29 on sound world/glassbreak pic COMP20B tics 0
-switch strife COMP33 on sound world/glassbreak pic COMP50 tics 0
-switch strife COMP42 on sound world/glassbreak pic COMP51 tics 0
-switch strife GODSCRN1 on sound switches/fool pic GODSCRN2 tics 0
-switch strife ALIEN04 on pic ALIEN05 tics 0
-switch strife CITADL04 on pic CITADL05 tics 0
-switch strife SWITE03 on pic SWITE04 tics 0
-switch strife SWTELP01 on pic SWTELP02 tics 0
-switch strife BRNSCN01 quest on sound switches/sizzle pic BRNSCN05 tics 0
-
-// The animated doors from Strife
-
-animateddoor SIGLDR01
- opensound DoorOpenLargeMetal
- closesound DoorCloseLargeMetal
- pic SIGLDR01
- pic SIGLDR02
- pic SIGLDR03
- pic SIGLDR04
- pic SIGLDR05
- pic SIGLDR06
- pic SIGLDR07
- pic SIGLDR08
-
-animateddoor DORSTN01
- opensound DoorOpenStone
- closesound DoorCloseStone
- pic DORSTN01
- pic DORSTN02
- pic DORSTN03
- pic DORSTN04
- pic DORSTN05
- pic DORSTN06
- pic DORSTN07
- pic DORSTN08
-
-animateddoor DORQTR01
- opensound DoorOpenAirlock
- closesound DoorCloseAirlock
- pic DORQTR01
- pic DORQTR02
- pic DORQTR03
- pic DORQTR04
- pic DORQTR05
- pic DORQTR06
- pic DORQTR07
- pic DORQTR08
-
-animateddoor DORCRG01
- opensound DoorOpenSmallMetal
- closesound DoorCloseSmallMetal
- pic DORCRG01
- pic DORCRG02
- pic DORCRG03
- pic DORCRG04
- pic DORCRG05
- pic DORCRG06
- pic DORCRG07
- pic DORCRG08
-
-animateddoor DORCHN01
- opensound DoorOpenChain
- closesound DoorCloseChain
- pic DORCHN01
- pic DORCHN02
- pic DORCHN03
- pic DORCHN04
- pic DORCHN05
- pic DORCHN06
- pic DORCHN07
- pic DORCHN08
-
-animateddoor DORIRS01
- opensound DoorOpenAirlock
- closesound DoorCloseAirlock
- pic DORIRS01
- pic DORIRS02
- pic DORIRS03
- pic DORIRS04
- pic DORIRS05
- pic DORIRS06
- pic DORIRS07
- pic DORIRS08
-
-animateddoor DORALN01
- opensound DoorOpenAirlock
- closesound DoorCloseAirlock
- pic DORALN01
- pic DORALN02
- pic DORALN03
- pic DORALN04
- pic DORALN05
- pic DORALN06
- pic DORALN07
- pic DORALN08
diff --git a/wadsrc/artibox.png b/wadsrc/artibox.png
deleted file mode 100644
index 381c220f..00000000
Binary files a/wadsrc/artibox.png and /dev/null differ
diff --git a/wadsrc/badpatch.lmp b/wadsrc/badpatch.lmp
deleted file mode 100644
index 3f3224f9..00000000
Binary files a/wadsrc/badpatch.lmp and /dev/null differ
diff --git a/wadsrc/clerface.lmp b/wadsrc/clerface.lmp
deleted file mode 100644
index eab608ed..00000000
Binary files a/wadsrc/clerface.lmp and /dev/null differ
diff --git a/wadsrc/confont.lmp b/wadsrc/confont.lmp
deleted file mode 100644
index 3d46a3ca..00000000
Binary files a/wadsrc/confont.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plyca1.lmp b/wadsrc/crouch/plyca1.lmp
deleted file mode 100644
index 50c97561..00000000
Binary files a/wadsrc/crouch/plyca1.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plyca2a8.lmp b/wadsrc/crouch/plyca2a8.lmp
deleted file mode 100644
index 490a6aba..00000000
Binary files a/wadsrc/crouch/plyca2a8.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plyca3a7.lmp b/wadsrc/crouch/plyca3a7.lmp
deleted file mode 100644
index 6888f904..00000000
Binary files a/wadsrc/crouch/plyca3a7.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plyca4a6.lmp b/wadsrc/crouch/plyca4a6.lmp
deleted file mode 100644
index bfed66a0..00000000
Binary files a/wadsrc/crouch/plyca4a6.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plyca5.lmp b/wadsrc/crouch/plyca5.lmp
deleted file mode 100644
index 43388109..00000000
Binary files a/wadsrc/crouch/plyca5.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycb1.lmp b/wadsrc/crouch/plycb1.lmp
deleted file mode 100644
index e28f55c8..00000000
Binary files a/wadsrc/crouch/plycb1.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycb2b8.lmp b/wadsrc/crouch/plycb2b8.lmp
deleted file mode 100644
index 617bdcb4..00000000
Binary files a/wadsrc/crouch/plycb2b8.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycb3b7.lmp b/wadsrc/crouch/plycb3b7.lmp
deleted file mode 100644
index 27a64e2a..00000000
Binary files a/wadsrc/crouch/plycb3b7.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycb4b6.lmp b/wadsrc/crouch/plycb4b6.lmp
deleted file mode 100644
index abf3129d..00000000
Binary files a/wadsrc/crouch/plycb4b6.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycb5.lmp b/wadsrc/crouch/plycb5.lmp
deleted file mode 100644
index d6801b1e..00000000
Binary files a/wadsrc/crouch/plycb5.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycc1.lmp b/wadsrc/crouch/plycc1.lmp
deleted file mode 100644
index 0274da07..00000000
Binary files a/wadsrc/crouch/plycc1.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycc2c8.lmp b/wadsrc/crouch/plycc2c8.lmp
deleted file mode 100644
index eb142962..00000000
Binary files a/wadsrc/crouch/plycc2c8.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycc3c7.lmp b/wadsrc/crouch/plycc3c7.lmp
deleted file mode 100644
index 102f5143..00000000
Binary files a/wadsrc/crouch/plycc3c7.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycc4c6.lmp b/wadsrc/crouch/plycc4c6.lmp
deleted file mode 100644
index f398ae83..00000000
Binary files a/wadsrc/crouch/plycc4c6.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycc5.lmp b/wadsrc/crouch/plycc5.lmp
deleted file mode 100644
index 21c45640..00000000
Binary files a/wadsrc/crouch/plycc5.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycd1.lmp b/wadsrc/crouch/plycd1.lmp
deleted file mode 100644
index e28f55c8..00000000
Binary files a/wadsrc/crouch/plycd1.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycd2d8.lmp b/wadsrc/crouch/plycd2d8.lmp
deleted file mode 100644
index 617bdcb4..00000000
Binary files a/wadsrc/crouch/plycd2d8.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycd3d7.lmp b/wadsrc/crouch/plycd3d7.lmp
deleted file mode 100644
index 27a64e2a..00000000
Binary files a/wadsrc/crouch/plycd3d7.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycd4d6.lmp b/wadsrc/crouch/plycd4d6.lmp
deleted file mode 100644
index abf3129d..00000000
Binary files a/wadsrc/crouch/plycd4d6.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycd5.lmp b/wadsrc/crouch/plycd5.lmp
deleted file mode 100644
index d6801b1e..00000000
Binary files a/wadsrc/crouch/plycd5.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plyce1.lmp b/wadsrc/crouch/plyce1.lmp
deleted file mode 100644
index 974a4a51..00000000
Binary files a/wadsrc/crouch/plyce1.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plyce2e8.lmp b/wadsrc/crouch/plyce2e8.lmp
deleted file mode 100644
index fe6f2af0..00000000
Binary files a/wadsrc/crouch/plyce2e8.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plyce3e7.lmp b/wadsrc/crouch/plyce3e7.lmp
deleted file mode 100644
index fdabde08..00000000
Binary files a/wadsrc/crouch/plyce3e7.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plyce4e6.lmp b/wadsrc/crouch/plyce4e6.lmp
deleted file mode 100644
index 43bf1ceb..00000000
Binary files a/wadsrc/crouch/plyce4e6.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plyce5.lmp b/wadsrc/crouch/plyce5.lmp
deleted file mode 100644
index d22c1083..00000000
Binary files a/wadsrc/crouch/plyce5.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycf1.lmp b/wadsrc/crouch/plycf1.lmp
deleted file mode 100644
index 36d78d37..00000000
Binary files a/wadsrc/crouch/plycf1.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycf2f8.lmp b/wadsrc/crouch/plycf2f8.lmp
deleted file mode 100644
index 2ea4f152..00000000
Binary files a/wadsrc/crouch/plycf2f8.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycf3f7.lmp b/wadsrc/crouch/plycf3f7.lmp
deleted file mode 100644
index 9a080dad..00000000
Binary files a/wadsrc/crouch/plycf3f7.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycf4f6.lmp b/wadsrc/crouch/plycf4f6.lmp
deleted file mode 100644
index efefe912..00000000
Binary files a/wadsrc/crouch/plycf4f6.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycf5.lmp b/wadsrc/crouch/plycf5.lmp
deleted file mode 100644
index cf839eac..00000000
Binary files a/wadsrc/crouch/plycf5.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycg1.lmp b/wadsrc/crouch/plycg1.lmp
deleted file mode 100644
index ec71a6bd..00000000
Binary files a/wadsrc/crouch/plycg1.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycg2g8.lmp b/wadsrc/crouch/plycg2g8.lmp
deleted file mode 100644
index e67c7cc5..00000000
Binary files a/wadsrc/crouch/plycg2g8.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycg3g7.lmp b/wadsrc/crouch/plycg3g7.lmp
deleted file mode 100644
index fc385e3d..00000000
Binary files a/wadsrc/crouch/plycg3g7.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycg4g6.lmp b/wadsrc/crouch/plycg4g6.lmp
deleted file mode 100644
index 0f00e4a8..00000000
Binary files a/wadsrc/crouch/plycg4g6.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycg5.lmp b/wadsrc/crouch/plycg5.lmp
deleted file mode 100644
index 214a160a..00000000
Binary files a/wadsrc/crouch/plycg5.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plych0.lmp b/wadsrc/crouch/plych0.lmp
deleted file mode 100644
index e29ded5a..00000000
Binary files a/wadsrc/crouch/plych0.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plyci0.lmp b/wadsrc/crouch/plyci0.lmp
deleted file mode 100644
index c1481cd9..00000000
Binary files a/wadsrc/crouch/plyci0.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycj0.lmp b/wadsrc/crouch/plycj0.lmp
deleted file mode 100644
index 887e6eee..00000000
Binary files a/wadsrc/crouch/plycj0.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plyck0.lmp b/wadsrc/crouch/plyck0.lmp
deleted file mode 100644
index cb789d28..00000000
Binary files a/wadsrc/crouch/plyck0.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycl0.lmp b/wadsrc/crouch/plycl0.lmp
deleted file mode 100644
index 18fcc1c9..00000000
Binary files a/wadsrc/crouch/plycl0.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycm0.lmp b/wadsrc/crouch/plycm0.lmp
deleted file mode 100644
index 872fb8c1..00000000
Binary files a/wadsrc/crouch/plycm0.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycn0.lmp b/wadsrc/crouch/plycn0.lmp
deleted file mode 100644
index 82060bc9..00000000
Binary files a/wadsrc/crouch/plycn0.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plyco0.lmp b/wadsrc/crouch/plyco0.lmp
deleted file mode 100644
index 8e77b721..00000000
Binary files a/wadsrc/crouch/plyco0.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycp0.lmp b/wadsrc/crouch/plycp0.lmp
deleted file mode 100644
index 2825e46a..00000000
Binary files a/wadsrc/crouch/plycp0.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycq0.lmp b/wadsrc/crouch/plycq0.lmp
deleted file mode 100644
index 5af84332..00000000
Binary files a/wadsrc/crouch/plycq0.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycr0.lmp b/wadsrc/crouch/plycr0.lmp
deleted file mode 100644
index 1fe276d4..00000000
Binary files a/wadsrc/crouch/plycr0.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycs0.lmp b/wadsrc/crouch/plycs0.lmp
deleted file mode 100644
index 081f93b0..00000000
Binary files a/wadsrc/crouch/plycs0.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plyct0.lmp b/wadsrc/crouch/plyct0.lmp
deleted file mode 100644
index 9008bacb..00000000
Binary files a/wadsrc/crouch/plyct0.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycu0.lmp b/wadsrc/crouch/plycu0.lmp
deleted file mode 100644
index d788b4d8..00000000
Binary files a/wadsrc/crouch/plycu0.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycv0.lmp b/wadsrc/crouch/plycv0.lmp
deleted file mode 100644
index 8a1bb8a7..00000000
Binary files a/wadsrc/crouch/plycv0.lmp and /dev/null differ
diff --git a/wadsrc/crouch/plycw0.lmp b/wadsrc/crouch/plycw0.lmp
deleted file mode 100644
index 2067320b..00000000
Binary files a/wadsrc/crouch/plycw0.lmp and /dev/null differ
diff --git a/wadsrc/dbigfont.lmp b/wadsrc/dbigfont.lmp
deleted file mode 100644
index b44080a5..00000000
Binary files a/wadsrc/dbigfont.lmp and /dev/null differ
diff --git a/wadsrc/decals/bal7scr1.png b/wadsrc/decals/bal7scr1.png
deleted file mode 100644
index c3c21519..00000000
Binary files a/wadsrc/decals/bal7scr1.png and /dev/null differ
diff --git a/wadsrc/decals/bal7scr2.png b/wadsrc/decals/bal7scr2.png
deleted file mode 100644
index 04ff042c..00000000
Binary files a/wadsrc/decals/bal7scr2.png and /dev/null differ
diff --git a/wadsrc/decals/bfglite1.png b/wadsrc/decals/bfglite1.png
deleted file mode 100644
index 88221164..00000000
Binary files a/wadsrc/decals/bfglite1.png and /dev/null differ
diff --git a/wadsrc/decals/bfglite2.png b/wadsrc/decals/bfglite2.png
deleted file mode 100644
index 41eefea3..00000000
Binary files a/wadsrc/decals/bfglite2.png and /dev/null differ
diff --git a/wadsrc/decals/bfgscrc1.png b/wadsrc/decals/bfgscrc1.png
deleted file mode 100644
index f6ea6fe9..00000000
Binary files a/wadsrc/decals/bfgscrc1.png and /dev/null differ
diff --git a/wadsrc/decals/bfgscrc2.png b/wadsrc/decals/bfgscrc2.png
deleted file mode 100644
index 1f8dcf9c..00000000
Binary files a/wadsrc/decals/bfgscrc2.png and /dev/null differ
diff --git a/wadsrc/decals/blast1.png b/wadsrc/decals/blast1.png
deleted file mode 100644
index a2163596..00000000
Binary files a/wadsrc/decals/blast1.png and /dev/null differ
diff --git a/wadsrc/decals/bsmear1.png b/wadsrc/decals/bsmear1.png
deleted file mode 100644
index bd3a5dfd..00000000
Binary files a/wadsrc/decals/bsmear1.png and /dev/null differ
diff --git a/wadsrc/decals/bsmear2.png b/wadsrc/decals/bsmear2.png
deleted file mode 100644
index 77352d80..00000000
Binary files a/wadsrc/decals/bsmear2.png and /dev/null differ
diff --git a/wadsrc/decals/bsplat1.png b/wadsrc/decals/bsplat1.png
deleted file mode 100644
index 9537cb76..00000000
Binary files a/wadsrc/decals/bsplat1.png and /dev/null differ
diff --git a/wadsrc/decals/bsplat2.png b/wadsrc/decals/bsplat2.png
deleted file mode 100644
index 118d397d..00000000
Binary files a/wadsrc/decals/bsplat2.png and /dev/null differ
diff --git a/wadsrc/decals/bsplat3.png b/wadsrc/decals/bsplat3.png
deleted file mode 100644
index 5d9ad06c..00000000
Binary files a/wadsrc/decals/bsplat3.png and /dev/null differ
diff --git a/wadsrc/decals/bsplat4.png b/wadsrc/decals/bsplat4.png
deleted file mode 100644
index e9ef345a..00000000
Binary files a/wadsrc/decals/bsplat4.png and /dev/null differ
diff --git a/wadsrc/decals/bsplat5.png b/wadsrc/decals/bsplat5.png
deleted file mode 100644
index ff822df4..00000000
Binary files a/wadsrc/decals/bsplat5.png and /dev/null differ
diff --git a/wadsrc/decals/bsplat6.png b/wadsrc/decals/bsplat6.png
deleted file mode 100644
index 346dc6c5..00000000
Binary files a/wadsrc/decals/bsplat6.png and /dev/null differ
diff --git a/wadsrc/decals/bsplat7.png b/wadsrc/decals/bsplat7.png
deleted file mode 100644
index 21f33724..00000000
Binary files a/wadsrc/decals/bsplat7.png and /dev/null differ
diff --git a/wadsrc/decals/cbalscr1.png b/wadsrc/decals/cbalscr1.png
deleted file mode 100644
index bed27db9..00000000
Binary files a/wadsrc/decals/cbalscr1.png and /dev/null differ
diff --git a/wadsrc/decals/cbalscr2.png b/wadsrc/decals/cbalscr2.png
deleted file mode 100644
index f959b682..00000000
Binary files a/wadsrc/decals/cbalscr2.png and /dev/null differ
diff --git a/wadsrc/decals/cbowmark.png b/wadsrc/decals/cbowmark.png
deleted file mode 100644
index d2740050..00000000
Binary files a/wadsrc/decals/cbowmark.png and /dev/null differ
diff --git a/wadsrc/decals/chip1.png b/wadsrc/decals/chip1.png
deleted file mode 100644
index 0c270c81..00000000
Binary files a/wadsrc/decals/chip1.png and /dev/null differ
diff --git a/wadsrc/decals/chip2.png b/wadsrc/decals/chip2.png
deleted file mode 100644
index abb04778..00000000
Binary files a/wadsrc/decals/chip2.png and /dev/null differ
diff --git a/wadsrc/decals/chip3.png b/wadsrc/decals/chip3.png
deleted file mode 100644
index 1e5a15e1..00000000
Binary files a/wadsrc/decals/chip3.png and /dev/null differ
diff --git a/wadsrc/decals/chip4.png b/wadsrc/decals/chip4.png
deleted file mode 100644
index 9768fe3a..00000000
Binary files a/wadsrc/decals/chip4.png and /dev/null differ
diff --git a/wadsrc/decals/chip5.png b/wadsrc/decals/chip5.png
deleted file mode 100644
index 421c3f3d..00000000
Binary files a/wadsrc/decals/chip5.png and /dev/null differ
diff --git a/wadsrc/decals/decaldef.txt b/wadsrc/decals/decaldef.txt
deleted file mode 100644
index 2cd09e1d..00000000
--- a/wadsrc/decals/decaldef.txt
+++ /dev/null
@@ -1,1061 +0,0 @@
-/***** Animators ***********************************************************/
-
-fader GoAway
-{
- DecayStart 0.5
- DecayTime 1.0
-}
-
-fader GoAway2
-{
- DecayStart 1.0
- DecayTime 3.0
-}
-
-colorchanger ToBlack
-{
- FadeStart 0.5
- FadeTime 1.0
-}
-
-stretcher BloodStretcher
-{
- StretchTime 35
- GoalY 2.0
-}
-
-slider BloodSlider
-{
- SlideTime 35
- DistY -5
-}
-
-combiner BloodSmearer
-{
- BloodStretcher
- BloodSlider
-}
-
-/***** Bullet Chips *****/
-
-decal BulletChip1
-{
- pic CHIP1
- translucent 0.85
- shade "00 00 00"
- x-scale 0.5
- y-scale 0.5
- randomflipx
- randomflipy
-}
-
-decal BulletChip2
-{
- pic CHIP2
- translucent 0.85
- shade "00 00 00"
- x-scale 0.5
- y-scale 0.5
- randomflipx
- randomflipy
-}
-
-decal BulletChip3
-{
- pic CHIP3
- translucent 0.85
- shade "00 00 00"
- x-scale 0.5
- y-scale 0.5
- randomflipx
- randomflipy
-}
-
-decal BulletChip4
-{
- pic CHIP4
- translucent 0.85
- shade "00 00 00"
- x-scale 0.5
- y-scale 0.5
- randomflipx
- randomflipy
-}
-
-decal BulletChip5
-{
- pic CHIP5
- translucent 0.85
- shade "00 00 00"
- x-scale 0.5
- y-scale 0.5
- randomflipx
- randomflipy
-}
-
-decalgroup BulletChip
-{
- BulletChip1 1
- BulletChip2 1
- BulletChip3 1
- BulletChip4 1
- BulletChip5 1
-}
-
-/***** Blood Decals ********************************************************/
-/*
- * Blood splats just stick to the walls.
- * Blood smears crawl down walls a bit like in Blood.
- *
- * These do not need generators; the engine will create them automatically
- * when something bleeds. In the future, the shade color will be ignored,
- * and the actor's blood color will be used instead.
- */
-decal BloodSplat1
-{
- pic BSPLAT1
- shade "68 00 00"
- x-scale 0.75
- y-scale 0.75
- randomflipx
- randomflipy
-}
-
-decal BloodSplat2
-{
- pic BSPLAT2
- shade "68 00 00"
- x-scale 0.75
- y-scale 0.75
- randomflipx
- randomflipy
-}
-
-decal BloodSplat3
-{
- pic BSPLAT3
- shade "68 00 00"
- x-scale 0.75
- y-scale 0.75
- randomflipx
- randomflipy
-}
-
-decal BloodSplat4
-{
- pic BSPLAT4
- shade "68 00 00"
- x-scale 0.75
- y-scale 0.75
- randomflipx
- randomflipy
-}
-
-decal BloodSplat5
-{
- pic BSPLAT5
- shade "68 00 00"
- x-scale 0.75
- y-scale 0.75
- randomflipx
- randomflipy
-}
-
-decal BloodSplat6
-{
- pic BSPLAT6
- shade "68 00 00"
- x-scale 0.75
- y-scale 0.75
- randomflipx
- randomflipy
-}
-
-decal BloodSplat7
-{
- pic BSPLAT7
- shade "68 00 00"
- x-scale 0.75
- y-scale 0.75
- randomflipx
- randomflipy
-}
-
-// The smaller blood splats are more common than the big ones.
-
-decalgroup BloodSplat
-{
- BloodSplat1 2
- BloodSplat2 1
- BloodSplat3 5
- BloodSplat4 5
- BloodSplat5 5
- BloodSplat6 5
- BloodSplat7 6
-}
-
-decal BloodSmear1
-{
- pic BSMEAR1
- x-scale 0.625
- y-scale 0.625
- shade "68 00 00"
- randomflipx
- animator BloodSmearer
-}
-
-decal BloodSmear2
-{
- pic BSMEAR1
- x-scale 0.625
- y-scale 0.625
- shade "68 00 00"
- randomflipx
- animator BloodSmearer
-}
-
-decalgroup BloodSmear
-{
- BloodSmear1 1
- BloodSmear2 1
-}
-
-/***** Rocket Scorches *****************************************************/
-
-decal Scorch
-{
- pic SCORCH1
- shade "00 00 00"
- x-scale 0.5
- y-scale 0.5
- randomflipx
- randomflipy
-}
-
-decal BigScorch
-{
- pic SCORCH1
- shade "00 00 00"
- x-scale 0.75
- y-scale 0.75
- randomflipx
- randomflipy
-}
-
-/***** Plasma Rifle Scorches ***********************************************/
-
-decal PlasmaScorchLower1
-{
- pic PLASMA1
- shade "00 00 00"
- x-scale 0.3
- y-scale 0.3
- randomflipx
- randomflipy
-}
-
-decal PlasmaScorch1
-{
- pic PLSSA0
- add 1.0
- fullbright
- animator GoAway
- lowerdecal PlasmaScorchLower1
-}
-
-decal PlasmaScorchLower2
-{
- pic PLASMA2
- shade "00 00 00"
- x-scale 0.3
- y-scale 0.3
- randomflipx
- randomflipy
-}
-
-decal PlasmaScorch2
-{
- pic PLSSB0
- add 1.0
- fullbright
- animator GoAway
- lowerdecal PlasmaScorchLower2
-}
-
-decalgroup PlasmaScorchLower
-{
- PlasmaScorchLower1 1
- PlasmaScorchLower2 1
-}
-
-decalgroup PlasmaScorch
-{
- PlasmaScorch1 1
- PlasmaScorch2 1
-}
-
-/***** BFG Scorches ********************************************************/
-
-decal BFGScorch1
-{
- pic BFGSCRC1
- shade "00 00 00"
- randomflipx
- randomflipy
-}
-
-decal BFGScorch2
-{
- pic BFGSCRC2
- shade "00 00 00"
- randomflipx
- randomflipy
-}
-
-decalgroup BFGScorch
-{
- BFGScorch1 1
- BFGScorch2 1
-}
-
-decal BFGLightning1
-{
- pic BFGLITE1
- shade "80 ff 80"
- fullbright
- randomflipx
- animator GoAway2
- lowerdecal BFGScorch
-}
-
-decal BFGLightning2
-{
- pic BFGLITE2
- shade "80 ff 80"
- fullbright
- randomflipy
- animator GoAway2
- lowerdecal BFGScorch
-}
-
-decalgroup BFGLightning
-{
- BFGLightning1 1
- BFGLightning2 1
-}
-
-/***** Rail Gun Scorches - contributed by Nigel Rowand *********************/
-
-decal RailScorchLower1
-{
- pic CBALSCR1
- shade "00 00 00"
- x-scale 0.2
- y-scale 0.2
- randomflipx
- randomflipy
-}
-
-decal RailScorchLower2
-{
- pic CBALSCR2
- shade "00 00 00"
- x-scale 0.2
- y-scale 0.2
- randomflipx
- randomflipy
-}
-
-decalgroup RailScorchLower
-{
- RailScorchLower1 1
- RailScorchLower2 1
-}
-
-
-
-decal RailScorch1
-{
- pic CBALSCR1
- shade "00 00 56"
- fullbright
- x-scale 0.4
- y-scale 0.4
- animator GoAway
- lowerdecal RailScorchLower
-}
-
-decal RailScorch2
-{
- pic CBALSCR2
- shade "00 00 56"
- fullbright
- x-scale 0.4
- y-scale 0.4
- animator GoAway
- lowerdecal RailScorchLower
-}
-
-decalgroup RailScorch
-{
- RailScorch1 1
- RailScorch2 1
-}
-
-/***** Arachnotron Plasma Scorches *****************************************/
-
-decal ArachScorch1
-{
- pic APLSA0
- add 1.0
- animator GoAway
- lowerdecal PlasmaScorchLower1
-}
-
-decal ArachScorch2
-{
- pic APLSB0
- add 1.0
- animator GoAway
- lowerdecal PlasmaScorchLower2
-}
-
-decalgroup ArachnotronScorch
-{
- ArachScorch1 1
- ArachScorch2 1
-}
-
-/***** Baron of Hell/Hell Knight Scorches **********************************/
-
-decal BaronScorch1
-{
- pic BAL7SCR1
- shade "00 00 00"
- x-scale 0.5
- y-scale 0.5
- randomflipx
- randomflipy
-}
-
-decal BaronScorch2
-{
- pic BAL7SCR2
- shade "00 00 00"
- x-scale 0.5
- y-scale 0.5
- randomflipx
- randomflipy
-}
-
-decalgroup BaronScorch
-{
- BaronScorch1 1
- BaronScorch2 1
-}
-
-/***** Cacodemon Scorches **************************************************/
-
-decal CacoScorch1
-{
- pic BAL7SCR1
- shade "00 00 00"
- x-scale 0.78125
- y-scale 0.78125
- randomflipx
- randomflipy
-}
-
-decal CacoScorch2
-{
- pic BAL7SCR2
- shade "00 00 00"
- x-scale 0.78125
- y-scale 0.78125
- randomflipx
- randomflipy
-}
-
-decalgroup CacoScorch
-{
- CacoScorch1 1
- CacoScorch2 1
-}
-
-/***** Doom Imp Scorches ***************************************************/
-
-decal DImpScorch1
-{
- pic CBALSCR1
- shade "00 00 00"
- x-scale 0.78125
- y-scale 0.78125
- randomflipx
- randomflipy
-}
-
-decal DImpScorch2
-{
- pic CBALSCR2
- shade "00 00 00"
- x-scale 0.78125
- y-scale 0.78125
- randomflipx
- randomflipy
-}
-
-decalgroup DoomImpScorch
-{
- DImpScorch1 1
- DImpScorch2 1
-}
-
-/***** Revenant ************************************************************/
-
-decal RevenantScorch
-{
- pic BLAST1
- shade "00 00 00"
- x-scale 0.5
- y-scale 0.5
- randomflipx
- randomflipy
-}
-
-// Graf Zahl provided definitions for the other games.
-
-/***** Crossbow ************************************************************/
-
-decal CrossbowScorch
-{
- pic CBOWMARK
- shade "00 00 00"
- x-scale 0.4
- y-scale 0.4
- randomflipx
- randomflipy
-}
-
-/***** Heretic Imp Scorches ************************************************/
-
-decal HImpScorch1
-{
- pic CBALSCR1
- shade "00 00 00"
- x-scale 0.5
- y-scale 0.5
- randomflipx
- randomflipy
-}
-
-decal HImpScorch2
-{
- pic CBALSCR2
- shade "00 00 00"
- x-scale 0.5
- y-scale 0.5
- randomflipx
- randomflipy
-}
-
-decalgroup HImpScorch
-{
- HImpScorch1 1
- HImpScorch2 1
-}
-
-/***** Mummy Scorches ******************************************************/
-
-decal MummyScorch1
-{
- pic PLASMA1
- shade "00 00 00"
- x-scale 0.6
- y-scale 0.6
- randomflipx
- randomflipy
-}
-
-decal MummyScorch2
-{
- pic PLASMA2
- shade "00 00 00"
- x-scale 0.6
- y-scale 0.6
- randomflipx
- randomflipy
-}
-
-decalgroup MummyScorch
-{
- MummyScorch1 1
- MummyScorch2 1
-}
-
-/***** Heretic Knight Axe Scorches **********************************////////
-
-decal AxeScorch1
-{
- pic PLASMA1
- shade "00 00 00"
- x-scale 0.15
- y-scale 0.6
- randomflipx
- randomflipy
-}
-
-decal AxeScorch2
-{
- pic PLASMA2
- shade "00 00 00"
- x-scale 0.15
- y-scale 0.6
- randomflipx
- randomflipy
-}
-
-decalgroup AxeScorch
-{
- AxeScorch1 1
- AxeScorch2 1
-}
-
-/***** Wizard Scorches *****************************************************/
-
-decal WizardScorch1
-{
- pic CBALSCR1
- shade "00 00 00"
- x-scale 0.6
- y-scale 0.6
- randomflipx
- randomflipy
-}
-
-decal WizardScorch2
-{
- pic CBALSCR2
- shade "00 00 00"
- x-scale 0.6
- y-scale 0.6
- randomflipx
- randomflipy
-}
-
-decalgroup WizardScorch
-{
- WizardScorch1 1
- WizardScorch2 1
-}
-
-decal SnakeScorch11
-{
- pic CBALSCR1
- shade "00 00 00"
- x-scale 0.4
- y-scale 0.4
- randomflipx
- randomflipy
-}
-
-decal SnakeScorch12
-{
- pic CBALSCR2
- shade "00 00 00"
- x-scale 0.4
- y-scale 0.4
- randomflipx
- randomflipy
-}
-
-decalgroup SnakeScorch1
-{
- SnakeScorch11 1
- SnakeScorch12 1
-}
-
-decal SnakeScorch21
-{
- pic CBALSCR1
- shade "00 00 00"
- x-scale 0.7
- y-scale 0.7
- randomflipx
- randomflipy
-}
-
-decal SnakeScorch22
-{
- pic CBALSCR1
- shade "00 00 00"
- x-scale 0.7
- y-scale 0.7
- randomflipx
- randomflipy
-}
-
-decalgroup SnakeScorch2
-{
- SnakeScorch21 1
- SnakeScorch22 1
-}
-
-/***** Minotaur Scorches ***************************************************/
-
-decal MinotaurScorch
-{
- pic SCORCH1
- shade "00 00 00"
- x-scale 0.55
- y-scale 0.55
- randomflipx
- randomflipy
-}
-
-/***** Sorcerer Scorches ***************************************************/
-
-decal SorcererScorch1
-{
- pic BFGSCRC1
- shade "00 00 00"
- randomflipx
- randomflipy
-}
-
-decal SorcererScorch2
-{
- pic BFGSCRC2
- shade "00 00 00"
- randomflipx
- randomflipy
-}
-
-decalgroup SorcererScorch
-{
- SorcererScorch1 1
- SorcererScorch2 1
-}
-
-decal SorcererLightning1
-{
- pic FX16J0
- add 1.0
- fullbright
- animator GoAway2
- lowerdecal SorcererScorch1
-}
-
-decal SorcererLightning2
-{
- pic FX16K0
- add 1.0
- fullbright
- animator GoAway2
- lowerdecal SorcererScorch2
-}
-
-decalgroup SorcererLightning
-{
- SorcererLightning1 1
- SorcererLightning2 1
-}
-
-/**** Crossbow Scorch ******************************************************/
-
-decal CrossbowScorch2
-{
- pic CBOWMARK
- shade "00 00 00"
- x-scale 0.25
- y-scale 0.25
- randomflipx
- randomflipy
-}
-
-/***** Centaur Scorches ****************************************************/
-
-decal CentaurScorch
-{
- pic BLAST02
- shade "00 00 00"
- x-scale 0.7
- y-scale 0.7
- randomflipx
- randomflipy
-}
-
-/***** Demon2 Scorch *******************************************************/
-
-decal Demon2Scorch
-{
- pic BLAST02
- shade "00 00 00"
- x-scale 0.65
- y-scale 0.65
- randomflipx
- randomflipy
-}
-
-/***** Bishop Scorches *****************************************************/
-
-decal BishopScorch1
-{
- pic PLASMA1
- shade "00 00 00"
- x-scale 0.5
- y-scale 0.5
- randomflipx
- randomflipy
-}
-
-decal BishopScorch2
-{
- pic PLASMA2
- shade "00 00 00"
- x-scale 0.5
- y-scale 0.5
- randomflipx
- randomflipy
-}
-
-decalgroup BishopScorch
-{
- BishopScorch1 1
- BishopScorch2 1
-}
-
-
-/***** Fire Demon Scorches *************************************************/
-
-decal FireDemonScorchLower1
-{
- pic CBALSCR1
- shade "00 00 00"
- x-scale 0.4
- y-scale 0.4
- randomflipx
- randomflipy
-}
-
-decal FireDemonScorchLower2
-{
- pic CBALSCR2
- shade "00 00 00"
- x-scale 0.4
- y-scale 0.4
- randomflipx
- randomflipy
-}
-
-decalgroup FireDemonScorch
-{
- FireDemonScorchLower1 1
- FireDemonScorchLower2 1
-}
-
-/***** Serpent Scorches ****************************************************/
-
-decal SerpentScorchLower1
-{
- pic PLASMA1
- shade "00 00 00"
- x-scale 0.8
- y-scale 0.8
- randomflipx
- randomflipy
-}
-
-decal SerpentScorchLower2
-{
- pic PLASMA2
- shade "00 00 00"
- x-scale 0.8
- y-scale 0.8
- randomflipx
- randomflipy
-}
-
-decalgroup SerpentScorch
-{
- SerpentScorchLower1 1
- SerpentScorchLower2 1
-}
-
-/******************** Warrior Decals ***************************************/
-
-decal SwordScorch1
-{
- pic BFGSCRC1
- shade "00 00 00"
- x-scale 0.5
- y-scale 0.5
- randomflipx
- randomflipy
-}
-
-decal SwordScorch2
-{
- pic BFGSCRC2
- shade "00 00 00"
- x-scale 0.5
- y-scale 0.5
- randomflipx
- randomflipy
-}
-
-decalgroup SwordScorch
-{
- SwordScorch1 1
- SwordScorch2 1
-}
-
-decal SwordLightning1
-{
- pic BFGLITE1
- shade "80 ff 80"
- x-scale 0.5
- y-scale 0.5
- fullbright
- randomflipx
- animator GoAway2
- lowerdecal SwordScorch
-}
-
-decal SwordLightning2
-{
- pic BFGLITE2
- shade "80 ff 80"
- x-scale 0.5
- y-scale 0.5
- fullbright
- randomflipy
- animator GoAway2
- lowerdecal SwordScorch
-}
-
-decalgroup SwordLightning
-{
- SwordLightning1 1
- SwordLightning2 1
-}
-
-
-/***** Generators **********************************************************/
-
-generator Pistol BulletChip
-generator Chainsaw BulletChip
-generator Shotgun BulletChip
-generator SuperShotgun BulletChip
-generator Chaingun BulletChip
-
-generator PlasmaBall PlasmaScorch
-generator Rocket Scorch
-generator BFGBall BFGLightning
-
-generator MarinePistol BulletChip
-generator MarineShotgun BulletChip
-generator MarineSSG BulletChip
-generator MarineChaingun BulletChip
-generator MarineRailgun RailScorch
-
-generator ZombieMan BulletChip
-generator ShotgunGuy BulletChip
-generator ChaingunGuy BulletChip
-generator WolfensteinSS BulletChip
-generator SpiderMastermind BulletChip
-
-generator ArachnotronPlasma ArachnotronScorch
-generator BaronBall BaronScorch
-generator CacodemonBall CacoScorch
-generator DoomImpBall DoomImpScorch
-generator FatShot Scorch
-generator RevenantTracer RevenantScorch
-
-generator VolcanoBlast DoomImpScorch
-generator VolcanoTBlast SnakeScorch1
-generator HereticImpBall HImpScorch
-generator MummyFX1 MummyScorch
-generator KnightAxe AxeScorch
-generator RedAxe BloodSmear
-generator WizardFX1 WizardScorch
-generator SnakeProjA SnakeScorch1
-generator SnakeProjB SnakeScorch2
-generator BeastBall DoomImpScorch
-generator HeadFX1 SnakeScorch2
-generator HeadFX3 CacoScorch
-generator MinotaurFX1 MinotaurScorch
-generator SorcererFX1 RevenantScorch
-generator Sorcerer2FX1 SorcererLightning
-generator GoldWand RailScorchLower
-generator GoldWandPowered RailScorchLower
-generator GoldWandFX1 HImpScorch
-generator CrossbowFX1 CrossbowScorch
-generator CrossbowFX3 CrossbowScorch2
-generator MaceFX1 BaronScorch
-generator Blaster RailScorchLower
-generator BlasterFX1 HImpScorch
-generator Ripper HImpScorch
-generator HornRodFX1 PlasmaScorchLower
-generator HornRodFX2 PlasmaScorchLower
-generator PhoenixFX1 Scorch
-generator PhoenixFX2 Scorch
-
-generator CStaffMissile DoomImpScorch
-generator HammerMissile Scorch
-generator FSwordMissile SwordLightning
-generator MageWandMissile RailScorchLower
-generator MageStaffFX2 Scorch
-generator RipperBall HImpScorch
-generator SorcFX1 RevenantScorch
-generator SorcFX4 RevenantScorch
-generator CentaurFX CentaurScorch
-generator Demon1FX1 RevenantScorch
-generator Demon2FX1 Demon2Scorch
-generator WraithFX1 Demon2Scorch
-generator BishopFX BishopScorch
-generator FireDemonMissile FireDemonScorch
-generator DragonFireball CacoScorch
-generator SerpentFX DoomImpScorch
-
-generator Acolyte BulletChip
-generator AcolyteTan BulletChip
-generator AcolyteRed BulletChip
-generator AcolyteRust BulletChip
-generator AcolyteGray BulletChip
-generator AcolyteDGreen BulletChip
-generator AcolyteGold BulletChip
-generator AcolyteLGreen BulletChip
-generator AcolyteBlue BulletChip
-generator AcolyteShadow BulletChip
-generator Rebel BulletChip
-generator Rebel1 BulletChip
-generator Rebel2 BulletChip
-generator Rebel3 BulletChip
-generator Rebel4 BulletChip
-generator Rebel5 BulletChip
-generator Macil1 BulletChip
-generator Macil2 BulletChip
-generator SentinelFX1 PlasmaScorchLower
-generator SentinelFX2 PlasmaScorchLower
-generator Templar RailScorchLower
-generator Reaver BulletChip
-generator FlameMissile CacoScorch
-generator FastFlameMissile CacoScorch
-generator CrusaderMissile BaronScorch
-generator BishopMissile Scorch
-generator CeilingTurret BulletChip
-generator SpectralLightningBall1 BaronScorch
-generator SpectralLightningBall2 BaronScorch
-generator SpectralLightningH1 BaronScorch
-generator SpectralLightningH2 BaronScorch
-generator SpectralLightningH3 BaronScorch
-generator SpectralLightningBigBall1 BaronScorch
-generator SpectralLightningBigBall2 BaronScorch
-generator SpectralLightningV1 BaronScorch
-generator SpectralLightningV2 BaronScorch
-generator SpectralLightningBigV1 BaronScorch
-generator SpectralLightningBigV2 BaronScorch
-generator ElectricBolt CrossbowScorch2
-generator AssaultGun BulletChip
-generator MiniMissile Scorch
-generator Mauler RailScorchLower
diff --git a/wadsrc/decals/plasma1.png b/wadsrc/decals/plasma1.png
deleted file mode 100644
index cdc99eea..00000000
Binary files a/wadsrc/decals/plasma1.png and /dev/null differ
diff --git a/wadsrc/decals/plasma2.png b/wadsrc/decals/plasma2.png
deleted file mode 100644
index fc50a74e..00000000
Binary files a/wadsrc/decals/plasma2.png and /dev/null differ
diff --git a/wadsrc/decals/scorch1.png b/wadsrc/decals/scorch1.png
deleted file mode 100644
index aa9cf8b2..00000000
Binary files a/wadsrc/decals/scorch1.png and /dev/null differ
diff --git a/wadsrc/decorate/constants.txt b/wadsrc/decorate/constants.txt
deleted file mode 100644
index 91caf723..00000000
--- a/wadsrc/decorate/constants.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-
-// Flags for A_CustomMissile
-const int CMF_AIMOFFSET = 1;
-const int CMF_AIMDIRECTION = 2;
-const int CMF_TRACKOWNER = 4;
-const int CMF_CHECKTARGETDEAD = 8;
-
-// Flags for A_SpawnItemEx
-const int SXF_TRANSFERTRANSLATION=1;
-const int SXF_ABSOLUTEPOSITION=2;
-const int SXF_ABSOLUTEANGLE=4;
-const int SXF_ABSOLUTEMOMENTUM=8;
-const int SXF_SETMASTER=16;
-const int SXF_NOCHECKPOSITION = 32;
-const int SXF_TELEFRAG=64;
-const int SXF_TRANSFERAMBUSHFLAG=128;
-
-// Flags for A_Chase
-const int CHF_FASTCHASE = 1;
-const int CHF_NOPLAYACTIVE = 2;
-const int CHF_NIGHTMAREFAST = 4;
-const int CHF_RESURRECT = 8;
-const int CHF_DONTMOVE = 16;
-
-// Flags for A_LookEx
-const int LOF_NOSIGHTCHECK = 1;
-const int LOF_NOSOUNDCHECK = 2;
-const int LOF_DONTCHASEGOAL = 4;
-const int LOF_NOSEESOUND = 8;
-const int LOF_FULLVOLSEESOUND = 16;
diff --git a/wadsrc/decorate/decorate.txt b/wadsrc/decorate/decorate.txt
deleted file mode 100644
index a500224a..00000000
--- a/wadsrc/decorate/decorate.txt
+++ /dev/null
@@ -1,85 +0,0 @@
-#include "actors/nativeclasses.txt"
-#include "actors/constants.txt"
-
-#include "actors/shared/botstuff.txt"
-#include "actors/shared/sharedmisc.txt"
-#include "actors/shared/blood.txt"
-#include "actors/shared/debris.txt"
-#include "actors/shared/splashes.txt"
-#include "actors/shared/pickups.txt"
-#include "actors/shared/fountain.txt"
-#include "actors/shared/soundsequence.txt"
-
-#include "actors/doom/doomplayer.txt"
-#include "actors/doom/possessed.txt"
-#include "actors/doom/doomimp.txt"
-#include "actors/doom/demon.txt"
-#include "actors/doom/lostsoul.txt"
-#include "actors/doom/cacodemon.txt"
-#include "actors/doom/bruiser.txt"
-#include "actors/doom/revenant.txt"
-#include "actors/doom/arachnotron.txt"
-#include "actors/doom/fatso.txt"
-#include "actors/doom/painelemental.txt"
-#include "actors/doom/archvile.txt"
-#include "actors/doom/cyberdemon.txt"
-#include "actors/doom/spidermaster.txt"
-#include "actors/doom/keen.txt"
-#include "actors/doom/bossbrain.txt"
-
-#include "actors/doom/deadthings.txt"
-#include "actors/doom/doomammo.txt"
-#include "actors/doom/doomarmor.txt"
-#include "actors/doom/doomartifacts.txt"
-#include "actors/doom/doomhealth.txt"
-#include "actors/doom/doomkeys.txt"
-#include "actors/doom/doommisc.txt"
-#include "actors/doom/doomdecorations.txt"
-#include "actors/doom/doomweapons.txt"
-#include "actors/doom/stealthmonsters.txt"
-
-#include "actors/raven/artiegg.txt"
-#include "actors/raven/ravenartifacts.txt"
-#include "actors/raven/ravenhealth.txt"
-#include "actors/raven/ravenambient.txt"
-
-#include "actors/heretic/hereticplayer.txt"
-#include "actors/heretic/hereticammo.txt"
-#include "actors/heretic/hereticarmor.txt"
-#include "actors/heretic/hereticartifacts.txt"
-#include "actors/heretic/heretickeys.txt"
-#include "actors/heretic/hereticdecorations.txt"
-#include "actors/heretic/mummy.txt"
-#include "actors/heretic/clink.txt"
-#include "actors/heretic/beast.txt"
-#include "actors/heretic/snake.txt"
-
-#include "actors/hexen/fighterplayer.txt"
-#include "actors/hexen/clericplayer.txt"
-#include "actors/hexen/mageplayer.txt"
-#include "actors/hexen/flame.txt"
-#include "actors/hexen/hexenarmor.txt"
-#include "actors/hexen/hexendecorations.txt"
-#include "actors/hexen/hexenkeys.txt"
-#include "actors/hexen/hexenspecialdecs.txt"
-#include "actors/hexen/mana.txt"
-#include "actors/hexen/puzzleitems.txt"
-#include "actors/hexen/scriptprojectiles.txt"
-#include "actors/hexen/speedboots.txt"
-#include "actors/hexen/ettin.txt"
-#include "actors/hexen/centaur.txt"
-#include "actors/hexen/demons.txt"
-
-#include "actors/strife/strifeplayer.txt"
-#include "actors/strife/beggars.txt"
-#include "actors/strife/merchants.txt"
-#include "actors/strife/peasants.txt"
-#include "actors/strife/strifebishop.txt"
-#include "actors/strife/questitems.txt"
-#include "actors/strife/ratbuddy.txt"
-#include "actors/strife/strifeammo.txt"
-#include "actors/strife/strifearmor.txt"
-#include "actors/strife/strifeitems.txt"
-#include "actors/strife/strifekeys.txt"
-#include "actors/strife/strifestuff.txt"
-#include "actors/strife/zombie.txt"
diff --git a/wadsrc/decorate/doom/arachnotron.txt b/wadsrc/decorate/doom/arachnotron.txt
deleted file mode 100644
index 9348339d..00000000
--- a/wadsrc/decorate/doom/arachnotron.txt
+++ /dev/null
@@ -1,89 +0,0 @@
-//===========================================================================
-//
-// Arachnotron
-//
-//===========================================================================
-ACTOR Arachnotron 68
-{
- Game Doom
- SpawnID 6
- Health 500
- Radius 64
- Height 64
- Mass 600
- Speed 12
- PainChance 128
- Monster
- +FLOORCLIP
- +BOSSDEATH
- SeeSound "baby/sight"
- PainSound "baby/pain"
- DeathSound "baby/death"
- ActiveSound "baby/active"
- Obituary "$OB_BABY"
- States
- {
- Spawn:
- BSPI AB 10 A_Look
- Loop
- See:
- BSPI A 20
- BSPI A 3 A_BabyMetal
- BSPI ABBCC 3 A_Chase
- BSPI D 3 A_BabyMetal
- BSPI DEEFF 3 A_Chase
- Goto See+1
- Missile:
- BSPI A 20 BRIGHT A_FaceTarget
- BSPI G 4 BRIGHT A_BspiAttack
- BSPI H 4 BRIGHT
- BSPI H 1 BRIGHT A_SpidRefire
- Goto Missile+1
- Pain:
- BSPI I 3
- BSPI I 3 A_Pain
- Goto See+1
- Death:
- BSPI J 20 A_Scream
- BSPI K 7 A_NoBlocking
- BSPI LMNO 7
- BSPI P -1 A_BossDeath
- Stop
- Raise:
- BSPI P 5
- BSPI ONMLKJ 5
- Goto See+1
- }
-}
-
-//===========================================================================
-//
-// Arachnotron plasma
-//
-//===========================================================================
-ACTOR ArachnotronPlasma
-{
- Game Doom
- SpawnID 129
- Radius 13
- Height 8
- Speed 25
- Damage 5
- Projectile
- +RANDOMIZE
- RenderStyle Add
- Alpha 0.75
- SeeSound "baby/attack"
- DeathSound "baby/shotx"
- States
- {
- Spawn:
- APLS AB 5 BRIGHT
- Loop
- Death:
- APBX ABCDE 5 BRIGHT
- Stop
- }
-}
-
-
diff --git a/wadsrc/decorate/doom/archvile.txt b/wadsrc/decorate/doom/archvile.txt
deleted file mode 100644
index 96503d71..00000000
--- a/wadsrc/decorate/doom/archvile.txt
+++ /dev/null
@@ -1,87 +0,0 @@
-//===========================================================================
-//
-// Arch Vile
-//
-//===========================================================================
-
-ACTOR Archvile 64
-{
- Game Doom
- SpawnID 111
- Health 700
- Radius 20
- Height 56
- Mass 500
- Speed 15
- PainChance 10
- Monster
- MaxTargetRange 896
- +QUICKTORETALIATE
- +FLOORCLIP
- +NOTARGET
- SeeSound "vile/sight"
- PainSound "vile/pain"
- DeathSound "vile/death"
- ActiveSound "vile/active"
- MeleeSound "vile/stop"
- Obituary "$OB_VILE"
- States
- {
- Spawn:
- VILE AB 10 A_Look
- Loop
- See:
- VILE AABBCCDDEEFF 2 A_VileChase
- Loop
- Missile:
- VILE G 0 BRIGHT A_VileStart
- VILE G 10 BRIGHT A_FaceTarget
- VILE H 8 BRIGHT A_VileTarget
- VILE IJKLMN 8 BRIGHT A_FaceTarget
- VILE O 8 BRIGHT A_VileAttack
- VILE P 20 BRIGHT
- Goto See
- Heal:
- VILE "[\]" 10 BRIGHT
- Goto See
- Pain:
- VILE Q 5
- VILE Q 5 A_Pain
- Goto See
- Death:
- VILE Q 7
- VILE R 7 A_Scream
- VILE S 7 A_NoBlocking
- VILE TUVWXY 7
- VILE Z -1
- Stop
- }
-}
-
-
-//===========================================================================
-//
-// Arch Vile Fire
-//
-//===========================================================================
-
-ACTOR ArchvileFire
-{
- Game Doom
- SpawnID 98
- +NOBLOCKMAP +NOGRAVITY
- RenderStyle Add
- Alpha 1
- States
- {
- Spawn:
- FIRE A 2 BRIGHT A_StartFire
- FIRE BAB 2 BRIGHT A_Fire
- FIRE C 2 BRIGHT A_FireCrackle
- FIRE BCBCDCDCDEDED 2 BRIGHT A_Fire
- FIRE E 2 BRIGHT A_FireCrackle
- FIRE FEFEFGHGHGH 2 BRIGHT A_Fire
- Stop
- }
-}
-
diff --git a/wadsrc/decorate/doom/bossbrain.txt b/wadsrc/decorate/doom/bossbrain.txt
deleted file mode 100644
index d057be89..00000000
--- a/wadsrc/decorate/doom/bossbrain.txt
+++ /dev/null
@@ -1,123 +0,0 @@
-
-//===========================================================================
-//
-// Boss Brain
-//
-//===========================================================================
-
-ACTOR BossBrain 88
-{
- Game Doom
- Health 250
- Mass 10000000
- PainChance 255
- +SOLID +SHOOTABLE
- +NOICEDEATH
- +OLDRADIUSDMG
- PainSound "brain/pain"
- DeathSound "brain/death"
- States
- {
- BrainExplode:
- MISL BC 10 Bright
- MISL D 10 A_BrainExplode
- Stop
- Spawn:
- BBRN A -1
- Stop
- Pain:
- BBRN B 36 A_BrainPain
- Goto Spawn
- Death:
- BBRN A 100 A_BrainScream
- BBRN AA 10
- BBRN A -1 A_BrainDie
- Stop
- }
-}
-
-
-//===========================================================================
-//
-// Boss Eye
-//
-//===========================================================================
-
-ACTOR BossEye 89
-{
- Game Doom
- Height 32
- +NOBLOCKMAP
- +NOSECTOR
- States
- {
- Spawn:
- SSWV A 10 A_Look
- Loop
- See:
- SSWV A 181 A_BrainAwake
- SSWV A 150 A_BrainSpit
- Loop
- }
-}
-
-//===========================================================================
-//
-// Boss Target
-//
-//===========================================================================
-
-ACTOR BossTarget : SpecialSpot 87
-{
- Game Doom
- Height 32
- +NOBLOCKMAP
- +NOSECTOR
-}
-
-//===========================================================================
-//
-// Spawn shot
-//
-//===========================================================================
-
-ACTOR SpawnShot
-{
- Radius 6
- Height 32
- Speed 10
- Damage 3
- Projectile
- +NOCLIP
- -ACTIVATEPCROSS
- +RANDOMIZE
- SeeSound "brain/spit"
- DeathSound "brain/cubeboom"
- States
- {
- Spawn:
- BOSF A 3 BRIGHT A_SpawnSound
- BOSF BCD 3 BRIGHT A_SpawnFly
- Loop
- }
-}
-
-//===========================================================================
-//
-// Spawn fire
-//
-//===========================================================================
-
-ACTOR SpawnFire
-{
- Height 78
- +NOBLOCKMAP
- +NOGRAVITY
- RenderStyle Add
- States
- {
- Spawn:
- FIRE ABCDEFGH 4 Bright A_Fire
- Stop
- }
-}
diff --git a/wadsrc/decorate/doom/bruiser.txt b/wadsrc/decorate/doom/bruiser.txt
deleted file mode 100644
index f9406f15..00000000
--- a/wadsrc/decorate/doom/bruiser.txt
+++ /dev/null
@@ -1,135 +0,0 @@
-//===========================================================================
-//
-// Baron of Hell
-//
-//===========================================================================
-ACTOR BaronOfHell 3003
-{
- Game Doom
- SpawnID 3
- Health 1000
- Radius 24
- Height 64
- Mass 1000
- Speed 8
- PainChance 50
- Monster
- +FLOORCLIP
- SeeSound "baron/sight"
- PainSound "baron/pain"
- DeathSound "baron/death"
- ActiveSound "baron/active"
- Obituary "$OB_BARON"
- HitObituary "$OB_BARONHIT"
- States
- {
- Spawn:
- BOSS AB 10 A_Look
- Loop
- See:
- BOSS AABBCCDD 3 A_Chase
- Loop
- Melee:
- Missile:
- BOSS EF 8 A_FaceTarget
- BOSS G 8 A_BruisAttack
- Goto See
- Pain:
- BOSS H 2
- BOSS H 2 A_Pain
- Goto See
- Death:
- BOSS I 8
- BOSS J 8 A_Scream
- BOSS K 8
- BOSS L 8 A_NoBlocking
- BOSS MN 8
- BOSS O -1 A_BossDeath
- Stop
- Raise:
- BOSS O 8
- BOSS NMLKJI 8
- Goto See
- }
-}
-
-//===========================================================================
-//
-// Hell Knight
-//
-//===========================================================================
-ACTOR HellKnight : BaronOfHell 69
-{
- Game Doom
- SpawnID 113
- Health 500
- SeeSound "knight/sight"
- ActiveSound "knight/active"
- PainSound "knight/pain"
- DeathSound "knight/death"
- HitObituary "$OB_KNIGHTHIT"
- Obituary "$OB_KNIGHT"
- States
- {
- Spawn:
- BOS2 AB 10 A_Look
- Loop
- See:
- BOS2 AABBCCDD 3 A_Chase
- Loop
- Melee:
- Missile:
- BOS2 EF 8 A_FaceTarget
- BOS2 G 8 A_BruisAttack
- Goto See
- Pain:
- BOS2 H 2
- BOS2 H 2 A_Pain
- Goto See
- Death:
- BOS2 I 8
- BOS2 J 8 A_Scream
- BOS2 K 8
- BOS2 L 8 A_NoBlocking
- BOS2 MN 8
- BOS2 O -1
- Stop
- Raise:
- BOS2 O 8
- BOS2 NMLKJI 8
- Goto See
- }
-}
-
-//===========================================================================
-//
-// Baron slime ball
-//
-//===========================================================================
-ACTOR BaronBall
-{
- Game Doom
- SpawnID 154
- Radius 6
- Height 16
- Speed 15
- FastSpeed 20
- Damage 8
- Projectile
- +RANDOMIZE
- RenderStyle Add
- Alpha 1
- SeeSound "baron/attack"
- DeathSound "baron/shotx"
- Decal "BaronScorch"
- States
- {
- Spawn:
- BAL7 AB 4 BRIGHT
- Loop
- Death:
- BAL7 CDE 6 BRIGHT
- Stop
- }
-}
-
diff --git a/wadsrc/decorate/doom/cacodemon.txt b/wadsrc/decorate/doom/cacodemon.txt
deleted file mode 100644
index 89761e01..00000000
--- a/wadsrc/decorate/doom/cacodemon.txt
+++ /dev/null
@@ -1,86 +0,0 @@
-//===========================================================================
-//
-// Cacodemon
-//
-//===========================================================================
-ACTOR Cacodemon 3005
-{
- Game Doom
- SpawnID 19
- Health 400
- Radius 31
- Height 56
- Mass 400
- Speed 8
- PainChance 128
- Monster
- +FLOAT +NOGRAVITY
- SeeSound "caco/sight"
- PainSound "caco/pain"
- DeathSound "caco/death"
- ActiveSound "caco/active"
- Obituary "$OB_CACO"
- HitObituary "$OB_CACOHIT"
- States
- {
- Spawn:
- HEAD A 10 A_Look
- Loop
- See:
- HEAD A 3 A_Chase
- Loop
- Missile:
- HEAD B 5 A_FaceTarget
- HEAD C 5 A_FaceTarget
- HEAD D 5 BRIGHT A_HeadAttack
- Goto See
- Pain:
- HEAD E 3
- HEAD E 3 A_Pain
- HEAD F 6
- Goto See
- Death:
- HEAD G 8
- HEAD H 8 A_Scream
- HEAD I 8
- HEAD J 8
- HEAD K 8 A_NoBlocking
- HEAD L -1 A_SetFloorClip
- Stop
- Raise:
- HEAD L 8 A_UnSetFloorClip
- HEAD KJIHG 8
- Goto See
- }
-}
-
-//===========================================================================
-//
-// Cacodemon plasma ball
-//
-//===========================================================================
-ACTOR CacodemonBall
-{
- Game Doom
- SpawnID 126
- Radius 6
- Height 8
- Speed 10
- FastSpeed 20
- Damage 5
- Projectile
- +RANDOMIZE
- RenderStyle Add
- Alpha 1
- SeeSound "caco/attack"
- DeathSound "caco/shotx"
- States
- {
- Spawn:
- BAL2 AB 4 BRIGHT
- Loop
- Death:
- BAL2 CDE 6 BRIGHT
- Stop
- }
-}
diff --git a/wadsrc/decorate/doom/cyberdemon.txt b/wadsrc/decorate/doom/cyberdemon.txt
deleted file mode 100644
index 60bcbcc4..00000000
--- a/wadsrc/decorate/doom/cyberdemon.txt
+++ /dev/null
@@ -1,63 +0,0 @@
-
-//===========================================================================
-//
-// Cyberdemon
-//
-//===========================================================================
-ACTOR Cyberdemon 16
-{
- Game Doom
- SpawnID 114
- Health 4000
- Radius 40
- Height 110
- Mass 1000
- Speed 16
- PainChance 20
- Monster
- MinMissileChance 160
- +BOSS
- +MISSILEMORE
- +FLOORCLIP
- +NORADIUSDMG
- +DONTMORPH
- +BOSSDEATH
- SeeSound "cyber/sight"
- PainSound "cyber/pain"
- DeathSound "cyber/death"
- ActiveSound "cyber/active"
- Obituary "$OB_CYBORG"
- States
- {
- Spawn:
- CYBR AB 10 A_Look
- Loop
- See:
- CYBR A 3 A_Hoof
- CYBR ABBCC 3 A_Chase
- CYBR D 3 A_Metal
- CYBR D 3 A_Chase
- Loop
- Missile:
- CYBR E 6 A_FaceTarget
- CYBR F 12 A_CyberAttack
- CYBR E 12 A_FaceTarget
- CYBR F 12 A_CyberAttack
- CYBR E 12 A_FaceTarget
- CYBR F 12 A_CyberAttack
- Goto See
- Pain:
- CYBR G 10 A_Pain
- Goto See
- Death:
- CYBR H 10
- CYBR I 10 A_Scream
- CYBR JKL 10
- CYBR M 10 A_NoBlocking
- CYBR NO 10
- CYBR P 30
- CYBR P -1 A_BossDeath
- Stop
- }
-}
-
diff --git a/wadsrc/decorate/doom/deadthings.txt b/wadsrc/decorate/doom/deadthings.txt
deleted file mode 100644
index b8faa228..00000000
--- a/wadsrc/decorate/doom/deadthings.txt
+++ /dev/null
@@ -1,124 +0,0 @@
-// Gibbed marine -----------------------------------------------------------
-
-actor GibbedMarine 10
-{
- Game Doom
- SpawnID 145
- States
- {
- Spawn:
- PLAY W -1
- Stop
- }
-}
-
-// Gibbed marine (extra copy) ----------------------------------------------
-
-actor GibbedMarineExtra : GibbedMarine 12
-{
- Game Doom
-}
-
-// Dead marine -------------------------------------------------------------
-
-actor DeadMarine 15
-{
- Game Doom
- States
- {
- Spawn:
- PLAY N -1
- Stop
- }
-}
-
-/* If it wasn't for Dehacked compatibility, the rest of these would be
- * better defined as single frame states. But since Doom reused the
- * dead state from the original monsters, we need to do the same.
- */
-
-// Dead zombie man ---------------------------------------------------------
-
-actor DeadZombieMan : ZombieMan 18
-{
- Skip_Super
- Game Doom
- DropItem None
- States
- {
- Spawn:
- Goto Super::Death+4
- }
-}
-
-// Dead shotgun guy --------------------------------------------------------
-
-actor DeadShotgunGuy : ShotgunGuy 19
-{
- Skip_Super
- Game Doom
- DropItem None
- States
- {
- Spawn:
- Goto Super::Death+4
- }
-}
-
-// Dead imp ----------------------------------------------------------------
-
-actor DeadDoomImp : DoomImp 20
-{
- Skip_Super
- Game Doom
- States
- {
- Spawn:
- Goto Super::Death+4
- }
-}
-
-// Dead demon --------------------------------------------------------------
-
-actor DeadDemon : Demon 21
-{
- Skip_Super
- Game Doom
- States
- {
- Spawn:
- Goto Super::Death+5
- }
-}
-
-// Dead cacodemon ----------------------------------------------------------
-
-actor DeadCacodemon : Cacodemon 22
-{
- Skip_Super
- Game Doom
- States
- {
- Spawn:
- Goto Super::Death+5
- }
-}
-
-// Dead lost soul ----------------------------------------------------------
-
-/* [RH] Considering that the lost soul removes itself when it dies, there
- * really wasn't much point in id including this thing, but they did anyway.
- * (There was probably a time when it stayed around after death, and this is
- * a holdover from that.)
- */
-
-actor DeadLostSoul : LostSoul 23
-{
- Skip_Super
- Game Doom
- States
- {
- Spawn:
- Goto Super::Death+5
- }
-}
diff --git a/wadsrc/decorate/doom/demon.txt b/wadsrc/decorate/doom/demon.txt
deleted file mode 100644
index 1090348e..00000000
--- a/wadsrc/decorate/doom/demon.txt
+++ /dev/null
@@ -1,75 +0,0 @@
-//===========================================================================
-//
-// Pink Demon
-//
-//===========================================================================
-ACTOR Demon 3002
-{
- Game Doom
- SpawnID 8
- Health 150
- PainChance 180
- Speed 10
- Radius 30
- Height 56
- Mass 400
- Monster
- +FLOORCLIP +FASTER +FASTMELEE
- SeeSound "demon/sight"
- AttackSound "demon/melee"
- PainSound "demon/pain"
- DeathSound "demon/death"
- ActiveSound "demon/active"
- Obituary "$OB_DEMONHIT"
- States
- {
- Spawn:
- SARG AB 10 A_Look
- Loop
- See:
- SARG AABBCCDD 2 A_Chase
- Loop
- Melee:
- SARG EF 8 A_FaceTarget
- SARG G 8 A_SargAttack
- Goto See
- Pain:
- SARG H 2
- SARG H 2 A_Pain
- Goto See
- Death:
- SARG I 8
- SARG J 8 A_Scream
- SARG K 4
- SARG L 4 A_NoBlocking
- SARG M 4
- SARG N -1
- Stop
- Raise:
- SARG N 5
- SARG MLKJI 5
- Goto See
- }
-}
-
-//===========================================================================
-//
-// Spectre
-//
-//===========================================================================
-ACTOR Spectre : Demon 58
-{
- Game Doom
- SpawnID 9
- +SHADOW
- RenderStyle OptFuzzy
- Alpha 0.5
- SeeSound "spectre/sight"
- AttackSound "spectre/melee"
- PainSound "spectre/pain"
- DeathSound "spectre/death"
- ActiveSound "spectre/active"
- HitObituary "$OB_SPECTREHIT"
-}
-
-
diff --git a/wadsrc/decorate/doom/doomammo.txt b/wadsrc/decorate/doom/doomammo.txt
deleted file mode 100644
index 78ddc0af..00000000
--- a/wadsrc/decorate/doom/doomammo.txt
+++ /dev/null
@@ -1,160 +0,0 @@
-// Clip --------------------------------------------------------------------
-
-ACTOR Clip : Ammo 2007
-{
- Game Doom
- SpawnID 11
- Inventory.PickupMessage "$GOTCLIP"
- Inventory.Amount 10
- Inventory.MaxAmount 200
- Ammo.BackpackAmount 10
- Ammo.BackpackMaxAmount 400
- Inventory.Icon "CLIPA0"
- States
- {
- Spawn:
- CLIP A -1
- Stop
- }
-}
-
-// Clip box ----------------------------------------------------------------
-
-ACTOR ClipBox : Clip 2048
-{
- Game Doom
- SpawnID 139
- Inventory.PickupMessage "$GOTCLIPBOX"
- Inventory.Amount 50
- States
- {
- Spawn:
- AMMO A -1
- Stop
- }
-}
-
-// Rocket ------------------------------------------------------------------
-
-ACTOR RocketAmmo : Ammo 2010
-{
- Game Doom
- SpawnID 140
- Inventory.PickupMessage "$GOTROCKET"
- Inventory.Amount 1
- Inventory.MaxAmount 50
- Ammo.BackpackAmount 1
- Ammo.BackpackMaxAmount 100
- Inventory.Icon "ROCKA0"
- States
- {
- Spawn:
- ROCK A -1
- Stop
- }
-}
-
-// Rocket box --------------------------------------------------------------
-
-ACTOR RocketBox : RocketAmmo 2046
-{
- Game Doom
- SpawnID 141
- Inventory.PickupMessage "$GOTROCKBOX"
- Inventory.Amount 5
- States
- {
- Spawn:
- BROK A -1
- Stop
- }
-}
-
-// Cell --------------------------------------------------------------------
-
-ACTOR Cell : Ammo 2047
-{
- Game Doom
- SpawnID 75
- Inventory.PickupMessage "$GOTCELL"
- Inventory.Amount 20
- Inventory.MaxAmount 300
- Ammo.BackpackAmount 20
- Ammo.BackpackMaxAmount 600
- Inventory.Icon "CELLA0"
- States
- {
- Spawn:
- CELL A -1
- Stop
- }
-}
-
-// Cell pack ---------------------------------------------------------------
-
-ACTOR CellPack : Cell 17
-{
- Game Doom
- SpawnID 142
- Inventory.PickupMessage "$GOTCELLBOX"
- Inventory.Amount 100
- States
- {
- Spawn:
- CELP A -1
- Stop
- }
-}
-
-// Shells ------------------------------------------------------------------
-
-ACTOR Shell : Ammo 2008
-{
- Game Doom
- SpawnID 12
- Inventory.PickupMessage "$GOTSHELLS"
- Inventory.Amount 4
- Inventory.MaxAmount 50
- Ammo.BackpackAmount 4
- Ammo.BackpackMaxAmount 100
- Inventory.Icon "SHELA0"
- States
- {
- Spawn:
- SHEL A -1
- Stop
- }
-}
-
-// Shell box ---------------------------------------------------------------
-
-ACTOR ShellBox : Shell 2049
-{
- Game Doom
- SpawnID 143
- Inventory.PickupMessage "$GOTSHELLBOX"
- Inventory.Amount 20
- States
- {
- Spawn:
- SBOX A -1
- Stop
- }
-}
-
-// Backpack ---------------------------------------------------------------
-
-ACTOR Backpack : BackpackItem 8
-{
- Game Doom
- SpawnID 144
- Height 26
- Inventory.PickupMessage "$GOTBACKPACK"
- States
- {
- Spawn:
- BPAK A -1
- Stop
- }
-}
-
diff --git a/wadsrc/decorate/doom/doomarmor.txt b/wadsrc/decorate/doom/doomarmor.txt
deleted file mode 100644
index bb5f6584..00000000
--- a/wadsrc/decorate/doom/doomarmor.txt
+++ /dev/null
@@ -1,66 +0,0 @@
-
-// Armor bonus --------------------------------------------------------------
-
-Actor ArmorBonus : BasicArmorBonus 2015
-{
- Game Doom
- SpawnID 22
- Radius 20
- Height 16
- Inventory.Pickupmessage "$GOTARMBONUS"
- Inventory.Icon "BON2A0"
- Armor.Savepercent 33.33333
- Armor.Saveamount 1
- Armor.Maxsaveamount 200
- +COUNTITEM
- +INVENTORY.ALWAYSPICKUP
- States
- {
- Spawn:
- BON2 ABCDCB 6
- loop
- }
-}
-
-// Green armor --------------------------------------------------------------
-
-Actor GreenArmor : BasicArmorPickup 2018
-{
- Game Doom
- SpawnID 68
- Radius 20
- Height 16
- Inventory.Pickupmessage "$GOTARMOR"
- Inventory.Icon "ARM1A0"
- Armor.Savepercent 33.33333
- Armor.Saveamount 100
- States
- {
- Spawn:
- ARM1 A 6
- ARM1 B 7 bright
- loop
- }
-}
-
-// Blue armor ---------------------------------------------------------------
-
-Actor BlueArmor : BasicArmorPickup 2019
-{
- Game Doom
- SpawnID 69
- Radius 20
- Height 16
- Inventory.Pickupmessage "$GOTMEGA"
- Inventory.Icon "ARM2A0"
- Armor.Savepercent 50
- Armor.Saveamount 200
- States
- {
- Spawn:
- ARM2 A 6
- ARM2 B 6 bright
- loop
- }
-}
-
diff --git a/wadsrc/decorate/doom/doomartifacts.txt b/wadsrc/decorate/doom/doomartifacts.txt
deleted file mode 100644
index fb822f30..00000000
--- a/wadsrc/decorate/doom/doomartifacts.txt
+++ /dev/null
@@ -1,187 +0,0 @@
-// Invulnerability Sphere ---------------------------------------------------
-
-ACTOR InvulnerabilitySphere : PowerupGiver 2022
-{
- Game Doom
- SpawnID 133
- +COUNTITEM
- +INVENTORY.AUTOACTIVATE
- +INVENTORY.ALWAYSPICKUP
- +INVENTORY.BIGPOWERUP
- Inventory.MaxAmount 0
- Powerup.Type Invulnerable
- Powerup.Color InverseMap
- Inventory.PickupMessage "$GOTINVUL"
- States
- {
- Spawn:
- PINV ABCD 6 Bright
- Loop
- }
-}
-
-// Soulsphere --------------------------------------------------------------
-
-ACTOR Soulsphere : Health 2013
-{
- Game Doom
- SpawnID 25
- +COUNTITEM
- +INVENTORY.AUTOACTIVATE
- +INVENTORY.ALWAYSPICKUP
- +INVENTORY.FANCYPICKUPSOUND
- Inventory.Amount 100
- Inventory.MaxAmount 200
- Inventory.PickupMessage "$GOTSUPER"
- Inventory.PickupSound "misc/p_pkup"
- States
- {
- Spawn:
- SOUL ABCDCB 6 Bright
- Loop
- }
-}
-
-// Mega sphere --------------------------------------------------------------
-
-ACTOR MegasphereHealth : Health // for manipulation by Dehacked
-{
- Inventory.Amount 200
- Inventory.MaxAmount 200
- +INVENTORY.ALWAYSPICKUP
-}
-
-// DeHackEd can only modify the blue armor's type, not the megasphere's.
-actor BlueArmorForMegasphere : BlueArmor
-{
- Armor.SavePercent 50
- Armor.SaveAmount 200
-}
-
-ACTOR Megasphere : CustomInventory 83
-{
- Game Doom
- SpawnID 132
- +COUNTITEM
- +INVENTORY.ALWAYSPICKUP
- Inventory.PickupMessage "$GOTMSPHERE"
- Inventory.PickupSound "misc/p_pkup"
- States
- {
- Spawn:
- MEGA ABCD 6 BRIGHT
- Loop
- Pickup:
- TNT1 A 0 A_GiveInventory("BlueArmorForMegasphere", 1)
- TNT1 A 0 A_GiveInventory("MegasphereHealth", 1)
- Stop
- }
-}
-
-// Invisibility -------------------------------------------------------------
-
-ACTOR BlurSphere : PowerupGiver 2024
-{
- Game Doom
- SpawnID 135
- +COUNTITEM
- +VISIBILITYPULSE
- +INVENTORY.AUTOACTIVATE
- +INVENTORY.ALWAYSPICKUP
- +INVENTORY.BIGPOWERUP
- Inventory.MaxAmount 0
- Powerup.Type Invisibility
- RenderStyle Translucent
- Inventory.PickupMessage "$GOTINVIS"
- States
- {
- Spawn:
- PINS ABCD 6 Bright
- Loop
- }
-}
-
-// Radiation suit (aka iron feet) -------------------------------------------
-
-ACTOR RadSuit : PowerupGiver 2025
-{
- Game Doom
- SpawnID 136
- Height 46
- +INVENTORY.AUTOACTIVATE
- +INVENTORY.ALWAYSPICKUP
- Inventory.MaxAmount 0
- Inventory.PickupMessage "$GOTSUIT"
- Powerup.Type IronFeet
- States
- {
- Spawn:
- SUIT A -1 Bright
- Stop
- }
-}
-
-// infrared -----------------------------------------------------------------
-
-ACTOR Infrared : PowerupGiver 2045
-{
- Game Doom
- SpawnID 138
- +COUNTITEM
- +INVENTORY.AUTOACTIVATE
- +INVENTORY.ALWAYSPICKUP
- Inventory.MaxAmount 0
- Powerup.Type LightAmp
- Inventory.PickupMessage "$GOTVISOR"
- States
- {
- Spawn:
- PVIS A 6 Bright
- PVIS B 6
- Loop
- }
-}
-
-// Allmap -------------------------------------------------------------------
-
-ACTOR Allmap : MapRevealer 2026
-{
- Game Doom
- SpawnID 137
- +COUNTITEM
- +INVENTORY.FANCYPICKUPSOUND
- +INVENTORY.ALWAYSPICKUP
- Inventory.MaxAmount 0
- Inventory.PickupSound "misc/p_pkup"
- Inventory.PickupMessage "$GOTMAP"
- States
- {
- Spawn:
- PMAP ABCDCB 6 Bright
- Loop
- }
-}
-
-// Berserk ------------------------------------------------------------------
-
-ACTOR Berserk : CustomInventory 2023
-{
- Game Doom
- SpawnID 134
- +COUNTITEM
- +INVENTORY.ALWAYSPICKUP
- Inventory.PickupMessage "$GOTBERSERK"
- Inventory.PickupSound "misc/p_pkup"
- States
- {
- Spawn:
- PSTR A -1
- Stop
- Pickup:
- TNT1 A 0 A_GiveInventory("PowerStrength")
- TNT1 A 0 HealThing(100, 0)
- TNT1 A 0 A_SelectWeapon("Fist")
- Stop
- }
-}
-
diff --git a/wadsrc/decorate/doom/doomdecorations.txt b/wadsrc/decorate/doom/doomdecorations.txt
deleted file mode 100644
index 4dcdc885..00000000
--- a/wadsrc/decorate/doom/doomdecorations.txt
+++ /dev/null
@@ -1,754 +0,0 @@
-
-// Tech lamp ---------------------------------------------------------------
-
-ACTOR TechLamp 85
-{
- Game Doom
- Radius 16
- Height 80
- +SOLID
- States
- {
- Spawn:
- TLMP ABCD 4 BRIGHT
- Loop
- }
-}
-
-// Tech lamp 2 -------------------------------------------------------------
-
-ACTOR TechLamp2 86
-{
- Game Doom
- Radius 16
- Height 60
- +SOLID
- States
- {
- Spawn:
- TLP2 ABCD 4 BRIGHT
- Loop
- }
-}
-
-// Column ------------------------------------------------------------------
-
-ACTOR Column 2028
-{
- Game Doom
- Radius 16
- Height 48
- +SOLID
- States
- {
- Spawn:
- COLU A -1 BRIGHT
- Stop
- }
-}
-
-// Tall green column -------------------------------------------------------
-
-ACTOR TallGreenColumn 30
-{
- Game Doom
- Radius 16
- Height 52
- +SOLID
- States
- {
- Spawn:
- COL1 A -1
- Stop
- }
-}
-
-// Short green column ------------------------------------------------------
-
-ACTOR ShortGreenColumn 31
-{
- Game Doom
- Radius 16
- Height 40
- +SOLID
- States
- {
- Spawn:
- COL2 A -1
- Stop
- }
-}
-
-// Tall red column ---------------------------------------------------------
-
-ACTOR TallRedColumn 32
-{
- Game Doom
- Radius 16
- Height 52
- +SOLID
- States
- {
- Spawn:
- COL3 A -1
- Stop
- }
-}
-
-// Short red column --------------------------------------------------------
-
-ACTOR ShortRedColumn 33
-{
- Game Doom
- Radius 16
- Height 40
- +SOLID
- States
- {
- Spawn:
- COL4 A -1
- Stop
- }
-}
-
-// Skull column ------------------------------------------------------------
-
-ACTOR SkullColumn 37
-{
- Game Doom
- Radius 16
- Height 40
- +SOLID
- States
- {
- Spawn:
- COL6 A -1
- Stop
- }
-}
-
-// Heart column ------------------------------------------------------------
-
-ACTOR HeartColumn 36
-{
- Game Doom
- Radius 16
- Height 40
- +SOLID
- States
- {
- Spawn:
- COL5 AB 14
- Loop
- }
-}
-
-// Evil eye ----------------------------------------------------------------
-
-ACTOR EvilEye 41
-{
- Game Doom
- Radius 16
- Height 54
- +SOLID
- States
- {
- Spawn:
- CEYE ABCB 6 BRIGHT
- Loop
- }
-}
-
-// Floating skull ----------------------------------------------------------
-
-ACTOR FloatingSkull 42
-{
- Game Doom
- Radius 16
- Height 26
- +SOLID
- States
- {
- Spawn:
- FSKU ABC 6 BRIGHT
- Loop
- }
-}
-
-// Torch tree --------------------------------------------------------------
-
-ACTOR TorchTree 43
-{
- Game Doom
- Radius 16
- Height 56
- +SOLID
- States
- {
- Spawn:
- TRE1 A -1
- Stop
- }
-}
-
-// Blue torch --------------------------------------------------------------
-
-ACTOR BlueTorch 44
-{
- Game Doom
- Radius 16
- Height 68
- +SOLID
- States
- {
- Spawn:
- TBLU ABCD 4 BRIGHT
- Loop
- }
-}
-
-// Green torch -------------------------------------------------------------
-
-ACTOR GreenTorch 45
-{
- Game Doom
- Radius 16
- Height 68
- +SOLID
- States
- {
- Spawn:
- TGRN ABCD 4 BRIGHT
- Loop
- }
-}
-
-// Red torch ---------------------------------------------------------------
-
-ACTOR RedTorch 46
-{
- Game Doom
- Radius 16
- Height 68
- +SOLID
- States
- {
- Spawn:
- TRED ABCD 4 BRIGHT
- Loop
- }
-}
-
-// Short blue torch --------------------------------------------------------
-
-ACTOR ShortBlueTorch 55
-{
- Game Doom
- Radius 16
- Height 37
- +SOLID
- States
- {
- Spawn:
- SMBT ABCD 4 BRIGHT
- Loop
- }
-}
-
-// Short green torch -------------------------------------------------------
-
-ACTOR ShortGreenTorch 56
-{
- Game Doom
- Radius 16
- Height 37
- +SOLID
- States
- {
- Spawn:
- SMGT ABCD 4 BRIGHT
- Loop
- }
-}
-
-// Short red torch ---------------------------------------------------------
-
-ACTOR ShortRedTorch 57
-{
- Game Doom
- Radius 16
- Height 37
- +SOLID
- States
- {
- Spawn:
- SMRT ABCD 4 BRIGHT
- Loop
- }
-}
-
-// Stalagtite --------------------------------------------------------------
-
-ACTOR Stalagtite 47
-{
- Game Doom
- Radius 16
- Height 40
- +SOLID
- States
- {
- Spawn:
- SMIT A -1
- Stop
- }
-}
-
-// Tech pillar -------------------------------------------------------------
-
-ACTOR TechPillar 48
-{
- Game Doom
- Radius 16
- Height 128
- +SOLID
- States
- {
- Spawn:
- ELEC A -1
- Stop
- }
-}
-
-// Candle stick ------------------------------------------------------------
-
-ACTOR Candlestick 34
-{
- Game Doom
- Radius 20
- Height 14
- States
- {
- Spawn:
- CAND A -1 BRIGHT
- Stop
- }
-}
-
-// Candelabra --------------------------------------------------------------
-
-ACTOR Candelabra 35
-{
- Game Doom
- Radius 16
- Height 60
- +SOLID
- States
- {
- Spawn:
- CBRA A -1 BRIGHT
- Stop
- }
-}
-
-// Bloody twitch -----------------------------------------------------------
-
-ACTOR BloodyTwitch 49
-{
- Game Doom
- Radius 16
- Height 68
- +SOLID
- +NOGRAVITY
- +SPAWNCEILING
- States
- {
- Spawn:
- GOR1 A 10
- GOR1 B 15
- GOR1 C 8
- GOR1 B 6
- Loop
- }
-}
-
-// Meat 2 ------------------------------------------------------------------
-
-ACTOR Meat2 50
-{
- Game Doom
- Radius 16
- Height 84
- +SOLID
- +NOGRAVITY
- +SPAWNCEILING
- States
- {
- Spawn:
- GOR2 A -1
- Stop
- }
-}
-
-// Meat 3 ------------------------------------------------------------------
-
-ACTOR Meat3 51
-{
- Game Doom
- Radius 16
- Height 84
- +SOLID
- +NOGRAVITY
- +SPAWNCEILING
- States
- {
- Spawn:
- GOR3 A -1
- Stop
- }
-}
-
-// Meat 4 ------------------------------------------------------------------
-
-ACTOR Meat4 52
-{
- Game Doom
- Radius 16
- Height 68
- +SOLID
- +NOGRAVITY
- +SPAWNCEILING
- States
- {
- Spawn:
- GOR4 A -1
- Stop
- }
-}
-
-// Meat 5 ------------------------------------------------------------------
-
-ACTOR Meat5 53
-{
- Game Doom
- Radius 16
- Height 52
- +SOLID
- +NOGRAVITY
- +SPAWNCEILING
- States
- {
- Spawn:
- GOR5 A -1
- Stop
- }
-}
-
-// Nonsolid meat -----------------------------------------------------------
-
-ACTOR NonsolidMeat2 : Meat2 59
-{
- Game Doom
- -SOLID
- Radius 20
-}
-
-ACTOR NonsolidMeat3 : Meat3 61
-{
- Game Doom
- -SOLID
- Radius 20
-}
-
-ACTOR NonsolidMeat4 : Meat4 60
-{
- Game Doom
- -SOLID
- Radius 20
-}
-
-ACTOR NonsolidMeat5 : Meat5 62
-{
- Game Doom
- -SOLID
- Radius 20
-}
-
-// Nonsolid bloody twitch --------------------------------------------------
-
-ACTOR NonsolidTwitch : BloodyTwitch 63
-{
- Game Doom
- -SOLID
- Radius 20
-}
-
-// Head on a stick ---------------------------------------------------------
-
-ACTOR HeadOnAStick 27
-{
- Game Doom
- Radius 16
- Height 56
- +SOLID
- States
- {
- Spawn:
- POL4 A -1
- Stop
- }
-}
-
-// Heads (plural!) on a stick ----------------------------------------------
-
-ACTOR HeadsOnAStick 28
-{
- Game Doom
- Radius 16
- Height 64
- +SOLID
- States
- {
- Spawn:
- POL2 A -1
- Stop
- }
-}
-
-// Head candles ------------------------------------------------------------
-
-ACTOR HeadCandles 29
-{
- Game Doom
- Radius 16
- Height 42
- +SOLID
- States
- {
- Spawn:
- POL3 AB 6 BRIGHT
- Loop
- }
-}
-
-// Dead on a stick ---------------------------------------------------------
-
-ACTOR DeadStick 25
-{
- Game Doom
- Radius 16
- Height 64
- +SOLID
- States
- {
- Spawn:
- POL1 A -1
- Stop
- }
-}
-
-// Still alive on a stick --------------------------------------------------
-
-ACTOR LiveStick 26
-{
- Game Doom
- Radius 16
- Height 64
- +SOLID
- States
- {
- Spawn:
- POL6 A 6
- POL6 B 8
- Loop
- }
-}
-
-// Big tree ----------------------------------------------------------------
-
-ACTOR BigTree 54
-{
- Game Doom
- Radius 32
- Height 108
- +SOLID
- States
- {
- Spawn:
- TRE2 A -1
- Stop
- }
-}
-
-// Burning barrel ----------------------------------------------------------
-
-ACTOR BurningBarrel 70
-{
- Game Doom
- SpawnID 149
- Radius 16
- Height 32
- +SOLID
- States
- {
- Spawn:
- FCAN ABC 4 BRIGHT
- Loop
- }
-}
-
-// Hanging with no guts ----------------------------------------------------
-
-ACTOR HangNoGuts 73
-{
- Game Doom
- Radius 16
- Height 88
- +SOLID
- +NOGRAVITY
- +SPAWNCEILING
- States
- {
- Spawn:
- HDB1 A -1
- Stop
- }
-}
-
-// Hanging from bottom with no brain ---------------------------------------
-
-ACTOR HangBNoBrain 74
-{
- Game Doom
- Radius 16
- Height 88
- +SOLID
- +NOGRAVITY
- +SPAWNCEILING
- States
- {
- Spawn:
- HDB2 A -1
- Stop
- }
-}
-
-// Hanging from top, looking down ------------------------------------------
-
-ACTOR HangTLookingDown 75
-{
- Game Doom
- Radius 16
- Height 64
- +SOLID
- +NOGRAVITY
- +SPAWNCEILING
- States
- {
- Spawn:
- HDB3 A -1
- Stop
- }
-}
-
-// Hanging from top, looking up --------------------------------------------
-
-ACTOR HangTLookingUp 77
-{
- Game Doom
- Radius 16
- Height 64
- +SOLID
- +NOGRAVITY
- +SPAWNCEILING
- States
- {
- Spawn:
- HDB5 A -1
- Stop
- }
-}
-
-// Hanging from top, skully ------------------------------------------------
-
-ACTOR HangTSkull 76
-{
- Game Doom
- Radius 16
- Height 64
- +SOLID
- +NOGRAVITY
- +SPAWNCEILING
- States
- {
- Spawn:
- HDB4 A -1
- Stop
- }
-}
-
-// Hanging from top without a brain ----------------------------------------
-
-ACTOR HangTNoBrain 78
-{
- Game Doom
- Radius 16
- Height 64
- +SOLID
- +NOGRAVITY
- +SPAWNCEILING
- States
- {
- Spawn:
- HDB6 A -1
- Stop
- }
-}
-
-// Colon gibs --------------------------------------------------------------
-
-ACTOR ColonGibs 79
-{
- Game Doom
- SpawnID 147
- Radius 20
- Height 4
- States
- {
- Spawn:
- POB1 A -1
- Stop
- }
-}
-
-// Small pool o' blood -----------------------------------------------------
-
-ACTOR SmallBloodPool 80
-{
- Game Doom
- SpawnID 148
- Radius 20
- Height 1
- States
- {
- Spawn:
- POB2 A -1
- Stop
- }
-}
-
-// brain stem lying on the ground ------------------------------------------
-
-ACTOR BrainStem 81
-{
- Game Doom
- SpawnID 150
- Radius 20
- Height 4
- States
- {
- Spawn:
- BRS1 A -1
- Stop
- }
-}
-
diff --git a/wadsrc/decorate/doom/doomhealth.txt b/wadsrc/decorate/doom/doomhealth.txt
deleted file mode 100644
index dce00ace..00000000
--- a/wadsrc/decorate/doom/doomhealth.txt
+++ /dev/null
@@ -1,51 +0,0 @@
-// Health bonus -------------------------------------------------------------
-
-ACTOR HealthBonus : Health 2014
-{
- Game Doom
- SpawnID 152
- +COUNTITEM
- +INVENTORY.ALWAYSPICKUP
- Inventory.Amount 1
- Inventory.MaxAmount 200
- Inventory.PickupMessage "$GOTHTHBONUS"
- States
- {
- Spawn:
- BON1 ABCDCB 6
- Loop
- }
-}
-
-// Stimpack -----------------------------------------------------------------
-
-ACTOR Stimpack : Health 2011
-{
- Game Doom
- SpawnID 23
- Inventory.Amount 10
- Inventory.PickupMessage "$GOTSTIM"
- States
- {
- Spawn:
- STIM A -1
- Stop
- }
-}
-
-// Medikit -----------------------------------------------------------------
-
-ACTOR Medikit : Health 2012
-{
- Game Doom
- SpawnID 24
- Inventory.Amount 25
- Inventory.PickupMessage "$GOTMEDIKIT"
- Health.LowMessage 25, "$GOTMEDINEED"
- States
- {
- Spawn:
- MEDI A -1
- Stop
- }
-}
diff --git a/wadsrc/decorate/doom/doomimp.txt b/wadsrc/decorate/doom/doomimp.txt
deleted file mode 100644
index d9122748..00000000
--- a/wadsrc/decorate/doom/doomimp.txt
+++ /dev/null
@@ -1,91 +0,0 @@
-//===========================================================================
-//
-// Imp
-//
-//===========================================================================
-ACTOR DoomImp 3001
-{
- Game Doom
- SpawnID 5
- Health 60
- Radius 20
- Height 56
- Mass 100
- Speed 8
- PainChance 200
- Monster
- +FLOORCLIP
- SeeSound "imp/sight"
- PainSound "imp/pain"
- DeathSound "imp/death"
- ActiveSound "imp/active"
- HitObituary "$OB_IMPHIT"
- Obituary "$OB_IMP"
- States
- {
- Spawn:
- TROO AB 10 A_Look
- Loop
- See:
- TROO AABBCCDD 3 A_Chase
- Loop
- Melee:
- Missile:
- TROO EF 8 A_FaceTarget
- TROO G 6 A_TroopAttack
- Goto See
- Pain:
- TROO H 2
- TROO H 2 A_Pain
- Goto See
- Death:
- TROO I 8
- TROO J 8 A_Scream
- TROO K 6
- TROO L 6 A_NoBlocking
- TROO M -1
- Stop
- XDeath:
- TROO N 5
- TROO O 5 A_XScream
- TROO P 5
- TROO Q 5 A_NoBlocking
- TROO RST 5
- TROO U -1
- Stop
- Raise:
- TROO MLKJI 8
- Goto See
- }
-}
-
-//===========================================================================
-//
-// Imp fireball
-//
-//===========================================================================
-ACTOR DoomImpBall
-{
- Game Doom
- SpawnID 10
- Radius 6
- Height 8
- Speed 10
- FastSpeed 20
- Damage 3
- Projectile
- +RANDOMIZE
- RenderStyle Add
- Alpha 1
- SeeSound "imp/attack"
- DeathSound "imp/shotx"
- States
- {
- Spawn:
- BAL1 AB 4 BRIGHT
- Loop
- Death:
- BAL1 CDE 6 BRIGHT
- Stop
- }
-}
diff --git a/wadsrc/decorate/doom/doomkeys.txt b/wadsrc/decorate/doom/doomkeys.txt
deleted file mode 100644
index 9072582d..00000000
--- a/wadsrc/decorate/doom/doomkeys.txt
+++ /dev/null
@@ -1,110 +0,0 @@
-
-Actor DoomKey : Key
-{
- Radius 20
- Height 16
- +NOTDMATCH
-}
-
-// Blue key card ------------------------------------------------------------
-
-Actor BlueCard : DoomKey 5
-{
- Game Doom
- SpawnID 85
- Inventory.Pickupmessage "$GOTBLUECARD"
- Inventory.Icon "STKEYS0"
- States
- {
- Spawn:
- BKEY A 10
- BKEY B 10 bright
- loop
- }
-}
-
-// Yellow key card ----------------------------------------------------------
-
-Actor YellowCard : DoomKey 6
-{
- Game Doom
- SpawnID 87
- Inventory.Pickupmessage "$GOTYELWCARD"
- Inventory.Icon "STKEYS1"
- States
- {
- Spawn:
- YKEY A 10
- YKEY B 10 bright
- loop
- }
-}
-
-// Red key card -------------------------------------------------------------
-
-Actor RedCard : DoomKey 13
-{
- Game Doom
- SpawnID 86
- Inventory.Pickupmessage "$GOTREDCARD"
- Inventory.Icon "STKEYS2"
- States
- {
- Spawn:
- RKEY A 10
- RKEY B 10 bright
- loop
- }
-}
-
-// Blue skull key -----------------------------------------------------------
-
-Actor BlueSkull : DoomKey 40
-{
- Game Doom
- SpawnID 90
- Inventory.Pickupmessage "$GOTBLUESKUL"
- Inventory.Icon "STKEYS3"
- States
- {
- Spawn:
- BSKU A 10
- BSKU B 10 bright
- loop
- }
-}
-
-// Yellow skull key ---------------------------------------------------------
-
-Actor YellowSkull : DoomKey 39
-{
- Game Doom
- SpawnID 88
- Inventory.Pickupmessage "$GOTYELWSKUL"
- Inventory.Icon "STKEYS4"
- States
- {
- Spawn:
- YSKU A 10
- YSKU B 10 bright
- loop
- }
-}
-
-// Red skull key ------------------------------------------------------------
-
-Actor RedSkull : DoomKey 38
-{
- Game Doom
- SpawnID 89
- Inventory.Pickupmessage "$GOTREDSKUL"
- Inventory.Icon "STKEYS5"
- States
- {
- Spawn:
- RSKU A 10
- RSKU B 10 bright
- loop
- }
-}
-
diff --git a/wadsrc/decorate/doom/doommisc.txt b/wadsrc/decorate/doom/doommisc.txt
deleted file mode 100644
index fa643fd2..00000000
--- a/wadsrc/decorate/doom/doommisc.txt
+++ /dev/null
@@ -1,80 +0,0 @@
-// The barrel of green goop ------------------------------------------------
-
-ACTOR ExplosiveBarrel 2035
-{
- Game Doom
- SpawnID 125
- Health 20
- Radius 10
- Height 34
- +SOLID
- +SHOOTABLE
- +NOBLOOD
- +ACTIVATEMCROSS
- +DONTGIB
- +NOICEDEATH
- +OLDRADIUSDMG
- DeathSound "world/barrelx"
- Obituary "$OB_BARREL"
- States
- {
- Spawn:
- BAR1 AB 6
- Loop
- Death:
- BEXP A 5 BRIGHT
- BEXP B 5 BRIGHT A_Scream
- BEXP C 5 BRIGHT
- BEXP D 5 BRIGHT A_Explode
- BEXP E 10 BRIGHT
- BEXP E 1050 BRIGHT A_BarrelDestroy
- BEXP E 5 A_Respawn
- Wait
- }
-}
-
-// Bullet puff -------------------------------------------------------------
-
-ACTOR BulletPuff
-{
- Game Doom
- SpawnID 131
- +NOBLOCKMAP
- +NOGRAVITY
- +ALLOWPARTICLES
- +RANDOMIZE
- RenderStyle Translucent
- Alpha 0.5
- VSpeed 1
- Mass 5
- States
- {
- Spawn:
- PUFF A 4 Bright
- PUFF B 4
- Melee:
- PUFF CD 4
- Stop
- }
-}
-
-// Container for an unused state -------------------------------------------
-
-/* Doom defined the states S_STALAG, S_DEADTORSO, and S_DEADBOTTOM but never
- * actually used them. For compatibility with DeHackEd patches, they still
- * need to be kept around. This actor serves that purpose.
- */
-
-ACTOR DoomUnusedStates
-{
- States
- {
- SMT2 A -1
- stop
- Death:
- PLAY N -1
- stop
- PLAY S -1
- stop
- }
-}
diff --git a/wadsrc/decorate/doom/doomplayer.txt b/wadsrc/decorate/doom/doomplayer.txt
deleted file mode 100644
index fcdc1d39..00000000
--- a/wadsrc/decorate/doom/doomplayer.txt
+++ /dev/null
@@ -1,70 +0,0 @@
-//===========================================================================
-//
-// Player
-//
-//===========================================================================
-ACTOR DoomPlayer : PlayerPawn
-{
- Speed 1
- Health 100
- Radius 16
- Height 56
- Mass 100
- PainChance 255
- Player.ColorRange 112, 127
- Player.DisplayName "Marine"
- Player.CrouchSprite "PLYC"
- Player.StartItem "Pistol"
- Player.StartItem "Fist"
- Player.StartItem "Clip", 50
-
- States
- {
- Spawn:
- PLAY A -1
- Loop
- See:
- PLAY ABCD 4
- Loop
- Missile:
- PLAY E 12
- Goto Spawn
- Melee:
- PLAY F 6 BRIGHT
- Goto Missile
- Pain:
- PLAY G 4
- PLAY G 4 A_Pain
- Goto Spawn
- Death:
- PLAY H 10 A_PlayerSkinCheck("AltSkinDeath")
- PLAY I 10 A_PlayerScream
- PLAY J 10 A_NoBlocking
- PLAY KLM 10
- PLAY N -1
- Stop
- XDeath:
- PLAY O 5 A_PlayerSkinCheck("AltSkinXDeath")
- PLAY P 5 A_XScream
- PLAY Q 5 A_NoBlocking
- PLAY RSTUV 5
- PLAY W -1
- Stop
- AltSkinDeath:
- PLAY H 6
- PLAY I 6 A_PlayerScream
- PLAY JK 6
- PLAY L 6 A_NoBlocking
- PLAY MNO 6
- PLAY P -1
- Stop
- AltSkinXDeath:
- PLAY Q 5 A_PlayerScream
- PLAY R 0 A_NoBlocking
- PLAY R 5 A_SkullPop
- PLAY STUVWX 5
- PLAY Y -1
- Stop
- }
-}
-
diff --git a/wadsrc/decorate/doom/doomweapons.txt b/wadsrc/decorate/doom/doomweapons.txt
deleted file mode 100644
index 0e291879..00000000
--- a/wadsrc/decorate/doom/doomweapons.txt
+++ /dev/null
@@ -1,501 +0,0 @@
-// --------------------------------------------------------------------------
-//
-// Doom weapon base class
-//
-// --------------------------------------------------------------------------
-
-ACTOR DoomWeapon : Weapon
-{
- Weapon.Kickback 100
- States
- {
- LightDone:
- SHTG E 0 A_Light0
- Stop
- }
-}
-
-// --------------------------------------------------------------------------
-//
-// Fist
-//
-// --------------------------------------------------------------------------
-
-ACTOR Fist : Weapon
-{
- Weapon.SelectionOrder 3700
- Weapon.Kickback 100
- Obituary "$OB_MPFIST"
- +WEAPON.WIMPY_WEAPON
- +WEAPON.MELEEWEAPON
- States
- {
- Ready:
- PUNG A 1 A_WeaponReady
- Loop
- Deselect:
- PUNG A 1 A_Lower
- Loop
- Select:
- PUNG A 1 A_Raise
- Loop
- Fire:
- PUNG B 4
- PUNG C 4 A_Punch
- PUNG D 5
- PUNG C 4
- PUNG B 5 A_ReFire
- Goto Ready
- }
-}
-
-
-// --------------------------------------------------------------------------
-//
-// Fist
-//
-// --------------------------------------------------------------------------
-
-ACTOR Pistol : DoomWeapon 5010
-{
- Weapon.SelectionOrder 1900
- Weapon.AmmoUse 1
- Weapon.AmmoGive 20
- Weapon.AmmoType "Clip"
- Obituary "$OB_MPPISTOL"
- +WEAPON.WIMPY_WEAPON
- Inventory.Pickupmessage "$PICKUP_PISTOL_DROPPED"
- States
- {
- Ready:
- PISG A 1 A_WeaponReady
- Loop
- Deselect:
- PISG A 1 A_Lower
- Loop
- Select:
- PISG A 1 A_Raise
- Loop
- Fire:
- PISG A 4
- PISG B 6 A_FirePistol
- PISG C 4
- PISG B 5 A_ReFire
- Goto Ready
- Flash:
- PISF A 7 Bright A_Light1
- Goto LightDone
- PISF A 7 Bright A_Light1
- Goto LightDone
- Spawn:
- PIST A -1
- Stop
- }
-}
-
-// --------------------------------------------------------------------------
-//
-// Chainsaw
-//
-// --------------------------------------------------------------------------
-
-ACTOR Chainsaw : Weapon 2005
-{
- Game Doom
- SpawnID 32
- Weapon.Kickback 0
- Weapon.SelectionOrder 2200
- Weapon.UpSound "weapons/sawup"
- Weapon.ReadySound "weapons/sawidle"
- Inventory.PickupMessage "$GOTCHAINSAW"
- Obituary "$OB_MPCHAINSAW"
- +WEAPON.MELEEWEAPON
- States
- {
- Ready:
- SAWG CD 4 A_WeaponReady
- Loop
- Deselect:
- SAWG C 1 A_Lower
- Loop
- Select:
- SAWG C 1 A_Raise
- Loop
- Fire:
- SAWG AB 4 A_Saw
- SAWG B 0 A_ReFire
- Goto Ready
- Spawn:
- CSAW A -1
- Stop
- }
-}
-
-
-// --------------------------------------------------------------------------
-//
-// Shotgun
-//
-// --------------------------------------------------------------------------
-
-ACTOR Shotgun : DoomWeapon 2001
-{
- Game Doom
- SpawnID 27
- Weapon.SelectionOrder 1300
- Weapon.AmmoUse 1
- Weapon.AmmoGive 8
- Weapon.AmmoType "Shell"
- Inventory.PickupMessage "$GOTSHOTGUN"
- Obituary "$OB_MPSHOTGUN"
- States
- {
- Ready:
- SHTG A 1 A_WeaponReady
- Loop
- Deselect:
- SHTG A 1 A_Lower
- Loop
- Select:
- SHTG A 1 A_Raise
- Loop
- Fire:
- SHTG A 3
- SHTG A 7 A_FireShotgun
- SHTG BC 5
- SHTG D 4
- SHTG CB 5
- SHTG A 3
- SHTG A 7 A_ReFire
- Goto Ready
- Flash:
- SHTF A 4 Bright A_Light1
- SHTF B 3 Bright A_Light2
- Goto LightDone
- Spawn:
- SHOT A -1
- Stop
- }
-}
-
-// --------------------------------------------------------------------------
-//
-// Shotgun
-//
-// --------------------------------------------------------------------------
-
-ACTOR SuperShotgun : DoomWeapon 82
-{
- Game Doom
- SpawnID 33
- Weapon.SelectionOrder 400
- Weapon.AmmoUse 2
- Weapon.AmmoGive 8
- Weapon.AmmoType "Shell"
- Inventory.PickupMessage "$GOTSHOTGUN2"
- Obituary "$OB_MPSSHOTGUN"
- States
- {
- Ready:
- SHT2 A 1 A_WeaponReady
- Loop
- Deselect:
- SHT2 A 1 A_Lower
- Loop
- Select:
- SHT2 A 1 A_Raise
- Loop
- Fire:
- SHT2 A 3
- SHT2 A 7 A_FireShotgun2
- SHT2 B 7
- SHT2 C 7 A_CheckReload
- SHT2 D 7 A_OpenShotgun2
- SHT2 E 7
- SHT2 F 7 A_LoadShotgun2
- SHT2 G 6
- SHT2 H 6 A_CloseShotgun2
- SHT2 A 5 A_ReFire
- Goto Ready
- // unused states
- SHT2 B 7
- SHT2 A 3
- Goto Deselect
- Flash:
- SHT2 I 4 Bright A_Light1
- SHT2 J 3 Bright A_Light2
- Goto LightDone
- Spawn:
- SGN2 A -1
- Stop
- }
-}
-
-// --------------------------------------------------------------------------
-//
-// Chaingun
-//
-// --------------------------------------------------------------------------
-
-ACTOR Chaingun : DoomWeapon 2002
-{
- Game Doom
- SpawnID 28
- Weapon.SelectionOrder 700
- Weapon.AmmoUse 1
- Weapon.AmmoGive 20
- Weapon.AmmoType "Clip"
- Inventory.PickupMessage "$GOTCHAINGUN"
- Obituary "$OB_MPCHAINGUN"
- States
- {
- Ready:
- CHGG A 1 A_WeaponReady
- Loop
- Deselect:
- CHGG A 1 A_Lower
- Loop
- Select:
- CHGG A 1 A_Raise
- Loop
- Fire:
- CHGG AB 4 A_FireCGun
- CHGG B 0 A_ReFire
- Goto Ready
- Flash:
- CHGF A 5 Bright A_Light1
- Goto LightDone
- CHGF B 5 Bright A_Light2
- Goto LightDone
- Spawn:
- MGUN A -1
- Stop
- }
-}
-
-// --------------------------------------------------------------------------
-//
-// Rocket launcher
-//
-// --------------------------------------------------------------------------
-
-ACTOR RocketLauncher : DoomWeapon 2003
-{
- Game Doom
- SpawnID 29
- Weapon.SelectionOrder 2500
- Weapon.AmmoUse 1
- Weapon.AmmoGive 2
- Weapon.AmmoType "RocketAmmo"
- +WEAPON.NOAUTOFIRE
- Inventory.PickupMessage "$GOTLAUNCHER"
- States
- {
- Ready:
- MISG A 1 A_WeaponReady
- Loop
- Deselect:
- MISG A 1 A_Lower
- Loop
- Select:
- MISG A 1 A_Raise
- Loop
- Fire:
- MISG B 8 A_GunFlash
- MISG B 12 A_FireMissile
- MISG B 0 A_ReFire
- Goto Ready
- Flash:
- MISF A 3 Bright A_Light1
- MISF B 4 Bright
- MISF CD 4 Bright A_Light2
- Goto LightDone
- Spawn:
- LAUN A -1
- Stop
- }
-}
-
-ACTOR Rocket
-{
- Game Doom
- SpawnID 127
- Radius 11
- Height 8
- Speed 20
- Damage 20
- Projectile
- +RANDOMIZE
- +DEHEXPLOSION
- +ROCKETTRAIL
- SeeSound "weapons/rocklf"
- DeathSound "weapons/rocklx"
- Obituary "$OB_MPROCKET"
- States
- {
- Spawn:
- MISL A 1 Bright
- Loop
- Death:
- MISL B 8 Bright A_Explode
- MISL C 6 Bright
- MISL D 4 Bright
- Stop
- }
-}
-
-// --------------------------------------------------------------------------
-//
-// Plasma rifle
-//
-// --------------------------------------------------------------------------
-
-ACTOR PlasmaRifle : DoomWeapon 2004
-{
- Game Doom
- SpawnID 30
- Weapon.SelectionOrder 100
- Weapon.AmmoUse 1
- Weapon.AmmoGive 40
- Weapon.AmmoType "Cell"
- Inventory.PickupMessage "$GOTPLASMA"
- States
- {
- Ready:
- PLSG A 1 A_WeaponReady
- Loop
- Deselect:
- PLSG A 1 A_Lower
- Loop
- Select:
- PLSG A 1 A_Raise
- Loop
- Fire:
- PLSG A 3 A_FirePlasma
- PLSG B 20 A_ReFire
- Goto Ready
- Flash:
- PLSF A 4 Bright A_Light1
- Goto LightDone
- PLSF B 4 Bright A_Light1
- Goto LightDone
- Spawn:
- PLAS A -1
- Stop
- }
-}
-
-ACTOR PlasmaBall
-{
- Game Doom
- SpawnID 51
- Radius 13
- Height 8
- Speed 25
- Damage 5
- Projectile
- +RANDOMIZE
- RenderStyle Add
- Alpha 0.75
- SeeSound "weapons/plasmaf"
- DeathSound "weapons/plasmax"
- Obituary "$OB_MPPLASMARIFLE"
- States
- {
- Spawn:
- PLSS AB 6 Bright
- Loop
- Death:
- PLSE ABCDE 4 Bright
- Stop
- }
-}
-
-
-
-// --------------------------------------------------------------------------
-//
-// BFG 9000
-//
-// --------------------------------------------------------------------------
-
-ACTOR BFG9000 : DoomWeapon 2006
-{
- Game Doom
- Height 20
- SpawnID 31
- Weapon.SelectionOrder 2800
- Weapon.AmmoUse 40
- Weapon.AmmoGive 40
- Weapon.AmmoType "Cell"
- +WEAPON.NOAUTOFIRE
- Inventory.PickupMessage "$GOTBFG9000"
- States
- {
- Ready:
- BFGG A 1 A_WeaponReady
- Loop
- Deselect:
- BFGG A 1 A_Lower
- Loop
- Select:
- BFGG A 1 A_Raise
- Loop
- Fire:
- BFGG A 20 A_BFGsound
- BFGG B 10 A_GunFlash
- BFGG B 10 A_FireBFG
- BFGG B 20 A_ReFire
- Goto Ready
- Flash:
- BFGF A 11 Bright A_Light1
- BFGF B 6 Bright A_Light2
- Goto LightDone
- Spawn:
- BFUG A -1
- Stop
- }
-}
-
-
-ACTOR BFGBall
-{
- Game Doom
- SpawnID 128
- Radius 13
- Height 8
- Speed 25
- Damage 100
- Projectile
- +RANDOMIZE
- RenderStyle Add
- Alpha 0.75
- DeathSound "weapons/bfgx"
- Obituary "$OB_MPBFG_BOOM"
- States
- {
- Spawn:
- BFS1 AB 4 Bright
- Loop
- Death:
- BFE1 AB 8 Bright
- BFE1 C 8 Bright A_BFGSpray
- BFE1 DEF 8 Bright
- Stop
- }
-}
-
-ACTOR BFGExtra
-{
- +NOBLOCKMAP
- +NOGRAVITY
- RenderStyle Add
- Alpha 0.75
- States
- {
- Spawn:
- BFE2 ABCD 8 Bright
- Stop
- }
-}
-
diff --git a/wadsrc/decorate/doom/fatso.txt b/wadsrc/decorate/doom/fatso.txt
deleted file mode 100644
index 63ae511a..00000000
--- a/wadsrc/decorate/doom/fatso.txt
+++ /dev/null
@@ -1,93 +0,0 @@
-//===========================================================================
-//
-// Mancubus
-//
-//===========================================================================
-ACTOR Fatso 67
-{
- Game Doom
- SpawnID 112
- Health 600
- Radius 48
- Height 64
- Mass 1000
- Speed 8
- PainChance 80
- Monster
- +FLOORCLIP
- +BOSSDEATH
- SeeSound "fatso/sight"
- PainSound "fatso/pain"
- DeathSound "fatso/death"
- ActiveSound "fatso/active"
- Obituary "$OB_FATSO"
- States
- {
- Spawn:
- FATT AB 15 A_Look
- Loop
- See:
- FATT AABBCCDDEEFF 4 A_Chase
- Loop
- Missile:
- FATT G 20 A_FatRaise
- FATT H 10 BRIGHT A_FatAttack1
- FATT IG 5
- FATT H 10 BRIGHT A_FatAttack2
- FATT IG 5
- FATT H 10 BRIGHT A_FatAttack3
- FATT IG 5
- Goto See
- Pain:
- FATT J 3
- FATT J 3 A_Pain
- Goto See
- Death:
- FATT K 6
- FATT L 6 A_Scream
- FATT M 6 A_NoBlocking
- FATT NOPQRS 6
- FATT T -1 A_BossDeath
- Stop
- Raise:
- FATT R 5
- FATT QPONMLK 5
- Goto See
- }
-}
-
-
-
-//===========================================================================
-//
-// Mancubus fireball
-//
-//===========================================================================
-ACTOR FatShot
-{
- Game Doom
- SpawnID 153
- Radius 6
- Height 8
- Speed 20
- Damage 8
- Projectile
- +RANDOMIZE
- RenderStyle Add
- Alpha 1
- SeeSound "fatso/attack"
- DeathSound "fatso/shotx"
- States
- {
- Spawn:
- MANF AB 4 BRIGHT
- Loop
- Death:
- MISL B 8 BRIGHT
- MISL C 6 BRIGHT
- MISL D 4 BRIGHT
- Stop
- }
-}
-
-
diff --git a/wadsrc/decorate/doom/keen.txt b/wadsrc/decorate/doom/keen.txt
deleted file mode 100644
index fef06043..00000000
--- a/wadsrc/decorate/doom/keen.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-//===========================================================================
-//
-// Commander Keen
-//
-//===========================================================================
-ACTOR CommanderKeen 72
-{
- Game Doom
- Health 100
- Radius 16
- Height 72
- Mass 10000000
- PainChance 256
- +SOLID
- +SPAWNCEILING
- +NOGRAVITY
- +SHOOTABLE
- +COUNTKILL
- +NOICEDEATH
- +ISMONSTER
- PainSound "keen/pain"
- DeathSound "keen/death"
- States
- {
- Spawn:
- KEEN A -1
- Loop
- Death:
- KEEN AB 6
- KEEN C 6 A_Scream
- KEEN DEFGH 6
- KEEN I 6 A_NoBlocking
- KEEN J 6
- KEEN K 6 A_KeenDie
- KEEN L -1
- Stop
- Pain:
- KEEN M 4
- KEEN M 8 A_Pain
- Goto Spawn
- }
-}
diff --git a/wadsrc/decorate/doom/lostsoul.txt b/wadsrc/decorate/doom/lostsoul.txt
deleted file mode 100644
index d6f8de0c..00000000
--- a/wadsrc/decorate/doom/lostsoul.txt
+++ /dev/null
@@ -1,51 +0,0 @@
-//===========================================================================
-//
-// Lost Soul
-//
-//===========================================================================
-ACTOR LostSoul 3006
-{
- Game Doom
- SpawnID 110
- Health 100
- Radius 16
- Height 56
- Mass 50
- Speed 8
- Damage 3
- PainChance 256
- Monster
- +FLOAT +NOGRAVITY +MISSILEMORE +DONTFALL +NOICEDEATH
- AttackSound "skull/melee"
- PainSound "skull/pain"
- DeathSound "skull/death"
- ActiveSound "skull/active"
- RenderStyle SoulTrans
- Obituary "$OB_SKULL"
- States
- {
- Spawn:
- SKUL AB 10 BRIGHT A_Look
- Loop
- See:
- SKUL AB 6 BRIGHT A_Chase
- Loop
- Missile:
- SKUL C 10 BRIGHT A_FaceTarget
- SKUL D 4 BRIGHT A_SkullAttack
- SKUL CD 4 BRIGHT
- Goto Missile+2
- Pain:
- SKUL E 3 BRIGHT
- SKUL E 3 BRIGHT A_Pain
- Goto See
- Death:
- SKUL F 6 BRIGHT
- SKUL G 6 BRIGHT A_Scream
- SKUL H 6 BRIGHT
- SKUL I 6 BRIGHT A_NoBlocking
- SKUL J 6
- SKUL K 6
- Stop
- }
-}
diff --git a/wadsrc/decorate/doom/painelemental.txt b/wadsrc/decorate/doom/painelemental.txt
deleted file mode 100644
index e8e359cf..00000000
--- a/wadsrc/decorate/doom/painelemental.txt
+++ /dev/null
@@ -1,52 +0,0 @@
-//===========================================================================
-//
-// Pain Elemental
-//
-//===========================================================================
-ACTOR PainElemental 71
-{
- Game Doom
- SpawnID 115
- Health 400
- Radius 31
- Height 56
- Mass 400
- Speed 8
- PainChance 128
- Monster
- +FLOAT
- +NOGRAVITY
- SeeSound "pain/sight"
- PainSound "pain/pain"
- DeathSound "pain/death"
- ActiveSound "pain/active"
- States
- {
- Spawn:
- PAIN A 10 A_Look
- Loop
- See:
- PAIN AABBCC 3 A_Chase
- Loop
- Missile:
- PAIN D 5 A_FaceTarget
- PAIN E 5 A_FaceTarget
- PAIN F 4 BRIGHT A_FaceTarget
- PAIN F 1 BRIGHT A_PainAttack
- Goto See
- Pain:
- PAIN G 6
- PAIN G 6 A_Pain
- Goto See
- Death:
- PAIN H 8 BRIGHT
- PAIN I 8 BRIGHT A_Scream
- PAIN JK 8 BRIGHT
- PAIN L 8 BRIGHT A_PainDie
- PAIN M 8 BRIGHT
- Stop
- Raise:
- PAIN MLKJIH 8
- Goto See
- }
-}
diff --git a/wadsrc/decorate/doom/possessed.txt b/wadsrc/decorate/doom/possessed.txt
deleted file mode 100644
index 62a41a80..00000000
--- a/wadsrc/decorate/doom/possessed.txt
+++ /dev/null
@@ -1,249 +0,0 @@
-
-//===========================================================================
-//
-// Zombie man
-//
-//===========================================================================
-ACTOR ZombieMan 3004
-{
- Game Doom
- SpawnID 4
- Health 20
- Radius 20
- Height 56
- Speed 8
- PainChance 200
- Monster
- +FLOORCLIP
- SeeSound "grunt/sight"
- AttackSound "grunt/attack"
- PainSound "grunt/pain"
- DeathSound "grunt/death"
- ActiveSound "grunt/active"
- Obituary "$OB_ZOMBIE"
- DropItem "Clip"
- States
- {
- Spawn:
- POSS AB 10 A_Look
- Loop
- See:
- POSS AABBCCDD 4 A_Chase
- Loop
- Missile:
- POSS E 10 A_FaceTarget
- POSS F 8 A_PosAttack
- POSS E 8
- Goto See
- Pain:
- POSS G 3
- POSS G 3 A_Pain
- Goto See
- Death:
- POSS H 5
- POSS I 5 A_Scream
- POSS J 5 A_NoBlocking
- POSS K 5
- POSS L -1
- Stop
- XDeath:
- POSS M 5
- POSS N 5 A_XScream
- POSS O 5 A_NoBlocking
- POSS PQRST 5
- POSS U -1
- Stop
- Raise:
- POSS K 5
- POSS JIH 5
- Goto See
- }
-}
-
-//===========================================================================
-//
-// Sergeant / Shotgun guy
-//
-//===========================================================================
-ACTOR ShotgunGuy 9
-{
- Game Doom
- SpawnID 1
- Health 30
- Radius 20
- Height 56
- Mass 100
- Speed 8
- PainChance 170
- Monster
- +FLOORCLIP
- SeeSound "shotguy/sight"
- AttackSound "shotguy/attack"
- PainSound "shotguy/pain"
- DeathSound "shotguy/death"
- ActiveSound "shotguy/active"
- Obituary "$OB_SHOTGUY"
- DropItem "Shotgun"
- States
- {
- Spawn:
- SPOS AB 10 A_Look
- Loop
- See:
- SPOS AABBCCDD 3 A_Chase
- Loop
- Missile:
- SPOS E 10 A_FaceTarget
- SPOS F 10 BRIGHT A_SposAttackUseAtkSound
- SPOS E 10
- Goto See
- Pain:
- SPOS G 3
- SPOS G 3 A_Pain
- Goto See
- Death:
- SPOS H 5
- SPOS I 5 A_Scream
- SPOS J 5 A_NoBlocking
- SPOS K 5
- SPOS L -1
- Stop
- XDeath:
- SPOS M 5
- SPOS N 5 A_XScream
- SPOS O 5 A_NoBlocking
- SPOS PQRST 5
- SPOS U -1
- Stop
- Raise:
- SPOS L 5
- SPOS KJIH 5
- Goto See
- }
-}
-
-//===========================================================================
-//
-// Chaingunner
-//
-//===========================================================================
-ACTOR ChaingunGuy 65
-{
- Game Doom
- SpawnID 2
- Health 70
- Radius 20
- Height 56
- Mass 100
- Speed 8
- PainChance 170
- Monster
- +FLOORCLIP
- SeeSound "chainguy/sight"
- PainSound "chainguy/pain"
- DeathSound "chainguy/death"
- ActiveSound "chainguy/active"
- AttackSound "chainguy/attack"
- Obituary "$OB_CHAINGUY"
- Dropitem "Chaingun"
- States
- {
- Spawn:
- CPOS AB 10 A_Look
- Loop
- See:
- CPOS AABBCCDD 3 A_Chase
- Loop
- Missile:
- CPOS E 10 A_FaceTarget
- CPOS FE 4 BRIGHT A_CPosAttack
- CPOS F 1 A_CPosRefire
- Goto Missile+1
- Pain:
- CPOS G 3
- CPOS G 3 A_Pain
- Goto See
- Death:
- CPOS H 5
- CPOS I 5 A_Scream
- CPOS J 5 A_NoBlocking
- CPOS KLM 5
- CPOS N -1
- Stop
- XDeath:
- CPOS O 5
- CPOS P 5 A_XScream
- CPOS Q 5 A_NoBlocking
- CPOS RS 5
- CPOS T -1
- Stop
- Raise:
- CPOS N 5
- CPOS MLKJIH 5
- Goto See
- }
-}
-
-//===========================================================================
-//
-// SS Nazi
-//
-//===========================================================================
-ACTOR WolfensteinSS 84
-{
- Game Doom
- SpawnID 116
- Health 50
- Radius 20
- Height 56
- Speed 8
- PainChance 170
- Monster
- +FLOORCLIP
- SeeSound "wolfss/sight"
- PainSound "wolfss/pain"
- DeathSound "wolfss/death"
- ActiveSound "wolfss/active"
- AttackSound "wolfss/attack"
- Obituary "$OB_WOLFSS"
- Dropitem "Clip"
- States
- {
- Spawn:
- SSWV AB 10 A_Look
- Loop
- See:
- SSWV AABBCCDD 3 A_Chase
- Loop
- Missile:
- SSWV E 10 A_FaceTarget
- SSWV F 10 A_FaceTarget
- SSWV G 4 BRIGHT A_CPosAttack
- SSWV F 6 A_FaceTarget
- SSWV G 4 BRIGHT A_CPosAttack
- SSWV F 1 A_CPosRefire
- Goto Missile+1
- Pain:
- SSWV H 3
- SSWV H 3 A_Pain
- Goto See
- Death:
- SSWV I 5
- SSWV J 5 A_Scream
- SSWV K 5 A_NoBlocking
- SSWV L 5
- SSWV M -1
- Stop
- XDeath:
- SSWV N 5
- SSWV O 5 A_XScream
- SSWV P 5 A_NoBlocking
- SSWV QRSTU 5
- SSWV V -1
- Stop
- Raise:
- SSWV M 5
- SSWV LKJI 5
- Goto See
- }
-}
diff --git a/wadsrc/decorate/doom/revenant.txt b/wadsrc/decorate/doom/revenant.txt
deleted file mode 100644
index 5f0a7869..00000000
--- a/wadsrc/decorate/doom/revenant.txt
+++ /dev/null
@@ -1,117 +0,0 @@
-//===========================================================================
-//
-// Revenant
-//
-//===========================================================================
-ACTOR Revenant 66
-{
- Game Doom
- SpawnID 20
- Health 300
- Radius 20
- Height 56
- Mass 500
- Speed 10
- PainChance 100
- Monster
- MeleeThreshold 196
- +MISSILEMORE
- +FLOORCLIP
- SeeSound "skeleton/sight"
- PainSound "skeleton/pain"
- DeathSound "skeleton/death"
- ActiveSound "skeleton/active"
- MeleeSound "skeleton/melee"
- HitObituary "$OB_UNDEADHIT"
- Obituary "$OB_UNDEAD"
- States
- {
- Spawn:
- SKEL AB 10 A_Look
- Loop
- See:
- SKEL AABBCCDDEEFF 2 A_Chase
- Loop
- Melee:
- SKEL G 1 A_FaceTarget
- SKEL G 6 A_SkelWhoosh
- SKEL H 6 A_FaceTarget
- SKEL I 6 A_SkelFist
- Goto See
- Missile:
- SKEL J 1 BRIGHT A_FaceTarget
- SKEL J 9 BRIGHT A_FaceTarget
- SKEL K 10 A_SkelMissile
- SKEL K 10 A_FaceTarget
- Goto See
- Pain:
- SKEL L 5
- SKEL L 5 A_Pain
- Goto See
- Death:
- SKEL LM 7
- SKEL N 7 A_Scream
- SKEL O 7 A_NoBlocking
- SKEL P 7
- SKEL Q -1
- Stop
- Raise:
- SKEL Q 5
- SKEL PONML 5
- Goto See
- }
-}
-
-
-//===========================================================================
-//
-// Revenant Tracer
-//
-//===========================================================================
-ACTOR RevenantTracer
-{
- Game Doom
- SpawnID 53
- Radius 11
- Height 8
- Speed 10
- Damage 10
- Projectile
- +SEEKERMISSILE
- +RANDOMIZE
- SeeSound "skeleton/attack"
- DeathSound "skeleton/tracex"
- RenderStyle Add
- States
- {
- Spawn:
- FATB AB 2 BRIGHT A_Tracer
- Loop
- Death:
- FBXP A 8 BRIGHT
- FBXP B 6 BRIGHT
- FBXP C 4 BRIGHT
- Stop
- }
-}
-
-
-//===========================================================================
-//
-// Revenant Tracer Smoke
-//
-//===========================================================================
-ACTOR RevenantTracerSmoke
-{
- +NOBLOCKMAP
- +NOGRAVITY
- +NOTELEPORT
- RenderStyle Translucent
- Alpha 0.5
- States
- {
- Spawn:
- PUFF ABABC 4
- Stop
- }
-}
diff --git a/wadsrc/decorate/doom/spidermaster.txt b/wadsrc/decorate/doom/spidermaster.txt
deleted file mode 100644
index d2939c8e..00000000
--- a/wadsrc/decorate/doom/spidermaster.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-//===========================================================================
-//
-// Spider boss
-//
-//===========================================================================
-ACTOR SpiderMastermind 7
-{
- Game Doom
- SpawnID 7
- Health 3000
- Radius 100
- Height 100
- Mass 1000
- Speed 12
- PainChance 40
- Monster
- MinMissileChance 160
- +BOSS
- +MISSILEMORE
- +FLOORCLIP
- +NORADIUSDMG
- +DONTMORPH
- +BOSSDEATH
- SeeSound "spider/sight"
- AttackSound "spider/attack"
- PainSound "spider/pain"
- DeathSound "spider/death"
- ActiveSound "spider/active"
- Obituary "$OB_SPIDER"
- States
- {
- Spawn:
- SPID AB 10 A_Look
- Loop
- See:
- SPID A 3 A_Metal
- SPID ABB 3 A_Chase
- SPID C 3 A_Metal
- SPID CDD 3 A_Chase
- SPID E 3 A_Metal
- SPID EFF 3 A_Chase
- Loop
- Missile:
- SPID A 20 BRIGHT A_FaceTarget
- SPID G 4 BRIGHT A_SPosAttackUseAtkSound
- SPID H 4 BRIGHT A_SposAttackUseAtkSound
- SPID H 1 BRIGHT A_SpidRefire
- Goto Missile+1
- Pain:
- SPID I 3
- SPID I 3 A_Pain
- Goto See
- Death:
- SPID J 20 A_Scream
- SPID K 10 A_NoBlocking
- SPID LMNOPQR 10
- SPID S 30
- SPID S -1 A_BossDeath
- Stop
- }
-}
diff --git a/wadsrc/decorate/doom/stealthmonsters.txt b/wadsrc/decorate/doom/stealthmonsters.txt
deleted file mode 100644
index f5d7ae31..00000000
--- a/wadsrc/decorate/doom/stealthmonsters.txt
+++ /dev/null
@@ -1,127 +0,0 @@
-
-ACTOR StealthArachnotron : Arachnotron 9050
-{
- Game Doom
- SpawnID 117
- +STEALTH
- RenderStyle Translucent
- Alpha 0
- Obituary "$OB_STEALTHBABY"
-}
-
-ACTOR StealthArchvile : Archvile 9051
-{
- Game Doom
- SpawnID 118
- +STEALTH
- RenderStyle Translucent
- Alpha 0
- Obituary "$OB_STEALTHVILE"
-}
-
-ACTOR StealthBaron : BaronOfHell 9052
-{
- Game Doom
- SpawnID 100
- +STEALTH
- RenderStyle Translucent
- Alpha 0
- Obituary "$OB_STEALTHBARON"
- HitObituary "$OB_STEALTHBARON"
-}
-
-ACTOR StealthCacodemon : Cacodemon 9053
-{
- Game Doom
- SpawnID 119
- +STEALTH
- RenderStyle Translucent
- Alpha 0
- Obituary "$OB_STEALTHCACO"
- HitObituary "$OB_STEALTHCACO"
-}
-
-ACTOR StealthChaingunGuy : ChaingunGuy 9054
-{
- Game Doom
- SpawnID 120
- +STEALTH
- RenderStyle Translucent
- Alpha 0
- Obituary "$OB_STEALTHCHAINGUY"
-}
-
-ACTOR StealthDemon : Demon 9055
-{
- Game Doom
- SpawnID 121
- +STEALTH
- RenderStyle Translucent
- Alpha 0
- Obituary "$OB_STEALTHDEMON"
- HitObituary "$OB_STEALTHDEMON"
-}
-
-ACTOR StealthHellKnight : HellKnight 9056
-{
- Game Doom
- SpawnID 101
- +STEALTH
- RenderStyle Translucent
- Alpha 0
- Obituary "$OB_STEALTHKNIGHT"
- HitObituary "$OB_STEALTHKNIGHT"
-}
-
-ACTOR StealthDoomImp : DoomImp 9057
-{
- Game Doom
- SpawnID 122
- +STEALTH
- RenderStyle Translucent
- Alpha 0
- Obituary "$OB_STEALTHIMP"
- HitObituary "$OB_STEALTHIMP"
-}
-
-ACTOR StealthFatso : Fatso 9058
-{
- Game Doom
- SpawnID 123
- +STEALTH
- RenderStyle Translucent
- Alpha 0
- Obituary "$OB_STEALTHFATSO"
-}
-
-ACTOR StealthRevenant : Revenant 9059
-{
- Game Doom
- SpawnID 124
- +STEALTH
- RenderStyle Translucent
- Alpha 0
- Obituary "$OB_STEALTHUNDEAD"
- HitObituary "$OB_STEALTHUNDEAD"
-}
-
-ACTOR StealthShotgunGuy : ShotgunGuy 9060
-{
- Game Doom
- SpawnID 103
- +STEALTH
- RenderStyle Translucent
- Alpha 0
- Obituary "$OB_STEALTHSHOTGUNGUY"
-}
-
-ACTOR StealthZombieMan : ZombieMan 9061
-{
- Game Doom
- SpawnID 102
- +STEALTH
- RenderStyle Translucent
- Alpha 0
- Obituary "$OB_STEALTHZOMBIE"
-}
-
diff --git a/wadsrc/decorate/heretic/beast.txt b/wadsrc/decorate/heretic/beast.txt
deleted file mode 100644
index c89e6a02..00000000
--- a/wadsrc/decorate/heretic/beast.txt
+++ /dev/null
@@ -1,114 +0,0 @@
-
-// Beast --------------------------------------------------------------------
-
-ACTOR Beast 70
-{
- Game Heretic
- SpawnID 3
- Health 220
- Radius 32
- Height 74
- Mass 200
- Speed 14
- Painchance 100
- Monster
- +FLOORCLIP
- SeeSound "beast/sight"
- AttackSound "beast/attack"
- PainSound "beast/pain"
- DeathSound "beast/death"
- ActiveSound "beast/active"
- Obituary "$OB_BEAST"
- DropItem "CrossbowAmmo", 84, 10
- States
- {
- Spawn:
- BEAS AB 10 A_Look
- Loop
- See:
- BEAS ABCDEF 3 A_Chase
- Loop
- Melee:
- Missile:
- BEAS H 10 A_FaceTarget
- BEAS I 10 A_CustomComboAttack("BeastBall", 32, random[BeastAttack](1,8)*3, "beast/attack")
- Goto See
- Pain:
- BEAS G 3
- BEAS G 3 A_Pain
- Goto See
- Death:
- BEAS R 6
- BEAS S 6 A_Scream
- BEAS TUV 6
- BEAS W 6 A_NoBlocking
- BEAS XY 6
- BEAS Z -1
- Stop
- XDeath:
- BEAS J 5
- BEAS K 6 A_Scream
- BEAS L 5
- BEAS M 6
- BEAS N 5
- BEAS O 6 A_NoBlocking
- BEAS P 5
- BEAS Q -1
- Stop
- }
-}
-
-// Beast ball ---------------------------------------------------------------
-
-ACTOR BeastBall
-{
- Game Heretic
- SpawnID 120
- Radius 9
- Height 8
- Speed 12
- FastSpeed 20
- Damage 4
- Projectile
- -ACTIVATEIMPACT
- -ACTIVATEPCROSS
- -NOBLOCKMAP
- +WINDTHRUST
- +SPAWNSOUNDSOURCE
- RenderStyle Add
- SeeSound "beast/attack"
- States
- {
- Spawn:
- FRB1 AABBCC 2 A_SpawnItemEx("Puffy", random2[BeastPuff]()*0.015625, random2[BeastPuff]()*0.015625, random2[BeastPuff]()*0.015625,
- 0,0,0,0,SXF_ABSOLUTEPOSITION, 64)
- Loop
- Death:
- FRB1 DEFGH 4
- Stop
- }
-}
-
-// Puffy --------------------------------------------------------------------
-
-ACTOR Puffy
-{
- Radius 6
- Height 8
- Speed 10
- +NOBLOCKMAP
- +NOGRAVITY
- +MISSILE
- +NOTELEPORT
- +DONTSPLASH
- RenderStyle Add
- States
- {
- Spawn:
- FRB1 DEFGH 4
- Stop
- }
-}
-
-
-
diff --git a/wadsrc/decorate/heretic/clink.txt b/wadsrc/decorate/heretic/clink.txt
deleted file mode 100644
index ec8cf6b9..00000000
--- a/wadsrc/decorate/heretic/clink.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-
-ACTOR Clink 90
-{
- Game Heretic
- SpawnID 1
- Health 150
- Radius 20
- Height 64
- Mass 75
- Speed 14
- Painchance 32
- Monster
- +NOBLOOD
- +FLOORCLIP
- SeeSound "clink/sight"
- AttackSound "clink/attack"
- PainSound "clink/pain"
- DeathSound "clink/death"
- ActiveSound "clink/active"
- Obituary "$OB_CLINK"
- DropItem "SkullRodAmmo", 84, 20
- States
- {
- Spawn:
- CLNK AB 10 A_Look
- Loop
- See:
- CLNK ABCD 3 A_Chase
- Loop
- Melee:
- CLNK E 5 A_FaceTarget
- CLNK F 4 A_FaceTarget
- CLNK G 7 A_CustomMeleeAttack(random[ClinkAttack](3,9), "clink/attack", "clink/attack")
- Goto See
- Pain:
- CLNK H 3
- CLNK H 3 A_Pain
- Goto See
- Death:
- CLNK IJ 6
- CLNK K 5 A_Scream
- CLNK L 5 A_NoBlocking
- CLNK MN 5
- CLNK O -1
- Stop
- }
-}
-
diff --git a/wadsrc/decorate/heretic/hereticammo.txt b/wadsrc/decorate/heretic/hereticammo.txt
deleted file mode 100644
index 3b7f039c..00000000
--- a/wadsrc/decorate/heretic/hereticammo.txt
+++ /dev/null
@@ -1,230 +0,0 @@
-
-// Wimpy ammo ---------------------------------------------------------------
-
-ACTOR GoldWandAmmo : Ammo 10
-{
- Game Heretic
- SpawnID 11
- Inventory.PickupMessage "$TXT_AMMOGOLDWAND1"
- Inventory.Amount 10
- Inventory.MaxAmount 100
- Ammo.BackpackAmount 10
- Ammo.BackpackMaxAmount 200
- Inventory.Icon "INAMGLD"
- States
- {
- Spawn:
- AMG1 A -1
- Stop
- }
-}
-
-// Hefty ammo ---------------------------------------------------------------
-
-ACTOR GoldWandHefty : GoldWandAmmo 12
-{
- Game Heretic
- SpawnID 12
- Inventory.PickupMessage "$TXT_AMMOGOLDWAND2"
- Inventory.Amount 50
- States
- {
- Spawn:
- AMG2 ABC 4
- Loop
- }
-}
-// Wimpy ammo ---------------------------------------------------------------
-
-ACTOR CrossbowAmmo : Ammo 18
-{
- Game Heretic
- SpawnID 33
- Inventory.PickupMessage "$TXT_AMMOCROSSBOW1"
- Inventory.Amount 5
- Inventory.MaxAmount 50
- Ammo.BackpackAmount 5
- Ammo.BackpackMaxAmount 100
- Inventory.Icon "INAMBOW"
- States
- {
- Spawn:
- AMC1 A -1
- Stop
- }
-}
-
-// Hefty ammo ---------------------------------------------------------------
-
-ACTOR CrossbowHefty : CrossbowAmmo 19
-{
- Game Heretic
- SpawnID 34
- Inventory.PickupMessage "$TXT_AMMOCROSSBOW2"
- Inventory.Amount 20
- States
- {
- Spawn:
- AMC2 ABC 5
- Loop
- }
-}
-// Wimpy ammo ---------------------------------------------------------------
-
-ACTOR MaceAmmo : Ammo 13
-{
- Game Heretic
- SpawnID 35
- Inventory.PickupMessage "$TXT_AMMOMACE1"
- Inventory.Amount 20
- Inventory.MaxAmount 150
- Ammo.BackpackAmount 20
- Ammo.BackpackMaxAmount 300
- Inventory.Icon "INAMLOB"
- States
- {
- Spawn:
- AMM1 A -1
- Stop
- }
-}
-
-// Hefty ammo ---------------------------------------------------------------
-
-ACTOR MaceHefty : MaceAmmo 16
-{
- Game Heretic
- SpawnID 36
- Inventory.PickupMessage "$TXT_AMMOMACE1"
- Inventory.Amount 100
- States
- {
- Spawn:
- AMM2 A -1
- Stop
- }
-}
-
-// Wimpy ammo ---------------------------------------------------------------
-
-ACTOR BlasterAmmo : Ammo 54
-{
- Game Heretic
- SpawnID 37
- Inventory.PickupMessage "$TXT_AMMOBLASTER1"
- Inventory.Amount 10
- Inventory.MaxAmount 200
- Ammo.BackpackAmount 10
- Ammo.BackpackMaxAmount 400
- Inventory.Icon "INAMBST"
- States
- {
- Spawn:
- AMB1 ABC 4
- Loop
- }
-}
-
-// Hefty ammo ---------------------------------------------------------------
-
-ACTOR BlasterHefty : BlasterAmmo 55
-{
- Game Heretic
- SpawnID 38
- Inventory.PickupMessage "$TXT_AMMOBLASTER2"
- Inventory.Amount 25
- States
- {
- Spawn:
- AMB2 ABC 4
- Loop
- }
-}
-
-// Wimpy ammo ---------------------------------------------------------------
-
-ACTOR SkullRodAmmo : Ammo 20
-{
- Game Heretic
- SpawnID 158
- Inventory.PickupMessage "$TXT_AMMOSKULLROD1"
- Inventory.Amount 20
- Inventory.MaxAmount 200
- Ammo.BackpackAmount 20
- Ammo.BackpackMaxAmount 400
- Inventory.Icon "INAMRAM"
- States
- {
- Spawn:
- AMS1 AB 5
- Loop
- }
-}
-
-// Hefty ammo ---------------------------------------------------------------
-
-ACTOR SkullRodHefty : SkullRodAmmo 21
-{
- Game Heretic
- SpawnID 159
- Inventory.PickupMessage "$TXT_AMMOSKULLROD2"
- Inventory.Amount 100
- States
- {
- Spawn:
- AMS2 AB 5
- Loop
- }
-}
-
-// Wimpy ammo ---------------------------------------------------------------
-
-ACTOR PhoenixRodAmmo : Ammo 22
-{
- Game Heretic
- SpawnID 161
- Inventory.PickupMessage "$TXT_AMMOPHOENIXROD1"
- Inventory.Amount 1
- Inventory.MaxAmount 20
- Ammo.BackpackAmount 1
- Ammo.BackpackMaxAmount 40
- Inventory.Icon "INAMPNX"
- States
- {
- Spawn:
- AMP1 ABC 4
- Loop
- }
-}
-// Hefty ammo ---------------------------------------------------------------
-
-ACTOR PhoenixRodHefty : PhoenixRodAmmo 23
-{
- Game Heretic
- SpawnID 162
- Inventory.PickupMessage "$TXT_AMMOPHOENIXROD2"
- Inventory.Amount 10
- States
- {
- Spawn:
- AMP2 ABC 4
- Loop
- }
-}
-
-// --- Bag of holding -------------------------------------------------------
-
-ACTOR BagOfHolding : BackpackItem 8
-{
- Game Heretic
- SpawnID 136
- Inventory.PickupMessage "$TXT_ITEMBAGOFHOLDING"
- +COUNTITEM
- +FLOATBOB
- States
- {
- Spawn:
- BAGH A -1
- Stop
- }
-}
diff --git a/wadsrc/decorate/heretic/hereticarmor.txt b/wadsrc/decorate/heretic/hereticarmor.txt
deleted file mode 100644
index e027f4f4..00000000
--- a/wadsrc/decorate/heretic/hereticarmor.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-
-// Silver Shield (Shield1) --------------------------------------------------
-
-Actor SilverShield : BasicArmorPickup 85
-{
- Game Heretic
- SpawnID 68
- +FLOATBOB
- Inventory.Pickupmessage "$TXT_ITEMSHIELD1"
- Inventory.Icon "SHLDA0"
- Armor.Savepercent 50
- Armor.Saveamount 100
- States
- {
- Spawn:
- SHLD A -1
- stop
- }
-}
-
-// Enchanted shield (Shield2) -----------------------------------------------
-
-Actor EnchantedShield : BasicArmorPickup 31
-{
- Game Heretic
- SpawnID 69
- +FLOATBOB
- Inventory.Pickupmessage "$TXT_ITEMSHIELD2"
- Inventory.Icon "SHD2A0"
- Armor.Savepercent 75
- Armor.Saveamount 200
- States
- {
- Spawn:
- SHD2 A -1
- stop
- }
-}
-
diff --git a/wadsrc/decorate/heretic/hereticartifacts.txt b/wadsrc/decorate/heretic/hereticartifacts.txt
deleted file mode 100644
index 04c7afee..00000000
--- a/wadsrc/decorate/heretic/hereticartifacts.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-// Super map ----------------------------------------------------------------
-
-ACTOR SuperMap : MapRevealer 35
-{
- Game Heretic
- SpawnID 137
- +COUNTITEM
- +INVENTORY.ALWAYSPICKUP
- +FLOATBOB
- Inventory.MaxAmount 0
- Inventory.PickupMessage "$TXT_ITEMSUPERMAP"
- States
- {
- Spawn:
- SPMP A -1
- Stop
- }
-}
-
-
-// Invisibility -------------------------------------------------------------
-
-ACTOR ArtiInvisibility : PowerupGiver 75
-{
- Game Heretic
- SpawnID 135
- +COUNTITEM
- +FLOATBOB
- +INVENTORY.PICKUPFLASH
- RenderStyle Translucent
- Alpha 0.4
- Inventory.RespawnTics 4230
- Inventory.Icon ARTIINVS
- Powerup.Type Ghost
- Inventory.PickupMessage "$TXT_ARTIINVISIBILITY"
- States
- {
- Spawn:
- INVS A 350 Bright
- Loop
- }
-}
-
-
diff --git a/wadsrc/decorate/heretic/hereticdecorations.txt b/wadsrc/decorate/heretic/hereticdecorations.txt
deleted file mode 100644
index cb090d0e..00000000
--- a/wadsrc/decorate/heretic/hereticdecorations.txt
+++ /dev/null
@@ -1,266 +0,0 @@
-ACTOR SkullHang70 17
-{
- Game Heretic
- Radius 20
- Height 70
- +SPAWNCEILING
- +NOGRAVITY
- States
- {
- Spawn:
- SKH1 A -1
- Stop
- }
-}
-
-ACTOR SkullHang60 24
-{
- Game Heretic
- Radius 20
- Height 60
- +SPAWNCEILING
- +NOGRAVITY
- States
- {
- Spawn:
- SKH2 A -1
- Stop
- }
-}
-
-ACTOR SkullHang45 25
-{
- Game Heretic
- Radius 20
- Height 45
- +SPAWNCEILING
- +NOGRAVITY
- States
- {
- Spawn:
- SKH3 A -1
- Stop
- }
-}
-
-ACTOR SkullHang35 26
-{
- Game Heretic
- Radius 20
- Height 35
- +SPAWNCEILING
- +NOGRAVITY
- States
- {
- Spawn:
- SKH4 A -1
- Stop
- }
-}
-
-ACTOR Chandelier 28
-{
- Game Heretic
- Radius 20
- Height 60
- +SPAWNCEILING
- +NOGRAVITY
- States
- {
- Spawn:
- CHDL ABC 4
- Loop
- }
-}
-
-ACTOR SerpentTorch 27
-{
- Game Heretic
- Radius 12
- Height 54
- +SOLID
- States
- {
- Spawn:
- SRTC ABC 4
- Loop
- }
-}
-
-ACTOR SmallPillar 29
-{
- Game Heretic
- Radius 16
- Height 34
- +SOLID
- States
- {
- Spawn:
- SMPL A -1
- Stop
- }
-}
-
-ACTOR StalagmiteSmall 37
-{
- Game Heretic
- Radius 8
- Height 32
- +SOLID
- States
- {
- Spawn:
- STGS A -1
- Stop
- }
-}
-
-ACTOR StalagmiteLarge 38
-{
- Game Heretic
- Radius 12
- Height 64
- +SOLID
- States
- {
- Spawn:
- STGL A -1
- Stop
- }
-}
-
-ACTOR StalactiteSmall 39
-{
- Game Heretic
- Radius 8
- Height 36
- +SOLID
- +SPAWNCEILING
- +NOGRAVITY
- States
- {
- Spawn:
- STCS A -1
- Stop
- }
-}
-
-ACTOR StalactiteLarge 40
-{
- Game Heretic
- Radius 12
- Height 68
- +SOLID
- +SPAWNCEILING
- +NOGRAVITY
- States
- {
- Spawn:
- STCL A -1
- Stop
- }
-}
-
-ACTOR FireBrazier 76
-{
- Game Heretic
- Radius 16
- Height 44
- +SOLID
- States
- {
- Spawn:
- KFR1 ABCDEFGH 3 Bright
- Loop
- }
-}
-
-ACTOR Barrel 44
-{
- Game Heretic
- Radius 12
- Height 32
- +SOLID
- States
- {
- Spawn:
- BARL A -1
- Stop
- }
-}
-
-ACTOR BrownPillar 47
-{
- Game Heretic
- Radius 14
- Height 128
- +SOLID
- States
- {
- Spawn:
- BRPL A -1
- Stop
- }
-}
-
-ACTOR Moss1 48
-{
- Game Heretic
- Radius 20
- Height 23
- +SPAWNCEILING
- +NOGRAVITY
- States
- {
- Spawn:
- MOS1 A -1
- Stop
- }
-}
-
-ACTOR Moss2 49
-{
- Game Heretic
- Radius 20
- Height 27
- +SPAWNCEILING
- +NOGRAVITY
- States
- {
- Spawn:
- MOS2 A -1
- Stop
- }
-}
-
-ACTOR WallTorch 50
-{
- Game Heretic
- Radius 6
- Height 16
- +NOGRAVITY
- +FIXMAPTHINGPOS
- States
- {
- Spawn:
- WTRH ABC 6 Bright
- Loop
- }
-}
-
-ACTOR HangingCorpse 51
-{
- Game Heretic
- Radius 8
- Height 104
- +SOLID
- +SPAWNCEILING
- +NOGRAVITY
- States
- {
- Spawn:
- HCOR A -1
- Stop
- }
-}
-
diff --git a/wadsrc/decorate/heretic/hereticimp.txt b/wadsrc/decorate/heretic/hereticimp.txt
deleted file mode 100644
index b4dd4f76..00000000
--- a/wadsrc/decorate/heretic/hereticimp.txt
+++ /dev/null
@@ -1,154 +0,0 @@
-static FRandom pr_imp ("ImpExplode");
-static FRandom pr_impmsatk ("ImpMsAttack");
-static FRandom pr_impmsatk2 ("ImpMsAttack2");
-
-// Heretic imp (as opposed to the Doom variety) -----------------------------
-
-ACTOR HereticImp 66
-{
- Game Heretic
- SpawnID 5
- Health 40
- Radius 16
- Height 36
- Mass 50
- Speed 10
- Painchance 200
- Monster
- +FLOAT
- +NOGRAVITY
- +SPAWNFLOAT
- +DONTOVERLAP
- +MISSILEMORE
- SeeSound "himp/sight"
- AttackSound "himp/attack"
- PainSound "himp/pain"
- DeathSound "himp/death"
- ActiveSound "himp/active"
- Obituary "$OB_HERETICIMP"
- HitObituary "$OB_HERETICIMPHIT"
-
- action native void A_ImpExplode();
-
- States
- {
- Spawn:
- IMPX ABCB 10 A_Look
- Loop
- See:
- IMPX AABBCCBB 3 A_Chase
- Loop
- Melee:
- IMPX DE 6 A_FaceTarget
- IMPX F 6 A_CustomMeleeAttack(random[ImpMeAttack](5,12), "himp/attack", "himp/attack")
- Goto See
- Missile:
- IMPX A 10 A_FaceTarget
- IMPX B 6 A_SkullAttack(12)
- IMPX CBAB 6
- Goto Missile+2
- Pain:
- IMPX G 3
- IMPX G 3 A_Pain
- Goto See
- Death:
- IMPX G 0 A_SetFloorClip
- IMPX G 4 A_UnsetSolid
- IMPX H 5
- Wait
- XDeath:
- IMPX S 0 A_NoGravity
- IMPX S 0 A_SetFloorClip
- IMPX S 5 A_UnsetSolid
- IMPX TU 5
- IMPX V 5 A_Gravity
- IMPX W 5
- Wait
- Crash:
- IMPX I 7 A_ImpExplode
- IMPX J 7 A_Scream
- IMPX K 7
- IMPX L -1
- Stop
- XCrash:
- IMPX X 7
- IMPX Y 7
- IMPX Z -1
- Stop
- }
-}
-
-// Heretic imp leader -------------------------------------------------------
-
-ACTOR HereticImpLeader HereticImp 5
-{
- Game Heretic
- SpawnID 7
- -MISSILEMORE
- AttackSound "himp/leaderattack"
- States
- {
- Melee:
- Stop
- Missile:
- IMPX DE 6 A_FaceTarget
- IMPX F 6 A_CustomComboAttack("HereticImpBall", 32, random[ImpMsAttack2](5,12), "himp/leaderattack")
- Goto See
- }
-}
-
-// Heretic imp chunk 1 ------------------------------------------------------
-
-ACTOR HereticImpChunk1
-{
- Mass 5
- Radius 4
- States
- {
- IMPX M 5
- IMPX NO 700
- Stop
- }
-}
-
-// Heretic imp chunk 2 ------------------------------------------------------
-
-ACTOR HereticImpChunk2
-{
- Mass 5
- Radius 4
- States
- {
- IMPX P 5
- IMPX QR 700
- Stop
- }
-}
-
-// Heretic imp ball ---------------------------------------------------------
-
-ACTOR HereticImpBall
-{
- Game Heretic
- SpawnID 10
- Radius 8
- Height 8
- Speed 10
- FastSpeed 20
- Damage 1
- Projectile
- -ACTIVATEPCROSS
- -ACTIVATEIMPACT
- RenderStyle Add
- States
- {
- Spawn:
- FX10 ABC 6 Bright
- Loop
- Death:
- FX10 DEFG 5 Bright
- Stop
- }
-}
-
-
diff --git a/wadsrc/decorate/heretic/heretickeys.txt b/wadsrc/decorate/heretic/heretickeys.txt
deleted file mode 100644
index 77462986..00000000
--- a/wadsrc/decorate/heretic/heretickeys.txt
+++ /dev/null
@@ -1,150 +0,0 @@
-
-ACTOR HereticKey : Key
-{
- +NOTDMATCH
- Radius 20
- Height 16
-}
-
-// Green key ------------------------------------------------------------
-
-ACTOR KeyGreen : HereticKey 73
-{
- Game Heretic
- SpawnID 86
- Inventory.PickupMessage "$TXT_GOTGREENKEY"
- States
- {
- Spawn:
- AKYY ABCDEFGHIJ 3 Bright
- Loop
- }
-}
-
-// Blue key -----------------------------------------------------------------
-
-ACTOR KeyBlue : HereticKey 79
-{
- Game Heretic
- SpawnID 85
- Inventory.PickupMessage "$TXT_GOTBLUEKEY"
- States
- {
- Spawn:
- BKYY ABCDEFGHIJ 3 Bright
- Loop
- }
-}
-
-// Yellow key ---------------------------------------------------------------
-
-ACTOR KeyYellow : HereticKey 80
-{
- Game Heretic
- SpawnID 87
- Inventory.PickupMessage "$TXT_GOTYELLOWKEY"
- States
- {
- Spawn:
- CKYY ABCDEFGHI 3 Bright
- Loop
- }
-}
-
-
-// --- Blue Key gizmo -----------------------------------------------------------
-
-ACTOR KeyGizmoBlue 94
-{
- Game Heretic
- Radius 16
- Height 50
- +SOLID
- States
- {
- Spawn:
- KGZ1 A 1
- KGZ1 A 1 A_SpawnItemEx("KeyGizmoFloatBlue", 0, 0, 60)
- KGZ1 A -1
- Stop
- }
-}
-
-ACTOR KeyGizmoFloatBlue
-{
- Radius 16
- Height 16
- +SOLID
- +NOGRAVITY
- States
- {
- Spawn:
- KGZB A -1 Bright
- Stop
- }
-}
-
-// --- Green Key gizmo -----------------------------------------------------------
-
-ACTOR KeyGizmoGreen 95
-{
- Game Heretic
- Radius 16
- Height 50
- +SOLID
- States
- {
- Spawn:
- KGZ1 A 1
- KGZ1 A 1 A_SpawnItemEx("KeyGizmoFloatGreen", 0, 0, 60)
- KGZ1 A -1
- Stop
- }
-}
-
-ACTOR KeyGizmoFloatGreen
-{
- Radius 16
- Height 16
- +SOLID
- +NOGRAVITY
- States
- {
- Spawn:
- KGZG A -1 Bright
- Stop
- }
-}
-
-// --- Yellow Key gizmo -----------------------------------------------------------
-
-ACTOR KeyGizmoYellow 96
-{
- Game Heretic
- Radius 16
- Height 50
- +SOLID
- States
- {
- Spawn:
- KGZ1 A 1
- KGZ1 A 1 A_SpawnItemEx("KeyGizmoFloatYellow", 0, 0, 60)
- KGZ1 A -1
- Stop
- }
-}
-
-ACTOR KeyGizmoFloatYellow
-{
- Radius 16
- Height 16
- +SOLID
- +NOGRAVITY
- States
- {
- Spawn:
- KGZY A -1 Bright
- Stop
- }
-}
-
diff --git a/wadsrc/decorate/heretic/hereticplayer.txt b/wadsrc/decorate/heretic/hereticplayer.txt
deleted file mode 100644
index fa7dc96e..00000000
--- a/wadsrc/decorate/heretic/hereticplayer.txt
+++ /dev/null
@@ -1,109 +0,0 @@
-ACTOR HereticPlayer : PlayerPawn
-{
- Health 100
- Radius 16
- Height 56
- Mass 100
- Painchance 255
- Speed 1
- Player.ColorRange 225, 240
- Player.DisplayName "Corvus"
- Player.StartItem "GoldWand"
- Player.StartItem "Staff"
- Player.StartItem "GoldWandAmmo", 50
- States
- {
- Spawn:
- PLAY A -1
- Stop
- See:
- PLAY ABCD 4
- Loop
- Melee:
- Missile:
- PLAY F 6 BRIGHT
- PLAY E 12
- Goto Spawn
- Pain:
- PLAY G 4
- PLAY G 4 A_Pain
- Goto Spawn
- Death:
- PLAY H 6 A_PlayerSkinCheck("AltSkinDeath")
- PLAY I 6 A_PlayerScream
- PLAY JK 6
- PLAY L 6 A_NoBlocking
- PLAY MNO 6
- PLAY P -1
- Stop
- XDeath:
- PLAY Q 0 A_PlayerSkinCheck("AltSkinXDeath")
- PLAY Q 5 A_PlayerScream
- PLAY R 0 A_NoBlocking
- PLAY R 5 A_SkullPop
- PLAY STUVWX 5
- PLAY Y -1
- Stop
- Burn:
- FDTH A 5 BRIGHT A_PlaySound("*burndeath")
- FDTH B 4 BRIGHT
- FDTH C 5 BRIGHT
- FDTH D 4 BRIGHT A_PlayerScream
- FDTH E 5 BRIGHT
- FDTH F 4 BRIGHT
- FDTH G 5 BRIGHT A_PlaySound("*burndeath")
- FDTH H 4 BRIGHT
- FDTH I 5 BRIGHT
- FDTH J 4 BRIGHT
- FDTH K 5 BRIGHT
- FDTH L 4 BRIGHT
- FDTH M 5 BRIGHT
- FDTH N 4 BRIGHT
- FDTH O 5 BRIGHT A_NoBlocking
- FDTH P 4 BRIGHT
- FDTH Q 5 BRIGHT
- FDTH R 4 BRIGHT
- ACLO E 35 A_CheckPlayerDone
- Wait
- AltSkinDeath:
- PLAY H 10
- PLAY I 10 A_PlayerScream
- PLAY J 10 A_NoBlocking
- PLAY KLM 10
- PLAY N -1
- Stop
- AltSkinXDeath:
- PLAY O 5
- PLAY P 5 A_XScream
- PLAY Q 5 A_NoBlocking
- PLAY RSTUV 5
- PLAY W -1
- Stop
- }
-}
-
-// The player's skull -------------------------------------------------------
-
-ACTOR BloodySkull : PlayerChunk
-{
- Radius 4
- Height 4
- +NOBLOCKMAP
- +DROPOFF
- +LOWGRAVITY
- +CANNOTPUSH
- +SKYEXPLODE
- +NOBLOCKMONST
- +NOSKIN
- States
- {
- Spawn:
- BSKL A 0
- BSKL ABCDE 5 A_CheckFloor("Hit")
- Goto Spawn+1
- Hit:
- BSKL F 16 A_CheckPlayerDone
- Wait
- }
-}
-
diff --git a/wadsrc/decorate/heretic/mummy.txt b/wadsrc/decorate/heretic/mummy.txt
deleted file mode 100644
index c6cc2389..00000000
--- a/wadsrc/decorate/heretic/mummy.txt
+++ /dev/null
@@ -1,142 +0,0 @@
-
-// Mummy --------------------------------------------------------------------
-
-ACTOR Mummy 68
-{
- Game Heretic
- SpawnID 4
- Health 80
- Radius 22
- Height 62
- Mass 75
- Speed 12
- Painchance 128
- Monster
- +FLOORCLIP
- SeeSound "mummy/sight"
- AttackSound "mummy/attack1"
- PainSound "mummy/pain"
- DeathSound "mummy/death"
- ActiveSound "mummy/active"
- HitObituary "$OB_MUMMY"
- DropItem "GoldWandAmmo", 84, 3
- States
- {
- Spawn:
- MUMM AB 10 A_Look
- Loop
- See:
- MUMM ABCD 4 A_Chase
- Loop
- Melee:
- MUMM E 6 A_FaceTarget
- MUMM F 6 A_CustomMeleeAttack(random[MummyAttack](1,8)*2, "mummy/attack2", "mummy/attack")
- MUMM G 6
- Goto See
- Pain:
- MUMM H 4
- MUMM H 4 A_Pain
- Goto See
- Death:
- MUMM I 5
- MUMM J 5 A_Scream
- MUMM K 5 A_SpawnItemEx("MummySoul", 0,0,10, 0,0,1)
- MUMM L 5
- MUMM M 5 A_NoBlocking
- MUMM NO 5
- MUMM P -1
- Stop
- }
-}
-
-// Mummy leader -------------------------------------------------------------
-
-ACTOR MummyLeader : Mummy 45
-{
- Game Heretic
- SpawnID 2
- Health 100
- Painchance 64
- Obituary "$OB_MUMMYLEADER"
- States
- {
- Missile:
- MUMM X 5 A_FaceTarget
- MUMM Y 5 Bright A_FaceTarget
- MUMM X 5 A_FaceTarget
- MUMM Y 5 Bright A_FaceTarget
- MUMM X 5 A_FaceTarget
- MUMM Y 5 Bright A_CustomComboAttack("MummyFX1", 32, random[MummyAttack2](1,8)*2, "mummy/attack2")
- Goto See
- }
-}
-
-// Mummy ghost --------------------------------------------------------------
-
-ACTOR MummyGhost : Mummy 69
-{
- Game Heretic
- SpawnID 8
- +SHADOW
- +GHOST
- RenderStyle Translucent
- Alpha 0.4
-}
-
-// Mummy leader ghost -------------------------------------------------------
-
-ACTOR MummyLeaderGhost : MummyLeader 46
-{
- Game Heretic
- SpawnID 9
- +SHADOW
- +GHOST
- RenderStyle Translucent
- Alpha 0.4
-}
-
-// Mummy soul ---------------------------------------------------------------
-
-ACTOR MummySoul
-{
- +NOBLOCKMAP
- +NOGRAVITY
- States
- {
- Spawn:
- MUMM QRS 5
- MUMM TUVW 9
- Stop
- }
-}
-
-// Mummy FX 1 (flying head) -------------------------------------------------
-
-ACTOR MummyFX1
-{
- Game Heretic
- SpawnID 131
- Radius 8
- Height 14
- Speed 9
- FastSpeed 18
- Damage 4
- RenderStyle Add
- Projectile
- -ACTIVATEPCROSS
- -ACTIVATEIMPACT
- +SEEKERMISSILE
- States
- {
- Spawn:
- FX15 A 1 Bright
- FX15 A 5 Bright A_PlaySound("mummy/head")
- FX15 B 5 Bright A_SeekerMissile(10,20)
- FX15 C 5 Bright
- FX15 B 5 Bright A_SeekerMissile(10,20)
- Goto Spawn+1
- Death:
- FX15 DEFG 5 Bright
- Stop
- }
-}
diff --git a/wadsrc/decorate/heretic/snake.txt b/wadsrc/decorate/heretic/snake.txt
deleted file mode 100644
index 0184da17..00000000
--- a/wadsrc/decorate/heretic/snake.txt
+++ /dev/null
@@ -1,101 +0,0 @@
-
-ACTOR Snake 92
-{
- Game Heretic
- SpawnID 132
- Health 280
- Radius 22
- Height 70
- Speed 10
- Painchance 48
- Monster
- +FLOORCLIP
- AttackSound "snake/attack"
- SeeSound "snake/sight"
- PainSound "snake/pain"
- DeathSound "snake/death"
- ActiveSound "snake/active"
- Obituary "$OB_SNAKE"
- DropItem "PhoenixRodAmmo", 84, 5
- States
- {
- Spawn:
- SNKE AB 10 A_Look
- Loop
- See:
- SNKE ABCD 4 A_Chase
- Loop
- Missile:
- SNKE FF 5 A_FaceTarget
- SNKE FFF 4 A_CustomMissile("SnakeProjA", 32, 0, 0, CMF_CHECKTARGETDEAD)
- SNKE FFF 5 A_FaceTarget
- SNKE F 4 A_CustomMissile("SnakeProjB", 32, 0, 0, CMF_CHECKTARGETDEAD)
- Goto See
- Pain:
- SNKE E 3
- SNKE E 3 A_Pain
- Goto See
- Death:
- SNKE G 5
- SNKE H 5 A_Scream
- SNKE IJKL 5
- SNKE M 5 A_NoBlocking
- SNKE NO 5
- SNKE P -1
- Stop
- }
-}
-
-// Snake projectile A -------------------------------------------------------
-
-ACTOR SnakeProjA
-{
- Game Heretic
- SpawnID 138
- Radius 12
- Height 8
- Speed 14
- FastSpeed 20
- Damage 1
- Projectile
- -NOBLOCKMAP
- -ACTIVATEIMPACT
- -ACTIVATEPCROSS
- +WINDTHRUST
- +SPAWNSOUNDSOURCE
- RenderStyle Add
- SeeSound "snake/attack"
- States
- {
- Spawn:
- SNFX ABCD 5 Bright
- Loop
- Death:
- SNFX EF 5 Bright
- SNFX G 4 Bright
- SNFX HI 3 Bright
- Stop
- }
-}
-
-// Snake projectile B -------------------------------------------------------
-
-ACTOR SnakeProjB : SnakeProjA
-{
- Game Heretic
- SpawnID 139
- Damage 3
- +NOBLOCKMAP
- -WINDTHRUST
- States
- {
- Spawn:
- SNFX JK 6 Bright
- Loop
- Death:
- SNFX LM 5 Bright
- SNFX N 4 Bright
- SNFX O 3 Bright
- Stop
- }
-}
diff --git a/wadsrc/decorate/hexen/centaur.txt b/wadsrc/decorate/hexen/centaur.txt
deleted file mode 100644
index 445f959b..00000000
--- a/wadsrc/decorate/hexen/centaur.txt
+++ /dev/null
@@ -1,191 +0,0 @@
-// Centaur ------------------------------------------------------------------
-
-ACTOR Centaur 107
-{
- Game Hexen
- SpawnID 1
- Health 200
- Painchance 135
- Speed 13
- Height 64
- Mass 120
- Monster
- +FLOORCLIP
- +TELESTOMP
- +SHIELDREFLECT
- SeeSound "CentaurSight"
- AttackSound "CentaurAttack"
- PainSound "CentaurPain"
- DeathSound "CentaurDeath"
- ActiveSound "CentaurActive"
- HowlSound "PuppyBeat"
- Obituary "$OB_CENTAUR"
- States
- {
- Spawn:
- CENT AB 10 A_Look
- Loop
- See:
- CENT ABCD 4 A_Chase
- Loop
- Pain:
- CENT G 6 A_Pain
- CENT G 6 A_SetReflectiveInvulnerable
- CENT EEE 15 A_CentaurDefend
- CENT E 1 A_UnsetReflectiveInvulnerable
- Goto See
- Melee:
- CENT H 5 A_FaceTarget
- CENT I 4 A_FaceTarget
- CENT J 7 A_CustomMeleeAttack(random[CentaurAttack](3,9))
- Goto See
- Death:
- CENT K 4
- CENT L 4 A_Scream
- CENT MN 4
- CENT O 4 A_NoBlocking
- CENT PQ 4
- CENT R 4 A_QueueCorpse
- CENT S 4
- CENT T -1
- Stop
- XDeath:
- CTXD A 4
- CTXD B 4 A_NoBlocking
- CTXD C 0 A_SpawnItemEx("CentaurSword", 0, 0, 45,
- 1 + random[CentaurDrop](-128,127)*0.03125,
- 1 + random[CentaurDrop](-128,127)*0.03125,
- 8 + random[CentaurDrop](0,255)*0.015625, 270)
- CTXD C 4 A_SpawnItemEx("CentaurShield", 0, 0, 45,
- 1 + random[CentaurDrop](-128,127)*0.03125,
- 1 + random[CentaurDrop](-128,127)*0.03125,
- 8 + random[CentaurDrop](0,255)*0.015625, 90)
- CTXD D 3 A_Scream
- CTXD E 4 A_QueueCorpse
- CTXD F 3
- CTXD G 4
- CTXD H 3
- CTXD I 4
- CTXD J 3
- CTXD K -1
- Ice:
- CENT U 5 A_FreezeDeath
- CENT U 1 A_FreezeDeathChunks
- Wait
- }
-}
-
-// Centaur Leader -----------------------------------------------------------
-
-ACTOR CentaurLeader : Centaur 115
-{
- Game Hexen
- SpawnID 2
- Health 250
- PainChance 96
- Speed 10
- Obituary "$OB_SLAUGHTAUR"
- HitObituary "$OB_SLAUGHTAURHIT"
- States
- {
- Missile:
- CENT E 10 A_FaceTarget
- CENT F 8 Bright A_CustomMissile("CentaurFX", 45, 0, 0, CMF_AIMOFFSET)
- CENT E 10 A_FaceTarget
- CENT F 8 Bright A_CustomMissile("CentaurFX", 45, 0, 0, CMF_AIMOFFSET)
- Goto See
- }
-}
-
-// Mashed centaur -----------------------------------------------------------
-//
-// The mashed centaur is only placed through ACS. Nowhere in the game source
-// is it ever referenced.
-
-ACTOR CentaurMash : Centaur
-{
- Game Hexen
- SpawnID 103
- +NOBLOOD
- +BLASTED
- -TELESTOMP
- +NOICEDEATH
- RenderStyle Translucent
- Alpha 0.4
- States
- {
- Death:
- XDeath:
- Ice:
- Stop
- }
-}
-
-// Centaur projectile -------------------------------------------------------
-
-ACTOR CentaurFX
-{
- Speed 20
- Damage 4
- Projectile
- +SPAWNSOUNDSOURCE
- RenderStyle Add
- SeeSound "CentaurLeaderAttack"
- DeathSound "CentaurMissileExplode"
- States
- {
- Spawn:
- CTFX A -1 Bright
- Stop
- Death:
- CTFX B 4 Bright
- CTFX C 3 Bright
- CTFX D 4 Bright
- CTFX E 3 Bright
- CTFX F 2 Bright
- Stop
- }
-}
-
-// Centaur shield (debris) --------------------------------------------------
-
-ACTOR CentaurShield
-{
- +DROPOFF
- +CORPSE
- +NOTELEPORT
- States
- {
- Spawn:
- CTDP ABCDEF 3
- Goto Spawn+2
- Crash:
- CTDP G 4
- CTDP H 4 A_QueueCorpse
- CTDP I 4
- CTDP J -1
- Stop
- }
-}
-
-// Centaur sword (debris) ---------------------------------------------------
-
-ACTOR CentaurSword
-{
- +DROPOFF
- +CORPSE
- +NOTELEPORT
- States
- {
- Spawn:
- CTDP KLMNOPQ 3
- Goto Spawn+2
- Crash:
- CTDP R 4
- CTDP S 4 A_QueueCorpse
- CTDP T -1
- Stop
- }
-}
-
-
diff --git a/wadsrc/decorate/hexen/clericplayer.txt b/wadsrc/decorate/hexen/clericplayer.txt
deleted file mode 100644
index 6300a59a..00000000
--- a/wadsrc/decorate/hexen/clericplayer.txt
+++ /dev/null
@@ -1,85 +0,0 @@
-// The cleric ---------------------------------------------------------------
-
-ACTOR ClericPlayer : PlayerPawn
-{
- Health 100
- ReactionTime 0
- PainChance 255
- Radius 16
- Height 64
- Speed 1
- +NOSKIN
- PainSound "PlayerClericPain"
- RadiusDamageFactor 0.25
- Player.JumpZ 9.75
- Player.Viewheight 48
- Player.ColorRange 146, 163
- Player.SpawnClass "Cleric"
- Player.DisplayName "Cleric"
- Player.SoundClass "cleric"
- Player.ScoreIcon "CLERFACE"
- Player.InvulnerabilityMode "Ghost"
- Player.HealRadiusType "Health"
- Player.Hexenarmor 10, 10, 25, 5, 20
- Player.StartItem "CWeapMace"
- States
- {
- Spawn:
- CLER A -1
- Stop
- See:
- CLER ABCD 4
- Loop
- Pain:
- CLER H 4
- CLER H 4 A_Pain
- Goto Spawn
- Missile:
- Melee:
- CLER EFG 6
- Goto Spawn
- Death:
- CLER I 6
- CLER J 6 A_PlayerScream
- CLER KL 6
- CLER M 6 A_NoBlocking
- CLER NOP 6
- CLER Q -1
- Stop
- XDeath:
- CLER R 5 A_PlayerScream
- CLER S 5
- CLER T 5 A_NoBlocking
- CLER UVWXYZ 5
- CLER [ -1
- Stop
- Ice:
- CLER "\" 5 A_FreezeDeath
- CLER "\" 1 A_FreezeDeathChunks
- Wait
- Burn:
- FDTH C 5 BRIGHT A_PlaySound("*burndeath")
- FDTH D 4 BRIGHT
- FDTH G 5 BRIGHT
- FDTH H 4 BRIGHT A_PlayerScream
- FDTH I 5 BRIGHT
- FDTH J 4 BRIGHT
- FDTH K 5 BRIGHT
- FDTH L 4 BRIGHT
- FDTH M 5 BRIGHT
- FDTH N 4 BRIGHT
- FDTH O 5 BRIGHT
- FDTH P 4 BRIGHT
- FDTH Q 5 BRIGHT
- FDTH R 4 BRIGHT
- FDTH S 5 BRIGHT A_NoBlocking
- FDTH T 4 BRIGHT
- FDTH U 5 BRIGHT
- FDTH V 4 BRIGHT
- ACLO E 35 A_CheckPlayerDone
- Wait
- ACLO E 8
- Stop
- }
-}
-
diff --git a/wadsrc/decorate/hexen/demons.txt b/wadsrc/decorate/hexen/demons.txt
deleted file mode 100644
index 46daae3f..00000000
--- a/wadsrc/decorate/hexen/demons.txt
+++ /dev/null
@@ -1,391 +0,0 @@
-
-// Demon, type 1 (green, like D'Sparil's) -----------------------------------
-
-ACTOR Demon1 31
-{
- Game Hexen
- SpawnID 3
- Health 250
- Painchance 50
- Speed 13
- Radius 32
- Height 64
- Mass 220
- Monster
- +TELESTOMP
- +FLOORCLIP
- SeeSound "DemonSight"
- AttackSound "DemonAttack"
- PainSound "DemonPain"
- DeathSound "DemonDeath"
- ActiveSound "DemonActive"
- Obituary "$OB_DEMON1"
- const int ChunkFlags = SXF_TRANSFERTRANSLATION|SXF_ABSOLUTEMOMENTUM;
- States
- {
- Spawn:
- DEMN AA 10 A_Look
- Loop
- See:
- DEMN ABCD 4 A_Chase
- Loop
- Pain:
- DEMN E 4
- DEMN E 4 A_Pain
- Goto See
- Melee:
- DEMN E 6 A_FaceTarget
- DEMN F 8 A_FaceTarget
- DEMN G 6 A_CustomMeleeAttack(random[DemonAttack1](1,8)*2)
- Goto See
- Missile:
- DEMN E 5 A_FaceTarget
- DEMN F 6 A_FaceTarget
- DEMN G 5 A_CustomMissile("Demon1FX1", 62, 0)
- Goto See
- Death:
- DEMN HI 6
- DEMN J 6 A_Scream
- DEMN K 6 A_NoBlocking
- DEMN L 6 A_QueueCorpse
- DEMN MNO 6
- DEMN P -1
- Stop
- XDeath:
- DEMN H 6
- DEMN I 0 A_SpawnItemEx("Demon1Chunk1", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625), 1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 90)
- DEMN I 0 A_SpawnItemEx("Demon1Chunk2", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625), 1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
- DEMN I 0 A_SpawnItemEx("Demon1Chunk3", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625), 1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
- DEMN I 0 A_SpawnItemEx("Demon1Chunk4", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625), 1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
- DEMN I 6 A_SpawnItemEx("Demon1Chunk5", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625), 1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
- Goto Death+2
- Ice:
- DEMN Q 5 A_FreezeDeath
- DEMN Q 1 A_FreezeDeathChunks
- Wait
- }
-}
-
-// Demon, type 1, mashed ----------------------------------------------------
-
-ACTOR Demon1Mash : Demon1
-{
- Game Hexen
- SpawnID 100
- +NOBLOOD
- +BLASTED
- -TELESTOMP
- +NOICEDEATH
- RenderStyle Translucent
- Alpha 0.4
- States
- {
- Death:
- XDeath:
- Ice:
- Stop
- }
-}
-
-// Demon chunk, base class --------------------------------------------------
-
-ACTOR DemonChunk
-{
- Radius 5
- Height 5
- +NOBLOCKMAP
- +DROPOFF
- +MISSILE
- +CORPSE
- +FLOORCLIP
- +NOTELEPORT
-}
-
-// Demon, type 1, chunk 1 ---------------------------------------------------
-
-ACTOR Demon1Chunk1 : DemonChunk
-{
- States
- {
- Spawn:
- DEMA A 4
- DEMA A 10 A_QueueCorpse
- DEMA A 20
- Wait
- Death:
- DEMA A -1
- Stop
- }
-}
-
-// Demon, type 1, chunk 2 ---------------------------------------------------
-
-ACTOR Demon1Chunk2 : DemonChunk
-{
- States
- {
- Spawn:
- DEMB A 4
- DEMB A 10 A_QueueCorpse
- DEMB A 20
- Wait
- Death:
- DEMB A -1
- Stop
- }
-}
-
-ACTOR Demon1Chunk3 : DemonChunk
-{
- States
- {
- Spawn:
- DEMC A 4
- DEMC A 10 A_QueueCorpse
- DEMC A 20
- Wait
- Death:
- DEMC A -1
- Stop
- }
-}
-
-// Demon, type 1, chunk 4 ---------------------------------------------------
-
-ACTOR Demon1Chunk4 : DemonChunk
-{
- States
- {
- Spawn:
- DEMD A 4
- DEMD A 10 A_QueueCorpse
- DEMD A 20
- Wait
- Death:
- DEMD A -1
- Stop
- }
-}
-
-// Demon, type 1, chunk 5 ---------------------------------------------------
-
-ACTOR Demon1Chunk5 : DemonChunk
-{
- States
- {
- Spawn:
- DEME A 4
- DEME A 10 A_QueueCorpse
- DEME A 20
- Wait
- Death:
- DEME A -1
- Stop
- }
-}
-
-// Demon, type 1, projectile ------------------------------------------------
-
-ACTOR Demon1FX1
-{
- Speed 15
- Radius 10
- Height 6
- Damage 5
- DamageType Fire
- Projectile
- +SPAWNSOUNDSOURCE
- RenderStyle Add
- SeeSound "DemonMissileFire"
- DeathSound "DemonMissileExplode"
- States
- {
- Spawn:
- DMFX ABC 4 Bright
- Loop
- Death:
- DMFX DE 4 Bright
- DMFX FGH 3 Bright
- Stop
- }
-}
-
-// Demon, type 2 (brown) ----------------------------------------------------
-
-ACTOR Demon2 : Demon1 8080
-{
- Game Hexen
- Obituary "$OB_DEMON2"
- States
- {
- Spawn:
- DEM2 AA 10 A_Look
- Loop
- See:
- DEM2 ABCD 4 A_Chase
- Loop
- Pain:
- DEM2 E 4
- DEM2 E 4 A_Pain
- Goto See
- Melee:
- DEM2 E 6 A_FaceTarget
- DEM2 F 8 A_FaceTarget
- DEM2 G 6 A_CustomMeleeAttack(random[DemonAttack1](1,8)*2)
- Goto See
- Missile:
- DEM2 E 5 A_FaceTarget
- DEM2 F 6 A_FaceTarget
- DEM2 G 5 A_CustomMissile("Demon2FX1", 62, 0)
- Goto See
- Death:
- DEM2 HI 6
- DEM2 J 6 A_Scream
- DEM2 K 6 A_NoBlocking
- DEM2 L 6 A_QueueCorpse
- DEM2 MNO 6
- DEM2 P -1
- Stop
- XDeath:
- DEM2 H 6
- DEM2 I 0 A_SpawnItemEx("Demon2Chunk1", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625), 1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 90)
- DEM2 I 0 A_SpawnItemEx("Demon2Chunk2", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625), 1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
- DEM2 I 0 A_SpawnItemEx("Demon2Chunk3", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625), 1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
- DEM2 I 0 A_SpawnItemEx("Demon2Chunk4", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625), 1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
- DEM2 I 6 A_SpawnItemEx("Demon2Chunk5", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625), 1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
- Goto Death+2
- }
-}
-
-// Demon, type 2, mashed ----------------------------------------------------
-
-ACTOR Demon2Mash : Demon2
-{
- Game Hexen
- SpawnID 101
- +NOBLOOD
- +BLASTED
- -TELESTOMP
- +NOICEDEATH
- RenderStyle Translucent
- Alpha 0.4
- States
- {
- Death:
- XDeath:
- Ice:
- Stop
- }
-}
-
-// Demon, type 2, chunk 1 ---------------------------------------------------
-
-ACTOR Demon2Chunk1 : DemonChunk
-{
- States
- {
- Spawn:
- DMBA A 4
- DMBA A 10 A_QueueCorpse
- DMBA A 20
- Wait
- Death:
- DMBA A -1
- Stop
- }
-}
-
-// Demon, type 2, chunk 2 ---------------------------------------------------
-
-ACTOR Demon2Chunk2 : DemonChunk
-{
- States
- {
- Spawn:
- DMBB A 4
- DMBB A 10 A_QueueCorpse
- DMBB A 20
- Wait
- Death:
- DMBB A -1
- Stop
- }
-}
-
-// Demon, type 2, chunk 3 ---------------------------------------------------
-
-ACTOR Demon2Chunk3 : DemonChunk
-{
- States
- {
- Spawn:
- DMBC A 4
- DMBC A 10 A_QueueCorpse
- DMBC A 20
- Wait
- Death:
- DMBC A -1
- Stop
- }
-}
-
-// Demon, type 2, chunk 4 ---------------------------------------------------
-
-ACTOR Demon2Chunk4 : DemonChunk
-{
- States
- {
- Spawn:
- DMBD A 4
- DMBD A 10 A_QueueCorpse
- DMBD A 20
- Wait
- Death:
- DMBD A -1
- Stop
- }
-}
-
-// Demon, type 2, chunk 5 ---------------------------------------------------
-
-ACTOR Demon2Chunk5 : DemonChunk
-{
- States
- {
- Spawn:
- DMBE A 4
- DMBE A 10 A_QueueCorpse
- DMBE A 20
- Wait
- Death:
- DMBE A -1
- Stop
- }
-}
-
-// Demon, type 2, projectile ------------------------------------------------
-
-ACTOR Demon2FX1
-{
- Speed 15
- Radius 10
- Height 6
- Damage 5
- DamageType Fire
- Projectile
- +SPAWNSOUNDSOURCE
- RenderStyle Add
- SeeSound "DemonMissileFire"
- DeathSound "DemonMissileExplode"
- States
- {
- Spawn:
- D2FX ABCDEF 4 Bright
- Loop
- Death:
- D2FX GHIJ 4 Bright
- D2FX KL 3 Bright
- Stop
- }
-}
-
diff --git a/wadsrc/decorate/hexen/ettin.txt b/wadsrc/decorate/hexen/ettin.txt
deleted file mode 100644
index b6cd9259..00000000
--- a/wadsrc/decorate/hexen/ettin.txt
+++ /dev/null
@@ -1,110 +0,0 @@
-
-// Ettin --------------------------------------------------------------------
-
-ACTOR Ettin 10030
-{
- Game Hexen
- SpawnID 4
- Health 175
- Radius 25
- Height 68
- Mass 175
- Speed 13
- Damage 3
- Painchance 60
- Monster
- +FLOORCLIP
- +TELESTOMP
- SeeSound "EttinSight"
- AttackSound "EttinAttack"
- PainSound "EttinPain"
- DeathSound "EttinDeath"
- ActiveSound "EttinActive"
- HowlSound "PuppyBeat"
- Obituary "$OB_ETTIN"
- States
- {
- Spawn:
- ETTN AA 10 A_Look
- Loop
- See:
- ETTN ABCD 5 A_Chase
- Loop
- Pain:
- ETTN H 7 A_Pain
- Goto See
- Melee:
- ETTN EF 6 A_FaceTarget
- ETTN G 8 A_CustomMeleeAttack(random[EttinAttack](1,8)*2)
- Goto See
- Death:
- ETTN IJ 4
- ETTN K 4 A_Scream
- ETTN L 4 A_NoBlocking
- ETTN M 4 A_QueueCorpse
- ETTN NOP 4
- ETTN Q -1
- Stop
- XDeath:
- ETTB A 4
- ETTB B 4 A_NoBlocking
- ETTB C 4 A_SpawnItemEx("EttinMace", 0,0,8.5,
- random[DropMace](-128,127) * 0.03125,
- random[DropMace](-128,127) * 0.03125,
- 10 + random[DropMace](0,255) * 0.015625, 0, SXF_ABSOLUTEMOMENTUM)
- ETTB D 4 A_Scream
- ETTB E 4 A_QueueCorpse
- ETTB FGHIJK 4
- ETTB L -1
- Stop
- Ice:
- ETTN R 5 A_FreezeDeath
- ETTN R 1 A_FreezeDeathChunks
- Wait
- }
-}
-
-// Ettin mace ---------------------------------------------------------------
-
-ACTOR EttinMace
-{
- Radius 5
- Height 5
- +DROPOFF
- +CORPSE
- +NOTELEPORT
- +FLOORCLIP
- States
- {
- Spawn:
- ETTB MNOP 5
- Loop
- Crash:
- ETTB Q 5
- ETTB R 5 A_QueueCorpse
- ETTB S -1
- Stop
- }
-}
-
-// Ettin mash ---------------------------------------------------------------
-
-ACTOR EttinMash : Ettin
-{
- Game Hexen
- SpawnID 102
- +NOBLOOD
- +NOICEDEATH
- RenderStyle Translucent
- Alpha 0.4
- States
- {
- Death:
- XDeath:
- Ice:
- Stop
- }
-}
-
-
-
diff --git a/wadsrc/decorate/hexen/fighterplayer.txt b/wadsrc/decorate/hexen/fighterplayer.txt
deleted file mode 100644
index be3ff52a..00000000
--- a/wadsrc/decorate/hexen/fighterplayer.txt
+++ /dev/null
@@ -1,85 +0,0 @@
-// The fighter --------------------------------------------------------------
-
-ACTOR FighterPlayer : PlayerPawn
-{
- Health 100
- PainChance 255
- Radius 16
- Height 64
- Speed 1
- +NOSKIN
- PainSound "PlayerFighterPain"
- RadiusDamageFactor 0.25
- Player.JumpZ 9.75
- Player.Viewheight 48
- Player.ColorRange 246, 254
- Player.SpawnClass "Fighter"
- Player.DisplayName "Fighter"
- Player.SoundClass "fighter"
- Player.ScoreIcon "FITEFACE"
- Player.HealRadiusType "Armor"
- Player.Hexenarmor 15, 25, 20, 15, 5
- Player.StartItem "FWeapFist"
- Player.ForwardMove 1.08, 1.2
- Player.SideMove 1.125, 1.475
- States
- {
- Spawn:
- PLAY A -1
- Stop
- See:
- PLAY ABCD 4
- Loop
- Missile:
- Melee:
- PLAY EF 8
- Goto Spawn
- Pain:
- PLAY G 4
- PLAY G 4 A_Pain
- Goto Spawn
- Death:
- PLAY H 6
- PLAY I 6 A_PlayerScream
- PLAY JK 6
- PLAY L 6 A_NoBlocking
- PLAY M 6
- PLAY N -1
- Stop
- XDeath:
- PLAY O 5 A_PlayerScream
- PLAY P 5 A_SkullPop
- PLAY R 5 A_NoBlocking
- PLAY STUV 5
- PLAY W -1
- Stop
- Ice:
- PLAY X 5 A_FreezeDeath
- PLAY X 1 A_FreezeDeathChunks
- Wait
- Burn:
- FDTH A 5 BRIGHT A_PlaySound("*burndeath")
- FDTH B 4 BRIGHT
- FDTH G 5 BRIGHT
- FDTH H 4 BRIGHT A_PlayerScream
- FDTH I 5 BRIGHT
- FDTH J 4 BRIGHT
- FDTH K 5 BRIGHT
- FDTH L 4 BRIGHT
- FDTH M 5 BRIGHT
- FDTH N 4 BRIGHT
- FDTH O 5 BRIGHT
- FDTH P 4 BRIGHT
- FDTH Q 5 BRIGHT
- FDTH R 4 BRIGHT
- FDTH S 5 BRIGHT A_NoBlocking
- FDTH T 4 BRIGHT
- FDTH U 5 BRIGHT
- FDTH V 4 BRIGHT
- ACLO E 35 A_CheckPlayerDone
- Wait
- ACLO E 8
- Stop
- }
-}
-
diff --git a/wadsrc/decorate/hexen/flame.txt b/wadsrc/decorate/hexen/flame.txt
deleted file mode 100644
index 276e5576..00000000
--- a/wadsrc/decorate/hexen/flame.txt
+++ /dev/null
@@ -1,116 +0,0 @@
-// Temp Small Flame --------------------------------------------------------
-
-ACTOR AFlameSmallTemp 10500
-{
- Game Hexen
- SpawnID 96
- +NOTELEPORT
- RenderStyle Add
- States
- {
- Spawn:
- FFSM AB 3 Bright
- FFSM C 2 Bright A_CountdownArg(1)
- FFSM C 2 Bright
- FFSM D 3 Bright
- FFSM E 3 Bright A_CountdownArg(1)
- Loop
- }
-}
-
-
-// Temp Large Flame ---------------------------------------------------------
-
-ACTOR AFlameLargeTemp 10502
-{
- Game Hexen
- SpawnID 98
- +NOTELEPORT
- RenderStyle Add
- States
- {
- Spawn:
- FFLG A 4 Bright
- FFLG B 4 Bright A_CountdownArg(1)
- FFLG C 4 Bright
- FFLG D 4 Bright A_CountdownArg(1)
- FFLG E 4 Bright
- FFLG F 4 Bright A_CountdownArg(1)
- FFLG G 4 Bright
- FFLG H 4 Bright A_CountdownArg(1)
- FFLG I 4 Bright
- FFLG J 4 Bright A_CountdownArg(1)
- FFLG K 4 Bright
- FFLG L 4 Bright A_CountdownArg(1)
- FFLG M 4 Bright
- FFLG N 4 Bright A_CountdownArg(1)
- FFLG O 4 Bright
- FFLG P 4 Bright A_CountdownArg(1)
- Goto Spawn+4
- }
-}
-
-// Small Flame --------------------------------------------------------------
-
-ACTOR FlameSmall : SwitchableDecoration 10501
-{
- Game Hexen
- SpawnID 97
- +NOTELEPORT
- +INVISIBLE
- RenderStyle Add
- States
- {
- Active:
- FFSM A 0 Bright A_PlaySound("Ignite")
- Spawn:
- FFSM A 3 Bright
- FFSM A 3 Bright A_UnHideThing
- FFSM ABCDE 3 Bright
- Goto Spawn+2
- Inactive:
- FFSM A 2
- FFSM B 2 A_HideThing
- FFSM C 200
- Wait
- }
-}
-
-ACTOR FlameSmall2 : FlameSmall
-{
- Game Hexen
- SpawnID 66
-}
-
-// Large Flame --------------------------------------------------------------
-
-ACTOR FlameLarge : SwitchableDecoration 10503
-{
- Game Hexen
- SpawnID 99
- +NOTELEPORT
- +INVISIBLE
- RenderStyle Add
- States
- {
- Active:
- FFLG A 0 Bright A_PlaySound("Ignite")
- Spawn:
- FFLG A 2 Bright
- FFLG A 2 Bright A_UnHideThing
- FFLG ABCDEFGHIJKLMNOP 4 Bright
- Goto Spawn+6
- Inactive:
- FFLG DCB 2
- FFLG A 2 A_HideThing
- FFLG A 200
- Wait
- }
-}
-
-ACTOR FlameLarge2 : FlameLarge
-{
- Game Hexen
- SpawnID 67
-}
-
diff --git a/wadsrc/decorate/hexen/hexenarmor.txt b/wadsrc/decorate/hexen/hexenarmor.txt
deleted file mode 100644
index 8aa83065..00000000
--- a/wadsrc/decorate/hexen/hexenarmor.txt
+++ /dev/null
@@ -1,73 +0,0 @@
-
-// Mesh Armor (1) -----------------------------------------------------------
-
-ACTOR MeshArmor : HexenArmor 8005
-{
- Game Hexen
- SpawnID 68
- +NOGRAVITY
- Health 0 // Armor class
- Inventory.Amount 0
- Inventory.PickupMessage "$TXT_ARMOR1"
- States
- {
- Spawn:
- AR_1 A -1
- Stop
- }
-}
-
-// Falcon Shield (2) --------------------------------------------------------
-
-ACTOR FalconShield : HexenArmor 8006
-{
- Game Hexen
- SpawnID 69
- +NOGRAVITY
- Health 1 // Armor class
- Inventory.Amount 0
- Inventory.PickupMessage "$TXT_ARMOR2"
- States
- {
- Spawn:
- AR_2 A -1
- Stop
- }
-}
-
-// Platinum Helm (3) --------------------------------------------------------
-
-ACTOR PlatinumHelm : HexenArmor 8007
-{
- Game Hexen
- SpawnID 70
- +NOGRAVITY
- Health 2 // Armor class
- Inventory.Amount 0
- Inventory.PickupMessage "$TXT_ARMOR3"
- States
- {
- Spawn:
- AR_3 A -1
- Stop
- }
-}
-
-// Amulet of Warding (4) ----------------------------------------------------
-
-ACTOR AmuletOfWarding : HexenArmor 8008
-{
- Game Hexen
- SpawnID 71
- +NOGRAVITY
- Health 3 // Armor class
- Inventory.Amount 0
- Inventory.PickupMessage "$TXT_ARMOR4"
- States
- {
- Spawn:
- AR_4 A -1
- Stop
- }
-}
-
diff --git a/wadsrc/decorate/hexen/hexendecorations.txt b/wadsrc/decorate/hexen/hexendecorations.txt
deleted file mode 100644
index 572c2956..00000000
--- a/wadsrc/decorate/hexen/hexendecorations.txt
+++ /dev/null
@@ -1,1499 +0,0 @@
-ACTOR ZWingedStatue 5
-{
- Game Hexen
- Radius 10
- Height 62
- +SOLID
- States
- {
- Spawn:
- STTW A -1
- Stop
- }
-}
-
-ACTOR ZRock1 6
-{
- Game Hexen
- Radius 20
- Height 16
- States
- {
- Spawn:
- RCK1 A -1
- Stop
- }
-}
-
-ACTOR ZRock2 7
-{
- Game Hexen
- Radius 20
- Height 16
- States
- {
- Spawn:
- RCK2 A -1
- Stop
- }
-}
-
-ACTOR ZRock3 9
-{
- Game Hexen
- Radius 20
- Height 16
- States
- {
- Spawn:
- RCK3 A -1
- Stop
- }
-}
-
-ACTOR ZRock4 15
-{
- Game Hexen
- Radius 20
- Height 16
- States
- {
- Spawn:
- RCK4 A -1
- Stop
- }
-}
-
-ACTOR ZChandelier 17
-{
- Game Hexen
- Radius 20
- Height 60
- +SPAWNCEILING
- +NOGRAVITY
- States
- {
- Spawn:
- CDLR ABC 4
- Loop
- }
-}
-
-ACTOR ZChandelierUnlit 8063
-{
- Game Hexen
- Radius 20
- Height 60
- +SPAWNCEILING
- +NOGRAVITY
- States
- {
- Spawn:
- CDLR D -1
- Stop
- }
-}
-
-ACTOR ZTreeDead 24
-{
- Game Hexen
- Radius 10
- Height 96
- +SOLID
- States
- {
- Spawn:
- ZTRE A -1
- Stop
- }
-}
-
-ACTOR ZTree 25
-{
- Game Hexen
- Radius 15
- Height 128
- +SOLID
- States
- {
- Spawn:
- ZTRE A -1
- Stop
- }
-}
-
-ACTOR ZTreeSwamp150 26
-{
- Game Hexen
- Radius 10
- Height 150
- +SOLID
- States
- {
- Spawn:
- TRES A -1
- Stop
- }
-}
-
-ACTOR ZTreeSwamp120 27
-{
- Game Hexen
- Radius 10
- Height 120
- +SOLID
- States
- {
- Spawn:
- TRE3 A -1
- Stop
- }
-}
-
-ACTOR ZStumpBurned 28
-{
- Game Hexen
- Radius 12
- Height 20
- +SOLID
- States
- {
- Spawn:
- STM1 A -1
- Stop
- }
-}
-
-ACTOR ZStumpBare 29
-{
- Game Hexen
- Radius 12
- Height 20
- +SOLID
- States
- {
- Spawn:
- STM2 A -1
- Stop
- }
-}
-
-ACTOR ZStumpSwamp1 37
-{
- Game Hexen
- Radius 20
- Height 16
- States
- {
- Spawn:
- STM3 A -1
- Stop
- }
-}
-
-ACTOR ZStumpSwamp2 38
-{
- Game Hexen
- Radius 20
- Height 16
- States
- {
- Spawn:
- STM4 A -1
- Stop
- }
-}
-
-ACTOR ZShroomLarge1 39
-{
- Game Hexen
- Radius 20
- Height 16
- States
- {
- Spawn:
- MSH1 A -1
- Stop
- }
-}
-
-ACTOR ZShroomLarge2 40
-{
- Game Hexen
- Radius 20
- Height 16
- States
- {
- Spawn:
- MSH2 A -1
- Stop
- }
-}
-
-ACTOR ZShroomLarge3 41
-{
- Game Hexen
- Radius 20
- Height 16
- States
- {
- Spawn:
- MSH3 A -1
- Stop
- }
-}
-
-ACTOR ZShroomSmall1 42
-{
- Game Hexen
- Radius 20
- Height 16
- States
- {
- Spawn:
- MSH4 A -1
- Stop
- }
-}
-
-ACTOR ZShroomSmall2 44
-{
- Game Hexen
- Radius 20
- Height 16
- States
- {
- Spawn:
- MSH5 A -1
- Stop
- }
-}
-
-ACTOR ZShroomSmall3 45
-{
- Game Hexen
- Radius 20
- Height 16
- States
- {
- Spawn:
- MSH6 A -1
- Stop
- }
-}
-
-ACTOR ZShroomSmall4 46
-{
- Game Hexen
- Radius 20
- Height 16
- States
- {
- Spawn:
- MSH7 A -1
- Stop
- }
-}
-
-ACTOR ZShroomSmall5 47
-{
- Game Hexen
- Radius 20
- Height 16
- States
- {
- Spawn:
- MSH8 A -1
- Stop
- }
-}
-
-ACTOR ZStalagmitePillar 48
-{
- Game Hexen
- Radius 8
- Height 138
- +SOLID
- States
- {
- Spawn:
- SGMP A -1
- Stop
- }
-}
-
-ACTOR ZStalagmiteLarge 49
-{
- Game Hexen
- Radius 8
- Height 48
- +SOLID
- States
- {
- Spawn:
- SGM1 A -1
- Stop
- }
-}
-
-ACTOR ZStalagmiteMedium 50
-{
- Game Hexen
- Radius 6
- Height 40
- +SOLID
- States
- {
- Spawn:
- SGM2 A -1
- Stop
- }
-}
-
-ACTOR ZStalagmiteSmall 51
-{
- Game Hexen
- Radius 8
- Height 36
- +SOLID
- States
- {
- Spawn:
- SGM3 A -1
- Stop
- }
-}
-
-ACTOR ZStalactiteLarge 52
-{
- Game Hexen
- Radius 8
- Height 66
- +SOLID
- +SPAWNCEILING
- +NOGRAVITY
- States
- {
- Spawn:
- SLC1 A -1
- Stop
- }
-}
-
-ACTOR ZStalactiteMedium 56
-{
- Game Hexen
- Radius 6
- Height 50
- +SOLID
- +SPAWNCEILING
- +NOGRAVITY
- States
- {
- Spawn:
- SLC2 A -1
- Stop
- }
-}
-
-ACTOR ZStalactiteSmall 57
-{
- Game Hexen
- Radius 8
- Height 40
- +SOLID
- +SPAWNCEILING
- +NOGRAVITY
- States
- {
- Spawn:
- SLC3 A -1
- Stop
- }
-}
-
-ACTOR ZMossCeiling1 58
-{
- Game Hexen
- Radius 20
- Height 20
- +SPAWNCEILING
- +NOGRAVITY
- States
- {
- Spawn:
- MSS1 A -1
- Stop
- }
-}
-
-ACTOR ZMossCeiling2 59
-{
- Game Hexen
- Radius 20
- Height 24
- +SPAWNCEILING
- +NOGRAVITY
- States
- {
- Spawn:
- MSS2 A -1
- Stop
- }
-}
-
-ACTOR ZSwampVine 60
-{
- Game Hexen
- Radius 8
- Height 52
- +SOLID
- States
- {
- Spawn:
- SWMV A -1
- Stop
- }
-}
-
-ACTOR ZCorpseKabob 61
-{
- Game Hexen
- Radius 10
- Height 92
- +SOLID
- States
- {
- Spawn:
- CPS1 A -1
- Stop
- }
-}
-
-ACTOR ZCorpseSleeping 62
-{
- Game Hexen
- Radius 20
- Height 16
- States
- {
- Spawn:
- CPS2 A -1
- Stop
- }
-}
-
-ACTOR ZTombstoneRIP 63
-{
- Game Hexen
- Radius 10
- Height 46
- +SOLID
- States
- {
- Spawn:
- TMS1 A -1
- Stop
- }
-}
-
-ACTOR ZTombstoneShane 64
-{
- Game Hexen
- Radius 10
- Height 46
- +SOLID
- States
- {
- Spawn:
- TMS2 A -1
- Stop
- }
-}
-
-ACTOR ZTombstoneBigCross 65
-{
- Game Hexen
- Radius 10
- Height 46
- +SOLID
- States
- {
- Spawn:
- TMS3 A -1
- Stop
- }
-}
-
-ACTOR ZTombstoneBrianR 66
-{
- Game Hexen
- Radius 10
- Height 52
- +SOLID
- States
- {
- Spawn:
- TMS4 A -1
- Stop
- }
-}
-
-ACTOR ZTombstoneCrossCircle 67
-{
- Game Hexen
- Radius 10
- Height 52
- +SOLID
- States
- {
- Spawn:
- TMS5 A -1
- Stop
- }
-}
-
-ACTOR ZTombstoneSmallCross 68
-{
- Game Hexen
- Radius 8
- Height 46
- +SOLID
- States
- {
- Spawn:
- TMS6 A -1
- Stop
- }
-}
-
-ACTOR ZTombstoneBrianP 69
-{
- Game Hexen
- Radius 8
- Height 46
- +SOLID
- States
- {
- Spawn:
- TMS7 A -1
- Stop
- }
-}
-
-ACTOR ZCorpseHanging 71
-{
- Game Hexen
- Radius 6
- Height 75
- +SOLID
- +SPAWNCEILING
- +NOGRAVITY
- States
- {
- Spawn:
- CPS3 A -1
- Stop
- }
-}
-
-ACTOR ZStatueGargoyleGreenTall 72
-{
- Game Hexen
- Radius 14
- Height 108
- +SOLID
- States
- {
- Spawn:
- STT2 A -1
- Stop
- }
-}
-
-ACTOR ZStatueGargoyleBlueTall 73
-{
- Game Hexen
- Radius 14
- Height 108
- +SOLID
- States
- {
- Spawn:
- STT3 A -1
- Stop
- }
-}
-
-ACTOR ZStatueGargoyleGreenShort 74
-{
- Game Hexen
- Radius 14
- Height 62
- +SOLID
- States
- {
- Spawn:
- STT4 A -1
- Stop
- }
-}
-
-ACTOR ZStatueGargoyleBlueShort 76
-{
- Game Hexen
- Radius 14
- Height 62
- +SOLID
- States
- {
- Spawn:
- STT5 A -1
- Stop
- }
-}
-
-ACTOR ZStatueGargoyleStripeTall 8044
-{
- Game Hexen
- Radius 14
- Height 108
- +SOLID
- States
- {
- Spawn:
- GAR1 A -1
- Stop
- }
-}
-
-ACTOR ZStatueGargoyleDarkRedTall 8045
-{
- Game Hexen
- Radius 14
- Height 108
- +SOLID
- States
- {
- Spawn:
- GAR2 A -1
- Stop
- }
-}
-
-ACTOR ZStatueGargoyleRedTall 8046
-{
- Game Hexen
- Radius 14
- Height 108
- +SOLID
- States
- {
- Spawn:
- GAR3 A -1
- Stop
- }
-}
-
-ACTOR ZStatueGargoyleTanTall 8047
-{
- Game Hexen
- Radius 14
- Height 108
- +SOLID
- States
- {
- Spawn:
- GAR4 A -1
- Stop
- }
-}
-
-ACTOR ZStatueGargoyleRustTall 8048
-{
- Game Hexen
- Radius 14
- Height 108
- +SOLID
- States
- {
- Spawn:
- GAR5 A -1
- Stop
- }
-}
-
-ACTOR ZStatueGargoyleDarkRedShort 8049
-{
- Game Hexen
- Radius 14
- Height 62
- +SOLID
- States
- {
- Spawn:
- GAR6 A -1
- Stop
- }
-}
-
-ACTOR ZStatueGargoyleRedShort 8050
-{
- Game Hexen
- Radius 14
- Height 62
- +SOLID
- States
- {
- Spawn:
- GAR7 A -1
- Stop
- }
-}
-
-ACTOR ZStatueGargoyleTanShort 8051
-{
- Game Hexen
- Radius 14
- Height 62
- +SOLID
- States
- {
- Spawn:
- GAR8 A -1
- Stop
- }
-}
-
-ACTOR ZStatueGargoyleRustShort 8052
-{
- Game Hexen
- Radius 14
- Height 62
- +SOLID
- States
- {
- Spawn:
- GAR9 A -1
- Stop
- }
-}
-
-ACTOR ZBannerTattered 77
-{
- Game Hexen
- Radius 8
- Height 120
- +SOLID
- States
- {
- Spawn:
- BNR1 A -1
- Stop
- }
-}
-
-ACTOR ZTreeLarge1 78
-{
- Game Hexen
- Radius 15
- Height 180
- +SOLID
- States
- {
- Spawn:
- TRE4 A -1
- Stop
- }
-}
-
-ACTOR ZTreeLarge2 79
-{
- Game Hexen
- Radius 15
- Height 180
- +SOLID
- States
- {
- Spawn:
- TRE5 A -1
- Stop
- }
-}
-
-ACTOR ZTreeGnarled1 80
-{
- Game Hexen
- Radius 22
- Height 100
- +SOLID
- States
- {
- Spawn:
- TRE6 A -1
- Stop
- }
-}
-
-ACTOR ZTreeGnarled2 87
-{
- Game Hexen
- Radius 22
- Height 100
- +SOLID
- States
- {
- Spawn:
- TRE7 A -1
- Stop
- }
-}
-
-ACTOR ZLog 88
-{
- Game Hexen
- Radius 20
- Height 25
- +SOLID
- States
- {
- Spawn:
- LOGG A -1
- Stop
- }
-}
-
-ACTOR ZStalactiteIceLarge 89
-{
- Game Hexen
- Radius 8
- Height 66
- +SOLID
- +SPAWNCEILING
- +NOGRAVITY
- States
- {
- Spawn:
- ICT1 A -1
- Stop
- }
-}
-
-ACTOR ZStalactiteIceMedium 90
-{
- Game Hexen
- Radius 5
- Height 50
- +SOLID
- +SPAWNCEILING
- +NOGRAVITY
- States
- {
- Spawn:
- ICT2 A -1
- Stop
- }
-}
-
-ACTOR ZStalactiteIceSmall 91
-{
- Game Hexen
- Radius 4
- Height 32
- +SOLID
- +SPAWNCEILING
- +NOGRAVITY
- States
- {
- Spawn:
- ICT3 A -1
- Stop
- }
-}
-
-ACTOR ZStalactiteIceTiny 92
-{
- Game Hexen
- Radius 4
- Height 8
- +SOLID
- +SPAWNCEILING
- +NOGRAVITY
- States
- {
- Spawn:
- ICT4 A -1
- Stop
- }
-}
-
-ACTOR ZStalagmiteIceLarge 93
-{
- Game Hexen
- Radius 8
- Height 66
- +SOLID
- States
- {
- Spawn:
- ICM1 A -1
- Stop
- }
-}
-
-ACTOR ZStalagmiteIceMedium 94
-{
- Game Hexen
- Radius 5
- Height 50
- +SOLID
- States
- {
- Spawn:
- ICM2 A -1
- Stop
- }
-}
-
-ACTOR ZStalagmiteIceSmall 95
-{
- Game Hexen
- Radius 4
- Height 32
- +SOLID
- States
- {
- Spawn:
- ICM3 A -1
- Stop
- }
-}
-
-ACTOR ZStalagmiteIceTiny 96
-{
- Game Hexen
- Radius 4
- Height 8
- +SOLID
- States
- {
- Spawn:
- ICM4 A -1
- Stop
- }
-}
-
-ACTOR ZRockBrown1 97
-{
- Game Hexen
- Radius 17
- Height 72
- +SOLID
- States
- {
- Spawn:
- RKBL A -1
- Stop
- }
-}
-
-ACTOR ZRockBrown2 98
-{
- Game Hexen
- Radius 15
- Height 50
- +SOLID
- States
- {
- Spawn:
- RKBS A -1
- Stop
- }
-}
-
-ACTOR ZRockBlack 99
-{
- Game Hexen
- Radius 20
- Height 40
- +SOLID
- States
- {
- Spawn:
- RKBK A -1
- Stop
- }
-}
-
-ACTOR ZRubble1 100
-{
- Game Hexen
- Radius 20
- Height 16
- States
- {
- Spawn:
- RBL1 A -1
- Stop
- }
-}
-
-ACTOR ZRubble2 101
-{
- Game Hexen
- Radius 20
- Height 16
- States
- {
- Spawn:
- RBL2 A -1
- Stop
- }
-}
-
-ACTOR ZRubble3 102
-{
- Game Hexen
- Radius 20
- Height 16
- States
- {
- Spawn:
- RBL3 A -1
- Stop
- }
-}
-
-ACTOR ZVasePillar 103
-{
- Game Hexen
- Radius 12
- Height 54
- +SOLID
- States
- {
- Spawn:
- VASE A -1
- Stop
- }
-}
-
-ACTOR ZCorpseLynched 108
-{
- Game Hexen
- Radius 11
- Height 95
- +SOLID
- +SPAWNCEILING
- +NOGRAVITY
- States
- {
- Spawn:
- CPS4 A -1
- Stop
- }
-}
-
-ACTOR ZCandle 119
-{
- Game Hexen
- Radius 20
- Height 16
- +NOGRAVITY
- +NOBLOCKMAP
- States
- {
- Spawn:
- CNDL ABC 4 Bright
- Loop
- }
-}
-
-ACTOR ZBarrel 8100
-{
- Game Hexen
- Radius 15
- Height 32
- +SOLID
- States
- {
- Spawn:
- ZBAR A -1
- Stop
- }
-}
-
-ACTOR ZBucket 8103
-{
- Game Hexen
- Radius 8
- Height 72
- +SOLID
- +SPAWNCEILING
- +NOGRAVITY
- States
- {
- Spawn:
- BCKT A -1
- Stop
- }
-}
-
-ACTOR FireThing 8060
-{
- Game Hexen
- Radius 5
- Height 10
- +SOLID
- States
- {
- Spawn:
- FSKL A 4 Bright
- FSKL B 3 Bright
- FSKL C 4 Bright
- FSKL D 3 Bright
- FSKL E 4 Bright
- FSKL F 3 Bright
- FSKL G 4 Bright
- FSKL H 3 Bright
- FSKL I 4 Bright
- Loop
- }
-}
-
-ACTOR BrassTorch 8061
-{
- Game Hexen
- Radius 6
- Height 35
- +SOLID
- States
- {
- Spawn:
- BRTR ABCDEFGHIJKLM 4 Bright
- Loop
- }
-}
-
-ACTOR ZBlueCandle 8066
-{
- Game Hexen
- Radius 20
- Height 16
- +NOBLOCKMAP
- States
- {
- Spawn:
- BCAN ABCDE 5 Bright
- Loop
- }
-}
-
-ACTOR ZIronMaiden 8067
-{
- Game Hexen
- Radius 12
- Height 60
- +SOLID
- States
- {
- Spawn:
- IRON A -1
- Stop
- }
-}
-
-ACTOR ZChainBit32 8071
-{
- Game Hexen
- Radius 4
- Height 32
- +SPAWNCEILING
- +NOGRAVITY
- +NOBLOCKMAP
- States
- {
- Spawn:
- CHNS A -1
- Stop
- }
-}
-
-ACTOR ZChainBit64 8072
-{
- Game Hexen
- Radius 4
- Height 64
- +SPAWNCEILING
- +NOGRAVITY
- +NOBLOCKMAP
- States
- {
- Spawn:
- CHNS B -1
- Stop
- }
-}
-
-ACTOR ZChainEndHeart 8073
-{
- Game Hexen
- Radius 4
- Height 32
- +SPAWNCEILING
- +NOGRAVITY
- +NOBLOCKMAP
- States
- {
- Spawn:
- CHNS C -1
- Stop
- }
-}
-
-ACTOR ZChainEndHook1 8074
-{
- Game Hexen
- Radius 4
- Height 32
- +SPAWNCEILING
- +NOGRAVITY
- +NOBLOCKMAP
- States
- {
- Spawn:
- CHNS D -1
- Stop
- }
-}
-
-ACTOR ZChainEndHook2 8075
-{
- Game Hexen
- Radius 4
- Height 32
- +SPAWNCEILING
- +NOGRAVITY
- +NOBLOCKMAP
- States
- {
- Spawn:
- CHNS E -1
- Stop
- }
-}
-
-ACTOR ZChainEndSpike 8076
-{
- Game Hexen
- Radius 4
- Height 32
- +SPAWNCEILING
- +NOGRAVITY
- +NOBLOCKMAP
- States
- {
- Spawn:
- CHNS F -1
- Stop
- }
-}
-
-ACTOR ZChainEndSkull 8077
-{
- Game Hexen
- Radius 4
- Height 32
- +SPAWNCEILING
- +NOGRAVITY
- +NOBLOCKMAP
- States
- {
- Spawn:
- CHNS G -1
- Stop
- }
-}
-
-ACTOR TableShit1 8500
-{
- Game Hexen
- Radius 20
- Height 16
- +NOBLOCKMAP
- States
- {
- Spawn:
- TST1 A -1
- Stop
- }
-}
-
-ACTOR TableShit2 8501
-{
- Game Hexen
- Radius 20
- Height 16
- +NOBLOCKMAP
- States
- {
- Spawn:
- TST2 A -1
- Stop
- }
-}
-
-ACTOR TableShit3 8502
-{
- Game Hexen
- Radius 20
- Height 16
- +NOBLOCKMAP
- States
- {
- Spawn:
- TST3 A -1
- Stop
- }
-}
-
-ACTOR TableShit4 8503
-{
- Game Hexen
- Radius 20
- Height 16
- +NOBLOCKMAP
- States
- {
- Spawn:
- TST4 A -1
- Stop
- }
-}
-
-ACTOR TableShit5 8504
-{
- Game Hexen
- Radius 20
- Height 16
- +NOBLOCKMAP
- States
- {
- Spawn:
- TST5 A -1
- Stop
- }
-}
-
-ACTOR TableShit6 8505
-{
- Game Hexen
- Radius 20
- Height 16
- +NOBLOCKMAP
- States
- {
- Spawn:
- TST6 A -1
- Stop
- }
-}
-
-ACTOR TableShit7 8506
-{
- Game Hexen
- Radius 20
- Height 16
- +NOBLOCKMAP
- States
- {
- Spawn:
- TST7 A -1
- Stop
- }
-}
-
-ACTOR TableShit8 8507
-{
- Game Hexen
- Radius 20
- Height 16
- +NOBLOCKMAP
- States
- {
- Spawn:
- TST8 A -1
- Stop
- }
-}
-
-ACTOR TableShit9 8508
-{
- Game Hexen
- Radius 20
- Height 16
- +NOBLOCKMAP
- States
- {
- Spawn:
- TST9 A -1
- Stop
- }
-}
-
-ACTOR TableShit10 8509
-{
- Game Hexen
- Radius 20
- Height 16
- +NOBLOCKMAP
- States
- {
- Spawn:
- TST0 A -1
- Stop
- }
-}
-
-ACTOR TeleSmoke 140
-{
- Game Hexen
- Radius 20
- Height 16
- +NOGRAVITY
- +NOBLOCKMAP
- RenderStyle Translucent
- Alpha 0.6
- States
- {
- Spawn:
- TSMK A 4
- TSMK B 3
- TSMK C 4
- TSMK D 3
- TSMK E 4
- TSMK F 3
- TSMK G 4
- TSMK H 3
- TSMK I 4
- TSMK J 3
- TSMK K 4
- TSMK L 3
- TSMK M 4
- TSMK N 3
- TSMK O 4
- TSMK P 3
- TSMK Q 4
- TSMK R 3
- TSMK S 4
- TSMK T 3
- TSMK U 4
- TSMK V 3
- TSMK W 4
- TSMK X 3
- TSMK Y 4
- TSMK Z 3
- Loop
- }
-}
-
diff --git a/wadsrc/decorate/hexen/hexenkeys.txt b/wadsrc/decorate/hexen/hexenkeys.txt
deleted file mode 100644
index e58693e6..00000000
--- a/wadsrc/decorate/hexen/hexenkeys.txt
+++ /dev/null
@@ -1,160 +0,0 @@
-
-ACTOR HexenKey : Key
-{
- Radius 8
- Height 20
-}
-
-ACTOR KeySteel : HexenKey 8030
-{
- Game Hexen
- SpawnID 85
- Inventory.Icon KEYSLOT1
- Inventory.PickupMessage "$TXT_KEY_STEEL"
- States
- {
- Spawn:
- KEY1 A -1
- Stop
- }
-}
-
-ACTOR KeyCave : HexenKey 8031
-{
- Game Hexen
- SpawnID 86
- Inventory.Icon KEYSLOT2
- Inventory.PickupMessage "$TXT_KEY_CAVE"
- States
- {
- Spawn:
- KEY2 A -1
- Stop
- }
-}
-
-ACTOR KeyAxe : HexenKey 8032
-{
- Game Hexen
- SpawnID 87
- Inventory.Icon KEYSLOT3
- Inventory.PickupMessage "$TXT_KEY_AXE"
- States
- {
- Spawn:
- KEY3 A -1
- Stop
- }
-}
-
-ACTOR KeyFire : HexenKey 8033
-{
- Game Hexen
- SpawnID 88
- Inventory.Icon KEYSLOT4
- Inventory.PickupMessage "$TXT_KEY_FIRE"
- States
- {
- Spawn:
- KEY4 A -1
- Stop
- }
-}
-
-ACTOR KeyEmerald : HexenKey 8034
-{
- Game Hexen
- SpawnID 89
- Inventory.Icon KEYSLOT5
- Inventory.PickupMessage "$TXT_KEY_EMERALD"
- States
- {
- Spawn:
- KEY5 A -1
- Stop
- }
-}
-
-ACTOR KeyDungeon : HexenKey 8035
-{
- Game Hexen
- SpawnID 90
- Inventory.Icon KEYSLOT6
- Inventory.PickupMessage "$TXT_KEY_DUNGEON"
- States
- {
- Spawn:
- KEY6 A -1
- Stop
- }
-}
-
-ACTOR KeySilver : HexenKey 8036
-{
- Game Hexen
- SpawnID 91
- Inventory.Icon KEYSLOT7
- Inventory.PickupMessage "$TXT_KEY_SILVER"
- States
- {
- Spawn:
- KEY7 A -1
- Stop
- }
-}
-
-ACTOR KeyRusted : HexenKey 8037
-{
- Game Hexen
- SpawnID 92
- Inventory.Icon KEYSLOT8
- Inventory.PickupMessage "$TXT_KEY_RUSTED"
- States
- {
- Spawn:
- KEY8 A -1
- Stop
- }
-}
-
-ACTOR KeyHorn : HexenKey 8038
-{
- Game Hexen
- SpawnID 93
- Inventory.Icon KEYSLOT9
- Inventory.PickupMessage "$TXT_KEY_HORN"
- States
- {
- Spawn:
- KEY9 A -1
- Stop
- }
-}
-
-ACTOR KeySwamp : HexenKey 8039
-{
- Game Hexen
- SpawnID 94
- Inventory.Icon KEYSLOTA
- Inventory.PickupMessage "$TXT_KEY_SWAMP"
- States
- {
- Spawn:
- KEYA A -1
- Stop
- }
-}
-
-ACTOR KeyCastle : HexenKey 8200
-{
- Game Hexen
- Inventory.Icon KEYSLOTB
- Inventory.PickupMessage "$TXT_KEY_CASTLE"
- States
- {
- Spawn:
- KEYB A -1
- Stop
- }
-}
-
diff --git a/wadsrc/decorate/hexen/hexenspecialdecs.txt b/wadsrc/decorate/hexen/hexenspecialdecs.txt
deleted file mode 100644
index 40b10171..00000000
--- a/wadsrc/decorate/hexen/hexenspecialdecs.txt
+++ /dev/null
@@ -1,309 +0,0 @@
-
-// Winged Statue (no skull) -------------------------------------------------
-
-ACTOR ZWingedStatueNoSkull : SwitchingDecoration 9011
-{
- Game Hexen
- Radius 10
- Height 62
- +SOLID
- States
- {
- Spawn:
- STWN A -1
- Stop
- Active:
- STWN B -1
- Stop
- }
-}
-
-
-// Gem pedestal -------------------------------------------------------------
-
-ACTOR ZGemPedestal : SwitchingDecoration 9012
-{
- Game Hexen
- Radius 10
- Height 40
- +SOLID
- States
- {
- Spawn:
- GMPD A -1
- Stop
- Active:
- GMPD B -1
- Stop
- }
-}
-
-
-// Tree (destructible) ------------------------------------------------------
-
-ACTOR TreeDestructible 8062
-{
- Game Hexen
- Health 70
- Radius 15
- Height 180
- DeathHeight 24
- Mass 0x7fffffff
- PainSound "TreeExplode"
- DeathSound "TreeBreak"
- +SOLID +SHOOTABLE +NOBLOOD +NOICEDEATH
- States
- {
- Spawn:
- TRDT A -1
- Stop
- Death:
- TRDT B 5
- TRDT C 5 A_Scream
- TRDT DEF 5
- TRDT G -1
- Stop
- Burn:
- TRDT H 5 Bright A_Pain
- TRDT IJKL 5 Bright
- TRDT M 5 Bright A_Explode(10, 128)
- TRDT N 5 Bright
- TRDT OP 5
- TRDT Q -1
- Stop
- }
-}
-
-
-// Twined torch -------------------------------------------------------------
-
-ACTOR ZTwinedTorch : SwitchableDecoration 116
-{
- Game Hexen
- Radius 10
- Height 64
- +SOLID
- States
- {
- Active:
- TWTR A 0 Bright A_PlaySound("Ignite")
- Spawn:
- TWTR ABCDEFGH 4 Bright
- Loop
- Inactive:
- TWTR I -1
- Stop
- }
-}
-
-ACTOR ZTwinedTorchUnlit : ZTwinedTorch 117
-{
- Game Hexen
- States
- {
- Spawn:
- Goto Super::Inactive
- }
-}
-
-
-// Wall torch ---------------------------------------------------------------
-
-ACTOR ZWallTorch : SwitchableDecoration 54
-{
- Game Hexen
- +NOBLOCKMAP
- +NOGRAVITY
- +FIXMAPTHINGPOS
- Radius 6.5
- States
- {
- Active:
- WLTR A 0 Bright A_PlaySound("Ignite")
- Spawn:
- WLTR ABCDEFGH 5 Bright
- Loop
- Inactive:
- WLTR I -1
- Stop
- }
-}
-
-ACTOR ZWallTorchUnlit : ZWallTorch 55
-{
- Game Hexen
- States
- {
- Spawn:
- Goto Super::Inactive
- }
-}
-
-
-// Shrub1 -------------------------------------------------------------------
-
-ACTOR ZShrub1 8101
-{
- Game Hexen
- Radius 8
- Height 24
- Health 20
- Mass 0x7fffffff
- +SOLID +SHOOTABLE +NOBLOOD +NOICEDEATH
- DeathSound "TreeExplode"
- States
- {
- Spawn:
- SHB1 A -1
- Stop
- Burn:
- SHB1 B 7 Bright
- SHB1 C 6 Bright A_Scream
- SHB1 D 5 Bright
- Stop
- }
-}
-
-
-// Shrub2 -------------------------------------------------------------------
-
-ACTOR ZShrub2 8102
-{
- Game Hexen
- Radius 16
- Height 40
- Health 20
- Mass 0x7fffffff
- +SOLID +SHOOTABLE +NOBLOOD +NOICEDEATH
- DeathSound "TreeExplode"
- States
- {
- Spawn:
- SHB2 A -1
- Stop
- Burn:
- SHB2 B 7 Bright
- SHB2 C 6 Bright A_Scream
- SHB2 D 5 Bright A_Explode(30, 64)
- SHB2 E 5 Bright
- Stop
- }
-}
-
-
-// Fire Bull ----------------------------------------------------------------
-
-ACTOR ZFireBull : SwitchableDecoration 8042
-{
- Game Hexen
- Radius 20
- Height 80
- +SOLID
- States
- {
- Active:
- FBUL I 4 Bright A_PlaySound("Ignite")
- FBUL J 4 Bright
- Spawn:
- FBUL ABCDEFG 4 Bright
- Loop
- Inactive:
- FBUL JI 4 Bright
- FBUL H -1
- Stop
- }
-}
-
-ACTOR ZFireBullUnlit : ZFireBull 8043
-{
- Game Hexen
- States
- {
- Spawn:
- Goto Super::Inactive+2
- }
-}
-
-
-// "Christmas" Tree ---------------------------------------------------------
-
-ACTOR ZXmasTree 8068
-{
- Game Hexen
- Radius 11
- Height 130
- Health 20
- Mass 0x7fffffff
- +SOLID +SHOOTABLE +NOBLOOD +NOICEDEATH
- DeathSound "TreeExplode"
- States
- {
- Spawn:
- XMAS A -1
- Stop
- Burn:
- XMAS B 6 Bright
- XMAS C 6 Bright A_Scream
- XMAS D 5 Bright
- XMAS E 5 Bright A_Explode(30, 64)
- XMAS F 5 Bright
- XMAS G 4 Bright
- XMAS H 5
- XMAS I 4 A_NoBlocking
- XMAS J 4
- XMAS K -1
- Stop
- }
-}
-
-// Cauldron -----------------------------------------------------------------
-
-ACTOR ZCauldron : SwitchableDecoration 8069
-{
- Game Hexen
- Radius 12
- Height 26
- +SOLID
- States
- {
- Active:
- CDRN B 0 Bright A_PlaySound("Ignite")
- Spawn:
- CDRN BCDEFGH 4 Bright
- Loop
- Inactive:
- CDRN A -1
- Stop
- }
-}
-
-ACTOR ZCauldronUnlit : ZCauldron 8070
-{
- Game Hexen
- States
- {
- Spawn:
- Goto Super::Inactive
- }
-}
-
-
-// Water Drip ---------------------------------------------------------------
-
-ACTOR HWaterDrip
-{
- Game Hexen
- SpawnID 95
- +MISSILE
- +LOWGRAVITY
- +NOTELEPORT
- Mass 1
- DeathSound "Drip"
- States
- {
- Spawn:
- HWAT A -1
- Stop
- }
-}
-
diff --git a/wadsrc/decorate/hexen/mageplayer.txt b/wadsrc/decorate/hexen/mageplayer.txt
deleted file mode 100644
index 7da29330..00000000
--- a/wadsrc/decorate/hexen/mageplayer.txt
+++ /dev/null
@@ -1,86 +0,0 @@
-// The mage -----------------------------------------------------------------
-
-ACTOR MagePlayer : PlayerPawn
-{
- Health 100
- ReactionTime 0
- PainChance 255
- Radius 16
- Height 64
- Speed 1
- +NOSKIN
- PainSound "PlayerMagePain"
- RadiusDamageFactor 0.25
- Player.JumpZ 9.75
- Player.Viewheight 48
- Player.ColorRange 146, 163
- Player.SpawnClass "Mage"
- Player.DisplayName "Mage"
- Player.SoundClass "mage"
- Player.ScoreIcon "MAGEFACE"
- Player.InvulnerabilityMode "Reflective"
- Player.HealRadiusType "Mana"
- Player.Hexenarmor 5, 5, 15, 10, 25
- Player.StartItem "MWeapWand"
- Player.ForwardMove 0.88, 0.92
- Player.SideMove 0.875, 0.925
- States
- {
- Spawn:
- MAGE A -1
- Stop
- See:
- MAGE ABCD 4
- Loop
- Missile:
- Melee:
- MAGE EF 8
- Goto Spawn
- Pain:
- MAGE G 4
- MAGE G 4 A_Pain
- Goto Spawn
- Death:
- MAGE H 6
- MAGE I 6 A_PlayerScream
- MAGE JK 6
- MAGE L 6 A_NoBlocking
- MAGE M 6
- MAGE N -1
- Stop
- XDeath:
- MAGE O 5 A_PlayerScream
- MAGE P 5
- MAGE R 5 A_NoBlocking
- MAGE STUVW 5
- MAGE X -1
- Stop
- Ice:
- MAGE Y 5 A_FreezeDeath
- MAGE Y 1 A_FreezeDeathChunks
- Wait
- Burn:
- FDTH E 5 BRIGHT A_PlaySound("*burndeath")
- FDTH F 4 BRIGHT
- FDTH G 5 BRIGHT
- FDTH H 4 BRIGHT A_PlayerScream
- FDTH I 5 BRIGHT
- FDTH J 4 BRIGHT
- FDTH K 5 BRIGHT
- FDTH L 4 BRIGHT
- FDTH M 5 BRIGHT
- FDTH N 4 BRIGHT
- FDTH O 5 BRIGHT
- FDTH P 4 BRIGHT
- FDTH Q 5 BRIGHT
- FDTH R 4 BRIGHT
- FDTH S 5 BRIGHT A_NoBlocking
- FDTH T 4 BRIGHT
- FDTH U 5 BRIGHT
- FDTH V 4 BRIGHT
- ACLO E 35 A_CheckPlayerDone
- Wait
- ACLO E 8
- Stop
- }
-}
diff --git a/wadsrc/decorate/hexen/mana.txt b/wadsrc/decorate/hexen/mana.txt
deleted file mode 100644
index 6130fe96..00000000
--- a/wadsrc/decorate/hexen/mana.txt
+++ /dev/null
@@ -1,94 +0,0 @@
-// Blue mana ----------------------------------------------------------------
-
-ACTOR Mana1 : Ammo 122
-{
- Game Hexen
- SpawnID 11
- Inventory.Amount 15
- Inventory.MaxAmount 200
- Ammo.BackpackAmount 15
- Ammo.BackpackMaxAmount 200
- Radius 8
- Height 8
- +FLOATBOB
- Inventory.Icon "MAN1I0"
- Inventory.PickupMessage "$TXT_MANA_1"
- States
- {
- Spawn:
- MAN1 ABCDEFGHI 4 Bright
- Loop
- }
-}
-
-// Green mana ---------------------------------------------------------------
-
-ACTOR Mana2 : Ammo 124
-{
- Game Hexen
- SpawnID 12
- Inventory.Amount 15
- Inventory.MaxAmount 200
- Ammo.BackpackAmount 15
- Ammo.BackpackMaxAmount 200
- Radius 8
- Height 8
- +FLOATBOB
- Inventory.Icon "MAN2G0"
- Inventory.PickupMessage "$TXT_MANA_2"
- States
- {
- Spawn:
- MAN2 ABCDEFGHIJKLMNOP 4 Bright
- Loop
- }
-}
-
-// Combined mana ------------------------------------------------------------
-
-ACTOR Mana3 : CustomInventory 8004
-{
- Game Hexen
- SpawnID 75
- Radius 8
- Height 8
- +FLOATBOB
- Inventory.PickupMessage "$TXT_MANA_BOTH"
- States
- {
- Spawn:
- MAN3 ABCDEFGHIJKLMNOP 4 Bright
- Loop
- Pickup:
- TNT1 A 0 A_GiveInventory("Mana1", 20)
- TNT1 A 0 A_GiveInventory("Mana2", 20)
- Stop
- }
-}
-
-// Boost Mana Artifact Krater of Might ------------------------------------
-
-ACTOR ArtiBoostMana : CustomInventory 8003
-{
- Game Hexen
- SpawnID 26
- +FLOATBOB
- +COUNTITEM
- +INVENTORY.INVBAR
- +INVENTORY.PICKUPFLASH
- +INVENTORY.FANCYPICKUPSOUND
- Inventory.DefMaxAmount
- Inventory.Icon "ARTIBMAN"
- Inventory.PickupSound "misc/p_pkup"
- Inventory.PickupMessage "$TXT_ARTIBOOSTMANA"
- States
- {
- Spawn:
- BMAN A -1
- Stop
- Use:
- TNT1 A 0 A_GiveInventory("Mana1", 200)
- TNT1 A 0 A_GiveInventory("Mana2", 200)
- Stop
- }
-}
diff --git a/wadsrc/decorate/hexen/puzzleitems.txt b/wadsrc/decorate/hexen/puzzleitems.txt
deleted file mode 100644
index c3bdf29b..00000000
--- a/wadsrc/decorate/hexen/puzzleitems.txt
+++ /dev/null
@@ -1,296 +0,0 @@
-
-// Yorick's Skull -----------------------------------------------------------
-
-ACTOR PuzzSkull : PuzzleItem 9002
-{
- Game Hexen
- SpawnID 76
- PuzzleItem.Number 0
- Inventory.Icon ARTISKLL
- Inventory.PickupMessage "$TXT_ARTIPUZZSKULL"
- States
- {
- Spawn:
- ASKU A -1
- Stop
- }
-}
-
-
-// Heart of D'Sparil --------------------------------------------------------
-
-ACTOR PuzzGemBig : PuzzleItem 9003
-{
- Game Hexen
- SpawnID 77
- PuzzleItem.Number 1
- Inventory.Icon ARTIBGEM
- Inventory.PickupMessage "$TXT_ARTIPUZZGEMBIG"
- States
- {
- Spawn:
- ABGM A -1
- Stop
- }
-}
-
-// Red Gem (Ruby Planet) ----------------------------------------------------
-
-ACTOR PuzzGemRed : PuzzleItem 9004
-{
- Game Hexen
- SpawnID 78
- PuzzleItem.Number 2
- Inventory.Icon ARTIGEMR
- Inventory.PickupMessage "$TXT_ARTIPUZZGEMRED"
- States
- {
- Spawn:
- AGMR A -1
- Stop
- }
-}
-
-
-// Green Gem 1 (Emerald Planet) ---------------------------------------------
-
-ACTOR PuzzGemGreen1 : PuzzleItem 9005
-{
- Game Hexen
- SpawnID 79
- PuzzleItem.Number 3
- Inventory.Icon ARTIGEMG
- Inventory.PickupMessage "$TXT_ARTIPUZZGEMGREEN1"
- States
- {
- Spawn:
- AGMG A -1
- Stop
- }
-}
-
-
-// Green Gem 2 (Emerald Planet) ---------------------------------------------
-
-ACTOR PuzzGemGreen2 : PuzzleItem 9009
-{
- Game Hexen
- SpawnID 80
- PuzzleItem.Number 4
- Inventory.Icon ARTIGMG2
- Inventory.PickupMessage "$TXT_ARTIPUZZGEMGREEN2"
- States
- {
- Spawn:
- AGG2 A -1
- Stop
- }
-}
-
-
-// Blue Gem 1 (Sapphire Planet) ---------------------------------------------
-
-ACTOR PuzzGemBlue1 : PuzzleItem 9006
-{
- Game Hexen
- SpawnID 81
- PuzzleItem.Number 5
- Inventory.Icon ARTIGEMB
- Inventory.PickupMessage "$TXT_ARTIPUZZGEMBLUE1"
- States
- {
- Spawn:
- AGMB A -1
- Stop
- }
-}
-
-
-// Blue Gem 2 (Sapphire Planet) ---------------------------------------------
-
-ACTOR PuzzGemBlue2 : PuzzleItem 9010
-{
- Game Hexen
- SpawnID 82
- PuzzleItem.Number 6
- Inventory.Icon ARTIGMB2
- Inventory.PickupMessage "$TXT_ARTIPUZZGEMBLUE2"
- States
- {
- Spawn:
- AGB2 A -1
- Stop
- }
-}
-
-
-// Book 1 (Daemon Codex) ----------------------------------------------------
-
-ACTOR PuzzBook1 : PuzzleItem 9007
-{
- Game Hexen
- SpawnID 83
- PuzzleItem.Number 7
- Inventory.Icon ARTIBOK1
- Inventory.PickupMessage "$TXT_ARTIPUZZBOOK1"
- States
- {
- Spawn:
- ABK1 A -1
- Stop
- }
-}
-
-
-// Book 2 (Liber Oscura) ----------------------------------------------------
-
-ACTOR PuzzBook2 : PuzzleItem 9008
-{
- Game Hexen
- SpawnID 84
- PuzzleItem.Number 8
- Inventory.Icon ARTIBOK2
- Inventory.PickupMessage "$TXT_ARTIPUZZBOOK2"
- States
- {
- Spawn:
- ABK2 A -1
- Stop
- }
-}
-
-
-// Flame Mask ---------------------------------------------------------------
-
-
-ACTOR PuzzFlameMask : PuzzleItem 9014
-{
- Game Hexen
- PuzzleItem.Number 9
- Inventory.Icon ARTISKL2
- Inventory.PickupMessage "$TXT_ARTIPUZZSKULL2"
- States
- {
- Spawn:
- ASK2 A -1
- Stop
- }
-}
-
-// Fighter Weapon (Glaive Seal) ---------------------------------------------
-
-ACTOR PuzzFWeapon : PuzzleItem 9015
-{
- Game Hexen
- PuzzleItem.Number 10
- Inventory.Icon ARTIFWEP
- Inventory.PickupMessage "$TXT_ARTIPUZZFWEAPON"
- States
- {
- Spawn:
- AFWP A -1
- Stop
- }
-}
-
-
-// Cleric Weapon (Holy Relic) -----------------------------------------------
-
-ACTOR PuzzCWeapon : PuzzleItem 9016
-{
- Game Hexen
- PuzzleItem.Number 11
- Inventory.Icon ARTICWEP
- Inventory.PickupMessage "$TXT_ARTIPUZZCWEAPON"
- States
- {
- Spawn:
- ACWP A -1
- Stop
- }
-}
-
-
-// Mage Weapon (Sigil of the Magus) -----------------------------------------
-
-ACTOR PuzzMWeapon : PuzzleItem 9017
-{
- Game Hexen
- PuzzleItem.Number 12
- Inventory.Icon ARTIMWEP
- Inventory.PickupMessage "$TXT_ARTIPUZZMWEAPON"
- States
- {
- Spawn:
- AMWP A -1
- Stop
- }
-}
-
-// Clock Gear 1 -------------------------------------------------------------
-
-ACTOR PuzzGear1 : PuzzleItem 9018
-{
- Game Hexen
- PuzzleItem.Number 13
- Inventory.Icon ARTIGEAR
- Inventory.PickupMessage "$TXT_ARTIPUZZGEAR"
- States
- {
- Spawn:
- AGER ABCDEFGH 4 Bright
- Loop
- }
-}
-
-
-// Clock Gear 2 -------------------------------------------------------------
-
-ACTOR PuzzGear2 : PuzzleItem 9019
-{
- Game Hexen
- PuzzleItem.Number 14
- Inventory.Icon ARTIGER2
- Inventory.PickupMessage "$TXT_ARTIPUZZGEAR"
- States
- {
- Spawn:
- AGR2 ABCDEFGH 4 Bright
- Loop
- }
-}
-
-
-// Clock Gear 3 -------------------------------------------------------------
-
-ACTOR PuzzGear3 : PuzzleItem 9020
-{
- Game Hexen
- PuzzleItem.Number 15
- Inventory.Icon ARTIGER3
- Inventory.PickupMessage "$TXT_ARTIPUZZGEAR"
- States
- {
- Spawn:
- AGR3 ABCDEFGH 4 Bright
- Loop
- }
-}
-
-
-// Clock Gear 4 -------------------------------------------------------------
-
-ACTOR PuzzGear4 : PuzzleItem 9021
-{
- Game Hexen
- PuzzleItem.Number 16
- Inventory.Icon ARTIGER4
- Inventory.PickupMessage "$TXT_ARTIPUZZGEAR"
- States
- {
- Spawn:
- AGR4 ABCDEFGH 4 Bright
- Loop
- }
-}
-
diff --git a/wadsrc/decorate/hexen/scriptprojectiles.txt b/wadsrc/decorate/hexen/scriptprojectiles.txt
deleted file mode 100644
index 9ad06b07..00000000
--- a/wadsrc/decorate/hexen/scriptprojectiles.txt
+++ /dev/null
@@ -1,135 +0,0 @@
-// Fire Ball ----------------------------------------------------------------
-
-ACTOR FireBall
-{
- Game Hexen
- SpawnID 10
- Speed 2
- Radius 8
- Height 8
- Damage 4
- DamageType Fire
- +NOBLOCKMAP +NOGRAVITY +DROPOFF +MISSILE
- +NOTELEPORT
- RenderStyle Add
- DeathSound "Fireball"
- States
- {
- Spawn:
- FBL1 AB 4 Bright
- Loop
- Death:
- XPL1 ABCDEF 4 Bright
- Stop
- }
-}
-
-// Arrow --------------------------------------------------------------------
-
-ACTOR Arrow
-{
- Game Hexen
- SpawnID 50
- Speed 6
- Radius 8
- Height 4
- Damage 4
- +NOBLOCKMAP +NOGRAVITY +DROPOFF +MISSILE
- +NOTELEPORT
- States
- {
- Spawn:
- ARRW A -1
- Stop
- Death:
- ARRW A 1
- Stop
- }
-}
-
-// Dart ---------------------------------------------------------------------
-
-ACTOR Dart
-{
- Game Hexen
- SpawnID 51
- Speed 6
- Radius 8
- Height 4
- Damage 2
- +NOBLOCKMAP +NOGRAVITY +DROPOFF +MISSILE
- +NOTELEPORT
- States
- {
- Spawn:
- DART A -1
- Stop
- Death:
- DART A 1
- Stop
- }
-}
-
-// Poison Dart --------------------------------------------------------------
-
-ACTOR PoisonDart : Dart
-{
- Game Hexen
- SpawnID 52
- PoisonDamage 20
-}
-
-// Ripper Ball --------------------------------------------------------------
-
-ACTOR RipperBall
-{
- Game Hexen
- SpawnID 53
- Speed 6
- Radius 8
- Damage 2
- +NOBLOCKMAP +NOGRAVITY +DROPOFF +MISSILE
- +NOTELEPORT +RIPPER
- States
- {
- Spawn:
- RIPP ABC 3
- Loop
- Death:
- CFCF Q 4 Bright
- CFCF R 3 Bright
- CFCF S 4 Bright
- CFCF T 3 Bright
- CFCF U 4 Bright
- CFCF V 3 Bright
- CFCF W 4 Bright
- CFCF X 3 Bright
- CFCF Y 4 Bright
- CFCF Z 3 Bright
- Stop
- }
-}
-
-// Projectile Blade ---------------------------------------------------------
-
-ACTOR ProjectileBlade
-{
- Game Hexen
- SpawnID 64
- Speed 6
- Radius 6
- Height 6
- Damage 3
- +NOBLOCKMAP +NOGRAVITY +DROPOFF +MISSILE
- +NOTELEPORT
- States
- {
- Spawn:
- BLAD A -1
- Stop
- Death:
- BLAD A 1
- Stop
- }
-}
-
diff --git a/wadsrc/decorate/hexen/speedboots.txt b/wadsrc/decorate/hexen/speedboots.txt
deleted file mode 100644
index 17d193d2..00000000
--- a/wadsrc/decorate/hexen/speedboots.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-ACTOR ArtiSpeedBoots : PowerupGiver 8002
-{
- Game Hexen
- SpawnID 13
- +FLOATBOB
- +COUNTITEM
- +INVENTORY.PICKUPFLASH
- Inventory.Icon ARTISPED
- Inventory.PickupMessage "$TXT_ARTISPEED"
- Powerup.Type Speed
- States
- {
- Spawn:
- SPED ABCDEFGH 3 Bright
- Loop
- }
-}
diff --git a/wadsrc/decorate/nativeclasses.txt b/wadsrc/decorate/nativeclasses.txt
deleted file mode 100644
index baab541e..00000000
--- a/wadsrc/decorate/nativeclasses.txt
+++ /dev/null
@@ -1,222 +0,0 @@
-class Actor extends Thinker
- native
-{
- action native A_MonsterRail();
- action native A_BFGSpray(optional class spraytype, optional eval int numrays, optional eval int damagecount);
- action native A_Pain();
- action native A_NoBlocking();
- action native A_XScream();
- action native A_Look();
- action native A_Chase(optional state melee, optional state missile, optional eval int flags);
- action native A_FaceTarget();
- action native A_PosAttack();
- action native A_Scream();
- action native A_SPosAttack();
- action native A_SPosAttackUseAtkSound();
- action native A_VileChase();
- action native A_VileStart();
- action native A_VileTarget();
- action native A_VileAttack();
- action native A_StartFire();
- action native A_Fire();
- action native A_FireCrackle();
- action native A_Tracer();
- action native A_SkelWhoosh();
- action native A_SkelFist();
- action native A_SkelMissile();
- action native A_FatRaise();
- action native A_FatAttack1(optional class spawntype);
- action native A_FatAttack2(optional class spawntype);
- action native A_FatAttack3(optional class spawntype);
- action native A_BossDeath();
- action native A_CPosAttack();
- action native A_CPosRefire();
- action native A_TroopAttack();
- action native A_SargAttack();
- action native A_HeadAttack();
- action native A_BruisAttack();
- action native A_SkullAttack(optional eval float speed);
- action native A_Metal();
- action native A_SpidRefire();
- action native A_BabyMetal();
- action native A_BspiAttack();
- action native A_Hoof();
- action native A_CyberAttack();
- action native A_PainAttack(optional class spawntype);
- action native A_DualPainAttack(optional class spawntype);
- action native A_PainDie(optional class spawntype);
- action native A_KeenDie();
- action native A_BrainPain();
- action native A_BrainScream();
- action native A_BrainDie();
- action native A_BrainAwake();
- action native A_BrainSpit(optional class spawntype);
- action native A_SpawnSound();
- action native A_SpawnFly(optional class spawntype);
- action native A_BrainExplode();
- action native A_Die(optional name damagetype);
- action native A_Detonate();
- action native A_Mushroom(optional class spawntype, optional eval int numspawns);
-
- action native A_SetFloorClip();
- action native A_UnSetFloorClip();
- action native A_HideThing();
- action native A_UnHideThing();
- action native A_SetInvulnerable();
- action native A_UnSetInvulnerable();
- action native A_SetReflective();
- action native A_UnSetReflective();
- action native A_SetReflectiveInvulnerable();
- action native A_UnSetReflectiveInvulnerable();
- action native A_SetShootable();
- action native A_UnSetShootable();
- action native A_NoGravity();
- action native A_Gravity();
- action native A_LowGravity();
- action native A_SetGravity(eval float gravity);
- action native A_Fall();
- action native A_SetSolid();
- action native A_UnsetSolid();
- action native A_SetFloat();
- action native A_UnsetFloat();
-
- action native A_M_Saw();
-
- action native A_ScreamAndUnblock();
- action native A_ActiveAndUnblock();
- action native A_ActiveSound();
-
- action native A_FastChase();
- action native A_FreezeDeath();
- action native A_FreezeDeathChunks();
- action native A_GenericFreezeDeath();
- action native A_IceGuyDie();
- action native A_CentaurDefend();
- action native A_BishopMissileWeave();
- action native A_CStaffMissileSlither();
- action native A_PlayerScream();
- action native A_SkullPop(optional class skulltype);
- action native A_CheckPlayerDone();
-
- action native A_Wander();
- action native A_Look2();
- action native A_TossGib();
- action native A_SentinelBob();
- action native A_SentinelRefire();
- action native A_Tracer2();
- action native A_SetShadow();
- action native A_ClearShadow();
- action native A_GetHurt();
- action native A_TurretLook();
- action native A_KlaxonBlare();
- action native A_Countdown();
- action native A_AlertMonsters();
- action native A_ClearSoundTarget();
- action native A_FireAssaultGun();
- action native A_CheckTerrain();
-
- action native A_MissileAttack();
- action native A_MeleeAttack();
- action native A_ComboAttack();
- action native A_BulletAttack();
- action native A_PlaySound(sound whattoplay);
- action native A_PlayWeaponSound(sound whattoplay);
- action native A_FLoopActiveSound();
- action native A_LoopActiveSound();
- action native A_StopSound();
- action native A_PlaySoundEx(sound whattoplay, coerce name slot, optional eval bool looping, optional eval int attenuation);
- action native A_StopSoundEx(coerce name slot);
- action native A_SeekerMissile(eval int threshold, eval int turnmax);
- action native A_Jump(eval int chance, state label, ...);
- action native A_CustomMissile(class missiletype, eval float spawnheight, eval int spawnofs_xy, optional eval float angle, optional eval int flags, optional eval float pitch);
- action native A_CustomBulletAttack(eval float spread_xy, eval float spread_z, eval int numbullets, eval int damageperbullet, optional class pufftype, optional eval float range, optional eval bool aimfacing);
- action native A_CustomRailgun(eval int damage, optional eval int spawnofs_xy, optional color color1, optional color color2, optional eval bool silent, optional eval bool aim, optional eval float maxdiff, optional class pufftype);
- action native A_JumpIfHealthLower(eval int health, state label);
- action native A_JumpIfCloser(eval float distance, state label);
- action native A_JumpIfInventory(class itemtype, eval int itemamount, state label);
- action native A_GiveInventory(class itemtype, optional eval int amount);
- action native A_TakeInventory(class itemtype, optional eval int amount);
- action native A_SpawnItem(class itemtype, optional eval float distance, optional eval float zheight, optional evalnot bool useammo, optional eval bool transfer_translation);
- action native A_SpawnItemEx(class itemtype, optional eval float xofs, optional eval float yofs, optional eval float zofs, optional eval float xmom, optional eval float ymom, optional eval float zmom, optional eval float angle, optional eval int flags, optional eval int chance);
- action native A_Print(string whattoprint, optional eval float time, optional string fontname);
- action native A_SetTranslucent(eval float alpha, optional eval int style);
- action native A_FadeIn(optional eval float reduce);
- action native A_FadeOut(optional eval float reduce);
- action native A_SpawnDebris(class spawntype, optional eval bool transfer_translation, optional eval float mult_h, optional eval float mult_v);
- action native A_CheckSight(state label);
- action native A_ExtChase(eval bool usemelee, eval bool usemissile, optional evalnot bool playactive, optional eval bool nightmarefast);
- action native A_DropInventory(class itemtype);
- action native A_SetBlend(color color1, eval float alpha, eval int tics, optional color color2);
- action native A_ChangeFlag(string flagname, eval bool value);
- action native A_JumpIf(eval bool expression, state label);
- action native A_KillMaster();
- action native A_KillChildren();
- action native A_CheckFloor(state label);
- action native A_PlayerSkinCheck(state label);
- action native A_BasicAttack(int meleedamage, sound meleesound, class missiletype, float missileheight);
- action native A_ThrowGrenade(class itemtype, optional eval float zheight, optional eval float xymom, optional eval float zmom, optional evalnot bool useammo);
-
- action native A_Recoil(eval float xymom);
- action native A_JumpIfInTargetInventory(class itemtype, eval int amount, state label);
- action native A_GiveToTarget(class itemtype, optional eval int amount);
- action native A_TakeFromTarget(class itemtype, optional eval int amount);
- action native A_CountdownArg(eval int argnum);
- action native A_CustomMeleeAttack(eval int damage, optional sound meleesound, optional sound misssound, optional name damagetype, optional evalnot bool bleed);
- action native A_CustomComboAttack(class missiletype, eval float spawnheight, eval int damage, optional sound meleesound, optional name damagetype, optional evalnot bool bleed);
- action native A_Burst(class chunktype);
- action native A_RadiusThrust(optional eval int force, optional eval int distance, optional evalnot bool affectsource);
- action native A_Explode(optional eval int damage, optional eval int distance, optional evalnot bool hurtsource);
- action native A_Stop();
- action native A_Respawn(optional evalnot bool fog);
- action native A_BarrelDestroy();
- action native A_QueueCorpse();
- action native A_DeQueueCorpse();
- action native A_LookEx(optional eval int flags, optional eval float minseedist, optional eval float maxseedist, optional eval float maxheardist, optional eval float fov, optional state label);
- action native A_ClearTarget();
- action native A_JumpIfTargetInLOS (state label, optional eval float fov, optional eval bool projectiletarget);
- action native A_DamageMaster(eval int amount, optional name damagetype);
- action native A_DamageChildren(eval int amount, optional name damagetype);
- action native A_SelectWeapon(class whichweapon);
- action native A_Punch();
-}
-
-class Inventory extends Actor
- native
-{
- action native A_JumpIfNoAmmo(state label);
- action native A_CustomPunch(eval int damage, optional eval bool norandom, optional evalnot bool useammo, optional class pufftype, optional eval float range);
- action native A_FireBullets(eval float spread_xy, eval float spread_z, eval int numbullets, eval int damageperbullet, optional class pufftype, optional evalnot bool useammo, optional eval float range);
- action native A_FireCustomMissile(class missiletype, optional eval float angle, optional evalnot bool useammo, optional eval int spawnofs_xy, optional eval float spawnheight, optional eval bool aimatangle);
- action native A_RailAttack(eval int damage, optional eval int spawnofs_xy, optional evalnot int useammo, optional color color1, optional color color2, optional eval bool silent, optional eval float maxdiff, optional class pufftype);
- action native A_Light(eval int extralight);
- action native A_Light0();
- action native A_Light1();
- action native A_Light2();
- action native A_LightInverse();
- action native A_WeaponReady();
- action native A_Lower();
- action native A_Raise();
- action native A_FirePistol();
- action native A_FireShotgun();
- action native A_FireShotgun2();
- action native A_OpenShotgun2();
- action native A_LoadShotgun2();
- action native A_CloseShotgun2();
- action native A_FireCGun();
- action native A_FireMissile();
- action native A_FirePlasma();
- action native A_FireRailgun();
- action native A_FireRailgunLeft();
- action native A_FireRailgunRight();
- action native A_RailWait();
- action native A_BFGsound();
- action native A_FireBFG();
- action native A_ReFire();
- action native A_ClearReFire();
- action native A_CheckReload();
- action native A_GunFlash();
- action native A_Saw(optional coerce sound fullsound, optional coerce sound hitsound, optional eval int damage, optional class pufftype);
- action native A_CheckForReload(eval int counter, state label);
- action native A_ResetReloadCounter();
-}
-
diff --git a/wadsrc/decorate/raven/artiegg.txt b/wadsrc/decorate/raven/artiegg.txt
deleted file mode 100644
index 18a2d83f..00000000
--- a/wadsrc/decorate/raven/artiegg.txt
+++ /dev/null
@@ -1,108 +0,0 @@
-
-// Egg missile --------------------------------------------------------------
-
-ACTOR EggFX : MorphProjectile
-{
- Game Heretic
- SpawnID 40
- Radius 8
- Height 8
- Speed 18
- MorphProjectile.PlayerClass "ChickenPlayer"
- MorphProjectile.MonsterClass "Chicken"
- MorphProjectile.MorphStyle MRF_UNDOBYTOMEOFPOWER
- States
- {
- Spawn:
- EGGM ABCDE 4
- Loop
- Death:
- FX01 FFGH 3 Bright
- Stop
- }
-}
-
-
-// Morph Ovum ----------------------------------------------------------------
-
-ACTOR ArtiEgg : CustomInventory 30
-{
- Game Heretic
- SpawnID 14
- +COUNTITEM
- +FLOATBOB
- +INVENTORY.INVBAR
- +INVENTORY.PICKUPFLASH
- +INVENTORY.FANCYPICKUPSOUND
- Inventory.Icon "ARTIEGGC"
- Inventory.PickupSound "misc/p_pkup"
- Inventory.PickupMessage "$TXT_ARTIEGG"
- Inventory.DefMaxAmount
- States
- {
- Spawn:
- EGGC ABCB 6
- Loop
- Use:
- TNT1 A 0 A_FireCustomMissile("EggFX", -15, 0, 0, 0, 1)
- TNT1 A 0 A_FireCustomMissile("EggFX", -7.5, 0, 0, 0, 1)
- TNT1 A 0 A_FireCustomMissile("EggFX", 0, 0, 0, 0, 1)
- TNT1 A 0 A_FireCustomMissile("EggFX", 7.5, 0, 0, 0, 1)
- TNT1 A 0 A_FireCustomMissile("EggFX", 15, 0, 0, 0, 1)
- Stop
- }
-}
-
-// Pork missile --------------------------------------------------------------
-
-ACTOR PorkFX : MorphProjectile
-{
- Game Hexen
- SpawnID 40
- Radius 8
- Height 8
- Speed 18
- MorphProjectile.PlayerClass "PigPlayer"
- MorphProjectile.MonsterClass "Pig"
- MorphProjectile.MorphStyle MRF_UNDOBYTOMEOFPOWER|MRF_UNDOBYCHAOSDEVICE
- States
- {
- Spawn:
- PRKM ABCDE 4
- Loop
- Death:
- FHFX IJKL 3 Bright
- Stop
- }
-}
-
-// Porkalator ---------------------------------------------------------------
-
-ACTOR ArtiPork : CustomInventory 30
-{
- Game Hexen
- SpawnID 14
- +COUNTITEM
- +FLOATBOB
- +INVENTORY.INVBAR
- +INVENTORY.PICKUPFLASH
- +INVENTORY.FANCYPICKUPSOUND
- Inventory.Icon "ARTIPORK"
- Inventory.PickupSound "misc/p_pkup"
- Inventory.PickupMessage "$TXT_ARTIEGG2"
- Inventory.DefMaxAmount
- States
- {
- Spawn:
- PORK ABCB 6
- Loop
- Use:
- TNT1 A 0 A_FireCustomMissile("PorkFX", -15, 0, 0, 0, 1)
- TNT1 A 0 A_FireCustomMissile("PorkFX", -7.5, 0, 0, 0, 1)
- TNT1 A 0 A_FireCustomMissile("PorkFX", 0, 0, 0, 0, 1)
- TNT1 A 0 A_FireCustomMissile("PorkFX", 7.5, 0, 0, 0, 1)
- TNT1 A 0 A_FireCustomMissile("PorkFX", 15, 0, 0, 0, 1)
- Stop
- }
-}
-
diff --git a/wadsrc/decorate/raven/ravenambient.txt b/wadsrc/decorate/raven/ravenambient.txt
deleted file mode 100644
index 8489803e..00000000
--- a/wadsrc/decorate/raven/ravenambient.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-// Wind ---------------------------------------------------------------------
-
-ACTOR SoundWind 42
-{
- Game Heretic
- SpawnID 110
- +NOBLOCKMAP
- +NOSECTOR
- +DONTSPLASH
- States
- {
- Spawn:
- TNT1 A 2 A_PlaySoundEx("world/wind", "SoundSlot6", 1)
- Loop
- }
-}
-
-ACTOR SoundWindHexen : SoundWind 1410
-{
- Game Hexen
- SpawnID 110
-}
-
-
-// Waterfall ----------------------------------------------------------------
-
-ACTOR SoundWaterfall 41
-{
- Game Heretic
- SpawnID 111
- +NOBLOCKMAP
- +NOSECTOR
- +DONTSPLASH
- States
- {
- Spawn:
- TNT1 A 2 A_PlaySoundEx("world/waterfall", "SoundSlot6", 1)
- Loop
- }
-}
diff --git a/wadsrc/decorate/raven/ravenartifacts.txt b/wadsrc/decorate/raven/ravenartifacts.txt
deleted file mode 100644
index 6729869f..00000000
--- a/wadsrc/decorate/raven/ravenartifacts.txt
+++ /dev/null
@@ -1,108 +0,0 @@
-
-// Health -------------------------------------------------------------------
-
-ACTOR ArtiHealth : HealthPickup 82
-{
- Game Raven
- SpawnID 24
- Health 25
- +COUNTITEM
- +FLOATBOB
- +INVENTORY.PICKUPFLASH
- +INVENTORY.FANCYPICKUPSOUND
- Inventory.Icon ARTIPTN2
- Inventory.PickupSound "misc/p_pkup"
- Inventory.PickupMessage "$TXT_ARTIHEALTH"
- States
- {
- Spawn:
- PTN2 ABC 4
- Loop
- }
-}
-
-// Super health -------------------------------------------------------------
-
-ACTOR ArtiSuperHealth : HealthPickup 32
-{
- Game Raven
- SpawnID 25
- Health 100
- +COUNTITEM
- +FLOATBOB
- +INVENTORY.PICKUPFLASH
- +INVENTORY.FANCYPICKUPSOUND
- Inventory.Icon ARTISPHL
- Inventory.PickupSound "misc/p_pkup"
- Inventory.PickupMessage "$TXT_ARTISUPERHEALTH"
- States
- {
- Spawn:
- SPHL A 350
- Loop
- }
-}
-
-// Flight -------------------------------------------------------------------
-
-ACTOR ArtiFly : PowerupGiver 83
-{
- Game Raven
- SpawnID 15
- +COUNTITEM
- +FLOATBOB
- +INVENTORY.PICKUPFLASH
- +INVENTORY.INTERHUBSTRIP
- Inventory.RespawnTics 4230
- Inventory.Icon ARTISOAR
- Inventory.PickupMessage "$TXT_ARTIFLY"
- Powerup.Type Flight
- States
- {
- Spawn:
- SOAR ABCB 5
- Loop
- }
-}
-
-// Invulnerability ----------------------------------------------------------
-
-ACTOR ArtiInvulnerability : PowerupGiver 84
-{
- Game Raven
- SpawnID 133
- +COUNTITEM
- +FLOATBOB
- +INVENTORY.PICKUPFLASH
- Inventory.RespawnTics 4230
- Inventory.Icon ARTIINVU
- Inventory.PickupMessage "$TXT_ARTIINVULNERABILITY"
- Inventory.PickupMessage Hexen, "$TXT_ARTIINVULNERABILITY2"
- Powerup.Type Invulnerable
- States
- {
- Spawn:
- INVU ABCD 3
- Loop
- }
-}
-
-// Torch --------------------------------------------------------------------
-
-ACTOR ArtiTorch : PowerupGiver 33
-{
- Game Raven
- SpawnID 73
- +COUNTITEM
- +FLOATBOB
- +INVENTORY.PICKUPFLASH
- Inventory.Icon ARTITRCH
- Inventory.PickupMessage "$TXT_ARTITORCH"
- Powerup.Type Torch
- States
- {
- Spawn:
- TRCH ABC 3 Bright
- Loop
- }
-}
diff --git a/wadsrc/decorate/raven/ravenhealth.txt b/wadsrc/decorate/raven/ravenhealth.txt
deleted file mode 100644
index af951be1..00000000
--- a/wadsrc/decorate/raven/ravenhealth.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-ACTOR CrystalVial : Health 81
-{
- Game Raven
- SpawnID 23
- +FLOATBOB
- Inventory.Amount 10
- Inventory.PickupMessage "$TXT_ITEMHEALTH"
- States
- {
- Spawn:
- PTN1 ABC 3
- Loop
- }
-}
-
diff --git a/wadsrc/decorate/shared/blood.txt b/wadsrc/decorate/shared/blood.txt
deleted file mode 100644
index 5a7ae201..00000000
--- a/wadsrc/decorate/shared/blood.txt
+++ /dev/null
@@ -1,67 +0,0 @@
-
-// Blood sprite ------------------------------------------------------------
-
-ACTOR Blood
-{
- SpawnID 130
- Mass 5
- +NOBLOCKMAP
- +NOTELEPORT
- States
- {
- Spawn:
- BLUD CBA 8
- Stop
- Spray:
- SPRY ABCDEF 3
- SPRY G 2
- Stop
- }
-}
-
-// Blood splatter -----------------------------------------------------------
-
-ACTOR BloodSplatter
-{
- Radius 2
- Height 4
- +NOBLOCKMAP
- +MISSILE
- +DROPOFF
- +NOTELEPORT
- +CANNOTPUSH
- Mass 5
- States
- {
- Spawn:
- BLUD CBA 8
- Stop
- Death:
- BLUD A 6
- Stop
- }
-}
-
-// Axe Blood ----------------------------------------------------------------
-
-ACTOR AxeBlood
-{
- Radius 2
- Height 4
- +NOBLOCKMAP
- +NOGRAVITY
- +DROPOFF
- +NOTELEPORT
- +CANNOTPUSH
- Mass 5
- States
- {
- Spawn:
- FAXE FGHIJ 3
- Death:
- FAXE K 3
- Stop
- }
-}
-
-
\ No newline at end of file
diff --git a/wadsrc/decorate/shared/botstuff.txt b/wadsrc/decorate/shared/botstuff.txt
deleted file mode 100644
index b64b6963..00000000
--- a/wadsrc/decorate/shared/botstuff.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-
-ACTOR CajunBodyNode
-{
- +NOSECTOR
- +NOGRAVITY
- +INVISIBLE
-}
-
-ACTOR CajunTrace
-{
- Speed 12
- Radius 6
- Height 8
- +NOBLOCKMAP
- +DROPOFF
- +MISSILE
- +NOGRAVITY
- +NOTELEPORT
-}
diff --git a/wadsrc/decorate/shared/debris.txt b/wadsrc/decorate/shared/debris.txt
deleted file mode 100644
index e34c55f5..00000000
--- a/wadsrc/decorate/shared/debris.txt
+++ /dev/null
@@ -1,410 +0,0 @@
-
-// Rocks --------------------------------------------------------------------
-
-ACTOR Rock1
-{
- SpawnID 41
- +NOBLOCKMAP
- +DROPOFF
- +MISSILE
- +NOTELEPORT
- States
- {
- Spawn:
- ROKK A 20
- Loop
- Death:
- ROKK A 10
- Stop
- }
-}
-
-ACTOR Rock2
-{
- SpawnID 42
- +NOBLOCKMAP
- +DROPOFF
- +MISSILE
- +NOTELEPORT
- States
- {
- Spawn:
- ROKK B 20
- Loop
- Death:
- ROKK B 10
- Stop
- }
-}
-
-
-ACTOR Rock3
-{
- SpawnID 43
- +NOBLOCKMAP
- +DROPOFF
- +MISSILE
- +NOTELEPORT
- States
- {
- Spawn:
- ROKK C 20
- Loop
- Death:
- ROKK C 10
- Stop
- }
-}
-
-
-// Dirt --------------------------------------------------------------------
-
-ACTOR Dirt1
-{
- SpawnID 44
- +NOBLOCKMAP
- +DROPOFF
- +MISSILE
- +NOTELEPORT
- States
- {
- Spawn:
- ROKK D 20
- Loop
- Death:
- ROKK D 10
- Stop
- }
-}
-
-ACTOR Dirt2
-{
- SpawnID 45
- +NOBLOCKMAP
- +DROPOFF
- +MISSILE
- +NOTELEPORT
- States
- {
- Spawn:
- ROKK E 20
- Loop
- Death:
- ROKK E 10
- Stop
- }
-}
-
-ACTOR Dirt3
-{
- SpawnID 46
- +NOBLOCKMAP
- +DROPOFF
- +MISSILE
- +NOTELEPORT
- States
- {
- Spawn:
- ROKK F 20
- Loop
- Death:
- ROKK F 10
- Stop
- }
-}
-
-ACTOR Dirt4
-{
- SpawnID 47
- +NOBLOCKMAP
- +DROPOFF
- +MISSILE
- +NOTELEPORT
- States
- {
- Spawn:
- ROKK G 20
- Loop
- Death:
- ROKK G 10
- Stop
- }
-}
-
-ACTOR Dirt5
-{
- SpawnID 48
- +NOBLOCKMAP
- +DROPOFF
- +MISSILE
- +NOTELEPORT
- States
- {
- Spawn:
- ROKK H 20
- Loop
- Death:
- ROKK H 10
- Stop
- }
-}
-
-ACTOR Dirt6
-{
- SpawnID 49
- +NOBLOCKMAP
- +DROPOFF
- +MISSILE
- +NOTELEPORT
- States
- {
- Spawn:
- ROKK I 20
- Loop
- Death:
- ROKK I 10
- Stop
- }
-}
-
-// Stained glass ------------------------------------------------------------
-
-
-ACTOR SGShard1 : GlassShard
-{
- SpawnID 54
- Radius 5
- Mass 5
- Projectile
- -ACTIVATEMCROSS
- -ACTIVATEIMPACT
- +HEXENBOUNCE
- BounceFactor 0.3
- States
- {
- Spawn:
- SGSA ABCDE 4
- Loop
- Death:
- SGSA E 30
- Stop
- }
-}
-
-ACTOR SGShard2 : GlassShard
-{
- SpawnID 55
- Radius 5
- Mass 5
- Projectile
- -ACTIVATEMCROSS
- -ACTIVATEIMPACT
- +HEXENBOUNCE
- BounceFactor 0.3
- States
- {
- Spawn:
- SGSA FGHIJ 4
- Loop
- Death:
- SGSA J 30
- Stop
- }
-}
-
-ACTOR SGShard3 : GlassShard
-{
- SpawnID 56
- Radius 5
- Mass 5
- Projectile
- -ACTIVATEMCROSS
- -ACTIVATEIMPACT
- +HEXENBOUNCE
- BounceFactor 0.3
- States
- {
- Spawn:
- SGSA KLMNO 4
- Loop
- Death:
- SGSA O 30
- Stop
- }
-}
-
-ACTOR SGShard4 : GlassShard
-{
- SpawnID 57
- Radius 5
- Mass 5
- Projectile
- -ACTIVATEMCROSS
- -ACTIVATEIMPACT
- +HEXENBOUNCE
- BounceFactor 0.3
- States
- {
- Spawn:
- SGSA PQRST 4
- Loop
- Death:
- SGSA T 30
- Stop
- }
-}
-
-ACTOR SGShard5 : GlassShard
-{
- SpawnID 58
- Radius 5
- Mass 5
- Projectile
- -ACTIVATEMCROSS
- -ACTIVATEIMPACT
- +HEXENBOUNCE
- BounceFactor 0.3
- States
- {
- Spawn:
- SGSA UVWXY 4
- Loop
- Death:
- SGSA Y 30
- Stop
- }
-}
-
-ACTOR SGShard6 : GlassShard
-{
- SpawnID 59
- Radius 5
- Mass 5
- Projectile
- -ACTIVATEMCROSS
- -ACTIVATEIMPACT
- +HEXENBOUNCE
- BounceFactor 0.3
- States
- {
- Spawn:
- SGSB A 4
- Loop
- Death:
- SGSB A 30
- Stop
- }
-}
-
-ACTOR SGShard7 : GlassShard
-{
- SpawnID 60
- Radius 5
- Mass 5
- Projectile
- -ACTIVATEMCROSS
- -ACTIVATEIMPACT
- +HEXENBOUNCE
- BounceFactor 0.3
- States
- {
- Spawn:
- SGSB B 4
- Loop
- Death:
- SGSB B 30
- Stop
- }
-}
-
-ACTOR SGShard8 : GlassShard
-{
- SpawnID 61
- Radius 5
- Mass 5
- Projectile
- -ACTIVATEMCROSS
- -ACTIVATEIMPACT
- +HEXENBOUNCE
- BounceFactor 0.3
- States
- {
- Spawn:
- SGSB C 4
- Loop
- Death:
- SGSB C 30
- Stop
- }
-}
-
-ACTOR SGShard9 : GlassShard
-{
- SpawnID 62
- Radius 5
- Mass 5
- Projectile
- -ACTIVATEMCROSS
- -ACTIVATEIMPACT
- +HEXENBOUNCE
- BounceFactor 0.3
- States
- {
- Spawn:
- SGSB D 4
- Loop
- Death:
- SGSB D 30
- Stop
- }
-}
-
-ACTOR SGShard0 : GlassShard
-{
- SpawnID 63
- Radius 5
- Mass 5
- Projectile
- -ACTIVATEMCROSS
- -ACTIVATEIMPACT
- +HEXENBOUNCE
- BounceFactor 0.3
- States
- {
- Spawn:
- SGSB E 4
- Loop
- Death:
- SGSB E 30
- Stop
- }
-}
-
-ACTOR GlassJunk
-{
- +NOCLIP
- +NOBLOCKMAP
- RenderStyle Translucent
- Alpha 0.4
- Health 3 // Number of different shards
- States
- {
- // Are the first three frames used anywhere?
- SHAR A 128
- Goto Death
- SHAR B 128
- Goto Death
- SHAR C 128
- Goto Death
- Spawn:
- SHAR D 128
- Goto Death
- SHAR E 128
- Goto Death
- SHAR F 128
- Goto Death
- Death:
- "----" A 1 A_FadeOut(0.03)
- Wait
- }
-}
diff --git a/wadsrc/decorate/shared/fountain.txt b/wadsrc/decorate/shared/fountain.txt
deleted file mode 100644
index 5f1e5521..00000000
--- a/wadsrc/decorate/shared/fountain.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-
-ACTOR RedParticleFountain : ParticleFountain 9027
-{
- Health 1
-}
-
-ACTOR GreenParticleFountain : ParticleFountain 9028
-{
- Health 2
-}
-
-ACTOR BlueParticleFountain : ParticleFountain 9029
-{
- Health 3
-}
-
-ACTOR YellowParticleFountain : ParticleFountain 9030
-{
- Health 4
-}
-
-ACTOR PurpleParticleFountain : ParticleFountain 9031
-{
- Health 5
-}
-
-ACTOR BlackParticleFountain : ParticleFountain 9032
-{
- Health 6
-}
-
-ACTOR WhiteParticleFountain : ParticleFountain 9033
-{
- Health 7
-}
diff --git a/wadsrc/decorate/shared/pickups.txt b/wadsrc/decorate/shared/pickups.txt
deleted file mode 100644
index 43e2d228..00000000
--- a/wadsrc/decorate/shared/pickups.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-/***************************************************************************/
-//
-// shown for respawning Doom and Strife items
-//
-/***************************************************************************/
-
-ACTOR ItemFog
-{
- +NOBLOCKMAP
- +NOGRAVITY
- States
- {
- Spawn:
- IFOG ABABCDE 6 BRIGHT
- Stop
- }
-}
-
diff --git a/wadsrc/decorate/shared/sharedmisc.txt b/wadsrc/decorate/shared/sharedmisc.txt
deleted file mode 100644
index 3a643881..00000000
--- a/wadsrc/decorate/shared/sharedmisc.txt
+++ /dev/null
@@ -1,92 +0,0 @@
-
-// Default actor for unregistered doomednums -------------------------------
-
-ACTOR Unknown
-{
- Radius 32
- Height 56
- +NOGRAVITY
- +NOBLOCKMAP
- +DONTSPLASH
- States
- {
- Spawn:
- UNKN A -1
- Stop
- }
-}
-
-// Route node for monster patrols -------------------------------------------
-
-ACTOR PatrolPoint 9024
-{
- Radius 8
- Height 8
- Mass 10
- +NOGRAVITY
- +NOBLOCKMAP
- +DONTSPLASH
- RenderStyle None
-}
-
-// A special to execute when a monster reaches a matching patrol point ------
-
-ACTOR PatrolSpecial 9047
-{
- Radius 8
- Height 8
- Mass 10
- +NOGRAVITY
- +NOBLOCKMAP
- +DONTSPLASH
- RenderStyle None
-}
-
-// Map spot ----------------------------------------------------------------
-
-ACTOR MapSpot 9001
-{
- +NOBLOCKMAP
- +NOSECTOR
- +NOGRAVITY
- +DONTSPLASH
- RenderStyle None
-}
-
-// Map spot with gravity ---------------------------------------------------
-
-ACTOR MapSpotGravity : MapSpot 9013
-{
- -NOBLOCKMAP
- -NOSECTOR
- -NOGRAVITY
-}
-
-// Bloody gibs -------------------------------------------------------------
-
-ACTOR RealGibs
-{
- +DROPOFF
- +CORPSE
- +NOTELEPORT
- +DONTGIB
- States
- {
- Spawn:
- POL5 A -1
- Stop
- }
-}
-
-// Gibs that can be placed on a map. ---------------------------------------
-//
-// These need to be a separate class from the above, in case someone uses
-// a deh patch to change the gibs, since ZDoom actually creates a gib actor
-// for actors that get crushed instead of changing their state as Doom did.
-
-ACTOR Gibs : RealGibs 24
-{
- Game Doom
- SpawnID 146
- ClearFlags
-}
diff --git a/wadsrc/decorate/shared/soundsequence.txt b/wadsrc/decorate/shared/soundsequence.txt
deleted file mode 100644
index 523e97d4..00000000
--- a/wadsrc/decorate/shared/soundsequence.txt
+++ /dev/null
@@ -1,63 +0,0 @@
-
-// Heretic Sound sequences -----------------------------------------------------------
-
-ACTOR HereticSoundSequence1 : SoundSequence 1200
-{
- Game Heretic
- Args 0
-}
-
-ACTOR HereticSoundSequence2 : SoundSequence 1201
-{
- Game Heretic
- Args 1
-}
-
-ACTOR HereticSoundSequence3 : SoundSequence 1202
-{
- Game Heretic
- Args 2
-}
-
-ACTOR HereticSoundSequence4 : SoundSequence 1203
-{
- Game Heretic
- Args 3
-}
-
-ACTOR HereticSoundSequence5 : SoundSequence 1204
-{
- Game Heretic
- Args 4
-}
-
-ACTOR HereticSoundSequence6 : SoundSequence 1205
-{
- Game Heretic
- Args 5
-}
-
-ACTOR HereticSoundSequence7 : SoundSequence 1206
-{
- Game Heretic
- Args 6
-}
-
-ACTOR HereticSoundSequence8 : SoundSequence 1207
-{
- Game Heretic
- Args 7
-}
-
-ACTOR HereticSoundSequence9 : SoundSequence 1208
-{
- Game Heretic
- Args 8
-}
-
-ACTOR HereticSoundSequence10 : SoundSequence 1209
-{
- Game Heretic
- Args 9
-}
-
diff --git a/wadsrc/decorate/shared/splashes.txt b/wadsrc/decorate/shared/splashes.txt
deleted file mode 100644
index 64bb1490..00000000
--- a/wadsrc/decorate/shared/splashes.txt
+++ /dev/null
@@ -1,237 +0,0 @@
-
-// Water --------------------------------------------------------------------
-
-ACTOR WaterSplash
-{
- Radius 2
- Height 4
- +NOBLOCKMAP
- +MISSILE
- +DROPOFF
- +NOTELEPORT
- +LOWGRAVITY
- +CANNOTPUSH
- +DONTSPLASH
- +DONTBLAST
- States
- {
- Spawn:
- SPSH ABC 8
- SPSH D 16
- Stop
- Death:
- SPSH D 10
- Stop
- }
-}
-
-
-ACTOR WaterSplashBase
-{
- +NOBLOCKMAP
- +NOCLIP
- +NOGRAVITY
- +DONTSPLASH
- +DONTBLAST
- States
- {
- Spawn:
- SPSH EFGHIJK 5
- Stop
- }
-}
-
-// Lava ---------------------------------------------------------------------
-
-ACTOR LavaSplash
-{
- +NOBLOCKMAP
- +NOCLIP
- +NOGRAVITY
- +DONTSPLASH
- +DONTBLAST
- States
- {
- Spawn:
- LVAS ABCDEF 5 Bright
- Stop
- }
-}
-
-ACTOR LavaSmoke
-{
- +NOBLOCKMAP
- +NOCLIP
- +NOGRAVITY
- +DONTSPLASH
- RenderStyle Translucent
- Alpha Default
- States
- {
- Spawn:
- LVAS GHIJK 5 Bright
- Stop
- }
-}
-
-// Sludge -------------------------------------------------------------------
-
-ACTOR SludgeChunk
-{
- Radius 2
- Height 4
- +NOBLOCKMAP
- +MISSILE
- +DROPOFF
- +NOTELEPORT
- +LOWGRAVITY
- +CANNOTPUSH
- +DONTSPLASH
- States
- {
- Spawn:
- SLDG ABCD 8
- Stop
- Death:
- SLDG D 6
- Stop
- }
-}
-
-ACTOR SludgeSplash
-{
- +NOBLOCKMAP
- +NOCLIP
- +NOGRAVITY
- +DONTSPLASH
- States
- {
- Spawn:
- SLDG EFGH 6
- Stop
- }
-}
-
-/*
- * These next four classes are not used by me anywhere.
- * They are for people who want to use them in a TERRAIN lump.
- */
-
-// Blood (water with a different sprite) ------------------------------------
-
-ACTOR BloodSplash
-{
- Radius 2
- Height 4
- +NOBLOCKMAP
- +MISSILE
- +DROPOFF
- +NOTELEPORT
- +LOWGRAVITY
- +CANNOTPUSH
- +DONTSPLASH
- +DONTBLAST
- States
- {
- Spawn:
- BSPH ABC 8
- BSPH D 16
- Stop
- Death:
- BSPH D 10
- Stop
- }
-}
-
-
-ACTOR BloodSplashBase
-{
- +NOBLOCKMAP
- +NOCLIP
- +NOGRAVITY
- +DONTSPLASH
- +DONTBLAST
- States
- {
- Spawn:
- BSPH EFGHIJK 5
- Stop
- }
-}
-
-// Slime (sludge with a different sprite) -----------------------------------
-
-ACTOR SlimeChunk
-{
- Radius 2
- Height 4
- +NOBLOCKMAP
- +MISSILE
- +DROPOFF
- +NOTELEPORT
- +LOWGRAVITY
- +CANNOTPUSH
- +DONTSPLASH
- States
- {
- Spawn:
- SLIM ABCD 8
- Stop
- Death:
- SLIM D 6
- Stop
- }
-}
-
-ACTOR SlimeSplash
-{
- +NOBLOCKMAP
- +NOCLIP
- +NOGRAVITY
- +DONTSPLASH
- States
- {
- Spawn:
- SLIM EFGH 6
- Stop
- }
-}
-
-// Smoke trail for rocket -----------------------------------
-
-ACTOR RocketSmokeTrail
-{
- RenderStyle Translucent
- Alpha 0.4
- VSpeed 1
- +NOBLOCKMAP
- +NOCLIP
- +NOGRAVITY
- +DONTSPLASH
- +NOTELEPORT
- States
- {
- Spawn:
- RSMK ABCDE 5
- Stop
- }
-}
-
-ACTOR GrenadeSmokeTrail
-{
- RenderStyle Translucent
- Alpha 0.4
- +NOBLOCKMAP
- +NOCLIP
- +DONTSPLASH
- +NOTELEPORT
- Gravity 0.1
- VSpeed 0.5
- Scale 0.6
- States
- {
- Spawn:
- RSMK ABCDE 4
- Stop
- }
-}
diff --git a/wadsrc/decorate/strife/beggars.txt b/wadsrc/decorate/strife/beggars.txt
deleted file mode 100644
index 8820f32d..00000000
--- a/wadsrc/decorate/strife/beggars.txt
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Base class for the beggars ---------------------------------------------
-
-ACTOR Beggar : StrifeHumanoid
-{
- Health 20
- PainChance 250
- Speed 3
- Radius 20
- Height 56
- Monster
- +JUSTHIT
- -COUNTKILL
- +NOSPLASHALERT
- MinMissileChance 150
- Tag "Beggar"
- MaxStepHeight 16
- MaxDropoffHeight 32
- HitObituary "$OB_BEGGAR"
-
- AttackSound "beggar/attack"
- PainSound "beggar/pain"
- DeathSound "beggar/death"
- States
- {
- Spawn:
- BEGR A 10 A_Look
- Loop
- See:
- BEGR AABBCC 4 A_Wander
- Loop
- Melee:
- BEGR D 8
- BEGR D 8 A_CustomMeleeAttack(2*random[PeasantAttack](1,5)+2)
- BEGR E 1 A_Chase
- BEGR D 8 A_SentinelRefire
- Loop
- Pain:
- BEGR A 3 A_Pain
- BEGR A 3 A_Chase
- Goto Melee
- Death:
- BEGR F 4
- BEGR G 4 A_Scream
- BEGR H 4
- BEGR I 4 A_NoBlocking
- BEGR JKLM 4
- BEGR N -1
- Stop
- XDeath:
- BEGR F 5 A_TossGib
- GIBS M 5 A_TossGib
- GIBS N 5 A_XScream
- GIBS O 5 A_NoBlocking
- GIBS PQRST 4 A_TossGib
- GIBS U 5
- GIBS V 1400
- Stop
- }
-}
-
-
-// Beggars -----------------------------------------------------------------
-
-ACTOR Beggar1 : Beggar 141
-{
- Game Strife
- ConversationID 38, 37, 38
-}
-
-
-ACTOR Beggar2 : Beggar 155
-{
- Game Strife
- ConversationID 39, 38, 39
-}
-
-
-ACTOR Beggar3 : Beggar 156
-{
- Game Strife
- ConversationID 40, 39, 40
-}
-
-
-ACTOR Beggar4 : Beggar 157
-{
- Game Strife
- ConversationID 41, 40, 41
-}
-
-
-ACTOR Beggar5 : Beggar 158
-{
- Game Strife
- ConversationID 42, 41, 42
-}
diff --git a/wadsrc/decorate/strife/merchants.txt b/wadsrc/decorate/strife/merchants.txt
deleted file mode 100644
index e49db9ee..00000000
--- a/wadsrc/decorate/strife/merchants.txt
+++ /dev/null
@@ -1,99 +0,0 @@
-// Base class for the merchants ---------------------------------------------
-
-ACTOR Merchant
-{
- Health 10000000
- PainChance 256 // a merchant should always enter the pain state when getting hurt
- Radius 20
- Height 56
- Mass 5000
- +SOLID
- +SHOOTABLE
- +NOTDMATCH
- +NOSPLASHALERT
- +NODAMAGE
- States
- {
- Spawn:
- MRST A 10 A_Look2
- Loop
- MRLK A 30 A_ActiveSound
- Loop
- MRLK B 30
- Loop
- MRBD ABCDEDCB 4
- MRBD A 5
- MRBD F 6
- Loop
- See:
- Pain:
- MRPN A 3 A_AlertMonsters
- MRPN B 3 A_Pain
- MRPN C 3
- MRPN D 9 Door_CloseWaitOpen(999, 64, 960)
- MRPN C 4
- MRPN B 3
- MRPN A 3 A_ClearSoundTarget
- Goto Spawn
- Yes:
- MRYS A 20
- // Fall through
- Greetings:
- MRGT ABCDEFGHI 5
- Goto Spawn
- No:
- MRNO AB 6
- MRNO C 10
- MRNO BA 6
- Goto Greetings
- }
-}
-
-
-// Weapon Smith -------------------------------------------------------------
-
-ACTOR WeaponSmith : Merchant 116
-{
- Game Strife
- ConversationID 2
- PainSound "smith/pain"
- Tag "Weapon_Smith"
-}
-
-
-// Bar Keep -----------------------------------------------------------------
-
-ACTOR BarKeep : Merchant 72
-{
- Game Strife
- Translation 4
- ConversationID 3
- PainSound "barkeep/pain"
- ActiveSound "barkeep/active"
- Tag "Bar_Keep"
-}
-
-
-// Armorer ------------------------------------------------------------------
-
-ACTOR Armorer : Merchant 73
-{
- Game Strife
- Translation 5
- ConversationID 4
- PainSound "armorer/pain"
- Tag "Armorer"
-}
-
-
-// Medic --------------------------------------------------------------------
-
-ACTOR Medic : Merchant 74
-{
- Game Strife
- Translation 6
- ConversationID 5
- PainSound "medic/pain"
- Tag "Medic"
-}
-
diff --git a/wadsrc/decorate/strife/peasants.txt b/wadsrc/decorate/strife/peasants.txt
deleted file mode 100644
index c0e98855..00000000
--- a/wadsrc/decorate/strife/peasants.txt
+++ /dev/null
@@ -1,224 +0,0 @@
-
-// Peasant Base Class -------------------------------------------------------
-
-ACTOR Peasant : StrifeHumanoid
-{
- Health 31
- PainChance 200
- Speed 8
- Radius 20
- Height 56
- Monster
- +FRIENDLY
- -COUNTKILL
- +NOSPLASHALERT
- MinMissileChance 150
- MaxStepHeight 16
- MaxDropoffHeight 32
- SeeSound "peasant/sight"
- AttackSound "peasant/attack"
- PainSound "peasant/pain"
- DeathSound "peasant/death"
- HitObituary "$OB_PEASANT"
- States
- {
- Spawn:
- PEAS A 10 A_Look2
- Loop
- See:
- PEAS AABBCCDD 5 A_Wander
- Loop
- Melee:
- PEAS E 10 A_FaceTarget
- PEAS F 8 A_CustomMeleeAttack(2*random[PeasantAttack](1,5)+2)
- PEAS E 8
- Goto See
- Pain:
- PEAS O 3
- PEAS O 3 A_Pain
- Goto Melee
- Wound:
- PEAS G 5
- PEAS H 10 A_GetHurt
- PEAS I 6
- Goto Wound+1
- Death:
- PEAS G 5
- PEAS H 5 A_Scream
- PEAS I 6
- PEAS J 5 A_NoBlocking
- PEAS K 5
- PEAS L 6
- PEAS M 8
- PEAS N 1400
- GIBS U 5
- GIBS V 1400
- Stop
- XDeath:
- GIBS M 5 A_TossGib
- GIBS N 5 A_XScream
- GIBS O 5 A_NoBlocking
- GIBS PQRS 4 A_TossGib
- Goto Death+8
- }
-}
-
-// Peasant Variant 1 --------------------------------------------------------
-
-ACTOR Peasant1 : Peasant 3004
-{
- Game Strife
- ConversationID 6
- Speed 4
-}
-
-ACTOR Peasant2 : Peasant 130
-{
- Game Strife
- ConversationID 7
- Speed 5
-}
-
-ACTOR Peasant3 : Peasant 131
-{
- Game Strife
- ConversationID 8
- Speed 5
-}
-
-ACTOR Peasant4 : Peasant 65
-{
- Game Strife
- Translation 0
- ConversationID 9
- Speed 7
-}
-
-ACTOR Peasant5 : Peasant 132
-{
- Game Strife
- Translation 0
- ConversationID 10
- Speed 7
-}
-
-ACTOR Peasant6 : Peasant 133
-{
- Game Strife
- Translation 0
- ConversationID 11
- Speed 7
-}
-
-ACTOR Peasant7 : Peasant 66
-{
- Game Strife
- Translation 2
- ConversationID 12
-}
-
-ACTOR Peasant8 : Peasant 134
-{
- Game Strife
- Translation 2
- ConversationID 13
-}
-
-ACTOR Peasant9 : Peasant 135
-{
- Game Strife
- Translation 2
- ConversationID 14
-}
-
-ACTOR Peasant10 : Peasant 67
-{
- Game Strife
- Translation 1
- ConversationID 15
-}
-
-ACTOR Peasant11 : Peasant 136
-{
- Game Strife
- Translation 1
- ConversationID 16
-}
-
-ACTOR Peasant12 : Peasant 137
-{
- Game Strife
- Translation 1
- ConversationID 17
-}
-
-ACTOR Peasant13 : Peasant 172
-{
- Game Strife
- Translation 3
- ConversationID 18
-}
-
-ACTOR Peasant14 : Peasant 173
-{
- Game Strife
- Translation 3
- ConversationID 19
-}
-
-ACTOR Peasant15 : Peasant 174
-{
- Game Strife
- Translation 3
- ConversationID 20
-}
-
-ACTOR Peasant16 : Peasant 175
-{
- Game Strife
- Translation 5
- ConversationID 21
-}
-
-ACTOR Peasant17 : Peasant 176
-{
- Game Strife
- Translation 5
- ConversationID 22
-}
-
-ACTOR Peasant18 : Peasant 177
-{
- Game Strife
- Translation 5
- ConversationID 23
-}
-
-ACTOR Peasant19 : Peasant 178
-{
- Game Strife
- Translation 4
- ConversationID 24
-}
-
-ACTOR Peasant20 : Peasant 179
-{
- Game Strife
- Translation 4
- ConversationID 25
-}
-
-ACTOR Peasant21 : Peasant 180
-{
- Game Strife
- Translation 4
- ConversationID 26
-}
-
-ACTOR Peasant22 : Peasant 181
-{
- Game Strife
- Translation 6
- ConversationID 27
-}
-
diff --git a/wadsrc/decorate/strife/questitems.txt b/wadsrc/decorate/strife/questitems.txt
deleted file mode 100644
index b06cdfaa..00000000
--- a/wadsrc/decorate/strife/questitems.txt
+++ /dev/null
@@ -1,206 +0,0 @@
-/*
- * Quest Item Usage:
- *
- * 1 You got Beldin's ring
- * 2 You got the Chalice
- * 3 You got 300 gold, so it's time to visit Irale and the governor
- * 4 Accepted the governor's power coupling mission
- * 5 Accepted the governor's mission to kill Derwin
- * 6 You broke the Front's power coupling
- * 7 You took out the scanning team
- * 8 You got the broken power coupling
- * 9 You got the ear
- * 10 You got the prison pass
- * 11 You got the prison key
- * 12 You got the severed hand
- * 13 You've freed the prisoners!
- * 14 You've Blown Up the Crystal
- * 15 You got the guard uniform
- * 16 You've Blown Up the Gates (/Piston)
- * 17 You watched the Sigil slideshow on map10
- * 18 You got the Oracle pass
- * 19 You met Quincy and talked to him about the Bishop
- * 20
- * 21 You Killed the Bishop!
- * 22 The Oracle has told you to kill Macil
- * 23 You've Killed The Oracle!
- * 24 You Killed Macil!
- * 25 You've destroyed the Converter!
- * 26 You've Killed The Loremaster!
- * 27 You've Blown Up the Computer
- * 28 You got the catacomb key
- * 29 You destroyed the mind control device in the mines
- * 30
- * 31
- */
-
-ACTOR QuestItem : Inventory
-{
- States
- {
- Spawn:
- TOKN A -1
- Stop
- }
-}
-
-// Quest Items -------------------------------------------------------------
-
-ACTOR QuestItem1 : QuestItem
-{
- ConversationID 312, 293, 310
-}
-
-ACTOR QuestItem2 : QuestItem
-{
- ConversationID 313, 294, 311
-}
-
-ACTOR QuestItem3 : QuestItem
-{
- ConversationID 314, 295, 312
-}
-
-ACTOR QuestItem4 : QuestItem
-{
- ConversationID 315, 296, 313
- Tag "quest4"
-}
-
-ACTOR QuestItem5 : QuestItem
-{
- ConversationID 316, 297, 314
- Tag "quest5"
-}
-
-ACTOR QuestItem6 : QuestItem
-{
- ConversationID 317, 298, 315
- Tag "quest4"
-}
-
-ACTOR QuestItem7 : QuestItem
-{
- ConversationID 318, -1, -1
-}
-
-ACTOR QuestItem8 : QuestItem
-{
- ConversationID 319, -1, -1
-}
-
-ACTOR QuestItem9 : QuestItem
-{
- ConversationID 320, -1, -1
-}
-
-ACTOR QuestItem10 : QuestItem
-{
- ConversationID 321, -1, -1
-}
-
-ACTOR QuestItem11 : QuestItem
-{
- ConversationID 322, -1, -1
-}
-
-ACTOR QuestItem12 : QuestItem
-{
- ConversationID 323, -1, -1
-}
-
-ACTOR QuestItem13 : QuestItem
-{
- ConversationID 324, -1, -1
-}
-
-ACTOR QuestItem14 : QuestItem
-{
- ConversationID 325, -1, -1
-}
-
-ACTOR QuestItem15 : QuestItem
-{
- ConversationID 326, -1, -1
-}
-
-ACTOR QuestItem16 : QuestItem
-{
- ConversationID 327, -1, -1
-}
-
-ACTOR QuestItem17 : QuestItem
-{
- ConversationID 328, -1, -1
-}
-
-ACTOR QuestItem18 : QuestItem
-{
- ConversationID 329, -1, -1
-}
-
-ACTOR QuestItem19 : QuestItem
-{
- ConversationID 330, -1, -1
-}
-
-ACTOR QuestItem20 : QuestItem
-{
- ConversationID 331, -1, -1
-}
-
-ACTOR QuestItem21 : QuestItem
-{
- ConversationID 332, -1, -1
-}
-
-ACTOR QuestItem22 : QuestItem
-{
- ConversationID 333, -1, -1
-}
-
-ACTOR QuestItem23 : QuestItem
-{
- ConversationID 334, -1, -1
-}
-
-ACTOR QuestItem24 : QuestItem
-{
- ConversationID 335, -1, -1
-}
-
-ACTOR QuestItem25 : QuestItem
-{
- ConversationID 336, -1, -1
-}
-
-ACTOR QuestItem26 : QuestItem
-{
- ConversationID 337, -1, -1
-}
-
-ACTOR QuestItem27 : QuestItem
-{
- ConversationID 338, -1, -1
-}
-
-ACTOR QuestItem28 : QuestItem
-{
- ConversationID 339, -1, -1
-}
-
-ACTOR QuestItem29 : QuestItem
-{
- ConversationID 340, -1, -1
-}
-
-ACTOR QuestItem30 : QuestItem
-{
- ConversationID 341, -1, -1
-}
-
-ACTOR QuestItem31 : QuestItem
-{
- ConversationID 342, -1, -1
-}
-
diff --git a/wadsrc/decorate/strife/ratbuddy.txt b/wadsrc/decorate/strife/ratbuddy.txt
deleted file mode 100644
index 660e28d6..00000000
--- a/wadsrc/decorate/strife/ratbuddy.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-
-ACTOR RatBuddy 85
-{
- Game Strife
- ConversationID 202, 196, 200
- Health 5
- Speed 13
- Radius 10
- Height 16
- +NOBLOOD +FLOORCLIP +CANPASS
- +ISMONSTER +INCOMBAT
- MinMissileChance 150
- MaxStepHeight 16
- MaxDropoffHeight 32
- Tag "rat_buddy"
- SeeSound "rat/sight"
- DeathSound "rat/death"
- ActiveSound "rat/active"
- States
- {
- Spawn:
- RATT A 10 A_Look
- Loop
- See:
- RATT AABB 4 A_Chase
- Loop
- Melee:
- RATT A 8 A_Wander
- RATT B 4 A_Wander
- Goto See
- Death:
- MEAT Q 700
- Stop
- }
-}
-
diff --git a/wadsrc/decorate/strife/strifeammo.txt b/wadsrc/decorate/strife/strifeammo.txt
deleted file mode 100644
index f34af7fc..00000000
--- a/wadsrc/decorate/strife/strifeammo.txt
+++ /dev/null
@@ -1,231 +0,0 @@
-// HE-Grenade Rounds --------------------------------------------------------
-
-ACTOR HEGrenadeRounds : Ammo 152
-{
- Game Strife
- +FLOORCLIP
- ConversationID 177, 170, 174
- Inventory.Amount 6
- Inventory.MaxAmount 30
- Ammo.BackpackAmount 6
- Ammo.BackpackMaxAmount 60
- Inventory.Icon "I_GRN1"
- Tag "HE-Grenade_Rounds"
- Inventory.PickupMessage "$TXT_HEGRENADES"
- States
- {
- Spawn:
- GRN1 A -1
- Stop
- }
-}
-
-// Phosphorus-Grenade Rounds ------------------------------------------------
-
-ACTOR PhosphorusGrenadeRounds : Ammo 153
-{
- Game Strife
- +FLOORCLIP
- ConversationID 178, 171, 175
- Inventory.Amount 4
- Inventory.MaxAmount 16
- Ammo.BackpackAmount 4
- Ammo.BackpackMaxAmount 32
- Inventory.Icon "I_GRN2"
- Tag "Phoshorus-Grenade_Rounds" // "Fire-Grenade_Rounds" in the Teaser
- Inventory.PickupMessage "$TXT_PHGRENADES"
- States
- {
- Spawn:
- GRN2 A -1
- Stop
- }
-}
-
-// Clip of Bullets ----------------------------------------------------------
-
-ACTOR ClipOfBullets : Ammo 2007
-{
- Game Strife
- SpawnID 11
- ConversationID 179, 173, 177
- +FLOORCLIP
- Inventory.Amount 10
- Inventory.MaxAmount 250
- Ammo.BackpackAmount 10
- Ammo.BackpackMaxAmount 500
- Inventory.Icon "I_BLIT"
- Tag "clip_of_bullets" // "bullets" in the Teaser
- Inventory.PickupMessage "$TXT_CLIPOFBULLETS"
- States
- {
- Spawn:
- BLIT A -1
- Stop
- }
-}
-
-// Box of Bullets -----------------------------------------------------------
-
-ACTOR BoxOfBullets : ClipOfBullets 2048
-{
- Game Strife
- SpawnID 139
- ConversationID 180, 174, 178
- Inventory.Amount 50
- Tag "ammo"
- Inventory.PickupMessage "$TXT_BOXOFBULLETS"
- States
- {
- Spawn:
- BBOX A -1
- Stop
- }
-}
-
-// Mini Missiles ------------------------------------------------------------
-
-ACTOR MiniMissiles : Ammo 2010
-{
- Game Strife
- SpawnID 140
- ConversationID 181, 175, 179
- +FLOORCLIP
- Inventory.Amount 4
- Inventory.MaxAmount 100
- Ammo.BackpackAmount 4
- Ammo.BackpackMaxAmount 200
- Inventory.Icon "I_ROKT"
- Tag "mini_missiles" //"rocket" in the Teaser
- Inventory.PickupMessage "$TXT_MINIMISSILES"
- States
- {
- Spawn:
- MSSL A -1
- Stop
- }
-}
-
-// Crate of Missiles --------------------------------------------------------
-
-ACTOR CrateOfMissiles : MiniMissiles 2046
-{
- Game Strife
- SpawnID 141
- ConversationID 182, 176, 180
- Inventory.Amount 20
- Tag "crate_of_missiles" //"box_of_rockets" in the Teaser
- Inventory.PickupMessage "$TXT_CRATEOFMISSILES"
- States
- {
- Spawn:
- ROKT A -1
- Stop
- }
-}
-
-// Energy Pod ---------------------------------------------------------------
-
-ACTOR EnergyPod : Ammo 2047
-{
- Game Strife
- SpawnID 75
- ConversationID 183, 177, 181
- +FLOORCLIP
- Inventory.Amount 20
- Inventory.MaxAmount 400
- Ammo.BackpackAmount 20
- Ammo.BackpackMaxAmount 800
- Ammo.DropAmount 20
- Inventory.Icon "I_BRY1"
- Tag "energy_pod"
- Inventory.PickupMessage "$TXT_ENERGYPOD"
- States
- {
- Spawn:
- BRY1 AB 6
- Loop
- }
-}
-
-// Energy pack ---------------------------------------------------------------
-
-ACTOR EnergyPack : EnergyPod 17
-{
- Game Strife
- SpawnID 142
- ConversationID 184, 178, 182
- Inventory.Amount 100
- Tag "energy_pack"
- Inventory.PickupMessage "$TXT_ENERGYPACK"
- States
- {
- Spawn:
- CPAC AB 6
- Loop
- }
-}
-
-// Poison Bolt Quiver -------------------------------------------------------
-
-ACTOR PoisonBolts : Ammo 115
-{
- Game Strife
- ConversationID 185, 179, 183
- +FLOORCLIP
- Inventory.Amount 10
- Inventory.MaxAmount 25
- Ammo.BackpackAmount 2
- Ammo.BackpackMaxAmount 50
- Inventory.Icon "I_PQRL"
- Tag "poison_bolts" // "poison_arrows" in the Teaser
- Inventory.PickupMessage "$TXT_POISONBOLTS"
- States
- {
- Spawn:
- PQRL A -1
- Stop
- }
-}
-
-// Electric Bolt Quiver -------------------------------------------------------
-
-ACTOR ElectricBolts : Ammo 114
-{
- Game Strife
- ConversationID 186, 180, 184
- +FLOORCLIP
- Inventory.Amount 20
- Inventory.MaxAmount 50
- Ammo.BackpackAmount 4
- Ammo.BackpackMaxAmount 100
- Inventory.Icon "I_XQRL"
- Tag "electric_bolts" // "electric_arrows" in the Teaser
- Inventory.PickupMessage "$TXT_ELECTRICBOLTS"
- States
- {
- Spawn:
- XQRL A -1
- Stop
- }
-}
-
-// Ammo Satchel -------------------------------------------------------------
-
-ACTOR AmmoSatchel : BackpackItem 183
-{
- Game Strife
- SpawnID 144
- ConversationID 187, 181, 184
- +FLOORCLIP
- Inventory.Icon "I_BKPK"
- Tag "Ammo_satchel" // "Back_pack" in the Teaser
- Inventory.PickupMessage "$TXT_AMMOSATCHEL"
- States
- {
- Spawn:
- BKPK A -1
- Stop
- }
-}
-
diff --git a/wadsrc/decorate/strife/strifearmor.txt b/wadsrc/decorate/strife/strifearmor.txt
deleted file mode 100644
index 3da5e738..00000000
--- a/wadsrc/decorate/strife/strifearmor.txt
+++ /dev/null
@@ -1,49 +0,0 @@
-
-ACTOR MetalArmor : BasicArmorPickup 2019
-{
- Game Strife
- SpawnID 69
- ConversationID 129, 125, 128
- Radius 20
- Height 16
- +FLOORCLIP
- +INVENTORY.AUTOACTIVATE
- +INVENTORY.INVBAR
- Inventory.MaxAmount 3
- Inventory.Icon "I_ARM1"
- Inventory.PickupMessage "$TXT_METALARMOR"
- Armor.SaveAmount 200
- Armor.SavePercent 50
- Tag "Metal_Armor"
- States
- {
- Spawn:
- ARM3 A -1
- Stop
- }
-}
-
-ACTOR LeatherArmor : BasicArmorPickup 2018
-{
- Game Strife
- SpawnID 68
- ConversationID 130, 126, 129
- Radius 20
- Height 16
- +FLOORCLIP
- +INVENTORY.AUTOACTIVATE
- +INVENTORY.INVBAR
- Inventory.MaxAmount 5
- Inventory.Icon "I_ARM2"
- Inventory.PickupMessage "$TXT_LEATHERARMOR"
- Armor.SaveAmount 100
- Armor.SavePercent 33.33333
- Tag "Leather_Armor"
- States
- {
- Spawn:
- ARM4 A -1
- Stop
- }
-}
-
diff --git a/wadsrc/decorate/strife/strifebishop.txt b/wadsrc/decorate/strife/strifebishop.txt
deleted file mode 100644
index 5f7eb578..00000000
--- a/wadsrc/decorate/strife/strifebishop.txt
+++ /dev/null
@@ -1,100 +0,0 @@
-
-// Bishop -------------------------------------------------------------------
-
-ACTOR StrifeBishop 187
-{
- Game Strife
- ConversationID 64,-1,-1
- Health 500
- Painchance 128
- Speed 8
- Radius 40
- Height 56
- Mass 500
- Monster
- +NOBLOOD
- +NOTDMATCH
- +FLOORCLIP
- +INCOMBAT
- +FIRERESIST
- +NOICEDEATH
- MinMissileChance 150
- MaxDropoffHeight 32
- SeeSound "bishop/sight"
- PainSound "bishop/pain"
- DeathSound "bishop/death"
- ActiveSound "bishop/active"
- DropItem "CrateOfMissiles", 256, 20
- Obituary "$OB_STFBISHOP"
- States
- {
- Spawn:
- MLDR A 10 A_Look
- Loop
- See:
- MLDR AABBCCDD 3 A_Chase
- Loop
- Missile:
- MLDR E 3 A_FaceTarget
- MLDR F 2 Bright A_CustomMissile("BishopMissile", 64, 0, 0, CMF_AIMOFFSET)
- Goto See
- Pain:
- MLDR D 1 A_Pain
- Goto See
- Death:
- MLDR G 3 Bright
- MLDR H 5 Bright A_Scream
- MLDR I 4 Bright A_TossGib
- MLDR J 0 Bright A_AlertMonsters
- MLDR J 4 Bright A_Explode(64,64)
- MLDR KL 3 Bright
- MLDR M 4 Bright A_NoBlocking
- MLDR N 4 Bright
- MLDR O 4 Bright A_TossGib
- MLDR P 4 Bright
- MLDR Q 4 Bright A_TossGib
- MLDR R 4 Bright
- MLDR S 4 Bright A_TossGib
- MLDR T 4 Bright
- MLDR U 4 Bright A_TossGib
- MLDR V 4 Bright A_SpawnItemEx("AlienSpectre2", 0, 0, 0, 0, 0, random[spectrespawn](0,255)*0.0078125, 0, SXF_NOCHECKPOSITION)
- Stop
- }
-}
-
-
-// The Bishop's missile -----------------------------------------------------
-
-ACTOR BishopMissile
-{
- Speed 20
- Radius 10
- Height 14
- Damage 10
- Projectile
- +SEEKERMISSILE
- +STRIFEDAMAGE
- MaxStepHeight 4
- SeeSound "bishop/misl"
- DeathSound "bishop/mislx"
- States
- {
- Spawn:
- MISS A 4 Bright
- MISS B 3 Bright A_Tracer2
- MISS A 0 Bright A_PlaySoundEx("misc/missileinflight", "Voice")
- MISS A 0 Bright A_SpawnItemEx("MiniMissilePuff", 0,0, random2[BishopMissile]()*0.015625)
- MISS A 4 Bright A_SpawnItemEx("RocketTrail", -momx,-momy,0, 0,0,1)
- Goto Spawn+1
- Death:
- SMIS A 0 Bright A_SetTranslucent(1,1)
- SMIS A 0 Bright A_StopSoundEx("Voice")
- SMIS A 0 Bright A_AlertMonsters
- SMIS A 5 Bright A_Explode(64,64)
- SMIS B 5 Bright
- SMIS C 4 Bright
- SMIS DEFG 2 Bright
- Stop
- }
-}
-
diff --git a/wadsrc/decorate/strife/strifeitems.txt b/wadsrc/decorate/strife/strifeitems.txt
deleted file mode 100644
index 50df056d..00000000
--- a/wadsrc/decorate/strife/strifeitems.txt
+++ /dev/null
@@ -1,373 +0,0 @@
-// Med patch -----------------------------------------------------------------
-
-ACTOR MedPatch : HealthPickup 2011
-{
- Game Strife
- ConversationID 125, 121, 124
- Health 10
- +FLOORCLIP
- +INVENTORY.INVBAR
- Inventory.MaxAmount 20
- Tag "Med_patch"
- Inventory.Icon "I_STMP"
- Inventory.PickupMessage "$TXT_MEDPATCH"
- States
- {
- Spawn:
- STMP A -1
- Stop
- }
-}
-
-
-// Medical Kit ---------------------------------------------------------------
-
-ACTOR MedicalKit : HealthPickup 2012
-{
- Game Strife
- ConversationID 126, 122, 125
- Health 25
- +FLOORCLIP
- +INVENTORY.INVBAR
- Inventory.MaxAmount 15
- Tag "Medical_kit"
- Inventory.Icon "I_MDKT"
- Inventory.PickupMessage "$TXT_MEDICALKIT"
- States
- {
- Spawn:
- MDKT A -1
- Stop
- }
-}
-
-
-// Surgery Kit --------------------------------------------------------------
-
-ACTOR SurgeryKit : HealthPickup 83
-{
- Game Strife
- ConversationID 127, 123, 126
- +FLOORCLIP
- +INVENTORY.INVBAR
- Health -100
- Inventory.MaxAmount 5
- Tag "Surgery_Kit" // "full_health" in the Teaser
- Inventory.Icon "I_FULL"
- Inventory.PickupMessage "$TXT_SURGERYKIT"
- States
- {
- Spawn:
- FULL AB 35
- Loop
- }
-}
-
-
-// StrifeMap ----------------------------------------------------------------
-
-ACTOR StrifeMap : MapRevealer 2026
-{
- Game Strife
- SpawnID 137
- ConversationID 164, 160, 163
- +FLOORCLIP
- Inventory.PickupSound "misc/p_pkup"
- Inventory.PickupMessage "$TXT_STRIFEMAP"
- States
- {
- Spawn:
- SMAP AB 6 Bright
- Loop
- }
-}
-
-
-// Beldin's Ring ------------------------------------------------------------
-
-ACTOR BeldinsRing : Inventory
-{
- Game Strife
- +NOTDMATCH
- +FLOORCLIP
- +INVENTORY.INVBAR
- ConversationID 173, 165, 169
- Tag "ring"
- Inventory.Icon "I_RING"
- Inventory.GiveQuest 1
- Inventory.PickupMessage "$TXT_BELDINSRING"
- States
- {
- Spawn:
- RING A -1
- Stop
- }
-}
-
-
-// Offering Chalice ---------------------------------------------------------
-
-ACTOR OfferingChalice : Inventory 205
-{
- Game Strife
- +DROPPED
- +FLOORCLIP
- +INVENTORY.INVBAR
- ConversationID 174, 166, 170
- Radius 10
- Height 16
- Tag "Offering_Chalice"
- Inventory.Icon "I_RELC"
- Inventory.PickupMessage "$TXT_OFFERINGCHALICE"
- Inventory.GiveQuest 2
- States
- {
- Spawn:
- RELC A -1
- Stop
- }
-}
-
-
-// Ear ----------------------------------------------------------------------
-
-ACTOR Ear : Inventory
-{
- Game Strife
- +FLOORCLIP
- +INVENTORY.INVBAR
- ConversationID 175, 167, 171
- Tag "ear"
- Inventory.Icon "I_EARS"
- Inventory.PickupMessage "$TXT_EAR"
- Inventory.GiveQuest 9
- States
- {
- Spawn:
- EARS A -1
- Stop
- }
-}
-
-
-// Broken Power Coupling ----------------------------------------------------
-
-ACTOR BrokenPowerCoupling : Inventory 226
-{
- Game Strife
- ConversationID 289, -1, -1
- Health 40
- +DROPPED
- +FLOORCLIP
- +INVENTORY.INVBAR
- Radius 16
- Height 16
- Tag "BROKEN_POWER_COUPLING"
- Inventory.MaxAmount 1
- Inventory.Icon "I_COUP"
- Inventory.PickupMessage "$TXT_BROKENCOUPLING"
- Inventory.GiveQuest 8
- States
- {
- Spawn:
- COUP C -1
- Stop
- }
-}
-
-
-// Shadow Armor -------------------------------------------------------------
-
-ACTOR ShadowArmor : PowerupGiver 2024
-{
- Game Strife
- SpawnID 135
- ConversationID 160, 156, 159
- +FLOORCLIP
- +VISIBILITYPULSE
- +INVENTORY.INVBAR
- -INVENTORY.FANCYPICKUPSOUND
- RenderStyle Translucent
- Tag "Shadow_armor"
- Inventory.MaxAmount 2
- Powerup.Type "Shadow"
- Inventory.Icon "I_SHD1"
- Inventory.PickupSound "misc/i_pkup"
- Inventory.PickupMessage "$TXT_SHADOWARMOR"
- States
- {
- Spawn:
- SHD1 A -1 Bright
- Stop
- }
-}
-
-
-// Environmental suit -------------------------------------------------------
-
-ACTOR EnvironmentalSuit : PowerupGiver 2025
-{
- Game Strife
- SpawnID 136
- ConversationID 161, 157, 160
- +FLOORCLIP
- +INVENTORY.INVBAR
- -INVENTORY.FANCYPICKUPSOUND
- Inventory.MaxAmount 5
- Powerup.Type "Mask"
- Tag "Environmental_Suit"
- Inventory.Icon "I_MASK"
- Inventory.PickupSound "misc/i_pkup"
- Inventory.PickupMessage "$TXT_ENVSUIT"
- States
- {
- Spawn:
- MASK A -1
- Stop
- }
-}
-
-
-// Guard Uniform ------------------------------------------------------------
-
-ACTOR GuardUniform : Inventory 90
-{
- Game Strife
- ConversationID 162, 158, 161
- +FLOORCLIP
- +INVENTORY.INVBAR
- Tag "Guard_Uniform"
- Inventory.Icon "I_UNIF"
- Inventory.PickupMessage "$TXT_GUARDUNIFORM"
- Inventory.GiveQuest 15
- States
- {
- Spawn:
- UNIF A -1
- Stop
- }
-}
-
-
-// Officer's Uniform --------------------------------------------------------
-
-ACTOR OfficersUniform : Inventory 52
-{
- Game Strife
- ConversationID 163, 159, 162
- +FLOORCLIP
- +INVENTORY.INVBAR
- Tag "Officer's_Uniform"
- Inventory.Icon "I_OFIC"
- Inventory.PickupMessage "$TXT_OFFICERSUNIFORM"
- States
- {
- Spawn:
- OFIC A -1
- Stop
- }
-}
-
-
-// Flame Thrower Parts ------------------------------------------------------
-
-ACTOR FlameThrowerParts : Inventory
-{
- Game Strife
- ConversationID 191, 185, 189
- +FLOORCLIP
- +INVENTORY.INVBAR
- Inventory.Icon "I_BFLM"
- Tag "flame_thrower_parts"
- Inventory.PickupMessage "$TXT_FTHROWERPARTS"
- States
- {
- Spawn:
- BFLM A -1
- Stop
- }
-}
-
-// InterrogatorReport -------------------------------------------------------
-// SCRIPT32 in strife0.wad has an Acolyte that drops this, but I couldn't
-// find that Acolyte in the map. It seems to be totally unused in the
-// final game.
-
-ACTOR InterrogatorReport : Inventory
-{
- Game Strife
- ConversationID 308, 289, 306
- +FLOORCLIP
- Tag "report"
- Inventory.PickupMessage "$TXT_REPORT"
- States
- {
- Spawn:
- TOKN A -1
- Stop
- }
-}
-
-
-// Info ---------------------------------------------------------------------
-
-ACTOR Info : Inventory
-{
- Game Strife
- ConversationID 300, 282, 299
- +FLOORCLIP
- +INVENTORY.INVBAR
- Tag "info"
- Inventory.Icon "I_TOKN"
- Inventory.PickupMessage "$TXT_INFO"
- States
- {
- Spawn:
- TOKN A -1
- Stop
- }
-}
-
-
-// Targeter -----------------------------------------------------------------
-
-ACTOR Targeter : PowerupGiver 207
-{
- Game Strife
- ConversationID 167, 169, 173
- +FLOORCLIP
- +INVENTORY.INVBAR
- -INVENTORY.FANCYPICKUPSOUND
- Tag "Targeter"
- Powerup.Type "Targeter"
- Inventory.MaxAmount 5
- Inventory.Icon "I_TARG"
- Inventory.PickupSound "misc/i_pkup"
- Inventory.PickupMessage "$TXT_TARGETER"
- States
- {
- Spawn:
- TARG A -1
- Stop
- }
-}
-
-// Communicator -----------------------------------------------------------------
-
-ACTOR Communicator : Inventory 206
-{
- Game Strife
- ConversationID 176, 168, 172
- +NOTDMATCH
- Tag "Communicator"
- Inventory.Icon "I_COMM"
- Inventory.PickupSound "misc/p_pkup"
- Inventory.PickupMessage "$TXT_COMMUNICATOR"
- States
- {
- Spawn:
- COMM A -1
- Stop
- }
-}
-
diff --git a/wadsrc/decorate/strife/strifekeys.txt b/wadsrc/decorate/strife/strifekeys.txt
deleted file mode 100644
index 805df880..00000000
--- a/wadsrc/decorate/strife/strifekeys.txt
+++ /dev/null
@@ -1,516 +0,0 @@
-ACTOR StrifeKey : Key
-{
- Radius 20
- Height 16
- +NOTDMATCH
- +FLOORCLIP
-}
-
-// Base Key -----------------------------------------------------------------
-
-ACTOR BaseKey : StrifeKey 230
-{
- Game Strife
- ConversationID 133, 129, 132
- Inventory.Icon "I_FUSL"
- Tag "Base_Key"
- Inventory.PickupMessage "$TXT_BASEKEY"
- States
- {
- Spawn:
- FUSL A -1
- Stop
- }
-}
-
-
-// Govs Key -----------------------------------------------------------------
-
-ACTOR GovsKey : StrifeKey
-{
- Game Strife
- ConversationID 134, 130, 133
- Inventory.Icon "I_REBL"
- Tag "Govs_Key" // "Rebel_Key" in the Teaser
- Inventory.PickupMessage "$TXT_GOVSKEY"
- States
- {
- Spawn:
- REBL A -1
- Stop
- }
-}
-
-
-// Passcard -----------------------------------------------------------------
-
-ACTOR Passcard : StrifeKey 185
-{
- Game Strife
- ConversationID 135, 131, 134
- Inventory.Icon "I_TPAS"
- Tag "Passcard"
- Inventory.PickupMessage "$TXT_PASSCARD"
- States
- {
- Spawn:
- TPAS A -1
- Stop
- }
-}
-
-
-// ID Badge -----------------------------------------------------------------
-
-ACTOR IDBadge : StrifeKey 184
-{
- Game Strife
- ConversationID 136, 132, 135
- Inventory.Icon "I_CRD1"
- Tag "ID_Badge"
- Inventory.PickupMessage "$TXT_IDBADGE"
- States
- {
- Spawn:
- CRD1 A -1
- Stop
- }
-}
-
-
-// Prison Key ---------------------------------------------------------------
-
-ACTOR PrisonKey : StrifeKey
-{
- Game Strife
- ConversationID 137, 133, 136
- Inventory.Icon "I_PRIS"
- Tag "Prison_Key"
- Inventory.GiveQuest 11
- Inventory.PickupMessage "$TXT_PRISONKEY"
- States
- {
- Spawn:
- PRIS A -1
- Stop
- }
-}
-
-
-// Severed Hand -------------------------------------------------------------
-
-ACTOR SeveredHand : StrifeKey 91
-{
- Game Strife
- ConversationID 138, 134, 137
- Inventory.Icon "I_HAND"
- Tag "Severed_Hand"
- Inventory.GiveQuest 12
- Inventory.PickupMessage "$TXT_SEVEREDHAND"
- States
- {
- Spawn:
- HAND A -1
- Stop
- }
-}
-
-
-// Power1 Key ---------------------------------------------------------------
-
-ACTOR Power1Key : StrifeKey
-{
- Game Strife
- ConversationID 139, 135, 138
- Inventory.Icon "I_PWR1"
- Tag "Power1_Key"
- Inventory.PickupMessage "$TXT_POWER1KEY"
- States
- {
- Spawn:
- PWR1 A -1
- Stop
- }
-}
-
-
-// Power2 Key ---------------------------------------------------------------
-
-ACTOR Power2Key : StrifeKey
-{
- Game Strife
- ConversationID 140, 136, 139
- Inventory.Icon "I_PWR2"
- Tag "Power2_Key"
- Inventory.PickupMessage "$TXT_POWER2KEY"
- States
- {
- Spawn:
- PWR2 A -1
- Stop
- }
-}
-
-
-// Power3 Key ---------------------------------------------------------------
-
-ACTOR Power3Key : StrifeKey
-{
- Game Strife
- ConversationID 141, 137, 140
- Inventory.Icon "I_PWR3"
- Tag "Power3_Key"
- Inventory.PickupMessage "$TXT_POWER3KEY"
- States
- {
- Spawn:
- PWR3 A -1
- Stop
- }
-}
-
-
-// Gold Key -----------------------------------------------------------------
-
-ACTOR GoldKey : StrifeKey 40
-{
- Game Strife
- ConversationID 142, 138, 141
- Inventory.Icon "I_KY1G"
- Tag "Gold_Key"
- Inventory.PickupMessage "$TXT_GOLDKEY"
- States
- {
- Spawn:
- KY1G A -1
- Stop
- }
-}
-
-
-// ID Card ------------------------------------------------------------------
-
-ACTOR IDCard : StrifeKey 13
-{
- Game Strife
- ConversationID 143, 139, 142
- Inventory.Icon "I_CRD2"
- Tag "ID_Card"
- Inventory.PickupMessage "$TXT_IDCARD"
- States
- {
- Spawn:
- CRD2 A -1
- Stop
- }
-}
-
-
-// Silver Key ---------------------------------------------------------------
-
-ACTOR SilverKey : StrifeKey 38
-{
- Game Strife
- ConversationID 144, 140, 143
- Inventory.Icon "I_KY2S"
- Tag "Silver_Key"
- Inventory.PickupMessage "$TXT_SILVERKEY"
- States
- {
- Spawn:
- KY2S A -1
- Stop
- }
-}
-
-
-// Oracle Key ---------------------------------------------------------------
-
-ACTOR OracleKey : StrifeKey 61
-{
- Game Strife
- ConversationID 145, 141, 144
- Inventory.Icon "I_ORAC"
- Tag "Oracle_Key"
- Inventory.PickupMessage "$TXT_ORACLEKEY"
- States
- {
- Spawn:
- ORAC A -1
- Stop
- }
-}
-
-
-// Military ID --------------------------------------------------------------
-
-ACTOR MilitaryID : StrifeKey
-{
- Game Strife
- ConversationID 146, 142, 145
- Inventory.Icon "I_GYID"
- Tag "Military ID"
- Inventory.PickupMessage "$TXT_MILITARYID"
- States
- {
- Spawn:
- GYID A -1
- Stop
- }
-}
-
-
-// Order Key ----------------------------------------------------------------
-
-ACTOR OrderKey : StrifeKey 86
-{
- Game Strife
- ConversationID 147, 143, 146
- Inventory.Icon "I_FUBR"
- Tag "Order_Key"
- Inventory.PickupMessage "$TXT_ORDERKEY"
- States
- {
- Spawn:
- FUBR A -1
- Stop
- }
-}
-
-
-// Warehouse Key ------------------------------------------------------------
-
-ACTOR WarehouseKey : StrifeKey 166
-{
- Game Strife
- ConversationID 148, 144, 147
- Inventory.Icon "I_WARE"
- Tag "Warehouse_Key"
- Inventory.PickupMessage "$TXT_WAREHOUSEKEY"
- States
- {
- Spawn:
- WARE A -1
- Stop
- }
-}
-
-
-// Brass Key ----------------------------------------------------------------
-
-ACTOR BrassKey : StrifeKey 39
-{
- Game Strife
- ConversationID 149, 145, 148
- Inventory.Icon "I_KY3B"
- Tag "Brass_Key"
- Inventory.PickupMessage "$TXT_BRASSKEY"
- States
- {
- Spawn:
- KY3B A -1
- Stop
- }
-}
-
-
-// Red Crystal Key ----------------------------------------------------------
-
-ACTOR RedCrystalKey : StrifeKey 192
-{
- Game Strife
- ConversationID 150, 146, 149
- Inventory.Icon "I_RCRY"
- Tag "Red_Crystal_Key"
- Inventory.PickupMessage "$TXT_REDCRYSTAL"
- States
- {
- Spawn:
- RCRY A -1 Bright
- Stop
- }
-}
-
-
-// Blue Crystal Key ---------------------------------------------------------
-
-ACTOR BlueCrystalKey : StrifeKey 193
-{
- Game Strife
- ConversationID 151, 147, 150
- Inventory.Icon "I_BCRY"
- Tag "Blue_Crystal_Key"
- Inventory.PickupMessage "$TXT_BLUECRYSTAL"
- States
- {
- Spawn:
- BCRY A -1 Bright
- Stop
- }
-}
-
-
-// Chapel Key ---------------------------------------------------------------
-
-ACTOR ChapelKey : StrifeKey 195
-{
- Game Strife
- ConversationID 152, 148, 151
- Inventory.Icon "I_CHAP"
- Tag "Chapel_Key"
- Inventory.PickupMessage "$TXT_CHAPELKEY"
- States
- {
- Spawn:
- CHAP A -1
- Stop
- }
-}
-
-
-// Catacomb Key -------------------------------------------------------------
-
-ACTOR CatacombKey : StrifeKey
-{
- Game Strife
- ConversationID 153, 149, 152
- Inventory.Icon "I_TUNL"
- Tag "Catacomb_Key" // "Tunnel_Key" in the Teaser
- Inventory.GiveQuest 28
- Inventory.PickupMessage "$TXT_CATACOMBKEY"
- States
- {
- Spawn:
- TUNL A -1
- Stop
- }
-}
-
-
-// Security Key -------------------------------------------------------------
-
-ACTOR SecurityKey : StrifeKey
-{
- Game Strife
- ConversationID 154, 150, 153
- Inventory.Icon "I_SECK"
- Tag "Security_Key"
- Inventory.PickupMessage "$TXT_SECURITYKEY"
- States
- {
- Spawn:
- SECK A -1
- Stop
- }
-}
-
-
-// Core Key -----------------------------------------------------------------
-
-ACTOR CoreKey : StrifeKey 236
-{
- Game Strife
- ConversationID 155, 151, 154
- Inventory.Icon "I_GOID"
- Tag "Core_Key" // "New_Key1" in the Teaser
- Inventory.PickupMessage "$TXT_COREKEY"
- States
- {
- Spawn:
- GOID A -1
- Stop
- }
-}
-
-
-// Mauler Key ---------------------------------------------------------------
-
-ACTOR MaulerKey : StrifeKey 233
-{
- Game Strife
- ConversationID 156, 152, 155
- Inventory.Icon "I_BLTK"
- Tag "Mauler_Key" // "New_Key2" in the Teaser
- Inventory.PickupMessage "$TXT_MAULERKEY"
- States
- {
- Spawn:
- BLTK A -1
- Stop
- }
-}
-
-
-// Factory Key --------------------------------------------------------------
-
-ACTOR FactoryKey : StrifeKey 234
-{
- Game Strife
- ConversationID 157, 153, 156
- Inventory.Icon "I_PROC"
- Tag "Factory_Key" // "New_Key3" in the Teaser
- Inventory.PickupMessage "$TXT_FACTORYKEY"
- States
- {
- Spawn:
- PROC A -1
- Stop
- }
-}
-
-
-// Mine Key -----------------------------------------------------------------
-
-ACTOR MineKey : StrifeKey 235
-{
- Game Strife
- ConversationID 158, 154, 157
- Inventory.Icon "I_MINE" // "New_Key4" in the Teaser
- Tag "MINE_KEY"
- Inventory.PickupMessage "$TXT_MINEKEY"
- States
- {
- Spawn:
- MINE A -1
- Stop
- }
-}
-
-
-// New Key5 -----------------------------------------------------------------
-
-ACTOR NewKey5 : StrifeKey
-{
- Game Strife
- ConversationID 159, 155, 158
- Inventory.Icon "I_BLTK"
- Tag "New_Key5"
- Inventory.PickupMessage "$TXT_NEWKEY5"
- States
- {
- Spawn:
- BLTK A -1
- Stop
- }
-}
-
-
-// Oracle Pass --------------------------------------------------------------
-
-ACTOR OraclePass : Inventory
-{
- Game Strife
- ConversationID 311, 292, 309
- +INVENTORY.INVBAR
- Inventory.Icon "I_OTOK"
- Inventory.GiveQuest 18
- Inventory.PickupMessage "$TXT_ORACLEPASS"
- Tag "Oracle_Pass"
- States
- {
- Spawn:
- OTOK A -1
- Stop
- }
-}
-
diff --git a/wadsrc/decorate/strife/strifeplayer.txt b/wadsrc/decorate/strife/strifeplayer.txt
deleted file mode 100644
index e86a7c2e..00000000
--- a/wadsrc/decorate/strife/strifeplayer.txt
+++ /dev/null
@@ -1,76 +0,0 @@
-// The player ---------------------------------------------------------------
-
-ACTOR StrifePlayer : PlayerPawn
-{
- Health 100
- Radius 18
- Height 56
- Mass 100
- PainChance 255
- Speed 1
- MaxStepHeight 16
- Player.ColorRange 128, 143
- Player.DisplayName "Rebel"
- Player.StartItem "PunchDagger"
-
- action native A_ItBurnsItBurns();
- action native A_DropFire();
- action native A_CrispyPlayer();
-
- States
- {
- Spawn:
- PLAY A -1
- stop
- See:
- PLAY ABCD 4
- loop
- Missile:
- PLAY E 12
- goto Spawn
- Melee:
- PLAY F 6
- goto Missile
- Pain:
- PLAY Q 4
- PLAY Q 4 A_Pain
- Goto Spawn
- Death:
- PLAY H 3
- PLAY I 3 A_PlayerScream
- PLAY J 3 A_NoBlocking
- PLAY KLMNO 4
- PLAY P -1
- Stop
- XDeath:
- RGIB A 5 A_TossGib
- RGIB B 5 A_XScream
- RGIB C 5 A_NoBlocking
- RGIB DEFG 5 A_TossGib
- RGIB H -1 A_TossGib
- Burn:
- BURN A 3 Bright A_ItBurnsItBurns
- BURN B 3 Bright A_DropFire
- BURN C 3 Bright A_Wander
- BURN D 3 Bright A_NoBlocking
- BURN E 5 Bright A_DropFire
- BURN FGH 5 Bright A_Wander
- BURN I 5 Bright A_DropFire
- BURN JKL 5 Bright A_Wander
- BURN M 5 Bright A_DropFire
- BURN N 5 Bright A_CrispyPlayer
- BURN OPQPQ 5 Bright
- BURN RSTU 7 Bright
- BURN V -1
- Stop
- Disintegrate:
- DISR A 5 A_PlaySoundEx("misc/disruptordeath", "Voice")
- DISR BC 5
- DISR D 5 A_NoBlocking
- DISR EF 5
- DISR GHIJ 4
- MEAT D -1
- Stop
- }
-}
-
diff --git a/wadsrc/decorate/strife/strifestuff.txt b/wadsrc/decorate/strife/strifestuff.txt
deleted file mode 100644
index c2e2cec4..00000000
--- a/wadsrc/decorate/strife/strifestuff.txt
+++ /dev/null
@@ -1,1659 +0,0 @@
-// Tank 1 Huge ------------------------------------------------------------
-
-ACTOR Tank1 209
-{
- Game Strife
- Radius 16
- Height 192
- +SOLID
- ConversationID 31, -1, -1
- States
- {
- Spawn:
- TNK1 A 15
- TNK1 B 11
- TNK1 C 40
- Loop
- }
-}
-
-// Tank 2 Huge ------------------------------------------------------------
-
-ACTOR Tank2 210
-{
- Game Strife
- Radius 16
- Height 192
- +SOLID
- ConversationID 32, -1, -1
- States
- {
- Spawn:
- TNK2 A 15
- TNK2 B 11
- TNK2 C 40
- Loop
- }
-}
-
-// Tank 3 Huge ------------------------------------------------------------
-
-ACTOR Tank3 211
-{
- Game Strife
- Radius 16
- Height 192
- +SOLID
- ConversationID 33, -1, -1
- States
- {
- Spawn:
- TNK3 A 15
- TNK3 B 11
- TNK3 C 40
- Loop
- }
-}
-
-// Tank 4 -------------------------------------------------------------------
-
-ACTOR Tank4 213
-{
- Game Strife
- Radius 16
- Height 56
- +SOLID
- ConversationID 34, -1, -1
- States
- {
- Spawn:
- TNK4 A 15
- TNK4 B 11
- TNK4 C 40
- Loop
- }
-}
-
-// Tank 5 -------------------------------------------------------------------
-
-ACTOR Tank5 214
-{
- Game Strife
- Radius 16
- Height 56
- +SOLID
- ConversationID 35, -1, -1
- States
- {
- Spawn:
- TNK5 A 15
- TNK5 B 11
- TNK5 C 40
- Loop
- }
-}
-
-// Tank 6 -------------------------------------------------------------------
-
-ACTOR Tank6 229
-{
- Game Strife
- Radius 16
- Height 56
- +SOLID
- ConversationID 36, -1, -1
- States
- {
- Spawn:
- TNK6 A 15
- TNK6 B 11
- TNK6 C 40
- Loop
- }
-}
-
-// Water Bottle -------------------------------------------------------------
-
-ACTOR WaterBottle 2014
-{
- Game Strife
- ConversationID 131, -1, -1
- States
- {
- Spawn:
- WATR A -1
- Stop
- }
-}
-
-// Mug ----------------------------------------------------------------------
-
-ACTOR Mug 164
-{
- Game Strife
- ConversationID 132, -1, -1
- States
- {
- Spawn:
- MUGG A -1
- Stop
- }
-}
-
-// Wooden Barrel ------------------------------------------------------------
-
-ACTOR WoodenBarrel 82
-{
- Game Strife
- Health 10
- Radius 10
- Height 32
- +SOLID +SHOOTABLE +NOBLOOD
- +INCOMBAT
- ConversationID 203, -1, -1
- DeathSound "woodenbarrel/death"
- States
- {
- Spawn:
- BARW A -1
- Stop
- Death:
- BARW B 2 A_Scream
- BARW C 2
- BARW D 2 A_NoBlocking
- BARW EFG 2
- BARW H -1
- Stop
- }
-}
-
-// Strife's explosive barrel ------------------------------------------------
-
-ACTOR ExplosiveBarrel2 : ExplosiveBarrel 94
-{
- Game Strife
- Health 30
- Radius 10
- Height 32
- ConversationID 204, -1, -1
- //+SOLID +SHOOTABLE +NOBLOOD
- +INCOMBAT
- States
- {
- Spawn:
- BART A -1
- Stop
- Death:
- BART B 2 Bright A_Scream
- BART CD 2 Bright
- BART E 2 Bright A_NoBlocking
- BART F 0 Bright A_AlertMonsters
- BART F 2 Bright A_Explode(64, 64)
- BART GHIJ 2 Bright
- BART K 3 Bright
- BART L -1
- Stop
- }
-}
-
-// Light Silver, Fluorescent ----------------------------------------------
-
-ACTOR LightSilverFluorescent 95
-{
- Game Strife
- Radius 2.5
- Height 16
- +NOBLOCKMAP
- +FIXMAPTHINGPOS
- ConversationID 206, -1, -1
- States
- {
- Spawn:
- LITS A -1 Bright
- Stop
- }
-}
-
-// Light Brown, Fluorescent -----------------------------------------------
-
-ACTOR LightBrownFluorescent 96
-{
- Game Strife
- Radius 2.5
- Height 16
- +NOBLOCKMAP
- +FIXMAPTHINGPOS
- ConversationID 207, -1, -1
- States
- {
- Spawn:
- LITB A -1 Bright
- Stop
- }
-}
-
-// Light Gold, Fluorescent ------------------------------------------------
-
-ACTOR LightGoldFluorescent 97
-{
- Game Strife
- Radius 2.5
- Height 16
- +NOBLOCKMAP
- +FIXMAPTHINGPOS
- ConversationID 208, -1, -1
- States
- {
- Spawn:
- LITG A -1 Bright
- Stop
- }
-}
-
-// Light Globe --------------------------------------------------------------
-
-ACTOR LightGlobe 2028
-{
- Game Strife
- Radius 16
- Height 16
- +SOLID
- ConversationID 209, -1, -1
- States
- {
- Spawn:
- LITE A -1 Bright
- Stop
- }
-}
-
-// Techno Pillar ------------------------------------------------------------
-
-ACTOR PillarTechno 48
-{
- Game Strife
- Radius 20
- Height 128
- +SOLID
- ConversationID 210, -1, -1
- States
- {
- Spawn:
- MONI A -1
- Stop
- }
-}
-
-// Aztec Pillar -------------------------------------------------------------
-
-ACTOR PillarAztec 54
-{
- Game Strife
- Radius 16
- Height 128
- +SOLID
- ConversationID 211, -1, -1
- States
- {
- Spawn:
- STEL A -1
- Stop
- }
-}
-
-// Damaged Aztec Pillar -----------------------------------------------------
-
-ACTOR PillarAztecDamaged 55
-{
- Game Strife
- Radius 16
- Height 80
- +SOLID
- ConversationID 212, -1, -1
- States
- {
- Spawn:
- STLA A -1
- Stop
- }
-}
-
-// Ruined Aztec Pillar ------------------------------------------------------
-
-ACTOR PillarAztecRuined 56
-{
- Game Strife
- Radius 16
- Height 40
- +SOLID
- ConversationID 213, -1, -1
- States
- {
- Spawn:
- STLE A -1
- Stop
- }
-}
-
-// Huge Tech Pillar ---------------------------------------------------------
-
-ACTOR PillarHugeTech 57
-{
- Game Strife
- Radius 24
- Height 192
- +SOLID
- ConversationID 214, -1, -1
- States
- {
- Spawn:
- HUGE ABCD 4
- Loop
- }
-}
-
-// Alien Power Crystal in a Pillar ------------------------------------------
-
-ACTOR PillarAlienPower 227
-{
- Game Strife
- Radius 24
- Height 192
- +SOLID
- ConversationID 215, -1, -1
- ActiveSound "ambient/alien2"
- States
- {
- Spawn:
- APOW A -1 A_LoopActiveSound
- Stop
- }
-}
-
-// SStalactiteBig -----------------------------------------------------------
-
-ACTOR SStalactiteBig 98
-{
- Game Strife
- Radius 16
- Height 54
- +SOLID +SPAWNCEILING +NOGRAVITY
- ConversationID 216, -1, -1
- States
- {
- Spawn:
- STLG C -1
- Stop
- }
-}
-
-// SStalactiteSmall ---------------------------------------------------------
-
-ACTOR SStalactiteSmall 161
-{
- Game Strife
- Radius 16
- Height 40
- +SOLID +SPAWNCEILING +NOGRAVITY
- ConversationID 217, -1, -1
- States
- {
- Spawn:
- STLG A -1
- Stop
- }
-}
-
-// SStalagmiteBig -----------------------------------------------------------
-
-ACTOR SStalagmiteBig 160
-{
- Game Strife
- Radius 16
- Height 40
- +SOLID
- ConversationID 218, -1, -1
- States
- {
- Spawn:
- STLG B -1
- Stop
- }
-}
-
-// Cave Pillar Top ----------------------------------------------------------
-
-ACTOR CavePillarTop 159
-{
- Game Strife
- Radius 16
- Height 128
- +SOLID +SPAWNCEILING +NOGRAVITY
- ConversationID 219, -1, -1
- States
- {
- Spawn:
- STLG D -1
- Stop
- }
-}
-
-// Cave Pillar Bottom -------------------------------------------------------
-
-ACTOR CavePillarBottom 162
-{
- Game Strife
- Radius 16
- Height 128
- +SOLID
- ConversationID 220, -1, -1
- States
- {
- Spawn:
- STLG E -1
- Stop
- }
-}
-
-// SStalagmiteSmall ---------------------------------------------------------
-
-ACTOR SStalagmiteSmall 163
-{
- Game Strife
- Radius 16
- Height 25
- +SOLID
- ConversationID 221, -1, -1
- States
- {
- Spawn:
- STLG E -1
- Stop
- }
-}
-
-// Candle -------------------------------------------------------------------
-
-ACTOR Candle 34
-{
- Game Strife
- ConversationID 222, -1, -1
- States
- {
- Spawn:
- KNDL A -1 Bright
- Stop
- }
-}
-
-// StrifeCandelabra ---------------------------------------------------------
-
-ACTOR StrifeCandelabra 35
-{
- Game Strife
- Radius 16
- Height 40
- +SOLID
- ConversationID 223, -1, -1
- States
- {
- Spawn:
- CLBR A -1
- Stop
- }
-}
-
-// Floor Water Drop ---------------------------------------------------------
-
-ACTOR WaterDropOnFloor 103
-{
- Game Strife
- +NOBLOCKMAP
- ConversationID 224, -1, -1
- ActiveSound "world/waterdrips"
- States
- {
- Spawn:
- DRIP A 6 A_FLoopActiveSound
- DRIP BC 4
- DRIP D 4 A_FLoopActiveSound
- DRIP EF 4
- DRIP G 4 A_FLoopActiveSound
- DRIP H 4
- Loop
- }
-}
-
-// Waterfall Splash ---------------------------------------------------------
-
-ACTOR WaterfallSplash 104
-{
- Game Strife
- +NOBLOCKMAP
- ConversationID 225, -1, -1
- ActiveSound "world/waterfall"
- States
- {
- Spawn:
- SPLH ABCDEFG 4
- SPLH H 4 A_LoopActiveSound
- Loop
- }
-}
-
-// Ceiling Water Drip -------------------------------------------------------
-
-ACTOR WaterDrip 53
-{
- Game Strife
- Height 1
- +NOBLOCKMAP +SPAWNCEILING +NOGRAVITY
- ConversationID 226, -1, -1
- States
- {
- Spawn:
- CDRP A 10
- CDRP BCD 8
- Loop
- }
-}
-
-// WaterFountain ------------------------------------------------------------
-
-ACTOR WaterFountain 112
-{
- Game Strife
- +NOBLOCKMAP
- ConversationID 227, -1, -1
- ActiveSound "world/watersplash"
- States
- {
- Spawn:
- WTFT ABC 4
- WTFT D 4 A_LoopActiveSound
- Loop
- }
-}
-
-// Hearts in Tank -----------------------------------------------------------
-
-ACTOR HeartsInTank 113
-{
- Game Strife
- Radius 16
- Height 56
- +SOLID
- ConversationID 228, -1, -1
- States
- {
- Spawn:
- HERT ABC 4 Bright
- Loop
- }
-}
-
-// Teleport Swirl -----------------------------------------------------------
-
-ACTOR TeleportSwirl 23
-{
- Game Strife
- +NOBLOCKMAP
- RenderStyle Add
- Alpha 0.25
- ConversationID 229, -1, -1
- States
- {
- Spawn:
- TELP ABCD 3 Bright
- Loop
- }
-}
-
-// Dead Player --------------------------------------------------------------
-// Strife's disappeared. This one doesn't.
-
-ACTOR DeadStrifePlayer 15
-{
- Game Strife
- ConversationID 231, -1, -1
- States
- {
- Spawn:
- PLAY P 700
- RGIB H -1
- Stop
- }
-}
-
-// Dead Peasant -------------------------------------------------------------
-// Unlike Strife's, this one does not turn into gibs and disappear.
-
-ACTOR DeadPeasant 18
-{
- Game Strife
- ConversationID 232, -1, -1
- States
- {
- Spawn:
- PEAS N -1
- Stop
- }
-}
-
-// Dead Acolyte -------------------------------------------------------------
-// Unlike Strife's, this one does not turn into gibs and disappear.
-
-ACTOR DeadAcolyte 21
-{
- Game Strife
- ConversationID 233, -1, -1
- States
- {
- Spawn:
- AGRD N -1
- Stop
- }
-}
-
-// Dead Reaver --------------------------------------------------------------
-
-ACTOR DeadReaver 20
-{
- Game Strife
- ConversationID 234, -1, -1
- States
- {
- Spawn:
- ROB1 R -1
- Stop
- }
-}
-
-// Dead Rebel ---------------------------------------------------------------
-
-ACTOR DeadRebel 19
-{
- Game Strife
- ConversationID 235, -1, -1
- States
- {
- Spawn:
- HMN1 N -1
- Stop
- }
-}
-
-// Sacrificed Guy -----------------------------------------------------------
-
-ACTOR SacrificedGuy 212
-{
- Game Strife
- ConversationID 236, -1, -1
- States
- {
- Spawn:
- SACR A -1
- Stop
- }
-}
-
-// Pile of Guts -------------------------------------------------------------
-
-ACTOR PileOfGuts
-{
- // Strife used a doomednum, which is the same as the Aztec Pillar. Since
- // the pillar came first in the mobjinfo list, you could not spawn this
- // in a map. Pity.
- Game Strife
- ConversationID 237, -1, -1
- States
- {
- Spawn:
- DEAD A -1
- Stop
- }
-}
-
-// Burning Barrel -----------------------------------------------------------
-
-ACTOR StrifeBurningBarrel 70
-{
- Game Strife
- Radius 16
- Height 48
- +SOLID
- ConversationID 238, -1, -1
- States
- {
- Spawn:
- BBAR ABCD 4 Bright
- Loop
- }
-}
-
-// Burning Bowl -----------------------------------------------------------
-
-ACTOR BurningBowl 105
-{
- Game Strife
- Radius 16
- Height 16
- +SOLID
- ConversationID 239, -1, -1
- ActiveSound "world/smallfire"
- States
- {
- Spawn:
- BOWL ABCD 4 Bright
- Loop
- }
-}
-
-// Burning Brazier -----------------------------------------------------------
-
-ACTOR BurningBrazier 106
-{
- Game Strife
- Radius 10
- Height 32
- +SOLID
- ConversationID 240, -1, -1
- ActiveSound "world/smallfire"
- States
- {
- Spawn:
- BRAZ ABCD 4 Bright
- Loop
- }
-}
-
-// Small Torch Lit --------------------------------------------------------
-
-ACTOR SmallTorchLit 107
-{
- Game Strife
- Radius 2.5
- Height 16
- +NOBLOCKMAP
- +FIXMAPTHINGPOS
- ConversationID 241, -1, -1
-
- // It doesn't have any action functions, so how does it use this sound?
- ActiveSound "world/smallfire"
- States
- {
- Spawn:
- TRHL ABCD 4 Bright
- Loop
- }
-}
-
-// Small Torch Unlit --------------------------------------------------------
-
-ACTOR SmallTorchUnlit 108
-{
- Game Strife
- Radius 2.5
- Height 16
- +NOBLOCKMAP
- +FIXMAPTHINGPOS
- ConversationID 242, -1, -1
- States
- {
- Spawn:
- TRHO A -1
- Stop
- }
-}
-
-// Ceiling Chain ------------------------------------------------------------
-
-ACTOR CeilingChain 109
-{
- Game Strife
- Radius 20
- Height 93
- +NOBLOCKMAP +SPAWNCEILING +NOGRAVITY
- ConversationID 243, -1, -1
- States
- {
- Spawn:
- CHAN A -1
- Stop
- }
-}
-
-// Cage Light ---------------------------------------------------------------
-
-ACTOR CageLight 28
-{
- // No, it's not bright even though it's a light.
- Game Strife
- Height 3
- +NOBLOCKMAP +SPAWNCEILING +NOGRAVITY
- ConversationID 244, -1, -1
- States
- {
- Spawn:
- CAGE A -1
- Stop
- }
-}
-
-// Statue -------------------------------------------------------------------
-
-ACTOR Statue 110
-{
- Game Strife
- Radius 20
- Height 64
- +SOLID
- ConversationID 245, -1, -1
- States
- {
- Spawn:
- STAT A -1
- Stop
- }
-}
-
-// Ruined Statue ------------------------------------------------------------
-
-ACTOR StatueRuined 44
-{
- Game Strife
- Radius 20
- Height 56
- +SOLID
- ConversationID 246, -1, -1
- States
- {
- Spawn:
- DSTA A -1
- Stop
- }
-}
-
-// Medium Torch -------------------------------------------------------------
-
-ACTOR MediumTorch 111
-{
- Game Strife
- Radius 4
- Height 72
- +SOLID
- ConversationID 247, -1, -1
- States
- {
- Spawn:
- LTRH ABCD 4
- Loop
- }
-}
-
-// Outside Lamp -------------------------------------------------------------
-
-ACTOR OutsideLamp 43
-{
- // No, it's not bright.
- Game Strife
- Radius 3
- Height 80
- +SOLID
- ConversationID 248, -1, -1
- States
- {
- Spawn:
- LAMP A -1
- Stop
- }
-}
-
-// Pole Lantern -------------------------------------------------------------
-
-ACTOR PoleLantern 46
-{
- // No, it's not bright.
- Game Strife
- Radius 3
- Height 80
- +SOLID
- ConversationID 249, -1, -1
- States
- {
- Spawn:
- LANT A -1
- Stop
- }
-}
-
-// Rock 1 -------------------------------------------------------------------
-
-ACTOR SRock1 99
-{
- Game Strife
- +NOBLOCKMAP
- ConversationID 250, -1, -1
- States
- {
- Spawn:
- ROK1 A -1
- Stop
- }
-}
-
-// Rock 2 -------------------------------------------------------------------
-
-ACTOR SRock2 100
-{
- Game Strife
- +NOBLOCKMAP
- ConversationID 251, -1, -1
- States
- {
- Spawn:
- ROK2 A -1
- Stop
- }
-}
-
-// Rock 3 -------------------------------------------------------------------
-
-ACTOR SRock3 101
-{
- Game Strife
- +NOBLOCKMAP
- ConversationID 252, -1, -1
- States
- {
- Spawn:
- ROK3 A -1
- Stop
- }
-}
-
-// Rock 4 -------------------------------------------------------------------
-
-ACTOR SRock4 102
-{
- Game Strife
- +NOBLOCKMAP
- ConversationID 253, -1, -1
- States
- {
- Spawn:
- ROK4 A -1
- Stop
- }
-}
-
-// Stick in Water -----------------------------------------------------------
-
-ACTOR StickInWater 215
-{
- Game Strife
- +NOBLOCKMAP
- +FLOORCLIP
- ConversationID 254, -1, -1
- ActiveSound "world/river"
- States
- {
- Spawn:
- LOGW ABCD 5 A_LoopActiveSound
- Loop
- }
-}
-
-// Rubble 1 -----------------------------------------------------------------
-
-ACTOR Rubble1 29
-{
- Game Strife
- +NOBLOCKMAP +NOCLIP
- ConversationID 255, -1, -1
- States
- {
- Spawn:
- RUB1 A -1
- Stop
- }
-}
-
-// Rubble 2 -----------------------------------------------------------------
-
-ACTOR Rubble2 30
-{
- Game Strife
- +NOBLOCKMAP +NOCLIP
- ConversationID 256, -1, -1
- States
- {
- Spawn:
- RUB2 A -1
- Stop
- }
-}
-
-// Rubble 3 -----------------------------------------------------------------
-
-ACTOR Rubble3 31
-{
- Game Strife
- +NOBLOCKMAP +NOCLIP
- ConversationID 257, -1, -1
- States
- {
- Spawn:
- RUB3 A -1
- Stop
- }
-}
-
-// Rubble 4 -----------------------------------------------------------------
-
-ACTOR Rubble4 32
-{
- Game Strife
- +NOBLOCKMAP +NOCLIP
- ConversationID 258, -1, -1
- States
- {
- Spawn:
- RUB4 A -1
- Stop
- }
-}
-
-// Rubble 5 -----------------------------------------------------------------
-
-ACTOR Rubble5 36
-{
- Game Strife
- +NOBLOCKMAP +NOCLIP
- ConversationID 259, -1, -1
- States
- {
- Spawn:
- RUB5 A -1
- Stop
- }
-}
-
-// Rubble 6 -----------------------------------------------------------------
-
-ACTOR Rubble6 37
-{
- Game Strife
- +NOBLOCKMAP +NOCLIP
- ConversationID 260, -1, -1
- States
- {
- Spawn:
- RUB6 A -1
- Stop
- }
-}
-
-// Rubble 7 -----------------------------------------------------------------
-
-ACTOR Rubble7 41
-{
- Game Strife
- +NOBLOCKMAP +NOCLIP
- ConversationID 261, -1, -1
- States
- {
- Spawn:
- RUB7 A -1
- Stop
- }
-}
-
-// Rubble 8 -----------------------------------------------------------------
-
-ACTOR Rubble8 42
-{
- Game Strife
- +NOBLOCKMAP +NOCLIP
- ConversationID 262, -1, -1
- States
- {
- Spawn:
- RUB8 A -1
- Stop
- }
-}
-
-// Surgery Crab -------------------------------------------------------------
-
-ACTOR SurgeryCrab 117
-{
- Game Strife
- +SOLID +SPAWNCEILING +NOGRAVITY
- Radius 20
- Height 16
- ConversationID 263, -1, -1
- States
- {
- Spawn:
- CRAB A -1
- Stop
- }
-}
-
-// Large Torch --------------------------------------------------------------
-
-ACTOR LargeTorch 47
-{
- Game Strife
- Radius 10
- Height 72
- +SOLID
- ConversationID 264, -1, -1
- ActiveSound "world/smallfire"
- States
- {
- Spawn:
- LMPC ABCD 4 Bright
- Loop
- }
-}
-
-// Huge Torch --------------------------------------------------------------
-
-ACTOR HugeTorch 50
-{
- Game Strife
- Radius 10
- Height 80
- +SOLID
- ConversationID 265, -1, -1
- ActiveSound "world/smallfire"
- States
- {
- Spawn:
- LOGS ABCD 4
- Loop
- }
-}
-
-// Palm Tree ----------------------------------------------------------------
-
-ACTOR PalmTree 51
-{
- Game Strife
- Radius 15
- Height 109
- +SOLID
- ConversationID 266, -1, -1
- States
- {
- Spawn:
- TREE A -1
- Stop
- }
-}
-
-// Big Tree ----------------------------------------------------------------
-
-ACTOR BigTree2 202
-{
- Game Strife
- Radius 15
- Height 109
- +SOLID
- ConversationID 267, -1, -1
- States
- {
- Spawn:
- TREE B -1
- Stop
- }
-}
-
-// Potted Tree ----------------------------------------------------------------
-
-ACTOR PottedTree 203
-{
- Game Strife
- Radius 15
- Height 64
- +SOLID
- ConversationID 268, -1, -1
- States
- {
- Spawn:
- TREE C -1
- Stop
- }
-}
-
-// Tree Stub ----------------------------------------------------------------
-
-ACTOR TreeStub 33
-{
- Game Strife
- Radius 15
- Height 80
- +SOLID
- ConversationID 269, -1, -1
- States
- {
- Spawn:
- TRET A -1
- Stop
- }
-}
-
-// Short Bush ---------------------------------------------------------------
-
-ACTOR ShortBush 60
-{
- Game Strife
- Radius 15
- Height 40
- +SOLID
- ConversationID 270, -1, -1
- States
- {
- Spawn:
- BUSH A -1
- Stop
- }
-}
-
-// Tall Bush ---------------------------------------------------------------
-
-ACTOR TallBush 62
-{
- Game Strife
- Radius 20
- Height 64
- +SOLID
- ConversationID 271, -1, -1
- States
- {
- Spawn:
- SHRB A -1
- Stop
- }
-}
-
-// Chimney Stack ------------------------------------------------------------
-
-ACTOR ChimneyStack 63
-{
- Game Strife
- Radius 20
- Height 64 // This height does not fit the sprite
- +SOLID
- ConversationID 272, -1, -1
- States
- {
- Spawn:
- STAK A -1
- Stop
- }
-}
-
-// Barricade Column ---------------------------------------------------------
-
-ACTOR BarricadeColumn 69
-{
- Game Strife
- Radius 16
- Height 128
- +SOLID
- ConversationID 273, -1, -1
- States
- {
- Spawn:
- BARC A -1
- Stop
- }
-}
-
-// Pot ----------------------------------------------------------------------
-
-ACTOR Pot 165
-{
- Game Strife
- Radius 12
- Height 24
- +SOLID
- ConversationID 274, -1, -1
- States
- {
- Spawn:
- VAZE A -1
- Stop
- }
-}
-
-// Pitcher ------------------------------------------------------------------
-
-ACTOR Pitcher 188
-{
- Game Strife
- Radius 12
- Height 32
- +SOLID
- ConversationID 275, -1, -1
- States
- {
- Spawn:
- VAZE B -1
- Stop
- }
-}
-
-// Stool --------------------------------------------------------------------
-
-ACTOR Stool 189
-{
- Game Strife
- Radius 6
- Height 24
- +SOLID
- ConversationID 276, -1, -1
- States
- {
- Spawn:
- STOL A -1
- Stop
- }
-}
-
-// Metal Pot ----------------------------------------------------------------
-
-ACTOR MetalPot 190
-{
- Game Strife
- +NOBLOCKMAP
- ConversationID 277, -1, -1
- States
- {
- Spawn:
- MPOT A -1
- Stop
- }
-}
-
-// Tub ----------------------------------------------------------------------
-
-ACTOR Tub 191
-{
- Game Strife
- +NOBLOCKMAP
- ConversationID 278, -1, -1
- States
- {
- Spawn:
- TUB1 A -1
- Stop
- }
-}
-
-// Anvil --------------------------------------------------------------------
-
-ACTOR Anvil 194
-{
- Game Strife
- Radius 16
- Height 32
- +SOLID
- ConversationID 279, -1, -1
- States
- {
- Spawn:
- ANVL A -1
- Stop
- }
-}
-
-// Silver Tech Lamp ----------------------------------------------------------
-
-ACTOR TechLampSilver 196
-{
- Game Strife
- Radius 11
- Height 64
- +SOLID
- ConversationID 280, -1, -1
- States
- {
- Spawn:
- TECH A -1
- Stop
- }
-}
-
-// Brass Tech Lamp ----------------------------------------------------------
-
-ACTOR TechLampBrass 197
-{
- Game Strife
- Radius 8
- Height 64
- +SOLID
- ConversationID 281, -1, -1
- States
- {
- Spawn:
- TECH B -1
- Stop
- }
-}
-
-// Tray --------------------------------------------------------------------
-
-ACTOR Tray 68
-{
- Game Strife
- Radius 24
- Height 40
- +SOLID
- ConversationID 282, -1, -1
- States
- {
- Spawn:
- TRAY A -1
- Stop
- }
-}
-
-// AmmoFiller ---------------------------------------------------------------
-
-ACTOR AmmoFiller 228
-{
- Game Strife
- Radius 12
- Height 24
- +SOLID
- ConversationID 283, -1, -1
- States
- {
- Spawn:
- AFED A -1
- Stop
- }
-}
-
-// Sigil Banner -------------------------------------------------------------
-
-ACTOR SigilBanner 216
-{
- Game Strife
- Radius 24
- Height 96
- +NOBLOCKMAP // I take it this was once solid, yes?
- ConversationID 284, -1, -1
- States
- {
- Spawn:
- SBAN A -1
- Stop
- }
-}
-
-// RebelBoots ---------------------------------------------------------------
-
-ACTOR RebelBoots 217
-{
- Game Strife
- +NOBLOCKMAP
- ConversationID 285, -1, -1
- States
- {
- Spawn:
- BOTR A -1
- Stop
- }
-}
-
-// RebelHelmet --------------------------------------------------------------
-
-ACTOR RebelHelmet 218
-{
- Game Strife
- +NOBLOCKMAP
- ConversationID 286, -1, -1
- States
- {
- Spawn:
- HATR A -1
- Stop
- }
-}
-
-// RebelShirt ---------------------------------------------------------------
-
-ACTOR RebelShirt 219
-{
- Game Strife
- +NOBLOCKMAP
- ConversationID 287, -1, -1
- States
- {
- Spawn:
- TOPR A -1
- Stop
- }
-}
-
-// Alien Bubble Column ------------------------------------------------------
-
-ACTOR AlienBubbleColumn 221
-{
- Game Strife
- Radius 16
- Height 128
- +SOLID
- ConversationID 290, -1, -1
- ActiveSound "ambient/alien5"
- States
- {
- Spawn:
- BUBB A 4 A_LoopActiveSound
- Loop
- }
-}
-
-// Alien Floor Bubble -------------------------------------------------------
-
-ACTOR AlienFloorBubble 222
-{
- Game Strife
- Radius 16
- Height 72
- +SOLID
- ConversationID 291, -1, -1
- ActiveSound "ambient/alien6"
- States
- {
- Spawn:
- BUBF A 4 A_LoopActiveSound
- Loop
- }
-}
-
-// Alien Ceiling Bubble -----------------------------------------------------
-
-ACTOR AlienCeilingBubble 223
-{
- Game Strife
- Radius 16
- Height 72
- +SOLID +SPAWNCEILING +NOGRAVITY
- ConversationID 292, -1, -1
- ActiveSound "ambient/alien4"
- States
- {
- Spawn:
- BUBC A 4 A_LoopActiveSound
- Loop
- }
-}
-
-// Alien Asp Climber --------------------------------------------------------
-
-ACTOR AlienAspClimber 224
-{
- Game Strife
- Radius 16
- Height 128
- +SOLID
- ConversationID 293, -1, -1
- ActiveSound "ambient/alien3"
- States
- {
- Spawn:
- ASPR A 4 A_LoopActiveSound
- Loop
- }
-}
-
-// Alien Spider Light -------------------------------------------------------
-
-ACTOR AlienSpiderLight 225
-{
- Game Strife
- Radius 32
- Height 56
- +SOLID
- ConversationID 294, -1, -1
- ActiveSound "ambient/alien1"
- States
- {
- Spawn:
- SPDL ABC 5 A_LoopActiveSound
- Loop
- }
-}
-
-// Target Practice -----------------------------------------------------------
-
-ACTOR TargetPractice 208
-{
- Game Strife
- Health 99999999
- PainChance 255
- Radius 10
- Height 72
- Mass 9999999
- +SOLID +SHOOTABLE +NOBLOOD
- +INCOMBAT +NODAMAGE
- ConversationID 205, -1, -1
- PainSound "misc/metalhit"
- States
- {
- Spawn:
- HOGN A 2 A_CheckTerrain
- Loop
- Pain:
- HOGN B 1 A_CheckTerrain
- HOGN C 1 A_Pain
- Goto Spawn
- }
-}
-
diff --git a/wadsrc/decorate/strife/zombie.txt b/wadsrc/decorate/strife/zombie.txt
deleted file mode 100644
index e26f8b26..00000000
--- a/wadsrc/decorate/strife/zombie.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-
-// Zombie -------------------------------------------------------------------
-
-ACTOR Zombie : StrifeHumanoid 169
-{
- Game Strife
- Health 31
- Radius 20
- Height 56
- PainChance 0
- +SOLID
- +SHOOTABLE
- +FLOORCLIP
- +CANPASS
- +CANPUSHWALLS
- +ACTIVATEMCROSS
- MinMissileChance 150
- MaxStepHeight 16
- MaxDropOffHeight 32
- Translation 0
- ConversationID 28, -1, -1
- DeathSound "zombie/death"
- States
- {
- Spawn:
- PEAS A 5 A_CheckTerrain
- Loop
- Pain:
- AGRD A 5 A_CheckTerrain
- Loop
- Death:
- GIBS M 5 A_TossGib
- GIBS N 5 A_XScream
- GIBS O 5 A_NoBlocking
- GIBS PQRST 4 A_TossGib
- GIBS U 5
- GIBS V 1400
- Stop
- }
-}
-
-
-// Zombie Spawner -----------------------------------------------------------
-
-ACTOR ZombieSpawner 170
-{
- Game Strife
- Health 20
- +SHOOTABLE
- +NOSECTOR
- RenderStyle None
- ConversationID 30, -1, -1
- ActiveSound "zombie/spawner" // Does Strife use this somewhere else?
- States
- {
- Spawn:
- TNT1 A 175 A_SpawnItemEx("Zombie")
- Loop
- }
-}
-
diff --git a/wadsrc/dehsupp.lmp b/wadsrc/dehsupp.lmp
deleted file mode 100644
index 881790dd..00000000
Binary files a/wadsrc/dehsupp.lmp and /dev/null differ
diff --git a/wadsrc/dsempty.lmp b/wadsrc/dsempty.lmp
deleted file mode 100644
index cb6f1d2f..00000000
Binary files a/wadsrc/dsempty.lmp and /dev/null differ
diff --git a/wadsrc/fiteface.lmp b/wadsrc/fiteface.lmp
deleted file mode 100644
index 5e384aeb..00000000
Binary files a/wadsrc/fiteface.lmp and /dev/null differ
diff --git a/wadsrc/fonta164.lmp b/wadsrc/fonta164.lmp
deleted file mode 100644
index b7e299d6..00000000
Binary files a/wadsrc/fonta164.lmp and /dev/null differ
diff --git a/wadsrc/fonta165.lmp b/wadsrc/fonta165.lmp
deleted file mode 100644
index 86bea320..00000000
Binary files a/wadsrc/fonta165.lmp and /dev/null differ
diff --git a/wadsrc/fonta182.lmp b/wadsrc/fonta182.lmp
deleted file mode 100644
index 9a845e2b..00000000
Binary files a/wadsrc/fonta182.lmp and /dev/null differ
diff --git a/wadsrc/fonta188.lmp b/wadsrc/fonta188.lmp
deleted file mode 100644
index 13c489e9..00000000
Binary files a/wadsrc/fonta188.lmp and /dev/null differ
diff --git a/wadsrc/fonta191.lmp b/wadsrc/fonta191.lmp
deleted file mode 100644
index d28c7775..00000000
Binary files a/wadsrc/fonta191.lmp and /dev/null differ
diff --git a/wadsrc/fonta60.lmp b/wadsrc/fonta60.lmp
deleted file mode 100644
index 7afff3ab..00000000
Binary files a/wadsrc/fonta60.lmp and /dev/null differ
diff --git a/wadsrc/fonta61.lmp b/wadsrc/fonta61.lmp
deleted file mode 100644
index 7afff3ab..00000000
Binary files a/wadsrc/fonta61.lmp and /dev/null differ
diff --git a/wadsrc/fonta62.lmp b/wadsrc/fonta62.lmp
deleted file mode 100644
index b9d156b3..00000000
Binary files a/wadsrc/fonta62.lmp and /dev/null differ
diff --git a/wadsrc/fonta63.lmp b/wadsrc/fonta63.lmp
deleted file mode 100644
index 7afff3ab..00000000
Binary files a/wadsrc/fonta63.lmp and /dev/null differ
diff --git a/wadsrc/fontdefs.txt b/wadsrc/fontdefs.txt
deleted file mode 100644
index 7e3aae06..00000000
--- a/wadsrc/fontdefs.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-
-// Fonts used by the alternative HUD
-
-HUDFONT_DOOM
-{
- - STTMINUS
- 0 STTNUM0
- 1 STTNUM1
- 2 STTNUM2
- 3 STTNUM3
- 4 STTNUM4
- 5 STTNUM5
- 6 STTNUM6
- 7 STTNUM7
- 8 STTNUM8
- 9 STTNUM9
- NOTRANSLATION 109 // don't touch the shadow color!
-}
-
-HUDFONT_RAVEN
-{
- - NEGNUM
- 0 IN0
- 1 IN1
- 2 IN2
- 3 IN3
- 4 IN4
- 5 IN5
- 6 IN6
- 7 IN7
- 8 IN8
- 9 IN9
-}
-
-INDEXFONT_RAVEN
-{
- 0 SMALLIN0
- 1 SMALLIN1
- 2 SMALLIN2
- 3 SMALLIN3
- 4 SMALLIN4
- 5 SMALLIN5
- 6 SMALLIN6
- 7 SMALLIN7
- 8 SMALLIN8
- 9 SMALLIN9
-}
diff --git a/wadsrc/gzd/decorate.gzd b/wadsrc/gzd/decorate.gzd
deleted file mode 100644
index 55ef77f7..00000000
--- a/wadsrc/gzd/decorate.gzd
+++ /dev/null
@@ -1,3 +0,0 @@
-ACTOR FS_Mapspot : Mapspot 5004
-{
-}
diff --git a/wadsrc/gzd/etc.h.txt b/wadsrc/gzd/etc.h.txt
deleted file mode 100644
index 98534873..00000000
Binary files a/wadsrc/gzd/etc.h.txt and /dev/null differ
diff --git a/wadsrc/gzd/lspec.h.txt b/wadsrc/gzd/lspec.h.txt
deleted file mode 100644
index 47dabb20..00000000
--- a/wadsrc/gzd/lspec.h.txt
+++ /dev/null
@@ -1,172 +0,0 @@
-const ACS_Execute = 80;
-const ACS_Suspend = 81;
-const ACS_Terminate = 82;
-const ACS_LockedExecute = 83;
-const Ceiling_CrushAndRaise = 42;
-const Ceiling_CrushStop = 44;
-const Ceiling_LowerAndCrush = 43;
-const Ceiling_LowerByValue = 40;
-const Ceiling_RaiseByValue = 41;
-const Ceiling_CrushRaiseAndStay = 45;
-const Ceiling_MoveToValueTimes8 = 69;
-const Door_Close = 10;
-const Door_Open = 11;
-const Door_Raise = 12;
-const Door_LockedRaise = 13;
-const Floor_LowerByValue = 20;
-const Floor_LowerByValueTimes8 = 36;
-const Floor_LowerInstant = 66;
-const Floor_MoveToValueTimes8 = 68;
-const Floor_LowerToLowest = 21;
-const Floor_LowerToNearest = 22;
-const Floor_RaiseAndCrush = 28;
-const Floor_RaiseByValue = 23;
-const Floor_RaiseByValueTimes8 = 35;
-const Floor_RaiseInstant = 67;
-const Floor_RaiseToHighest = 24;
-const Floor_RaiseToNearest = 25;
-const FloorAndCeiling_LowerByValue = 95;
-const FloorAndCeiling_RaiseByValue = 96;
-const Floor_CrushStop = 46;
-const Light_ForceLightning = 109;
-const Light_RaiseByValue = 110;
-const Light_LowerByValue = 111;
-const Light_ChangeToValue = 112;
-const Light_Fade = 113;
-const Light_Glow = 114;
-const Light_Flicker = 115;
-const Light_Strobe = 116;
-const Pillar_Build = 29;
-const Pillar_BuildAndCrush = 94;
-const Pillar_Open = 30;
-const Plat_DownWaitUpStay = 62;
-const Plat_DownByValue = 63;
-const Plat_UpWaitDownStay = 64;
-const Plat_UpByValue = 65;
-const Plat_PerpetualRaise = 60;
-const Plat_Stop = 61;
-const Polyobj_MoveTimes8 = 6;
-const Polyobj_Move = 4;
-const Polyobj_RotateLeft = 2;
-const Polyobj_RotateRight = 3;
-const Polyobj_DoorSwing = 7;
-const Polyobj_DoorSlide = 8;
-const Polyobj_OR_MoveTimes8 = 93;
-const Polyobj_OR_Move = 92;
-const Polyobj_OR_RotateLeft = 90;
-const Polyobj_OR_RotateRight = 91;
-const Radius_Quake = 120;
-const Sector_ChangeSound = 140;
-const Stairs_BuildDown = 26;
-const Stairs_BuildUp = 27;
-const Stairs_BuildDownSync = 31;
-const Stairs_BuildUpSync = 32;
-const Teleport = 70;
-const Teleport_NoFog = 71;
-const Teleport_NewMap = 74;
-const Teleport_EndGame = 75;
-const ThrustThing = 72;
-const DamageThing = 73;
-const Thing_Activate = 130;
-const Thing_Deactivate = 131;
-const Thing_Destroy = 133;
-const Thing_Projectile = 134;
-const Thing_ProjectileGravity = 136;
-const Thing_Remove = 132;
-const Thing_Spawn = 135;
-const Thing_SpawnNoFog = 137;
-const Floor_Waggle = 138;
-
-// const Line_Horizon = 9;
-const Autosave = 15;
-const Ceiling_Waggle = 38;
-const TeleportOther = 76;
-const TeleportGroup = 77;
-const TeleportInSector = 78;
-const Thing_Damage = 119;
-const Thing_Move = 125;
-const Thing_SetSpecial = 127;
-const ThrustThingZ = 128;
-const Thing_SpawnFacing = 139;
-const Thing_ChangeTID = 176;
-const Thing_Hate = 177;
-const Thing_ProjectileAimed = 178;
-const ChangeSkill = 179;
-const Thing_SetTranslation = 180;
-// const Plane_Align = 181;
-const Line_Mirror = 182;
-const Line_AlignCeiling = 183;
-const Line_AlignFloor = 184;
-const Sector_SetRotation = 185;
-const Sector_SetCeilingPanning = 186;
-const Sector_SetFloorPanning = 187;
-const Sector_SetCeilingScale = 188;
-const Sector_SetFloorScale = 189;
-const SetPlayerProperty = 191;
-const Ceiling_LowerToHighestFloor = 192;
-const Ceiling_LowerInstant = 193;
-const Ceiling_RaiseInstant = 194;
-const Ceiling_CrushRaiseAndStayA = 195;
-const Ceiling_CrushAndRaiseA = 196;
-const Ceiling_CrushAndRaiseSilentA = 197;
-const Ceiling_RaiseByValueTimes8 = 198;
-const Ceiling_LowerByValueTimes8 = 199;
-const Generic_Floor = 200;
-const Generic_Ceiling = 201;
-const Generic_Door = 202;
-const Generic_Lift = 203;
-const Generic_Stairs = 204;
-const Generic_Crusher = 205;
-const Plat_DownWaitUpStayLip = 206;
-const Plat_PerpetualRaiseLip = 207;
-const TranslucentLine = 208;
-// const Transfer_Heights = 209;
-// const Transfer_FloorLight = 210;
-// const Transfer_CeilingLight = 211;
-const Sector_SetColor = 212;
-const Sector_SetFade = 213;
-const Sector_SetFade2 = 213;
-const Sector_SetDamage = 214;
-const Teleport_Line = 215;
-const Sector_SetGravity = 216;
-const Stairs_BuildUpDoom = 217;
-const Sector_SetWind = 218;
-const Sector_SetFriction = 219;
-const Sector_SetCurrent = 220;
-const Scroll_Texture_Both = 221;
-// const Scroll_Texture_Model = 222;
-const Scroll_Floor = 223;
-const Scroll_Ceiling = 224;
-// const Scroll_Texture_Offsets = 225;
-const ACS_ExecuteAlways = 226;
-// const PointPush_SetForce = 227;
-const Plat_RaiseAndStayTx0 = 228;
-const Thing_SetGoal = 229;
-const Plat_UpByValueStayTx = 230;
-const Plat_ToggleCeiling = 231;
-const Light_StrobeDoom = 232;
-const Light_MinNeighbor = 233;
-const Light_MaxNeighbor = 234;
-const Floor_TransferTrigger = 235;
-const Floor_TransferNumeric = 236;
-const ChangeCamera = 237;
-const Floor_RaiseToLowestCeiling = 238;
-const Floor_RaiseByValueTxTy = 239;
-const Floor_RaiseByTexture = 240;
-const Floor_LowerToLowestTxTy = 241;
-const Floor_LowerToHighest = 242;
-const Exit_Normal = 243;
-const Exit_Secret = 244;
-const Elevator_RaiseToNearest = 245;
-const Elevator_MoveToFloor = 246;
-const Elevator_LowerToNearest = 247;
-const HealThing = 248;
-const Door_CloseWaitOpen = 249;
-const Floor_Donut = 250;
-const FloorAndCeiling_LowerRaise = 251;
-const Ceiling_RaiseToNearest = 252;
-const Ceiling_LowerToLowest = 253;
-const Ceiling_LowerToFloor = 254;
-const Ceiling_CrushRaiseAndStaySilA = 255;
-const Sector_SetPlaneReflection = 159;
-
diff --git a/wadsrc/gzd/shaders/light/light_brightmap.fp b/wadsrc/gzd/shaders/light/light_brightmap.fp
deleted file mode 100644
index 9fbdc41a..00000000
--- a/wadsrc/gzd/shaders/light/light_brightmap.fp
+++ /dev/null
@@ -1,21 +0,0 @@
-varying float fogcoord;
-uniform int fogenabled;
-uniform sampler2D brightmap;
-
-vec4 lightpixel(vec4 pixin)
-{
- vec4 lightcolor = gl_Color;
-
- if (fogenabled != 0)
- {
- const float LOG2E = 1.442692; // = 1/log(2)
- float factor = exp2 ( -gl_Fog.density * fogcoord * LOG2E);
- lightcolor = vec4(mix(gl_Fog.color, lightcolor, factor).rgb, lightcolor.a);
- }
-
- vec4 bright = texture2D(brightmap, gl_TexCoord[0].st);// * (vec4(1.0,1.0,1.0,1.0) - lightcolor);
- bright.a = 0.0;
- //lightcolor += bright;
- lightcolor = min (lightcolor + bright, 1.0);
- return pixin * lightcolor;
-}
diff --git a/wadsrc/gzd/shaders/light/light_doom.fp b/wadsrc/gzd/shaders/light/light_doom.fp
deleted file mode 100644
index 97e34f0e..00000000
--- a/wadsrc/gzd/shaders/light/light_doom.fp
+++ /dev/null
@@ -1,5 +0,0 @@
-
-vec4 lightpixel(vec4 pixin)
-{
- return pixin * gl_Color;
-}
diff --git a/wadsrc/gzd/shaders/light/light_eyefog.fp b/wadsrc/gzd/shaders/light/light_eyefog.fp
deleted file mode 100644
index 95113b42..00000000
--- a/wadsrc/gzd/shaders/light/light_eyefog.fp
+++ /dev/null
@@ -1,14 +0,0 @@
-varying float fogcoord;
-uniform int fogenabled;
-
-vec4 lightpixel(vec4 pixin)
-{
- if (fogenabled != 0)
- {
- const float LOG2E = 1.442692; // = 1/log(2)
- float factor = exp2 ( -gl_Fog.density * fogcoord * LOG2E);
- pixin *= gl_Color;
- return vec4(mix(gl_Fog.color, pixin, factor).rgb, pixin.a);
- }
- else return pixin * gl_Color;
-}
diff --git a/wadsrc/gzd/shaders/light/light_gold.fp b/wadsrc/gzd/shaders/light/light_gold.fp
deleted file mode 100644
index e92c3b39..00000000
--- a/wadsrc/gzd/shaders/light/light_gold.fp
+++ /dev/null
@@ -1,8 +0,0 @@
-
-vec4 lightpixel(vec4 texel)
-{
- float gray = texel.r * 0.3 + texel.g * 0.56 + texel.b * 0.14;
- float grayx = clamp(gray * 1.5, 0.0, 1.0);
- return vec4(grayx, gray * 0.5, 0.0, texel.a) * gl_Color;
-}
-
diff --git a/wadsrc/gzd/shaders/light/light_green.fp b/wadsrc/gzd/shaders/light/light_green.fp
deleted file mode 100644
index 45aa5b1e..00000000
--- a/wadsrc/gzd/shaders/light/light_green.fp
+++ /dev/null
@@ -1,8 +0,0 @@
-
-vec4 lightpixel(vec4 texel)
-{
- float gray = texel.r * 0.3 + texel.g * 0.56 + texel.b * 0.14;
- float grayx = clamp(gray * 1.5, 0.0, 1.0);
- return vec4(grayx, grayx, gray, texel.a) * gl_Color;
-}
-
diff --git a/wadsrc/gzd/shaders/light/light_inverse.fp b/wadsrc/gzd/shaders/light/light_inverse.fp
deleted file mode 100644
index 8f7bd82d..00000000
--- a/wadsrc/gzd/shaders/light/light_inverse.fp
+++ /dev/null
@@ -1,7 +0,0 @@
-
-vec4 lightpixel(vec4 texel)
-{
- float gray = 1.0 - (texel.r * 0.3 + texel.g * 0.56 + texel.b * 0.14);
- return vec4(gray, gray, gray, texel.a) * gl_Color;
-}
-
diff --git a/wadsrc/gzd/shaders/light/light_norm.fp b/wadsrc/gzd/shaders/light/light_norm.fp
deleted file mode 100644
index 97e34f0e..00000000
--- a/wadsrc/gzd/shaders/light/light_norm.fp
+++ /dev/null
@@ -1,5 +0,0 @@
-
-vec4 lightpixel(vec4 pixin)
-{
- return pixin * gl_Color;
-}
diff --git a/wadsrc/gzd/shaders/light/light_red.fp b/wadsrc/gzd/shaders/light/light_red.fp
deleted file mode 100644
index a0e407d7..00000000
--- a/wadsrc/gzd/shaders/light/light_red.fp
+++ /dev/null
@@ -1,9 +0,0 @@
-
-vec4 lightpixel(vec4 texel)
-{
- float gray = texel.r * 0.3 + texel.g * 0.56 + texel.b * 0.14;
- float grayx = clamp(gray * 1.5, 0.0, 1.0);
- return vec4(grayx, 0.0, 0.0, texel.a) * gl_Color;
-}
-
-
diff --git a/wadsrc/gzd/shaders/main.fp b/wadsrc/gzd/shaders/main.fp
deleted file mode 100644
index 3abdade9..00000000
--- a/wadsrc/gzd/shaders/main.fp
+++ /dev/null
@@ -1,15 +0,0 @@
-uniform int texturemode;
-
-void main()
-{
- vec4 texel = gettexel();
- if (texturemode == 2)
- {
- texel.a=1.0;
- }
- else if (texturemode == 1)
- {
- texel.rgb = vec3(1.0,1.0,1.0);
- }
- gl_FragColor = lightpixel(texel);
-}
\ No newline at end of file
diff --git a/wadsrc/gzd/shaders/main.vp b/wadsrc/gzd/shaders/main.vp
deleted file mode 100644
index 42846950..00000000
--- a/wadsrc/gzd/shaders/main.vp
+++ /dev/null
@@ -1,13 +0,0 @@
-varying float fogcoord;
-
-
-void main()
-{
- gl_FrontColor = gl_Color;
-
- vec4 eyeCoordPos = gl_ModelViewMatrix * gl_Vertex;
- fogcoord = -eyeCoordPos.z/eyeCoordPos.w;
-
- gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
- gl_Position = ftransform();
-}
diff --git a/wadsrc/gzd/shaders/main_desat.fp b/wadsrc/gzd/shaders/main_desat.fp
deleted file mode 100644
index da515dcd..00000000
--- a/wadsrc/gzd/shaders/main_desat.fp
+++ /dev/null
@@ -1,8 +0,0 @@
-uniform float desaturation_factor;
-
-void main()
-{
- vec4 texel = gettexel();
- float gray = texel.r * 0.3 + texel.g * 0.56 + texel.b * 0.14;
- gl_FragColor = lightpixel(mix (vec4(gray,gray,gray,texel.a), texel, desaturation_factor));
-}
\ No newline at end of file
diff --git a/wadsrc/gzd/shaders/main_nofog.vp b/wadsrc/gzd/shaders/main_nofog.vp
deleted file mode 100644
index 7ccf7fcd..00000000
--- a/wadsrc/gzd/shaders/main_nofog.vp
+++ /dev/null
@@ -1,7 +0,0 @@
-
-void main()
-{
- gl_FrontColor = gl_Color;
- gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
- gl_Position = ftransform();
-}
diff --git a/wadsrc/gzd/shaders/tex/tex_norm.fp b/wadsrc/gzd/shaders/tex/tex_norm.fp
deleted file mode 100644
index f92133b4..00000000
--- a/wadsrc/gzd/shaders/tex/tex_norm.fp
+++ /dev/null
@@ -1,7 +0,0 @@
-uniform sampler2D tex;
-
-vec4 gettexel()
-{
- vec2 texCoord = gl_TexCoord[0].st;
- return texture2D(tex, texCoord);
-}
diff --git a/wadsrc/gzd/shaders/tex/tex_warp1.fp b/wadsrc/gzd/shaders/tex/tex_warp1.fp
deleted file mode 100644
index 0f03ab38..00000000
--- a/wadsrc/gzd/shaders/tex/tex_warp1.fp
+++ /dev/null
@@ -1,16 +0,0 @@
-uniform float timer;
-uniform sampler2D tex;
-
-vec4 gettexel()
-{
- vec2 texCoord = gl_TexCoord[0].st;
-
- const float pi = 3.14159265358979323846;
- vec2 offset = vec2(0,0);
-
- offset.y = sin(pi * 2.0 * (texCoord.x + timer * 0.125)) * 0.1;
- offset.x = sin(pi * 2.0 * (texCoord.y + timer * 0.125)) * 0.1;
-
- texCoord += offset;
- return texture2D(tex, texCoord);
-}
diff --git a/wadsrc/gzd/shaders/tex/tex_warp2.fp b/wadsrc/gzd/shaders/tex/tex_warp2.fp
deleted file mode 100644
index f65c6b3d..00000000
--- a/wadsrc/gzd/shaders/tex/tex_warp2.fp
+++ /dev/null
@@ -1,17 +0,0 @@
-uniform float timer;
-uniform sampler2D tex;
-
-vec4 gettexel()
-{
- vec2 texCoord = gl_TexCoord[0].st;
-
- const float pi = 3.14159265358979323846;
- vec2 offset = vec2(0,0);
-
- float siny = sin(pi * 2.0 * (texCoord.y * 2.2 + timer * 0.75)) * 0.03;
- offset.y = siny + sin(pi * 2.0 * (texCoord.x * 0.75 + timer * 0.75)) * 0.03;
- offset.x = siny + sin(pi * 2.0 * (texCoord.x * 1.1 + timer * 0.45)) * 0.02;
-
- texCoord += offset;
- return texture2D(tex, texCoord);
-}
diff --git a/wadsrc/gzd/textures/gllight.png b/wadsrc/gzd/textures/gllight.png
deleted file mode 100644
index a3a296b9..00000000
Binary files a/wadsrc/gzd/textures/gllight.png and /dev/null differ
diff --git a/wadsrc/gzd/textures/glpart.png b/wadsrc/gzd/textures/glpart.png
deleted file mode 100644
index ddb0aea8..00000000
Binary files a/wadsrc/gzd/textures/glpart.png and /dev/null differ
diff --git a/wadsrc/gzd/textures/glpart2.png b/wadsrc/gzd/textures/glpart2.png
deleted file mode 100644
index f95255eb..00000000
Binary files a/wadsrc/gzd/textures/glpart2.png and /dev/null differ
diff --git a/wadsrc/gzd/textures/mirror.png b/wadsrc/gzd/textures/mirror.png
deleted file mode 100644
index 08a6abcb..00000000
Binary files a/wadsrc/gzd/textures/mirror.png and /dev/null differ
diff --git a/wadsrc/gzd/things.h.txt b/wadsrc/gzd/things.h.txt
deleted file mode 100644
index 25e6fb9e..00000000
--- a/wadsrc/gzd/things.h.txt
+++ /dev/null
@@ -1,224 +0,0 @@
-const PLAYER = 0;
-
-const TROOPER = 1;
-const SHOTGUY = 2;
-const ARCHVILE = 3;
-const REVENANT = 5;
-const MANCUBUS = 8;
-const CHAINGUY = 10;
-const IMP = 11;
-const DEMON = 12;
-const SPECTRE = 13;
-const CACODEMON = 14;
-const BARONOFHELL = 15;
-const HELLKNIGHT = 17;
-const LOSTSOUL = 18;
-const SPIDERMASTERMIND = 19;
-const ARACHNOTRON = 20;
-const CYBERDEMON = 21;
-const PAINELEMENTAL = 22;
-const WOLFSS = 23;
-const KEEN = 24;
-const BOSSBRAIN = 25;
-const BOSSSPIT = 26;
-const BOSSTARGET = 27;
-
-const REVENANTMISL = 6;
-const IMPSHOT = 31;
-const CACOSHOT = 32;
-const FLYINGROCKET = 33;
-const FLYINGPLASMA = 34;
-const FLYINGBFG = 35;
-const ARACHPLAZ = 36;
-const MANCUBUSSHOT = 9;
-const BARONSHOT = 16;
-const SPAWNSHOT = 28;
-
-const PUFF = 37;
-const BLOOD = 38;
-const TFOG = 39;
-const IFOG = 40;
-const TELEPORTMAN = 41;
-const EXTRABFG = 42;
-const VILEFIRE = 4;
-const SMOKE = 7;
-const SPAWNFIRE = 29;
-const PARTICLE = 145;
-
-const GREENARMOR = 43;
-const BLUEARMOR = 44;
-const HEALTHPOTION = 45;
-const ARMORHELMET = 46;
-const STIMPACK = 53;
-const MEDIKIT = 54;
-
-const BLUEKEYCARD = 47;
-const REDKEYCARD = 48;
-const YELLOWKEYCARD = 49;
-const YELLOWSKULLKEY = 50;
-const REDSKULLKEY = 51;
-const BLUESKULLKEY = 52;
-
-const SUPERCHARGE = 55;
-const INVULNERABILITY = 56;
-const BESERKPACK = 57;
-const INVISIBILITY = 58;
-const RADSUIT = 59;
-const AUTOMAP = 60;
-const LITEAMP = 61;
-const MEGASPHERE = 62;
-
-const CLIP = 63;
-const BULLETBOX = 64;
-const ROCKET = 65;
-const ROCKETBOX = 66;
-const ECELL = 67;
-const ECELLPACK = 68;
-const SHELLS = 69;
-const SHELLBOX = 70;
-const BACKPACK = 71;
-
-const BFG = 72;
-const CHAINGUN = 73;
-const CHAINSAW = 74;
-const RLAUNCHER = 75;
-const PLASMAGUN = 76;
-const SHOTGUN = 77;
-const SUPERSHOTGUN = 78;
-
-const BARREL = 30;
-const TALLTECHLAMP = 79;
-const SHORTTECHLAMP = 80;
-const FLOORLAMP = 81;
-const TALLGRNPILLAR = 82;
-const SHRTGRNPILLAR = 83;
-const TALLREDPILLAR = 84;
-const SHRTREDPILLAR = 85;
-const SKULLCOLUMN = 86;
-const HEARTCOLUMN = 87;
-const EVILEYE = 88;
-const SKULLROCK = 89;
-const GRAYTREE = 90;
-const TALLBLUFIRESTICK = 91;
-const TALLGRNFIRESTICK = 92;
-const TALLREDFIRESTICK = 93;
-const SHRTBLUFIRESTICK = 94;
-const SHRTGRNFIRESTICK = 95;
-const SHRTREDFIRESTICK = 96;
-const STALAGMITE = 97;
-const TALLTECHPILLAR = 98;
-const CANDLE = 99;
-const CANDELABRA = 100;
-const TREE = 126;
-const BURNINGBARREL = 127;
-
-const TWITCHCORPSE1 = 101;
-const TWITCHCORPSE2 = 110;
-const HANGINGMAN1 = 102;
-const HANGINGMAN2 = 103;
-const HANGINGMAN3 = 104;
-const HANGINGMAN4 = 105;
-const HANGINGMAN5 = 106;
-const HANGINGMAN6 = 107;
-const HANGINGMAN7 = 108;
-const HANGINGMAN8 = 109;
-const HANGINGMAN9 = 128;
-const HANGINGMAN10 = 129;
-const HANGINGMAN11 = 130;
-const HANGINGMAN12 = 131;
-const HANGINGMAN13 = 132;
-const HANGINGMAN14 = 133;
-
-const DEADCACO = 111;
-const DEADPLAYER = 112;
-const DEADTROOPER = 113;
-const DEADDEMON = 114;
-const DEADLOSTSOUL = 115;
-const DEADIMP = 116;
-const DEADSERGEANT = 117;
-const SLOP = 118;
-const SLOP2 = 119;
-const SKULLPOLE1 = 120;
-const SKULLPOLE2 = 122;
-const BLOODPOOL1 = 121;
-const SKULLPILE = 123;
-const BLOODPOOL2 = 134;
-const BLOODPOOL3 = 135;
-const BLOODPOOL4 = 136;
-
-const DEADCORPSE1 = 124;
-const TWITCHCORPSE3 = 125;
-
-const PUSH = 137;
-const PULL = 138;
-const DOGS = 139;
-const MF_SPECIAL = 0;
-const MF_SOLID = 1;
-const MF_SHOOTABLE = 2;
-const MF_NOSECTOR = 3;
-const MF_NOBLOCKMAP = 4;
-
-const MF_AMBUSH = 5;
-const MF_JUSTHIT = 6;
-const MF_JUSTATTACKED = 7;
-const MF_SPAWNCEILING = 8;
-const MF_NOGRAVITY = 9;
-
-const MF_DROPOFF = 10;
-const MF_PICKUP = 11;
-const MF_NOCLIP = 12;
-const MF_SLIDE = 13;
-const MF_FLOAT = 14;
-const MF_TELEPORT = 15;
-const MF_MISSILE = 16;
-const MF_DROPPED = 17;
-const MF_SHADOW = 18;
-const MF_NOBLOOD = 19;
-const MF_CORPSE = 20;
-const MF_INFLOAT = 21;
-
-const MF_COUNTKILL = 22;
-const MF_COUNTITEM = 23;
-
-const MF_SKULLFLY = 24;
-
-const MF_NOTDMATCH = 25;
-
-const MF_TRANSLATION = 26;
-
-
-const PLASMA_L = 1;
-const PLASMAEXP_L = 2;
-const ROCKET_L = 3;
-const ROCKETEXP_L = 4;
-const BFG_L = 5;
-const BFGEXP_L = 6;
-const BLUETALL_L = 7;
-const GREENTALL_L = 8;
-const REDTALL_L = 9;
-const BLUESMALL_L = 10;
-const GREENSMALL_L = 11;
-const REDSMALL_L = 12;
-const TECHLAMP_L = 13;
-const TECHLAMP2_L = 14;
-const COLUMN_L = 15;
-const CANDLE_L = 16;
-const CANDLEABRE_L = 17;
-const REDBALL_L = 18;
-const GREENBALL_L = 19;
-const ROCKET2_L = 20;
-
-const CORONA_TYPE = 0;
-const CORONA_OFFX = 1;
-const CORONA_OFFY = 2;
-const CORONA_COLOR = 3;
-const CORONA_SIZE = 4;
-
-const LIGHT_COLOR = 5;
-const LIGHT_RADIUS = 6;
-const UNDEFINED_SPR = 0;
-const CORONA_SPR = 1;
-const DYNLIGHT_SPR = 2;
-const LIGHT_SPR = 3;
-const ROCKET_SPR = 19;
-
\ No newline at end of file
diff --git a/wadsrc/hamoback.png b/wadsrc/hamoback.png
deleted file mode 100644
index 4fb21c05..00000000
Binary files a/wadsrc/hamoback.png and /dev/null differ
diff --git a/wadsrc/icebreak.flac b/wadsrc/icebreak.flac
deleted file mode 100644
index ee3a6bf9..00000000
Binary files a/wadsrc/icebreak.flac and /dev/null differ
diff --git a/wadsrc/iceca0.png b/wadsrc/iceca0.png
deleted file mode 100644
index bc94b042..00000000
Binary files a/wadsrc/iceca0.png and /dev/null differ
diff --git a/wadsrc/icecb0.png b/wadsrc/icecb0.png
deleted file mode 100644
index d94cb04f..00000000
Binary files a/wadsrc/icecb0.png and /dev/null differ
diff --git a/wadsrc/icecc0.png b/wadsrc/icecc0.png
deleted file mode 100644
index d8f4a378..00000000
Binary files a/wadsrc/icecc0.png and /dev/null differ
diff --git a/wadsrc/icecd0.png b/wadsrc/icecd0.png
deleted file mode 100644
index a90eb305..00000000
Binary files a/wadsrc/icecd0.png and /dev/null differ
diff --git a/wadsrc/icedeath.flac b/wadsrc/icedeath.flac
deleted file mode 100644
index 4a8ef72a..00000000
Binary files a/wadsrc/icedeath.flac and /dev/null differ
diff --git a/wadsrc/in_epi1.txt b/wadsrc/in_epi1.txt
deleted file mode 100644
index 213e80cd..00000000
--- a/wadsrc/in_epi1.txt
+++ /dev/null
@@ -1,89 +0,0 @@
-Background wimap0
-Splat wisplat
-Pointer wiurh0 wiurh1
-
-Animation 224 104 11
-{
- WIA00000
- WIA00001
- WIA00002
-}
-
-Animation 184 160 11
-{
- WIA00100
- WIA00101
- WIA00102
-}
-
-Animation 112 136 11
-{
- WIA00200
- WIA00201
- WIA00202
-}
-
-Animation 72 112 11
-{
- WIA00300
- WIA00301
- WIA00302
-}
-
-Animation 88 96 11
-{
- WIA00400
- WIA00401
- WIA00402
-}
-
-Animation 64 48 11
-{
- WIA00500
- WIA00501
- WIA00502
-}
-
-Animation 192 40 11
-{
- WIA00600
- WIA00601
- WIA00602
-}
-
-Animation 136 16 11
-{
- WIA00700
- WIA00701
- WIA00702
-}
-
-Animation 80 16 11
-{
- WIA00800
- WIA00801
- WIA00802
-}
-
-
-Animation 64 24 11
-{
- WIA00900
- WIA00901
- WIA00902
-}
-
-
-Spots
-{
- E1M1 185 164
- E1M2 148 143
- E1M3 69 122
- E1M4 209 102
- E1M5 116 89
- E1M6 166 55
- E1M7 71 56
- E1M8 135 29
- E1M9 71 24
-}
-
\ No newline at end of file
diff --git a/wadsrc/in_epi2.txt b/wadsrc/in_epi2.txt
deleted file mode 100644
index 4570b943..00000000
--- a/wadsrc/in_epi2.txt
+++ /dev/null
@@ -1,46 +0,0 @@
-Background wimap1
-Splat wisplat
-Pointer wiurh0 wiurh1
-
-// IfEntering and IfLeaving are mutually exclusive so these have to be defined twice!
-
-IfLeaving E2M1 Pic 128 136 WIA10000
-IfLeaving E2M2 Pic 128 136 WIA10100
-IfLeaving E2M3 Pic 128 136 WIA10200
-IfLeaving E2M4 Pic 128 136 WIA10300
-IfLeaving E2M5 Pic 128 136 WIA10400
-IfLeaving E2M6 Pic 128 136 WIA10500
-IfLeaving E2M7 Pic 128 136 WIA10600
-IfLeaving E2M9 Pic 128 136 WIA10400
-
-IfEntering E2M2 Pic 128 136 WIA10000
-IfEntering E2M3 Pic 128 136 WIA10100
-IfEntering E2M4 Pic 128 136 WIA10200
-IfEntering E2M5 Pic 128 136 WIA10300
-IfEntering E2M6 Pic 128 136 WIA10400
-IfEntering E2M7 Pic 128 136 WIA10500
-IfEntering E2M8 Pic 128 136 WIA10600
-IfEntering E2M9 Pic 128 136 WIA10400
-
-IfVisited E2M9 Pic 192 144 WIA10702
-
-IfEntering E2M9 Animation 192 144 11 ONCE
-{
- WIA10700
- WIA10701
- WIA10702
-}
-
-
-Spots
-{
- E2M1 254 25
- E2M2 97 50
- E2M3 188 64
- E2M4 128 78
- E2M5 214 92
- E2M6 133 130
- E2M7 208 136
- E2M8 148 140
- E2M9 235 158
-}
diff --git a/wadsrc/in_epi3.txt b/wadsrc/in_epi3.txt
deleted file mode 100644
index d19aff6d..00000000
--- a/wadsrc/in_epi3.txt
+++ /dev/null
@@ -1,60 +0,0 @@
-Background wimap2
-Splat wisplat
-Pointer wiurh0 wiurh1
-
-
-Animation 104 168 11
-{
- WIA20000
- WIA20001
- WIA20002
-}
-
-Animation 40 136 11
-{
- WIA20100
- WIA20101
- WIA20102
-}
-
-Animation 160 96 11
-{
- WIA20200
- WIA20201
- WIA20202
-}
-
-Animation 104 80 11
-{
- WIA20300
- WIA20301
- WIA20302
-}
-
-Animation 120 32 11
-{
- WIA20400
- WIA20401
- WIA20402
-}
-
-Animation 40 0 8
-{
- WIA20500
- WIA20501
- WIA20502
-}
-
-
-Spots
-{
- E3M1 156 168
- E3M2 48 154
- E3M3 174 95
- E3M4 265 75
- E3M5 130 48
- E3M6 279 23
- E3M7 198 48
- E3M8 140 25
- E3M9 281 136
-}
diff --git a/wadsrc/in_htc1.txt b/wadsrc/in_htc1.txt
deleted file mode 100644
index 1ca298d6..00000000
--- a/wadsrc/in_htc1.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-NoAutostartMap
-Background mape1
-Splat in_x
-Pointer in_yah
-
-Spots
-{
- E1M1 172 78
- E1M2 86 90
- E1M3 73 66
- E1M4 159 95
- E1M5 148 126
- E1M6 132 54
- E1M7 131 74
- E1M8 208 138
- E1M9 52 101
-}
-
diff --git a/wadsrc/in_htc2.txt b/wadsrc/in_htc2.txt
deleted file mode 100644
index 548e6817..00000000
--- a/wadsrc/in_htc2.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-NoAutostartMap
-Background mape2
-Splat in_x
-Pointer in_yah
-
-Spots
-{
- E2M1 218 57
- E2M2 137 81
- E2M3 155 124
- E2M4 171 68
- E2M5 250 86
- E2M6 136 98
- E2M7 203 90
- E2M8 220 140
- E2M9 279 106
-}
-
diff --git a/wadsrc/in_htc3.txt b/wadsrc/in_htc3.txt
deleted file mode 100644
index 3dd5597c..00000000
--- a/wadsrc/in_htc3.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-NoAutostartMap
-Background mape3
-Splat in_x
-Pointer in_yah
-
-Spots
-{
- E3M1 86 99
- E3M2 124 103
- E3M3 154 79
- E3M4 202 83
- E3M5 178 59
- E3M6 142 58
- E3M7 219 66
- E3M8 247 57
- E3M9 107 80
-}
-
diff --git a/wadsrc/indexfont.fon b/wadsrc/indexfont.fon
deleted file mode 100644
index eb8188e2..00000000
Binary files a/wadsrc/indexfont.fon and /dev/null differ
diff --git a/wadsrc/invgeml1.png b/wadsrc/invgeml1.png
deleted file mode 100644
index 37d71eb3..00000000
Binary files a/wadsrc/invgeml1.png and /dev/null differ
diff --git a/wadsrc/invgeml2.png b/wadsrc/invgeml2.png
deleted file mode 100644
index 3617d58b..00000000
Binary files a/wadsrc/invgeml2.png and /dev/null differ
diff --git a/wadsrc/invgemr1.png b/wadsrc/invgemr1.png
deleted file mode 100644
index f66b8383..00000000
Binary files a/wadsrc/invgemr1.png and /dev/null differ
diff --git a/wadsrc/invgemr2.png b/wadsrc/invgemr2.png
deleted file mode 100644
index 9b229459..00000000
Binary files a/wadsrc/invgemr2.png and /dev/null differ
diff --git a/wadsrc/languages/english-us.txt b/wadsrc/languages/english-us.txt
deleted file mode 100644
index 93f91a8b..00000000
--- a/wadsrc/languages/english-us.txt
+++ /dev/null
@@ -1,1292 +0,0 @@
-/* U.S. English. (Sorry, it's not English English.) */
-
-[enu default]
-
-D_DEVSTR = "Useless mode ON.\n";
-D_CDROM = "CD-ROM Version: zdoom.ini from c:\\zdoomdat\n";
-PRESSKEY = "press a key.";
-PRESSYN = "press y or n.";
-
-QUITMSG = "are you sure you want to\nquit this great game?";
-
-// Quit Doom 1 messages
-QUITMSG1 = "please don't leave, there's more\ndemons to toast!";
-QUITMSG2 = "let's beat it -- this is turning\ninto a bloodbath!";
-QUITMSG3 = "i wouldn't leave if i were you.\ndos is much worse.";
-QUITMSG4 = "you're trying to say you like dos\nbetter than me, right?";
-QUITMSG5 = "don't leave yet -- there's a\ndemon around that corner!";
-QUITMSG6 = "ya know, next time you come in here\ni'm gonna toast ya.";
-QUITMSG7 = "go ahead and leave. see if i care.";
-
-// Quit Doom II messages
-QUITMSG8 = "you want to quit?\nthen, thou hast lost an eighth!";
-QUITMSG9 = "don't go now, there's a \ndimensional shambler waiting\nat the dos prompt!";
-QUITMSG10 = "get outta here and go back\nto your boring programs.";
-QUITMSG11 = "if i were your boss, i'd \n deathmatch ya in a minute!";
-QUITMSG12 = "look, bud. you leave now\nand you forfeit your body count!";
-QUITMSG13 = "just leave. when you come\nback, i'll be waiting with a bat.";
-QUITMSG14 = "you're lucky i don't smack\nyou for thinking about leaving.";
-
-// Quit Strife messages
-QUITMSG15 = "where are you going?!\nwhat about the rebellion?";
-QUITMSG16 = "carnage interruptus...\nwhat a tease!";
-QUITMSG17 = "but you're the hope\n-- my only chance!!";
-QUITMSG18 = "nobody walks out on blackbird.";
-QUITMSG19 = "i thought you were different...";
-QUITMSG20 = "fine! just kill and run!";
-QUITMSG21 = "you can quit...\nbut you can't hide...";
-QUITMSG22 = "whaaa, what's the matter?\nmommy says dinnertime?";
-
-LOADNET = "you can't do load while in a net game!\n\npress a key.";
-QLOADNET = "you can't quickload during a netgame!\n\npress a key.";
-QSAVESPOT = "you haven't picked a quicksave slot yet!\n\npress a key.";
-SAVEDEAD = "you can't save if you aren't playing!\n\npress a key.";
-QSPROMPT = "quicksave over your game named\n\n'%s'?\n\npress y or n.";
-QLPROMPT = "do you want to quickload the game named\n\n'%s'?\n\npress y or n.";
-NEWGAME = "you can't start a new game\nwhile in a network game.\n\npress a key.";
-NIGHTMARE = "are you sure? this skill level\nisn't even remotely fair.\n\npress y or n.";
-SWSTRING = "this is the shareware version of doom.\n\nyou need to order the entire trilogy.\n\npress a key.";
-MSGOFF = "Messages OFF";
-MSGON = "Messages ON";
-NETEND = "you can't end a netgame!\n\npress a key.";
-ENDGAME = "are you sure you want to end the game?\n\npress y or n.";
-DOSY = "(press y to quit)";
-EMPTYSTRING = "empty slot";
-GOTARMOR = "Picked up the armor.";
-GOTMEGA = "Picked up the MegaArmor!";
-GOTHTHBONUS = "Picked up a health bonus.";
-GOTARMBONUS = "Picked up an armor bonus.";
-GOTSTIM = "Picked up a stimpack.";
-GOTMEDINEED = "Picked up a medikit that you REALLY need!";
-GOTMEDIKIT = "Picked up a medikit.";
-GOTSUPER = "Supercharge!";
-GOTBLUECARD = "Picked up a blue keycard.";
-GOTYELWCARD = "Picked up a yellow keycard.";
-GOTREDCARD = "Picked up a red keycard.";
-GOTBLUESKUL = "Picked up a blue skull key.";
-GOTYELWSKUL = "Picked up a yellow skull key.";
-GOTREDSKUL = "Picked up a red skull key.";
-GOTINVUL = "Invulnerability!";
-GOTBERSERK = "Berserk!";
-GOTINVIS = "Partial Invisibility";
-GOTSUIT = "Radiation Shielding Suit";
-GOTMAP = "Computer Area Map";
-GOTVISOR = "Light Amplification Visor";
-GOTMSPHERE = "MegaSphere!";
-GOTCLIP = "Picked up a clip.";
-GOTCLIPBOX = "Picked up a box of bullets.";
-GOTROCKET = "Picked up a rocket.";
-GOTROCKBOX = "Picked up a box of rockets.";
-GOTCELL = "Picked up an energy cell.";
-GOTCELLBOX = "Picked up an energy cell pack.";
-GOTSHELLS = "Picked up 4 shotgun shells.";
-GOTSHELLBOX = "Picked up a box of shotgun shells.";
-GOTBACKPACK = "Picked up a backpack full of ammo!";
-GOTBFG9000 = "You got the BFG9000! Oh, yes.";
-GOTCHAINGUN = "You got the chaingun!";
-GOTCHAINSAW = "A chainsaw! Find some meat!";
-GOTLAUNCHER = "You got the rocket launcher!";
-GOTPLASMA = "You got the plasma gun!";
-GOTSHOTGUN = "You got the shotgun!";
-GOTSHOTGUN2 = "You got the super shotgun!";
-PD_BLUEO = "You need a blue key to activate this object";
-PD_REDO = "You need a red key to activate this object";
-PD_YELLOWO = "You need a yellow key to activate this object";
-PD_BLUEK = "You need a blue key to open this door";
-PD_REDK = "You need a red key to open this door";
-PD_YELLOWK = "You need a yellow key to open this door";
-PD_BLUECO = "You need a blue card to activate this object";
-PD_REDCO = "You need a red card to activate this object";
-PD_YELLOWCO = "You need a yellow card to activate this object";
-PD_BLUESO = "You need a blue skull to activate this object";
-PD_REDSO = "You need a red skull to activate this object";
-PD_YELLOWSO = "You need a yellow skull to activate this object";
-GGSAVED = "game saved.";
-HUSTR_MSGU = "[Message unsent]";
-PICKUP_PISTOL_DROPPED = "Picked up a pistol.";
-
-// Level names
-HUSTR_E1M1 = "E1M1: Hangar";
-HUSTR_E1M2 = "E1M2: Nuclear Plant";
-HUSTR_E1M3 = "E1M3: Toxin Refinery";
-HUSTR_E1M4 = "E1M4: Command Control";
-HUSTR_E1M5 = "E1M5: Phobos Lab";
-HUSTR_E1M6 = "E1M6: Central Processing";
-HUSTR_E1M7 = "E1M7: Computer Station";
-HUSTR_E1M8 = "E1M8: Phobos Anomaly";
-HUSTR_E1M9 = "E1M9: Military Base";
-HUSTR_E2M1 = "E2M1: Deimos Anomaly";
-HUSTR_E2M2 = "E2M2: Containment Area";
-HUSTR_E2M3 = "E2M3: Refinery";
-HUSTR_E2M4 = "E2M4: Deimos Lab";
-HUSTR_E2M5 = "E2M5: Command Center";
-HUSTR_E2M6 = "E2M6: Halls of the Damned";
-HUSTR_E2M7 = "E2M7: Spawning Vats";
-HUSTR_E2M8 = "E2M8: Tower of Babel";
-HUSTR_E2M9 = "E2M9: Fortress of Mystery";
-HUSTR_E3M1 = "E3M1: Hell Keep";
-HUSTR_E3M2 = "E3M2: Slough of Despair";
-HUSTR_E3M3 = "E3M3: Pandemonium";
-HUSTR_E3M4 = "E3M4: House of Pain";
-HUSTR_E3M5 = "E3M5: Unholy Cathedral";
-HUSTR_E3M6 = "E3M6: Mt. Erebus";
-HUSTR_E3M7 = "E3M7: Limbo";
-HUSTR_E3M8 = "E3M8: Dis";
-HUSTR_E3M9 = "E3M9: Warrens";
-HUSTR_E4M1 = "E4M1: Hell Beneath";
-HUSTR_E4M2 = "E4M2: Perfect Hatred";
-HUSTR_E4M3 = "E4M3: Sever The Wicked";
-HUSTR_E4M4 = "E4M4: Unruly Evil";
-HUSTR_E4M5 = "E4M5: They Will Repent";
-HUSTR_E4M6 = "E4M6: Against Thee Wickedly";
-HUSTR_E4M7 = "E4M7: And Hell Followed";
-HUSTR_E4M8 = "E4M8: Unto The Cruel";
-HUSTR_E4M9 = "E4M9: Fear";
-
-HUSTR_1 = "level 1: entryway";
-HUSTR_2 = "level 2: underhalls";
-HUSTR_3 = "level 3: the gantlet";
-HUSTR_4 = "level 4: the focus";
-HUSTR_5 = "level 5: the waste tunnels";
-HUSTR_6 = "level 6: the crusher";
-HUSTR_7 = "level 7: dead simple";
-HUSTR_8 = "level 8: tricks and traps";
-HUSTR_9 = "level 9: the pit";
-HUSTR_10 = "level 10: refueling base";
-HUSTR_11 = "level 11: 'o' of destruction!";
-HUSTR_12 = "level 12: the factory";
-HUSTR_13 = "level 13: downtown";
-HUSTR_14 = "level 14: the inmost dens";
-HUSTR_15 = "level 15: industrial zone";
-HUSTR_16 = "level 16: suburbs";
-HUSTR_17 = "level 17: tenements";
-HUSTR_18 = "level 18: the courtyard";
-HUSTR_19 = "level 19: the citadel";
-HUSTR_20 = "level 20: gotcha!";
-HUSTR_21 = "level 21: nirvana";
-HUSTR_22 = "level 22: the catacombs";
-HUSTR_23 = "level 23: barrels o' fun";
-HUSTR_24 = "level 24: the chasm";
-HUSTR_25 = "level 25: bloodfalls";
-HUSTR_26 = "level 26: the abandoned mines";
-HUSTR_27 = "level 27: monster condo";
-HUSTR_28 = "level 28: the spirit world";
-HUSTR_29 = "level 29: the living end";
-HUSTR_30 = "level 30: icon of sin";
-HUSTR_31 = "level 31: wolfenstein";
-HUSTR_32 = "level 32: grosse";
-
-PHUSTR_1 = "level 1: congo";
-PHUSTR_2 = "level 2: well of souls";
-PHUSTR_3 = "level 3: aztec";
-PHUSTR_4 = "level 4: caged";
-PHUSTR_5 = "level 5: ghost town";
-PHUSTR_6 = "level 6: baron's lair";
-PHUSTR_7 = "level 7: caughtyard";
-PHUSTR_8 = "level 8: realm";
-PHUSTR_9 = "level 9: abattoire";
-PHUSTR_10 = "level 10: onslaught";
-PHUSTR_11 = "level 11: hunted";
-PHUSTR_12 = "level 12: speed";
-PHUSTR_13 = "level 13: the crypt";
-PHUSTR_14 = "level 14: genesis";
-PHUSTR_15 = "level 15: the twilight";
-PHUSTR_16 = "level 16: the omen";
-PHUSTR_17 = "level 17: compound";
-PHUSTR_18 = "level 18: neurosphere";
-PHUSTR_19 = "level 19: nme";
-PHUSTR_20 = "level 20: the death domain";
-PHUSTR_21 = "level 21: slayer";
-PHUSTR_22 = "level 22: impossible mission";
-PHUSTR_23 = "level 23: tombstone";
-PHUSTR_24 = "level 24: the final frontier";
-PHUSTR_25 = "level 25: the temple of darkness";
-PHUSTR_26 = "level 26: bunker";
-PHUSTR_27 = "level 27: anti-christ";
-PHUSTR_28 = "level 28: the sewers";
-PHUSTR_29 = "level 29: odyssey of noises";
-PHUSTR_30 = "level 30: the gateway of hell";
-PHUSTR_31 = "level 31: cyberden";
-PHUSTR_32 = "level 32: go 2 it";
-
-THUSTR_1 = "level 1: system control";
-THUSTR_2 = "level 2: human bbq";
-THUSTR_3 = "level 3: power control";
-THUSTR_4 = "level 4: wormhole";
-THUSTR_5 = "level 5: hanger";
-THUSTR_6 = "level 6: open season";
-THUSTR_7 = "level 7: prison";
-THUSTR_8 = "level 8: metal";
-THUSTR_9 = "level 9: stronghold";
-THUSTR_10 = "level 10: redemption";
-THUSTR_11 = "level 11: storage facility";
-THUSTR_12 = "level 12: crater";
-THUSTR_13 = "level 13: nukage processing";
-THUSTR_14 = "level 14: steel works";
-THUSTR_15 = "level 15: dead zone";
-THUSTR_16 = "level 16: deepest reaches";
-THUSTR_17 = "level 17: processing area";
-THUSTR_18 = "level 18: mill";
-THUSTR_19 = "level 19: shipping/respawning";
-THUSTR_20 = "level 20: central processing";
-THUSTR_21 = "level 21: administration center";
-THUSTR_22 = "level 22: habitat";
-THUSTR_23 = "level 23: lunar mining project";
-THUSTR_24 = "level 24: quarry";
-THUSTR_25 = "level 25: baron's den";
-THUSTR_26 = "level 26: ballistyx";
-THUSTR_27 = "level 27: mount pain";
-THUSTR_28 = "level 28: heck";
-THUSTR_29 = "level 29: river styx";
-THUSTR_30 = "level 30: last call";
-THUSTR_31 = "level 31: pharaoh";
-THUSTR_32 = "level 32: caribbean";
-
-HUSTR_TALKTOSELF1 = "You mumble to yourself";
-HUSTR_TALKTOSELF2 = "Who's there?";
-HUSTR_TALKTOSELF3 = "You scare yourself";
-HUSTR_TALKTOSELF4 = "You start to rave";
-HUSTR_TALKTOSELF5 = "You've lost it...";
-HUSTR_MESSAGESENT = "[Message Sent]";
-
-AMSTR_FOLLOWON = "Follow Mode ON";
-AMSTR_FOLLOWOFF = "Follow Mode OFF";
-AMSTR_GRIDON = "Grid ON";
-AMSTR_GRIDOFF = "Grid OFF";
-AMSTR_MARKEDSPOT = "Marked Spot";
-AMSTR_MARKSCLEARED = "All Marks Cleared";
-STSTR_MUS = "Music Change";
-STSTR_NOMUS = "IMPOSSIBLE SELECTION";
-STSTR_DQDON = "Degreelessness Mode ON";
-STSTR_DQDOFF = "Degreelessness Mode OFF";
-STSTR_KFAADDED = "Very Happy Ammo Added";
-STSTR_FAADDED = "Ammo (no keys) Added";
-STSTR_NCON = "No Clipping Mode ON";
-STSTR_NCOFF = "No Clipping Mode OFF";
-STSTR_BEHOLD = "inVuln, Str, Inviso, Rad, Allmap, or Lite-amp";
-STSTR_BEHOLDX = "Power-up Toggled";
-STSTR_CHOPPERS = "... doesn't suck - GM";
-STSTR_CLEV = "Changing Level...\n";
-
-E1TEXT =
- "Once you beat the big badasses and\n"
- "clean out the moon base you're supposed\n"
- "to win, aren't you? Aren't you? Where's\n"
- "your fat reward and ticket home? What\n"
- "the hell is this? It's not supposed to\n"
- "end this way!\n"
- "\n"
- "It stinks like rotten meat, but looks\n"
- "like the lost Deimos base. Looks like\n"
- "you're stuck on The Shores of Hell.\n"
- "The only way out is through.\n"
- "\n"
- "To continue the DOOM experience, play\n"
- "The Shores of Hell and its amazing\n"
- "sequel, Inferno!\n";
-E2TEXT =
- "You've done it! The hideous cyber-\n"
- "demon lord that ruled the lost Deimos\n"
- "moon base has been slain and you\n"
- "are triumphant! But ... where are\n"
- "you? You clamber to the edge of the\n"
- "moon and look down to see the awful\n"
- "truth.\n"
- "\n"
- "Deimos floats above Hell itself!\n"
- "You've never heard of anyone escaping\n"
- "from Hell, but you'll make the bastards\n"
- "sorry they ever heard of you! Quickly,\n"
- "you rappel down to the surface of\n"
- "Hell.\n"
- "\n"
- "Now, it's on to the final chapter of\n"
- "DOOM! -- Inferno.";
-E3TEXT =
- "The loathsome spiderdemon that\n"
- "masterminded the invasion of the moon\n"
- "bases and caused so much death has had\n"
- "its ass kicked for all time.\n"
- "\n"
- "A hidden doorway opens and you enter.\n"
- "You've proven too tough for Hell to\n"
- "contain, and now Hell at last plays\n"
- "fair -- for you emerge from the door\n"
- "to see the green fields of Earth!\n"
- "Home at last.\n"
- "\n"
- "You wonder what's been happening on\n"
- "Earth while you were battling evil\n"
- "unleashed. It's good that no Hell-\n"
- "spawn could have come through that\n"
- "door with you ...";
-E4TEXT =
- "the spider mastermind must have sent forth\n"
- "its legions of hellspawn before your\n"
- "final confrontation with that terrible\n"
- "beast from hell. but you stepped forward\n"
- "and brought forth eternal damnation and\n"
- "suffering upon the horde as a true hero\n"
- "would in the face of something so evil.\n"
- "\n"
- "besides, someone was gonna pay for what\n"
- "happened to daisy, your pet rabbit.\n"
- "\n"
- "but now, you see spread before you more\n"
- "potential pain and gibbitude as a nation\n"
- "of demons run amok among our cities.\n"
- "\n"
- "next stop, hell on earth!";
-C1TEXT =
- "YOU HAVE ENTERED DEEPLY INTO THE INFESTED\n"
- "STARPORT. BUT SOMETHING IS WRONG. THE\n"
- "MONSTERS HAVE BROUGHT THEIR OWN REALITY\n"
- "WITH THEM, AND THE STARPORT'S TECHNOLOGY\n"
- "IS BEING SUBVERTED BY THEIR PRESENCE.\n"
- "\n"
- "AHEAD, YOU SEE AN OUTPOST OF HELL, A\n"
- "FORTIFIED ZONE. IF YOU CAN GET PAST IT,\n"
- "YOU CAN PENETRATE INTO THE HAUNTED HEART\n"
- "OF THE STARBASE AND FIND THE CONTROLLING\n"
- "SWITCH WHICH HOLDS EARTH'S POPULATION\n"
- "HOSTAGE.";
-C2TEXT =
- "YOU HAVE WON! YOUR VICTORY HAS ENABLED\n"
- "HUMANKIND TO EVACUATE EARTH AND ESCAPE\n"
- "THE NIGHTMARE. NOW YOU ARE THE ONLY\n"
- "HUMAN LEFT ON THE FACE OF THE PLANET.\n"
- "CANNIBAL MUTATIONS, CARNIVOROUS ALIENS,\n"
- "AND EVIL SPIRITS ARE YOUR ONLY NEIGHBORS.\n"
- "YOU SIT BACK AND WAIT FOR DEATH, CONTENT\n"
- "THAT YOU HAVE SAVED YOUR SPECIES.\n"
- "\n"
- "BUT THEN, EARTH CONTROL BEAMS DOWN A\n"
- "MESSAGE FROM SPACE: \"SENSORS HAVE LOCATED\n"
- "THE SOURCE OF THE ALIEN INVASION. IF YOU\n"
- "GO THERE, YOU MAY BE ABLE TO BLOCK THEIR\n"
- "ENTRY. THE ALIEN BASE IS IN THE HEART OF\n"
- "YOUR OWN HOME CITY, NOT FAR FROM THE\n"
- "STARPORT.\" SLOWLY AND PAINFULLY YOU GET\n"
- "UP AND RETURN TO THE FRAY.";
-C3TEXT =
- "YOU ARE AT THE CORRUPT HEART OF THE CITY,\n"
- "SURROUNDED BY THE CORPSES OF YOUR ENEMIES.\n"
- "YOU SEE NO WAY TO DESTROY THE CREATURES'\n"
- "ENTRYWAY ON THIS SIDE, SO YOU CLENCH YOUR\n"
- "TEETH AND PLUNGE THROUGH IT.\n"
- "\n"
- "THERE MUST BE A WAY TO CLOSE IT ON THE\n"
- "OTHER SIDE. WHAT DO YOU CARE IF YOU'VE\n"
- "GOT TO GO THROUGH HELL TO GET TO IT?";
-C4TEXT =
- "THE HORRENDOUS VISAGE OF THE BIGGEST\n"
- "DEMON YOU'VE EVER SEEN CRUMBLES BEFORE\n"
- "YOU, AFTER YOU PUMP YOUR ROCKETS INTO\n"
- "HIS EXPOSED BRAIN. THE MONSTER SHRIVELS\n"
- "UP AND DIES, ITS THRASHING LIMBS\n"
- "DEVASTATING UNTOLD MILES OF HELL'S\n"
- "SURFACE.\n"
- "\n"
- "YOU'VE DONE IT. THE INVASION IS OVER.\n"
- "EARTH IS SAVED. HELL IS A WRECK. YOU\n"
- "WONDER WHERE BAD FOLKS WILL GO WHEN THEY\n"
- "DIE, NOW. WIPING THE SWEAT FROM YOUR\n"
- "FOREHEAD YOU BEGIN THE LONG TREK BACK\n"
- "HOME. REBUILDING EARTH OUGHT TO BE A\n"
- "LOT MORE FUN THAN RUINING IT WAS.\n";
-C5TEXT =
- "CONGRATULATIONS, YOU'VE FOUND THE SECRET\n"
- "LEVEL! LOOKS LIKE IT'S BEEN BUILT BY\n"
- "HUMANS, RATHER THAN DEMONS. YOU WONDER\n"
- "WHO THE INMATES OF THIS CORNER OF HELL\n"
- "WILL BE.";
-C6TEXT =
- "CONGRATULATIONS, YOU'VE FOUND THE\n"
- "SUPER SECRET LEVEL! YOU'D BETTER\n"
- "BLAZE THROUGH THIS ONE!\n";
-P1TEXT =
- "You gloat over the steaming carcass of the\n"
- "Guardian. With its death, you've wrested\n"
- "the Accelerator from the stinking claws\n"
- "of Hell. You relax and glance around the\n"
- "room. Damn! There was supposed to be at\n"
- "least one working prototype, but you can't\n"
- "see it. The demons must have taken it.\n"
- "\n"
- "You must find the prototype, or all your\n"
- "struggles will have been wasted. Keep\n"
- "moving, keep fighting, keep killing.\n"
- "Oh yes, keep living, too.";
-P2TEXT =
- "Even the deadly Arch-Vile labyrinth could\n"
- "not stop you, and you've gotten to the\n"
- "prototype Accelerator which is soon\n"
- "efficiently and permanently deactivated.\n"
- "\n"
- "You're good at that kind of thing.";
-P3TEXT =
- "You've bashed and battered your way into\n"
- "the heart of the devil-hive. Time for a\n"
- "Search-and-Destroy mission, aimed at the\n"
- "Gatekeeper, whose foul offspring is\n"
- "cascading to Earth. Yeah, he's bad. But\n"
- "you know who's worse!\n"
- "\n"
- "Grinning evilly, you check your gear, and\n"
- "get ready to give the bastard a little Hell\n"
- "of your own making!";
-P4TEXT =
- "The Gatekeeper's evil face is splattered\n"
- "all over the place. As its tattered corpse\n"
- "collapses, an inverted Gate forms and\n"
- "sucks down the shards of the last\n"
- "prototype Accelerator, not to mention the\n"
- "few remaining demons. You're done. Hell\n"
- "has gone back to pounding bad dead folks \n"
- "instead of good live ones. Remember to\n"
- "tell your grandkids to put a rocket\n"
- "launcher in your coffin. If you go to Hell\n"
- "when you die, you'll need it for some\n"
- "final cleaning-up ...";
-P5TEXT =
- "You've found the second-hardest level we\n"
- "got. Hope you have a saved game a level or\n"
- "two previous. If not, be prepared to die\n"
- "aplenty. For master marines only.";
-P6TEXT =
- "Betcha wondered just what WAS the hardest\n"
- "level we had ready for ya? Now you know.\n"
- "No one gets out alive.";
-T1TEXT =
- "You've fought your way out of the infested\n"
- "experimental labs. It seems that UAC has\n"
- "once again gulped it down. With their\n"
- "high turnover, it must be hard for poor\n"
- "old UAC to buy corporate health insurance\n"
- "nowadays..\n"
- "\n"
- "Ahead lies the military complex, now\n"
- "swarming with diseased horrors hot to get\n"
- "their teeth into you. With luck, the\n"
- "complex still has some warlike ordnance\n"
- "laying around.";
-T2TEXT =
- "You hear the grinding of heavy machinery\n"
- "ahead. You sure hope they're not stamping\n"
- "out new hellspawn, but you're ready to\n"
- "ream out a whole herd if you have to.\n"
- "They might be planning a blood feast, but\n"
- "you feel about as mean as two thousand\n"
- "maniacs packed into one mad killer.\n"
- "\n"
- "You don't plan to go down easy.";
-T3TEXT =
- "The vista opening ahead looks real damn\n"
- "familiar. Smells familiar, too -- like\n"
- "fried excrement. You didn't like this\n"
- "place before, and you sure as hell ain't\n"
- "planning to like it now. The more you\n"
- "brood on it, the madder you get.\n"
- "Hefting your gun, an evil grin trickles\n"
- "onto your face. Time to take some names.";
-T4TEXT =
- "Suddenly, all is silent, from one horizon\n"
- "to the other. The agonizing echo of Hell\n"
- "fades away, the nightmare sky turns to\n"
- "blue, the heaps of monster corpses start \n"
- "to evaporate along with the evil stench \n"
- "that filled the air. Jeeze, maybe you've\n"
- "done it. Have you really won?\n"
- "\n"
- "Something rumbles in the distance.\n"
- "A blue light begins to glow inside the\n"
- "ruined skull of the demon-spitter.";
-T5TEXT =
- "What now? Looks totally different. Kind\n"
- "of like King Tut's condo. Well,\n"
- "whatever's here can't be any worse\n"
- "than usual. Can it? Or maybe it's best\n"
- "to let sleeping gods lie..";
-T6TEXT =
- "Time for a vacation. You've burst the\n"
- "bowels of hell and by golly you're ready\n"
- "for a break. You mutter to yourself,\n"
- "Maybe someone else can kick Hell's ass\n"
- "next time around. Ahead lies a quiet town,\n"
- "with peaceful flowing water, quaint\n"
- "buildings, and presumably no Hellspawn.\n"
- "\n"
- "As you step off the transport, you hear\n"
- "the stomp of a cyberdemon's iron shoe.";
-
-// Cast list (must appear in this order)
-CC_ZOMBIE = "ZOMBIEMAN";
-CC_SHOTGUN = "SHOTGUN GUY";
-CC_HEAVY = "HEAVY WEAPON DUDE";
-CC_IMP = "IMP";
-CC_DEMON = "DEMON";
-CC_LOST = "LOST SOUL";
-CC_CACO = "CACODEMON";
-CC_HELL = "HELL KNIGHT";
-CC_BARON = "BARON OF HELL";
-CC_ARACH = "ARACHNOTRON";
-CC_PAIN = "PAIN ELEMENTAL";
-CC_REVEN = "REVENANT";
-CC_MANCU = "MANCUBUS";
-CC_ARCH = "ARCH-VILE";
-CC_SPIDER = "THE SPIDER MASTERMIND";
-CC_CYBER = "THE CYBERDEMON";
-CC_HERO = "OUR HERO";
-
-// New strings from BOOM
-PD_BLUEC = "You need a blue card to open this door";
-PD_REDC = "You need a red card to open this door";
-PD_YELLOWC = "You need a yellow card to open this door";
-PD_BLUES = "You need a blue skull to open this door";
-PD_REDS = "You need a red skull to open this door";
-PD_YELLOWS = "You need a yellow skull to open this door";
-PD_ANY = "Any key will open this door";
-PD_ANYOBJ = "Any key will activate this object";
-PD_ALL3 = "You need all three keys to open this door";
-PD_ALL3O = "You need all three keys to activate this object";
-PD_ALL6 = "You need all six keys to open this door";
-PD_ALL6O = "You need all six keys to activate this object";
-PD_ALLKEYS = "You need all the keys";
-
-// Gameflow messages
-TXT_FRAGLIMIT = "Fraglimit hit.";
-TXT_TIMELIMIT = "Timelimit hit.";
-
-// Spree messages
-SPREEKILLSELF = "%o was looking good until %g killed %hself!";
-SPREEOVER = "%o's killing spree was ended by %k";
-SPREE5 = "%k is on a killing spree!";
-SPREE10 = "%k is on a rampage!";
-SPREE15 = "%k is dominating!";
-SPREE20 = "%k is unstoppable!";
-SPREE25 = "%k is Godlike!";
-
-// Mulitkill messages
-MULTI2 = "Double kill!";
-MULTI3 = "Multi kill!";
-MULTI4 = "Ultra kill!";
-MULTI5 = "Monster kill!";
-
-// Obituary strings
-// First the self-kills, then the other-kills
-OB_SUICIDE = "%o suicides.";
-OB_FALLING = "%o fell too far.";
-OB_CRUSH = "%o was squished.";
-OB_EXIT = "%o tried to leave.";
-OB_WATER = "%o can't swim.";
-OB_SLIME = "%o mutated.";
-OB_LAVA = "%o melted.";
-OB_BARREL = "%o went boom.";
-OB_SPLASH = "%o stood in the wrong spot.";
-OB_R_SPLASH = "%o should have stood back.";
-OB_ROCKET = "%o should have stood back.";
-OB_KILLEDSELF = "%o killed %hself.";
-
-OB_STEALTHBABY = "%o thought %g saw an arachnotron.";
-OB_STEALTHVILE = "%o thought %g saw an archvile.";
-OB_STEALTHBARON = "%o thought %g saw a Baron of Hell.";
-OB_STEALTHCACO = "%o thought %g saw a cacodemon.";
-OB_STEALTHCHAINGUY = "%o thought %g saw a chaingunner.";
-OB_STEALTHDEMON = "%o thought %g saw a demon.";
-OB_STEALTHKNIGHT = "%o thought %g saw a Hell Knight.";
-OB_STEALTHIMP = "%o thought %g saw an imp.";
-OB_STEALTHFATSO = "%o thought %g saw a mancubus.";
-OB_STEALTHUNDEAD = "%o thought %g saw a revenant.";
-OB_STEALTHSHOTGUY = "%o thought %g saw a sergeant.";
-OB_STEALTHZOMBIE = "%o thought %g saw a zombieman.";
-OB_UNDEADHIT = "%o was punched by a revenant.";
-OB_IMPHIT = "%o was slashed by an imp.";
-OB_CACOHIT = "%o got too close to a cacodemon.";
-OB_DEMONHIT = "%o was bit by a demon.";
-OB_SPECTREHIT = "%o was eaten by a spectre.";
-OB_BARONHIT = "%o was ripped open by a Baron of Hell.";
-OB_KNIGHTHIT = "%o was gutted by a Hell Knight.";
-OB_ZOMBIE = "%o was killed by a zombieman.";
-OB_SHOTGUY = "%o was shot by a sergeant.";
-OB_VILE = "%o was incinerated by an archvile.";
-OB_UNDEAD = "%o couldn't evade a revenant's fireball.";
-OB_FATSO = "%o was squashed by a mancubus.";
-OB_CHAINGUY = "%o was perforated by a chaingunner.";
-OB_SKULL = "%o was spooked by a lost soul.";
-OB_IMP = "%o was burned by an imp.";
-OB_CACO = "%o was smitten by a cacodemon.";
-OB_BARON = "%o was bruised by a Baron of Hell.";
-OB_KNIGHT = "%o was splayed by a Hell Knight.";
-OB_SPIDER = "%o stood in awe of the spider demon.";
-OB_BABY = "%o let an arachnotron get %h.";
-OB_CYBORG = "%o was splattered by a cyberdemon.";
-OB_WOLFSS = "%o met a Nazi.";
-
-OB_CHICKEN = "%o was pecked to death.";
-OB_BEAST = "%o was charred by a weredragon.";
-OB_CLINK = "%o was slashed by a sabreclaw.";
-OB_DSPARIL1 = "%o was scalded by D'Sparil's serpent.";
-OB_DSPARIL1HIT = "%o was chewed up by D'Sparil's serpent.";
-OB_DSPARIL2 = "%o was no match for D'Sparil.";
-OB_DSPARIL2HIT = "%o was smacked down by D'Sparil.";
-OB_HERETICIMP = "%o was scarred by a gargoyle.";
-OB_HERETICIMPHIT = "%o was hacked by a gargoyle.";
-OB_IRONLICH = "%o was devastated by an ironlich.";
-OB_IRONLICHHIT = "%o got up-close and personal with an ironlich.";
-OB_BONEKNIGHT = "%o was axed by an undead warrior.";
-OB_BONEKNIGHTHIT = "%o was slain by an undead warrior.";
-OB_MUMMY = "%o was smashed by a golem.";
-OB_MUMMYLEADER = "%o was shrieked to death by a nitrogolem.";
-OB_SNAKE = "%o was rattled by an ophidian.";
-OB_WIZARD = "%o was cursed by a wizard.";
-OB_WIZARDHIT = "%o was palpated by a wizard.";
-
-OB_FIREDEMON = "%o tasted an Afrit's fire.";
-OB_DEMON1 = "%o was scalded by a Serpent.";
-OB_DEMON2 = "%o was poisoned by a Serpent.";
-OB_ETTIN = "%o was mashed by an Ettin.";
-OB_CENTAUR = "%o was cut up by a Centaur.";
-OB_SLAUGHTAURHIT = "%o was cut up by a Slaughtaur.";
-OB_SLAUGHTAUR = "%o was struck down by a Slaughtaur's fireball.";
-OB_BISHOP = "%o succumbed to a Bishop's dark power.";
-OB_ICEGUY = "%o was frozen solid by a Wendigo.";
-OB_SERPENTHIT = "%o was mauled by a Stalker.";
-OB_SERPENT = "%o was melted by a Stalker.";
-OB_WRAITH = "%o was charred by a Reiver.";
-OB_WRAITHHIT = "%o had %p life stolen by a Reiver.";
-OB_DRAGON = "%o was incinerated by the Death Wyvern.";
-OB_KORAX = "%o was swept from the board by Korax.";
-OB_FBOSS = "%o was slain by Zedek.";
-OB_MBOSS = "%o couldn't absorb Menelkir's Mana.";
-OB_CBOSS = "%o was baptized by Traductus.";
-OB_HERESIARCH = "%o had %p bones rolled by the Heresiarch.";
-
-OB_ACOLYTE = "%o was zealously shot down by an Acolyte.";
-OB_MACIL = "%o should have never rebelled against Macil.";
-OB_REBEL = "%o was gunned down by a Rebel.";
-OB_BEGGAR = "%o was beaten to death by the poor.";
-OB_PEASANT = "%o should have never picked a fight with a civilian.";
-OB_ALIENSPECTE = "%o was struck down by the Spectre.";
-OB_ENTITY = "%o felt the wrath of The One God.";
-OB_LOREMASTER = "%o couldn't escape from the Lore Master's grasp.";
-OB_PROGRAMMER = "%o was deleted by the Programmer.";
-OB_STFBISHOP = "%o was blown away by the Bishop.";
-OB_SENTINEL = "%o was shot down by a Sentinel.";
-OB_CRUSADER = "%o was swept away by a Crusader.";
-OB_INQUISITOR = "%o was sentenced by an Inquisitor.";
-OB_STALKER = "%o was bugged by a Stalker.";
-OB_TURRET = "%o triggered the automatic defenses.";
-OB_TEMPLARHIT = "%o was clawed by a Templar.";
-OB_TEMPLAR = "%o was vaporized by a Templar.";
-OB_REAVERHIT = "%o was sliced open by a Reaver.";
-OB_REAVER = "%o was shot down by a Reaver.";
-
-
-
-OB_MPFIST = "%o chewed on %k's fist.";
-OB_MPCHAINSAW = "%o was mowed over by %k's chainsaw.";
-OB_MPPISTOL = "%o was tickled by %k's pea shooter.";
-OB_MPSHOTGUN = "%o chewed on %k's boomstick.";
-OB_MPSSHOTGUN = "%o was splattered by %k's super shotgun.";
-OB_MPCHAINGUN = "%o was mowed down by %k's chaingun.";
-OB_MPROCKET = "%o rode %k's rocket.";
-OB_MPR_SPLASH = "%o almost dodged %k's rocket.";
-OB_MPPLASMARIFLE = "%o was melted by %k's plasma gun.";
-OB_MPBFG_BOOM = "%o was splintered by %k's BFG.";
-OB_MPBFG_SPLASH = "%o couldn't hide from %k's BFG.";
-OB_MPTELEFRAG = "%o was telefragged by %k.";
-OB_RAILGUN = "%o was railed by %k.";
-
-// Same as OB_MPTELEFRAG, but shown when a monster telefrags you
-OB_MONTELEFRAG = "%o was telefragged.";
-
-OB_DEFAULT = "%o died.";
-OB_FRIENDLY1 = "%k mows down a teammate.";
-OB_FRIENDLY2 = "%k checks %p glasses.";
-OB_FRIENDLY3 = "%k gets a frag for the other team.";
-OB_FRIENDLY4 = "%k loses another friend.";
-
-SAVEGAMENAME = "zdoomsv";
-STARTUP1 = "";
-STARTUP2 = "";
-STARTUP3 = "";
-STARTUP4 = "";
-STARTUP5 = "";
-
-// Heretic strings
-HE1TEXT =
- "with the destruction of the iron\n"
- "liches and their minions, the last\n"
- "of the undead are cleared from this\n"
- "plane of existence.\n\n"
- "those creatures had to come from\n"
- "somewhere, though, and you have the\n"
- "sneaky suspicion that the fiery\n"
- "portal of hell's maw opens onto\n"
- "their home dimension.\n\n"
- "to make sure that more undead\n"
- "(or even worse things) don't come\n"
- "through, you'll have to seal hell's\n"
- "maw from the other side. of course\n"
- "this means you may get stuck in a\n"
- "very unfriendly world, but no one\n"
- "ever said being a Heretic was easy!";
-HE2TEXT =
- "the mighty maulotaurs have proved\n"
- "to be no match for you, and as\n"
- "their steaming corpses slide to the\n"
- "ground you feel a sense of grim\n"
- "satisfaction that they have been\n"
- "destroyed.\n\n"
- "the gateways which they guarded\n"
- "have opened, revealing what you\n"
- "hope is the way home. but as you\n"
- "step through, mocking laughter\n"
- "rings in your ears.\n\n"
- "was some other force controlling\n"
- "the maulotaurs? could there be even\n"
- "more horrific beings through this\n"
- "gate? the sweep of a crystal dome\n"
- "overhead where the sky should be is\n"
- "certainly not a good sign....";
-HE3TEXT =
- "the death of d'sparil has loosed\n"
- "the magical bonds holding his\n"
- "creatures on this plane, their\n"
- "dying screams overwhelming his own\n"
- "cries of agony.\n\n"
- "your oath of vengeance fulfilled,\n"
- "you enter the portal to your own\n"
- "world, mere moments before the dome\n"
- "shatters into a million pieces.\n\n"
- "but if d'sparil's power is broken\n"
- "forever, why don't you feel safe?\n"
- "was it that last shout just before\n"
- "his death, the one that sounded\n"
- "like a curse? or a summoning? you\n"
- "can't really be sure, but it might\n"
- "just have been a scream.\n\n"
- "then again, what about the other\n"
- "serpent riders?";
-HE4TEXT =
- "you thought you would return to your\n"
- "own world after d'sparil died, but\n"
- "his final act banished you to his\n"
- "own plane. here you entered the\n"
- "shattered remnants of lands\n"
- "conquered by d'sparil. you defeated\n"
- "the last guardians of these lands,\n"
- "but now you stand before the gates\n"
- "to d'sparil's stronghold. until this\n"
- "moment you had no doubts about your\n"
- "ability to face anything you might\n"
- "encounter, but beyond this portal\n"
- "lies the very heart of the evil\n"
- "which invaded your world. d'sparil\n"
- "might be dead, but the pit where he\n"
- "was spawned remains. now you must\n"
- "enter that pit in the hopes of\n"
- "finding a way out. and somewhere,\n"
- "in the darkest corner of d'sparil's\n"
- "demesne, his personal bodyguards\n"
- "await your arrival ...";
-HE5TEXT =
- "as the final maulotaur bellows his\n"
- "death-agony, you realize that you\n"
- "have never come so close to your own\n"
- "destruction. not even the fight with\n"
- "d'sparil and his disciples had been\n"
- "this desperate. grimly you stare at\n"
- "the gates which open before you,\n"
- "wondering if they lead home, or if\n"
- "they open onto some undreamed-of\n"
- "horror. you find yourself wondering\n"
- "if you have the strength to go on,\n"
- "if nothing but death and pain await\n"
- "you. but what else can you do, if\n"
- "the will to fight is gone? can you\n"
- "force yourself to continue in the\n"
- "face of such despair? do you have\n"
- "the courage? you find, in the end,\n"
- "that it is not within you to\n"
- "surrender without a fight. eyes\n"
- "wide, you go to meet your fate.";
-
-// EPISODE 1 - THE CITY OF THE DAMNED
-HHUSTR_E1M1 = "THE DOCKS";
-HHUSTR_E1M2 = "THE DUNGEONS";
-HHUSTR_E1M3 = "THE GATEHOUSE";
-HHUSTR_E1M4 = "THE GUARD TOWER";
-HHUSTR_E1M5 = "THE CITADEL";
-HHUSTR_E1M6 = "THE CATHEDRAL";
-HHUSTR_E1M7 = "THE CRYPTS";
-HHUSTR_E1M8 = "HELL'S MAW";
-HHUSTR_E1M9 = "THE GRAVEYARD";
-
-// EPISODE 2 - HELL'S MAW
-HHUSTR_E2M1 = "THE CRATER";
-HHUSTR_E2M2 = "THE LAVA PITS";
-HHUSTR_E2M3 = "THE RIVER OF FIRE";
-HHUSTR_E2M4 = "THE ICE GROTTO";
-HHUSTR_E2M5 = "THE CATACOMBS";
-HHUSTR_E2M6 = "THE LABYRINTH";
-HHUSTR_E2M7 = "THE GREAT HALL";
-HHUSTR_E2M8 = "THE PORTALS OF CHAOS";
-HHUSTR_E2M9 = "THE GLACIER";
-
-// EPISODE 3 - THE DOME OF D'SPARIL
-HHUSTR_E3M1 = "THE STOREHOUSE";
-HHUSTR_E3M2 = "THE CESSPOOL";
-HHUSTR_E3M3 = "THE CONFLUENCE";
-HHUSTR_E3M4 = "THE AZURE FORTRESS";
-HHUSTR_E3M5 = "THE OPHIDIAN LAIR";
-HHUSTR_E3M6 = "THE HALLS OF FEAR";
-HHUSTR_E3M7 = "THE CHASM";
-HHUSTR_E3M8 = "D'SPARIL'S KEEP";
-HHUSTR_E3M9 = "THE AQUIFER";
-
-// EPISODE 4: THE OSSUARY
-HHUSTR_E4M1 = "CATAFALQUE";
-HHUSTR_E4M2 = "BLOCKHOUSE";
-HHUSTR_E4M3 = "AMBULATORY";
-HHUSTR_E4M4 = "SEPULCHER";
-HHUSTR_E4M5 = "GREAT STAIR";
-HHUSTR_E4M6 = "HALLS OF THE APOSTATE";
-HHUSTR_E4M7 = "RAMPARTS OF PERDITION";
-HHUSTR_E4M8 = "SHATTERED BRIDGE";
-HHUSTR_E4M9 = "MAUSOLEUM";
-
-// EPISODE 5: THE STAGNANT DEMESNE
-HHUSTR_E5M1 = "OCHRE CLIFFS";
-HHUSTR_E5M2 = "RAPIDS";
-HHUSTR_E5M3 = "QUAY";
-HHUSTR_E5M4 = "COURTYARD";
-HHUSTR_E5M5 = "HYDRATYR";
-HHUSTR_E5M6 = "COLONNADE";
-HHUSTR_E5M7 = "FOETID MANSE";
-HHUSTR_E5M8 = "FIELD OF JUDGEMENT";
-HHUSTR_E5M9 = "SKEIN OF D'SPARIL";
-
-// Keys
-
-TXT_GOTBLUEKEY = "BLUE KEY";
-TXT_GOTYELLOWKEY = "YELLOW KEY";
-TXT_GOTGREENKEY = "GREEN KEY";
-
-// Artifacts
-
-TXT_ARTIHEALTH = "QUARTZ FLASK";
-TXT_ARTIFLY = "WINGS OF WRATH";
-TXT_ARTIINVULNERABILITY = "RING OF INVINCIBILITY";
-TXT_ARTITOMEOFPOWER = "TOME OF POWER";
-TXT_ARTIINVISIBILITY = "SHADOWSPHERE";
-TXT_ARTIEGG = "MORPH OVUM";
-TXT_ARTISUPERHEALTH = "MYSTIC URN";
-TXT_ARTITORCH = "TORCH";
-TXT_ARTIFIREBOMB = "TIME BOMB OF THE ANCIENTS";
-TXT_ARTITELEPORT = "CHAOS DEVICE";
-
-// Items
-
-TXT_ITEMHEALTH = "CRYSTAL VIAL";
-TXT_ITEMBAGOFHOLDING = "BAG OF HOLDING";
-TXT_ITEMSHIELD1 = "SILVER SHIELD";
-TXT_ITEMSHIELD2 = "ENCHANTED SHIELD";
-TXT_ITEMSUPERMAP = "MAP SCROLL";
-
-// Ammo
-
-TXT_AMMOGOLDWAND1 = "WAND CRYSTAL";
-TXT_AMMOGOLDWAND2 = "CRYSTAL GEODE";
-TXT_AMMOMACE1 = "MACE SPHERES";
-TXT_AMMOMACE2 = "PILE OF MACE SPHERES";
-TXT_AMMOCROSSBOW1 = "ETHEREAL ARROWS";
-TXT_AMMOCROSSBOW2 = "QUIVER OF ETHEREAL ARROWS";
-TXT_AMMOBLASTER1 = "CLAW ORB";
-TXT_AMMOBLASTER2 = "ENERGY ORB";
-TXT_AMMOSKULLROD1 = "LESSER RUNES";
-TXT_AMMOSKULLROD2 = "GREATER RUNES";
-TXT_AMMOPHOENIXROD1 = "FLAME ORB";
-TXT_AMMOPHOENIXROD2 = "INFERNO ORB";
-
-// Weapons
-
-TXT_WPNMACE = "FIREMACE";
-TXT_WPNCROSSBOW = "ETHEREAL CROSSBOW";
-TXT_WPNBLASTER = "DRAGON CLAW";
-TXT_WPNSKULLROD = "HELLSTAFF";
-TXT_WPNPHOENIXROD = "PHOENIX ROD";
-TXT_WPNGAUNTLETS = "GAUNTLETS OF THE NECROMANCER";
-
-TXT_NEEDBLUEKEY = "YOU NEED A BLUE KEY TO OPEN THIS DOOR";
-TXT_NEEDGREENKEY = "YOU NEED A GREEN KEY TO OPEN THIS DOOR";
-TXT_NEEDYELLOWKEY = "YOU NEED A YELLOW KEY TO OPEN THIS DOOR";
-
-TXT_CHEATPOWERON = "POWER ON";
-TXT_CHEATPOWEROFF = "POWER OFF";
-TXT_CHEATHEALTH = "FULL HEALTH";
-TXT_CHEATKEYS = "ALL KEYS";
-TXT_CHEATSOUNDON = "SOUND DEBUG ON";
-TXT_CHEATSOUNDOFF = "SOUND DEBUG OFF";
-TXT_CHEATIDDQD = "TRYING TO CHEAT, EH? NOW YOU DIE!";
-TXT_CHEATIDKFA = "CHEATER - YOU DON'T DESERVE WEAPONS";
-TXT_CHEATTICKERON = "TICKER ON";
-TXT_CHEATTICKEROFF = "TICKER OFF";
-TXT_CHEATARTIFACTS3 = "YOU GOT IT";
-
-RAVENQUITMSG = "ARE YOU SURE YOU WANT TO QUIT?";
-
-// Hexen strings
-
-// Mana
-
-TXT_MANA_1 = "BLUE MANA";
-TXT_MANA_2 = "GREEN MANA";
-TXT_MANA_BOTH = "COMBINED MANA";
-
-// Keys
-
-TXT_KEY_STEEL = "STEEL KEY";
-TXT_KEY_CAVE = "CAVE KEY";
-TXT_KEY_AXE = "AXE KEY";
-TXT_KEY_FIRE = "FIRE KEY";
-TXT_KEY_EMERALD = "EMERALD KEY";
-TXT_KEY_DUNGEON = "DUNGEON KEY";
-TXT_KEY_SILVER = "SILVER KEY";
-TXT_KEY_RUSTED = "RUSTED KEY";
-TXT_KEY_HORN = "HORN KEY";
-TXT_KEY_SWAMP = "SWAMP KEY";
-TXT_KEY_CASTLE = "CASTLE KEY";
-
-TXT_NEED_KEY_STEEL = "You need the STEEL KEY";
-TXT_NEED_KEY_CAVE = "You need the CAVE KEY";
-TXT_NEED_KEY_AXE = "You need the AXE KEY";
-TXT_NEED_KEY_FIRE = "You need the FIRE KEY";
-TXT_NEED_KEY_EMERALD = "You need the EMERALD KEY";
-TXT_NEED_KEY_DUNGEON = "You need the DUNGEON KEY";
-TXT_NEED_KEY_SILVER = "You need the SILVER KEY";
-TXT_NEED_KEY_RUSTED = "You need the RUSTED KEY";
-TXT_NEED_KEY_HORN = "You need the HORN KEY";
-TXT_NEED_KEY_SWAMP = "You need the SWAMP KEY";
-TXT_NEED_KEY_CASTLE = "You need the CASTLE KEY";
-
-// Artifacts
-
-TXT_ARTIINVULNERABILITY2 = "ICON OF THE DEFENDER";
-TXT_ARTISUMMON = "DARK SERVANT";
-TXT_ARTIEGG2 = "PORKALATOR";
-TXT_ARTIPOISONBAG = "FLECHETTE";
-TXT_ARTITELEPORTOTHER = "BANISHMENT DEVICE";
-TXT_ARTISPEED = "BOOTS OF SPEED";
-TXT_ARTIBOOSTMANA = "KRATER OF MIGHT";
-TXT_ARTIBOOSTARMOR = "DRAGONSKIN BRACERS";
-TXT_ARTIBLASTRADIUS = "DISC OF REPULSION";
-TXT_ARTIHEALINGRADIUS = "MYSTIC AMBIT INCANT";
-
-// Puzzle artifacts
-
-TXT_ARTIPUZZSKULL = "YORICK'S SKULL";
-TXT_ARTIPUZZGEMBIG = "HEART OF D'SPARIL";
-TXT_ARTIPUZZGEMRED = "RUBY PLANET";
-TXT_ARTIPUZZGEMGREEN1 = "EMERALD PLANET";
-TXT_ARTIPUZZGEMGREEN2 = "EMERALD PLANET";
-TXT_ARTIPUZZGEMBLUE1 = "SAPPHIRE PLANET";
-TXT_ARTIPUZZGEMBLUE2 = "SAPPHIRE PLANET";
-TXT_ARTIPUZZBOOK1 = "DAEMON CODEX";
-TXT_ARTIPUZZBOOK2 = "LIBER OSCURA";
-TXT_ARTIPUZZSKULL2 = "FLAME MASK";
-TXT_ARTIPUZZFWEAPON = "GLAIVE SEAL";
-TXT_ARTIPUZZCWEAPON = "HOLY RELIC";
-TXT_ARTIPUZZMWEAPON = "SIGIL OF THE MAGUS";
-TXT_ARTIPUZZGEAR = "CLOCK GEAR";
-TXT_USEPUZZLEFAILED = "YOU CANNOT USE THIS HERE";
-
-// Items
-
-TXT_ARMOR1 = "MESH ARMOR";
-TXT_ARMOR2 = "FALCON SHIELD";
-TXT_ARMOR3 = "PLATINUM HELMET";
-TXT_ARMOR4 = "AMULET OF WARDING";
-
-// Weapons
-
-TXT_WEAPON_F2 = "TIMON'S AXE";
-TXT_WEAPON_F3 = "HAMMER OF RETRIBUTION";
-TXT_WEAPON_F4 = "QUIETUS ASSEMBLED";
-TXT_WEAPON_C2 = "SERPENT STAFF";
-TXT_WEAPON_C3 = "FIRESTORM";
-TXT_WEAPON_C4 = "WRAITHVERGE ASSEMBLED";
-TXT_WEAPON_M2 = "FROST SHARDS";
-TXT_WEAPON_M3 = "ARC OF DEATH";
-TXT_WEAPON_M4 = "BLOODSCOURGE ASSEMBLED";
-TXT_WEAPONPIECE = "A weapon piece! This is your lucky day!";
-TXT_QUIETUS_PIECE = "SEGMENT OF QUIETUS";
-TXT_WRAITHVERGE_PIECE = "SEGMENT OF WRAITHVERGE";
-TXT_BLOODSCOURGE_PIECE = "SEGMENT OF BLOODSCOURGE";
-
-// Strife locks
-
-TXT_NEEDKEY = "You don't have the key";
-TXT_NEED_PASSCARD = "You need a passcard";
-TXT_NEED_PASSCARD_DOOR = "You need a pass card key to open this door";
-TXT_NEED_IDCARD = "You need an ID card";
-TXT_NEED_PRISONKEY = "You don't have the key to the prison";
-TXT_NEED_HANDPRINT = "Hand print not on file";
-TXT_NEED_GOLDKEY = "You need the Gold Key";
-TXT_NEED_IDBADGE = "You need an ID Badge";
-TXT_NEED_IDBADGE_DOOR = "You need an ID Badge to open this door";
-TXT_NEED_SILVERKEY = "You need the Silver Key";
-TXT_NEED_BRASSKEY = "You need the Brass Key";
-TXT_NEED_REDCRYSTAL = "You need the Red Crystal";
-TXT_NEED_BLUECRYSTAL = "You need the Blue Crystal";
-
-// Strife Quest messages
-
-TXT_QUEST_14 = "You've Blown Up the Crystal";
-TXT_QUEST_16 = "You've Blown Up the Gates";
-TXT_QUEST_27 = "You've Blown Up the Computer";
-
-TXT_KILLED_BISHOP = "You Killed The Bishop!";
-TXT_KILLED_ORACLE = "You've Killed The Oracle!";
-TXT_KILLED_MACIL = "You Killed Macil!";
-TXT_KILLED_LOREMASTER = "You've Killed the Loremaster!";
-
-// Strife pickup messages
-
-TXT_METALARMOR = "You picked up the Metal Armor.";
-TXT_LEATHERARMOR = "You picked up the Leather Armor.";
-TXT_MEDPATCH = "You picked up the Med patch.";
-TXT_MEDICALKIT = "You picked up the Medical kit.";
-TXT_SURGERYKIT = "You picked up the Surgery Kit.";
-TXT_STRIFEMAP = "You picked up the map";
-TXT_BELDINSRING = "You picked up the ring.";
-TXT_OFFERINGCHALICE = "You picked up the Offering Chalice.";
-TXT_EAR = "You picked up the ear.";
-TXT_BROKENCOUPLING = "You picked up the broken power coupling.";
-TXT_SHADOWARMOR = "You picked up the Shadow armor.";
-TXT_ENVSUIT = "You picked up the Environmental Suit.";
-TXT_GUARDUNIFORM = "You picked up the Guard Uniform.";
-TXT_OFFICERSUNIFORM = "You picked up the Officer's Uniform.";
-TXT_FTHROWERPARTS = "You picked up the flame thrower parts.";
-TXT_REPORT = "You picked up the report.";
-TXT_INFO = "You picked up the info.";
-TXT_TARGETER = "You picked up the Targeter.";
-TXT_COMMUNICATOR = "You picked up the Communicator";
-TXT_COIN = "You picked up the coin.";
-TXT_XGOLD = "You picked up %d gold.";
-TXT_BEACON = "You picked up the Teleporter Beacon.";
-TXT_DEGNINORE = "You picked up the Degnin Ore.";
-TXT_SCANNER = "You picked up the scanner.";
-TXT_NEEDMAP = "The scanner won't work without a map!\n";
-TXT_PRISONPASS = "You picked up the Prison pass.";
-
-TXT_STRIFECROSSBOW = "You picked up the crossbow";
-TXT_ASSAULTGUN = "You picked up the assault gun";
-TXT_MMLAUNCHER = "You picked up the mini missile launcher";
-TXT_FLAMER = "You picked up the flame thrower";
-TXT_MAULER = "You picked up the mauler";
-TXT_GLAUNCHER = "You picked up the Grenade launcher";
-TXT_SIGIL = "You picked up the SIGIL.";
-
-
-TXT_BASEKEY = "You picked up the Base Key.";
-TXT_GOVSKEY = "You picked up the Govs Key.";
-TXT_PASSCARD = "You picked up the Passcard.";
-TXT_IDBADGE = "You picked up the ID Badge.";
-TXT_PRISONKEY = "You picked up the Prison Key.";
-TXT_SEVEREDHAND = "You picked up the Severed Hand.";
-TXT_POWER1KEY = "You picked up the Power1 Key.";
-TXT_POWER2KEY = "You picked up the Power2 Key.";
-TXT_POWER3KEY = "You picked up the Power3 Key.";
-TXT_GOLDKEY = "You picked up the Gold Key.";
-TXT_IDCARD = "You picked up the ID Card.";
-TXT_SILVERKEY = "You picked up the Silver Key.";
-TXT_ORACLEKEY = "You picked up the Oracle Key.";
-TXT_MILITARYID = "You picked up the Military ID.";
-TXT_ORDERKEY = "You picked up the Order Key.";
-TXT_WAREHOUSEKEY = "You picked up the Warehouse Key.";
-TXT_BRASSKEY = "You picked up the Brass Key.";
-TXT_REDCRYSTAL = "You picked up the Red Crystal Key.";
-TXT_BLUECRYSTAL = "You picked up the Blue Crystal Key.";
-TXT_CHAPELKEY = "You picked up the Chapel Key.";
-TXT_CATACOMBKEY = "You picked up the Catacomb Key.";
-TXT_SECURITYKEY = "You picked up the Security Key.";
-TXT_COREKEY = "You picked up the Core Key.";
-TXT_MAULERKEY = "You picked up the Mauler Key.";
-TXT_FACTORYKEY = "You picked up the Factory Key.";
-TXT_MINEKEY = "You picked up the Mine Key.";
-TXT_NEWKEY5 = "You picked up the New Key5.";
-TXT_ORACLEPASS = "You picked up the Oracle Pass.";
-
-TXT_HEGRENADES = "You picked up the HE-Grenade Rounds.";
-TXT_PHGRENADES = "You picked up the Phoshorus-Grenade Rounds.";
-TXT_CLIPOFBULLETS = "You picked up the clip of bullets.";
-TXT_BOXOFBULLETS = "You picked up the box of bullets.";
-TXT_MINIMISSILES = "You picked up the mini missiles.";
-TXT_CRATEOFMISSILES = "You picked up the crate of missiles.";
-TXT_ENERGYPOD = "You picked up the energy pod.";
-TXT_ENERGYPACK = "You picked up the energy pack.";
-TXT_POISONBOLTS = "You picked up the poison bolts.";
-TXT_ELECTRICBOLTS = "You picked up the electric bolts.";
-TXT_AMMOSATCHEL = "You picked up the ammo satchel";
-
-// Random dialogs
-
-TXT_RANDOM_PEASANT_01 = "Please don't hurt me.";
-TXT_RANDOM_PEASANT_02 = "If you're looking to hurt me, I'm not really worth the effort.";
-TXT_RANDOM_PEASANT_03 = "I don't know anything.";
-TXT_RANDOM_PEASANT_04 = "Go away or I'll call the guards!";
-TXT_RANDOM_PEASANT_05 = "I wish sometimes that all these rebels would just learn their place and stop this nonsense.";
-TXT_RANDOM_PEASANT_06 = "Just leave me alone, OK?";
-TXT_RANDOM_PEASANT_07 = "I'm not sure, but sometimes I think that I know some of the acolytes.";
-TXT_RANDOM_PEASANT_08 = "The order's got everything around here pretty well locked up tight.";
-TXT_RANDOM_PEASANT_09 = "There's no way that this is just a security force.";
-TXT_RANDOM_PEASANT_10 = "I've heard that the order is really nervous about the front's actions around here.";
-
-TXT_RANDOM_REBEL_01 = "There's no way the order will stand against us.";
-TXT_RANDOM_REBEL_02 = "We're almost ready to strike. Macil's plans are falling in place.";
-TXT_RANDOM_REBEL_03 = "We're all behind you, don't worry.";
-TXT_RANDOM_REBEL_04 = "Don't get too close to any of those big robots. They'll melt you down for scrap!";
-TXT_RANDOM_REBEL_05 = "The day of our glory will soon come, and those who oppose us will be crushed!";
-TXT_RANDOM_REBEL_06 = "Don't get too comfortable. We've still got our work cut out for us.";
-TXT_RANDOM_REBEL_07 = "Macil says that you're the new hope. Bear that in mind.";
-TXT_RANDOM_REBEL_08 = "Once we've taken these charlatans down, we'll be able to rebuild this world as it should be.";
-TXT_RANDOM_REBEL_09 = "Remember that you aren't fighting just for yourself, but for everyone here and outside.";
-TXT_RANDOM_REBEL_10 = "As long as one of us still stands, we will win.";
-
-TXT_RANDOM_AGUARD_01 = "Move along, peasant.";
-TXT_RANDOM_AGUARD_02 = "Follow the true faith, only then will you begin to understand.";
-TXT_RANDOM_AGUARD_03 = "Only through death can one be truly reborn.";
-TXT_RANDOM_AGUARD_04 = "I'm not interested in your useless drivel.";
-TXT_RANDOM_AGUARD_05 = "If I had wanted to talk to you I would have told you so.";
-TXT_RANDOM_AGUARD_06 = "Go and annoy someone else!";
-TXT_RANDOM_AGUARD_07 = "Keep moving!";
-TXT_RANDOM_AGUARD_08 = "If the alarm goes off, just stay out of our way!";
-TXT_RANDOM_AGUARD_09 = "The order will cleanse the world and usher it into the new era.";
-TXT_RANDOM_AGUARD_10 = "Problem? No, I thought not.";
-
-TXT_RANDOM_BEGGAR_01 = "Alms for the poor?";
-TXT_RANDOM_BEGGAR_02 = "What are you looking at, surfacer?";
-TXT_RANDOM_BEGGAR_03 = "You wouldn't have any extra food, would you?";
-TXT_RANDOM_BEGGAR_04 = "You surface people will never understand us.";
-TXT_RANDOM_BEGGAR_05 = "Ha, the guards can't find us. Those idiots don't even know we exist.";
-TXT_RANDOM_BEGGAR_06 = "One day everyone but those who serve the order will be forced to join us.";
-TXT_RANDOM_BEGGAR_07 = "Stare now, but you know that this will be your own face one day.";
-TXT_RANDOM_BEGGAR_08 = "There's nothing more annoying than a surfacer with an attitude!";
-TXT_RANDOM_BEGGAR_09 = "The order will make short work of your pathetic front.";
-TXT_RANDOM_BEGGAR_10 = "Watch yourself, surfacer. We know our enemies!";
-
-TXT_RANDOM_PGUARD_01 = "We are the hands of fate. To earn our wrath is to find oblivion!";
-TXT_RANDOM_PGUARD_02 = "The order will cleanse the world of the weak and corrupt!";
-TXT_RANDOM_PGUARD_03 = "Obey the will of the masters!";
-TXT_RANDOM_PGUARD_04 = "Long life to the brothers of the order!";
-TXT_RANDOM_PGUARD_05 = "Free will is an illusion that binds the weak minded.";
-TXT_RANDOM_PGUARD_06 = "Power is the path to glory. To follow the order is to walk that path!";
-TXT_RANDOM_PGUARD_07 = "Take your place among the righteous, join us!";
-TXT_RANDOM_PGUARD_08 = "The order protects its own.";
-TXT_RANDOM_PGUARD_09 = "Acolytes? They have yet to see the full glory of the order.";
-TXT_RANDOM_PGUARD_10 = "If there is any honor inside that pathetic shell of a body, you'll enter into the arms of the order.";
-
-TXT_RANDOMGOODBYE_1 = "Bye!";
-TXT_RANDOMGOODBYE_2 = "Thanks, bye!";
-TXT_RANDOMGOODBYE_3 = "See you later!";
-
-
-// Menu
-MNU_NEWGAME = "NEW GAME";
-MNU_OPTIONS = "OPTIONS";
-MNU_GAMEFILES = "GAME FILES";
-MNU_INFO = "INFO";
-MNU_QUITGAME = "QUIT GAME";
-
-MNU_FIGHTER = "FIGHTER";
-MNU_CLERIC = "CLERIC";
-MNU_MAGE = "MAGE";
-MNU_RANDOM = "RANDOM";
-
-MNU_LOADGAME = "LOAD GAME";
-MNU_SAVEGAME = "SAVE GAME";
-
-MNU_COTD = "CITY OF THE DAMNED";
-MNU_HELLSMAW = "HELL'S MAW";
-MNU_DOME = "THE DOME OF D'SPARIL";
-MNU_OSSUARY = "THE OSSUARY";
-MNU_DEMESNE = "THE STAGNANT DEMESNE";
-
-MNU_WETNURSE = "THOU NEEDETH A WET-NURSE";
-MNU_YELLOWBELLIES = "YELLOWBELLIES-R-US";
-MNU_BRINGEST = "BRINGEST THEM ONETH";
-MNU_SMITE = "THOU ART A SMITE-MEISTER";
-MNU_BLACKPLAGUE = "BLACK PLAGUE POSSESSES THEE";
-
-MNU_NOPICTURE = "No Picture";
-MNU_DIFFVERSION = "Different\nVersion";
-MNU_NOFILES = "No files";
-
-MNU_CHOOSECLASS = "CHOOSE CLASS:";
-MNU_CHOOSESKILL = "CHOOSE SKILL LEVEL:";
-
-MNU_SQUIRE = "SQUIRE";
-MNU_KNIGHT = "KNIGHT";
-MNU_WARRIOR = "WARRIOR";
-MNU_BERSERKER = "BERSERKER";
-MNU_TITAN = "TITAN";
-
-MNU_ALTARBOY = "ALTAR BOY";
-MNU_ACOLYTE = "ACOLYTE";
-MNU_PRIEST = "PRIEST";
-MNU_CARDINAL = "CARDINAL";
-MNU_POPE = "POPE";
-
-MNU_APPRENTICE = "APPRENTICE";
-MNU_ENCHANTER = "ENCHANTER";
-MNU_SORCERER = "SORCERER";
-MNU_WARLOCK = "WARLOCK";
-MNU_ARCHMAGE = "ARCHMAGE";
-
-MNU_PLAYERSETUP = "PLAYER SETUP";
-
-MNU_DELETESG = "Do you really want to delete the savegame\n";
-
-MNU_ONLYREGISTERED = "ONLY AVAILABLE IN THE REGISTERED VERSION";
-
-// Bloodbath announcer
-
-BBA_BONED = "%k boned %o like a fish";
-BBA_CASTRA = "%k castrated %o";
-BBA_CREAMED = "%k creamed %o";
-BBA_DECIMAT = "%k decimated %o";
-BBA_DESTRO = "%k destroyed %o";
-BBA_DICED = "%k diced %o";
-BBA_DISEMBO = "%k disembowled %o";
-BBA_FLATTE = "%k flattened %o";
-BBA_JUSTICE = "%k gave %o Anal Justice";
-BBA_MADNESS = "%k gave AnAl MaDnEsS to %o";
-BBA_KILLED = "%k killed %o";
-BBA_MINCMEAT = "%k made mincemeat out of %o";
-BBA_MASSACR = "%k massacred %o";
-BBA_MUTILA = "%k mutilated %o";
-BBA_REAMED = "%k reamed %o";
-BBA_RIPPED = "%k ripped %o a new orifice";
-BBA_SLAUGHT = "%k slaughtered %o";
-BBA_SMASHED = "%k smashed %o";
-BBA_SODOMIZ = "%k sodomized %o";
-BBA_SPLATT = "%k splattered %o";
-BBA_SQUASH = "%k squashed %o";
-BBA_THROTTL = "%k throttled %o";
-BBA_WASTED = "%k wasted %o";
-BBA_BODYBAG = "%k body bagged %o";
-BBA_HELL = "%k sent %o to Hell";
-BBA_TOAST = "%k toasted %o";
-BBA_SNUFF = "%k snuffed %o";
-BBA_HOSED = "%k hosed %o";
-BBA_SPRAYED = "%k sprayed %o";
-BBA_DOGMEAT = "%k made dog meat out of %o";
-BBA_BEATEN = "%k beat %o like a cur";
-
-BBA_EXCREMENT = "%o is excrement";
-BBA_HAMBURGER = "%o is hamburger";
-BBA_SCROTUM = "%o suffered scrotum separation";
-BBA_POPULATION = "%o volunteered for population control";
-BBA_SUICIDE = "%o has suicided";
-BBA_DARWIN = "%o received the Darwin Award";
diff --git a/wadsrc/languages/french.txt b/wadsrc/languages/french.txt
deleted file mode 100644
index f4ffd780..00000000
--- a/wadsrc/languages/french.txt
+++ /dev/null
@@ -1,376 +0,0 @@
-/* French strings. These are just as they appeared in the original Doom source,
- * so there's lots missing. (X-DOOM, you speak French. Want to add any?)
- */
-
-[fr]
-
-D_DEVSTR = "MODE DEVELOPPEMENT ON.\n";
-D_CDROM = "VERSION CD-ROM: DEFAULT.CFG DANS C:\\DOOMDATA\n";
-
-//
-// M_Menu.C
-//
-PRESSKEY = "APPUYEZ SUR UNE TOUCHE.";
-PRESSYN = "APPUYEZ SUR Y OU N";
-QUITMSG = "VOUS VOULEZ VRAIMENT\nQUITTER CE SUPER JEU?";
-LOADNET = "VOUS NE POUVEZ PAS CHARGER\nUN JEU EN RESEAU!\n\nAPPUYEZ SUR UNE TOUCHE.";
-QLOADNET = "CHARGEMENT RAPIDE INTERDIT EN RESEAU!\n\nAPPUYEZ SUR UNE TOUCHE.";
-QSAVESPOT = "VOUS N'AVEZ PAS CHOISI UN EMPLACEMENT!\n\nAPPUYEZ SUR UNE TOUCHE.";
-SAVEDEAD = "VOUS NE POUVEZ PAS SAUVER SI VOUS NE JOUEZ"
- "PAS!\n\nAPPUYEZ SUR UNE TOUCHE.";
-QSPROMPT = "SAUVEGARDE RAPIDE DANS LE FICHIER \n\n'%s'?\n\nAPPUYEZ SUR Y OU N";
-QLPROMPT = "VOULEZ-VOUS CHARGER LA SAUVEGARDE"
- "\n\n'%s'?\n\nAPPUYEZ SUR Y OU N";
-NEWGAME = "VOUS NE POUVEZ PAS LANCER\n"
- "UN NOUVEAU JEU SUR RESEAU.\n\nAPPUYEZ SUR UNE TOUCHE.";
-NIGHTMARE = "VOUS CONFIRMEZ? CE NIVEAU EST\n"
- "VRAIMENT IMPITOYABLE!\nAPPUYEZ SUR Y OU N";
-SWSTRING = "CECI EST UNE VERSION SHAREWARE DE DOOM.\n\n"
- "VOUS DEVRIEZ COMMANDER LA TRILOGIE COMPLETE.\n\nAPPUYEZ SUR UNE TOUCHE.";
-MSGOFF = "MESSAGES OFF";
-MSGON = "MESSAGES ON";
-NETEND = "VOUS NE POUVEZ PAS METTRE FIN A UN JEU SUR "
- "RESEAU!\n\nAPPUYEZ SUR UNE TOUCHE.";
-ENDGAME = "VOUS VOULEZ VRAIMENT METTRE FIN AU JEU?\n\nAPPUYEZ SUR Y OU N";
-
-DOSY = "(APPUYEZ SUR Y POUR REVENIR AU OS.)";
-
-EMPTYSTRING = "EMPLACEMENT VIDE";
-
-//
-// P_inter.C
-//
-GOTARMOR = "ARMURE RECUPEREE.";
-GOTMEGA = "MEGA-ARMURE RECUPEREE!";
-GOTHTHBONUS = "BONUS DE SANTE RECUPERE.";
-GOTARMBONUS = "BONUS D'ARMURE RECUPERE.";
-GOTSTIM = "STIMPACK RECUPERE.";
-GOTMEDINEED = "MEDIKIT RECUPERE. VOUS EN AVEZ VRAIMENT BESOIN!";
-GOTMEDIKIT = "MEDIKIT RECUPERE.";
-GOTSUPER = "SUPERCHARGE!";
-
-GOTBLUECARD = "CARTE MAGNETIQUE BLEUE RECUPEREE.";
-GOTYELWCARD = "CARTE MAGNETIQUE JAUNE RECUPEREE.";
-GOTREDCARD = "CARTE MAGNETIQUE ROUGE RECUPEREE.";
-GOTBLUESKUL = "CLEF CRANE BLEUE RECUPEREE.";
-GOTYELWSKUL = "CLEF CRANE JAUNE RECUPEREE.";
-GOTREDSKUL = "CLEF CRANE ROUGE RECUPEREE.";
-
-GOTINVUL = "INVULNERABILITE!";
-GOTBERSERK = "BERSERK!";
-GOTINVIS = "INVISIBILITE PARTIELLE ";
-GOTSUIT = "COMBINAISON ANTI-RADIATIONS ";
-GOTMAP = "CARTE INFORMATIQUE ";
-GOTVISOR = "VISEUR A AMPLIFICATION DE LUMIERE ";
-GOTMSPHERE = "MEGASPHERE!";
-
-GOTCLIP = "CHARGEUR RECUPERE.";
-GOTCLIPBOX = "BOITE DE BALLES RECUPEREE.";
-GOTROCKET = "ROQUETTE RECUPEREE.";
-GOTROCKBOX = "CAISSE DE ROQUETTES RECUPEREE.";
-GOTCELL = "CELLULE D'ENERGIE RECUPEREE.";
-GOTCELLBOX = "PACK DE CELLULES D'ENERGIE RECUPERE.";
-GOTSHELLS = "4 CARTOUCHES RECUPEREES.";
-GOTSHELLBOX = "BOITE DE CARTOUCHES RECUPEREE.";
-GOTBACKPACK = "SAC PLEIN DE MUNITIONS RECUPERE!";
-
-GOTBFG9000 = "VOUS AVEZ UN BFG9000! OH, OUI!";
-GOTCHAINGUN = "VOUS AVEZ LA MITRAILLEUSE!";
-GOTCHAINSAW = "UNE TRONCONNEUSE!";
-GOTLAUNCHER = "VOUS AVEZ UN LANCE-ROQUETTES!";
-GOTPLASMA = "VOUS AVEZ UN FUSIL A PLASMA!";
-GOTSHOTGUN = "VOUS AVEZ UN FUSIL!";
-GOTSHOTGUN2 = "VOUS AVEZ UN SUPER FUSIL!";
-
-//
-// P_Doors.C
-//
-PD_BLUEO = "IL VOUS FAUT UNE CLEF BLEUE";
-PD_REDO = "IL VOUS FAUT UNE CLEF ROUGE";
-PD_YELLOWO = "IL VOUS FAUT UNE CLEF JAUNE";
-PD_BLUEK = "IL VOUS FAUT UNE CLEF BLEUE";
-PD_REDK = "IL VOUS FAUT UNE CLEF ROUGE";
-PD_YELLOWK = "IL VOUS FAUT UNE CLEF JAUNE";
-
-//
-// G_game.C
-//
-GGSAVED = "JEU SAUVEGARDE.";
-
-//
-// HU_stuff.C
-//
-HUSTR_MSGU = "[MESSAGE NON ENVOYE]";
-
-HUSTR_E1M1 = "E1M1: HANGAR";
-HUSTR_E1M2 = "E1M2: USINE NUCLEAIRE ";
-HUSTR_E1M3 = "E1M3: RAFFINERIE DE TOXINES ";
-HUSTR_E1M4 = "E1M4: CENTRE DE CONTROLE ";
-HUSTR_E1M5 = "E1M5: LABORATOIRE PHOBOS ";
-HUSTR_E1M6 = "E1M6: TRAITEMENT CENTRAL ";
-HUSTR_E1M7 = "E1M7: CENTRE INFORMATIQUE ";
-HUSTR_E1M8 = "E1M8: ANOMALIE PHOBOS ";
-HUSTR_E1M9 = "E1M9: BASE MILITAIRE ";
-
-HUSTR_E2M1 = "E2M1: ANOMALIE DEIMOS ";
-HUSTR_E2M2 = "E2M2: ZONE DE CONFINEMENT ";
-HUSTR_E2M3 = "E2M3: RAFFINERIE";
-HUSTR_E2M4 = "E2M4: LABORATOIRE DEIMOS ";
-HUSTR_E2M5 = "E2M5: CENTRE DE CONTROLE ";
-HUSTR_E2M6 = "E2M6: HALLS DES DAMNES ";
-HUSTR_E2M7 = "E2M7: CUVES DE REPRODUCTION ";
-HUSTR_E2M8 = "E2M8: TOUR DE BABEL ";
-HUSTR_E2M9 = "E2M9: FORTERESSE DU MYSTERE ";
-
-HUSTR_E3M1 = "E3M1: DONJON DE L'ENFER ";
-HUSTR_E3M2 = "E3M2: BOURBIER DU DESESPOIR ";
-HUSTR_E3M3 = "E3M3: PANDEMONIUM";
-HUSTR_E3M4 = "E3M4: MAISON DE LA DOULEUR ";
-HUSTR_E3M5 = "E3M5: CATHEDRALE PROFANE ";
-HUSTR_E3M6 = "E3M6: MONT EREBUS";
-HUSTR_E3M7 = "E3M7: LIMBES";
-HUSTR_E3M8 = "E3M8: DIS";
-HUSTR_E3M9 = "E3M9: CLAPIERS";
-
-HUSTR_1 = "NIVEAU 1: ENTREE ";
-HUSTR_2 = "NIVEAU 2: HALLS SOUTERRAINS ";
-HUSTR_3 = "NIVEAU 3: LE FEU NOURRI ";
-HUSTR_4 = "NIVEAU 4: LE FOYER ";
-HUSTR_5 = "NIVEAU 5: LES EGOUTS ";
-HUSTR_6 = "NIVEAU 6: LE BROYEUR ";
-HUSTR_7 = "NIVEAU 7: L'HERBE DE LA MORT";
-HUSTR_8 = "NIVEAU 8: RUSES ET PIEGES ";
-HUSTR_9 = "NIVEAU 9: LE PUITS ";
-HUSTR_10 = "NIVEAU 10: BASE DE RAVITAILLEMENT ";
-HUSTR_11 = "NIVEAU 11: LE CERCLE DE LA MORT!";
-
-HUSTR_12 = "NIVEAU 12: L'USINE ";
-HUSTR_13 = "NIVEAU 13: LE CENTRE VILLE";
-HUSTR_14 = "NIVEAU 14: LES ANTRES PROFONDES ";
-HUSTR_15 = "NIVEAU 15: LA ZONE INDUSTRIELLE ";
-HUSTR_16 = "NIVEAU 16: LA BANLIEUE";
-HUSTR_17 = "NIVEAU 17: LES IMMEUBLES";
-HUSTR_18 = "NIVEAU 18: LA COUR ";
-HUSTR_19 = "NIVEAU 19: LA CITADELLE ";
-HUSTR_20 = "NIVEAU 20: JE T'AI EU!";
-
-HUSTR_21 = "NIVEAU 21: LE NIRVANA";
-HUSTR_22 = "NIVEAU 22: LES CATACOMBES ";
-HUSTR_23 = "NIVEAU 23: LA GRANDE FETE ";
-HUSTR_24 = "NIVEAU 24: LE GOUFFRE ";
-HUSTR_25 = "NIVEAU 25: LES CHUTES DE SANG";
-HUSTR_26 = "NIVEAU 26: LES MINES ABANDONNEES ";
-HUSTR_27 = "NIVEAU 27: CHEZ LES MONSTRES ";
-HUSTR_28 = "NIVEAU 28: LE MONDE DE L'ESPRIT ";
-HUSTR_29 = "NIVEAU 29: LA LIMITE ";
-HUSTR_30 = "NIVEAU 30: L'ICONE DU PECHE ";
-
-HUSTR_31 = "NIVEAU 31: WOLFENSTEIN";
-HUSTR_32 = "NIVEAU 32: LE MASSACRE";
-
-
-HUSTR_TALKTOSELF1 = "VOUS PARLEZ TOUT SEUL ";
-HUSTR_TALKTOSELF2 = "QUI EST LA?";
-HUSTR_TALKTOSELF3 = "VOUS VOUS FAITES PEUR ";
-HUSTR_TALKTOSELF4 = "VOUS COMMENCEZ A DELIRER ";
-HUSTR_TALKTOSELF5 = "VOUS ETES LARGUE...";
-
-HUSTR_MESSAGESENT = "[MESSAGE ENVOYE]";
-
-//
-// AM_map.C
-//
-
-AMSTR_FOLLOWON = "MODE POURSUITE ON";
-AMSTR_FOLLOWOFF = "MODE POURSUITE OFF";
-
-AMSTR_GRIDON = "GRILLE ON";
-AMSTR_GRIDOFF = "GRILLE OFF";
-
-AMSTR_MARKEDSPOT = "REPERE MARQUE ";
-AMSTR_MARKSCLEARED = "REPERES EFFACES ";
-
-//
-// ST_stuff.C
-//
-
-STSTR_MUS = "CHANGEMENT DE MUSIQUE ";
-STSTR_NOMUS = "IMPOSSIBLE SELECTION";
-STSTR_DQDON = "INVULNERABILITE ON ";
-STSTR_DQDOFF = "INVULNERABILITE OFF";
-
-STSTR_KFAADDED = "ARMEMENT MAXIMUM! ";
-STSTR_FAADDED = "ARMES (SAUF CLEFS) AJOUTEES";
-
-STSTR_NCON = "BARRIERES ON";
-STSTR_NCOFF = "BARRIERES OFF";
-
-STSTR_BEHOLDX = "AMELIORATION ACTIVEE";
-
-STSTR_CLEV = "CHANGEMENT DE NIVEAU...";
-
-//
-// F_Finale.C
-//
-E1TEXT =
- "APRES AVOIR VAINCU LES GROS MECHANTS\n"
- "ET NETTOYE LA BASE LUNAIRE, VOUS AVEZ\n"
- "GAGNE, NON? PAS VRAI? OU EST DONC VOTRE\n"
- " RECOMPENSE ET VOTRE BILLET DE\n"
- "RETOUR? QU'EST-QUE CA VEUT DIRE?CE"
- "N'EST PAS LA FIN ESPEREE!\n"
- "\n"
- "CA SENT LA VIANDE PUTREFIEE, MAIS\n"
- "ON DIRAIT LA BASE DEIMOS. VOUS ETES\n"
- "APPAREMMENT BLOQUE AUX PORTES DE L'ENFER.\n"
- "LA SEULE ISSUE EST DE L'AUTRE COTE.\n"
- "\n"
- "POUR VIVRE LA SUITE DE DOOM, JOUEZ\n"
- "A 'AUX PORTES DE L'ENFER' ET A\n"
- "L'EPISODE SUIVANT, 'L'ENFER'!\n";
-
-E2TEXT =
- "VOUS AVEZ REUSSI. L'INFAME DEMON\n"
- "QUI CONTROLAIT LA BASE LUNAIRE DE\n"
- "DEIMOS EST MORT, ET VOUS AVEZ\n"
- "TRIOMPHE! MAIS... OU ETES-VOUS?\n"
- "VOUS GRIMPEZ JUSQU'AU BORD DE LA\n"
- "LUNE ET VOUS DECOUVREZ L'ATROCE\n"
- "VERITE.\n"
- "\n"
- "DEIMOS EST AU-DESSUS DE L'ENFER!\n"
- "VOUS SAVEZ QUE PERSONNE NE S'EN\n"
- "EST JAMAIS ECHAPPE, MAIS CES FUMIERS\n"
- "VONT REGRETTER DE VOUS AVOIR CONNU!\n"
- "VOUS REDESCENDEZ RAPIDEMENT VERS\n"
- "LA SURFACE DE L'ENFER.\n"
- "\n"
- "VOICI MAINTENANT LE CHAPITRE FINAL DE\n"
- "DOOM! -- L'ENFER.";
-
-E3TEXT =
- "LE DEMON ARACHNEEN ET REPUGNANT\n"
- "QUI A DIRIGE L'INVASION DES BASES\n"
- "LUNAIRES ET SEME LA MORT VIENT DE SE\n"
- "FAIRE PULVERISER UNE FOIS POUR TOUTES.\n"
- "\n"
- "UNE PORTE SECRETE S'OUVRE. VOUS ENTREZ.\n"
- "VOUS AVEZ PROUVE QUE VOUS POUVIEZ\n"
- "RESISTER AUX HORREURS DE L'ENFER.\n"
- "IL SAIT ETRE BEAU JOUEUR, ET LORSQUE\n"
- "VOUS SORTEZ, VOUS REVOYEZ LES VERTES\n"
- "PRAIRIES DE LA TERRE, VOTRE PLANETE.\n"
- "\n"
- "VOUS VOUS DEMANDEZ CE QUI S'EST PASSE\n"
- "SUR TERRE PENDANT QUE VOUS AVEZ\n"
- "COMBATTU LE DEMON. HEUREUSEMENT,\n"
- "AUCUN GERME DU MAL N'A FRANCHI\n"
- "CETTE PORTE AVEC VOUS...";
-
-
-
-// after level 6, put this:
-
-C1TEXT =
- "VOUS ETES AU PLUS PROFOND DE L'ASTROPORT\n"
- "INFESTE DE MONSTRES, MAIS QUELQUE CHOSE\n"
- "NE VA PAS. ILS ONT APPORTE LEUR PROPRE\n"
- "REALITE, ET LA TECHNOLOGIE DE L'ASTROPORT\n"
- "EST AFFECTEE PAR LEUR PRESENCE.\n"
- "\n"
- "DEVANT VOUS, VOUS VOYEZ UN POSTE AVANCE\n"
- "DE L'ENFER, UNE ZONE FORTIFIEE. SI VOUS\n"
- "POUVEZ PASSER, VOUS POURREZ PENETRER AU\n"
- "COEUR DE LA BASE HANTEE ET TROUVER \n"
- "L'INTERRUPTEUR DE CONTROLE QUI GARDE LA \n"
- "POPULATION DE LA TERRE EN OTAGE.";
-
-// After level 11, put this:
-
-C2TEXT =
- "VOUS AVEZ GAGNE! VOTRE VICTOIRE A PERMIS\n"
- "A L'HUMANITE D'EVACUER LA TERRE ET \n"
- "D'ECHAPPER AU CAUCHEMAR. VOUS ETES \n"
- "MAINTENANT LE DERNIER HUMAIN A LA SURFACE \n"
- "DE LA PLANETE. VOUS ETES ENTOURE DE \n"
- "MUTANTS CANNIBALES, D'EXTRATERRESTRES \n"
- "CARNIVORES ET D'ESPRITS DU MAL. VOUS \n"
- "ATTENDEZ CALMEMENT LA MORT, HEUREUX \n"
- "D'AVOIR PU SAUVER VOTRE RACE.\n"
- "MAIS UN MESSAGE VOUS PARVIENT SOUDAIN\n"
- "DE L'ESPACE: \"NOS CAPTEURS ONT LOCALISE\n"
- "LA SOURCE DE L'INVASION EXTRATERRESTRE.\n"
- "SI VOUS Y ALLEZ, VOUS POURREZ PEUT-ETRE\n"
- "LES ARRETER. LEUR BASE EST SITUEE AU COEUR\n"
- "DE VOTRE VILLE NATALE, PRES DE L'ASTROPORT.\n"
- "VOUS VOUS RELEVEZ LENTEMENT ET PENIBLEMENT\n"
- "ET VOUS REPARTEZ POUR LE FRONT.";
-
-// After level 20, put this:
-
-C3TEXT =
- "VOUS ETES AU COEUR DE LA CITE CORROMPUE,\n"
- "ENTOURE PAR LES CADAVRES DE VOS ENNEMIS.\n"
- "VOUS NE VOYEZ PAS COMMENT DETRUIRE LA PORTE\n"
- "DES CREATURES DE CE COTE. VOUS SERREZ\n"
- "LES DENTS ET PLONGEZ DANS L'OUVERTURE.\n"
- "\n"
- "IL DOIT Y AVOIR UN MOYEN DE LA FERMER\n"
- "DE L'AUTRE COTE. VOUS ACCEPTEZ DE\n"
- "TRAVERSER L'ENFER POUR LE FAIRE?";
-
-// After level 29, put this:
-
-C4TEXT =
- "LE VISAGE HORRIBLE D'UN DEMON D'UNE\n"
- "TAILLE INCROYABLE S'EFFONDRE DEVANT\n"
- "VOUS LORSQUE VOUS TIREZ UNE SALVE DE\n"
- "ROQUETTES DANS SON CERVEAU. LE MONSTRE\n"
- "SE RATATINE, SES MEMBRES DECHIQUETES\n"
- "SE REPANDANT SUR DES CENTAINES DE\n"
- "KILOMETRES A LA SURFACE DE L'ENFER.\n"
- "\n"
- "VOUS AVEZ REUSSI. L'INVASION N'AURA.\n"
- "PAS LIEU. LA TERRE EST SAUVEE. L'ENFER\n"
- "EST ANEANTI. EN VOUS DEMANDANT OU IRONT\n"
- "MAINTENANT LES DAMNES, VOUS ESSUYEZ\n"
- "VOTRE FRONT COUVERT DE SUEUR ET REPARTEZ\n"
- "VERS LA TERRE. SA RECONSTRUCTION SERA\n"
- "BEAUCOUP PLUS DROLE QUE SA DESTRUCTION.\n";
-
-// Before level 31, put this:
-
-C5TEXT =
- "FELICITATIONS! VOUS AVEZ TROUVE LE\n"
- "NIVEAU SECRET! IL SEMBLE AVOIR ETE\n"
- "CONSTRUIT PAR LES HUMAINS. VOUS VOUS\n"
- "DEMANDEZ QUELS PEUVENT ETRE LES\n"
- "HABITANTS DE CE COIN PERDU DE L'ENFER.";
-
-// Before level 32, put this:
-
-C6TEXT =
- "FELICITATIONS! VOUS AVEZ DECOUVERT\n"
- "LE NIVEAU SUPER SECRET! VOUS FERIEZ\n"
- "MIEUX DE FONCER DANS CELUI-LA!\n";
-
-//
-// Character cast strings F_FINALE.C
-//
-CC_ZOMBIE = "ZOMBIE";
-CC_SHOTGUN = "TYPE AU FUSIL";
-CC_HEAVY = "MEC SUPER-ARME";
-CC_IMP = "DIABLOTIN";
-CC_DEMON = "DEMON";
-CC_LOST = "AME PERDUE";
-CC_CACO = "CACODEMON";
-CC_HELL = "CHEVALIER DE L'ENFER";
-CC_BARON = "BARON DE L'ENFER";
-CC_ARACH = "ARACHNOTRON";
-CC_PAIN = "ELEMENTAIRE DE LA DOULEUR";
-CC_REVEN = "REVENANT";
-CC_MANCU = "MANCUBUS";
-CC_ARCH = "ARCHI-INFAME";
-CC_SPIDER = "L'ARAIGNEE CERVEAU";
-CC_CYBER = "LE CYBERDEMON";
-CC_HERO = "NOTRE HEROS";
diff --git a/wadsrc/languages/italian.txt b/wadsrc/languages/italian.txt
deleted file mode 100644
index 4bd8236e..00000000
--- a/wadsrc/languages/italian.txt
+++ /dev/null
@@ -1,1016 +0,0 @@
-/* Italian strings. Contributed, but alas, I forget by who.
- * If whoever wrote these wants credit, send me an e-mail and I'll add your name to this header.
- */
-
-[ita]
-
-D_DEVSTR = "Modalita' sviluppo ATTIVA.\n";
-D_CDROM = "Versione del CD-ROM: zdoom.cfg da c:\\zdoomdat\n";
-PRESSKEY = "premi un tasto.";
-PRESSYN = "premi y oppure n.";
-
-QUITMSG = "Sei sicuro di volere uscire\nda questo grandioso gioco?";
-
-// QuitDoom1 messages
-QUITMSG1 = "per favore non uscire, ci sono altri\ndemoni da ammazzare!";
-QUITMSG2 = "ammettiamolo - tutto cio' si sta\ntrasformando in un bagno di sangue!";
-QUITMSG3 = "non uscirei se fossi in te.\nil dos e' molto peggio.";
-QUITMSG4 = "stai cercando di dire che il dos\nti piace piu' di me, vero?";
-QUITMSG5 = "non abbandonare ora - c'e' un\ndemone dietro l'angolo!";
-QUITMSG6 = "sai, la prossima volta che verrai qui\nti faro' a pezzi.";
-QUITMSG7 = "continua ed esci. sai che mi frega.";
-
-// QuitDOOM II messages
-QUITMSG8 = "vuoi uscire?\nallora hai perso il senno!";
-QUITMSG9 = "non andartene adesso, c'e' un\nportale dimensionale che ti aspetta\nal prompt del dos!";
-QUITMSG10 = "vai fuori di qui e torna\nai tuoi noiosi programmi.";
-QUITMSG11 = "se fossi il tuo capo, ti batterei\na un deathmatch in un minuto!";
-QUITMSG12 = "senti amico, esci adesso\ne perdi il tuo body count!";
-QUITMSG13 = "esci pure. quanto tornerai\nti aspettero' con un bastone.";
-QUITMSG14 = "sei fortunato che non ti picchi\nper aver pensato di andartene.";
-
-LOADNET = "non puoi caricare una partita durante un netgame!\n\npremi un tasto.";
-QLOADNET = "non puoi fare un quickload durante un netgame!\n\npremi un tasto.";
-QSAVESPOT = "non hai ancora scelto uno slot per il quicksave!\n\npremi un tasto.";
-SAVEDEAD = "non puoi salvare se non stai giocando!\n\npremi un tasto.";
-QSPROMPT = "sovrascrivere il salvataggio\n\n'%s'?\n\npremi y oppure n.";
-QLPROMPT = "vuoi fare un quickload della partita\n\n'%s'?\n\npremi y oppure n.";
-NEWGAME = "non puoi iniziare una nuova partita\ndurante una partita in rete.\n\npremi un tasto.";
-NIGHTMARE = "sei sicuro? questo livello di difficolta'\ne' dannatamente difficile.\n\npremi y oppure n.";
-SWSTRING = "questa e' la versione shareware di doom.\n\ndevi ordinare la trilogia completa.\n\npremi un tasto.";
-MSGOFF = "messaggi disattivati";
-MSGON = "messaggi attivati";
-NETEND = "non puoi terminare un netgame!\n\npremi un tasto";
-ENDGAME = "sei sicuro di voler terminare la partita?\n\npremi y oppure n.";
-DOSY = "(premi y per uscire)";
-EMPTYSTRING = "slot libero";
-GOTARMOR = "Hai trovato un'armatura.";
-GOTMEGA = "Hai trovato una MegaArmatura!";
-GOTHTHBONUS = "Raccolto un bonus d'energia.";
-GOTARMBONUS = "Raccolto un bonus d'armatura.";
-GOTSTIM = "Raccolto uno stimpack.";
-GOTMEDINEED = "Hai raccolto un medikit di cui avevi PROPRIO bisogno!";
-GOTMEDIKIT = "Raccolto un medikit.";
-GOTSUPER = "Sfera dell'Anima!";
-GOTBLUECARD = "Raccolta una card blu.";
-GOTYELWCARD = "Raccolta una card gialla.";
-GOTREDCARD = "Raccolta una card rossa.";
-GOTBLUESKUL = "Raccolta una chiave-teschio blu.";
-GOTYELWSKUL = "Raccolta una chiave-teschio gialla.";
-GOTREDSKUL = "Raccolta una chiave-teschio rossa.";
-GOTINVUL = "Invulnerabilita'!";
-GOTBERSERK = "Berserk!";
-GOTINVIS = "Invisibilita' parziale";
-GOTSUIT = "Tuta anti-radiazioni";
-GOTMAP = "Mappa Completata.";
-GOTVISOR = "Amplificatore di luce";
-GOTMSPHERE = "MegaSfera!";
-GOTCLIP = "Raccolto un caricatore.";
-GOTCLIPBOX = "Raccolta una scatola di proiettili.";
-GOTROCKET = "Raccolto un razzo.";
-GOTROCKBOX = "Raccolta una cassa di razzi.";
-GOTCELL = "Raccolta una batteria.";
-GOTCELLBOX = "Raccolta una confezione di batterie.";
-GOTSHELLS = "Raccolte 4 cartucce per fucile.";
-GOTSHELLBOX = "Raccolta una scatola di cartucce per fucile.";
-GOTBACKPACK = "Raccolto uno zaino zeppo di munizioni!";
-GOTBFG9000 = "Hai trovato il BFG9000! Eh, si'!";
-GOTCHAINGUN = "Hai trovato un mitragliatore!";
-GOTCHAINSAW = "Una motosega! Trova un po' di carne!";
-GOTLAUNCHER = "Hai trovato un lanciarazzi!";
-GOTPLASMA = "Hai trovato un fucile al plasma!";
-GOTSHOTGUN = "Hai trovato un fucile!";
-GOTSHOTGUN2 = "Hai trovato una doppietta!";
-PD_BLUEO = "Ti serve una chiave blu per attivare questo oggetto";
-PD_REDO = "Ti serve una chiave rossa per attivare questo oggetto";
-PD_YELLOWO = "Ti serve una chiave gialla per attivare questo oggetto";
-PD_BLUEK = "Ti serve una chiave blu per aprire questa porta";
-PD_REDK = "Ti serve una chiave rossa per aprire questa porta";
-PD_YELLOWK = "Ti serve una chiave gialla per aprire questa porta";
-GGSAVED = "gioco salvato";
-HUSTR_MSGU = "[Messaggio non inviato]";
-
-// Level names
-HUSTR_E1M1 = "E1M1: Hangar";
-HUSTR_E1M2 = "E1M2: Centrale Nucleare";
-HUSTR_E1M3 = "E1M3: Raffineria delle Tossine";
-HUSTR_E1M4 = "E1M4: Centrale di Comando";
-HUSTR_E1M5 = "E1M5: Laboratorio di Phobos";
-HUSTR_E1M6 = "E1M6: Zona Elaboratori";
-HUSTR_E1M7 = "E1M7: Stazione dei Computer";
-HUSTR_E1M8 = "E1M8: L'anomalia di Phobos";
-HUSTR_E1M9 = "E1M9: Base militare";
-HUSTR_E2M1 = "E2M1: L'anomalia di Deimos";
-HUSTR_E2M2 = "E2M2: Area di contenimento";
-HUSTR_E2M3 = "E2M3: Raffineria";
-HUSTR_E2M4 = "E2M4: Laboratorio di Deimos";
-HUSTR_E2M5 = "E2M5: Centro di Comando";
-HUSTR_E2M6 = "E2M6: Sale dei Dannati";
-HUSTR_E2M7 = "E2M7: Vasche di Riproduzione";
-HUSTR_E2M8 = "E2M8: Torre di Babele";
-HUSTR_E2M9 = "E2M9: Fortezza del Mistero";
-HUSTR_E3M1 = "E3M1: Bastioni dell'Inferno";
-HUSTR_E3M2 = "E3M2: Palude della Disperazione";
-HUSTR_E3M3 = "E3M3: Pandemonio";
-HUSTR_E3M4 = "E3M4: Casa del Dolore";
-HUSTR_E3M5 = "E3M5: Cattedrale Blasfema";
-HUSTR_E3M6 = "E3M6: Monte Erebus";
-HUSTR_E3M7 = "E3M7: Limbo";
-HUSTR_E3M8 = "E3M8: Dite";
-HUSTR_E3M9 = "E3M9: Le Garenne";
-HUSTR_E4M1 = "E4M1: L'inferno sotto";
-HUSTR_E4M2 = "E4M2: Odio Puro";
-HUSTR_E4M3 = "E4M3: Spezza il maligno";
-HUSTR_E4M4 = "E4M4: Male Ingovernabile";
-HUSTR_E4M5 = "E4M5: Essi si pentiranno";
-HUSTR_E4M6 = "E4M6: Contro di te Crudelmente";
-HUSTR_E4M7 = "E4M7: E l'inferno segui'";
-HUSTR_E4M8 = "E4M8: Verso il Crudele";
-HUSTR_E4M9 = "E4M9: Paura";
-
-HUSTR_1 = "livello 1: ingresso";
-HUSTR_2 = "livello 2: sotterranei";
-HUSTR_3 = "livello 3: le forche";
-HUSTR_4 = "livello 4: l'epicentro";
-HUSTR_5 = "livello 5: i tunnel dei rifiuti";
-HUSTR_6 = "livello 6: la pressa";
-HUSTR_7 = "livello 7: morte pura";
-HUSTR_8 = "livello 8: trucchi e trappole";
-HUSTR_9 = "livello 9: il pozzo";
-HUSTR_10 = "livello 10: base di rifornimento";
-HUSTR_11 = "livello 11: 'o' della distruzione!";
-HUSTR_12 = "livello 12: la fabbrica";
-HUSTR_13 = "livello 13: periferia";
-HUSTR_14 = "livello 14: gli antri profondi";
-HUSTR_15 = "livello 15: zona industriale";
-HUSTR_16 = "livello 16: sobborghi";
-HUSTR_17 = "livello 17: possedimenti";
-HUSTR_18 = "livello 18: il cortile";
-HUSTR_19 = "livello 19: la cittadella";
-HUSTR_20 = "livello 20: preso!";
-HUSTR_21 = "livello 21: nirvana";
-HUSTR_22 = "livello 22: le catacombe";
-HUSTR_23 = "livello 23: barili del divertimento";
-HUSTR_24 = "livello 24: l'abisso";
-HUSTR_25 = "livello 25: cascate di sangue";
-HUSTR_26 = "livello 26: le miniere abbandonate";
-HUSTR_27 = "livello 27: casa dei mostri";
-HUSTR_28 = "livello 28: il mondo dello spirito";
-HUSTR_29 = "livello 29: la fine imminente";
-HUSTR_30 = "livello 30: icona del peccato";
-HUSTR_31 = "livello 31: wolfenstein";
-HUSTR_32 = "livello 32: grosse";
-
-PHUSTR_1 = "livello 1: congo";
-PHUSTR_2 = "livello 2: pozzo delle anime";
-PHUSTR_3 = "livello 3: Aztec";
-PHUSTR_4 = "livello 4: Ingabbiato";
-PHUSTR_5 = "livello 5: Citta' Fantasma";
-PHUSTR_6 = "livello 6: la tana del barone";
-PHUSTR_7 = "livello 7: cortile prigione";
-PHUSTR_8 = "livello 8: reame";
-PHUSTR_9 = "livello 9: mattatoio";
-PHUSTR_10 = "livello 10: assalto";
-PHUSTR_11 = "livello 11: braccato";
-PHUSTR_12 = "livello 12: velocita'";
-PHUSTR_13 = "livello 13: la cripta";
-PHUSTR_14 = "livello 14: genesi";
-PHUSTR_15 = "livello 15: il crepuscolo";
-PHUSTR_16 = "livello 16: la visione";
-PHUSTR_17 = "livello 17: recinto";
-PHUSTR_18 = "livello 18: neurosfera";
-PHUSTR_19 = "livello 19: nme";
-PHUSTR_20 = "livello 20: il dominio della morte";
-PHUSTR_21 = "livello 21: assassino";
-PHUSTR_22 = "livello 22: missione impossibile";
-PHUSTR_23 = "livello 23: tombstone";
-PHUSTR_24 = "livello 24: la frontiera finale";
-PHUSTR_25 = "livello 25: il tempio dell'oscurita'";
-PHUSTR_26 = "livello 26: bunker";
-PHUSTR_27 = "livello 27: anticristo";
-PHUSTR_28 = "livello 28: le fogne";
-PHUSTR_29 = "livello 29: odissea di rumori";
-PHUSTR_30 = "livello 30: il cancello dell'inferno";
-PHUSTR_31 = "livello 31: cybergabbia";
-PHUSTR_32 = "livello 32: dacci dentro";
-
-THUSTR_1 = "livello 1: controllo del sistema";
-THUSTR_2 = "livello 2: barbecue umano";
-THUSTR_3 = "livello 3: centrale energetica";
-THUSTR_4 = "livello 4: wormhole";
-THUSTR_5 = "livello 5: ganci";
-THUSTR_6 = "livello 6: stagione aperta";
-THUSTR_7 = "livello 7: prigione";
-THUSTR_8 = "livello 8: metallo";
-THUSTR_9 = "livello 9: fortezza";
-THUSTR_10 = "livello 10: redenzione";
-THUSTR_11 = "livello 11: impianto di stoccaggio";
-THUSTR_12 = "livello 12: cratere";
-THUSTR_13 = "livello 13: raffineria delle tossine";
-THUSTR_14 = "livello 14: acciaieria";
-THUSTR_15 = "livello 15: zona morta";
-THUSTR_16 = "livello 16: le profondita'";
-THUSTR_17 = "livello 17: area di elaborazione";
-THUSTR_18 = "livello 18: fabbrica";
-THUSTR_19 = "livello 19: consegna/respawn";
-THUSTR_20 = "livello 20: Centrale di elaborazione";
-THUSTR_21 = "livello 21: centro amministrativo";
-THUSTR_22 = "livello 22: habitat";
-THUSTR_23 = "livello 23: progetto minerario lunare";
-THUSTR_24 = "livello 24: caccia";
-THUSTR_25 = "livello 25: antro del barone";
-THUSTR_26 = "livello 26: ballistyx";
-THUSTR_27 = "livello 27: monte del dolore";
-THUSTR_28 = "livello 28: la grata";
-THUSTR_29 = "livello 29: fiume stige";
-THUSTR_30 = "livello 30: ultima chiamata";
-THUSTR_31 = "livello 31: faraone";
-THUSTR_32 = "livello 32: caraibi";
-
-HUSTR_TALKTOSELF1 = "Pensi fra te e te";
-HUSTR_TALKTOSELF2 = "Chi c'e' li'?";
-HUSTR_TALKTOSELF3 = "Ti spaventi da solo";
-HUSTR_TALKTOSELF4 = "Inizi a delirare";
-HUSTR_TALKTOSELF5 = "Sei andato...";
-HUSTR_MESSAGESENT = "[Messaggio Inviato]";
-
-AMSTR_FOLLOWON = "Mappa scorribile disattivata";
-AMSTR_FOLLOWOFF = "Mappa scorribile attivata";
-AMSTR_GRIDON = "Griglia Attivata";
-AMSTR_GRIDOFF = "Griglia Disattivata";
-AMSTR_MARKEDSPOT = "Posizione segnata";
-AMSTR_MARKSCLEARED = "Cancellati tutti i segni";
-STSTR_MUS = "Musica cambiata";
-STSTR_NOMUS = "SELEZIONE IMPOSSIBILE";
-STSTR_DQDON = "Invincibilita' attivata";
-STSTR_DQDOFF = "Invincibilita' disattivata";
-STSTR_KFAADDED = "Equipaggiamento Completato";
-STSTR_FAADDED = "Equipaggiamento Completato (senza chiavi)";
-STSTR_NCON = "No Clipping Attivato";
-STSTR_NCOFF = "No Clipping Disattivato";
-STSTR_BEHOLD = "inVuln, BerSerk, Invisib, Tuta anti-Rad, MAppa, o Amplif-Luce";
-STSTR_BEHOLDX = "Power-up concesso/tolto";
-STSTR_CHOPPERS = "Ora vai e segali tutti!";
-STSTR_CLEV = "Cambio di livello...\n";
-
-E1TEXT =
- "Una volta che hai eliminato i cattivi e\n"
- "liberato la base lunare dovresti aver\n"
- "vinto, vero? Vero? Dove sono la tua\n"
- "ricca ricompensa e il biglietto per\n"
- "casa? Cosa diavolo e' questo? Non\n"
- "avrebbe dovuto finire cosi'!\n"
- "\n"
- "Puzza come carne marcia, ma pare\n"
- "essere la dispersa base di Deimos.\n"
- "Pare proprio che tu sia approdato\n"
- "sulle Coste dell'Inferno.\n"
- "L'unica uscita ci passa in mezzo.\n"
- "\n"
- "Per continuare l'esperienza di DOOM\n"
- "gioca 'The Shores of Hell' e il suo\n"
- "incredibile seguito, 'Inferno'!\n";
-E2TEXT =
- "Ce l'hai fatta! Il malvagio cyber-\n"
- "demonio che governava la dispersa\n"
- "base di Deimos e' stato ucciso e tu\n"
- "sei trionfante! Ma... dove ti trovi?\n"
- "Sali fino all'orlo della luna e\n"
- "guardi giu' scoprendo l'orribile\n"
- "verita'.\n"
- "\n"
- "Deimos fluttua sopra l'Inferno stesso!\n"
- "Non hai mai sentito di nessuno fuggito\n"
- "dall'Inferno, ma quei bastardi si\n"
- "pentiranno di aver anche solo\n"
- "sentito parlare di te!\n"
- "Velocemente scendi verso la superficie\n"
- "dell'Inferno.\n"
- "\n"
- "E' ora del capitolo finale di\n"
- "DOOM! - 'Inferno'.";
-E3TEXT =
- "Il terribile demone-ragno che aveva\n"
- "progettato l'invasione delle basi\n"
- "lunari e causato cosi' tanta morte ha\n"
- "sempre avuto i minuti contati.\n"
- "\n"
- "Una porta nascosta si apre ed entri.\n"
- "Sei stato troppo forte perche' l'Inferno\n"
- "ti fermasse ed ora l'Inferno gioca pulito\n"
- "per una volta, perche' emergi dalla porta\n"
- "per vedere i campi verdi della Terra!\n"
- "Finalmente a casa.\n"
- "\n"
- "Ti chiedi cosa sia successo sulla\n"
- "Terra mentre combattevi il male.\n"
- "E' un bene che nessuna creatura dell'\n"
- "Inferno sia passata per quella porta\n"
- "con te...";
-E4TEXT =
- "Il demone ragno doveva aver mandato\n"
- "avanti le sue legioni infernali prima\n"
- "del tuo confronto finale con quella\n"
- "terribile bestia. Ma ti sei fatto avanti\n"
- "e hai portato dannazione eterna e\n"
- "sofferenza all'orda come un vero eroe\n"
- "farebbe di fronte a qualcosa di cosi'\n"
- "crudele.\n"
- "\n"
- "Inoltre, qualcuno doveva pagare per\n"
- "quello che era successo a Daisy, la\n"
- "tua coniglietta domestica.\n"
- "\n"
- "Ma ora vedi diffondersi davanti a te\n"
- "ulteriori dolori e massacri mentre\n"
- "una popolazione di demoni si sparge\n"
- "furiosa per le nostre citta'.\n"
- "\n"
- "prossima fermata, l'Inferno in terra!";
-C1TEXT =
- "SEI ENTRATO PROFONDAMENTE NEL SPAZIOPORTO\n"
- "INFESTATO. MA QUALCOSA NON VA. I\n"
- "MOSTRI HANNO PORTATO LA LORO REALTA'\n"
- "CON SE' E LA TECNOLOGIA DELLO SPAZIOPORTO\n"
- "E' SOVVERTITA DALLA LORO PRESENZA.\n"
- "\n"
- "PIU' AVANTI VEDI UN AVAMPOSTO DELL'INFERNO,\n"
- "UNA ZONA FORTIFICATA. SE RIESCI A PASSARLA,\n"
- "POTRAI PENETRARE NEL CUORE INFESTATO DELLA\n"
- "STAZIONE SPAZIALE E TROVARE L'INTERRUTTORE\n"
- "DI CONTROLLO CHE TIENE LA POPOLAZIONE \n"
- "DELLA TERRA IN OSTAGGIO.";
-C2TEXT =
- "HAI VINTO! LA TUA VITTORIA HA PERMESSO\n"
- "AL GENERE UMANO DI EVACUARE LA TERRA E\n"
- "DI FUGGIRE DALL'INCUBO. ORA SEI IL SOLO\n"
- "UMANO RIMASTO SULLA FACCIA DEL PIANETA.\n"
- "MUTAZIONI CANNIBALI, ALIENI CARNIVORI E\n"
- "SPIRITI MALVAGI SONO I TUOI SOLI VICINI.\n"
- "TI SIEDI E ASPETTI LA MORTE, FELICE DI\n"
- "AVER SALVATO LA TUA SPECIE.\n"
- "\n"
- "PROPRIO ALLORA, IL CONTROLLO DELLA TERRA\n"
- "RIMANDA UN MESSAGGIO DALLO SPAZIO: \"I\n"
- "SENSORI HANNO LOCALIZZATO LA FONTE \n"
- "DELL'INVASIONE ALIENA. SE ANDRAI LI'\n"
- "POTRAI FORSE BLOCCARE IL LORO\n"
- "INGRESSO. LA BASE ALIENA E' NEL CUORE\n"
- "DELLA TUA CITTA' NATALE, NON LONTANO\n"
- "DALLO SPAZIOPORTO.\"\n"
- "LENTAMENTE E DOLOROSAMENTE TI ALZI\n"
- "E RITORNI ALLA BATTAGLIA.";
-C3TEXT =
- "SEI NEL CUORE INFESTATO DELLA CITTA',\n"
- "CIRCONDATO DAI CORPI DEI TUOI NEMICI.\n"
- "NON VEDI IL MODO DI DISTRUGGERE L'INGRESSO\n"
- "DELLE CREATURE DA QUESTO LATO, COSI'\n"
- "STRINGI I DENTI E TI CI BUTTI ATTRAVERSO.\n"
- "\n"
- "CI DEVE ESSERE UN MODO PER CHIUDERELO DALL'\n"
- "ALTRO LATO. QUELLO CHE TI CHIEDI E' SE\n"
- "DOVRAI ATTRAVERSARE L'INFERNO PER TROVARLO?";
-C4TEXT =
- "L'ORRENDO VISO DEL DEMONE PIU' GROSSO\n"
- "CHE TU ABBIA MAI VISTO SI SFASCIA DAVANTI\n"
- "A TE, DOPO CHE HAI SPARATO I TUOI RAZZI\n"
- "NEL SUO CERVELLO ESPOSTO. IL MOSTRO SI\n"
- "CONTORCE E MUORE, LE SUE MEMBRA CHE SI\n"
- "AGITANO DEVASTANO MIGLIA INDICIBILI\n"
- "DELLA SUPERFICIE DELL'INFERNO.\n"
- "\n"
- "CE L'HAI FATTA. L'INVASIONE E' FINITA.\n"
- "LA TERRA E' SALVA. L'INFERNO UNA ROVINA.\n"
- "TI CHIEDI DOVE ANDRANNO I MALVAGI QUANDO\n"
- "MORIRANNO, ORA. ASCIUGANDOTI IL SUDORE\n"
- "DALLA FRONTE INIZI LA LUNGA STRADA PER\n"
- "CASA.\n"
- "RICOSTRUIRE LA TERRA DOVREBBE ESSERE\n"
- "MOLTO PIU' DIVERTENTE DI QUANTO NON\n"
- "LO SIA STATO DISTRUGGERLA\n";
-C5TEXT =
- "CONGRATULAZIONI, HAI TROVATO IL LIVELLO\n"
- "SEGRETO! SEMBRA ESSERE STATO EDIFICATO\n"
- "DA UMANI PIU' CHE DA DEMONI. TI CHIEDI\n"
- "CHI SIANO GLI ABITANTI DI QUESTO ANGOLO\n"
- "DELL'INFERNO.";
-C6TEXT =
- "CONGRATULAZIONI, HAI TROVATO IL\n"
- "LIVELLO SUPER SEGRETO! E' MEGLIO\n"
- "CHE TU LO PERCORRA DI CORSA!\n";
-P1TEXT =
- "Esulti sulla carcassa fumante del\n"
- "Guardiano. con la sua morte hai estratto\n"
- "l'Acceleratore dagli schifosi artigli\n"
- "dell'inferno. Ti rilassi e guardi attorno.\n"
- "Dannazione! Ci dovrebbe essere almeno un\n"
- "prototipo funzionante, ma non riesci a\n"
- "vederlo. I demoni devono averlo preso.\n"
- "\n"
- "Devi trovare il prototipo o tutti i tuoi\n"
- "sforzi saranno stati vani. Continua a\n"
- "muoverti, continua a combattere, continua\n"
- "a uccidere. E continua a restare vivo.";
-P2TEXT =
- "Neanche il letale labirinto degli Arch-Vile\n"
- "ti ha fermato e sei arrivato al prototipo\n"
- "dell'acceleratore che viene disattivato\n"
- "efficientemente e permanentemente.\n"
- "\n"
- "Sei bravo in questo genere di cose.";
-P3TEXT =
- "Ti sei aperto la via nel cuore del nido\n"
- "dei demoni. E' ora di una missione\n"
- "Cerca e Distruggi con obiettivo il\n"
- "Guardiano del cancello le cui malvage\n"
- "creature si riversano sulla Terra. Si',\n"
- "e' malvagio, ma tu sai chi e' peggio!\n"
- "\n"
- "Sorridendo malignamente controlli il tuo\n"
- "equipaggiamento e ti prepari a dare al\n"
- "bastardo un piccolo inferno di tua fattura!";
-P4TEXT =
- "Il viso del Guardiano e' sparso dappertutto\n"
- "Mentre il suo corpo sbrindellato collassa\n"
- "un cancello invertito si forma e risucchia\n"
- "i resti dell'ultimo acceleratore\n"
- "prototipo, per non parlare dei pochi demoni\n"
- "rimanenti. Sei soddisfatto. L'Inferno\n"
- "e' tornato a perseguitare i dannati invece\n"
- "dei vivi. Ricordati di dire ai tuoi nipoti\n"
- "di mettere un lanciarazzi nella tua\n"
- "bara. Se andrai all'inferno quando\n"
- "morirai, ne avrai bisogno per fare un\n"
- "repulisti finale...";
-P5TEXT =
- "Hai trovato il secondo livello piu' tosto\n"
- "che abbiamo. Spero che tu abbia salvato uno\n"
- "o due livelli fa. Se no, preparati a morire\n"
- "in continuazione. Solo per marine veterani.";
-P6TEXT =
- "Scommetto che ti chiedevi quale fosse il\n"
- "livello piu' duro che avessimo per te.\n"
- "Adesso lo sai.\n"
- "Nessuno ne esce vivo.";
-T1TEXT =
- "Ti sei aperto la via fuori dai laboratori\n"
- "sperimentali infestati. Sembra che la UAC\n"
- "abbia fatto il passo più lungo della gamba\n"
- "di nuovo. Con questi continui turnover,\n"
- "deve essere dura per la UAC comprare delle\n"
- "polizze di assicurazione sulla vita degli\n"
- "impiegati di questi tempi...\n"
- "\n"
- "Piu' avanti si trova il complesso militare,\n"
- "ora infestato da orrori malati, ansiosi di\n"
- "mettere i loro denti su di te. Con un po'\n"
- "di fortuna nel complesso potrebbero ancora\n"
- "esserci delle armi in giro.";
-T2TEXT =
- "Senti lo sferragliare di grossi macchinari\n"
- "piu' avanti. Ti auguri che non stiano\n"
- "producendo nuovi demoni, ma sei pronto per\n"
- "farne fuori un intero branco se fosse\n"
- "necessario.\n"
- "Staranno progettando un'orgia di sangue,\n"
- "ma ti senti forte come duecento pazzi\n"
- "assiepati in un unico maniaco omicida.\n"
- "\n"
- "Non intendi farti battere facilmente.";
-T3TEXT =
- "Il panorama visibile sembra dannatamente\n"
- "familiare. Ha pure un puzzo familiare, da\n"
- "escrementi fritti. Non ti piaceva questo\n"
- "posto prima e non pensi di fartelo piace-\n"
- "re proprio adesso. Piu' ci pensi e piu'\n"
- "diventi nervoso.\n"
- "Soppesando l'arma, un sorriso maligno\n"
- "si fa strada sul tuo volto.\n"
- "E' ora di prendere un po' di nomi.";
-T4TEXT =
- "Improvvisamente tutto si fa silenzioso, da\n"
- "un orizzonte all'altro. L'agonizzante eco\n"
- "dell'inferno svanisce, il cielo da incubo\n"
- "diventa blu, le pile dei cadaveri dei\n"
- "mostri iniziano a evaporare con il maligno\n"
- "fetore che riempiva l'aria. Diamine, forse\n"
- "ce l'hai fatta. Hai davvero vinto?\n"
- "\n"
- "Qualcosa tuona distante.\n"
- "Una luce bluastra inizia a brillare dentro\n"
- "il cranio in rovina dello sputa-demoni.";
-T5TEXT =
- "E ora? Tutto sembra differente. Tipo\n"
- "dimora del faraone Tutankamon. Be',\n"
- "qualunque cosa ci sia qui non sara' peggio\n"
- "del solito, o no? O forse sarebbe meglio\n"
- "non disturbare le divinita' dormienti...";
-T6TEXT =
- "Tempo di una vacanza. Hai percorso le\n"
- "profondita' dell'inferno e sei pronto\n"
- "per una pausa. Dici a te stesso che\n"
- "forse qualcun altro puo' rompere la testa\n"
- "ai demoni la prossima volta. Laggiu' c'e'\n"
- "una cittadina tranquilla, con dell'acqua\n"
- "che scorre pacifica, edifici pittoreschi\n"
- "e probabilmente nessun demone.\n"
- "\n"
- "Mentre scendi dal trasporto senti il\n"
- "tonfo del piede ferrato di un Cyberdemonio.";
-
-// Cast list (must appear in this order)
-CC_ZOMBIE = "ZOMBIE MARINE";
-CC_SHOTGUN = "ZOMBIE SERGENTE";
-CC_HEAVY = "ZOMBIE COMMANDO";
-CC_IMP = "IMP";
-CC_DEMON = "DEMONE";
-CC_LOST = "ANIMA PERDUTA";
-CC_CACO = "CACODEMONE";
-CC_HELL = "CAVALIERE INFERNALE";
-CC_BARON = "BARONE INFERNALE";
-CC_ARACH = "ARACHNOTRON";
-CC_PAIN = "DOLORE ELEMENTALE";
-CC_REVEN = "REVENANT";
-CC_MANCU = "MANCUBO";
-CC_ARCH = "ARCH-VILE";
-CC_SPIDER = "IL CERVELLO RAGNO";
-CC_CYBER = "IL CYBERDEMONIO";
-CC_HERO = "IL NOSTRO EROE";
-
-// New strings from BOOM
-PD_BLUEC = "Ti serve una tessera blu per aprire questa porta";
-PD_REDC = "Ti serve una tessera rossa per aprire questa porta";
-PD_YELLOWC = "Ti serve una tessera gialla per aprire questa porta";
-PD_BLUES = "Ti serve una chiave-teschio blu per aprire questa porta";
-PD_REDS = "Ti serve una chiave-teschio rossa per aprire questa porta";
-PD_YELLOWS = "Ti serve una chiave-teschio gialla per aprire questa porta";
-PD_ANY = "Una chiave qualunque aprira' questa porta";
-PD_ALL3 = "Ti servono tutte e tre le chiavi per aprire questa porta";
-PD_ALL6 = "Ti servono tutte e sei le chiavi per aprire questa porta";
-
-PD_ALL3O = "Ti servono tutte e tre le chiavi per attivare questo oggetto ";
-PD_ALL6O = "Ti servono tutte e tre le chiavi per attivare questo oggetto ";
-PD_BLUECO = "ti serve una tessera blu per attivare questo oggetto ";
-PD_REDCO = "ti serve una tessera rossa per attivare questo oggetto ";
-PD_YELLOWCO = "ti serve una tessera gialla per attivare questo oggetto ";
-PD_BLUESO = "ti serve una chiave-teschio blu per attivare questo oggetto ";
-PD_REDSO = "ti serve una chiave-teschio rossa per attivare questo oggetto ";
-PD_YELLOWSO = "ti serve una chiave-teschio gialla per attivare questo oggetto ";
-
-
-// Gameflow messages
-TXT_FRAGLIMIT = "Fraglimit raggiunto.";
-TXT_TIMELIMIT = "Timelimit raggiunto.";
-
-// Spree messages
-SPREEKILLSELF = "%o stava bene finche' %g non si e' ucciso!";
-SPREEOVER = "La sequela di frag di %o e' stata terminata da %k";
-SPREE5 = "%k e' preda di un momento omicida!";
-SPREE10 = "%k sta facendo un massacro!";
-SPREE15 = "%k sta dominando tutti!";
-SPREE20 = "%k e' inarrestabile!";
-SPREE25 = "%k e' un dio!";
-
-// Mulitkill messages
-MULTI2 = "Frag doppio!";
-MULTI3 = "Frag multiplo!";
-MULTI4 = "Frag ultra!";
-MULTI5 = "Frag DA PAURA!";
-
-// Obituary strings
-// First the self-kills, then the other-kills
-OB_SUICIDE = "%o si e' suicidato.";
-OB_FALLING = "%o e' caduto troppo in basso.";
-OB_CRUSH = "%o e' stato schiacciato.";
-OB_EXIT = "%o ha provato a uscire.";
-OB_WATER = "%o non sapeva nuotare.";
-OB_SLIME = "%o e' mutato.";
-OB_LAVA = "%o si e' sciolto.";
-OB_BARREL = "%o e' esploso.";
-OB_SPLASH = "%o si e' trovato nel posto sbagliato.";
-OB_R_SPLASH = "%o avrebbe dovuto allontanarsi.";
-OB_ROCKET = "%o avrebbe dovuto allontanarsi.";
-OB_KILLEDSELF = "%o ha ucciso se stesso.";
-
-OB_STEALTHBABY = "%o pensava che %g avesse visto un arachnotron.";
-OB_STEALTHVILE = "%o pensava che %g avesse visto un Arch-Vile.";
-OB_STEALTHBARON = "%o pensava che %g avesse visto un Barone Infernale.";
-OB_STEALTHCACO = "%o pensava che %g avesse visto un cacodemone.";
-OB_STEALTHCHAINGUY = "%o pensava che %g avesse visto uno zombie commando.";
-OB_STEALTHDEMON = "%o pensava che %g avesse visto un demone.";
-OB_STEALTHKNIGHT = "%o pensava che %g avesse visto un Cavaliere Infernale.";
-OB_STEALTHIMP = "%o pensava che %g avesse visto un imp.";
-OB_STEALTHFATSO = "%o pensava che %g avesse visto un mancubo.";
-OB_STEALTHUNDEAD = "%o pensava che %g avesse visto un revenant.";
-OB_STEALTHSHOTGUY = "%o pensava che %g avesse visto un sergente.";
-OB_STEALTHZOMBIE = "%o pensava che %g avesse visto uno zombie.";
-OB_UNDEADHIT = "%o e' stato massacrato da un revenant.";
-OB_IMPHIT = "%o e' stato squarciato da un imp.";
-OB_CACOHIT = "%o si e' avvicinato troppo a un cacodemone.";
-OB_DEMONHIT = "%o e' stato sbranato da un demone.";
-OB_SPECTREHIT = "%o e' stato divorato da uno spettro.";
-OB_BARONHIT = "%o e' stato scoperchiato da un Barone dell'Inferno.";
-OB_KNIGHTHIT = "%o e' stato sbudellato da un Cavaliere dell'Inferno.";
-OB_ZOMBIE = "%o e' stato ucciso da uno zombie.";
-OB_SHOTGUY = "%o e' sato impallinato da un sergente.";
-OB_VILE = "%o e' stato incenerito da un arch-vile.";
-OB_UNDEAD = "%o non ha potuto evitare il missile di un revenant.";
-OB_FATSO = "%o e' stato disintegrato da un mancubo.";
-OB_CHAINGUY = "%o e' stato perforato da uno zombie commando.";
-OB_SKULL = "%o e' stato spaventato a morte da un'Anima Perduta.";
-OB_IMP = "%o e' stato bruciato da un imp.";
-OB_CACO = "%o e' stato abbattuto da un cacodemone.";
-OB_BARON = "%o e' stato scorticato da un Barone Infernale.";
-OB_KNIGHT = "%o e' stato squartato da un Cavaliere Infernale.";
-OB_SPIDER = "%o e' stato soggiogato dal Cervello Ragno.";
-OB_BABY = "%o ha permesso che un arachnotron l'uccidesse.";
-OB_CYBORG = "%o e' stato spiaccicato da un Cyberdemonio.";
-OB_WOLFSS = "%o ha incontrato un Nazista.";
-
-OB_CHICKEN = "%o e' stato beccato a morte.";
-OB_BEAST = "%o e' stato carbonizzato da una bestia.";
-OB_CLINK = "%o e' stato squarciato da un lapillo.";
-OB_DSPARIL1 = "%o e' stato bruciato dal serpente di D'Sparil.";
-OB_DSPARIL1HIT = "%o e' stato masticato dal serpente di D'Sparil.";
-OB_DSPARIL2 = "%o non era all'altezza di D'Sparil.";
-OB_DSPARIL2HIT = "%o e' stato abbattuto da D'Sparil.";
-OB_HERETICIMP = "%o e' stato terrorizzato da un imp.";
-OB_HERETICIMPHIT = "%o e' stato eliminato da un imp.";
-OB_IRONLICH = "%o e' stato devastato da un ironlich.";
-OB_IRONLICHHIT = "%o e' andato troppo vicino a un ironlich.";
-OB_BONEKNIGHT = "%o e' stato accettato da un cavaliere.";
-OB_BONEKNIGHTHIT = "%o e' stato ucciso da un cavaliere.";
-OB_MUMMY = "%o e' stato schiacciato da una mummia.";
-OB_MUMMYLEADER = "%o e' stato stroncato da una mummia.";
-OB_SNAKE = "%o e' stato stritolato da un serpente.";
-OB_WIZARD = "%o e' stato maledetto da un mago.";
-OB_WIZARDHIT = "%o e' stato toccato da un mago.";
-
-OB_MPFIST = "%o si e' schiantato contro il pugno di %k.";
-OB_MPCHAINSAW = "%o e' stato falciato dalla motosega di %k.";
-OB_MPPISTOL = "%o e' stato sforacchiato dalla pistola di %k'.";
-OB_MPSHOTGUN = "%o si e' trovato davanti il fucile di %k.";
-OB_MPSSHOTGUN = "%o e' stato smembrato dalla doppietta di %k.";
-OB_MPCHAINGUN = "%o e' stato falciato dal mitragliatore di %k.";
-OB_MPROCKET = "%o ha cavalcato il razzo di %k.";
-OB_MPR_SPLASH = "%o aveva quasi schivato il razzo di %k.";
-OB_MPPLASMARIFLE = "%o e' stato fuso dal fucile al plasma di %k.";
-OB_MPBFG_BOOM = "%o e' stato sminuzzato dal BFG di %k.";
-OB_MPBFG_SPLASH = "%o non poteva nascondersi dal BFG di %k.";
-OB_MPTELEFRAG = "%o e' stato telefraggato da %k.";
-OB_RAILGUN = "%o e' stato bucherellato dal railgun di %k.";
-
-// Same as OB_MPTELEFRAG, but shown when a monster telefrags you
-OB_MONTELEFRAG = "%o si e' fatto telefraggare.";
-
-OB_DEFAULT = "%o e' morto.";
-OB_FRIENDLY1 = "%k falcia via un compagno.";
-OB_FRIENDLY2 = "%k controlla gli occhiali di %p.";
-OB_FRIENDLY3 = "%k regala un frag all'altro team.";
-OB_FRIENDLY4 = "%k perde un altro amico.";
-
-SAVEGAMENAME = "zdoomsv";
-STARTUP1 = "";
-STARTUP2 = "";
-STARTUP3 = "";
-STARTUP4 = "";
-STARTUP5 = "";
-
-// Heretic strings
-HE1TEXT =
- "con la distruzione degli iron lich\n"
- "e dei loro servi, gli ultimi non-\n"
- "morti vengono rimossi da questo\n"
- "piano dell'esistenza.\n\n"
- "quelle creature dovevano venire da\n"
- "qualche parte, pensi, e hai il\n"
- "sospetto che l'ardente portale\n"
- "delle fauci dell'inferno si apra\n"
- "sul loro posto di provenienza.\n\n"
- "per assicurarti che altri non-morti\n"
- "(o altro di peggio) non vi passino\n"
- "attraverso, devi sigillare la porta\n"
- "dell'inferno dall'altro lato.\n"
- "certo, questo significa che rischi\n"
- "rimanere bloccato in un posto poco\n"
- "amichevole, ma chi ha detto che\n"
- "essere un eretico fosse facile!";
-HE2TEXT =
- "nemmeno i possenti maulotaur erano\n"
- "alla tua altezza e mentre le loro\n"
- "carcasse fumanti cadono al suolo\n"
- "provi una feroce soddisfazione\n"
- "nell'averli distrutti.\n\n"
- "i portali cui facevano la guardia\n"
- "si sono aperti rivelando quella che\n"
- "speri sia la via di casa. ma mentre\n"
- "la attraversi, odi risa di scherno\n"
- "echeggiare nelle tue orecchie.\n\n"
- "una qualche altra forza controllava\n"
- "i maulotaur? che possano esserci\n"
- "altri piu' spaventosi esseri oltre\n"
- "questo portale? il baluginio di una\n"
- "volta cristallina la' dove dovrebbe\n"
- "esserci il cielo non e' certo un\n"
- "buon segno...";
-HE3TEXT =
- "la morte di d'sparil ha spezzato i\n"
- "magici legami che tenevano le sue\n"
- "creature in questa dimensione, e i\n"
- "loro lamenti di morte coprono le\n"
- "sue urla di agonia.\n\n"
- "il tuo voto di vendetta e' sciolto,\n"
- "ed entri nel portale che conduce al\n"
- "tuo mondo pochi secondi prima che\n"
- "la cupola vada in mille pezzi.\n\n"
- "ma se il potere di d'sparil e'\n"
- "infranto per sempre, perche' non ti\n"
- "senti al sicuro? e' a causa del suo\n"
- "ultimo urlo prima di morire, quello\n"
- "che suonava come una maledizione? o\n"
- "un'invocazione? non puoi esserne\n"
- "certo, poteva essere solo un urlo.\n\n"
- "ma allora, cosa ne e' degli altri\n"
- "serpent rider?";
-HE4TEXT =
- "pensavi di tornare nel tuo mondo\n"
- "dopo la morte di d'sparil, ma il\n"
- "il suo ultimo atto ti ha esiliato\n"
- "in questo posto. sei quindi entrato\n"
- "nei resti infranti delle terre\n"
- "conquistate da d'sparil. Ne hai poi\n"
- "abbattuto gli ultimi guardiani,\n"
- "ma ora ti trovi davanti ai cancelli\n"
- "della fortezza di d'sparil. finora\n"
- "non avevi avuto dubbi sulla tua\n"
- "abilita' nel fronteggiare di tutto,\n"
- "ma oltre questo portale si trova\n"
- "il cuore del male che ha invaso\n"
- "il tuo mondo. d'sparil sara' anche\n"
- "morto, ma il pozzo dove e' apparso\n"
- "esiste ancora. devi entrare in quel\n"
- "pozzo nella speranza di trovare\n"
- "un'uscita. e da qualche parte,\n"
- "negli oscuri angoli del dominio\n"
- "di d'sparil le sue guardie del\n"
- "corpo aspettano il tuo arrivo...";
-HE5TEXT =
- "mentre l'ultimo maulotaur muggisce\n"
- "agonizzante, comprendi che non eri\n"
- "mai stato cosi' vicino alla tua\n"
- "distruzione. nemmeno la lotta con\n"
- "d'sparil e i suoi discepoli fu\n"
- "cosi' disperata. triste, guardi i\n"
- "cancelli che ti si aprono innanzi,\n"
- "chiedendoti se portino a casa o se\n"
- "conducano a un altro inimmaginabile\n"
- "orrore. ti chiedi se avrai la forza\n"
- "di andare avanti, se niente tranne\n"
- "dolore e morte ti attendano, ma che\n"
- "altro puoi fare se la forza di\n"
- "combattere se ne va? puoi sforzarti\n"
- "di continuare, nonostante la\n"
- "disperazione?\n"
- "ne hai il coraggio? decidi infine\n"
- "che non e' da te arrendersi senza\n"
- "combattere. ad occhi aperti\n"
- "vai incontro al tuo destino.";
-
-// EPISODE 1 - LA CITTA' DEI DANNATI
-HHUSTR_E1M1 = "IL MOLO";
-HHUSTR_E1M2 = "I SOTTERRANEI";
-HHUSTR_E1M3 = "L'INGRESSO";
-HHUSTR_E1M4 = "LA TORRE DI GUARDIA";
-HHUSTR_E1M5 = "LA CITTADELLA";
-HHUSTR_E1M6 = "LA CATTEDRALE";
-HHUSTR_E1M7 = "LE CRIPTE";
-HHUSTR_E1M8 = "LA BOCCA DELL'INFERNO";
-HHUSTR_E1M9 = "IL CIMITERO";
-
-// EPISODE 2 - LA BOCCA DELL'INFERNO
-HHUSTR_E2M1 = "IL CRATERE";
-HHUSTR_E2M2 = "I POZZI DELLA LAVA";
-HHUSTR_E2M3 = "IL FIUME DI FUOCO";
-HHUSTR_E2M4 = "LA GROTTA DEL GHIACCIO";
-HHUSTR_E2M5 = "LE CATACOMBE";
-HHUSTR_E2M6 = "IL LABIRINTO";
-HHUSTR_E2M7 = "LA GRANDE SALA";
-HHUSTR_E2M8 = "I PORTALI DEL CAOS";
-HHUSTR_E2M9 = "IL GHIACCIAIO";
-
-// EPISODE 3 - LA CUPOLA DI D'SPARIL
-HHUSTR_E3M1 = "IL MAGAZZINO";
-HHUSTR_E3M2 = "IL POZZO NERO";
-HHUSTR_E3M3 = "LA CONFLUENZA";
-HHUSTR_E3M4 = "LA FORTEZZA AZZURRA";
-HHUSTR_E3M5 = "L'ANTRO DEGLI OPHIDIAN";
-HHUSTR_E3M6 = "LE SALE DELLA PAURA";
-HHUSTR_E3M7 = "L'ABISSO";
-HHUSTR_E3M8 = "LA DIMORA DI D'SPARIL";
-HHUSTR_E3M9 = "L'ACQUEDOTTO";
-
-// EPISODE 4: L'OSSARIO
-HHUSTR_E4M1 = "CATAFALCO";
-HHUSTR_E4M2 = "BLOCCO DI CASE";
-HHUSTR_E4M3 = "AMBULATORIO";
-HHUSTR_E4M4 = "SEPOLCRO";
-HHUSTR_E4M5 = "GRANDE SCALA";
-HHUSTR_E4M6 = "SALE DELL'APOSTATA";
-HHUSTR_E4M7 = "TORRIONI DELLA PERDIZIONE";
-HHUSTR_E4M8 = "PONTE DISTRUTTO";
-HHUSTR_E4M9 = "MAUSOLEO";
-
-// EPISODE 5: I POSSEDIMENTI STAGNANTI
-HHUSTR_E5M1 = "COLLINE OCRA";
-HHUSTR_E5M2 = "RAPIDE";
-HHUSTR_E5M3 = "BANCHINA";
-HHUSTR_E5M4 = "CORTILE";
-HHUSTR_E5M5 = "HYDRATYR";
-HHUSTR_E5M6 = "COLONNATO";
-HHUSTR_E5M7 = "FETIDO CASTELLO";
-HHUSTR_E5M8 = "CAMPO DEL GIUDIZIO";
-HHUSTR_E5M9 = "GROVIGLIO DI D'SPARIL";
-
-// Keys
-
-TXT_GOTBLUEKEY = "CHIAVE BLU";
-TXT_GOTYELLOWKEY = "CHIAVE GIALLA";
-TXT_GOTGREENKEY = "CHIAVE VERDE";
-
-// Artifacts
-
-TXT_ARTIHEALTH = "AMPOLLA DI QUARZO";
-TXT_ARTIFLY = "ALI DELLA RABBIA";
-TXT_ARTIINVULNERABILITY = "ANELLO DELL'INVINCIBILITA'";
-TXT_ARTITOMEOFPOWER = "LIBRO DEL POTERE";
-TXT_ARTIINVISIBILITY = "SFERA DELL'OMBRA";
-TXT_ARTIEGG = "UOVO DELLA METAMORFOSI";
-TXT_ARTISUPERHEALTH = "URNA MISTICA";
-TXT_ARTITORCH = "TORCIA";
-TXT_ARTIFIREBOMB = "BOMBA A TEMPO DEGLI ANTICHI";
-TXT_ARTITELEPORT = "STRUMENTO DEL CAOS";
-
-// Items
-
-TXT_ITEMHEALTH = "FIALA DI CRISTALLO";
-TXT_ITEMBAGOFHOLDING = "BORSA PORTAOGGETTI";
-TXT_ITEMSHIELD1 = "SCUDO D'ARGENTO";
-TXT_ITEMSHIELD2 = "SCUDO INCANTATO";
-TXT_ITEMSUPERMAP = "MAPPA";
-
-// Ammo
-
-TXT_AMMOGOLDWAND1 = "BACCHETTA DI CRISTALLO";
-TXT_AMMOGOLDWAND2 = "GEOIDE DI CRISTALLO";
-TXT_AMMOMACE1 = "SFERE PER MAZZA";
-TXT_AMMOMACE2 = "PILA DI SFERE PER MAZZA";
-TXT_AMMOCROSSBOW1 = "FRECCIE ETEREE";
-TXT_AMMOCROSSBOW2 = "FARETRA DI FRECCIE ETEREE";
-TXT_AMMOBLASTER1 = "GLOBO ARTIGLIATO";
-TXT_AMMOBLASTER2 = "GLOBO DI ENERGIA";
-TXT_AMMOSKULLROD1 = "RUNE INFERIORI";
-TXT_AMMOSKULLROD2 = "RUNE SUPERIORI";
-TXT_AMMOPHOENIXROD1 = "GLOBO DI FUOCO";
-TXT_AMMOPHOENIXROD2 = "GLOBO INFERNALE";
-
-// Weapons
-
-TXT_WPNMACE = "MAZZA DI FUOCO";
-TXT_WPNCROSSBOW = "BALESTRA ETEREA";
-TXT_WPNBLASTER = "ARTIGLIO DEL DRAGO";
-TXT_WPNSKULLROD = "BASTONE INFERNALE";
-TXT_WPNPHOENIXROD = "SFERA DELLA FENICE";
-TXT_WPNGAUNTLETS = "GUANTI DEL NEGROMANTE";
-
-TXT_NEEDBLUEKEY = "TI SERVE UNA CHIAVE BLU PER APRIRE QUESTA PORTA";
-TXT_NEEDGREENKEY = "TI SERVE UNA CHIAVE VERDE PER APRIRE QUESTA PORTA";
-TXT_NEEDYELLOWKEY = "TI SERVE UNA CHIAVE GIALLA PER APRIRE QUESTA PORTA";
-
-TXT_CHEATHEALTH = "ENERGIA COMPLETA";
-TXT_CHEATKEYS = "TUTTE LE CHIAVI";
-TXT_CHEATSOUNDON = "DEBUG DEL SUONO ATTIVATO";
-TXT_CHEATSOUNDOFF = "DEBUG DEL SUONO DISATTIVATO";
-TXT_CHEATIDDQD = "CERCHI DI BARARE, EH? ALLORA MUORI!";
-TXT_CHEATIDKFA = "BARO - NON MERITI ARMI!";
-TXT_CHEATTICKERON = "TICKER ATTIVATO";
-TXT_CHEATTICKEROFF = "TICKER DISATTIVATO";
-TXT_CHEATARTIFACTS3 = "CONCESSO";
-
-RAVENQUITMSG = "SEI SICURO DI VOLER ABBANDONARE?";
-
-// Hexen strings
-
-// Mana
-
-TXT_MANA_1 = "MANA BLU";
-TXT_MANA_2 = "MANA VERDE";
-TXT_MANA_BOTH = "MANA MISTO";
-
-// Keys
-
-TXT_KEY_STEEL = "CHIAVE D'ACCIAIO";
-TXT_KEY_CAVE = "CHIAVE DELLA CAVERNA";
-TXT_KEY_AXE = "CHIAVE DELL'ASCIA";
-TXT_KEY_FIRE = "CHIAVE DEL FUOCO";
-TXT_KEY_EMERALD = "CHIAVE DI SMERALDO";
-TXT_KEY_DUNGEON = "CHIAVE DEL DUNGEON";
-TXT_KEY_SILVER = "CHIAVE D'ARGENTO";
-TXT_KEY_RUSTED = "CHIAVE ARRUGGINITA";
-TXT_KEY_HORN = "CHIAVE DEL CORNO";
-TXT_KEY_SWAMP = "CHIAVE DELLA PALUDE";
-TXT_KEY_CASTLE = "CHIAVE DEL CASTELLO";
-
-// Artifacts
-
-TXT_ARTIINVULNERABILITY2 = "ICONA DEL DIFENSORE";
-TXT_ARTISUMMON = "SERVITORE OSCURO";
-TXT_ARTIEGG2 = "MAIALIZZATORE";
-TXT_ARTIPOISONBAG = "FIASCHETTA";
-TXT_ARTITELEPORTOTHER = "ARTIFATTO DELL'ESILIO";
-TXT_ARTISPEED = "STIVALI DELLA VELOCITA'";
-TXT_ARTIBOOSTMANA = "CRATERE DELLA FORZA";
-TXT_ARTIBOOSTARMOR = "BRACCIALI IN PELLE DI DRAGO";
-TXT_ARTIBLASTRADIUS = "DISCO DELLA REPULSIONE";
-TXT_ARTIHEALINGRADIUS = "CONFINE MISTICO";
-
-// Puzzle artifacts
-
-TXT_ARTIPUZZSKULL = "TESCHIO DI YORICK";
-TXT_ARTIPUZZGEMBIG = "CUORE DI D'SPARIL";
-TXT_ARTIPUZZGEMRED = "PIANETA DI RUBINO";
-TXT_ARTIPUZZGEMGREEN1 = "PIANETA DI SMERALDO";
-TXT_ARTIPUZZGEMGREEN2 = "PIANETA DI SMERALDO";
-TXT_ARTIPUZZGEMBLUE1 = "PIANETA DI ZAFFIRO";
-TXT_ARTIPUZZGEMBLUE2 = "PIANETA DI ZAFFIRO";
-TXT_ARTIPUZZBOOK1 = "DAEMON CODEX";
-TXT_ARTIPUZZBOOK2 = "LIBER OSCURA";
-TXT_ARTIPUZZSKULL2 = "MASCHERA DELLA FIAMMA";
-TXT_ARTIPUZZFWEAPON = "SIGILLO DEL BRANDO";
-TXT_ARTIPUZZCWEAPON = "RELIQUIA SACRA";
-TXT_ARTIPUZZMWEAPON = "SUGELLO DEL MAGUS";
-TXT_ARTIPUZZGEAR = "INGRANAGGIO D'OROLOGIO";
-TXT_USEPUZZLEFAILED = "NON PUOI USARE QUESTO OGGETTO QUI";
-
-// Items
-
-TXT_ARMOR1 = "MAGLIA METALLICA";
-TXT_ARMOR2 = "SCUDO DEL FALCO";
-TXT_ARMOR3 = "ELMO DI PLATINO";
-TXT_ARMOR4 = "AMULETO DI PROTEZIONE";
-
-// Weapons
-
-TXT_WEAPON_F2 = "ASCIA DI TIMONE";
-TXT_WEAPON_F3 = "MARTELLO DELLA RETRIBUZIONE";
-TXT_WEAPON_F4 = "QUIETUS ASSEMBLATO";
-TXT_WEAPON_C2 = "BASTONE DEL SERPENTE";
-TXT_WEAPON_C3 = "TEMPESTA DI FUOCO";
-TXT_WEAPON_C4 = "VERGA DELLA FURIA ASSEMBLATA";
-TXT_WEAPON_M2 = "FRANTUMI GELATI";
-TXT_WEAPON_M3 = "ARCO DELLA MORTE";
-TXT_WEAPON_M4 = "FLAGELLO DI SANGUE ASSEMBLATO";
-TXT_QUIETUS_PIECE = "PARTE DEL QUIETUS";
-TXT_WRAITHVERGE_PIECE = "PARTE DELLA VERGA DELLA FURIA";
-TXT_BLOODSCOURGE_PIECE = "PARTE DEL FLAGELLO DI SANGUE";
-
-
-// Bloodbath announcer
-
-BBA_BONED = "%k ha dissossato %o come un pesce";
-BBA_CASTRA = "%k ha castrato %o";
-BBA_CREAMED = "%k ha cremato %o";
-BBA_DECIMAT = "%k ha decimato %o";
-BBA_DESTRO = "%k ha distrutto %o";
-BBA_DICED = "%k ha tagliato a cubetti %o";
-BBA_DISEMBO = "%k ha smembrato %o";
-BBA_FLATTE = "%k ha schiacciato %o";
-BBA_JUSTICE = "%k da' a %o Giustizia Anale";
-BBA_MADNESS = "%k da' FoLlIa AnAle a %o";
-BBA_KILLED = "%k ha ucciso %o";
-BBA_MINCMEAT = "%k ha triturato %o";
-BBA_MASSACR = "%k ha massacrato %o";
-BBA_MUTILA = "%k ha mutilato %o";
-BBA_REAMED = "%k ha squartato %o";
-BBA_RIPPED = "%k ha aperto a %o un altro orifizio";
-BBA_SLAUGHT = "%k ha macellato %o";
-BBA_SMASHED = "%k ha colpito %o";
-BBA_SODOMIZ = "%k ha sodomizzato %o";
-BBA_SPLATT = "%k ha spiaccicato %o";
-BBA_SQUASH = "%k ha schiacciato %o";
-BBA_THROTTL = "%k ha strozzato %o";
-BBA_WASTED = "%k ha distrutto %o";
-BBA_BODYBAG = "%k ha mandato %o all'obitorio";
-BBA_HELL = "%k ha spedito all'Inferno %o";
-BBA_TOAST = "%k ha arrostito %o";
-BBA_SNUFF = "%k ha spento %o";
-BBA_HOSED = "%k l'ha fatta sopra %o";
-BBA_SPRAYED = "%k ha vaporizzato %o";
-BBA_DOGMEAT = "%k ha fatto polpette di %o";
-BBA_BEATEN = "%k ha battuto %o come un cane";
-
-BBA_EXCREMENT = "%o e' un escremento";
-BBA_HAMBURGER = "%o e' un hamburger";
-BBA_SCROTUM = "%o ha subito la separazione dello scroto";
-BBA_POPULATION = "%o si e' offerto per il controllo della popolazione";
-BBA_SUICIDE = "%o si e' suicidato";
-BBA_DARWIN = "%o ha ricevuto il Darwin Award";
diff --git a/wadsrc/lockdefs.txt b/wadsrc/lockdefs.txt
deleted file mode 100644
index d16d68e4..00000000
--- a/wadsrc/lockdefs.txt
+++ /dev/null
@@ -1,560 +0,0 @@
-//
-// Doom Locks - they include Heretic's keys because somebody mentioned that he already used them
-//
-ClearLocks
-
-Lock 1 Doom
-{
- RedCard
- Message "$PD_REDC"
- RemoteMessage "$PD_REDCO"
- Mapcolor 255 0 0
-}
-
-
-Lock 2 Doom
-{
- BlueCard
- Message "$PD_BLUEC"
- RemoteMessage "$PD_BLUECO"
- Mapcolor 0 0 255
-}
-
-
-Lock 3 Doom
-{
- YellowCard
- Message "$PD_YELLOWC"
- RemoteMessage "$PD_YELLOWCO"
- Mapcolor 255 255 0
-}
-
-
-Lock 4 Doom
-{
- RedSkull
- Message "$PD_REDS"
- RemoteMessage "$PD_REDSO"
- Mapcolor 255 0 0
-}
-
-
-Lock 5 Doom
-{
- BlueSkull
- Message "$PD_BLUES"
- RemoteMessage "$PD_BLUESO"
- Mapcolor 0 0 255
-}
-
-
-Lock 6 Doom
-{
- YellowSkull
- Message "$PD_YELLOWS"
- RemoteMessage "$PD_YELLOWSO"
- Mapcolor 255 255 0
-}
-
-
-Lock 129 Doom
-{
- Any { RedCard RedSkull KeyGreen }
- Message "$PD_REDK"
- RemoteMessage "$PD_REDO"
- Mapcolor 255 0 0
-}
-
-
-Lock 130 Doom
-{
- Any { BlueCard BlueSkull KeyBlue }
- Message "$PD_BLUEK"
- RemoteMessage "$PD_BLUEO"
- Mapcolor 0 0 255
-}
-
-
-Lock 131 Doom
-{
- Any { YellowCard YellowSkull KeyYellow }
- Message "$PD_YELLOWK"
- RemoteMessage "$PD_YELLOWO"
- Mapcolor 255 255 0
-}
-
-
-Lock 132 Doom
-{
- Any { RedCard RedSkull }
- Message "$PD_REDK"
- RemoteMessage "$PD_REDO"
- Mapcolor 255 0 0
-}
-
-
-Lock 133 Doom
-{
- Any { BlueCard BlueSkull }
- Message "$PD_BLUEK"
- RemoteMessage "$PD_BLUEO"
- Mapcolor 0 0 255
-}
-
-
-Lock 134 Doom
-{
- Any { YellowCard YellowSkull }
- Message "$PD_YELLOWK"
- RemoteMessage "$PD_YELLOWO"
- Mapcolor 255 255 0
-}
-
-Lock 100
-{
- Message "$PD_ANY"
- RemoteMessage "$PD_ANYOBJ"
- Mapcolor 128 128 255
-}
-
-Lock 228
-{
- Message "$PD_ANY"
- RemoteMessage "$PD_ANYOBJ"
- Mapcolor 128 128 255
-}
-
-Lock 229 Doom
-{
- Any { BlueCard BlueSkull KeyBlue}
- Any { YellowCard YellowSkull KeyYellow}
- Any { RedCard RedSkull KeyGreen}
- Message "$PD_ALL3"
- RemoteMessage "$PD_ALL3O"
-}
-
-Lock 101 Doom
-{
- BlueCard
- BlueSkull
- YellowCard
- YellowSkull
- RedCard
- RedSkull
- Message "$PD_ALL6"
- RemoteMessage "$PD_ALL6O"
-}
-
-//
-// Heretic KeyDefs
-//
-
-Lock 1 Heretic
-{
- KeyGreen
- Message "$TXT_NEEDGREENKEY"
- Mapcolor 0 255 0
-}
-
-
-Lock 2 Heretic
-{
- KeyBlue
- Message "$TXT_NEEDBLUEKEY"
- Mapcolor 0 0 255
-}
-
-
-Lock 3 Heretic
-{
- KeyYellow
- Message "$TXT_NEEDYELLOWKEY"
- Mapcolor 255 255 0
-}
-
-
-Lock 129 Heretic
-{
- KeyGreen
- Message "$TXT_NEEDGREENKEY"
- Mapcolor 0 255 0
-}
-
-
-Lock 130 Heretic
-{
- KeyBlue
- Message "$TXT_NEEDBLUEKEY"
- Mapcolor 0 0 255
-}
-
-
-Lock 131 Heretic
-{
- KeyYellow
- Message "$TXT_NEEDYELLOWKEY"
- Mapcolor 255 255 0
-}
-
-
-Lock 229 Heretic
-{
- KeyGreen
- KeyYellow
- KeyBlue
- Message "$PD_ALL3"
- RemoteMessage "$PD_ALL3O"
-}
-
-Lock 101 Heretic
-{
- KeyGreen
- KeyYellow
- KeyBlue
- Message "$PD_ALL3"
- RemoteMessage "$PD_ALL3O"
-}
-
-
-//
-// Hexen KeyDefs
-//
-
-Lock 1 Hexen
-{
- KeySteel
- Message "$TXT_NEED_KEY_STEEL"
- Mapcolor 150 150 150
-}
-
-
-Lock 2 Hexen
-{
- KeyCave
- Message "$TXT_NEED_KEY_CAVE"
- Mapcolor 255 218 0
-}
-
-
-Lock 3 Hexen
-{
- KeyAxe
- Message "$TXT_NEED_KEY_AXE"
- Mapcolor 64 64 255
-}
-
-
-Lock 4 Hexen
-{
- KeyFire
- Message "$TXT_NEED_KEY_FIRE"
- Mapcolor 255 128 0
-}
-
-
-Lock 5 Hexen
-{
- KeyEmerald
- Message "$TXT_NEED_KEY_EMERALD"
- Mapcolor 0 255 0
-}
-
-
-Lock 6 Hexen
-{
- KeyDungeon
- Message "$TXT_NEED_KEY_DUNGEON"
- Mapcolor 47 151 255
-}
-
-
-Lock 7 Hexen
-{
- KeySilver
- Message "$TXT_NEED_KEY_SILVER"
- Mapcolor 154 152 188
-}
-
-
-Lock 8 Hexen
-{
- KeyRusted
- Message "$TXT_NEED_KEY_RUSTED"
- Mapcolor 156 76 0
-}
-
-
-Lock 9 Hexen
-{
- KeyHorn
- Message "$TXT_NEED_KEY_HORN"
- Mapcolor 255 218 0
-}
-
-
-Lock 10 Hexen
-{
- KeySwamp
- Message "$TXT_NEED_KEY_SWAMP"
- Mapcolor 64 255 64
-}
-
-
-Lock 11 Hexen
-{
- KeyCastle
- Message "$TXT_NEED_KEY_CASTLE"
- Mapcolor 255 64 64
-}
-
-
-Lock 101 Hexen
-{
- KeySteel
- KeyCave
- KeyAxe
- KeyFire
- KeyEmerald
- KeyDungeon
- KeySilver
- KeyRusted
- KeyHorn
- KeySwamp
- KeyCastle
- Message "$PD_ALLKEYS"
-}
-
-Lock 229 Hexen
-{
- KeySteel
- KeyCave
- KeyAxe
- KeyFire
- KeyEmerald
- KeyDungeon
- KeySilver
- KeyRusted
- KeyHorn
- KeySwamp
- KeyCastle
- Message "$PD_ALLKEYS"
-}
-
-
-// Strife KeyDefs
-
-Lock 1 Strife
-{
- BaseKey
- Message "You don't have the key"
- Mapcolor 150 150 150
-}
-
-
-Lock 2 Strife
-{
- GovsKey
- Message "$TXT_NEEDKEY"
- Mapcolor 150 150 150
-}
-
-
-Lock 3 Strife
-{
- Passcard
- RemoteMessage "$TXT_NEED_PASSCARD"
- Message "$TXT_NEED_PASSCARD_DOOR"
- Mapcolor 128 266 150
-}
-
-
-Lock 4 Strife
-{
- IDBadge
- Message "$TXT_NEED_IDCARD"
- Mapcolor 255 128 0
-}
-
-
-Lock 5 Strife
-{
- PrisonKey
- Message "$TXT_NEED_PRISONKEY"
- Mapcolor 0 255 0
-}
-
-
-Lock 6 Strife
-{
- SeveredHand
- Message "$TXT_NEED_HANDPRINT"
- Mapcolor 255 151 100
-}
-
-
-Lock 7 Strife
-{
- Power1Key
- Message "$TXT_NEEDKEY"
- Mapcolor 150 150 150
-}
-
-
-Lock 8 Strife
-{
- Power2Key
- Message "$TXT_NEEDKEY"
- Mapcolor 150 150 150
-}
-
-
-Lock 9 Strife
-{
- Power3Key
- Message "$TXT_NEEDKEY"
- Mapcolor 150 150 150
-}
-
-
-Lock 10 Strife
-{
- GoldKey
- Message "$TXT_NEED_GOLDKEY"
- Mapcolor 255 200 0
-}
-
-
-Lock 11 Strife
-{
- IDCard
- RemoteMessage "$TXT_NEED_IDBADGE"
- Message "$TXT_NEED_IDBADGE_DOOR"
- Mapcolor 200 0 0
-}
-
-Lock 12 Strife
-{
- SilverKey
- Message "$TXT_NEED_SILVERKEY"
- Mapcolor 150 150 150
-}
-
-Lock 13 Strife
-{
- OracleKey
- Message "$TXT_NEEDKEY"
- Mapcolor 150 150 150
-}
-
-Lock 14 Strife
-{
- MilitaryID
- Message "$TXT_NEEDKEY"
- Mapcolor 150 150 150
-}
-
-Lock 15 Strife
-{
- OrderKey
- Message "$TXT_NEEDKEY"
- Mapcolor 150 150 150
-}
-
-Lock 16 Strife
-{
- WarehouseKey
- Message "$TXT_NEEDKEY"
- Mapcolor 150 150 150
-}
-
-Lock 17 Strife
-{
- BrassKey
- Message "$TXT_NEED_BRASSKEY"
- Mapcolor 150 75 0
-}
-
-Lock 18 Strife
-{
- RedCrystalKey
- Message "$TXT_NEED_REDCRYSTAL"
- Mapcolor 150 150 150
-}
-
-Lock 19 Strife
-{
- BlueCrystalKey
- Message "$TXT_NEED_BLUECRYSTAL"
- Mapcolor 150 150 150
-}
-
-Lock 20 Strife
-{
- ChapelKey
- Message "$TXT_NEEDKEY"
- Mapcolor 150 150 150
-}
-
-Lock 21 Strife
-{
- CatacombKey
- Message "$TXT_NEEDKEY"
- Mapcolor 150 150 150
-}
-
-Lock 22 Strife
-{
- SecurityKey
- Message "$TXT_NEEDKEY"
- Mapcolor 150 150 150
-}
-
-Lock 23 Strife
-{
- CoreKey
- Message "$TXT_NEEDKEY"
- Mapcolor 150 150 150
-}
-
-Lock 24 Strife
-{
- MaulerKey
- Message "$TXT_NEEDKEY"
- Mapcolor 150 150 150
-}
-
-Lock 25 Strife
-{
- FactoryKey
- Message "$TXT_NEEDKEY"
- Mapcolor 150 150 150
-}
-
-Lock 26 Strife
-{
- MineKey
- Message "$TXT_NEEDKEY"
- Mapcolor 150 150 150
-}
-
-Lock 27 Strife
-{
- NewKey5
- Message "$TXT_NEEDKEY"
- Mapcolor 150 150 150
-}
-
-Lock 50 Strife
-{
- PrisonPass
- Message "$TXT_NEEDKEY"
- Mapcolor 150 150 150
-}
-
-Lock 51 Strife
-{
- OraclePass
- Message "$TXT_NEEDKEY"
- Mapcolor 150 150 150
-}
-
diff --git a/wadsrc/mageface.lmp b/wadsrc/mageface.lmp
deleted file mode 100644
index f57572d5..00000000
Binary files a/wadsrc/mageface.lmp and /dev/null differ
diff --git a/wadsrc/mapinfo/doom1.txt b/wadsrc/mapinfo/doom1.txt
deleted file mode 100644
index 8fa46914..00000000
--- a/wadsrc/mapinfo/doom1.txt
+++ /dev/null
@@ -1,456 +0,0 @@
-// MAPINFO for Doom 1 (Shareware, Registered, and Retail)
-
-clearepisodes
-episode e1m1
- picname "M_EPI1"
- key k
-
-episode e2m1
- picname "M_EPI2"
- key t
-
-episode e3m1
- picname "M_EPI3"
- key i
-
-episode e4m1
- picname "M_EPI4"
- key t
- optional
-
-
-// Registered/Retail Episode 1
-
-map E1M1 lookup HUSTR_E1M1
-levelnum 1
-titlepatch WILV00
-next E1M2
-secretnext E1M9
-sky1 SKY1 0
-cluster 1
-par 30
-sucktime 1
-music D_E1M1
-
-map E1M2 lookup HUSTR_E1M2
-levelnum 2
-titlepatch WILV01
-next E1M3
-secretnext E1M9
-sky1 SKY1 0
-cluster 1
-par 75
-sucktime 1
-music D_E1M2
-
-map E1M3 lookup HUSTR_E1M3
-levelnum 3
-titlepatch WILV02
-next E1M4
-secretnext E1M9
-sky1 SKY1 0
-cluster 1
-par 120
-sucktime 1
-music D_E1M3
-
-map E1M4 lookup HUSTR_E1M4
-levelnum 4
-titlepatch WILV03
-next E1M5
-secretnext E1M9
-sky1 SKY1 0
-cluster 1
-par 90
-sucktime 1
-music D_E1M4
-
-map E1M5 lookup HUSTR_E1M5
-levelnum 5
-titlepatch WILV04
-next E1M6
-secretnext E1M9
-sky1 SKY1 0
-cluster 1
-par 165
-sucktime 1
-music D_E1M5
-
-map E1M6 lookup HUSTR_E1M6
-levelnum 6
-titlepatch WILV05
-next E1M7
-secretnext E1M9
-sky1 SKY1 0
-cluster 1
-par 180
-sucktime 1
-music D_E1M6
-
-map E1M7 lookup HUSTR_E1M7
-levelnum 7
-titlepatch WILV06
-next E1M8
-secretnext E1M9
-sky1 SKY1 0
-cluster 1
-par 180
-sucktime 1
-music D_E1M7
-
-map E1M8 lookup HUSTR_E1M8
-levelnum 8
-titlepatch WILV07
-next EndGame1
-secretnext E1M9
-sky1 SKY1 0
-cluster 1
-par 30
-nointermission
-nosoundclipping
-baronspecial
-specialaction_lowerfloor
-sucktime 1
-music D_E1M8
-
-map E1M9 lookup HUSTR_E1M9
-levelnum 9
-titlepatch WILV08
-next E1M4
-secretnext E1M4
-sky1 SKY1 0
-cluster 1
-par 165
-sucktime 1
-music D_E1M9
-
-// Registered/Retail Episode 2
-
-map E2M1 lookup HUSTR_E2M1
-levelnum 11
-titlepatch WILV10
-next E2M2
-secretnext E2M9
-sky1 SKY2 0
-cluster 2
-par 90
-sucktime 1
-music D_E2M1
-
-map E2M2 lookup HUSTR_E2M2
-levelnum 12
-titlepatch WILV11
-next E2M3
-secretnext E2M9
-sky1 SKY2 0
-cluster 2
-par 90
-sucktime 1
-music D_E2M2
-
-map E2M3 lookup HUSTR_E2M3
-levelnum 13
-titlepatch WILV12
-next E2M4
-secretnext E2M9
-sky1 SKY2 0
-cluster 2
-par 90
-sucktime 1
-music D_E2M3
-
-map E2M4 lookup HUSTR_E2M4
-levelnum 14
-titlepatch WILV13
-next E2M5
-secretnext E2M9
-sky1 SKY2 0
-cluster 2
-par 120
-sucktime 1
-music D_E2M4
-
-map E2M5 lookup HUSTR_E2M5
-levelnum 15
-titlepatch WILV14
-next E2M6
-secretnext E2M9
-sky1 SKY2 0
-cluster 2
-par 90
-sucktime 1
-music D_E2M5
-
-map E2M6 lookup HUSTR_E2M6
-levelnum 16
-titlepatch WILV15
-next E2M7
-secretnext E2M9
-sky1 SKY2 0
-cluster 2
-par 360
-sucktime 1
-music D_E2M6
-
-map E2M7 lookup HUSTR_E2M7
-levelnum 17
-titlepatch WILV16
-next E2M8
-secretnext E2M9
-sky1 SKY2 0
-cluster 2
-par 240
-sucktime 1
-music D_E2M7
-
-map E2M8 lookup HUSTR_E2M8
-levelnum 18
-titlepatch WILV17
-next EndGame2
-secretnext E2M9
-sky1 SKY2 0
-cluster 2
-par 30
-nointermission
-nosoundclipping
-cyberdemonspecial
-specialaction_exitlevel
-sucktime 1
-music D_E2M8
-
-map E2M9 lookup HUSTR_E2M9
-levelnum 19
-titlepatch WILV18
-next E2M6
-secretnext E2M6
-sky1 SKY2 0
-cluster 2
-par 170
-sucktime 1
-music D_E2M9
-
-// Registered/Retail Episode 3
-
-map E3M1 lookup HUSTR_E3M1
-levelnum 21
-titlepatch WILV20
-next E3M2
-secretnext E3M9
-sky1 SKY3 0
-cluster 3
-par 90
-sucktime 1
-music D_E3M1
-
-map E3M2 lookup HUSTR_E3M2
-levelnum 22
-titlepatch WILV21
-next E3M3
-secretnext E3M9
-sky1 SKY3 0
-cluster 3
-par 45
-sucktime 1
-music D_E3M2
-
-map E3M3 lookup HUSTR_E3M3
-levelnum 23
-titlepatch WILV22
-next E3M4
-secretnext E3M9
-sky1 SKY3 0
-cluster 3
-par 90
-sucktime 1
-music D_E3M3
-
-map E3M4 lookup HUSTR_E3M4
-levelnum 24
-titlepatch WILV23
-next E3M5
-secretnext E3M9
-sky1 SKY3 0
-cluster 3
-par 150
-sucktime 1
-music D_E3M4
-
-map E3M5 lookup HUSTR_E3M5
-levelnum 25
-titlepatch WILV24
-next E3M6
-secretnext E3M9
-sky1 SKY3 0
-cluster 3
-par 90
-sucktime 1
-music D_E3M5
-
-map E3M6 lookup HUSTR_E3M6
-levelnum 26
-titlepatch WILV25
-next E3M7
-secretnext E3M9
-sky1 SKY3 0
-cluster 3
-par 90
-sucktime 1
-music D_E3M6
-
-map E3M7 lookup HUSTR_E3M7
-levelnum 27
-titlepatch WILV26
-next E3M8
-secretnext E3M9
-sky1 SKY3 0
-cluster 3
-par 165
-sucktime 1
-music D_E3M7
-
-map E3M8 lookup HUSTR_E3M8
-levelnum 28
-titlepatch WILV27
-next endbunny
-secretnext E3M9
-sky1 SKY3 0
-cluster 3
-par 30
-nointermission
-nosoundclipping
-spidermastermindspecial
-specialaction_exitlevel
-sucktime 1
-music D_E3M8
-
-map E3M9 lookup HUSTR_E3M9
-levelnum 29
-titlepatch WILV28
-next E3M7
-secretnext E3M7
-sky1 SKY3 0
-cluster 3
-par 135
-sucktime 1
-music D_E3M9
-
-// Retail Episode 4
-
-map E4M1 lookup HUSTR_E4M1
-levelnum 31
-titlepatch WILV30
-next E4M2
-secretnext E4M9
-sky1 SKY4 0
-cluster 4
-sucktime 1
-music D_E3M4
-
-map E4M2 lookup HUSTR_E4M2
-levelnum 32
-titlepatch WILV31
-next E4M3
-secretnext E4M9
-sky1 SKY4 0
-cluster 4
-sucktime 1
-music D_E3M2
-
-map E4M3 lookup HUSTR_E4M3
-levelnum 33
-titlepatch WILV32
-next E4M4
-secretnext E4M9
-sky1 SKY4 0
-cluster 4
-sucktime 1
-music D_E3M3
-
-map E4M4 lookup HUSTR_E4M4
-levelnum 34
-titlepatch WILV33
-next E4M5
-secretnext E4M9
-sky1 SKY4 0
-cluster 4
-sucktime 1
-music D_E1M5
-
-map E4M5 lookup HUSTR_E4M5
-levelnum 35
-titlepatch WILV34
-next E4M6
-secretnext E4M9
-sky1 SKY4 0
-cluster 4
-sucktime 1
-music D_E2M7
-
-map E4M6 lookup HUSTR_E4M6
-levelnum 36
-titlepatch WILV35
-next E4M7
-secretnext E4M9
-sky1 SKY4 0
-cluster 4
-cyberdemonspecial
-specialaction_opendoor
-sucktime 1
-music D_E2M4
-
-map E4M7 lookup HUSTR_E4M7
-levelnum 37
-titlepatch WILV36
-next E4M8
-secretnext E4M9
-sky1 SKY4 0
-cluster 4
-sucktime 1
-music D_E2M6
-
-map E4M8 lookup HUSTR_E4M8
-levelnum 38
-titlepatch WILV37
-next EndGame4
-secretnext E4M9
-sky1 SKY4 0
-cluster 4
-nointermission
-nosoundclipping
-spidermastermindspecial
-specialaction_lowerfloor
-sucktime 1
-music D_E2M5
-
-map E4M9 lookup HUSTR_E4M9
-levelnum 39
-titlepatch WILV38
-next E4M3
-secretnext E4M3
-sky1 SKY4 0
-cluster 4
-sucktime 1
-music D_E1M9
-
-// Clusters (correspond with same-numbered episode)
-
-clusterdef 1
-flat FLOOR4_8
-music D_VICTOR
-exittext lookup E1TEXT
-
-clusterdef 2
-flat SFLR6_1
-music D_VICTOR
-exittext lookup E2TEXT
-
-clusterdef 3
-flat MFLR8_4
-music D_VICTOR
-exittext lookup E3TEXT
-
-clusterdef 4
-flat MFLR8_3
-music D_VICTOR
-exittext lookup E4TEXT
-
diff --git a/wadsrc/mapinfo/doom2.txt b/wadsrc/mapinfo/doom2.txt
deleted file mode 100644
index 45a040c1..00000000
--- a/wadsrc/mapinfo/doom2.txt
+++ /dev/null
@@ -1,365 +0,0 @@
-// MAPINFO for Doom 2
-
-clearepisodes
-episode map01
- name "Hell On Earth"
- key h
-
-
-map MAP01 lookup HUSTR_1
-titlepatch CWILV00
-next MAP02
-secretnext MAP02
-sky1 SKY1 0
-cluster 5
-par 30
-sucktime 1
-music D_RUNNIN
-
-map MAP02 lookup HUSTR_2
-titlepatch CWILV01
-next MAP03
-secretnext MAP03
-sky1 SKY1 0
-cluster 5
-par 90
-sucktime 1
-music D_STALKS
-
-map MAP03 lookup HUSTR_3
-titlepatch CWILV02
-next MAP04
-secretnext MAP04
-sky1 SKY1 0
-cluster 5
-par 120
-sucktime 1
-music D_COUNTD
-
-map MAP04 lookup HUSTR_4
-titlepatch CWILV03
-next MAP05
-secretnext MAP05
-sky1 SKY1 0
-cluster 5
-par 120
-sucktime 1
-music D_BETWEE
-
-map MAP05 lookup HUSTR_5
-titlepatch CWILV04
-next MAP06
-secretnext MAP06
-sky1 SKY1 0
-cluster 5
-par 90
-sucktime 1
-music D_DOOM
-
-map MAP06 lookup HUSTR_6
-titlepatch CWILV05
-next MAP07
-secretnext MAP07
-sky1 SKY1 0
-cluster 5
-par 150
-sucktime 1
-music D_THE_DA
-
-map MAP07 lookup HUSTR_7
-titlepatch CWILV06
-next MAP08
-secretnext MAP08
-sky1 SKY1 0
-cluster 6
-par 120
-map07special
-sucktime 1
-music D_SHAWN
-
-map MAP08 lookup HUSTR_8
-titlepatch CWILV07
-next MAP09
-secretnext MAP09
-sky1 SKY1 0
-cluster 6
-par 120
-sucktime 1
-music D_DDTBLU
-
-map MAP09 lookup HUSTR_9
-titlepatch CWILV08
-next MAP10
-secretnext MAP10
-sky1 SKY1 0
-cluster 6
-par 270
-sucktime 1
-music D_IN_CIT
-
-map MAP10 lookup HUSTR_10
-titlepatch CWILV09
-next MAP11
-secretnext MAP11
-sky1 SKY1 0
-cluster 6
-par 90
-sucktime 1
-music D_DEAD
-
-map MAP11 lookup HUSTR_11
-titlepatch CWILV10
-next MAP12
-secretnext MAP12
-sky1 SKY1 0
-cluster 6
-par 210
-sucktime 1
-music D_STLKS2
-
-map MAP12 lookup HUSTR_12
-titlepatch CWILV11
-next MAP13
-secretnext MAP13
-sky1 SKY2 0
-cluster 7
-par 150
-sucktime 1
-music D_THEDA2
-
-map MAP13 lookup HUSTR_13
-titlepatch CWILV12
-next MAP14
-secretnext MAP14
-sky1 SKY2 0
-cluster 7
-par 150
-sucktime 1
-music D_DOOM2
-
-map MAP14 lookup HUSTR_14
-titlepatch CWILV13
-next MAP15
-secretnext MAP15
-sky1 SKY2 0
-cluster 7
-par 150
-sucktime 1
-music D_DDTBL2
-
-map MAP15 lookup HUSTR_15
-titlepatch CWILV14
-next MAP16
-secretnext MAP31
-sky1 SKY2 0
-cluster 7
-par 210
-sucktime 1
-music D_RUNNI2
-
-map MAP16 lookup HUSTR_16
-titlepatch CWILV15
-next MAP17
-secretnext MAP17
-sky1 SKY2 0
-cluster 7
-par 150
-sucktime 1
-music D_DEAD2
-
-map MAP17 lookup HUSTR_17
-titlepatch CWILV16
-next MAP18
-secretnext MAP18
-sky1 SKY2 0
-cluster 7
-par 420
-sucktime 1
-music D_STLKS3
-
-map MAP18 lookup HUSTR_18
-titlepatch CWILV17
-next MAP19
-secretnext MAP19
-sky1 SKY2 0
-cluster 7
-par 150
-sucktime 1
-music D_ROMERO
-
-map MAP19 lookup HUSTR_19
-titlepatch CWILV18
-next MAP20
-secretnext MAP20
-sky1 SKY2 0
-cluster 7
-par 210
-sucktime 1
-music D_SHAWN2
-
-map MAP20 lookup HUSTR_20
-titlepatch CWILV19
-next MAP21
-secretnext MAP21
-sky1 SKY2 0
-cluster 7
-par 150
-sucktime 1
-music D_MESSAG
-
-map MAP21 lookup HUSTR_21
-titlepatch CWILV20
-next MAP22
-secretnext MAP22
-sky1 SKY3 0
-cluster 8
-par 240
-sucktime 1
-music D_COUNT2
-
-map MAP22 lookup HUSTR_22
-titlepatch CWILV21
-next MAP23
-secretnext MAP23
-sky1 SKY3 0
-cluster 8
-par 150
-sucktime 1
-music D_DDTBL3
-
-map MAP23 lookup HUSTR_23
-titlepatch CWILV22
-next MAP24
-secretnext MAP24
-sky1 SKY3 0
-cluster 8
-par 180
-sucktime 1
-music D_AMPIE
-
-map MAP24 lookup HUSTR_24
-titlepatch CWILV23
-next MAP25
-secretnext MAP25
-sky1 SKY3 0
-cluster 8
-par 150
-sucktime 1
-music D_THEDA3
-
-map MAP25 lookup HUSTR_25
-titlepatch CWILV24
-next MAP26
-secretnext MAP26
-sky1 SKY3 0
-cluster 8
-par 150
-sucktime 1
-music D_ADRIAN
-
-map MAP26 lookup HUSTR_26
-titlepatch CWILV25
-next MAP27
-secretnext MAP27
-sky1 SKY3 0
-cluster 8
-par 300
-sucktime 1
-music D_MESSG2
-
-map MAP27 lookup HUSTR_27
-titlepatch CWILV26
-next MAP28
-secretnext MAP28
-sky1 SKY3 0
-cluster 8
-par 330
-sucktime 1
-music D_ROMER2
-
-map MAP28 lookup HUSTR_28
-titlepatch CWILV27
-next MAP29
-secretnext MAP29
-sky1 SKY3 0
-cluster 8
-par 420
-sucktime 1
-music D_TENSE
-
-map MAP29 lookup HUSTR_29
-titlepatch CWILV28
-next MAP30
-secretnext MAP30
-sky1 SKY3 0
-cluster 8
-par 300
-sucktime 1
-music D_SHAWN3
-
-map MAP30 lookup HUSTR_30
-titlepatch CWILV29
-next EndGameC
-secretnext EndGameC
-sky1 SKY3 0
-cluster 8
-par 180
-allowmonstertelefrags
-sucktime 1
-music D_OPENIN
-
-map MAP31 lookup HUSTR_31
-titlepatch CWILV30
-next MAP16
-secretnext MAP32
-sky1 SKY3 0
-cluster 9
-par 120
-sucktime 1
-music D_EVIL
-
-map MAP32 lookup HUSTR_32
-titlepatch CWILV31
-next MAP16
-secretnext MAP16
-sky1 SKY3 0
-cluster 10
-par 30
-sucktime 1
-music D_ULTIMA
-
-// DOOM II first cluster (up thru level 6)
-clusterdef 5
-flat SLIME16
-music D_READ_M
-exittext lookup C1TEXT
-
-// DOOM II second cluster (up thru level 11)
-clusterdef 6
-flat RROCK14
-music D_READ_M
-exittext lookup C2TEXT
-
-// DOOM II third cluster (up thru level 20)
-clusterdef 7
-flat RROCK07
-music D_READ_M
-exittext lookup C3TEXT
-
-// DOOM II fourth cluster (up thru level 30)
-clusterdef 8
-flat RROCK17
-music D_READ_M
-exittext lookup C4TEXT
-
-// DOOM II fifth cluster (level 31)
-clusterdef 9
-flat RROCK13
-music D_READ_M
-entertext lookup C5TEXT
-
-// DOOM II sixth cluster (level 32)
-clusterdef 10
-flat RROCK19
-music D_READ_M
-entertext lookup C6TEXT
diff --git a/wadsrc/mapinfo/doomcommon.txt b/wadsrc/mapinfo/doomcommon.txt
deleted file mode 100644
index 5a8fdd10..00000000
--- a/wadsrc/mapinfo/doomcommon.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-skill baby
- AmmoFactor 2
- DamageFactor 0.5
- EasyBossBrain
- SpawnFilter "Baby"
- PicName "M_JKILL"
- Key i
-
-skill easy
- EasyBossBrain
- SpawnFilter "Easy"
- PicName "M_ROUGH"
- Key h
-
-skill normal
- SpawnFilter "Normal"
- PicName "M_HURT"
- Key h
-
-skill hard
- SpawnFilter "Hard"
- PicName "M_ULTRA"
- Key u
-
-skill nightmare
- AmmoFactor 2
- FastMonsters
- DisableCheats
- RespawnTime 12
- SpawnFilter "Nightmare"
- PicName "M_NMARE"
- MustConfirm
- Key n
diff --git a/wadsrc/mapinfo/heretic.txt b/wadsrc/mapinfo/heretic.txt
deleted file mode 100644
index 7050c9f8..00000000
--- a/wadsrc/mapinfo/heretic.txt
+++ /dev/null
@@ -1,454 +0,0 @@
-// MAPINFO for Heretic (Shareware and Retail)
-
-skill baby
- AmmoFactor 1.5
- DoubleAmmoFactor 1.5
- DamageFactor 0.5
- EasyBossBrain
- SpawnFilter "Baby"
- Name "$MNU_WETNURSE"
-
-skill easy
- DoubleAmmoFactor 1.5
- SpawnFilter "Easy"
- Name "$MNU_YELLOWBELLIES"
-
-skill normal
- DoubleAmmoFactor 1.5
- SpawnFilter "Normal"
- Name "$MNU_BRINGEST"
-
-skill hard
- DoubleAmmoFactor 1.5
- SpawnFilter "Hard"
- Name "$MNU_SMITE"
-
-skill nightmare
- AmmoFactor 1.5
- DoubleAmmoFactor 1.5
- FastMonsters
- DisableCheats
- SpawnFilter "Nightmare"
- Name "$MNU_BLACKPLAGUE"
-
-clearepisodes
-episode e1m1
- name "$MNU_COTD"
- key c
-
-episode e2m1
- name "$MNU_HELLSMAW"
- key h
-
-episode e3m1
- name "$MNU_DOME"
- key d
-
-episode e4m1
- name "$MNU_OSSUARY"
- key o
- optional
-
-episode e5m1
- name "$MNU_DEMESNE"
- key s
- optional
-
-
-
-// Episode 1
-
-map E1M1 lookup HHUSTR_E1M1
-next E1M2
-secretnext E1M9
-sky1 SKY1 0
-cluster 1
-music MUS_E1M1
-
-map E1M2 lookup HHUSTR_E1M2
-next E1M3
-secretnext E1M9
-sky1 SKY1 0
-cluster 1
-music MUS_E1M2
-
-map E1M3 lookup HHUSTR_E1M3
-next E1M4
-secretnext E1M9
-sky1 SKY1 0
-cluster 1
-music MUS_E1M3
-
-map E1M4 lookup HHUSTR_E1M4
-next E1M5
-secretnext E1M9
-sky1 SKY1 0
-cluster 1
-music MUS_E1M4
-
-map E1M5 lookup HHUSTR_E1M5
-next E1M6
-secretnext E1M9
-sky1 SKY1 0
-cluster 1
-music MUS_E1M5
-
-map E1M6 lookup HHUSTR_E1M6
-next E1M7
-secretnext E1M9
-sky1 SKY1 0
-cluster 1
-music MUS_E1M6
-
-map E1M7 lookup HHUSTR_E1M7
-next E1M8
-secretnext E1M9
-sky1 SKY1 0
-cluster 1
-music MUS_E1M7
-
-map E1M8 lookup HHUSTR_E1M8
-next EndGame1
-secretnext E1M9
-sky1 SKY1 0
-cluster 1
-nointermission
-ironlichspecial
-specialaction_lowerfloor
-music MUS_E1M8
-
-map E1M9 lookup HHUSTR_E1M9
-next E1M7
-secretnext E1M7
-sky1 SKY1 0
-cluster 1
-music MUS_E1M9
-
-// Episode 2
-
-map E2M1 lookup HHUSTR_E2M1
-next E2M2
-secretnext E2M9
-sky1 SKY2 0
-cluster 2
-music MUS_E2M1
-
-map E2M2 lookup HHUSTR_E2M2
-next E2M3
-secretnext E2M9
-sky1 SKY2 0
-cluster 2
-music MUS_E2M2
-
-map E2M3 lookup HHUSTR_E2M3
-next E2M4
-secretnext E2M9
-sky1 SKY2 0
-cluster 2
-music MUS_E2M3
-
-map E2M4 lookup HHUSTR_E2M4
-next E2M5
-secretnext E2M9
-sky1 SKY2 0
-cluster 2
-music MUS_E2M4
-
-map E2M5 lookup HHUSTR_E2M5
-next E2M6
-secretnext E2M9
-sky1 SKY2 0
-cluster 2
-music MUS_E1M4
-
-map E2M6 lookup HHUSTR_E2M6
-next E2M7
-secretnext E2M9
-sky1 SKY2 0
-cluster 2
-music MUS_E2M6
-
-map E2M7 lookup HHUSTR_E2M7
-next E2M8
-secretnext E2M9
-sky1 SKY2 0
-cluster 2
-music MUS_E2M7
-
-map E2M8 lookup HHUSTR_E2M8
-next EndGameW
-secretnext E2M9
-sky1 SKY2 0
-cluster 2
-nointermission
-minotaurspecial
-specialaction_lowerfloor
-specialaction_killmonsters
-music MUS_E2M8
-
-map E2M9 lookup HHUSTR_E2M9
-next E2M5
-secretnext E2M5
-sky1 SKY2 0
-cluster 2
-music MUS_E2M9
-
-// Episode 3
-
-map E3M1 lookup HHUSTR_E3M1
-next E3M2
-secretnext E3M9
-sky1 SKY3 0
-cluster 3
-music MUS_E1M1
-
-map E3M2 lookup HHUSTR_E3M2
-next E3M3
-secretnext E3M9
-sky1 SKY3 0
-cluster 3
-music MUS_E3M2
-
-map E3M3 lookup HHUSTR_E3M3
-next E3M4
-secretnext E3M9
-sky1 SKY3 0
-cluster 3
-music MUS_E3M3
-
-map E3M4 lookup HHUSTR_E3M4
-next E3M5
-secretnext E3M9
-sky1 SKY3 0
-cluster 3
-music MUS_E1M6
-
-map E3M5 lookup HHUSTR_E3M5
-next E3M6
-secretnext E3M9
-sky1 SKY3 0
-cluster 3
-music MUS_E1M3
-
-map E3M6 lookup HHUSTR_E3M6
-next E3M7
-secretnext E3M9
-sky1 SKY3 0
-cluster 3
-music MUS_E1M2
-
-map E3M7 lookup HHUSTR_E3M7
-next E3M8
-secretnext E3M9
-sky1 SKY3 0
-cluster 3
-music MUS_E1M5
-
-map E3M8 lookup HHUSTR_E3M8
-next EndDemon
-secretnext E3M9
-sky1 SKY3 0
-cluster 3
-nointermission
-dsparilspecial
-specialaction_lowerfloor
-specialaction_killmonsters
-music MUS_E1M9
-
-map E3M9 lookup HHUSTR_E3M9
-next E3M5
-secretnext E3M5
-sky1 SKY3 0
-cluster 3
-music MUS_E2M6
-
-// Episode 4
-
-map E4M1 lookup HHUSTR_E4M1
-next E4M2
-secretnext E4M9
-sky1 SKY1 0
-cluster 4
-music MUS_E1M6
-
-map E4M2 lookup HHUSTR_E4M2
-next E4M3
-secretnext E4M9
-sky1 SKY1 0
-cluster 4
-music MUS_E1M2
-
-map E4M3 lookup HHUSTR_E4M3
-next E4M4
-secretnext E4M9
-sky1 SKY1 0
-cluster 4
-music MUS_E1M3
-
-map E4M4 lookup HHUSTR_E4M4
-next E4M5
-secretnext E4M9
-sky1 SKY1 0
-cluster 4
-music MUS_E1M4
-
-map E4M5 lookup HHUSTR_E4M5
-next E4M6
-secretnext E4M9
-sky1 SKY1 0
-cluster 4
-music MUS_E1M5
-
-map E4M6 lookup HHUSTR_E4M6
-next E4M7
-secretnext E4M9
-sky1 SKY1 0
-cluster 4
-music MUS_E1M1
-
-map E4M7 lookup HHUSTR_E4M7
-next E4M8
-secretnext E4M9
-sky1 SKY1 0
-cluster 4
-music MUS_E1M7
-
-map E4M8 lookup HHUSTR_E4M8
-next EndGame4
-secretnext E4M9
-sky1 SKY1 0
-cluster 4
-nointermission
-ironlichspecial
-specialaction_lowerfloor
-specialaction_killmonsters
-music MUS_E1M8
-
-map E4M9 lookup HHUSTR_E4M9
-next E4M5
-secretnext E4M5
-sky1 SKY1 0
-cluster 4
-music MUS_E1M9
-
-// Episode 5
-
-map E5M1 lookup HHUSTR_E5M1
-next E5M2
-secretnext E5M9
-sky1 SKY3 0
-cluster 5
-music MUS_E2M1
-
-map E5M2 lookup HHUSTR_E5M2
-next E5M3
-secretnext E5M9
-sky1 SKY3 0
-cluster 5
-music MUS_E2M2
-
-map E5M3 lookup HHUSTR_E5M3
-next E5M4
-secretnext E5M9
-sky1 SKY3 0
-cluster 5
-music MUS_E2M3
-
-map E5M4 lookup HHUSTR_E5M4
-next E5M5
-secretnext E5M9
-sky1 SKY3 0
-cluster 5
-music MUS_E2M4
-
-map E5M5 lookup HHUSTR_E5M5
-next E5M6
-secretnext E5M9
-sky1 SKY3 0
-cluster 5
-music MUS_E1M4
-
-map E5M6 lookup HHUSTR_E5M6
-next E5M7
-secretnext E5M9
-sky1 SKY3 0
-cluster 5
-music MUS_E2M6
-
-map E5M7 lookup HHUSTR_E5M7
-next E5M8
-secretnext E5M9
-sky1 SKY3 0
-cluster 5
-music MUS_E2M7
-
-map E5M8 lookup HHUSTR_E5M8
-next EndGame1
-secretnext E5M9
-sky1 SKY3 0
-cluster 5
-nointermission
-minotaurspecial
-specialaction_killmonsters
-specialaction_lowerfloor
-music MUS_E2M8
-
-map E5M9 lookup HHUSTR_E5M9
-next E5M4
-secretnext E5M4
-sky1 SKY3 0
-cluster 5
-music MUS_E2M9
-
-// Episode 6
-
-map E6M1 "Untitled"
-next E6M2
-secretnext E6M2
-sky1 SKY1 0
-cluster 6
-music MUS_E3M2
-
-map E6M2 "Untitled"
-next E6M3
-secretnext E6M3
-sky1 SKY1 0
-cluster 6
-music MUS_E3M3
-
-map E6M3 "Untitled"
-next E6M1
-secretnext E6M1
-sky1 SKY1 0
-cluster 6
-music MUS_E1M6
-
-// Clusters (correspond with same-numbered episode)
-
-clusterdef 1
-flat FLOOR25
-music MUS_CPTD
-exittext lookup HE1TEXT
-
-clusterdef 2
-flat FLATHUH1
-music MUS_CPTD
-exittext lookup HE2TEXT
-
-clusterdef 3
-flat FLTWAWA2
-music MUS_CPTD
-exittext lookup HE3TEXT
-
-clusterdef 4
-flat FLOOR28
-music MUS_CPTD
-exittext lookup HE4TEXT
-
-clusterdef 5
-flat FLOOR08
-music MUS_CPTD
-exittext lookup HE5TEXT
-
-clusterdef 6
-flat FLOOR25
diff --git a/wadsrc/mapinfo/hexen.txt b/wadsrc/mapinfo/hexen.txt
deleted file mode 100644
index a8a6806b..00000000
--- a/wadsrc/mapinfo/hexen.txt
+++ /dev/null
@@ -1,95 +0,0 @@
-// A bare-bones MAPINFO for Hexen.
-// Most of the MAPINFO is still in hexen.wad.
-
-skill baby
- AmmoFactor 1.5
- DoubleAmmoFactor 1.5
- DamageFactor 0.5
- EasyBossBrain
- SpawnFilter "Baby"
- Name "$MNU_WETNURSE"
- PlayerClassName "fighter" "$MNU_SQUIRE"
- PlayerClassName "cleric" "$MNU_ALTARBOY"
- PlayerClassName "mage" "$MNU_APPRENTICE"
-
-
-skill easy
- DoubleAmmoFactor 1.5
- SpawnFilter "Easy"
- Name "$MNU_YELLOWBELLIES"
- PlayerClassName "fighter" "$MNU_KNIGHT"
- PlayerClassName "cleric" "$MNU_ACOLYTE"
- PlayerClassName "mage" "$MNU_ENCHANTER"
-
-skill normal
- DoubleAmmoFactor 1.5
- SpawnFilter "Normal"
- Name "$MNU_BRINGEST"
- PlayerClassName "fighter" "$MNU_WARRIOR"
- PlayerClassName "cleric" "$MNU_PRIEST"
- PlayerClassName "mage" "$MNU_SORCERER"
-
-skill hard
- DoubleAmmoFactor 1.5
- SpawnFilter "Hard"
- Name "$MNU_SMITE"
- PlayerClassName "fighter" "$MNU_BERSERKER"
- PlayerClassName "cleric" "$MNU_CARDINAL"
- PlayerClassName "mage" "$MNU_WARLOCK"
-
-skill nightmare
- AmmoFactor 1.5
- DoubleAmmoFactor 1.5
- FastMonsters
- DisableCheats
- SpawnFilter "Nightmare"
- Name "$MNU_BLACKPLAGUE"
- PlayerClassName "fighter" "$MNU_TITAN"
- PlayerClassName "cleric" "$MNU_POPE"
- PlayerClassName "mage" "$MNU_ARCHMAGE"
-
-clearepisodes
-episode "&wt@01"
- name "Hexen"
- key h
-
-clusterdef 1
-hub
-exittext clus1msg
-exittextislump
-music hub
-pic interpic
-
-clusterdef 2
-hub
-exittext clus2msg
-exittextislump
-music hub
-pic interpic
-
-clusterdef 3
-hub
-exittext clus3msg
-exittextislump
-music hub
-pic interpic
-
-clusterdef 4
-hub
-exittext clus4msg
-exittextislump
-music hub
-pic interpic
-
-defaultmap
- activateowndeathspecials
- infiniteflightpowerup
- fallingdamage
- nointermission
- noautosequences
- missilesactivateimpactlines
- monsterfallingdamage
-
-// There is also support for showing a clus5msg after cluster 5, but
-// since it isn't used, and it would intefere with the finale if I
-// included it here, I'm leaving out the clusterdef for cluster 5.
diff --git a/wadsrc/mapinfo/plutonia.txt b/wadsrc/mapinfo/plutonia.txt
deleted file mode 100644
index d9ef2107..00000000
--- a/wadsrc/mapinfo/plutonia.txt
+++ /dev/null
@@ -1,365 +0,0 @@
-// MAPINFO for Plutonia. Exactly the same as Doom 2, except it
-// has different map names and cluster messages.
-
-clearepisodes
-episode map01
- name "The Plutonia Experiment"
- key t
-
-map MAP01 lookup PHUSTR_1
-titlepatch CWILV00
-next MAP02
-secretnext MAP02
-sky1 SKY1 0
-cluster 5
-par 30
-sucktime 1
-music D_RUNNIN
-
-map MAP02 lookup PHUSTR_2
-titlepatch CWILV01
-next MAP03
-secretnext MAP03
-sky1 SKY1 0
-cluster 5
-par 90
-sucktime 1
-music D_STALKS
-
-map MAP03 lookup PHUSTR_3
-titlepatch CWILV02
-next MAP04
-secretnext MAP04
-sky1 SKY1 0
-cluster 5
-par 120
-sucktime 1
-music D_COUNTD
-
-map MAP04 lookup PHUSTR_4
-titlepatch CWILV03
-next MAP05
-secretnext MAP05
-sky1 SKY1 0
-cluster 5
-par 120
-sucktime 1
-music D_BETWEE
-
-map MAP05 lookup PHUSTR_5
-titlepatch CWILV04
-next MAP06
-secretnext MAP06
-sky1 SKY1 0
-cluster 5
-par 90
-sucktime 1
-music D_DOOM
-
-map MAP06 lookup PHUSTR_6
-titlepatch CWILV05
-next MAP07
-secretnext MAP07
-sky1 SKY1 0
-cluster 5
-par 150
-sucktime 1
-music D_THE_DA
-
-map MAP07 lookup PHUSTR_7
-titlepatch CWILV06
-next MAP08
-secretnext MAP08
-sky1 SKY1 0
-cluster 6
-par 120
-sucktime 1
-map07special
-music D_SHAWN
-
-map MAP08 lookup PHUSTR_8
-titlepatch CWILV07
-next MAP09
-secretnext MAP09
-sky1 SKY1 0
-cluster 6
-par 120
-sucktime 1
-music D_DDTBLU
-
-map MAP09 lookup PHUSTR_9
-titlepatch CWILV08
-next MAP10
-secretnext MAP10
-sky1 SKY1 0
-cluster 6
-par 270
-sucktime 1
-music D_IN_CIT
-
-map MAP10 lookup PHUSTR_10
-titlepatch CWILV09
-next MAP11
-secretnext MAP11
-sky1 SKY1 0
-cluster 6
-par 90
-sucktime 1
-music D_DEAD
-
-map MAP11 lookup PHUSTR_11
-titlepatch CWILV10
-next MAP12
-secretnext MAP12
-sky1 SKY1 0
-cluster 6
-par 210
-sucktime 1
-music D_STLKS2
-
-map MAP12 lookup PHUSTR_12
-titlepatch CWILV11
-next MAP13
-secretnext MAP13
-sky1 SKY2 0
-cluster 7
-par 150
-sucktime 1
-music D_THEDA2
-
-map MAP13 lookup PHUSTR_13
-titlepatch CWILV12
-next MAP14
-secretnext MAP14
-sky1 SKY2 0
-cluster 7
-par 150
-sucktime 1
-music D_DOOM2
-
-map MAP14 lookup PHUSTR_14
-titlepatch CWILV13
-next MAP15
-secretnext MAP15
-sky1 SKY2 0
-cluster 7
-par 150
-sucktime 1
-music D_DDTBL2
-
-map MAP15 lookup PHUSTR_15
-titlepatch CWILV14
-next MAP16
-secretnext MAP31
-sky1 SKY2 0
-cluster 7
-par 210
-sucktime 1
-music D_RUNNI2
-
-map MAP16 lookup PHUSTR_16
-titlepatch CWILV15
-next MAP17
-secretnext MAP17
-sky1 SKY2 0
-cluster 7
-par 150
-sucktime 1
-music D_DEAD2
-
-map MAP17 lookup PHUSTR_17
-titlepatch CWILV16
-next MAP18
-secretnext MAP18
-sky1 SKY2 0
-cluster 7
-par 420
-sucktime 1
-music D_STLKS3
-
-map MAP18 lookup PHUSTR_18
-titlepatch CWILV17
-next MAP19
-secretnext MAP19
-sky1 SKY2 0
-cluster 7
-par 150
-sucktime 1
-music D_ROMERO
-
-map MAP19 lookup PHUSTR_19
-titlepatch CWILV18
-next MAP20
-secretnext MAP20
-sky1 SKY2 0
-cluster 7
-par 210
-sucktime 1
-music D_SHAWN2
-
-map MAP20 lookup PHUSTR_20
-titlepatch CWILV19
-next MAP21
-secretnext MAP21
-sky1 SKY2 0
-cluster 7
-par 150
-sucktime 1
-music D_MESSAG
-
-map MAP21 lookup PHUSTR_21
-titlepatch CWILV20
-next MAP22
-secretnext MAP22
-sky1 SKY3 0
-cluster 8
-par 240
-sucktime 1
-music D_COUNT2
-
-map MAP22 lookup PHUSTR_22
-titlepatch CWILV21
-next MAP23
-secretnext MAP23
-sky1 SKY3 0
-cluster 8
-par 150
-sucktime 1
-music D_DDTBL3
-
-map MAP23 lookup PHUSTR_23
-titlepatch CWILV22
-next MAP24
-secretnext MAP24
-sky1 SKY3 0
-cluster 8
-par 180
-sucktime 1
-music D_AMPIE
-
-map MAP24 lookup PHUSTR_24
-titlepatch CWILV23
-next MAP25
-secretnext MAP25
-sky1 SKY3 0
-cluster 8
-par 150
-sucktime 1
-music D_THEDA3
-
-map MAP25 lookup PHUSTR_25
-titlepatch CWILV24
-next MAP26
-secretnext MAP26
-sky1 SKY3 0
-cluster 8
-par 150
-sucktime 1
-music D_ADRIAN
-
-map MAP26 lookup PHUSTR_26
-titlepatch CWILV25
-next MAP27
-secretnext MAP27
-sky1 SKY3 0
-cluster 8
-par 300
-sucktime 1
-music D_MESSG2
-
-map MAP27 lookup PHUSTR_27
-titlepatch CWILV26
-next MAP28
-secretnext MAP28
-sky1 SKY3 0
-cluster 8
-par 330
-sucktime 1
-music D_ROMER2
-
-map MAP28 lookup PHUSTR_28
-titlepatch CWILV27
-next MAP29
-secretnext MAP29
-sky1 SKY3 0
-cluster 8
-par 420
-sucktime 1
-music D_TENSE
-
-map MAP29 lookup PHUSTR_29
-titlepatch CWILV28
-next MAP30
-secretnext MAP30
-sky1 SKY3 0
-cluster 8
-par 300
-sucktime 1
-music D_SHAWN3
-
-map MAP30 lookup PHUSTR_30
-titlepatch CWILV29
-next EndGameC
-secretnext EndGameC
-sky1 SKY3 0
-cluster 8
-par 180
-sucktime 1
-allowmonstertelefrags
-music D_OPENIN
-
-map MAP31 lookup PHUSTR_31
-titlepatch CWILV30
-next MAP16
-secretnext MAP32
-sky1 SKY3 0
-cluster 9
-par 120
-sucktime 1
-music D_EVIL
-
-map MAP32 lookup PHUSTR_32
-titlepatch CWILV31
-next MAP16
-secretnext MAP16
-sky1 SKY3 0
-cluster 10
-par 30
-sucktime 1
-music D_ULTIMA
-
-// DOOM II first cluster (up thru level 6)
-clusterdef 5
-flat SLIME16
-music D_READ_M
-exittext lookup P1TEXT
-
-// DOOM II second cluster (up thru level 11)
-clusterdef 6
-flat RROCK14
-music D_READ_M
-exittext lookup P2TEXT
-
-// DOOM II third cluster (up thru level 20)
-clusterdef 7
-flat RROCK07
-music D_READ_M
-exittext lookup P3TEXT
-
-// DOOM II fourth cluster (up thru level 30)
-clusterdef 8
-flat RROCK17
-music D_READ_M
-exittext lookup P4TEXT
-
-// DOOM II fifth cluster (level 31)
-clusterdef 9
-flat RROCK13
-music D_READ_M
-entertext lookup P5TEXT
-
-// DOOM II sixth cluster (level 32)
-clusterdef 10
-flat RROCK19
-music D_READ_M
-entertext lookup P6TEXT
diff --git a/wadsrc/mapinfo/strife.txt b/wadsrc/mapinfo/strife.txt
deleted file mode 100644
index 91dcccc7..00000000
--- a/wadsrc/mapinfo/strife.txt
+++ /dev/null
@@ -1,278 +0,0 @@
-// MAPINFO for Strife (full version and teaser)
-
-skill baby
- AmmoFactor 2
- DamageFactor 0.5
- EasyBossBrain
- SpawnFilter "Baby"
- PicName "M_JKILL"
- Key t
-
-skill easy
- SpawnFilter "Easy"
- PicName "M_ROUGH"
- Key r
-
-skill normal
- SpawnFilter "Normal"
- PicName "M_HURT"
- Key v
-
-skill hard
- SpawnFilter "Hard"
- PicName "M_ULTRA"
- Key e
-
-skill nightmare
- AmmoFactor 2
- FastMonsters
- DisableCheats
- RespawnTime 16
- SpawnFilter "Nightmare"
- PicName "M_NMARE"
- Key b
-
-defaultmap
-forcenoskystretch
-strifefallingdamage
-nointermission
-clipmidtextures
-noinfighting
-
-map MAP01 "AREA 1: sanctuary"
-next MAP02
-sky1 SKYMNT02 0
-music D_ACTION
-cluster 1
-
-map MAP02 "AREA 2: town"
-next MAP03
-sky1 SKYMNT02 0
-music D_TAVERN
-cluster 1
-
-map MAP03 "AREA 3: front base"
-next MAP04
-sky1 SKYMNT02 0
-music D_DANGER
-cluster 1
-noallies
-redirect Sigil map30
-
-map MAP04 "AREA 4: power station"
-next MAP05
-sky1 SKYMNT02 0
-music D_FAST
-cluster 1
-
-map MAP05 "AREA 5: prison"
-next MAP06
-sky1 SKYMNT02 0
-music D_INTRO
-cluster 1
-
-map MAP06 "AREA 6: sewers"
-next MAP07
-sky1 SKYMNT02 0
-music D_DARKER
-cluster 1
-
-map MAP07 "AREA 7: castle"
-next MAP08
-sky1 SKYMNT02 0
-music D_STRIKE
-cluster 1
-redirect Sigil map10
-
-map MAP08 "AREA 8: Audience Chamber"
-next MAP09
-sky1 SKYMNT02 0
-music D_SLIDE
-cluster 1
-
-map MAP09 "AREA 9: Castle: Programmer's Keep"
-next MAP10
-sky1 SKYMNT02 0
-music D_TRIBAL
-cluster 1
-// These are the sky changes for the first 8 maps
-specialaction "Programmer", ACS_Execute, 0, 1, 256
-specialaction "Programmer", ACS_Execute, 0, 2, 256
-specialaction "Programmer", ACS_Execute, 0, 3, 256
-specialaction "Programmer", ACS_Execute, 0, 4, 256
-specialaction "Programmer", ACS_Execute, 0, 5, 256
-specialaction "Programmer", ACS_Execute, 0, 6, 256
-specialaction "Programmer", ACS_Execute, 0, 7, 256
-specialaction "Programmer", ACS_Execute, 0, 8, 256
-
-// It seems that Strife was originally going to print the text
-// from the C1TEXT lump when you move from map 9 to map 10, but
-// that idea apparently got scrapped as the game developed.
-
-map MAP10 "AREA 10: New Front Base"
-next MAP11
-sky1 SKYMNT01 0
-music D_MARCH
-cluster 1
-
-map MAP11 "AREA 11: Borderlands"
-next MAP12
-sky1 SKYMNT01 0
-music D_DANGER
-cluster 1
-
-map MAP12 "AREA 12: the temple of the oracle"
-next MAP13
-sky1 SKYMNT01 0
-music D_MOOD
-cluster 1
-
-map MAP13 "AREA 13: Catacombs"
-next MAP14
-sky1 SKYMNT01 0
-music D_CASTLE
-cluster 1
-
-map MAP14 "AREA 14: mines"
-next MAP15
-sky1 SKYMNT01 0
-music D_DARKER
-cluster 1
-
-map MAP15 "AREA 15: Fortress: Administration"
-next MAP16
-sky1 SKYMNT01 0
-music D_ACTION
-cluster 1
-
-map MAP16 "AREA 16: Fortress: Bishop's Tower"
-next MAP17
-sky1 SKYMNT01 0
-music D_FIGHT
-cluster 1
-
-map MAP17 "AREA 17: Fortress: The Bailey"
-next MAP18
-sky1 SKYMNT01 0
-music D_SPENSE
-cluster 1
-
-map MAP18 "AREA 18: Fortress: Stores"
-next MAP19
-sky1 SKYMNT01 0
-music D_SLIDE
-cluster 1
-
-map MAP19 "AREA 19: Fortress: Security Complex"
-next MAP20
-sky1 SKYMNT01 0
-music D_STRIKE
-cluster 1
-
-map MAP20 "AREA 20: Factory: Receiving"
-next MAP21
-sky1 SKYMNT01 0
-music D_DARK
-cluster 1
-
-map MAP21 "AREA 21: Factory: Manufacturing"
-next MAP22
-sky1 SKYMNT01 0
-music D_TECH
-cluster 1
-
-map MAP22 "AREA 22: Factory: Forge"
-next MAP23
-sky1 SKYMNT01 0
-music D_SLIDE
-cluster 1
-
-map MAP23 "AREA 23: Order Commons"
-next MAP24
-sky1 SKYMNT01 0
-music D_DRONE
-cluster 1
-
-map MAP24 "AREA 24: Factory: Conversion Chapel"
-next MAP25
-sky1 SKYMNT01 0
-music D_PANTHR
-cluster 1
-
-map MAP25 "AREA 25: Catacombs: Ruined Temple"
-next MAP26
-sky1 SKYMNT01 0
-music D_SAD
-cluster 1
-
-map MAP26 "AREA 26: proving grounds"
-next MAP27
-sky1 SKYMNT01 0
-music D_INSTRY
-cluster 1
-
-map MAP27 "AREA 27: The Lab"
-next MAP28
-sky1 SKYMNT01 0
-music D_TECH
-cluster 1
-
-map MAP28 "AREA 28: Alien Ship"
-next MAP29
-sky1 SKYMNT01 0
-music D_ACTION
-cluster 1
-
-map MAP29 "AREA 29: Entity's Lair"
-next EndGameS
-sky1 SKYMNT01 0
-music D_INSTRY
-cluster 1
-deathslideshow
-
-map MAP30 "AREA 30: Abandoned Front Base"
-next MAP31
-sky1 SKYMNT01 0
-music D_DRONE
-cluster 1
-
-map MAP31 "AREA 31: Training Facility"
-next MAP01
-sky1 SKYMNT01 0
-music D_FIGHT
-cluster 1
-
-
-map MAP32 "AREA 1: Sanctuary"
-next MAP33
-sky1 SKYMNT02 0
-music D_MAP1
-cluster 2
-
-map MAP33 "AREA 2: Town"
-next MAP34
-sky1 SKYMNT02 0
-music D_MAP2
-cluster 2
-
-map MAP34 "AREA 3: Movement Base"
-next EndBuyStrife
-sky1 SKYMNT02 0
-music D_MAP3
-cluster 2
-noallies
-
-
-clusterdef 1
-hub
-
-clusterdef 2
-hub
-exittext T1TEXT
-music d_fmfast
-pic PANEL7
-exittextislump
-
-clearepisodes
-episode MAP02 teaser MAP33
-name "Quest for the Sigil"
diff --git a/wadsrc/mapinfo/tnt.txt b/wadsrc/mapinfo/tnt.txt
deleted file mode 100644
index b826c0b4..00000000
--- a/wadsrc/mapinfo/tnt.txt
+++ /dev/null
@@ -1,365 +0,0 @@
-// MAPINFO for TNT. Exactly the same as Doom 2, except it
-// has different map names and cluster messages.
-
-clearepisodes
-episode map01
- name "TNT: Evilution"
- key t
-
-map MAP01 lookup THUSTR_1
-titlepatch CWILV00
-next MAP02
-secretnext MAP02
-sky1 SKY1 0
-cluster 5
-par 30
-sucktime 1
-music D_RUNNIN
-
-map MAP02 lookup THUSTR_2
-titlepatch CWILV01
-next MAP03
-secretnext MAP03
-sky1 SKY1 0
-cluster 5
-par 90
-sucktime 1
-music D_STALKS
-
-map MAP03 lookup THUSTR_3
-titlepatch CWILV02
-next MAP04
-secretnext MAP04
-sky1 SKY1 0
-cluster 5
-par 120
-sucktime 1
-music D_COUNTD
-
-map MAP04 lookup THUSTR_4
-titlepatch CWILV03
-next MAP05
-secretnext MAP05
-sky1 SKY1 0
-cluster 5
-par 120
-sucktime 1
-music D_BETWEE
-
-map MAP05 lookup THUSTR_5
-titlepatch CWILV04
-next MAP06
-secretnext MAP06
-sky1 SKY1 0
-cluster 5
-par 90
-sucktime 1
-music D_DOOM
-
-map MAP06 lookup THUSTR_6
-titlepatch CWILV05
-next MAP07
-secretnext MAP07
-sky1 SKY1 0
-cluster 5
-par 150
-sucktime 1
-music D_THE_DA
-
-map MAP07 lookup THUSTR_7
-titlepatch CWILV06
-next MAP08
-secretnext MAP08
-sky1 SKY1 0
-cluster 6
-par 120
-sucktime 1
-map07special
-music D_SHAWN
-
-map MAP08 lookup THUSTR_8
-titlepatch CWILV07
-next MAP09
-secretnext MAP09
-sky1 SKY1 0
-cluster 6
-par 120
-sucktime 1
-music D_DDTBLU
-
-map MAP09 lookup THUSTR_9
-titlepatch CWILV08
-next MAP10
-secretnext MAP10
-sky1 SKY1 0
-cluster 6
-par 270
-sucktime 1
-music D_IN_CIT
-
-map MAP10 lookup THUSTR_10
-titlepatch CWILV09
-next MAP11
-secretnext MAP11
-sky1 SKY1 0
-cluster 6
-par 90
-sucktime 1
-music D_DEAD
-
-map MAP11 lookup THUSTR_11
-titlepatch CWILV10
-next MAP12
-secretnext MAP12
-sky1 SKY1 0
-cluster 6
-par 210
-sucktime 1
-music D_STLKS2
-
-map MAP12 lookup THUSTR_12
-titlepatch CWILV11
-next MAP13
-secretnext MAP13
-sky1 SKY2 0
-cluster 7
-par 150
-sucktime 1
-music D_THEDA2
-
-map MAP13 lookup THUSTR_13
-titlepatch CWILV12
-next MAP14
-secretnext MAP14
-sky1 SKY2 0
-cluster 7
-par 150
-sucktime 1
-music D_DOOM2
-
-map MAP14 lookup THUSTR_14
-titlepatch CWILV13
-next MAP15
-secretnext MAP15
-sky1 SKY2 0
-cluster 7
-par 150
-sucktime 1
-music D_DDTBL2
-
-map MAP15 lookup THUSTR_15
-titlepatch CWILV14
-next MAP16
-secretnext MAP31
-sky1 SKY2 0
-cluster 7
-par 210
-sucktime 1
-music D_RUNNI2
-
-map MAP16 lookup THUSTR_16
-titlepatch CWILV15
-next MAP17
-secretnext MAP17
-sky1 SKY2 0
-cluster 7
-par 150
-sucktime 1
-music D_DEAD2
-
-map MAP17 lookup THUSTR_17
-titlepatch CWILV16
-next MAP18
-secretnext MAP18
-sky1 SKY2 0
-cluster 7
-par 420
-sucktime 1
-music D_STLKS3
-
-map MAP18 lookup THUSTR_18
-titlepatch CWILV17
-next MAP19
-secretnext MAP19
-sky1 SKY2 0
-cluster 7
-par 150
-sucktime 1
-music D_ROMERO
-
-map MAP19 lookup THUSTR_19
-titlepatch CWILV18
-next MAP20
-secretnext MAP20
-sky1 SKY2 0
-cluster 7
-par 210
-sucktime 1
-music D_SHAWN2
-
-map MAP20 lookup THUSTR_20
-titlepatch CWILV19
-next MAP21
-secretnext MAP21
-sky1 SKY2 0
-cluster 7
-par 150
-sucktime 1
-music D_MESSAG
-
-map MAP21 lookup THUSTR_21
-titlepatch CWILV20
-next MAP22
-secretnext MAP22
-sky1 SKY3 0
-cluster 8
-par 240
-sucktime 1
-music D_COUNT2
-
-map MAP22 lookup THUSTR_22
-titlepatch CWILV21
-next MAP23
-secretnext MAP23
-sky1 SKY3 0
-cluster 8
-par 150
-sucktime 1
-music D_DDTBL3
-
-map MAP23 lookup THUSTR_23
-titlepatch CWILV22
-next MAP24
-secretnext MAP24
-sky1 SKY3 0
-cluster 8
-par 180
-sucktime 1
-music D_AMPIE
-
-map MAP24 lookup THUSTR_24
-titlepatch CWILV23
-next MAP25
-secretnext MAP25
-sky1 SKY3 0
-cluster 8
-par 150
-sucktime 1
-music D_THEDA3
-
-map MAP25 lookup THUSTR_25
-titlepatch CWILV24
-next MAP26
-secretnext MAP26
-sky1 SKY3 0
-cluster 8
-par 150
-sucktime 1
-music D_ADRIAN
-
-map MAP26 lookup THUSTR_26
-titlepatch CWILV25
-next MAP27
-secretnext MAP27
-sky1 SKY3 0
-cluster 8
-par 300
-sucktime 1
-music D_MESSG2
-
-map MAP27 lookup THUSTR_27
-titlepatch CWILV26
-next MAP28
-secretnext MAP28
-sky1 SKY3 0
-cluster 8
-par 330
-sucktime 1
-music D_ROMER2
-
-map MAP28 lookup THUSTR_28
-titlepatch CWILV27
-next MAP29
-secretnext MAP29
-sky1 SKY3 0
-cluster 8
-par 420
-sucktime 1
-music D_TENSE
-
-map MAP29 lookup THUSTR_29
-titlepatch CWILV28
-next MAP30
-secretnext MAP30
-sky1 SKY3 0
-cluster 8
-par 300
-sucktime 1
-music D_SHAWN3
-
-map MAP30 lookup THUSTR_30
-titlepatch CWILV29
-next EndGameC
-secretnext EndGameC
-sky1 SKY3 0
-cluster 8
-par 180
-sucktime 1
-allowmonstertelefrags
-music D_OPENIN
-
-map MAP31 lookup THUSTR_31
-titlepatch CWILV30
-next MAP16
-secretnext MAP32
-sky1 SKY3 0
-cluster 9
-par 120
-sucktime 1
-music D_EVIL
-
-map MAP32 lookup THUSTR_32
-titlepatch CWILV31
-next MAP16
-secretnext MAP16
-sky1 SKY3 0
-cluster 10
-par 30
-sucktime 1
-music D_ULTIMA
-
-// DOOM II first cluster (up thru level 6)
-clusterdef 5
-flat SLIME16
-music D_READ_M
-exittext lookup T1TEXT
-
-// DOOM II second cluster (up thru level 11)
-clusterdef 6
-flat RROCK14
-music D_READ_M
-exittext lookup T2TEXT
-
-// DOOM II third cluster (up thru level 20)
-clusterdef 7
-flat RROCK07
-music D_READ_M
-exittext lookup T3TEXT
-
-// DOOM II fourth cluster (up thru level 30)
-clusterdef 8
-flat RROCK17
-music D_READ_M
-exittext lookup T4TEXT
-
-// DOOM II fifth cluster (level 31)
-clusterdef 9
-flat RROCK13
-music D_READ_M
-entertext lookup T5TEXT
-
-// DOOM II sixth cluster (level 32)
-clusterdef 10
-flat RROCK19
-music D_READ_M
-entertext lookup T6TEXT
diff --git a/wadsrc/noflat.png b/wadsrc/noflat.png
deleted file mode 100644
index 7147b07a..00000000
Binary files a/wadsrc/noflat.png and /dev/null differ
diff --git a/wadsrc/pista0.png b/wadsrc/pista0.png
deleted file mode 100644
index d7790c68..00000000
Binary files a/wadsrc/pista0.png and /dev/null differ
diff --git a/wadsrc/quake.flac b/wadsrc/quake.flac
deleted file mode 100644
index e59e2359..00000000
Binary files a/wadsrc/quake.flac and /dev/null differ
diff --git a/wadsrc/railgunfire.flac b/wadsrc/railgunfire.flac
deleted file mode 100644
index 3af1bdb4..00000000
Binary files a/wadsrc/railgunfire.flac and /dev/null differ
diff --git a/wadsrc/reverbs.txt b/wadsrc/reverbs.txt
deleted file mode 100644
index 33e07e0e..00000000
--- a/wadsrc/reverbs.txt
+++ /dev/null
@@ -1,1861 +0,0 @@
-"Castle Alcove" 30 0
-{
- Environment 20
- EnvironmentDiffusion 0.890
- RoomHF -600
- RoomLF -2000
- DecayTime 1.640
- DecayHFRatio 0.870
- DecayLFRatio 0.310
- Reflections -100
- ReflectionsDelay 0.007
- Reverb -500
- ReverbDelay 0.034
- EchoTime 0.138
- EchoDepth 0.080
- HFReference 5168.600
- LFReference 139.500
- bDecayHFLimit true
- bEchoTimeScale true
-}
-
-"Castle Courtyard" 30 1
-{
- Environment 20
- EnvironmentDiffusion 0.420
- Room -1100
- RoomHF -700
- RoomLF -900
- DecayTime 2.130
- DecayHFRatio 0.610
- DecayLFRatio 0.230
- Reflections -2300
- ReflectionsDelay 0.112
- Reverb -1500
- ReverbDelay 0.036
- EchoDepth 0.370
- AirAbsorptionHF 0.000
- bDecayHFLimit true
- bEchoTimeScale true
-}
-
-"Castle Cupboard" 30 2
-{
- Environment 20
- EnvironmentDiffusion 0.890
- RoomHF -1100
- RoomLF -2000
- DecayTime 0.670
- DecayHFRatio 0.870
- DecayLFRatio 0.310
- Reflections 300
- ReflectionsDelay 0.010
- Reverb 300
- ReverbDelay 0.007
- EchoTime 0.138
- EchoDepth 0.080
- HFReference 5168.600
- LFReference 139.500
- bDecayHFLimit true
- bEchoTimeScale true
-}
-
-"Castle Hall" 30 3
-{
- Environment 20
- EnvironmentDiffusion 0.810
- RoomHF -1100
- RoomLF -1500
- DecayTime 3.140
- DecayHFRatio 0.790
- DecayLFRatio 0.620
- Reflections -1300
- ReflectionsDelay 0.056
- Reverb -500
- ReverbDelay 0.024
- HFReference 5168.600
- LFReference 139.500
- bDecayHFLimit true
- bEchoTimeScale true
-}
-
-"Castle Large Room" 30 4
-{
- Environment 20
- EnvironmentDiffusion 0.820
- RoomHF -1100
- RoomLF -1800
- DecayTime 2.530
- DecayHFRatio 0.830
- DecayLFRatio 0.500
- Reflections -900
- ReflectionsDelay 0.034
- Reverb -400
- ReverbDelay 0.016
- EchoTime 0.185
- EchoDepth 0.070
- HFReference 5168.600
- LFReference 139.500
- bDecayHFLimit true
- bEchoTimeScale true
-}
-
-"Castle Long Passage" 30 5
-{
- Environment 20
- EnvironmentDiffusion 0.890
- RoomHF -800
- RoomLF -2000
- DecayTime 3.420
- DecayHFRatio 0.830
- DecayLFRatio 0.310
- Reflections -200
- ReflectionsDelay 0.007
- Reverb -600
- ReverbDelay 0.023
- EchoTime 0.138
- EchoDepth 0.080
- HFReference 5168.600
- LFReference 139.500
- bDecayHFLimit true
- bEchoTimeScale true
-}
-
-"Castle Medium Room" 30 6
-{
- Environment 20
- EnvironmentDiffusion 0.930
- RoomHF -1100
- RoomLF -2000
- DecayTime 2.040
- DecayHFRatio 0.830
- DecayLFRatio 0.460
- Reflections -300
- ReflectionsDelay 0.022
- Reverb -200
- ReverbDelay 0.011
- EchoTime 0.155
- EchoDepth 0.030
- HFReference 5168.600
- LFReference 139.500
- bDecayHFLimit true
- bEchoTimeScale true
-}
-
-"Castle Short Passage" 30 7
-{
- Environment 20
- EnvironmentDiffusion 0.890
- RoomHF -1000
- RoomLF -2000
- DecayTime 2.320
- DecayHFRatio 0.830
- DecayLFRatio 0.310
- Reflections -100
- ReflectionsDelay 0.007
- Reverb -500
- ReverbDelay 0.023
- EchoTime 0.138
- EchoDepth 0.080
- HFReference 5168.600
- LFReference 139.500
- bDecayHFLimit true
- bEchoTimeScale true
-}
-
-"Castle Small Room" 30 8
-{
- Environment 20
- EnvironmentDiffusion 0.890
- Room -1100
- RoomHF -800
- RoomLF -2000
- DecayTime 1.220
- DecayHFRatio 0.830
- DecayLFRatio 0.310
- Reflections -100
- ReflectionsDelay 0.022
- Reverb 0
- ReverbDelay 0.011
- EchoTime 0.138
- EchoDepth 0.080
- HFReference 5168.600
- LFReference 139.500
- bDecayHFLimit true
- bEchoTimeScale true
-}
-
-"Chapel" 31 0
-{
- Environment 7
- EnvironmentDiffusion 0.840
- DecayTime 4.620
- DecayHFRatio 0.640
- DecayLFRatio 1.230
- Reflections -700
- ReflectionsDelay 0.032
- Reverb -800
- ReverbDelay 0.049
- ModulationDepth 0.110
- bEchoTimeScale true
-}
-
-"City Abandoned" 32 0
-{
- Environment 16
- EnvironmentSize 3.000
- EnvironmentDiffusion 0.690
- Room -1100
- RoomHF -200
- RoomLF -100
- DecayTime 3.280
- DecayHFRatio 1.170
- DecayLFRatio 0.910
- Reflections -1400
- ReflectionsDelay 0.044
- Reverb -2400
- ReverbDelay 0.024
- EchoDepth 0.200
- bEchoTimeScale true
-}
-
-"City Library" 32 1
-{
- Environment 16
- EnvironmentSize 80.300
- EnvironmentDiffusion 0.820
- Room -1100
- RoomHF -1100
- RoomLF -2100
- DecayTime 2.760
- DecayHFRatio 0.890
- DecayLFRatio 0.410
- Reflections -1100
- ReflectionsDelay 0.029
- Reverb -500
- ReverbDelay 0.020
- EchoTime 0.130
- EchoDepth 0.170
- HFReference 2854.400
- LFReference 107.500
- bEchoTimeScale true
-}
-
-"City Museum" 32 2
-{
- Environment 16
- EnvironmentSize 80.300
- EnvironmentDiffusion 0.820
- Room -1100
- RoomHF -1500
- RoomLF -1500
- DecayTime 3.280
- DecayHFRatio 1.400
- DecayLFRatio 0.570
- Reflections -1600
- ReflectionsDelay 0.039
- Reverb -600
- ReverbDelay 0.034
- EchoTime 0.130
- EchoDepth 0.170
- AirAbsorptionHF 0.000
- HFReference 2854.400
- LFReference 107.500
- bEchoTimeScale true
-}
-
-"City Streets" 32 3
-{
- Environment 16
- EnvironmentSize 3.000
- EnvironmentDiffusion 0.780
- Room -1100
- RoomHF -300
- RoomLF -100
- DecayTime 1.790
- DecayHFRatio 1.120
- DecayLFRatio 0.910
- Reflections -1700
- ReflectionsDelay 0.046
- Reverb -2800
- ReverbDelay 0.028
- EchoDepth 0.200
- AirAbsorptionHF 0.000
- bEchoTimeScale true
-}
-
-"City Subway" 32 4
-{
- Environment 16
- EnvironmentSize 3.000
- EnvironmentDiffusion 0.740
- Room -1100
- RoomHF -300
- RoomLF -100
- DecayTime 3.010
- DecayHFRatio 1.230
- DecayLFRatio 0.910
- Reflections -700
- ReflectionsDelay 0.046
- Reverb -1000
- ReverbDelay 0.028
- EchoTime 0.125
- EchoDepth 0.210
- AirAbsorptionHF 0.000
- bEchoTimeScale true
-}
-
-"City Underpass" 32 5
-{
- Environment 16
- EnvironmentSize 3.000
- EnvironmentDiffusion 0.820
- Room -1500
- RoomHF -700
- RoomLF -100
- DecayTime 3.570
- DecayHFRatio 1.120
- DecayLFRatio 0.910
- Reflections -1500
- ReflectionsDelay 0.059
- Reverb -1100
- ReverbDelay 0.037
- EchoDepth 0.140
- AirAbsorptionHF 0.000
- bEchoTimeScale true
-}
-
-"Dome Saint Paul" 33 0
-{
- Environment 0
- EnvironmentSize 50.300
- EnvironmentDiffusion 0.870
- Room -1000
- RoomHF -900
- RoomLF -1300
- DecayTime 10.480
- DecayHFRatio 0.190
- DecayLFRatio 0.100
- Reflections -1500
- ReflectionsDelay 0.090
- Reverb -500
- ReverbDelay 0.042
- EchoDepth 0.120
- HFReference 2854.400
- LFReference 20.000
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Dome Tomb" 33 1
-{
- Environment 0
- EnvironmentSize 51.800
- EnvironmentDiffusion 0.790
- Room -1000
- RoomHF -900
- RoomLF -1300
- DecayTime 4.180
- DecayHFRatio 0.210
- DecayLFRatio 0.100
- Reflections -825
- ReflectionsDelay 0.030
- Reverb -125
- ReverbDelay 0.022
- EchoTime 0.177
- EchoDepth 0.190
- HFReference 2854.400
- LFReference 20.000
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Driving Commentator" 34 0
-{
- Environment 0
- EnvironmentSize 3.000
- Room -900
- RoomHF -500
- RoomLF -600
- DecayTime 2.420
- DecayHFRatio 0.880
- DecayLFRatio 0.680
- Reflections -1400
- ReflectionsDelay 0.093
- Reverb -1200
- ReverbDelay 0.017
- EchoDepth 1.000
- AirAbsorptionHF 0.000
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Driving Empty Grandstand" 34 1
-{
- Environment 0
- EnvironmentSize 8.300
- Room -700
- RoomHF 0
- RoomLF -200
- DecayTime 4.620
- DecayHFRatio 1.750
- DecayLFRatio 1.400
- Reflections -1363
- ReflectionsDelay 0.090
- Reverb -1900
- ReverbDelay 0.049
- HFReference 10420.200
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Driving Full Grandstand" 34 2
-{
- Environment 0
- EnvironmentSize 8.300
- Room -1100
- RoomHF -1100
- RoomLF -400
- DecayTime 3.010
- DecayHFRatio 1.370
- DecayLFRatio 1.280
- Reflections -900
- ReflectionsDelay 0.090
- Reverb -1700
- ReverbDelay 0.049
- HFReference 10420.200
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Driving In-Car Luxury" 34 3
-{
- Environment 0
- EnvironmentSize 1.600
- Room -800
- RoomHF -2000
- RoomLF -600
- DecayTime 0.130
- DecayHFRatio 0.410
- DecayLFRatio 0.460
- Reflections -200
- ReflectionsDelay 0.010
- Reverb 300
- ReverbDelay 0.010
- AirAbsorptionHF 0.000
- HFReference 10268.200
- LFReference 251.000
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Driving In-Car Pit Garage" 34 6
-{
- Environment 0
- EnvironmentSize 1.900
- EnvironmentDiffusion 0.590
- Room -1400
- RoomHF -300
- RoomLF -500
- DecayTime 1.720
- DecayHFRatio 0.930
- DecayLFRatio 0.870
- Reflections -500
- ReflectionsDelay 0.000
- Reverb 0
- ReverbDelay 0.016
- EchoDepth 0.110
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Driving In-Car Racer" 34 4
-{
- Environment 0
- EnvironmentSize 1.100
- EnvironmentDiffusion 0.800
- Room -700
- RoomHF 0
- RoomLF -200
- DecayTime 0.170
- DecayHFRatio 2.000
- DecayLFRatio 0.410
- Reflections 500
- Reverb -500
- ReverbDelay 0.015
- AirAbsorptionHF 0.000
- HFReference 10268.200
- LFReference 251.000
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Driving In-Car Sports" 34 5
-{
- Environment 0
- EnvironmentSize 1.100
- EnvironmentDiffusion 0.800
- Room -900
- RoomHF -400
- DecayTime 0.170
- DecayHFRatio 0.750
- DecayLFRatio 0.410
- Reflections 500
- Reverb -600
- ReverbDelay 0.000
- AirAbsorptionHF 0.000
- HFReference 10268.200
- LFReference 251.000
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Driving Tunnel" 34 7
-{
- Environment 0
- EnvironmentSize 3.100
- EnvironmentDiffusion 0.810
- Room -900
- RoomHF -800
- RoomLF -100
- DecayTime 3.420
- DecayHFRatio 0.940
- DecayLFRatio 1.310
- Reflections -300
- ReflectionsDelay 0.051
- Reverb -500
- ReverbDelay 0.047
- EchoTime 0.214
- EchoDepth 0.050
- AirAbsorptionHF 0.000
- LFReference 155.300
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Dusty Room" 35 0
-{
- Environment 2
- EnvironmentSize 1.800
- EnvironmentDiffusion 0.560
- Room -1100
- RoomHF -200
- RoomLF -300
- DecayTime 1.790
- DecayHFRatio 0.380
- DecayLFRatio 0.210
- Reflections -600
- Reverb 200
- ReverbDelay 0.006
- EchoTime 0.202
- EchoDepth 0.050
- AirAbsorptionHF -3.000
- HFReference 13046.000
- LFReference 163.300
- bEchoTimeScale true
-}
-
-"Factory Alcove" 36 0
-{
- Environment 2
- EnvironmentSize 1.800
- EnvironmentDiffusion 0.590
- Room -1200
- RoomHF -200
- RoomLF -600
- DecayTime 3.140
- DecayHFRatio 0.650
- DecayLFRatio 1.310
- Reflections 300
- ReflectionsDelay 0.010
- Reverb -1200
- ReverbDelay 0.038
- EchoTime 0.114
- EchoDepth 0.100
- AirAbsorptionHF 0.000
- HFReference 3762.600
- LFReference 362.500
- bEchoTimeScale true
-}
-
-"Factory Courtyard" 36 1
-{
- Environment 2
- EnvironmentSize 1.700
- EnvironmentDiffusion 0.570
- RoomHF -1000
- RoomLF -400
- DecayTime 2.320
- DecayHFRatio 0.290
- DecayLFRatio 0.560
- Reflections -2400
- ReflectionsDelay 0.090
- Reverb -2000
- ReverbDelay 0.039
- EchoDepth 0.290
- AirAbsorptionHF 0.000
- HFReference 3762.600
- LFReference 362.500
- bEchoTimeScale true
-}
-
-"Factory Cupboard" 36 2
-{
- Environment 2
- EnvironmentSize 1.700
- EnvironmentDiffusion 0.630
- Room -1200
- RoomHF -200
- RoomLF -600
- DecayTime 0.490
- DecayHFRatio 0.650
- DecayLFRatio 1.310
- Reflections 200
- ReflectionsDelay 0.010
- Reverb 200
- ReverbDelay 0.032
- EchoTime 0.107
- EchoDepth 0.070
- AirAbsorptionHF 0.000
- HFReference 3762.600
- LFReference 362.500
- bEchoTimeScale true
-}
-
-"Factory Hall" 36 3
-{
- Environment 2
- EnvironmentDiffusion 0.750
- RoomHF -300
- RoomLF -400
- DecayTime 7.430
- DecayHFRatio 0.510
- DecayLFRatio 1.310
- Reflections -2400
- ReflectionsDelay 0.073
- Reverb -500
- ReverbDelay 0.027
- EchoDepth 0.070
- AirAbsorptionHF 0.000
- HFReference 3762.600
- LFReference 362.500
- bEchoTimeScale true
-}
-
-"Factory Large Room" 36 4
-{
- Environment 2
- EnvironmentDiffusion 0.750
- Room -1200
- RoomHF -300
- RoomLF -400
- DecayTime 4.420
- DecayHFRatio 0.510
- DecayLFRatio 1.310
- Reflections -1500
- ReflectionsDelay 0.039
- Reverb -600
- ReverbDelay 0.023
- EchoTime 0.231
- EchoDepth 0.070
- AirAbsorptionHF 0.000
- HFReference 3762.600
- LFReference 362.500
- bEchoTimeScale true
-}
-
-"Factory Long Passage" 36 5
-{
- Environment 2
- EnvironmentSize 1.800
- EnvironmentDiffusion 0.640
- Room -1200
- RoomHF -200
- RoomLF -600
- DecayTime 4.059
- DecayHFRatio 0.650
- DecayLFRatio 1.310
- Reflections 0
- ReflectionsDelay 0.020
- Reverb -900
- ReverbDelay 0.037
- EchoTime 0.135
- EchoDepth 0.230
- AirAbsorptionHF 0.000
- HFReference 3762.600
- LFReference 362.500
- bEchoTimeScale true
-}
-
-"Factory Medium Room" 36 6
-{
- Environment 2
- EnvironmentDiffusion 0.820
- Room -1200
- RoomHF -200
- RoomLF -600
- DecayTime 2.760
- DecayHFRatio 0.650
- DecayLFRatio 1.310
- Reflections 0
- ReflectionsDelay 0.022
- Reverb -400
- ReverbDelay 0.023
- EchoTime 0.174
- EchoDepth 0.070
- AirAbsorptionHF 0.000
- HFReference 3762.600
- LFReference 362.500
- bEchoTimeScale true
-}
-
-"Factory Short Passage" 36 7
-{
- Environment 2
- EnvironmentSize 1.800
- EnvironmentDiffusion 0.640
- Room -1200
- RoomHF -200
- RoomLF -600
- DecayTime 2.530
- DecayHFRatio 0.650
- DecayLFRatio 1.310
- Reflections 0
- ReflectionsDelay 0.010
- Reverb -600
- ReverbDelay 0.038
- EchoTime 0.135
- EchoDepth 0.230
- AirAbsorptionHF 0.000
- HFReference 3762.600
- LFReference 362.500
- bEchoTimeScale true
-}
-
-"Factory Small Room" 36 8
-{
- Environment 2
- EnvironmentSize 1.800
- EnvironmentDiffusion 0.820
- Room -1200
- RoomHF -200
- RoomLF -600
- DecayTime 1.720
- DecayHFRatio 0.650
- DecayLFRatio 1.310
- Reflections -300
- ReflectionsDelay 0.010
- Reverb -200
- ReverbDelay 0.024
- EchoTime 0.119
- EchoDepth 0.070
- AirAbsorptionHF 0.000
- HFReference 3762.600
- LFReference 362.500
- bEchoTimeScale true
-}
-
-"Ice Palace Alcove" 37 0
-{
- Environment 21
- EnvironmentSize 2.700
- EnvironmentDiffusion 0.840
- RoomHF -500
- RoomLF -1100
- DecayTime 2.760
- DecayHFRatio 1.460
- DecayLFRatio 0.280
- Reflections 100
- ReflectionsDelay 0.010
- Reverb -1200
- ReverbDelay 0.030
- EchoTime 0.161
- EchoDepth 0.090
- AirAbsorptionHF 0.000
- HFReference 12428.500
- LFReference 99.600
- bEchoTimeScale true
-}
-
-"Ice Palace Courtyard" 37 1
-{
- Environment 21
- EnvironmentSize 2.900
- EnvironmentDiffusion 0.590
- RoomHF -1100
- RoomLF -1000
- DecayTime 2.040
- DecayHFRatio 1.200
- DecayLFRatio 0.380
- Reflections -2000
- ReflectionsDelay 0.073
- Reverb -2200
- ReverbDelay 0.043
- EchoTime 0.235
- EchoDepth 0.480
- AirAbsorptionHF 0.000
- HFReference 12428.500
- LFReference 99.600
- bEchoTimeScale true
-}
-
-"Ice Palace Cupboard" 37 2
-{
- Environment 21
- EnvironmentSize 2.700
- EnvironmentDiffusion 0.830
- RoomHF -600
- RoomLF -1300
- DecayTime 0.760
- DecayHFRatio 1.530
- DecayLFRatio 0.260
- Reflections 100
- ReflectionsDelay 0.012
- Reverb 100
- ReverbDelay 0.016
- EchoTime 0.143
- EchoDepth 0.080
- AirAbsorptionHF 0.000
- HFReference 12428.500
- LFReference 99.600
- bEchoTimeScale true
-}
-
-"Ice Palace Hall" 37 3
-{
- Environment 21
- EnvironmentSize 2.900
- EnvironmentDiffusion 0.760
- RoomHF -700
- RoomLF -500
- DecayTime 5.490
- DecayHFRatio 1.530
- DecayLFRatio 0.380
- Reflections -1900
- ReflectionsDelay 0.054
- Reverb -1400
- ReverbDelay 0.052
- EchoTime 0.226
- EchoDepth 0.110
- AirAbsorptionHF 0.000
- HFReference 12428.500
- LFReference 99.600
- bEchoTimeScale true
-}
-
-"Ice Palace Large Room" 37 4
-{
- Environment 21
- EnvironmentSize 2.900
- EnvironmentDiffusion 0.810
- RoomHF -500
- RoomLF -700
- DecayTime 3.140
- DecayHFRatio 1.530
- DecayLFRatio 0.320
- Reflections -1200
- ReflectionsDelay 0.039
- Reverb -1300
- ReverbDelay 0.027
- EchoTime 0.214
- EchoDepth 0.110
- AirAbsorptionHF 0.000
- HFReference 12428.500
- LFReference 99.600
- bEchoTimeScale true
-}
-
-"Ice Palace Long Passage" 37 5
-{
- Environment 21
- EnvironmentSize 2.700
- EnvironmentDiffusion 0.770
- RoomHF -500
- RoomLF -800
- DecayTime 3.010
- DecayHFRatio 1.460
- DecayLFRatio 0.280
- Reflections -200
- ReflectionsDelay 0.012
- Reverb -800
- ReverbDelay 0.025
- EchoTime 0.186
- EchoDepth 0.040
- AirAbsorptionHF 0.000
- HFReference 12428.500
- LFReference 99.600
- bEchoTimeScale true
-}
-
-"Ice Palace Medium Room" 37 6
-{
- Environment 21
- EnvironmentSize 2.700
- EnvironmentDiffusion 0.870
- RoomHF -500
- RoomLF -700
- DecayTime 2.220
- DecayHFRatio 1.530
- DecayLFRatio 0.320
- Reflections -800
- ReflectionsDelay 0.039
- Reverb -1200
- ReverbDelay 0.027
- EchoTime 0.186
- EchoDepth 0.120
- AirAbsorptionHF 0.000
- HFReference 12428.500
- LFReference 99.600
- bEchoTimeScale true
-}
-
-"Ice Palace Short Passage" 37 7
-{
- Environment 21
- EnvironmentSize 2.700
- EnvironmentDiffusion 0.750
- RoomHF -500
- RoomLF -1100
- DecayTime 1.790
- DecayHFRatio 1.460
- DecayLFRatio 0.280
- Reflections -600
- ReflectionsDelay 0.010
- Reverb -700
- ReverbDelay 0.019
- EchoTime 0.177
- EchoDepth 0.090
- AirAbsorptionHF 0.000
- HFReference 12428.500
- LFReference 99.600
- bEchoTimeScale true
-}
-
-"Ice Palace Small Room" 37 8
-{
- Environment 21
- EnvironmentSize 2.700
- EnvironmentDiffusion 0.840
- RoomHF -500
- RoomLF -1100
- DecayTime 1.510
- DecayHFRatio 1.530
- DecayLFRatio 0.270
- Reflections -100
- ReflectionsDelay 0.010
- Reverb -900
- ReverbDelay 0.011
- EchoTime 0.164
- EchoDepth 0.140
- AirAbsorptionHF 0.000
- HFReference 12428.500
- LFReference 99.600
- bEchoTimeScale true
-}
-
-"Mood Heaven" 38 0
-{
- Environment 0
- EnvironmentSize 19.600
- EnvironmentDiffusion 0.940
- Room -1000
- RoomHF -200
- RoomLF -700
- DecayTime 5.040
- DecayHFRatio 1.120
- DecayLFRatio 0.560
- Reflections -1230
- ReflectionsDelay 0.020
- Reverb -200
- ReverbDelay 0.029
- EchoDepth 0.080
- ModulationTime 2.742
- ModulationDepth 0.050
- AirAbsorptionHF -2.000
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Mood Hell" 38 1
-{
- Environment 0
- EnvironmentSize 100.000
- EnvironmentDiffusion 0.570
- Room -1000
- RoomHF -900
- RoomLF -700
- DecayTime 3.570
- DecayHFRatio 0.490
- DecayLFRatio 2.000
- Reflections -10000
- ReflectionsDelay 0.020
- Reverb 100
- ReverbDelay 0.030
- EchoTime 0.110
- EchoDepth 0.040
- ModulationTime 2.109
- ModulationDepth 0.520
- LFReference 139.500
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Mood Memory" 38 2
-{
- Environment 0
- EnvironmentSize 8.000
- EnvironmentDiffusion 0.850
- Room -1000
- RoomHF -400
- RoomLF -900
- DecayTime 4.059
- DecayHFRatio 0.820
- DecayLFRatio 0.560
- Reflections -2800
- ReflectionsDelay 0.000
- Reverb -500
- ReverbDelay 0.000
- ModulationTime 0.474
- ModulationDepth 0.450
- AirAbsorptionHF -2.000
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Outdoors Backyard" 39 0
-{
- Environment 0
- EnvironmentSize 80.300
- EnvironmentDiffusion 0.450
- Room -1100
- RoomHF -1200
- RoomLF -600
- DecayTime 1.120
- DecayHFRatio 0.340
- DecayLFRatio 0.460
- Reflections -1100
- ReflectionsDelay 0.049
- Reverb -1300
- ReverbDelay 0.023
- EchoTime 0.218
- EchoDepth 0.340
- HFReference 4399.100
- LFReference 242.900
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Outdoors Creek" 39 1
-{
- Environment 0
- EnvironmentSize 80.300
- EnvironmentDiffusion 0.350
- Room -1100
- RoomHF -1500
- RoomLF -600
- DecayTime 2.130
- DecayHFRatio 0.210
- DecayLFRatio 0.460
- Reflections -1700
- ReflectionsDelay 0.115
- Reverb -1100
- ReverbDelay 0.031
- EchoTime 0.218
- EchoDepth 0.340
- HFReference 4399.100
- LFReference 242.900
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Outdoors Deep Canyon" 39 2
-{
- Environment 0
- EnvironmentSize 80.300
- EnvironmentDiffusion 0.740
- Room -1100
- RoomHF -1500
- RoomLF -400
- DecayTime 3.890
- DecayHFRatio 0.210
- DecayLFRatio 0.460
- Reflections -2000
- ReflectionsDelay 0.193
- Reverb -1100
- ReverbDelay 0.019
- EchoDepth 1.000
- HFReference 4399.100
- LFReference 242.900
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Outdoors Rolling Plains" 39 3
-{
- Environment 0
- EnvironmentSize 80.300
- EnvironmentDiffusion 0.740
- Room -1100
- RoomHF -3900
- RoomLF -400
- DecayTime 2.130
- DecayHFRatio 0.210
- DecayLFRatio 0.460
- Reflections -2000
- ReflectionsDelay 0.300
- Reverb -1500
- ReverbDelay 0.019
- EchoDepth 1.000
- HFReference 4399.100
- LFReference 242.900
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Outdoors Valley" 39 4
-{
- Environment 0
- EnvironmentSize 80.300
- EnvironmentDiffusion 0.280
- Room -1100
- RoomHF -3100
- RoomLF -1600
- DecayTime 2.880
- DecayHFRatio 0.260
- DecayLFRatio 0.350
- Reflections -3200
- ReflectionsDelay 0.163
- Reverb -1000
- ReverbDelay 0.100
- EchoDepth 0.340
- AirAbsorptionHF 0.000
- HFReference 2854.400
- LFReference 107.500
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Pipe Large" 40 0
-{
- Environment 21
- EnvironmentSize 50.300
- EnvironmentDiffusion 1.000
- RoomHF -900
- RoomLF -1300
- DecayTime 8.450
- DecayHFRatio 0.100
- DecayLFRatio 0.100
- Reflections -800
- ReflectionsDelay 0.046
- Reverb 0
- ReverbDelay 0.032
- HFReference 2854.400
- LFReference 20.000
- bEchoTimeScale true
-}
-
-"Pipe Long Thin" 40 1
-{
- Environment 21
- EnvironmentSize 1.600
- EnvironmentDiffusion 0.910
- Room -1200
- RoomHF -700
- RoomLF -1100
- DecayTime 9.210
- DecayHFRatio 0.180
- DecayLFRatio 0.100
- Reflections -300
- ReflectionsDelay 0.010
- Reverb -1000
- ReverbDelay 0.022
- HFReference 2854.400
- LFReference 20.000
- bEchoTimeScale true
-}
-
-"Pipe Resonant" 40 2
-{
- Environment 21
- EnvironmentSize 1.300
- EnvironmentDiffusion 0.910
- Room -1200
- RoomHF -700
- RoomLF -1100
- DecayTime 6.810
- DecayHFRatio 0.180
- DecayLFRatio 0.100
- Reflections -300
- ReflectionsDelay 0.010
- Reverb -700
- ReverbDelay 0.022
- HFReference 2854.400
- LFReference 20.000
- bEchoTimeScale true
-}
-
-"Pipe Small" 40 3
-{
- Environment 21
- EnvironmentSize 50.300
- EnvironmentDiffusion 1.000
- RoomHF -900
- RoomLF -1300
- DecayTime 5.040
- DecayHFRatio 0.100
- DecayLFRatio 0.100
- Reflections -600
- ReflectionsDelay 0.032
- Reverb 400
- ReverbDelay 0.015
- HFReference 2854.400
- LFReference 20.000
- bEchoTimeScale true
-}
-
-"Prefab Caravan" 41 0
-{
- Environment 0
- EnvironmentSize 8.300
- Room -1000
- RoomHF -2100
- RoomLF -1800
- DecayTime 0.430
- DecayHFRatio 1.500
- Reflections 0
- ReflectionsDelay 0.012
- Reverb 400
- ReverbDelay 0.012
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Prefab Outhouse" 41 1
-{
- Environment 0
- EnvironmentSize 80.300
- EnvironmentDiffusion 0.820
- Room -1100
- RoomHF -1900
- RoomLF -1600
- DecayTime 1.380
- DecayHFRatio 0.380
- DecayLFRatio 0.350
- Reflections -100
- ReflectionsDelay 0.024
- Reverb -800
- ReverbDelay 0.044
- EchoTime 0.121
- EchoDepth 0.170
- AirAbsorptionHF 0.000
- HFReference 2854.400
- LFReference 107.500
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Prefab Practise Room" 41 2
-{
- Environment 0
- EnvironmentSize 1.860
- EnvironmentDiffusion 0.870
- Room -1000
- RoomHF -800
- RoomLF -600
- DecayTime 1.120
- DecayHFRatio 0.560
- DecayLFRatio 0.180
- Reflections 200
- ReflectionsDelay 0.010
- Reverb -200
- EchoTime 0.095
- EchoDepth 0.140
- AirAbsorptionHF 0.000
- HFReference 7176.900
- LFReference 211.200
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Prefab School Room" 41 3
-{
- Environment 0
- EnvironmentSize 1.860
- EnvironmentDiffusion 0.690
- Room -1100
- RoomHF -400
- RoomLF -600
- DecayTime 0.980
- DecayHFRatio 0.450
- DecayLFRatio 0.180
- Reflections 300
- ReflectionsDelay 0.017
- Reverb 0
- ReverbDelay 0.015
- EchoTime 0.095
- EchoDepth 0.140
- AirAbsorptionHF 0.000
- HFReference 7176.900
- LFReference 211.200
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Prefab Workshop" 41 4
-{
- Environment 0
- EnvironmentSize 1.900
- Room -1000
- RoomHF -1700
- RoomLF -800
- DecayTime 0.760
- Reflections 0
- ReflectionsDelay 0.012
- Reverb -200
- ReverbDelay 0.012
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Small Water Room" 42 0
-{
- Environment 2
- EnvironmentSize 36.200
- EnvironmentDiffusion 0.700
- Room -1200
- RoomHF -698
- DecayTime 1.510
- DecayHFRatio 1.250
- DecayLFRatio 1.140
- Reflections -100
- ReflectionsDelay 0.020
- Reverb 200
- ReverbDelay 0.030
- EchoTime 0.179
- EchoDepth 0.150
- ModulationTime 0.895
- ModulationDepth 0.190
- bEchoTimeScale true
-}
-
-"Spacestation Alcove" 43 0
-{
- Environment 0
- EnvironmentSize 1.500
- EnvironmentDiffusion 0.780
- Room -1100
- RoomHF -300
- RoomLF -100
- DecayTime 1.160
- DecayHFRatio 0.810
- DecayLFRatio 0.550
- Reflections 300
- Reverb -500
- ReverbDelay 0.018
- EchoTime 0.192
- EchoDepth 0.210
- HFReference 3316.100
- LFReference 458.200
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Spacestation Cupboard" 43 1
-{
- Environment 0
- EnvironmentSize 1.400
- EnvironmentDiffusion 0.560
- Room -1000
- RoomHF -300
- RoomLF -100
- DecayTime 0.790
- DecayHFRatio 0.810
- DecayLFRatio 0.550
- Reflections 200
- Reverb 400
- ReverbDelay 0.018
- EchoTime 0.181
- EchoDepth 0.310
- HFReference 3316.100
- LFReference 458.200
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Spacestation Hall" 43 2
-{
- Environment 0
- EnvironmentSize 1.900
- EnvironmentDiffusion 0.870
- Room -1000
- RoomHF -400
- RoomLF -100
- DecayTime 7.110
- DecayHFRatio 0.380
- DecayLFRatio 0.610
- Reflections -1500
- ReflectionsDelay 0.100
- Reverb -1000
- ReverbDelay 0.047
- EchoDepth 0.250
- HFReference 3316.100
- LFReference 458.200
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Spacestation Large Room" 43 3
-{
- Environment 0
- EnvironmentSize 1.800
- EnvironmentDiffusion 0.810
- Room -1000
- RoomHF -400
- RoomLF -100
- DecayTime 3.890
- DecayHFRatio 0.380
- DecayLFRatio 0.610
- Reflections -1200
- ReflectionsDelay 0.056
- Reverb -800
- ReverbDelay 0.035
- EchoTime 0.233
- EchoDepth 0.280
- HFReference 3316.100
- LFReference 458.200
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Spacestation Long Passage" 43 4
-{
- Environment 0
- EnvironmentSize 1.900
- EnvironmentDiffusion 0.820
- Room -1000
- RoomHF -400
- RoomLF -100
- DecayTime 4.620
- DecayHFRatio 0.620
- DecayLFRatio 0.550
- Reflections 0
- ReflectionsDelay 0.012
- Reverb -800
- ReverbDelay 0.031
- EchoDepth 0.230
- HFReference 3316.100
- LFReference 458.200
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Spacestation Medium Room" 43 5
-{
- Environment 0
- EnvironmentSize 1.500
- EnvironmentDiffusion 0.750
- Room -1000
- RoomHF -400
- RoomLF -100
- DecayTime 3.010
- DecayHFRatio 0.500
- DecayLFRatio 0.550
- Reflections -1000
- ReflectionsDelay 0.034
- Reverb -700
- ReverbDelay 0.035
- EchoTime 0.209
- EchoDepth 0.310
- HFReference 3316.100
- LFReference 458.200
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Spacestation Short Passage" 43 6
-{
- Environment 0
- EnvironmentSize 1.500
- EnvironmentDiffusion 0.870
- Room -1000
- RoomHF -400
- RoomLF -100
- DecayTime 3.570
- DecayHFRatio 0.500
- DecayLFRatio 0.550
- Reflections -1000
- ReflectionsDelay 0.012
- Reverb -600
- ReverbDelay 0.016
- EchoTime 0.172
- EchoDepth 0.200
- HFReference 3316.100
- LFReference 458.200
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Spacestation Small Room" 43 7
-{
- Environment 0
- EnvironmentSize 1.500
- EnvironmentDiffusion 0.700
- Room -1000
- RoomHF -300
- RoomLF -100
- DecayTime 1.720
- DecayHFRatio 0.820
- DecayLFRatio 0.550
- Reflections -400
- Reverb -500
- ReverbDelay 0.013
- EchoTime 0.188
- EchoDepth 0.260
- HFReference 3316.100
- LFReference 458.200
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Sport Empty Stadium" 44 0
-{
- Environment 0
- EnvironmentSize 7.200
- Room -1300
- RoomHF -700
- RoomLF -200
- DecayTime 6.260
- DecayHFRatio 0.510
- DecayLFRatio 1.100
- Reflections -2400
- ReflectionsDelay 0.183
- Reverb -1100
- ReverbDelay 0.038
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Sport Full Stadium" 44 1
-{
- Environment 0
- EnvironmentSize 7.200
- Room -1300
- RoomHF -2300
- RoomLF -200
- DecayTime 5.250
- DecayHFRatio 0.170
- DecayLFRatio 0.800
- Reflections -2000
- ReflectionsDelay 0.188
- Reverb -1300
- ReverbDelay 0.038
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Sport Gymnasium" 44 2
-{
- Environment 0
- EnvironmentDiffusion 0.810
- Room -1200
- RoomHF -700
- RoomLF -100
- DecayTime 3.140
- DecayHFRatio 1.060
- DecayLFRatio 1.350
- Reflections -800
- ReflectionsDelay 0.029
- Reverb -700
- ReverbDelay 0.045
- EchoTime 0.146
- EchoDepth 0.140
- AirAbsorptionHF 0.000
- HFReference 7176.900
- LFReference 211.200
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Sport Small Swimming Pool" 44 3
-{
- Environment 0
- EnvironmentSize 36.200
- EnvironmentDiffusion 0.700
- Room -1400
- RoomHF -200
- RoomLF -100
- DecayTime 2.760
- DecayHFRatio 1.250
- DecayLFRatio 1.140
- Reflections -400
- ReflectionsDelay 0.020
- Reverb -300
- ReverbDelay 0.030
- EchoTime 0.179
- EchoDepth 0.150
- ModulationTime 0.895
- ModulationDepth 0.190
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Sport Squash Court" 44 4
-{
- Environment 0
- EnvironmentDiffusion 0.750
- Room -1100
- RoomHF -1000
- RoomLF -200
- DecayTime 2.220
- DecayHFRatio 0.910
- DecayLFRatio 1.160
- Reflections -700
- Reverb -300
- EchoTime 0.126
- EchoDepth 0.190
- AirAbsorptionHF 0.000
- HFReference 7176.900
- LFReference 211.200
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Sport Stadium Tannoy" 44 5
-{
- Environment 0
- EnvironmentSize 3.000
- EnvironmentDiffusion 0.780
- Room -900
- RoomHF -500
- RoomLF -600
- DecayTime 2.530
- DecayHFRatio 0.880
- DecayLFRatio 0.680
- Reflections -1100
- ReflectionsDelay 0.230
- Reverb -600
- ReverbDelay 0.063
- EchoDepth 0.200
- AirAbsorptionHF 0.000
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Wooden Alcove" 45 0
-{
- Environment 0
- Room -1100
- RoomHF -1800
- RoomLF -1000
- DecayTime 1.220
- DecayHFRatio 0.620
- DecayLFRatio 0.910
- Reflections -100
- ReflectionsDelay 0.012
- Reverb -600
- ReverbDelay 0.024
- HFReference 4705.000
- LFReference 99.600
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Wooden Courtyard" 45 1
-{
- Environment 0
- EnvironmentDiffusion 0.650
- Room -1700
- RoomHF -2200
- RoomLF -1000
- DecayTime 1.790
- DecayHFRatio 0.350
- DecayLFRatio 0.790
- Reflections -700
- ReflectionsDelay 0.063
- Reverb -2300
- ReverbDelay 0.032
- HFReference 4705.000
- LFReference 99.600
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Wooden Cupboard" 45 2
-{
- Environment 0
- Room -1000
- RoomHF -1700
- RoomLF -1000
- DecayTime 0.560
- DecayHFRatio 0.460
- DecayLFRatio 0.910
- Reflections -100
- ReflectionsDelay 0.012
- Reverb -100
- ReverbDelay 0.028
- HFReference 4705.000
- LFReference 99.600
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Wooden Hall" 45 3
-{
- Environment 0
- Room -1200
- RoomHF -2200
- RoomLF -1100
- DecayTime 1.950
- DecayHFRatio 0.300
- DecayLFRatio 0.820
- Reflections -300
- ReflectionsDelay 0.068
- Reverb -500
- ReverbDelay 0.063
- HFReference 4705.000
- LFReference 99.600
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Wooden Large Room" 45 4
-{
- Environment 0
- Room -1200
- RoomHF -2100
- RoomLF -1100
- DecayTime 1.450
- DecayHFRatio 0.330
- DecayLFRatio 0.820
- Reflections -300
- ReflectionsDelay 0.056
- Reverb -500
- ReverbDelay 0.049
- HFReference 4705.000
- LFReference 99.600
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Wooden Long Passage" 45 5
-{
- Environment 0
- Room -1100
- RoomHF -2000
- RoomLF -1000
- DecayTime 1.790
- DecayHFRatio 0.400
- DecayLFRatio 0.790
- Reflections -200
- ReflectionsDelay 0.020
- Reverb -1000
- ReverbDelay 0.036
- HFReference 4705.000
- LFReference 99.600
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Wooden Medium Room" 45 6
-{
- Environment 0
- Room -1200
- RoomHF -2000
- RoomLF -1100
- DecayTime 1.070
- DecayHFRatio 0.420
- DecayLFRatio 0.820
- Reflections -300
- ReflectionsDelay 0.039
- Reverb -400
- ReverbDelay 0.029
- HFReference 4705.000
- LFReference 99.600
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Wooden Short Passage" 45 7
-{
- Environment 0
- Room -1100
- RoomHF -1800
- RoomLF -1000
- DecayTime 1.450
- DecayHFRatio 0.500
- DecayLFRatio 0.870
- Reflections -300
- ReflectionsDelay 0.012
- Reverb -700
- ReverbDelay 0.024
- HFReference 4705.000
- LFReference 99.600
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
-"Wooden Small Room" 45 8
-{
- Environment 0
- Room -1200
- RoomHF -1900
- RoomLF -1000
- DecayTime 0.790
- DecayHFRatio 0.320
- DecayLFRatio 0.870
- Reflections -200
- ReflectionsDelay 0.032
- Reverb -300
- ReverbDelay 0.029
- HFReference 4705.000
- LFReference 99.600
- Diffusion 100.000
- Density 100.000
- bEchoTimeScale true
-}
-
diff --git a/wadsrc/rsmka0.png b/wadsrc/rsmka0.png
deleted file mode 100644
index 5e2f4de8..00000000
Binary files a/wadsrc/rsmka0.png and /dev/null differ
diff --git a/wadsrc/rsmkb0.png b/wadsrc/rsmkb0.png
deleted file mode 100644
index fab531ac..00000000
Binary files a/wadsrc/rsmkb0.png and /dev/null differ
diff --git a/wadsrc/rsmkc0.png b/wadsrc/rsmkc0.png
deleted file mode 100644
index 2811d624..00000000
Binary files a/wadsrc/rsmkc0.png and /dev/null differ
diff --git a/wadsrc/rsmkd0.png b/wadsrc/rsmkd0.png
deleted file mode 100644
index 659ddd81..00000000
Binary files a/wadsrc/rsmkd0.png and /dev/null differ
diff --git a/wadsrc/rsmke0.png b/wadsrc/rsmke0.png
deleted file mode 100644
index 930b30a5..00000000
Binary files a/wadsrc/rsmke0.png and /dev/null differ
diff --git a/wadsrc/sbarinfo.txt b/wadsrc/sbarinfo.txt
deleted file mode 100644
index 30951cb4..00000000
--- a/wadsrc/sbarinfo.txt
+++ /dev/null
@@ -1,49 +0,0 @@
-mugshot "Normal", health2
-{
- {ST00, ST01, ST02} 17;
-}
-
-mugshot "Pain", healthspecial, directional
-{
- {TR00, KILL0, TL00} 35;
-}
-
-mugshot "Rampage", health
-{
- KILL0 1;
-}
-
-mugshot "Ouch", health
-{
- OUCH0 35;
-}
-
-mugshot "Grin", health
-{
- EVL0 70;
-}
-
-mugshot "God"
-{
- GOD0 -1;
-}
-
-mugshot "GodAnimated"
-{
- {GOD0, GOD1, GOD2} 17;
-}
-
-mugshot "Death"
-{
- DEAD0 -1;
-}
-
-mugshot "XDeath"
-{
- XDTH0 10;
- XDTH1 10;
- XDTH2 10;
- XDTH3 10;
- XDTH4 10;
- XDTH5 -1;
-}
\ No newline at end of file
diff --git a/wadsrc/sbigfont.lmp b/wadsrc/sbigfont.lmp
deleted file mode 100644
index 9c2a9d36..00000000
Binary files a/wadsrc/sbigfont.lmp and /dev/null differ
diff --git a/wadsrc/secret.flac b/wadsrc/secret.flac
deleted file mode 100644
index 964db99e..00000000
Binary files a/wadsrc/secret.flac and /dev/null differ
diff --git a/wadsrc/selectbo.png b/wadsrc/selectbo.png
deleted file mode 100644
index 45b21aa3..00000000
Binary files a/wadsrc/selectbo.png and /dev/null differ
diff --git a/wadsrc/sndinfo.txt b/wadsrc/sndinfo.txt
deleted file mode 100644
index 9956593b..00000000
--- a/wadsrc/sndinfo.txt
+++ /dev/null
@@ -1,1278 +0,0 @@
-/*
- * This is the SNDINFO for zdoom.wad. Unlike Hexen, SNDINFO lumps in pwads
- * are additive, so your SNDINFO only needs to contain the sounds listed
- * here that you want to change or new sounds you are defining. You do not
- * need to edit a copy of this file. In fact, if you try to put a copy of
- * this file in a pwad, you will get an error when ZDoom tries to load the
- * SNDINFO in your pwad.
- */
-
-//===========================================================================
-//
-// Generic player sounds
-//
-//===========================================================================
-
-// Use *pain in a script to play any of the pain sounds
-$random *pain { *pain100 *pain75 *pain50 *pain25 }
-
-//===========================================================================
-//
-// Compatibility aliases (because older ZDooms did not have them the same)
-//
-//===========================================================================
-
-// Trying to use a locked door
-$alias misc/keytry *usefail
-
-// Pickup sounds that were not unique before
-$alias misc/health_pkup misc/i_pkup // Pickup health
-$alias misc/armor_pkup misc/i_pkup // Pickup armor
-$alias misc/ammo_pkup misc/i_pkup // Pickup ammo
-
-/***************************************************************************/
-/* */
-/* ZDOOM SOUNDS AVAILABLE IN ANY GAME */
-/* */
-/***************************************************************************/
-
-world/spark1 spark1
-world/spark2 spark2
-world/spark3 spark3
-$random world/spark { world/spark1 world/spark2 world/spark3 }
-
-// These gets redefined below for Hexen
-world/quake dsquake
-misc/freeze icedth1
-misc/icebreak icebrk1a
-
-// The released source code used a min distance of 160. Why?
-// Retail Doom and Strife use 200.
-$rolloff * 200 1200
-
-/***************************************************************************/
-/* */
-/* DOOM SOUNDS */
-/* */
-/***************************************************************************/
-
-$ifdoom
-
-
-// BOOM has pitch shifting equivalent to a range of 4. I never got to hear
-// Doom when it used pitch shifting, so I don't know if this is correct or not.
-$pitchshiftrange 4
-
-// This sound is never actually used. It's just defined here for
-// compatibility with DeHackEd patches that reference dsskldth.
-misc/unused dsskldth // Sounds just like dsoof
-
-//===========================================================================
-//
-// Doom-specific player sounds
-//
-//===========================================================================
-
-$playersound player male *death dspldeth
-$playersound player male *xdeath dspdiehi
-$playersound player male *gibbed dsslop
-$playersound player male *pain100 dsplpain
-$playersounddup player male *pain75 *pain100
-$playersounddup player male *pain50 *pain100
-$playersounddup player male *pain25 *pain100
-$playersound player male *grunt dsoof
-$playersounddup player male *land *grunt
-$playersound player male *jump dsjump
-$playersound player male *fist dspunch
-$playersound player male *usefail dsnoway
-
-$playersound player female *death dsfldeth
-$playersound player female *xdeath dsfdiehi
-$playersound player female *gibbed dsslop
-$playersound player female *pain100 dsflpain
-$playersounddup player female *pain75 *pain100
-$playersounddup player female *pain50 *pain100
-$playersounddup player female *pain25 *pain100
-$playersound player female *grunt dsfoof
-$playersounddup player female *land *grunt
-$playersound player female *jump dsfjump
-$playersound player female *fist dspunch
-$playersound player female *usefail dsfnoway
-
-$playersound player other *death dscldeth
-$playersound player other *xdeath dscdiehi
-$playersound player other *gibbed dsslop
-$playersound player other *pain100 dsclpain
-$playersounddup player other *pain75 *pain100
-$playersounddup player other *pain50 *pain100
-$playersounddup player other *pain25 *pain100
-$playersound player other *grunt dscoof
-$playersounddup player other *land *grunt
-$playersound player other *jump dscjump
-$playersound player other *fist dspunch
-$playersound player other *usefail dscnoway
-
-// Alternate names for some player sounds needed for ZDoom <= 1.22 compatibility
-//
-// If any sounds with these names are defined later, they will redefine
-// the corresponding player sounds instead. Likewise, if they are played,
-// they will play the corresponding player sound instead.
-
-$playercompat player male *death player/male/death1
-$playercompat player male *death player/male/death2
-$playercompat player male *death player/male/death3
-$playercompat player male *death player/male/death4
-$playercompat player male *xdeath player/male/xdeath1
-$playercompat player male *pain100 player/male/pain100_1
-$playercompat player male *pain100 player/male/pain100_2
-$playercompat player male *pain75 player/male/pain75_1
-$playercompat player male *pain75 player/male/pain75_2
-$playercompat player male *pain50 player/male/pain50_1
-$playercompat player male *pain50 player/male/pain50_2
-$playercompat player male *pain25 player/male/pain25_1
-$playercompat player male *pain25 player/male/pain25_2
-$playercompat player male *grunt player/male/grunt1
-$playercompat player male *land player/male/land1
-$playercompat player male *jump player/male/jump1
-$playercompat player male *gibbed player/male/gibbed
-$playercompat player male *fist player/male/fist
-
-$playercompat player female *death player/female/death1
-$playercompat player female *death player/female/death2
-$playercompat player female *death player/female/death3
-$playercompat player female *death player/female/death4
-$playercompat player female *xdeath player/female/xdeath1
-$playercompat player female *pain100 player/female/pain100_1
-$playercompat player female *pain100 player/female/pain100_2
-$playercompat player female *pain75 player/female/pain75_1
-$playercompat player female *pain75 player/female/pain75_2
-$playercompat player female *pain50 player/female/pain50_1
-$playercompat player female *pain50 player/female/pain50_2
-$playercompat player female *pain25 player/female/pain25_1
-$playercompat player female *pain25 player/female/pain25_2
-$playercompat player female *grunt player/female/grunt1
-$playercompat player female *land player/female/land1
-$playercompat player female *jump player/female/jump1
-$playercompat player female *gibbed player/female/gibbed
-$playercompat player female *fist player/female/fist
-
-$playercompat player other *death player/cyborg/death1
-$playercompat player other *death player/cyborg/death2
-$playercompat player other *death player/cyborg/death3
-$playercompat player other *death player/cyborg/death4
-$playercompat player other *xdeath player/cyborg/xdeath1
-$playercompat player other *pain100 player/cyborg/pain100_1
-$playercompat player other *pain100 player/cyborg/pain100_2
-$playercompat player other *pain75 player/cyborg/pain75_1
-$playercompat player other *pain75 player/cyborg/pain75_2
-$playercompat player other *pain50 player/cyborg/pain50_1
-$playercompat player other *pain50 player/cyborg/pain50_2
-$playercompat player other *pain25 player/cyborg/pain25_1
-$playercompat player other *pain25 player/cyborg/pain25_2
-$playercompat player other *grunt player/cyborg/grunt1
-$playercompat player other *land player/cyborg/land1
-$playercompat player other *jump player/cyborg/jump1
-$playercompat player other *gibbed player/cyborg/gibbed
-$playercompat player other *fist player/cyborg/fist
-
-//
-// Weapons
-//
-
-$pitchshiftrange 3
-weapons/sawup dssawup
-weapons/sawidle dssawidl
-weapons/sawfull dssawful
-weapons/sawhit dssawhit
-$pitchshiftrange 4
-
-weapons/pistol dspistol
-weapons/shotgf dsshotgn
-weapons/shotgr dssgcock
-weapons/sshotf dsdshtgn
-weapons/sshoto dsdbopn
-weapons/sshotc dsdbcls
-weapons/sshotl dsdbload
-weapons/chngun dspistol
-weapons/rocklx dsbarexp
-weapons/rocklf dsrlaunc
-weapons/plasmaf dsplasma
-weapons/plasmax dsfirxpl
-weapons/bfgf dsbfg
-weapons/bfgx dsrxplod
-weapons/railgf railgf1
-
-// Problem: weapons/rocklx needs to be unlimited but
-// is also used for the MAP30 brain explosion.
-// This alias remaps to the original but has its own limit
-// attached so that it doesn't become too loud.
-$alias misc/brainexplode weapons/rocklx
-$limit misc/brainexplode 4
-
-$limit weapons/plasmaf 0
-$limit weapons/chngun 0
-$limit weapons/rocklf 0 // because normal running is almost as fast as a rocket
-$limit weapons/rocklx 0 // and the cyberdemon shoots 3 at once
-
-//===========================================================================
-//
-// MONSTER SOUNDS
-//
-//===========================================================================
-
-misc/gibbed dsslop
-
-// Zombie man
-
-$random grunt/sight { grunt/sight1 grunt/sight2 grunt/sight3 }
-$random grunt/death { grunt/death1 grunt/death2 grunt/death3 }
-grunt/sight1 dsposit1
-grunt/sight2 dsposit2
-grunt/sight3 dsposit3
-grunt/active dsposact
-grunt/pain dspopain
-grunt/death1 dspodth1
-grunt/death2 dspodth2
-grunt/death3 dspodth3
-grunt/attack dspistol
-
-// Shotgun guy
-
-$random shotguy/sight { shotguy/sight1 shotguy/sight2 shotguy/sight3 }
-$random shotguy/death { shotguy/death1 shotguy/death2 shotguy/death3 }
-shotguy/sight1 dsposit1
-shotguy/sight2 dsposit2
-shotguy/sight3 dsposit3
-shotguy/active dsposact
-shotguy/pain dspopain
-shotguy/death1 dspodth1
-shotguy/death2 dspodth2
-shotguy/death3 dspodth3
-shotguy/attack dsshotgn
-
-// Archvile
-
-vile/sight dsvilsit
-vile/active dsvilact
-vile/pain dsvipain
-vile/death dsvildth
-vile/raise dsslop
-vile/start dsvilatk
-vile/stop dsbarexp
-vile/firestrt dsflamst
-vile/firecrkl dsflame
-
-// Revenant
-
-skeleton/sight dsskesit
-skeleton/active dsskeact
-skeleton/pain dspopain
-skeleton/melee dsskepch
-skeleton/swing dsskeswg
-skeleton/death dsskedth
-skeleton/attack dsskeatk
-skeleton/tracex dsbarexp
-
-// Fatso
-
-fatso/sight dsmansit
-fatso/active dsposact
-fatso/pain dsmnpain
-fatso/raiseguns dsmanatk
-fatso/death dsmandth
-fatso/attack dsfirsht
-fatso/shotx dsfirxpl
-
-// Chainguy
-
-$random chainguy/sight { chainguy/sight1 chainguy/sight2 chainguy/sight3 }
-$random chainguy/death { chainguy/death1 chainguy/death2 chainguy/death3 }
-chainguy/sight1 dsposit1
-chainguy/sight2 dsposit2
-chainguy/sight3 dsposit3
-chainguy/active dsposact
-chainguy/pain dspopain
-chainguy/death1 dspodth1
-chainguy/death2 dspodth2
-chainguy/death3 dspodth3
-chainguy/attack dsshotgn
-$limit chainguy/attack 0
-
-// Imp
-
-$random imp/sight { imp/sight1 imp/sight2 }
-$random imp/death { imp/death1 imp/death2 }
-imp/sight1 dsbgsit1
-imp/sight2 dsbgsit2
-imp/active dsbgact
-imp/pain dspopain
-imp/melee dsclaw
-imp/death1 dsbgdth1
-imp/death2 dsbgdth2
-imp/attack dsfirsht
-imp/shotx dsfirxpl
-$limit imp/active 6
-
-// Demon
-
-demon/sight dssgtsit
-demon/active dsdmact
-demon/pain dsdmpain
-demon/melee dssgtatk
-demon/death dssgtdth
-$limit demon/melee 4
-
-// Spectre
-
-spectre/sight dssgtsit
-spectre/active dsdmact
-spectre/pain dsdmpain
-spectre/melee dssgtatk
-spectre/death dssgtdth
-
-// Cacodemon
-
-caco/sight dscacsit
-caco/active dsdmact
-caco/pain dsdmpain
-caco/death dscacdth
-caco/attack dsfirsht
-caco/shotx dsfirxpl
-
-// Baron of Hell
-
-baron/sight dsbrssit
-baron/active dsdmact
-baron/pain dsdmpain
-baron/melee dsclaw
-baron/death dsbrsdth
-baron/attack dsfirsht
-baron/shotx dsfirxpl
-
-// Hell Knight
-
-knight/sight dskntsit
-knight/active dsdmact
-knight/pain dsdmpain
-knight/death dskntdth
-
-// Lost Soul
-
-skull/active dsdmact
-skull/pain dsdmpain
-skull/melee dssklatk
-skull/death dsfirxpl
-
-// Spider Mastermind
-
-spider/sight dsspisit
-spider/active dsdmact
-spider/pain dsdmpain
-spider/attack dsshotgn
-spider/death dsspidth
-spider/walk dsmetal
-
-// Arachnotron
-
-baby/sight dsbspsit
-baby/active dsbspact
-baby/pain dsdmpain
-baby/death dsbspdth
-baby/walk dsbspwlk
-baby/attack dsplasma
-baby/shotx dsfirxpl
-
-$limit baby/attack 0
-
-// Cyber Demon
-
-cyber/sight dscybsit
-cyber/active dsdmact
-cyber/pain dsdmpain
-cyber/death dscybdth
-cyber/hoof dshoof
-
-// Pain Elemental
-
-pain/sight dspesit
-pain/active dsdmact
-pain/pain dspepain
-pain/death dspedth
-
-// Wolfenstein SS
-
-wolfss/sight dssssit
-wolfss/active dsposact
-wolfss/pain dspopain
-wolfss/death dsssdth
-wolfss/attack dsshotgn
-
-// Commander Keen
-
-keen/pain dskeenpn
-keen/death dskeendt
-
-// Boss Brain
-
-brain/sight dsbossit
-brain/pain dsbospn
-brain/death dsbosdth
-brain/spit dsbospit
-brain/cube dsboscub
-brain/cubeboom dsfirxpl
-$alias brain/spawn misc/teleport
-
-
-//============================================================================
-//
-// WORLD SOUNDS
-//
-//===========================================================================
-
-world/barrelx dsbarexp
-
-world/drip dsempty
-world/watersplash dsempty
-world/sludgegloop dsempty
-world/lavasizzle dsempty
-
-//
-//
-// Platform Sounds
-//
-
-plats/pt1_strt dspstart
-plats/pt1_stop dspstop
-plats/pt1_mid dsstnmov
-
-//
-// Door Sounds
-//
-
-doors/dr1_open dsdoropn
-doors/dr1_clos dsdorcls
-doors/dr2_open dsbdopn
-doors/dr2_clos dsbdcls
-
-//===========================================================================
-//
-// MISCELLANEOUS SOUNDS
-//
-//===========================================================================
-
-misc/secret dssecret
-misc/w_pkup dswpnup // Pickup weapon
-misc/p_pkup dsgetpow // Pickup powerup
-misc/i_pkup dsitemup // Pickup item
-misc/k_pkup dsitemup // Pickup key
-misc/spawn dsitmbk // Item respawn
-misc/chat dsradio // Doom 2 chat sound
-misc/chat2 dstink // Chat sound for everything else
-
-$limit misc/i_pkup 1
-$limit misc/k_pkup 1
-$limit misc/w_pkup 1
-$limit misc/p_pkup 1
-$pitchshift misc/i_pkup 0
-$pitchshift misc/k_pkup 0
-$pitchshift misc/chat2 0
-
-switches/normbutn dsswtchn
-switches/exitbutn dsswtchx
-
-misc/teleport dstelept
-
-menu/activate dsswtchn // Activate a new menu
-menu/backup dsswtchn // Backup to previous menu
-menu/prompt dsswtchn // Activate a prompt "menu"
-menu/cursor dspstop // Move cursor up/down
-menu/change dsstnmov // Select new value for option
-menu/invalid dsoof // Menu not available
-menu/dismiss dsswtchx // Dismiss a prompt message
-menu/choose dspistol // Choose a menu item
-menu/clear dsswtchx // Close top menu
-
-$random menu/quit1 { player/male/death1 demon/pain grunt/pain misc/gibbed misc/teleport grunt/sight1 grunt/sight3 demon/melee }
-$random menu/quit2 { vile/active misc/p_pkup brain/cube misc/gibbed skeleton/swing knight/death baby/active demon/melee }
-
-
-
-$endif // ifdoom
-
-
-/***************************************************************************/
-/* */
-/* HERETIC SOUNDS */
-/* */
-/***************************************************************************/
-
-$ifheretic
-
-$rolloff * custom 0 1600
-
-$pitchshiftrange 2
-
-$playersound player male *wimpydeath plrwdth
-$playersound player male *death plrdth
-$playersound player male *crazydeath plrcdth
-$playersound player male *gibbed gibdth
-$playersound player male *pain100 plrpai
-$playersounddup player male *pain75 *pain100
-$playersounddup player male *pain50 *pain100
-$playersounddup player male *pain25 *pain100
-$playersound player male *weaponlaugh wpnup
-$playersounddup player male *evillaugh *weaponlaugh
-$playersound player male *grunt plroof
-$playersounddup player male *usefail *grunt
-$playersounddup player male *land *grunt
-$playersound player male *jump plrjmp
-$playersound player male *burndeath hedat1
-
-$playeralias chicken male *usefail chicken/peck
-
-chicken/sight chicpai
-chicken/pain chicpai
-chicken/death chicdth
-chicken/attack chicatk
-
-misc/burn hedat1
-
-weapons/staffhit stfhit
-weapons/staffpowerhit stfpow
-weapons/staffcrackle stfcrk
-weapons/wandhit gldhit
-weapons/bowshoot bowsht
-weapons/bowhit hrnhit
-weapons/gauntletsactivate gntact
-weapons/gauntletsuse gntuse
-weapons/gauntletson gntful
-weapons/gauntletshit gnthit
-weapons/gauntletspowhit gntpow
-weapons/maceshoot lobsht
-weapons/macebounce bounce
-weapons/macehit lobhit
-weapons/macestop pstop
-weapons/maceexplode phohit
-weapons/blasterhit blshit
-weapons/blasterpowhit hrnhit
-weapons/blastershoot blssht
-weapons/hornrodshoot hrnsht
-weapons/hornrodhit hrnhit
-weapons/hornrodpowshoot hrnpow
-weapons/hornrodpowhit ramphit
-weapons/phoenixshoot phosht
-weapons/phoenixhit phohit
-weapons/phoenixpowshoot phopow
-
-$limit weapons/gauntletson 0
-$limit weapons/gauntletshit 0
-$limit weapons/gauntletspowhit 0
-$limit weapons/gauntletsactivate 0
-$limit weapons/gauntletsuse 0
-$limit weapons/maceexplode 0
-$limit weapons/phoenixhit 0
-$limit weapons/phoenixpowshoot 1
-
-// [RH] Heretic didn't have these limitless, but they can sound bad if they're not
-$limit weapons/bowhit 0
-$limit weapons/hornrodshoot 0
-$limit weapons/hornrodhit 0
-$limit weapons/maceshoot 0
-
-himp/sight impsit
-himp/attack impat1
-himp/pain imppai
-himp/death impdth
-himp/active impsit
-himp/leaderattack impat2
-
-misc/invuse artiuse
-
-$limit misc/invuse 1
-
-world/podexplode podexp
-world/podgrow newpod
-world/wind wind
-world/waterfall waterfl
-
-$limit world/podexplode 0
-$limit world/podgrow 0
-$limit world/wind 1
-
-misc/i_pkup itemup
-misc/k_pkup keyup
-misc/p_pkup artiup
-$alias misc/w_pkup *weaponlaugh
-
-misc/rain ramrain
-misc/spawn respawn
-
-$limit misc/spawn 1
-
-//
-// Minotaur sounds
-//
-
-minotaur/sight minsit
-minotaur/melee stfhit
-minotaur/attack1 minat1
-minotaur/attack2 minat2
-minotaur/attack3 minat3
-minotaur/pain minpai
-minotaur/death mindth
-minotaur/active minact
-minotaur/fx2hit phohit
-minotaur/fx3hit phohit
-
-//
-// Wizard sounds
-//
-
-wizard/sight wizsit
-wizard/attack wizatk
-wizard/death wizdth
-wizard/pain wizpai
-wizard/active1 wizact
-$random wizard/active { wizard/sight wizard/active1 }
-
-//
-// Switch sounds
-//
-
-switches/normbutn switch
-$alias switches/exitbutn switches/normbutn // Heretic has no special exit button sound
-
-//
-//
-// Platform Sounds
-//
-
-plats/pt1_strt pstart
-plats/pt1_stop pstop
-plats/pt1_mid dormov
-
-//
-// Door Sounds
-//
-
-doors/dr1_open doropn
-doors/dr1_clos dorcls
-doors/dr2_open doropn
-doors/dr2_clos dorcls
-
-//
-// Ambient sounds
-//
-
-world/amb1 amb1
-world/amb2 amb2
-world/amb3 amb3
-world/amb4 amb4
-world/amb5 amb5
-world/amb6 amb6
-world/amb7 amb7
-world/amb8 amb8
-world/amb9 amb9
-world/amb10 amb10
-world/amb11 amb11
-world/amb12 bstsit
-
-$limit world/amb1 1
-$limit world/amb2 1
-$limit world/amb3 1
-$limit world/amb4 1
-$limit world/amb5 1
-$limit world/amb6 1
-$limit world/amb7 1
-$limit world/amb8 1
-$limit world/amb9 1
-$limit world/amb10 1
-$limit world/amb11 0
-
-misc/chat chat
-misc/teleport telept
-misc/ripslop ripslop
-
-$limit misc/chat 1
-
-world/drip gloop
-world/watersplash gloop
-world/lavasizzle burn
-world/sludgegloop dsempty
-
-mummy/sight mumsit
-mummy/attack1 mumat1
-mummy/attack2 mumat2
-mummy/pain mumpai
-mummy/death mumdth
-mummy/active mumsit
-mummy/head mumhed
-
-beast/sight bstsit
-beast/attack bstatk
-beast/pain bstpai
-beast/death bstdth
-beast/active bstact
-
-snake/attack snkatk
-snake/sight snksit
-snake/pain snkpai
-snake/death snkdth
-snake/active snkact
-
-clink/sight clksit
-clink/attack clkatk
-clink/pain clkpai
-clink/death clkdth
-clink/active clkact
-
-hknight/sight kgtsit
-hknight/attack kgtatk
-hknight/melee kgtat2
-hknight/pain kgtpai
-hknight/death kgtdth
-hknight/active kgtsit
-hknight/hit hrnhit
-hknight/axewhoosh kgtatk
-
-misc/timebomb phohit
-world/volcano/blast lobhit
-world/volcano/shoot bstatk
-
-ironlich/sight hedsit
-ironlich/attack1 hedat1
-ironlich/attack2 hedat2
-ironlich/attack3 hedat3
-ironlich/pain hedpai
-ironlich/death heddth
-ironlich/active hedact
-
-dsparilserpent/sight bstsit
-dsparilserpent/attack bstatk
-dsparilserpent/pain sbtpai
-dsparilserpent/death sbtdth
-dsparilserpent/active sbtact
-
-dsparil/sight sorsit
-dsparil/attack soratk
-dsparil/pain sorpai
-dsparil/active soract
-dsparil/rise sorrise
-dsparil/zap sorzap
-dsparil/scream sordsph
-dsparil/explode sordexp
-dsparil/bones sordbon
-
-chicken/active chicact
-chicken/attack chicatk
-chicken/pain chicpai
-chicken/death chicdth
-chicken/peck1 chicpk1
-chicken/peck2 chicpk2
-chicken/peck3 chicpk3
-$random chicken/peck { chicken/peck1 chicken/peck2 chicken/peck3 }
-
-menu/activate dorcls
-menu/backup switch
-menu/prompt chat
-menu/choose dorcls
-menu/cursor switch
-menu/change keyup
-menu/invalid plroof
-menu/dismiss dorcls
-menu/clear dorcls
-
-misc/secret dssecret
-
-$endif // ifheretic
-
-
-/***************************************************************************/
-/* */
-/* HEXEN SOUNDS */
-/* */
-/***************************************************************************/
-
-$ifhexen
-
-$rolloff * custom 0 2025
-
-$pitchshiftrange 3
-
-$random PlayerFighterExtremeDeathPicker { PlayerFighterExtreme1Death
- PlayerFighterExtreme2Death
- PlayerFighterExtreme3Death }
-
-$playeralias fighter male *death PlayerFighterNormalDeath
-$playeralias fighter male *crazydeath PlayerFighterCrazyDeath
-$playeralias fighter male *burndeath PlayerFighterBurnDeath
-$playeralias fighter male *xdeath PlayerFighterExtremeDeathPicker
-$playeralias fighter male *pain100 PlayerFighterPain
-$playersounddup fighter male *pain75 *pain100
-$playersounddup fighter male *pain50 *pain100
-$playersounddup fighter male *pain25 *pain100
-$playeralias fighter male *grunt PlayerFighterGrunt
-$playeralias fighter male *land PlayerLand
-$playeralias fighter male *poison PlayerPoisonCough
-$playeralias fighter male *falling PlayerFighterFallingScream
-$playeralias fighter male *splat PlayerFallingSplat
-$playeralias fighter male *usefail PlayerFighterFailedUse
-$playeralias fighter male *puzzfail PuzzleFailFighter
-$playersound fighter male *jump fgtjump
-$playeralias fighter male *fistgrunt FighterGrunt
-
-$random PlayerClericExtremeDeathPicker { PlayerClericExtreme1Death
- PlayerClericExtreme2Death
- PlayerClericExtreme3Death }
-
-$playeralias cleric male *death PlayerClericNormalDeath
-$playeralias cleric male *crazydeath PlayerClericCrazyDeath
-$playeralias cleric male *burndeath PlayerClericBurnDeath
-$playeralias cleric male *xdeath PlayerClericExtremeDeathPicker
-$playeralias cleric male *pain100 PlayerClericPain
-$playersounddup cleric male *pain75 *pain100
-$playersounddup cleric male *pain50 *pain100
-$playersounddup cleric male *pain25 *pain100
-$playeralias cleric male *grunt PlayerClericGrunt
-$playeralias cleric male *land PlayerLand
-$playeralias cleric male *poison PlayerPoisonCough
-$playeralias cleric male *falling PlayerClericFallingScream
-$playeralias cleric male *splat PlayerFallingSplat
-$playeralias cleric male *usefail PlayerClericFailedUse
-$playeralias cleric male *puzzfail PuzzleFailCleric
-$playersound cleric male *jump plrjump
-
-$random PlayerMageExtremeDeathPicker { PlayerMageExtreme1Death
- PlayerMageExtreme2Death
- PlayerMageExtreme3Death }
-
-$playeralias mage male *death PlayerMageNormalDeath
-$playeralias mage male *crazydeath PlayerMageCrazyDeath
-$playeralias mage male *burndeath PlayerMageBurnDeath
-$playeralias mage male *xdeath PlayerMageExtremeDeathPicker
-$playeralias mage male *pain100 PlayerMagePain
-$playersounddup mage male *pain75 *pain100
-$playersounddup mage male *pain50 *pain100
-$playersounddup mage male *pain25 *pain100
-$playeralias mage male *grunt PlayerMageGrunt
-$playeralias mage male *land PlayerLand
-$playeralias mage male *poison PlayerPoisonCough
-$playeralias mage male *falling PlayerMageFallingScream
-$playeralias mage male *splat PlayerFallingSplat
-$playeralias mage male *usefail PlayerMageFailedUse
-$playeralias mage male *puzzfail PuzzleFailMage
-$playersound mage male *jump mgjump
-
-$playeralias pig male *usefail PigActive1
-
-$alias world/drip Ambient10
-$alias world/watersplash WaterSplash
-$alias world/lavasizzle LavaSizzle
-$alias world/sludgegloop SludgeGloop
-$alias world/wind Wind
-$alias world/quake Earthquake
-$alias world/thunder ThunderCrash
-
-$alias misc/w_pkup PickupWeapon
-$alias misc/p_pkup PickupArtifact
-$alias misc/k_pkup PickupKey
-$alias misc/i_pkup PickupItem
-$alias misc/spawn Respawn
-$alias misc/teleport Teleport
-$alias misc/keytry DoorLocked
-$alias misc/invuse UseArtifact
-$alias misc/freeze FreezeDeath
-$alias misc/icebreak FreezeShatter
-
-$alias misc/chat Chat
-$alias misc/chat2 Chat
-
-$alias misc/fallingsplat PlayerFallingSplat
-
-$alias minotaur/sight MaulatorSight
-$alias minotaur/pain MaulatorPain
-$alias minotaur/death MaulatorDeath
-$alias minotaur/active MaulatorActive
-$alias minotaur/attack1 MaulatorHamHit
-$alias minotaur/attack2 MaulatorHamSwing
-
-$random BishopActiveSounds { BishopActive BishopSight }
-$random PigActive { PigActive1 PigActive2 }
-
-$limit PlayerFighterFailedUse 1
-$limit PlayerClericFailedUse 1
-$limit PlayerMageFailedUse 1
-$limit SorcererBallWoosh 4
-$limit SorcererBallBounce 3
-$limit SorcererBallExplode 3
-$limit SorcererBallPop 3
-$limit SorcererBigBallExplode 3
-$limit Ambient1 1
-$limit Ambient2 1
-$limit Ambient3 1
-$limit Ambient4 1
-$limit Ambient5 1
-$limit Ambient6 1
-$limit Ambient7 1
-$limit Ambient8 1
-$limit Ambient9 1
-$limit Ambient10 1
-$limit Ambient11 1
-$limit Ambient12 1
-$limit Ambient13 1
-$limit Ambient14 1
-$limit Ambient15 1
-$limit MysticIncant 4
-
-$pitchshift PlayerMageNormalDeath 0
-$pitchshift PlayerMageCrazyDeath 0
-$pitchshift PlayerMageExtreme1Death 0
-$pitchshift PlayerMageExtreme2Death 0
-$pitchshift PlayerMageExtreme3Death 0
-$pitchshift PlayerMageBurnDeath 0
-$pitchshift PlayerMagePain 0
-$pitchshift PlayerMageGrunt 0
-$pitchshift PlayerMageFallingScream 0
-$pitchshift PlayerMageFailedUse 0
-$pitchshift PickupWeapon 0
-$pitchshift PickupPiece 0
-$pitchshift WeaponBuild 0
-$pitchshift BellRing 0
-
-$alias menu/activate DoorCloseLight
-$alias menu/backup PickupKey
-$alias menu/prompt Chat
-$alias menu/cursor FighterHammerHitWall
-$alias menu/change PickupKey
-$alias menu/invalid DoorCloseMetal // Hexen does not use this, but I do
-$alias menu/dismiss PlatformStop
-$alias menu/choose DoorCloseLight
-$alias menu/clear PlatformStop
-
-// Hexen does not have ripslop sound like Heretic
-misc/ripslop dsempty
-
-$limit DoorCloseLight 4
-
-$limit PuppyBeat 0
-$limit CeantaurPain 0
-$limit BishopPain 0
-$limit SerpentPain 0
-$limit DemonPain 0
-$limit WraithPain 0
-$limit MaulatorPain 0
-$limit EttinPain 0
-$limit FireDemonPain 0
-$limit SorcererPain 0
-$limit DragonPain 0
-
-$endif // ifhexen
-
-//===========================================================================
-//
-// Strife
-//
-//===========================================================================
-
-$ifstrife
-
-$rolloff * 200 1200
-
-$playersound player male *death dspldeth
-$playersound player male *xdeath dspdiehi
-$playersound player male *gibbed dsslop
-$playersound player male *pain100 dsplpain
-$playersounddup player male *pain75 *pain100
-$playersounddup player male *pain50 *pain100
-$playersounddup player male *pain25 *pain100
-$playersound player male *grunt dsoof
-$playersounddup player male *land *grunt
-$playersound player male *jump dsjump
-$playersound player male *fist dspunch
-$playersound player male *usefail dsnoway
-
-$playersound player female *death dsfldeth
-$playersound player female *xdeath dsfdiehi
-$playersound player female *gibbed dsslop
-$playersound player female *pain100 dsflpain
-$playersounddup player female *pain75 *pain100
-$playersounddup player female *pain50 *pain100
-$playersounddup player female *pain25 *pain100
-$playersound player female *grunt dsfoof
-$playersounddup player female *land *grunt
-$playersound player female *jump dsfjump
-$playersound player female *fist dspunch
-$playersound player female *usefail dsfnoway
-
-$playersound player other *death dscldeth
-$playersound player other *xdeath dscdiehi
-$playersound player other *gibbed dsslop
-$playersound player other *pain100 dsclpain
-$playersounddup player other *pain75 *pain100
-$playersounddup player other *pain50 *pain100
-$playersounddup player other *pain25 *pain100
-$playersound player other *grunt dscoof
-$playersounddup player other *land *grunt
-$playersound player other *jump dscjump
-$playersound player other *fist dspunch
-$playersound player other *usefail dscnoway
-
-weapons/xbowshoot dsxbow
-weapons/xbowhit dsfirxpl
-weapons/assaultgun dsrifle
-weapons/minimissile dsrlaunc
-weapons/minimissilehit dsmislht
-weapons/flamethrower dsflburn
-weapons/flameidle dsflidl
-weapons/mauler1 dspgrdat
-weapons/mauler2charge dsproton
-weapons/mauler2fire dsprotfl
-weapons/mauler2hit dsexplod
-weapons/hegrenadeshoot dsphoot
-weapons/hegrenadebang dsexplod
-weapons/phgrenadeshoot dsphoot
-weapons/phgrenadebang dsexplod
-weapons/sigil dssigil
-weapons/sigilhit dssglhit
-weapons/sigilcharge dssiglup
-
-monsters/rifle dsrifle
-
-switches/normbutn dsswtchn
-$alias switches/exitbutn switches/normbutn
-switches/chain dspulchn
-switches/knob dsswknob
-switches/keycard dskeycrd
-switches/stone dsswston
-switches/bolt dsswbolt
-switches/scanner dsswscan
-switches/fool dsdifool
-switches/valve dsvalve
-switches/sizzle dsfirxpl
-
-world/glassbreak dsbglass
-world/barrelx dsbarexp
-world/smallfire dssmfire
-world/largefire dslgfire
-world/river dswriver
-world/waterfall dswfall
-world/waterdrip dswdrip
-world/watersplash dswsplsh
-
-$limit world/river 1
-$limit world/waterfall 1
-$limit world/waterdrip 1
-
-world/drip dsempty // These four satisfy the Heretic/Hexen terrain definitions
-world/sludgegloop dsempty
-world/lavasizzle dsempty
-world/lavasizzle dsempty
-
-menu/activate dsswtchn // Activate a new menu
-menu/backup dsswtchn // Backup to previous menu
-menu/prompt dsswtchn // Activate a prompt "menu"
-menu/cursor dspstop // Move cursor up/down
-menu/change dsstnmov // Select new value for option
-menu/invalid dsoof // Menu not available
-menu/dismiss dsswish // Dismiss a prompt message
-menu/choose dsrifl // Choose a menu item
-menu/clear dsmtalht // Close top menu
-
-misc/teleport dstelept
-misc/swish dsswish
-misc/meathit dsmeatht
-misc/metalhit dsmtalht
-misc/gibbed dsslop
-misc/explosion dsexplod
-misc/reactor dsreactr
-misc/missileinflight dsrflite
-misc/static dsstatic
-misc/chant dschant
-misc/alarm dsalarm
-misc/disruptordeath dsdsrptr
-$singular misc/alarm
-
-misc/secret dsyeah
-misc/w_pkup dswpnup
-misc/p_pkup dsyeah
-misc/i_pkup dsitemup
-misc/k_pkup dsitemup
-misc/spawn dsitmbk
-misc/chat dsradio
-misc/invuse dsitemup
-misc/mask dsmask
-
-plats/pt1_strt dspstart
-plats/pt1_stop dspstop
-plats/pt1_mid dsstnmov
-
-doors/dr2_open dsbdopn
-doors/dr2_clos dsbdcls
-
-doors/stone_open dsdrston
-doors/stone_close dsdrston
-
-doors/large_metal_open dsdrlmto
-doors/large_metal_close dsdrlmtc
-
-doors/small_metal_open dsdrsmto
-doors/small_metal_close dsdrsmtc
-
-doors/large_wood_open dsdrlwud
-doors/large_wood_close dsdrlwud
-
-doors/small_wood_open dsdrswud
-doors/small_wood_close dsdrswud
-
-doors/airlock_open dsairlck
-doors/airlock_close dsairlck
-
-doors/chain_open dsdrchno
-doors/chain_close dsdrchnc
-
-woodenbarrel/death dswbrldt
-
-human/imonfire dsburnme
-
-ambient/alien1 dsamaln1
-ambient/alien2 dsamaln2
-ambient/alien3 dsamaln3
-ambient/alien4 dsamaln4
-ambient/alien5 dsamaln5
-ambient/alien6 dsamaln6
-
-reaver/sight dsrevsee
-reaver/pain dsreavpn
-reaver/death dsrevdth
-reaver/active dsrevact
-reaver/attack dsreavat
-reaver/blade dsrevbld
-
-crusader/sight dsrb2see
-crusader/pain dsrb2pn
-crusader/death dsrb2dth
-crusader/active dsrb2act
-crusader/misl dsrlaunc
-crusader/mislx dsmislht
-
-bishop/sight dsrb2see
-bishop/pain dsrb2pn
-bishop/death dspgrdth
-bishop/active dsrb2act
-bishop/misl dsrlaunc
-bishop/mislx dsmislht
-
-sentinel/sight dssntsee
-sentinel/death dssntdth
-sentinel/active dssntact
-sentinel/plasma dsplasma
-
-$random peasant/pain { peasant/pain1 peasant/pain2 peasant/pain3 peasant/pain4 }
-peasant/pain1 dspespna
-peasant/pain2 dspespnb
-peasant/pain3 dspespnc
-peasant/pain4 dspespnd
-
-//$random peasant/death { peasant/death1 peasant/death2 peasant/death3 }
-$alias peasant/death peasant/death1
-peasant/death1 dspsdtha
-peasant/death2 dspsdthb
-peasant/death3 dspsdthc
-
-peasant/sight dsrebact
-peasant/attack dsmeatht
-peasant/active dsrebact
-
-beggar/attack dsmeatht
-$alias beggar/pain peasant/pain
-$alias beggar/death peasant/death
-
-rebel/sight dswpnup
-$alias rebel/pain peasant/pain
-rebel/death dsrebdth
-rebel/active dsrebact
-
-barkeep/pain dsambbar
-barkeep/active dsambppl
-$singular barkeep/pain
-$singular barkeep/active
-
-$alias smith/pain peasant/pain
-$alias armorer/pain peasant/pain
-$alias medic/pain peasant/pain
-$alias zombie/death peasant/death
-$alias becoming/death peasant/death
-zombie/spawner dstelept
-
-acolyte/sight dsagrsee
-acolyte/pain dsagrdpn
-acolyte/death dsagrdth
-acolyte/rifle dsrifle
-$random acolyte/active { acolyte/active1 acolyte/active2 acolyte/active3 acolyte/active4 }
-acolyte/active1 dsagrac1
-acolyte/active2 dsagrac2
-acolyte/active3 dsagrac3
-acolyte/active4 dsagrac4
-
-macil/sight dsagrsee
-$alias macil/pain peasant/pain
-macil/active dsrebact
-macil/slop dsslop
-
-alienspectre/sight dsalnsee
-alienspectre/blade dsrevbld
-alienspectre/pain dsalnpn
-alienspectre/death dsalndth
-alienspectre/active dsalnact
-
-turret/death dsmislht
-
-ore/explode dsexplod
-
-rat/sight dsratact
-rat/death dsratact
-rat/active dsratact
-$singular rat/sight
-
-loremaster/chain dschain
-loremaster/swish dsswish
-loremaster/sight dslorsee
-loremaster/attack dsrevbld
-loremaster/pain dslorpn
-loremaster/death dsslop
-loremaster/active dstend
-
-stalker/sight dsspisit
-stalker/attack dsspdatk
-stalker/pain dsspdatk
-stalker/death dsspidth
-stalker/active dsspisit
-stalker/walk dsspdwlk
-
-templar/sight dspgrsee
-templar/pain dspgrdpn
-templar/death dspgrdth
-templar/active dspgract
-templar/shoot dspgrdat
-
-inquisitor/sight dsinqsee
-inquisitor/death dsinqdth
-inquisitor/active dsinqact
-inquisitor/walk dsinqact
-inquisitor/jump dsinqjmp
-inquisitor/attack dsphoot
-inquisitor/atkexplode dsexplod
-
-programmer/clank dsmtalht
-programmer/attack dsrevbld // Unused?
-programmer/pain dsprgpn
-programmer/death dsrb2dth
-programmer/active dsprogac
-
-entity/sight dsmnalse
-entity/melee dsrevbld
-entity/pain dsalnpn
-entity/death dsmnaldt
-entity/active dsalnact
-
-$endif
diff --git a/wadsrc/sndseq.txt b/wadsrc/sndseq.txt
deleted file mode 100644
index 38c0dcc5..00000000
--- a/wadsrc/sndseq.txt
+++ /dev/null
@@ -1,339 +0,0 @@
-// Doom Doors ---------------------------------
-
-:DoorOpenNormal
- play doors/dr1_open
- nostopcutoff
-end
-
-:DoorCloseNormal
- play doors/dr1_clos
- nostopcutoff
-end
-
-:DoorOpenBlazing
- play doors/dr2_open
- nostopcutoff
-end
-
-:DoorCloseBlazing
- play doors/dr2_clos
- nostopcutoff
-end
-
-[DoorNormal
- 0 DoorOpenNormal
- 1 DoorCloseNormal
- 2 DoorOpenBlazing
- 3 DoorCloseBlazing
-]
-
-// Heretic Doors ------------------------------
-
-:HereticDoorOpen
- play doors/dr1_open
- nostopcutoff
-end
-
-:HereticDoorClose
- play doors/dr1_open
- stopsound doors/dr1_clos
-end
-
-[HereticDoor
- 0 HereticDoorOpen
- 1 HereticDoorClose
- 2 HereticDoorOpen
- 3 HereticDoorClose
-]
-
-// Strife Doors -------------------------------
-
-:DoorOpenStone
- play doors/stone_open
- nostopcutoff
-end
-
-:DoorCloseStone
- play doors/stone_close
- nostopcutoff
-end
-
-:DoorOpenLargeMetal
- play doors/large_metal_open
- nostopcutoff
-end
-
-:DoorCloseLargeMetal
- play doors/large_metal_close
- nostopcutoff
-end
-
-:DoorOpenSmallMetal
- play doors/small_metal_open
- nostopcutoff
-end
-
-:DoorCloseSmallMetal
- play doors/small_metal_close
- nostopcutoff
-end
-
-:DoorOpenLargeWood
- play doors/large_wood_open
- nostopcutoff
-end
-
-:DoorCloseLargeWood
- play doors/large_wood_close
- nostopcutoff
-end
-
-:DoorOpenSmallWood
- play doors/small_wood_open
- nostopcutoff
-end
-
-:DoorCloseSmallWood
- play doors/large_wood_open
- nostopcutoff
-end
-
-:DoorOpenAirlock
- play doors/airlock_open
- nostopcutoff
-end
-
-:DoorCloseAirlock
- play doors/airlock_close
- nostopcutoff
-end
-
-:DoorOpenChain
- play doors/chain_open
- nostopcutoff
-end
-
-:DoorCloseChain
- play doors/chain_close
- nostopcutoff
-end
-
-
-[DoorStone
- 0 DoorOpenStone
- 1 DoorCloseStone
- 2 DoorOpenBlazing
- 3 DoorCloseBlazing
-]
-
-[DoorLargeMetal
- 0 DoorOpenLargeMetal
- 1 DoorCloseLargeMetal
- 2 DoorOpenBlazing
- 3 DoorCloseBlazing
-]
-
-[DoorSmallMetal
- 0 DoorOpenSmallMetal
- 1 DoorCloseSmallMetal
- 2 DoorOpenBlazing
- 3 DoorCloseBlazing
-]
-
-[DoorLargeWood
- 0 DoorOpenLargeWood
- 1 DoorCloseLargeWood
- 2 DoorOpenBlazing
- 3 DoorCloseBlazing
-]
-
-[DoorSmallWood
- 0 DoorOpenSmallWood
- 1 DoorCloseSmallWood
- 2 DoorOpenBlazing
- 3 DoorCloseBlazing
-]
-
-[DoorAirlock
- 0 DoorOpenAirlock
- 1 DoorCloseAirlock
- 2 DoorOpenBlazing
- 3 DoorCloseBlazing
-]
-
-[DoorChain
- 0 DoorOpenChain
- 1 DoorCloseChain
- 2 DoorOpenBlazing
- 3 DoorCloseBlazing
-]
-
-// Not Doors ----------------------------------
-
-:CeilingNormal
- playrepeat plats/pt1_mid
-end
-
-:CeilingSemiSilent
- stopsound plats/pt1_stop
-end
-
-:Floor
- playrepeat plats/pt1_mid
- stopsound plats/pt1_stop
-end
-
-:Platform
- playuntildone plats/pt1_strt
- stopsound plats/pt1_stop
-end
-
-:Silence
-end
-
-// Heretic Ambience ---------------------------
-
-:HereticAmbience
- // Heretic waits 10 seconds after level load before it starts
- // playing any sounds.
- delayonce 350
-
- volumerand 0 50
- attenuation none
- randomsequence
- delayrand 210 465
- restart
-end
-
-// To be 100% correct, these sequences shouldn't actually wait for
-// the last sound to stop playing, but I thought it would be nice
-// to make them stand-alone so you don't always have to play them
-// from inside HereticAmbience.
-
-:AFX_Scream
- environment 0
- slot HereticAmbience
-
- playuntildone world/amb1
-end
-
-:AFX_Squish
- environment 1
- slot HereticAmbience
-
- playuntildone world/amb2
-end
-
-:AFX_Drops
- environment 2
- slot HereticAmbience
-
- play world/amb3
- delayrand 16 47
- play world/amb7
- delayrand 16 47
- play world/amb3
- delayrand 16 47
- play world/amb7
- delayrand 16 47
- play world/amb3
- delayrand 16 47
- play world/amb7
- delayrand 16 47
-end
-
-:AFX_SlowFootsteps
- environment 3
- slot HereticAmbience
-
- playtime world/amb4 15
- volumerel -2.36
- playtime world/amb11 15
- volumerel -2.36
- playtime world/amb4 15
- volumerel -2.36
- playtime world/amb11 15
- volumerel -2.36
- playtime world/amb4 15
- volumerel -2.36
- playtime world/amb11 15
- volumerel -2.36
- playtime world/amb4 15
- volumerel -2.36
- playuntildone world/amb11
-end
-
-:AFX_Heartbeat
- environment 4
- slot HereticAmbience
-
- playtime world/amb5 35
- playtime world/amb5 35
- playtime world/amb5 35
- playuntildone world/amb5
-end
-
-:AFX_Bells
- environment 5
- slot HereticAmbience
-
- playtime world/amb6 17
- volumerel -6.3
- playtime world/amb6 17
- volumerel -6.3
- playtime world/amb6 17
- volumerel -6.3
- playuntildone world/amb6
-end
-
-:AFX_Growl
- environment 6
- slot HereticAmbience
-
- playuntildone world/amb12
-end
-
-:AFX_Magic
- environment 7
- slot HereticAmbience
-
- playuntildone world/amb8
-end
-
-:AFX_Laughter
- environment 8
- slot HereticAmbience
-
- playtime world/amb9 16
- volumerel -3.15
- playtime world/amb9 16
- volumerel -3.15
- playtime world/amb9 16
- volumerel -3.15
- playtime world/amb10 16
- volumerel -3.15
- playtime world/amb10 16
- volumerel -3.15
- playuntildone world/amb10
-end
-
-:AFX_FastFootsteps
- environment 9
- slot HereticAmbience
-
- playtime world/amb4 8
- volumerel -2.36
- playtime world/amb11 8
- volumerel -2.36
- playtime world/amb4 8
- volumerel -2.36
- playtime world/amb11 8
- volumerel -2.36
- playtime world/amb4 8
- volumerel -2.36
- playtime world/amb11 8
- volumerel -2.36
- playtime world/amb4 8
- volumerel -2.36
- playuntildone world/amb11
-end
diff --git a/wadsrc/spaldoom.lmp b/wadsrc/spaldoom.lmp
deleted file mode 100644
index 8946a522..00000000
Binary files a/wadsrc/spaldoom.lmp and /dev/null differ
diff --git a/wadsrc/spalhtic.lmp b/wadsrc/spalhtic.lmp
deleted file mode 100644
index 2c99f541..00000000
Binary files a/wadsrc/spalhtic.lmp and /dev/null differ
diff --git a/wadsrc/spark1.flac b/wadsrc/spark1.flac
deleted file mode 100644
index c864ccad..00000000
Binary files a/wadsrc/spark1.flac and /dev/null differ
diff --git a/wadsrc/spark2.flac b/wadsrc/spark2.flac
deleted file mode 100644
index fdeab297..00000000
Binary files a/wadsrc/spark2.flac and /dev/null differ
diff --git a/wadsrc/spark3.flac b/wadsrc/spark3.flac
deleted file mode 100644
index 9716c053..00000000
Binary files a/wadsrc/spark3.flac and /dev/null differ
diff --git a/wadsrc/stcfn196.lmp b/wadsrc/stcfn196.lmp
deleted file mode 100644
index 20a25174..00000000
Binary files a/wadsrc/stcfn196.lmp and /dev/null differ
diff --git a/wadsrc/stcfn197.lmp b/wadsrc/stcfn197.lmp
deleted file mode 100644
index 83489933..00000000
Binary files a/wadsrc/stcfn197.lmp and /dev/null differ
diff --git a/wadsrc/stcfn214.lmp b/wadsrc/stcfn214.lmp
deleted file mode 100644
index 496c599c..00000000
Binary files a/wadsrc/stcfn214.lmp and /dev/null differ
diff --git a/wadsrc/stcfn220.lmp b/wadsrc/stcfn220.lmp
deleted file mode 100644
index 7d32cd05..00000000
Binary files a/wadsrc/stcfn220.lmp and /dev/null differ
diff --git a/wadsrc/stcfn223.lmp b/wadsrc/stcfn223.lmp
deleted file mode 100644
index 8c2b83d2..00000000
Binary files a/wadsrc/stcfn223.lmp and /dev/null differ
diff --git a/wadsrc/stfbany.lmp b/wadsrc/stfbany.lmp
deleted file mode 100644
index f0d30a6c..00000000
Binary files a/wadsrc/stfbany.lmp and /dev/null differ
diff --git a/wadsrc/stkeys6.lmp b/wadsrc/stkeys6.lmp
deleted file mode 100644
index 611bd2d1..00000000
Binary files a/wadsrc/stkeys6.lmp and /dev/null differ
diff --git a/wadsrc/stkeys7.lmp b/wadsrc/stkeys7.lmp
deleted file mode 100644
index 7c4f69cd..00000000
Binary files a/wadsrc/stkeys7.lmp and /dev/null differ
diff --git a/wadsrc/stkeys8.lmp b/wadsrc/stkeys8.lmp
deleted file mode 100644
index 8e07f4de..00000000
Binary files a/wadsrc/stkeys8.lmp and /dev/null differ
diff --git a/wadsrc/stpbany.lmp b/wadsrc/stpbany.lmp
deleted file mode 100644
index 8ec7e4d1..00000000
Binary files a/wadsrc/stpbany.lmp and /dev/null differ
diff --git a/wadsrc/strfhelp.o b/wadsrc/strfhelp.o
deleted file mode 100644
index 820fcb0c..00000000
Binary files a/wadsrc/strfhelp.o and /dev/null differ
diff --git a/wadsrc/teaminfo.txt b/wadsrc/teaminfo.txt
deleted file mode 100644
index 24cc0ee8..00000000
--- a/wadsrc/teaminfo.txt
+++ /dev/null
@@ -1,49 +0,0 @@
-ClearTeams
-
-Team "Blue"
-{
- PlayerColor "00 00 FF"
- TextColor "Blue"
-}
-
-Team "Red"
-{
- PlayerColor "FF 00 00"
- TextColor "Red"
-}
-
-Team "Green"
-{
- PlayerColor "00 FF 00"
- TextColor "Green"
-}
-
-Team "Gold"
-{
- PlayerColor "FF FF 00"
- TextColor "Gold"
-}
-
-Team "Black"
-{
- PlayerColor "00 00 00"
- TextColor "Black"
-}
-
-Team "White"
-{
- PlayerColor "FF FF FF"
- TextColor "White"
-}
-
-Team "Orange"
-{
- PlayerColor "FF 80 00"
- TextColor "Orange"
-}
-
-Team "Purple"
-{
- PlayerColor "FF 00 FF"
- TextColor "Purple"
-}
diff --git a/wadsrc/terrain.txt b/wadsrc/terrain.txt
deleted file mode 100644
index 9a38a3d9..00000000
--- a/wadsrc/terrain.txt
+++ /dev/null
@@ -1,145 +0,0 @@
-// Splashes ----------------------------------------------------------------
-
-splash Water
-{
- smallclass WaterSplashBase
- smallclip 12
- smallsound world/drip
-
- baseclass WaterSplashBase
- chunkclass WaterSplash
- chunkxvelshift 8
- chunkyvelshift 8
- chunkzvelshift 8
- chunkbasezvel 2
- sound world/watersplash
-}
-
-splash Sludge
-{
- smallclass SludgeSplash
- smallclip 12
- smallsound world/sludgegloop
-
- baseclass SludgeSplash
- chunkclass SludgeChunk
- chunkxvelshift 8
- chunkyvelshift 8
- chunkzvelshift 8
- chunkbasezvel 1
- sound world/sludgegloop
-}
-
-splash Lava
-{
- smallclass LavaSplash
- smallclip 12
- smallsound world/lavasizzle
-
- baseclass LavaSplash
- chunkclass LavaSmoke
- chunkxvelshift -1
- chunkyvelshift -1
- chunkzvelshift 7
- chunkbasezvel 1
- sound world/lavasizzle
-}
-
-splash WaterSound
-{
- smallclass None
- baseclass None
- chunkclass None
- sound world/watersplash
- noalert
-}
-
-// Terrain types -----------------------------------------------------------
-
-terrain Water
-{
- splash Water
- footclip 10
- liquid
-}
-
-terrain Sludge
-{
- splash Sludge
- footclip 10
- liquid
-}
-
-ifheretic
-
-terrain Lava
-{
- splash Lava
- footclip 10
- liquid
-}
-
-endif
-
-ifhexen
-
-terrain Lava
-{
- splash Lava
- footclip 10
- liquid
- damageamount 5
- damagetype lava
- damagetimemask 31
-}
-
-terrain Ice
-{
- // A friction > 1 is actually less friction
- friction 1.70824008138
-
- // Ice doesn't actually do any damage. This is just so that things
- // that freeze to death take longer to melt on this terrain.
- damagetype ice
-}
-
-endif
-
-terrain JustASound
-{
- splash WaterSound
- liquid
- footclip 12
-}
-
-// Floor -> terrain mappings -----------------------------------------------
-
-ifheretic
-floor FLTWAWA1 Water
-floor FLTFLWW1 Water
-floor FLTLAVA1 Lava
-floor FLATHUH1 Lava
-floor FLTSLUD1 Sludge
-endif
-
-ifhexen
-floor X_005 Water
-floor X_001 Lava
-floor X_009 Sludge
-floor F_033 Ice
-endif
-
-ifstrife
-floor F_WATR03 JustASound
-floor F_WATR02 JustASound
-floor F_WATR01 JustASound
-floor F_VWATR3 JustASound
-floor F_VWATR2 JustASound
-floor P_VWATR1 JustASound
-floor F_HWATR3 JustASound
-floor F_HWATR2 JustASound
-floor F_HWATR1 JustASound
-floor F_PWATR3 JustASound
-floor F_PWATR2 JustASound
-floor F_PWATR1 JustASound
-endif
diff --git a/wadsrc/textcolors.txt b/wadsrc/textcolors.txt
deleted file mode 100644
index fb5f18eb..00000000
--- a/wadsrc/textcolors.txt
+++ /dev/null
@@ -1,209 +0,0 @@
-Brick
-{
- #470000 #FFB8B8
-Console:
- #470000 #A35C5C 0 127
- #800000 #FFFEFE 128 256
-Flat:
- #CC3333
-}
-
-Tan
-{
- #332B13 #FFEBDF
-Console:
- #332B13 #998B79 0 127
- #998B79 #FFFFFF 128 256
-Flat:
- #D2B48C
-}
-
-Gray Grey
-{
- #272727 #EFEFEF
-Console:
- #272727 #8B8B8B 0 127
- #505050 #FFFFFF 128 256
-Flat:
- #CCCCCC
-}
-
-Green
-{
- #0B1707 #77FF6F
-Console:
- #000000 #007F00 0 127
- #00FF00 #FEFFFE 128 256
-Flat:
- #00CC00
-}
-
-Brown
-{
- #533F2F #BFA78F
-Console:
- #000000 #7F4000 0 127
- #432F1F #FFE7CF 128 256
-Flat:
- #996633
-}
-
-Gold
-{
- #732B00 #FFFF73
-Console:
- #000000 #7FC040 0 127
- #DFBF00 #DFFFFE 128 256
-Flat:
- #FFCC00
-}
-
-Red
-{
- #3F0000 #FF0000
-Console:
- #000000 #7F0000 0 127
- #FF0000 #FFFEFE 128 256
-Flat:
- #DD0000
-}
-
-Blue
-{
- #000027 #0000FF
-Console:
- #000000 #00007F 0 127
- #4040FF #DEDEFF 128 256
-Flat:
- #9999FF
-}
-
-Orange
-{
- #200000 #FF8000
-Console:
- #200000 #904000 0 127
- #FF7F00 #FFFEFE 128 256
-Flat:
- #FFAA00
-}
-
-// This is designed to match the white Heretic/Hexen font.
-// It is close to the gray BOOM font, but not quite the same.
-White
-{
- #242424 #FFFFFF
-Console:
- #000000 #7F7F7F 0 127
- #808080 #FFFFFF 128 256
-Flat:
- #DFDFDF
-}
-
-// This is designed to match the yellow Hexen font, which has a
-// gray outline filled with shades of yellow.
-Yellow
-{
- #272727 #515151 0 64
- #784918 #F3A718 65 207
- #F3A82A #FCD043 208 256
-Console:
- #000000 #7F7F00 0 127
- #FFFF00 #FFFFFF 128 256
-Flat:
- #EEEE33
-}
-
-Untranslated
-{
-}
-
-Black
-{
- #131313 #505050
-Console:
- #000000 #323232 0 127
- #0A0A0A #505050 128 256
-Flat:
- #000000
-}
-
-LightBlue "Light Blue"
-{
- #000073 #B4B4FF
-Console:
- #00003C #5050FF 0 127
- #8080FF #FFFFFF 128 256
-Flat:
- #33EEFF
-}
-
-Cream
-{
- #CF8353 #FFD7BB
-Console:
- #2B230F #BF7B4B 0 127
- #FFB383 #FFFFFF 128 256
-Flat:
- #FFCC99
-}
-
-Olive
-{
- #2F371F #7B7F50
-Console:
- #373F27 #7B7F63 0 127
- #676B4F #D1D8A8 128 256
-Flat:
- #D1D8A8
-}
-
-DarkGreen "Dark Green"
-{
- #0B1707 #439337
-Console:
- #000000 #005800 0 127
- #008C00 #DCFFDC 128 256
-Flat:
- #008C00
-}
-
-DarkRed "Dark Red"
-{
- #2B0000 #AF2B2B
-Console:
- #000000 #730000 0 127
- #800000 #FFDCDC 128 255
-Flat:
- #800000
-}
-
-DarkBrown "Dark Brown"
-{
- #1F170B #A36B3F
-Console:
- #2B230F #773000 0 127
- #735743 #F7BD58 128 256
-Flat:
- #663333
-}
-
-Purple
-{
- #230023 #CF00CF
-Console:
- #000000 #9F009B 0 127
- #FF00FF #FFFFFF 128 256
-Flat:
- #9966CC
-}
-
-DarkGray DarkGrey "Dark Gray" "Dark Grey"
-{
- #232323 #8B8B8B
-Console:
- #000000 #646464 0 127
- #404040 #B4B4B4 128 256
-Flat:
- #808080
-}
diff --git a/wadsrc/tlgl.png b/wadsrc/tlgl.png
deleted file mode 100644
index 829a2552..00000000
Binary files a/wadsrc/tlgl.png and /dev/null differ
diff --git a/wadsrc/tnt1a0.png b/wadsrc/tnt1a0.png
deleted file mode 100644
index 9320aac8..00000000
Binary files a/wadsrc/tnt1a0.png and /dev/null differ
diff --git a/wadsrc/unkna0.png b/wadsrc/unkna0.png
deleted file mode 100644
index ba4d0581..00000000
Binary files a/wadsrc/unkna0.png and /dev/null differ
diff --git a/wadsrc/vga-rom.f16 b/wadsrc/vga-rom.f16
deleted file mode 100644
index 672d0e1a..00000000
Binary files a/wadsrc/vga-rom.f16 and /dev/null differ
diff --git a/wadsrc/wadsrc.vcproj b/wadsrc/wadsrc.vcproj
index 874f260a..7e249038 100644
--- a/wadsrc/wadsrc.vcproj
+++ b/wadsrc/wadsrc.vcproj
@@ -22,708 +22,96 @@
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
- ConfigurationType="0"
+ ConfigurationType="10"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
>
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/wadsrc/x11r6rgb.txt b/wadsrc/x11r6rgb.txt
deleted file mode 100644
index 45602000..00000000
--- a/wadsrc/x11r6rgb.txt
+++ /dev/null
@@ -1,757 +0,0 @@
-! $XConsortium: rgb.txt,v 10.41 94/02/20 18:39:36 rws Exp $
-
-255 250 250 snow
-248 248 255 ghost white
-248 248 255 GhostWhite
-245 245 245 white smoke
-245 245 245 WhiteSmoke
-220 220 220 gainsboro
-255 250 240 floral white
-255 250 240 FloralWhite
-253 245 230 old lace
-253 245 230 OldLace
-250 240 230 linen
-250 235 215 antique white
-250 235 215 AntiqueWhite
-255 239 213 papaya whip
-255 239 213 PapayaWhip
-255 235 205 blanched almond
-255 235 205 BlanchedAlmond
-255 228 196 bisque
-255 218 185 peach puff
-255 218 185 PeachPuff
-255 222 173 navajo white
-255 222 173 NavajoWhite
-255 228 181 moccasin
-255 248 220 cornsilk
-255 255 240 ivory
-255 250 205 lemon chiffon
-255 250 205 LemonChiffon
-255 245 238 seashell
-240 255 240 honeydew
-245 255 250 mint cream
-245 255 250 MintCream
-240 255 255 azure
-240 248 255 alice blue
-240 248 255 AliceBlue
-230 230 250 lavender
-255 240 245 lavender blush
-255 240 245 LavenderBlush
-255 228 225 misty rose
-255 228 225 MistyRose
-255 255 255 white
- 0 0 0 black
- 47 79 79 dark slate gray
- 47 79 79 DarkSlateGray
- 47 79 79 dark slate grey
- 47 79 79 DarkSlateGrey
-105 105 105 dim gray
-105 105 105 DimGray
-105 105 105 dim grey
-105 105 105 DimGrey
-112 128 144 slate gray
-112 128 144 SlateGray
-112 128 144 slate grey
-112 128 144 SlateGrey
-119 136 153 light slate gray
-119 136 153 LightSlateGray
-119 136 153 light slate grey
-119 136 153 LightSlateGrey
-190 190 190 gray
-190 190 190 grey
-211 211 211 light grey
-211 211 211 LightGrey
-211 211 211 light gray
-211 211 211 LightGray
- 25 25 112 midnight blue
- 25 25 112 MidnightBlue
- 0 0 128 navy
- 0 0 128 navy blue
- 0 0 128 NavyBlue
-100 149 237 cornflower blue
-100 149 237 CornflowerBlue
- 72 61 139 dark slate blue
- 72 61 139 DarkSlateBlue
-106 90 205 slate blue
-106 90 205 SlateBlue
-123 104 238 medium slate blue
-123 104 238 MediumSlateBlue
-132 112 255 light slate blue
-132 112 255 LightSlateBlue
- 0 0 205 medium blue
- 0 0 205 MediumBlue
- 65 105 225 royal blue
- 65 105 225 RoyalBlue
- 0 0 255 blue
- 30 144 255 dodger blue
- 30 144 255 DodgerBlue
- 0 191 255 deep sky blue
- 0 191 255 DeepSkyBlue
-135 206 235 sky blue
-135 206 235 SkyBlue
-135 206 250 light sky blue
-135 206 250 LightSkyBlue
- 70 130 180 steel blue
- 70 130 180 SteelBlue
-176 196 222 light steel blue
-176 196 222 LightSteelBlue
-173 216 230 light blue
-173 216 230 LightBlue
-176 224 230 powder blue
-176 224 230 PowderBlue
-175 238 238 pale turquoise
-175 238 238 PaleTurquoise
- 0 206 209 dark turquoise
- 0 206 209 DarkTurquoise
- 72 209 204 medium turquoise
- 72 209 204 MediumTurquoise
- 64 224 208 turquoise
- 0 255 255 cyan
-224 255 255 light cyan
-224 255 255 LightCyan
- 95 158 160 cadet blue
- 95 158 160 CadetBlue
-102 205 170 medium aquamarine
-102 205 170 MediumAquamarine
-127 255 212 aquamarine
- 0 100 0 dark green
- 0 100 0 DarkGreen
- 85 107 47 dark olive green
- 85 107 47 DarkOliveGreen
-143 188 143 dark sea green
-143 188 143 DarkSeaGreen
- 46 139 87 sea green
- 46 139 87 SeaGreen
- 60 179 113 medium sea green
- 60 179 113 MediumSeaGreen
- 32 178 170 light sea green
- 32 178 170 LightSeaGreen
-152 251 152 pale green
-152 251 152 PaleGreen
- 0 255 127 spring green
- 0 255 127 SpringGreen
-124 252 0 lawn green
-124 252 0 LawnGreen
- 0 255 0 green
-127 255 0 chartreuse
- 0 250 154 medium spring green
- 0 250 154 MediumSpringGreen
-173 255 47 green yellow
-173 255 47 GreenYellow
- 50 205 50 lime green
- 50 205 50 LimeGreen
-154 205 50 yellow green
-154 205 50 YellowGreen
- 34 139 34 forest green
- 34 139 34 ForestGreen
-107 142 35 olive drab
-107 142 35 OliveDrab
-189 183 107 dark khaki
-189 183 107 DarkKhaki
-240 230 140 khaki
-238 232 170 pale goldenrod
-238 232 170 PaleGoldenrod
-250 250 210 light goldenrod yellow
-250 250 210 LightGoldenrodYellow
-255 255 224 light yellow
-255 255 224 LightYellow
-255 255 0 yellow
-255 215 0 gold
-238 221 130 light goldenrod
-238 221 130 LightGoldenrod
-218 165 32 goldenrod
-184 134 11 dark goldenrod
-184 134 11 DarkGoldenrod
-188 143 143 rosy brown
-188 143 143 RosyBrown
-205 92 92 indian red
-205 92 92 IndianRed
-139 69 19 saddle brown
-139 69 19 SaddleBrown
-160 82 45 sienna
-205 133 63 peru
-222 184 135 burlywood
-245 245 220 beige
-245 222 179 wheat
-244 164 96 sandy brown
-244 164 96 SandyBrown
-210 180 140 tan
-210 105 30 chocolate
-178 34 34 firebrick
-165 42 42 brown
-233 150 122 dark salmon
-233 150 122 DarkSalmon
-250 128 114 salmon
-255 160 122 light salmon
-255 160 122 LightSalmon
-255 165 0 orange
-255 140 0 dark orange
-255 140 0 DarkOrange
-255 127 80 coral
-240 128 128 light coral
-240 128 128 LightCoral
-255 99 71 tomato
-255 69 0 orange red
-255 69 0 OrangeRed
-255 0 0 red
-255 105 180 hot pink
-255 105 180 HotPink
-255 20 147 deep pink
-255 20 147 DeepPink
-255 192 203 pink
-255 182 193 light pink
-255 182 193 LightPink
-219 112 147 pale violet red
-219 112 147 PaleVioletRed
-176 48 96 maroon
-199 21 133 medium violet red
-199 21 133 MediumVioletRed
-208 32 144 violet red
-208 32 144 VioletRed
-255 0 255 magenta
-238 130 238 violet
-221 160 221 plum
-218 112 214 orchid
-186 85 211 medium orchid
-186 85 211 MediumOrchid
-153 50 204 dark orchid
-153 50 204 DarkOrchid
-148 0 211 dark violet
-148 0 211 DarkViolet
-138 43 226 blue violet
-138 43 226 BlueViolet
-160 32 240 purple
-147 112 219 medium purple
-147 112 219 MediumPurple
-216 191 216 thistle
-255 250 250 snow1
-238 233 233 snow2
-205 201 201 snow3
-139 137 137 snow4
-255 245 238 seashell1
-238 229 222 seashell2
-205 197 191 seashell3
-139 134 130 seashell4
-255 239 219 AntiqueWhite1
-238 223 204 AntiqueWhite2
-205 192 176 AntiqueWhite3
-139 131 120 AntiqueWhite4
-255 228 196 bisque1
-238 213 183 bisque2
-205 183 158 bisque3
-139 125 107 bisque4
-255 218 185 PeachPuff1
-238 203 173 PeachPuff2
-205 175 149 PeachPuff3
-139 119 101 PeachPuff4
-255 222 173 NavajoWhite1
-238 207 161 NavajoWhite2
-205 179 139 NavajoWhite3
-139 121 94 NavajoWhite4
-255 250 205 LemonChiffon1
-238 233 191 LemonChiffon2
-205 201 165 LemonChiffon3
-139 137 112 LemonChiffon4
-255 248 220 cornsilk1
-238 232 205 cornsilk2
-205 200 177 cornsilk3
-139 136 120 cornsilk4
-255 255 240 ivory1
-238 238 224 ivory2
-205 205 193 ivory3
-139 139 131 ivory4
-240 255 240 honeydew1
-224 238 224 honeydew2
-193 205 193 honeydew3
-131 139 131 honeydew4
-255 240 245 LavenderBlush1
-238 224 229 LavenderBlush2
-205 193 197 LavenderBlush3
-139 131 134 LavenderBlush4
-255 228 225 MistyRose1
-238 213 210 MistyRose2
-205 183 181 MistyRose3
-139 125 123 MistyRose4
-240 255 255 azure1
-224 238 238 azure2
-193 205 205 azure3
-131 139 139 azure4
-131 111 255 SlateBlue1
-122 103 238 SlateBlue2
-105 89 205 SlateBlue3
- 71 60 139 SlateBlue4
- 72 118 255 RoyalBlue1
- 67 110 238 RoyalBlue2
- 58 95 205 RoyalBlue3
- 39 64 139 RoyalBlue4
- 0 0 255 blue1
- 0 0 238 blue2
- 0 0 205 blue3
- 0 0 139 blue4
- 30 144 255 DodgerBlue1
- 28 134 238 DodgerBlue2
- 24 116 205 DodgerBlue3
- 16 78 139 DodgerBlue4
- 99 184 255 SteelBlue1
- 92 172 238 SteelBlue2
- 79 148 205 SteelBlue3
- 54 100 139 SteelBlue4
- 0 191 255 DeepSkyBlue1
- 0 178 238 DeepSkyBlue2
- 0 154 205 DeepSkyBlue3
- 0 104 139 DeepSkyBlue4
-135 206 255 SkyBlue1
-126 192 238 SkyBlue2
-108 166 205 SkyBlue3
- 74 112 139 SkyBlue4
-176 226 255 LightSkyBlue1
-164 211 238 LightSkyBlue2
-141 182 205 LightSkyBlue3
- 96 123 139 LightSkyBlue4
-198 226 255 SlateGray1
-185 211 238 SlateGray2
-159 182 205 SlateGray3
-108 123 139 SlateGray4
-202 225 255 LightSteelBlue1
-188 210 238 LightSteelBlue2
-162 181 205 LightSteelBlue3
-110 123 139 LightSteelBlue4
-191 239 255 LightBlue1
-178 223 238 LightBlue2
-154 192 205 LightBlue3
-104 131 139 LightBlue4
-224 255 255 LightCyan1
-209 238 238 LightCyan2
-180 205 205 LightCyan3
-122 139 139 LightCyan4
-187 255 255 PaleTurquoise1
-174 238 238 PaleTurquoise2
-150 205 205 PaleTurquoise3
-102 139 139 PaleTurquoise4
-152 245 255 CadetBlue1
-142 229 238 CadetBlue2
-122 197 205 CadetBlue3
- 83 134 139 CadetBlue4
- 0 245 255 turquoise1
- 0 229 238 turquoise2
- 0 197 205 turquoise3
- 0 134 139 turquoise4
- 0 255 255 cyan1
- 0 238 238 cyan2
- 0 205 205 cyan3
- 0 139 139 cyan4
-151 255 255 DarkSlateGray1
-141 238 238 DarkSlateGray2
-121 205 205 DarkSlateGray3
- 82 139 139 DarkSlateGray4
-127 255 212 aquamarine1
-118 238 198 aquamarine2
-102 205 170 aquamarine3
- 69 139 116 aquamarine4
-193 255 193 DarkSeaGreen1
-180 238 180 DarkSeaGreen2
-155 205 155 DarkSeaGreen3
-105 139 105 DarkSeaGreen4
- 84 255 159 SeaGreen1
- 78 238 148 SeaGreen2
- 67 205 128 SeaGreen3
- 46 139 87 SeaGreen4
-154 255 154 PaleGreen1
-144 238 144 PaleGreen2
-124 205 124 PaleGreen3
- 84 139 84 PaleGreen4
- 0 255 127 SpringGreen1
- 0 238 118 SpringGreen2
- 0 205 102 SpringGreen3
- 0 139 69 SpringGreen4
- 0 255 0 green1
- 0 238 0 green2
- 0 205 0 green3
- 0 139 0 green4
-127 255 0 chartreuse1
-118 238 0 chartreuse2
-102 205 0 chartreuse3
- 69 139 0 chartreuse4
-192 255 62 OliveDrab1
-179 238 58 OliveDrab2
-154 205 50 OliveDrab3
-105 139 34 OliveDrab4
-202 255 112 DarkOliveGreen1
-188 238 104 DarkOliveGreen2
-162 205 90 DarkOliveGreen3
-110 139 61 DarkOliveGreen4
-255 246 143 khaki1
-238 230 133 khaki2
-205 198 115 khaki3
-139 134 78 khaki4
-255 236 139 LightGoldenrod1
-238 220 130 LightGoldenrod2
-205 190 112 LightGoldenrod3
-139 129 76 LightGoldenrod4
-255 255 224 LightYellow1
-238 238 209 LightYellow2
-205 205 180 LightYellow3
-139 139 122 LightYellow4
-255 255 0 yellow1
-238 238 0 yellow2
-205 205 0 yellow3
-139 139 0 yellow4
-255 215 0 gold1
-238 201 0 gold2
-205 173 0 gold3
-139 117 0 gold4
-255 193 37 goldenrod1
-238 180 34 goldenrod2
-205 155 29 goldenrod3
-139 105 20 goldenrod4
-255 185 15 DarkGoldenrod1
-238 173 14 DarkGoldenrod2
-205 149 12 DarkGoldenrod3
-139 101 8 DarkGoldenrod4
-255 193 193 RosyBrown1
-238 180 180 RosyBrown2
-205 155 155 RosyBrown3
-139 105 105 RosyBrown4
-255 106 106 IndianRed1
-238 99 99 IndianRed2
-205 85 85 IndianRed3
-139 58 58 IndianRed4
-255 130 71 sienna1
-238 121 66 sienna2
-205 104 57 sienna3
-139 71 38 sienna4
-255 211 155 burlywood1
-238 197 145 burlywood2
-205 170 125 burlywood3
-139 115 85 burlywood4
-255 231 186 wheat1
-238 216 174 wheat2
-205 186 150 wheat3
-139 126 102 wheat4
-255 165 79 tan1
-238 154 73 tan2
-205 133 63 tan3
-139 90 43 tan4
-255 127 36 chocolate1
-238 118 33 chocolate2
-205 102 29 chocolate3
-139 69 19 chocolate4
-255 48 48 firebrick1
-238 44 44 firebrick2
-205 38 38 firebrick3
-139 26 26 firebrick4
-255 64 64 brown1
-238 59 59 brown2
-205 51 51 brown3
-139 35 35 brown4
-255 140 105 salmon1
-238 130 98 salmon2
-205 112 84 salmon3
-139 76 57 salmon4
-255 160 122 LightSalmon1
-238 149 114 LightSalmon2
-205 129 98 LightSalmon3
-139 87 66 LightSalmon4
-255 165 0 orange1
-238 154 0 orange2
-205 133 0 orange3
-139 90 0 orange4
-255 127 0 DarkOrange1
-238 118 0 DarkOrange2
-205 102 0 DarkOrange3
-139 69 0 DarkOrange4
-255 114 86 coral1
-238 106 80 coral2
-205 91 69 coral3
-139 62 47 coral4
-255 99 71 tomato1
-238 92 66 tomato2
-205 79 57 tomato3
-139 54 38 tomato4
-255 69 0 OrangeRed1
-238 64 0 OrangeRed2
-205 55 0 OrangeRed3
-139 37 0 OrangeRed4
-255 0 0 red1
-238 0 0 red2
-205 0 0 red3
-139 0 0 red4
-255 20 147 DeepPink1
-238 18 137 DeepPink2
-205 16 118 DeepPink3
-139 10 80 DeepPink4
-255 110 180 HotPink1
-238 106 167 HotPink2
-205 96 144 HotPink3
-139 58 98 HotPink4
-255 181 197 pink1
-238 169 184 pink2
-205 145 158 pink3
-139 99 108 pink4
-255 174 185 LightPink1
-238 162 173 LightPink2
-205 140 149 LightPink3
-139 95 101 LightPink4
-255 130 171 PaleVioletRed1
-238 121 159 PaleVioletRed2
-205 104 137 PaleVioletRed3
-139 71 93 PaleVioletRed4
-255 52 179 maroon1
-238 48 167 maroon2
-205 41 144 maroon3
-139 28 98 maroon4
-255 62 150 VioletRed1
-238 58 140 VioletRed2
-205 50 120 VioletRed3
-139 34 82 VioletRed4
-255 0 255 magenta1
-238 0 238 magenta2
-205 0 205 magenta3
-139 0 139 magenta4
-255 131 250 orchid1
-238 122 233 orchid2
-205 105 201 orchid3
-139 71 137 orchid4
-255 187 255 plum1
-238 174 238 plum2
-205 150 205 plum3
-139 102 139 plum4
-224 102 255 MediumOrchid1
-209 95 238 MediumOrchid2
-180 82 205 MediumOrchid3
-122 55 139 MediumOrchid4
-191 62 255 DarkOrchid1
-178 58 238 DarkOrchid2
-154 50 205 DarkOrchid3
-104 34 139 DarkOrchid4
-155 48 255 purple1
-145 44 238 purple2
-125 38 205 purple3
- 85 26 139 purple4
-171 130 255 MediumPurple1
-159 121 238 MediumPurple2
-137 104 205 MediumPurple3
- 93 71 139 MediumPurple4
-255 225 255 thistle1
-238 210 238 thistle2
-205 181 205 thistle3
-139 123 139 thistle4
- 0 0 0 gray0
- 0 0 0 grey0
- 3 3 3 gray1
- 3 3 3 grey1
- 5 5 5 gray2
- 5 5 5 grey2
- 8 8 8 gray3
- 8 8 8 grey3
- 10 10 10 gray4
- 10 10 10 grey4
- 13 13 13 gray5
- 13 13 13 grey5
- 15 15 15 gray6
- 15 15 15 grey6
- 18 18 18 gray7
- 18 18 18 grey7
- 20 20 20 gray8
- 20 20 20 grey8
- 23 23 23 gray9
- 23 23 23 grey9
- 26 26 26 gray10
- 26 26 26 grey10
- 28 28 28 gray11
- 28 28 28 grey11
- 31 31 31 gray12
- 31 31 31 grey12
- 33 33 33 gray13
- 33 33 33 grey13
- 36 36 36 gray14
- 36 36 36 grey14
- 38 38 38 gray15
- 38 38 38 grey15
- 41 41 41 gray16
- 41 41 41 grey16
- 43 43 43 gray17
- 43 43 43 grey17
- 46 46 46 gray18
- 46 46 46 grey18
- 48 48 48 gray19
- 48 48 48 grey19
- 51 51 51 gray20
- 51 51 51 grey20
- 54 54 54 gray21
- 54 54 54 grey21
- 56 56 56 gray22
- 56 56 56 grey22
- 59 59 59 gray23
- 59 59 59 grey23
- 61 61 61 gray24
- 61 61 61 grey24
- 64 64 64 gray25
- 64 64 64 grey25
- 66 66 66 gray26
- 66 66 66 grey26
- 69 69 69 gray27
- 69 69 69 grey27
- 71 71 71 gray28
- 71 71 71 grey28
- 74 74 74 gray29
- 74 74 74 grey29
- 77 77 77 gray30
- 77 77 77 grey30
- 79 79 79 gray31
- 79 79 79 grey31
- 82 82 82 gray32
- 82 82 82 grey32
- 84 84 84 gray33
- 84 84 84 grey33
- 87 87 87 gray34
- 87 87 87 grey34
- 89 89 89 gray35
- 89 89 89 grey35
- 92 92 92 gray36
- 92 92 92 grey36
- 94 94 94 gray37
- 94 94 94 grey37
- 97 97 97 gray38
- 97 97 97 grey38
- 99 99 99 gray39
- 99 99 99 grey39
-102 102 102 gray40
-102 102 102 grey40
-105 105 105 gray41
-105 105 105 grey41
-107 107 107 gray42
-107 107 107 grey42
-110 110 110 gray43
-110 110 110 grey43
-112 112 112 gray44
-112 112 112 grey44
-115 115 115 gray45
-115 115 115 grey45
-117 117 117 gray46
-117 117 117 grey46
-120 120 120 gray47
-120 120 120 grey47
-122 122 122 gray48
-122 122 122 grey48
-125 125 125 gray49
-125 125 125 grey49
-127 127 127 gray50
-127 127 127 grey50
-130 130 130 gray51
-130 130 130 grey51
-133 133 133 gray52
-133 133 133 grey52
-135 135 135 gray53
-135 135 135 grey53
-138 138 138 gray54
-138 138 138 grey54
-140 140 140 gray55
-140 140 140 grey55
-143 143 143 gray56
-143 143 143 grey56
-145 145 145 gray57
-145 145 145 grey57
-148 148 148 gray58
-148 148 148 grey58
-150 150 150 gray59
-150 150 150 grey59
-153 153 153 gray60
-153 153 153 grey60
-156 156 156 gray61
-156 156 156 grey61
-158 158 158 gray62
-158 158 158 grey62
-161 161 161 gray63
-161 161 161 grey63
-163 163 163 gray64
-163 163 163 grey64
-166 166 166 gray65
-166 166 166 grey65
-168 168 168 gray66
-168 168 168 grey66
-171 171 171 gray67
-171 171 171 grey67
-173 173 173 gray68
-173 173 173 grey68
-176 176 176 gray69
-176 176 176 grey69
-179 179 179 gray70
-179 179 179 grey70
-181 181 181 gray71
-181 181 181 grey71
-184 184 184 gray72
-184 184 184 grey72
-186 186 186 gray73
-186 186 186 grey73
-189 189 189 gray74
-189 189 189 grey74
-191 191 191 gray75
-191 191 191 grey75
-194 194 194 gray76
-194 194 194 grey76
-196 196 196 gray77
-196 196 196 grey77
-199 199 199 gray78
-199 199 199 grey78
-201 201 201 gray79
-201 201 201 grey79
-204 204 204 gray80
-204 204 204 grey80
-207 207 207 gray81
-207 207 207 grey81
-209 209 209 gray82
-209 209 209 grey82
-212 212 212 gray83
-212 212 212 grey83
-214 214 214 gray84
-214 214 214 grey84
-217 217 217 gray85
-217 217 217 grey85
-219 219 219 gray86
-219 219 219 grey86
-222 222 222 gray87
-222 222 222 grey87
-224 224 224 gray88
-224 224 224 grey88
-227 227 227 gray89
-227 227 227 grey89
-229 229 229 gray90
-229 229 229 grey90
-232 232 232 gray91
-232 232 232 grey91
-235 235 235 gray92
-235 235 235 grey92
-237 237 237 gray93
-237 237 237 grey93
-240 240 240 gray94
-240 240 240 grey94
-242 242 242 gray95
-242 242 242 grey95
-245 245 245 gray96
-245 245 245 grey96
-247 247 247 gray97
-247 247 247 grey97
-250 250 250 gray98
-250 250 250 grey98
-252 252 252 gray99
-252 252 252 grey99
-255 255 255 gray100
-255 255 255 grey100
-169 169 169 dark grey
-169 169 169 DarkGrey
-169 169 169 dark gray
-169 169 169 DarkGray
-0 0 139 dark blue
-0 0 139 DarkBlue
-0 139 139 dark cyan
-0 139 139 DarkCyan
-139 0 139 dark magenta
-139 0 139 DarkMagenta
-139 0 0 dark red
-139 0 0 DarkRed
-144 238 144 light green
-144 238 144 LightGreen
-
-
-
\ No newline at end of file
diff --git a/wadsrc/xhairb1.imgz b/wadsrc/xhairb1.imgz
deleted file mode 100644
index 7dc9001c..00000000
Binary files a/wadsrc/xhairb1.imgz and /dev/null differ
diff --git a/wadsrc/xhairb2.png b/wadsrc/xhairb2.png
deleted file mode 100644
index 003a746d..00000000
Binary files a/wadsrc/xhairb2.png and /dev/null differ
diff --git a/wadsrc/xhairb3.imgz b/wadsrc/xhairb3.imgz
deleted file mode 100644
index c3bd90aa..00000000
Binary files a/wadsrc/xhairb3.imgz and /dev/null differ
diff --git a/wadsrc/xhairb4.imgz b/wadsrc/xhairb4.imgz
deleted file mode 100644
index 38a7eb83..00000000
Binary files a/wadsrc/xhairb4.imgz and /dev/null differ
diff --git a/wadsrc/xhairb5.imgz b/wadsrc/xhairb5.imgz
deleted file mode 100644
index 613b974a..00000000
Binary files a/wadsrc/xhairb5.imgz and /dev/null differ
diff --git a/wadsrc/xhairb6.imgz b/wadsrc/xhairb6.imgz
deleted file mode 100644
index f730863e..00000000
Binary files a/wadsrc/xhairb6.imgz and /dev/null differ
diff --git a/wadsrc/xhairb7.imgz b/wadsrc/xhairb7.imgz
deleted file mode 100644
index f059aa31..00000000
Binary files a/wadsrc/xhairb7.imgz and /dev/null differ
diff --git a/wadsrc/xhairs.txt b/wadsrc/xhairs.txt
deleted file mode 100644
index 07ceaec3..00000000
--- a/wadsrc/xhairs.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-1 "Cross 1"
-2 "Cross 2"
-3 "X"
-4 "Circle"
-5 "Angle"
-6 "Triangle"
-7 "Dot"
diff --git a/wadsrc/xhairs1.imgz b/wadsrc/xhairs1.imgz
deleted file mode 100644
index 00aa6541..00000000
Binary files a/wadsrc/xhairs1.imgz and /dev/null differ
diff --git a/wadsrc/xhairs2.imgz b/wadsrc/xhairs2.imgz
deleted file mode 100644
index 0ed50d02..00000000
Binary files a/wadsrc/xhairs2.imgz and /dev/null differ
diff --git a/wadsrc/xhairs3.imgz b/wadsrc/xhairs3.imgz
deleted file mode 100644
index 066b6741..00000000
Binary files a/wadsrc/xhairs3.imgz and /dev/null differ
diff --git a/wadsrc/xhairs4.imgz b/wadsrc/xhairs4.imgz
deleted file mode 100644
index 8d3036d3..00000000
Binary files a/wadsrc/xhairs4.imgz and /dev/null differ
diff --git a/wadsrc/xhairs5.imgz b/wadsrc/xhairs5.imgz
deleted file mode 100644
index 482fb898..00000000
Binary files a/wadsrc/xhairs5.imgz and /dev/null differ
diff --git a/wadsrc/xhairs6.imgz b/wadsrc/xhairs6.imgz
deleted file mode 100644
index 6a996c92..00000000
Binary files a/wadsrc/xhairs6.imgz and /dev/null differ
diff --git a/wadsrc/xhairs7.imgz b/wadsrc/xhairs7.imgz
deleted file mode 100644
index 520c2817..00000000
Binary files a/wadsrc/xhairs7.imgz and /dev/null differ
diff --git a/wadsrc/xlat/base.txt b/wadsrc/xlat/base.txt
deleted file mode 100644
index cdf0fea4..00000000
--- a/wadsrc/xlat/base.txt
+++ /dev/null
@@ -1,553 +0,0 @@
-include "xlat/defines.i"
-
- 1 = USE|MONST|REP, Door_Raise (0, D_SLOW, VDOORWAIT, tag)
- 2 = WALK, Door_Open (tag, D_SLOW)
- 3 = WALK, Door_Close (tag, D_SLOW)
- 4 = WALK|MONST, Door_Raise (tag, D_SLOW, VDOORWAIT)
- 5 = WALK, Floor_RaiseToLowestCeiling (tag, F_SLOW)
- 6 = WALK, Ceiling_CrushAndRaiseA (tag, C_NORMAL, C_NORMAL, 10)
- 7 = USE, Stairs_BuildUpDoom (tag, ST_SLOW, 8)
- 8 = WALK, Stairs_BuildUpDoom (tag, ST_SLOW, 8)
- 9 = USE, Floor_Donut (tag, DORATE, DORATE)
- 10 = WALK|MONST, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT, 0)
- 11 = USE, Exit_Normal (0)
- 12 = WALK, Light_MaxNeighbor (tag)
- 13 = WALK, Light_ChangeToValue (tag, 255)
- 14 = USE, Plat_UpByValueStayTx (tag, P_SLOW/2, 4)
- 15 = USE, Plat_UpByValueStayTx (tag, P_SLOW/2, 3)
- 16 = WALK, Door_CloseWaitOpen (tag, D_SLOW, 240)
- 17 = WALK, Light_StrobeDoom (tag, 5, 35)
- 18 = USE, Floor_RaiseToNearest (tag, F_SLOW)
- 19 = WALK, Floor_LowerToHighest (tag, F_SLOW, 128)
- 20 = USE, Plat_RaiseAndStayTx0 (tag, P_SLOW/2)
- 21 = USE, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT)
- 22 = WALK, Plat_RaiseAndStayTx0 (tag, P_SLOW/2)
- 23 = USE, Floor_LowerToLowest (tag, F_SLOW)
- 24 = SHOOT, Floor_RaiseToLowestCeiling (tag, F_SLOW)
- 25 = WALK, Ceiling_CrushAndRaiseA (tag, C_SLOW, C_SLOW, 10)
- 26 = USE|REP, Door_LockedRaise (0, D_SLOW, VDOORWAIT, BCard | CardIsSkull, tag)
- 27 = USE|REP, Door_LockedRaise (0, D_SLOW, VDOORWAIT, YCard | CardIsSkull, tag)
- 28 = USE|REP, Door_LockedRaise (0, D_SLOW, VDOORWAIT, RCard | CardIsSkull, tag)
- 29 = USE, Door_Raise (tag, D_SLOW, VDOORWAIT)
- 30 = WALK, Floor_RaiseByTexture (tag, F_SLOW)
- 31 = USE, Door_Open (0, D_SLOW, tag)
- 32 = USE|MONST, Door_LockedRaise (0, D_SLOW, 0, BCard | CardIsSkull, tag)
- 33 = USE|MONST, Door_LockedRaise (0, D_SLOW, 0, RCard | CardIsSkull, tag)
- 34 = USE|MONST, Door_LockedRaise (0, D_SLOW, 0, YCard | CardIsSkull, tag)
- 35 = WALK, Light_ChangeToValue (tag, 35)
- 36 = WALK, Floor_LowerToHighest (tag, F_FAST, 136)
- 37 = WALK, Floor_LowerToLowestTxTy (tag, F_SLOW)
- 38 = WALK, Floor_LowerToLowest (tag, F_SLOW)
- 39 = WALK|MONST, Teleport (0, tag)
- 40 = WALK, Generic_Ceiling (tag, C_SLOW, 0, 1, 8)
- 41 = USE, Ceiling_LowerToFloor (tag, C_SLOW)
- 42 = USE|REP, Door_Close (tag, D_SLOW)
- 43 = USE|REP, Ceiling_LowerToFloor (tag, C_SLOW)
- 44 = WALK, Ceiling_LowerAndCrush (tag, C_SLOW, 0)
- 45 = USE|REP, Floor_LowerToHighest (tag, F_SLOW, 128)
- 46 = SHOOT|REP|MONST, Door_Open (tag, D_SLOW)
- 47 = SHOOT, Plat_RaiseAndStayTx0 (tag, P_SLOW/2)
- 48 = 0, Scroll_Texture_Left (SCROLL_UNIT)
- 49 = USE, Ceiling_CrushAndRaiseA (tag, C_SLOW, C_SLOW, 10)
- 50 = USE, Door_Close (tag, D_SLOW)
- 51 = USE, Exit_Secret (0)
- 52 = WALK, Exit_Normal (0)
- 53 = WALK, Plat_PerpetualRaiseLip (tag, P_SLOW, PLATWAIT, 0)
- 54 = WALK, Plat_Stop (tag)
- 55 = USE, Floor_RaiseAndCrush (tag, F_SLOW, 10)
- 56 = WALK, Floor_RaiseAndCrush (tag, F_SLOW, 10)
- 57 = WALK, Ceiling_CrushStop (tag)
- 58 = WALK, Floor_RaiseByValue (tag, F_SLOW, 24)
- 59 = WALK, Floor_RaiseByValueTxTy (tag, F_SLOW, 24)
- 60 = USE|REP, Floor_LowerToLowest (tag, F_SLOW)
- 61 = USE|REP, Door_Open (tag, D_SLOW)
- 62 = USE|REP, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT, 0)
- 63 = USE|REP, Door_Raise (tag, D_SLOW, VDOORWAIT)
- 64 = USE|REP, Floor_RaiseToLowestCeiling (tag, F_SLOW)
- 65 = USE|REP, Floor_RaiseAndCrush (tag, F_SLOW, 10)
- 66 = USE|REP, Plat_UpByValueStayTx (tag, P_SLOW/2, 3)
- 67 = USE|REP, Plat_UpByValueStayTx (tag, P_SLOW/2, 4)
- 68 = USE|REP, Plat_RaiseAndStayTx0 (tag, P_SLOW/2)
- 69 = USE|REP, Floor_RaiseToNearest (tag, F_SLOW)
- 70 = USE|REP, Floor_LowerToHighest (tag, F_FAST, 136)
- 71 = USE, Floor_LowerToHighest (tag, F_FAST, 136)
- 72 = WALK|REP, Ceiling_LowerAndCrush (tag, C_SLOW, 0)
- 73 = WALK|REP, Ceiling_CrushAndRaiseA (tag, C_SLOW, C_SLOW, 10)
- 74 = WALK|REP, Ceiling_CrushStop (tag)
- 75 = WALK|REP, Door_Close (tag, D_SLOW)
- 76 = WALK|REP, Door_CloseWaitOpen (tag, D_SLOW, 240)
- 77 = WALK|REP, Ceiling_CrushAndRaiseA (tag, C_NORMAL, C_NORMAL, 10)
- 78 = USE|REP, Floor_TransferNumeric (tag) // <- BOOM special
- 79 = WALK|REP, Light_ChangeToValue (tag, 35)
- 80 = WALK|REP, Light_MaxNeighbor (tag)
- 81 = WALK|REP, Light_ChangeToValue (tag, 255)
- 82 = WALK|REP, Floor_LowerToLowest (tag, F_SLOW)
- 83 = WALK|REP, Floor_LowerToHighest (tag, F_SLOW, 128)
- 84 = WALK|REP, Floor_LowerToLowestTxTy (tag, F_SLOW)
- 85 = 0, Scroll_Texture_Right (SCROLL_UNIT) // <- BOOM special
- 86 = WALK|REP, Door_Open (tag, D_SLOW)
- 87 = WALK|REP, Plat_PerpetualRaiseLip (tag, P_SLOW, PLATWAIT, 0)
- 88 = WALK|REP|MONST, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT, 0)
- 89 = WALK|REP, Plat_Stop (tag)
- 90 = WALK|REP, Door_Raise (tag, D_SLOW, VDOORWAIT)
- 91 = WALK|REP, Floor_RaiseToLowestCeiling (tag, F_SLOW)
- 92 = WALK|REP, Floor_RaiseByValue (tag, F_SLOW, 24)
- 93 = WALK|REP, Floor_RaiseByValueTxTy (tag, F_SLOW, 24)
- 94 = WALK|REP, Floor_RaiseAndCrush (tag, F_SLOW, 10)
- 95 = WALK|REP, Plat_RaiseAndStayTx0 (tag, P_SLOW/2)
- 96 = WALK|REP, Floor_RaiseByTexture (tag, F_SLOW)
- 97 = WALK|REP|MONST, Teleport (0, tag)
- 98 = WALK|REP, Floor_LowerToHighest (tag, F_FAST, 136)
- 99 = USE|REP, Door_LockedRaise (tag, D_FAST, 0, BCard | CardIsSkull)
-100 = WALK, Stairs_BuildUpDoom (tag, ST_TURBO, 16, 0, 0)
-101 = USE, Floor_RaiseToLowestCeiling (tag, F_SLOW)
-102 = USE, Floor_LowerToHighest (tag, F_SLOW, 128)
-103 = USE, Door_Open (tag, D_SLOW)
-104 = WALK, Light_MinNeighbor (tag)
-105 = WALK|REP, Door_Raise (tag, D_FAST, VDOORWAIT)
-106 = WALK|REP, Door_Open (tag, D_FAST)
-107 = WALK|REP, Door_Close (tag, D_FAST)
-108 = WALK, Door_Raise (tag, D_FAST, VDOORWAIT)
-109 = WALK, Door_Open (tag, D_FAST)
-110 = WALK, Door_Close (tag, D_FAST)
-111 = USE, Door_Raise (tag, D_FAST, VDOORWAIT)
-112 = USE, Door_Open (tag, D_FAST)
-113 = USE, Door_Close (tag, D_FAST)
-114 = USE|REP, Door_Raise (tag, D_FAST, VDOORWAIT)
-115 = USE|REP, Door_Open (tag, D_FAST)
-116 = USE|REP, Door_Close (tag, D_FAST)
-117 = USE|REP, Door_Raise (0, D_FAST, VDOORWAIT, tag)
-118 = USE, Door_Open (0, D_FAST, tag)
-119 = WALK, Floor_RaiseToNearest (tag, F_SLOW)
-120 = WALK|REP, Plat_DownWaitUpStayLip (tag, P_TURBO, PLATWAIT, 0)
-121 = WALK, Plat_DownWaitUpStayLip (tag, P_TURBO, PLATWAIT, 0)
-122 = USE, Plat_DownWaitUpStayLip (tag, P_TURBO, PLATWAIT, 0)
-123 = USE|REP, Plat_DownWaitUpStayLip (tag, P_TURBO, PLATWAIT, 0)
-124 = WALK, Exit_Secret (0)
-125 = MONWALK, Teleport (0, tag)
-126 = MONWALK|REP, Teleport (0, tag)
-127 = USE, Stairs_BuildUpDoom (tag, ST_TURBO, 16, 0, 0)
-128 = WALK|REP, Floor_RaiseToNearest (tag, F_SLOW)
-129 = WALK|REP, Floor_RaiseToNearest (tag, F_FAST)
-130 = WALK, Floor_RaiseToNearest (tag, F_FAST)
-131 = USE, Floor_RaiseToNearest (tag, F_FAST)
-132 = USE|REP, Floor_RaiseToNearest (tag, F_FAST)
-133 = USE, Door_LockedRaise (tag, D_FAST, 0, BCard | CardIsSkull)
-134 = USE|REP, Door_LockedRaise (tag, D_FAST, 0, RCard | CardIsSkull)
-135 = USE, Door_LockedRaise (tag, D_FAST, 0, RCard | CardIsSkull)
-136 = USE|REP, Door_LockedRaise (tag, D_FAST, 0, YCard | CardIsSkull)
-137 = USE, Door_LockedRaise (tag, D_FAST, 0, YCard | CardIsSkull)
-138 = USE|REP, Light_ChangeToValue (tag, 255)
-139 = USE|REP, Light_ChangeToValue (tag, 35)
-140 = USE, Floor_RaiseByValueTimes8 (tag, F_SLOW, 64)
-141 = WALK, Ceiling_CrushAndRaiseSilentA (tag, C_SLOW, C_SLOW, 10)
-
-/****** The following are all new to BOOM ******/
-
-142 = WALK, Floor_RaiseByValueTimes8 (tag, F_SLOW, 64)
-143 = WALK, Plat_UpByValueStayTx (tag, P_SLOW/2, 3)
-144 = WALK, Plat_UpByValueStayTx (tag, P_SLOW/2, 4)
-145 = WALK, Ceiling_LowerToFloor (tag, C_SLOW)
-146 = WALK, Floor_Donut (tag, DORATE, DORATE)
-147 = WALK|REP, Floor_RaiseByValueTimes8 (tag, F_SLOW, 64)
-148 = WALK|REP, Plat_UpByValueStayTx (tag, P_SLOW/2, 3)
-149 = WALK|REP, Plat_UpByValueStayTx (tag, P_SLOW/2, 4)
-150 = WALK|REP, Ceiling_CrushAndRaiseSilentA (tag, C_SLOW, C_SLOW, 10)
-151 = WALK|REP, FloorAndCeiling_LowerRaise (tag, F_SLOW, C_SLOW)
-152 = WALK|REP, Ceiling_LowerToFloor (tag, C_SLOW)
-153 = WALK, Floor_TransferTrigger (tag)
-154 = WALK|REP, Floor_TransferTrigger (tag)
-155 = WALK|REP, Floor_Donut (tag, DORATE, DORATE)
-156 = WALK|REP, Light_StrobeDoom (tag, 5, 35)
-157 = WALK|REP, Light_MinNeighbor (tag)
-158 = USE, Floor_RaiseByTexture (tag, F_SLOW)
-159 = USE, Floor_LowerToLowestTxTy (tag, F_SLOW)
-160 = USE, Floor_RaiseByValueTxTy (tag, F_SLOW, 24)
-161 = USE, Floor_RaiseByValue (tag, F_SLOW, 24)
-162 = USE, Plat_PerpetualRaiseLip (tag, P_SLOW, PLATWAIT, 0)
-163 = USE, Plat_Stop (tag)
-164 = USE, Ceiling_CrushAndRaiseA (tag, C_NORMAL, C_NORMAL, 10)
-165 = USE, Ceiling_CrushAndRaiseSilentA (tag, C_SLOW, C_SLOW, 10)
-166 = USE, FloorAndCeiling_LowerRaise (tag, F_SLOW, C_SLOW)
-167 = USE, Ceiling_LowerAndCrush (tag, C_SLOW, 0)
-168 = USE, Ceiling_CrushStop (tag)
-169 = USE, Light_MaxNeighbor (tag)
-170 = USE, Light_ChangeToValue (tag, 35)
-171 = USE, Light_ChangeToValue (tag, 255)
-172 = USE, Light_StrobeDoom (tag, 5, 35)
-173 = USE, Light_MinNeighbor (tag)
-174 = USE|MONST, Teleport (0, tag)
-175 = USE, Door_CloseWaitOpen (tag, F_SLOW, 240)
-176 = USE|REP, Floor_RaiseByTexture (tag, F_SLOW)
-177 = USE|REP, Floor_LowerToLowestTxTy (tag, F_SLOW)
-178 = USE|REP, Floor_RaiseByValueTimes8 (tag, F_SLOW, 64)
-179 = USE|REP, Floor_RaiseByValueTxTy (tag, F_SLOW, 24)
-180 = USE|REP, Floor_RaiseByValue (tag, F_SLOW, 24)
-181 = USE|REP, Plat_PerpetualRaiseLip (tag, P_SLOW, PLATWAIT, 0)
-182 = USE|REP, Plat_Stop (tag)
-183 = USE|REP, Ceiling_CrushAndRaiseA (tag, C_NORMAL, C_NORMAL, 10)
-184 = USE|REP, Ceiling_CrushAndRaiseA (tag, C_SLOW, C_SLOW, 10)
-185 = USE|REP, Ceiling_CrushAndRaiseSilentA (tag, C_SLOW, C_SLOW, 10)
-186 = USE|REP, FloorAndCeiling_LowerRaise (tag, F_SLOW, C_SLOW)
-187 = USE|REP, Ceiling_LowerAndCrush (tag, C_SLOW, 0)
-188 = USE|REP, Ceiling_CrushStop (tag)
-189 = USE, Floor_TransferTrigger (tag)
-190 = USE|REP, Floor_TransferTrigger (tag)
-191 = USE|REP, Floor_Donut (tag, DORATE, DORATE)
-192 = USE|REP, Light_MaxNeighbor (tag)
-193 = USE|REP, Light_StrobeDoom (tag, 5, 35)
-194 = USE|REP, Light_MinNeighbor (tag)
-195 = USE|REP|MONST, Teleport (0, tag)
-196 = USE|REP, Door_CloseWaitOpen (tag, D_SLOW, 240)
-197 = SHOOT, Exit_Normal (0)
-198 = SHOOT, Exit_Secret (0)
-199 = WALK, Ceiling_LowerToLowest (tag, C_SLOW)
-200 = WALK, Ceiling_LowerToHighestFloor (tag, C_SLOW)
-201 = WALK|REP, Ceiling_LowerToLowest (tag, C_SLOW)
-202 = WALK|REP, Ceiling_LowerToHighestFloor (tag, C_SLOW)
-203 = USE, Ceiling_LowerToLowest (tag, C_SLOW)
-204 = USE, Ceiling_LowerToHighestFloor (tag, C_SLOW)
-205 = USE|REP, Ceiling_LowerToLowest (tag, C_SLOW)
-206 = USE|REP, Ceiling_LowerToHighestFloor (tag, C_SLOW)
-207 = WALK|MONST, Teleport_NoFog (0, 0, tag)
-208 = WALK|REP|MONST, Teleport_NoFog (0, 0, tag)
-209 = USE|MONST, Teleport_NoFog (0, 0, tag)
-210 = USE|REP|MONST, Teleport_NoFog (0, 0, tag)
-211 = USE|REP, Plat_ToggleCeiling (tag)
-212 = WALK|REP, Plat_ToggleCeiling (tag)
-213 = 0, Transfer_FloorLight (tag)
-214 = 0, Scroll_Ceiling (tag, 6, 0, 0, 0)
-215 = 0, Scroll_Floor (tag, 6, 0, 0, 0)
-216 = 0, Scroll_Floor (tag, 6, 1, 0, 0)
-217 = 0, Scroll_Floor (tag, 6, 2, 0, 0)
-218 = 0, Scroll_Texture_Model (lineid, 2)
-219 = WALK, Floor_LowerToNearest (tag, F_SLOW)
-220 = WALK|REP, Floor_LowerToNearest (tag, F_SLOW)
-221 = USE, Floor_LowerToNearest (tag, F_SLOW)
-222 = USE|REP, Floor_LowerToNearest (tag, F_SLOW)
-223 = 0, Sector_SetFriction (tag, 0)
-224 = 0, Sector_SetWind (tag, 0, 0, 1)
-225 = 0, Sector_SetCurrent (tag, 0, 0, 1)
-226 = 0, PointPush_SetForce (tag, 0, 0, 1)
-227 = WALK, Elevator_RaiseToNearest (tag, ELEVATORSPEED)
-228 = WALK|REP, Elevator_RaiseToNearest (tag, ELEVATORSPEED)
-229 = USE, Elevator_RaiseToNearest (tag, ELEVATORSPEED)
-230 = USE|REP, Elevator_RaiseToNearest (tag, ELEVATORSPEED)
-231 = WALK, Elevator_LowerToNearest (tag, ELEVATORSPEED)
-232 = WALK|REP, Elevator_LowerToNearest (tag, ELEVATORSPEED)
-233 = USE, Elevator_LowerToNearest (tag, ELEVATORSPEED)
-234 = USE|REP, Elevator_LowerToNearest (tag, ELEVATORSPEED)
-235 = WALK, Elevator_MoveToFloor (tag, ELEVATORSPEED)
-236 = WALK|REP, Elevator_MoveToFloor (tag, ELEVATORSPEED)
-237 = USE, Elevator_MoveToFloor (tag, ELEVATORSPEED)
-238 = USE|REP, Elevator_MoveToFloor (tag, ELEVATORSPEED)
-239 = WALK, Floor_TransferNumeric (tag)
-240 = WALK|REP, Floor_TransferNumeric (tag)
-241 = USE, Floor_TransferNumeric (tag)
-242 = 0, Transfer_Heights (tag)
-243 = WALK|MONST, Teleport_Line (tag, tag, 0)
-244 = WALK|REP|MONST, Teleport_Line (tag, tag, 0)
-245 = 0, Scroll_Ceiling (tag, 5, 0, 0, 0)
-246 = 0, Scroll_Floor (tag, 5, 0, 0, 0)
-247 = 0, Scroll_Floor (tag, 5, 1, 0, 0)
-248 = 0, Scroll_Floor (tag, 5, 2, 0, 0)
-249 = 0, Scroll_Texture_Model (lineid, 1)
-250 = 0, Scroll_Ceiling (tag, 4, 0, 0, 0)
-251 = 0, Scroll_Floor (tag, 4, 0, 0, 0)
-252 = 0, Scroll_Floor (tag, 4, 1, 0, 0)
-253 = 0, Scroll_Floor (tag, 4, 2, 0, 0)
-254 = 0, Scroll_Texture_Model (lineid, 0)
-255 = 0, Scroll_Texture_Offsets ()
-256 = WALK|REP, Stairs_BuildUpDoom (tag, ST_SLOW, 8, 0, 0)
-257 = WALK|REP, Stairs_BuildUpDoom (tag, ST_TURBO, 16, 0, 0)
-258 = USE|REP, Stairs_BuildUpDoom (tag, ST_SLOW, 8, 0, 0)
-259 = USE|REP, Stairs_BuildUpDoom (tag, ST_TURBO, 16, 0, 0)
-260 = 0, TranslucentLine (lineid, 128) // Changed to better reflect the BOOM default
-261 = 0, Transfer_CeilingLight (tag)
-262 = WALK|MONST, Teleport_Line (tag, tag, 1)
-263 = WALK|REP|MONST, Teleport_Line (tag, tag, 1)
-264 = MONWALK, Teleport_Line (tag, tag, 1)
-265 = MONWALK|REP, Teleport_Line (tag, tag, 1)
-266 = MONWALK, Teleport_Line (tag, tag, 0)
-267 = MONWALK|REP, Teleport_Line (tag, tag, 0)
-268 = MONWALK, Teleport_NoFog (0, 0, tag)
-269 = MONWALK|REP, Teleport_NoFog (0, 0, tag)
-
-/****** MBF linetypes ******/
-
-270 = WALK|REP, FS_Execute(tag)
-271 = 0, Static_Init (tag, Init_TransferSky, 0)
-272 = 0, Static_Init (tag, Init_TransferSky, 1)
-
-/****** Legacy linetypes ******/
-273 = WALK|REP, FS_Execute(tag, 1)
-274 = WALK, FS_Execute(tag)
-275 = WALK, FS_Execute(tag, 1)
-276 = USE|REP, FS_Execute(tag)
-277 = USE, FS_Execute(tag)
-278 = SHOOT|REP, FS_Execute(tag)
-279 = SHOOT, FS_Execute(tag)
-280 = 0, Transfer_Heights (tag, 12)
-281 = 0, Sector_Set3DFloor(tag, 1, 0, 255)
-282 = 0, Static_Init(tag, 1)
-
-// No, I haven't actually looked at these in Legacy. But these look like they
-// should give results equivalent to hardware Legacy rendering.
-284 = 0, TranslucentLine (lineid, 128, 0)
-285 = 0, TranslucentLine (lineid, 192, 0)
-286 = 0, TranslucentLine (lineid, 48, 0)
-287 = 0, TranslucentLine (lineid, 128, 1)
-
-288 = 0, TranslucentLine(lineid, 255, 0)
-289 = 0, Sector_Set3DFloor(tag, 1, 1, 255)
-
-300 = 0, Sector_Set3DFloor(tag, 1, 1, 127)
-301 = 0, Sector_Set3DFloor(tag, 2, 2, 127)
-302 = 0, Sector_Set3DFloor(tag, 3, 6, 127)
-303 = 0, Sector_Set3DFloor(tag, 3)
-304 = 0, Sector_Set3DFloor(tag, 2, 2, 255)
-305 = 0, Sector_Set3DFloor(tag, 3, 2)
-306 = 0, Sector_Set3DFloor(tag, 1)
-
-332 = 0, Sector_Set3DFloor(tag, 4)
-
-/****** ZDoom linetypes ******/
-
-333 = 0, Static_Init (tag, Init_Gravity)
-334 = 0, Static_Init (tag, Init_Color)
-335 = 0, Static_Init (tag, Init_Damage)
-336 = 0, Line_Mirror ()
-337 = 0, Line_Horizon ()
-338 = WALK, Floor_Waggle (tag, 24, 32, 0, 0)
-339 = WALK, Floor_Waggle (tag, 12, 32, 0, 0)
-
-340 = 0, Plane_Align (1, 0) // Slope front floor
-341 = 0, Plane_Align (0, 1) // Slope front ceiling
-342 = 0, Plane_Align (1, 1) // Slope front floor and ceiling
-343 = 0, Plane_Align (2, 0) // Slope back floor
-344 = 0, Plane_Align (0, 2) // Slope back ceiling
-345 = 0, Plane_Align (2, 2) // Slope back floor and ceiling
-346 = 0, Plane_Align (2, 1) // Slope b.f. and f.c.
-347 = 0, Plane_Align (1, 2) // Slope f.f. and b.c.
-
-348 = WALK, Autosave ()
-349 = USE, Autosave ()
-
-350 = 0, Transfer_Heights (tag, 2) // Just fake the floor
-351 = 0, Transfer_Heights (tag, 6) // Just fake the floor and clip it too
-
-/****** EDGE linetypes ******/
-
-400 = 0, Sector_Set3DFloor(tag, 1, 0, 255)
-401 = 0, Sector_Set3DFloor(tag, 1, 16, 255)
-402 = 0, Sector_Set3DFloor(tag, 1, 32, 255)
-403 = 0, Sector_Set3DFloor(tag, 2, 2, 255)
-404 = 0, Sector_Set3DFloor(tag, 2, 2, 204)
-405 = 0, Sector_Set3DFloor(tag, 2, 2, 153)
-406 = 0, Sector_Set3DFloor(tag, 2, 2, 102)
-407 = 0, Sector_Set3DFloor(tag, 2, 2, 51)
-408 = 0, Sector_Set3DFloor(tag, 2, 2)
-413 = 0, Sector_Set3DFloor(tag, 1, 8, 255)
-414 = 0, Sector_Set3DFloor(tag, 1, 8, 204)
-415 = 0, Sector_Set3DFloor(tag, 1, 8, 153)
-416 = 0, Sector_Set3DFloor(tag, 1, 8, 102)
-417 = 0, Sector_Set3DFloor(tag, 1, 8, 51)
-
-409 = 0, TranslucentLine (lineid, 204) // 80% translucent
-410 = 0, TranslucentLine (lineid, 153) // 60% translucent
-411 = 0, TranslucentLine (lineid, 101) // 40% translucent
-412 = 0, TranslucentLine (lineid, 50) // 20% translucent
-422 = 0, Scroll_Texture_Right (SCROLL_UNIT)
-423 = 0, Scroll_Texture_Up (SCROLL_UNIT)
-424 = 0, Scroll_Texture_Down (SCROLL_UNIT)
-425 = 0, Scroll_Texture_Both (0, SCROLL_UNIT, 0, 0, SCROLL_UNIT)
-426 = 0, Scroll_Texture_Both (0, SCROLL_UNIT, 0, SCROLL_UNIT, 0)
-427 = 0, Scroll_Texture_Both (0, 0, SCROLL_UNIT, 0, SCROLL_UNIT)
-428 = 0, Scroll_Texture_Both (0, 0, SCROLL_UNIT, SCROLL_UNIT, 0)
-434 = USE, Floor_RaiseByValue (tag, F_SLOW, 2)
-435 = USE|REP, Floor_RaiseByValue (tag, F_SLOW, 2)
-436 = WALK, Floor_RaiseByValue (tag, F_SLOW, 2)
-437 = WALK|REP, Floor_RaiseByValue (tag, F_SLOW, 2)
-438 = SHOOT, Floor_RaiseByValue (tag, F_SLOW, 2)
-439 = SHOOT|REP, Floor_RaiseByValue (tag, F_SLOW, 2)
-
-/****** BOOM generalized linetypes ******
- *
- * The general structure for a BOOM generalized translator is
- *
- * [ZDoom Line Special] (first line type for this, last line type for this)
- * {
- * one or more stores
- * }
- *
- * Stores have the form:
- *
- *
- *
- * can be arg2, arg3, arg4, arg5, or flags. Arg1 will always
- * be set to the line's tag, so it cannot be specified in a store.
- *
- * can be |= or =. If it is =, then is simply stored in
- * . If it is |=, then is logically or'ed with
- * whatever is already in .
- *
- * can be either a simple number, which will always be stored in
- * based on , or it can be a list of numbers chosen
- * by using a bitmask. When using a list, this form is used:
- *
- * mask [choices]
- *
- * There can be at most 15 choices in a list. (If you need more, use
- * more than one list.) Each choice is separated from the other choices
- * by a comma. Each individual choice has the form:
- *
- * :
- *
- * When ZDoom processes one of these lists, the linetype is logically
- * and'ed with the mask. It then searches the list for a selector that
- * matches the result of this operation. If it finds one, the selector's
- * corresponding value is used as the value for to store into
- * .
- */
-
-
-// Generalized crusher (tag, dnspeed, upspeed, silent, damage)
-[Generic_Crusher] (0x2f80, 0x2fff)
-{
- flags |= 0x0020 [0x0020 : MONST]
- arg2 = 0x0018 [0x0000 : C_SLOW,
- 0x0008 : C_NORMAL,
- 0x0010 : C_FAST,
- 0x0018 : C_TURBO]
- arg3 = 0x0018 [0x0000 : C_SLOW,
- 0x0008 : C_NORMAL,
- 0x0010 : C_FAST,
- 0x0018 : C_TURBO]
- arg4 = 0x0040 [0x0040 : 1]
- arg5 = 10
-}
-
-// Generalized stairs (tag, speed, step, dir/igntxt, reset)
-[Generic_Stairs] (0x3000, 0x33ff)
-{
- flags |= 0x0020 [0x0020 : MONST]
- arg2 = 0x0018 [0x0000 : ST_SLOW,
- 0x0008 : ST_NORMAL,
- 0x0010 : ST_FAST,
- 0x0018 : ST_TURBO]
- arg3 = 0x00c0 [0x0000 : 4,
- 0x0040 : 8,
- 0x0080 : 16,
- 0x00c0 : 24]
- arg4 = 0x0300 [0x0100 : 1,
- 0x0200 : 2,
- 0x0300 : 3]
-}
-
-// Generalized lift (tag, speed, delay, target, height)
-[Generic_Lift] (0x3400, 0x37ff)
-{
- flags |= 0x0020 [0x0020 : MONST]
- arg2 = 0x0018 [0x0000 : P_SLOW*2,
- 0x0008 : P_NORMAL*2,
- 0x0010 : P_FAST*2,
- 0x0018 : P_TURBO*2]
- arg3 = 0x00c0 [0x0000 : 8,
- 0x0040 : 24,
- 0x0080 : 40,
- 0x00c0 : 80]
- arg4 = 0x0300 [0x0000 : 1,
- 0x0100 : 2,
- 0x0200 : 3,
- 0x0300 : 4]
-}
-
-// Generalized locked door (tag, speed, kind, delay, lock)
-[Generic_Door] (0x3800, 0x3bff)
-{
- arg2 = 0x0018 [0x0000 : D_SLOW,
- 0x0008 : D_NORMAL,
- 0x0010 : D_FAST,
- 0x0018 : D_TURBO]
- arg3 = 0x0020 [0x0020 : 1]
- arg4 = 0x0020 [0 : 34]
- arg5 = 0x01c0 [0x0000 : AnyKey,
- 0x0040 : RCard,
- 0x0080 : BCard,
- 0x00c0 : YCard,
- 0x0100 : RSkull,
- 0x0140 : BSkull,
- 0x0180 : YSkull,
- 0x01c0 : AllKeys]
- arg5 |= 0x0200 [0x0200 : CardIsSkull]
-}
-
-// Generalized door (tag, speed, kind, delay, lock)
-[Generic_Door] (0x3c00, 0x3fff)
-{
- flags |= 0x0080 [0x0080 : MONST]
- arg2 = 0x0018 [0x0000 : D_SLOW,
- 0x0008 : D_NORMAL,
- 0x0010 : D_FAST,
- 0x0018 : D_TURBO]
- arg3 = 0x0060 [0x0000 : 0,
- 0x0020 : 1,
- 0x0040 : 2,
- 0x0060 : 3]
- arg4 = 0x0300 [0x0000 : 8,
- 0x0100 : 34,
- 0x0200 : 69,
- 0x0300 : 240]
-}
-
-// Generalized ceiling (tag, speed, height, target, change/model/direct/crush)
-[Generic_Ceiling] (0x4000, 0x5fff)
-{
- flags |= 0x0c20 [0x0020 : MONST]
- arg2 = 0x0018 [0x0000 : F_SLOW,
- 0x0008 : F_NORMAL,
- 0x0010 : F_FAST,
- 0x0018 : F_TURBO]
- arg3 = 0x0380 [0x0300 : 24,
- 0x0380 : 32]
- arg4 = 0x0380 [0x0000 : 1,
- 0x0080 : 2,
- 0x0100 : 3,
- 0x0180 : 4,
- 0x0200 : 5,
- 0x0280 : 6]
- arg5 = 0x0c00 [0x0000 : 0,
- 0x0400 : 1,
- 0x0800 : 2,
- 0x0c00 : 3]
- arg5 |= 0x0060 [0x0020 : 4,
- 0x0040 : 8,
- 0x0060 : 12]
- arg5 |= 0x1000 [0x1000 : 16]
-}
-
-// Generalized floor (tag, speed, height, target, change/model/direct/crush)
-[Generic_Floor] (0x6000, 0x7fff)
-{
- flags |= 0x0c20 [0x0020 : MONST]
- arg2 = 0x0018 [0x0000 : F_SLOW,
- 0x0008 : F_NORMAL,
- 0x0010 : F_FAST,
- 0x0018 : F_TURBO]
- arg3 = 0x0380 [0x0300 : 24,
- 0x0380 : 32]
- arg4 = 0x0380 [0x0000 : 1,
- 0x0080 : 2,
- 0x0100 : 3,
- 0x0180 : 4,
- 0x0200 : 5,
- 0x0280 : 6]
- arg5 = 0x0c00 [0x0000 : 0,
- 0x0400 : 1,
- 0x0800 : 2,
- 0x0c00 : 3]
- arg5 |= 0x0060 [0x0020 : 4,
- 0x0040 : 8,
- 0x0060 : 12]
- arg5 |= 0x1000 [0x1000 : 16]
-}
diff --git a/wadsrc/xlat/defines.i b/wadsrc/xlat/defines.i
deleted file mode 100644
index 6673b5ef..00000000
--- a/wadsrc/xlat/defines.i
+++ /dev/null
@@ -1,211 +0,0 @@
-
-// Static_Init types
-enum
-{
- Init_Gravity,
- Init_Color,
- Init_Damage,
- Init_TransferSky = 255
-}
-
-// Speeds for ceilings/crushers (x/8 units per tic)
-// These are the BOOM names.
-enum
-{
- C_SLOW = 8,
- C_NORMAL = 16,
- C_FAST = 32,
- C_TURBO = 64
-}
-
-define CEILWAIT (150)
-
-// Speeds for floors (x/8 units per tic)
-enum
-{
- F_SLOW = 8,
- F_NORMAL = 16,
- F_FAST = 32,
- F_TURBO = 64
-}
-
-// Speeds for doors (x/8 units per tic)
-enum
-{
- D_SLOW = 16,
- D_NORMAL = 32,
- D_FAST = 64,
- D_TURBO = 128
-}
-
-define VDOORWAIT (150)
-
-
-// Speeds for stairs (x/8 units per tic)
-enum
-{
- ST_SLOW = 2,
- ST_NORMAL = 4,
- ST_FAST = 16,
- ST_TURBO = 32
-}
-
-// Speeds for plats (Hexen plats stop 8 units above the floor)
-enum
-{
- P_SLOW = 8,
- P_NORMAL = 16,
- P_FAST = 32,
- P_TURBO = 64
-}
-
-define PLATWAIT (105)
-
-define ELEVATORSPEED (32)
-
-// Speeds for donut slime and pillar (x/8 units per tic)
-define DORATE (4)
-
-// Texture scrollers operate at a rate of x/64 units per tic.
-define SCROLL_UNIT (64)
-
-define WALK (0)
-define USE (2)
-define SHOOT (6)
-define MONST (16)
-define MONWALK (4)
-define REP (1)
-define FIRSTSIDE (32)
-
-enum
-{
- NoKey,
- RCard,
- BCard,
- YCard,
- RSkull,
- BSkull,
- YSkull,
-
- AnyKey = 100,
- AllKeys = 101,
- CardIsSkull = 128
-}
-
-
-enum
-{
- Light_Phased = 1,
- LightSequenceStart = 2,
- LightSequenceSpecial1 = 3,
- LightSequenceSpecial2 = 4,
-
- Stairs_Special1 = 26,
- Stairs_Special2 = 27,
-
- Wind_East_Weak=40,
- Wind_East_Medium,
- Wind_East_Strong,
- Wind_North_Weak,
- Wind_North_Medium,
- Wind_North_Strong,
- Wind_South_Weak,
- Wind_South_Medium,
- Wind_South_Strong,
- Wind_West_Weak,
- Wind_West_Medium,
- Wind_West_Strong,
-
- // [RH] Equivalents for DOOM's sector specials
- dLight_Flicker = 65,
- dLight_StrobeFast = 66,
- dLight_StrobeSlow = 67,
- dLight_Strobe_Hurt = 68,
- dDamage_Hellslime = 69,
- dDamage_Nukage = 71,
- dLight_Glow = 72,
- dSector_DoorCloseIn30 = 74,
- dDamage_End = 75,
- dLight_StrobeSlowSync = 76,
- dLight_StrobeFastSync = 77,
- dSector_DoorRaiseIn5Mins = 78,
- dFriction_Low = 79,
- dDamage_SuperHellslime = 80,
- dLight_FireFlicker = 81,
- dDamage_LavaWimpy = 82,
- dDamage_LavaHefty = 83,
- dScroll_EastLavaDamage = 84,
- Sector_Outside = 87,
-
- // And here are some for Strife
- sLight_Strobe_Hurt = 104,
- sDamage_Hellslime = 105,
- Damage_InstantDeath = 115,
- sDamage_SuperHellslime = 116,
- Scroll_StrifeCurrent = 118,
-
- // Caverns of Darkness healing sector
- Sector_Heal = 196,
-
- Light_OutdoorLightning = 197,
- Light_IndoorLightning1 = 198,
- Light_IndoorLightning2 = 199,
-
- Sky2 = 200,
-
- // Hexen-type scrollers
- Scroll_North_Slow = 201,
- Scroll_North_Medium,
- Scroll_North_Fast,
- Scroll_East_Slow,
- Scroll_East_Medium,
- Scroll_East_Fast,
- Scroll_South_Slow,
- Scroll_South_Medium,
- Scroll_South_Fast,
- Scroll_West_Slow,
- Scroll_West_Medium,
- Scroll_West_Fast,
- Scroll_NorthWest_Slow,
- Scroll_NorthWest_Medium,
- Scroll_NorthWest_Fast,
- Scroll_NorthEast_Slow,
- Scroll_NorthEast_Medium,
- Scroll_NorthEast_Fast,
- Scroll_SouthEast_Slow,
- Scroll_SouthEast_Medium,
- Scroll_SouthEast_Fast,
- Scroll_SouthWest_Slow,
- Scroll_SouthWest_Medium,
- Scroll_SouthWest_Fast,
-
- // Heretic-type scrollers
- Carry_East5 = 225,
- Carry_East10,
- Carry_East25,
- Carry_East30,
- Carry_East35,
- Carry_North5,
- Carry_North10,
- Carry_North25,
- Carry_North30,
- Carry_North35,
- Carry_South5,
- Carry_South10,
- Carry_South25,
- Carry_South30,
- Carry_South35,
- Carry_West5,
- Carry_West10,
- Carry_West25,
- Carry_West30,
- Carry_West35
-}
-
-// [RH] Equivalents for BOOM's generalized sector types
-define DAMAGE_MASK (0x0300)
-define SECRET_MASK (0x0400)
-define FRICTION_MASK (0x0800)
-define PUSH_MASK (0x1000)
-
-
diff --git a/wadsrc/xlat/doom.txt b/wadsrc/xlat/doom.txt
deleted file mode 100644
index 25b84b2f..00000000
--- a/wadsrc/xlat/doom.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-include "xlat/base.txt"
-
-
-sector bitmask 0xf000 clear;
-sector bitmask 0xfe0 <<= 3;
-
-sector 1 = dLight_Flicker;
-sector 2 = dLight_StrobeFast;
-sector 3 = dLight_StrobeSlow;
-sector 4 = dLight_Strobe_Hurt;
-sector 5 = dDamage_Hellslime;
-sector 7 = dDamage_Nukage;
-sector 8 = dLight_Glow;
-sector 9 = SECRET_MASK nobitmask;
-sector 10 = dSector_DoorCloseIn30;
-sector 11 = dDamage_End;
-sector 12 = dLight_StrobeSlowSync;
-sector 13 = dLight_StrobeFastSync;
-sector 14 = dSector_DoorRaiseIn5Mins;
-sector 15 = dFriction_Low;
-sector 16 = dDamage_SuperHellslime;
-sector 17 = dLight_FireFlicker;
-sector 18 = dDamage_LavaWimpy;
-sector 19 = dDamage_LavaHefty;
-sector 20 = dScroll_EastLavaDamage;
-sector 21 = Light_Phased;
-sector 22 = LightSequenceStart;
-sector 23 = LightSequenceSpecial1;
-sector 24 = LightSequenceSpecial2;
-
diff --git a/wadsrc/xlat/doom_base.txt b/wadsrc/xlat/doom_base.txt
deleted file mode 100644
index e75cd410..00000000
--- a/wadsrc/xlat/doom_base.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-include "xlat/doom.txt"
-
-maxlinespecial = 272;
-
-
-sector bitmask 0xffe0 clear;
-
-sector 15 = 0;
-sector 17 = 0;
-sector 18 = 0;
-sector 19 = 0;
-sector 20 = 0;
-sector 21 = 0;
-sector 22 = 0;
-sector 23 = 0;
-sector 24 = 0;
-
diff --git a/wadsrc/xlat/heretic.txt b/wadsrc/xlat/heretic.txt
deleted file mode 100644
index b1a4908b..00000000
--- a/wadsrc/xlat/heretic.txt
+++ /dev/null
@@ -1,67 +0,0 @@
-include "xlat/base.txt"
-
- 7 = USE, Stairs_BuildUpDoom (tag, F_SLOW, 8)
- 8 = WALK, Stairs_BuildUpDoom (tag, F_SLOW, 8)
- 10 = WALK, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT, 0)
- 88 = WALK|REP, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT, 0)
- 99 = 0, Scroll_Texture_Right (SCROLL_UNIT)
-100 = WALK|REP, Door_Raise (tag, D_SLOW*3, VDOORWAIT)
-105 = WALK, Exit_Secret (0)
-106 = WALK, Stairs_BuildUpDoom (tag, F_SLOW, 16)
-107 = USE, Stairs_BuildUpDoom (tag, F_SLOW, 16)
-
-sector bitmask 0xf000 clear;
-sector bitmask 0xfc0 <<= 3;
-
-sector 1 = dLight_Flicker;
-sector 2 = dLight_StrobeFast;
-sector 3 = dLight_StrobeSlow;
-sector 4 = dScroll_EastLavaDamage;
-sector 5 = dDamage_LavaWimpy;
-sector 7 = dDamage_Nukage;
-sector 8 = dLight_Glow;
-sector 9 = SECRET_MASK nobitmask;
-sector 10 = dSector_DoorCloseIn30;
-sector 11 = dDamage_End;
-sector 12 = dLight_StrobeSlowSync;
-sector 13 = dLight_StrobeFastSync;
-sector 14 = dSector_DoorRaiseIn5Mins;
-sector 15 = dFriction_Low;
-sector 16 = dDamage_LavaHefty;
-sector 17 = dLight_FireFlicker;
-sector 18 = dDamage_LavaWimpy;
-sector 19 = dDamage_LavaHefty;
-sector 20 = Carry_East5;
-sector 21 = Carry_East10;
-sector 22 = Carry_East25;
-sector 23 = Carry_East30;
-sector 24 = Carry_East35;
-sector 25 = Carry_North5;
-sector 26 = Carry_North10;
-sector 27 = Carry_North25;
-sector 28 = Carry_North30;
-sector 29 = Carry_North35;
-sector 30 = Carry_South5;
-sector 31 = Carry_South10;
-sector 32 = Carry_South25;
-sector 33 = Carry_South30;
-sector 34 = Carry_South35;
-sector 35 = Carry_West5;
-sector 36 = Carry_West10;
-sector 37 = Carry_West25;
-sector 38 = Carry_West30;
-sector 39 = Carry_West35;
-sector 40 = Wind_East_Weak;
-sector 41 = Wind_East_Medium;
-sector 42 = Wind_East_Strong;
-sector 43 = Wind_North_Weak;
-sector 44 = Wind_North_Medium;
-sector 45 = Wind_North_Strong;
-sector 46 = Wind_South_Weak;
-sector 47 = Wind_South_Medium;
-sector 48 = Wind_South_Strong;
-sector 49 = Wind_West_Weak;
-sector 50 = Wind_West_Medium;
-sector 51 = Wind_West_Strong;
-
-
diff --git a/wadsrc/xlat/heretic_base.txt b/wadsrc/xlat/heretic_base.txt
deleted file mode 100644
index 76b7840b..00000000
--- a/wadsrc/xlat/heretic_base.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-include "xlat/heretic.txt"
-
-maxlinespecial = 107;
-
-
-sector bitmask 0xffc0 clear;
-
-sector 17 = 0;
diff --git a/wadsrc/xlat/strife.txt b/wadsrc/xlat/strife.txt
deleted file mode 100644
index 72ae2686..00000000
--- a/wadsrc/xlat/strife.txt
+++ /dev/null
@@ -1,354 +0,0 @@
-include "xlat/defines.i"
-
-// Highest crossable line is 231
-/*
-enum
-{
- IDBadge = 1,
- IDCard,
- PassCard,
- BrassKey,
- SilverKey,
- GoldKey,
- FrontBaseKey,
- WhatKey,
- MilitaryID,
- MineKey,
- CatacombKey,
- ChapelKey,
- CoreKey,
- SeveredHand,
- MaulerKey,
- OrderKey,
- OracleKey,
- Chalice,
- Quest,
- Piston,
- SigilA,
- Power1,
- Power2,
- Power3,
- GiveQT1,
- Prison,
- Factory,
- Warehouse,
- SigilB
-}*/
-
-enum
-{
-Base_Key = 1,
-Govs_Key = 2,
-Passcard = 3,
-ID_Badge = 4,
-Prison_Key = 5,
-Severed_Hand = 6,
-Power1_Key = 7,
-Power2_Key = 8,
-Power3_Key = 9,
-Gold_Key = 10,
-ID_Card = 11,
-Silver_Key = 12,
-Oracle_Key = 13,
-Military_ID = 14,
-Order_Key = 15,
-Warehouse_Key = 16,
-Brass_Key = 17,
-Red_Crystal_Key = 18,
-Blue_Crystal_Key = 19,
-Chapel_Key = 20,
-Catacomb_Key = 21,
-Security_Key = 22,
-Core_Key = 23,
-Mauler_Key = 24,
-Factory_Key = 25,
-MINE_KEY = 26,
-New_Key5 = 27,
-Piston = 50,
-Chalice = 51,
-ThatDoesntWork = 120,
-RetailOnly = 121
-}
-
-// Scrollers
- 48 = 0, Scroll_Texture_Left (SCROLL_UNIT)
-142 = 0, Scroll_Texture_Up (SCROLL_UNIT)
-143 = 0, Scroll_Texture_Down (3*SCROLL_UNIT)
-149 = 0, Scroll_Texture_Right (SCROLL_UNIT)
-
-// Shootables
- 24 = SHOOT, Floor_RaiseToLowestCeiling (tag, F_SLOW)
- 46 = SHOOT|REP|MONST, Door_Open (tag, D_SLOW)
- 47 = SHOOT, Plat_RaiseAndStayTx0 (tag, P_SLOW/2)
-180 = SHOOT, ACS_ExecuteWithResult (0, 180, tag)
-182 = 14|MONST, GlassBreak ()
-
-// Crossables
-230 = WALK|REP, ACS_ExecuteAlways (0, 0, 230, tag)
- 2 = WALK, Door_Open (tag, D_SLOW)
-227 = WALK|REP, ACS_ExecuteAlways (0, 0, 227, tag)
- 3 = WALK, Door_Close (tag, D_SLOW)
- 4 = WALK|MONST, Door_Raise (tag, D_SLOW, VDOORWAIT)
- 5 = WALK, Floor_RaiseToLowestCeiling (tag, F_SLOW)
- 6 = WALK, Ceiling_CrushAndRaiseA (tag, C_FAST, C_FAST, 10)
- 8 = WALK, Stairs_BuildUpDoom (tag, ST_SLOW, 8)
- 10 = WALK|MONST, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT, 0)
- 12 = WALK, Light_MaxNeighbor (tag)
- 13 = WALK, Light_ChangeToValue (tag, 255)
- 16 = WALK, Door_CloseWaitOpen (tag, D_SLOW, 240)
- 17 = WALK, Light_StrobeDoom (tag, 5, 35)
- 19 = WALK, Floor_LowerToHighest (tag, F_SLOW, 128)
- 22 = WALK, Plat_RaiseAndStayTx0 (tag, P_SLOW/2)
- 25 = WALK, Ceiling_CrushAndRaiseA (tag, C_SLOW, C_SLOW, 10)
- 30 = WALK, Floor_RaiseByTexture (tag, F_SLOW)
- 35 = WALK, Light_ChangeToValue (tag, 35)
- 36 = WALK, Floor_LowerToHighest (tag, F_FAST, 128)
- 37 = WALK, Floor_LowerToLowestTxTy (tag, F_SLOW)
-196 = WALK|REP, ACS_ExecuteAlways (0, 0, 196, tag)
-212 = WALK|REP, ACS_ExecuteAlways (0, 0, 212, tag)
-193 = WALK|REP, ACS_ExecuteAlways (0, 0, 193, tag)
- 38 = WALK, Floor_LowerToLowest (tag, F_SLOW)
- 39 = WALK|MONST, Teleport (0, tag)
- 44 = WALK, Ceiling_LowerAndCrush (tag, C_SLOW, 10)
- 52 = WALK|REP, ACS_ExecuteAlways (0, 0, 52, tag)
- 53 = WALK, Plat_PerpetualRaiseLip (tag, P_SLOW, PLATWAIT, 0)
- 54 = WALK, Plat_Stop (tag)
- 56 = WALK, Floor_RaiseAndCrush (tag, F_SLOW, 10)
- 57 = WALK, Ceiling_CrushStop (tag)
- 58 = WALK, Floor_RaiseByValue (tag, F_SLOW, 64)
- 59 = WALK, Floor_RaiseByValueTxTy (tag, F_SLOW, 24)
-104 = WALK, Light_MinNeighbor (tag)
-108 = WALK, Door_Raise (tag, D_FAST, VDOORWAIT)
-109 = WALK, Door_Open (tag, D_FAST)
-100 = WALK, Stairs_BuildUpDoom (tag, ST_TURBO, 16, 0, 0)
-197 = WALK, ACS_ExecuteAlways (0, 0, 197, tag)
-110 = WALK, Door_Close (tag, D_FAST)
-119 = WALK, Floor_RaiseToNearest (tag, F_SLOW)
-121 = WALK, Plat_DownWaitUpStayLip (tag, P_TURBO, PLATWAIT, 0)
-124 = WALK, Teleport_EndGame ()
-125 = MONWALK, Teleport (0, tag)
-130 = WALK, Floor_RaiseToNearest (tag, F_FAST)
-141 = WALK, Ceiling_CrushAndRaiseSilentA (tag, C_SLOW, C_SLOW, 10)
-174 = WALK, ACS_ExecuteAlways (0, 0, 174, tag)
-183 = WALK, ACS_ExecuteAlways (0, 0, 183, tag)
-178 = WALK, Generic_Stairs (tag, ST_FAST, 16, 0, 0)
-179 = WALK, Ceiling_LowerToFloor (tag, C_SLOW)
-187 = WALK|REP, ACS_ExecuteAlways (0, 0, 187, tag)
-188 = WALK|REP, ACS_ExecuteAlways (0, 0, 188, tag)
-200 = WALK, ACS_ExecuteAlways (0, 0, 200, tag)
-201 = WALK, SendToCommunicator (tag, 1, 0)
-202 = WALK, SendToCommunicator (tag, 0, 0)
-210 = WALK, SendToCommunicator (tag, 0, 1)
-215 = WALK|REP, ACS_ExecuteAlways (0, 0, 215, tag)
-204 = WALK, ACS_ExecuteAlways (0, 0, 204, tag)
-228 = WALK|REP, ACS_ExecuteAlways (0, 0, 228)
-
-216 = WALK|REP, ACS_ExecuteAlways (0, 0, 216, tag)
- 90 = WALK|REP, Door_Raise (tag, D_SLOW, VDOORWAIT)
- 72 = WALK|REP, Ceiling_LowerAndCrush (tag, C_SLOW, 10)
- 73 = WALK|REP, Ceiling_CrushAndRaiseA (tag, C_SLOW, C_SLOW, 10)
- 74 = WALK|REP, Ceiling_CrushStop (tag)
- 75 = WALK|REP, Door_Close (tag, D_SLOW)
- 76 = WALK|REP, Door_CloseWaitOpen (tag, D_SLOW, 240)
- 77 = WALK|REP, Ceiling_CrushAndRaiseA (tag, C_FAST, C_FAST, 10)
- 79 = WALK|REP, Light_ChangeToValue (tag, 35)
- 80 = WALK|REP, Light_MaxNeighbor (tag)
- 81 = WALK|REP, Light_ChangeToValue (tag, 255)
- 82 = WALK|REP, Floor_LowerToLowest (tag, F_SLOW)
- 83 = WALK|REP, Floor_LowerToHighest (tag, F_SLOW, 128)
- 84 = WALK|REP, Floor_LowerToLowestTxTy (tag, F_SLOW)
- 86 = WALK|REP, Door_Open (tag, D_SLOW)
- 87 = WALK|REP, Plat_PerpetualRaiseLip (tag, P_SLOW, PLATWAIT, 0)
- 88 = WALK|REP|MONST, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT, 0)
- 89 = WALK|REP, Plat_Stop (tag)
- 91 = WALK|REP, Floor_RaiseToLowestCeiling (tag, F_SLOW)
- 92 = WALK|REP, Floor_RaiseByValue (tag, F_SLOW, 64)
- 93 = WALK|REP, Floor_RaiseByValueTxTy (tag, F_SLOW, 24)
- 94 = WALK|REP, Floor_RaiseAndCrush (tag, F_SLOW, 10)
- 95 = WALK|REP, Plat_RaiseAndStayTx0 (tag, P_SLOW/2)
- 96 = WALK|REP, Floor_RaiseByTexture (tag, F_SLOW)
- 97 = WALK|REP|MONST, Teleport (0, tag)
- 98 = WALK|REP, Floor_LowerToHighest (tag, F_FAST, 128)
-105 = WALK|REP, Door_Raise (tag, D_FAST, VDOORWAIT)
-106 = WALK|REP, Door_Open (tag, D_FAST)
-107 = WALK|REP, Door_Close (tag, D_FAST)
-120 = WALK|REP, Plat_DownWaitUpStayLip (tag, P_TURBO, PLATWAIT, 0)
-126 = MONWALK|REP, Teleport (0, tag)
-128 = WALK|REP, Floor_RaiseToNearest (tag, F_SLOW)
-129 = WALK|REP, Floor_RaiseToNearest (tag, F_FAST)
-186 = WALK|REP, ACS_ExecuteAlways (0, 0, 186, tag)
-145 = WALK|REP, ACS_ExecuteAlways (0, 0, 145, tag)
-175 = WALK|REP, ACS_ExecuteAlways (0, 0, 175, tag)
-198 = WALK|REP, ACS_ExecuteAlways (0, 0, 198, tag)
-150 = WALK|REP, NoiseAlert (0, 0)
-208 = WALK|REP, ACS_ExecuteAlways (0, 0, 208, tag)
-206 = WALK|REP, ACS_ExecuteAlways (0, 0, 206, tag)
-184 = WALK|REP, ACS_ExecuteAlways (0, 0, 184, tag)
-185 = WALK|REP|MONST, Teleport_NoFog (0, 1, tag)
-195 = WALK|REP|MONST, Teleport_ZombieChanger (0, tag)
-203 = WALK|REP, ACS_ExecuteAlways (0, 0, 203, tag)
-231 = WALK|REP|MONST, Teleport (0, tag, 1)
-
-//666 Is used to slide a horizontal or vertical line. But none of the Strife maps
-//use it, and polyobjects are better, so I won't bother implementing it.
-
-// Local doors
- 1 = USE|MONST|REP, Door_Raise (0, D_SLOW, VDOORWAIT, tag)
- 26 = USE|REP, Door_LockedRaise (0, D_SLOW, VDOORWAIT, 4, tag)
- 27 = USE|REP, Door_LockedRaise (0, D_SLOW, VDOORWAIT, 3, tag)
- 28 = USE|REP, Door_LockedRaise (0, D_SLOW, VDOORWAIT, 10, tag)
-
- 31 = USE|MONST, Door_Open (0, D_SLOW, tag)
- 32 = USE, Door_LockedRaise (0, D_SLOW, 0, 4, tag)
- 33 = USE, Door_LockedRaise (0, D_SLOW, 0, 10, tag)
- 34 = USE, Door_LockedRaise (0, D_SLOW, 0, 3, tag)
-
-117 = USE|REP, Door_Raise (0, D_FAST, VDOORWAIT, tag)
-118 = USE, Door_Open (0, D_FAST, tag)
-
-156 = USE, Door_LockedRaise (0, D_SLOW, 0, 17, tag)
-157 = USE, Door_LockedRaise (0, D_SLOW, 0, 12, tag)
-158 = USE, Door_LockedRaise (0, D_SLOW, 0, 10, tag)
-
-159 = USE|REP, Door_LockedRaise (0, D_SLOW, VDOORWAIT, 10, tag)
-160 = USE|REP, Door_LockedRaise (0, D_SLOW, VDOORWAIT, 12, tag)
-161 = USE|REP, Door_LockedRaise (0, D_SLOW, VDOORWAIT, 17, tag)
-165 = USE, Door_LockedRaise (0, 0, 0, 102)
-166 = USE|REP, Door_LockedRaise (0, D_SLOW, VDOORWAIT, 6, tag)
-169 = USE|REP, Door_LockedRaise (0, D_SLOW, VDOORWAIT, 1, tag)
-170 = USE|REP, Door_LockedRaise (0, D_SLOW, VDOORWAIT, 2, tag)
-190 = USE|REP, Door_LockedRaise (0, D_SLOW, VDOORWAIT, 15, tag)
-205 = USE|REP, Door_LockedRaise (0, D_SLOW, 0, 103)
-213 = USE|REP, ACS_ExecuteWithResult (0, 213, tag)
-217 = USE, Door_LockedRaise (0, D_SLOW, 0, 23, tag)
-221 = USE, Door_LockedRaise (0, D_SLOW, 0, 24, tag)
-224 = USE, Door_LockedRaise (0, D_SLOW, 0, 20, tag)
-225 = USE, Door_LockedRaise (0, D_SLOW, 0, 21, tag)
-232 = USE|REP, ACS_ExecuteWithResult (0, 232, tag)
-
-144 = USE|MONST|REP, Door_Animated (0, 4, 3*35)
-148 = USE|REP, ForceField ()
-211 = USE|REP, SendToCommunicator (tag, 0, 2, 1)
-
-// Switches
- 7 = USE, Stairs_BuildUpDoom (tag, ST_SLOW, 8)
- 9 = USE, Floor_Donut (tag, DORATE, DORATE)
- 14 = USE, Plat_UpByValueStayTx (tag, P_SLOW/2, 4)
- 15 = USE, Plat_UpByValueStayTx (tag, P_SLOW/2, 3)
- 18 = USE, Floor_RaiseToNearest (tag, F_SLOW)
- 20 = USE, Plat_RaiseAndStayTx0 (tag, P_SLOW/2)
- 21 = USE, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT)
- 23 = USE, Floor_LowerToLowest (tag, F_SLOW)
- 29 = USE, Door_Raise (tag, D_SLOW, VDOORWAIT)
- 40 = USE, ACS_ExecuteWithResult (0, 40, tag)
-189 = USE, ACS_LockedExecute (0, 0, 189, tag, 13)
- 41 = USE, Ceiling_LowerToFloor (tag, C_SLOW)
- 71 = USE, Floor_LowerToHighest (tag, F_FAST, 128)
- 49 = USE, Ceiling_CrushAndRaiseA (tag, C_SLOW, C_SLOW, 10)
- 50 = USE, Door_Close (tag, D_SLOW)
- 51 = USE, Teleport_EndGame (0)
- 55 = USE, Floor_RaiseAndCrush (tag, F_SLOW, 10)
-101 = USE, Floor_RaiseToLowestCeiling (tag, F_SLOW)
-102 = USE, Floor_LowerToHighest (tag, F_SLOW, 128)
-103 = USE, Door_Open (tag, D_SLOW)
-111 = USE, Door_Raise (tag, D_FAST, VDOORWAIT)
-112 = USE, Door_Open (tag, D_FAST)
-113 = USE, Door_Close (tag, D_FAST)
-122 = USE, Plat_DownWaitUpStayLip (tag, P_TURBO, PLATWAIT, 0)
-127 = USE, Stairs_BuildUpDoom (tag, ST_TURBO, 16, 0, 0)
-131 = USE, Floor_RaiseToNearest (tag, F_FAST)
-133 = USE, Door_LockedRaise (tag, D_FAST, 0, 4)
-135 = USE, Door_LockedRaise (tag, D_FAST, 0, 11)
-137 = USE, Door_LockedRaise (tag, D_FAST, 0, 3)
-162 = USE, Door_LockedRaise (tag, D_FAST, 0, 17)
-163 = USE, Door_LockedRaise (tag, D_FAST, 0, 12)
-164 = USE, Door_LockedRaise (tag, D_FAST, 0, 10)
-167 = USE, Door_LockedRaise (tag, D_FAST, 0, 6)
-171 = USE, Door_LockedRaise (tag, D_SLOW, 0, 5)
-140 = USE, Floor_RaiseByValueTimes8 (tag, F_SLOW, 64)
-146 = USE, Generic_Stairs (tag, ST_FAST, 16, 0, 0)
-147 = USE, ClearForceField (tag)
-181 = USE, ACS_ExecuteWithResult (0, 181, tag)
-194 = USE, ACS_ExecuteWithResult (0, 194, tag)
-199 = USE, ACS_ExecuteWithResult (0, 199, tag)
-209 = USE, ACS_ExecuteWithResult (0, 209, tag)
-219 = USE, ACS_LockedExecute (0, 0, 219, tag, 19)
-220 = USE, ACS_LockedExecute (0, 0, 220, tag, 18)
-226 = USE, ACS_ExecuteWithResult (0, 226, tag)
-235 = USE, ACS_ExecuteWithResult (0, 235, tag)
-
-// Buttons
- 11 = USE|REP, Exit_Normal (0)
- 42 = USE|REP, Door_Close (tag, D_SLOW)
- 43 = USE|REP, Ceiling_LowerToFloor (tag, C_SLOW)
- 45 = USE|REP, Floor_LowerToHighest (tag, F_SLOW, 128)
- 60 = USE|REP, Floor_LowerToLowest (tag, F_SLOW)
- 61 = USE|REP, Door_Open (tag, D_SLOW)
- 62 = USE|REP, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT, 0)
- 63 = USE|REP, Door_Raise (tag, D_SLOW, VDOORWAIT)
- 64 = USE|REP, Floor_RaiseToLowestCeiling (tag, F_SLOW)
- 66 = USE|REP, Plat_UpByValueStayTx (tag, P_SLOW/2, 3)
- 67 = USE|REP, Plat_UpByValueStayTx (tag, P_SLOW/2, 4)
- 65 = USE|REP, Floor_RaiseAndCrush (tag, F_SLOW, 10)
- 68 = USE|REP, Plat_RaiseAndStayTx0 (tag, P_SLOW/2)
- 69 = USE|REP, Floor_RaiseToNearest (tag, F_SLOW)
- 70 = USE|REP, Floor_LowerToHighest (tag, F_FAST, 128)
-114 = USE|REP, Door_Raise (tag, D_FAST, VDOORWAIT)
-115 = USE|REP, Door_Open (tag, D_FAST)
-116 = USE|REP, Door_Close (tag, D_FAST)
-123 = USE|REP, Plat_DownWaitUpStayLip (tag, P_TURBO, PLATWAIT, 0)
-132 = USE|REP, Floor_RaiseToNearest (tag, F_FAST)
-
-172 = USE|REP, Door_LockedRaise (tag, D_SLOW, VDOORWAIT, 7)
-173 = USE|REP, Door_LockedRaise (tag, D_SLOW, VDOORWAIT, 8)
-176 = USE|REP, Door_LockedRaise (tag, D_SLOW, VDOORWAIT, 9)
-191 = USE|REP, Door_LockedRaise (tag, D_SLOW, VDOORWAIT, 14)
-192 = USE|REP, Door_LockedRaise (tag, D_SLOW, VDOORWAIT, 16)
-223 = USE|REP, Door_LockedRaise (tag, D_SLOW, VDOORWAIT, 26)
- 99 = USE|REP, Door_LockedRaise (tag, D_FAST, VDOORWAIT, 4)
-134 = USE|REP, Door_LockedRaise (tag, D_FAST, VDOORWAIT, 11)
-136 = USE|REP, Door_LockedRaise (tag, D_FAST, VDOORWAIT, 3)
-151 = USE|REP, Door_LockedRaise (tag, D_FAST, VDOORWAIT, 10)
-152 = USE|REP, Door_LockedRaise (tag, D_FAST, VDOORWAIT, 17)
-153 = USE|REP, Door_LockedRaise (tag, D_FAST, VDOORWAIT, 12)
-168 = USE|REP, Door_LockedRaise (tag, D_FAST, VDOORWAIT, 6)
-
-138 = USE|REP, Light_ChangeToValue (tag, 255)
-139 = USE|REP, Light_ChangeToValue (tag, 35)
-154 = USE|REP, ACS_LockedExecute (0, 0, 154, tag, 10)
-155 = USE|REP, Plat_UpNearestWaitDownStay (tag, P_NORMAL, PLATWAIT)
-177 = USE|REP, ACS_LockedExecute (0, 0, 177, tag, 9)
-207 = USE|REP, Door_Animated (tag, 4, 3*35)
-214 = USE|REP, ACS_ExecuteWithResult (0, 214, tag)
-229 = USE|REP, ACS_ExecuteWithResult (0, 229, tag)
-233 = USE|REP, ACS_ExecuteWithResult (0, 233, tag)
-234 = USE|REP, ACS_ExecuteWithResult (0, 234, tag)
-
-sector bitmask 0xf000 clear;
-sector bitmask 0xfe0 <<= 3;
-
-sector 1 = dLight_Flicker;
-sector 2 = dLight_StrobeFast;
-sector 3 = dLight_StrobeSlow;
-sector 4 = sLight_Strobe_Hurt;
-sector 5 = sDamage_Hellslime;
-sector 7 = dDamage_Nukage;
-sector 8 = dLight_Glow;
-sector 9 = SECRET_MASK nobitmask;
-sector 10 = dSector_DoorCloseIn30;
-sector 11 = dDamage_End;
-sector 12 = dLight_StrobeSlowSync;
-sector 13 = dLight_StrobeFastSync;
-sector 14 = dSector_DoorRaiseIn5Mins;
-sector 15 = Damage_InstantDeath;
-sector 16 = sDamage_SuperHellslime;
-sector 17 = dLight_FireFlicker;
-sector 18 = Scroll_StrifeCurrent;
-sector 19 = dDamage_LavaHefty;
-sector 20 = dScroll_EastLavaDamage;
-sector 21 = Light_Phased;
-sector 22 = LightSequenceStart;
-sector 23 = LightSequenceSpecial1;
-sector 24 = LightSequenceSpecial2;
-
-
diff --git a/wadsrc/xlat/strife_base.txt b/wadsrc/xlat/strife_base.txt
deleted file mode 100644
index b01f2fb1..00000000
--- a/wadsrc/xlat/strife_base.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-include "xlat/strife.txt"
-
-maxlinespecial = 234;
-
-sector bitmask 0xffe0 clear;
-
-sector 19 = 0;
-sector 20 = 0;
-sector 21 = 0;
-sector 22 = 0;
-sector 23 = 0;
-sector 24 = 0;
-
-
diff --git a/wadsrc/zdoom.lst b/wadsrc/zdoom.lst
deleted file mode 100644
index 4d7dc3ce..00000000
--- a/wadsrc/zdoom.lst
+++ /dev/null
@@ -1,385 +0,0 @@
-# The big list of all things zdoom.wad.
-
-@gzdoom.pk3
-
-vga-rom-font.16 vga-rom.f16
-
-graphics/invgeml1.png invgeml1.png
-graphics/invgeml2.png invgeml2.png
-graphics/invgemr1.png invgemr1.png
-graphics/invgemr2.png invgemr2.png
-graphics/artibox.png artibox.png
-graphics/selectbo.png selectbo.png
-graphics/fiteface.lmp fiteface.lmp
-graphics/mageface.lmp mageface.lmp
-graphics/clerface.lmp clerface.lmp
-graphics/hamoback.png hamoback.png
-
-======== # Decals
-decaldef.txt decals/decaldef.txt
---------
-
-graphics/blast1.png decals/blast1.png
-graphics/cbalscr1.png decals/cbalscr1.png
-graphics/cbalscr2.png decals/cbalscr2.png
-graphics/bal7scr1.png decals/bal7scr1.png
-graphics/bal7scr2.png decals/bal7scr2.png
-graphics/bfglite1.png decals/bfglite1.png
-graphics/bfglite2.png decals/bfglite2.png
-graphics/bfgscrc1.png decals/bfgscrc1.png
-graphics/bfgscrc2.png decals/bfgscrc2.png
-graphics/plasma1.png decals/plasma1.png
-graphics/plasma2.png decals/plasma2.png
-graphics/scorch1.png decals/scorch1.png
-graphics/bsplat1.png decals/bsplat1.png
-graphics/bsplat2.png decals/bsplat2.png
-graphics/bsplat3.png decals/bsplat3.png
-graphics/bsplat4.png decals/bsplat4.png
-graphics/bsplat5.png decals/bsplat5.png
-graphics/bsplat6.png decals/bsplat6.png
-graphics/bsplat7.png decals/bsplat7.png
-graphics/bsmear1.png decals/bsmear1.png
-graphics/bsmear2.png decals/bsmear2.png
-graphics/chip1.png decals/chip1.png
-graphics/chip2.png decals/chip2.png
-graphics/chip3.png decals/chip3.png
-graphics/chip4.png decals/chip4.png
-graphics/chip5.png decals/chip5.png
-graphics/cbowmark.png decals/cbowmark.png
-
-========
-# Definition lumps
-
-animdefs.txt animdefs.txt
-terrain.txt terrain.txt
-in_epi1.txt in_epi1.txt
-in_epi2.txt in_epi2.txt
-in_epi3.txt in_epi3.txt
-in_htc1.txt in_htc1.txt
-in_htc2.txt in_htc2.txt
-in_htc3.txt in_htc3.txt
-lockdefs.txt lockdefs.txt
-teaminfo.txt teaminfo.txt
-althudcf.txt althudcf.txt
-sbarinfo.txt sbarinfo.txt
-
-========
-# Doom map format translators
-
-xlat/doom.txt xlat/doom.txt
-xlat/heretic.txt xlat/heretic.txt
-xlat/strife.txt xlat/strife.txt
-xlat/base.txt xlat/base.txt
-xlat/defines.i xlat/defines.i
-xlat/doom_base.txt xlat/doom_base.txt
-xlat/heretic_base.txt xlat/heretic_base.txt
-xlat/strife_base.txt xlat/strife_base.txt
-
-
-========
-# Support lumps
-
-dehsupp.lmp dehsupp.lmp
-
-animated.lmp animated.lmp
-spaldoom.lmp spaldoom.lmp
-spalhtic.lmp spalhtic.lmp
-
-========
-# Language lumps
-
-language.enu languages/english-us.txt
-language.fr languages/french.txt
-language.ita languages/italian.txt
-
-========
-
-x11r6rgb.txt x11r6rgb.txt
-graphics/stkeys6.lmp stkeys6.lmp
-graphics/stkeys7.lmp stkeys7.lmp
-graphics/stkeys8.lmp stkeys8.lmp
-dbigfont.lmp dbigfont.lmp # The big Doom font
-sbigfont.lmp sbigfont.lmp # The big Strife font
-confont.lmp confont.lmp
-graphics/fonta60.lmp fonta60.lmp
-graphics/fonta61.lmp fonta61.lmp
-graphics/fonta62.lmp fonta62.lmp
-graphics/fonta63.lmp fonta63.lmp
-graphics/fonta164.lmp fonta164.lmp
-graphics/fonta165.lmp fonta165.lmp
-graphics/fonta182.lmp fonta182.lmp
-graphics/fonta188.lmp fonta188.lmp
-graphics/fonta191.lmp fonta191.lmp
-graphics/stcfn223.lmp stcfn223.lmp
-graphics/stcfn220.lmp stcfn220.lmp
-graphics/stcfn214.lmp stcfn214.lmp
-graphics/stcfn197.lmp stcfn197.lmp
-graphics/stcfn196.lmp stcfn196.lmp
-graphics/stpbany.lmp stpbany.lmp
-graphics/stfbany.lmp stfbany.lmp
-
-========
-# Crosshairs
-xhairs.txt xhairs.txt
-
-graphics/xhairs1.imgz xhairs1.imgz
-graphics/xhairs2.imgz xhairs2.imgz
-graphics/xhairs3.imgz xhairs3.imgz
-graphics/xhairs4.imgz xhairs4.imgz
-graphics/xhairs5.imgz xhairs5.imgz
-graphics/xhairs6.imgz xhairs6.imgz
-graphics/xhairs7.imgz xhairs7.imgz
-
-graphics/xhairb1.imgz xhairb1.imgz
-graphics/xhairb2.png xhairb2.png
-graphics/xhairb3.imgz xhairb3.imgz
-graphics/xhairb4.imgz xhairb4.imgz
-graphics/xhairb5.imgz xhairb5.imgz
-graphics/xhairb6.imgz xhairb6.imgz
-graphics/xhairb7.imgz xhairb7.imgz
-
-# Now some sprites
-sprites/tnt1a0.png tnt1a0.png
-sprites/unkna0.png unkna0.png
-sprites/tlgla0.png tlgl.png
-sprites/tlglb0.png tlgl.png
-sprites/tlglc0.png tlgl.png
-sprites/tlgld0.png tlgl.png
-sprites/tlgle0.png tlgl.png
-sprites/iceca0.png iceca0.png
-sprites/icecb0.png icecb0.png
-sprites/icecc0.png icecc0.png
-sprites/icecd0.png icecd0.png
-sprites/amrka0.png amrka0.png
-sprites/pista0.png pista0.png
-sprites/rsmka0.png rsmka0.png
-sprites/rsmkb0.png rsmkb0.png
-sprites/rsmkc0.png rsmkc0.png
-sprites/rsmkd0.png rsmkd0.png
-sprites/rsmke0.png rsmke0.png
-
-# crouching DoomPlayer
-sprites/plyca1.lmp crouch/plyca1.lmp
-sprites/plyca2a8.lmp crouch/plyca2a8.lmp
-sprites/plyca3a7.lmp crouch/plyca3a7.lmp
-sprites/plyca4a6.lmp crouch/plyca4a6.lmp
-sprites/plyca5.lmp crouch/plyca5.lmp
-sprites/plycb1.lmp crouch/plycb1.lmp
-sprites/plycb2b8.lmp crouch/plycb2b8.lmp
-sprites/plycb3b7.lmp crouch/plycb3b7.lmp
-sprites/plycb4b6.lmp crouch/plycb4b6.lmp
-sprites/plycb5.lmp crouch/plycb5.lmp
-sprites/plycc1.lmp crouch/plycc1.lmp
-sprites/plycc2c8.lmp crouch/plycc2c8.lmp
-sprites/plycc3c7.lmp crouch/plycc3c7.lmp
-sprites/plycc4c6.lmp crouch/plycc4c6.lmp
-sprites/plycc5.lmp crouch/plycc5.lmp
-sprites/plycd1.lmp crouch/plycd1.lmp
-sprites/plycd2d8.lmp crouch/plycd2d8.lmp
-sprites/plycd3d7.lmp crouch/plycd3d7.lmp
-sprites/plycd4d6.lmp crouch/plycd4d6.lmp
-sprites/plycd5.lmp crouch/plycd5.lmp
-sprites/plyce1.lmp crouch/plyce1.lmp
-sprites/plyce2e8.lmp crouch/plyce2e8.lmp
-sprites/plyce3e7.lmp crouch/plyce3e7.lmp
-sprites/plyce4e6.lmp crouch/plyce4e6.lmp
-sprites/plyce5.lmp crouch/plyce5.lmp
-sprites/plycf1.lmp crouch/plycf1.lmp
-sprites/plycf2f8.lmp crouch/plycf2f8.lmp
-sprites/plycf3f7.lmp crouch/plycf3f7.lmp
-sprites/plycf4f6.lmp crouch/plycf4f6.lmp
-sprites/plycf5.lmp crouch/plycf5.lmp
-sprites/plycg1.lmp crouch/plycg1.lmp
-sprites/plycg2g8.lmp crouch/plycg2g8.lmp
-sprites/plycg3g7.lmp crouch/plycg3g7.lmp
-sprites/plycg4g6.lmp crouch/plycg4g6.lmp
-sprites/plycg5.lmp crouch/plycg5.lmp
-sprites/plych0.lmp crouch/plych0.lmp
-sprites/plyci0.lmp crouch/plyci0.lmp
-sprites/plycj0.lmp crouch/plycj0.lmp
-sprites/plyck0.lmp crouch/plyck0.lmp
-sprites/plycl0.lmp crouch/plycl0.lmp
-sprites/plycm0.lmp crouch/plycm0.lmp
-sprites/plycn0.lmp crouch/plycn0.lmp
-sprites/plyco0.lmp crouch/plyco0.lmp
-sprites/plycp0.lmp crouch/plycp0.lmp
-sprites/plycq0.lmp crouch/plycq0.lmp
-sprites/plycr0.lmp crouch/plycr0.lmp
-sprites/plycs0.lmp crouch/plycs0.lmp
-sprites/plyct0.lmp crouch/plyct0.lmp
-sprites/plycu0.lmp crouch/plycu0.lmp
-sprites/plycv0.lmp crouch/plycv0.lmp
-sprites/plycw0.lmp crouch/plycw0.lmp
-
-# The patch substituted when a corrupt patch is detected
-graphics/-badpatc.lmp badpatch.lmp
-
-# The texture substituted when an unknown texture is encountered
-textures/-noflat-.png noflat.png
-
-========
-# Sounds
-
-sndinfo.txt sndinfo.txt
-sndseq.txt sndseq.txt
-reverbs.txt reverbs.txt
-
---------
-
-sounds/icedth1.flac icedeath.flac
-sounds/icebrk1a.flac icebreak.flac
-
-sounds/dsquake.flac quake.flac
-sounds/dsempty.lmp dsempty.lmp
-sounds/dssecret.flac secret.flac
-sounds/spark1.flac spark1.flac
-sounds/spark2.flac spark2.flac
-sounds/spark3.flac spark3.flac
-sounds/railgf1.flac railgunfire.flac
-
-========
-# Mapinfos
-
-mapinfo/doomcommon.txt mapinfo/doomcommon.txt
-mapinfo/doom1.txt mapinfo/doom1.txt
-mapinfo/doom2.txt mapinfo/doom2.txt
-mapinfo/plutonia.txt mapinfo/plutonia.txt
-mapinfo/tnt.txt mapinfo/tnt.txt
-mapinfo/heretic.txt mapinfo/heretic.txt
-mapinfo/hexen.txt mapinfo/hexen.txt
-mapinfo/strife.txt mapinfo/strife.txt
-
-========
-# Strife's helper script
-acs/strfhelp.o strfhelp.o
-
-
-========
-# Font color ranges
-textcolors.txt textcolors.txt
-fontdefs.txt fontdefs.txt
-indexfont indexfont.fon
-
-
-========
-#GZDoom additions
-etc.h.txt gzd/etc.h.txt
-things.h.txt gzd/things.h.txt
-lspec.h.txt gzd/lspec.h.txt
-
-shaders/main.fp gzd/shaders/main.fp
-shaders/main.vp gzd/shaders/main.vp
-shaders/main_desat.fp gzd/shaders/main_desat.fp
-shaders/main_nofog.vp gzd/shaders/main_nofog.vp
-shaders/light/light_doom.fp gzd/shaders/light/light_doom.fp
-shaders/light/light_eyefog.fp gzd/shaders/light/light_eyefog.fp
-shaders/light/light_brightmap.fp gzd/shaders/light/light_brightmap.fp
-shaders/light/light_gold.fp gzd/shaders/light/light_gold.fp
-shaders/light/light_green.fp gzd/shaders/light/light_green.fp
-shaders/light/light_inverse.fp gzd/shaders/light/light_inverse.fp
-shaders/light/light_norm.fp gzd/shaders/light/light_norm.fp
-shaders/light/light_red.fp gzd/shaders/light/light_red.fp
-shaders/tex/tex_norm.fp gzd/shaders/tex/tex_norm.fp
-shaders/tex/tex_warp1.fp gzd/shaders/tex/tex_warp1.fp
-shaders/tex/tex_warp2.fp gzd/shaders/tex/tex_warp2.fp
-
-
-
-glstuff/gllight.png gzd/textures/gllight.png
-glstuff/glpart.png gzd/textures/glpart.png
-glstuff/glpart2.png gzd/textures/glpart2.png
-glstuff/mirror.png gzd/textures/mirror.png
-decorate.z gzd/decorate.gzd
-
-
-
-========
-# Decorate stuff
-
-decorate.txt decorate/decorate.txt
-actors/nativeclasses.txt decorate/nativeclasses.txt
-actors/constants.txt decorate/constants.txt
-
-actors/shared/botstuff.txt decorate/shared/botstuff.txt
-actors/shared/sharedmisc.txt decorate/shared/sharedmisc.txt
-actors/shared/blood.txt decorate/shared/blood.txt
-actors/shared/debris.txt decorate/shared/debris.txt
-actors/shared/splashes.txt decorate/shared/splashes.txt
-actors/shared/pickups.txt decorate/shared/pickups.txt
-actors/shared/fountain.txt decorate/shared/fountain.txt
-actors/shared/soundsequence.txt decorate/shared/soundsequence.txt
-
-actors/doom/doomplayer.txt decorate/doom/doomplayer.txt
-actors/doom/possessed.txt decorate/doom/possessed.txt
-actors/doom/doomimp.txt decorate/doom/doomimp.txt
-actors/doom/demon.txt decorate/doom/demon.txt
-actors/doom/lostsoul.txt decorate/doom/lostsoul.txt
-actors/doom/cacodemon.txt decorate/doom/cacodemon.txt
-actors/doom/bruiser.txt decorate/doom/bruiser.txt
-actors/doom/arachnotron.txt decorate/doom/arachnotron.txt
-actors/doom/fatso.txt decorate/doom/fatso.txt
-actors/doom/revenant.txt decorate/doom/revenant.txt
-actors/doom/painelemental.txt decorate/doom/painelemental.txt
-actors/doom/archvile.txt decorate/doom/archvile.txt
-actors/doom/cyberdemon.txt decorate/doom/cyberdemon.txt
-actors/doom/spidermaster.txt decorate/doom/spidermaster.txt
-actors/doom/keen.txt decorate/doom/keen.txt
-actors/doom/bossbrain.txt decorate/doom/bossbrain.txt
-
-actors/doom/deadthings.txt decorate/doom/deadthings.txt
-actors/doom/doomammo.txt decorate/doom/doomammo.txt
-actors/doom/doomarmor.txt decorate/doom/doomarmor.txt
-actors/doom/doomartifacts.txt decorate/doom/doomartifacts.txt
-actors/doom/doomhealth.txt decorate/doom/doomhealth.txt
-actors/doom/doomkeys.txt decorate/doom/doomkeys.txt
-actors/doom/doommisc.txt decorate/doom/doommisc.txt
-actors/doom/doomdecorations.txt decorate/doom/doomdecorations.txt
-actors/doom/doomweapons.txt decorate/doom/doomweapons.txt
-actors/doom/stealthmonsters.txt decorate/doom/stealthmonsters.txt
-
-actors/raven/artiegg.txt decorate/raven/artiegg.txt
-actors/raven/ravenartifacts.txt decorate/raven/ravenartifacts.txt
-actors/raven/ravenhealth.txt decorate/raven/ravenhealth.txt
-actors/raven/ravenambient.txt decorate/raven/ravenambient.txt
-
-actors/heretic/hereticplayer.txt decorate/heretic/hereticplayer.txt
-actors/heretic/hereticammo.txt decorate/heretic/hereticammo.txt
-actors/heretic/hereticarmor.txt decorate/heretic/hereticarmor.txt
-actors/heretic/hereticartifacts.txt decorate/heretic/hereticartifacts.txt
-actors/heretic/heretickeys.txt decorate/heretic/heretickeys.txt
-actors/heretic/hereticdecorations.txt decorate/heretic/hereticdecorations.txt
-actors/heretic/mummy.txt decorate/heretic/mummy.txt
-actors/heretic/clink.txt decorate/heretic/clink.txt
-actors/heretic/beast.txt decorate/heretic/beast.txt
-actors/heretic/snake.txt decorate/heretic/snake.txt
-
-actors/hexen/fighterplayer.txt decorate/hexen/fighterplayer.txt
-actors/hexen/clericplayer.txt decorate/hexen/clericplayer.txt
-actors/hexen/mageplayer.txt decorate/hexen/mageplayer.txt
-actors/hexen/flame.txt decorate/hexen/flame.txt
-actors/hexen/hexenarmor.txt decorate/hexen/hexenarmor.txt
-actors/hexen/hexendecorations.txt decorate/hexen/hexendecorations.txt
-actors/hexen/hexenkeys.txt decorate/hexen/hexenkeys.txt
-actors/hexen/hexenspecialdecs.txt decorate/hexen/hexenspecialdecs.txt
-actors/hexen/mana.txt decorate/hexen/mana.txt
-actors/hexen/puzzleitems.txt decorate/hexen/puzzleitems.txt
-actors/hexen/scriptprojectiles.txt decorate/hexen/scriptprojectiles.txt
-actors/hexen/speedboots.txt decorate/hexen/speedboots.txt
-actors/hexen/ettin.txt decorate/hexen/ettin.txt
-actors/hexen/centaur.txt decorate/hexen/centaur.txt
-actors/hexen/demons.txt decorate/hexen/demons.txt
-
-actors/strife/strifeplayer.txt decorate/strife/strifeplayer.txt
-actors/strife/beggars.txt decorate/strife/beggars.txt
-actors/strife/merchants.txt decorate/strife/merchants.txt
-actors/strife/peasants.txt decorate/strife/peasants.txt
-actors/strife/strifebishop.txt decorate/strife/strifebishop.txt
-actors/strife/questitems.txt decorate/strife/questitems.txt
-actors/strife/ratbuddy.txt decorate/strife/ratbuddy.txt
-actors/strife/strifeammo.txt decorate/strife/strifeammo.txt
-actors/strife/strifearmor.txt decorate/strife/strifearmor.txt
-actors/strife/strifeitems.txt decorate/strife/strifeitems.txt
-actors/strife/strifekeys.txt decorate/strife/strifekeys.txt
-actors/strife/strifestuff.txt decorate/strife/strifestuff.txt
-actors/strife/zombie.txt decorate/strife/zombie.txt
-
diff --git a/wadsrc_bm/Makefile b/wadsrc_bm/Makefile
deleted file mode 100644
index 0fea4ff0..00000000
--- a/wadsrc_bm/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# NMAKE doesn't know how to handle executables that use forward slashes in
-# their paths, but it can handle forward slashes in dependencies. Heh.
-# The wadsrc project file redefines MAKEWAD using backslashes instead. It
-# also defines NOLOGO, so you don't need to see NMAKE's banner.
-#
-# Summary: If you use Visual C++, the provided project file is set up to
-# build the wad correctly with nmake. If you use GCC, then "make" is
-# sufficient to build the wad.
-
-RM=rm -f
-SLASH=/
-MAKEWAD=..$(SLASH)tools$(SLASH)makewad$(SLASH)makewad
-
-makethewad: wadmake Makefile2
- $(MAKE) $(NOLOGO) -f Makefile2
-
-wadmake: zdoom.lst
- $(MAKEWAD) -make wadmake zdoom.lst
-
-clean:
- $(RM) wadmake brightmaps.pk3
-
-# This target is for Visual C++'s Rebuild All command
-nrebuild: clean
- $(MAKE) NOLOGO=$(NOLOGO) SLASH=$(SLASH)
- copy brightmaps.pk3 ..\..
-
-# Copy the wad to my testing area
-andcopy: makethewad
- copy brightmaps.pk3 ..\..
diff --git a/wadsrc_bm/Makefile.mgw b/wadsrc_bm/Makefile.mgw
deleted file mode 100644
index 74e1ce3b..00000000
--- a/wadsrc_bm/Makefile.mgw
+++ /dev/null
@@ -1,18 +0,0 @@
-MAKEWAD=../tools/makewad/makewad
-
-ifneq ($(MAKECMDGOALS),clean)
-include Makefile2
-endif
-
-wadmake: zdoom.lst $(MAKEWAD).exe
- $(MAKEWAD) -make wadmake zdoom.lst
-
-clean:
-ifeq (msys,$(OSTYPE))
- rm -f wadmake brightmaps.pk3
-else
- del /q /f wadmake brightmaps.pk3 2>nul
-endif
-
-../tools/makewad/makewad.exe:
- $(MAKE) -C ../tools/makewad -f Makefile
diff --git a/wadsrc_bm/Makefile2 b/wadsrc_bm/Makefile2
deleted file mode 100644
index 82d1cf51..00000000
--- a/wadsrc_bm/Makefile2
+++ /dev/null
@@ -1,2 +0,0 @@
-include wadmake
-
diff --git a/wadsrc_bm/brightmaps.vcproj b/wadsrc_bm/brightmaps.vcproj
index e3a21508..4c3919d1 100644
--- a/wadsrc_bm/brightmaps.vcproj
+++ b/wadsrc_bm/brightmaps.vcproj
@@ -2,9 +2,9 @@
@@ -22,1676 +22,96 @@
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
- ConfigurationType="0"
+ ConfigurationType="10"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
>
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/wadsrc_bm/brightmaps/doom/BON2B0.png b/wadsrc_bm/static/brightmaps/doom/BON2B0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BON2B0.png
rename to wadsrc_bm/static/brightmaps/doom/BON2B0.png
diff --git a/wadsrc_bm/brightmaps/doom/BON2C0.png b/wadsrc_bm/static/brightmaps/doom/BON2C0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BON2C0.png
rename to wadsrc_bm/static/brightmaps/doom/BON2C0.png
diff --git a/wadsrc_bm/brightmaps/doom/BON2D0.png b/wadsrc_bm/static/brightmaps/doom/BON2D0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BON2D0.png
rename to wadsrc_bm/static/brightmaps/doom/BON2D0.png
diff --git a/wadsrc_bm/brightmaps/doom/BOS2A6C4.png b/wadsrc_bm/static/brightmaps/doom/BOS2A6C4.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOS2A6C4.png
rename to wadsrc_bm/static/brightmaps/doom/BOS2A6C4.png
diff --git a/wadsrc_bm/brightmaps/doom/BOS2A7C3.png b/wadsrc_bm/static/brightmaps/doom/BOS2A7C3.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOS2A7C3.png
rename to wadsrc_bm/static/brightmaps/doom/BOS2A7C3.png
diff --git a/wadsrc_bm/brightmaps/doom/BOS2A8C2.png b/wadsrc_bm/static/brightmaps/doom/BOS2A8C2.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOS2A8C2.png
rename to wadsrc_bm/static/brightmaps/doom/BOS2A8C2.png
diff --git a/wadsrc_bm/brightmaps/doom/BOS2B6D4.png b/wadsrc_bm/static/brightmaps/doom/BOS2B6D4.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOS2B6D4.png
rename to wadsrc_bm/static/brightmaps/doom/BOS2B6D4.png
diff --git a/wadsrc_bm/brightmaps/doom/BOS2B7D3.png b/wadsrc_bm/static/brightmaps/doom/BOS2B7D3.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOS2B7D3.png
rename to wadsrc_bm/static/brightmaps/doom/BOS2B7D3.png
diff --git a/wadsrc_bm/brightmaps/doom/BOS2B8D2.png b/wadsrc_bm/static/brightmaps/doom/BOS2B8D2.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOS2B8D2.png
rename to wadsrc_bm/static/brightmaps/doom/BOS2B8D2.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSA1.png b/wadsrc_bm/static/brightmaps/doom/BOSSA1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSA1.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSA1.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSA2A8.png b/wadsrc_bm/static/brightmaps/doom/BOSSA2A8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSA2A8.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSA2A8.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSA3A7.png b/wadsrc_bm/static/brightmaps/doom/BOSSA3A7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSA3A7.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSA3A7.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSA4A6.png b/wadsrc_bm/static/brightmaps/doom/BOSSA4A6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSA4A6.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSA4A6.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSA5.png b/wadsrc_bm/static/brightmaps/doom/BOSSA5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSA5.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSA5.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSB1.png b/wadsrc_bm/static/brightmaps/doom/BOSSB1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSB1.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSB1.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSB2B8.png b/wadsrc_bm/static/brightmaps/doom/BOSSB2B8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSB2B8.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSB2B8.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSB3B7.png b/wadsrc_bm/static/brightmaps/doom/BOSSB3B7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSB3B7.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSB3B7.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSB4B6.png b/wadsrc_bm/static/brightmaps/doom/BOSSB4B6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSB4B6.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSB4B6.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSB5.png b/wadsrc_bm/static/brightmaps/doom/BOSSB5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSB5.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSB5.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSC1.png b/wadsrc_bm/static/brightmaps/doom/BOSSC1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSC1.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSC1.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSC2C8.png b/wadsrc_bm/static/brightmaps/doom/BOSSC2C8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSC2C8.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSC2C8.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSC3C7.png b/wadsrc_bm/static/brightmaps/doom/BOSSC3C7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSC3C7.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSC3C7.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSC4C6.png b/wadsrc_bm/static/brightmaps/doom/BOSSC4C6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSC4C6.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSC4C6.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSC5.png b/wadsrc_bm/static/brightmaps/doom/BOSSC5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSC5.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSC5.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSD1.png b/wadsrc_bm/static/brightmaps/doom/BOSSD1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSD1.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSD1.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSD2D8.png b/wadsrc_bm/static/brightmaps/doom/BOSSD2D8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSD2D8.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSD2D8.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSD3D7.png b/wadsrc_bm/static/brightmaps/doom/BOSSD3D7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSD3D7.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSD3D7.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSD4D6.png b/wadsrc_bm/static/brightmaps/doom/BOSSD4D6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSD4D6.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSD4D6.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSD5.png b/wadsrc_bm/static/brightmaps/doom/BOSSD5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSD5.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSD5.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSE1.png b/wadsrc_bm/static/brightmaps/doom/BOSSE1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSE1.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSE1.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSE2.png b/wadsrc_bm/static/brightmaps/doom/BOSSE2.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSE2.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSE2.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSE3.png b/wadsrc_bm/static/brightmaps/doom/BOSSE3.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSE3.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSE3.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSE4.png b/wadsrc_bm/static/brightmaps/doom/BOSSE4.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSE4.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSE4.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSE5.png b/wadsrc_bm/static/brightmaps/doom/BOSSE5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSE5.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSE5.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSE6.png b/wadsrc_bm/static/brightmaps/doom/BOSSE6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSE6.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSE6.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSE7.png b/wadsrc_bm/static/brightmaps/doom/BOSSE7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSE7.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSE7.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSE8.png b/wadsrc_bm/static/brightmaps/doom/BOSSE8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSE8.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSE8.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSF1.png b/wadsrc_bm/static/brightmaps/doom/BOSSF1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSF1.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSF1.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSF2.png b/wadsrc_bm/static/brightmaps/doom/BOSSF2.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSF2.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSF2.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSF3.png b/wadsrc_bm/static/brightmaps/doom/BOSSF3.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSF3.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSF3.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSF4.png b/wadsrc_bm/static/brightmaps/doom/BOSSF4.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSF4.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSF4.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSF5.png b/wadsrc_bm/static/brightmaps/doom/BOSSF5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSF5.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSF5.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSF6.png b/wadsrc_bm/static/brightmaps/doom/BOSSF6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSF6.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSF6.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSF7.png b/wadsrc_bm/static/brightmaps/doom/BOSSF7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSF7.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSF7.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSF8.png b/wadsrc_bm/static/brightmaps/doom/BOSSF8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSF8.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSF8.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSG1.png b/wadsrc_bm/static/brightmaps/doom/BOSSG1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSG1.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSG1.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSG2.png b/wadsrc_bm/static/brightmaps/doom/BOSSG2.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSG2.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSG2.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSG3.png b/wadsrc_bm/static/brightmaps/doom/BOSSG3.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSG3.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSG3.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSG4.png b/wadsrc_bm/static/brightmaps/doom/BOSSG4.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSG4.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSG4.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSG5.png b/wadsrc_bm/static/brightmaps/doom/BOSSG5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSG5.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSG5.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSG6.png b/wadsrc_bm/static/brightmaps/doom/BOSSG6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSG6.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSG6.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSG7.png b/wadsrc_bm/static/brightmaps/doom/BOSSG7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSG7.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSG7.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSG8.png b/wadsrc_bm/static/brightmaps/doom/BOSSG8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSG8.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSG8.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSH1.png b/wadsrc_bm/static/brightmaps/doom/BOSSH1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSH1.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSH1.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSH2.png b/wadsrc_bm/static/brightmaps/doom/BOSSH2.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSH2.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSH2.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSH3.png b/wadsrc_bm/static/brightmaps/doom/BOSSH3.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSH3.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSH3.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSH4.png b/wadsrc_bm/static/brightmaps/doom/BOSSH4.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSH4.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSH4.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSH5.png b/wadsrc_bm/static/brightmaps/doom/BOSSH5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSH5.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSH5.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSH6.png b/wadsrc_bm/static/brightmaps/doom/BOSSH6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSH6.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSH6.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSH7.png b/wadsrc_bm/static/brightmaps/doom/BOSSH7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSH7.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSH7.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSH8.png b/wadsrc_bm/static/brightmaps/doom/BOSSH8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSH8.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSH8.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSI0.png b/wadsrc_bm/static/brightmaps/doom/BOSSI0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSI0.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSI0.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSJ0.png b/wadsrc_bm/static/brightmaps/doom/BOSSJ0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSJ0.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSJ0.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSK0.png b/wadsrc_bm/static/brightmaps/doom/BOSSK0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSK0.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSK0.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSL0.png b/wadsrc_bm/static/brightmaps/doom/BOSSL0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSL0.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSL0.png
diff --git a/wadsrc_bm/brightmaps/doom/BOSSM0.png b/wadsrc_bm/static/brightmaps/doom/BOSSM0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BOSSM0.png
rename to wadsrc_bm/static/brightmaps/doom/BOSSM0.png
diff --git a/wadsrc_bm/brightmaps/doom/BSPIG1.png b/wadsrc_bm/static/brightmaps/doom/BSPIG1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BSPIG1.png
rename to wadsrc_bm/static/brightmaps/doom/BSPIG1.png
diff --git a/wadsrc_bm/brightmaps/doom/BSPIG2G8.png b/wadsrc_bm/static/brightmaps/doom/BSPIG2G8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BSPIG2G8.png
rename to wadsrc_bm/static/brightmaps/doom/BSPIG2G8.png
diff --git a/wadsrc_bm/brightmaps/doom/BSPIH1.png b/wadsrc_bm/static/brightmaps/doom/BSPIH1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BSPIH1.png
rename to wadsrc_bm/static/brightmaps/doom/BSPIH1.png
diff --git a/wadsrc_bm/brightmaps/doom/BSPIH2H8.png b/wadsrc_bm/static/brightmaps/doom/BSPIH2H8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BSPIH2H8.png
rename to wadsrc_bm/static/brightmaps/doom/BSPIH2H8.png
diff --git a/wadsrc_bm/brightmaps/doom/BSPIH3H7.png b/wadsrc_bm/static/brightmaps/doom/BSPIH3H7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BSPIH3H7.png
rename to wadsrc_bm/static/brightmaps/doom/BSPIH3H7.png
diff --git a/wadsrc_bm/brightmaps/doom/BSPIH4H6.png b/wadsrc_bm/static/brightmaps/doom/BSPIH4H6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BSPIH4H6.png
rename to wadsrc_bm/static/brightmaps/doom/BSPIH4H6.png
diff --git a/wadsrc_bm/brightmaps/doom/BSPIH5.png b/wadsrc_bm/static/brightmaps/doom/BSPIH5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/BSPIH5.png
rename to wadsrc_bm/static/brightmaps/doom/BSPIH5.png
diff --git a/wadsrc_bm/brightmaps/doom/CELLA0.png b/wadsrc_bm/static/brightmaps/doom/CELLA0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CELLA0.png
rename to wadsrc_bm/static/brightmaps/doom/CELLA0.png
diff --git a/wadsrc_bm/brightmaps/doom/CELPA0.png b/wadsrc_bm/static/brightmaps/doom/CELPA0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CELPA0.png
rename to wadsrc_bm/static/brightmaps/doom/CELPA0.png
diff --git a/wadsrc_bm/brightmaps/doom/CPOSE1.png b/wadsrc_bm/static/brightmaps/doom/CPOSE1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CPOSE1.png
rename to wadsrc_bm/static/brightmaps/doom/CPOSE1.png
diff --git a/wadsrc_bm/brightmaps/doom/CPOSE2.png b/wadsrc_bm/static/brightmaps/doom/CPOSE2.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CPOSE2.png
rename to wadsrc_bm/static/brightmaps/doom/CPOSE2.png
diff --git a/wadsrc_bm/brightmaps/doom/CPOSE3.png b/wadsrc_bm/static/brightmaps/doom/CPOSE3.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CPOSE3.png
rename to wadsrc_bm/static/brightmaps/doom/CPOSE3.png
diff --git a/wadsrc_bm/brightmaps/doom/CPOSE5.png b/wadsrc_bm/static/brightmaps/doom/CPOSE5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CPOSE5.png
rename to wadsrc_bm/static/brightmaps/doom/CPOSE5.png
diff --git a/wadsrc_bm/brightmaps/doom/CPOSE6.png b/wadsrc_bm/static/brightmaps/doom/CPOSE6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CPOSE6.png
rename to wadsrc_bm/static/brightmaps/doom/CPOSE6.png
diff --git a/wadsrc_bm/brightmaps/doom/CPOSE7.png b/wadsrc_bm/static/brightmaps/doom/CPOSE7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CPOSE7.png
rename to wadsrc_bm/static/brightmaps/doom/CPOSE7.png
diff --git a/wadsrc_bm/brightmaps/doom/CPOSE8.png b/wadsrc_bm/static/brightmaps/doom/CPOSE8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CPOSE8.png
rename to wadsrc_bm/static/brightmaps/doom/CPOSE8.png
diff --git a/wadsrc_bm/brightmaps/doom/CPOSF1.png b/wadsrc_bm/static/brightmaps/doom/CPOSF1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CPOSF1.png
rename to wadsrc_bm/static/brightmaps/doom/CPOSF1.png
diff --git a/wadsrc_bm/brightmaps/doom/CPOSF2.png b/wadsrc_bm/static/brightmaps/doom/CPOSF2.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CPOSF2.png
rename to wadsrc_bm/static/brightmaps/doom/CPOSF2.png
diff --git a/wadsrc_bm/brightmaps/doom/CPOSF3.png b/wadsrc_bm/static/brightmaps/doom/CPOSF3.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CPOSF3.png
rename to wadsrc_bm/static/brightmaps/doom/CPOSF3.png
diff --git a/wadsrc_bm/brightmaps/doom/CPOSF4.png b/wadsrc_bm/static/brightmaps/doom/CPOSF4.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CPOSF4.png
rename to wadsrc_bm/static/brightmaps/doom/CPOSF4.png
diff --git a/wadsrc_bm/brightmaps/doom/CPOSF5.png b/wadsrc_bm/static/brightmaps/doom/CPOSF5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CPOSF5.png
rename to wadsrc_bm/static/brightmaps/doom/CPOSF5.png
diff --git a/wadsrc_bm/brightmaps/doom/CPOSF6.png b/wadsrc_bm/static/brightmaps/doom/CPOSF6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CPOSF6.png
rename to wadsrc_bm/static/brightmaps/doom/CPOSF6.png
diff --git a/wadsrc_bm/brightmaps/doom/CPOSF7.png b/wadsrc_bm/static/brightmaps/doom/CPOSF7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CPOSF7.png
rename to wadsrc_bm/static/brightmaps/doom/CPOSF7.png
diff --git a/wadsrc_bm/brightmaps/doom/CPOSF8.png b/wadsrc_bm/static/brightmaps/doom/CPOSF8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CPOSF8.png
rename to wadsrc_bm/static/brightmaps/doom/CPOSF8.png
diff --git a/wadsrc_bm/brightmaps/doom/CYBRF1.png b/wadsrc_bm/static/brightmaps/doom/CYBRF1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CYBRF1.png
rename to wadsrc_bm/static/brightmaps/doom/CYBRF1.png
diff --git a/wadsrc_bm/brightmaps/doom/CYBRF2.png b/wadsrc_bm/static/brightmaps/doom/CYBRF2.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CYBRF2.png
rename to wadsrc_bm/static/brightmaps/doom/CYBRF2.png
diff --git a/wadsrc_bm/brightmaps/doom/CYBRF3.png b/wadsrc_bm/static/brightmaps/doom/CYBRF3.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CYBRF3.png
rename to wadsrc_bm/static/brightmaps/doom/CYBRF3.png
diff --git a/wadsrc_bm/brightmaps/doom/CYBRF4.png b/wadsrc_bm/static/brightmaps/doom/CYBRF4.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CYBRF4.png
rename to wadsrc_bm/static/brightmaps/doom/CYBRF4.png
diff --git a/wadsrc_bm/brightmaps/doom/CYBRF5.png b/wadsrc_bm/static/brightmaps/doom/CYBRF5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CYBRF5.png
rename to wadsrc_bm/static/brightmaps/doom/CYBRF5.png
diff --git a/wadsrc_bm/brightmaps/doom/CYBRF6.png b/wadsrc_bm/static/brightmaps/doom/CYBRF6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CYBRF6.png
rename to wadsrc_bm/static/brightmaps/doom/CYBRF6.png
diff --git a/wadsrc_bm/brightmaps/doom/CYBRF7.png b/wadsrc_bm/static/brightmaps/doom/CYBRF7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CYBRF7.png
rename to wadsrc_bm/static/brightmaps/doom/CYBRF7.png
diff --git a/wadsrc_bm/brightmaps/doom/CYBRF8.png b/wadsrc_bm/static/brightmaps/doom/CYBRF8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CYBRF8.png
rename to wadsrc_bm/static/brightmaps/doom/CYBRF8.png
diff --git a/wadsrc_bm/brightmaps/doom/CYBRJ0.png b/wadsrc_bm/static/brightmaps/doom/CYBRJ0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CYBRJ0.png
rename to wadsrc_bm/static/brightmaps/doom/CYBRJ0.png
diff --git a/wadsrc_bm/brightmaps/doom/CYBRK0.png b/wadsrc_bm/static/brightmaps/doom/CYBRK0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CYBRK0.png
rename to wadsrc_bm/static/brightmaps/doom/CYBRK0.png
diff --git a/wadsrc_bm/brightmaps/doom/CYBRL0.png b/wadsrc_bm/static/brightmaps/doom/CYBRL0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CYBRL0.png
rename to wadsrc_bm/static/brightmaps/doom/CYBRL0.png
diff --git a/wadsrc_bm/brightmaps/doom/CYBRM0.png b/wadsrc_bm/static/brightmaps/doom/CYBRM0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CYBRM0.png
rename to wadsrc_bm/static/brightmaps/doom/CYBRM0.png
diff --git a/wadsrc_bm/brightmaps/doom/CYBRN0.png b/wadsrc_bm/static/brightmaps/doom/CYBRN0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CYBRN0.png
rename to wadsrc_bm/static/brightmaps/doom/CYBRN0.png
diff --git a/wadsrc_bm/brightmaps/doom/CYBRO0.png b/wadsrc_bm/static/brightmaps/doom/CYBRO0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/CYBRO0.png
rename to wadsrc_bm/static/brightmaps/doom/CYBRO0.png
diff --git a/wadsrc_bm/brightmaps/doom/FATTG1.png b/wadsrc_bm/static/brightmaps/doom/FATTG1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/FATTG1.png
rename to wadsrc_bm/static/brightmaps/doom/FATTG1.png
diff --git a/wadsrc_bm/brightmaps/doom/FATTG2G8.png b/wadsrc_bm/static/brightmaps/doom/FATTG2G8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/FATTG2G8.png
rename to wadsrc_bm/static/brightmaps/doom/FATTG2G8.png
diff --git a/wadsrc_bm/brightmaps/doom/FATTH1.png b/wadsrc_bm/static/brightmaps/doom/FATTH1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/FATTH1.png
rename to wadsrc_bm/static/brightmaps/doom/FATTH1.png
diff --git a/wadsrc_bm/brightmaps/doom/FATTH2H8.png b/wadsrc_bm/static/brightmaps/doom/FATTH2H8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/FATTH2H8.png
rename to wadsrc_bm/static/brightmaps/doom/FATTH2H8.png
diff --git a/wadsrc_bm/brightmaps/doom/FATTH3H7.png b/wadsrc_bm/static/brightmaps/doom/FATTH3H7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/FATTH3H7.png
rename to wadsrc_bm/static/brightmaps/doom/FATTH3H7.png
diff --git a/wadsrc_bm/brightmaps/doom/FATTH4H6.png b/wadsrc_bm/static/brightmaps/doom/FATTH4H6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/FATTH4H6.png
rename to wadsrc_bm/static/brightmaps/doom/FATTH4H6.png
diff --git a/wadsrc_bm/brightmaps/doom/FATTH5.png b/wadsrc_bm/static/brightmaps/doom/FATTH5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/FATTH5.png
rename to wadsrc_bm/static/brightmaps/doom/FATTH5.png
diff --git a/wadsrc_bm/brightmaps/doom/FCANA0.png b/wadsrc_bm/static/brightmaps/doom/FCANA0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/FCANA0.png
rename to wadsrc_bm/static/brightmaps/doom/FCANA0.png
diff --git a/wadsrc_bm/brightmaps/doom/FCANB0.png b/wadsrc_bm/static/brightmaps/doom/FCANB0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/FCANB0.png
rename to wadsrc_bm/static/brightmaps/doom/FCANB0.png
diff --git a/wadsrc_bm/brightmaps/doom/FCANC0.png b/wadsrc_bm/static/brightmaps/doom/FCANC0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/FCANC0.png
rename to wadsrc_bm/static/brightmaps/doom/FCANC0.png
diff --git a/wadsrc_bm/brightmaps/doom/HEADC1.png b/wadsrc_bm/static/brightmaps/doom/HEADC1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/HEADC1.png
rename to wadsrc_bm/static/brightmaps/doom/HEADC1.png
diff --git a/wadsrc_bm/brightmaps/doom/HEADC2C8.png b/wadsrc_bm/static/brightmaps/doom/HEADC2C8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/HEADC2C8.png
rename to wadsrc_bm/static/brightmaps/doom/HEADC2C8.png
diff --git a/wadsrc_bm/brightmaps/doom/HEADC3C7.png b/wadsrc_bm/static/brightmaps/doom/HEADC3C7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/HEADC3C7.png
rename to wadsrc_bm/static/brightmaps/doom/HEADC3C7.png
diff --git a/wadsrc_bm/brightmaps/doom/HEADD1.png b/wadsrc_bm/static/brightmaps/doom/HEADD1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/HEADD1.png
rename to wadsrc_bm/static/brightmaps/doom/HEADD1.png
diff --git a/wadsrc_bm/brightmaps/doom/HEADD2D8.png b/wadsrc_bm/static/brightmaps/doom/HEADD2D8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/HEADD2D8.png
rename to wadsrc_bm/static/brightmaps/doom/HEADD2D8.png
diff --git a/wadsrc_bm/brightmaps/doom/HEADD3D7.png b/wadsrc_bm/static/brightmaps/doom/HEADD3D7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/HEADD3D7.png
rename to wadsrc_bm/static/brightmaps/doom/HEADD3D7.png
diff --git a/wadsrc_bm/brightmaps/doom/PAINF1.png b/wadsrc_bm/static/brightmaps/doom/PAINF1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/PAINF1.png
rename to wadsrc_bm/static/brightmaps/doom/PAINF1.png
diff --git a/wadsrc_bm/brightmaps/doom/PAINF2F8.png b/wadsrc_bm/static/brightmaps/doom/PAINF2F8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/PAINF2F8.png
rename to wadsrc_bm/static/brightmaps/doom/PAINF2F8.png
diff --git a/wadsrc_bm/brightmaps/doom/PAINF3F7.png b/wadsrc_bm/static/brightmaps/doom/PAINF3F7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/PAINF3F7.png
rename to wadsrc_bm/static/brightmaps/doom/PAINF3F7.png
diff --git a/wadsrc_bm/brightmaps/doom/PLAYF1.png b/wadsrc_bm/static/brightmaps/doom/PLAYF1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/PLAYF1.png
rename to wadsrc_bm/static/brightmaps/doom/PLAYF1.png
diff --git a/wadsrc_bm/brightmaps/doom/PLAYF2F8.png b/wadsrc_bm/static/brightmaps/doom/PLAYF2F8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/PLAYF2F8.png
rename to wadsrc_bm/static/brightmaps/doom/PLAYF2F8.png
diff --git a/wadsrc_bm/brightmaps/doom/PLAYF3F7.png b/wadsrc_bm/static/brightmaps/doom/PLAYF3F7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/PLAYF3F7.png
rename to wadsrc_bm/static/brightmaps/doom/PLAYF3F7.png
diff --git a/wadsrc_bm/brightmaps/doom/PLAYF4F6.png b/wadsrc_bm/static/brightmaps/doom/PLAYF4F6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/PLAYF4F6.png
rename to wadsrc_bm/static/brightmaps/doom/PLAYF4F6.png
diff --git a/wadsrc_bm/brightmaps/doom/PLAYF5.png b/wadsrc_bm/static/brightmaps/doom/PLAYF5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/PLAYF5.png
rename to wadsrc_bm/static/brightmaps/doom/PLAYF5.png
diff --git a/wadsrc_bm/brightmaps/doom/POSSE1.png b/wadsrc_bm/static/brightmaps/doom/POSSE1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/POSSE1.png
rename to wadsrc_bm/static/brightmaps/doom/POSSE1.png
diff --git a/wadsrc_bm/brightmaps/doom/POSSE2E8.png b/wadsrc_bm/static/brightmaps/doom/POSSE2E8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/POSSE2E8.png
rename to wadsrc_bm/static/brightmaps/doom/POSSE2E8.png
diff --git a/wadsrc_bm/brightmaps/doom/POSSE3E7.png b/wadsrc_bm/static/brightmaps/doom/POSSE3E7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/POSSE3E7.png
rename to wadsrc_bm/static/brightmaps/doom/POSSE3E7.png
diff --git a/wadsrc_bm/brightmaps/doom/POSSF1.png b/wadsrc_bm/static/brightmaps/doom/POSSF1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/POSSF1.png
rename to wadsrc_bm/static/brightmaps/doom/POSSF1.png
diff --git a/wadsrc_bm/brightmaps/doom/POSSF2F8.png b/wadsrc_bm/static/brightmaps/doom/POSSF2F8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/POSSF2F8.png
rename to wadsrc_bm/static/brightmaps/doom/POSSF2F8.png
diff --git a/wadsrc_bm/brightmaps/doom/POSSF3F7.png b/wadsrc_bm/static/brightmaps/doom/POSSF3F7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/POSSF3F7.png
rename to wadsrc_bm/static/brightmaps/doom/POSSF3F7.png
diff --git a/wadsrc_bm/brightmaps/doom/POSSF4F6.png b/wadsrc_bm/static/brightmaps/doom/POSSF4F6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/POSSF4F6.png
rename to wadsrc_bm/static/brightmaps/doom/POSSF4F6.png
diff --git a/wadsrc_bm/brightmaps/doom/POSSF5.png b/wadsrc_bm/static/brightmaps/doom/POSSF5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/POSSF5.png
rename to wadsrc_bm/static/brightmaps/doom/POSSF5.png
diff --git a/wadsrc_bm/brightmaps/doom/SKELJ1.png b/wadsrc_bm/static/brightmaps/doom/SKELJ1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SKELJ1.png
rename to wadsrc_bm/static/brightmaps/doom/SKELJ1.png
diff --git a/wadsrc_bm/brightmaps/doom/SKELJ2.png b/wadsrc_bm/static/brightmaps/doom/SKELJ2.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SKELJ2.png
rename to wadsrc_bm/static/brightmaps/doom/SKELJ2.png
diff --git a/wadsrc_bm/brightmaps/doom/SKELJ3.png b/wadsrc_bm/static/brightmaps/doom/SKELJ3.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SKELJ3.png
rename to wadsrc_bm/static/brightmaps/doom/SKELJ3.png
diff --git a/wadsrc_bm/brightmaps/doom/SKELJ4.png b/wadsrc_bm/static/brightmaps/doom/SKELJ4.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SKELJ4.png
rename to wadsrc_bm/static/brightmaps/doom/SKELJ4.png
diff --git a/wadsrc_bm/brightmaps/doom/SKELJ5.png b/wadsrc_bm/static/brightmaps/doom/SKELJ5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SKELJ5.png
rename to wadsrc_bm/static/brightmaps/doom/SKELJ5.png
diff --git a/wadsrc_bm/brightmaps/doom/SKELJ6.png b/wadsrc_bm/static/brightmaps/doom/SKELJ6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SKELJ6.png
rename to wadsrc_bm/static/brightmaps/doom/SKELJ6.png
diff --git a/wadsrc_bm/brightmaps/doom/SKELJ7.png b/wadsrc_bm/static/brightmaps/doom/SKELJ7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SKELJ7.png
rename to wadsrc_bm/static/brightmaps/doom/SKELJ7.png
diff --git a/wadsrc_bm/brightmaps/doom/SKELJ8.png b/wadsrc_bm/static/brightmaps/doom/SKELJ8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SKELJ8.png
rename to wadsrc_bm/static/brightmaps/doom/SKELJ8.png
diff --git a/wadsrc_bm/brightmaps/doom/SMRTA0.png b/wadsrc_bm/static/brightmaps/doom/SMRTA0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SMRTA0.png
rename to wadsrc_bm/static/brightmaps/doom/SMRTA0.png
diff --git a/wadsrc_bm/brightmaps/doom/SMRTB0.png b/wadsrc_bm/static/brightmaps/doom/SMRTB0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SMRTB0.png
rename to wadsrc_bm/static/brightmaps/doom/SMRTB0.png
diff --git a/wadsrc_bm/brightmaps/doom/SMRTC0.png b/wadsrc_bm/static/brightmaps/doom/SMRTC0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SMRTC0.png
rename to wadsrc_bm/static/brightmaps/doom/SMRTC0.png
diff --git a/wadsrc_bm/brightmaps/doom/SMRTD0.png b/wadsrc_bm/static/brightmaps/doom/SMRTD0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SMRTD0.png
rename to wadsrc_bm/static/brightmaps/doom/SMRTD0.png
diff --git a/wadsrc_bm/brightmaps/doom/SPIDG1.png b/wadsrc_bm/static/brightmaps/doom/SPIDG1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SPIDG1.png
rename to wadsrc_bm/static/brightmaps/doom/SPIDG1.png
diff --git a/wadsrc_bm/brightmaps/doom/SPIDG2G8.png b/wadsrc_bm/static/brightmaps/doom/SPIDG2G8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SPIDG2G8.png
rename to wadsrc_bm/static/brightmaps/doom/SPIDG2G8.png
diff --git a/wadsrc_bm/brightmaps/doom/SPIDH1.png b/wadsrc_bm/static/brightmaps/doom/SPIDH1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SPIDH1.png
rename to wadsrc_bm/static/brightmaps/doom/SPIDH1.png
diff --git a/wadsrc_bm/brightmaps/doom/SPIDH2H8.png b/wadsrc_bm/static/brightmaps/doom/SPIDH2H8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SPIDH2H8.png
rename to wadsrc_bm/static/brightmaps/doom/SPIDH2H8.png
diff --git a/wadsrc_bm/brightmaps/doom/SPIDH3H7.png b/wadsrc_bm/static/brightmaps/doom/SPIDH3H7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SPIDH3H7.png
rename to wadsrc_bm/static/brightmaps/doom/SPIDH3H7.png
diff --git a/wadsrc_bm/brightmaps/doom/SPIDL0.png b/wadsrc_bm/static/brightmaps/doom/SPIDL0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SPIDL0.png
rename to wadsrc_bm/static/brightmaps/doom/SPIDL0.png
diff --git a/wadsrc_bm/brightmaps/doom/SPIDM0.png b/wadsrc_bm/static/brightmaps/doom/SPIDM0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SPIDM0.png
rename to wadsrc_bm/static/brightmaps/doom/SPIDM0.png
diff --git a/wadsrc_bm/brightmaps/doom/SPIDN0.png b/wadsrc_bm/static/brightmaps/doom/SPIDN0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SPIDN0.png
rename to wadsrc_bm/static/brightmaps/doom/SPIDN0.png
diff --git a/wadsrc_bm/brightmaps/doom/SPIDO0.png b/wadsrc_bm/static/brightmaps/doom/SPIDO0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SPIDO0.png
rename to wadsrc_bm/static/brightmaps/doom/SPIDO0.png
diff --git a/wadsrc_bm/brightmaps/doom/SPIDP0.png b/wadsrc_bm/static/brightmaps/doom/SPIDP0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SPIDP0.png
rename to wadsrc_bm/static/brightmaps/doom/SPIDP0.png
diff --git a/wadsrc_bm/brightmaps/doom/SPIDQ0.png b/wadsrc_bm/static/brightmaps/doom/SPIDQ0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SPIDQ0.png
rename to wadsrc_bm/static/brightmaps/doom/SPIDQ0.png
diff --git a/wadsrc_bm/brightmaps/doom/SPIDR0.png b/wadsrc_bm/static/brightmaps/doom/SPIDR0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SPIDR0.png
rename to wadsrc_bm/static/brightmaps/doom/SPIDR0.png
diff --git a/wadsrc_bm/brightmaps/doom/SPOSE1.png b/wadsrc_bm/static/brightmaps/doom/SPOSE1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SPOSE1.png
rename to wadsrc_bm/static/brightmaps/doom/SPOSE1.png
diff --git a/wadsrc_bm/brightmaps/doom/SPOSE2E8.png b/wadsrc_bm/static/brightmaps/doom/SPOSE2E8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SPOSE2E8.png
rename to wadsrc_bm/static/brightmaps/doom/SPOSE2E8.png
diff --git a/wadsrc_bm/brightmaps/doom/SPOSE3E7.png b/wadsrc_bm/static/brightmaps/doom/SPOSE3E7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SPOSE3E7.png
rename to wadsrc_bm/static/brightmaps/doom/SPOSE3E7.png
diff --git a/wadsrc_bm/brightmaps/doom/SPOSF1.png b/wadsrc_bm/static/brightmaps/doom/SPOSF1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SPOSF1.png
rename to wadsrc_bm/static/brightmaps/doom/SPOSF1.png
diff --git a/wadsrc_bm/brightmaps/doom/SPOSF2F8.png b/wadsrc_bm/static/brightmaps/doom/SPOSF2F8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SPOSF2F8.png
rename to wadsrc_bm/static/brightmaps/doom/SPOSF2F8.png
diff --git a/wadsrc_bm/brightmaps/doom/SPOSF3F7.png b/wadsrc_bm/static/brightmaps/doom/SPOSF3F7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SPOSF3F7.png
rename to wadsrc_bm/static/brightmaps/doom/SPOSF3F7.png
diff --git a/wadsrc_bm/brightmaps/doom/SPOSF4F6.png b/wadsrc_bm/static/brightmaps/doom/SPOSF4F6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SPOSF4F6.png
rename to wadsrc_bm/static/brightmaps/doom/SPOSF4F6.png
diff --git a/wadsrc_bm/brightmaps/doom/SPOSF5.png b/wadsrc_bm/static/brightmaps/doom/SPOSF5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/SPOSF5.png
rename to wadsrc_bm/static/brightmaps/doom/SPOSF5.png
diff --git a/wadsrc_bm/brightmaps/doom/TREDA0.png b/wadsrc_bm/static/brightmaps/doom/TREDA0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/TREDA0.png
rename to wadsrc_bm/static/brightmaps/doom/TREDA0.png
diff --git a/wadsrc_bm/brightmaps/doom/TREDB0.png b/wadsrc_bm/static/brightmaps/doom/TREDB0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/TREDB0.png
rename to wadsrc_bm/static/brightmaps/doom/TREDB0.png
diff --git a/wadsrc_bm/brightmaps/doom/TREDC0.png b/wadsrc_bm/static/brightmaps/doom/TREDC0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/TREDC0.png
rename to wadsrc_bm/static/brightmaps/doom/TREDC0.png
diff --git a/wadsrc_bm/brightmaps/doom/TREDD0.png b/wadsrc_bm/static/brightmaps/doom/TREDD0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/TREDD0.png
rename to wadsrc_bm/static/brightmaps/doom/TREDD0.png
diff --git a/wadsrc_bm/brightmaps/doom/TbluB0.png b/wadsrc_bm/static/brightmaps/doom/TbluB0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/TbluB0.png
rename to wadsrc_bm/static/brightmaps/doom/TbluB0.png
diff --git a/wadsrc_bm/brightmaps/doom/TbluC0.png b/wadsrc_bm/static/brightmaps/doom/TbluC0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/TbluC0.png
rename to wadsrc_bm/static/brightmaps/doom/TbluC0.png
diff --git a/wadsrc_bm/brightmaps/doom/sswvg0.png b/wadsrc_bm/static/brightmaps/doom/sswvg0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/doom/sswvg0.png
rename to wadsrc_bm/static/brightmaps/doom/sswvg0.png
diff --git a/wadsrc_bm/brightmaps/heretic/BEASI1.png b/wadsrc_bm/static/brightmaps/heretic/BEASI1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/BEASI1.png
rename to wadsrc_bm/static/brightmaps/heretic/BEASI1.png
diff --git a/wadsrc_bm/brightmaps/heretic/BEASI2I8.png b/wadsrc_bm/static/brightmaps/heretic/BEASI2I8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/BEASI2I8.png
rename to wadsrc_bm/static/brightmaps/heretic/BEASI2I8.png
diff --git a/wadsrc_bm/brightmaps/heretic/BEASI3I7.png b/wadsrc_bm/static/brightmaps/heretic/BEASI3I7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/BEASI3I7.png
rename to wadsrc_bm/static/brightmaps/heretic/BEASI3I7.png
diff --git a/wadsrc_bm/brightmaps/heretic/CHDLA0.png b/wadsrc_bm/static/brightmaps/heretic/CHDLA0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/CHDLA0.png
rename to wadsrc_bm/static/brightmaps/heretic/CHDLA0.png
diff --git a/wadsrc_bm/brightmaps/heretic/CHDLB0.png b/wadsrc_bm/static/brightmaps/heretic/CHDLB0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/CHDLB0.png
rename to wadsrc_bm/static/brightmaps/heretic/CHDLB0.png
diff --git a/wadsrc_bm/brightmaps/heretic/CHDLC0.png b/wadsrc_bm/static/brightmaps/heretic/CHDLC0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/CHDLC0.png
rename to wadsrc_bm/static/brightmaps/heretic/CHDLC0.png
diff --git a/wadsrc_bm/brightmaps/heretic/CLNKI0.png b/wadsrc_bm/static/brightmaps/heretic/CLNKI0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/CLNKI0.png
rename to wadsrc_bm/static/brightmaps/heretic/CLNKI0.png
diff --git a/wadsrc_bm/brightmaps/heretic/CLNKJ0.png b/wadsrc_bm/static/brightmaps/heretic/CLNKJ0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/CLNKJ0.png
rename to wadsrc_bm/static/brightmaps/heretic/CLNKJ0.png
diff --git a/wadsrc_bm/brightmaps/heretic/CLNKK0.png b/wadsrc_bm/static/brightmaps/heretic/CLNKK0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/CLNKK0.png
rename to wadsrc_bm/static/brightmaps/heretic/CLNKK0.png
diff --git a/wadsrc_bm/brightmaps/heretic/CLNKL0.png b/wadsrc_bm/static/brightmaps/heretic/CLNKL0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/CLNKL0.png
rename to wadsrc_bm/static/brightmaps/heretic/CLNKL0.png
diff --git a/wadsrc_bm/brightmaps/heretic/CLNKM0.png b/wadsrc_bm/static/brightmaps/heretic/CLNKM0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/CLNKM0.png
rename to wadsrc_bm/static/brightmaps/heretic/CLNKM0.png
diff --git a/wadsrc_bm/brightmaps/heretic/CLNKN0.png b/wadsrc_bm/static/brightmaps/heretic/CLNKN0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/CLNKN0.png
rename to wadsrc_bm/static/brightmaps/heretic/CLNKN0.png
diff --git a/wadsrc_bm/brightmaps/heretic/IMPXD1.png b/wadsrc_bm/static/brightmaps/heretic/IMPXD1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/IMPXD1.png
rename to wadsrc_bm/static/brightmaps/heretic/IMPXD1.png
diff --git a/wadsrc_bm/brightmaps/heretic/IMPXD2.png b/wadsrc_bm/static/brightmaps/heretic/IMPXD2.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/IMPXD2.png
rename to wadsrc_bm/static/brightmaps/heretic/IMPXD2.png
diff --git a/wadsrc_bm/brightmaps/heretic/IMPXD3.png b/wadsrc_bm/static/brightmaps/heretic/IMPXD3.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/IMPXD3.png
rename to wadsrc_bm/static/brightmaps/heretic/IMPXD3.png
diff --git a/wadsrc_bm/brightmaps/heretic/IMPXD4.png b/wadsrc_bm/static/brightmaps/heretic/IMPXD4.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/IMPXD4.png
rename to wadsrc_bm/static/brightmaps/heretic/IMPXD4.png
diff --git a/wadsrc_bm/brightmaps/heretic/IMPXD5.png b/wadsrc_bm/static/brightmaps/heretic/IMPXD5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/IMPXD5.png
rename to wadsrc_bm/static/brightmaps/heretic/IMPXD5.png
diff --git a/wadsrc_bm/brightmaps/heretic/IMPXD6.png b/wadsrc_bm/static/brightmaps/heretic/IMPXD6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/IMPXD6.png
rename to wadsrc_bm/static/brightmaps/heretic/IMPXD6.png
diff --git a/wadsrc_bm/brightmaps/heretic/IMPXD7.png b/wadsrc_bm/static/brightmaps/heretic/IMPXD7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/IMPXD7.png
rename to wadsrc_bm/static/brightmaps/heretic/IMPXD7.png
diff --git a/wadsrc_bm/brightmaps/heretic/IMPXD8.png b/wadsrc_bm/static/brightmaps/heretic/IMPXD8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/IMPXD8.png
rename to wadsrc_bm/static/brightmaps/heretic/IMPXD8.png
diff --git a/wadsrc_bm/brightmaps/heretic/IMPXE1.png b/wadsrc_bm/static/brightmaps/heretic/IMPXE1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/IMPXE1.png
rename to wadsrc_bm/static/brightmaps/heretic/IMPXE1.png
diff --git a/wadsrc_bm/brightmaps/heretic/IMPXE2.png b/wadsrc_bm/static/brightmaps/heretic/IMPXE2.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/IMPXE2.png
rename to wadsrc_bm/static/brightmaps/heretic/IMPXE2.png
diff --git a/wadsrc_bm/brightmaps/heretic/IMPXE3.png b/wadsrc_bm/static/brightmaps/heretic/IMPXE3.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/IMPXE3.png
rename to wadsrc_bm/static/brightmaps/heretic/IMPXE3.png
diff --git a/wadsrc_bm/brightmaps/heretic/IMPXE4.png b/wadsrc_bm/static/brightmaps/heretic/IMPXE4.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/IMPXE4.png
rename to wadsrc_bm/static/brightmaps/heretic/IMPXE4.png
diff --git a/wadsrc_bm/brightmaps/heretic/IMPXE5.png b/wadsrc_bm/static/brightmaps/heretic/IMPXE5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/IMPXE5.png
rename to wadsrc_bm/static/brightmaps/heretic/IMPXE5.png
diff --git a/wadsrc_bm/brightmaps/heretic/IMPXE6.png b/wadsrc_bm/static/brightmaps/heretic/IMPXE6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/IMPXE6.png
rename to wadsrc_bm/static/brightmaps/heretic/IMPXE6.png
diff --git a/wadsrc_bm/brightmaps/heretic/IMPXE7.png b/wadsrc_bm/static/brightmaps/heretic/IMPXE7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/IMPXE7.png
rename to wadsrc_bm/static/brightmaps/heretic/IMPXE7.png
diff --git a/wadsrc_bm/brightmaps/heretic/IMPXE8.png b/wadsrc_bm/static/brightmaps/heretic/IMPXE8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/IMPXE8.png
rename to wadsrc_bm/static/brightmaps/heretic/IMPXE8.png
diff --git a/wadsrc_bm/brightmaps/heretic/IMPXF1.png b/wadsrc_bm/static/brightmaps/heretic/IMPXF1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/IMPXF1.png
rename to wadsrc_bm/static/brightmaps/heretic/IMPXF1.png
diff --git a/wadsrc_bm/brightmaps/heretic/IMPXF2.png b/wadsrc_bm/static/brightmaps/heretic/IMPXF2.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/IMPXF2.png
rename to wadsrc_bm/static/brightmaps/heretic/IMPXF2.png
diff --git a/wadsrc_bm/brightmaps/heretic/IMPXF3.png b/wadsrc_bm/static/brightmaps/heretic/IMPXF3.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/IMPXF3.png
rename to wadsrc_bm/static/brightmaps/heretic/IMPXF3.png
diff --git a/wadsrc_bm/brightmaps/heretic/IMPXF4.png b/wadsrc_bm/static/brightmaps/heretic/IMPXF4.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/IMPXF4.png
rename to wadsrc_bm/static/brightmaps/heretic/IMPXF4.png
diff --git a/wadsrc_bm/brightmaps/heretic/IMPXF5.png b/wadsrc_bm/static/brightmaps/heretic/IMPXF5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/IMPXF5.png
rename to wadsrc_bm/static/brightmaps/heretic/IMPXF5.png
diff --git a/wadsrc_bm/brightmaps/heretic/IMPXF6.png b/wadsrc_bm/static/brightmaps/heretic/IMPXF6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/IMPXF6.png
rename to wadsrc_bm/static/brightmaps/heretic/IMPXF6.png
diff --git a/wadsrc_bm/brightmaps/heretic/IMPXF7.png b/wadsrc_bm/static/brightmaps/heretic/IMPXF7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/IMPXF7.png
rename to wadsrc_bm/static/brightmaps/heretic/IMPXF7.png
diff --git a/wadsrc_bm/brightmaps/heretic/IMPXF8.png b/wadsrc_bm/static/brightmaps/heretic/IMPXF8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/IMPXF8.png
rename to wadsrc_bm/static/brightmaps/heretic/IMPXF8.png
diff --git a/wadsrc_bm/brightmaps/heretic/LICHB1.png b/wadsrc_bm/static/brightmaps/heretic/LICHB1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/LICHB1.png
rename to wadsrc_bm/static/brightmaps/heretic/LICHB1.png
diff --git a/wadsrc_bm/brightmaps/heretic/LICHB2B8.png b/wadsrc_bm/static/brightmaps/heretic/LICHB2B8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/LICHB2B8.png
rename to wadsrc_bm/static/brightmaps/heretic/LICHB2B8.png
diff --git a/wadsrc_bm/brightmaps/heretic/LICHB3B7.png b/wadsrc_bm/static/brightmaps/heretic/LICHB3B7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/LICHB3B7.png
rename to wadsrc_bm/static/brightmaps/heretic/LICHB3B7.png
diff --git a/wadsrc_bm/brightmaps/heretic/LICHC0.png b/wadsrc_bm/static/brightmaps/heretic/LICHC0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/LICHC0.png
rename to wadsrc_bm/static/brightmaps/heretic/LICHC0.png
diff --git a/wadsrc_bm/brightmaps/heretic/LICHD0.png b/wadsrc_bm/static/brightmaps/heretic/LICHD0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/LICHD0.png
rename to wadsrc_bm/static/brightmaps/heretic/LICHD0.png
diff --git a/wadsrc_bm/brightmaps/heretic/LICHE0.png b/wadsrc_bm/static/brightmaps/heretic/LICHE0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/LICHE0.png
rename to wadsrc_bm/static/brightmaps/heretic/LICHE0.png
diff --git a/wadsrc_bm/brightmaps/heretic/LICHF0.png b/wadsrc_bm/static/brightmaps/heretic/LICHF0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/LICHF0.png
rename to wadsrc_bm/static/brightmaps/heretic/LICHF0.png
diff --git a/wadsrc_bm/brightmaps/heretic/LICHG0.png b/wadsrc_bm/static/brightmaps/heretic/LICHG0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/LICHG0.png
rename to wadsrc_bm/static/brightmaps/heretic/LICHG0.png
diff --git a/wadsrc_bm/brightmaps/heretic/LICHH0.png b/wadsrc_bm/static/brightmaps/heretic/LICHH0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/LICHH0.png
rename to wadsrc_bm/static/brightmaps/heretic/LICHH0.png
diff --git a/wadsrc_bm/brightmaps/heretic/PLAYF1.png b/wadsrc_bm/static/brightmaps/heretic/PLAYF1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/PLAYF1.png
rename to wadsrc_bm/static/brightmaps/heretic/PLAYF1.png
diff --git a/wadsrc_bm/brightmaps/heretic/PLAYF2F8.png b/wadsrc_bm/static/brightmaps/heretic/PLAYF2F8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/PLAYF2F8.png
rename to wadsrc_bm/static/brightmaps/heretic/PLAYF2F8.png
diff --git a/wadsrc_bm/brightmaps/heretic/PLAYF3F7.png b/wadsrc_bm/static/brightmaps/heretic/PLAYF3F7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/PLAYF3F7.png
rename to wadsrc_bm/static/brightmaps/heretic/PLAYF3F7.png
diff --git a/wadsrc_bm/brightmaps/heretic/PLAYF4F6.png b/wadsrc_bm/static/brightmaps/heretic/PLAYF4F6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/PLAYF4F6.png
rename to wadsrc_bm/static/brightmaps/heretic/PLAYF4F6.png
diff --git a/wadsrc_bm/brightmaps/heretic/SDTHA0.png b/wadsrc_bm/static/brightmaps/heretic/SDTHA0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SDTHA0.png
rename to wadsrc_bm/static/brightmaps/heretic/SDTHA0.png
diff --git a/wadsrc_bm/brightmaps/heretic/SDTHB0.png b/wadsrc_bm/static/brightmaps/heretic/SDTHB0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SDTHB0.png
rename to wadsrc_bm/static/brightmaps/heretic/SDTHB0.png
diff --git a/wadsrc_bm/brightmaps/heretic/SDTHC0.png b/wadsrc_bm/static/brightmaps/heretic/SDTHC0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SDTHC0.png
rename to wadsrc_bm/static/brightmaps/heretic/SDTHC0.png
diff --git a/wadsrc_bm/brightmaps/heretic/SDTHD0.png b/wadsrc_bm/static/brightmaps/heretic/SDTHD0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SDTHD0.png
rename to wadsrc_bm/static/brightmaps/heretic/SDTHD0.png
diff --git a/wadsrc_bm/brightmaps/heretic/SDTHE0.png b/wadsrc_bm/static/brightmaps/heretic/SDTHE0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SDTHE0.png
rename to wadsrc_bm/static/brightmaps/heretic/SDTHE0.png
diff --git a/wadsrc_bm/brightmaps/heretic/SDTHF0.png b/wadsrc_bm/static/brightmaps/heretic/SDTHF0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SDTHF0.png
rename to wadsrc_bm/static/brightmaps/heretic/SDTHF0.png
diff --git a/wadsrc_bm/brightmaps/heretic/SDTHG0.png b/wadsrc_bm/static/brightmaps/heretic/SDTHG0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SDTHG0.png
rename to wadsrc_bm/static/brightmaps/heretic/SDTHG0.png
diff --git a/wadsrc_bm/brightmaps/heretic/SDTHH0.png b/wadsrc_bm/static/brightmaps/heretic/SDTHH0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SDTHH0.png
rename to wadsrc_bm/static/brightmaps/heretic/SDTHH0.png
diff --git a/wadsrc_bm/brightmaps/heretic/SOR2R1.png b/wadsrc_bm/static/brightmaps/heretic/SOR2R1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SOR2R1.png
rename to wadsrc_bm/static/brightmaps/heretic/SOR2R1.png
diff --git a/wadsrc_bm/brightmaps/heretic/SOR2R2.png b/wadsrc_bm/static/brightmaps/heretic/SOR2R2.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SOR2R2.png
rename to wadsrc_bm/static/brightmaps/heretic/SOR2R2.png
diff --git a/wadsrc_bm/brightmaps/heretic/SOR2R3.png b/wadsrc_bm/static/brightmaps/heretic/SOR2R3.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SOR2R3.png
rename to wadsrc_bm/static/brightmaps/heretic/SOR2R3.png
diff --git a/wadsrc_bm/brightmaps/heretic/SOR2R4.png b/wadsrc_bm/static/brightmaps/heretic/SOR2R4.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SOR2R4.png
rename to wadsrc_bm/static/brightmaps/heretic/SOR2R4.png
diff --git a/wadsrc_bm/brightmaps/heretic/SOR2R5.png b/wadsrc_bm/static/brightmaps/heretic/SOR2R5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SOR2R5.png
rename to wadsrc_bm/static/brightmaps/heretic/SOR2R5.png
diff --git a/wadsrc_bm/brightmaps/heretic/SOR2R6.png b/wadsrc_bm/static/brightmaps/heretic/SOR2R6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SOR2R6.png
rename to wadsrc_bm/static/brightmaps/heretic/SOR2R6.png
diff --git a/wadsrc_bm/brightmaps/heretic/SOR2R7.png b/wadsrc_bm/static/brightmaps/heretic/SOR2R7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SOR2R7.png
rename to wadsrc_bm/static/brightmaps/heretic/SOR2R7.png
diff --git a/wadsrc_bm/brightmaps/heretic/SOR2R8.png b/wadsrc_bm/static/brightmaps/heretic/SOR2R8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SOR2R8.png
rename to wadsrc_bm/static/brightmaps/heretic/SOR2R8.png
diff --git a/wadsrc_bm/brightmaps/heretic/SOR2S1.png b/wadsrc_bm/static/brightmaps/heretic/SOR2S1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SOR2S1.png
rename to wadsrc_bm/static/brightmaps/heretic/SOR2S1.png
diff --git a/wadsrc_bm/brightmaps/heretic/SOR2S2.png b/wadsrc_bm/static/brightmaps/heretic/SOR2S2.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SOR2S2.png
rename to wadsrc_bm/static/brightmaps/heretic/SOR2S2.png
diff --git a/wadsrc_bm/brightmaps/heretic/SOR2S3.png b/wadsrc_bm/static/brightmaps/heretic/SOR2S3.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SOR2S3.png
rename to wadsrc_bm/static/brightmaps/heretic/SOR2S3.png
diff --git a/wadsrc_bm/brightmaps/heretic/SOR2S4.png b/wadsrc_bm/static/brightmaps/heretic/SOR2S4.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SOR2S4.png
rename to wadsrc_bm/static/brightmaps/heretic/SOR2S4.png
diff --git a/wadsrc_bm/brightmaps/heretic/SOR2S5.png b/wadsrc_bm/static/brightmaps/heretic/SOR2S5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SOR2S5.png
rename to wadsrc_bm/static/brightmaps/heretic/SOR2S5.png
diff --git a/wadsrc_bm/brightmaps/heretic/SOR2S6.png b/wadsrc_bm/static/brightmaps/heretic/SOR2S6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SOR2S6.png
rename to wadsrc_bm/static/brightmaps/heretic/SOR2S6.png
diff --git a/wadsrc_bm/brightmaps/heretic/SOR2S7.png b/wadsrc_bm/static/brightmaps/heretic/SOR2S7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SOR2S7.png
rename to wadsrc_bm/static/brightmaps/heretic/SOR2S7.png
diff --git a/wadsrc_bm/brightmaps/heretic/SOR2S8.png b/wadsrc_bm/static/brightmaps/heretic/SOR2S8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SOR2S8.png
rename to wadsrc_bm/static/brightmaps/heretic/SOR2S8.png
diff --git a/wadsrc_bm/brightmaps/heretic/SOR2T1.png b/wadsrc_bm/static/brightmaps/heretic/SOR2T1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SOR2T1.png
rename to wadsrc_bm/static/brightmaps/heretic/SOR2T1.png
diff --git a/wadsrc_bm/brightmaps/heretic/SOR2T2.png b/wadsrc_bm/static/brightmaps/heretic/SOR2T2.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SOR2T2.png
rename to wadsrc_bm/static/brightmaps/heretic/SOR2T2.png
diff --git a/wadsrc_bm/brightmaps/heretic/SOR2T3.png b/wadsrc_bm/static/brightmaps/heretic/SOR2T3.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SOR2T3.png
rename to wadsrc_bm/static/brightmaps/heretic/SOR2T3.png
diff --git a/wadsrc_bm/brightmaps/heretic/SOR2T4.png b/wadsrc_bm/static/brightmaps/heretic/SOR2T4.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SOR2T4.png
rename to wadsrc_bm/static/brightmaps/heretic/SOR2T4.png
diff --git a/wadsrc_bm/brightmaps/heretic/SOR2T5.png b/wadsrc_bm/static/brightmaps/heretic/SOR2T5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SOR2T5.png
rename to wadsrc_bm/static/brightmaps/heretic/SOR2T5.png
diff --git a/wadsrc_bm/brightmaps/heretic/SOR2T6.png b/wadsrc_bm/static/brightmaps/heretic/SOR2T6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SOR2T6.png
rename to wadsrc_bm/static/brightmaps/heretic/SOR2T6.png
diff --git a/wadsrc_bm/brightmaps/heretic/SOR2T7.png b/wadsrc_bm/static/brightmaps/heretic/SOR2T7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SOR2T7.png
rename to wadsrc_bm/static/brightmaps/heretic/SOR2T7.png
diff --git a/wadsrc_bm/brightmaps/heretic/SOR2T8.png b/wadsrc_bm/static/brightmaps/heretic/SOR2T8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/SOR2T8.png
rename to wadsrc_bm/static/brightmaps/heretic/SOR2T8.png
diff --git a/wadsrc_bm/brightmaps/heretic/VLCOE0.png b/wadsrc_bm/static/brightmaps/heretic/VLCOE0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/VLCOE0.png
rename to wadsrc_bm/static/brightmaps/heretic/VLCOE0.png
diff --git a/wadsrc_bm/brightmaps/heretic/WZRDC1.png b/wadsrc_bm/static/brightmaps/heretic/WZRDC1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/WZRDC1.png
rename to wadsrc_bm/static/brightmaps/heretic/WZRDC1.png
diff --git a/wadsrc_bm/brightmaps/heretic/WZRDC2C8.png b/wadsrc_bm/static/brightmaps/heretic/WZRDC2C8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/WZRDC2C8.png
rename to wadsrc_bm/static/brightmaps/heretic/WZRDC2C8.png
diff --git a/wadsrc_bm/brightmaps/heretic/WZRDC3C7.png b/wadsrc_bm/static/brightmaps/heretic/WZRDC3C7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/WZRDC3C7.png
rename to wadsrc_bm/static/brightmaps/heretic/WZRDC3C7.png
diff --git a/wadsrc_bm/brightmaps/heretic/WZRDC4C6.png b/wadsrc_bm/static/brightmaps/heretic/WZRDC4C6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/WZRDC4C6.png
rename to wadsrc_bm/static/brightmaps/heretic/WZRDC4C6.png
diff --git a/wadsrc_bm/brightmaps/heretic/WZRDC5.png b/wadsrc_bm/static/brightmaps/heretic/WZRDC5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/WZRDC5.png
rename to wadsrc_bm/static/brightmaps/heretic/WZRDC5.png
diff --git a/wadsrc_bm/brightmaps/heretic/WZRDD1.png b/wadsrc_bm/static/brightmaps/heretic/WZRDD1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/WZRDD1.png
rename to wadsrc_bm/static/brightmaps/heretic/WZRDD1.png
diff --git a/wadsrc_bm/brightmaps/heretic/WZRDD2D8.png b/wadsrc_bm/static/brightmaps/heretic/WZRDD2D8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/WZRDD2D8.png
rename to wadsrc_bm/static/brightmaps/heretic/WZRDD2D8.png
diff --git a/wadsrc_bm/brightmaps/heretic/WZRDD3D7.png b/wadsrc_bm/static/brightmaps/heretic/WZRDD3D7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/WZRDD3D7.png
rename to wadsrc_bm/static/brightmaps/heretic/WZRDD3D7.png
diff --git a/wadsrc_bm/brightmaps/heretic/WZRDD4D6.png b/wadsrc_bm/static/brightmaps/heretic/WZRDD4D6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/WZRDD4D6.png
rename to wadsrc_bm/static/brightmaps/heretic/WZRDD4D6.png
diff --git a/wadsrc_bm/brightmaps/heretic/WZRDD5.png b/wadsrc_bm/static/brightmaps/heretic/WZRDD5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/WZRDD5.png
rename to wadsrc_bm/static/brightmaps/heretic/WZRDD5.png
diff --git a/wadsrc_bm/brightmaps/heretic/WZRDF0.png b/wadsrc_bm/static/brightmaps/heretic/WZRDF0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/WZRDF0.png
rename to wadsrc_bm/static/brightmaps/heretic/WZRDF0.png
diff --git a/wadsrc_bm/brightmaps/heretic/WZRDG0.png b/wadsrc_bm/static/brightmaps/heretic/WZRDG0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/WZRDG0.png
rename to wadsrc_bm/static/brightmaps/heretic/WZRDG0.png
diff --git a/wadsrc_bm/brightmaps/heretic/WZRDH0.png b/wadsrc_bm/static/brightmaps/heretic/WZRDH0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/WZRDH0.png
rename to wadsrc_bm/static/brightmaps/heretic/WZRDH0.png
diff --git a/wadsrc_bm/brightmaps/heretic/WZRDI0.png b/wadsrc_bm/static/brightmaps/heretic/WZRDI0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/WZRDI0.png
rename to wadsrc_bm/static/brightmaps/heretic/WZRDI0.png
diff --git a/wadsrc_bm/brightmaps/heretic/WZRDJ0.png b/wadsrc_bm/static/brightmaps/heretic/WZRDJ0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/WZRDJ0.png
rename to wadsrc_bm/static/brightmaps/heretic/WZRDJ0.png
diff --git a/wadsrc_bm/brightmaps/heretic/WZRDK0.png b/wadsrc_bm/static/brightmaps/heretic/WZRDK0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/heretic/WZRDK0.png
rename to wadsrc_bm/static/brightmaps/heretic/WZRDK0.png
diff --git a/wadsrc_bm/brightmaps/hexen/CDLRA0.png b/wadsrc_bm/static/brightmaps/hexen/CDLRA0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/CDLRA0.png
rename to wadsrc_bm/static/brightmaps/hexen/CDLRA0.png
diff --git a/wadsrc_bm/brightmaps/hexen/CDLRB0.png b/wadsrc_bm/static/brightmaps/hexen/CDLRB0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/CDLRB0.png
rename to wadsrc_bm/static/brightmaps/hexen/CDLRB0.png
diff --git a/wadsrc_bm/brightmaps/hexen/CDLRC0.png b/wadsrc_bm/static/brightmaps/hexen/CDLRC0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/CDLRC0.png
rename to wadsrc_bm/static/brightmaps/hexen/CDLRC0.png
diff --git a/wadsrc_bm/brightmaps/hexen/CENTF1.png b/wadsrc_bm/static/brightmaps/hexen/CENTF1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/CENTF1.png
rename to wadsrc_bm/static/brightmaps/hexen/CENTF1.png
diff --git a/wadsrc_bm/brightmaps/hexen/CENTF2.png b/wadsrc_bm/static/brightmaps/hexen/CENTF2.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/CENTF2.png
rename to wadsrc_bm/static/brightmaps/hexen/CENTF2.png
diff --git a/wadsrc_bm/brightmaps/hexen/CENTF8.png b/wadsrc_bm/static/brightmaps/hexen/CENTF8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/CENTF8.png
rename to wadsrc_bm/static/brightmaps/hexen/CENTF8.png
diff --git a/wadsrc_bm/brightmaps/hexen/ICEYG1.png b/wadsrc_bm/static/brightmaps/hexen/ICEYG1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/ICEYG1.png
rename to wadsrc_bm/static/brightmaps/hexen/ICEYG1.png
diff --git a/wadsrc_bm/brightmaps/hexen/ICEYG2G8.png b/wadsrc_bm/static/brightmaps/hexen/ICEYG2G8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/ICEYG2G8.png
rename to wadsrc_bm/static/brightmaps/hexen/ICEYG2G8.png
diff --git a/wadsrc_bm/brightmaps/hexen/ICEYG3G7.png b/wadsrc_bm/static/brightmaps/hexen/ICEYG3G7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/ICEYG3G7.png
rename to wadsrc_bm/static/brightmaps/hexen/ICEYG3G7.png
diff --git a/wadsrc_bm/brightmaps/hexen/ICEYG4G6.png b/wadsrc_bm/static/brightmaps/hexen/ICEYG4G6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/ICEYG4G6.png
rename to wadsrc_bm/static/brightmaps/hexen/ICEYG4G6.png
diff --git a/wadsrc_bm/brightmaps/hexen/ICEYG5.png b/wadsrc_bm/static/brightmaps/hexen/ICEYG5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/ICEYG5.png
rename to wadsrc_bm/static/brightmaps/hexen/ICEYG5.png
diff --git a/wadsrc_bm/brightmaps/hexen/MAGEF1.png b/wadsrc_bm/static/brightmaps/hexen/MAGEF1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/MAGEF1.png
rename to wadsrc_bm/static/brightmaps/hexen/MAGEF1.png
diff --git a/wadsrc_bm/brightmaps/hexen/MAGEF2.png b/wadsrc_bm/static/brightmaps/hexen/MAGEF2.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/MAGEF2.png
rename to wadsrc_bm/static/brightmaps/hexen/MAGEF2.png
diff --git a/wadsrc_bm/brightmaps/hexen/MAGEF3.png b/wadsrc_bm/static/brightmaps/hexen/MAGEF3.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/MAGEF3.png
rename to wadsrc_bm/static/brightmaps/hexen/MAGEF3.png
diff --git a/wadsrc_bm/brightmaps/hexen/MAGEF4.png b/wadsrc_bm/static/brightmaps/hexen/MAGEF4.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/MAGEF4.png
rename to wadsrc_bm/static/brightmaps/hexen/MAGEF4.png
diff --git a/wadsrc_bm/brightmaps/hexen/MAGEF5.png b/wadsrc_bm/static/brightmaps/hexen/MAGEF5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/MAGEF5.png
rename to wadsrc_bm/static/brightmaps/hexen/MAGEF5.png
diff --git a/wadsrc_bm/brightmaps/hexen/MAGEF6.png b/wadsrc_bm/static/brightmaps/hexen/MAGEF6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/MAGEF6.png
rename to wadsrc_bm/static/brightmaps/hexen/MAGEF6.png
diff --git a/wadsrc_bm/brightmaps/hexen/MAGEF7.png b/wadsrc_bm/static/brightmaps/hexen/MAGEF7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/MAGEF7.png
rename to wadsrc_bm/static/brightmaps/hexen/MAGEF7.png
diff --git a/wadsrc_bm/brightmaps/hexen/MAGEF8.png b/wadsrc_bm/static/brightmaps/hexen/MAGEF8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/MAGEF8.png
rename to wadsrc_bm/static/brightmaps/hexen/MAGEF8.png
diff --git a/wadsrc_bm/brightmaps/hexen/WRTHE1.png b/wadsrc_bm/static/brightmaps/hexen/WRTHE1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/WRTHE1.png
rename to wadsrc_bm/static/brightmaps/hexen/WRTHE1.png
diff --git a/wadsrc_bm/brightmaps/hexen/WRTHE2E8.png b/wadsrc_bm/static/brightmaps/hexen/WRTHE2E8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/WRTHE2E8.png
rename to wadsrc_bm/static/brightmaps/hexen/WRTHE2E8.png
diff --git a/wadsrc_bm/brightmaps/hexen/WRTHE3E7.png b/wadsrc_bm/static/brightmaps/hexen/WRTHE3E7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/WRTHE3E7.png
rename to wadsrc_bm/static/brightmaps/hexen/WRTHE3E7.png
diff --git a/wadsrc_bm/brightmaps/hexen/WRTHE4E6.png b/wadsrc_bm/static/brightmaps/hexen/WRTHE4E6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/WRTHE4E6.png
rename to wadsrc_bm/static/brightmaps/hexen/WRTHE4E6.png
diff --git a/wadsrc_bm/brightmaps/hexen/WRTHE5.png b/wadsrc_bm/static/brightmaps/hexen/WRTHE5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/WRTHE5.png
rename to wadsrc_bm/static/brightmaps/hexen/WRTHE5.png
diff --git a/wadsrc_bm/brightmaps/hexen/WRTHF1.png b/wadsrc_bm/static/brightmaps/hexen/WRTHF1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/WRTHF1.png
rename to wadsrc_bm/static/brightmaps/hexen/WRTHF1.png
diff --git a/wadsrc_bm/brightmaps/hexen/WRTHF2F8.png b/wadsrc_bm/static/brightmaps/hexen/WRTHF2F8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/WRTHF2F8.png
rename to wadsrc_bm/static/brightmaps/hexen/WRTHF2F8.png
diff --git a/wadsrc_bm/brightmaps/hexen/WRTHF3F7.png b/wadsrc_bm/static/brightmaps/hexen/WRTHF3F7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/WRTHF3F7.png
rename to wadsrc_bm/static/brightmaps/hexen/WRTHF3F7.png
diff --git a/wadsrc_bm/brightmaps/hexen/WRTHF4F6.png b/wadsrc_bm/static/brightmaps/hexen/WRTHF4F6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/WRTHF4F6.png
rename to wadsrc_bm/static/brightmaps/hexen/WRTHF4F6.png
diff --git a/wadsrc_bm/brightmaps/hexen/WRTHF5.png b/wadsrc_bm/static/brightmaps/hexen/WRTHF5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/WRTHF5.png
rename to wadsrc_bm/static/brightmaps/hexen/WRTHF5.png
diff --git a/wadsrc_bm/brightmaps/hexen/WRTHG1.png b/wadsrc_bm/static/brightmaps/hexen/WRTHG1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/WRTHG1.png
rename to wadsrc_bm/static/brightmaps/hexen/WRTHG1.png
diff --git a/wadsrc_bm/brightmaps/hexen/WRTHG2G8.png b/wadsrc_bm/static/brightmaps/hexen/WRTHG2G8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/WRTHG2G8.png
rename to wadsrc_bm/static/brightmaps/hexen/WRTHG2G8.png
diff --git a/wadsrc_bm/brightmaps/hexen/WRTHG3G7.png b/wadsrc_bm/static/brightmaps/hexen/WRTHG3G7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/WRTHG3G7.png
rename to wadsrc_bm/static/brightmaps/hexen/WRTHG3G7.png
diff --git a/wadsrc_bm/brightmaps/hexen/WRTHG4G6.png b/wadsrc_bm/static/brightmaps/hexen/WRTHG4G6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/WRTHG4G6.png
rename to wadsrc_bm/static/brightmaps/hexen/WRTHG4G6.png
diff --git a/wadsrc_bm/brightmaps/hexen/WRTHG5.png b/wadsrc_bm/static/brightmaps/hexen/WRTHG5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/hexen/WRTHG5.png
rename to wadsrc_bm/static/brightmaps/hexen/WRTHG5.png
diff --git a/wadsrc_bm/brightmaps/strife/MLDRE1.png b/wadsrc_bm/static/brightmaps/strife/MLDRE1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/MLDRE1.png
rename to wadsrc_bm/static/brightmaps/strife/MLDRE1.png
diff --git a/wadsrc_bm/brightmaps/strife/MLDRE2.png b/wadsrc_bm/static/brightmaps/strife/MLDRE2.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/MLDRE2.png
rename to wadsrc_bm/static/brightmaps/strife/MLDRE2.png
diff --git a/wadsrc_bm/brightmaps/strife/MLDRE3.png b/wadsrc_bm/static/brightmaps/strife/MLDRE3.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/MLDRE3.png
rename to wadsrc_bm/static/brightmaps/strife/MLDRE3.png
diff --git a/wadsrc_bm/brightmaps/strife/MLDRE4.png b/wadsrc_bm/static/brightmaps/strife/MLDRE4.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/MLDRE4.png
rename to wadsrc_bm/static/brightmaps/strife/MLDRE4.png
diff --git a/wadsrc_bm/brightmaps/strife/MLDRE5.png b/wadsrc_bm/static/brightmaps/strife/MLDRE5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/MLDRE5.png
rename to wadsrc_bm/static/brightmaps/strife/MLDRE5.png
diff --git a/wadsrc_bm/brightmaps/strife/MLDRE6.png b/wadsrc_bm/static/brightmaps/strife/MLDRE6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/MLDRE6.png
rename to wadsrc_bm/static/brightmaps/strife/MLDRE6.png
diff --git a/wadsrc_bm/brightmaps/strife/MLDRE7.png b/wadsrc_bm/static/brightmaps/strife/MLDRE7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/MLDRE7.png
rename to wadsrc_bm/static/brightmaps/strife/MLDRE7.png
diff --git a/wadsrc_bm/brightmaps/strife/MLDRE8.png b/wadsrc_bm/static/brightmaps/strife/MLDRE8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/MLDRE8.png
rename to wadsrc_bm/static/brightmaps/strife/MLDRE8.png
diff --git a/wadsrc_bm/brightmaps/strife/PGRDG1.png b/wadsrc_bm/static/brightmaps/strife/PGRDG1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/PGRDG1.png
rename to wadsrc_bm/static/brightmaps/strife/PGRDG1.png
diff --git a/wadsrc_bm/brightmaps/strife/PGRDG2.png b/wadsrc_bm/static/brightmaps/strife/PGRDG2.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/PGRDG2.png
rename to wadsrc_bm/static/brightmaps/strife/PGRDG2.png
diff --git a/wadsrc_bm/brightmaps/strife/PGRDG3.png b/wadsrc_bm/static/brightmaps/strife/PGRDG3.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/PGRDG3.png
rename to wadsrc_bm/static/brightmaps/strife/PGRDG3.png
diff --git a/wadsrc_bm/brightmaps/strife/PGRDG4.png b/wadsrc_bm/static/brightmaps/strife/PGRDG4.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/PGRDG4.png
rename to wadsrc_bm/static/brightmaps/strife/PGRDG4.png
diff --git a/wadsrc_bm/brightmaps/strife/PGRDG5.png b/wadsrc_bm/static/brightmaps/strife/PGRDG5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/PGRDG5.png
rename to wadsrc_bm/static/brightmaps/strife/PGRDG5.png
diff --git a/wadsrc_bm/brightmaps/strife/PGRDG6.png b/wadsrc_bm/static/brightmaps/strife/PGRDG6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/PGRDG6.png
rename to wadsrc_bm/static/brightmaps/strife/PGRDG6.png
diff --git a/wadsrc_bm/brightmaps/strife/PGRDG7.png b/wadsrc_bm/static/brightmaps/strife/PGRDG7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/PGRDG7.png
rename to wadsrc_bm/static/brightmaps/strife/PGRDG7.png
diff --git a/wadsrc_bm/brightmaps/strife/PGRDG8.png b/wadsrc_bm/static/brightmaps/strife/PGRDG8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/PGRDG8.png
rename to wadsrc_bm/static/brightmaps/strife/PGRDG8.png
diff --git a/wadsrc_bm/brightmaps/strife/PGRDI0.png b/wadsrc_bm/static/brightmaps/strife/PGRDI0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/PGRDI0.png
rename to wadsrc_bm/static/brightmaps/strife/PGRDI0.png
diff --git a/wadsrc_bm/brightmaps/strife/PGRDJ0.png b/wadsrc_bm/static/brightmaps/strife/PGRDJ0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/PGRDJ0.png
rename to wadsrc_bm/static/brightmaps/strife/PGRDJ0.png
diff --git a/wadsrc_bm/brightmaps/strife/PGRDK0.png b/wadsrc_bm/static/brightmaps/strife/PGRDK0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/PGRDK0.png
rename to wadsrc_bm/static/brightmaps/strife/PGRDK0.png
diff --git a/wadsrc_bm/brightmaps/strife/PGRDL0.png b/wadsrc_bm/static/brightmaps/strife/PGRDL0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/PGRDL0.png
rename to wadsrc_bm/static/brightmaps/strife/PGRDL0.png
diff --git a/wadsrc_bm/brightmaps/strife/PGRDM0.png b/wadsrc_bm/static/brightmaps/strife/PGRDM0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/PGRDM0.png
rename to wadsrc_bm/static/brightmaps/strife/PGRDM0.png
diff --git a/wadsrc_bm/brightmaps/strife/PGRDN0.png b/wadsrc_bm/static/brightmaps/strife/PGRDN0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/PGRDN0.png
rename to wadsrc_bm/static/brightmaps/strife/PGRDN0.png
diff --git a/wadsrc_bm/brightmaps/strife/PRGRO0.png b/wadsrc_bm/static/brightmaps/strife/PRGRO0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/PRGRO0.png
rename to wadsrc_bm/static/brightmaps/strife/PRGRO0.png
diff --git a/wadsrc_bm/brightmaps/strife/RBB3A0.png b/wadsrc_bm/static/brightmaps/strife/RBB3A0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/RBB3A0.png
rename to wadsrc_bm/static/brightmaps/strife/RBB3A0.png
diff --git a/wadsrc_bm/brightmaps/strife/RBB3B0.png b/wadsrc_bm/static/brightmaps/strife/RBB3B0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/RBB3B0.png
rename to wadsrc_bm/static/brightmaps/strife/RBB3B0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB1J0.png b/wadsrc_bm/static/brightmaps/strife/ROB1J0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB1J0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB1J0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB1K0.png b/wadsrc_bm/static/brightmaps/strife/ROB1K0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB1K0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB1K0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB1L0.png b/wadsrc_bm/static/brightmaps/strife/ROB1L0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB1L0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB1L0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB1M0.png b/wadsrc_bm/static/brightmaps/strife/ROB1M0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB1M0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB1M0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB1N0.png b/wadsrc_bm/static/brightmaps/strife/ROB1N0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB1N0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB1N0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB1O0.png b/wadsrc_bm/static/brightmaps/strife/ROB1O0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB1O0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB1O0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB1P0.png b/wadsrc_bm/static/brightmaps/strife/ROB1P0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB1P0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB1P0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB2F1.png b/wadsrc_bm/static/brightmaps/strife/ROB2F1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB2F1.png
rename to wadsrc_bm/static/brightmaps/strife/ROB2F1.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB2F2.png b/wadsrc_bm/static/brightmaps/strife/ROB2F2.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB2F2.png
rename to wadsrc_bm/static/brightmaps/strife/ROB2F2.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB2F3.png b/wadsrc_bm/static/brightmaps/strife/ROB2F3.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB2F3.png
rename to wadsrc_bm/static/brightmaps/strife/ROB2F3.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB2F4.png b/wadsrc_bm/static/brightmaps/strife/ROB2F4.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB2F4.png
rename to wadsrc_bm/static/brightmaps/strife/ROB2F4.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB2F5.png b/wadsrc_bm/static/brightmaps/strife/ROB2F5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB2F5.png
rename to wadsrc_bm/static/brightmaps/strife/ROB2F5.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB2F6.png b/wadsrc_bm/static/brightmaps/strife/ROB2F6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB2F6.png
rename to wadsrc_bm/static/brightmaps/strife/ROB2F6.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB2F7.png b/wadsrc_bm/static/brightmaps/strife/ROB2F7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB2F7.png
rename to wadsrc_bm/static/brightmaps/strife/ROB2F7.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB2F8.png b/wadsrc_bm/static/brightmaps/strife/ROB2F8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB2F8.png
rename to wadsrc_bm/static/brightmaps/strife/ROB2F8.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB2G0.png b/wadsrc_bm/static/brightmaps/strife/ROB2G0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB2G0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB2G0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB2H0.png b/wadsrc_bm/static/brightmaps/strife/ROB2H0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB2H0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB2H0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB2I0.png b/wadsrc_bm/static/brightmaps/strife/ROB2I0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB2I0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB2I0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB2J0.png b/wadsrc_bm/static/brightmaps/strife/ROB2J0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB2J0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB2J0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB2K0.png b/wadsrc_bm/static/brightmaps/strife/ROB2K0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB2K0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB2K0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB2L0.png b/wadsrc_bm/static/brightmaps/strife/ROB2L0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB2L0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB2L0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB2M0.png b/wadsrc_bm/static/brightmaps/strife/ROB2M0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB2M0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB2M0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB2N0.png b/wadsrc_bm/static/brightmaps/strife/ROB2N0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB2N0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB2N0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB2O0.png b/wadsrc_bm/static/brightmaps/strife/ROB2O0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB2O0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB2O0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3F1.png b/wadsrc_bm/static/brightmaps/strife/ROB3F1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3F1.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3F1.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3F2.png b/wadsrc_bm/static/brightmaps/strife/ROB3F2.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3F2.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3F2.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3F3.png b/wadsrc_bm/static/brightmaps/strife/ROB3F3.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3F3.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3F3.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3F4.png b/wadsrc_bm/static/brightmaps/strife/ROB3F4.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3F4.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3F4.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3F5.png b/wadsrc_bm/static/brightmaps/strife/ROB3F5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3F5.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3F5.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3F6.png b/wadsrc_bm/static/brightmaps/strife/ROB3F6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3F6.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3F6.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3F7.png b/wadsrc_bm/static/brightmaps/strife/ROB3F7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3F7.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3F7.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3F8.png b/wadsrc_bm/static/brightmaps/strife/ROB3F8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3F8.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3F8.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3H1.png b/wadsrc_bm/static/brightmaps/strife/ROB3H1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3H1.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3H1.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3H2.png b/wadsrc_bm/static/brightmaps/strife/ROB3H2.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3H2.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3H2.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3H3.png b/wadsrc_bm/static/brightmaps/strife/ROB3H3.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3H3.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3H3.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3H4.png b/wadsrc_bm/static/brightmaps/strife/ROB3H4.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3H4.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3H4.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3H5.png b/wadsrc_bm/static/brightmaps/strife/ROB3H5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3H5.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3H5.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3H6.png b/wadsrc_bm/static/brightmaps/strife/ROB3H6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3H6.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3H6.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3H7.png b/wadsrc_bm/static/brightmaps/strife/ROB3H7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3H7.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3H7.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3H8.png b/wadsrc_bm/static/brightmaps/strife/ROB3H8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3H8.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3H8.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3I1.png b/wadsrc_bm/static/brightmaps/strife/ROB3I1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3I1.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3I1.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3I2.png b/wadsrc_bm/static/brightmaps/strife/ROB3I2.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3I2.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3I2.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3I3.png b/wadsrc_bm/static/brightmaps/strife/ROB3I3.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3I3.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3I3.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3I4.png b/wadsrc_bm/static/brightmaps/strife/ROB3I4.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3I4.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3I4.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3I5.png b/wadsrc_bm/static/brightmaps/strife/ROB3I5.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3I5.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3I5.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3I6.png b/wadsrc_bm/static/brightmaps/strife/ROB3I6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3I6.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3I6.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3I7.png b/wadsrc_bm/static/brightmaps/strife/ROB3I7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3I7.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3I7.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3I8.png b/wadsrc_bm/static/brightmaps/strife/ROB3I8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3I8.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3I8.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3J1.png b/wadsrc_bm/static/brightmaps/strife/ROB3J1.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3J1.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3J1.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3J2.png b/wadsrc_bm/static/brightmaps/strife/ROB3J2.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3J2.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3J2.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3J3.png b/wadsrc_bm/static/brightmaps/strife/ROB3J3.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3J3.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3J3.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3J4.png b/wadsrc_bm/static/brightmaps/strife/ROB3J4.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3J4.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3J4.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3J6.png b/wadsrc_bm/static/brightmaps/strife/ROB3J6.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3J6.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3J6.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3J7.png b/wadsrc_bm/static/brightmaps/strife/ROB3J7.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3J7.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3J7.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3J8.png b/wadsrc_bm/static/brightmaps/strife/ROB3J8.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3J8.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3J8.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3M0.png b/wadsrc_bm/static/brightmaps/strife/ROB3M0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3M0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3M0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3N0.png b/wadsrc_bm/static/brightmaps/strife/ROB3N0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3N0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3N0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3O0.png b/wadsrc_bm/static/brightmaps/strife/ROB3O0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3O0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3O0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3P0.png b/wadsrc_bm/static/brightmaps/strife/ROB3P0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3P0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3P0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3Q0.png b/wadsrc_bm/static/brightmaps/strife/ROB3Q0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3Q0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3Q0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3T0.png b/wadsrc_bm/static/brightmaps/strife/ROB3T0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3T0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3T0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3U0.png b/wadsrc_bm/static/brightmaps/strife/ROB3U0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3U0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3U0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3V0.png b/wadsrc_bm/static/brightmaps/strife/ROB3V0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3V0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3V0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3W0.png b/wadsrc_bm/static/brightmaps/strife/ROB3W0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3W0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3W0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3X0.png b/wadsrc_bm/static/brightmaps/strife/ROB3X0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3X0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3X0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3Y0.png b/wadsrc_bm/static/brightmaps/strife/ROB3Y0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3Y0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3Y0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3Z0.png b/wadsrc_bm/static/brightmaps/strife/ROB3Z0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3Z0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3Z0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3[0.png b/wadsrc_bm/static/brightmaps/strife/ROB3[0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3[0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3[0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3]0.png b/wadsrc_bm/static/brightmaps/strife/ROB3]0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3]0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3]0.png
diff --git a/wadsrc_bm/brightmaps/strife/ROB3^0.png b/wadsrc_bm/static/brightmaps/strife/ROB3^0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/ROB3^0.png
rename to wadsrc_bm/static/brightmaps/strife/ROB3^0.png
diff --git a/wadsrc_bm/brightmaps/strife/SEWRH0.png b/wadsrc_bm/static/brightmaps/strife/SEWRH0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/SEWRH0.png
rename to wadsrc_bm/static/brightmaps/strife/SEWRH0.png
diff --git a/wadsrc_bm/brightmaps/strife/STLKP0.png b/wadsrc_bm/static/brightmaps/strife/STLKP0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/STLKP0.png
rename to wadsrc_bm/static/brightmaps/strife/STLKP0.png
diff --git a/wadsrc_bm/brightmaps/strife/STLKQ0.png b/wadsrc_bm/static/brightmaps/strife/STLKQ0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/STLKQ0.png
rename to wadsrc_bm/static/brightmaps/strife/STLKQ0.png
diff --git a/wadsrc_bm/brightmaps/strife/STLKR0.png b/wadsrc_bm/static/brightmaps/strife/STLKR0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/STLKR0.png
rename to wadsrc_bm/static/brightmaps/strife/STLKR0.png
diff --git a/wadsrc_bm/brightmaps/strife/STLKS0.png b/wadsrc_bm/static/brightmaps/strife/STLKS0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/STLKS0.png
rename to wadsrc_bm/static/brightmaps/strife/STLKS0.png
diff --git a/wadsrc_bm/brightmaps/strife/STLKT0.png b/wadsrc_bm/static/brightmaps/strife/STLKT0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/STLKT0.png
rename to wadsrc_bm/static/brightmaps/strife/STLKT0.png
diff --git a/wadsrc_bm/brightmaps/strife/STLKU0.png b/wadsrc_bm/static/brightmaps/strife/STLKU0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/STLKU0.png
rename to wadsrc_bm/static/brightmaps/strife/STLKU0.png
diff --git a/wadsrc_bm/brightmaps/strife/STLKV0.png b/wadsrc_bm/static/brightmaps/strife/STLKV0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/STLKV0.png
rename to wadsrc_bm/static/brightmaps/strife/STLKV0.png
diff --git a/wadsrc_bm/brightmaps/strife/STLKW0.png b/wadsrc_bm/static/brightmaps/strife/STLKW0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/STLKW0.png
rename to wadsrc_bm/static/brightmaps/strife/STLKW0.png
diff --git a/wadsrc_bm/brightmaps/strife/STLKX0.png b/wadsrc_bm/static/brightmaps/strife/STLKX0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/STLKX0.png
rename to wadsrc_bm/static/brightmaps/strife/STLKX0.png
diff --git a/wadsrc_bm/brightmaps/strife/STLKY0.png b/wadsrc_bm/static/brightmaps/strife/STLKY0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/STLKY0.png
rename to wadsrc_bm/static/brightmaps/strife/STLKY0.png
diff --git a/wadsrc_bm/brightmaps/strife/STLKZ0.png b/wadsrc_bm/static/brightmaps/strife/STLKZ0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/STLKZ0.png
rename to wadsrc_bm/static/brightmaps/strife/STLKZ0.png
diff --git a/wadsrc_bm/brightmaps/strife/STLK[0.png b/wadsrc_bm/static/brightmaps/strife/STLK[0.png
similarity index 100%
rename from wadsrc_bm/brightmaps/strife/STLK[0.png
rename to wadsrc_bm/static/brightmaps/strife/STLK[0.png
diff --git a/wadsrc_bm/doomdefs.bm b/wadsrc_bm/static/doomdefs.bm
similarity index 100%
rename from wadsrc_bm/doomdefs.bm
rename to wadsrc_bm/static/doomdefs.bm
diff --git a/wadsrc_bm/hexndefs.bm b/wadsrc_bm/static/hexndefs.bm
similarity index 100%
rename from wadsrc_bm/hexndefs.bm
rename to wadsrc_bm/static/hexndefs.bm
diff --git a/wadsrc_bm/hticdefs.bm b/wadsrc_bm/static/hticdefs.bm
similarity index 100%
rename from wadsrc_bm/hticdefs.bm
rename to wadsrc_bm/static/hticdefs.bm
diff --git a/wadsrc_bm/strfdefs.bm b/wadsrc_bm/static/strfdefs.bm
similarity index 100%
rename from wadsrc_bm/strfdefs.bm
rename to wadsrc_bm/static/strfdefs.bm
diff --git a/wadsrc_bm/zdoom.lst b/wadsrc_bm/zdoom.lst
deleted file mode 100644
index 0e9bac10..00000000
--- a/wadsrc_bm/zdoom.lst
+++ /dev/null
@@ -1,442 +0,0 @@
-#
-
-@brightmaps.pk3
-
-doomdefs.bm doomdefs.bm
-hexndefs.bm hexndefs.bm
-hticdefs.bm hticdefs.bm
-strfdefs.bm strfdefs.bm
-
-brightmaps/doom/BON2B0.png brightmaps/doom/BON2B0.png
-brightmaps/doom/BON2C0.png brightmaps/doom/BON2C0.png
-brightmaps/doom/BON2D0.png brightmaps/doom/BON2D0.png
-brightmaps/doom/BOS2A6C4.png brightmaps/doom/BOS2A6C4.png
-brightmaps/doom/BOS2A7C3.png brightmaps/doom/BOS2A7C3.png
-brightmaps/doom/BOS2A8C2.png brightmaps/doom/BOS2A8C2.png
-brightmaps/doom/BOS2B6D4.png brightmaps/doom/BOS2B6D4.png
-brightmaps/doom/BOS2B7D3.png brightmaps/doom/BOS2B7D3.png
-brightmaps/doom/BOS2B8D2.png brightmaps/doom/BOS2B8D2.png
-brightmaps/doom/BOSSA1.png brightmaps/doom/BOSSA1.png
-brightmaps/doom/BOSSA2A8.png brightmaps/doom/BOSSA2A8.png
-brightmaps/doom/BOSSA3A7.png brightmaps/doom/BOSSA3A7.png
-brightmaps/doom/BOSSA4A6.png brightmaps/doom/BOSSA4A6.png
-brightmaps/doom/BOSSA5.png brightmaps/doom/BOSSA5.png
-brightmaps/doom/BOSSB1.png brightmaps/doom/BOSSB1.png
-brightmaps/doom/BOSSB2B8.png brightmaps/doom/BOSSB2B8.png
-brightmaps/doom/BOSSB3B7.png brightmaps/doom/BOSSB3B7.png
-brightmaps/doom/BOSSB4B6.png brightmaps/doom/BOSSB4B6.png
-brightmaps/doom/BOSSB5.png brightmaps/doom/BOSSB5.png
-brightmaps/doom/BOSSC1.png brightmaps/doom/BOSSC1.png
-brightmaps/doom/BOSSC2C8.png brightmaps/doom/BOSSC2C8.png
-brightmaps/doom/BOSSC3C7.png brightmaps/doom/BOSSC3C7.png
-brightmaps/doom/BOSSC4C6.png brightmaps/doom/BOSSC4C6.png
-brightmaps/doom/BOSSC5.png brightmaps/doom/BOSSC5.png
-brightmaps/doom/BOSSD1.png brightmaps/doom/BOSSD1.png
-brightmaps/doom/BOSSD2D8.png brightmaps/doom/BOSSD2D8.png
-brightmaps/doom/BOSSD3D7.png brightmaps/doom/BOSSD3D7.png
-brightmaps/doom/BOSSD4D6.png brightmaps/doom/BOSSD4D6.png
-brightmaps/doom/BOSSD5.png brightmaps/doom/BOSSD5.png
-brightmaps/doom/BOSSE1.png brightmaps/doom/BOSSE1.png
-brightmaps/doom/BOSSE2.png brightmaps/doom/BOSSE2.png
-brightmaps/doom/BOSSE3.png brightmaps/doom/BOSSE3.png
-brightmaps/doom/BOSSE4.png brightmaps/doom/BOSSE4.png
-brightmaps/doom/BOSSE5.png brightmaps/doom/BOSSE5.png
-brightmaps/doom/BOSSE6.png brightmaps/doom/BOSSE6.png
-brightmaps/doom/BOSSE7.png brightmaps/doom/BOSSE7.png
-brightmaps/doom/BOSSE8.png brightmaps/doom/BOSSE8.png
-brightmaps/doom/BOSSF1.png brightmaps/doom/BOSSF1.png
-brightmaps/doom/BOSSF2.png brightmaps/doom/BOSSF2.png
-brightmaps/doom/BOSSF3.png brightmaps/doom/BOSSF3.png
-brightmaps/doom/BOSSF4.png brightmaps/doom/BOSSF4.png
-brightmaps/doom/BOSSF5.png brightmaps/doom/BOSSF5.png
-brightmaps/doom/BOSSF6.png brightmaps/doom/BOSSF6.png
-brightmaps/doom/BOSSF7.png brightmaps/doom/BOSSF7.png
-brightmaps/doom/BOSSF8.png brightmaps/doom/BOSSF8.png
-brightmaps/doom/BOSSG1.png brightmaps/doom/BOSSG1.png
-brightmaps/doom/BOSSG2.png brightmaps/doom/BOSSG2.png
-brightmaps/doom/BOSSG3.png brightmaps/doom/BOSSG3.png
-brightmaps/doom/BOSSG4.png brightmaps/doom/BOSSG4.png
-brightmaps/doom/BOSSG5.png brightmaps/doom/BOSSG5.png
-brightmaps/doom/BOSSG6.png brightmaps/doom/BOSSG6.png
-brightmaps/doom/BOSSG7.png brightmaps/doom/BOSSG7.png
-brightmaps/doom/BOSSG8.png brightmaps/doom/BOSSG8.png
-brightmaps/doom/BOSSH1.png brightmaps/doom/BOSSH1.png
-brightmaps/doom/BOSSH2.png brightmaps/doom/BOSSH2.png
-brightmaps/doom/BOSSH3.png brightmaps/doom/BOSSH3.png
-brightmaps/doom/BOSSH4.png brightmaps/doom/BOSSH4.png
-brightmaps/doom/BOSSH5.png brightmaps/doom/BOSSH5.png
-brightmaps/doom/BOSSH6.png brightmaps/doom/BOSSH6.png
-brightmaps/doom/BOSSH7.png brightmaps/doom/BOSSH7.png
-brightmaps/doom/BOSSH8.png brightmaps/doom/BOSSH8.png
-brightmaps/doom/BOSSI0.png brightmaps/doom/BOSSI0.png
-brightmaps/doom/BOSSJ0.png brightmaps/doom/BOSSJ0.png
-brightmaps/doom/BOSSK0.png brightmaps/doom/BOSSK0.png
-brightmaps/doom/BOSSL0.png brightmaps/doom/BOSSL0.png
-brightmaps/doom/BOSSM0.png brightmaps/doom/BOSSM0.png
-brightmaps/doom/BSPIG1.png brightmaps/doom/BSPIG1.png
-brightmaps/doom/BSPIG2G8.png brightmaps/doom/BSPIG2G8.png
-brightmaps/doom/BSPIH1.png brightmaps/doom/BSPIH1.png
-brightmaps/doom/BSPIH2H8.png brightmaps/doom/BSPIH2H8.png
-brightmaps/doom/BSPIH3H7.png brightmaps/doom/BSPIH3H7.png
-brightmaps/doom/BSPIH4H6.png brightmaps/doom/BSPIH4H6.png
-brightmaps/doom/BSPIH5.png brightmaps/doom/BSPIH5.png
-brightmaps/doom/CELLA0.png brightmaps/doom/CELLA0.png
-brightmaps/doom/CELPA0.png brightmaps/doom/CELPA0.png
-brightmaps/doom/CPOSE1.png brightmaps/doom/CPOSE1.png
-brightmaps/doom/CPOSE2.png brightmaps/doom/CPOSE2.png
-brightmaps/doom/CPOSE3.png brightmaps/doom/CPOSE3.png
-brightmaps/doom/CPOSE5.png brightmaps/doom/CPOSE5.png
-brightmaps/doom/CPOSE6.png brightmaps/doom/CPOSE6.png
-brightmaps/doom/CPOSE7.png brightmaps/doom/CPOSE7.png
-brightmaps/doom/CPOSE8.png brightmaps/doom/CPOSE8.png
-brightmaps/doom/CPOSF1.png brightmaps/doom/CPOSF1.png
-brightmaps/doom/CPOSF2.png brightmaps/doom/CPOSF2.png
-brightmaps/doom/CPOSF3.png brightmaps/doom/CPOSF3.png
-brightmaps/doom/CPOSF4.png brightmaps/doom/CPOSF4.png
-brightmaps/doom/CPOSF5.png brightmaps/doom/CPOSF5.png
-brightmaps/doom/CPOSF6.png brightmaps/doom/CPOSF6.png
-brightmaps/doom/CPOSF7.png brightmaps/doom/CPOSF7.png
-brightmaps/doom/CPOSF8.png brightmaps/doom/CPOSF8.png
-brightmaps/doom/CYBRF1.png brightmaps/doom/CYBRF1.png
-brightmaps/doom/CYBRF2.png brightmaps/doom/CYBRF2.png
-brightmaps/doom/CYBRF3.png brightmaps/doom/CYBRF3.png
-brightmaps/doom/CYBRF4.png brightmaps/doom/CYBRF4.png
-brightmaps/doom/CYBRF5.png brightmaps/doom/CYBRF5.png
-brightmaps/doom/CYBRF6.png brightmaps/doom/CYBRF6.png
-brightmaps/doom/CYBRF7.png brightmaps/doom/CYBRF7.png
-brightmaps/doom/CYBRF8.png brightmaps/doom/CYBRF8.png
-brightmaps/doom/CYBRJ0.png brightmaps/doom/CYBRJ0.png
-brightmaps/doom/CYBRK0.png brightmaps/doom/CYBRK0.png
-brightmaps/doom/CYBRL0.png brightmaps/doom/CYBRL0.png
-brightmaps/doom/CYBRM0.png brightmaps/doom/CYBRM0.png
-brightmaps/doom/CYBRN0.png brightmaps/doom/CYBRN0.png
-brightmaps/doom/CYBRO0.png brightmaps/doom/CYBRO0.png
-brightmaps/doom/FATTG1.png brightmaps/doom/FATTG1.png
-brightmaps/doom/FATTG2G8.png brightmaps/doom/FATTG2G8.png
-brightmaps/doom/FATTH1.png brightmaps/doom/FATTH1.png
-brightmaps/doom/FATTH2H8.png brightmaps/doom/FATTH2H8.png
-brightmaps/doom/FATTH3H7.png brightmaps/doom/FATTH3H7.png
-brightmaps/doom/FATTH4H6.png brightmaps/doom/FATTH4H6.png
-brightmaps/doom/FATTH5.png brightmaps/doom/FATTH5.png
-brightmaps/doom/FCANA0.png brightmaps/doom/FCANA0.png
-brightmaps/doom/FCANB0.png brightmaps/doom/FCANB0.png
-brightmaps/doom/FCANC0.png brightmaps/doom/FCANC0.png
-brightmaps/doom/HEADC1.png brightmaps/doom/HEADC1.png
-brightmaps/doom/HEADC2C8.png brightmaps/doom/HEADC2C8.png
-brightmaps/doom/HEADC3C7.png brightmaps/doom/HEADC3C7.png
-brightmaps/doom/HEADD1.png brightmaps/doom/HEADD1.png
-brightmaps/doom/HEADD2D8.png brightmaps/doom/HEADD2D8.png
-brightmaps/doom/HEADD3D7.png brightmaps/doom/HEADD3D7.png
-brightmaps/doom/PAINF1.png brightmaps/doom/PAINF1.png
-brightmaps/doom/PAINF2F8.png brightmaps/doom/PAINF2F8.png
-brightmaps/doom/PAINF3F7.png brightmaps/doom/PAINF3F7.png
-brightmaps/doom/PLAYF1.png brightmaps/doom/PLAYF1.png
-brightmaps/doom/PLAYF2F8.png brightmaps/doom/PLAYF2F8.png
-brightmaps/doom/PLAYF3F7.png brightmaps/doom/PLAYF3F7.png
-brightmaps/doom/PLAYF4F6.png brightmaps/doom/PLAYF4F6.png
-brightmaps/doom/PLAYF5.png brightmaps/doom/PLAYF5.png
-brightmaps/doom/POSSE1.png brightmaps/doom/POSSE1.png
-brightmaps/doom/POSSE2E8.png brightmaps/doom/POSSE2E8.png
-brightmaps/doom/POSSE3E7.png brightmaps/doom/POSSE3E7.png
-brightmaps/doom/POSSF1.png brightmaps/doom/POSSF1.png
-brightmaps/doom/POSSF2F8.png brightmaps/doom/POSSF2F8.png
-brightmaps/doom/POSSF3F7.png brightmaps/doom/POSSF3F7.png
-brightmaps/doom/POSSF4F6.png brightmaps/doom/POSSF4F6.png
-brightmaps/doom/POSSF5.png brightmaps/doom/POSSF5.png
-brightmaps/doom/SKELJ1.png brightmaps/doom/SKELJ1.png
-brightmaps/doom/SKELJ2.png brightmaps/doom/SKELJ2.png
-brightmaps/doom/SKELJ3.png brightmaps/doom/SKELJ3.png
-brightmaps/doom/SKELJ4.png brightmaps/doom/SKELJ4.png
-brightmaps/doom/SKELJ5.png brightmaps/doom/SKELJ5.png
-brightmaps/doom/SKELJ6.png brightmaps/doom/SKELJ6.png
-brightmaps/doom/SKELJ7.png brightmaps/doom/SKELJ7.png
-brightmaps/doom/SKELJ8.png brightmaps/doom/SKELJ8.png
-brightmaps/doom/SMRTA0.png brightmaps/doom/SMRTA0.png
-brightmaps/doom/SMRTB0.png brightmaps/doom/SMRTB0.png
-brightmaps/doom/SMRTC0.png brightmaps/doom/SMRTC0.png
-brightmaps/doom/SMRTD0.png brightmaps/doom/SMRTD0.png
-brightmaps/doom/SPIDG1.png brightmaps/doom/SPIDG1.png
-brightmaps/doom/SPIDG2G8.png brightmaps/doom/SPIDG2G8.png
-brightmaps/doom/SPIDH1.png brightmaps/doom/SPIDH1.png
-brightmaps/doom/SPIDH2H8.png brightmaps/doom/SPIDH2H8.png
-brightmaps/doom/SPIDH3H7.png brightmaps/doom/SPIDH3H7.png
-brightmaps/doom/SPIDL0.png brightmaps/doom/SPIDL0.png
-brightmaps/doom/SPIDM0.png brightmaps/doom/SPIDM0.png
-brightmaps/doom/SPIDN0.png brightmaps/doom/SPIDN0.png
-brightmaps/doom/SPIDO0.png brightmaps/doom/SPIDO0.png
-brightmaps/doom/SPIDP0.png brightmaps/doom/SPIDP0.png
-brightmaps/doom/SPIDQ0.png brightmaps/doom/SPIDQ0.png
-brightmaps/doom/SPIDR0.png brightmaps/doom/SPIDR0.png
-brightmaps/doom/SPOSE1.png brightmaps/doom/SPOSE1.png
-brightmaps/doom/SPOSE2E8.png brightmaps/doom/SPOSE2E8.png
-brightmaps/doom/SPOSE3E7.png brightmaps/doom/SPOSE3E7.png
-brightmaps/doom/SPOSF1.png brightmaps/doom/SPOSF1.png
-brightmaps/doom/SPOSF2F8.png brightmaps/doom/SPOSF2F8.png
-brightmaps/doom/SPOSF3F7.png brightmaps/doom/SPOSF3F7.png
-brightmaps/doom/SPOSF4F6.png brightmaps/doom/SPOSF4F6.png
-brightmaps/doom/SPOSF5.png brightmaps/doom/SPOSF5.png
-brightmaps/doom/sswvg0.png brightmaps/doom/sswvg0.png
-brightmaps/doom/TbluB0.png brightmaps/doom/TbluB0.png
-brightmaps/doom/TbluC0.png brightmaps/doom/TbluC0.png
-brightmaps/doom/TREDA0.png brightmaps/doom/TREDA0.png
-brightmaps/doom/TREDB0.png brightmaps/doom/TREDB0.png
-brightmaps/doom/TREDC0.png brightmaps/doom/TREDC0.png
-brightmaps/doom/TREDD0.png brightmaps/doom/TREDD0.png
-
-brightmaps/doom/BON2B0.png brightmaps/doom/BON2B0.png
-brightmaps/doom/BON2C0.png brightmaps/doom/BON2C0.png
-brightmaps/doom/BON2D0.png brightmaps/doom/BON2D0.png
-brightmaps/doom/FCANA0.png brightmaps/doom/FCANA0.png
-brightmaps/doom/FCANB0.png brightmaps/doom/FCANB0.png
-brightmaps/doom/FCANC0.png brightmaps/doom/FCANC0.png
-brightmaps/doom/SMRTA0.png brightmaps/doom/SMRTA0.png
-brightmaps/doom/SMRTB0.png brightmaps/doom/SMRTB0.png
-brightmaps/doom/SMRTC0.png brightmaps/doom/SMRTC0.png
-brightmaps/doom/SMRTD0.png brightmaps/doom/SMRTD0.png
-brightmaps/doom/TbluB0.png brightmaps/doom/TbluB0.png
-brightmaps/doom/TbluC0.png brightmaps/doom/TbluC0.png
-brightmaps/doom/TREDA0.png brightmaps/doom/TREDA0.png
-brightmaps/doom/TREDB0.png brightmaps/doom/TREDB0.png
-brightmaps/doom/TREDC0.png brightmaps/doom/TREDC0.png
-brightmaps/doom/TREDD0.png brightmaps/doom/TREDD0.png
-
-brightmaps/heretic/BEASI1.png brightmaps/heretic/BEASI1.png
-brightmaps/heretic/BEASI2I8.png brightmaps/heretic/BEASI2I8.png
-brightmaps/heretic/BEASI3I7.png brightmaps/heretic/BEASI3I7.png
-brightmaps/heretic/CHDLA0.png brightmaps/heretic/CHDLA0.png
-brightmaps/heretic/CHDLB0.png brightmaps/heretic/CHDLB0.png
-brightmaps/heretic/CHDLC0.png brightmaps/heretic/CHDLC0.png
-brightmaps/heretic/CLNKI0.png brightmaps/heretic/CLNKI0.png
-brightmaps/heretic/CLNKJ0.png brightmaps/heretic/CLNKJ0.png
-brightmaps/heretic/CLNKK0.png brightmaps/heretic/CLNKK0.png
-brightmaps/heretic/CLNKL0.png brightmaps/heretic/CLNKL0.png
-brightmaps/heretic/CLNKM0.png brightmaps/heretic/CLNKM0.png
-brightmaps/heretic/CLNKN0.png brightmaps/heretic/CLNKN0.png
-brightmaps/heretic/IMPXD1.png brightmaps/heretic/IMPXD1.png
-brightmaps/heretic/IMPXD2.png brightmaps/heretic/IMPXD2.png
-brightmaps/heretic/IMPXD3.png brightmaps/heretic/IMPXD3.png
-brightmaps/heretic/IMPXD4.png brightmaps/heretic/IMPXD4.png
-brightmaps/heretic/IMPXD5.png brightmaps/heretic/IMPXD5.png
-brightmaps/heretic/IMPXD6.png brightmaps/heretic/IMPXD6.png
-brightmaps/heretic/IMPXD7.png brightmaps/heretic/IMPXD7.png
-brightmaps/heretic/IMPXD8.png brightmaps/heretic/IMPXD8.png
-brightmaps/heretic/IMPXE1.png brightmaps/heretic/IMPXE1.png
-brightmaps/heretic/IMPXE2.png brightmaps/heretic/IMPXE2.png
-brightmaps/heretic/IMPXE3.png brightmaps/heretic/IMPXE3.png
-brightmaps/heretic/IMPXE4.png brightmaps/heretic/IMPXE4.png
-brightmaps/heretic/IMPXE5.png brightmaps/heretic/IMPXE5.png
-brightmaps/heretic/IMPXE6.png brightmaps/heretic/IMPXE6.png
-brightmaps/heretic/IMPXE7.png brightmaps/heretic/IMPXE7.png
-brightmaps/heretic/IMPXE8.png brightmaps/heretic/IMPXE8.png
-brightmaps/heretic/IMPXF1.png brightmaps/heretic/IMPXF1.png
-brightmaps/heretic/IMPXF2.png brightmaps/heretic/IMPXF2.png
-brightmaps/heretic/IMPXF3.png brightmaps/heretic/IMPXF3.png
-brightmaps/heretic/IMPXF4.png brightmaps/heretic/IMPXF4.png
-brightmaps/heretic/IMPXF5.png brightmaps/heretic/IMPXF5.png
-brightmaps/heretic/IMPXF6.png brightmaps/heretic/IMPXF6.png
-brightmaps/heretic/IMPXF7.png brightmaps/heretic/IMPXF7.png
-brightmaps/heretic/IMPXF8.png brightmaps/heretic/IMPXF8.png
-brightmaps/heretic/LICHB1.png brightmaps/heretic/LICHB1.png
-brightmaps/heretic/LICHB2B8.png brightmaps/heretic/LICHB2B8.png
-brightmaps/heretic/LICHB3B7.png brightmaps/heretic/LICHB3B7.png
-brightmaps/heretic/LICHC0.png brightmaps/heretic/LICHC0.png
-brightmaps/heretic/LICHD0.png brightmaps/heretic/LICHD0.png
-brightmaps/heretic/LICHE0.png brightmaps/heretic/LICHE0.png
-brightmaps/heretic/LICHF0.png brightmaps/heretic/LICHF0.png
-brightmaps/heretic/LICHG0.png brightmaps/heretic/LICHG0.png
-brightmaps/heretic/LICHH0.png brightmaps/heretic/LICHH0.png
-brightmaps/heretic/PLAYF1.png brightmaps/heretic/PLAYF1.png
-brightmaps/heretic/PLAYF2F8.png brightmaps/heretic/PLAYF2F8.png
-brightmaps/heretic/PLAYF3F7.png brightmaps/heretic/PLAYF3F7.png
-brightmaps/heretic/PLAYF4F6.png brightmaps/heretic/PLAYF4F6.png
-brightmaps/heretic/SDTHA0.png brightmaps/heretic/SDTHA0.png
-brightmaps/heretic/SDTHB0.png brightmaps/heretic/SDTHB0.png
-brightmaps/heretic/SDTHC0.png brightmaps/heretic/SDTHC0.png
-brightmaps/heretic/SDTHD0.png brightmaps/heretic/SDTHD0.png
-brightmaps/heretic/SDTHE0.png brightmaps/heretic/SDTHE0.png
-brightmaps/heretic/SDTHF0.png brightmaps/heretic/SDTHF0.png
-brightmaps/heretic/SDTHG0.png brightmaps/heretic/SDTHG0.png
-brightmaps/heretic/SDTHH0.png brightmaps/heretic/SDTHH0.png
-brightmaps/heretic/SOR2R1.png brightmaps/heretic/SOR2R1.png
-brightmaps/heretic/SOR2R2.png brightmaps/heretic/SOR2R2.png
-brightmaps/heretic/SOR2R3.png brightmaps/heretic/SOR2R3.png
-brightmaps/heretic/SOR2R4.png brightmaps/heretic/SOR2R4.png
-brightmaps/heretic/SOR2R5.png brightmaps/heretic/SOR2R5.png
-brightmaps/heretic/SOR2R6.png brightmaps/heretic/SOR2R6.png
-brightmaps/heretic/SOR2R7.png brightmaps/heretic/SOR2R7.png
-brightmaps/heretic/SOR2R8.png brightmaps/heretic/SOR2R8.png
-brightmaps/heretic/SOR2S1.png brightmaps/heretic/SOR2S1.png
-brightmaps/heretic/SOR2S2.png brightmaps/heretic/SOR2S2.png
-brightmaps/heretic/SOR2S3.png brightmaps/heretic/SOR2S3.png
-brightmaps/heretic/SOR2S4.png brightmaps/heretic/SOR2S4.png
-brightmaps/heretic/SOR2S5.png brightmaps/heretic/SOR2S5.png
-brightmaps/heretic/SOR2S6.png brightmaps/heretic/SOR2S6.png
-brightmaps/heretic/SOR2S7.png brightmaps/heretic/SOR2S7.png
-brightmaps/heretic/SOR2S8.png brightmaps/heretic/SOR2S8.png
-brightmaps/heretic/SOR2T1.png brightmaps/heretic/SOR2T1.png
-brightmaps/heretic/SOR2T2.png brightmaps/heretic/SOR2T2.png
-brightmaps/heretic/SOR2T3.png brightmaps/heretic/SOR2T3.png
-brightmaps/heretic/SOR2T4.png brightmaps/heretic/SOR2T4.png
-brightmaps/heretic/SOR2T5.png brightmaps/heretic/SOR2T5.png
-brightmaps/heretic/SOR2T6.png brightmaps/heretic/SOR2T6.png
-brightmaps/heretic/SOR2T7.png brightmaps/heretic/SOR2T7.png
-brightmaps/heretic/SOR2T8.png brightmaps/heretic/SOR2T8.png
-brightmaps/heretic/VLCOE0.png brightmaps/heretic/VLCOE0.png
-brightmaps/heretic/WZRDC1.png brightmaps/heretic/WZRDC1.png
-brightmaps/heretic/WZRDC2C8.png brightmaps/heretic/WZRDC2C8.png
-brightmaps/heretic/WZRDC3C7.png brightmaps/heretic/WZRDC3C7.png
-brightmaps/heretic/WZRDC4C6.png brightmaps/heretic/WZRDC4C6.png
-brightmaps/heretic/WZRDC5.png brightmaps/heretic/WZRDC5.png
-brightmaps/heretic/WZRDD1.png brightmaps/heretic/WZRDD1.png
-brightmaps/heretic/WZRDD2D8.png brightmaps/heretic/WZRDD2D8.png
-brightmaps/heretic/WZRDD3D7.png brightmaps/heretic/WZRDD3D7.png
-brightmaps/heretic/WZRDD4D6.png brightmaps/heretic/WZRDD4D6.png
-brightmaps/heretic/WZRDD5.png brightmaps/heretic/WZRDD5.png
-brightmaps/heretic/WZRDF0.png brightmaps/heretic/WZRDF0.png
-brightmaps/heretic/WZRDG0.png brightmaps/heretic/WZRDG0.png
-brightmaps/heretic/WZRDH0.png brightmaps/heretic/WZRDH0.png
-brightmaps/heretic/WZRDI0.png brightmaps/heretic/WZRDI0.png
-brightmaps/heretic/WZRDJ0.png brightmaps/heretic/WZRDJ0.png
-brightmaps/heretic/WZRDK0.png brightmaps/heretic/WZRDK0.png
-brightmaps/hexen/CDLRA0.png brightmaps/hexen/CDLRA0.png
-brightmaps/hexen/CDLRB0.png brightmaps/hexen/CDLRB0.png
-brightmaps/hexen/CDLRC0.png brightmaps/hexen/CDLRC0.png
-brightmaps/hexen/CENTF1.png brightmaps/hexen/CENTF1.png
-brightmaps/hexen/CENTF2.png brightmaps/hexen/CENTF2.png
-brightmaps/hexen/CENTF8.png brightmaps/hexen/CENTF8.png
-brightmaps/hexen/ICEYG1.png brightmaps/hexen/ICEYG1.png
-brightmaps/hexen/ICEYG2G8.png brightmaps/hexen/ICEYG2G8.png
-brightmaps/hexen/ICEYG3G7.png brightmaps/hexen/ICEYG3G7.png
-brightmaps/hexen/ICEYG4G6.png brightmaps/hexen/ICEYG4G6.png
-brightmaps/hexen/ICEYG5.png brightmaps/hexen/ICEYG5.png
-brightmaps/hexen/MAGEF1.png brightmaps/hexen/MAGEF1.png
-brightmaps/hexen/MAGEF2.png brightmaps/hexen/MAGEF2.png
-brightmaps/hexen/MAGEF3.png brightmaps/hexen/MAGEF3.png
-brightmaps/hexen/MAGEF4.png brightmaps/hexen/MAGEF4.png
-brightmaps/hexen/MAGEF5.png brightmaps/hexen/MAGEF5.png
-brightmaps/hexen/MAGEF6.png brightmaps/hexen/MAGEF6.png
-brightmaps/hexen/MAGEF7.png brightmaps/hexen/MAGEF7.png
-brightmaps/hexen/MAGEF8.png brightmaps/hexen/MAGEF8.png
-brightmaps/hexen/WRTHE1.png brightmaps/hexen/WRTHE1.png
-brightmaps/hexen/WRTHE2E8.png brightmaps/hexen/WRTHE2E8.png
-brightmaps/hexen/WRTHE3E7.png brightmaps/hexen/WRTHE3E7.png
-brightmaps/hexen/WRTHE4E6.png brightmaps/hexen/WRTHE4E6.png
-brightmaps/hexen/WRTHE5.png brightmaps/hexen/WRTHE5.png
-brightmaps/hexen/WRTHF1.png brightmaps/hexen/WRTHF1.png
-brightmaps/hexen/WRTHF2F8.png brightmaps/hexen/WRTHF2F8.png
-brightmaps/hexen/WRTHF3F7.png brightmaps/hexen/WRTHF3F7.png
-brightmaps/hexen/WRTHF4F6.png brightmaps/hexen/WRTHF4F6.png
-brightmaps/hexen/WRTHF5.png brightmaps/hexen/WRTHF5.png
-brightmaps/hexen/WRTHG1.png brightmaps/hexen/WRTHG1.png
-brightmaps/hexen/WRTHG2G8.png brightmaps/hexen/WRTHG2G8.png
-brightmaps/hexen/WRTHG3G7.png brightmaps/hexen/WRTHG3G7.png
-brightmaps/hexen/WRTHG4G6.png brightmaps/hexen/WRTHG4G6.png
-brightmaps/hexen/WRTHG5.png brightmaps/hexen/WRTHG5.png
-brightmaps/strife/MLDRE1.png brightmaps/strife/MLDRE1.png
-brightmaps/strife/MLDRE2.png brightmaps/strife/MLDRE2.png
-brightmaps/strife/MLDRE3.png brightmaps/strife/MLDRE3.png
-brightmaps/strife/MLDRE4.png brightmaps/strife/MLDRE4.png
-brightmaps/strife/MLDRE5.png brightmaps/strife/MLDRE5.png
-brightmaps/strife/MLDRE6.png brightmaps/strife/MLDRE6.png
-brightmaps/strife/MLDRE7.png brightmaps/strife/MLDRE7.png
-brightmaps/strife/MLDRE8.png brightmaps/strife/MLDRE8.png
-brightmaps/strife/PGRDG1.png brightmaps/strife/PGRDG1.png
-brightmaps/strife/PGRDG2.png brightmaps/strife/PGRDG2.png
-brightmaps/strife/PGRDG3.png brightmaps/strife/PGRDG3.png
-brightmaps/strife/PGRDG4.png brightmaps/strife/PGRDG4.png
-brightmaps/strife/PGRDG5.png brightmaps/strife/PGRDG5.png
-brightmaps/strife/PGRDG6.png brightmaps/strife/PGRDG6.png
-brightmaps/strife/PGRDG7.png brightmaps/strife/PGRDG7.png
-brightmaps/strife/PGRDG8.png brightmaps/strife/PGRDG8.png
-brightmaps/strife/PGRDI0.png brightmaps/strife/PGRDI0.png
-brightmaps/strife/PGRDJ0.png brightmaps/strife/PGRDJ0.png
-brightmaps/strife/PGRDK0.png brightmaps/strife/PGRDK0.png
-brightmaps/strife/PGRDL0.png brightmaps/strife/PGRDL0.png
-brightmaps/strife/PGRDM0.png brightmaps/strife/PGRDM0.png
-brightmaps/strife/PGRDN0.png brightmaps/strife/PGRDN0.png
-brightmaps/strife/PRGRO0.png brightmaps/strife/PRGRO0.png
-brightmaps/strife/RBB3A0.png brightmaps/strife/RBB3A0.png
-brightmaps/strife/RBB3B0.png brightmaps/strife/RBB3B0.png
-brightmaps/strife/ROB1J0.png brightmaps/strife/ROB1J0.png
-brightmaps/strife/ROB1K0.png brightmaps/strife/ROB1K0.png
-brightmaps/strife/ROB1L0.png brightmaps/strife/ROB1L0.png
-brightmaps/strife/ROB1M0.png brightmaps/strife/ROB1M0.png
-brightmaps/strife/ROB1N0.png brightmaps/strife/ROB1N0.png
-brightmaps/strife/ROB1O0.png brightmaps/strife/ROB1O0.png
-brightmaps/strife/ROB1P0.png brightmaps/strife/ROB1P0.png
-brightmaps/strife/ROB2F1.png brightmaps/strife/ROB2F1.png
-brightmaps/strife/ROB2F2.png brightmaps/strife/ROB2F2.png
-brightmaps/strife/ROB2F3.png brightmaps/strife/ROB2F3.png
-brightmaps/strife/ROB2F4.png brightmaps/strife/ROB2F4.png
-brightmaps/strife/ROB2F5.png brightmaps/strife/ROB2F5.png
-brightmaps/strife/ROB2F6.png brightmaps/strife/ROB2F6.png
-brightmaps/strife/ROB2F7.png brightmaps/strife/ROB2F7.png
-brightmaps/strife/ROB2F8.png brightmaps/strife/ROB2F8.png
-brightmaps/strife/ROB2G0.png brightmaps/strife/ROB2G0.png
-brightmaps/strife/ROB2H0.png brightmaps/strife/ROB2H0.png
-brightmaps/strife/ROB2I0.png brightmaps/strife/ROB2I0.png
-brightmaps/strife/ROB2J0.png brightmaps/strife/ROB2J0.png
-brightmaps/strife/ROB2K0.png brightmaps/strife/ROB2K0.png
-brightmaps/strife/ROB2L0.png brightmaps/strife/ROB2L0.png
-brightmaps/strife/ROB2M0.png brightmaps/strife/ROB2M0.png
-brightmaps/strife/ROB2N0.png brightmaps/strife/ROB2N0.png
-brightmaps/strife/ROB2O0.png brightmaps/strife/ROB2O0.png
-brightmaps/strife/ROB3F1.png brightmaps/strife/ROB3F1.png
-brightmaps/strife/ROB3F2.png brightmaps/strife/ROB3F2.png
-brightmaps/strife/ROB3F3.png brightmaps/strife/ROB3F3.png
-brightmaps/strife/ROB3F4.png brightmaps/strife/ROB3F4.png
-brightmaps/strife/ROB3F5.png brightmaps/strife/ROB3F5.png
-brightmaps/strife/ROB3F6.png brightmaps/strife/ROB3F6.png
-brightmaps/strife/ROB3F7.png brightmaps/strife/ROB3F7.png
-brightmaps/strife/ROB3F8.png brightmaps/strife/ROB3F8.png
-brightmaps/strife/ROB3H1.png brightmaps/strife/ROB3H1.png
-brightmaps/strife/ROB3H2.png brightmaps/strife/ROB3H2.png
-brightmaps/strife/ROB3H3.png brightmaps/strife/ROB3H3.png
-brightmaps/strife/ROB3H4.png brightmaps/strife/ROB3H4.png
-brightmaps/strife/ROB3H5.png brightmaps/strife/ROB3H5.png
-brightmaps/strife/ROB3H6.png brightmaps/strife/ROB3H6.png
-brightmaps/strife/ROB3H7.png brightmaps/strife/ROB3H7.png
-brightmaps/strife/ROB3H8.png brightmaps/strife/ROB3H8.png
-brightmaps/strife/ROB3I1.png brightmaps/strife/ROB3I1.png
-brightmaps/strife/ROB3I2.png brightmaps/strife/ROB3I2.png
-brightmaps/strife/ROB3I3.png brightmaps/strife/ROB3I3.png
-brightmaps/strife/ROB3I4.png brightmaps/strife/ROB3I4.png
-brightmaps/strife/ROB3I5.png brightmaps/strife/ROB3I5.png
-brightmaps/strife/ROB3I6.png brightmaps/strife/ROB3I6.png
-brightmaps/strife/ROB3I7.png brightmaps/strife/ROB3I7.png
-brightmaps/strife/ROB3I8.png brightmaps/strife/ROB3I8.png
-brightmaps/strife/ROB3J1.png brightmaps/strife/ROB3J1.png
-brightmaps/strife/ROB3J2.png brightmaps/strife/ROB3J2.png
-brightmaps/strife/ROB3J3.png brightmaps/strife/ROB3J3.png
-brightmaps/strife/ROB3J4.png brightmaps/strife/ROB3J4.png
-brightmaps/strife/ROB3J6.png brightmaps/strife/ROB3J6.png
-brightmaps/strife/ROB3J7.png brightmaps/strife/ROB3J7.png
-brightmaps/strife/ROB3J8.png brightmaps/strife/ROB3J8.png
-brightmaps/strife/ROB3M0.png brightmaps/strife/ROB3M0.png
-brightmaps/strife/ROB3N0.png brightmaps/strife/ROB3N0.png
-brightmaps/strife/ROB3O0.png brightmaps/strife/ROB3O0.png
-brightmaps/strife/ROB3P0.png brightmaps/strife/ROB3P0.png
-brightmaps/strife/ROB3Q0.png brightmaps/strife/ROB3Q0.png
-brightmaps/strife/ROB3T0.png brightmaps/strife/ROB3T0.png
-brightmaps/strife/ROB3U0.png brightmaps/strife/ROB3U0.png
-brightmaps/strife/ROB3V0.png brightmaps/strife/ROB3V0.png
-brightmaps/strife/ROB3W0.png brightmaps/strife/ROB3W0.png
-brightmaps/strife/ROB3X0.png brightmaps/strife/ROB3X0.png
-brightmaps/strife/ROB3Y0.png brightmaps/strife/ROB3Y0.png
-brightmaps/strife/ROB3Z0.png brightmaps/strife/ROB3Z0.png
-brightmaps/strife/ROB3[0.png brightmaps/strife/ROB3[0.png
-brightmaps/strife/ROB3]0.png brightmaps/strife/ROB3]0.png
-brightmaps/strife/ROB3^0.png brightmaps/strife/ROB3^0.png
-brightmaps/strife/SEWRH0.png brightmaps/strife/SEWRH0.png
-brightmaps/strife/STLKP0.png brightmaps/strife/STLKP0.png
-brightmaps/strife/STLKQ0.png brightmaps/strife/STLKQ0.png
-brightmaps/strife/STLKR0.png brightmaps/strife/STLKR0.png
-brightmaps/strife/STLKS0.png brightmaps/strife/STLKS0.png
-brightmaps/strife/STLKT0.png brightmaps/strife/STLKT0.png
-brightmaps/strife/STLKU0.png brightmaps/strife/STLKU0.png
-brightmaps/strife/STLKV0.png brightmaps/strife/STLKV0.png
-brightmaps/strife/STLKW0.png brightmaps/strife/STLKW0.png
-brightmaps/strife/STLKX0.png brightmaps/strife/STLKX0.png
-brightmaps/strife/STLKY0.png brightmaps/strife/STLKY0.png
-brightmaps/strife/STLKZ0.png brightmaps/strife/STLKZ0.png
-brightmaps/strife/STLK[0.png brightmaps/strife/STLK[0.png
diff --git a/wadsrc_lights/Makefile b/wadsrc_lights/Makefile
deleted file mode 100644
index 6ddab13e..00000000
--- a/wadsrc_lights/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# NMAKE doesn't know how to handle executables that use forward slashes in
-# their paths, but it can handle forward slashes in dependencies. Heh.
-# The wadsrc project file redefines MAKEWAD using backslashes instead. It
-# also defines NOLOGO, so you don't need to see NMAKE's banner.
-#
-# Summary: If you use Visual C++, the provided project file is set up to
-# build the wad correctly with nmake. If you use GCC, then "make" is
-# sufficient to build the wad.
-
-RM=rm -f
-SLASH=/
-MAKEWAD=..$(SLASH)tools$(SLASH)makewad$(SLASH)makewad
-
-makethewad: wadmake Makefile2
- $(MAKE) $(NOLOGO) -f Makefile2
-
-wadmake: zdoom.lst
- $(MAKEWAD) -make wadmake zdoom.lst
-
-clean:
- $(RM) wadmake lights.pk3
-
-# This target is for Visual C++'s Rebuild All command
-nrebuild: clean
- $(MAKE) NOLOGO=$(NOLOGO) SLASH=$(SLASH)
- copy lights.pk3 ..\..
-
-# Copy the wad to my testing area
-andcopy: makethewad
- copy lights.pk3 ..\..
diff --git a/wadsrc_lights/Makefile.mgw b/wadsrc_lights/Makefile.mgw
deleted file mode 100644
index bcd27852..00000000
--- a/wadsrc_lights/Makefile.mgw
+++ /dev/null
@@ -1,18 +0,0 @@
-MAKEWAD=../tools/makewad/makewad
-
-ifneq ($(MAKECMDGOALS),clean)
-include Makefile2
-endif
-
-wadmake: zdoom.lst $(MAKEWAD).exe
- $(MAKEWAD) -make wadmake zdoom.lst
-
-clean:
-ifeq (msys,$(OSTYPE))
- rm -f wadmake lights.pk3
-else
- del /q /f wadmake lights.pk3 2>nul
-endif
-
-../tools/makewad/makewad.exe:
- $(MAKE) -C ../tools/makewad -f Makefile
diff --git a/wadsrc_lights/Makefile2 b/wadsrc_lights/Makefile2
deleted file mode 100644
index 82d1cf51..00000000
--- a/wadsrc_lights/Makefile2
+++ /dev/null
@@ -1,2 +0,0 @@
-include wadmake
-
diff --git a/wadsrc_lights/lights.vcproj b/wadsrc_lights/lights.vcproj
index fd7605de..3dd241d9 100644
--- a/wadsrc_lights/lights.vcproj
+++ b/wadsrc_lights/lights.vcproj
@@ -2,9 +2,9 @@
@@ -22,84 +22,88 @@
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
- ConfigurationType="0"
+ ConfigurationType="10"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
>
+
+
+
+
+
+
+
+
+
+
+
+
@@ -107,31 +111,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/wadsrc_lights/DOOMDEFS.txt b/wadsrc_lights/static/doomdefs.txt
similarity index 100%
rename from wadsrc_lights/DOOMDEFS.txt
rename to wadsrc_lights/static/doomdefs.txt
diff --git a/wadsrc_lights/HEXNDEFS.txt b/wadsrc_lights/static/hexndefs.txt
similarity index 100%
rename from wadsrc_lights/HEXNDEFS.txt
rename to wadsrc_lights/static/hexndefs.txt
diff --git a/wadsrc_lights/HTICDEFS.txt b/wadsrc_lights/static/hticdefs.txt
similarity index 100%
rename from wadsrc_lights/HTICDEFS.txt
rename to wadsrc_lights/static/hticdefs.txt
diff --git a/wadsrc_lights/STRFDEFS.txt b/wadsrc_lights/static/strfdefs.txt
similarity index 100%
rename from wadsrc_lights/STRFDEFS.txt
rename to wadsrc_lights/static/strfdefs.txt
diff --git a/wadsrc_lights/zdoom.lst b/wadsrc_lights/zdoom.lst
deleted file mode 100644
index d92d5fd7..00000000
--- a/wadsrc_lights/zdoom.lst
+++ /dev/null
@@ -1,6 +0,0 @@
-@lights.pk3
-
-doomdefs.txt DOOMDEFS.txt
-hticdefs.txt HTICDEFS.txt
-hexndefs.txt HEXNDEFS.txt
-strfdefs.txt STRFDEFS.txt
diff --git a/zlib/zlib.vcproj b/zlib/zlib.vcproj
index 6cbc863f..840c6e64 100644
--- a/zlib/zlib.vcproj
+++ b/zlib/zlib.vcproj
@@ -1,7 +1,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+