mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-10 14:51:40 +00:00
Merge commit '4f7ec3ad891d556c0d3f680e209a120ed38e9cdb' into scripting
Conflicts: src/d_main.cpp src/info.cpp src/info.h src/p_acs.cpp src/p_interaction.cpp src/p_mobj.cpp src/thingdef/thingdef_codeptr.cpp src/thingdef/thingdef_properties.cpp (scripting branch update part 5)
This commit is contained in:
commit
065c0a79cd
192 changed files with 2496 additions and 1235 deletions
|
@ -748,6 +748,7 @@ set( NOT_COMPILED_SOURCE_FILES
|
|||
g_hexen/a_fighterquietus.cpp
|
||||
g_hexen/a_firedemon.cpp
|
||||
g_hexen/a_flechette.cpp
|
||||
g_hexen/a_flies.cpp
|
||||
g_hexen/a_fog.cpp
|
||||
g_hexen/a_healingradius.cpp
|
||||
g_hexen/a_heresiarch.cpp
|
||||
|
@ -843,6 +844,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
|
||||
|
|
|
@ -1005,7 +1005,7 @@ public:
|
|||
virtual bool UpdateWaterLevel (fixed_t oldz, bool splash=true);
|
||||
bool isFast();
|
||||
bool isSlow();
|
||||
void SetIdle();
|
||||
void SetIdle(bool nofunction=false);
|
||||
void ClearCounters();
|
||||
FState *GetRaiseState();
|
||||
void Revive();
|
||||
|
|
|
@ -639,6 +639,23 @@ CCMD (error_fatal)
|
|||
}
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
// CCMD crashout
|
||||
//
|
||||
// Debugging routine for testing the crash logger.
|
||||
// Useless in a win32 debug build, because that doesn't enable the crash logger.
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
#if !defined(_WIN32) || !defined(_DEBUG)
|
||||
CCMD (crashout)
|
||||
{
|
||||
*(volatile int *)0 = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
CCMD (dir)
|
||||
{
|
||||
FString dir, path;
|
||||
|
|
|
@ -957,7 +957,7 @@ void ScanDirectory(TArray<FFileList> &list, const char *dirpath)
|
|||
}
|
||||
}
|
||||
|
||||
#elif defined(__sun) || defined(linux)
|
||||
#elif defined(__sun) || defined(__linux__)
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
|
|
|
@ -47,6 +47,7 @@
|
|||
#include "v_video.h"
|
||||
#include "gameconfigfile.h"
|
||||
#include "resourcefiles/resourcefile.h"
|
||||
#include "version.h"
|
||||
|
||||
|
||||
CVAR (Bool, queryiwad, true, CVAR_ARCHIVE|CVAR_GLOBALCONFIG);
|
||||
|
@ -504,19 +505,19 @@ int FIWadManager::IdentifyVersion (TArray<FString> &wadfiles, const char *iwad,
|
|||
if (numwads == 0)
|
||||
{
|
||||
I_FatalError ("Cannot find a game IWAD (doom.wad, doom2.wad, heretic.wad, etc.).\n"
|
||||
"Did you install ZDoom properly? You can do either of the following:\n"
|
||||
"Did you install " GAMENAME " properly? You can do either of the following:\n"
|
||||
"\n"
|
||||
#if defined(_WIN32)
|
||||
"1. Place one or more of these wads in the same directory as ZDoom.\n"
|
||||
"2. Edit your zdoom-username.ini and add the directories of your iwads\n"
|
||||
"1. Place one or more of these wads in the same directory as " GAMENAME ".\n"
|
||||
"2. Edit your " GAMENAMELOWERCASE "-username.ini and add the directories of your iwads\n"
|
||||
"to the list beneath [IWADSearch.Directories]");
|
||||
#elif defined(__APPLE__)
|
||||
"1. Place one or more of these wads in ~/Library/Application Support/zdoom/\n"
|
||||
"2. Edit your ~/Library/Preferences/zdoom.ini and add the directories\n"
|
||||
"1. Place one or more of these wads in ~/Library/Application Support/" GAMENAMELOWERCASE "/\n"
|
||||
"2. Edit your ~/Library/Preferences/" GAMENAMELOWERCASE ".ini and add the directories\n"
|
||||
"of your iwads to the list beneath [IWADSearch.Directories]");
|
||||
#else
|
||||
"1. Place one or more of these wads in ~/.config/zdoom/.\n"
|
||||
"2. Edit your ~/.config/zdoom/zdoom.ini and add the directories of your\n"
|
||||
"1. Place one or more of these wads in ~/.config/" GAMENAMELOWERCASE "/.\n"
|
||||
"2. Edit your ~/.config/" GAMENAMELOWERCASE "/" GAMENAMELOWERCASE ".ini and add the directories of your\n"
|
||||
"iwads to the list beneath [IWADSearch.Directories]");
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -2441,8 +2441,8 @@ void D_DoomMain (void)
|
|||
// Create replacements for dehacked pickups
|
||||
FinishDehPatch();
|
||||
|
||||
InitActorNumsFromMapinfo();
|
||||
PClassActor::StaticSetActorNums ();
|
||||
|
||||
//Added by MC:
|
||||
bglobal.getspawned.Clear();
|
||||
argcount = Args->CheckParmList("-bots", &args);
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -1420,7 +1420,7 @@ void FParser::SF_PointToDist(void)
|
|||
double y = floatvalue(t_argv[3]) - floatvalue(t_argv[1]);
|
||||
|
||||
t_return.type = svt_fixed;
|
||||
t_return.value.f = FLOAT2FIXED(sqrt(x*x+y*y)*65536.f);
|
||||
t_return.value.f = FLOAT2FIXED(sqrt(x*x+y*y));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
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))
|
||||
{
|
||||
PClassActor *cls = NULL;
|
||||
if (pair->Value.classname != NAME_None)
|
||||
{
|
||||
cls = PClass::FindActor(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
|
||||
}
|
112
src/g_hexen/a_flies.cpp
Normal file
112
src/g_hexen/a_flies.cpp
Normal file
|
@ -0,0 +1,112 @@
|
|||
static FRandom pr_fly("GetOffMeFly");
|
||||
|
||||
//===========================================================================
|
||||
//
|
||||
// FindCorpse
|
||||
//
|
||||
// Finds a corpse to buzz around. We can't use a blockmap check because
|
||||
// corpses generally aren't linked into the blockmap.
|
||||
//
|
||||
//===========================================================================
|
||||
|
||||
static AActor *FindCorpse(AActor *fly, sector_t *sec, int recurselimit)
|
||||
{
|
||||
AActor *fallback = NULL;
|
||||
sec->validcount = validcount;
|
||||
|
||||
// Search the current sector
|
||||
for (AActor *check = sec->thinglist; check != NULL; check = check->snext)
|
||||
{
|
||||
if (check == fly)
|
||||
continue;
|
||||
if (!(check->flags & MF_CORPSE))
|
||||
continue;
|
||||
if (!P_CheckSight(fly, check))
|
||||
continue;
|
||||
fallback = check;
|
||||
if (pr_fly(2)) // 50% chance to try to pick a different corpse
|
||||
continue;
|
||||
return check;
|
||||
}
|
||||
if (--recurselimit <= 0 || (fallback != NULL && pr_fly(2)))
|
||||
{
|
||||
return fallback;
|
||||
}
|
||||
// Try neighboring sectors
|
||||
for (int i = 0; i < sec->linecount; ++i)
|
||||
{
|
||||
line_t *line = sec->lines[i];
|
||||
sector_t *sec2 = (line->frontsector == sec) ? line->backsector : line->frontsector;
|
||||
if (sec2 != NULL && sec2->validcount != validcount)
|
||||
{
|
||||
AActor *neighbor = FindCorpse(fly, sec2, recurselimit);
|
||||
if (neighbor != NULL)
|
||||
{
|
||||
return neighbor;
|
||||
}
|
||||
}
|
||||
}
|
||||
return fallback;
|
||||
}
|
||||
|
||||
DEFINE_ACTION_FUNCTION(AActor, A_FlySearch)
|
||||
{
|
||||
// The version from the retail beta is not so great for general use:
|
||||
// 1. Pick one of the first fifty thinkers at random.
|
||||
// 2. Starting from that thinker, find one that is an actor, not itself,
|
||||
// and within sight. Give up after 100 sequential thinkers.
|
||||
// It's effectively useless if there are more than 150 thinkers on a map.
|
||||
//
|
||||
// So search the sectors instead. We can't potentially find something all
|
||||
// the way on the other side of the map and we can't find invisible corpses,
|
||||
// but at least we aren't crippled on maps with lots of stuff going on.
|
||||
PARAM_ACTION_PROLOGUE;
|
||||
|
||||
validcount++;
|
||||
AActor *other = FindCorpse(self, self->Sector, 5);
|
||||
if (other != NULL)
|
||||
{
|
||||
self->target = other;
|
||||
self->SetState(self->FindState("Buzz"));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
DEFINE_ACTION_FUNCTION(AActor, A_FlyBuzz)
|
||||
{
|
||||
PARAM_ACTION_PROLOGUE;
|
||||
|
||||
AActor *targ = self->target;
|
||||
|
||||
if (targ == NULL || !(targ->flags & MF_CORPSE) || pr_fly() < 5)
|
||||
{
|
||||
self->SetIdle();
|
||||
return 0;
|
||||
}
|
||||
|
||||
angle_t ang = R_PointToAngle2(self->x, self->y, targ->x, targ->y);
|
||||
self->angle = ang;
|
||||
self->args[0]++;
|
||||
ang >>= ANGLETOFINESHIFT;
|
||||
if (!P_TryMove(self, self->x + 6 * finecosine[ang], self->y + 6 * finesine[ang], true))
|
||||
{
|
||||
self->SetIdle(true);
|
||||
return 0;
|
||||
}
|
||||
if (self->args[0] & 2)
|
||||
{
|
||||
self->velx += (pr_fly() - 128) << BOBTOFINESHIFT;
|
||||
self->vely += (pr_fly() - 128) << BOBTOFINESHIFT;
|
||||
}
|
||||
int zrand = pr_fly();
|
||||
if (targ->z + 5*FRACUNIT < self->z && zrand > 150)
|
||||
{
|
||||
zrand = -zrand;
|
||||
}
|
||||
self->velz = zrand << BOBTOFINESHIFT;
|
||||
if (pr_fly() < 40)
|
||||
{
|
||||
S_Sound(self, CHAN_VOICE, self->ActiveSound, 0.5f, ATTN_STATIC);
|
||||
}
|
||||
return 0;
|
||||
}
|
|
@ -38,6 +38,7 @@
|
|||
#include "a_fighterquietus.cpp"
|
||||
#include "a_firedemon.cpp"
|
||||
#include "a_flechette.cpp"
|
||||
#include "a_flies.cpp"
|
||||
#include "a_fog.cpp"
|
||||
#include "a_healingradius.cpp"
|
||||
#include "a_heresiarch.cpp"
|
||||
|
|
|
@ -102,6 +102,7 @@ struct FMapInfoParser
|
|||
|
||||
void ParseIntermissionAction(FIntermissionDescriptor *Desc);
|
||||
void ParseIntermission();
|
||||
void ParseDoomEdNums();
|
||||
void ParseAMColors(bool);
|
||||
FName CheckEndSequence();
|
||||
FName ParseEndGame();
|
||||
|
|
|
@ -1876,6 +1876,18 @@ 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("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;
|
||||
|
|
154
src/info.cpp
154
src/info.cpp
|
@ -169,7 +169,6 @@ void PClassActor::StaticInit()
|
|||
void PClassActor::StaticSetActorNums()
|
||||
{
|
||||
SpawnableThings.Clear();
|
||||
DoomEdMap.Empty();
|
||||
|
||||
for (unsigned int i = 0; i < PClassActor::AllActorClasses.Size(); ++i)
|
||||
{
|
||||
|
@ -369,22 +368,22 @@ void PClassActor::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 != this)
|
||||
{
|
||||
Printf(TEXTCOLOR_RED"Editor number %d refers to hidden class type '%s'\n", DoomEdNum, cls->TypeName.GetChars());
|
||||
}
|
||||
}
|
||||
}
|
||||
// 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, this, true);
|
||||
if (cls != this)
|
||||
{
|
||||
Printf(TEXTCOLOR_RED"Editor number %d refers to hidden class type '%s'\n", DoomEdNum, cls->TypeName.GetChars());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
|
@ -535,139 +534,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, PClassActor *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;
|
||||
}
|
||||
}
|
||||
|
||||
PClassActor *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
|
||||
{
|
||||
PClassActor *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 (PClassActor::AllActorClasses.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 ())
|
||||
|
|
51
src/info.h
51
src/info.h
|
@ -275,34 +275,39 @@ inline PClassActor *PClass::FindActor(FName name)
|
|||
return dyn_cast<PClassActor>(FindClass(name));
|
||||
}
|
||||
|
||||
class FDoomEdMap
|
||||
struct FDoomEdEntry
|
||||
{
|
||||
public:
|
||||
~FDoomEdMap();
|
||||
|
||||
PClassActor *FindType (int doomednum) const;
|
||||
void AddType (int doomednum, PClassActor *type, bool temporary = false);
|
||||
void DelType (int doomednum);
|
||||
void Empty ();
|
||||
|
||||
static void DumpMapThings ();
|
||||
|
||||
private:
|
||||
enum { DOOMED_HASHSIZE = 256 };
|
||||
|
||||
struct FDoomEdEntry
|
||||
{
|
||||
FDoomEdEntry *HashNext;
|
||||
PClassActor *Type;
|
||||
int DoomEdNum;
|
||||
bool temp;
|
||||
};
|
||||
|
||||
static FDoomEdEntry *DoomEdHash[DOOMED_HASHSIZE];
|
||||
PClassActor *Type;
|
||||
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);
|
||||
|
|
|
@ -204,7 +204,7 @@ FString M_GetConfigPath(bool for_reading)
|
|||
{
|
||||
path += "/" GAME_DIR;
|
||||
CreatePath(path);
|
||||
path += "/zdoom.ini";
|
||||
path += "/" GAMENAMELOWERCASE ".ini";
|
||||
}
|
||||
else
|
||||
{ // construct "$PROGDIR/zdoom-$USER.ini"
|
||||
|
@ -224,11 +224,11 @@ FString M_GetConfigPath(bool for_reading)
|
|||
*probe = '_';
|
||||
++probe;
|
||||
}
|
||||
path << "zdoom-" << uname << ".ini";
|
||||
path << GAMENAMELOWERCASE "-" << uname << ".ini";
|
||||
}
|
||||
else
|
||||
{ // Couldn't get user name, so just use zdoom.ini
|
||||
path += "zdoom.ini";
|
||||
path += GAMENAMELOWERCASE ".ini";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -239,7 +239,7 @@ FString M_GetConfigPath(bool for_reading)
|
|||
if (!FileExists(path))
|
||||
{
|
||||
path = progdir;
|
||||
path << "zdoom.ini";
|
||||
path << GAMENAMELOWERCASE ".ini";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -411,11 +411,11 @@ FString M_GetConfigPath(bool for_reading)
|
|||
noErr == FSRefMakePath(&folder, (UInt8*)cpath, PATH_MAX))
|
||||
{
|
||||
FString path;
|
||||
path << cpath << "/zdoom.ini";
|
||||
path << cpath << "/" GAMENAMELOWERCASE ".ini";
|
||||
return path;
|
||||
}
|
||||
// Ungh.
|
||||
return "zdoom.ini";
|
||||
return GAMENAMELOWERCASE ".ini";
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
|
@ -497,12 +497,12 @@ FString GetUserFile (const char *file)
|
|||
// This can be removed after a release or two
|
||||
// Transfer the old zdoom directory to the new location
|
||||
bool moved = false;
|
||||
FString oldpath = NicePath("~/.zdoom/");
|
||||
FString oldpath = NicePath("~/." GAMENAMELOWERCASE "/");
|
||||
if (stat (oldpath, &extrainfo) != -1)
|
||||
{
|
||||
if (rename(oldpath, path) == -1)
|
||||
{
|
||||
I_Error ("Failed to move old zdoom directory (%s) to new location (%s).",
|
||||
I_Error ("Failed to move old " GAMENAMELOWERCASE " directory (%s) to new location (%s).",
|
||||
oldpath.GetChars(), path.GetChars());
|
||||
}
|
||||
else
|
||||
|
@ -598,7 +598,7 @@ FString M_GetCajunPath(const char *botfilename)
|
|||
|
||||
FString M_GetConfigPath(bool for_reading)
|
||||
{
|
||||
return GetUserFile("zdoom.ini");
|
||||
return GetUserFile(GAMENAMELOWERCASE ".ini");
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
|
|
|
@ -4759,25 +4759,19 @@ static void SetActorRoll(AActor *activator, int tid, int angle, bool interpolate
|
|||
}
|
||||
}
|
||||
|
||||
static void SetActorTeleFog(AActor *activator, int tid, FName telefogsrc, FName telefogdest)
|
||||
static void SetActorTeleFog(AActor *activator, int tid, FString telefogsrc, FString telefogdest)
|
||||
{
|
||||
//Simply put, if it doesn't exist, it won't change. One can use "" in this scenario.
|
||||
PClassActor *check;
|
||||
// Set the actor's telefog to the specified actor. Handle "" as "don't
|
||||
// change" since "None" should work just fine for disabling the fog (given
|
||||
// that it will resolve to NAME_None which is not a valid actor name).
|
||||
if (tid == 0)
|
||||
{
|
||||
if (activator != NULL)
|
||||
{
|
||||
check = PClass::FindActor(telefogsrc);
|
||||
if (check == NULL || !stricmp(telefogsrc, "none") || !stricmp(telefogsrc, "null"))
|
||||
activator->TeleFogSourceType = NULL;
|
||||
else
|
||||
activator->TeleFogSourceType = check;
|
||||
|
||||
check = PClass::FindActor(telefogdest);
|
||||
if (check == NULL || !stricmp(telefogdest, "none") || !stricmp(telefogdest, "null"))
|
||||
activator->TeleFogDestType = NULL;
|
||||
else
|
||||
activator->TeleFogDestType = check;
|
||||
if (telefogsrc.IsNotEmpty())
|
||||
activator->TeleFogSourceType = PClass::FindActor(telefogsrc);
|
||||
if (telefogdest.IsNotEmpty())
|
||||
activator->TeleFogDestType = PClass::FindActor(telefogdest);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -4785,19 +4779,14 @@ static void SetActorTeleFog(AActor *activator, int tid, FName telefogsrc, FName
|
|||
FActorIterator iterator(tid);
|
||||
AActor *actor;
|
||||
|
||||
PClassActor * src = telefogsrc.IsNotEmpty() ? PClass::FindActor(telefogsrc) : NULL;
|
||||
PClassActor * dest = telefogdest.IsNotEmpty() ? PClass::FindActor(telefogdest) : NULL;
|
||||
while ((actor = iterator.Next()))
|
||||
{
|
||||
check = PClass::FindActor(telefogsrc);
|
||||
if (check == NULL || !stricmp(telefogsrc, "none") || !stricmp(telefogsrc, "null"))
|
||||
actor->TeleFogSourceType = NULL;
|
||||
else
|
||||
actor->TeleFogSourceType = check;
|
||||
|
||||
check = PClass::FindActor(telefogdest);
|
||||
if (check == NULL || !stricmp(telefogdest, "none") || !stricmp(telefogdest, "null"))
|
||||
actor->TeleFogDestType = NULL;
|
||||
else
|
||||
actor->TeleFogDestType = check;
|
||||
if (telefogsrc.IsNotEmpty())
|
||||
actor->TeleFogSourceType = src;
|
||||
if (telefogdest.IsNotEmpty())
|
||||
actor->TeleFogDestType = dest;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -945,6 +945,8 @@ int P_DamageMobj (AActor *target, AActor *inflictor, AActor *source, int damage,
|
|||
int fakeDamage = 0;
|
||||
int holdDamage = 0;
|
||||
|
||||
if (damage < 0) damage = 0;
|
||||
|
||||
if (target == NULL || !((target->flags & MF_SHOOTABLE) || (target->flags6 & MF6_VULNERABLE)))
|
||||
{ // Shouldn't happen
|
||||
return -1;
|
||||
|
@ -1026,6 +1028,8 @@ int P_DamageMobj (AActor *target, AActor *inflictor, AActor *source, int damage,
|
|||
{
|
||||
target->velx = target->vely = target->velz = 0;
|
||||
}
|
||||
|
||||
player = target->player;
|
||||
if (!(flags & DMG_FORCED)) // DMG_FORCED skips all special damage checks, TELEFRAG_DAMAGE may not be reduced at all
|
||||
{
|
||||
if (target->flags2 & MF2_DORMANT)
|
||||
|
@ -1033,9 +1037,9 @@ int P_DamageMobj (AActor *target, AActor *inflictor, AActor *source, int damage,
|
|||
// Invulnerable, and won't wake up
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (damage < TELEFRAG_DAMAGE) // TELEFRAG_DAMAGE may not be reduced at all or it may not guarantee its effect.
|
||||
{
|
||||
player = target->player;
|
||||
if (player && damage > 1)
|
||||
{
|
||||
// Take half damage in trainer mode
|
||||
|
@ -1111,6 +1115,10 @@ int P_DamageMobj (AActor *target, AActor *inflictor, AActor *source, int damage,
|
|||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (target->flags5 & MF5_NODAMAGE)
|
||||
{
|
||||
damage = 0;
|
||||
}
|
||||
}
|
||||
if (damage < 0)
|
||||
|
@ -1319,7 +1327,7 @@ int P_DamageMobj (AActor *target, AActor *inflictor, AActor *source, int damage,
|
|||
// but telefragging should still do enough damage to kill the player)
|
||||
// Ignore players that are already dead.
|
||||
// [MC]Buddha2 absorbs telefrag damage, and anything else thrown their way.
|
||||
if (((player->cheats & CF_BUDDHA2) || (((player->cheats & CF_BUDDHA) || (player->mo->flags7 & MF7_BUDDHA)) && (damage < TELEFRAG_DAMAGE))) && (player->playerstate != PST_DEAD))
|
||||
if (!(flags & DMG_FORCED) && (((player->cheats & CF_BUDDHA2) || (((player->cheats & CF_BUDDHA) || (player->mo->flags7 & MF7_BUDDHA)) && (damage < TELEFRAG_DAMAGE))) && (player->playerstate != PST_DEAD)))
|
||||
{
|
||||
// If this is a voodoo doll we need to handle the real player as well.
|
||||
player->mo->health = target->health = player->health = 1;
|
||||
|
@ -1384,7 +1392,7 @@ int P_DamageMobj (AActor *target, AActor *inflictor, AActor *source, int damage,
|
|||
if (target->health <= 0)
|
||||
{
|
||||
//[MC]Buddha flag for monsters.
|
||||
if ((target->flags7 & MF7_BUDDHA) && (damage < TELEFRAG_DAMAGE) && ((inflictor == NULL || !(inflictor->flags7 & MF7_FOILBUDDHA)) && !(flags & DMG_FOILBUDDHA)))
|
||||
if (!(flags & DMG_FORCED) && ((target->flags7 & MF7_BUDDHA) && (damage < TELEFRAG_DAMAGE) && ((inflictor == NULL || !(inflictor->flags7 & MF7_FOILBUDDHA)) && !(flags & DMG_FOILBUDDHA))))
|
||||
{ //FOILBUDDHA or Telefrag damage must kill it.
|
||||
target->health = 1;
|
||||
}
|
||||
|
|
|
@ -595,19 +595,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
|
||||
|
||||
|
|
|
@ -1034,7 +1034,7 @@ bool PIT_CheckThing(AActor *thing, FCheckPosition &tm)
|
|||
// Both things overlap in x or y direction
|
||||
bool unblocking = false;
|
||||
|
||||
if (tm.FromPMove)
|
||||
if (tm.FromPMove || tm.thing->player != NULL)
|
||||
{
|
||||
// Both actors already overlap. To prevent them from remaining stuck allow the move if it
|
||||
// takes them further apart or the move does not change the position (when called from P_ChangeSector.)
|
||||
|
@ -4793,7 +4793,7 @@ void P_RadiusAttack(AActor *bombspot, AActor *bombsource, int bombdamage, int bo
|
|||
points *= thing->GetClass()->RDFactor / (float)FRACUNIT;
|
||||
|
||||
// points and bombdamage should be the same sign
|
||||
if (((bombspot->flags7 & MF7_CAUSEPAIN) || (points * bombdamage) > 0) && P_CheckSight(thing, bombspot, SF_IGNOREVISIBILITY | SF_IGNOREWATERBOUNDARY))
|
||||
if (((points * bombdamage) > 0) && P_CheckSight(thing, bombspot, SF_IGNOREVISIBILITY | SF_IGNOREWATERBOUNDARY))
|
||||
{ // OK to damage; target is in direct path
|
||||
double velz;
|
||||
double thrust;
|
||||
|
|
146
src/p_mobj.cpp
146
src/p_mobj.cpp
|
@ -4708,69 +4708,82 @@ 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);
|
||||
deathmatchstarts.Push(start);
|
||||
// [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;
|
||||
}
|
||||
|
||||
// Convert Strife starts to Hexen-style starts
|
||||
if (gameinfo.gametype == GAME_Strife && mthing->type >= 118 && mthing->type <= 127)
|
||||
// copy args to mapthing so that we have them in one place for the rest of this function
|
||||
if (mentry->Special >= 0)
|
||||
{
|
||||
mthing->args[0] = mthing->type - 117;
|
||||
mthing->type = 1;
|
||||
mthing->special = mentry->Special;
|
||||
memcpy(mthing->args, mentry->Args, sizeof(mthing->args));
|
||||
}
|
||||
|
||||
// [RH] Record polyobject-related things
|
||||
if (gameinfo.gametype == GAME_Hexen)
|
||||
int pnum = -1;
|
||||
if (mentry->Type == NULL)
|
||||
{
|
||||
switch (mthing->type)
|
||||
|
||||
switch (mentry->Special)
|
||||
{
|
||||
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;
|
||||
case SMT_DEATHMATCHSTART:
|
||||
{
|
||||
// count deathmatch start positions
|
||||
FPlayerStart start(mthing, 0);
|
||||
deathmatchstarts.Push(start);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
if (pnum == -1 || (level.flags & LEVEL_FILTERSTARTS))
|
||||
{
|
||||
|
@ -4836,7 +4849,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))
|
||||
|
@ -4847,20 +4860,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);
|
||||
|
@ -4872,37 +4875,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::FindActor("Unknown");
|
||||
assert(i->IsKindOf(RUNTIME_CLASS(PClassActor)));
|
||||
}
|
||||
// [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 ||
|
||||
|
@ -4919,7 +4896,6 @@ AActor *P_SpawnMapThing (FMapThing *mthing, int position)
|
|||
i = PClass::FindActor("Unknown");
|
||||
assert(i->IsKindOf(RUNTIME_CLASS(PClassActor)));
|
||||
}
|
||||
}
|
||||
|
||||
const AActor *info = GetDefaultByType (i);
|
||||
|
||||
|
@ -5008,6 +4984,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
|
||||
|
@ -6271,11 +6248,6 @@ int AActor::TakeSpecialDamage (AActor *inflictor, AActor *source, int damage, FN
|
|||
{
|
||||
FState *death;
|
||||
|
||||
if (flags5 & MF5_NODAMAGE)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
// If the actor does not have a corresponding death state, then it does not take damage.
|
||||
// Note that DeathState matches every kind of damagetype, so an actor has that, it can
|
||||
// be hurt with any type of damage. Exception: Massacre damage always succeeds, because
|
||||
|
@ -6348,11 +6320,11 @@ void AActor::Crash()
|
|||
}
|
||||
}
|
||||
|
||||
void AActor::SetIdle()
|
||||
void AActor::SetIdle(bool nofunction)
|
||||
{
|
||||
FState *idle = FindState (NAME_Idle);
|
||||
if (idle == NULL) idle = SpawnState;
|
||||
SetState(idle);
|
||||
SetState(idle, nofunction);
|
||||
}
|
||||
|
||||
int AActor::SpawnHealth() const
|
||||
|
|
|
@ -3331,32 +3331,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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -37,7 +37,7 @@ static struct {
|
|||
pid_t pid;
|
||||
int has_siginfo;
|
||||
siginfo_t siginfo;
|
||||
char buf[1024];
|
||||
char buf[4096];
|
||||
} crash_info;
|
||||
|
||||
|
||||
|
|
|
@ -240,7 +240,7 @@ int main (int argc, char **argv)
|
|||
#if !defined (__APPLE__)
|
||||
{
|
||||
int s[4] = { SIGSEGV, SIGILL, SIGFPE, SIGBUS };
|
||||
cc_install_handlers(argc, argv, 4, s, "zdoom-crash.log", DoomSpecificInfo);
|
||||
cc_install_handlers(argc, argv, 4, s, GAMENAMELOWERCASE "-crash.log", DoomSpecificInfo);
|
||||
}
|
||||
#endif // !__APPLE__
|
||||
|
||||
|
|
|
@ -84,7 +84,7 @@ void FSoftwareRenderer::PrecacheTexture(FTexture *tex, int cache)
|
|||
{
|
||||
if (tex != NULL)
|
||||
{
|
||||
if (cache & 1)
|
||||
if (cache & FTextureManager::HIT_Columnmode)
|
||||
{
|
||||
const FTexture::Span *spanp;
|
||||
tex->GetColumn(0, &spanp);
|
||||
|
|
|
@ -1246,7 +1246,7 @@ void FTextureManager::PrecacheLevel (void)
|
|||
|
||||
for (unsigned i = 0; i < level.info->PrecacheTextures.Size(); i++)
|
||||
{
|
||||
hitlist[level.info->PrecacheTextures[i].GetIndex()] |= 1;
|
||||
hitlist[level.info->PrecacheTextures[i].GetIndex()] |= FTextureManager::HIT_Wall;
|
||||
}
|
||||
|
||||
for (int i = cnt - 1; i >= 0; i--)
|
||||
|
|
|
@ -365,6 +365,16 @@ public:
|
|||
TEXMAN_DontCreate = 32
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
HIT_Wall = 1,
|
||||
HIT_Flat = 2,
|
||||
HIT_Sky = 4,
|
||||
HIT_Sprite = 8,
|
||||
|
||||
HIT_Columnmode = HIT_Wall|HIT_Sky|HIT_Sprite
|
||||
};
|
||||
|
||||
FTextureID CheckForTexture (const char *name, int usetype, BITFIELD flags=TEXMAN_TryAny);
|
||||
FTextureID GetTexture (const char *name, int usetype, BITFIELD flags=0);
|
||||
int ListTextures (const char *name, TArray<FTextureID> &list);
|
||||
|
|
|
@ -928,7 +928,7 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_Explode)
|
|||
PARAM_INT_OPT (fulldmgdistance) { fulldmgdistance = 0; }
|
||||
PARAM_INT_OPT (nails) { nails = 0; }
|
||||
PARAM_INT_OPT (naildamage) { naildamage = 10; }
|
||||
PARAM_CLASS_OPT (pufftype, AActor) { pufftype = PClass::FindActor("BulletPuff"); }
|
||||
PARAM_CLASS_OPT (pufftype, AActor) { pufftype = PClass::FindActor(NAME_BulletPuff); }
|
||||
|
||||
if (damage < 0) // get parameters from metadata
|
||||
{
|
||||
|
@ -4904,7 +4904,7 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_WolfAttack)
|
|||
PARAM_INT_OPT (pointblank) { pointblank = 2; }
|
||||
PARAM_INT_OPT (longrange) { longrange = 4; }
|
||||
PARAM_FIXED_OPT (runspeed) { runspeed = 160*FRACUNIT; }
|
||||
PARAM_CLASS_OPT (pufftype, AActor) { pufftype = PClass::FindActor("BulletPuff"); }
|
||||
PARAM_CLASS_OPT (pufftype, AActor) { pufftype = PClass::FindActor(NAME_BulletPuff); }
|
||||
|
||||
if (!self->target)
|
||||
return 0;
|
||||
|
@ -6074,39 +6074,17 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_Remove)
|
|||
// A_SetTeleFog
|
||||
//
|
||||
// Sets the teleport fog(s) for the calling actor.
|
||||
// Takes a name of the classes for te source and destination.
|
||||
// Can set both at the same time. Use "" to retain the previous fog without
|
||||
// changing it.
|
||||
// Takes a name of the classes for the source and destination.
|
||||
//===========================================================================
|
||||
|
||||
DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_SetTeleFog)
|
||||
{
|
||||
PARAM_ACTION_PROLOGUE;
|
||||
PARAM_NAME(oldpos);
|
||||
PARAM_NAME(newpos);
|
||||
|
||||
PClassActor *check = PClass::FindActor(oldpos);
|
||||
if (check == NULL || !stricmp(oldpos, "none") || !stricmp(oldpos, "null"))
|
||||
self->TeleFogSourceType = NULL;
|
||||
else if (!stricmp(oldpos, ""))
|
||||
{ //Don't change it if it's just ""
|
||||
}
|
||||
else
|
||||
{
|
||||
self->TeleFogSourceType = check;
|
||||
}
|
||||
|
||||
check = PClass::FindActor(newpos);
|
||||
if (check == NULL || !stricmp(newpos, "none") || !stricmp(newpos, "null"))
|
||||
self->TeleFogDestType = NULL;
|
||||
else if (!stricmp(newpos, ""))
|
||||
{ //Don't change it if it's just ""
|
||||
}
|
||||
else
|
||||
{
|
||||
self->TeleFogDestType = check;
|
||||
}
|
||||
PARAM_CLASS(oldpos, AActor);
|
||||
PARAM_CLASS(newpos, AActor);
|
||||
|
||||
self->TeleFogSourceType = oldpos;
|
||||
self->TeleFogDestType = newpos;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -1459,14 +1459,8 @@ DEFINE_PROPERTY(stamina, I, Actor)
|
|||
DEFINE_PROPERTY(telefogsourcetype, S, Actor)
|
||||
{
|
||||
PROP_STRING_PARM(str, 0);
|
||||
if (!stricmp(str, "") || (!stricmp(str, "none")) || (!stricmp(str, "null")) || *str == 0)
|
||||
{
|
||||
defaults->TeleFogSourceType = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
defaults->TeleFogSourceType = FindClassTentative(str, PClass::FindClass("TeleportFog"));
|
||||
}
|
||||
if (!stricmp(str, "") || !stricmp(str, "none")) defaults->TeleFogSourceType = NULL;
|
||||
else defaults->TeleFogSourceType = FindClassTentative(str, RUNTIME_CLASS(AActor));
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
|
@ -1475,14 +1469,8 @@ DEFINE_PROPERTY(telefogsourcetype, S, Actor)
|
|||
DEFINE_PROPERTY(telefogdesttype, S, Actor)
|
||||
{
|
||||
PROP_STRING_PARM(str, 0);
|
||||
if (!stricmp(str, "") || (!stricmp(str, "none")) || (!stricmp(str, "null")) || *str == 0)
|
||||
{
|
||||
defaults->TeleFogDestType = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
defaults->TeleFogDestType = FindClassTentative(str, PClass::FindClass("TeleportFog"));
|
||||
}
|
||||
if (!stricmp(str, "") || !stricmp(str, "none")) defaults->TeleFogDestType = NULL;
|
||||
else defaults->TeleFogDestType = FindClassTentative(str, RUNTIME_CLASS(AActor));
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
|
|
|
@ -1245,7 +1245,7 @@ void DFrameBuffer::GetHitlist(BYTE *hitlist)
|
|||
FTextureID pic = frame->Texture[k];
|
||||
if (pic.isValid())
|
||||
{
|
||||
hitlist[pic.GetIndex()] = 1;
|
||||
hitlist[pic.GetIndex()] = FTextureManager::HIT_Sprite;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1257,14 +1257,14 @@ void DFrameBuffer::GetHitlist(BYTE *hitlist)
|
|||
for (i = numsectors - 1; i >= 0; i--)
|
||||
{
|
||||
hitlist[sectors[i].GetTexture(sector_t::floor).GetIndex()] =
|
||||
hitlist[sectors[i].GetTexture(sector_t::ceiling).GetIndex()] |= 2;
|
||||
hitlist[sectors[i].GetTexture(sector_t::ceiling).GetIndex()] |= FTextureManager::HIT_Flat;
|
||||
}
|
||||
|
||||
for (i = numsides - 1; i >= 0; i--)
|
||||
{
|
||||
hitlist[sides[i].GetTexture(side_t::top).GetIndex()] =
|
||||
hitlist[sides[i].GetTexture(side_t::mid).GetIndex()] =
|
||||
hitlist[sides[i].GetTexture(side_t::bottom).GetIndex()] |= 1;
|
||||
hitlist[sides[i].GetTexture(side_t::bottom).GetIndex()] |= FTextureManager::HIT_Wall;
|
||||
}
|
||||
|
||||
// Sky texture is always present.
|
||||
|
@ -1276,11 +1276,11 @@ void DFrameBuffer::GetHitlist(BYTE *hitlist)
|
|||
|
||||
if (sky1texture.isValid())
|
||||
{
|
||||
hitlist[sky1texture.GetIndex()] |= 1;
|
||||
hitlist[sky1texture.GetIndex()] |= FTextureManager::HIT_Sky;
|
||||
}
|
||||
if (sky2texture.isValid())
|
||||
{
|
||||
hitlist[sky2texture.GetIndex()] |= 1;
|
||||
hitlist[sky2texture.GetIndex()] |= FTextureManager::HIT_Sky;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -88,13 +88,14 @@ const char *GetVersionString();
|
|||
|
||||
// More stuff that needs to be different for derivatives.
|
||||
#define GAMENAME "ZDoom"
|
||||
#define GAMENAMELOWERCASE "zdoom"
|
||||
#define FORUM_URL "http://forum.zdoom.org"
|
||||
#define BUGS_FORUM_URL "http://forum.zdoom.org/index.php?c=3"
|
||||
|
||||
#if defined(__APPLE__) || defined(_WIN32)
|
||||
#define GAME_DIR GAMENAME
|
||||
#else
|
||||
#define GAME_DIR ".config/zdoom"
|
||||
#define GAME_DIR ".config/" GAMENAMELOWERCASE
|
||||
#endif
|
||||
|
||||
|
||||
|
|
|
@ -1288,20 +1288,3 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE nothing, LPSTR cmdline, int n
|
|||
MainThread = INVALID_HANDLE_VALUE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
// CCMD crashout
|
||||
//
|
||||
// Debugging routine for testing the crash logger.
|
||||
// Useless in a debug build, because that doesn't enable the crash logger.
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
#ifndef _DEBUG
|
||||
#include "c_dispatch.h"
|
||||
CCMD (crashout)
|
||||
{
|
||||
*(int *)0 = 0;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -293,7 +293,7 @@ ACTOR Actor native //: Thinker
|
|||
action native A_GiveToSiblings(class<Inventory> itemtype, int amount = 0);
|
||||
action native A_TakeFromChildren(class<Inventory> itemtype, int amount = 0);
|
||||
action native A_TakeFromSiblings(class<Inventory> itemtype, int amount = 0);
|
||||
action native A_SetTeleFog(name oldpos, name newpos);
|
||||
action native A_SetTeleFog(class<Actor> oldpos, class<Actor> newpos);
|
||||
action native A_SwapTeleFog();
|
||||
action native A_SetFloatBobPhase(int bob);
|
||||
action native A_SetHealth(int health, int ptr = AAPTR_DEFAULT);
|
||||
|
|
|
@ -2,13 +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"
|
||||
|
@ -23,13 +23,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"
|
||||
|
@ -44,13 +44,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"
|
||||
|
@ -65,13 +65,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
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
|
||||
// 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
|
||||
|
@ -22,13 +22,13 @@ actor ChexCivilian3 : ShortRedTorch 57
|
|||
|
||||
// Landing Zone ---------------------------------------------------------------
|
||||
|
||||
actor ChexLandingLight : Column 2028
|
||||
actor ChexLandingLight : Column
|
||||
{
|
||||
game Chex
|
||||
height 35
|
||||
}
|
||||
|
||||
actor ChexSpaceship : TechPillar 48
|
||||
actor ChexSpaceship : TechPillar
|
||||
{
|
||||
game Chex
|
||||
height 52
|
||||
|
@ -36,37 +36,37 @@ actor ChexSpaceship : TechPillar 48
|
|||
|
||||
// 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
|
||||
|
@ -74,7 +74,7 @@ actor ChexTallFlower2 : DeadStick 25
|
|||
|
||||
// Slime Fountain -------------------------------------------------------------
|
||||
|
||||
actor ChexSlimeFountain : BlueTorch 44
|
||||
actor ChexSlimeFountain : BlueTorch
|
||||
{
|
||||
game Chex
|
||||
height 48
|
||||
|
@ -88,13 +88,13 @@ 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
|
||||
|
@ -102,38 +102,38 @@ actor ChexCavernStalagmite : TallGreenColumn 30
|
|||
|
||||
// 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,26 +3,26 @@
|
|||
|
||||
// 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"
|
||||
|
@ -30,19 +30,19 @@ actor SuperchargeBreakfast : Soulsphere 2013
|
|||
|
||||
// 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"
|
||||
|
@ -50,19 +50,19 @@ actor SuperChexArmor : BlueArmor 2019
|
|||
|
||||
// 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,18 +1,18 @@
|
|||
// 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,7 +5,7 @@
|
|||
//
|
||||
//===========================================================================
|
||||
|
||||
actor FlemoidusCommonus : ZombieMan 3004
|
||||
actor FlemoidusCommonus : ZombieMan
|
||||
{
|
||||
Game Chex
|
||||
DropItem ""
|
||||
|
@ -25,7 +25,7 @@ actor FlemoidusCommonus : ZombieMan 3004
|
|||
//
|
||||
//===========================================================================
|
||||
|
||||
actor FlemoidusBipedicus : ShotgunGuy 9
|
||||
actor FlemoidusBipedicus : ShotgunGuy
|
||||
{
|
||||
Game Chex
|
||||
DropItem ""
|
||||
|
@ -45,7 +45,7 @@ actor FlemoidusBipedicus : ShotgunGuy 9
|
|||
//
|
||||
//===========================================================================
|
||||
|
||||
actor ArmoredFlemoidusBipedicus : DoomImp 3001
|
||||
actor ArmoredFlemoidusBipedicus : DoomImp
|
||||
{
|
||||
Game Chex
|
||||
Obituary "$OB_BIPEDICUS2"
|
||||
|
@ -58,7 +58,7 @@ actor ArmoredFlemoidusBipedicus : DoomImp 3001
|
|||
//
|
||||
//===========================================================================
|
||||
|
||||
actor FlemoidusCycloptisCommonus : Demon 3002
|
||||
actor FlemoidusCycloptisCommonus : Demon
|
||||
{
|
||||
Game Chex
|
||||
Obituary "$OB_CYCLOPTIS"
|
||||
|
@ -70,7 +70,7 @@ actor FlemoidusCycloptisCommonus : Demon 3002
|
|||
//
|
||||
//===========================================================================
|
||||
|
||||
actor Flembrane : BaronOfHell 3003
|
||||
actor Flembrane : BaronOfHell
|
||||
{
|
||||
Game Chex
|
||||
radius 44
|
||||
|
@ -88,7 +88,7 @@ actor Flembrane : BaronOfHell 3003
|
|||
|
||||
//===========================================================================
|
||||
|
||||
actor ChexSoul : LostSoul 3006
|
||||
actor ChexSoul : LostSoul
|
||||
{
|
||||
Game Chex
|
||||
height 0
|
||||
|
|
|
@ -7,7 +7,7 @@ actor Bootspoon : Fist
|
|||
Tag "$TAG_SPOON"
|
||||
}
|
||||
|
||||
actor SuperBootspork : Chainsaw 2005
|
||||
actor SuperBootspork : Chainsaw
|
||||
{
|
||||
game Chex
|
||||
obituary "$OB_MPBOOTSPORK"
|
||||
|
@ -28,7 +28,7 @@ actor MiniZorcher : Pistol
|
|||
}
|
||||
}
|
||||
|
||||
actor LargeZorcher : Shotgun 2001
|
||||
actor LargeZorcher : Shotgun
|
||||
{
|
||||
game Chex
|
||||
obituary "$OB_MPZORCH"
|
||||
|
@ -36,7 +36,7 @@ actor LargeZorcher : Shotgun 2001
|
|||
Tag "$TAG_LARGEZORCHER"
|
||||
}
|
||||
|
||||
actor SuperLargeZorcher : SuperShotgun 82
|
||||
actor SuperLargeZorcher : SuperShotgun
|
||||
{
|
||||
game Chex
|
||||
obituary "$OB_MPMEGAZORCH"
|
||||
|
@ -44,7 +44,7 @@ actor SuperLargeZorcher : SuperShotgun 82
|
|||
Tag "$TAG_SUPERLARGEZORCHER"
|
||||
}
|
||||
|
||||
actor RapidZorcher : Chaingun 2002
|
||||
actor RapidZorcher : Chaingun
|
||||
{
|
||||
game Chex
|
||||
obituary "$OB_MPRAPIDZORCH"
|
||||
|
@ -52,7 +52,7 @@ actor RapidZorcher : Chaingun 2002
|
|||
Tag "$TAG_RAPIDZORCHER"
|
||||
}
|
||||
|
||||
actor ZorchPropulsor : RocketLauncher 2003
|
||||
actor ZorchPropulsor : RocketLauncher
|
||||
{
|
||||
game Chex
|
||||
obituary ""
|
||||
|
@ -77,7 +77,7 @@ actor PropulsorMissile : Rocket
|
|||
Alpha 0.75
|
||||
}
|
||||
|
||||
actor PhasingZorcher : PlasmaRifle 2004
|
||||
actor PhasingZorcher : PlasmaRifle
|
||||
{
|
||||
game Chex
|
||||
obituary ""
|
||||
|
@ -107,7 +107,7 @@ actor PhaseZorchMissile : PlasmaBall
|
|||
Alpha 0.75
|
||||
}
|
||||
|
||||
actor LAZDevice : BFG9000 2006
|
||||
actor LAZDevice : BFG9000
|
||||
{
|
||||
game Chex
|
||||
obituary ""
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
// Arachnotron
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR Arachnotron 68
|
||||
ACTOR Arachnotron
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 6
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
//
|
||||
//===========================================================================
|
||||
|
||||
ACTOR Archvile 64
|
||||
ACTOR Archvile
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 111
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
//
|
||||
//===========================================================================
|
||||
|
||||
ACTOR BossBrain 88
|
||||
ACTOR BossBrain
|
||||
{
|
||||
Game Doom
|
||||
Health 250
|
||||
|
@ -43,7 +43,7 @@ ACTOR BossBrain 88
|
|||
//
|
||||
//===========================================================================
|
||||
|
||||
ACTOR BossEye 89
|
||||
ACTOR BossEye
|
||||
{
|
||||
Game Doom
|
||||
Height 32
|
||||
|
@ -67,7 +67,7 @@ ACTOR BossEye 89
|
|||
//
|
||||
//===========================================================================
|
||||
|
||||
ACTOR BossTarget : SpecialSpot 87
|
||||
ACTOR BossTarget : SpecialSpot
|
||||
{
|
||||
Game Doom
|
||||
Height 32
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
// Baron of Hell
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR BaronOfHell 3003
|
||||
ACTOR BaronOfHell
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 3
|
||||
|
@ -59,7 +59,7 @@ ACTOR BaronOfHell 3003
|
|||
// Hell Knight
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR HellKnight : BaronOfHell 69
|
||||
ACTOR HellKnight : BaronOfHell
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 113
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
// Cacodemon
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR Cacodemon 3005
|
||||
ACTOR Cacodemon
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 19
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
// Cyberdemon
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR Cyberdemon 16
|
||||
ACTOR Cyberdemon
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 114
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Gibbed marine -----------------------------------------------------------
|
||||
|
||||
actor GibbedMarine 10
|
||||
actor GibbedMarine
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 145
|
||||
|
@ -14,14 +14,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
|
||||
|
@ -39,7 +39,7 @@ actor DeadMarine 15
|
|||
|
||||
// Dead zombie man ---------------------------------------------------------
|
||||
|
||||
actor DeadZombieMan : ZombieMan 18
|
||||
actor DeadZombieMan : ZombieMan
|
||||
{
|
||||
Skip_Super
|
||||
Game Doom
|
||||
|
@ -53,7 +53,7 @@ actor DeadZombieMan : ZombieMan 18
|
|||
|
||||
// Dead shotgun guy --------------------------------------------------------
|
||||
|
||||
actor DeadShotgunGuy : ShotgunGuy 19
|
||||
actor DeadShotgunGuy : ShotgunGuy
|
||||
{
|
||||
Skip_Super
|
||||
Game Doom
|
||||
|
@ -67,7 +67,7 @@ actor DeadShotgunGuy : ShotgunGuy 19
|
|||
|
||||
// Dead imp ----------------------------------------------------------------
|
||||
|
||||
actor DeadDoomImp : DoomImp 20
|
||||
actor DeadDoomImp : DoomImp
|
||||
{
|
||||
Skip_Super
|
||||
Game Doom
|
||||
|
@ -80,7 +80,7 @@ actor DeadDoomImp : DoomImp 20
|
|||
|
||||
// Dead demon --------------------------------------------------------------
|
||||
|
||||
actor DeadDemon : Demon 21
|
||||
actor DeadDemon : Demon
|
||||
{
|
||||
Skip_Super
|
||||
Game Doom
|
||||
|
@ -93,7 +93,7 @@ actor DeadDemon : Demon 21
|
|||
|
||||
// Dead cacodemon ----------------------------------------------------------
|
||||
|
||||
actor DeadCacodemon : Cacodemon 22
|
||||
actor DeadCacodemon : Cacodemon
|
||||
{
|
||||
Skip_Super
|
||||
Game Doom
|
||||
|
@ -112,7 +112,7 @@ actor DeadCacodemon : Cacodemon 22
|
|||
* a holdover from that.)
|
||||
*/
|
||||
|
||||
actor DeadLostSoul : LostSoul 23
|
||||
actor DeadLostSoul : LostSoul
|
||||
{
|
||||
Skip_Super
|
||||
Game Doom
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
// Pink Demon
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR Demon 3002
|
||||
ACTOR Demon
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 8
|
||||
|
@ -57,7 +57,7 @@ ACTOR Demon 3002
|
|||
// Spectre
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR Spectre : Demon 58
|
||||
ACTOR Spectre : Demon
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 9
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Clip --------------------------------------------------------------------
|
||||
|
||||
ACTOR Clip : Ammo 2007
|
||||
ACTOR Clip : Ammo
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 11
|
||||
|
@ -20,7 +20,7 @@ ACTOR Clip : Ammo 2007
|
|||
|
||||
// Clip box ----------------------------------------------------------------
|
||||
|
||||
ACTOR ClipBox : Clip 2048
|
||||
ACTOR ClipBox : Clip
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 139
|
||||
|
@ -36,7 +36,7 @@ ACTOR ClipBox : Clip 2048
|
|||
|
||||
// Rocket ------------------------------------------------------------------
|
||||
|
||||
ACTOR RocketAmmo : Ammo 2010
|
||||
ACTOR RocketAmmo : Ammo
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 140
|
||||
|
@ -56,7 +56,7 @@ ACTOR RocketAmmo : Ammo 2010
|
|||
|
||||
// Rocket box --------------------------------------------------------------
|
||||
|
||||
ACTOR RocketBox : RocketAmmo 2046
|
||||
ACTOR RocketBox : RocketAmmo
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 141
|
||||
|
@ -72,7 +72,7 @@ ACTOR RocketBox : RocketAmmo 2046
|
|||
|
||||
// Cell --------------------------------------------------------------------
|
||||
|
||||
ACTOR Cell : Ammo 2047
|
||||
ACTOR Cell : Ammo
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 75
|
||||
|
@ -92,7 +92,7 @@ ACTOR Cell : Ammo 2047
|
|||
|
||||
// Cell pack ---------------------------------------------------------------
|
||||
|
||||
ACTOR CellPack : Cell 17
|
||||
ACTOR CellPack : Cell
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 142
|
||||
|
@ -108,7 +108,7 @@ ACTOR CellPack : Cell 17
|
|||
|
||||
// Shells ------------------------------------------------------------------
|
||||
|
||||
ACTOR Shell : Ammo 2008
|
||||
ACTOR Shell : Ammo
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 12
|
||||
|
@ -128,7 +128,7 @@ ACTOR Shell : Ammo 2008
|
|||
|
||||
// Shell box ---------------------------------------------------------------
|
||||
|
||||
ACTOR ShellBox : Shell 2049
|
||||
ACTOR ShellBox : Shell
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 143
|
||||
|
@ -144,7 +144,7 @@ ACTOR ShellBox : Shell 2049
|
|||
|
||||
// Backpack ---------------------------------------------------------------
|
||||
|
||||
ACTOR Backpack : BackpackItem 8
|
||||
ACTOR Backpack : BackpackItem
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 144
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
// Armor bonus --------------------------------------------------------------
|
||||
|
||||
Actor ArmorBonus : BasicArmorBonus 2015
|
||||
Actor ArmorBonus : BasicArmorBonus
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 22
|
||||
|
@ -24,7 +24,7 @@ Actor ArmorBonus : BasicArmorBonus 2015
|
|||
|
||||
// Green armor --------------------------------------------------------------
|
||||
|
||||
Actor GreenArmor : BasicArmorPickup 2018
|
||||
Actor GreenArmor : BasicArmorPickup
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 68
|
||||
|
@ -45,7 +45,7 @@ Actor GreenArmor : BasicArmorPickup 2018
|
|||
|
||||
// Blue armor ---------------------------------------------------------------
|
||||
|
||||
Actor BlueArmor : BasicArmorPickup 2019
|
||||
Actor BlueArmor : BasicArmorPickup
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 69
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Invulnerability Sphere ---------------------------------------------------
|
||||
|
||||
ACTOR InvulnerabilitySphere : PowerupGiver 2022
|
||||
ACTOR InvulnerabilitySphere : PowerupGiver
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 133
|
||||
|
@ -22,7 +22,7 @@ ACTOR InvulnerabilitySphere : PowerupGiver 2022
|
|||
|
||||
// Soulsphere --------------------------------------------------------------
|
||||
|
||||
ACTOR Soulsphere : Health 2013
|
||||
ACTOR Soulsphere : Health
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 25
|
||||
|
@ -58,7 +58,7 @@ actor BlueArmorForMegasphere : BlueArmor
|
|||
Armor.SaveAmount 200
|
||||
}
|
||||
|
||||
ACTOR Megasphere : CustomInventory 83
|
||||
ACTOR Megasphere : CustomInventory
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 132
|
||||
|
@ -80,7 +80,7 @@ ACTOR Megasphere : CustomInventory 83
|
|||
|
||||
// Invisibility -------------------------------------------------------------
|
||||
|
||||
ACTOR BlurSphere : PowerupGiver 2024
|
||||
ACTOR BlurSphere : PowerupGiver
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 135
|
||||
|
@ -103,7 +103,7 @@ ACTOR BlurSphere : PowerupGiver 2024
|
|||
|
||||
// Radiation suit (aka iron feet) -------------------------------------------
|
||||
|
||||
ACTOR RadSuit : PowerupGiver 2025
|
||||
ACTOR RadSuit : PowerupGiver
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 136
|
||||
|
@ -123,7 +123,7 @@ ACTOR RadSuit : PowerupGiver 2025
|
|||
|
||||
// infrared -----------------------------------------------------------------
|
||||
|
||||
ACTOR Infrared : PowerupGiver 2045
|
||||
ACTOR Infrared : PowerupGiver
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 138
|
||||
|
@ -144,7 +144,7 @@ ACTOR Infrared : PowerupGiver 2045
|
|||
|
||||
// Allmap -------------------------------------------------------------------
|
||||
|
||||
ACTOR Allmap : MapRevealer 2026
|
||||
ACTOR Allmap : MapRevealer
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 137
|
||||
|
@ -164,7 +164,7 @@ ACTOR Allmap : MapRevealer 2026
|
|||
|
||||
// Berserk ------------------------------------------------------------------
|
||||
|
||||
ACTOR Berserk : CustomInventory 2023
|
||||
ACTOR Berserk : CustomInventory
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 134
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
// Tech lamp ---------------------------------------------------------------
|
||||
|
||||
ACTOR TechLamp 85
|
||||
ACTOR TechLamp
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -18,7 +18,7 @@ ACTOR TechLamp 85
|
|||
|
||||
// Tech lamp 2 -------------------------------------------------------------
|
||||
|
||||
ACTOR TechLamp2 86
|
||||
ACTOR TechLamp2
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -35,7 +35,7 @@ ACTOR TechLamp2 86
|
|||
|
||||
// Column ------------------------------------------------------------------
|
||||
|
||||
ACTOR Column 2028
|
||||
ACTOR Column
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -52,7 +52,7 @@ ACTOR Column 2028
|
|||
|
||||
// Tall green column -------------------------------------------------------
|
||||
|
||||
ACTOR TallGreenColumn 30
|
||||
ACTOR TallGreenColumn
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -69,7 +69,7 @@ ACTOR TallGreenColumn 30
|
|||
|
||||
// Short green column ------------------------------------------------------
|
||||
|
||||
ACTOR ShortGreenColumn 31
|
||||
ACTOR ShortGreenColumn
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -86,7 +86,7 @@ ACTOR ShortGreenColumn 31
|
|||
|
||||
// Tall red column ---------------------------------------------------------
|
||||
|
||||
ACTOR TallRedColumn 32
|
||||
ACTOR TallRedColumn
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -103,7 +103,7 @@ ACTOR TallRedColumn 32
|
|||
|
||||
// Short red column --------------------------------------------------------
|
||||
|
||||
ACTOR ShortRedColumn 33
|
||||
ACTOR ShortRedColumn
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -120,7 +120,7 @@ ACTOR ShortRedColumn 33
|
|||
|
||||
// Skull column ------------------------------------------------------------
|
||||
|
||||
ACTOR SkullColumn 37
|
||||
ACTOR SkullColumn
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -137,7 +137,7 @@ ACTOR SkullColumn 37
|
|||
|
||||
// Heart column ------------------------------------------------------------
|
||||
|
||||
ACTOR HeartColumn 36
|
||||
ACTOR HeartColumn
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -154,7 +154,7 @@ ACTOR HeartColumn 36
|
|||
|
||||
// Evil eye ----------------------------------------------------------------
|
||||
|
||||
ACTOR EvilEye 41
|
||||
ACTOR EvilEye
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -171,7 +171,7 @@ ACTOR EvilEye 41
|
|||
|
||||
// Floating skull ----------------------------------------------------------
|
||||
|
||||
ACTOR FloatingSkull 42
|
||||
ACTOR FloatingSkull
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -188,7 +188,7 @@ ACTOR FloatingSkull 42
|
|||
|
||||
// Torch tree --------------------------------------------------------------
|
||||
|
||||
ACTOR TorchTree 43
|
||||
ACTOR TorchTree
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -205,7 +205,7 @@ ACTOR TorchTree 43
|
|||
|
||||
// Blue torch --------------------------------------------------------------
|
||||
|
||||
ACTOR BlueTorch 44
|
||||
ACTOR BlueTorch
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -222,7 +222,7 @@ ACTOR BlueTorch 44
|
|||
|
||||
// Green torch -------------------------------------------------------------
|
||||
|
||||
ACTOR GreenTorch 45
|
||||
ACTOR GreenTorch
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -239,7 +239,7 @@ ACTOR GreenTorch 45
|
|||
|
||||
// Red torch ---------------------------------------------------------------
|
||||
|
||||
ACTOR RedTorch 46
|
||||
ACTOR RedTorch
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -256,7 +256,7 @@ ACTOR RedTorch 46
|
|||
|
||||
// Short blue torch --------------------------------------------------------
|
||||
|
||||
ACTOR ShortBlueTorch 55
|
||||
ACTOR ShortBlueTorch
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -273,7 +273,7 @@ ACTOR ShortBlueTorch 55
|
|||
|
||||
// Short green torch -------------------------------------------------------
|
||||
|
||||
ACTOR ShortGreenTorch 56
|
||||
ACTOR ShortGreenTorch
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -290,7 +290,7 @@ ACTOR ShortGreenTorch 56
|
|||
|
||||
// Short red torch ---------------------------------------------------------
|
||||
|
||||
ACTOR ShortRedTorch 57
|
||||
ACTOR ShortRedTorch
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -307,7 +307,7 @@ ACTOR ShortRedTorch 57
|
|||
|
||||
// Stalagtite --------------------------------------------------------------
|
||||
|
||||
ACTOR Stalagtite 47
|
||||
ACTOR Stalagtite
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -324,7 +324,7 @@ ACTOR Stalagtite 47
|
|||
|
||||
// Tech pillar -------------------------------------------------------------
|
||||
|
||||
ACTOR TechPillar 48
|
||||
ACTOR TechPillar
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -341,7 +341,7 @@ ACTOR TechPillar 48
|
|||
|
||||
// Candle stick ------------------------------------------------------------
|
||||
|
||||
ACTOR Candlestick 34
|
||||
ACTOR Candlestick
|
||||
{
|
||||
Game Doom
|
||||
Radius 20
|
||||
|
@ -357,7 +357,7 @@ ACTOR Candlestick 34
|
|||
|
||||
// Candelabra --------------------------------------------------------------
|
||||
|
||||
ACTOR Candelabra 35
|
||||
ACTOR Candelabra
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -374,7 +374,7 @@ ACTOR Candelabra 35
|
|||
|
||||
// Bloody twitch -----------------------------------------------------------
|
||||
|
||||
ACTOR BloodyTwitch 49
|
||||
ACTOR BloodyTwitch
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -395,7 +395,7 @@ ACTOR BloodyTwitch 49
|
|||
|
||||
// Meat 2 ------------------------------------------------------------------
|
||||
|
||||
ACTOR Meat2 50
|
||||
ACTOR Meat2
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -413,7 +413,7 @@ ACTOR Meat2 50
|
|||
|
||||
// Meat 3 ------------------------------------------------------------------
|
||||
|
||||
ACTOR Meat3 51
|
||||
ACTOR Meat3
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -431,7 +431,7 @@ ACTOR Meat3 51
|
|||
|
||||
// Meat 4 ------------------------------------------------------------------
|
||||
|
||||
ACTOR Meat4 52
|
||||
ACTOR Meat4
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -449,7 +449,7 @@ ACTOR Meat4 52
|
|||
|
||||
// Meat 5 ------------------------------------------------------------------
|
||||
|
||||
ACTOR Meat5 53
|
||||
ACTOR Meat5
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -467,28 +467,28 @@ 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
|
||||
|
@ -497,7 +497,7 @@ ACTOR NonsolidMeat5 : Meat5 62
|
|||
|
||||
// Nonsolid bloody twitch --------------------------------------------------
|
||||
|
||||
ACTOR NonsolidTwitch : BloodyTwitch 63
|
||||
ACTOR NonsolidTwitch : BloodyTwitch
|
||||
{
|
||||
Game Doom
|
||||
-SOLID
|
||||
|
@ -506,7 +506,7 @@ ACTOR NonsolidTwitch : BloodyTwitch 63
|
|||
|
||||
// Head on a stick ---------------------------------------------------------
|
||||
|
||||
ACTOR HeadOnAStick 27
|
||||
ACTOR HeadOnAStick
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -523,7 +523,7 @@ ACTOR HeadOnAStick 27
|
|||
|
||||
// Heads (plural!) on a stick ----------------------------------------------
|
||||
|
||||
ACTOR HeadsOnAStick 28
|
||||
ACTOR HeadsOnAStick
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -540,7 +540,7 @@ ACTOR HeadsOnAStick 28
|
|||
|
||||
// Head candles ------------------------------------------------------------
|
||||
|
||||
ACTOR HeadCandles 29
|
||||
ACTOR HeadCandles
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -557,7 +557,7 @@ ACTOR HeadCandles 29
|
|||
|
||||
// Dead on a stick ---------------------------------------------------------
|
||||
|
||||
ACTOR DeadStick 25
|
||||
ACTOR DeadStick
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -574,7 +574,7 @@ ACTOR DeadStick 25
|
|||
|
||||
// Still alive on a stick --------------------------------------------------
|
||||
|
||||
ACTOR LiveStick 26
|
||||
ACTOR LiveStick
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -592,7 +592,7 @@ ACTOR LiveStick 26
|
|||
|
||||
// Big tree ----------------------------------------------------------------
|
||||
|
||||
ACTOR BigTree 54
|
||||
ACTOR BigTree
|
||||
{
|
||||
Game Doom
|
||||
Radius 32
|
||||
|
@ -609,7 +609,7 @@ ACTOR BigTree 54
|
|||
|
||||
// Burning barrel ----------------------------------------------------------
|
||||
|
||||
ACTOR BurningBarrel 70
|
||||
ACTOR BurningBarrel
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 149
|
||||
|
@ -627,7 +627,7 @@ ACTOR BurningBarrel 70
|
|||
|
||||
// Hanging with no guts ----------------------------------------------------
|
||||
|
||||
ACTOR HangNoGuts 73
|
||||
ACTOR HangNoGuts
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -645,7 +645,7 @@ ACTOR HangNoGuts 73
|
|||
|
||||
// Hanging from bottom with no brain ---------------------------------------
|
||||
|
||||
ACTOR HangBNoBrain 74
|
||||
ACTOR HangBNoBrain
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -663,7 +663,7 @@ ACTOR HangBNoBrain 74
|
|||
|
||||
// Hanging from top, looking down ------------------------------------------
|
||||
|
||||
ACTOR HangTLookingDown 75
|
||||
ACTOR HangTLookingDown
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -681,7 +681,7 @@ ACTOR HangTLookingDown 75
|
|||
|
||||
// Hanging from top, looking up --------------------------------------------
|
||||
|
||||
ACTOR HangTLookingUp 77
|
||||
ACTOR HangTLookingUp
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -699,7 +699,7 @@ ACTOR HangTLookingUp 77
|
|||
|
||||
// Hanging from top, skully ------------------------------------------------
|
||||
|
||||
ACTOR HangTSkull 76
|
||||
ACTOR HangTSkull
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -717,7 +717,7 @@ ACTOR HangTSkull 76
|
|||
|
||||
// Hanging from top without a brain ----------------------------------------
|
||||
|
||||
ACTOR HangTNoBrain 78
|
||||
ACTOR HangTNoBrain
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
@ -735,7 +735,7 @@ ACTOR HangTNoBrain 78
|
|||
|
||||
// Colon gibs --------------------------------------------------------------
|
||||
|
||||
ACTOR ColonGibs 79
|
||||
ACTOR ColonGibs
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 147
|
||||
|
@ -753,7 +753,7 @@ ACTOR ColonGibs 79
|
|||
|
||||
// Small pool o' blood -----------------------------------------------------
|
||||
|
||||
ACTOR SmallBloodPool 80
|
||||
ACTOR SmallBloodPool
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 148
|
||||
|
@ -771,7 +771,7 @@ ACTOR SmallBloodPool 80
|
|||
|
||||
// brain stem lying on the ground ------------------------------------------
|
||||
|
||||
ACTOR BrainStem 81
|
||||
ACTOR BrainStem
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 150
|
||||
|
@ -790,7 +790,7 @@ ACTOR BrainStem 81
|
|||
|
||||
// Grey stalagmite (unused Doom sprite, definition taken from Skulltag -----
|
||||
|
||||
ACTOR Stalagmite 5050
|
||||
ACTOR Stalagmite
|
||||
{
|
||||
Game Doom
|
||||
Radius 16
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Health bonus -------------------------------------------------------------
|
||||
|
||||
ACTOR HealthBonus : Health 2014
|
||||
ACTOR HealthBonus : Health
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 152
|
||||
|
@ -19,7 +19,7 @@ ACTOR HealthBonus : Health 2014
|
|||
|
||||
// Stimpack -----------------------------------------------------------------
|
||||
|
||||
ACTOR Stimpack : Health 2011
|
||||
ACTOR Stimpack : Health
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 23
|
||||
|
@ -35,7 +35,7 @@ ACTOR Stimpack : Health 2011
|
|||
|
||||
// Medikit -----------------------------------------------------------------
|
||||
|
||||
ACTOR Medikit : Health 2012
|
||||
ACTOR Medikit : Health
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 24
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
// Imp
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR DoomImp 3001
|
||||
ACTOR DoomImp
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 5
|
||||
|
|
|
@ -8,7 +8,7 @@ Actor DoomKey : Key
|
|||
|
||||
// Blue key card ------------------------------------------------------------
|
||||
|
||||
Actor BlueCard : DoomKey 5
|
||||
Actor BlueCard : DoomKey
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 85
|
||||
|
@ -25,7 +25,7 @@ Actor BlueCard : DoomKey 5
|
|||
|
||||
// Yellow key card ----------------------------------------------------------
|
||||
|
||||
Actor YellowCard : DoomKey 6
|
||||
Actor YellowCard : DoomKey
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 87
|
||||
|
@ -42,7 +42,7 @@ Actor YellowCard : DoomKey 6
|
|||
|
||||
// Red key card -------------------------------------------------------------
|
||||
|
||||
Actor RedCard : DoomKey 13
|
||||
Actor RedCard : DoomKey
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 86
|
||||
|
@ -59,7 +59,7 @@ Actor RedCard : DoomKey 13
|
|||
|
||||
// Blue skull key -----------------------------------------------------------
|
||||
|
||||
Actor BlueSkull : DoomKey 40
|
||||
Actor BlueSkull : DoomKey
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 90
|
||||
|
@ -76,7 +76,7 @@ Actor BlueSkull : DoomKey 40
|
|||
|
||||
// Yellow skull key ---------------------------------------------------------
|
||||
|
||||
Actor YellowSkull : DoomKey 39
|
||||
Actor YellowSkull : DoomKey
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 88
|
||||
|
@ -93,7 +93,7 @@ Actor YellowSkull : DoomKey 39
|
|||
|
||||
// Red skull key ------------------------------------------------------------
|
||||
|
||||
Actor RedSkull : DoomKey 38
|
||||
Actor RedSkull : DoomKey
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 89
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// The barrel of green goop ------------------------------------------------
|
||||
|
||||
ACTOR ExplosiveBarrel 2035
|
||||
ACTOR ExplosiveBarrel
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 125
|
||||
|
@ -85,7 +85,7 @@ ACTOR DoomUnusedStates
|
|||
|
||||
// MBF Beta emulation items
|
||||
|
||||
Actor EvilSceptre : ScoreItem 2016
|
||||
Actor EvilSceptre : ScoreItem
|
||||
{
|
||||
Game Doom
|
||||
Inventory.PickupMessage "$BETA_BONUS3"
|
||||
|
@ -97,7 +97,7 @@ Actor EvilSceptre : ScoreItem 2016
|
|||
}
|
||||
}
|
||||
|
||||
Actor UnholyBible : ScoreItem 2017
|
||||
Actor UnholyBible : ScoreItem
|
||||
{
|
||||
Game Doom
|
||||
Inventory.PickupMessage "$BETA_BONUS4"
|
||||
|
|
|
@ -52,7 +52,7 @@ ACTOR Fist : Weapon
|
|||
//
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
ACTOR Pistol : DoomWeapon 5010
|
||||
ACTOR Pistol : DoomWeapon
|
||||
{
|
||||
Game Doom
|
||||
Weapon.SelectionOrder 1900
|
||||
|
@ -97,7 +97,7 @@ ACTOR Pistol : DoomWeapon 5010
|
|||
//
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
ACTOR Chainsaw : Weapon 2005
|
||||
ACTOR Chainsaw : Weapon
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 32
|
||||
|
@ -137,7 +137,7 @@ ACTOR Chainsaw : Weapon 2005
|
|||
//
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
ACTOR Shotgun : DoomWeapon 2001
|
||||
ACTOR Shotgun : DoomWeapon
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 27
|
||||
|
@ -184,7 +184,7 @@ ACTOR Shotgun : DoomWeapon 2001
|
|||
//
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
ACTOR SuperShotgun : DoomWeapon 82
|
||||
ACTOR SuperShotgun : DoomWeapon
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 33
|
||||
|
@ -238,7 +238,7 @@ ACTOR SuperShotgun : DoomWeapon 82
|
|||
//
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
ACTOR Chaingun : DoomWeapon 2002
|
||||
ACTOR Chaingun : DoomWeapon
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 28
|
||||
|
@ -281,7 +281,7 @@ ACTOR Chaingun : DoomWeapon 2002
|
|||
//
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
ACTOR RocketLauncher : DoomWeapon 2003
|
||||
ACTOR RocketLauncher : DoomWeapon
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 29
|
||||
|
@ -404,7 +404,7 @@ ACTOR Grenade
|
|||
//
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
ACTOR PlasmaRifle : DoomWeapon 2004
|
||||
ACTOR PlasmaRifle : DoomWeapon
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 30
|
||||
|
@ -508,7 +508,7 @@ ACTOR PlasmaBall2 : PlasmaBall1
|
|||
//
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
ACTOR BFG9000 : DoomWeapon 2006
|
||||
ACTOR BFG9000 : DoomWeapon
|
||||
{
|
||||
Game Doom
|
||||
Height 20
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
// Mancubus
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR Fatso 67
|
||||
ACTOR Fatso
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 112
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
// Commander Keen
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR CommanderKeen 72
|
||||
ACTOR CommanderKeen
|
||||
{
|
||||
Game Doom
|
||||
Health 100
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
// Lost Soul
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR LostSoul 3006
|
||||
ACTOR LostSoul
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 110
|
||||
|
@ -50,7 +50,7 @@ ACTOR LostSoul 3006
|
|||
}
|
||||
}
|
||||
|
||||
Actor BetaSkull : LostSoul 9037
|
||||
Actor BetaSkull : LostSoul
|
||||
{
|
||||
States
|
||||
{
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
// Pain Elemental
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR PainElemental 71
|
||||
ACTOR PainElemental
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 115
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
// Zombie man
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR ZombieMan 3004
|
||||
ACTOR ZombieMan
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 4
|
||||
|
@ -65,7 +65,7 @@ ACTOR ZombieMan 3004
|
|||
// Sergeant / Shotgun guy
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR ShotgunGuy 9
|
||||
ACTOR ShotgunGuy
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 1
|
||||
|
@ -127,7 +127,7 @@ ACTOR ShotgunGuy 9
|
|||
// Chaingunner
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR ChaingunGuy 65
|
||||
ACTOR ChaingunGuy
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 2
|
||||
|
@ -189,7 +189,7 @@ ACTOR ChaingunGuy 65
|
|||
// SS Nazi
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR WolfensteinSS 84
|
||||
ACTOR WolfensteinSS
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 116
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
// Revenant
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR Revenant 66
|
||||
ACTOR Revenant
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 20
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
// Scriptable marine -------------------------------------------------------
|
||||
|
||||
ACTOR ScriptedMarine 9100 native
|
||||
ACTOR ScriptedMarine native
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 151
|
||||
|
@ -172,7 +172,7 @@ ACTOR ScriptedMarine 9100 native
|
|||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
ACTOR MarineFist : ScriptedMarine 9101
|
||||
ACTOR MarineFist : ScriptedMarine
|
||||
{
|
||||
Game Doom
|
||||
States
|
||||
|
@ -187,7 +187,7 @@ ACTOR MarineFist : ScriptedMarine 9101
|
|||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
ACTOR MarineBerserk : MarineFist 9102
|
||||
ACTOR MarineBerserk : MarineFist
|
||||
{
|
||||
Game Doom
|
||||
States
|
||||
|
@ -200,7 +200,7 @@ ACTOR MarineBerserk : MarineFist 9102
|
|||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
ACTOR MarineChainsaw : ScriptedMarine 9103
|
||||
ACTOR MarineChainsaw : ScriptedMarine
|
||||
{
|
||||
Game Doom
|
||||
States
|
||||
|
@ -216,7 +216,7 @@ ACTOR MarineChainsaw : ScriptedMarine 9103
|
|||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
ACTOR MarinePistol : ScriptedMarine 9104
|
||||
ACTOR MarinePistol : ScriptedMarine
|
||||
{
|
||||
Game Doom
|
||||
States
|
||||
|
@ -229,7 +229,7 @@ ACTOR MarinePistol : ScriptedMarine 9104
|
|||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
ACTOR MarineShotgun : ScriptedMarine 9105
|
||||
ACTOR MarineShotgun : ScriptedMarine
|
||||
{
|
||||
Game Doom
|
||||
States
|
||||
|
@ -244,7 +244,7 @@ ACTOR MarineShotgun : ScriptedMarine 9105
|
|||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
ACTOR MarineSSG : ScriptedMarine 9106
|
||||
ACTOR MarineSSG : ScriptedMarine
|
||||
{
|
||||
Game Doom
|
||||
States
|
||||
|
@ -256,7 +256,7 @@ ACTOR MarineSSG : ScriptedMarine 9106
|
|||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
ACTOR MarineChaingun : ScriptedMarine 9107
|
||||
ACTOR MarineChaingun : ScriptedMarine
|
||||
{
|
||||
Game Doom
|
||||
States
|
||||
|
@ -269,7 +269,7 @@ ACTOR MarineChaingun : ScriptedMarine 9107
|
|||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
ACTOR MarineRocket : MarineFist 9108
|
||||
ACTOR MarineRocket : MarineFist
|
||||
{
|
||||
Game Doom
|
||||
States
|
||||
|
@ -282,7 +282,7 @@ ACTOR MarineRocket : MarineFist 9108
|
|||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
ACTOR MarinePlasma : ScriptedMarine 9109
|
||||
ACTOR MarinePlasma : ScriptedMarine
|
||||
{
|
||||
Game Doom
|
||||
States
|
||||
|
@ -295,7 +295,7 @@ ACTOR MarinePlasma : ScriptedMarine 9109
|
|||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
ACTOR MarineRailgun : ScriptedMarine 9110
|
||||
ACTOR MarineRailgun : ScriptedMarine
|
||||
{
|
||||
Game Doom
|
||||
States
|
||||
|
@ -308,7 +308,7 @@ ACTOR MarineRailgun : ScriptedMarine 9110
|
|||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
ACTOR MarineBFG : ScriptedMarine 9111
|
||||
ACTOR MarineBFG : ScriptedMarine
|
||||
{
|
||||
Game Doom
|
||||
States
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
// Spider boss
|
||||
//
|
||||
//===========================================================================
|
||||
ACTOR SpiderMastermind 7
|
||||
ACTOR SpiderMastermind
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 7
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
ACTOR StealthArachnotron : Arachnotron 9050
|
||||
ACTOR StealthArachnotron : Arachnotron
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 117
|
||||
|
@ -9,7 +9,7 @@ ACTOR StealthArachnotron : Arachnotron 9050
|
|||
Obituary "$OB_STEALTHBABY"
|
||||
}
|
||||
|
||||
ACTOR StealthArchvile : Archvile 9051
|
||||
ACTOR StealthArchvile : Archvile
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 118
|
||||
|
@ -19,7 +19,7 @@ ACTOR StealthArchvile : Archvile 9051
|
|||
Obituary "$OB_STEALTHVILE"
|
||||
}
|
||||
|
||||
ACTOR StealthBaron : BaronOfHell 9052
|
||||
ACTOR StealthBaron : BaronOfHell
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 100
|
||||
|
@ -30,7 +30,7 @@ ACTOR StealthBaron : BaronOfHell 9052
|
|||
HitObituary "$OB_STEALTHBARON"
|
||||
}
|
||||
|
||||
ACTOR StealthCacodemon : Cacodemon 9053
|
||||
ACTOR StealthCacodemon : Cacodemon
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 119
|
||||
|
@ -41,7 +41,7 @@ ACTOR StealthCacodemon : Cacodemon 9053
|
|||
HitObituary "$OB_STEALTHCACO"
|
||||
}
|
||||
|
||||
ACTOR StealthChaingunGuy : ChaingunGuy 9054
|
||||
ACTOR StealthChaingunGuy : ChaingunGuy
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 120
|
||||
|
@ -51,7 +51,7 @@ ACTOR StealthChaingunGuy : ChaingunGuy 9054
|
|||
Obituary "$OB_STEALTHCHAINGUY"
|
||||
}
|
||||
|
||||
ACTOR StealthDemon : Demon 9055
|
||||
ACTOR StealthDemon : Demon
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 121
|
||||
|
@ -62,7 +62,7 @@ ACTOR StealthDemon : Demon 9055
|
|||
HitObituary "$OB_STEALTHDEMON"
|
||||
}
|
||||
|
||||
ACTOR StealthHellKnight : HellKnight 9056
|
||||
ACTOR StealthHellKnight : HellKnight
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 101
|
||||
|
@ -73,7 +73,7 @@ ACTOR StealthHellKnight : HellKnight 9056
|
|||
HitObituary "$OB_STEALTHKNIGHT"
|
||||
}
|
||||
|
||||
ACTOR StealthDoomImp : DoomImp 9057
|
||||
ACTOR StealthDoomImp : DoomImp
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 122
|
||||
|
@ -84,7 +84,7 @@ ACTOR StealthDoomImp : DoomImp 9057
|
|||
HitObituary "$OB_STEALTHIMP"
|
||||
}
|
||||
|
||||
ACTOR StealthFatso : Fatso 9058
|
||||
ACTOR StealthFatso : Fatso
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 123
|
||||
|
@ -94,7 +94,7 @@ ACTOR StealthFatso : Fatso 9058
|
|||
Obituary "$OB_STEALTHFATSO"
|
||||
}
|
||||
|
||||
ACTOR StealthRevenant : Revenant 9059
|
||||
ACTOR StealthRevenant : Revenant
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 124
|
||||
|
@ -105,7 +105,7 @@ ACTOR StealthRevenant : Revenant 9059
|
|||
HitObituary "$OB_STEALTHUNDEAD"
|
||||
}
|
||||
|
||||
ACTOR StealthShotgunGuy : ShotgunGuy 9060
|
||||
ACTOR StealthShotgunGuy : ShotgunGuy
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 103
|
||||
|
@ -115,7 +115,7 @@ ACTOR StealthShotgunGuy : ShotgunGuy 9060
|
|||
Obituary "$OB_STEALTHSHOTGUNGUY"
|
||||
}
|
||||
|
||||
ACTOR StealthZombieMan : ZombieMan 9061
|
||||
ACTOR StealthZombieMan : ZombieMan
|
||||
{
|
||||
Game Doom
|
||||
SpawnID 102
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
// Beast --------------------------------------------------------------------
|
||||
|
||||
ACTOR Beast 70
|
||||
ACTOR Beast
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 3
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
ACTOR Clink 90
|
||||
ACTOR Clink
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 1
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
// Boss spot ----------------------------------------------------------------
|
||||
|
||||
ACTOR BossSpot : SpecialSpot 56
|
||||
ACTOR BossSpot : SpecialSpot
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 141
|
||||
|
@ -10,7 +10,7 @@ ACTOR BossSpot : SpecialSpot 56
|
|||
|
||||
// Sorcerer (D'Sparil on his serpent) ---------------------------------------
|
||||
|
||||
ACTOR Sorcerer1 7
|
||||
ACTOR Sorcerer1
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 142
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
// Wimpy ammo ---------------------------------------------------------------
|
||||
|
||||
ACTOR GoldWandAmmo : Ammo 10
|
||||
ACTOR GoldWandAmmo : Ammo
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 11
|
||||
|
@ -21,7 +21,7 @@ ACTOR GoldWandAmmo : Ammo 10
|
|||
|
||||
// Hefty ammo ---------------------------------------------------------------
|
||||
|
||||
ACTOR GoldWandHefty : GoldWandAmmo 12
|
||||
ACTOR GoldWandHefty : GoldWandAmmo
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 12
|
||||
|
@ -36,7 +36,7 @@ ACTOR GoldWandHefty : GoldWandAmmo 12
|
|||
}
|
||||
// Wimpy ammo ---------------------------------------------------------------
|
||||
|
||||
ACTOR CrossbowAmmo : Ammo 18
|
||||
ACTOR CrossbowAmmo : Ammo
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 33
|
||||
|
@ -56,7 +56,7 @@ ACTOR CrossbowAmmo : Ammo 18
|
|||
|
||||
// Hefty ammo ---------------------------------------------------------------
|
||||
|
||||
ACTOR CrossbowHefty : CrossbowAmmo 19
|
||||
ACTOR CrossbowHefty : CrossbowAmmo
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 34
|
||||
|
@ -71,7 +71,7 @@ ACTOR CrossbowHefty : CrossbowAmmo 19
|
|||
}
|
||||
// Wimpy ammo ---------------------------------------------------------------
|
||||
|
||||
ACTOR MaceAmmo : Ammo 13
|
||||
ACTOR MaceAmmo : Ammo
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 35
|
||||
|
@ -91,7 +91,7 @@ ACTOR MaceAmmo : Ammo 13
|
|||
|
||||
// Hefty ammo ---------------------------------------------------------------
|
||||
|
||||
ACTOR MaceHefty : MaceAmmo 16
|
||||
ACTOR MaceHefty : MaceAmmo
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 36
|
||||
|
@ -107,7 +107,7 @@ ACTOR MaceHefty : MaceAmmo 16
|
|||
|
||||
// Wimpy ammo ---------------------------------------------------------------
|
||||
|
||||
ACTOR BlasterAmmo : Ammo 54
|
||||
ACTOR BlasterAmmo : Ammo
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 37
|
||||
|
@ -127,7 +127,7 @@ ACTOR BlasterAmmo : Ammo 54
|
|||
|
||||
// Hefty ammo ---------------------------------------------------------------
|
||||
|
||||
ACTOR BlasterHefty : BlasterAmmo 55
|
||||
ACTOR BlasterHefty : BlasterAmmo
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 38
|
||||
|
@ -143,7 +143,7 @@ ACTOR BlasterHefty : BlasterAmmo 55
|
|||
|
||||
// Wimpy ammo ---------------------------------------------------------------
|
||||
|
||||
ACTOR SkullRodAmmo : Ammo 20
|
||||
ACTOR SkullRodAmmo : Ammo
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 158
|
||||
|
@ -163,7 +163,7 @@ ACTOR SkullRodAmmo : Ammo 20
|
|||
|
||||
// Hefty ammo ---------------------------------------------------------------
|
||||
|
||||
ACTOR SkullRodHefty : SkullRodAmmo 21
|
||||
ACTOR SkullRodHefty : SkullRodAmmo
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 159
|
||||
|
@ -179,7 +179,7 @@ ACTOR SkullRodHefty : SkullRodAmmo 21
|
|||
|
||||
// Wimpy ammo ---------------------------------------------------------------
|
||||
|
||||
ACTOR PhoenixRodAmmo : Ammo 22
|
||||
ACTOR PhoenixRodAmmo : Ammo
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 161
|
||||
|
@ -198,7 +198,7 @@ ACTOR PhoenixRodAmmo : Ammo 22
|
|||
}
|
||||
// Hefty ammo ---------------------------------------------------------------
|
||||
|
||||
ACTOR PhoenixRodHefty : PhoenixRodAmmo 23
|
||||
ACTOR PhoenixRodHefty : PhoenixRodAmmo
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 162
|
||||
|
@ -214,7 +214,7 @@ ACTOR PhoenixRodHefty : PhoenixRodAmmo 23
|
|||
|
||||
// --- Bag of holding -------------------------------------------------------
|
||||
|
||||
ACTOR BagOfHolding : BackpackItem 8
|
||||
ACTOR BagOfHolding : BackpackItem
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 136
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
// Silver Shield (Shield1) --------------------------------------------------
|
||||
|
||||
Actor SilverShield : BasicArmorPickup 85
|
||||
Actor SilverShield : BasicArmorPickup
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 68
|
||||
|
@ -20,7 +20,7 @@ Actor SilverShield : BasicArmorPickup 85
|
|||
|
||||
// Enchanted shield (Shield2) -----------------------------------------------
|
||||
|
||||
Actor EnchantedShield : BasicArmorPickup 31
|
||||
Actor EnchantedShield : BasicArmorPickup
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 69
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Super map ----------------------------------------------------------------
|
||||
|
||||
ACTOR SuperMap : MapRevealer 35
|
||||
ACTOR SuperMap : MapRevealer
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 137
|
||||
|
@ -20,7 +20,7 @@ ACTOR SuperMap : MapRevealer 35
|
|||
|
||||
// Invisibility -------------------------------------------------------------
|
||||
|
||||
ACTOR ArtiInvisibility : PowerupGiver 75
|
||||
ACTOR ArtiInvisibility : PowerupGiver
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 135
|
||||
|
@ -45,7 +45,7 @@ ACTOR ArtiInvisibility : PowerupGiver 75
|
|||
|
||||
// Tome of power ------------------------------------------------------------
|
||||
|
||||
ACTOR ArtiTomeOfPower : PowerupGiver 86 native
|
||||
ACTOR ArtiTomeOfPower : PowerupGiver native
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 134
|
||||
|
@ -88,7 +88,7 @@ ACTOR ActivatedTimeBomb
|
|||
}
|
||||
|
||||
|
||||
ACTOR ArtiTimeBomb : Inventory 34 native
|
||||
ACTOR ArtiTimeBomb : Inventory native
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 72
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
ACTOR SkullHang70 17
|
||||
ACTOR SkullHang70
|
||||
{
|
||||
Game Heretic
|
||||
Radius 20
|
||||
|
@ -13,7 +13,7 @@ ACTOR SkullHang70 17
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR SkullHang60 24
|
||||
ACTOR SkullHang60
|
||||
{
|
||||
Game Heretic
|
||||
Radius 20
|
||||
|
@ -28,7 +28,7 @@ ACTOR SkullHang60 24
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR SkullHang45 25
|
||||
ACTOR SkullHang45
|
||||
{
|
||||
Game Heretic
|
||||
Radius 20
|
||||
|
@ -43,7 +43,7 @@ ACTOR SkullHang45 25
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR SkullHang35 26
|
||||
ACTOR SkullHang35
|
||||
{
|
||||
Game Heretic
|
||||
Radius 20
|
||||
|
@ -58,7 +58,7 @@ ACTOR SkullHang35 26
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR Chandelier 28
|
||||
ACTOR Chandelier
|
||||
{
|
||||
Game Heretic
|
||||
Radius 20
|
||||
|
@ -73,7 +73,7 @@ ACTOR Chandelier 28
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR SerpentTorch 27
|
||||
ACTOR SerpentTorch
|
||||
{
|
||||
Game Heretic
|
||||
Radius 12
|
||||
|
@ -87,7 +87,7 @@ ACTOR SerpentTorch 27
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR SmallPillar 29
|
||||
ACTOR SmallPillar
|
||||
{
|
||||
Game Heretic
|
||||
Radius 16
|
||||
|
@ -101,7 +101,7 @@ ACTOR SmallPillar 29
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR StalagmiteSmall 37
|
||||
ACTOR StalagmiteSmall
|
||||
{
|
||||
Game Heretic
|
||||
Radius 8
|
||||
|
@ -115,7 +115,7 @@ ACTOR StalagmiteSmall 37
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR StalagmiteLarge 38
|
||||
ACTOR StalagmiteLarge
|
||||
{
|
||||
Game Heretic
|
||||
Radius 12
|
||||
|
@ -129,7 +129,7 @@ ACTOR StalagmiteLarge 38
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR StalactiteSmall 39
|
||||
ACTOR StalactiteSmall
|
||||
{
|
||||
Game Heretic
|
||||
Radius 8
|
||||
|
@ -145,7 +145,7 @@ ACTOR StalactiteSmall 39
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR StalactiteLarge 40
|
||||
ACTOR StalactiteLarge
|
||||
{
|
||||
Game Heretic
|
||||
Radius 12
|
||||
|
@ -161,7 +161,7 @@ ACTOR StalactiteLarge 40
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR FireBrazier 76
|
||||
ACTOR FireBrazier
|
||||
{
|
||||
Game Heretic
|
||||
Radius 16
|
||||
|
@ -175,7 +175,7 @@ ACTOR FireBrazier 76
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR Barrel 44
|
||||
ACTOR Barrel
|
||||
{
|
||||
Game Heretic
|
||||
Radius 12
|
||||
|
@ -189,7 +189,7 @@ ACTOR Barrel 44
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR BrownPillar 47
|
||||
ACTOR BrownPillar
|
||||
{
|
||||
Game Heretic
|
||||
Radius 14
|
||||
|
@ -203,7 +203,7 @@ ACTOR BrownPillar 47
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR Moss1 48
|
||||
ACTOR Moss1
|
||||
{
|
||||
Game Heretic
|
||||
Radius 20
|
||||
|
@ -218,7 +218,7 @@ ACTOR Moss1 48
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR Moss2 49
|
||||
ACTOR Moss2
|
||||
{
|
||||
Game Heretic
|
||||
Radius 20
|
||||
|
@ -233,7 +233,7 @@ ACTOR Moss2 49
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR WallTorch 50
|
||||
ACTOR WallTorch
|
||||
{
|
||||
Game Heretic
|
||||
Radius 6
|
||||
|
@ -248,7 +248,7 @@ ACTOR WallTorch 50
|
|||
}
|
||||
}
|
||||
|
||||
ACTOR HangingCorpse 51
|
||||
ACTOR HangingCorpse
|
||||
{
|
||||
Game Heretic
|
||||
Radius 8
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
// Heretic imp (as opposed to the Doom variety) -----------------------------
|
||||
|
||||
ACTOR HereticImp 66
|
||||
ACTOR HereticImp
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 5
|
||||
|
@ -78,7 +78,7 @@ ACTOR HereticImp 66
|
|||
|
||||
// Heretic imp leader -------------------------------------------------------
|
||||
|
||||
ACTOR HereticImpLeader : HereticImp 5
|
||||
ACTOR HereticImpLeader : HereticImp
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 7
|
||||
|
|
|
@ -8,7 +8,7 @@ ACTOR HereticKey : Key
|
|||
|
||||
// Green key ------------------------------------------------------------
|
||||
|
||||
ACTOR KeyGreen : HereticKey 73
|
||||
ACTOR KeyGreen : HereticKey
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 86
|
||||
|
@ -24,7 +24,7 @@ ACTOR KeyGreen : HereticKey 73
|
|||
|
||||
// Blue key -----------------------------------------------------------------
|
||||
|
||||
ACTOR KeyBlue : HereticKey 79
|
||||
ACTOR KeyBlue : HereticKey
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 85
|
||||
|
@ -40,7 +40,7 @@ ACTOR KeyBlue : HereticKey 79
|
|||
|
||||
// Yellow key ---------------------------------------------------------------
|
||||
|
||||
ACTOR KeyYellow : HereticKey 80
|
||||
ACTOR KeyYellow : HereticKey
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 87
|
||||
|
@ -57,7 +57,7 @@ ACTOR KeyYellow : HereticKey 80
|
|||
|
||||
// --- Blue Key gizmo -----------------------------------------------------------
|
||||
|
||||
ACTOR KeyGizmoBlue 94
|
||||
ACTOR KeyGizmoBlue
|
||||
{
|
||||
Game Heretic
|
||||
Radius 16
|
||||
|
@ -89,7 +89,7 @@ ACTOR KeyGizmoFloatBlue
|
|||
|
||||
// --- Green Key gizmo -----------------------------------------------------------
|
||||
|
||||
ACTOR KeyGizmoGreen 95
|
||||
ACTOR KeyGizmoGreen
|
||||
{
|
||||
Game Heretic
|
||||
Radius 16
|
||||
|
@ -121,7 +121,7 @@ ACTOR KeyGizmoFloatGreen
|
|||
|
||||
// --- Yellow Key gizmo -----------------------------------------------------------
|
||||
|
||||
ACTOR KeyGizmoYellow 96
|
||||
ACTOR KeyGizmoYellow
|
||||
{
|
||||
Game Heretic
|
||||
Radius 16
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
// Pod ----------------------------------------------------------------------
|
||||
|
||||
ACTOR Pod 2035
|
||||
ACTOR Pod
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 125
|
||||
|
@ -62,7 +62,7 @@ ACTOR PodGoo
|
|||
|
||||
// Pod generator ------------------------------------------------------------
|
||||
|
||||
ACTOR PodGenerator 43
|
||||
ACTOR PodGenerator
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 126
|
||||
|
@ -84,7 +84,7 @@ ACTOR PodGenerator 43
|
|||
|
||||
// Teleglitter generator 1 --------------------------------------------------
|
||||
|
||||
ACTOR TeleGlitterGenerator1 74
|
||||
ACTOR TeleGlitterGenerator1
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 166
|
||||
|
@ -102,7 +102,7 @@ ACTOR TeleGlitterGenerator1 74
|
|||
|
||||
// Teleglitter generator 2 --------------------------------------------------
|
||||
|
||||
ACTOR TeleGlitterGenerator2 52
|
||||
ACTOR TeleGlitterGenerator2
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 167
|
||||
|
@ -160,7 +160,7 @@ ACTOR TeleGlitter2 : TeleGlitter1
|
|||
|
||||
// --- Volcano --------------------------------------------------------------
|
||||
|
||||
ACTOR Volcano 87
|
||||
ACTOR Volcano
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 150
|
||||
|
|
|
@ -110,7 +110,7 @@ ACTOR StaffPuff2
|
|||
|
||||
// Gold wand ----------------------------------------------------------------
|
||||
|
||||
ACTOR GoldWand : HereticWeapon 9042
|
||||
ACTOR GoldWand : HereticWeapon
|
||||
{
|
||||
Game Heretic
|
||||
+BLOODSPLATTER
|
||||
|
@ -248,7 +248,7 @@ ACTOR GoldWandPuff2 : GoldWandFX1
|
|||
|
||||
// Crossbow -----------------------------------------------------------------
|
||||
|
||||
ACTOR Crossbow : HereticWeapon 2001
|
||||
ACTOR Crossbow : HereticWeapon
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 27
|
||||
|
@ -400,7 +400,7 @@ ACTOR CrossbowFX4
|
|||
|
||||
// Gauntlets ----------------------------------------------------------------
|
||||
|
||||
ACTOR Gauntlets : Weapon 2005
|
||||
ACTOR Gauntlets : Weapon
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 32
|
||||
|
@ -681,7 +681,7 @@ ACTOR MaceFX4 native
|
|||
|
||||
// Mace spawn spot ----------------------------------------------------------
|
||||
|
||||
ACTOR MaceSpawner : SpecialSpot 2002
|
||||
ACTOR MaceSpawner : SpecialSpot
|
||||
{
|
||||
Game Heretic
|
||||
+NOSECTOR
|
||||
|
@ -698,7 +698,7 @@ ACTOR MaceSpawner : SpecialSpot 2002
|
|||
|
||||
// Blaster ------------------------------------------------------------------
|
||||
|
||||
ACTOR Blaster : HereticWeapon 53
|
||||
ACTOR Blaster : HereticWeapon
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 28
|
||||
|
@ -854,7 +854,7 @@ ACTOR BlasterPuff
|
|||
|
||||
// Skull (Horn) Rod ---------------------------------------------------------
|
||||
|
||||
ACTOR SkullRod : HereticWeapon 2004
|
||||
ACTOR SkullRod : HereticWeapon
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 30
|
||||
|
@ -1028,7 +1028,7 @@ ACTOR RainTracker : Inventory native
|
|||
|
||||
// Phoenix Rod --------------------------------------------------------------
|
||||
|
||||
ACTOR PhoenixRod : Weapon 2003 native
|
||||
ACTOR PhoenixRod : Weapon native
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 29
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
// Ironlich -----------------------------------------------------------------
|
||||
|
||||
ACTOR Ironlich 6
|
||||
ACTOR Ironlich
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 20
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
// Knight -------------------------------------------------------------------
|
||||
|
||||
ACTOR Knight 64
|
||||
ACTOR Knight
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 6
|
||||
|
@ -60,7 +60,7 @@ ACTOR Knight 64
|
|||
|
||||
// Knight ghost -------------------------------------------------------------
|
||||
|
||||
ACTOR KnightGhost : Knight 65
|
||||
ACTOR KnightGhost : Knight
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 129
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
// Mummy --------------------------------------------------------------------
|
||||
|
||||
ACTOR Mummy 68
|
||||
ACTOR Mummy
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 4
|
||||
|
@ -51,7 +51,7 @@ ACTOR Mummy 68
|
|||
|
||||
// Mummy leader -------------------------------------------------------------
|
||||
|
||||
ACTOR MummyLeader : Mummy 45
|
||||
ACTOR MummyLeader : Mummy
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 2
|
||||
|
@ -74,7 +74,7 @@ ACTOR MummyLeader : Mummy 45
|
|||
|
||||
// Mummy ghost --------------------------------------------------------------
|
||||
|
||||
ACTOR MummyGhost : Mummy 69
|
||||
ACTOR MummyGhost : Mummy
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 8
|
||||
|
@ -86,7 +86,7 @@ ACTOR MummyGhost : Mummy 69
|
|||
|
||||
// Mummy leader ghost -------------------------------------------------------
|
||||
|
||||
ACTOR MummyLeaderGhost : MummyLeader 46
|
||||
ACTOR MummyLeaderGhost : MummyLeader
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 9
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
ACTOR Snake 92
|
||||
ACTOR Snake
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 132
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
// Wizard --------------------------------------------------------
|
||||
|
||||
ACTOR Wizard 15
|
||||
ACTOR Wizard
|
||||
{
|
||||
Game Heretic
|
||||
SpawnID 19
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
// Bat Spawner --------------------------------------------------------------
|
||||
|
||||
ACTOR BatSpawner : SwitchableDecoration 10225
|
||||
ACTOR BatSpawner : SwitchableDecoration
|
||||
{
|
||||
Game Hexen
|
||||
+NOBLOCKMAP +NOSECTOR +NOGRAVITY
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
// Bishop -------------------------------------------------------------------
|
||||
|
||||
ACTOR Bishop 114
|
||||
ACTOR Bishop
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 19
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
ACTOR ArtiBlastRadius : CustomInventory 10110
|
||||
ACTOR ArtiBlastRadius : CustomInventory
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 74
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
// Boost Armor Artifact (Dragonskin Bracers) --------------------------------
|
||||
|
||||
ACTOR ArtiBoostArmor : Inventory 8041 native
|
||||
ACTOR ArtiBoostArmor : Inventory native
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 22
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Centaur ------------------------------------------------------------------
|
||||
|
||||
ACTOR Centaur 107
|
||||
ACTOR Centaur
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 1
|
||||
|
@ -78,7 +78,7 @@ ACTOR Centaur 107
|
|||
|
||||
// Centaur Leader -----------------------------------------------------------
|
||||
|
||||
ACTOR CentaurLeader : Centaur 115
|
||||
ACTOR CentaurLeader : Centaur
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 2
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
// Cleric Boss (Traductus) --------------------------------------------------
|
||||
|
||||
ACTOR ClericBoss 10101
|
||||
ACTOR ClericBoss
|
||||
{
|
||||
Game Hexen
|
||||
Health 800
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
// The Cleric's Flame Strike ------------------------------------------------
|
||||
|
||||
ACTOR CWeapFlame : ClericWeapon 8009
|
||||
ACTOR CWeapFlame : ClericWeapon
|
||||
{
|
||||
Game Hexen
|
||||
+NOGRAVITY
|
||||
|
|
|
@ -12,7 +12,7 @@ ACTOR ClericWeaponPiece : WeaponPiece
|
|||
|
||||
// Cleric Weapon Piece 1 ----------------------------------------------------
|
||||
|
||||
ACTOR CWeaponPiece1 : ClericWeaponPiece 18
|
||||
ACTOR CWeaponPiece1 : ClericWeaponPiece
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 33
|
||||
|
@ -27,7 +27,7 @@ ACTOR CWeaponPiece1 : ClericWeaponPiece 18
|
|||
|
||||
// Cleric Weapon Piece 2 ----------------------------------------------------
|
||||
|
||||
ACTOR CWeaponPiece2 : ClericWeaponPiece 19
|
||||
ACTOR CWeaponPiece2 : ClericWeaponPiece
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 34
|
||||
|
@ -42,7 +42,7 @@ ACTOR CWeaponPiece2 : ClericWeaponPiece 19
|
|||
|
||||
// Cleric Weapon Piece 3 ----------------------------------------------------
|
||||
|
||||
ACTOR CWeaponPiece3 : ClericWeaponPiece 20
|
||||
ACTOR CWeaponPiece3 : ClericWeaponPiece
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 35
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
// The Cleric's Serpent Staff -----------------------------------------------
|
||||
|
||||
ACTOR CWeapStaff : ClericWeapon 10
|
||||
ACTOR CWeapStaff : ClericWeapon
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 32
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
// Demon, type 1 (green, like D'Sparil's) -----------------------------------
|
||||
|
||||
ACTOR Demon1 31
|
||||
ACTOR Demon1
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 3
|
||||
|
@ -212,7 +212,7 @@ ACTOR Demon1FX1
|
|||
|
||||
// Demon, type 2 (brown) ----------------------------------------------------
|
||||
|
||||
ACTOR Demon2 : Demon1 8080
|
||||
ACTOR Demon2 : Demon1
|
||||
{
|
||||
Game Hexen
|
||||
Obituary "$OB_DEMON2"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
// Dragon -------------------------------------------------------------------
|
||||
|
||||
ACTOR Dragon 254
|
||||
ACTOR Dragon
|
||||
{
|
||||
Game Hexen
|
||||
Health 640
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
// Ettin --------------------------------------------------------------------
|
||||
|
||||
ACTOR Ettin 10030
|
||||
ACTOR Ettin
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 4
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
// The Fighter's Axe --------------------------------------------------------
|
||||
|
||||
ACTOR FWeapAxe : FighterWeapon 8010 native
|
||||
ACTOR FWeapAxe : FighterWeapon native
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 27
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
// Fighter Boss (Zedek) -----------------------------------------------------
|
||||
|
||||
ACTOR FighterBoss 10100
|
||||
ACTOR FighterBoss
|
||||
{
|
||||
Game Hexen
|
||||
health 800
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
// The Fighter's Hammer -----------------------------------------------------
|
||||
|
||||
ACTOR FWeapHammer : FighterWeapon 123
|
||||
ACTOR FWeapHammer : FighterWeapon
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 28
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue