This commit is contained in:
Christoph Oelckers 2015-04-04 10:32:23 +02:00
commit 5f2f11a43b
190 changed files with 4172 additions and 3634 deletions

View file

@ -871,6 +871,7 @@ add_executable( zdoom WIN32 MACOSX_BUNDLE
f_wipe.cpp f_wipe.cpp
farchive.cpp farchive.cpp
files.cpp files.cpp
g_doomedmap.cpp
g_game.cpp g_game.cpp
g_hub.cpp g_hub.cpp
g_level.cpp g_level.cpp

View file

@ -253,7 +253,7 @@ void FIWadManager::ParseIWadInfo(const char *fn, const char *data, int datasize)
//========================================================================== //==========================================================================
// //
// Lool for IWAD definition lump // Look for IWAD definition lump
// //
//========================================================================== //==========================================================================
@ -302,11 +302,11 @@ int FIWadManager::ScanIWAD (const char *iwad)
FResourceLump *lump = iwadfile->GetLump(ii); FResourceLump *lump = iwadfile->GetLump(ii);
CheckLumpName(lump->Name); CheckLumpName(lump->Name);
if (lump->FullName != NULL) if (lump->FullName.IsNotEmpty())
{ {
if (strnicmp(lump->FullName, "maps/", 5) == 0) if (strnicmp(lump->FullName, "maps/", 5) == 0)
{ {
FString mapname(lump->FullName+5, strcspn(lump->FullName+5, ".")); FString mapname(&lump->FullName[5], strcspn(&lump->FullName[5], "."));
CheckLumpName(mapname); CheckLumpName(mapname);
} }
} }

View file

@ -1992,6 +1992,9 @@ static void D_DoomInit()
static void AddAutoloadFiles(const char *group, const char *autoname) static void AddAutoloadFiles(const char *group, const char *autoname)
{ {
LumpFilterGroup = group;
LumpFilterIWAD = autoname;
if (!(gameinfo.flags & GI_SHAREWARE) && !Args->CheckParm("-noautoload")) if (!(gameinfo.flags & GI_SHAREWARE) && !Args->CheckParm("-noautoload"))
{ {
FString file; FString file;
@ -2440,6 +2443,8 @@ void D_DoomMain (void)
// Create replacements for dehacked pickups // Create replacements for dehacked pickups
FinishDehPatch(); FinishDehPatch();
InitActorNumsFromMapinfo();
InitSpawnablesFromMapinfo();
FActorInfo::StaticSetActorNums (); FActorInfo::StaticSetActorNums ();
//Added by MC: //Added by MC:

View file

@ -429,10 +429,10 @@ struct FPlayerStart
short angle, type; short angle, type;
FPlayerStart() { } FPlayerStart() { }
FPlayerStart(const FMapThing *mthing) FPlayerStart(const FMapThing *mthing, int pnum)
: x(mthing->x), y(mthing->y), z(mthing->z), : x(mthing->x), y(mthing->y), z(mthing->z),
angle(mthing->angle), angle(mthing->angle),
type(mthing->type) type(pnum)
{ } { }
}; };
// Player spawn spots for deathmatch. // Player spawn spots for deathmatch.

View file

@ -69,3 +69,4 @@ int SinglePlayerClass[MAXPLAYERS];
bool ToggleFullscreen; bool ToggleFullscreen;
int BorderTopRefresh; int BorderTopRefresh;
FString LumpFilterGroup, LumpFilterIWAD;

View file

@ -250,4 +250,7 @@ EXTERN_CVAR (Int, compatflags);
EXTERN_CVAR (Int, compatflags2); EXTERN_CVAR (Int, compatflags2);
extern int i_compatflags, i_compatflags2, ii_compatflags, ii_compatflags2, ib_compatflags; extern int i_compatflags, i_compatflags2, ii_compatflags, ii_compatflags2, ib_compatflags;
// Filters from AddAutoloadFiles(). Used to filter files from archives.
extern FString LumpFilterGroup, LumpFilterIWAD;
#endif #endif

264
src/g_doomedmap.cpp Normal file
View file

@ -0,0 +1,264 @@
/*
** g_doomedmap.cpp
**
**---------------------------------------------------------------------------
** Copyright 1998-2015 Randy Heit
** Copyright 2015 Christoph Oelckers
** 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.
**---------------------------------------------------------------------------
**
**
*/
#include "info.h"
#include "p_lnspec.h"
#include "m_fixed.h"
#include "c_dispatch.h"
#include "templates.h"
#include "cmdlib.h"
#include "g_level.h"
#include "v_text.h"
#include "i_system.h"
const char *SpecialMapthingNames[] = {
"$PLAYER1START",
"$PLAYER2START",
"$PLAYER3START",
"$PLAYER4START",
"$PLAYER5START",
"$PLAYER6START",
"$PLAYER7START",
"$PLAYER8START",
"$DEATHMATCHSTART",
"$SSEQOVERRIDE",
"$POLYANCHOR",
"$POLYSPAWN",
"$POLYSPAWNCRUSH",
"$POLYSPAWNHURT"
};
//==========================================================================
//
// Stuff that's only valid during definition time
//
//==========================================================================
struct MapinfoEdMapItem
{
FName classname; // DECORATE is read after MAPINFO so we do not have the actual classes available here yet.
int special;
int args[5];
// These are for error reporting. We must store the file information because it's no longer available when these items get resolved.
FString filename;
int linenum;
};
typedef TMap<int, MapinfoEdMapItem> IdMap;
static IdMap DoomEdFromMapinfo;
//==========================================================================
//
//
//==========================================================================
FDoomEdMap DoomEdMap;
static int STACK_ARGS sortnums (const void *a, const void *b)
{
return (*(const FDoomEdMap::Pair**)a)->Key - (*(const FDoomEdMap::Pair**)b)->Key;
}
CCMD (dumpmapthings)
{
TArray<FDoomEdMap::Pair*> infos(DoomEdMap.CountUsed());
FDoomEdMap::Iterator it(DoomEdMap);
FDoomEdMap::Pair *pair;
while (it.NextPair(pair))
{
infos.Push(pair);
}
if (infos.Size () == 0)
{
Printf ("No map things registered\n");
}
else
{
qsort (&infos[0], infos.Size (), sizeof(FDoomEdMap::Pair*), sortnums);
for (unsigned i = 0; i < infos.Size (); ++i)
{
if (infos[i]->Value.Type != NULL)
{
Printf("%6d %s\n", infos[i]->Key, infos[i]->Value.Type->TypeName.GetChars());
}
else if (infos[i]->Value.Special > 0)
{
Printf("%6d %s\n", infos[i]->Key, SpecialMapthingNames[infos[i]->Value.Special - 1]);
}
else
{
Printf("%6d none", infos[i]->Key);
}
}
}
}
void FMapInfoParser::ParseDoomEdNums()
{
TMap<int, bool> defined;
int error = 0;
MapinfoEdMapItem editem;
editem.filename = sc.ScriptName;
ParseOpenBrace();
while (true)
{
if (sc.CheckString("}")) return;
else if (sc.CheckNumber())
{
int ednum = sc.Number;
sc.MustGetStringName("=");
sc.MustGetString();
bool *def = defined.CheckKey(ednum);
if (def != NULL)
{
sc.ScriptMessage("Editor Number %d defined more than once", ednum);
error++;
}
defined[ednum] = true;
if (sc.String[0] == '$')
{
// todo: add special stuff like playerstarts and sound sequence overrides here, too.
editem.classname = NAME_None;
editem.special = sc.MustMatchString(SpecialMapthingNames) + 1; // todo: assign proper constants
}
else
{
editem.classname = sc.String;
editem.special = -1;
}
memset(editem.args, 0, sizeof(editem.args));
int minargs = 0;
int maxargs = 5;
FString specialname;
if (sc.CheckString(","))
{
// todo: parse a special or args
if (editem.special < 0) editem.special = 0; // mark args as used - if this is done we need to prevent assignment of map args in P_SpawnMapThing.
if (!sc.CheckNumber())
{
sc.MustGetString();
specialname = sc.String; // save for later error reporting.
editem.special = P_FindLineSpecial(sc.String, &minargs, &maxargs);
if (editem.special == 0 || minargs == -1)
{
sc.ScriptMessage("Invalid special %s for Editor Number %d", sc.String, ednum);
error++;
minargs = 0;
maxargs = 5;
}
if (!sc.CheckString(","))
{
// special case: Special without arguments
if (minargs != 0)
{
sc.ScriptMessage("Incorrect number of args for special %s, min = %d, max = %d, found = 0", specialname.GetChars(), minargs, maxargs);
error++;
}
DoomEdFromMapinfo.Insert(ednum, editem);
continue;
}
sc.MustGetStringName(",");
sc.MustGetNumber();
}
int i = 0;
while (i < 5)
{
editem.args[i++] = sc.Number;
i++;
if (!sc.CheckString(",")) break;
sc.MustGetNumber();
}
if (specialname.IsNotEmpty() && (i < minargs || i > maxargs))
{
sc.ScriptMessage("Incorrect number of args for special %s, min = %d, max = %d, found = %d", specialname.GetChars(), minargs, maxargs, i);
error++;
}
}
DoomEdFromMapinfo.Insert(ednum, editem);
}
else
{
sc.ScriptError("Number expected");
}
}
if (error > 0)
{
sc.ScriptError("%d errors encountered in DoomEdNum definition");
}
}
void InitActorNumsFromMapinfo()
{
DoomEdMap.Clear();
IdMap::Iterator it(DoomEdFromMapinfo);
IdMap::Pair *pair;
int error = 0;
while (it.NextPair(pair))
{
const PClass *cls = NULL;
if (pair->Value.classname != NAME_None)
{
cls = PClass::FindClass(pair->Value.classname);
if (cls == NULL)
{
Printf(TEXTCOLOR_RED "Script error, \"%s\" line %d:\nUnknown actor class %s\n",
pair->Value.filename.GetChars(), pair->Value.linenum, pair->Value.classname.GetChars());
error++;
}
}
FDoomEdEntry ent;
ent.Type = cls;
ent.Special = pair->Value.special;
memcpy(ent.Args, pair->Value.args, sizeof(ent.Args));
DoomEdMap.Insert(pair->Key, ent);
}
if (error > 0)
{
I_Error("%d unknown actor classes found", error);
}
DoomEdFromMapinfo.Clear(); // we do not need this any longer
}

View file

@ -104,6 +104,8 @@ struct FMapInfoParser
void ParseIntermissionAction(FIntermissionDescriptor *Desc); void ParseIntermissionAction(FIntermissionDescriptor *Desc);
void ParseIntermission(); void ParseIntermission();
void ParseDoomEdNums();
void ParseSpawnNums();
void ParseAMColors(bool); void ParseAMColors(bool);
FName CheckEndSequence(); FName CheckEndSequence();
FName ParseEndGame(); FName ParseEndGame();

View file

@ -1876,6 +1876,30 @@ void FMapInfoParser::ParseMapInfo (int lump, level_info_t &gamedefaults, level_i
sc.ScriptError("intermission definitions not supported with old MAPINFO syntax"); sc.ScriptError("intermission definitions not supported with old MAPINFO syntax");
} }
} }
else if (sc.Compare("doomednums"))
{
if (format_type != FMT_Old)
{
format_type = FMT_New;
ParseDoomEdNums();
}
else
{
sc.ScriptError("doomednums definitions not supported with old MAPINFO syntax");
}
}
else if (sc.Compare("spawnnums"))
{
if (format_type != FMT_Old)
{
format_type = FMT_New;
ParseSpawnNums();
}
else
{
sc.ScriptError("spawnnums definitions not supported with old MAPINFO syntax");
}
}
else if (sc.Compare("automap") || sc.Compare("automap_overlay")) else if (sc.Compare("automap") || sc.Compare("automap_overlay"))
{ {
if (format_type != FMT_Old) if (format_type != FMT_Old)

View file

@ -335,7 +335,6 @@ void FMapInfoParser::ParseGameInfo()
GAMEINFOKEY_INT(defaultrespawntime, "defaultrespawntime") GAMEINFOKEY_INT(defaultrespawntime, "defaultrespawntime")
GAMEINFOKEY_INT(defaultdropstyle, "defaultdropstyle") GAMEINFOKEY_INT(defaultdropstyle, "defaultdropstyle")
GAMEINFOKEY_STRING(Endoom, "endoom") GAMEINFOKEY_STRING(Endoom, "endoom")
GAMEINFOKEY_INT(player5start, "player5start")
GAMEINFOKEY_STRINGARRAY(quitmessages, "addquitmessages", 0, false) GAMEINFOKEY_STRINGARRAY(quitmessages, "addquitmessages", 0, false)
GAMEINFOKEY_STRINGARRAY(quitmessages, "quitmessages", 0, true) GAMEINFOKEY_STRINGARRAY(quitmessages, "quitmessages", 0, true)
GAMEINFOKEY_STRING(mTitleColor, "menufontcolor_title") GAMEINFOKEY_STRING(mTitleColor, "menufontcolor_title")

View file

@ -153,7 +153,6 @@ struct gameinfo_t
int definventorymaxamount; int definventorymaxamount;
int defaultrespawntime; int defaultrespawntime;
int defaultdropstyle; int defaultdropstyle;
int player5start;
DWORD pickupcolor; DWORD pickupcolor;
TArray<FString> quitmessages; TArray<FString> quitmessages;
FName mTitleColor; FName mTitleColor;

View file

@ -141,9 +141,6 @@ void FActorInfo::StaticInit ()
void FActorInfo::StaticSetActorNums () void FActorInfo::StaticSetActorNums ()
{ {
SpawnableThings.Clear();
DoomEdMap.Empty ();
for (unsigned int i = 0; i < PClass::m_RuntimeActors.Size(); ++i) for (unsigned int i = 0; i < PClass::m_RuntimeActors.Size(); ++i)
{ {
PClass::m_RuntimeActors[i]->ActorInfo->RegisterIDs (); PClass::m_RuntimeActors[i]->ActorInfo->RegisterIDs ();
@ -171,7 +168,16 @@ void FActorInfo::RegisterIDs ()
} }
if (DoomEdNum != -1) if (DoomEdNum != -1)
{ {
DoomEdMap.AddType (DoomEdNum, cls); FDoomEdEntry *oldent = DoomEdMap.CheckKey(DoomEdNum);
if (oldent != NULL && oldent->Special == -2)
{
Printf(TEXTCOLOR_RED"Editor number %d defined twice for classes '%s' and '%s'\n", DoomEdNum, cls->TypeName.GetChars(), oldent->Type->TypeName.GetChars());
}
FDoomEdEntry ent;
memset(&ent, 0, sizeof(ent));
ent.Type = cls;
ent.Special = -2; // use -2 instead of -1 so that we can recognize DECORATE defined entries and print a warning message if duplicates occur.
DoomEdMap.Insert(DoomEdNum, ent);
if (cls != Class) if (cls != Class)
{ {
Printf(TEXTCOLOR_RED"Editor number %d refers to hidden class type '%s'\n", DoomEdNum, cls->TypeName.GetChars()); Printf(TEXTCOLOR_RED"Editor number %d refers to hidden class type '%s'\n", DoomEdNum, cls->TypeName.GetChars());
@ -179,15 +185,6 @@ void FActorInfo::RegisterIDs ()
} }
} }
// Fill out the list for Chex Quest with Doom's actors // Fill out the list for Chex Quest with Doom's actors
if (gameinfo.gametype == GAME_Chex && DoomEdMap.FindType(DoomEdNum) == NULL &&
(GameFilter & GAME_Doom))
{
DoomEdMap.AddType (DoomEdNum, Class, true);
if (cls != Class)
{
Printf(TEXTCOLOR_RED"Editor number %d refers to hidden class type '%s'\n", DoomEdNum, cls->TypeName.GetChars());
}
}
} }
//========================================================================== //==========================================================================
@ -389,139 +386,6 @@ fixed_t *DmgFactors::CheckFactor(FName type)
return pdf; return pdf;
} }
//==========================================================================
//
//
//==========================================================================
FDoomEdMap DoomEdMap;
FDoomEdMap::FDoomEdEntry *FDoomEdMap::DoomEdHash[DOOMED_HASHSIZE];
FDoomEdMap::~FDoomEdMap()
{
Empty();
}
void FDoomEdMap::AddType (int doomednum, const PClass *type, bool temporary)
{
unsigned int hash = (unsigned int)doomednum % DOOMED_HASHSIZE;
FDoomEdEntry *entry = DoomEdHash[hash];
while (entry && entry->DoomEdNum != doomednum)
{
entry = entry->HashNext;
}
if (entry == NULL)
{
entry = new FDoomEdEntry;
entry->HashNext = DoomEdHash[hash];
entry->DoomEdNum = doomednum;
DoomEdHash[hash] = entry;
}
else if (!entry->temp)
{
Printf (PRINT_BOLD, "Warning: %s and %s both have doomednum %d.\n",
type->TypeName.GetChars(), entry->Type->TypeName.GetChars(), doomednum);
}
entry->temp = temporary;
entry->Type = type;
}
void FDoomEdMap::DelType (int doomednum)
{
unsigned int hash = (unsigned int)doomednum % DOOMED_HASHSIZE;
FDoomEdEntry **prev = &DoomEdHash[hash];
FDoomEdEntry *entry = *prev;
while (entry && entry->DoomEdNum != doomednum)
{
prev = &entry->HashNext;
entry = entry->HashNext;
}
if (entry != NULL)
{
*prev = entry->HashNext;
delete entry;
}
}
void FDoomEdMap::Empty ()
{
int bucket;
for (bucket = 0; bucket < DOOMED_HASHSIZE; ++bucket)
{
FDoomEdEntry *probe = DoomEdHash[bucket];
while (probe != NULL)
{
FDoomEdEntry *next = probe->HashNext;
delete probe;
probe = next;
}
DoomEdHash[bucket] = NULL;
}
}
const PClass *FDoomEdMap::FindType (int doomednum) const
{
unsigned int hash = (unsigned int)doomednum % DOOMED_HASHSIZE;
FDoomEdEntry *entry = DoomEdHash[hash];
while (entry && entry->DoomEdNum != doomednum)
entry = entry->HashNext;
return entry ? entry->Type : NULL;
}
struct EdSorting
{
const PClass *Type;
int DoomEdNum;
};
static int STACK_ARGS sortnums (const void *a, const void *b)
{
return ((const EdSorting *)a)->DoomEdNum -
((const EdSorting *)b)->DoomEdNum;
}
void FDoomEdMap::DumpMapThings ()
{
TArray<EdSorting> infos (PClass::m_Types.Size());
int i;
for (i = 0; i < DOOMED_HASHSIZE; ++i)
{
FDoomEdEntry *probe = DoomEdHash[i];
while (probe != NULL)
{
EdSorting sorting = { probe->Type, probe->DoomEdNum };
infos.Push (sorting);
probe = probe->HashNext;
}
}
if (infos.Size () == 0)
{
Printf ("No map things registered\n");
}
else
{
qsort (&infos[0], infos.Size (), sizeof(EdSorting), sortnums);
for (i = 0; i < (int)infos.Size (); ++i)
{
Printf ("%6d %s\n",
infos[i].DoomEdNum, infos[i].Type->TypeName.GetChars());
}
}
}
CCMD (dumpmapthings)
{
FDoomEdMap::DumpMapThings ();
}
static void SummonActor (int command, int command2, FCommandLine argv) static void SummonActor (int command, int command2, FCommandLine argv)
{ {
if (CheckCheatmode ()) if (CheckCheatmode ())

View file

@ -278,34 +278,39 @@ struct FActorInfo
TArray<const PClass *> ForbiddenToPlayerClass; TArray<const PClass *> ForbiddenToPlayerClass;
}; };
class FDoomEdMap struct FDoomEdEntry
{ {
public:
~FDoomEdMap();
const PClass *FindType (int doomednum) const;
void AddType (int doomednum, const PClass *type, bool temporary = false);
void DelType (int doomednum);
void Empty ();
static void DumpMapThings ();
private:
enum { DOOMED_HASHSIZE = 256 };
struct FDoomEdEntry
{
FDoomEdEntry *HashNext;
const PClass *Type; const PClass *Type;
int DoomEdNum; int Special;
bool temp; int Args[5];
};
static FDoomEdEntry *DoomEdHash[DOOMED_HASHSIZE];
}; };
enum ESpecialMapthings
{
SMT_PLAYER1START = 1,
SMT_PLAYER2START,
SMT_PLAYER3START,
SMT_PLAYER4START,
SMT_PLAYER5START,
SMT_PLAYER6START,
SMT_PLAYER7START,
SMT_PLAYER8START,
SMT_DEATHMATCHSTART,
SMT_SSEQOVERRIDE,
SMT_POLYANCHOR,
SMT_POLYSPAWN,
SMT_POLYSPAWNCRUSH,
SMT_POLYSPAWNHURT,
};
typedef TMap<int, FDoomEdEntry> FDoomEdMap;
extern FDoomEdMap DoomEdMap; extern FDoomEdMap DoomEdMap;
void InitActorNumsFromMapinfo();
int GetSpriteIndex(const char * spritename, bool add = true); int GetSpriteIndex(const char * spritename, bool add = true);
TArray<FName> &MakeStateNameList(const char * fname); TArray<FName> &MakeStateNameList(const char * fname);
void AddStateLight(FState *state, const char *lname); void AddStateLight(FState *state, const char *lname);

View file

@ -723,7 +723,7 @@ static int LoadSprites (spritetype *sprites, Xsprite *xsprites, int numsprites,
if (xsprites[i].Data1 < 4) if (xsprites[i].Data1 < 4)
mapthings[count].type = 1 + xsprites[i].Data1; mapthings[count].type = 1 + xsprites[i].Data1;
else else
mapthings[count].type = gameinfo.player5start + xsprites[i].Data1 - 4; mapthings[count].type = 4001 + xsprites[i].Data1 - 4;
} }
else if (xsprites != NULL && sprites[i].lotag == 2) else if (xsprites != NULL && sprites[i].lotag == 2)
{ // Bloodbath start { // Bloodbath start

View file

@ -174,6 +174,7 @@ void P_RemoveThing(AActor * actor);
bool P_Thing_Raise(AActor *thing, AActor *raiser); bool P_Thing_Raise(AActor *thing, AActor *raiser);
bool P_Thing_CanRaise(AActor *thing); bool P_Thing_CanRaise(AActor *thing);
const PClass *P_GetSpawnableType(int spawnnum); const PClass *P_GetSpawnableType(int spawnnum);
void InitSpawnablesFromMapinfo();
// //
// P_MAPUTL // P_MAPUTL
@ -591,19 +592,6 @@ struct polyspawns_t
short type; short type;
}; };
enum
{
PO_HEX_ANCHOR_TYPE = 3000,
PO_HEX_SPAWN_TYPE,
PO_HEX_SPAWNCRUSH_TYPE,
// [RH] Thing numbers that don't conflict with Doom things
PO_ANCHOR_TYPE = 9300,
PO_SPAWN_TYPE,
PO_SPAWNCRUSH_TYPE,
PO_SPAWNHURT_TYPE
};
extern int po_NumPolyobjs; extern int po_NumPolyobjs;
extern polyspawns_t *polyspawns; // [RH] list of polyobject things to spawn extern polyspawns_t *polyspawns; // [RH] list of polyobject things to spawn

View file

@ -4600,67 +4600,80 @@ AActor *P_SpawnMapThing (FMapThing *mthing, int position)
if (mthing->type == 0 || mthing->type == -1) if (mthing->type == 0 || mthing->type == -1)
return NULL; return NULL;
// count deathmatch start positions // find which type to spawn
if (mthing->type == 11) FDoomEdEntry *mentry = DoomEdMap.CheckKey(mthing->type);
if (mentry == NULL)
{ {
FPlayerStart start(mthing); // [RH] Don't die if the map tries to spawn an unknown thing
Printf ("Unknown type %i at (%i, %i)\n",
mthing->type,
mthing->x>>FRACBITS, mthing->y>>FRACBITS);
mentry = DoomEdMap.CheckKey(0);
if (mentry == NULL) // we need a valid entry for the rest of this function so if we can't find a default, let's exit right away.
{
return NULL;
}
}
if (mentry->Type == NULL && mentry->Special <= 0)
{
// has been explicitly set to not spawning anything.
return NULL;
}
// copy args to mapthing so that we have them in one place for the rest of this function
if (mentry->Special >= 0)
{
mthing->special = mentry->Special;
memcpy(mthing->args, mentry->Args, sizeof(mthing->args));
}
int pnum = -1;
if (mentry->Type == NULL)
{
switch (mentry->Special)
{
case SMT_DEATHMATCHSTART:
{
// count deathmatch start positions
FPlayerStart start(mthing, 0);
deathmatchstarts.Push(start); deathmatchstarts.Push(start);
return NULL; return NULL;
} }
// Convert Strife starts to Hexen-style starts case SMT_POLYANCHOR:
if (gameinfo.gametype == GAME_Strife && mthing->type >= 118 && mthing->type <= 127) case SMT_POLYSPAWN:
{ case SMT_POLYSPAWNCRUSH:
mthing->args[0] = mthing->type - 117; case SMT_POLYSPAWNHURT:
mthing->type = 1;
}
// [RH] Record polyobject-related things
if (gameinfo.gametype == GAME_Hexen)
{
switch (mthing->type)
{
case PO_HEX_ANCHOR_TYPE:
mthing->type = PO_ANCHOR_TYPE;
break;
case PO_HEX_SPAWN_TYPE:
mthing->type = PO_SPAWN_TYPE;
break;
case PO_HEX_SPAWNCRUSH_TYPE:
mthing->type = PO_SPAWNCRUSH_TYPE;
break;
}
}
if (mthing->type == PO_ANCHOR_TYPE ||
mthing->type == PO_SPAWN_TYPE ||
mthing->type == PO_SPAWNCRUSH_TYPE ||
mthing->type == PO_SPAWNHURT_TYPE)
{ {
polyspawns_t *polyspawn = new polyspawns_t; polyspawns_t *polyspawn = new polyspawns_t;
polyspawn->next = polyspawns; polyspawn->next = polyspawns;
polyspawn->x = mthing->x; polyspawn->x = mthing->x;
polyspawn->y = mthing->y; polyspawn->y = mthing->y;
polyspawn->angle = mthing->angle; polyspawn->angle = mthing->angle;
polyspawn->type = mthing->type; polyspawn->type = mentry->Special;
polyspawns = polyspawn; polyspawns = polyspawn;
if (mthing->type != PO_ANCHOR_TYPE) if (mentry->Special != SMT_POLYANCHOR)
po_NumPolyobjs++; po_NumPolyobjs++;
return NULL; return NULL;
} }
// check for players specially case SMT_PLAYER1START:
int pnum = -1; case SMT_PLAYER2START:
case SMT_PLAYER3START:
case SMT_PLAYER4START:
case SMT_PLAYER5START:
case SMT_PLAYER6START:
case SMT_PLAYER7START:
case SMT_PLAYER8START:
pnum = mentry->Special - SMT_PLAYER1START;
break;
// Sound sequence override will be handled later
default:
break;
if (mthing->type <= 4 && mthing->type > 0)
{
pnum = mthing->type - 1;
}
else
{
if (mthing->type >= gameinfo.player5start && mthing->type < gameinfo.player5start + MAXPLAYERS - 4)
{
pnum = mthing->type - gameinfo.player5start + 4;
} }
} }
@ -4728,7 +4741,7 @@ AActor *P_SpawnMapThing (FMapThing *mthing, int position)
return NULL; return NULL;
// save spots for respawning in network games // save spots for respawning in network games
FPlayerStart start(mthing); FPlayerStart start(mthing, pnum+1);
playerstarts[pnum] = start; playerstarts[pnum] = start;
AllPlayerStarts.Push(start); AllPlayerStarts.Push(start);
if (!deathmatch && !(level.flags2 & LEVEL2_RANDOMPLAYERSTARTS)) if (!deathmatch && !(level.flags2 & LEVEL2_RANDOMPLAYERSTARTS))
@ -4739,20 +4752,10 @@ AActor *P_SpawnMapThing (FMapThing *mthing, int position)
} }
// [RH] sound sequence overriders // [RH] sound sequence overriders
if (mthing->type >= 1400 && mthing->type < 1410) if (mentry->Type == NULL && mentry->Special == SMT_SSEQOVERRIDE)
{ {
P_PointInSector (mthing->x, mthing->y)->seqType = mthing->type - 1400; int type = mentry->Args[0];
return NULL; if (type == 255) type = -1;
}
else if (mthing->type == 1411)
{
int type;
if (mthing->args[0] == 255)
type = -1;
else
type = mthing->args[0];
if (type > 63) if (type > 63)
{ {
Printf ("Sound sequence %d out of range\n", type); Printf ("Sound sequence %d out of range\n", type);
@ -4764,36 +4767,11 @@ AActor *P_SpawnMapThing (FMapThing *mthing, int position)
return NULL; return NULL;
} }
// [RH] Determine if it is an old ambient thing, and if so,
// map it to MT_AMBIENT with the proper parameter.
if (mthing->type >= 14001 && mthing->type <= 14064)
{
mthing->args[0] = mthing->type - 14000;
mthing->type = 14065;
}
else if (mthing->type >= 14101 && mthing->type <= 14164)
{
mthing->args[0] = mthing->type - 14100;
mthing->type = 14165;
}
// find which type to spawn
i = DoomEdMap.FindType (mthing->type);
if (i == NULL)
{
// [RH] Don't die if the map tries to spawn an unknown thing
Printf ("Unknown type %i at (%i, %i)\n",
mthing->type,
mthing->x>>FRACBITS, mthing->y>>FRACBITS);
i = PClass::FindClass("Unknown");
}
// [RH] If the thing's corresponding sprite has no frames, also map // [RH] If the thing's corresponding sprite has no frames, also map
// it to the unknown thing. // it to the unknown thing.
else
{
// Handle decorate replacements explicitly here // Handle decorate replacements explicitly here
// to check for missing frames in the replacement object. // to check for missing frames in the replacement object.
i = i->GetReplacement(); i = mentry->Type->GetReplacement();
const AActor *defaults = GetDefaultByType (i); const AActor *defaults = GetDefaultByType (i);
if (defaults->SpawnState == NULL || if (defaults->SpawnState == NULL ||
@ -4809,7 +4787,6 @@ AActor *P_SpawnMapThing (FMapThing *mthing, int position)
i->TypeName.GetChars(), mthing->x>>FRACBITS, mthing->y>>FRACBITS); i->TypeName.GetChars(), mthing->x>>FRACBITS, mthing->y>>FRACBITS);
i = PClass::FindClass("Unknown"); i = PClass::FindClass("Unknown");
} }
}
const AActor *info = GetDefaultByType (i); const AActor *info = GetDefaultByType (i);
@ -4898,6 +4875,7 @@ AActor *P_SpawnMapThing (FMapThing *mthing, int position)
P_FindFloorCeiling(mobj, FFCF_SAMESECTOR | FFCF_ONLY3DFLOORS | FFCF_3DRESTRICT); P_FindFloorCeiling(mobj, FFCF_SAMESECTOR | FFCF_ONLY3DFLOORS | FFCF_3DRESTRICT);
} }
// if the actor got args defined either in DECORATE or MAPINFO we must ignore the map's properties.
if (!(mobj->flags2 & MF2_ARGSDEFINED)) if (!(mobj->flags2 & MF2_ARGSDEFINED))
{ {
// [RH] Set the thing's special // [RH] Set the thing's special

View file

@ -3334,32 +3334,16 @@ void P_GetPolySpots (MapData * map, TArray<FNodeBuilder::FPolyStart> &spots, TAr
{ {
if (map->HasBehavior) if (map->HasBehavior)
{ {
int spot1, spot2, spot3, anchor;
if (gameinfo.gametype == GAME_Hexen)
{
spot1 = PO_HEX_SPAWN_TYPE;
spot2 = PO_HEX_SPAWNCRUSH_TYPE;
anchor = PO_HEX_ANCHOR_TYPE;
}
else
{
spot1 = PO_SPAWN_TYPE;
spot2 = PO_SPAWNCRUSH_TYPE;
anchor = PO_ANCHOR_TYPE;
}
spot3 = PO_SPAWNHURT_TYPE;
for (unsigned int i = 0; i < MapThingsConverted.Size(); ++i) for (unsigned int i = 0; i < MapThingsConverted.Size(); ++i)
{ {
if (MapThingsConverted[i].type == spot1 || MapThingsConverted[i].type == spot2 || FDoomEdEntry *mentry = DoomEdMap.CheckKey(MapThingsConverted[i].type);
MapThingsConverted[i].type == spot3 || MapThingsConverted[i].type == anchor) if (mentry != NULL && mentry->Type == NULL && mentry->Special >= SMT_POLYANCHOR && mentry->Special <= SMT_POLYSPAWNHURT)
{ {
FNodeBuilder::FPolyStart newvert; FNodeBuilder::FPolyStart newvert;
newvert.x = MapThingsConverted[i].x; newvert.x = MapThingsConverted[i].x;
newvert.y = MapThingsConverted[i].y; newvert.y = MapThingsConverted[i].y;
newvert.polynum = MapThingsConverted[i].angle; newvert.polynum = MapThingsConverted[i].angle;
if (MapThingsConverted[i].type == anchor) if (mentry->Special == SMT_POLYANCHOR)
{ {
anchors.Push (newvert); anchors.Push (newvert);
} }

View file

@ -45,10 +45,23 @@
#include "gi.h" #include "gi.h"
#include "templates.h" #include "templates.h"
#include "g_level.h" #include "g_level.h"
#include "v_text.h"
#include "i_system.h"
// Set of spawnable things for the Thing_Spawn and Thing_Projectile specials. // Set of spawnable things for the Thing_Spawn and Thing_Projectile specials.
TMap<int, const PClass *> SpawnableThings; TMap<int, const PClass *> SpawnableThings;
struct MapinfoSpawnItem
{
FName classname; // DECORATE is read after MAPINFO so we do not have the actual classes available here yet.
// These are for error reporting. We must store the file information because it's no longer available when these items get resolved.
FString filename;
int linenum;
};
typedef TMap<int, MapinfoSpawnItem> SpawnMap;
static SpawnMap SpawnablesFromMapinfo;
static FRandom pr_leadtarget ("LeadTarget"); static FRandom pr_leadtarget ("LeadTarget");
bool P_Thing_Spawn (int tid, AActor *source, int type, angle_t angle, bool fog, int newtid) bool P_Thing_Spawn (int tid, AActor *source, int type, angle_t angle, bool fog, int newtid)
@ -559,3 +572,77 @@ CCMD (dumpspawnables)
delete[] allpairs; delete[] allpairs;
} }
void FMapInfoParser::ParseSpawnNums()
{
TMap<int, bool> defined;
int error = 0;
MapinfoSpawnItem editem;
editem.filename = sc.ScriptName;
ParseOpenBrace();
while (true)
{
if (sc.CheckString("}")) return;
else if (sc.CheckNumber())
{
int ednum = sc.Number;
sc.MustGetStringName("=");
sc.MustGetString();
bool *def = defined.CheckKey(ednum);
if (def != NULL)
{
sc.ScriptMessage("Spawn Number %d defined more than once", ednum);
error++;
}
else if (ednum < 0)
{
sc.ScriptMessage("Spawn Number must be positive, got %d", ednum);
error++;
}
defined[ednum] = true;
editem.classname = sc.String;
SpawnablesFromMapinfo.Insert(ednum, editem);
}
else
{
sc.ScriptError("Number expected");
}
}
if (error > 0)
{
sc.ScriptError("%d errors encountered in SpawnNum definition");
}
}
void InitSpawnablesFromMapinfo()
{
SpawnableThings.Clear();
SpawnMap::Iterator it(SpawnablesFromMapinfo);
SpawnMap::Pair *pair;
int error = 0;
while (it.NextPair(pair))
{
const PClass *cls = NULL;
if (pair->Value.classname != NAME_None)
{
cls = PClass::FindClass(pair->Value.classname);
if (cls == NULL)
{
Printf(TEXTCOLOR_RED "Script error, \"%s\" line %d:\nUnknown actor class %s\n",
pair->Value.filename.GetChars(), pair->Value.linenum, pair->Value.classname.GetChars());
error++;
}
}
SpawnableThings.Insert(pair->Key, cls);
}
if (error > 0)
{
I_Error("%d unknown actor classes found", error);
}
SpawnablesFromMapinfo.Clear(); // we do not need this any longer
}

View file

@ -1561,8 +1561,8 @@ static void SpawnPolyobj (int index, int tag, int type)
sd->linedef->args[0] = 0; sd->linedef->args[0] = 0;
IterFindPolySides(&polyobjs[index], sd); IterFindPolySides(&polyobjs[index], sd);
po->MirrorNum = sd->linedef->args[1]; po->MirrorNum = sd->linedef->args[1];
po->crush = (type != PO_SPAWN_TYPE) ? 3 : 0; po->crush = (type != SMT_POLYSPAWN) ? 3 : 0;
po->bHurtOnTouch = (type == PO_SPAWNHURT_TYPE); po->bHurtOnTouch = (type == SMT_POLYSPAWNHURT);
po->tag = tag; po->tag = tag;
po->seqType = sd->linedef->args[2]; po->seqType = sd->linedef->args[2];
if (po->seqType < 0 || po->seqType > 63) if (po->seqType < 0 || po->seqType > 63)
@ -1632,8 +1632,8 @@ static void SpawnPolyobj (int index, int tag, int type)
} }
if (po->Sidedefs.Size() > 0) if (po->Sidedefs.Size() > 0)
{ {
po->crush = (type != PO_SPAWN_TYPE) ? 3 : 0; po->crush = (type != SMT_POLYSPAWN) ? 3 : 0;
po->bHurtOnTouch = (type == PO_SPAWNHURT_TYPE); po->bHurtOnTouch = (type == SMT_POLYSPAWNHURT);
po->tag = tag; po->tag = tag;
po->seqType = po->Sidedefs[0]->linedef->args[3]; po->seqType = po->Sidedefs[0]->linedef->args[3];
po->MirrorNum = po->Sidedefs[0]->linedef->args[2]; po->MirrorNum = po->Sidedefs[0]->linedef->args[2];
@ -1756,9 +1756,7 @@ void PO_Init (void)
for (polyspawn = polyspawns, prev = &polyspawns; polyspawn;) for (polyspawn = polyspawns, prev = &polyspawns; polyspawn;)
{ {
// 9301 (3001) = no crush, 9302 (3002) = crushing, 9303 = hurting touch // 9301 (3001) = no crush, 9302 (3002) = crushing, 9303 = hurting touch
if (polyspawn->type == PO_SPAWN_TYPE || if (polyspawn->type >= SMT_POLYSPAWN && polyspawn->type <= SMT_POLYSPAWNHURT)
polyspawn->type == PO_SPAWNCRUSH_TYPE ||
polyspawn->type == PO_SPAWNHURT_TYPE)
{ {
// Polyobj StartSpot Pt. // Polyobj StartSpot Pt.
polyobjs[polyIndex].StartSpot.x = polyspawn->x; polyobjs[polyIndex].StartSpot.x = polyspawn->x;
@ -1778,7 +1776,7 @@ void PO_Init (void)
for (polyspawn = polyspawns; polyspawn;) for (polyspawn = polyspawns; polyspawn;)
{ {
polyspawns_t *next = polyspawn->next; polyspawns_t *next = polyspawn->next;
if (polyspawn->type == PO_ANCHOR_TYPE) if (polyspawn->type == SMT_POLYANCHOR)
{ {
// Polyobj Anchor Pt. // Polyobj Anchor Pt.
TranslateToStartSpot (polyspawn->angle, polyspawn->x, polyspawn->y); TranslateToStartSpot (polyspawn->angle, polyspawn->x, polyspawn->y);

View file

@ -179,7 +179,7 @@ struct F7ZLump : public FResourceLump
//========================================================================== //==========================================================================
// //
// Zip file // 7-zip file
// //
//========================================================================== //==========================================================================
@ -190,8 +190,6 @@ class F7ZFile : public FResourceFile
F7ZLump *Lumps; F7ZLump *Lumps;
C7zArchive *Archive; C7zArchive *Archive;
static int STACK_ARGS lumpcmp(const void * a, const void * b);
public: public:
F7ZFile(const char * filename, FileReader *filer); F7ZFile(const char * filename, FileReader *filer);
bool Open(bool quiet); bool Open(bool quiet);
@ -201,15 +199,6 @@ public:
int STACK_ARGS F7ZFile::lumpcmp(const void * a, const void * b)
{
F7ZLump * rec1 = (F7ZLump *)a;
F7ZLump * rec2 = (F7ZLump *)b;
return stricmp(rec1->FullName, rec2->FullName);
}
//========================================================================== //==========================================================================
// //
// 7Z file // 7Z file
@ -328,8 +317,7 @@ bool F7ZFile::Open(bool quiet)
if (!quiet) Printf(", %d lumps\n", NumLumps); if (!quiet) Printf(", %d lumps\n", NumLumps);
// Entries in archives are sorted alphabetically PostProcessArchive(&Lumps[0], sizeof(F7ZLump));
qsort(&Lumps[0], NumLumps, sizeof(F7ZLump), lumpcmp);
return true; return true;
} }

View file

@ -86,8 +86,6 @@ class FDirectory : public FResourceFile
{ {
TArray<FDirectoryLump> Lumps; TArray<FDirectoryLump> Lumps;
static int STACK_ARGS lumpcmp(const void * a, const void * b);
int AddDirectory(const char *dirpath); int AddDirectory(const char *dirpath);
void AddEntry(const char *fullpath, int size); void AddEntry(const char *fullpath, int size);
@ -113,29 +111,18 @@ FDirectory::FDirectory(const char * directory)
#ifdef _WIN32 #ifdef _WIN32
directory = _fullpath(NULL, directory, _MAX_PATH); directory = _fullpath(NULL, directory, _MAX_PATH);
#else #else
// Todo for Linux: Resolve the path befire using it // Todo for Linux: Resolve the path before using it
#endif #endif
dirname = directory; dirname = directory;
#ifdef _WIN32
free((void *)directory);
#endif
dirname.ReplaceChars('\\', '/'); dirname.ReplaceChars('\\', '/');
if (dirname[dirname.Len()-1] != '/') dirname += '/'; if (dirname[dirname.Len()-1] != '/') dirname += '/';
Filename = copystring(dirname); Filename = copystring(dirname);
} }
//==========================================================================
//
//
//
//==========================================================================
int STACK_ARGS FDirectory::lumpcmp(const void * a, const void * b)
{
FDirectoryLump * rec1 = (FDirectoryLump *)a;
FDirectoryLump * rec2 = (FDirectoryLump *)b;
return stricmp(rec1->FullName, rec2->FullName);
}
#ifdef _WIN32 #ifdef _WIN32
//========================================================================== //==========================================================================
// //
@ -299,8 +286,7 @@ bool FDirectory::Open(bool quiet)
{ {
NumLumps = AddDirectory(Filename); NumLumps = AddDirectory(Filename);
if (!quiet) Printf(", %d lumps\n", NumLumps); if (!quiet) Printf(", %d lumps\n", NumLumps);
// Entries in Zips are sorted alphabetically. PostProcessArchive(&Lumps[0], sizeof(FDirectoryLump));
qsort(&Lumps[0], NumLumps, sizeof(FDirectoryLump), lumpcmp);
return true; return true;
} }

View file

@ -138,8 +138,6 @@ class FZipFile : public FResourceFile
{ {
FZipLump *Lumps; FZipLump *Lumps;
static int STACK_ARGS lumpcmp(const void * a, const void * b);
public: public:
FZipFile(const char * filename, FileReader *file); FZipFile(const char * filename, FileReader *file);
virtual ~FZipFile(); virtual ~FZipFile();
@ -148,16 +146,6 @@ public:
}; };
int STACK_ARGS FZipFile::lumpcmp(const void * a, const void * b)
{
FZipLump * rec1 = (FZipLump *)a;
FZipLump * rec2 = (FZipLump *)b;
return stricmp(rec1->FullName, rec2->FullName);
}
//========================================================================== //==========================================================================
// //
// Zip file // Zip file
@ -274,8 +262,7 @@ bool FZipFile::Open(bool quiet)
if (!quiet) Printf(", %d lumps\n", NumLumps); if (!quiet) Printf(", %d lumps\n", NumLumps);
// Entries in Zips are sorted alphabetically. PostProcessArchive(&Lumps[0], sizeof(FZipLump));
qsort(Lumps, NumLumps, sizeof(FZipLump), lumpcmp);
return true; return true;
} }

View file

@ -38,7 +38,8 @@
#include "cmdlib.h" #include "cmdlib.h"
#include "w_wad.h" #include "w_wad.h"
#include "doomerrors.h" #include "doomerrors.h"
#include "gi.h"
#include "doomstat.h"
//========================================================================== //==========================================================================
@ -74,11 +75,6 @@ public:
FResourceLump::~FResourceLump() FResourceLump::~FResourceLump()
{ {
if (FullName != NULL)
{
delete [] FullName;
FullName = NULL;
}
if (Cache != NULL && RefCount >= 0) if (Cache != NULL && RefCount >= 0)
{ {
delete [] Cache; delete [] Cache;
@ -102,7 +98,7 @@ void FResourceLump::LumpNameSetup(const char *iname)
base = base.Left(base.LastIndexOf('.')); base = base.Left(base.LastIndexOf('.'));
uppercopy(Name, base); uppercopy(Name, base);
Name[8] = 0; Name[8] = 0;
FullName = copystring(iname); FullName = iname;
// Map some directories to WAD namespaces. // Map some directories to WAD namespaces.
// Note that some of these namespaces don't exist in WADS. // Note that some of these namespaces don't exist in WADS.
@ -321,6 +317,194 @@ FResourceFile::~FResourceFile()
delete Reader; delete Reader;
} }
int STACK_ARGS lumpcmp(const void * a, const void * b)
{
FResourceLump * rec1 = (FResourceLump *)a;
FResourceLump * rec2 = (FResourceLump *)b;
return rec1->FullName.CompareNoCase(rec2->FullName);
}
//==========================================================================
//
// FResourceFile :: PostProcessArchive
//
// Sorts files by name.
// For files named "filter/<game>/*": Using the same filter rules as config
// autoloading, move them to the end and rename them without the "filter/"
// prefix. Filtered files that don't match are deleted.
//
//==========================================================================
void FResourceFile::PostProcessArchive(void *lumps, size_t lumpsize)
{
// Entries in archives are sorted alphabetically
qsort(lumps, NumLumps, lumpsize, lumpcmp);
// Filter out lumps using the same names as the Autoload.* sections
// in the ini file use. We reduce the maximum lump concidered after
// each one so that we don't risk refiltering already filtered lumps.
DWORD max = NumLumps;
max -= FilterLumps(gameinfo.ConfigName, lumps, lumpsize, max);
max -= FilterLumps(LumpFilterGroup, lumps, lumpsize, max);
max -= FilterLumps(LumpFilterIWAD, lumps, lumpsize, max);
JunkLeftoverFilters(lumps, lumpsize, max);
}
//==========================================================================
//
// FResourceFile :: FilterLumps
//
// Finds any lumps between [0,<max>) that match the pattern
// "filter/<filtername>/*" and moves them to the end of the lump list.
// Returns the number of lumps moved.
//
//==========================================================================
int FResourceFile::FilterLumps(FString filtername, void *lumps, size_t lumpsize, DWORD max)
{
FString filter;
DWORD start, end;
if (filtername.IsEmpty())
{
return 0;
}
filter << "filter/" << filtername << '/';
if (FindPrefixRange(filter, lumps, lumpsize, max, start, end))
{
void *from = (BYTE *)lumps + start * lumpsize;
// Remove filter prefix from every name
void *lump_p = from;
for (DWORD i = start; i < end; ++i, lump_p = (BYTE *)lump_p + lumpsize)
{
FResourceLump *lump = (FResourceLump *)lump_p;
assert(lump->FullName.CompareNoCase(filter, (int)filter.Len()) == 0);
lump->LumpNameSetup(&lump->FullName[filter.Len()]);
}
// Move filtered lumps to the end of the lump list.
size_t count = (end - start) * lumpsize;
void *to = (BYTE *)lumps + NumLumps * lumpsize - count;
assert (to >= from);
if (from != to)
{
// Copy filtered lumps to a temporary buffer.
BYTE *filteredlumps = new BYTE[count];
memcpy(filteredlumps, from, count);
// Shift lumps left to make room for the filtered ones at the end.
memmove(from, (BYTE *)from + count, (NumLumps - end) * lumpsize);
// Copy temporary buffer to newly freed space.
memcpy(to, filteredlumps, count);
delete[] filteredlumps;
}
}
return end - start;
}
//==========================================================================
//
// FResourceFile :: JunkLeftoverFilters
//
// Deletes any lumps beginning with "filter/" that were not matched.
//
//==========================================================================
void FResourceFile::JunkLeftoverFilters(void *lumps, size_t lumpsize, DWORD max)
{
DWORD start, end;
if (FindPrefixRange("filter/", lumps, lumpsize, max, start, end))
{
// Since the resource lumps may contain non-POD data besides the
// full name, we "delete" them by erasing their names so they
// can't be found.
void *stop = (BYTE *)lumps + end * lumpsize;
for (void *p = (BYTE *)lumps + start * lumpsize; p < stop; p = (BYTE *)p + lumpsize)
{
FResourceLump *lump = (FResourceLump *)p;
lump->FullName = 0;
lump->Name[0] = '\0';
lump->Namespace = ns_invalid;
}
}
}
//==========================================================================
//
// FResourceFile :: FindPrefixRange
//
// Finds a range of lumps that start with the prefix string. <start> is left
// indicating the first matching one. <end> is left at one plus the last
// matching one.
//
//==========================================================================
bool FResourceFile::FindPrefixRange(FString filter, void *lumps, size_t lumpsize, DWORD maxlump, DWORD &start, DWORD &end)
{
DWORD min, max, mid, inside;
FResourceLump *lump;
int cmp;
// Pretend that our range starts at 1 instead of 0 so that we can avoid
// unsigned overflow if the range starts at the first lump.
lumps = (BYTE *)lumps - lumpsize;
// Binary search to find any match at all.
min = 1, max = maxlump;
while (min <= max)
{
mid = min + (max - min) / 2;
lump = (FResourceLump *)((BYTE *)lumps + mid * lumpsize);
cmp = lump->FullName.CompareNoCase(filter, (int)filter.Len());
if (cmp == 0)
break;
else if (cmp < 0)
min = mid + 1;
else
max = mid - 1;
}
if (max < min)
{ // matched nothing
return false;
}
// Binary search to find first match.
inside = mid;
min = 1, max = mid;
while (min <= max)
{
mid = min + (max - min) / 2;
lump = (FResourceLump *)((BYTE *)lumps + mid * lumpsize);
cmp = lump->FullName.CompareNoCase(filter, (int)filter.Len());
// Go left on matches and right on misses.
if (cmp == 0)
max = mid - 1;
else
min = mid + 1;
}
start = mid + (cmp != 0) - 1;
// Binary search to find last match.
min = inside, max = maxlump;
while (min <= max)
{
mid = min + (max - min) / 2;
lump = (FResourceLump *)((BYTE *)lumps + mid * lumpsize);
cmp = lump->FullName.CompareNoCase(filter, (int)filter.Len());
// Go right on matches and left on misses.
if (cmp == 0)
min = mid + 1;
else
max = mid - 1;
}
end = mid - (cmp != 0);
return true;
}
//========================================================================== //==========================================================================
// //

View file

@ -13,7 +13,7 @@ struct FResourceLump
friend class FResourceFile; friend class FResourceFile;
int LumpSize; int LumpSize;
char * FullName; // only valid for files loaded from a .zip file FString FullName; // only valid for files loaded from a non-wad archive
union union
{ {
char Name[9]; char Name[9];
@ -30,7 +30,6 @@ struct FResourceLump
FResourceLump() FResourceLump()
{ {
FullName = NULL;
Cache = NULL; Cache = NULL;
Owner = NULL; Owner = NULL;
Flags = 0; Flags = 0;
@ -66,9 +65,16 @@ protected:
FResourceFile(const char *filename, FileReader *r); FResourceFile(const char *filename, FileReader *r);
// for archives that can contain directories
void PostProcessArchive(void *lumps, size_t lumpsize);
private: private:
DWORD FirstLump; DWORD FirstLump;
int FilterLumps(FString filtername, void *lumps, size_t lumpsize, DWORD max);
bool FindPrefixRange(FString filter, void *lumps, size_t lumpsize, DWORD max, DWORD &start, DWORD &end);
void JunkLeftoverFilters(void *lumps, size_t lumpsize, DWORD max);
public: public:
static FResourceFile *OpenResourceFile(const char *filename, FileReader *file, bool quiet = false); static FResourceFile *OpenResourceFile(const char *filename, FileReader *file, bool quiet = false);
static FResourceFile *OpenDirectory(const char *filename, bool quiet = false); static FResourceFile *OpenDirectory(const char *filename, bool quiet = false);

View file

@ -976,7 +976,7 @@ DEFINE_PROPERTY(translation, L, Actor)
if (type == 0) if (type == 0)
{ {
PROP_INT_PARM(trans, 1); PROP_INT_PARM(trans, 1);
int max = (gameinfo.gametype==GAME_Strife || (info->GameFilter&GAME_Strife)) ? 6:2; int max = 6;// (gameinfo.gametype == GAME_Strife || (info->GameFilter&GAME_Strife)) ? 6 : 2;
if (trans < 0 || trans > max) if (trans < 0 || trans > max)
{ {
I_Error ("Translation must be in the range [0,%d]", max); I_Error ("Translation must be in the range [0,%d]", max);

View file

@ -290,14 +290,9 @@ void FWadCollection::AddFile (const char *filename, FileReader *wadinfo)
FResourceLump *lump = resfile->GetLump(i); FResourceLump *lump = resfile->GetLump(i);
if (lump->Flags & LUMPF_EMBEDDED) if (lump->Flags & LUMPF_EMBEDDED)
{ {
char path[256]; FString path;
path.Format("%s:%s", filename, lump->FullName.GetChars());
mysnprintf(path, countof(path), "%s:", filename);
char *wadstr = path + strlen(path);
FileReader *embedded = lump->NewReader(); FileReader *embedded = lump->NewReader();
strcpy(wadstr, lump->FullName);
AddFile(path, embedded); AddFile(path, embedded);
} }
} }
@ -345,7 +340,9 @@ void FWadCollection::AddFile (const char *filename, FileReader *wadinfo)
sprintf(cksumout + (j * 2), "%02X", cksum[j]); sprintf(cksumout + (j * 2), "%02X", cksum[j]);
} }
fprintf(hashfile, "file: %s, lump: %s, hash: %s, size: %d\n", filename, lump->FullName ? lump->FullName : lump->Name, cksumout, lump->LumpSize); fprintf(hashfile, "file: %s, lump: %s, hash: %s, size: %d\n", filename,
lump->FullName.IsNotEmpty() ? lump->FullName.GetChars() : lump->Name,
cksumout, lump->LumpSize);
delete reader; delete reader;
} }
@ -737,7 +734,7 @@ void FWadCollection::InitHashChains (void)
FirstLumpIndex[j] = i; FirstLumpIndex[j] = i;
// Do the same for the full paths // Do the same for the full paths
if (LumpInfo[i].lump->FullName!=NULL) if (LumpInfo[i].lump->FullName.IsNotEmpty())
{ {
j = MakeKey(LumpInfo[i].lump->FullName) % NumLumps; j = MakeKey(LumpInfo[i].lump->FullName) % NumLumps;
NextLumpIndex_FullName[i] = FirstLumpIndex_FullName[j]; NextLumpIndex_FullName[i] = FirstLumpIndex_FullName[j];
@ -1088,7 +1085,7 @@ const char *FWadCollection::GetLumpFullName (int lump) const
{ {
if ((size_t)lump >= NumLumps) if ((size_t)lump >= NumLumps)
return NULL; return NULL;
else if (LumpInfo[lump].lump->FullName != NULL) else if (LumpInfo[lump].lump->FullName.IsNotEmpty())
return LumpInfo[lump].lump->FullName; return LumpInfo[lump].lump->FullName;
else else
return LumpInfo[lump].lump->Name; return LumpInfo[lump].lump->Name;
@ -1574,3 +1571,33 @@ static void PrintLastError ()
Printf (TEXTCOLOR_RED " %s\n", strerror(errno)); Printf (TEXTCOLOR_RED " %s\n", strerror(errno));
} }
#endif #endif
#ifdef _DEBUG
//==========================================================================
//
// CCMD LumpNum
//
//==========================================================================
CCMD(lumpnum)
{
for (int i = 1; i < argv.argc(); ++i)
{
Printf("%s: %d\n", argv[i], Wads.CheckNumForName(argv[i]));
}
}
//==========================================================================
//
// CCMD LumpNumFull
//
//==========================================================================
CCMD(lumpnumfull)
{
for (int i = 1; i < argv.argc(); ++i)
{
Printf("%s: %d\n", argv[i], Wads.CheckNumForFullName(argv[i]));
}
}
#endif

View file

@ -52,6 +52,8 @@ struct wadlump_t
// [RH] Namespaces from BOOM. // [RH] Namespaces from BOOM.
typedef enum { typedef enum {
ns_invalid = -1,
ns_global = 0, ns_global = 0,
ns_sprites, ns_sprites,
ns_flats, ns_flats,

View file

@ -2,15 +2,13 @@
// Mini Zorch ----------------------------------------------------------------- // Mini Zorch -----------------------------------------------------------------
actor MiniZorchRecharge : Clip 2007 actor MiniZorchRecharge : Clip
{ {
Game Chex
inventory.pickupmessage "$GOTZORCHRECHARGE" inventory.pickupmessage "$GOTZORCHRECHARGE"
} }
actor MiniZorchPack : Clip 2048 actor MiniZorchPack : Clip
{ {
Game Chex
Inventory.PickupMessage "$GOTMINIZORCHPACK" Inventory.PickupMessage "$GOTMINIZORCHPACK"
Inventory.Amount 50 Inventory.Amount 50
States States
@ -23,15 +21,13 @@ actor MiniZorchPack : Clip 2048
// Large Zorch ---------------------------------------------------------------- // Large Zorch ----------------------------------------------------------------
actor LargeZorchRecharge : Shell 2008 actor LargeZorchRecharge : Shell
{ {
Game Chex
inventory.pickupmessage "$GOTLARGEZORCHERRECHARGE" inventory.pickupmessage "$GOTLARGEZORCHERRECHARGE"
} }
actor LargeZorchPack : Shell 2049 actor LargeZorchPack : Shell
{ {
Game Chex
Inventory.PickupMessage "$GOTLARGEZORCHERPACK" Inventory.PickupMessage "$GOTLARGEZORCHERPACK"
Inventory.Amount 20 Inventory.Amount 20
States States
@ -44,15 +40,13 @@ actor LargeZorchPack : Shell 2049
// Zorch Propulsor ------------------------------------------------------------ // Zorch Propulsor ------------------------------------------------------------
actor PropulsorZorch : RocketAmmo 2010 actor PropulsorZorch : RocketAmmo
{ {
Game Chex
inventory.pickupmessage "$GOTPROPULSORRECHARGE" inventory.pickupmessage "$GOTPROPULSORRECHARGE"
} }
actor PropulsorZorchPack : RocketAmmo 2046 actor PropulsorZorchPack : RocketAmmo
{ {
Game Chex
Inventory.PickupMessage "$GOTPROPULSORPACK" Inventory.PickupMessage "$GOTPROPULSORPACK"
Inventory.Amount 5 Inventory.Amount 5
States States
@ -65,16 +59,13 @@ actor PropulsorZorchPack : RocketAmmo 2046
// Phasing Zorch -------------------------------------------------------------- // Phasing Zorch --------------------------------------------------------------
actor PhasingZorch : Cell 2047 actor PhasingZorch : Cell
{ {
Game Chex
inventory.pickupmessage "$GOTPHASINGZORCHERRECHARGE" inventory.pickupmessage "$GOTPHASINGZORCHERRECHARGE"
} }
actor PhasingZorchPack : Cell 17 actor PhasingZorchPack : Cell
{ {
Game Chex
SpawnID 142
Inventory.PickupMessage "$GOTPHASINGZORCHERPACK" Inventory.PickupMessage "$GOTPHASINGZORCHERPACK"
Inventory.Amount 100 Inventory.Amount 100
States States

View file

@ -2,81 +2,69 @@
// Civilians ------------------------------------------------------------------ // Civilians ------------------------------------------------------------------
actor ChexCivilian1 : GreenTorch 45 actor ChexCivilian1 : GreenTorch
{ {
game Chex
height 54 height 54
} }
actor ChexCivilian2 : ShortGreenTorch 56 actor ChexCivilian2 : ShortGreenTorch
{ {
game Chex
height 54 height 54
} }
actor ChexCivilian3 : ShortRedTorch 57 actor ChexCivilian3 : ShortRedTorch
{ {
game Chex
height 48 height 48
} }
// Landing Zone --------------------------------------------------------------- // Landing Zone ---------------------------------------------------------------
actor ChexLandingLight : Column 2028 actor ChexLandingLight : Column
{ {
game Chex
height 35 height 35
} }
actor ChexSpaceship : TechPillar 48 actor ChexSpaceship : TechPillar
{ {
game Chex
height 52 height 52
} }
// Trees and Plants ----------------------------------------------------------- // Trees and Plants -----------------------------------------------------------
actor ChexAppleTree : Stalagtite 47 actor ChexAppleTree : Stalagtite
{ {
game Chex
height 92 height 92
} }
actor ChexBananaTree : BigTree 54 actor ChexBananaTree : BigTree
{ {
game Chex
height 108 height 108
} }
actor ChexOrangeTree : TorchTree 43 actor ChexOrangeTree : TorchTree
{ {
game Chex
height 92 height 92
} }
actor ChexSubmergedPlant : ShortGreenColumn 31 actor ChexSubmergedPlant : ShortGreenColumn
{ {
game Chex
height 42 height 42
} }
actor ChexTallFlower : HeadsOnAStick 28 actor ChexTallFlower : HeadsOnAStick
{ {
game Chex
height 25 height 25
} }
actor ChexTallFlower2 : DeadStick 25 actor ChexTallFlower2 : DeadStick
{ {
game Chex
height 25 height 25
} }
// Slime Fountain ------------------------------------------------------------- // Slime Fountain -------------------------------------------------------------
actor ChexSlimeFountain : BlueTorch 44 actor ChexSlimeFountain : BlueTorch
{ {
game Chex
height 48 height 48
States States
{ {
@ -88,53 +76,45 @@ actor ChexSlimeFountain : BlueTorch 44
// Cavern Decorations --------------------------------------------------------- // Cavern Decorations ---------------------------------------------------------
actor ChexCavernColumn : TallRedColumn 32 actor ChexCavernColumn : TallRedColumn
{ {
game Chex
height 128 height 128
} }
actor ChexCavernStalagmite : TallGreenColumn 30 actor ChexCavernStalagmite : TallGreenColumn
{ {
game Chex
height 60 height 60
} }
// Misc. Props ---------------------------------------------------------------- // Misc. Props ----------------------------------------------------------------
actor ChexChemicalBurner : EvilEye 41 actor ChexChemicalBurner : EvilEye
{ {
game Chex
height 25 height 25
} }
actor ChexChemicalFlask : Candlestick 34 actor ChexChemicalFlask : Candlestick
{ {
game Chex
renderstyle translucent renderstyle translucent
alpha 0.75 alpha 0.75
} }
actor ChexFlagOnPole : SkullColumn 37 actor ChexFlagOnPole : SkullColumn
{ {
game Chex
height 128 height 128
} }
actor ChexGasTank : Candelabra 35 actor ChexGasTank : Candelabra
{ {
game Chex
height 36 height 36
} }
actor ChexLightColumn : ShortBlueTorch 55 actor ChexLightColumn : ShortBlueTorch
{ {
game Chex
height 86 height 86
} }
actor ChexMineCart : ShortRedColumn 33 actor ChexMineCart : ShortRedColumn
{ {
game Chex
height 30 height 30
} }

View file

@ -3,67 +3,57 @@
// Health --------------------------------------------------------------------- // Health ---------------------------------------------------------------------
actor GlassOfWater : HealthBonus 2014 actor GlassOfWater : HealthBonus
{ {
game Chex
inventory.pickupmessage "$GOTWATER" inventory.pickupmessage "$GOTWATER"
} }
actor BowlOfFruit : Stimpack 2011 actor BowlOfFruit : Stimpack
{ {
game Chex
inventory.pickupmessage "$GOTFRUIT" inventory.pickupmessage "$GOTFRUIT"
} }
actor BowlOfVegetables : Medikit 2012 actor BowlOfVegetables : Medikit
{ {
game Chex
inventory.pickupmessage "$GOTVEGETABLES" inventory.pickupmessage "$GOTVEGETABLES"
health.lowmessage 25, "$GOTVEGETABLESNEED" health.lowmessage 25, "$GOTVEGETABLESNEED"
} }
actor SuperchargeBreakfast : Soulsphere 2013 actor SuperchargeBreakfast : Soulsphere
{ {
game Chex
inventory.pickupmessage "$GOTBREAKFAST" inventory.pickupmessage "$GOTBREAKFAST"
} }
// Armor ---------------------------------------------------------------------- // Armor ----------------------------------------------------------------------
actor SlimeRepellent : ArmorBonus 2015 actor SlimeRepellent : ArmorBonus
{ {
game Chex
inventory.pickupmessage "$GOTREPELLENT" inventory.pickupmessage "$GOTREPELLENT"
} }
actor ChexArmor : GreenArmor 2018 actor ChexArmor : GreenArmor
{ {
game Chex
inventory.pickupmessage "$GOTCHEXARMOR" inventory.pickupmessage "$GOTCHEXARMOR"
} }
actor SuperChexArmor : BlueArmor 2019 actor SuperChexArmor : BlueArmor
{ {
game Chex
inventory.pickupmessage "$GOTSUPERCHEXARMOR" inventory.pickupmessage "$GOTSUPERCHEXARMOR"
} }
// Powerups =================================================================== // Powerups ===================================================================
actor ComputerAreaMap : Allmap 2026 actor ComputerAreaMap : Allmap
{ {
game Chex
inventory.pickupmessage "$GOTCHEXMAP" inventory.pickupmessage "$GOTCHEXMAP"
} }
actor SlimeProofSuit : RadSuit 2025 actor SlimeProofSuit : RadSuit
{ {
game Chex
inventory.pickupmessage "$GOTSLIMESUIT" inventory.pickupmessage "$GOTSLIMESUIT"
} }
actor Zorchpack : Backpack 8 actor Zorchpack : Backpack
{ {
game Chex
inventory.pickupmessage "$GOTZORCHPACK" inventory.pickupmessage "$GOTZORCHPACK"
} }

View file

@ -1,19 +1,16 @@
// These are merely renames of the Doom cards // These are merely renames of the Doom cards
actor ChexBlueCard : BlueCard 5 actor ChexBlueCard : BlueCard
{ {
Game Chex
inventory.pickupmessage "$GOTCBLUEKEY" inventory.pickupmessage "$GOTCBLUEKEY"
} }
actor ChexYellowCard : YellowCard 6 actor ChexYellowCard : YellowCard
{ {
Game Chex
inventory.pickupmessage "$GOTCYELLOWKEY" inventory.pickupmessage "$GOTCYELLOWKEY"
} }
actor ChexRedCard : RedCard 13 actor ChexRedCard : RedCard
{ {
Game Chex
inventory.pickupmessage "$GOTCREDKEY" inventory.pickupmessage "$GOTCREDKEY"
} }

View file

@ -5,9 +5,8 @@
// //
//=========================================================================== //===========================================================================
actor FlemoidusCommonus : ZombieMan 3004 actor FlemoidusCommonus : ZombieMan
{ {
Game Chex
DropItem "" DropItem ""
Obituary "$OB_COMMONUS" Obituary "$OB_COMMONUS"
States States
@ -25,9 +24,8 @@ actor FlemoidusCommonus : ZombieMan 3004
// //
//=========================================================================== //===========================================================================
actor FlemoidusBipedicus : ShotgunGuy 9 actor FlemoidusBipedicus : ShotgunGuy
{ {
Game Chex
DropItem "" DropItem ""
Obituary "$OB_BIPEDICUS" Obituary "$OB_BIPEDICUS"
States States
@ -45,9 +43,8 @@ actor FlemoidusBipedicus : ShotgunGuy 9
// //
//=========================================================================== //===========================================================================
actor ArmoredFlemoidusBipedicus : DoomImp 3001 actor ArmoredFlemoidusBipedicus : DoomImp
{ {
Game Chex
Obituary "$OB_BIPEDICUS2" Obituary "$OB_BIPEDICUS2"
HitObituary "$OB_BIPEDICUS2" HitObituary "$OB_BIPEDICUS2"
} }
@ -58,9 +55,8 @@ actor ArmoredFlemoidusBipedicus : DoomImp 3001
// //
//=========================================================================== //===========================================================================
actor FlemoidusCycloptisCommonus : Demon 3002 actor FlemoidusCycloptisCommonus : Demon
{ {
Game Chex
Obituary "$OB_CYCLOPTIS" Obituary "$OB_CYCLOPTIS"
} }
@ -70,9 +66,8 @@ actor FlemoidusCycloptisCommonus : Demon 3002
// //
//=========================================================================== //===========================================================================
actor Flembrane : BaronOfHell 3003 actor Flembrane : BaronOfHell
{ {
Game Chex
radius 44 radius 44
height 100 height 100
speed 0 speed 0
@ -88,8 +83,7 @@ actor Flembrane : BaronOfHell 3003
//=========================================================================== //===========================================================================
actor ChexSoul : LostSoul 3006 actor ChexSoul : LostSoul
{ {
Game Chex
height 0 height 0
} }

View file

@ -2,14 +2,12 @@
actor Bootspoon : Fist actor Bootspoon : Fist
{ {
game Chex
obituary "$OB_MPSPOON" obituary "$OB_MPSPOON"
Tag "$TAG_SPOON" Tag "$TAG_SPOON"
} }
actor SuperBootspork : Chainsaw 2005 actor SuperBootspork : Chainsaw
{ {
game Chex
obituary "$OB_MPBOOTSPORK" obituary "$OB_MPBOOTSPORK"
Inventory.PickupMessage "$GOTSUPERBOOTSPORK" Inventory.PickupMessage "$GOTSUPERBOOTSPORK"
Tag "$TAG_SPORK" Tag "$TAG_SPORK"
@ -17,7 +15,6 @@ actor SuperBootspork : Chainsaw 2005
actor MiniZorcher : Pistol actor MiniZorcher : Pistol
{ {
game Chex
obituary "$OB_MPZORCH" obituary "$OB_MPZORCH"
inventory.pickupmessage "$GOTMINIZORCHER" inventory.pickupmessage "$GOTMINIZORCHER"
Tag "$TAG_MINIZORCHER" Tag "$TAG_MINIZORCHER"
@ -28,33 +25,29 @@ actor MiniZorcher : Pistol
} }
} }
actor LargeZorcher : Shotgun 2001 actor LargeZorcher : Shotgun
{ {
game Chex
obituary "$OB_MPZORCH" obituary "$OB_MPZORCH"
inventory.pickupmessage "$GOTLARGEZORCHER" inventory.pickupmessage "$GOTLARGEZORCHER"
Tag "$TAG_LARGEZORCHER" Tag "$TAG_LARGEZORCHER"
} }
actor SuperLargeZorcher : SuperShotgun 82 actor SuperLargeZorcher : SuperShotgun
{ {
game Chex
obituary "$OB_MPMEGAZORCH" obituary "$OB_MPMEGAZORCH"
inventory.pickupmessage "$GOTSUPERLARGEZORCHER" inventory.pickupmessage "$GOTSUPERLARGEZORCHER"
Tag "$TAG_SUPERLARGEZORCHER" Tag "$TAG_SUPERLARGEZORCHER"
} }
actor RapidZorcher : Chaingun 2002 actor RapidZorcher : Chaingun
{ {
game Chex
obituary "$OB_MPRAPIDZORCH" obituary "$OB_MPRAPIDZORCH"
inventory.pickupmessage "$GOTRAPIDZORCHER" inventory.pickupmessage "$GOTRAPIDZORCHER"
Tag "$TAG_RAPIDZORCHER" Tag "$TAG_RAPIDZORCHER"
} }
actor ZorchPropulsor : RocketLauncher 2003 actor ZorchPropulsor : RocketLauncher
{ {
game Chex
obituary "" obituary ""
inventory.pickupmessage "$GOTZORCHPROPULSOR" inventory.pickupmessage "$GOTZORCHPROPULSOR"
Tag "$TAG_ZORCHPROPULSOR" Tag "$TAG_ZORCHPROPULSOR"
@ -77,9 +70,8 @@ actor PropulsorMissile : Rocket
Alpha 0.75 Alpha 0.75
} }
actor PhasingZorcher : PlasmaRifle 2004 actor PhasingZorcher : PlasmaRifle
{ {
game Chex
obituary "" obituary ""
inventory.pickupmessage "$GOTPHASINGZORCHER" inventory.pickupmessage "$GOTPHASINGZORCHER"
Tag "$TAG_PHASINGZORCHER" Tag "$TAG_PHASINGZORCHER"
@ -107,9 +99,8 @@ actor PhaseZorchMissile : PlasmaBall
Alpha 0.75 Alpha 0.75
} }
actor LAZDevice : BFG9000 2006 actor LAZDevice : BFG9000
{ {
game Chex
obituary "" obituary ""
inventory.pickupmessage "$GOTLAZDEVICE" inventory.pickupmessage "$GOTLAZDEVICE"
Tag "$TAG_LAZDEVICE" Tag "$TAG_LAZDEVICE"

View file

@ -3,10 +3,8 @@
// Arachnotron // Arachnotron
// //
//=========================================================================== //===========================================================================
ACTOR Arachnotron 68 ACTOR Arachnotron
{ {
Game Doom
SpawnID 6
Health 500 Health 500
Radius 64 Radius 64
Height 64 Height 64
@ -63,8 +61,6 @@ ACTOR Arachnotron 68
//=========================================================================== //===========================================================================
ACTOR ArachnotronPlasma ACTOR ArachnotronPlasma
{ {
Game Doom
SpawnID 129
Radius 13 Radius 13
Height 8 Height 8
Speed 25 Speed 25

View file

@ -4,10 +4,8 @@
// //
//=========================================================================== //===========================================================================
ACTOR Archvile 64 ACTOR Archvile
{ {
Game Doom
SpawnID 111
Health 700 Health 700
Radius 20 Radius 20
Height 56 Height 56
@ -67,8 +65,6 @@ ACTOR Archvile 64
ACTOR ArchvileFire ACTOR ArchvileFire
{ {
Game Doom
SpawnID 98
+NOBLOCKMAP +NOGRAVITY +NOBLOCKMAP +NOGRAVITY
RenderStyle Add RenderStyle Add
Alpha 1 Alpha 1

View file

@ -5,9 +5,8 @@
// //
//=========================================================================== //===========================================================================
ACTOR BossBrain 88 ACTOR BossBrain
{ {
Game Doom
Health 250 Health 250
Mass 10000000 Mass 10000000
PainChance 255 PainChance 255
@ -43,9 +42,8 @@ ACTOR BossBrain 88
// //
//=========================================================================== //===========================================================================
ACTOR BossEye 89 ACTOR BossEye
{ {
Game Doom
Height 32 Height 32
+NOBLOCKMAP +NOBLOCKMAP
+NOSECTOR +NOSECTOR
@ -67,9 +65,8 @@ ACTOR BossEye 89
// //
//=========================================================================== //===========================================================================
ACTOR BossTarget : SpecialSpot 87 ACTOR BossTarget : SpecialSpot
{ {
Game Doom
Height 32 Height 32
+NOBLOCKMAP +NOBLOCKMAP
+NOSECTOR +NOSECTOR

View file

@ -3,10 +3,8 @@
// Baron of Hell // Baron of Hell
// //
//=========================================================================== //===========================================================================
ACTOR BaronOfHell 3003 ACTOR BaronOfHell
{ {
Game Doom
SpawnID 3
Health 1000 Health 1000
Radius 24 Radius 24
Height 64 Height 64
@ -59,10 +57,8 @@ ACTOR BaronOfHell 3003
// Hell Knight // Hell Knight
// //
//=========================================================================== //===========================================================================
ACTOR HellKnight : BaronOfHell 69 ACTOR HellKnight : BaronOfHell
{ {
Game Doom
SpawnID 113
Health 500 Health 500
-BOSSDEATH -BOSSDEATH
SeeSound "knight/sight" SeeSound "knight/sight"
@ -110,8 +106,6 @@ ACTOR HellKnight : BaronOfHell 69
//=========================================================================== //===========================================================================
ACTOR BaronBall ACTOR BaronBall
{ {
Game Doom
SpawnID 154
Radius 6 Radius 6
Height 16 Height 16
Speed 15 Speed 15

View file

@ -3,10 +3,8 @@
// Cacodemon // Cacodemon
// //
//=========================================================================== //===========================================================================
ACTOR Cacodemon 3005 ACTOR Cacodemon
{ {
Game Doom
SpawnID 19
Health 400 Health 400
Radius 31 Radius 31
Height 56 Height 56
@ -61,8 +59,6 @@ ACTOR Cacodemon 3005
//=========================================================================== //===========================================================================
ACTOR CacodemonBall ACTOR CacodemonBall
{ {
Game Doom
SpawnID 126
Radius 6 Radius 6
Height 8 Height 8
Speed 10 Speed 10

View file

@ -4,10 +4,8 @@
// Cyberdemon // Cyberdemon
// //
//=========================================================================== //===========================================================================
ACTOR Cyberdemon 16 ACTOR Cyberdemon
{ {
Game Doom
SpawnID 114
Health 4000 Health 4000
Radius 40 Radius 40
Height 110 Height 110

View file

@ -1,9 +1,7 @@
// Gibbed marine ----------------------------------------------------------- // Gibbed marine -----------------------------------------------------------
actor GibbedMarine 10 actor GibbedMarine
{ {
Game Doom
SpawnID 145
States States
{ {
Spawn: Spawn:
@ -14,16 +12,14 @@ actor GibbedMarine 10
// Gibbed marine (extra copy) ---------------------------------------------- // Gibbed marine (extra copy) ----------------------------------------------
actor GibbedMarineExtra : GibbedMarine 12 actor GibbedMarineExtra : GibbedMarine
{ {
Game Doom
} }
// Dead marine ------------------------------------------------------------- // Dead marine -------------------------------------------------------------
actor DeadMarine 15 actor DeadMarine
{ {
Game Doom
States States
{ {
Spawn: Spawn:
@ -39,10 +35,9 @@ actor DeadMarine 15
// Dead zombie man --------------------------------------------------------- // Dead zombie man ---------------------------------------------------------
actor DeadZombieMan : ZombieMan 18 actor DeadZombieMan : ZombieMan
{ {
Skip_Super Skip_Super
Game Doom
DropItem None DropItem None
States States
{ {
@ -53,10 +48,9 @@ actor DeadZombieMan : ZombieMan 18
// Dead shotgun guy -------------------------------------------------------- // Dead shotgun guy --------------------------------------------------------
actor DeadShotgunGuy : ShotgunGuy 19 actor DeadShotgunGuy : ShotgunGuy
{ {
Skip_Super Skip_Super
Game Doom
DropItem None DropItem None
States States
{ {
@ -67,10 +61,9 @@ actor DeadShotgunGuy : ShotgunGuy 19
// Dead imp ---------------------------------------------------------------- // Dead imp ----------------------------------------------------------------
actor DeadDoomImp : DoomImp 20 actor DeadDoomImp : DoomImp
{ {
Skip_Super Skip_Super
Game Doom
States States
{ {
Spawn: Spawn:
@ -80,10 +73,9 @@ actor DeadDoomImp : DoomImp 20
// Dead demon -------------------------------------------------------------- // Dead demon --------------------------------------------------------------
actor DeadDemon : Demon 21 actor DeadDemon : Demon
{ {
Skip_Super Skip_Super
Game Doom
States States
{ {
Spawn: Spawn:
@ -93,10 +85,9 @@ actor DeadDemon : Demon 21
// Dead cacodemon ---------------------------------------------------------- // Dead cacodemon ----------------------------------------------------------
actor DeadCacodemon : Cacodemon 22 actor DeadCacodemon : Cacodemon
{ {
Skip_Super Skip_Super
Game Doom
States States
{ {
Spawn: Spawn:
@ -112,10 +103,9 @@ actor DeadCacodemon : Cacodemon 22
* a holdover from that.) * a holdover from that.)
*/ */
actor DeadLostSoul : LostSoul 23 actor DeadLostSoul : LostSoul
{ {
Skip_Super Skip_Super
Game Doom
States States
{ {
Spawn: Spawn:

View file

@ -3,10 +3,8 @@
// Pink Demon // Pink Demon
// //
//=========================================================================== //===========================================================================
ACTOR Demon 3002 ACTOR Demon
{ {
Game Doom
SpawnID 8
Health 150 Health 150
PainChance 180 PainChance 180
Speed 10 Speed 10
@ -57,10 +55,8 @@ ACTOR Demon 3002
// Spectre // Spectre
// //
//=========================================================================== //===========================================================================
ACTOR Spectre : Demon 58 ACTOR Spectre : Demon
{ {
Game Doom
SpawnID 9
+SHADOW +SHADOW
RenderStyle OptFuzzy RenderStyle OptFuzzy
Alpha 0.5 Alpha 0.5

View file

@ -1,9 +1,7 @@
// Clip -------------------------------------------------------------------- // Clip --------------------------------------------------------------------
ACTOR Clip : Ammo 2007 ACTOR Clip : Ammo
{ {
Game Doom
SpawnID 11
Inventory.PickupMessage "$GOTCLIP" Inventory.PickupMessage "$GOTCLIP"
Inventory.Amount 10 Inventory.Amount 10
Inventory.MaxAmount 200 Inventory.MaxAmount 200
@ -20,10 +18,8 @@ ACTOR Clip : Ammo 2007
// Clip box ---------------------------------------------------------------- // Clip box ----------------------------------------------------------------
ACTOR ClipBox : Clip 2048 ACTOR ClipBox : Clip
{ {
Game Doom
SpawnID 139
Inventory.PickupMessage "$GOTCLIPBOX" Inventory.PickupMessage "$GOTCLIPBOX"
Inventory.Amount 50 Inventory.Amount 50
States States
@ -36,10 +32,8 @@ ACTOR ClipBox : Clip 2048
// Rocket ------------------------------------------------------------------ // Rocket ------------------------------------------------------------------
ACTOR RocketAmmo : Ammo 2010 ACTOR RocketAmmo : Ammo
{ {
Game Doom
SpawnID 140
Inventory.PickupMessage "$GOTROCKET" Inventory.PickupMessage "$GOTROCKET"
Inventory.Amount 1 Inventory.Amount 1
Inventory.MaxAmount 50 Inventory.MaxAmount 50
@ -56,10 +50,8 @@ ACTOR RocketAmmo : Ammo 2010
// Rocket box -------------------------------------------------------------- // Rocket box --------------------------------------------------------------
ACTOR RocketBox : RocketAmmo 2046 ACTOR RocketBox : RocketAmmo
{ {
Game Doom
SpawnID 141
Inventory.PickupMessage "$GOTROCKBOX" Inventory.PickupMessage "$GOTROCKBOX"
Inventory.Amount 5 Inventory.Amount 5
States States
@ -72,10 +64,8 @@ ACTOR RocketBox : RocketAmmo 2046
// Cell -------------------------------------------------------------------- // Cell --------------------------------------------------------------------
ACTOR Cell : Ammo 2047 ACTOR Cell : Ammo
{ {
Game Doom
SpawnID 75
Inventory.PickupMessage "$GOTCELL" Inventory.PickupMessage "$GOTCELL"
Inventory.Amount 20 Inventory.Amount 20
Inventory.MaxAmount 300 Inventory.MaxAmount 300
@ -92,10 +82,8 @@ ACTOR Cell : Ammo 2047
// Cell pack --------------------------------------------------------------- // Cell pack ---------------------------------------------------------------
ACTOR CellPack : Cell 17 ACTOR CellPack : Cell
{ {
Game Doom
SpawnID 142
Inventory.PickupMessage "$GOTCELLBOX" Inventory.PickupMessage "$GOTCELLBOX"
Inventory.Amount 100 Inventory.Amount 100
States States
@ -108,10 +96,8 @@ ACTOR CellPack : Cell 17
// Shells ------------------------------------------------------------------ // Shells ------------------------------------------------------------------
ACTOR Shell : Ammo 2008 ACTOR Shell : Ammo
{ {
Game Doom
SpawnID 12
Inventory.PickupMessage "$GOTSHELLS" Inventory.PickupMessage "$GOTSHELLS"
Inventory.Amount 4 Inventory.Amount 4
Inventory.MaxAmount 50 Inventory.MaxAmount 50
@ -128,10 +114,8 @@ ACTOR Shell : Ammo 2008
// Shell box --------------------------------------------------------------- // Shell box ---------------------------------------------------------------
ACTOR ShellBox : Shell 2049 ACTOR ShellBox : Shell
{ {
Game Doom
SpawnID 143
Inventory.PickupMessage "$GOTSHELLBOX" Inventory.PickupMessage "$GOTSHELLBOX"
Inventory.Amount 20 Inventory.Amount 20
States States
@ -144,10 +128,8 @@ ACTOR ShellBox : Shell 2049
// Backpack --------------------------------------------------------------- // Backpack ---------------------------------------------------------------
ACTOR Backpack : BackpackItem 8 ACTOR Backpack : BackpackItem
{ {
Game Doom
SpawnID 144
Height 26 Height 26
Inventory.PickupMessage "$GOTBACKPACK" Inventory.PickupMessage "$GOTBACKPACK"
States States

View file

@ -1,10 +1,8 @@
// Armor bonus -------------------------------------------------------------- // Armor bonus --------------------------------------------------------------
Actor ArmorBonus : BasicArmorBonus 2015 Actor ArmorBonus : BasicArmorBonus
{ {
Game Doom
SpawnID 22
Radius 20 Radius 20
Height 16 Height 16
Inventory.Pickupmessage "$GOTARMBONUS" Inventory.Pickupmessage "$GOTARMBONUS"
@ -24,10 +22,8 @@ Actor ArmorBonus : BasicArmorBonus 2015
// Green armor -------------------------------------------------------------- // Green armor --------------------------------------------------------------
Actor GreenArmor : BasicArmorPickup 2018 Actor GreenArmor : BasicArmorPickup
{ {
Game Doom
SpawnID 68
Radius 20 Radius 20
Height 16 Height 16
Inventory.Pickupmessage "$GOTARMOR" Inventory.Pickupmessage "$GOTARMOR"
@ -45,10 +41,8 @@ Actor GreenArmor : BasicArmorPickup 2018
// Blue armor --------------------------------------------------------------- // Blue armor ---------------------------------------------------------------
Actor BlueArmor : BasicArmorPickup 2019 Actor BlueArmor : BasicArmorPickup
{ {
Game Doom
SpawnID 69
Radius 20 Radius 20
Height 16 Height 16
Inventory.Pickupmessage "$GOTMEGA" Inventory.Pickupmessage "$GOTMEGA"

View file

@ -1,9 +1,7 @@
// Invulnerability Sphere --------------------------------------------------- // Invulnerability Sphere ---------------------------------------------------
ACTOR InvulnerabilitySphere : PowerupGiver 2022 ACTOR InvulnerabilitySphere : PowerupGiver
{ {
Game Doom
SpawnID 133
+COUNTITEM +COUNTITEM
+INVENTORY.AUTOACTIVATE +INVENTORY.AUTOACTIVATE
+INVENTORY.ALWAYSPICKUP +INVENTORY.ALWAYSPICKUP
@ -22,10 +20,8 @@ ACTOR InvulnerabilitySphere : PowerupGiver 2022
// Soulsphere -------------------------------------------------------------- // Soulsphere --------------------------------------------------------------
ACTOR Soulsphere : Health 2013 ACTOR Soulsphere : Health
{ {
Game Doom
SpawnID 25
+COUNTITEM +COUNTITEM
+INVENTORY.AUTOACTIVATE +INVENTORY.AUTOACTIVATE
+INVENTORY.ALWAYSPICKUP +INVENTORY.ALWAYSPICKUP
@ -58,10 +54,8 @@ actor BlueArmorForMegasphere : BlueArmor
Armor.SaveAmount 200 Armor.SaveAmount 200
} }
ACTOR Megasphere : CustomInventory 83 ACTOR Megasphere : CustomInventory
{ {
Game Doom
SpawnID 132
+COUNTITEM +COUNTITEM
+INVENTORY.ALWAYSPICKUP +INVENTORY.ALWAYSPICKUP
Inventory.PickupMessage "$GOTMSPHERE" Inventory.PickupMessage "$GOTMSPHERE"
@ -80,10 +74,8 @@ ACTOR Megasphere : CustomInventory 83
// Invisibility ------------------------------------------------------------- // Invisibility -------------------------------------------------------------
ACTOR BlurSphere : PowerupGiver 2024 ACTOR BlurSphere : PowerupGiver
{ {
Game Doom
SpawnID 135
+COUNTITEM +COUNTITEM
+VISIBILITYPULSE +VISIBILITYPULSE
+INVENTORY.AUTOACTIVATE +INVENTORY.AUTOACTIVATE
@ -103,10 +95,8 @@ ACTOR BlurSphere : PowerupGiver 2024
// Radiation suit (aka iron feet) ------------------------------------------- // Radiation suit (aka iron feet) -------------------------------------------
ACTOR RadSuit : PowerupGiver 2025 ACTOR RadSuit : PowerupGiver
{ {
Game Doom
SpawnID 136
Height 46 Height 46
+INVENTORY.AUTOACTIVATE +INVENTORY.AUTOACTIVATE
+INVENTORY.ALWAYSPICKUP +INVENTORY.ALWAYSPICKUP
@ -123,10 +113,8 @@ ACTOR RadSuit : PowerupGiver 2025
// infrared ----------------------------------------------------------------- // infrared -----------------------------------------------------------------
ACTOR Infrared : PowerupGiver 2045 ACTOR Infrared : PowerupGiver
{ {
Game Doom
SpawnID 138
+COUNTITEM +COUNTITEM
+INVENTORY.AUTOACTIVATE +INVENTORY.AUTOACTIVATE
+INVENTORY.ALWAYSPICKUP +INVENTORY.ALWAYSPICKUP
@ -144,10 +132,8 @@ ACTOR Infrared : PowerupGiver 2045
// Allmap ------------------------------------------------------------------- // Allmap -------------------------------------------------------------------
ACTOR Allmap : MapRevealer 2026 ACTOR Allmap : MapRevealer
{ {
Game Doom
SpawnID 137
+COUNTITEM +COUNTITEM
+INVENTORY.FANCYPICKUPSOUND +INVENTORY.FANCYPICKUPSOUND
+INVENTORY.ALWAYSPICKUP +INVENTORY.ALWAYSPICKUP
@ -164,10 +150,8 @@ ACTOR Allmap : MapRevealer 2026
// Berserk ------------------------------------------------------------------ // Berserk ------------------------------------------------------------------
ACTOR Berserk : CustomInventory 2023 ACTOR Berserk : CustomInventory
{ {
Game Doom
SpawnID 134
+COUNTITEM +COUNTITEM
+INVENTORY.ALWAYSPICKUP +INVENTORY.ALWAYSPICKUP
Inventory.PickupMessage "$GOTBERSERK" Inventory.PickupMessage "$GOTBERSERK"

View file

@ -1,9 +1,8 @@
// Tech lamp --------------------------------------------------------------- // Tech lamp ---------------------------------------------------------------
ACTOR TechLamp 85 ACTOR TechLamp
{ {
Game Doom
Radius 16 Radius 16
Height 80 Height 80
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -18,9 +17,8 @@ ACTOR TechLamp 85
// Tech lamp 2 ------------------------------------------------------------- // Tech lamp 2 -------------------------------------------------------------
ACTOR TechLamp2 86 ACTOR TechLamp2
{ {
Game Doom
Radius 16 Radius 16
Height 60 Height 60
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -35,9 +33,8 @@ ACTOR TechLamp2 86
// Column ------------------------------------------------------------------ // Column ------------------------------------------------------------------
ACTOR Column 2028 ACTOR Column
{ {
Game Doom
Radius 16 Radius 16
Height 48 Height 48
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -52,9 +49,8 @@ ACTOR Column 2028
// Tall green column ------------------------------------------------------- // Tall green column -------------------------------------------------------
ACTOR TallGreenColumn 30 ACTOR TallGreenColumn
{ {
Game Doom
Radius 16 Radius 16
Height 52 Height 52
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -69,9 +65,8 @@ ACTOR TallGreenColumn 30
// Short green column ------------------------------------------------------ // Short green column ------------------------------------------------------
ACTOR ShortGreenColumn 31 ACTOR ShortGreenColumn
{ {
Game Doom
Radius 16 Radius 16
Height 40 Height 40
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -86,9 +81,8 @@ ACTOR ShortGreenColumn 31
// Tall red column --------------------------------------------------------- // Tall red column ---------------------------------------------------------
ACTOR TallRedColumn 32 ACTOR TallRedColumn
{ {
Game Doom
Radius 16 Radius 16
Height 52 Height 52
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -103,9 +97,8 @@ ACTOR TallRedColumn 32
// Short red column -------------------------------------------------------- // Short red column --------------------------------------------------------
ACTOR ShortRedColumn 33 ACTOR ShortRedColumn
{ {
Game Doom
Radius 16 Radius 16
Height 40 Height 40
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -120,9 +113,8 @@ ACTOR ShortRedColumn 33
// Skull column ------------------------------------------------------------ // Skull column ------------------------------------------------------------
ACTOR SkullColumn 37 ACTOR SkullColumn
{ {
Game Doom
Radius 16 Radius 16
Height 40 Height 40
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -137,9 +129,8 @@ ACTOR SkullColumn 37
// Heart column ------------------------------------------------------------ // Heart column ------------------------------------------------------------
ACTOR HeartColumn 36 ACTOR HeartColumn
{ {
Game Doom
Radius 16 Radius 16
Height 40 Height 40
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -154,9 +145,8 @@ ACTOR HeartColumn 36
// Evil eye ---------------------------------------------------------------- // Evil eye ----------------------------------------------------------------
ACTOR EvilEye 41 ACTOR EvilEye
{ {
Game Doom
Radius 16 Radius 16
Height 54 Height 54
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -171,9 +161,8 @@ ACTOR EvilEye 41
// Floating skull ---------------------------------------------------------- // Floating skull ----------------------------------------------------------
ACTOR FloatingSkull 42 ACTOR FloatingSkull
{ {
Game Doom
Radius 16 Radius 16
Height 26 Height 26
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -188,9 +177,8 @@ ACTOR FloatingSkull 42
// Torch tree -------------------------------------------------------------- // Torch tree --------------------------------------------------------------
ACTOR TorchTree 43 ACTOR TorchTree
{ {
Game Doom
Radius 16 Radius 16
Height 56 Height 56
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -205,9 +193,8 @@ ACTOR TorchTree 43
// Blue torch -------------------------------------------------------------- // Blue torch --------------------------------------------------------------
ACTOR BlueTorch 44 ACTOR BlueTorch
{ {
Game Doom
Radius 16 Radius 16
Height 68 Height 68
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -222,9 +209,8 @@ ACTOR BlueTorch 44
// Green torch ------------------------------------------------------------- // Green torch -------------------------------------------------------------
ACTOR GreenTorch 45 ACTOR GreenTorch
{ {
Game Doom
Radius 16 Radius 16
Height 68 Height 68
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -239,9 +225,8 @@ ACTOR GreenTorch 45
// Red torch --------------------------------------------------------------- // Red torch ---------------------------------------------------------------
ACTOR RedTorch 46 ACTOR RedTorch
{ {
Game Doom
Radius 16 Radius 16
Height 68 Height 68
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -256,9 +241,8 @@ ACTOR RedTorch 46
// Short blue torch -------------------------------------------------------- // Short blue torch --------------------------------------------------------
ACTOR ShortBlueTorch 55 ACTOR ShortBlueTorch
{ {
Game Doom
Radius 16 Radius 16
Height 37 Height 37
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -273,9 +257,8 @@ ACTOR ShortBlueTorch 55
// Short green torch ------------------------------------------------------- // Short green torch -------------------------------------------------------
ACTOR ShortGreenTorch 56 ACTOR ShortGreenTorch
{ {
Game Doom
Radius 16 Radius 16
Height 37 Height 37
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -290,9 +273,8 @@ ACTOR ShortGreenTorch 56
// Short red torch --------------------------------------------------------- // Short red torch ---------------------------------------------------------
ACTOR ShortRedTorch 57 ACTOR ShortRedTorch
{ {
Game Doom
Radius 16 Radius 16
Height 37 Height 37
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -307,9 +289,8 @@ ACTOR ShortRedTorch 57
// Stalagtite -------------------------------------------------------------- // Stalagtite --------------------------------------------------------------
ACTOR Stalagtite 47 ACTOR Stalagtite
{ {
Game Doom
Radius 16 Radius 16
Height 40 Height 40
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -324,9 +305,8 @@ ACTOR Stalagtite 47
// Tech pillar ------------------------------------------------------------- // Tech pillar -------------------------------------------------------------
ACTOR TechPillar 48 ACTOR TechPillar
{ {
Game Doom
Radius 16 Radius 16
Height 128 Height 128
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -341,9 +321,8 @@ ACTOR TechPillar 48
// Candle stick ------------------------------------------------------------ // Candle stick ------------------------------------------------------------
ACTOR Candlestick 34 ACTOR Candlestick
{ {
Game Doom
Radius 20 Radius 20
Height 14 Height 14
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -357,9 +336,8 @@ ACTOR Candlestick 34
// Candelabra -------------------------------------------------------------- // Candelabra --------------------------------------------------------------
ACTOR Candelabra 35 ACTOR Candelabra
{ {
Game Doom
Radius 16 Radius 16
Height 60 Height 60
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -374,9 +352,8 @@ ACTOR Candelabra 35
// Bloody twitch ----------------------------------------------------------- // Bloody twitch -----------------------------------------------------------
ACTOR BloodyTwitch 49 ACTOR BloodyTwitch
{ {
Game Doom
Radius 16 Radius 16
Height 68 Height 68
+SOLID +SOLID
@ -395,9 +372,8 @@ ACTOR BloodyTwitch 49
// Meat 2 ------------------------------------------------------------------ // Meat 2 ------------------------------------------------------------------
ACTOR Meat2 50 ACTOR Meat2
{ {
Game Doom
Radius 16 Radius 16
Height 84 Height 84
+SOLID +SOLID
@ -413,9 +389,8 @@ ACTOR Meat2 50
// Meat 3 ------------------------------------------------------------------ // Meat 3 ------------------------------------------------------------------
ACTOR Meat3 51 ACTOR Meat3
{ {
Game Doom
Radius 16 Radius 16
Height 84 Height 84
+SOLID +SOLID
@ -431,9 +406,8 @@ ACTOR Meat3 51
// Meat 4 ------------------------------------------------------------------ // Meat 4 ------------------------------------------------------------------
ACTOR Meat4 52 ACTOR Meat4
{ {
Game Doom
Radius 16 Radius 16
Height 68 Height 68
+SOLID +SOLID
@ -449,9 +423,8 @@ ACTOR Meat4 52
// Meat 5 ------------------------------------------------------------------ // Meat 5 ------------------------------------------------------------------
ACTOR Meat5 53 ACTOR Meat5
{ {
Game Doom
Radius 16 Radius 16
Height 52 Height 52
+SOLID +SOLID
@ -467,48 +440,42 @@ ACTOR Meat5 53
// Nonsolid meat ----------------------------------------------------------- // Nonsolid meat -----------------------------------------------------------
ACTOR NonsolidMeat2 : Meat2 59 ACTOR NonsolidMeat2 : Meat2
{ {
Game Doom
-SOLID -SOLID
Radius 20 Radius 20
} }
ACTOR NonsolidMeat3 : Meat3 61 ACTOR NonsolidMeat3 : Meat3
{ {
Game Doom
-SOLID -SOLID
Radius 20 Radius 20
} }
ACTOR NonsolidMeat4 : Meat4 60 ACTOR NonsolidMeat4 : Meat4
{ {
Game Doom
-SOLID -SOLID
Radius 20 Radius 20
} }
ACTOR NonsolidMeat5 : Meat5 62 ACTOR NonsolidMeat5 : Meat5
{ {
Game Doom
-SOLID -SOLID
Radius 20 Radius 20
} }
// Nonsolid bloody twitch -------------------------------------------------- // Nonsolid bloody twitch --------------------------------------------------
ACTOR NonsolidTwitch : BloodyTwitch 63 ACTOR NonsolidTwitch : BloodyTwitch
{ {
Game Doom
-SOLID -SOLID
Radius 20 Radius 20
} }
// Head on a stick --------------------------------------------------------- // Head on a stick ---------------------------------------------------------
ACTOR HeadOnAStick 27 ACTOR HeadOnAStick
{ {
Game Doom
Radius 16 Radius 16
Height 56 Height 56
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -523,9 +490,8 @@ ACTOR HeadOnAStick 27
// Heads (plural!) on a stick ---------------------------------------------- // Heads (plural!) on a stick ----------------------------------------------
ACTOR HeadsOnAStick 28 ACTOR HeadsOnAStick
{ {
Game Doom
Radius 16 Radius 16
Height 64 Height 64
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -540,9 +506,8 @@ ACTOR HeadsOnAStick 28
// Head candles ------------------------------------------------------------ // Head candles ------------------------------------------------------------
ACTOR HeadCandles 29 ACTOR HeadCandles
{ {
Game Doom
Radius 16 Radius 16
Height 42 Height 42
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -557,9 +522,8 @@ ACTOR HeadCandles 29
// Dead on a stick --------------------------------------------------------- // Dead on a stick ---------------------------------------------------------
ACTOR DeadStick 25 ACTOR DeadStick
{ {
Game Doom
Radius 16 Radius 16
Height 64 Height 64
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -574,9 +538,8 @@ ACTOR DeadStick 25
// Still alive on a stick -------------------------------------------------- // Still alive on a stick --------------------------------------------------
ACTOR LiveStick 26 ACTOR LiveStick
{ {
Game Doom
Radius 16 Radius 16
Height 64 Height 64
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -592,9 +555,8 @@ ACTOR LiveStick 26
// Big tree ---------------------------------------------------------------- // Big tree ----------------------------------------------------------------
ACTOR BigTree 54 ACTOR BigTree
{ {
Game Doom
Radius 32 Radius 32
Height 108 Height 108
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -609,10 +571,8 @@ ACTOR BigTree 54
// Burning barrel ---------------------------------------------------------- // Burning barrel ----------------------------------------------------------
ACTOR BurningBarrel 70 ACTOR BurningBarrel
{ {
Game Doom
SpawnID 149
Radius 16 Radius 16
Height 32 Height 32
ProjectilePassHeight -16 ProjectilePassHeight -16
@ -627,9 +587,8 @@ ACTOR BurningBarrel 70
// Hanging with no guts ---------------------------------------------------- // Hanging with no guts ----------------------------------------------------
ACTOR HangNoGuts 73 ACTOR HangNoGuts
{ {
Game Doom
Radius 16 Radius 16
Height 88 Height 88
+SOLID +SOLID
@ -645,9 +604,8 @@ ACTOR HangNoGuts 73
// Hanging from bottom with no brain --------------------------------------- // Hanging from bottom with no brain ---------------------------------------
ACTOR HangBNoBrain 74 ACTOR HangBNoBrain
{ {
Game Doom
Radius 16 Radius 16
Height 88 Height 88
+SOLID +SOLID
@ -663,9 +621,8 @@ ACTOR HangBNoBrain 74
// Hanging from top, looking down ------------------------------------------ // Hanging from top, looking down ------------------------------------------
ACTOR HangTLookingDown 75 ACTOR HangTLookingDown
{ {
Game Doom
Radius 16 Radius 16
Height 64 Height 64
+SOLID +SOLID
@ -681,9 +638,8 @@ ACTOR HangTLookingDown 75
// Hanging from top, looking up -------------------------------------------- // Hanging from top, looking up --------------------------------------------
ACTOR HangTLookingUp 77 ACTOR HangTLookingUp
{ {
Game Doom
Radius 16 Radius 16
Height 64 Height 64
+SOLID +SOLID
@ -699,9 +655,8 @@ ACTOR HangTLookingUp 77
// Hanging from top, skully ------------------------------------------------ // Hanging from top, skully ------------------------------------------------
ACTOR HangTSkull 76 ACTOR HangTSkull
{ {
Game Doom
Radius 16 Radius 16
Height 64 Height 64
+SOLID +SOLID
@ -717,9 +672,8 @@ ACTOR HangTSkull 76
// Hanging from top without a brain ---------------------------------------- // Hanging from top without a brain ----------------------------------------
ACTOR HangTNoBrain 78 ACTOR HangTNoBrain
{ {
Game Doom
Radius 16 Radius 16
Height 64 Height 64
+SOLID +SOLID
@ -735,10 +689,8 @@ ACTOR HangTNoBrain 78
// Colon gibs -------------------------------------------------------------- // Colon gibs --------------------------------------------------------------
ACTOR ColonGibs 79 ACTOR ColonGibs
{ {
Game Doom
SpawnID 147
Radius 20 Radius 20
Height 4 Height 4
+NOBLOCKMAP +NOBLOCKMAP
@ -753,10 +705,8 @@ ACTOR ColonGibs 79
// Small pool o' blood ----------------------------------------------------- // Small pool o' blood -----------------------------------------------------
ACTOR SmallBloodPool 80 ACTOR SmallBloodPool
{ {
Game Doom
SpawnID 148
Radius 20 Radius 20
Height 1 Height 1
+NOBLOCKMAP +NOBLOCKMAP
@ -771,10 +721,8 @@ ACTOR SmallBloodPool 80
// brain stem lying on the ground ------------------------------------------ // brain stem lying on the ground ------------------------------------------
ACTOR BrainStem 81 ACTOR BrainStem
{ {
Game Doom
SpawnID 150
Radius 20 Radius 20
Height 4 Height 4
+NOBLOCKMAP +NOBLOCKMAP
@ -790,9 +738,8 @@ ACTOR BrainStem 81
// Grey stalagmite (unused Doom sprite, definition taken from Skulltag ----- // Grey stalagmite (unused Doom sprite, definition taken from Skulltag -----
ACTOR Stalagmite 5050 ACTOR Stalagmite
{ {
Game Doom
Radius 16 Radius 16
Height 48 Height 48
+SOLID +SOLID

View file

@ -1,9 +1,7 @@
// Health bonus ------------------------------------------------------------- // Health bonus -------------------------------------------------------------
ACTOR HealthBonus : Health 2014 ACTOR HealthBonus : Health
{ {
Game Doom
SpawnID 152
+COUNTITEM +COUNTITEM
+INVENTORY.ALWAYSPICKUP +INVENTORY.ALWAYSPICKUP
Inventory.Amount 1 Inventory.Amount 1
@ -19,10 +17,8 @@ ACTOR HealthBonus : Health 2014
// Stimpack ----------------------------------------------------------------- // Stimpack -----------------------------------------------------------------
ACTOR Stimpack : Health 2011 ACTOR Stimpack : Health
{ {
Game Doom
SpawnID 23
Inventory.Amount 10 Inventory.Amount 10
Inventory.PickupMessage "$GOTSTIM" Inventory.PickupMessage "$GOTSTIM"
States States
@ -35,10 +31,8 @@ ACTOR Stimpack : Health 2011
// Medikit ----------------------------------------------------------------- // Medikit -----------------------------------------------------------------
ACTOR Medikit : Health 2012 ACTOR Medikit : Health
{ {
Game Doom
SpawnID 24
Inventory.Amount 25 Inventory.Amount 25
Inventory.PickupMessage "$GOTMEDIKIT" Inventory.PickupMessage "$GOTMEDIKIT"
Health.LowMessage 25, "$GOTMEDINEED" Health.LowMessage 25, "$GOTMEDINEED"

View file

@ -3,10 +3,8 @@
// Imp // Imp
// //
//=========================================================================== //===========================================================================
ACTOR DoomImp 3001 ACTOR DoomImp
{ {
Game Doom
SpawnID 5
Health 60 Health 60
Radius 20 Radius 20
Height 56 Height 56
@ -66,8 +64,6 @@ ACTOR DoomImp 3001
//=========================================================================== //===========================================================================
ACTOR DoomImpBall ACTOR DoomImpBall
{ {
Game Doom
SpawnID 10
Radius 6 Radius 6
Height 8 Height 8
Speed 10 Speed 10

View file

@ -8,10 +8,8 @@ Actor DoomKey : Key
// Blue key card ------------------------------------------------------------ // Blue key card ------------------------------------------------------------
Actor BlueCard : DoomKey 5 Actor BlueCard : DoomKey
{ {
Game Doom
SpawnID 85
Inventory.Pickupmessage "$GOTBLUECARD" Inventory.Pickupmessage "$GOTBLUECARD"
Inventory.Icon "STKEYS0" Inventory.Icon "STKEYS0"
States States
@ -25,10 +23,8 @@ Actor BlueCard : DoomKey 5
// Yellow key card ---------------------------------------------------------- // Yellow key card ----------------------------------------------------------
Actor YellowCard : DoomKey 6 Actor YellowCard : DoomKey
{ {
Game Doom
SpawnID 87
Inventory.Pickupmessage "$GOTYELWCARD" Inventory.Pickupmessage "$GOTYELWCARD"
Inventory.Icon "STKEYS1" Inventory.Icon "STKEYS1"
States States
@ -42,10 +38,8 @@ Actor YellowCard : DoomKey 6
// Red key card ------------------------------------------------------------- // Red key card -------------------------------------------------------------
Actor RedCard : DoomKey 13 Actor RedCard : DoomKey
{ {
Game Doom
SpawnID 86
Inventory.Pickupmessage "$GOTREDCARD" Inventory.Pickupmessage "$GOTREDCARD"
Inventory.Icon "STKEYS2" Inventory.Icon "STKEYS2"
States States
@ -59,10 +53,8 @@ Actor RedCard : DoomKey 13
// Blue skull key ----------------------------------------------------------- // Blue skull key -----------------------------------------------------------
Actor BlueSkull : DoomKey 40 Actor BlueSkull : DoomKey
{ {
Game Doom
SpawnID 90
Inventory.Pickupmessage "$GOTBLUESKUL" Inventory.Pickupmessage "$GOTBLUESKUL"
Inventory.Icon "STKEYS3" Inventory.Icon "STKEYS3"
States States
@ -76,10 +68,8 @@ Actor BlueSkull : DoomKey 40
// Yellow skull key --------------------------------------------------------- // Yellow skull key ---------------------------------------------------------
Actor YellowSkull : DoomKey 39 Actor YellowSkull : DoomKey
{ {
Game Doom
SpawnID 88
Inventory.Pickupmessage "$GOTYELWSKUL" Inventory.Pickupmessage "$GOTYELWSKUL"
Inventory.Icon "STKEYS4" Inventory.Icon "STKEYS4"
States States
@ -93,10 +83,8 @@ Actor YellowSkull : DoomKey 39
// Red skull key ------------------------------------------------------------ // Red skull key ------------------------------------------------------------
Actor RedSkull : DoomKey 38 Actor RedSkull : DoomKey
{ {
Game Doom
SpawnID 89
Inventory.Pickupmessage "$GOTREDSKUL" Inventory.Pickupmessage "$GOTREDSKUL"
Inventory.Icon "STKEYS5" Inventory.Icon "STKEYS5"
States States

View file

@ -1,9 +1,7 @@
// The barrel of green goop ------------------------------------------------ // The barrel of green goop ------------------------------------------------
ACTOR ExplosiveBarrel 2035 ACTOR ExplosiveBarrel
{ {
Game Doom
SpawnID 125
Health 20 Health 20
Radius 10 Radius 10
Height 42 Height 42
@ -37,8 +35,6 @@ ACTOR ExplosiveBarrel 2035
ACTOR BulletPuff ACTOR BulletPuff
{ {
Game Doom
SpawnID 131
+NOBLOCKMAP +NOBLOCKMAP
+NOGRAVITY +NOGRAVITY
+ALLOWPARTICLES +ALLOWPARTICLES
@ -85,9 +81,8 @@ ACTOR DoomUnusedStates
// MBF Beta emulation items // MBF Beta emulation items
Actor EvilSceptre : ScoreItem 2016 Actor EvilSceptre : ScoreItem
{ {
Game Doom
Inventory.PickupMessage "$BETA_BONUS3" Inventory.PickupMessage "$BETA_BONUS3"
States States
{ {
@ -97,9 +92,8 @@ Actor EvilSceptre : ScoreItem 2016
} }
} }
Actor UnholyBible : ScoreItem 2017 Actor UnholyBible : ScoreItem
{ {
Game Doom
Inventory.PickupMessage "$BETA_BONUS4" Inventory.PickupMessage "$BETA_BONUS4"
States States
{ {

View file

@ -17,7 +17,6 @@ ACTOR DoomWeapon : Weapon
ACTOR Fist : Weapon ACTOR Fist : Weapon
{ {
Game Doom
Weapon.SelectionOrder 3700 Weapon.SelectionOrder 3700
Weapon.Kickback 100 Weapon.Kickback 100
Obituary "$OB_MPFIST" Obituary "$OB_MPFIST"
@ -52,9 +51,8 @@ ACTOR Fist : Weapon
// //
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
ACTOR Pistol : DoomWeapon 5010 ACTOR Pistol : DoomWeapon
{ {
Game Doom
Weapon.SelectionOrder 1900 Weapon.SelectionOrder 1900
Weapon.AmmoUse 1 Weapon.AmmoUse 1
Weapon.AmmoGive 20 Weapon.AmmoGive 20
@ -97,10 +95,8 @@ ACTOR Pistol : DoomWeapon 5010
// //
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
ACTOR Chainsaw : Weapon 2005 ACTOR Chainsaw : Weapon
{ {
Game Doom
SpawnID 32
Weapon.Kickback 0 Weapon.Kickback 0
Weapon.SelectionOrder 2200 Weapon.SelectionOrder 2200
Weapon.UpSound "weapons/sawup" Weapon.UpSound "weapons/sawup"
@ -137,10 +133,8 @@ ACTOR Chainsaw : Weapon 2005
// //
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
ACTOR Shotgun : DoomWeapon 2001 ACTOR Shotgun : DoomWeapon
{ {
Game Doom
SpawnID 27
Weapon.SelectionOrder 1300 Weapon.SelectionOrder 1300
Weapon.AmmoUse 1 Weapon.AmmoUse 1
Weapon.AmmoGive 8 Weapon.AmmoGive 8
@ -184,10 +178,8 @@ ACTOR Shotgun : DoomWeapon 2001
// //
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
ACTOR SuperShotgun : DoomWeapon 82 ACTOR SuperShotgun : DoomWeapon
{ {
Game Doom
SpawnID 33
Weapon.SelectionOrder 400 Weapon.SelectionOrder 400
Weapon.AmmoUse 2 Weapon.AmmoUse 2
Weapon.AmmoGive 8 Weapon.AmmoGive 8
@ -238,10 +230,8 @@ ACTOR SuperShotgun : DoomWeapon 82
// //
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
ACTOR Chaingun : DoomWeapon 2002 ACTOR Chaingun : DoomWeapon
{ {
Game Doom
SpawnID 28
Weapon.SelectionOrder 700 Weapon.SelectionOrder 700
Weapon.AmmoUse 1 Weapon.AmmoUse 1
Weapon.AmmoGive 20 Weapon.AmmoGive 20
@ -281,10 +271,8 @@ ACTOR Chaingun : DoomWeapon 2002
// //
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
ACTOR RocketLauncher : DoomWeapon 2003 ACTOR RocketLauncher : DoomWeapon
{ {
Game Doom
SpawnID 29
Weapon.SelectionOrder 2500 Weapon.SelectionOrder 2500
Weapon.AmmoUse 1 Weapon.AmmoUse 1
Weapon.AmmoGive 2 Weapon.AmmoGive 2
@ -321,8 +309,6 @@ ACTOR RocketLauncher : DoomWeapon 2003
ACTOR Rocket ACTOR Rocket
{ {
Game Doom
SpawnID 127
Radius 11 Radius 11
Height 8 Height 8
Speed 20 Speed 20
@ -355,8 +341,6 @@ ACTOR Rocket
ACTOR Grenade ACTOR Grenade
{ {
Game Doom
SpawnID 216
Radius 8 Radius 8
Height 8 Height 8
Speed 25 Speed 25
@ -404,10 +388,8 @@ ACTOR Grenade
// //
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
ACTOR PlasmaRifle : DoomWeapon 2004 ACTOR PlasmaRifle : DoomWeapon
{ {
Game Doom
SpawnID 30
Weapon.SelectionOrder 100 Weapon.SelectionOrder 100
Weapon.AmmoUse 1 Weapon.AmmoUse 1
Weapon.AmmoGive 40 Weapon.AmmoGive 40
@ -442,8 +424,6 @@ ACTOR PlasmaRifle : DoomWeapon 2004
ACTOR PlasmaBall ACTOR PlasmaBall
{ {
Game Doom
SpawnID 51
Radius 13 Radius 13
Height 8 Height 8
Speed 25 Speed 25
@ -508,11 +488,9 @@ ACTOR PlasmaBall2 : PlasmaBall1
// //
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
ACTOR BFG9000 : DoomWeapon 2006 ACTOR BFG9000 : DoomWeapon
{ {
Game Doom
Height 20 Height 20
SpawnID 31
Weapon.SelectionOrder 2800 Weapon.SelectionOrder 2800
Weapon.AmmoUse 40 Weapon.AmmoUse 40
Weapon.AmmoGive 40 Weapon.AmmoGive 40
@ -556,8 +534,6 @@ ACTOR BFG9000 : DoomWeapon 2006
ACTOR BFGBall ACTOR BFGBall
{ {
Game Doom
SpawnID 128
Radius 13 Radius 13
Height 8 Height 8
Speed 25 Speed 25

View file

@ -3,10 +3,8 @@
// Mancubus // Mancubus
// //
//=========================================================================== //===========================================================================
ACTOR Fatso 67 ACTOR Fatso
{ {
Game Doom
SpawnID 112
Health 600 Health 600
Radius 48 Radius 48
Height 64 Height 64
@ -65,8 +63,6 @@ ACTOR Fatso 67
//=========================================================================== //===========================================================================
ACTOR FatShot ACTOR FatShot
{ {
Game Doom
SpawnID 153
Radius 6 Radius 6
Height 8 Height 8
Speed 20 Speed 20

View file

@ -3,9 +3,8 @@
// Commander Keen // Commander Keen
// //
//=========================================================================== //===========================================================================
ACTOR CommanderKeen 72 ACTOR CommanderKeen
{ {
Game Doom
Health 100 Health 100
Radius 16 Radius 16
Height 72 Height 72

View file

@ -3,10 +3,8 @@
// Lost Soul // Lost Soul
// //
//=========================================================================== //===========================================================================
ACTOR LostSoul 3006 ACTOR LostSoul
{ {
Game Doom
SpawnID 110
Health 100 Health 100
Radius 16 Radius 16
Height 56 Height 56
@ -50,7 +48,7 @@ ACTOR LostSoul 3006
} }
} }
Actor BetaSkull : LostSoul 9037 Actor BetaSkull : LostSoul
{ {
States States
{ {

View file

@ -3,10 +3,8 @@
// Pain Elemental // Pain Elemental
// //
//=========================================================================== //===========================================================================
ACTOR PainElemental 71 ACTOR PainElemental
{ {
Game Doom
SpawnID 115
Health 400 Health 400
Radius 31 Radius 31
Height 56 Height 56

View file

@ -4,10 +4,8 @@
// Zombie man // Zombie man
// //
//=========================================================================== //===========================================================================
ACTOR ZombieMan 3004 ACTOR ZombieMan
{ {
Game Doom
SpawnID 4
Health 20 Health 20
Radius 20 Radius 20
Height 56 Height 56
@ -65,10 +63,8 @@ ACTOR ZombieMan 3004
// Sergeant / Shotgun guy // Sergeant / Shotgun guy
// //
//=========================================================================== //===========================================================================
ACTOR ShotgunGuy 9 ACTOR ShotgunGuy
{ {
Game Doom
SpawnID 1
Health 30 Health 30
Radius 20 Radius 20
Height 56 Height 56
@ -127,10 +123,8 @@ ACTOR ShotgunGuy 9
// Chaingunner // Chaingunner
// //
//=========================================================================== //===========================================================================
ACTOR ChaingunGuy 65 ACTOR ChaingunGuy
{ {
Game Doom
SpawnID 2
Health 70 Health 70
Radius 20 Radius 20
Height 56 Height 56
@ -189,10 +183,8 @@ ACTOR ChaingunGuy 65
// SS Nazi // SS Nazi
// //
//=========================================================================== //===========================================================================
ACTOR WolfensteinSS 84 ACTOR WolfensteinSS
{ {
Game Doom
SpawnID 116
Health 50 Health 50
Radius 20 Radius 20
Height 56 Height 56

View file

@ -3,10 +3,8 @@
// Revenant // Revenant
// //
//=========================================================================== //===========================================================================
ACTOR Revenant 66 ACTOR Revenant
{ {
Game Doom
SpawnID 20
Health 300 Health 300
Radius 20 Radius 20
Height 56 Height 56
@ -70,8 +68,6 @@ ACTOR Revenant 66
//=========================================================================== //===========================================================================
ACTOR RevenantTracer ACTOR RevenantTracer
{ {
Game Doom
SpawnID 53
Radius 11 Radius 11
Height 8 Height 8
Speed 10 Speed 10

View file

@ -1,10 +1,8 @@
// Scriptable marine ------------------------------------------------------- // Scriptable marine -------------------------------------------------------
ACTOR ScriptedMarine 9100 native ACTOR ScriptedMarine native
{ {
Game Doom
SpawnID 151
Health 100 Health 100
Radius 16 Radius 16
Height 56 Height 56
@ -172,9 +170,8 @@ ACTOR ScriptedMarine 9100 native
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
ACTOR MarineFist : ScriptedMarine 9101 ACTOR MarineFist : ScriptedMarine
{ {
Game Doom
States States
{ {
Melee: Melee:
@ -187,9 +184,8 @@ ACTOR MarineFist : ScriptedMarine 9101
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
ACTOR MarineBerserk : MarineFist 9102 ACTOR MarineBerserk : MarineFist
{ {
Game Doom
States States
{ {
Melee: Melee:
@ -200,9 +196,8 @@ ACTOR MarineBerserk : MarineFist 9102
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
ACTOR MarineChainsaw : ScriptedMarine 9103 ACTOR MarineChainsaw : ScriptedMarine
{ {
Game Doom
States States
{ {
Melee: Melee:
@ -216,9 +211,8 @@ ACTOR MarineChainsaw : ScriptedMarine 9103
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
ACTOR MarinePistol : ScriptedMarine 9104 ACTOR MarinePistol : ScriptedMarine
{ {
Game Doom
States States
{ {
Missile: Missile:
@ -229,9 +223,8 @@ ACTOR MarinePistol : ScriptedMarine 9104
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
ACTOR MarineShotgun : ScriptedMarine 9105 ACTOR MarineShotgun : ScriptedMarine
{ {
Game Doom
States States
{ {
Missile: Missile:
@ -244,9 +237,8 @@ ACTOR MarineShotgun : ScriptedMarine 9105
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
ACTOR MarineSSG : ScriptedMarine 9106 ACTOR MarineSSG : ScriptedMarine
{ {
Game Doom
States States
{ {
Missile: Missile:
@ -256,9 +248,8 @@ ACTOR MarineSSG : ScriptedMarine 9106
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
ACTOR MarineChaingun : ScriptedMarine 9107 ACTOR MarineChaingun : ScriptedMarine
{ {
Game Doom
States States
{ {
Missile: Missile:
@ -269,9 +260,8 @@ ACTOR MarineChaingun : ScriptedMarine 9107
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
ACTOR MarineRocket : MarineFist 9108 ACTOR MarineRocket : MarineFist
{ {
Game Doom
States States
{ {
Missile: Missile:
@ -282,9 +272,8 @@ ACTOR MarineRocket : MarineFist 9108
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
ACTOR MarinePlasma : ScriptedMarine 9109 ACTOR MarinePlasma : ScriptedMarine
{ {
Game Doom
States States
{ {
Missile: Missile:
@ -295,9 +284,8 @@ ACTOR MarinePlasma : ScriptedMarine 9109
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
ACTOR MarineRailgun : ScriptedMarine 9110 ACTOR MarineRailgun : ScriptedMarine
{ {
Game Doom
States States
{ {
Missile: Missile:
@ -308,9 +296,8 @@ ACTOR MarineRailgun : ScriptedMarine 9110
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
ACTOR MarineBFG : ScriptedMarine 9111 ACTOR MarineBFG : ScriptedMarine
{ {
Game Doom
States States
{ {
Missile: Missile:

View file

@ -3,10 +3,8 @@
// Spider boss // Spider boss
// //
//=========================================================================== //===========================================================================
ACTOR SpiderMastermind 7 ACTOR SpiderMastermind
{ {
Game Doom
SpawnID 7
Health 3000 Health 3000
Radius 100 Radius 100
Height 100 Height 100

View file

@ -1,28 +1,22 @@
ACTOR StealthArachnotron : Arachnotron 9050 ACTOR StealthArachnotron : Arachnotron
{ {
Game Doom
SpawnID 117
+STEALTH +STEALTH
RenderStyle Translucent RenderStyle Translucent
Alpha 0 Alpha 0
Obituary "$OB_STEALTHBABY" Obituary "$OB_STEALTHBABY"
} }
ACTOR StealthArchvile : Archvile 9051 ACTOR StealthArchvile : Archvile
{ {
Game Doom
SpawnID 118
+STEALTH +STEALTH
RenderStyle Translucent RenderStyle Translucent
Alpha 0 Alpha 0
Obituary "$OB_STEALTHVILE" Obituary "$OB_STEALTHVILE"
} }
ACTOR StealthBaron : BaronOfHell 9052 ACTOR StealthBaron : BaronOfHell
{ {
Game Doom
SpawnID 100
+STEALTH +STEALTH
RenderStyle Translucent RenderStyle Translucent
Alpha 0 Alpha 0
@ -30,10 +24,8 @@ ACTOR StealthBaron : BaronOfHell 9052
HitObituary "$OB_STEALTHBARON" HitObituary "$OB_STEALTHBARON"
} }
ACTOR StealthCacodemon : Cacodemon 9053 ACTOR StealthCacodemon : Cacodemon
{ {
Game Doom
SpawnID 119
+STEALTH +STEALTH
RenderStyle Translucent RenderStyle Translucent
Alpha 0 Alpha 0
@ -41,20 +33,16 @@ ACTOR StealthCacodemon : Cacodemon 9053
HitObituary "$OB_STEALTHCACO" HitObituary "$OB_STEALTHCACO"
} }
ACTOR StealthChaingunGuy : ChaingunGuy 9054 ACTOR StealthChaingunGuy : ChaingunGuy
{ {
Game Doom
SpawnID 120
+STEALTH +STEALTH
RenderStyle Translucent RenderStyle Translucent
Alpha 0 Alpha 0
Obituary "$OB_STEALTHCHAINGUY" Obituary "$OB_STEALTHCHAINGUY"
} }
ACTOR StealthDemon : Demon 9055 ACTOR StealthDemon : Demon
{ {
Game Doom
SpawnID 121
+STEALTH +STEALTH
RenderStyle Translucent RenderStyle Translucent
Alpha 0 Alpha 0
@ -62,10 +50,8 @@ ACTOR StealthDemon : Demon 9055
HitObituary "$OB_STEALTHDEMON" HitObituary "$OB_STEALTHDEMON"
} }
ACTOR StealthHellKnight : HellKnight 9056 ACTOR StealthHellKnight : HellKnight
{ {
Game Doom
SpawnID 101
+STEALTH +STEALTH
RenderStyle Translucent RenderStyle Translucent
Alpha 0 Alpha 0
@ -73,10 +59,8 @@ ACTOR StealthHellKnight : HellKnight 9056
HitObituary "$OB_STEALTHKNIGHT" HitObituary "$OB_STEALTHKNIGHT"
} }
ACTOR StealthDoomImp : DoomImp 9057 ACTOR StealthDoomImp : DoomImp
{ {
Game Doom
SpawnID 122
+STEALTH +STEALTH
RenderStyle Translucent RenderStyle Translucent
Alpha 0 Alpha 0
@ -84,20 +68,16 @@ ACTOR StealthDoomImp : DoomImp 9057
HitObituary "$OB_STEALTHIMP" HitObituary "$OB_STEALTHIMP"
} }
ACTOR StealthFatso : Fatso 9058 ACTOR StealthFatso : Fatso
{ {
Game Doom
SpawnID 123
+STEALTH +STEALTH
RenderStyle Translucent RenderStyle Translucent
Alpha 0 Alpha 0
Obituary "$OB_STEALTHFATSO" Obituary "$OB_STEALTHFATSO"
} }
ACTOR StealthRevenant : Revenant 9059 ACTOR StealthRevenant : Revenant
{ {
Game Doom
SpawnID 124
+STEALTH +STEALTH
RenderStyle Translucent RenderStyle Translucent
Alpha 0 Alpha 0
@ -105,20 +85,16 @@ ACTOR StealthRevenant : Revenant 9059
HitObituary "$OB_STEALTHUNDEAD" HitObituary "$OB_STEALTHUNDEAD"
} }
ACTOR StealthShotgunGuy : ShotgunGuy 9060 ACTOR StealthShotgunGuy : ShotgunGuy
{ {
Game Doom
SpawnID 103
+STEALTH +STEALTH
RenderStyle Translucent RenderStyle Translucent
Alpha 0 Alpha 0
Obituary "$OB_STEALTHSHOTGUNGUY" Obituary "$OB_STEALTHSHOTGUNGUY"
} }
ACTOR StealthZombieMan : ZombieMan 9061 ACTOR StealthZombieMan : ZombieMan
{ {
Game Doom
SpawnID 102
+STEALTH +STEALTH
RenderStyle Translucent RenderStyle Translucent
Alpha 0 Alpha 0

View file

@ -1,10 +1,8 @@
// Beast -------------------------------------------------------------------- // Beast --------------------------------------------------------------------
ACTOR Beast 70 ACTOR Beast
{ {
Game Heretic
SpawnID 3
Health 220 Health 220
Radius 32 Radius 32
Height 74 Height 74
@ -61,8 +59,6 @@ ACTOR Beast 70
ACTOR BeastBall ACTOR BeastBall
{ {
Game Heretic
SpawnID 120
Radius 9 Radius 9
Height 8 Height 8
Speed 12 Speed 12

View file

@ -113,8 +113,6 @@ ACTOR ChickenPlayer : PlayerPawn native
ACTOR Chicken : MorphedMonster ACTOR Chicken : MorphedMonster
{ {
Game Heretic
SpawnID 122
Health 10 Health 10
Radius 9 Radius 9
Height 22 Height 22
@ -164,8 +162,6 @@ ACTOR Chicken : MorphedMonster
ACTOR Feather ACTOR Feather
{ {
Game Heretic
SpawnID 121
Radius 2 Radius 2
Height 4 Height 4
+MISSILE +DROPOFF +MISSILE +DROPOFF

View file

@ -1,8 +1,6 @@
ACTOR Clink 90 ACTOR Clink
{ {
Game Heretic
SpawnID 1
Health 150 Health 150
Radius 20 Radius 20
Height 64 Height 64

View file

@ -1,19 +1,15 @@
// Boss spot ---------------------------------------------------------------- // Boss spot ----------------------------------------------------------------
ACTOR BossSpot : SpecialSpot 56 ACTOR BossSpot : SpecialSpot
{ {
Game Heretic
SpawnID 141
+INVISIBLE +INVISIBLE
} }
// Sorcerer (D'Sparil on his serpent) --------------------------------------- // Sorcerer (D'Sparil on his serpent) ---------------------------------------
ACTOR Sorcerer1 7 ACTOR Sorcerer1
{ {
Game Heretic
SpawnID 142
Health 2000 Health 2000
Radius 28 Radius 28
Height 100 Height 100
@ -84,8 +80,6 @@ ACTOR Sorcerer1 7
ACTOR SorcererFX1 ACTOR SorcererFX1
{ {
Game Heretic
SpawnID 144
Radius 10 Radius 10
Height 10 Height 10
Speed 20 Speed 20
@ -112,8 +106,6 @@ ACTOR SorcererFX1
ACTOR Sorcerer2 ACTOR Sorcerer2
{ {
Game Heretic
SpawnID 143
Health 3500 Health 3500
Radius 16 Radius 16
Height 70 Height 70
@ -192,8 +184,6 @@ ACTOR Sorcerer2
ACTOR Sorcerer2FX1 ACTOR Sorcerer2FX1
{ {
Game Heretic
SpawnID 145
Radius 10 Radius 10
Height 6 Height 6
Speed 20 Speed 20
@ -241,8 +231,6 @@ ACTOR Sorcerer2FXSpark
ACTOR Sorcerer2FX2 ACTOR Sorcerer2FX2
{ {
Game Heretic
SpawnID 146
Radius 10 Radius 10
Height 6 Height 6
Speed 6 Speed 6

View file

@ -1,10 +1,8 @@
// Wimpy ammo --------------------------------------------------------------- // Wimpy ammo ---------------------------------------------------------------
ACTOR GoldWandAmmo : Ammo 10 ACTOR GoldWandAmmo : Ammo
{ {
Game Heretic
SpawnID 11
Inventory.PickupMessage "$TXT_AMMOGOLDWAND1" Inventory.PickupMessage "$TXT_AMMOGOLDWAND1"
Inventory.Amount 10 Inventory.Amount 10
Inventory.MaxAmount 100 Inventory.MaxAmount 100
@ -21,10 +19,8 @@ ACTOR GoldWandAmmo : Ammo 10
// Hefty ammo --------------------------------------------------------------- // Hefty ammo ---------------------------------------------------------------
ACTOR GoldWandHefty : GoldWandAmmo 12 ACTOR GoldWandHefty : GoldWandAmmo
{ {
Game Heretic
SpawnID 12
Inventory.PickupMessage "$TXT_AMMOGOLDWAND2" Inventory.PickupMessage "$TXT_AMMOGOLDWAND2"
Inventory.Amount 50 Inventory.Amount 50
States States
@ -36,10 +32,8 @@ ACTOR GoldWandHefty : GoldWandAmmo 12
} }
// Wimpy ammo --------------------------------------------------------------- // Wimpy ammo ---------------------------------------------------------------
ACTOR CrossbowAmmo : Ammo 18 ACTOR CrossbowAmmo : Ammo
{ {
Game Heretic
SpawnID 33
Inventory.PickupMessage "$TXT_AMMOCROSSBOW1" Inventory.PickupMessage "$TXT_AMMOCROSSBOW1"
Inventory.Amount 5 Inventory.Amount 5
Inventory.MaxAmount 50 Inventory.MaxAmount 50
@ -56,10 +50,8 @@ ACTOR CrossbowAmmo : Ammo 18
// Hefty ammo --------------------------------------------------------------- // Hefty ammo ---------------------------------------------------------------
ACTOR CrossbowHefty : CrossbowAmmo 19 ACTOR CrossbowHefty : CrossbowAmmo
{ {
Game Heretic
SpawnID 34
Inventory.PickupMessage "$TXT_AMMOCROSSBOW2" Inventory.PickupMessage "$TXT_AMMOCROSSBOW2"
Inventory.Amount 20 Inventory.Amount 20
States States
@ -71,10 +63,8 @@ ACTOR CrossbowHefty : CrossbowAmmo 19
} }
// Wimpy ammo --------------------------------------------------------------- // Wimpy ammo ---------------------------------------------------------------
ACTOR MaceAmmo : Ammo 13 ACTOR MaceAmmo : Ammo
{ {
Game Heretic
SpawnID 35
Inventory.PickupMessage "$TXT_AMMOMACE1" Inventory.PickupMessage "$TXT_AMMOMACE1"
Inventory.Amount 20 Inventory.Amount 20
Inventory.MaxAmount 150 Inventory.MaxAmount 150
@ -91,10 +81,8 @@ ACTOR MaceAmmo : Ammo 13
// Hefty ammo --------------------------------------------------------------- // Hefty ammo ---------------------------------------------------------------
ACTOR MaceHefty : MaceAmmo 16 ACTOR MaceHefty : MaceAmmo
{ {
Game Heretic
SpawnID 36
Inventory.PickupMessage "$TXT_AMMOMACE2" Inventory.PickupMessage "$TXT_AMMOMACE2"
Inventory.Amount 100 Inventory.Amount 100
States States
@ -107,10 +95,8 @@ ACTOR MaceHefty : MaceAmmo 16
// Wimpy ammo --------------------------------------------------------------- // Wimpy ammo ---------------------------------------------------------------
ACTOR BlasterAmmo : Ammo 54 ACTOR BlasterAmmo : Ammo
{ {
Game Heretic
SpawnID 37
Inventory.PickupMessage "$TXT_AMMOBLASTER1" Inventory.PickupMessage "$TXT_AMMOBLASTER1"
Inventory.Amount 10 Inventory.Amount 10
Inventory.MaxAmount 200 Inventory.MaxAmount 200
@ -127,10 +113,8 @@ ACTOR BlasterAmmo : Ammo 54
// Hefty ammo --------------------------------------------------------------- // Hefty ammo ---------------------------------------------------------------
ACTOR BlasterHefty : BlasterAmmo 55 ACTOR BlasterHefty : BlasterAmmo
{ {
Game Heretic
SpawnID 38
Inventory.PickupMessage "$TXT_AMMOBLASTER2" Inventory.PickupMessage "$TXT_AMMOBLASTER2"
Inventory.Amount 25 Inventory.Amount 25
States States
@ -143,10 +127,8 @@ ACTOR BlasterHefty : BlasterAmmo 55
// Wimpy ammo --------------------------------------------------------------- // Wimpy ammo ---------------------------------------------------------------
ACTOR SkullRodAmmo : Ammo 20 ACTOR SkullRodAmmo : Ammo
{ {
Game Heretic
SpawnID 158
Inventory.PickupMessage "$TXT_AMMOSKULLROD1" Inventory.PickupMessage "$TXT_AMMOSKULLROD1"
Inventory.Amount 20 Inventory.Amount 20
Inventory.MaxAmount 200 Inventory.MaxAmount 200
@ -163,10 +145,8 @@ ACTOR SkullRodAmmo : Ammo 20
// Hefty ammo --------------------------------------------------------------- // Hefty ammo ---------------------------------------------------------------
ACTOR SkullRodHefty : SkullRodAmmo 21 ACTOR SkullRodHefty : SkullRodAmmo
{ {
Game Heretic
SpawnID 159
Inventory.PickupMessage "$TXT_AMMOSKULLROD2" Inventory.PickupMessage "$TXT_AMMOSKULLROD2"
Inventory.Amount 100 Inventory.Amount 100
States States
@ -179,10 +159,8 @@ ACTOR SkullRodHefty : SkullRodAmmo 21
// Wimpy ammo --------------------------------------------------------------- // Wimpy ammo ---------------------------------------------------------------
ACTOR PhoenixRodAmmo : Ammo 22 ACTOR PhoenixRodAmmo : Ammo
{ {
Game Heretic
SpawnID 161
Inventory.PickupMessage "$TXT_AMMOPHOENIXROD1" Inventory.PickupMessage "$TXT_AMMOPHOENIXROD1"
Inventory.Amount 1 Inventory.Amount 1
Inventory.MaxAmount 20 Inventory.MaxAmount 20
@ -198,10 +176,8 @@ ACTOR PhoenixRodAmmo : Ammo 22
} }
// Hefty ammo --------------------------------------------------------------- // Hefty ammo ---------------------------------------------------------------
ACTOR PhoenixRodHefty : PhoenixRodAmmo 23 ACTOR PhoenixRodHefty : PhoenixRodAmmo
{ {
Game Heretic
SpawnID 162
Inventory.PickupMessage "$TXT_AMMOPHOENIXROD2" Inventory.PickupMessage "$TXT_AMMOPHOENIXROD2"
Inventory.Amount 10 Inventory.Amount 10
States States
@ -214,10 +190,8 @@ ACTOR PhoenixRodHefty : PhoenixRodAmmo 23
// --- Bag of holding ------------------------------------------------------- // --- Bag of holding -------------------------------------------------------
ACTOR BagOfHolding : BackpackItem 8 ACTOR BagOfHolding : BackpackItem
{ {
Game Heretic
SpawnID 136
Inventory.PickupMessage "$TXT_ITEMBAGOFHOLDING" Inventory.PickupMessage "$TXT_ITEMBAGOFHOLDING"
+COUNTITEM +COUNTITEM
+FLOATBOB +FLOATBOB

View file

@ -1,10 +1,8 @@
// Silver Shield (Shield1) -------------------------------------------------- // Silver Shield (Shield1) --------------------------------------------------
Actor SilverShield : BasicArmorPickup 85 Actor SilverShield : BasicArmorPickup
{ {
Game Heretic
SpawnID 68
+FLOATBOB +FLOATBOB
Inventory.Pickupmessage "$TXT_ITEMSHIELD1" Inventory.Pickupmessage "$TXT_ITEMSHIELD1"
Inventory.Icon "SHLDA0" Inventory.Icon "SHLDA0"
@ -20,10 +18,8 @@ Actor SilverShield : BasicArmorPickup 85
// Enchanted shield (Shield2) ----------------------------------------------- // Enchanted shield (Shield2) -----------------------------------------------
Actor EnchantedShield : BasicArmorPickup 31 Actor EnchantedShield : BasicArmorPickup
{ {
Game Heretic
SpawnID 69
+FLOATBOB +FLOATBOB
Inventory.Pickupmessage "$TXT_ITEMSHIELD2" Inventory.Pickupmessage "$TXT_ITEMSHIELD2"
Inventory.Icon "SHD2A0" Inventory.Icon "SHD2A0"

View file

@ -1,9 +1,7 @@
// Super map ---------------------------------------------------------------- // Super map ----------------------------------------------------------------
ACTOR SuperMap : MapRevealer 35 ACTOR SuperMap : MapRevealer
{ {
Game Heretic
SpawnID 137
+COUNTITEM +COUNTITEM
+INVENTORY.ALWAYSPICKUP +INVENTORY.ALWAYSPICKUP
+FLOATBOB +FLOATBOB
@ -20,10 +18,8 @@ ACTOR SuperMap : MapRevealer 35
// Invisibility ------------------------------------------------------------- // Invisibility -------------------------------------------------------------
ACTOR ArtiInvisibility : PowerupGiver 75 ACTOR ArtiInvisibility : PowerupGiver
{ {
Game Heretic
SpawnID 135
+COUNTITEM +COUNTITEM
+FLOATBOB +FLOATBOB
+INVENTORY.PICKUPFLASH +INVENTORY.PICKUPFLASH
@ -45,10 +41,8 @@ ACTOR ArtiInvisibility : PowerupGiver 75
// Tome of power ------------------------------------------------------------ // Tome of power ------------------------------------------------------------
ACTOR ArtiTomeOfPower : PowerupGiver 86 native ACTOR ArtiTomeOfPower : PowerupGiver native
{ {
Game Heretic
SpawnID 134
+COUNTITEM +COUNTITEM
+FLOATBOB +FLOATBOB
+INVENTORY.PICKUPFLASH +INVENTORY.PICKUPFLASH
@ -88,10 +82,8 @@ ACTOR ActivatedTimeBomb
} }
ACTOR ArtiTimeBomb : Inventory 34 native ACTOR ArtiTimeBomb : Inventory native
{ {
Game Heretic
SpawnID 72
+COUNTITEM +COUNTITEM
+FLOATBOB +FLOATBOB
+INVENTORY.PICKUPFLASH +INVENTORY.PICKUPFLASH

View file

@ -1,6 +1,5 @@
ACTOR SkullHang70 17 ACTOR SkullHang70
{ {
Game Heretic
Radius 20 Radius 20
Height 70 Height 70
+SPAWNCEILING +SPAWNCEILING
@ -13,9 +12,8 @@ ACTOR SkullHang70 17
} }
} }
ACTOR SkullHang60 24 ACTOR SkullHang60
{ {
Game Heretic
Radius 20 Radius 20
Height 60 Height 60
+SPAWNCEILING +SPAWNCEILING
@ -28,9 +26,8 @@ ACTOR SkullHang60 24
} }
} }
ACTOR SkullHang45 25 ACTOR SkullHang45
{ {
Game Heretic
Radius 20 Radius 20
Height 45 Height 45
+SPAWNCEILING +SPAWNCEILING
@ -43,9 +40,8 @@ ACTOR SkullHang45 25
} }
} }
ACTOR SkullHang35 26 ACTOR SkullHang35
{ {
Game Heretic
Radius 20 Radius 20
Height 35 Height 35
+SPAWNCEILING +SPAWNCEILING
@ -58,9 +54,8 @@ ACTOR SkullHang35 26
} }
} }
ACTOR Chandelier 28 ACTOR Chandelier
{ {
Game Heretic
Radius 20 Radius 20
Height 60 Height 60
+SPAWNCEILING +SPAWNCEILING
@ -73,9 +68,8 @@ ACTOR Chandelier 28
} }
} }
ACTOR SerpentTorch 27 ACTOR SerpentTorch
{ {
Game Heretic
Radius 12 Radius 12
Height 54 Height 54
+SOLID +SOLID
@ -87,9 +81,8 @@ ACTOR SerpentTorch 27
} }
} }
ACTOR SmallPillar 29 ACTOR SmallPillar
{ {
Game Heretic
Radius 16 Radius 16
Height 34 Height 34
+SOLID +SOLID
@ -101,9 +94,8 @@ ACTOR SmallPillar 29
} }
} }
ACTOR StalagmiteSmall 37 ACTOR StalagmiteSmall
{ {
Game Heretic
Radius 8 Radius 8
Height 32 Height 32
+SOLID +SOLID
@ -115,9 +107,8 @@ ACTOR StalagmiteSmall 37
} }
} }
ACTOR StalagmiteLarge 38 ACTOR StalagmiteLarge
{ {
Game Heretic
Radius 12 Radius 12
Height 64 Height 64
+SOLID +SOLID
@ -129,9 +120,8 @@ ACTOR StalagmiteLarge 38
} }
} }
ACTOR StalactiteSmall 39 ACTOR StalactiteSmall
{ {
Game Heretic
Radius 8 Radius 8
Height 36 Height 36
+SOLID +SOLID
@ -145,9 +135,8 @@ ACTOR StalactiteSmall 39
} }
} }
ACTOR StalactiteLarge 40 ACTOR StalactiteLarge
{ {
Game Heretic
Radius 12 Radius 12
Height 68 Height 68
+SOLID +SOLID
@ -161,9 +150,8 @@ ACTOR StalactiteLarge 40
} }
} }
ACTOR FireBrazier 76 ACTOR FireBrazier
{ {
Game Heretic
Radius 16 Radius 16
Height 44 Height 44
+SOLID +SOLID
@ -175,9 +163,8 @@ ACTOR FireBrazier 76
} }
} }
ACTOR Barrel 44 ACTOR Barrel
{ {
Game Heretic
Radius 12 Radius 12
Height 32 Height 32
+SOLID +SOLID
@ -189,9 +176,8 @@ ACTOR Barrel 44
} }
} }
ACTOR BrownPillar 47 ACTOR BrownPillar
{ {
Game Heretic
Radius 14 Radius 14
Height 128 Height 128
+SOLID +SOLID
@ -203,9 +189,8 @@ ACTOR BrownPillar 47
} }
} }
ACTOR Moss1 48 ACTOR Moss1
{ {
Game Heretic
Radius 20 Radius 20
Height 23 Height 23
+SPAWNCEILING +SPAWNCEILING
@ -218,9 +203,8 @@ ACTOR Moss1 48
} }
} }
ACTOR Moss2 49 ACTOR Moss2
{ {
Game Heretic
Radius 20 Radius 20
Height 27 Height 27
+SPAWNCEILING +SPAWNCEILING
@ -233,9 +217,8 @@ ACTOR Moss2 49
} }
} }
ACTOR WallTorch 50 ACTOR WallTorch
{ {
Game Heretic
Radius 6 Radius 6
Height 16 Height 16
+NOGRAVITY +NOGRAVITY
@ -248,9 +231,8 @@ ACTOR WallTorch 50
} }
} }
ACTOR HangingCorpse 51 ACTOR HangingCorpse
{ {
Game Heretic
Radius 8 Radius 8
Height 104 Height 104
+SOLID +SOLID

View file

@ -1,10 +1,8 @@
// Heretic imp (as opposed to the Doom variety) ----------------------------- // Heretic imp (as opposed to the Doom variety) -----------------------------
ACTOR HereticImp 66 ACTOR HereticImp
{ {
Game Heretic
SpawnID 5
Health 40 Health 40
Radius 16 Radius 16
Height 36 Height 36
@ -78,10 +76,8 @@ ACTOR HereticImp 66
// Heretic imp leader ------------------------------------------------------- // Heretic imp leader -------------------------------------------------------
ACTOR HereticImpLeader : HereticImp 5 ACTOR HereticImpLeader : HereticImp
{ {
Game Heretic
SpawnID 7
Species "HereticImpLeader" Species "HereticImpLeader"
Health 80 Health 80
-MISSILEMORE -MISSILEMORE
@ -135,8 +131,6 @@ ACTOR HereticImpChunk2
ACTOR HereticImpBall ACTOR HereticImpBall
{ {
Game Heretic
SpawnID 10
Radius 8 Radius 8
Height 8 Height 8
Speed 10 Speed 10

View file

@ -8,10 +8,8 @@ ACTOR HereticKey : Key
// Green key ------------------------------------------------------------ // Green key ------------------------------------------------------------
ACTOR KeyGreen : HereticKey 73 ACTOR KeyGreen : HereticKey
{ {
Game Heretic
SpawnID 86
Inventory.PickupMessage "$TXT_GOTGREENKEY" Inventory.PickupMessage "$TXT_GOTGREENKEY"
Inventory.Icon "GKEYICON" Inventory.Icon "GKEYICON"
States States
@ -24,10 +22,8 @@ ACTOR KeyGreen : HereticKey 73
// Blue key ----------------------------------------------------------------- // Blue key -----------------------------------------------------------------
ACTOR KeyBlue : HereticKey 79 ACTOR KeyBlue : HereticKey
{ {
Game Heretic
SpawnID 85
Inventory.PickupMessage "$TXT_GOTBLUEKEY" Inventory.PickupMessage "$TXT_GOTBLUEKEY"
Inventory.Icon "BKEYICON" Inventory.Icon "BKEYICON"
States States
@ -40,10 +36,8 @@ ACTOR KeyBlue : HereticKey 79
// Yellow key --------------------------------------------------------------- // Yellow key ---------------------------------------------------------------
ACTOR KeyYellow : HereticKey 80 ACTOR KeyYellow : HereticKey
{ {
Game Heretic
SpawnID 87
Inventory.PickupMessage "$TXT_GOTYELLOWKEY" Inventory.PickupMessage "$TXT_GOTYELLOWKEY"
Inventory.Icon "YKEYICON" Inventory.Icon "YKEYICON"
States States
@ -57,9 +51,8 @@ ACTOR KeyYellow : HereticKey 80
// --- Blue Key gizmo ----------------------------------------------------------- // --- Blue Key gizmo -----------------------------------------------------------
ACTOR KeyGizmoBlue 94 ACTOR KeyGizmoBlue
{ {
Game Heretic
Radius 16 Radius 16
Height 50 Height 50
+SOLID +SOLID
@ -89,9 +82,8 @@ ACTOR KeyGizmoFloatBlue
// --- Green Key gizmo ----------------------------------------------------------- // --- Green Key gizmo -----------------------------------------------------------
ACTOR KeyGizmoGreen 95 ACTOR KeyGizmoGreen
{ {
Game Heretic
Radius 16 Radius 16
Height 50 Height 50
+SOLID +SOLID
@ -121,9 +113,8 @@ ACTOR KeyGizmoFloatGreen
// --- Yellow Key gizmo ----------------------------------------------------------- // --- Yellow Key gizmo -----------------------------------------------------------
ACTOR KeyGizmoYellow 96 ACTOR KeyGizmoYellow
{ {
Game Heretic
Radius 16 Radius 16
Height 50 Height 50
+SOLID +SOLID

View file

@ -1,10 +1,8 @@
// Pod ---------------------------------------------------------------------- // Pod ----------------------------------------------------------------------
ACTOR Pod 2035 ACTOR Pod
{ {
Game Heretic
SpawnID 125
Health 45 Health 45
Radius 16 Radius 16
Height 54 Height 54
@ -62,10 +60,8 @@ ACTOR PodGoo
// Pod generator ------------------------------------------------------------ // Pod generator ------------------------------------------------------------
ACTOR PodGenerator 43 ACTOR PodGenerator
{ {
Game Heretic
SpawnID 126
+NOBLOCKMAP +NOBLOCKMAP
+NOSECTOR +NOSECTOR
+DONTSPLASH +DONTSPLASH
@ -84,10 +80,8 @@ ACTOR PodGenerator 43
// Teleglitter generator 1 -------------------------------------------------- // Teleglitter generator 1 --------------------------------------------------
ACTOR TeleGlitterGenerator1 74 ACTOR TeleGlitterGenerator1
{ {
Game Heretic
SpawnID 166
+NOBLOCKMAP +NOBLOCKMAP
+NOGRAVITY +NOGRAVITY
+DONTSPLASH +DONTSPLASH
@ -102,10 +96,8 @@ ACTOR TeleGlitterGenerator1 74
// Teleglitter generator 2 -------------------------------------------------- // Teleglitter generator 2 --------------------------------------------------
ACTOR TeleGlitterGenerator2 52 ACTOR TeleGlitterGenerator2
{ {
Game Heretic
SpawnID 167
+NOBLOCKMAP +NOBLOCKMAP
+NOGRAVITY +NOGRAVITY
+DONTSPLASH +DONTSPLASH
@ -160,10 +152,8 @@ ACTOR TeleGlitter2 : TeleGlitter1
// --- Volcano -------------------------------------------------------------- // --- Volcano --------------------------------------------------------------
ACTOR Volcano 87 ACTOR Volcano
{ {
Game Heretic
SpawnID 150
Radius 12 Radius 12
Height 20 Height 20
+SOLID +SOLID
@ -187,8 +177,6 @@ ACTOR Volcano 87
ACTOR VolcanoBlast ACTOR VolcanoBlast
{ {
Game Heretic
SpawnID 123
Radius 8 Radius 8
Height 8 Height 8
Speed 2 Speed 2
@ -219,8 +207,6 @@ ACTOR VolcanoBlast
ACTOR VolcanoTBlast ACTOR VolcanoTBlast
{ {
Game Heretic
SpawnID 124
Radius 8 Radius 8
Height 6 Height 6
Speed 2 Speed 2

View file

@ -9,7 +9,6 @@ ACTOR HereticWeapon : Weapon
ACTOR Staff : HereticWeapon ACTOR Staff : HereticWeapon
{ {
Game Heretic
Weapon.SelectionOrder 3800 Weapon.SelectionOrder 3800
+THRUGHOST +THRUGHOST
+WIMPY_WEAPON +WIMPY_WEAPON
@ -41,7 +40,6 @@ ACTOR Staff : HereticWeapon
ACTOR StaffPowered : Staff ACTOR StaffPowered : Staff
{ {
Game Heretic
Weapon.sisterweapon "Staff" Weapon.sisterweapon "Staff"
Weapon.ReadySound "weapons/staffcrackle" Weapon.ReadySound "weapons/staffcrackle"
+WEAPON.POWERED_UP +WEAPON.POWERED_UP
@ -110,9 +108,8 @@ ACTOR StaffPuff2
// Gold wand ---------------------------------------------------------------- // Gold wand ----------------------------------------------------------------
ACTOR GoldWand : HereticWeapon 9042 ACTOR GoldWand : HereticWeapon
{ {
Game Heretic
+BLOODSPLATTER +BLOODSPLATTER
Weapon.SelectionOrder 2000 Weapon.SelectionOrder 2000
Weapon.AmmoGive 25 Weapon.AmmoGive 25
@ -151,7 +148,6 @@ ACTOR GoldWand : HereticWeapon 9042
ACTOR GoldWandPowered : GoldWand ACTOR GoldWandPowered : GoldWand
{ {
Game Heretic
+WEAPON.POWERED_UP +WEAPON.POWERED_UP
Weapon.AmmoGive 0 Weapon.AmmoGive 0
Weapon.SisterWeapon "GoldWand" Weapon.SisterWeapon "GoldWand"
@ -176,8 +172,6 @@ ACTOR GoldWandPowered : GoldWand
ACTOR GoldWandFX1 ACTOR GoldWandFX1
{ {
Game Heretic
SpawnID 151
Radius 10 Radius 10
Height 6 Height 6
Speed 22 Speed 22
@ -201,8 +195,6 @@ ACTOR GoldWandFX1
ACTOR GoldWandFX2 : GoldWandFX1 ACTOR GoldWandFX2 : GoldWandFX1
{ {
Game Heretic
SpawnID 152
Speed 18 Speed 18
Damage 1 Damage 1
DeathSound "" DeathSound ""
@ -248,10 +240,8 @@ ACTOR GoldWandPuff2 : GoldWandFX1
// Crossbow ----------------------------------------------------------------- // Crossbow -----------------------------------------------------------------
ACTOR Crossbow : HereticWeapon 2001 ACTOR Crossbow : HereticWeapon
{ {
Game Heretic
SpawnID 27
Weapon.SelectionOrder 800 Weapon.SelectionOrder 800
Weapon.AmmoUse 1 Weapon.AmmoUse 1
Weapon.AmmoGive 10 Weapon.AmmoGive 10
@ -289,7 +279,6 @@ ACTOR Crossbow : HereticWeapon 2001
ACTOR CrossbowPowered : Crossbow ACTOR CrossbowPowered : Crossbow
{ {
Game Heretic
+WEAPON.POWERED_UP +WEAPON.POWERED_UP
Weapon.AmmoGive 0 Weapon.AmmoGive 0
Weapon.SisterWeapon "Crossbow" Weapon.SisterWeapon "Crossbow"
@ -317,8 +306,6 @@ ACTOR CrossbowPowered : Crossbow
ACTOR CrossbowFX1 ACTOR CrossbowFX1
{ {
Game Heretic
SpawnID 147
Radius 11 Radius 11
Height 8 Height 8
Speed 30 Speed 30
@ -344,8 +331,6 @@ ACTOR CrossbowFX1
ACTOR CrossbowFX2 : CrossbowFX1 ACTOR CrossbowFX2 : CrossbowFX1
{ {
Game Heretic
SpawnID 148
Speed 32 Speed 32
Damage 6 Damage 6
Obituary "$OB_MPPCROSSBOW" Obituary "$OB_MPPCROSSBOW"
@ -361,8 +346,6 @@ ACTOR CrossbowFX2 : CrossbowFX1
ACTOR CrossbowFX3 : CrossbowFX1 ACTOR CrossbowFX3 : CrossbowFX1
{ {
Game Heretic
SpawnID 149
Speed 20 Speed 20
Damage 2 Damage 2
SeeSound "" SeeSound ""
@ -400,10 +383,8 @@ ACTOR CrossbowFX4
// Gauntlets ---------------------------------------------------------------- // Gauntlets ----------------------------------------------------------------
ACTOR Gauntlets : Weapon 2005 ACTOR Gauntlets : Weapon
{ {
Game Heretic
SpawnID 32
+BLOODSPLATTER +BLOODSPLATTER
Weapon.SelectionOrder 2300 Weapon.SelectionOrder 2300
+WEAPON.WIMPY_WEAPON +WEAPON.WIMPY_WEAPON
@ -446,7 +427,6 @@ ACTOR Gauntlets : Weapon 2005
ACTOR GauntletsPowered : Gauntlets ACTOR GauntletsPowered : Gauntlets
{ {
Game Heretic
+POWERED_UP +POWERED_UP
Tag "$TAG_GAUNTLETSP" Tag "$TAG_GAUNTLETSP"
Obituary "$OB_MPPGAUNTLETS" Obituary "$OB_MPPGAUNTLETS"
@ -509,8 +489,6 @@ ACTOR GauntletPuff2 : GauntletPuff1
ACTOR Mace : HereticWeapon ACTOR Mace : HereticWeapon
{ {
Game Heretic
SpawnID 31
Weapon.SelectionOrder 1400 Weapon.SelectionOrder 1400
Weapon.AmmoUse 1 Weapon.AmmoUse 1
Weapon.AmmoGive1 50 Weapon.AmmoGive1 50
@ -548,7 +526,6 @@ ACTOR Mace : HereticWeapon
ACTOR MacePowered : Mace ACTOR MacePowered : Mace
{ {
Game Heretic
+WEAPON.POWERED_UP +WEAPON.POWERED_UP
Weapon.AmmoUse 5 Weapon.AmmoUse 5
Weapon.AmmoGive 0 Weapon.AmmoGive 0
@ -573,8 +550,6 @@ ACTOR MacePowered : Mace
ACTOR MaceFX1 ACTOR MaceFX1
{ {
Game Heretic
SpawnID 154
Radius 8 Radius 8
Height 6 Height 6
Speed 20 Speed 20
@ -604,8 +579,6 @@ ACTOR MaceFX1
ACTOR MaceFX2 : MaceFX1 ACTOR MaceFX2 : MaceFX1
{ {
Game Heretic
SpawnID 156
Speed 10 Speed 10
Damage 6 Damage 6
Gravity 0.125 Gravity 0.125
@ -629,8 +602,6 @@ ACTOR MaceFX2 : MaceFX1
ACTOR MaceFX3 : MaceFX1 ACTOR MaceFX3 : MaceFX1
{ {
Game Heretic
SpawnID 155
Speed 7 Speed 7
Damage 4 Damage 4
-NOGRAVITY -NOGRAVITY
@ -648,8 +619,6 @@ ACTOR MaceFX3 : MaceFX1
ACTOR MaceFX4 native ACTOR MaceFX4 native
{ {
Game Heretic
SpawnID 153
Radius 8 Radius 8
Height 6 Height 6
Speed 7 Speed 7
@ -681,9 +650,8 @@ ACTOR MaceFX4 native
// Mace spawn spot ---------------------------------------------------------- // Mace spawn spot ----------------------------------------------------------
ACTOR MaceSpawner : SpecialSpot 2002 ACTOR MaceSpawner : SpecialSpot
{ {
Game Heretic
+NOSECTOR +NOSECTOR
+NOBLOCKMAP +NOBLOCKMAP
States States
@ -698,10 +666,8 @@ ACTOR MaceSpawner : SpecialSpot 2002
// Blaster ------------------------------------------------------------------ // Blaster ------------------------------------------------------------------
ACTOR Blaster : HereticWeapon 53 ACTOR Blaster : HereticWeapon
{ {
Game Heretic
SpawnID 28
+BLOODSPLATTER +BLOODSPLATTER
Weapon.SelectionOrder 500 Weapon.SelectionOrder 500
Weapon.AmmoUse 1 Weapon.AmmoUse 1
@ -741,7 +707,6 @@ ACTOR Blaster : HereticWeapon 53
ACTOR BlasterPowered : Blaster ACTOR BlasterPowered : Blaster
{ {
Game Heretic
+WEAPON.POWERED_UP +WEAPON.POWERED_UP
Weapon.AmmoUse 5 Weapon.AmmoUse 5
Weapon.AmmoGive 0 Weapon.AmmoGive 0
@ -809,8 +774,6 @@ ACTOR BlasterSmoke
ACTOR Ripper native ACTOR Ripper native
{ {
Game Heretic
SpawnID 157
Radius 8 Radius 8
Height 6 Height 6
Speed 14 Speed 14
@ -854,10 +817,8 @@ ACTOR BlasterPuff
// Skull (Horn) Rod --------------------------------------------------------- // Skull (Horn) Rod ---------------------------------------------------------
ACTOR SkullRod : HereticWeapon 2004 ACTOR SkullRod : HereticWeapon
{ {
Game Heretic
SpawnID 30
Weapon.SelectionOrder 200 Weapon.SelectionOrder 200
Weapon.AmmoUse1 1 Weapon.AmmoUse1 1
Weapon.AmmoGive1 50 Weapon.AmmoGive1 50
@ -892,7 +853,6 @@ ACTOR SkullRod : HereticWeapon 2004
ACTOR SkullRodPowered : SkullRod ACTOR SkullRodPowered : SkullRod
{ {
Game Heretic
+WEAPON.POWERED_UP +WEAPON.POWERED_UP
Weapon.AmmoUse1 5 Weapon.AmmoUse1 5
Weapon.AmmoGive1 0 Weapon.AmmoGive1 0
@ -921,8 +881,6 @@ ACTOR SkullRodPowered : SkullRod
ACTOR HornRodFX1 ACTOR HornRodFX1
{ {
Game Heretic
SpawnID 160
Radius 12 Radius 12
Height 8 Height 8
Speed 22 Speed 22
@ -1028,10 +986,8 @@ ACTOR RainTracker : Inventory native
// Phoenix Rod -------------------------------------------------------------- // Phoenix Rod --------------------------------------------------------------
ACTOR PhoenixRod : Weapon 2003 native ACTOR PhoenixRod : Weapon native
{ {
Game Heretic
SpawnID 29
+WEAPON.NOAUTOFIRE +WEAPON.NOAUTOFIRE
Weapon.SelectionOrder 2600 Weapon.SelectionOrder 2600
Weapon.Kickback 150 Weapon.Kickback 150
@ -1070,7 +1026,6 @@ ACTOR PhoenixRod : Weapon 2003 native
ACTOR PhoenixRodPowered : PhoenixRod native ACTOR PhoenixRodPowered : PhoenixRod native
{ {
Game Heretic
+WEAPON.POWERED_UP +WEAPON.POWERED_UP
+WEAPON.MELEEWEAPON +WEAPON.MELEEWEAPON
Weapon.SisterWeapon "PhoenixRod" Weapon.SisterWeapon "PhoenixRod"
@ -1098,8 +1053,6 @@ ACTOR PhoenixRodPowered : PhoenixRod native
ACTOR PhoenixFX1 native ACTOR PhoenixFX1 native
{ {
Game Heretic
SpawnID 163
Radius 11 Radius 11
Height 8 Height 8
Speed 20 Speed 20

View file

@ -1,10 +1,8 @@
// Ironlich ----------------------------------------------------------------- // Ironlich -----------------------------------------------------------------
ACTOR Ironlich 6 ACTOR Ironlich
{ {
Game Heretic
SpawnID 20
Health 700 Health 700
Radius 40 Radius 40
Height 72 Height 72
@ -59,8 +57,6 @@ ACTOR Ironlich 6
ACTOR HeadFX1 ACTOR HeadFX1
{ {
Game Heretic
SpawnID 164
Radius 12 Radius 12
Height 6 Height 6
Speed 13 Speed 13
@ -147,8 +143,6 @@ ACTOR HeadFX3
ACTOR Whirlwind native ACTOR Whirlwind native
{ {
Game Heretic
SpawnID 165
Radius 16 Radius 16
Height 74 Height 74
Speed 10 Speed 10

View file

@ -1,10 +1,8 @@
// Knight ------------------------------------------------------------------- // Knight -------------------------------------------------------------------
ACTOR Knight 64 ACTOR Knight
{ {
Game Heretic
SpawnID 6
Health 200 Health 200
Radius 24 Radius 24
Height 78 Height 78
@ -60,10 +58,8 @@ ACTOR Knight 64
// Knight ghost ------------------------------------------------------------- // Knight ghost -------------------------------------------------------------
ACTOR KnightGhost : Knight 65 ACTOR KnightGhost : Knight
{ {
Game Heretic
SpawnID 129
+SHADOW +SHADOW
+GHOST +GHOST
RenderStyle Translucent RenderStyle Translucent
@ -74,8 +70,6 @@ ACTOR KnightGhost : Knight 65
ACTOR KnightAxe ACTOR KnightAxe
{ {
Game Heretic
SpawnID 127
Radius 10 Radius 10
Height 8 Height 8
Speed 9 Speed 9
@ -105,8 +99,6 @@ ACTOR KnightAxe
ACTOR RedAxe : KnightAxe ACTOR RedAxe : KnightAxe
{ {
Game Heretic
SpawnID 128
+NOBLOCKMAP +NOBLOCKMAP
-WINDTHRUST -WINDTHRUST
Damage 7 Damage 7

View file

@ -1,10 +1,8 @@
// Mummy -------------------------------------------------------------------- // Mummy --------------------------------------------------------------------
ACTOR Mummy 68 ACTOR Mummy
{ {
Game Heretic
SpawnID 4
Health 80 Health 80
Radius 22 Radius 22
Height 62 Height 62
@ -51,10 +49,8 @@ ACTOR Mummy 68
// Mummy leader ------------------------------------------------------------- // Mummy leader -------------------------------------------------------------
ACTOR MummyLeader : Mummy 45 ACTOR MummyLeader : Mummy
{ {
Game Heretic
SpawnID 2
Species "MummyLeader" Species "MummyLeader"
Health 100 Health 100
Painchance 64 Painchance 64
@ -74,10 +70,8 @@ ACTOR MummyLeader : Mummy 45
// Mummy ghost -------------------------------------------------------------- // Mummy ghost --------------------------------------------------------------
ACTOR MummyGhost : Mummy 69 ACTOR MummyGhost : Mummy
{ {
Game Heretic
SpawnID 8
+SHADOW +SHADOW
+GHOST +GHOST
RenderStyle Translucent RenderStyle Translucent
@ -86,10 +80,8 @@ ACTOR MummyGhost : Mummy 69
// Mummy leader ghost ------------------------------------------------------- // Mummy leader ghost -------------------------------------------------------
ACTOR MummyLeaderGhost : MummyLeader 46 ACTOR MummyLeaderGhost : MummyLeader
{ {
Game Heretic
SpawnID 9
Species "MummyLeaderGhost" Species "MummyLeaderGhost"
+SHADOW +SHADOW
+GHOST +GHOST
@ -116,8 +108,6 @@ ACTOR MummySoul
ACTOR MummyFX1 ACTOR MummyFX1
{ {
Game Heretic
SpawnID 131
Radius 8 Radius 8
Height 14 Height 14
Speed 9 Speed 9

View file

@ -1,8 +1,6 @@
ACTOR Snake 92 ACTOR Snake
{ {
Game Heretic
SpawnID 132
Health 280 Health 280
Radius 22 Radius 22
Height 70 Height 70
@ -50,8 +48,6 @@ ACTOR Snake 92
ACTOR SnakeProjA ACTOR SnakeProjA
{ {
Game Heretic
SpawnID 138
Radius 12 Radius 12
Height 8 Height 8
Speed 14 Speed 14
@ -82,8 +78,6 @@ ACTOR SnakeProjA
ACTOR SnakeProjB : SnakeProjA ACTOR SnakeProjB : SnakeProjA
{ {
Game Heretic
SpawnID 139
Damage 3 Damage 3
+NOBLOCKMAP +NOBLOCKMAP
-WINDTHRUST -WINDTHRUST

View file

@ -1,10 +1,8 @@
// Wizard -------------------------------------------------------- // Wizard --------------------------------------------------------
ACTOR Wizard 15 ACTOR Wizard
{ {
Game Heretic
SpawnID 19
Health 180 Health 180
Radius 16 Radius 16
Height 68 Height 68
@ -75,8 +73,6 @@ ACTOR Wizard 15
ACTOR WizardFX1 ACTOR WizardFX1
{ {
Game Heretic
SpawnID 140
Radius 10 Radius 10
Height 6 Height 6
Speed 18 Speed 18

View file

@ -1,9 +1,8 @@
// Bat Spawner -------------------------------------------------------------- // Bat Spawner --------------------------------------------------------------
ACTOR BatSpawner : SwitchableDecoration 10225 ACTOR BatSpawner : SwitchableDecoration
{ {
Game Hexen
+NOBLOCKMAP +NOSECTOR +NOGRAVITY +NOBLOCKMAP +NOSECTOR +NOGRAVITY
RenderStyle None RenderStyle None

View file

@ -1,10 +1,8 @@
// Bishop ------------------------------------------------------------------- // Bishop -------------------------------------------------------------------
ACTOR Bishop 114 ACTOR Bishop
{ {
Game Hexen
SpawnID 19
Health 130 Health 130
Radius 22 Radius 22
Height 65 Height 65
@ -81,7 +79,6 @@ ACTOR Bishop 114
ACTOR BishopPuff ACTOR BishopPuff
{ {
Game Hexen
+NOBLOCKMAP +NOGRAVITY +NOBLOCKMAP +NOGRAVITY
RenderStyle Translucent RenderStyle Translucent
Alpha 0.6 Alpha 0.6
@ -99,7 +96,6 @@ ACTOR BishopPuff
ACTOR BishopPainBlur ACTOR BishopPainBlur
{ {
Game Hexen
+NOBLOCKMAP +NOGRAVITY +NOBLOCKMAP +NOGRAVITY
RenderStyle Translucent RenderStyle Translucent
Alpha 0.6 Alpha 0.6
@ -115,7 +111,6 @@ ACTOR BishopPainBlur
ACTOR BishopFX ACTOR BishopFX
{ {
Game Hexen
Radius 10 Radius 10
Height 6 Height 6
Speed 10 Speed 10

View file

@ -1,8 +1,6 @@
ACTOR ArtiBlastRadius : CustomInventory 10110 ACTOR ArtiBlastRadius : CustomInventory
{ {
Game Hexen
SpawnID 74
+FLOATBOB +FLOATBOB
Inventory.DefMaxAmount Inventory.DefMaxAmount
Inventory.PickupFlash "PickupFlash" Inventory.PickupFlash "PickupFlash"

View file

@ -1,10 +1,8 @@
// Boost Armor Artifact (Dragonskin Bracers) -------------------------------- // Boost Armor Artifact (Dragonskin Bracers) --------------------------------
ACTOR ArtiBoostArmor : Inventory 8041 native ACTOR ArtiBoostArmor : Inventory native
{ {
Game Hexen
SpawnID 22
+COUNTITEM +COUNTITEM
+FLOATBOB +FLOATBOB
Inventory.DefMaxAmount Inventory.DefMaxAmount

View file

@ -1,9 +1,7 @@
// Centaur ------------------------------------------------------------------ // Centaur ------------------------------------------------------------------
ACTOR Centaur 107 ACTOR Centaur
{ {
Game Hexen
SpawnID 1
Health 200 Health 200
Painchance 135 Painchance 135
Speed 13 Speed 13
@ -78,10 +76,8 @@ ACTOR Centaur 107
// Centaur Leader ----------------------------------------------------------- // Centaur Leader -----------------------------------------------------------
ACTOR CentaurLeader : Centaur 115 ACTOR CentaurLeader : Centaur
{ {
Game Hexen
SpawnID 2
Health 250 Health 250
PainChance 96 PainChance 96
Speed 10 Speed 10
@ -105,8 +101,6 @@ ACTOR CentaurLeader : Centaur 115
ACTOR CentaurMash : Centaur ACTOR CentaurMash : Centaur
{ {
Game Hexen
SpawnID 103
+NOBLOOD +NOBLOOD
+BLASTED +BLASTED
-TELESTOMP -TELESTOMP

View file

@ -1,9 +1,8 @@
// Cleric Boss (Traductus) -------------------------------------------------- // Cleric Boss (Traductus) --------------------------------------------------
ACTOR ClericBoss 10101 ACTOR ClericBoss
{ {
Game Hexen
Health 800 Health 800
PainChance 50 PainChance 50
Speed 25 Speed 25

View file

@ -1,9 +1,8 @@
// The Cleric's Flame Strike ------------------------------------------------ // The Cleric's Flame Strike ------------------------------------------------
ACTOR CWeapFlame : ClericWeapon 8009 ACTOR CWeapFlame : ClericWeapon
{ {
Game Hexen
+NOGRAVITY +NOGRAVITY
Weapon.SelectionOrder 1000 Weapon.SelectionOrder 1000
Weapon.AmmoUse 4 Weapon.AmmoUse 4

View file

@ -12,10 +12,8 @@ ACTOR ClericWeaponPiece : WeaponPiece
// Cleric Weapon Piece 1 ---------------------------------------------------- // Cleric Weapon Piece 1 ----------------------------------------------------
ACTOR CWeaponPiece1 : ClericWeaponPiece 18 ACTOR CWeaponPiece1 : ClericWeaponPiece
{ {
Game Hexen
SpawnID 33
WeaponPiece.Number 1 WeaponPiece.Number 1
States States
{ {
@ -27,10 +25,8 @@ ACTOR CWeaponPiece1 : ClericWeaponPiece 18
// Cleric Weapon Piece 2 ---------------------------------------------------- // Cleric Weapon Piece 2 ----------------------------------------------------
ACTOR CWeaponPiece2 : ClericWeaponPiece 19 ACTOR CWeaponPiece2 : ClericWeaponPiece
{ {
Game Hexen
SpawnID 34
WeaponPiece.Number 2 WeaponPiece.Number 2
States States
{ {
@ -42,10 +38,8 @@ ACTOR CWeaponPiece2 : ClericWeaponPiece 19
// Cleric Weapon Piece 3 ---------------------------------------------------- // Cleric Weapon Piece 3 ----------------------------------------------------
ACTOR CWeaponPiece3 : ClericWeaponPiece 20 ACTOR CWeaponPiece3 : ClericWeaponPiece
{ {
Game Hexen
SpawnID 35
WeaponPiece.Number 3 WeaponPiece.Number 3
States States
{ {
@ -72,7 +66,6 @@ ACTOR WraithvergeDrop
ACTOR CWeapWraithverge : ClericWeapon native ACTOR CWeapWraithverge : ClericWeapon native
{ {
Game Hexen
Health 3 Health 3
Weapon.SelectionOrder 3000 Weapon.SelectionOrder 3000
+WEAPON.PRIMARY_USES_BOTH +WEAPON.PRIMARY_USES_BOTH

View file

@ -3,7 +3,6 @@
ACTOR CWeapMace : ClericWeapon ACTOR CWeapMace : ClericWeapon
{ {
Game Hexen
Weapon.SelectionOrder 3500 Weapon.SelectionOrder 3500
Weapon.KickBack 150 Weapon.KickBack 150
Weapon.YAdjust -8 Weapon.YAdjust -8

View file

@ -1,10 +1,8 @@
// The Cleric's Serpent Staff ----------------------------------------------- // The Cleric's Serpent Staff -----------------------------------------------
ACTOR CWeapStaff : ClericWeapon 10 ACTOR CWeapStaff : ClericWeapon
{ {
Game Hexen
SpawnID 32
Weapon.SelectionOrder 1600 Weapon.SelectionOrder 1600
Weapon.AmmoUse1 1 Weapon.AmmoUse1 1
Weapon.AmmoGive1 25 Weapon.AmmoGive1 25

View file

@ -1,10 +1,8 @@
// Demon, type 1 (green, like D'Sparil's) ----------------------------------- // Demon, type 1 (green, like D'Sparil's) -----------------------------------
ACTOR Demon1 31 ACTOR Demon1
{ {
Game Hexen
SpawnID 3
Health 250 Health 250
Painchance 50 Painchance 50
Speed 13 Speed 13
@ -70,8 +68,6 @@ ACTOR Demon1 31
ACTOR Demon1Mash : Demon1 ACTOR Demon1Mash : Demon1
{ {
Game Hexen
SpawnID 100
+NOBLOOD +NOBLOOD
+BLASTED +BLASTED
-TELESTOMP -TELESTOMP
@ -212,9 +208,8 @@ ACTOR Demon1FX1
// Demon, type 2 (brown) ---------------------------------------------------- // Demon, type 2 (brown) ----------------------------------------------------
ACTOR Demon2 : Demon1 8080 ACTOR Demon2 : Demon1
{ {
Game Hexen
Obituary "$OB_DEMON2" Obituary "$OB_DEMON2"
Species "Demon2" Species "Demon2"
States States
@ -262,8 +257,6 @@ ACTOR Demon2 : Demon1 8080
ACTOR Demon2Mash : Demon2 ACTOR Demon2Mash : Demon2
{ {
Game Hexen
SpawnID 101
+NOBLOOD +NOBLOOD
+BLASTED +BLASTED
-TELESTOMP -TELESTOMP

View file

@ -1,9 +1,8 @@
// Dragon ------------------------------------------------------------------- // Dragon -------------------------------------------------------------------
ACTOR Dragon 254 ACTOR Dragon
{ {
Game Hexen
Health 640 Health 640
PainChance 128 PainChance 128
Speed 10 Speed 10

View file

@ -1,10 +1,8 @@
// Ettin -------------------------------------------------------------------- // Ettin --------------------------------------------------------------------
ACTOR Ettin 10030 ACTOR Ettin
{ {
Game Hexen
SpawnID 4
Health 175 Health 175
Radius 25 Radius 25
Height 68 Height 68
@ -91,8 +89,6 @@ ACTOR EttinMace
ACTOR EttinMash : Ettin ACTOR EttinMash : Ettin
{ {
Game Hexen
SpawnID 102
+NOBLOOD +NOBLOOD
+NOICEDEATH +NOICEDEATH
RenderStyle Translucent RenderStyle Translucent

View file

@ -1,10 +1,8 @@
// The Fighter's Axe -------------------------------------------------------- // The Fighter's Axe --------------------------------------------------------
ACTOR FWeapAxe : FighterWeapon 8010 native ACTOR FWeapAxe : FighterWeapon native
{ {
Game Hexen
SpawnID 27
Weapon.SelectionOrder 1500 Weapon.SelectionOrder 1500
+WEAPON.AXEBLOOD +WEAPON.AMMO_OPTIONAL +WEAPON.MELEEWEAPON +WEAPON.AXEBLOOD +WEAPON.AMMO_OPTIONAL +WEAPON.MELEEWEAPON
Weapon.AmmoUse1 2 Weapon.AmmoUse1 2

View file

@ -1,9 +1,8 @@
// Fighter Boss (Zedek) ----------------------------------------------------- // Fighter Boss (Zedek) -----------------------------------------------------
ACTOR FighterBoss 10100 ACTOR FighterBoss
{ {
Game Hexen
health 800 health 800
PainChance 50 PainChance 50
Speed 25 Speed 25

View file

@ -3,7 +3,6 @@
ACTOR FWeapFist : FighterWeapon ACTOR FWeapFist : FighterWeapon
{ {
Game Hexen
+BLOODSPLATTER +BLOODSPLATTER
Weapon.SelectionOrder 3400 Weapon.SelectionOrder 3400
+WEAPON.MELEEWEAPON +WEAPON.MELEEWEAPON

View file

@ -1,10 +1,8 @@
// The Fighter's Hammer ----------------------------------------------------- // The Fighter's Hammer -----------------------------------------------------
ACTOR FWeapHammer : FighterWeapon 123 ACTOR FWeapHammer : FighterWeapon
{ {
Game Hexen
SpawnID 28
+BLOODSPLATTER +BLOODSPLATTER
Weapon.SelectionOrder 900 Weapon.SelectionOrder 900
+WEAPON.AMMO_OPTIONAL +WEAPON.MELEEWEAPON +WEAPON.AMMO_OPTIONAL +WEAPON.MELEEWEAPON

View file

@ -104,7 +104,6 @@ ACTOR FighterPlayer : PlayerPawn
Actor BloodyFighterSkull : PlayerChunk Actor BloodyFighterSkull : PlayerChunk
{ {
Game Hexen
Radius 4 Radius 4
Height 4 Height 4
+NOBLOCKMAP +NOBLOCKMAP

View file

@ -12,10 +12,8 @@ ACTOR FighterWeaponPiece : WeaponPiece
// Fighter Weapon Piece 1 --------------------------------------------------- // Fighter Weapon Piece 1 ---------------------------------------------------
ACTOR FWeaponPiece1 : FighterWeaponPiece 12 ACTOR FWeaponPiece1 : FighterWeaponPiece
{ {
Game Hexen
SpawnID 29
WeaponPiece.Number 1 WeaponPiece.Number 1
States States
{ {
@ -27,10 +25,8 @@ ACTOR FWeaponPiece1 : FighterWeaponPiece 12
// Fighter Weapon Piece 2 --------------------------------------------------- // Fighter Weapon Piece 2 ---------------------------------------------------
ACTOR FWeaponPiece2 : FighterWeaponPiece 13 ACTOR FWeaponPiece2 : FighterWeaponPiece
{ {
Game Hexen
SpawnID 30
WeaponPiece.Number 2 WeaponPiece.Number 2
States States
{ {
@ -42,10 +38,8 @@ ACTOR FWeaponPiece2 : FighterWeaponPiece 13
// Fighter Weapon Piece 3 --------------------------------------------------- // Fighter Weapon Piece 3 ---------------------------------------------------
ACTOR FWeaponPiece3 : FighterWeaponPiece 16 ACTOR FWeaponPiece3 : FighterWeaponPiece
{ {
Game Hexen
SpawnID 31
WeaponPiece.Number 3 WeaponPiece.Number 3
States States
{ {
@ -72,7 +66,6 @@ ACTOR QuietusDrop
ACTOR FWeapQuietus : FighterWeapon ACTOR FWeapQuietus : FighterWeapon
{ {
Game Hexen
Health 3 Health 3
Weapon.SelectionOrder 2900 Weapon.SelectionOrder 2900
+WEAPON.PRIMARY_USES_BOTH +WEAPON.PRIMARY_USES_BOTH

View file

@ -1,10 +1,8 @@
// FireDemon ---------------------------------------------------------------- // FireDemon ----------------------------------------------------------------
ACTOR FireDemon 10060 ACTOR FireDemon
{ {
Game Hexen
SpawnID 5
Health 80 Health 80
ReactionTime 8 ReactionTime 8
PainChance 1 PainChance 1
@ -76,7 +74,6 @@ ACTOR FireDemon 10060
ACTOR FireDemonSplotch1 ACTOR FireDemonSplotch1
{ {
Game Hexen
Health 1000 Health 1000
ReactionTime 8 ReactionTime 8
Radius 3 Radius 3
@ -112,7 +109,6 @@ ACTOR FireDemonSplotch2 : FireDemonSplotch1
ACTOR FireDemonRock1 ACTOR FireDemonRock1
{ {
Game Hexen
Health 1000 Health 1000
ReactionTime 8 ReactionTime 8
Radius 3 Radius 3
@ -140,7 +136,6 @@ ACTOR FireDemonRock1
ACTOR FireDemonRock2 : FireDemonRock1 ACTOR FireDemonRock2 : FireDemonRock1
{ {
Game Hexen
States States
{ {
Spawn: Spawn:
@ -158,7 +153,6 @@ ACTOR FireDemonRock2 : FireDemonRock1
ACTOR FireDemonRock3 : FireDemonRock1 ACTOR FireDemonRock3 : FireDemonRock1
{ {
Game Hexen
States States
{ {
Spawn: Spawn:
@ -176,7 +170,6 @@ ACTOR FireDemonRock3 : FireDemonRock1
ACTOR FireDemonRock4 : FireDemonRock1 ACTOR FireDemonRock4 : FireDemonRock1
{ {
Game Hexen
States States
{ {
Spawn: Spawn:
@ -194,7 +187,6 @@ ACTOR FireDemonRock4 : FireDemonRock1
ACTOR FireDemonRock5 : FireDemonRock1 ACTOR FireDemonRock5 : FireDemonRock1
{ {
Game Hexen
States States
{ {
Spawn: Spawn:

View file

@ -1,9 +1,7 @@
// Temp Small Flame -------------------------------------------------------- // Temp Small Flame --------------------------------------------------------
ACTOR FlameSmallTemp 10500 ACTOR FlameSmallTemp
{ {
Game Hexen
SpawnID 96
+NOTELEPORT +NOTELEPORT
RenderStyle Add RenderStyle Add
States States
@ -21,10 +19,8 @@ ACTOR FlameSmallTemp 10500
// Temp Large Flame --------------------------------------------------------- // Temp Large Flame ---------------------------------------------------------
ACTOR FlameLargeTemp 10502 ACTOR FlameLargeTemp
{ {
Game Hexen
SpawnID 98
+NOTELEPORT +NOTELEPORT
RenderStyle Add RenderStyle Add
States States
@ -52,10 +48,8 @@ ACTOR FlameLargeTemp 10502
// Small Flame -------------------------------------------------------------- // Small Flame --------------------------------------------------------------
ACTOR FlameSmall : SwitchableDecoration 10501 ACTOR FlameSmall : SwitchableDecoration
{ {
Game Hexen
SpawnID 97
+NOTELEPORT +NOTELEPORT
+INVISIBLE +INVISIBLE
Radius 15 Radius 15
@ -79,16 +73,12 @@ ACTOR FlameSmall : SwitchableDecoration 10501
ACTOR FlameSmall2 : FlameSmall ACTOR FlameSmall2 : FlameSmall
{ {
Game Hexen
SpawnID 66
} }
// Large Flame -------------------------------------------------------------- // Large Flame --------------------------------------------------------------
ACTOR FlameLarge : SwitchableDecoration 10503 ACTOR FlameLarge : SwitchableDecoration
{ {
Game Hexen
SpawnID 99
+NOTELEPORT +NOTELEPORT
+INVISIBLE +INVISIBLE
Radius 15 Radius 15
@ -112,7 +102,5 @@ ACTOR FlameLarge : SwitchableDecoration 10503
ACTOR FlameLarge2 : FlameLarge ACTOR FlameLarge2 : FlameLarge
{ {
Game Hexen
SpawnID 67
} }

View file

@ -3,7 +3,6 @@
ACTOR PoisonBag ACTOR PoisonBag
{ {
Game Hexen
Radius 5 Radius 5
Height 5 Height 5
+NOBLOCKMAP +NOGRAVITY +NOBLOCKMAP +NOGRAVITY
@ -51,7 +50,6 @@ ACTOR FireBomb
ACTOR ThrowingBomb ACTOR ThrowingBomb
{ {
Game Hexen
Health 48 Health 48
Speed 12 Speed 12
Radius 8 Radius 8
@ -94,10 +92,8 @@ ACTOR ThrowingBomb
// Poison Bag Artifact (Flechette) ------------------------------------------ // Poison Bag Artifact (Flechette) ------------------------------------------
ACTOR ArtiPoisonBag : Inventory 8000 native ACTOR ArtiPoisonBag : Inventory native
{ {
Game Hexen
SpawnID 72
+FLOATBOB +FLOATBOB
Inventory.DefMaxAmount Inventory.DefMaxAmount
Inventory.PickupFlash "PickupFlash" Inventory.PickupFlash "PickupFlash"
@ -189,9 +185,8 @@ ACTOR PoisonCloud native
// Poison Shroom ------------------------------------------------------------ // Poison Shroom ------------------------------------------------------------
ACTOR ZPoisonShroom : PoisonBag 8104 ACTOR ZPoisonShroom : PoisonBag
{ {
Game Hexen
Radius 6 Radius 6
Height 20 Height 20
PainChance 255 PainChance 255

View file

@ -1,9 +1,8 @@
// Buzzy fly ---------------------------------------------------------------- // Buzzy fly ----------------------------------------------------------------
ACTOR LittleFly 112 ACTOR LittleFly
{ {
Game Hexen
+NOBLOCKMAP +NOGRAVITY +NOBLOCKMAP +NOGRAVITY
+CANPASS +CANPASS

View file

@ -1,9 +1,8 @@
// Fog Spawner -------------------------------------------------------------- // Fog Spawner --------------------------------------------------------------
ACTOR FogSpawner 10000 ACTOR FogSpawner
{ {
Game Hexen
+NOSECTOR +NOBLOCKMAP +NOSECTOR +NOBLOCKMAP
+FLOATBOB +FLOATBOB
+NOGRAVITY +NOGRAVITY
@ -21,9 +20,8 @@ ACTOR FogSpawner 10000
// Small Fog Patch ---------------------------------------------------------- // Small Fog Patch ----------------------------------------------------------
ACTOR FogPatchSmall 10001 ACTOR FogPatchSmall
{ {
Game Hexen
Speed 1 Speed 1
+NOBLOCKMAP +NOGRAVITY +NOCLIP +FLOAT +NOBLOCKMAP +NOGRAVITY +NOCLIP +FLOAT
+NOTELEPORT +NOTELEPORT
@ -45,9 +43,8 @@ ACTOR FogPatchSmall 10001
// Medium Fog Patch --------------------------------------------------------- // Medium Fog Patch ---------------------------------------------------------
ACTOR FogPatchMedium : FogPatchSmall 10002 ACTOR FogPatchMedium : FogPatchSmall
{ {
Game Hexen
States States
{ {
Spawn: Spawn:
@ -61,9 +58,8 @@ ACTOR FogPatchMedium : FogPatchSmall 10002
// Large Fog Patch ---------------------------------------------------------- // Large Fog Patch ----------------------------------------------------------
ACTOR FogPatchLarge : FogPatchMedium 10003 ACTOR FogPatchLarge : FogPatchMedium
{ {
Game Hexen
States States
{ {
Spawn: Spawn:

Some files were not shown because too many files have changed in this diff Show more