mirror of
https://github.com/ZDoom/qzdoom-gpl.git
synced 2025-01-19 13:40:51 +00:00
Merge branch 'master' of https://github.com/rheit/zdoom
This commit is contained in:
commit
5f2f11a43b
190 changed files with 4172 additions and 3634 deletions
|
@ -871,6 +871,7 @@ add_executable( zdoom WIN32 MACOSX_BUNDLE
|
|||
f_wipe.cpp
|
||||
farchive.cpp
|
||||
files.cpp
|
||||
g_doomedmap.cpp
|
||||
g_game.cpp
|
||||
g_hub.cpp
|
||||
g_level.cpp
|
||||
|
|
|
@ -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);
|
||||
|
||||
CheckLumpName(lump->Name);
|
||||
if (lump->FullName != NULL)
|
||||
if (lump->FullName.IsNotEmpty())
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1992,6 +1992,9 @@ static void D_DoomInit()
|
|||
|
||||
static void AddAutoloadFiles(const char *group, const char *autoname)
|
||||
{
|
||||
LumpFilterGroup = group;
|
||||
LumpFilterIWAD = autoname;
|
||||
|
||||
if (!(gameinfo.flags & GI_SHAREWARE) && !Args->CheckParm("-noautoload"))
|
||||
{
|
||||
FString file;
|
||||
|
@ -2440,6 +2443,8 @@ void D_DoomMain (void)
|
|||
// Create replacements for dehacked pickups
|
||||
FinishDehPatch();
|
||||
|
||||
InitActorNumsFromMapinfo();
|
||||
InitSpawnablesFromMapinfo();
|
||||
FActorInfo::StaticSetActorNums ();
|
||||
|
||||
//Added by MC:
|
||||
|
|
|
@ -429,10 +429,10 @@ struct FPlayerStart
|
|||
short angle, type;
|
||||
|
||||
FPlayerStart() { }
|
||||
FPlayerStart(const FMapThing *mthing)
|
||||
FPlayerStart(const FMapThing *mthing, int pnum)
|
||||
: x(mthing->x), y(mthing->y), z(mthing->z),
|
||||
angle(mthing->angle),
|
||||
type(mthing->type)
|
||||
type(pnum)
|
||||
{ }
|
||||
};
|
||||
// Player spawn spots for deathmatch.
|
||||
|
|
|
@ -69,3 +69,4 @@ int SinglePlayerClass[MAXPLAYERS];
|
|||
bool ToggleFullscreen;
|
||||
int BorderTopRefresh;
|
||||
|
||||
FString LumpFilterGroup, LumpFilterIWAD;
|
||||
|
|
|
@ -250,4 +250,7 @@ EXTERN_CVAR (Int, compatflags);
|
|||
EXTERN_CVAR (Int, compatflags2);
|
||||
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
|
||||
|
|
264
src/g_doomedmap.cpp
Normal file
264
src/g_doomedmap.cpp
Normal 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
|
||||
}
|
|
@ -104,6 +104,8 @@ struct FMapInfoParser
|
|||
|
||||
void ParseIntermissionAction(FIntermissionDescriptor *Desc);
|
||||
void ParseIntermission();
|
||||
void ParseDoomEdNums();
|
||||
void ParseSpawnNums();
|
||||
void ParseAMColors(bool);
|
||||
FName CheckEndSequence();
|
||||
FName ParseEndGame();
|
||||
|
|
|
@ -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");
|
||||
}
|
||||
}
|
||||
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"))
|
||||
{
|
||||
if (format_type != FMT_Old)
|
||||
|
|
|
@ -335,7 +335,6 @@ void FMapInfoParser::ParseGameInfo()
|
|||
GAMEINFOKEY_INT(defaultrespawntime, "defaultrespawntime")
|
||||
GAMEINFOKEY_INT(defaultdropstyle, "defaultdropstyle")
|
||||
GAMEINFOKEY_STRING(Endoom, "endoom")
|
||||
GAMEINFOKEY_INT(player5start, "player5start")
|
||||
GAMEINFOKEY_STRINGARRAY(quitmessages, "addquitmessages", 0, false)
|
||||
GAMEINFOKEY_STRINGARRAY(quitmessages, "quitmessages", 0, true)
|
||||
GAMEINFOKEY_STRING(mTitleColor, "menufontcolor_title")
|
||||
|
|
1
src/gi.h
1
src/gi.h
|
@ -153,7 +153,6 @@ struct gameinfo_t
|
|||
int definventorymaxamount;
|
||||
int defaultrespawntime;
|
||||
int defaultdropstyle;
|
||||
int player5start;
|
||||
DWORD pickupcolor;
|
||||
TArray<FString> quitmessages;
|
||||
FName mTitleColor;
|
||||
|
|
156
src/info.cpp
156
src/info.cpp
|
@ -141,9 +141,6 @@ void FActorInfo::StaticInit ()
|
|||
|
||||
void FActorInfo::StaticSetActorNums ()
|
||||
{
|
||||
SpawnableThings.Clear();
|
||||
DoomEdMap.Empty ();
|
||||
|
||||
for (unsigned int i = 0; i < PClass::m_RuntimeActors.Size(); ++i)
|
||||
{
|
||||
PClass::m_RuntimeActors[i]->ActorInfo->RegisterIDs ();
|
||||
|
@ -171,7 +168,16 @@ void FActorInfo::RegisterIDs ()
|
|||
}
|
||||
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)
|
||||
{
|
||||
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
|
||||
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;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
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)
|
||||
{
|
||||
if (CheckCheatmode ())
|
||||
|
|
49
src/info.h
49
src/info.h
|
@ -278,34 +278,39 @@ struct FActorInfo
|
|||
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;
|
||||
int DoomEdNum;
|
||||
bool temp;
|
||||
};
|
||||
|
||||
static FDoomEdEntry *DoomEdHash[DOOMED_HASHSIZE];
|
||||
int Special;
|
||||
int Args[5];
|
||||
};
|
||||
|
||||
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;
|
||||
|
||||
void InitActorNumsFromMapinfo();
|
||||
|
||||
|
||||
int GetSpriteIndex(const char * spritename, bool add = true);
|
||||
TArray<FName> &MakeStateNameList(const char * fname);
|
||||
void AddStateLight(FState *state, const char *lname);
|
||||
|
|
|
@ -723,7 +723,7 @@ static int LoadSprites (spritetype *sprites, Xsprite *xsprites, int numsprites,
|
|||
if (xsprites[i].Data1 < 4)
|
||||
mapthings[count].type = 1 + xsprites[i].Data1;
|
||||
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)
|
||||
{ // Bloodbath start
|
||||
|
|
|
@ -174,6 +174,7 @@ void P_RemoveThing(AActor * actor);
|
|||
bool P_Thing_Raise(AActor *thing, AActor *raiser);
|
||||
bool P_Thing_CanRaise(AActor *thing);
|
||||
const PClass *P_GetSpawnableType(int spawnnum);
|
||||
void InitSpawnablesFromMapinfo();
|
||||
|
||||
//
|
||||
// P_MAPUTL
|
||||
|
@ -591,19 +592,6 @@ struct polyspawns_t
|
|||
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 polyspawns_t *polyspawns; // [RH] list of polyobject things to spawn
|
||||
|
||||
|
|
148
src/p_mobj.cpp
148
src/p_mobj.cpp
|
@ -4600,67 +4600,80 @@ AActor *P_SpawnMapThing (FMapThing *mthing, int position)
|
|||
if (mthing->type == 0 || mthing->type == -1)
|
||||
return NULL;
|
||||
|
||||
// count deathmatch start positions
|
||||
if (mthing->type == 11)
|
||||
// find which type to spawn
|
||||
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);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Convert Strife starts to Hexen-style starts
|
||||
if (gameinfo.gametype == GAME_Strife && mthing->type >= 118 && mthing->type <= 127)
|
||||
{
|
||||
mthing->args[0] = mthing->type - 117;
|
||||
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)
|
||||
case SMT_POLYANCHOR:
|
||||
case SMT_POLYSPAWN:
|
||||
case SMT_POLYSPAWNCRUSH:
|
||||
case SMT_POLYSPAWNHURT:
|
||||
{
|
||||
polyspawns_t *polyspawn = new polyspawns_t;
|
||||
polyspawn->next = polyspawns;
|
||||
polyspawn->x = mthing->x;
|
||||
polyspawn->y = mthing->y;
|
||||
polyspawn->angle = mthing->angle;
|
||||
polyspawn->type = mthing->type;
|
||||
polyspawn->type = mentry->Special;
|
||||
polyspawns = polyspawn;
|
||||
if (mthing->type != PO_ANCHOR_TYPE)
|
||||
if (mentry->Special != SMT_POLYANCHOR)
|
||||
po_NumPolyobjs++;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// check for players specially
|
||||
int pnum = -1;
|
||||
case SMT_PLAYER1START:
|
||||
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;
|
||||
|
||||
// save spots for respawning in network games
|
||||
FPlayerStart start(mthing);
|
||||
FPlayerStart start(mthing, pnum+1);
|
||||
playerstarts[pnum] = start;
|
||||
AllPlayerStarts.Push(start);
|
||||
if (!deathmatch && !(level.flags2 & LEVEL2_RANDOMPLAYERSTARTS))
|
||||
|
@ -4739,20 +4752,10 @@ AActor *P_SpawnMapThing (FMapThing *mthing, int position)
|
|||
}
|
||||
|
||||
// [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;
|
||||
return NULL;
|
||||
}
|
||||
else if (mthing->type == 1411)
|
||||
{
|
||||
int type;
|
||||
|
||||
if (mthing->args[0] == 255)
|
||||
type = -1;
|
||||
else
|
||||
type = mthing->args[0];
|
||||
|
||||
int type = mentry->Args[0];
|
||||
if (type == 255) type = -1;
|
||||
if (type > 63)
|
||||
{
|
||||
Printf ("Sound sequence %d out of range\n", type);
|
||||
|
@ -4764,36 +4767,11 @@ AActor *P_SpawnMapThing (FMapThing *mthing, int position)
|
|||
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
|
||||
// it to the unknown thing.
|
||||
else
|
||||
{
|
||||
// Handle decorate replacements explicitly here
|
||||
// to check for missing frames in the replacement object.
|
||||
i = i->GetReplacement();
|
||||
i = mentry->Type->GetReplacement();
|
||||
|
||||
const AActor *defaults = GetDefaultByType (i);
|
||||
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 = PClass::FindClass("Unknown");
|
||||
}
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
// if the actor got args defined either in DECORATE or MAPINFO we must ignore the map's properties.
|
||||
if (!(mobj->flags2 & MF2_ARGSDEFINED))
|
||||
{
|
||||
// [RH] Set the thing's special
|
||||
|
|
|
@ -3334,32 +3334,16 @@ void P_GetPolySpots (MapData * map, TArray<FNodeBuilder::FPolyStart> &spots, TAr
|
|||
{
|
||||
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)
|
||||
{
|
||||
if (MapThingsConverted[i].type == spot1 || MapThingsConverted[i].type == spot2 ||
|
||||
MapThingsConverted[i].type == spot3 || MapThingsConverted[i].type == anchor)
|
||||
FDoomEdEntry *mentry = DoomEdMap.CheckKey(MapThingsConverted[i].type);
|
||||
if (mentry != NULL && mentry->Type == NULL && mentry->Special >= SMT_POLYANCHOR && mentry->Special <= SMT_POLYSPAWNHURT)
|
||||
{
|
||||
FNodeBuilder::FPolyStart newvert;
|
||||
newvert.x = MapThingsConverted[i].x;
|
||||
newvert.y = MapThingsConverted[i].y;
|
||||
newvert.polynum = MapThingsConverted[i].angle;
|
||||
if (MapThingsConverted[i].type == anchor)
|
||||
if (mentry->Special == SMT_POLYANCHOR)
|
||||
{
|
||||
anchors.Push (newvert);
|
||||
}
|
||||
|
|
|
@ -45,10 +45,23 @@
|
|||
#include "gi.h"
|
||||
#include "templates.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.
|
||||
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");
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
|
|
@ -1561,8 +1561,8 @@ static void SpawnPolyobj (int index, int tag, int type)
|
|||
sd->linedef->args[0] = 0;
|
||||
IterFindPolySides(&polyobjs[index], sd);
|
||||
po->MirrorNum = sd->linedef->args[1];
|
||||
po->crush = (type != PO_SPAWN_TYPE) ? 3 : 0;
|
||||
po->bHurtOnTouch = (type == PO_SPAWNHURT_TYPE);
|
||||
po->crush = (type != SMT_POLYSPAWN) ? 3 : 0;
|
||||
po->bHurtOnTouch = (type == SMT_POLYSPAWNHURT);
|
||||
po->tag = tag;
|
||||
po->seqType = sd->linedef->args[2];
|
||||
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)
|
||||
{
|
||||
po->crush = (type != PO_SPAWN_TYPE) ? 3 : 0;
|
||||
po->bHurtOnTouch = (type == PO_SPAWNHURT_TYPE);
|
||||
po->crush = (type != SMT_POLYSPAWN) ? 3 : 0;
|
||||
po->bHurtOnTouch = (type == SMT_POLYSPAWNHURT);
|
||||
po->tag = tag;
|
||||
po->seqType = po->Sidedefs[0]->linedef->args[3];
|
||||
po->MirrorNum = po->Sidedefs[0]->linedef->args[2];
|
||||
|
@ -1756,9 +1756,7 @@ void PO_Init (void)
|
|||
for (polyspawn = polyspawns, prev = &polyspawns; polyspawn;)
|
||||
{
|
||||
// 9301 (3001) = no crush, 9302 (3002) = crushing, 9303 = hurting touch
|
||||
if (polyspawn->type == PO_SPAWN_TYPE ||
|
||||
polyspawn->type == PO_SPAWNCRUSH_TYPE ||
|
||||
polyspawn->type == PO_SPAWNHURT_TYPE)
|
||||
if (polyspawn->type >= SMT_POLYSPAWN && polyspawn->type <= SMT_POLYSPAWNHURT)
|
||||
{
|
||||
// Polyobj StartSpot Pt.
|
||||
polyobjs[polyIndex].StartSpot.x = polyspawn->x;
|
||||
|
@ -1778,7 +1776,7 @@ void PO_Init (void)
|
|||
for (polyspawn = polyspawns; polyspawn;)
|
||||
{
|
||||
polyspawns_t *next = polyspawn->next;
|
||||
if (polyspawn->type == PO_ANCHOR_TYPE)
|
||||
if (polyspawn->type == SMT_POLYANCHOR)
|
||||
{
|
||||
// Polyobj Anchor Pt.
|
||||
TranslateToStartSpot (polyspawn->angle, polyspawn->x, polyspawn->y);
|
||||
|
|
|
@ -179,7 +179,7 @@ struct F7ZLump : public FResourceLump
|
|||
|
||||
//==========================================================================
|
||||
//
|
||||
// Zip file
|
||||
// 7-zip file
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
|
@ -190,8 +190,6 @@ class F7ZFile : public FResourceFile
|
|||
F7ZLump *Lumps;
|
||||
C7zArchive *Archive;
|
||||
|
||||
static int STACK_ARGS lumpcmp(const void * a, const void * b);
|
||||
|
||||
public:
|
||||
F7ZFile(const char * filename, FileReader *filer);
|
||||
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
|
||||
|
@ -328,8 +317,7 @@ bool F7ZFile::Open(bool quiet)
|
|||
|
||||
if (!quiet) Printf(", %d lumps\n", NumLumps);
|
||||
|
||||
// Entries in archives are sorted alphabetically
|
||||
qsort(&Lumps[0], NumLumps, sizeof(F7ZLump), lumpcmp);
|
||||
PostProcessArchive(&Lumps[0], sizeof(F7ZLump));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -86,8 +86,6 @@ class FDirectory : public FResourceFile
|
|||
{
|
||||
TArray<FDirectoryLump> Lumps;
|
||||
|
||||
static int STACK_ARGS lumpcmp(const void * a, const void * b);
|
||||
|
||||
int AddDirectory(const char *dirpath);
|
||||
void AddEntry(const char *fullpath, int size);
|
||||
|
||||
|
@ -113,29 +111,18 @@ FDirectory::FDirectory(const char * directory)
|
|||
#ifdef _WIN32
|
||||
directory = _fullpath(NULL, directory, _MAX_PATH);
|
||||
#else
|
||||
// Todo for Linux: Resolve the path befire using it
|
||||
// Todo for Linux: Resolve the path before using it
|
||||
#endif
|
||||
dirname = directory;
|
||||
#ifdef _WIN32
|
||||
free((void *)directory);
|
||||
#endif
|
||||
dirname.ReplaceChars('\\', '/');
|
||||
if (dirname[dirname.Len()-1] != '/') 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
|
||||
//==========================================================================
|
||||
//
|
||||
|
@ -299,8 +286,7 @@ bool FDirectory::Open(bool quiet)
|
|||
{
|
||||
NumLumps = AddDirectory(Filename);
|
||||
if (!quiet) Printf(", %d lumps\n", NumLumps);
|
||||
// Entries in Zips are sorted alphabetically.
|
||||
qsort(&Lumps[0], NumLumps, sizeof(FDirectoryLump), lumpcmp);
|
||||
PostProcessArchive(&Lumps[0], sizeof(FDirectoryLump));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -138,8 +138,6 @@ class FZipFile : public FResourceFile
|
|||
{
|
||||
FZipLump *Lumps;
|
||||
|
||||
static int STACK_ARGS lumpcmp(const void * a, const void * b);
|
||||
|
||||
public:
|
||||
FZipFile(const char * filename, FileReader *file);
|
||||
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
|
||||
|
@ -274,8 +262,7 @@ bool FZipFile::Open(bool quiet)
|
|||
|
||||
if (!quiet) Printf(", %d lumps\n", NumLumps);
|
||||
|
||||
// Entries in Zips are sorted alphabetically.
|
||||
qsort(Lumps, NumLumps, sizeof(FZipLump), lumpcmp);
|
||||
PostProcessArchive(&Lumps[0], sizeof(FZipLump));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -38,7 +38,8 @@
|
|||
#include "cmdlib.h"
|
||||
#include "w_wad.h"
|
||||
#include "doomerrors.h"
|
||||
|
||||
#include "gi.h"
|
||||
#include "doomstat.h"
|
||||
|
||||
|
||||
//==========================================================================
|
||||
|
@ -74,11 +75,6 @@ public:
|
|||
|
||||
FResourceLump::~FResourceLump()
|
||||
{
|
||||
if (FullName != NULL)
|
||||
{
|
||||
delete [] FullName;
|
||||
FullName = NULL;
|
||||
}
|
||||
if (Cache != NULL && RefCount >= 0)
|
||||
{
|
||||
delete [] Cache;
|
||||
|
@ -102,7 +98,7 @@ void FResourceLump::LumpNameSetup(const char *iname)
|
|||
base = base.Left(base.LastIndexOf('.'));
|
||||
uppercopy(Name, base);
|
||||
Name[8] = 0;
|
||||
FullName = copystring(iname);
|
||||
FullName = iname;
|
||||
|
||||
// Map some directories to WAD namespaces.
|
||||
// Note that some of these namespaces don't exist in WADS.
|
||||
|
@ -321,6 +317,194 @@ FResourceFile::~FResourceFile()
|
|||
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;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
|
|
|
@ -13,7 +13,7 @@ struct FResourceLump
|
|||
friend class FResourceFile;
|
||||
|
||||
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
|
||||
{
|
||||
char Name[9];
|
||||
|
@ -30,7 +30,6 @@ struct FResourceLump
|
|||
|
||||
FResourceLump()
|
||||
{
|
||||
FullName = NULL;
|
||||
Cache = NULL;
|
||||
Owner = NULL;
|
||||
Flags = 0;
|
||||
|
@ -66,9 +65,16 @@ protected:
|
|||
|
||||
FResourceFile(const char *filename, FileReader *r);
|
||||
|
||||
// for archives that can contain directories
|
||||
void PostProcessArchive(void *lumps, size_t lumpsize);
|
||||
|
||||
private:
|
||||
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:
|
||||
static FResourceFile *OpenResourceFile(const char *filename, FileReader *file, bool quiet = false);
|
||||
static FResourceFile *OpenDirectory(const char *filename, bool quiet = false);
|
||||
|
|
|
@ -976,7 +976,7 @@ DEFINE_PROPERTY(translation, L, Actor)
|
|||
if (type == 0)
|
||||
{
|
||||
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)
|
||||
{
|
||||
I_Error ("Translation must be in the range [0,%d]", max);
|
||||
|
|
|
@ -290,14 +290,9 @@ void FWadCollection::AddFile (const char *filename, FileReader *wadinfo)
|
|||
FResourceLump *lump = resfile->GetLump(i);
|
||||
if (lump->Flags & LUMPF_EMBEDDED)
|
||||
{
|
||||
char path[256];
|
||||
|
||||
mysnprintf(path, countof(path), "%s:", filename);
|
||||
char *wadstr = path + strlen(path);
|
||||
|
||||
FString path;
|
||||
path.Format("%s:%s", filename, lump->FullName.GetChars());
|
||||
FileReader *embedded = lump->NewReader();
|
||||
strcpy(wadstr, lump->FullName);
|
||||
|
||||
AddFile(path, embedded);
|
||||
}
|
||||
}
|
||||
|
@ -345,7 +340,9 @@ void FWadCollection::AddFile (const char *filename, FileReader *wadinfo)
|
|||
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;
|
||||
}
|
||||
|
@ -737,7 +734,7 @@ void FWadCollection::InitHashChains (void)
|
|||
FirstLumpIndex[j] = i;
|
||||
|
||||
// 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;
|
||||
NextLumpIndex_FullName[i] = FirstLumpIndex_FullName[j];
|
||||
|
@ -1088,7 +1085,7 @@ const char *FWadCollection::GetLumpFullName (int lump) const
|
|||
{
|
||||
if ((size_t)lump >= NumLumps)
|
||||
return NULL;
|
||||
else if (LumpInfo[lump].lump->FullName != NULL)
|
||||
else if (LumpInfo[lump].lump->FullName.IsNotEmpty())
|
||||
return LumpInfo[lump].lump->FullName;
|
||||
else
|
||||
return LumpInfo[lump].lump->Name;
|
||||
|
@ -1574,3 +1571,33 @@ static void PrintLastError ()
|
|||
Printf (TEXTCOLOR_RED " %s\n", strerror(errno));
|
||||
}
|
||||
#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
|
||||
|
|
|
@ -52,6 +52,8 @@ struct wadlump_t
|
|||
|
||||
// [RH] Namespaces from BOOM.
|
||||
typedef enum {
|
||||
ns_invalid = -1,
|
||||
|
||||
ns_global = 0,
|
||||
ns_sprites,
|
||||
ns_flats,
|
||||
|
|
|
@ -2,15 +2,13 @@
|
|||
|
||||
// Mini Zorch -----------------------------------------------------------------
|
||||
|
||||
actor MiniZorchRecharge : Clip 2007
|
||||
actor MiniZorchRecharge : Clip
|
||||
{
|
||||
Game Chex
|
||||
inventory.pickupmessage "$GOTZORCHRECHARGE"
|
||||
}
|
||||
|
||||
actor MiniZorchPack : Clip 2048
|
||||
actor MiniZorchPack : Clip
|
||||
{
|
||||
Game Chex
|
||||
Inventory.PickupMessage "$GOTMINIZORCHPACK"
|
||||
Inventory.Amount 50
|
||||
States
|
||||
|
@ -23,15 +21,13 @@ actor MiniZorchPack : Clip 2048
|
|||
|
||||
// Large Zorch ----------------------------------------------------------------
|
||||
|
||||
actor LargeZorchRecharge : Shell 2008
|
||||
actor LargeZorchRecharge : Shell
|
||||
{
|
||||
Game Chex
|
||||
inventory.pickupmessage "$GOTLARGEZORCHERRECHARGE"
|
||||
}
|
||||
|
||||
actor LargeZorchPack : Shell 2049
|
||||
actor LargeZorchPack : Shell
|
||||
{
|
||||
Game Chex
|
||||
Inventory.PickupMessage "$GOTLARGEZORCHERPACK"
|
||||
Inventory.Amount 20
|
||||
States
|
||||
|
@ -44,15 +40,13 @@ actor LargeZorchPack : Shell 2049
|
|||
|
||||
// Zorch Propulsor ------------------------------------------------------------
|
||||
|
||||
actor PropulsorZorch : RocketAmmo 2010
|
||||
actor PropulsorZorch : RocketAmmo
|
||||
{
|
||||
Game Chex
|
||||
inventory.pickupmessage "$GOTPROPULSORRECHARGE"
|
||||
}
|
||||
|
||||
actor PropulsorZorchPack : RocketAmmo 2046
|
||||
actor PropulsorZorchPack : RocketAmmo
|
||||
{
|
||||
Game Chex
|
||||
Inventory.PickupMessage "$GOTPROPULSORPACK"
|
||||
Inventory.Amount 5
|
||||
States
|
||||
|
@ -65,16 +59,13 @@ actor PropulsorZorchPack : RocketAmmo 2046
|
|||
|
||||
// Phasing Zorch --------------------------------------------------------------
|
||||
|
||||
actor PhasingZorch : Cell 2047
|
||||
actor PhasingZorch : Cell
|
||||
{
|
||||
Game Chex
|
||||
inventory.pickupmessage "$GOTPHASINGZORCHERRECHARGE"
|
||||
}
|
||||
|
||||
actor PhasingZorchPack : Cell 17
|
||||
actor PhasingZorchPack : Cell
|
||||
{
|
||||
Game Chex
|
||||
SpawnID 142
|
||||
Inventory.PickupMessage "$GOTPHASINGZORCHERPACK"
|
||||
Inventory.Amount 100
|
||||
States
|
||||
|
|
|
@ -2,81 +2,69 @@
|
|||
|
||||
// Civilians ------------------------------------------------------------------
|
||||
|
||||
actor ChexCivilian1 : GreenTorch 45
|
||||
actor ChexCivilian1 : GreenTorch
|
||||
{
|
||||
game Chex
|
||||
height 54
|
||||
}
|
||||
|
||||
actor ChexCivilian2 : ShortGreenTorch 56
|
||||
actor ChexCivilian2 : ShortGreenTorch
|
||||
{
|
||||
game Chex
|
||||
height 54
|
||||
}
|
||||
|
||||
actor ChexCivilian3 : ShortRedTorch 57
|
||||
actor ChexCivilian3 : ShortRedTorch
|
||||
{
|
||||
game Chex
|
||||
height 48
|
||||
}
|
||||
|
||||
// Landing Zone ---------------------------------------------------------------
|
||||
|
||||
actor ChexLandingLight : Column 2028
|
||||
actor ChexLandingLight : Column
|
||||
{
|
||||
game Chex
|
||||
height 35
|
||||
}
|
||||
|
||||
actor ChexSpaceship : TechPillar 48
|
||||
actor ChexSpaceship : TechPillar
|
||||
{
|
||||
game Chex
|
||||
height 52
|
||||
}
|
||||
|
||||
// Trees and Plants -----------------------------------------------------------
|
||||
|
||||
actor ChexAppleTree : Stalagtite 47
|
||||
actor ChexAppleTree : Stalagtite
|
||||
{
|
||||
game Chex
|
||||
height 92
|
||||
}
|
||||
|
||||
actor ChexBananaTree : BigTree 54
|
||||
actor ChexBananaTree : BigTree
|
||||
{
|
||||
game Chex
|
||||
height 108
|
||||
}
|
||||
|
||||
actor ChexOrangeTree : TorchTree 43
|
||||
actor ChexOrangeTree : TorchTree
|
||||
{
|
||||
game Chex
|
||||
height 92
|
||||
}
|
||||
|
||||
actor ChexSubmergedPlant : ShortGreenColumn 31
|
||||
actor ChexSubmergedPlant : ShortGreenColumn
|
||||
{
|
||||
game Chex
|
||||
height 42
|
||||
}
|
||||
|
||||
actor ChexTallFlower : HeadsOnAStick 28
|
||||
actor ChexTallFlower : HeadsOnAStick
|
||||
{
|
||||
game Chex
|
||||
height 25
|
||||
}
|
||||
|
||||
actor ChexTallFlower2 : DeadStick 25
|
||||
actor ChexTallFlower2 : DeadStick
|
||||
{
|
||||
game Chex
|
||||
height 25
|
||||
}
|
||||
|
||||
// Slime Fountain -------------------------------------------------------------
|
||||
|
||||
actor ChexSlimeFountain : BlueTorch 44
|
||||
actor ChexSlimeFountain : BlueTorch
|
||||
{
|
||||
game Chex
|
||||
height 48
|
||||
States
|
||||
{
|
||||
|
@ -88,53 +76,45 @@ actor ChexSlimeFountain : BlueTorch 44
|
|||
|
||||
// Cavern Decorations ---------------------------------------------------------
|
||||
|
||||
actor ChexCavernColumn : TallRedColumn 32
|
||||
actor ChexCavernColumn : TallRedColumn
|
||||
{
|
||||
game Chex
|
||||
height 128
|
||||
}
|
||||
|
||||
actor ChexCavernStalagmite : TallGreenColumn 30
|
||||
actor ChexCavernStalagmite : TallGreenColumn
|
||||
{
|
||||
game Chex
|
||||
height 60
|
||||
}
|
||||
|
||||
// Misc. Props ----------------------------------------------------------------
|
||||
|
||||
actor ChexChemicalBurner : EvilEye 41
|
||||
actor ChexChemicalBurner : EvilEye
|
||||
{
|
||||
game Chex
|
||||
height 25
|
||||
}
|
||||
|
||||
actor ChexChemicalFlask : Candlestick 34
|
||||
actor ChexChemicalFlask : Candlestick
|
||||
{
|
||||
game Chex
|
||||
renderstyle translucent
|
||||
alpha 0.75
|
||||
}
|
||||
|
||||
actor ChexFlagOnPole : SkullColumn 37
|
||||
actor ChexFlagOnPole : SkullColumn
|
||||
{
|
||||
game Chex
|
||||
height 128
|
||||
}
|
||||
|
||||
actor ChexGasTank : Candelabra 35
|
||||
actor ChexGasTank : Candelabra
|
||||
{
|
||||
game Chex
|
||||
height 36
|
||||
}
|
||||
|
||||
actor ChexLightColumn : ShortBlueTorch 55
|
||||
actor ChexLightColumn : ShortBlueTorch
|
||||
{
|
||||
game Chex
|
||||
height 86
|
||||
}
|
||||
|
||||
actor ChexMineCart : ShortRedColumn 33
|
||||
actor ChexMineCart : ShortRedColumn
|
||||
{
|
||||
game Chex
|
||||
height 30
|
||||
}
|
||||
|
|
|
@ -3,67 +3,57 @@
|
|||
|
||||
// Health ---------------------------------------------------------------------
|
||||
|
||||
actor GlassOfWater : HealthBonus 2014
|
||||
actor GlassOfWater : HealthBonus
|
||||
{
|
||||
game Chex
|
||||
inventory.pickupmessage "$GOTWATER"
|
||||
}
|
||||
|
||||
actor BowlOfFruit : Stimpack 2011
|
||||
actor BowlOfFruit : Stimpack
|
||||
{
|
||||
game Chex
|
||||
inventory.pickupmessage "$GOTFRUIT"
|
||||
}
|
||||
|
||||
actor BowlOfVegetables : Medikit 2012
|
||||
actor BowlOfVegetables : Medikit
|
||||
{
|
||||
game Chex
|
||||
inventory.pickupmessage "$GOTVEGETABLES"
|
||||
health.lowmessage 25, "$GOTVEGETABLESNEED"
|
||||
}
|
||||
|
||||
actor SuperchargeBreakfast : Soulsphere 2013
|
||||
actor SuperchargeBreakfast : Soulsphere
|
||||
{
|
||||
game Chex
|
||||
inventory.pickupmessage "$GOTBREAKFAST"
|
||||
}
|
||||
|
||||
// Armor ----------------------------------------------------------------------
|
||||
|
||||
actor SlimeRepellent : ArmorBonus 2015
|
||||
actor SlimeRepellent : ArmorBonus
|
||||
{
|
||||
game Chex
|
||||
inventory.pickupmessage "$GOTREPELLENT"
|
||||
}
|
||||
|
||||
actor ChexArmor : GreenArmor 2018
|
||||
actor ChexArmor : GreenArmor
|
||||
{
|
||||
game Chex
|
||||
inventory.pickupmessage "$GOTCHEXARMOR"
|
||||
}
|
||||
|
||||
actor SuperChexArmor : BlueArmor 2019
|
||||
actor SuperChexArmor : BlueArmor
|
||||
{
|
||||
game Chex
|
||||
inventory.pickupmessage "$GOTSUPERCHEXARMOR"
|
||||
}
|
||||
|
||||
// Powerups ===================================================================
|
||||
|
||||
actor ComputerAreaMap : Allmap 2026
|
||||
actor ComputerAreaMap : Allmap
|
||||
{
|
||||
game Chex
|
||||
inventory.pickupmessage "$GOTCHEXMAP"
|
||||
}
|
||||
|
||||
actor SlimeProofSuit : RadSuit 2025
|
||||
actor SlimeProofSuit : RadSuit
|
||||
{
|
||||
game Chex
|
||||
inventory.pickupmessage "$GOTSLIMESUIT"
|
||||
}
|
||||
|
||||
actor Zorchpack : Backpack 8
|
||||
actor Zorchpack : Backpack
|
||||
{
|
||||
game Chex
|
||||
inventory.pickupmessage "$GOTZORCHPACK"
|
||||
}
|
||||
|
|
|
@ -1,19 +1,16 @@
|
|||
// These are merely renames of the Doom cards
|
||||
|
||||
actor ChexBlueCard : BlueCard 5
|
||||
actor ChexBlueCard : BlueCard
|
||||
{
|
||||
Game Chex
|
||||
inventory.pickupmessage "$GOTCBLUEKEY"
|
||||
}
|
||||
|
||||
actor ChexYellowCard : YellowCard 6
|
||||
actor ChexYellowCard : YellowCard
|
||||
{
|
||||
Game Chex
|
||||
inventory.pickupmessage "$GOTCYELLOWKEY"
|
||||
}
|
||||
|
||||
actor ChexRedCard : RedCard 13
|
||||
actor ChexRedCard : RedCard
|
||||
{
|
||||
Game Chex
|
||||
inventory.pickupmessage "$GOTCREDKEY"
|
||||
}
|
||||
|
|
|
@ -5,9 +5,8 @@
|
|||
//
|
||||
//===========================================================================
|
||||
|
||||
actor FlemoidusCommonus : ZombieMan 3004
|
||||
actor FlemoidusCommonus : ZombieMan
|
||||
{
|
||||
Game Chex
|
||||
DropItem ""
|
||||
Obituary "$OB_COMMONUS"
|
||||
States
|
||||
|
@ -25,9 +24,8 @@ actor FlemoidusCommonus : ZombieMan 3004
|
|||
//
|
||||
//===========================================================================
|
||||
|
||||
actor FlemoidusBipedicus : ShotgunGuy 9
|
||||
actor FlemoidusBipedicus : ShotgunGuy
|
||||
{
|
||||
Game Chex
|
||||
DropItem ""
|
||||
Obituary "$OB_BIPEDICUS"
|
||||
States
|
||||
|
@ -45,9 +43,8 @@ actor FlemoidusBipedicus : ShotgunGuy 9
|
|||
//
|
||||
//===========================================================================
|
||||
|
||||
actor ArmoredFlemoidusBipedicus : DoomImp 3001
|
||||
actor ArmoredFlemoidusBipedicus : DoomImp
|
||||
{
|
||||
Game Chex
|
||||
Obituary "$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"
|
||||
}
|
||||
|
||||
|
@ -70,9 +66,8 @@ actor FlemoidusCycloptisCommonus : Demon 3002
|
|||
//
|
||||
//===========================================================================
|
||||
|
||||
actor Flembrane : BaronOfHell 3003
|
||||
actor Flembrane : BaronOfHell
|
||||
{
|
||||
Game Chex
|
||||
radius 44
|
||||
height 100
|
||||
speed 0
|
||||
|
@ -88,8 +83,7 @@ actor Flembrane : BaronOfHell 3003
|
|||
|
||||
//===========================================================================
|
||||
|
||||
actor ChexSoul : LostSoul 3006
|
||||
actor ChexSoul : LostSoul
|
||||
{
|
||||
Game Chex
|
||||
height 0
|
||||
}
|
||||
|
|
|
@ -2,14 +2,12 @@
|
|||
|
||||
actor Bootspoon : Fist
|
||||
{
|
||||
game Chex
|
||||
obituary "$OB_MPSPOON"
|
||||
Tag "$TAG_SPOON"
|
||||
}
|
||||
|
||||
actor SuperBootspork : Chainsaw 2005
|
||||
actor SuperBootspork : Chainsaw
|
||||
{
|
||||
game Chex
|
||||
obituary "$OB_MPBOOTSPORK"
|
||||
Inventory.PickupMessage "$GOTSUPERBOOTSPORK"
|
||||
Tag "$TAG_SPORK"
|
||||
|
@ -17,7 +15,6 @@ actor SuperBootspork : Chainsaw 2005
|
|||
|
||||
actor MiniZorcher : Pistol
|
||||
{
|
||||
game Chex
|
||||
obituary "$OB_MPZORCH"
|
||||
inventory.pickupmessage "$GOTMINIZORCHER"
|
||||
Tag "$TAG_MINIZORCHER"
|
||||
|
@ -28,33 +25,29 @@ actor MiniZorcher : Pistol
|
|||
}
|
||||
}
|
||||
|
||||
actor LargeZorcher : Shotgun 2001
|
||||
actor LargeZorcher : Shotgun
|
||||
{
|
||||
game Chex
|
||||
obituary "$OB_MPZORCH"
|
||||
inventory.pickupmessage "$GOTLARGEZORCHER"
|
||||
Tag "$TAG_LARGEZORCHER"
|
||||
}
|
||||
|
||||
actor SuperLargeZorcher : SuperShotgun 82
|
||||
actor SuperLargeZorcher : SuperShotgun
|
||||
{
|
||||
game Chex
|
||||
obituary "$OB_MPMEGAZORCH"
|
||||
inventory.pickupmessage "$GOTSUPERLARGEZORCHER"
|
||||
Tag "$TAG_SUPERLARGEZORCHER"
|
||||
}
|
||||
|
||||
actor RapidZorcher : Chaingun 2002
|
||||
actor RapidZorcher : Chaingun
|
||||
{
|
||||
game Chex
|
||||
obituary "$OB_MPRAPIDZORCH"
|
||||
inventory.pickupmessage "$GOTRAPIDZORCHER"
|
||||
Tag "$TAG_RAPIDZORCHER"
|
||||
}
|
||||
|
||||
actor ZorchPropulsor : RocketLauncher 2003
|
||||
actor ZorchPropulsor : RocketLauncher
|
||||
{
|
||||
game Chex
|
||||
obituary ""
|
||||
inventory.pickupmessage "$GOTZORCHPROPULSOR"
|
||||
Tag "$TAG_ZORCHPROPULSOR"
|
||||
|
@ -77,9 +70,8 @@ actor PropulsorMissile : Rocket
|
|||
Alpha 0.75
|
||||
}
|
||||
|
||||
actor PhasingZorcher : PlasmaRifle 2004
|
||||
actor PhasingZorcher : PlasmaRifle
|
||||
{
|
||||
game Chex
|
||||
obituary ""
|
||||
inventory.pickupmessage "$GOTPHASINGZORCHER"
|
||||
Tag "$TAG_PHASINGZORCHER"
|
||||
|
@ -107,9 +99,8 @@ actor PhaseZorchMissile : PlasmaBall
|
|||
Alpha 0.75
|
||||
}
|
||||
|
||||
actor LAZDevice : BFG9000 2006
|
||||
actor LAZDevice : BFG9000
|
||||
{
|
||||
game Chex
|
||||
obituary ""
|
||||
inventory.pickupmessage "$GOTLAZDEVICE"
|
||||
Tag "$TAG_LAZDEVICE"
|
||||
|
|
|
@ -3,10 +3,8 @@
|
|||
// Arachnotron
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR Arachnotron 68
|
||||
ACTOR Arachnotron
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 6
|
||||
Health 500
|
||||
Radius 64
|
||||
Height 64
|
||||
|
@ -63,8 +61,6 @@ ACTOR Arachnotron 68
|
|||
//===========================================================================
|
||||
ACTOR ArachnotronPlasma
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 129
|
||||
Radius 13
|
||||
Height 8
|
||||
Speed 25
|
||||
|
|
|
@ -4,10 +4,8 @@
|
|||
//
|
||||
//===========================================================================
|
||||
|
||||
ACTOR Archvile 64
|
||||
ACTOR Archvile
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 111
|
||||
Health 700
|
||||
Radius 20
|
||||
Height 56
|
||||
|
@ -67,8 +65,6 @@ ACTOR Archvile 64
|
|||
|
||||
ACTOR ArchvileFire
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 98
|
||||
+NOBLOCKMAP +NOGRAVITY
|
||||
RenderStyle Add
|
||||
Alpha 1
|
||||
|
|
|
@ -5,9 +5,8 @@
|
|||
//
|
||||
//===========================================================================
|
||||
|
||||
ACTOR BossBrain 88
|
||||
ACTOR BossBrain
|
||||
{
|
||||
Game Doom
|
||||
Health 250
|
||||
Mass 10000000
|
||||
PainChance 255
|
||||
|
@ -43,9 +42,8 @@ ACTOR BossBrain 88
|
|||
//
|
||||
//===========================================================================
|
||||
|
||||
ACTOR BossEye 89
|
||||
ACTOR BossEye
|
||||
{
|
||||
Game Doom
|
||||
Height 32
|
||||
+NOBLOCKMAP
|
||||
+NOSECTOR
|
||||
|
@ -67,9 +65,8 @@ ACTOR BossEye 89
|
|||
//
|
||||
//===========================================================================
|
||||
|
||||
ACTOR BossTarget : SpecialSpot 87
|
||||
ACTOR BossTarget : SpecialSpot
|
||||
{
|
||||
Game Doom
|
||||
Height 32
|
||||
+NOBLOCKMAP
|
||||
+NOSECTOR
|
||||
|
|
|
@ -3,10 +3,8 @@
|
|||
// Baron of Hell
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR BaronOfHell 3003
|
||||
ACTOR BaronOfHell
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 3
|
||||
Health 1000
|
||||
Radius 24
|
||||
Height 64
|
||||
|
@ -59,10 +57,8 @@ ACTOR BaronOfHell 3003
|
|||
// Hell Knight
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR HellKnight : BaronOfHell 69
|
||||
ACTOR HellKnight : BaronOfHell
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 113
|
||||
Health 500
|
||||
-BOSSDEATH
|
||||
SeeSound "knight/sight"
|
||||
|
@ -110,8 +106,6 @@ ACTOR HellKnight : BaronOfHell 69
|
|||
//===========================================================================
|
||||
ACTOR BaronBall
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 154
|
||||
Radius 6
|
||||
Height 16
|
||||
Speed 15
|
||||
|
|
|
@ -3,10 +3,8 @@
|
|||
// Cacodemon
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR Cacodemon 3005
|
||||
ACTOR Cacodemon
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 19
|
||||
Health 400
|
||||
Radius 31
|
||||
Height 56
|
||||
|
@ -61,8 +59,6 @@ ACTOR Cacodemon 3005
|
|||
//===========================================================================
|
||||
ACTOR CacodemonBall
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 126
|
||||
Radius 6
|
||||
Height 8
|
||||
Speed 10
|
||||
|
|
|
@ -4,10 +4,8 @@
|
|||
// Cyberdemon
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR Cyberdemon 16
|
||||
ACTOR Cyberdemon
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 114
|
||||
Health 4000
|
||||
Radius 40
|
||||
Height 110
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
// Gibbed marine -----------------------------------------------------------
|
||||
|
||||
actor GibbedMarine 10
|
||||
actor GibbedMarine
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 145
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
@ -14,16 +12,14 @@ actor GibbedMarine 10
|
|||
|
||||
// Gibbed marine (extra copy) ----------------------------------------------
|
||||
|
||||
actor GibbedMarineExtra : GibbedMarine 12
|
||||
actor GibbedMarineExtra : GibbedMarine
|
||||
{
|
||||
Game Doom
|
||||
}
|
||||
|
||||
// Dead marine -------------------------------------------------------------
|
||||
|
||||
actor DeadMarine 15
|
||||
actor DeadMarine
|
||||
{
|
||||
Game Doom
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
@ -39,10 +35,9 @@ actor DeadMarine 15
|
|||
|
||||
// Dead zombie man ---------------------------------------------------------
|
||||
|
||||
actor DeadZombieMan : ZombieMan 18
|
||||
actor DeadZombieMan : ZombieMan
|
||||
{
|
||||
Skip_Super
|
||||
Game Doom
|
||||
DropItem None
|
||||
States
|
||||
{
|
||||
|
@ -53,10 +48,9 @@ actor DeadZombieMan : ZombieMan 18
|
|||
|
||||
// Dead shotgun guy --------------------------------------------------------
|
||||
|
||||
actor DeadShotgunGuy : ShotgunGuy 19
|
||||
actor DeadShotgunGuy : ShotgunGuy
|
||||
{
|
||||
Skip_Super
|
||||
Game Doom
|
||||
DropItem None
|
||||
States
|
||||
{
|
||||
|
@ -67,10 +61,9 @@ actor DeadShotgunGuy : ShotgunGuy 19
|
|||
|
||||
// Dead imp ----------------------------------------------------------------
|
||||
|
||||
actor DeadDoomImp : DoomImp 20
|
||||
actor DeadDoomImp : DoomImp
|
||||
{
|
||||
Skip_Super
|
||||
Game Doom
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
@ -80,10 +73,9 @@ actor DeadDoomImp : DoomImp 20
|
|||
|
||||
// Dead demon --------------------------------------------------------------
|
||||
|
||||
actor DeadDemon : Demon 21
|
||||
actor DeadDemon : Demon
|
||||
{
|
||||
Skip_Super
|
||||
Game Doom
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
@ -93,10 +85,9 @@ actor DeadDemon : Demon 21
|
|||
|
||||
// Dead cacodemon ----------------------------------------------------------
|
||||
|
||||
actor DeadCacodemon : Cacodemon 22
|
||||
actor DeadCacodemon : Cacodemon
|
||||
{
|
||||
Skip_Super
|
||||
Game Doom
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
@ -112,10 +103,9 @@ actor DeadCacodemon : Cacodemon 22
|
|||
* a holdover from that.)
|
||||
*/
|
||||
|
||||
actor DeadLostSoul : LostSoul 23
|
||||
actor DeadLostSoul : LostSoul
|
||||
{
|
||||
Skip_Super
|
||||
Game Doom
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
|
|
@ -3,10 +3,8 @@
|
|||
// Pink Demon
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR Demon 3002
|
||||
ACTOR Demon
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 8
|
||||
Health 150
|
||||
PainChance 180
|
||||
Speed 10
|
||||
|
@ -57,10 +55,8 @@ ACTOR Demon 3002
|
|||
// Spectre
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR Spectre : Demon 58
|
||||
ACTOR Spectre : Demon
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 9
|
||||
+SHADOW
|
||||
RenderStyle OptFuzzy
|
||||
Alpha 0.5
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
// Clip --------------------------------------------------------------------
|
||||
|
||||
ACTOR Clip : Ammo 2007
|
||||
ACTOR Clip : Ammo
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 11
|
||||
Inventory.PickupMessage "$GOTCLIP"
|
||||
Inventory.Amount 10
|
||||
Inventory.MaxAmount 200
|
||||
|
@ -20,10 +18,8 @@ ACTOR Clip : Ammo 2007
|
|||
|
||||
// Clip box ----------------------------------------------------------------
|
||||
|
||||
ACTOR ClipBox : Clip 2048
|
||||
ACTOR ClipBox : Clip
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 139
|
||||
Inventory.PickupMessage "$GOTCLIPBOX"
|
||||
Inventory.Amount 50
|
||||
States
|
||||
|
@ -36,10 +32,8 @@ ACTOR ClipBox : Clip 2048
|
|||
|
||||
// Rocket ------------------------------------------------------------------
|
||||
|
||||
ACTOR RocketAmmo : Ammo 2010
|
||||
ACTOR RocketAmmo : Ammo
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 140
|
||||
Inventory.PickupMessage "$GOTROCKET"
|
||||
Inventory.Amount 1
|
||||
Inventory.MaxAmount 50
|
||||
|
@ -56,10 +50,8 @@ ACTOR RocketAmmo : Ammo 2010
|
|||
|
||||
// Rocket box --------------------------------------------------------------
|
||||
|
||||
ACTOR RocketBox : RocketAmmo 2046
|
||||
ACTOR RocketBox : RocketAmmo
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 141
|
||||
Inventory.PickupMessage "$GOTROCKBOX"
|
||||
Inventory.Amount 5
|
||||
States
|
||||
|
@ -72,10 +64,8 @@ ACTOR RocketBox : RocketAmmo 2046
|
|||
|
||||
// Cell --------------------------------------------------------------------
|
||||
|
||||
ACTOR Cell : Ammo 2047
|
||||
ACTOR Cell : Ammo
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 75
|
||||
Inventory.PickupMessage "$GOTCELL"
|
||||
Inventory.Amount 20
|
||||
Inventory.MaxAmount 300
|
||||
|
@ -92,10 +82,8 @@ ACTOR Cell : Ammo 2047
|
|||
|
||||
// Cell pack ---------------------------------------------------------------
|
||||
|
||||
ACTOR CellPack : Cell 17
|
||||
ACTOR CellPack : Cell
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 142
|
||||
Inventory.PickupMessage "$GOTCELLBOX"
|
||||
Inventory.Amount 100
|
||||
States
|
||||
|
@ -108,10 +96,8 @@ ACTOR CellPack : Cell 17
|
|||
|
||||
// Shells ------------------------------------------------------------------
|
||||
|
||||
ACTOR Shell : Ammo 2008
|
||||
ACTOR Shell : Ammo
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 12
|
||||
Inventory.PickupMessage "$GOTSHELLS"
|
||||
Inventory.Amount 4
|
||||
Inventory.MaxAmount 50
|
||||
|
@ -128,10 +114,8 @@ ACTOR Shell : Ammo 2008
|
|||
|
||||
// Shell box ---------------------------------------------------------------
|
||||
|
||||
ACTOR ShellBox : Shell 2049
|
||||
ACTOR ShellBox : Shell
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 143
|
||||
Inventory.PickupMessage "$GOTSHELLBOX"
|
||||
Inventory.Amount 20
|
||||
States
|
||||
|
@ -144,10 +128,8 @@ ACTOR ShellBox : Shell 2049
|
|||
|
||||
// Backpack ---------------------------------------------------------------
|
||||
|
||||
ACTOR Backpack : BackpackItem 8
|
||||
ACTOR Backpack : BackpackItem
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 144
|
||||
Height 26
|
||||
Inventory.PickupMessage "$GOTBACKPACK"
|
||||
States
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
|
||||
// Armor bonus --------------------------------------------------------------
|
||||
|
||||
Actor ArmorBonus : BasicArmorBonus 2015
|
||||
Actor ArmorBonus : BasicArmorBonus
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 22
|
||||
Radius 20
|
||||
Height 16
|
||||
Inventory.Pickupmessage "$GOTARMBONUS"
|
||||
|
@ -24,10 +22,8 @@ Actor ArmorBonus : BasicArmorBonus 2015
|
|||
|
||||
// Green armor --------------------------------------------------------------
|
||||
|
||||
Actor GreenArmor : BasicArmorPickup 2018
|
||||
Actor GreenArmor : BasicArmorPickup
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 68
|
||||
Radius 20
|
||||
Height 16
|
||||
Inventory.Pickupmessage "$GOTARMOR"
|
||||
|
@ -45,10 +41,8 @@ Actor GreenArmor : BasicArmorPickup 2018
|
|||
|
||||
// Blue armor ---------------------------------------------------------------
|
||||
|
||||
Actor BlueArmor : BasicArmorPickup 2019
|
||||
Actor BlueArmor : BasicArmorPickup
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 69
|
||||
Radius 20
|
||||
Height 16
|
||||
Inventory.Pickupmessage "$GOTMEGA"
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
// Invulnerability Sphere ---------------------------------------------------
|
||||
|
||||
ACTOR InvulnerabilitySphere : PowerupGiver 2022
|
||||
ACTOR InvulnerabilitySphere : PowerupGiver
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 133
|
||||
+COUNTITEM
|
||||
+INVENTORY.AUTOACTIVATE
|
||||
+INVENTORY.ALWAYSPICKUP
|
||||
|
@ -22,10 +20,8 @@ ACTOR InvulnerabilitySphere : PowerupGiver 2022
|
|||
|
||||
// Soulsphere --------------------------------------------------------------
|
||||
|
||||
ACTOR Soulsphere : Health 2013
|
||||
ACTOR Soulsphere : Health
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 25
|
||||
+COUNTITEM
|
||||
+INVENTORY.AUTOACTIVATE
|
||||
+INVENTORY.ALWAYSPICKUP
|
||||
|
@ -58,10 +54,8 @@ actor BlueArmorForMegasphere : BlueArmor
|
|||
Armor.SaveAmount 200
|
||||
}
|
||||
|
||||
ACTOR Megasphere : CustomInventory 83
|
||||
ACTOR Megasphere : CustomInventory
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 132
|
||||
+COUNTITEM
|
||||
+INVENTORY.ALWAYSPICKUP
|
||||
Inventory.PickupMessage "$GOTMSPHERE"
|
||||
|
@ -80,10 +74,8 @@ ACTOR Megasphere : CustomInventory 83
|
|||
|
||||
// Invisibility -------------------------------------------------------------
|
||||
|
||||
ACTOR BlurSphere : PowerupGiver 2024
|
||||
ACTOR BlurSphere : PowerupGiver
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 135
|
||||
+COUNTITEM
|
||||
+VISIBILITYPULSE
|
||||
+INVENTORY.AUTOACTIVATE
|
||||
|
@ -103,10 +95,8 @@ ACTOR BlurSphere : PowerupGiver 2024
|
|||
|
||||
// Radiation suit (aka iron feet) -------------------------------------------
|
||||
|
||||
ACTOR RadSuit : PowerupGiver 2025
|
||||
ACTOR RadSuit : PowerupGiver
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 136
|
||||
Height 46
|
||||
+INVENTORY.AUTOACTIVATE
|
||||
+INVENTORY.ALWAYSPICKUP
|
||||
|
@ -123,10 +113,8 @@ ACTOR RadSuit : PowerupGiver 2025
|
|||
|
||||
// infrared -----------------------------------------------------------------
|
||||
|
||||
ACTOR Infrared : PowerupGiver 2045
|
||||
ACTOR Infrared : PowerupGiver
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 138
|
||||
+COUNTITEM
|
||||
+INVENTORY.AUTOACTIVATE
|
||||
+INVENTORY.ALWAYSPICKUP
|
||||
|
@ -144,10 +132,8 @@ ACTOR Infrared : PowerupGiver 2045
|
|||
|
||||
// Allmap -------------------------------------------------------------------
|
||||
|
||||
ACTOR Allmap : MapRevealer 2026
|
||||
ACTOR Allmap : MapRevealer
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 137
|
||||
+COUNTITEM
|
||||
+INVENTORY.FANCYPICKUPSOUND
|
||||
+INVENTORY.ALWAYSPICKUP
|
||||
|
@ -164,10 +150,8 @@ ACTOR Allmap : MapRevealer 2026
|
|||
|
||||
// Berserk ------------------------------------------------------------------
|
||||
|
||||
ACTOR Berserk : CustomInventory 2023
|
||||
ACTOR Berserk : CustomInventory
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 134
|
||||
+COUNTITEM
|
||||
+INVENTORY.ALWAYSPICKUP
|
||||
Inventory.PickupMessage "$GOTBERSERK"
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
|
||||
// Tech lamp ---------------------------------------------------------------
|
||||
|
||||
ACTOR TechLamp 85
|
||||
ACTOR TechLamp
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 80
|
||||
ProjectilePassHeight -16
|
||||
|
@ -18,9 +17,8 @@ ACTOR TechLamp 85
|
|||
|
||||
// Tech lamp 2 -------------------------------------------------------------
|
||||
|
||||
ACTOR TechLamp2 86
|
||||
ACTOR TechLamp2
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 60
|
||||
ProjectilePassHeight -16
|
||||
|
@ -35,9 +33,8 @@ ACTOR TechLamp2 86
|
|||
|
||||
// Column ------------------------------------------------------------------
|
||||
|
||||
ACTOR Column 2028
|
||||
ACTOR Column
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 48
|
||||
ProjectilePassHeight -16
|
||||
|
@ -52,9 +49,8 @@ ACTOR Column 2028
|
|||
|
||||
// Tall green column -------------------------------------------------------
|
||||
|
||||
ACTOR TallGreenColumn 30
|
||||
ACTOR TallGreenColumn
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 52
|
||||
ProjectilePassHeight -16
|
||||
|
@ -69,9 +65,8 @@ ACTOR TallGreenColumn 30
|
|||
|
||||
// Short green column ------------------------------------------------------
|
||||
|
||||
ACTOR ShortGreenColumn 31
|
||||
ACTOR ShortGreenColumn
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 40
|
||||
ProjectilePassHeight -16
|
||||
|
@ -86,9 +81,8 @@ ACTOR ShortGreenColumn 31
|
|||
|
||||
// Tall red column ---------------------------------------------------------
|
||||
|
||||
ACTOR TallRedColumn 32
|
||||
ACTOR TallRedColumn
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 52
|
||||
ProjectilePassHeight -16
|
||||
|
@ -103,9 +97,8 @@ ACTOR TallRedColumn 32
|
|||
|
||||
// Short red column --------------------------------------------------------
|
||||
|
||||
ACTOR ShortRedColumn 33
|
||||
ACTOR ShortRedColumn
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 40
|
||||
ProjectilePassHeight -16
|
||||
|
@ -120,9 +113,8 @@ ACTOR ShortRedColumn 33
|
|||
|
||||
// Skull column ------------------------------------------------------------
|
||||
|
||||
ACTOR SkullColumn 37
|
||||
ACTOR SkullColumn
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 40
|
||||
ProjectilePassHeight -16
|
||||
|
@ -137,9 +129,8 @@ ACTOR SkullColumn 37
|
|||
|
||||
// Heart column ------------------------------------------------------------
|
||||
|
||||
ACTOR HeartColumn 36
|
||||
ACTOR HeartColumn
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 40
|
||||
ProjectilePassHeight -16
|
||||
|
@ -154,9 +145,8 @@ ACTOR HeartColumn 36
|
|||
|
||||
// Evil eye ----------------------------------------------------------------
|
||||
|
||||
ACTOR EvilEye 41
|
||||
ACTOR EvilEye
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 54
|
||||
ProjectilePassHeight -16
|
||||
|
@ -171,9 +161,8 @@ ACTOR EvilEye 41
|
|||
|
||||
// Floating skull ----------------------------------------------------------
|
||||
|
||||
ACTOR FloatingSkull 42
|
||||
ACTOR FloatingSkull
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 26
|
||||
ProjectilePassHeight -16
|
||||
|
@ -188,9 +177,8 @@ ACTOR FloatingSkull 42
|
|||
|
||||
// Torch tree --------------------------------------------------------------
|
||||
|
||||
ACTOR TorchTree 43
|
||||
ACTOR TorchTree
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 56
|
||||
ProjectilePassHeight -16
|
||||
|
@ -205,9 +193,8 @@ ACTOR TorchTree 43
|
|||
|
||||
// Blue torch --------------------------------------------------------------
|
||||
|
||||
ACTOR BlueTorch 44
|
||||
ACTOR BlueTorch
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 68
|
||||
ProjectilePassHeight -16
|
||||
|
@ -222,9 +209,8 @@ ACTOR BlueTorch 44
|
|||
|
||||
// Green torch -------------------------------------------------------------
|
||||
|
||||
ACTOR GreenTorch 45
|
||||
ACTOR GreenTorch
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 68
|
||||
ProjectilePassHeight -16
|
||||
|
@ -239,9 +225,8 @@ ACTOR GreenTorch 45
|
|||
|
||||
// Red torch ---------------------------------------------------------------
|
||||
|
||||
ACTOR RedTorch 46
|
||||
ACTOR RedTorch
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 68
|
||||
ProjectilePassHeight -16
|
||||
|
@ -256,9 +241,8 @@ ACTOR RedTorch 46
|
|||
|
||||
// Short blue torch --------------------------------------------------------
|
||||
|
||||
ACTOR ShortBlueTorch 55
|
||||
ACTOR ShortBlueTorch
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 37
|
||||
ProjectilePassHeight -16
|
||||
|
@ -273,9 +257,8 @@ ACTOR ShortBlueTorch 55
|
|||
|
||||
// Short green torch -------------------------------------------------------
|
||||
|
||||
ACTOR ShortGreenTorch 56
|
||||
ACTOR ShortGreenTorch
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 37
|
||||
ProjectilePassHeight -16
|
||||
|
@ -290,9 +273,8 @@ ACTOR ShortGreenTorch 56
|
|||
|
||||
// Short red torch ---------------------------------------------------------
|
||||
|
||||
ACTOR ShortRedTorch 57
|
||||
ACTOR ShortRedTorch
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 37
|
||||
ProjectilePassHeight -16
|
||||
|
@ -307,9 +289,8 @@ ACTOR ShortRedTorch 57
|
|||
|
||||
// Stalagtite --------------------------------------------------------------
|
||||
|
||||
ACTOR Stalagtite 47
|
||||
ACTOR Stalagtite
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 40
|
||||
ProjectilePassHeight -16
|
||||
|
@ -324,9 +305,8 @@ ACTOR Stalagtite 47
|
|||
|
||||
// Tech pillar -------------------------------------------------------------
|
||||
|
||||
ACTOR TechPillar 48
|
||||
ACTOR TechPillar
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 128
|
||||
ProjectilePassHeight -16
|
||||
|
@ -341,9 +321,8 @@ ACTOR TechPillar 48
|
|||
|
||||
// Candle stick ------------------------------------------------------------
|
||||
|
||||
ACTOR Candlestick 34
|
||||
ACTOR Candlestick
|
||||
{
|
||||
Game Doom
|
||||
Radius 20
|
||||
Height 14
|
||||
ProjectilePassHeight -16
|
||||
|
@ -357,9 +336,8 @@ ACTOR Candlestick 34
|
|||
|
||||
// Candelabra --------------------------------------------------------------
|
||||
|
||||
ACTOR Candelabra 35
|
||||
ACTOR Candelabra
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 60
|
||||
ProjectilePassHeight -16
|
||||
|
@ -374,9 +352,8 @@ ACTOR Candelabra 35
|
|||
|
||||
// Bloody twitch -----------------------------------------------------------
|
||||
|
||||
ACTOR BloodyTwitch 49
|
||||
ACTOR BloodyTwitch
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 68
|
||||
+SOLID
|
||||
|
@ -395,9 +372,8 @@ ACTOR BloodyTwitch 49
|
|||
|
||||
// Meat 2 ------------------------------------------------------------------
|
||||
|
||||
ACTOR Meat2 50
|
||||
ACTOR Meat2
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 84
|
||||
+SOLID
|
||||
|
@ -413,9 +389,8 @@ ACTOR Meat2 50
|
|||
|
||||
// Meat 3 ------------------------------------------------------------------
|
||||
|
||||
ACTOR Meat3 51
|
||||
ACTOR Meat3
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 84
|
||||
+SOLID
|
||||
|
@ -431,9 +406,8 @@ ACTOR Meat3 51
|
|||
|
||||
// Meat 4 ------------------------------------------------------------------
|
||||
|
||||
ACTOR Meat4 52
|
||||
ACTOR Meat4
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 68
|
||||
+SOLID
|
||||
|
@ -449,9 +423,8 @@ ACTOR Meat4 52
|
|||
|
||||
// Meat 5 ------------------------------------------------------------------
|
||||
|
||||
ACTOR Meat5 53
|
||||
ACTOR Meat5
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 52
|
||||
+SOLID
|
||||
|
@ -467,48 +440,42 @@ ACTOR Meat5 53
|
|||
|
||||
// Nonsolid meat -----------------------------------------------------------
|
||||
|
||||
ACTOR NonsolidMeat2 : Meat2 59
|
||||
ACTOR NonsolidMeat2 : Meat2
|
||||
{
|
||||
Game Doom
|
||||
-SOLID
|
||||
Radius 20
|
||||
}
|
||||
|
||||
ACTOR NonsolidMeat3 : Meat3 61
|
||||
ACTOR NonsolidMeat3 : Meat3
|
||||
{
|
||||
Game Doom
|
||||
-SOLID
|
||||
Radius 20
|
||||
}
|
||||
|
||||
ACTOR NonsolidMeat4 : Meat4 60
|
||||
ACTOR NonsolidMeat4 : Meat4
|
||||
{
|
||||
Game Doom
|
||||
-SOLID
|
||||
Radius 20
|
||||
}
|
||||
|
||||
ACTOR NonsolidMeat5 : Meat5 62
|
||||
ACTOR NonsolidMeat5 : Meat5
|
||||
{
|
||||
Game Doom
|
||||
-SOLID
|
||||
Radius 20
|
||||
}
|
||||
|
||||
// Nonsolid bloody twitch --------------------------------------------------
|
||||
|
||||
ACTOR NonsolidTwitch : BloodyTwitch 63
|
||||
ACTOR NonsolidTwitch : BloodyTwitch
|
||||
{
|
||||
Game Doom
|
||||
-SOLID
|
||||
Radius 20
|
||||
}
|
||||
|
||||
// Head on a stick ---------------------------------------------------------
|
||||
|
||||
ACTOR HeadOnAStick 27
|
||||
ACTOR HeadOnAStick
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 56
|
||||
ProjectilePassHeight -16
|
||||
|
@ -523,9 +490,8 @@ ACTOR HeadOnAStick 27
|
|||
|
||||
// Heads (plural!) on a stick ----------------------------------------------
|
||||
|
||||
ACTOR HeadsOnAStick 28
|
||||
ACTOR HeadsOnAStick
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 64
|
||||
ProjectilePassHeight -16
|
||||
|
@ -540,9 +506,8 @@ ACTOR HeadsOnAStick 28
|
|||
|
||||
// Head candles ------------------------------------------------------------
|
||||
|
||||
ACTOR HeadCandles 29
|
||||
ACTOR HeadCandles
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 42
|
||||
ProjectilePassHeight -16
|
||||
|
@ -557,9 +522,8 @@ ACTOR HeadCandles 29
|
|||
|
||||
// Dead on a stick ---------------------------------------------------------
|
||||
|
||||
ACTOR DeadStick 25
|
||||
ACTOR DeadStick
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 64
|
||||
ProjectilePassHeight -16
|
||||
|
@ -574,9 +538,8 @@ ACTOR DeadStick 25
|
|||
|
||||
// Still alive on a stick --------------------------------------------------
|
||||
|
||||
ACTOR LiveStick 26
|
||||
ACTOR LiveStick
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 64
|
||||
ProjectilePassHeight -16
|
||||
|
@ -592,9 +555,8 @@ ACTOR LiveStick 26
|
|||
|
||||
// Big tree ----------------------------------------------------------------
|
||||
|
||||
ACTOR BigTree 54
|
||||
ACTOR BigTree
|
||||
{
|
||||
Game Doom
|
||||
Radius 32
|
||||
Height 108
|
||||
ProjectilePassHeight -16
|
||||
|
@ -609,10 +571,8 @@ ACTOR BigTree 54
|
|||
|
||||
// Burning barrel ----------------------------------------------------------
|
||||
|
||||
ACTOR BurningBarrel 70
|
||||
ACTOR BurningBarrel
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 149
|
||||
Radius 16
|
||||
Height 32
|
||||
ProjectilePassHeight -16
|
||||
|
@ -627,9 +587,8 @@ ACTOR BurningBarrel 70
|
|||
|
||||
// Hanging with no guts ----------------------------------------------------
|
||||
|
||||
ACTOR HangNoGuts 73
|
||||
ACTOR HangNoGuts
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 88
|
||||
+SOLID
|
||||
|
@ -645,9 +604,8 @@ ACTOR HangNoGuts 73
|
|||
|
||||
// Hanging from bottom with no brain ---------------------------------------
|
||||
|
||||
ACTOR HangBNoBrain 74
|
||||
ACTOR HangBNoBrain
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 88
|
||||
+SOLID
|
||||
|
@ -663,9 +621,8 @@ ACTOR HangBNoBrain 74
|
|||
|
||||
// Hanging from top, looking down ------------------------------------------
|
||||
|
||||
ACTOR HangTLookingDown 75
|
||||
ACTOR HangTLookingDown
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 64
|
||||
+SOLID
|
||||
|
@ -681,9 +638,8 @@ ACTOR HangTLookingDown 75
|
|||
|
||||
// Hanging from top, looking up --------------------------------------------
|
||||
|
||||
ACTOR HangTLookingUp 77
|
||||
ACTOR HangTLookingUp
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 64
|
||||
+SOLID
|
||||
|
@ -699,9 +655,8 @@ ACTOR HangTLookingUp 77
|
|||
|
||||
// Hanging from top, skully ------------------------------------------------
|
||||
|
||||
ACTOR HangTSkull 76
|
||||
ACTOR HangTSkull
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 64
|
||||
+SOLID
|
||||
|
@ -717,9 +672,8 @@ ACTOR HangTSkull 76
|
|||
|
||||
// Hanging from top without a brain ----------------------------------------
|
||||
|
||||
ACTOR HangTNoBrain 78
|
||||
ACTOR HangTNoBrain
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 64
|
||||
+SOLID
|
||||
|
@ -735,10 +689,8 @@ ACTOR HangTNoBrain 78
|
|||
|
||||
// Colon gibs --------------------------------------------------------------
|
||||
|
||||
ACTOR ColonGibs 79
|
||||
ACTOR ColonGibs
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 147
|
||||
Radius 20
|
||||
Height 4
|
||||
+NOBLOCKMAP
|
||||
|
@ -753,10 +705,8 @@ ACTOR ColonGibs 79
|
|||
|
||||
// Small pool o' blood -----------------------------------------------------
|
||||
|
||||
ACTOR SmallBloodPool 80
|
||||
ACTOR SmallBloodPool
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 148
|
||||
Radius 20
|
||||
Height 1
|
||||
+NOBLOCKMAP
|
||||
|
@ -771,10 +721,8 @@ ACTOR SmallBloodPool 80
|
|||
|
||||
// brain stem lying on the ground ------------------------------------------
|
||||
|
||||
ACTOR BrainStem 81
|
||||
ACTOR BrainStem
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 150
|
||||
Radius 20
|
||||
Height 4
|
||||
+NOBLOCKMAP
|
||||
|
@ -790,9 +738,8 @@ ACTOR BrainStem 81
|
|||
|
||||
// Grey stalagmite (unused Doom sprite, definition taken from Skulltag -----
|
||||
|
||||
ACTOR Stalagmite 5050
|
||||
ACTOR Stalagmite
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
Height 48
|
||||
+SOLID
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
// Health bonus -------------------------------------------------------------
|
||||
|
||||
ACTOR HealthBonus : Health 2014
|
||||
ACTOR HealthBonus : Health
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 152
|
||||
+COUNTITEM
|
||||
+INVENTORY.ALWAYSPICKUP
|
||||
Inventory.Amount 1
|
||||
|
@ -19,10 +17,8 @@ ACTOR HealthBonus : Health 2014
|
|||
|
||||
// Stimpack -----------------------------------------------------------------
|
||||
|
||||
ACTOR Stimpack : Health 2011
|
||||
ACTOR Stimpack : Health
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 23
|
||||
Inventory.Amount 10
|
||||
Inventory.PickupMessage "$GOTSTIM"
|
||||
States
|
||||
|
@ -35,10 +31,8 @@ ACTOR Stimpack : Health 2011
|
|||
|
||||
// Medikit -----------------------------------------------------------------
|
||||
|
||||
ACTOR Medikit : Health 2012
|
||||
ACTOR Medikit : Health
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 24
|
||||
Inventory.Amount 25
|
||||
Inventory.PickupMessage "$GOTMEDIKIT"
|
||||
Health.LowMessage 25, "$GOTMEDINEED"
|
||||
|
|
|
@ -3,10 +3,8 @@
|
|||
// Imp
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR DoomImp 3001
|
||||
ACTOR DoomImp
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 5
|
||||
Health 60
|
||||
Radius 20
|
||||
Height 56
|
||||
|
@ -66,8 +64,6 @@ ACTOR DoomImp 3001
|
|||
//===========================================================================
|
||||
ACTOR DoomImpBall
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 10
|
||||
Radius 6
|
||||
Height 8
|
||||
Speed 10
|
||||
|
|
|
@ -8,10 +8,8 @@ Actor DoomKey : Key
|
|||
|
||||
// Blue key card ------------------------------------------------------------
|
||||
|
||||
Actor BlueCard : DoomKey 5
|
||||
Actor BlueCard : DoomKey
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 85
|
||||
Inventory.Pickupmessage "$GOTBLUECARD"
|
||||
Inventory.Icon "STKEYS0"
|
||||
States
|
||||
|
@ -25,10 +23,8 @@ Actor BlueCard : DoomKey 5
|
|||
|
||||
// Yellow key card ----------------------------------------------------------
|
||||
|
||||
Actor YellowCard : DoomKey 6
|
||||
Actor YellowCard : DoomKey
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 87
|
||||
Inventory.Pickupmessage "$GOTYELWCARD"
|
||||
Inventory.Icon "STKEYS1"
|
||||
States
|
||||
|
@ -42,10 +38,8 @@ Actor YellowCard : DoomKey 6
|
|||
|
||||
// Red key card -------------------------------------------------------------
|
||||
|
||||
Actor RedCard : DoomKey 13
|
||||
Actor RedCard : DoomKey
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 86
|
||||
Inventory.Pickupmessage "$GOTREDCARD"
|
||||
Inventory.Icon "STKEYS2"
|
||||
States
|
||||
|
@ -59,10 +53,8 @@ Actor RedCard : DoomKey 13
|
|||
|
||||
// Blue skull key -----------------------------------------------------------
|
||||
|
||||
Actor BlueSkull : DoomKey 40
|
||||
Actor BlueSkull : DoomKey
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 90
|
||||
Inventory.Pickupmessage "$GOTBLUESKUL"
|
||||
Inventory.Icon "STKEYS3"
|
||||
States
|
||||
|
@ -76,10 +68,8 @@ Actor BlueSkull : DoomKey 40
|
|||
|
||||
// Yellow skull key ---------------------------------------------------------
|
||||
|
||||
Actor YellowSkull : DoomKey 39
|
||||
Actor YellowSkull : DoomKey
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 88
|
||||
Inventory.Pickupmessage "$GOTYELWSKUL"
|
||||
Inventory.Icon "STKEYS4"
|
||||
States
|
||||
|
@ -93,10 +83,8 @@ Actor YellowSkull : DoomKey 39
|
|||
|
||||
// Red skull key ------------------------------------------------------------
|
||||
|
||||
Actor RedSkull : DoomKey 38
|
||||
Actor RedSkull : DoomKey
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 89
|
||||
Inventory.Pickupmessage "$GOTREDSKUL"
|
||||
Inventory.Icon "STKEYS5"
|
||||
States
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
// The barrel of green goop ------------------------------------------------
|
||||
|
||||
ACTOR ExplosiveBarrel 2035
|
||||
ACTOR ExplosiveBarrel
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 125
|
||||
Health 20
|
||||
Radius 10
|
||||
Height 42
|
||||
|
@ -37,8 +35,6 @@ ACTOR ExplosiveBarrel 2035
|
|||
|
||||
ACTOR BulletPuff
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 131
|
||||
+NOBLOCKMAP
|
||||
+NOGRAVITY
|
||||
+ALLOWPARTICLES
|
||||
|
@ -85,9 +81,8 @@ ACTOR DoomUnusedStates
|
|||
|
||||
// MBF Beta emulation items
|
||||
|
||||
Actor EvilSceptre : ScoreItem 2016
|
||||
Actor EvilSceptre : ScoreItem
|
||||
{
|
||||
Game Doom
|
||||
Inventory.PickupMessage "$BETA_BONUS3"
|
||||
States
|
||||
{
|
||||
|
@ -97,9 +92,8 @@ Actor EvilSceptre : ScoreItem 2016
|
|||
}
|
||||
}
|
||||
|
||||
Actor UnholyBible : ScoreItem 2017
|
||||
Actor UnholyBible : ScoreItem
|
||||
{
|
||||
Game Doom
|
||||
Inventory.PickupMessage "$BETA_BONUS4"
|
||||
States
|
||||
{
|
||||
|
|
|
@ -17,7 +17,6 @@ ACTOR DoomWeapon : Weapon
|
|||
|
||||
ACTOR Fist : Weapon
|
||||
{
|
||||
Game Doom
|
||||
Weapon.SelectionOrder 3700
|
||||
Weapon.Kickback 100
|
||||
Obituary "$OB_MPFIST"
|
||||
|
@ -52,9 +51,8 @@ ACTOR Fist : Weapon
|
|||
//
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
ACTOR Pistol : DoomWeapon 5010
|
||||
ACTOR Pistol : DoomWeapon
|
||||
{
|
||||
Game Doom
|
||||
Weapon.SelectionOrder 1900
|
||||
Weapon.AmmoUse 1
|
||||
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.SelectionOrder 2200
|
||||
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.AmmoUse 1
|
||||
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.AmmoUse 2
|
||||
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.AmmoUse 1
|
||||
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.AmmoUse 1
|
||||
Weapon.AmmoGive 2
|
||||
|
@ -321,8 +309,6 @@ ACTOR RocketLauncher : DoomWeapon 2003
|
|||
|
||||
ACTOR Rocket
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 127
|
||||
Radius 11
|
||||
Height 8
|
||||
Speed 20
|
||||
|
@ -355,8 +341,6 @@ ACTOR Rocket
|
|||
|
||||
ACTOR Grenade
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 216
|
||||
Radius 8
|
||||
Height 8
|
||||
Speed 25
|
||||
|
@ -404,10 +388,8 @@ ACTOR Grenade
|
|||
//
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
ACTOR PlasmaRifle : DoomWeapon 2004
|
||||
ACTOR PlasmaRifle : DoomWeapon
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 30
|
||||
Weapon.SelectionOrder 100
|
||||
Weapon.AmmoUse 1
|
||||
Weapon.AmmoGive 40
|
||||
|
@ -442,8 +424,6 @@ ACTOR PlasmaRifle : DoomWeapon 2004
|
|||
|
||||
ACTOR PlasmaBall
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 51
|
||||
Radius 13
|
||||
Height 8
|
||||
Speed 25
|
||||
|
@ -508,11 +488,9 @@ ACTOR PlasmaBall2 : PlasmaBall1
|
|||
//
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
ACTOR BFG9000 : DoomWeapon 2006
|
||||
ACTOR BFG9000 : DoomWeapon
|
||||
{
|
||||
Game Doom
|
||||
Height 20
|
||||
SpawnID 31
|
||||
Weapon.SelectionOrder 2800
|
||||
Weapon.AmmoUse 40
|
||||
Weapon.AmmoGive 40
|
||||
|
@ -556,8 +534,6 @@ ACTOR BFG9000 : DoomWeapon 2006
|
|||
|
||||
ACTOR BFGBall
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 128
|
||||
Radius 13
|
||||
Height 8
|
||||
Speed 25
|
||||
|
|
|
@ -3,10 +3,8 @@
|
|||
// Mancubus
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR Fatso 67
|
||||
ACTOR Fatso
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 112
|
||||
Health 600
|
||||
Radius 48
|
||||
Height 64
|
||||
|
@ -65,8 +63,6 @@ ACTOR Fatso 67
|
|||
//===========================================================================
|
||||
ACTOR FatShot
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 153
|
||||
Radius 6
|
||||
Height 8
|
||||
Speed 20
|
||||
|
|
|
@ -3,9 +3,8 @@
|
|||
// Commander Keen
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR CommanderKeen 72
|
||||
ACTOR CommanderKeen
|
||||
{
|
||||
Game Doom
|
||||
Health 100
|
||||
Radius 16
|
||||
Height 72
|
||||
|
|
|
@ -3,10 +3,8 @@
|
|||
// Lost Soul
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR LostSoul 3006
|
||||
ACTOR LostSoul
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 110
|
||||
Health 100
|
||||
Radius 16
|
||||
Height 56
|
||||
|
@ -50,7 +48,7 @@ ACTOR LostSoul 3006
|
|||
}
|
||||
}
|
||||
|
||||
Actor BetaSkull : LostSoul 9037
|
||||
Actor BetaSkull : LostSoul
|
||||
{
|
||||
States
|
||||
{
|
||||
|
|
|
@ -3,10 +3,8 @@
|
|||
// Pain Elemental
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR PainElemental 71
|
||||
ACTOR PainElemental
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 115
|
||||
Health 400
|
||||
Radius 31
|
||||
Height 56
|
||||
|
|
|
@ -4,10 +4,8 @@
|
|||
// Zombie man
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR ZombieMan 3004
|
||||
ACTOR ZombieMan
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 4
|
||||
Health 20
|
||||
Radius 20
|
||||
Height 56
|
||||
|
@ -65,10 +63,8 @@ ACTOR ZombieMan 3004
|
|||
// Sergeant / Shotgun guy
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR ShotgunGuy 9
|
||||
ACTOR ShotgunGuy
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 1
|
||||
Health 30
|
||||
Radius 20
|
||||
Height 56
|
||||
|
@ -127,10 +123,8 @@ ACTOR ShotgunGuy 9
|
|||
// Chaingunner
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR ChaingunGuy 65
|
||||
ACTOR ChaingunGuy
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 2
|
||||
Health 70
|
||||
Radius 20
|
||||
Height 56
|
||||
|
@ -189,10 +183,8 @@ ACTOR ChaingunGuy 65
|
|||
// SS Nazi
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR WolfensteinSS 84
|
||||
ACTOR WolfensteinSS
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 116
|
||||
Health 50
|
||||
Radius 20
|
||||
Height 56
|
||||
|
|
|
@ -3,10 +3,8 @@
|
|||
// Revenant
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR Revenant 66
|
||||
ACTOR Revenant
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 20
|
||||
Health 300
|
||||
Radius 20
|
||||
Height 56
|
||||
|
@ -70,8 +68,6 @@ ACTOR Revenant 66
|
|||
//===========================================================================
|
||||
ACTOR RevenantTracer
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 53
|
||||
Radius 11
|
||||
Height 8
|
||||
Speed 10
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
|
||||
// Scriptable marine -------------------------------------------------------
|
||||
|
||||
ACTOR ScriptedMarine 9100 native
|
||||
ACTOR ScriptedMarine native
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 151
|
||||
Health 100
|
||||
Radius 16
|
||||
Height 56
|
||||
|
@ -172,9 +170,8 @@ ACTOR ScriptedMarine 9100 native
|
|||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
ACTOR MarineFist : ScriptedMarine 9101
|
||||
ACTOR MarineFist : ScriptedMarine
|
||||
{
|
||||
Game Doom
|
||||
States
|
||||
{
|
||||
Melee:
|
||||
|
@ -187,9 +184,8 @@ ACTOR MarineFist : ScriptedMarine 9101
|
|||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
ACTOR MarineBerserk : MarineFist 9102
|
||||
ACTOR MarineBerserk : MarineFist
|
||||
{
|
||||
Game Doom
|
||||
States
|
||||
{
|
||||
Melee:
|
||||
|
@ -200,9 +196,8 @@ ACTOR MarineBerserk : MarineFist 9102
|
|||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
ACTOR MarineChainsaw : ScriptedMarine 9103
|
||||
ACTOR MarineChainsaw : ScriptedMarine
|
||||
{
|
||||
Game Doom
|
||||
States
|
||||
{
|
||||
Melee:
|
||||
|
@ -216,9 +211,8 @@ ACTOR MarineChainsaw : ScriptedMarine 9103
|
|||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
ACTOR MarinePistol : ScriptedMarine 9104
|
||||
ACTOR MarinePistol : ScriptedMarine
|
||||
{
|
||||
Game Doom
|
||||
States
|
||||
{
|
||||
Missile:
|
||||
|
@ -229,9 +223,8 @@ ACTOR MarinePistol : ScriptedMarine 9104
|
|||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
ACTOR MarineShotgun : ScriptedMarine 9105
|
||||
ACTOR MarineShotgun : ScriptedMarine
|
||||
{
|
||||
Game Doom
|
||||
States
|
||||
{
|
||||
Missile:
|
||||
|
@ -244,9 +237,8 @@ ACTOR MarineShotgun : ScriptedMarine 9105
|
|||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
ACTOR MarineSSG : ScriptedMarine 9106
|
||||
ACTOR MarineSSG : ScriptedMarine
|
||||
{
|
||||
Game Doom
|
||||
States
|
||||
{
|
||||
Missile:
|
||||
|
@ -256,9 +248,8 @@ ACTOR MarineSSG : ScriptedMarine 9106
|
|||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
ACTOR MarineChaingun : ScriptedMarine 9107
|
||||
ACTOR MarineChaingun : ScriptedMarine
|
||||
{
|
||||
Game Doom
|
||||
States
|
||||
{
|
||||
Missile:
|
||||
|
@ -269,9 +260,8 @@ ACTOR MarineChaingun : ScriptedMarine 9107
|
|||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
ACTOR MarineRocket : MarineFist 9108
|
||||
ACTOR MarineRocket : MarineFist
|
||||
{
|
||||
Game Doom
|
||||
States
|
||||
{
|
||||
Missile:
|
||||
|
@ -282,9 +272,8 @@ ACTOR MarineRocket : MarineFist 9108
|
|||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
ACTOR MarinePlasma : ScriptedMarine 9109
|
||||
ACTOR MarinePlasma : ScriptedMarine
|
||||
{
|
||||
Game Doom
|
||||
States
|
||||
{
|
||||
Missile:
|
||||
|
@ -295,9 +284,8 @@ ACTOR MarinePlasma : ScriptedMarine 9109
|
|||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
ACTOR MarineRailgun : ScriptedMarine 9110
|
||||
ACTOR MarineRailgun : ScriptedMarine
|
||||
{
|
||||
Game Doom
|
||||
States
|
||||
{
|
||||
Missile:
|
||||
|
@ -308,9 +296,8 @@ ACTOR MarineRailgun : ScriptedMarine 9110
|
|||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
ACTOR MarineBFG : ScriptedMarine 9111
|
||||
ACTOR MarineBFG : ScriptedMarine
|
||||
{
|
||||
Game Doom
|
||||
States
|
||||
{
|
||||
Missile:
|
||||
|
|
|
@ -3,10 +3,8 @@
|
|||
// Spider boss
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR SpiderMastermind 7
|
||||
ACTOR SpiderMastermind
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 7
|
||||
Health 3000
|
||||
Radius 100
|
||||
Height 100
|
||||
|
|
|
@ -1,28 +1,22 @@
|
|||
|
||||
ACTOR StealthArachnotron : Arachnotron 9050
|
||||
ACTOR StealthArachnotron : Arachnotron
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 117
|
||||
+STEALTH
|
||||
RenderStyle Translucent
|
||||
Alpha 0
|
||||
Obituary "$OB_STEALTHBABY"
|
||||
}
|
||||
|
||||
ACTOR StealthArchvile : Archvile 9051
|
||||
ACTOR StealthArchvile : Archvile
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 118
|
||||
+STEALTH
|
||||
RenderStyle Translucent
|
||||
Alpha 0
|
||||
Obituary "$OB_STEALTHVILE"
|
||||
}
|
||||
|
||||
ACTOR StealthBaron : BaronOfHell 9052
|
||||
ACTOR StealthBaron : BaronOfHell
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 100
|
||||
+STEALTH
|
||||
RenderStyle Translucent
|
||||
Alpha 0
|
||||
|
@ -30,10 +24,8 @@ ACTOR StealthBaron : BaronOfHell 9052
|
|||
HitObituary "$OB_STEALTHBARON"
|
||||
}
|
||||
|
||||
ACTOR StealthCacodemon : Cacodemon 9053
|
||||
ACTOR StealthCacodemon : Cacodemon
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 119
|
||||
+STEALTH
|
||||
RenderStyle Translucent
|
||||
Alpha 0
|
||||
|
@ -41,20 +33,16 @@ ACTOR StealthCacodemon : Cacodemon 9053
|
|||
HitObituary "$OB_STEALTHCACO"
|
||||
}
|
||||
|
||||
ACTOR StealthChaingunGuy : ChaingunGuy 9054
|
||||
ACTOR StealthChaingunGuy : ChaingunGuy
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 120
|
||||
+STEALTH
|
||||
RenderStyle Translucent
|
||||
Alpha 0
|
||||
Obituary "$OB_STEALTHCHAINGUY"
|
||||
}
|
||||
|
||||
ACTOR StealthDemon : Demon 9055
|
||||
ACTOR StealthDemon : Demon
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 121
|
||||
+STEALTH
|
||||
RenderStyle Translucent
|
||||
Alpha 0
|
||||
|
@ -62,10 +50,8 @@ ACTOR StealthDemon : Demon 9055
|
|||
HitObituary "$OB_STEALTHDEMON"
|
||||
}
|
||||
|
||||
ACTOR StealthHellKnight : HellKnight 9056
|
||||
ACTOR StealthHellKnight : HellKnight
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 101
|
||||
+STEALTH
|
||||
RenderStyle Translucent
|
||||
Alpha 0
|
||||
|
@ -73,10 +59,8 @@ ACTOR StealthHellKnight : HellKnight 9056
|
|||
HitObituary "$OB_STEALTHKNIGHT"
|
||||
}
|
||||
|
||||
ACTOR StealthDoomImp : DoomImp 9057
|
||||
ACTOR StealthDoomImp : DoomImp
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 122
|
||||
+STEALTH
|
||||
RenderStyle Translucent
|
||||
Alpha 0
|
||||
|
@ -84,20 +68,16 @@ ACTOR StealthDoomImp : DoomImp 9057
|
|||
HitObituary "$OB_STEALTHIMP"
|
||||
}
|
||||
|
||||
ACTOR StealthFatso : Fatso 9058
|
||||
ACTOR StealthFatso : Fatso
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 123
|
||||
+STEALTH
|
||||
RenderStyle Translucent
|
||||
Alpha 0
|
||||
Obituary "$OB_STEALTHFATSO"
|
||||
}
|
||||
|
||||
ACTOR StealthRevenant : Revenant 9059
|
||||
ACTOR StealthRevenant : Revenant
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 124
|
||||
+STEALTH
|
||||
RenderStyle Translucent
|
||||
Alpha 0
|
||||
|
@ -105,20 +85,16 @@ ACTOR StealthRevenant : Revenant 9059
|
|||
HitObituary "$OB_STEALTHUNDEAD"
|
||||
}
|
||||
|
||||
ACTOR StealthShotgunGuy : ShotgunGuy 9060
|
||||
ACTOR StealthShotgunGuy : ShotgunGuy
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 103
|
||||
+STEALTH
|
||||
RenderStyle Translucent
|
||||
Alpha 0
|
||||
Obituary "$OB_STEALTHSHOTGUNGUY"
|
||||
}
|
||||
|
||||
ACTOR StealthZombieMan : ZombieMan 9061
|
||||
ACTOR StealthZombieMan : ZombieMan
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 102
|
||||
+STEALTH
|
||||
RenderStyle Translucent
|
||||
Alpha 0
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
|
||||
// Beast --------------------------------------------------------------------
|
||||
|
||||
ACTOR Beast 70
|
||||
ACTOR Beast
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 3
|
||||
Health 220
|
||||
Radius 32
|
||||
Height 74
|
||||
|
@ -61,8 +59,6 @@ ACTOR Beast 70
|
|||
|
||||
ACTOR BeastBall
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 120
|
||||
Radius 9
|
||||
Height 8
|
||||
Speed 12
|
||||
|
|
|
@ -113,8 +113,6 @@ ACTOR ChickenPlayer : PlayerPawn native
|
|||
|
||||
ACTOR Chicken : MorphedMonster
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 122
|
||||
Health 10
|
||||
Radius 9
|
||||
Height 22
|
||||
|
@ -164,8 +162,6 @@ ACTOR Chicken : MorphedMonster
|
|||
|
||||
ACTOR Feather
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 121
|
||||
Radius 2
|
||||
Height 4
|
||||
+MISSILE +DROPOFF
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
|
||||
ACTOR Clink 90
|
||||
ACTOR Clink
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 1
|
||||
Health 150
|
||||
Radius 20
|
||||
Height 64
|
||||
|
|
|
@ -1,19 +1,15 @@
|
|||
|
||||
// Boss spot ----------------------------------------------------------------
|
||||
|
||||
ACTOR BossSpot : SpecialSpot 56
|
||||
ACTOR BossSpot : SpecialSpot
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 141
|
||||
+INVISIBLE
|
||||
}
|
||||
|
||||
// Sorcerer (D'Sparil on his serpent) ---------------------------------------
|
||||
|
||||
ACTOR Sorcerer1 7
|
||||
ACTOR Sorcerer1
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 142
|
||||
Health 2000
|
||||
Radius 28
|
||||
Height 100
|
||||
|
@ -84,8 +80,6 @@ ACTOR Sorcerer1 7
|
|||
|
||||
ACTOR SorcererFX1
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 144
|
||||
Radius 10
|
||||
Height 10
|
||||
Speed 20
|
||||
|
@ -112,8 +106,6 @@ ACTOR SorcererFX1
|
|||
|
||||
ACTOR Sorcerer2
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 143
|
||||
Health 3500
|
||||
Radius 16
|
||||
Height 70
|
||||
|
@ -192,8 +184,6 @@ ACTOR Sorcerer2
|
|||
|
||||
ACTOR Sorcerer2FX1
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 145
|
||||
Radius 10
|
||||
Height 6
|
||||
Speed 20
|
||||
|
@ -241,8 +231,6 @@ ACTOR Sorcerer2FXSpark
|
|||
|
||||
ACTOR Sorcerer2FX2
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 146
|
||||
Radius 10
|
||||
Height 6
|
||||
Speed 6
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
|
||||
// Wimpy ammo ---------------------------------------------------------------
|
||||
|
||||
ACTOR GoldWandAmmo : Ammo 10
|
||||
ACTOR GoldWandAmmo : Ammo
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 11
|
||||
Inventory.PickupMessage "$TXT_AMMOGOLDWAND1"
|
||||
Inventory.Amount 10
|
||||
Inventory.MaxAmount 100
|
||||
|
@ -21,10 +19,8 @@ ACTOR GoldWandAmmo : Ammo 10
|
|||
|
||||
// Hefty ammo ---------------------------------------------------------------
|
||||
|
||||
ACTOR GoldWandHefty : GoldWandAmmo 12
|
||||
ACTOR GoldWandHefty : GoldWandAmmo
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 12
|
||||
Inventory.PickupMessage "$TXT_AMMOGOLDWAND2"
|
||||
Inventory.Amount 50
|
||||
States
|
||||
|
@ -36,10 +32,8 @@ ACTOR GoldWandHefty : GoldWandAmmo 12
|
|||
}
|
||||
// Wimpy ammo ---------------------------------------------------------------
|
||||
|
||||
ACTOR CrossbowAmmo : Ammo 18
|
||||
ACTOR CrossbowAmmo : Ammo
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 33
|
||||
Inventory.PickupMessage "$TXT_AMMOCROSSBOW1"
|
||||
Inventory.Amount 5
|
||||
Inventory.MaxAmount 50
|
||||
|
@ -56,10 +50,8 @@ ACTOR CrossbowAmmo : Ammo 18
|
|||
|
||||
// Hefty ammo ---------------------------------------------------------------
|
||||
|
||||
ACTOR CrossbowHefty : CrossbowAmmo 19
|
||||
ACTOR CrossbowHefty : CrossbowAmmo
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 34
|
||||
Inventory.PickupMessage "$TXT_AMMOCROSSBOW2"
|
||||
Inventory.Amount 20
|
||||
States
|
||||
|
@ -71,10 +63,8 @@ ACTOR CrossbowHefty : CrossbowAmmo 19
|
|||
}
|
||||
// Wimpy ammo ---------------------------------------------------------------
|
||||
|
||||
ACTOR MaceAmmo : Ammo 13
|
||||
ACTOR MaceAmmo : Ammo
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 35
|
||||
Inventory.PickupMessage "$TXT_AMMOMACE1"
|
||||
Inventory.Amount 20
|
||||
Inventory.MaxAmount 150
|
||||
|
@ -91,10 +81,8 @@ ACTOR MaceAmmo : Ammo 13
|
|||
|
||||
// Hefty ammo ---------------------------------------------------------------
|
||||
|
||||
ACTOR MaceHefty : MaceAmmo 16
|
||||
ACTOR MaceHefty : MaceAmmo
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 36
|
||||
Inventory.PickupMessage "$TXT_AMMOMACE2"
|
||||
Inventory.Amount 100
|
||||
States
|
||||
|
@ -107,10 +95,8 @@ ACTOR MaceHefty : MaceAmmo 16
|
|||
|
||||
// Wimpy ammo ---------------------------------------------------------------
|
||||
|
||||
ACTOR BlasterAmmo : Ammo 54
|
||||
ACTOR BlasterAmmo : Ammo
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 37
|
||||
Inventory.PickupMessage "$TXT_AMMOBLASTER1"
|
||||
Inventory.Amount 10
|
||||
Inventory.MaxAmount 200
|
||||
|
@ -127,10 +113,8 @@ ACTOR BlasterAmmo : Ammo 54
|
|||
|
||||
// Hefty ammo ---------------------------------------------------------------
|
||||
|
||||
ACTOR BlasterHefty : BlasterAmmo 55
|
||||
ACTOR BlasterHefty : BlasterAmmo
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 38
|
||||
Inventory.PickupMessage "$TXT_AMMOBLASTER2"
|
||||
Inventory.Amount 25
|
||||
States
|
||||
|
@ -143,10 +127,8 @@ ACTOR BlasterHefty : BlasterAmmo 55
|
|||
|
||||
// Wimpy ammo ---------------------------------------------------------------
|
||||
|
||||
ACTOR SkullRodAmmo : Ammo 20
|
||||
ACTOR SkullRodAmmo : Ammo
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 158
|
||||
Inventory.PickupMessage "$TXT_AMMOSKULLROD1"
|
||||
Inventory.Amount 20
|
||||
Inventory.MaxAmount 200
|
||||
|
@ -163,10 +145,8 @@ ACTOR SkullRodAmmo : Ammo 20
|
|||
|
||||
// Hefty ammo ---------------------------------------------------------------
|
||||
|
||||
ACTOR SkullRodHefty : SkullRodAmmo 21
|
||||
ACTOR SkullRodHefty : SkullRodAmmo
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 159
|
||||
Inventory.PickupMessage "$TXT_AMMOSKULLROD2"
|
||||
Inventory.Amount 100
|
||||
States
|
||||
|
@ -179,10 +159,8 @@ ACTOR SkullRodHefty : SkullRodAmmo 21
|
|||
|
||||
// Wimpy ammo ---------------------------------------------------------------
|
||||
|
||||
ACTOR PhoenixRodAmmo : Ammo 22
|
||||
ACTOR PhoenixRodAmmo : Ammo
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 161
|
||||
Inventory.PickupMessage "$TXT_AMMOPHOENIXROD1"
|
||||
Inventory.Amount 1
|
||||
Inventory.MaxAmount 20
|
||||
|
@ -198,10 +176,8 @@ ACTOR PhoenixRodAmmo : Ammo 22
|
|||
}
|
||||
// Hefty ammo ---------------------------------------------------------------
|
||||
|
||||
ACTOR PhoenixRodHefty : PhoenixRodAmmo 23
|
||||
ACTOR PhoenixRodHefty : PhoenixRodAmmo
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 162
|
||||
Inventory.PickupMessage "$TXT_AMMOPHOENIXROD2"
|
||||
Inventory.Amount 10
|
||||
States
|
||||
|
@ -214,10 +190,8 @@ ACTOR PhoenixRodHefty : PhoenixRodAmmo 23
|
|||
|
||||
// --- Bag of holding -------------------------------------------------------
|
||||
|
||||
ACTOR BagOfHolding : BackpackItem 8
|
||||
ACTOR BagOfHolding : BackpackItem
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 136
|
||||
Inventory.PickupMessage "$TXT_ITEMBAGOFHOLDING"
|
||||
+COUNTITEM
|
||||
+FLOATBOB
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
|
||||
// Silver Shield (Shield1) --------------------------------------------------
|
||||
|
||||
Actor SilverShield : BasicArmorPickup 85
|
||||
Actor SilverShield : BasicArmorPickup
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 68
|
||||
+FLOATBOB
|
||||
Inventory.Pickupmessage "$TXT_ITEMSHIELD1"
|
||||
Inventory.Icon "SHLDA0"
|
||||
|
@ -20,10 +18,8 @@ Actor SilverShield : BasicArmorPickup 85
|
|||
|
||||
// Enchanted shield (Shield2) -----------------------------------------------
|
||||
|
||||
Actor EnchantedShield : BasicArmorPickup 31
|
||||
Actor EnchantedShield : BasicArmorPickup
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 69
|
||||
+FLOATBOB
|
||||
Inventory.Pickupmessage "$TXT_ITEMSHIELD2"
|
||||
Inventory.Icon "SHD2A0"
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
// Super map ----------------------------------------------------------------
|
||||
|
||||
ACTOR SuperMap : MapRevealer 35
|
||||
ACTOR SuperMap : MapRevealer
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 137
|
||||
+COUNTITEM
|
||||
+INVENTORY.ALWAYSPICKUP
|
||||
+FLOATBOB
|
||||
|
@ -20,10 +18,8 @@ ACTOR SuperMap : MapRevealer 35
|
|||
|
||||
// Invisibility -------------------------------------------------------------
|
||||
|
||||
ACTOR ArtiInvisibility : PowerupGiver 75
|
||||
ACTOR ArtiInvisibility : PowerupGiver
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 135
|
||||
+COUNTITEM
|
||||
+FLOATBOB
|
||||
+INVENTORY.PICKUPFLASH
|
||||
|
@ -45,10 +41,8 @@ ACTOR ArtiInvisibility : PowerupGiver 75
|
|||
|
||||
// Tome of power ------------------------------------------------------------
|
||||
|
||||
ACTOR ArtiTomeOfPower : PowerupGiver 86 native
|
||||
ACTOR ArtiTomeOfPower : PowerupGiver native
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 134
|
||||
+COUNTITEM
|
||||
+FLOATBOB
|
||||
+INVENTORY.PICKUPFLASH
|
||||
|
@ -88,10 +82,8 @@ ACTOR ActivatedTimeBomb
|
|||
}
|
||||
|
||||
|
||||
ACTOR ArtiTimeBomb : Inventory 34 native
|
||||
ACTOR ArtiTimeBomb : Inventory native
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 72
|
||||
+COUNTITEM
|
||||
+FLOATBOB
|
||||
+INVENTORY.PICKUPFLASH
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
ACTOR SkullHang70 17
|
||||
ACTOR SkullHang70
|
||||
{
|
||||
Game Heretic
|
||||
Radius 20
|
||||
Height 70
|
||||
+SPAWNCEILING
|
||||
|
@ -13,9 +12,8 @@ ACTOR SkullHang70 17
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR SkullHang60 24
|
||||
ACTOR SkullHang60
|
||||
{
|
||||
Game Heretic
|
||||
Radius 20
|
||||
Height 60
|
||||
+SPAWNCEILING
|
||||
|
@ -28,9 +26,8 @@ ACTOR SkullHang60 24
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR SkullHang45 25
|
||||
ACTOR SkullHang45
|
||||
{
|
||||
Game Heretic
|
||||
Radius 20
|
||||
Height 45
|
||||
+SPAWNCEILING
|
||||
|
@ -43,9 +40,8 @@ ACTOR SkullHang45 25
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR SkullHang35 26
|
||||
ACTOR SkullHang35
|
||||
{
|
||||
Game Heretic
|
||||
Radius 20
|
||||
Height 35
|
||||
+SPAWNCEILING
|
||||
|
@ -58,9 +54,8 @@ ACTOR SkullHang35 26
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR Chandelier 28
|
||||
ACTOR Chandelier
|
||||
{
|
||||
Game Heretic
|
||||
Radius 20
|
||||
Height 60
|
||||
+SPAWNCEILING
|
||||
|
@ -73,9 +68,8 @@ ACTOR Chandelier 28
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR SerpentTorch 27
|
||||
ACTOR SerpentTorch
|
||||
{
|
||||
Game Heretic
|
||||
Radius 12
|
||||
Height 54
|
||||
+SOLID
|
||||
|
@ -87,9 +81,8 @@ ACTOR SerpentTorch 27
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR SmallPillar 29
|
||||
ACTOR SmallPillar
|
||||
{
|
||||
Game Heretic
|
||||
Radius 16
|
||||
Height 34
|
||||
+SOLID
|
||||
|
@ -101,9 +94,8 @@ ACTOR SmallPillar 29
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR StalagmiteSmall 37
|
||||
ACTOR StalagmiteSmall
|
||||
{
|
||||
Game Heretic
|
||||
Radius 8
|
||||
Height 32
|
||||
+SOLID
|
||||
|
@ -115,9 +107,8 @@ ACTOR StalagmiteSmall 37
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR StalagmiteLarge 38
|
||||
ACTOR StalagmiteLarge
|
||||
{
|
||||
Game Heretic
|
||||
Radius 12
|
||||
Height 64
|
||||
+SOLID
|
||||
|
@ -129,9 +120,8 @@ ACTOR StalagmiteLarge 38
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR StalactiteSmall 39
|
||||
ACTOR StalactiteSmall
|
||||
{
|
||||
Game Heretic
|
||||
Radius 8
|
||||
Height 36
|
||||
+SOLID
|
||||
|
@ -145,9 +135,8 @@ ACTOR StalactiteSmall 39
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR StalactiteLarge 40
|
||||
ACTOR StalactiteLarge
|
||||
{
|
||||
Game Heretic
|
||||
Radius 12
|
||||
Height 68
|
||||
+SOLID
|
||||
|
@ -161,9 +150,8 @@ ACTOR StalactiteLarge 40
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR FireBrazier 76
|
||||
ACTOR FireBrazier
|
||||
{
|
||||
Game Heretic
|
||||
Radius 16
|
||||
Height 44
|
||||
+SOLID
|
||||
|
@ -175,9 +163,8 @@ ACTOR FireBrazier 76
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR Barrel 44
|
||||
ACTOR Barrel
|
||||
{
|
||||
Game Heretic
|
||||
Radius 12
|
||||
Height 32
|
||||
+SOLID
|
||||
|
@ -189,9 +176,8 @@ ACTOR Barrel 44
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR BrownPillar 47
|
||||
ACTOR BrownPillar
|
||||
{
|
||||
Game Heretic
|
||||
Radius 14
|
||||
Height 128
|
||||
+SOLID
|
||||
|
@ -203,9 +189,8 @@ ACTOR BrownPillar 47
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR Moss1 48
|
||||
ACTOR Moss1
|
||||
{
|
||||
Game Heretic
|
||||
Radius 20
|
||||
Height 23
|
||||
+SPAWNCEILING
|
||||
|
@ -218,9 +203,8 @@ ACTOR Moss1 48
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR Moss2 49
|
||||
ACTOR Moss2
|
||||
{
|
||||
Game Heretic
|
||||
Radius 20
|
||||
Height 27
|
||||
+SPAWNCEILING
|
||||
|
@ -233,9 +217,8 @@ ACTOR Moss2 49
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR WallTorch 50
|
||||
ACTOR WallTorch
|
||||
{
|
||||
Game Heretic
|
||||
Radius 6
|
||||
Height 16
|
||||
+NOGRAVITY
|
||||
|
@ -248,9 +231,8 @@ ACTOR WallTorch 50
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR HangingCorpse 51
|
||||
ACTOR HangingCorpse
|
||||
{
|
||||
Game Heretic
|
||||
Radius 8
|
||||
Height 104
|
||||
+SOLID
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
|
||||
// Heretic imp (as opposed to the Doom variety) -----------------------------
|
||||
|
||||
ACTOR HereticImp 66
|
||||
ACTOR HereticImp
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 5
|
||||
Health 40
|
||||
Radius 16
|
||||
Height 36
|
||||
|
@ -78,10 +76,8 @@ ACTOR HereticImp 66
|
|||
|
||||
// Heretic imp leader -------------------------------------------------------
|
||||
|
||||
ACTOR HereticImpLeader : HereticImp 5
|
||||
ACTOR HereticImpLeader : HereticImp
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 7
|
||||
Species "HereticImpLeader"
|
||||
Health 80
|
||||
-MISSILEMORE
|
||||
|
@ -135,8 +131,6 @@ ACTOR HereticImpChunk2
|
|||
|
||||
ACTOR HereticImpBall
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 10
|
||||
Radius 8
|
||||
Height 8
|
||||
Speed 10
|
||||
|
|
|
@ -8,10 +8,8 @@ ACTOR HereticKey : Key
|
|||
|
||||
// Green key ------------------------------------------------------------
|
||||
|
||||
ACTOR KeyGreen : HereticKey 73
|
||||
ACTOR KeyGreen : HereticKey
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 86
|
||||
Inventory.PickupMessage "$TXT_GOTGREENKEY"
|
||||
Inventory.Icon "GKEYICON"
|
||||
States
|
||||
|
@ -24,10 +22,8 @@ ACTOR KeyGreen : HereticKey 73
|
|||
|
||||
// Blue key -----------------------------------------------------------------
|
||||
|
||||
ACTOR KeyBlue : HereticKey 79
|
||||
ACTOR KeyBlue : HereticKey
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 85
|
||||
Inventory.PickupMessage "$TXT_GOTBLUEKEY"
|
||||
Inventory.Icon "BKEYICON"
|
||||
States
|
||||
|
@ -40,10 +36,8 @@ ACTOR KeyBlue : HereticKey 79
|
|||
|
||||
// Yellow key ---------------------------------------------------------------
|
||||
|
||||
ACTOR KeyYellow : HereticKey 80
|
||||
ACTOR KeyYellow : HereticKey
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 87
|
||||
Inventory.PickupMessage "$TXT_GOTYELLOWKEY"
|
||||
Inventory.Icon "YKEYICON"
|
||||
States
|
||||
|
@ -57,9 +51,8 @@ ACTOR KeyYellow : HereticKey 80
|
|||
|
||||
// --- Blue Key gizmo -----------------------------------------------------------
|
||||
|
||||
ACTOR KeyGizmoBlue 94
|
||||
ACTOR KeyGizmoBlue
|
||||
{
|
||||
Game Heretic
|
||||
Radius 16
|
||||
Height 50
|
||||
+SOLID
|
||||
|
@ -89,9 +82,8 @@ ACTOR KeyGizmoFloatBlue
|
|||
|
||||
// --- Green Key gizmo -----------------------------------------------------------
|
||||
|
||||
ACTOR KeyGizmoGreen 95
|
||||
ACTOR KeyGizmoGreen
|
||||
{
|
||||
Game Heretic
|
||||
Radius 16
|
||||
Height 50
|
||||
+SOLID
|
||||
|
@ -121,9 +113,8 @@ ACTOR KeyGizmoFloatGreen
|
|||
|
||||
// --- Yellow Key gizmo -----------------------------------------------------------
|
||||
|
||||
ACTOR KeyGizmoYellow 96
|
||||
ACTOR KeyGizmoYellow
|
||||
{
|
||||
Game Heretic
|
||||
Radius 16
|
||||
Height 50
|
||||
+SOLID
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
|
||||
// Pod ----------------------------------------------------------------------
|
||||
|
||||
ACTOR Pod 2035
|
||||
ACTOR Pod
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 125
|
||||
Health 45
|
||||
Radius 16
|
||||
Height 54
|
||||
|
@ -62,10 +60,8 @@ ACTOR PodGoo
|
|||
|
||||
// Pod generator ------------------------------------------------------------
|
||||
|
||||
ACTOR PodGenerator 43
|
||||
ACTOR PodGenerator
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 126
|
||||
+NOBLOCKMAP
|
||||
+NOSECTOR
|
||||
+DONTSPLASH
|
||||
|
@ -84,10 +80,8 @@ ACTOR PodGenerator 43
|
|||
|
||||
// Teleglitter generator 1 --------------------------------------------------
|
||||
|
||||
ACTOR TeleGlitterGenerator1 74
|
||||
ACTOR TeleGlitterGenerator1
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 166
|
||||
+NOBLOCKMAP
|
||||
+NOGRAVITY
|
||||
+DONTSPLASH
|
||||
|
@ -102,10 +96,8 @@ ACTOR TeleGlitterGenerator1 74
|
|||
|
||||
// Teleglitter generator 2 --------------------------------------------------
|
||||
|
||||
ACTOR TeleGlitterGenerator2 52
|
||||
ACTOR TeleGlitterGenerator2
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 167
|
||||
+NOBLOCKMAP
|
||||
+NOGRAVITY
|
||||
+DONTSPLASH
|
||||
|
@ -160,10 +152,8 @@ ACTOR TeleGlitter2 : TeleGlitter1
|
|||
|
||||
// --- Volcano --------------------------------------------------------------
|
||||
|
||||
ACTOR Volcano 87
|
||||
ACTOR Volcano
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 150
|
||||
Radius 12
|
||||
Height 20
|
||||
+SOLID
|
||||
|
@ -187,8 +177,6 @@ ACTOR Volcano 87
|
|||
|
||||
ACTOR VolcanoBlast
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 123
|
||||
Radius 8
|
||||
Height 8
|
||||
Speed 2
|
||||
|
@ -219,8 +207,6 @@ ACTOR VolcanoBlast
|
|||
|
||||
ACTOR VolcanoTBlast
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 124
|
||||
Radius 8
|
||||
Height 6
|
||||
Speed 2
|
||||
|
|
|
@ -9,7 +9,6 @@ ACTOR HereticWeapon : Weapon
|
|||
|
||||
ACTOR Staff : HereticWeapon
|
||||
{
|
||||
Game Heretic
|
||||
Weapon.SelectionOrder 3800
|
||||
+THRUGHOST
|
||||
+WIMPY_WEAPON
|
||||
|
@ -41,7 +40,6 @@ ACTOR Staff : HereticWeapon
|
|||
|
||||
ACTOR StaffPowered : Staff
|
||||
{
|
||||
Game Heretic
|
||||
Weapon.sisterweapon "Staff"
|
||||
Weapon.ReadySound "weapons/staffcrackle"
|
||||
+WEAPON.POWERED_UP
|
||||
|
@ -110,9 +108,8 @@ ACTOR StaffPuff2
|
|||
|
||||
// Gold wand ----------------------------------------------------------------
|
||||
|
||||
ACTOR GoldWand : HereticWeapon 9042
|
||||
ACTOR GoldWand : HereticWeapon
|
||||
{
|
||||
Game Heretic
|
||||
+BLOODSPLATTER
|
||||
Weapon.SelectionOrder 2000
|
||||
Weapon.AmmoGive 25
|
||||
|
@ -151,7 +148,6 @@ ACTOR GoldWand : HereticWeapon 9042
|
|||
|
||||
ACTOR GoldWandPowered : GoldWand
|
||||
{
|
||||
Game Heretic
|
||||
+WEAPON.POWERED_UP
|
||||
Weapon.AmmoGive 0
|
||||
Weapon.SisterWeapon "GoldWand"
|
||||
|
@ -176,8 +172,6 @@ ACTOR GoldWandPowered : GoldWand
|
|||
|
||||
ACTOR GoldWandFX1
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 151
|
||||
Radius 10
|
||||
Height 6
|
||||
Speed 22
|
||||
|
@ -201,8 +195,6 @@ ACTOR GoldWandFX1
|
|||
|
||||
ACTOR GoldWandFX2 : GoldWandFX1
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 152
|
||||
Speed 18
|
||||
Damage 1
|
||||
DeathSound ""
|
||||
|
@ -248,10 +240,8 @@ ACTOR GoldWandPuff2 : GoldWandFX1
|
|||
|
||||
// Crossbow -----------------------------------------------------------------
|
||||
|
||||
ACTOR Crossbow : HereticWeapon 2001
|
||||
ACTOR Crossbow : HereticWeapon
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 27
|
||||
Weapon.SelectionOrder 800
|
||||
Weapon.AmmoUse 1
|
||||
Weapon.AmmoGive 10
|
||||
|
@ -289,7 +279,6 @@ ACTOR Crossbow : HereticWeapon 2001
|
|||
|
||||
ACTOR CrossbowPowered : Crossbow
|
||||
{
|
||||
Game Heretic
|
||||
+WEAPON.POWERED_UP
|
||||
Weapon.AmmoGive 0
|
||||
Weapon.SisterWeapon "Crossbow"
|
||||
|
@ -317,8 +306,6 @@ ACTOR CrossbowPowered : Crossbow
|
|||
|
||||
ACTOR CrossbowFX1
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 147
|
||||
Radius 11
|
||||
Height 8
|
||||
Speed 30
|
||||
|
@ -344,8 +331,6 @@ ACTOR CrossbowFX1
|
|||
|
||||
ACTOR CrossbowFX2 : CrossbowFX1
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 148
|
||||
Speed 32
|
||||
Damage 6
|
||||
Obituary "$OB_MPPCROSSBOW"
|
||||
|
@ -361,8 +346,6 @@ ACTOR CrossbowFX2 : CrossbowFX1
|
|||
|
||||
ACTOR CrossbowFX3 : CrossbowFX1
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 149
|
||||
Speed 20
|
||||
Damage 2
|
||||
SeeSound ""
|
||||
|
@ -400,10 +383,8 @@ ACTOR CrossbowFX4
|
|||
|
||||
// Gauntlets ----------------------------------------------------------------
|
||||
|
||||
ACTOR Gauntlets : Weapon 2005
|
||||
ACTOR Gauntlets : Weapon
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 32
|
||||
+BLOODSPLATTER
|
||||
Weapon.SelectionOrder 2300
|
||||
+WEAPON.WIMPY_WEAPON
|
||||
|
@ -446,7 +427,6 @@ ACTOR Gauntlets : Weapon 2005
|
|||
|
||||
ACTOR GauntletsPowered : Gauntlets
|
||||
{
|
||||
Game Heretic
|
||||
+POWERED_UP
|
||||
Tag "$TAG_GAUNTLETSP"
|
||||
Obituary "$OB_MPPGAUNTLETS"
|
||||
|
@ -509,8 +489,6 @@ ACTOR GauntletPuff2 : GauntletPuff1
|
|||
|
||||
ACTOR Mace : HereticWeapon
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 31
|
||||
Weapon.SelectionOrder 1400
|
||||
Weapon.AmmoUse 1
|
||||
Weapon.AmmoGive1 50
|
||||
|
@ -548,7 +526,6 @@ ACTOR Mace : HereticWeapon
|
|||
|
||||
ACTOR MacePowered : Mace
|
||||
{
|
||||
Game Heretic
|
||||
+WEAPON.POWERED_UP
|
||||
Weapon.AmmoUse 5
|
||||
Weapon.AmmoGive 0
|
||||
|
@ -573,8 +550,6 @@ ACTOR MacePowered : Mace
|
|||
|
||||
ACTOR MaceFX1
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 154
|
||||
Radius 8
|
||||
Height 6
|
||||
Speed 20
|
||||
|
@ -604,8 +579,6 @@ ACTOR MaceFX1
|
|||
|
||||
ACTOR MaceFX2 : MaceFX1
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 156
|
||||
Speed 10
|
||||
Damage 6
|
||||
Gravity 0.125
|
||||
|
@ -629,8 +602,6 @@ ACTOR MaceFX2 : MaceFX1
|
|||
|
||||
ACTOR MaceFX3 : MaceFX1
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 155
|
||||
Speed 7
|
||||
Damage 4
|
||||
-NOGRAVITY
|
||||
|
@ -648,8 +619,6 @@ ACTOR MaceFX3 : MaceFX1
|
|||
|
||||
ACTOR MaceFX4 native
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 153
|
||||
Radius 8
|
||||
Height 6
|
||||
Speed 7
|
||||
|
@ -681,9 +650,8 @@ ACTOR MaceFX4 native
|
|||
|
||||
// Mace spawn spot ----------------------------------------------------------
|
||||
|
||||
ACTOR MaceSpawner : SpecialSpot 2002
|
||||
ACTOR MaceSpawner : SpecialSpot
|
||||
{
|
||||
Game Heretic
|
||||
+NOSECTOR
|
||||
+NOBLOCKMAP
|
||||
States
|
||||
|
@ -698,10 +666,8 @@ ACTOR MaceSpawner : SpecialSpot 2002
|
|||
|
||||
// Blaster ------------------------------------------------------------------
|
||||
|
||||
ACTOR Blaster : HereticWeapon 53
|
||||
ACTOR Blaster : HereticWeapon
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 28
|
||||
+BLOODSPLATTER
|
||||
Weapon.SelectionOrder 500
|
||||
Weapon.AmmoUse 1
|
||||
|
@ -741,7 +707,6 @@ ACTOR Blaster : HereticWeapon 53
|
|||
|
||||
ACTOR BlasterPowered : Blaster
|
||||
{
|
||||
Game Heretic
|
||||
+WEAPON.POWERED_UP
|
||||
Weapon.AmmoUse 5
|
||||
Weapon.AmmoGive 0
|
||||
|
@ -809,8 +774,6 @@ ACTOR BlasterSmoke
|
|||
|
||||
ACTOR Ripper native
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 157
|
||||
Radius 8
|
||||
Height 6
|
||||
Speed 14
|
||||
|
@ -854,10 +817,8 @@ ACTOR BlasterPuff
|
|||
|
||||
// Skull (Horn) Rod ---------------------------------------------------------
|
||||
|
||||
ACTOR SkullRod : HereticWeapon 2004
|
||||
ACTOR SkullRod : HereticWeapon
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 30
|
||||
Weapon.SelectionOrder 200
|
||||
Weapon.AmmoUse1 1
|
||||
Weapon.AmmoGive1 50
|
||||
|
@ -892,7 +853,6 @@ ACTOR SkullRod : HereticWeapon 2004
|
|||
|
||||
ACTOR SkullRodPowered : SkullRod
|
||||
{
|
||||
Game Heretic
|
||||
+WEAPON.POWERED_UP
|
||||
Weapon.AmmoUse1 5
|
||||
Weapon.AmmoGive1 0
|
||||
|
@ -921,8 +881,6 @@ ACTOR SkullRodPowered : SkullRod
|
|||
|
||||
ACTOR HornRodFX1
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 160
|
||||
Radius 12
|
||||
Height 8
|
||||
Speed 22
|
||||
|
@ -1028,10 +986,8 @@ ACTOR RainTracker : Inventory native
|
|||
|
||||
// Phoenix Rod --------------------------------------------------------------
|
||||
|
||||
ACTOR PhoenixRod : Weapon 2003 native
|
||||
ACTOR PhoenixRod : Weapon native
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 29
|
||||
+WEAPON.NOAUTOFIRE
|
||||
Weapon.SelectionOrder 2600
|
||||
Weapon.Kickback 150
|
||||
|
@ -1070,7 +1026,6 @@ ACTOR PhoenixRod : Weapon 2003 native
|
|||
|
||||
ACTOR PhoenixRodPowered : PhoenixRod native
|
||||
{
|
||||
Game Heretic
|
||||
+WEAPON.POWERED_UP
|
||||
+WEAPON.MELEEWEAPON
|
||||
Weapon.SisterWeapon "PhoenixRod"
|
||||
|
@ -1098,8 +1053,6 @@ ACTOR PhoenixRodPowered : PhoenixRod native
|
|||
|
||||
ACTOR PhoenixFX1 native
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 163
|
||||
Radius 11
|
||||
Height 8
|
||||
Speed 20
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
|
||||
// Ironlich -----------------------------------------------------------------
|
||||
|
||||
ACTOR Ironlich 6
|
||||
ACTOR Ironlich
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 20
|
||||
Health 700
|
||||
Radius 40
|
||||
Height 72
|
||||
|
@ -59,8 +57,6 @@ ACTOR Ironlich 6
|
|||
|
||||
ACTOR HeadFX1
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 164
|
||||
Radius 12
|
||||
Height 6
|
||||
Speed 13
|
||||
|
@ -147,8 +143,6 @@ ACTOR HeadFX3
|
|||
|
||||
ACTOR Whirlwind native
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 165
|
||||
Radius 16
|
||||
Height 74
|
||||
Speed 10
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
|
||||
// Knight -------------------------------------------------------------------
|
||||
|
||||
ACTOR Knight 64
|
||||
ACTOR Knight
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 6
|
||||
Health 200
|
||||
Radius 24
|
||||
Height 78
|
||||
|
@ -60,10 +58,8 @@ ACTOR Knight 64
|
|||
|
||||
// Knight ghost -------------------------------------------------------------
|
||||
|
||||
ACTOR KnightGhost : Knight 65
|
||||
ACTOR KnightGhost : Knight
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 129
|
||||
+SHADOW
|
||||
+GHOST
|
||||
RenderStyle Translucent
|
||||
|
@ -74,8 +70,6 @@ ACTOR KnightGhost : Knight 65
|
|||
|
||||
ACTOR KnightAxe
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 127
|
||||
Radius 10
|
||||
Height 8
|
||||
Speed 9
|
||||
|
@ -105,8 +99,6 @@ ACTOR KnightAxe
|
|||
|
||||
ACTOR RedAxe : KnightAxe
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 128
|
||||
+NOBLOCKMAP
|
||||
-WINDTHRUST
|
||||
Damage 7
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
|
||||
// Mummy --------------------------------------------------------------------
|
||||
|
||||
ACTOR Mummy 68
|
||||
ACTOR Mummy
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 4
|
||||
Health 80
|
||||
Radius 22
|
||||
Height 62
|
||||
|
@ -51,10 +49,8 @@ ACTOR Mummy 68
|
|||
|
||||
// Mummy leader -------------------------------------------------------------
|
||||
|
||||
ACTOR MummyLeader : Mummy 45
|
||||
ACTOR MummyLeader : Mummy
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 2
|
||||
Species "MummyLeader"
|
||||
Health 100
|
||||
Painchance 64
|
||||
|
@ -74,10 +70,8 @@ ACTOR MummyLeader : Mummy 45
|
|||
|
||||
// Mummy ghost --------------------------------------------------------------
|
||||
|
||||
ACTOR MummyGhost : Mummy 69
|
||||
ACTOR MummyGhost : Mummy
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 8
|
||||
+SHADOW
|
||||
+GHOST
|
||||
RenderStyle Translucent
|
||||
|
@ -86,10 +80,8 @@ ACTOR MummyGhost : Mummy 69
|
|||
|
||||
// Mummy leader ghost -------------------------------------------------------
|
||||
|
||||
ACTOR MummyLeaderGhost : MummyLeader 46
|
||||
ACTOR MummyLeaderGhost : MummyLeader
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 9
|
||||
Species "MummyLeaderGhost"
|
||||
+SHADOW
|
||||
+GHOST
|
||||
|
@ -116,8 +108,6 @@ ACTOR MummySoul
|
|||
|
||||
ACTOR MummyFX1
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 131
|
||||
Radius 8
|
||||
Height 14
|
||||
Speed 9
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
|
||||
ACTOR Snake 92
|
||||
ACTOR Snake
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 132
|
||||
Health 280
|
||||
Radius 22
|
||||
Height 70
|
||||
|
@ -50,8 +48,6 @@ ACTOR Snake 92
|
|||
|
||||
ACTOR SnakeProjA
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 138
|
||||
Radius 12
|
||||
Height 8
|
||||
Speed 14
|
||||
|
@ -82,8 +78,6 @@ ACTOR SnakeProjA
|
|||
|
||||
ACTOR SnakeProjB : SnakeProjA
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 139
|
||||
Damage 3
|
||||
+NOBLOCKMAP
|
||||
-WINDTHRUST
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
|
||||
// Wizard --------------------------------------------------------
|
||||
|
||||
ACTOR Wizard 15
|
||||
ACTOR Wizard
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 19
|
||||
Health 180
|
||||
Radius 16
|
||||
Height 68
|
||||
|
@ -75,8 +73,6 @@ ACTOR Wizard 15
|
|||
|
||||
ACTOR WizardFX1
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 140
|
||||
Radius 10
|
||||
Height 6
|
||||
Speed 18
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
|
||||
// Bat Spawner --------------------------------------------------------------
|
||||
|
||||
ACTOR BatSpawner : SwitchableDecoration 10225
|
||||
ACTOR BatSpawner : SwitchableDecoration
|
||||
{
|
||||
Game Hexen
|
||||
+NOBLOCKMAP +NOSECTOR +NOGRAVITY
|
||||
RenderStyle None
|
||||
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
|
||||
// Bishop -------------------------------------------------------------------
|
||||
|
||||
ACTOR Bishop 114
|
||||
ACTOR Bishop
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 19
|
||||
Health 130
|
||||
Radius 22
|
||||
Height 65
|
||||
|
@ -81,7 +79,6 @@ ACTOR Bishop 114
|
|||
|
||||
ACTOR BishopPuff
|
||||
{
|
||||
Game Hexen
|
||||
+NOBLOCKMAP +NOGRAVITY
|
||||
RenderStyle Translucent
|
||||
Alpha 0.6
|
||||
|
@ -99,7 +96,6 @@ ACTOR BishopPuff
|
|||
|
||||
ACTOR BishopPainBlur
|
||||
{
|
||||
Game Hexen
|
||||
+NOBLOCKMAP +NOGRAVITY
|
||||
RenderStyle Translucent
|
||||
Alpha 0.6
|
||||
|
@ -115,7 +111,6 @@ ACTOR BishopPainBlur
|
|||
|
||||
ACTOR BishopFX
|
||||
{
|
||||
Game Hexen
|
||||
Radius 10
|
||||
Height 6
|
||||
Speed 10
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
|
||||
ACTOR ArtiBlastRadius : CustomInventory 10110
|
||||
ACTOR ArtiBlastRadius : CustomInventory
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 74
|
||||
+FLOATBOB
|
||||
Inventory.DefMaxAmount
|
||||
Inventory.PickupFlash "PickupFlash"
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
|
||||
// Boost Armor Artifact (Dragonskin Bracers) --------------------------------
|
||||
|
||||
ACTOR ArtiBoostArmor : Inventory 8041 native
|
||||
ACTOR ArtiBoostArmor : Inventory native
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 22
|
||||
+COUNTITEM
|
||||
+FLOATBOB
|
||||
Inventory.DefMaxAmount
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
// Centaur ------------------------------------------------------------------
|
||||
|
||||
ACTOR Centaur 107
|
||||
ACTOR Centaur
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 1
|
||||
Health 200
|
||||
Painchance 135
|
||||
Speed 13
|
||||
|
@ -78,10 +76,8 @@ ACTOR Centaur 107
|
|||
|
||||
// Centaur Leader -----------------------------------------------------------
|
||||
|
||||
ACTOR CentaurLeader : Centaur 115
|
||||
ACTOR CentaurLeader : Centaur
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 2
|
||||
Health 250
|
||||
PainChance 96
|
||||
Speed 10
|
||||
|
@ -105,8 +101,6 @@ ACTOR CentaurLeader : Centaur 115
|
|||
|
||||
ACTOR CentaurMash : Centaur
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 103
|
||||
+NOBLOOD
|
||||
+BLASTED
|
||||
-TELESTOMP
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
|
||||
// Cleric Boss (Traductus) --------------------------------------------------
|
||||
|
||||
ACTOR ClericBoss 10101
|
||||
ACTOR ClericBoss
|
||||
{
|
||||
Game Hexen
|
||||
Health 800
|
||||
PainChance 50
|
||||
Speed 25
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
|
||||
// The Cleric's Flame Strike ------------------------------------------------
|
||||
|
||||
ACTOR CWeapFlame : ClericWeapon 8009
|
||||
ACTOR CWeapFlame : ClericWeapon
|
||||
{
|
||||
Game Hexen
|
||||
+NOGRAVITY
|
||||
Weapon.SelectionOrder 1000
|
||||
Weapon.AmmoUse 4
|
||||
|
|
|
@ -12,10 +12,8 @@ ACTOR ClericWeaponPiece : WeaponPiece
|
|||
|
||||
// Cleric Weapon Piece 1 ----------------------------------------------------
|
||||
|
||||
ACTOR CWeaponPiece1 : ClericWeaponPiece 18
|
||||
ACTOR CWeaponPiece1 : ClericWeaponPiece
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 33
|
||||
WeaponPiece.Number 1
|
||||
States
|
||||
{
|
||||
|
@ -27,10 +25,8 @@ ACTOR CWeaponPiece1 : ClericWeaponPiece 18
|
|||
|
||||
// Cleric Weapon Piece 2 ----------------------------------------------------
|
||||
|
||||
ACTOR CWeaponPiece2 : ClericWeaponPiece 19
|
||||
ACTOR CWeaponPiece2 : ClericWeaponPiece
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 34
|
||||
WeaponPiece.Number 2
|
||||
States
|
||||
{
|
||||
|
@ -42,10 +38,8 @@ ACTOR CWeaponPiece2 : ClericWeaponPiece 19
|
|||
|
||||
// Cleric Weapon Piece 3 ----------------------------------------------------
|
||||
|
||||
ACTOR CWeaponPiece3 : ClericWeaponPiece 20
|
||||
ACTOR CWeaponPiece3 : ClericWeaponPiece
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 35
|
||||
WeaponPiece.Number 3
|
||||
States
|
||||
{
|
||||
|
@ -72,7 +66,6 @@ ACTOR WraithvergeDrop
|
|||
|
||||
ACTOR CWeapWraithverge : ClericWeapon native
|
||||
{
|
||||
Game Hexen
|
||||
Health 3
|
||||
Weapon.SelectionOrder 3000
|
||||
+WEAPON.PRIMARY_USES_BOTH
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
|
||||
ACTOR CWeapMace : ClericWeapon
|
||||
{
|
||||
Game Hexen
|
||||
Weapon.SelectionOrder 3500
|
||||
Weapon.KickBack 150
|
||||
Weapon.YAdjust -8
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
|
||||
// The Cleric's Serpent Staff -----------------------------------------------
|
||||
|
||||
ACTOR CWeapStaff : ClericWeapon 10
|
||||
ACTOR CWeapStaff : ClericWeapon
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 32
|
||||
Weapon.SelectionOrder 1600
|
||||
Weapon.AmmoUse1 1
|
||||
Weapon.AmmoGive1 25
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
|
||||
// Demon, type 1 (green, like D'Sparil's) -----------------------------------
|
||||
|
||||
ACTOR Demon1 31
|
||||
ACTOR Demon1
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 3
|
||||
Health 250
|
||||
Painchance 50
|
||||
Speed 13
|
||||
|
@ -70,8 +68,6 @@ ACTOR Demon1 31
|
|||
|
||||
ACTOR Demon1Mash : Demon1
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 100
|
||||
+NOBLOOD
|
||||
+BLASTED
|
||||
-TELESTOMP
|
||||
|
@ -212,9 +208,8 @@ ACTOR Demon1FX1
|
|||
|
||||
// Demon, type 2 (brown) ----------------------------------------------------
|
||||
|
||||
ACTOR Demon2 : Demon1 8080
|
||||
ACTOR Demon2 : Demon1
|
||||
{
|
||||
Game Hexen
|
||||
Obituary "$OB_DEMON2"
|
||||
Species "Demon2"
|
||||
States
|
||||
|
@ -262,8 +257,6 @@ ACTOR Demon2 : Demon1 8080
|
|||
|
||||
ACTOR Demon2Mash : Demon2
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 101
|
||||
+NOBLOOD
|
||||
+BLASTED
|
||||
-TELESTOMP
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
|
||||
// Dragon -------------------------------------------------------------------
|
||||
|
||||
ACTOR Dragon 254
|
||||
ACTOR Dragon
|
||||
{
|
||||
Game Hexen
|
||||
Health 640
|
||||
PainChance 128
|
||||
Speed 10
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
|
||||
// Ettin --------------------------------------------------------------------
|
||||
|
||||
ACTOR Ettin 10030
|
||||
ACTOR Ettin
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 4
|
||||
Health 175
|
||||
Radius 25
|
||||
Height 68
|
||||
|
@ -91,8 +89,6 @@ ACTOR EttinMace
|
|||
|
||||
ACTOR EttinMash : Ettin
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 102
|
||||
+NOBLOOD
|
||||
+NOICEDEATH
|
||||
RenderStyle Translucent
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
|
||||
// The Fighter's Axe --------------------------------------------------------
|
||||
|
||||
ACTOR FWeapAxe : FighterWeapon 8010 native
|
||||
ACTOR FWeapAxe : FighterWeapon native
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 27
|
||||
Weapon.SelectionOrder 1500
|
||||
+WEAPON.AXEBLOOD +WEAPON.AMMO_OPTIONAL +WEAPON.MELEEWEAPON
|
||||
Weapon.AmmoUse1 2
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
|
||||
// Fighter Boss (Zedek) -----------------------------------------------------
|
||||
|
||||
ACTOR FighterBoss 10100
|
||||
ACTOR FighterBoss
|
||||
{
|
||||
Game Hexen
|
||||
health 800
|
||||
PainChance 50
|
||||
Speed 25
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
|
||||
ACTOR FWeapFist : FighterWeapon
|
||||
{
|
||||
Game Hexen
|
||||
+BLOODSPLATTER
|
||||
Weapon.SelectionOrder 3400
|
||||
+WEAPON.MELEEWEAPON
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
|
||||
// The Fighter's Hammer -----------------------------------------------------
|
||||
|
||||
ACTOR FWeapHammer : FighterWeapon 123
|
||||
ACTOR FWeapHammer : FighterWeapon
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 28
|
||||
+BLOODSPLATTER
|
||||
Weapon.SelectionOrder 900
|
||||
+WEAPON.AMMO_OPTIONAL +WEAPON.MELEEWEAPON
|
||||
|
|
|
@ -104,7 +104,6 @@ ACTOR FighterPlayer : PlayerPawn
|
|||
|
||||
Actor BloodyFighterSkull : PlayerChunk
|
||||
{
|
||||
Game Hexen
|
||||
Radius 4
|
||||
Height 4
|
||||
+NOBLOCKMAP
|
||||
|
|
|
@ -12,10 +12,8 @@ ACTOR FighterWeaponPiece : WeaponPiece
|
|||
|
||||
// Fighter Weapon Piece 1 ---------------------------------------------------
|
||||
|
||||
ACTOR FWeaponPiece1 : FighterWeaponPiece 12
|
||||
ACTOR FWeaponPiece1 : FighterWeaponPiece
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 29
|
||||
WeaponPiece.Number 1
|
||||
States
|
||||
{
|
||||
|
@ -27,10 +25,8 @@ ACTOR FWeaponPiece1 : FighterWeaponPiece 12
|
|||
|
||||
// Fighter Weapon Piece 2 ---------------------------------------------------
|
||||
|
||||
ACTOR FWeaponPiece2 : FighterWeaponPiece 13
|
||||
ACTOR FWeaponPiece2 : FighterWeaponPiece
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 30
|
||||
WeaponPiece.Number 2
|
||||
States
|
||||
{
|
||||
|
@ -42,10 +38,8 @@ ACTOR FWeaponPiece2 : FighterWeaponPiece 13
|
|||
|
||||
// Fighter Weapon Piece 3 ---------------------------------------------------
|
||||
|
||||
ACTOR FWeaponPiece3 : FighterWeaponPiece 16
|
||||
ACTOR FWeaponPiece3 : FighterWeaponPiece
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 31
|
||||
WeaponPiece.Number 3
|
||||
States
|
||||
{
|
||||
|
@ -72,7 +66,6 @@ ACTOR QuietusDrop
|
|||
|
||||
ACTOR FWeapQuietus : FighterWeapon
|
||||
{
|
||||
Game Hexen
|
||||
Health 3
|
||||
Weapon.SelectionOrder 2900
|
||||
+WEAPON.PRIMARY_USES_BOTH
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
|
||||
// FireDemon ----------------------------------------------------------------
|
||||
|
||||
ACTOR FireDemon 10060
|
||||
ACTOR FireDemon
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 5
|
||||
Health 80
|
||||
ReactionTime 8
|
||||
PainChance 1
|
||||
|
@ -76,7 +74,6 @@ ACTOR FireDemon 10060
|
|||
|
||||
ACTOR FireDemonSplotch1
|
||||
{
|
||||
Game Hexen
|
||||
Health 1000
|
||||
ReactionTime 8
|
||||
Radius 3
|
||||
|
@ -112,7 +109,6 @@ ACTOR FireDemonSplotch2 : FireDemonSplotch1
|
|||
|
||||
ACTOR FireDemonRock1
|
||||
{
|
||||
Game Hexen
|
||||
Health 1000
|
||||
ReactionTime 8
|
||||
Radius 3
|
||||
|
@ -140,7 +136,6 @@ ACTOR FireDemonRock1
|
|||
|
||||
ACTOR FireDemonRock2 : FireDemonRock1
|
||||
{
|
||||
Game Hexen
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
@ -158,7 +153,6 @@ ACTOR FireDemonRock2 : FireDemonRock1
|
|||
|
||||
ACTOR FireDemonRock3 : FireDemonRock1
|
||||
{
|
||||
Game Hexen
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
@ -176,7 +170,6 @@ ACTOR FireDemonRock3 : FireDemonRock1
|
|||
|
||||
ACTOR FireDemonRock4 : FireDemonRock1
|
||||
{
|
||||
Game Hexen
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
@ -194,7 +187,6 @@ ACTOR FireDemonRock4 : FireDemonRock1
|
|||
|
||||
ACTOR FireDemonRock5 : FireDemonRock1
|
||||
{
|
||||
Game Hexen
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
// Temp Small Flame --------------------------------------------------------
|
||||
|
||||
ACTOR FlameSmallTemp 10500
|
||||
ACTOR FlameSmallTemp
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 96
|
||||
+NOTELEPORT
|
||||
RenderStyle Add
|
||||
States
|
||||
|
@ -21,10 +19,8 @@ ACTOR FlameSmallTemp 10500
|
|||
|
||||
// Temp Large Flame ---------------------------------------------------------
|
||||
|
||||
ACTOR FlameLargeTemp 10502
|
||||
ACTOR FlameLargeTemp
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 98
|
||||
+NOTELEPORT
|
||||
RenderStyle Add
|
||||
States
|
||||
|
@ -52,10 +48,8 @@ ACTOR FlameLargeTemp 10502
|
|||
|
||||
// Small Flame --------------------------------------------------------------
|
||||
|
||||
ACTOR FlameSmall : SwitchableDecoration 10501
|
||||
ACTOR FlameSmall : SwitchableDecoration
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 97
|
||||
+NOTELEPORT
|
||||
+INVISIBLE
|
||||
Radius 15
|
||||
|
@ -79,16 +73,12 @@ ACTOR FlameSmall : SwitchableDecoration 10501
|
|||
|
||||
ACTOR FlameSmall2 : FlameSmall
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 66
|
||||
}
|
||||
|
||||
// Large Flame --------------------------------------------------------------
|
||||
|
||||
ACTOR FlameLarge : SwitchableDecoration 10503
|
||||
ACTOR FlameLarge : SwitchableDecoration
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 99
|
||||
+NOTELEPORT
|
||||
+INVISIBLE
|
||||
Radius 15
|
||||
|
@ -112,7 +102,5 @@ ACTOR FlameLarge : SwitchableDecoration 10503
|
|||
|
||||
ACTOR FlameLarge2 : FlameLarge
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 67
|
||||
}
|
||||
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
|
||||
ACTOR PoisonBag
|
||||
{
|
||||
Game Hexen
|
||||
Radius 5
|
||||
Height 5
|
||||
+NOBLOCKMAP +NOGRAVITY
|
||||
|
@ -51,7 +50,6 @@ ACTOR FireBomb
|
|||
|
||||
ACTOR ThrowingBomb
|
||||
{
|
||||
Game Hexen
|
||||
Health 48
|
||||
Speed 12
|
||||
Radius 8
|
||||
|
@ -94,10 +92,8 @@ ACTOR ThrowingBomb
|
|||
|
||||
// Poison Bag Artifact (Flechette) ------------------------------------------
|
||||
|
||||
ACTOR ArtiPoisonBag : Inventory 8000 native
|
||||
ACTOR ArtiPoisonBag : Inventory native
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 72
|
||||
+FLOATBOB
|
||||
Inventory.DefMaxAmount
|
||||
Inventory.PickupFlash "PickupFlash"
|
||||
|
@ -189,9 +185,8 @@ ACTOR PoisonCloud native
|
|||
|
||||
// Poison Shroom ------------------------------------------------------------
|
||||
|
||||
ACTOR ZPoisonShroom : PoisonBag 8104
|
||||
ACTOR ZPoisonShroom : PoisonBag
|
||||
{
|
||||
Game Hexen
|
||||
Radius 6
|
||||
Height 20
|
||||
PainChance 255
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
|
||||
// Buzzy fly ----------------------------------------------------------------
|
||||
|
||||
ACTOR LittleFly 112
|
||||
ACTOR LittleFly
|
||||
{
|
||||
Game Hexen
|
||||
+NOBLOCKMAP +NOGRAVITY
|
||||
+CANPASS
|
||||
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
|
||||
// Fog Spawner --------------------------------------------------------------
|
||||
|
||||
ACTOR FogSpawner 10000
|
||||
ACTOR FogSpawner
|
||||
{
|
||||
Game Hexen
|
||||
+NOSECTOR +NOBLOCKMAP
|
||||
+FLOATBOB
|
||||
+NOGRAVITY
|
||||
|
@ -21,9 +20,8 @@ ACTOR FogSpawner 10000
|
|||
|
||||
// Small Fog Patch ----------------------------------------------------------
|
||||
|
||||
ACTOR FogPatchSmall 10001
|
||||
ACTOR FogPatchSmall
|
||||
{
|
||||
Game Hexen
|
||||
Speed 1
|
||||
+NOBLOCKMAP +NOGRAVITY +NOCLIP +FLOAT
|
||||
+NOTELEPORT
|
||||
|
@ -45,9 +43,8 @@ ACTOR FogPatchSmall 10001
|
|||
|
||||
// Medium Fog Patch ---------------------------------------------------------
|
||||
|
||||
ACTOR FogPatchMedium : FogPatchSmall 10002
|
||||
ACTOR FogPatchMedium : FogPatchSmall
|
||||
{
|
||||
Game Hexen
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
@ -61,9 +58,8 @@ ACTOR FogPatchMedium : FogPatchSmall 10002
|
|||
|
||||
// Large Fog Patch ----------------------------------------------------------
|
||||
|
||||
ACTOR FogPatchLarge : FogPatchMedium 10003
|
||||
ACTOR FogPatchLarge : FogPatchMedium
|
||||
{
|
||||
Game Hexen
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue