- moved spawnclasses and breakwall definitions from .def to RMAPINFO.

.def is not the right place for this - it needs to run very early in the process, before scripted actors are loaded, so doing this stuff there means that half the initialization has to be postponed and error reporting is sub-par.
These are now part of RMAPINFO which gets parsed as one of the very last things - it is also where GZDoom is doing some of these things.

The better error reporting also allowed fixing some errors in these definitions.
This commit is contained in:
Christoph Oelckers 2022-12-04 13:09:47 +01:00
parent c1a09196f0
commit 9e3318a2fb
20 changed files with 918 additions and 881 deletions

View file

@ -2229,100 +2229,6 @@ static void parseDefineQAV(FScanner& sc, FScriptPosition& pos)
fileSystem.CreatePathlessCopy(fn, res_id, 0);
}
static void parseSpawnClasses(FScanner& sc, FScriptPosition& pos)
{
FString fn;
int res_id = -1;
int numframes = -1;
bool interpolate = false;
int clipdist = -1;
sc.SetCMode(true);
if (!sc.CheckString("{"))
{
pos.Message(MSG_ERROR, "spawnclasses:'{' expected, unable to continue");
sc.SetCMode(false);
return;
}
while (!sc.CheckString("}"))
{
// This will need some reworking once we can use real textures.
int num = -1;
int base = -1;
int basetex = -1;
int brokentex = -1;
int fullbright = 0;
int flags = 0;
FName sound = NAME_None;
FName cname;
sc.GetNumber(num, true);
sc.MustGetStringName("=");
sc.MustGetString();
cname = sc.String;
if (sc.CheckString(","))
{
if (sc.CheckNumber(true)) base = sc.Number;
else
{
// prefixing the texture names here with a '*' will render them fullbright.
sc.MustGetString();
const char* p = sc.String;
if (*p == '*') { fullbright |= 1; p++; }
basetex = TileFiles.tileForName(p);
if (basetex < 0) Printf(TEXTCOLOR_RED "Unknown texture %s in definition for spawn ID # %d\n", sc.String, num);
if (sc.CheckString(","))
{
sc.MustGetString();
const char* p = sc.String;
if (*p)
{
if (*p == '*') { fullbright |= 2; p++; }
brokentex = TileFiles.tileForName(p);
if (brokentex < 0) Printf(TEXTCOLOR_RED "Unknown texture %s in definition for spawn ID # %d\n", sc.String, num);
}
if (sc.CheckString(","))
{
sc.MustGetString();
sound = sc.String;
#if 0
// Sound engine is not initialized here.
S_FindSound(sc.String).index();
if (sound <= 0) Printf(TEXTCOLOR_RED "Unknown sound %s in definition for spawn ID # %d\n", num);
#endif
if (sc.CheckString(","))
{
bool cont = true;
if (sc.CheckNumber())
{
clipdist = sc.Number;
cont = sc.CheckString(",");
}
if (cont) do
{
sc.MustGetString();
if (sc.Compare("damaging")) flags |= 1;
else if (sc.Compare("solid") || sc.Compare("blocking")) flags |= 2;
else if (sc.Compare("unblocking")) flags |= 4;
else if (sc.Compare("spawnglass")) flags |= 8;
else if (sc.Compare("spawnscrap")) flags |= 16;
else if (sc.Compare("spawnsmoke")) flags |= 32;
else if (sc.Compare("spawnglass2")) flags |= 64; // Duke has 2 ways of spawning glass debris...
else sc.ScriptMessage("'%s': Unknown actor class flag", sc.String);
} while (sc.CheckString(","));
}
}
}
}
}
// todo: check for proper base class
spawnMap.Insert(num, { cname, nullptr, base, basetex, brokentex, sound, int8_t(fullbright), int8_t(clipdist), int16_t(flags) });
}
sc.SetCMode(false);
}
static void parseTileFlags(FScanner& sc, FScriptPosition& pos)
{
int num = -1;
@ -2351,47 +2257,6 @@ static void parseTileFlags(FScanner& sc, FScriptPosition& pos)
sc.SetCMode(false);
}
static void parseBreakWall(FScanner& sc, FScriptPosition& pos)
{
int basetile;
int breaktile;
FName sound;
VMFunction* handler = nullptr;
sc.SetCMode(true);
sc.MustGetString();
basetile = TileFiles.tileForName(sc.String);
sc.MustGetStringName(",");
sc.MustGetString();
breaktile = TileFiles.tileForName(sc.String);
sc.MustGetStringName(",");
sc.MustGetString();
sound = sc.String;
if (sc.CheckString(","))
{
sc.MustGetString();
size_t p = strcspn(sc.String, ".");
if (p == 0)
{
sc.ScriptMessage("Call to undefined function %s", sc.String);
return;
}
FString clsname(sc.String, p);
FString funcname = sc.String + p + 1;
handler = PClass::FindFunction(clsname, funcname);
if (handler == nullptr)
sc.ScriptMessage("Call to undefined function %s", sc.String);
// todo: validate the function's signature. Must be (walltype, TextureID, Sound, DukeActor)
}
breakWallMap.Insert(basetile, { breaktile, sound, handler });
sc.SetCMode(false);
}
//===========================================================================
//
//
@ -2484,9 +2349,7 @@ static const dispatch basetokens[] =
{ "rffdefineid", parseRffDefineId },
{ "defineqav", parseDefineQAV },
{ "spawnclasses", parseSpawnClasses },
{ "tileflag", parseTileFlags },
{ "breakwall", parseBreakWall },
{ nullptr, nullptr },
};

View file

@ -45,7 +45,7 @@
#include "autosegs.h"
#include "i_system.h"
#include "gamecontrol.h"
#include "autosegs.h"
#include "coreactor.h"
extern TArray<ClusterDef> clusters;
extern TArray<VolumeRecord> volumes;
@ -220,6 +220,173 @@ void FMapInfoParser::ParseMusic(FString &name, int &order)
}
}
//==========================================================================
//
//
//
//==========================================================================
void FMapInfoParser::ParseSpawnClasses()
{
FString fn;
int res_id = -1;
int numframes = -1;
bool interpolate = false;
int clipdist = -1;
sc.MustGetStringName("{");
while (!sc.CheckString("}"))
{
// This will need some reworking once we can use real textures.
int num = -1;
int base = -1;
int basetex = -1;
int brokentex = -1;
int fullbright = 0;
int flags = 0;
FSoundID sound = NO_SOUND;
PClassActor* actor = nullptr;
sc.MustGetString();
char* p;
num = (int)strtol(sc.String, &p, 10);
if (num < 0 || *p)
{
sc.ScriptMessage("Invalid spawn number. Must be positive integer, but got '%s'", sc.String);
SkipToNext();
continue;
}
ParseAssign();
sc.MustGetString();
actor = PClass::FindActor(sc.String);
if (actor == nullptr)
{
sc.ScriptMessage("Unknown actor class '%s' for spawn ID # %d", sc.String, num);
}
if (sc.CheckString(","))
{
// prefixing the texture names here with a '*' will render them fullbright.
sc.MustGetString();
const char* p = sc.String;
if (*p == '*') { fullbright |= 1; p++; }
basetex = TileFiles.tileForName(p);
if (basetex < 0) sc.ScriptMessage("Unknown texture '%s' in definition for spawn ID # %d", sc.String, num);
if (sc.CheckString(","))
{
sc.MustGetString();
const char* p = sc.String;
if (*p)
{
if (*p == '*') { fullbright |= 2; p++; }
brokentex = TileFiles.tileForName(p);
if (brokentex < 0) sc.ScriptMessage("Unknown texture '%s' in definition for spawn ID # %d", sc.String, num);
}
if (sc.CheckString(","))
{
sc.MustGetString();
sound = S_FindSound(sc.String);
if (*sc.String && !sound.isvalid()) Printf(TEXTCOLOR_RED "Unknown sound '%s' in definition for spawn ID # %d\n", sc.String, num);
if (sc.CheckString(","))
{
bool cont = true;
if (sc.CheckNumber())
{
clipdist = sc.Number;
cont = sc.CheckString(",");
}
if (cont) do
{
sc.MustGetString();
if (sc.Compare("damaging")) flags |= 1;
else if (sc.Compare("solid") || sc.Compare("blocking")) flags |= 2;
else if (sc.Compare("unblocking")) flags |= 4;
else if (sc.Compare("spawnglass")) flags |= 8;
else if (sc.Compare("spawnscrap")) flags |= 16;
else if (sc.Compare("spawnsmoke")) flags |= 32;
else if (sc.Compare("spawnglass2")) flags |= 64; // Duke has 2 ways of spawning glass debris...
else sc.ScriptMessage("'%s': Unknown actor class flag", sc.String);
} while (sc.CheckString(","));
}
}
}
}
if (actor != 0 && num >= 0)
{
// todo: check for proper base class
spawnMap.Insert(num, { actor, basetex, brokentex, sound, int8_t(fullbright), int8_t(clipdist), int16_t(flags) });
}
}
}
//==========================================================================
//
//
//
//==========================================================================
void FMapInfoParser::ParseBreakWall()
{
int basetile = -1;
int breaktile = -1;
int flags = 0;
FSoundID sound = NO_SOUND;
VMFunction* handler = nullptr;
FString basename;
sc.MustGetStringName("{");
while (!sc.CheckString("}"))
{
sc.MustGetString();
basename = sc.String; // save for printing error messages.
basetile = TileFiles.tileForName(sc.String);
if (basetile < 0)
{
sc.ScriptMessage("Unknown texture '%s' in breakwall definition", sc.String, basetile);
SkipToNext();
}
ParseAssign();
sc.MustGetString();
breaktile = TileFiles.tileForName(sc.String);
if (breaktile < 0) sc.ScriptMessage("Unknown texture '%s' in breakwall definition", sc.String, breaktile);
if (sc.CheckString(","))
{
sc.MustGetString();
sound = S_FindSound(sc.String);
if (*sc.String && !sound.isvalid()) Printf(TEXTCOLOR_RED "Unknown sound '%s' in definition for breakable wall '5s'\n", basename.GetChars());
auto saved = sc.SavePos();
if (sc.CheckString(","))
{
sc.MustGetString();
size_t p = strcspn(sc.String, ".");
if (p != 0)
{
FName clsname(sc.String, p, false);
FName funcname = sc.String + p + 1;
handler = PClass::FindFunction(clsname, funcname);
if (handler == nullptr)
sc.ScriptMessage("Call to undefined function %s", sc.String);
// todo: validate the function's signature. Must be (walltype, TextureID, Sound, DukeActor)
}
else sc.RestorePos(saved);
while (sc.CheckString(","))
{
sc.MustGetString();
if (sc.Compare("twosided")) flags |= 1;
else sc.ScriptMessage("'%s': Unknown breakable flag", sc.String);
}
}
}
breakWallMap.Insert(basetile, { breaktile, sound, handler, flags });
}
}
//==========================================================================
//
//
@ -1111,7 +1278,7 @@ void FMapInfoParser::ParseGameInfo()
ParseAssign();
sc.SetCMode(false);
sc.MustGetString();
sc.SetCMode(false);
sc.SetCMode(true);
globalCutscenes.SummaryScreen = sc.String;
}
else if (sc.Compare("mpsummaryscreen"))
@ -1119,7 +1286,7 @@ void FMapInfoParser::ParseGameInfo()
ParseAssign();
sc.SetCMode(false);
sc.MustGetString();
sc.SetCMode(false);
sc.SetCMode(true);
globalCutscenes.MPSummaryScreen = sc.String;
}
else if (sc.Compare("statusbarclass"))
@ -1127,7 +1294,7 @@ void FMapInfoParser::ParseGameInfo()
ParseAssign();
sc.SetCMode(false);
sc.MustGetString();
sc.SetCMode(false);
sc.SetCMode(true);
globalCutscenes.StatusBarClass = sc.String;
}
else if (!ParseCloseBrace())
@ -1187,7 +1354,7 @@ void FMapInfoParser::ParseMapInfo (int lump, MapRecord &gamedefaults, MapRecord
{
ParsedLumps.Push(lump);
}
sc.SetCMode(true);
while (sc.GetString ())
{
if (sc.Compare("include"))
@ -1263,6 +1430,14 @@ void FMapInfoParser::ParseMapInfo (int lump, MapRecord &gamedefaults, MapRecord
{
ParseGameInfo();
}
else if (sc.Compare("spawnclasses"))
{
ParseSpawnClasses();
}
else if (sc.Compare("breakwalls"))
{
ParseBreakWall();
}
else if (sc.Compare("clearall"))
{
// clears all map and progression related data, so that a mod can start with a clean slate.

View file

@ -39,6 +39,32 @@
#include "sc_man.h"
#include "file_zip.h"
struct SpawnRec
{
PClassActor* cls;
int basetex, brokentex;
FSoundID breaksound;
int8_t fullbright, clipdist;
int16_t flags;
PClassActor* Class(int pn)
{
return cls;
}
};
using SpawnMap = TMap<int, SpawnRec>;
inline SpawnMap spawnMap;
struct BreakWallRec
{
int brokentex;
FSoundID breaksound;
VMFunction* handler;
int flags;
};
using BreakWallMap = TMap<int, BreakWallRec>;
inline BreakWallMap breakWallMap;
struct FMapInfoParser
{
FScanner sc;
@ -63,6 +89,8 @@ struct FMapInfoParser
void ParseEpisodeInfo ();
void ParseCutsceneInfo();
void ParseGameInfo();
void ParseSpawnClasses();
void ParseBreakWall();
void ParseMapInfo (int lump, MapRecord &gamedefaults, MapRecord &defaultinfo);
void ParseOpenBrace();

View file

@ -271,35 +271,3 @@ enum gameaction_t : int
};
extern gameaction_t gameaction;
struct SpawnRec
{
FName clsname;
PClass* cls;
int param;
int basetex, brokentex;
FName breaksound;
int8_t fullbright, clipdist;
int16_t flags;
PClass* Class(int pn)
{
if (!cls && clsname != NAME_None) cls = PClass::FindClass(clsname);
if (cls == nullptr)
{
Printf(TEXTCOLOR_RED "Bad class name %s for ID# %d\n", clsname.GetChars(), pn);
}
clsname = NAME_None;
return cls;
}
};
using SpawnMap = TMap<int, SpawnRec>;
inline SpawnMap spawnMap;
struct BreakWallRec
{
int brokentex;
FName breaksound;
VMFunction* handler;
};
using BreakWallMap = TMap<int, BreakWallRec>;
inline BreakWallMap breakWallMap;

View file

@ -4,6 +4,7 @@
#include "constants.h"
#include "packet.h"
#include "types.h"
#include "g_mapinfo.h"
struct MapRecord;

View file

@ -876,11 +876,11 @@ void checkhitwall_r(DDukeActor* spr, walltype* wal, const DVector3& pos, int atw
if (!data->handler)
{
wal->picnum = data->brokentex;
S_PlayActorSound(S_FindSound(data->breaksound.GetChars()), spr);
S_PlayActorSound(data->breaksound, spr);
}
else
{
VMValue args[4] = { wal, data->brokentex, S_FindSound(data->breaksound.GetChars()).index(), spr };
VMValue args[4] = { wal, data->brokentex, data->breaksound.index(), spr};
VMCall(data->handler, args, 4, nullptr, 0);
}
}

View file

@ -47,14 +47,12 @@ void setFromSpawnRec(DDukeActor* act, SpawnRec* info)
{
if (info)
{
//int basepicnum = info->param;
//act->basepicnum = basepicnum;
if (info->basetex > 0 && act->IsKindOf(NAME_DukeGenericDestructible))
{
// allow defining simple destructibles without actual actor definitions.
act->IntVar(NAME_spawnstate) = info->basetex;
act->IntVar(NAME_brokenstate) = info->brokentex;
act->IntVar(NAME_breaksound) = S_FindSound(info->breaksound.GetChars()).index();
act->IntVar(NAME_breaksound) = info->breaksound.index();
act->IntVar(NAME_fullbright) = info->fullbright;
act->spr.inittype = info->flags;
if (info->clipdist > 0) act->spr.clipdist = info->clipdist;

View file

@ -1,240 +1,6 @@
include "engine/defines.def"
spawnclasses
{
2 = DukeActivator
3 = DukeTouchplate
4 = DukeActivatorLocked
5 = DukeSoundController
6 = DukeLocator
7 = DukeCycler
8 = DukeMasterSwitch
9 = DukeRespawnController
10 = DukeGPSpeed
4890 = DukeNaturalLightning
1221 = DukeCranePole
1222 = DukeCrane
563 = DukeWaterFountain
564 = DukeWaterFountain
565 = DukeWaterFountain
566 = DukeWaterFountain
567 = DukeWaterFountainBroke
951 = DukeBox
978 = DukeCone
908 = DukeTree1
910 = DukeTree2
990 = DukeTire
911 = DukeCactus
939 = DukeCactusBroke
2566 = DukeTripbombPlaced
2567 = DukeLaserline
546 = DukeCrack
547 = DukeCrack, "CRACK2"
548 = DukeCrack, "CRACK3"
549 = DukeCrack, "CRACK4"
916 = DukeFireext
1079 = DukeOozFilter
1247 = DukeSeenine
502 = DukeViewscreen
499 = DukeViewscreen2
621 = DukeCamera // yes, they are all the same!
622 = DukeCamera
623 = DukeCamera
624 = DukeCamera
625 = DukeCamera
3190 = DukeRespawnmarker
1267 = DukeRat
902 = DukeQueball
901 = DukeStripeBall
903 = DukePoolPocket
2590 = DukeForceSphere
1960 = DukeRecon
2300 = DukeOoz
2309 = DukeOoz2
2296 = DukeBloodSplat1
2297 = DukeBloodSplat2
2298 = DukeBloodSplat3
2299 = DukeBloodSplat4
1625 = DukeFireLaser
1646 = DukeShrinkSpark
2605 = DukeRPG
1641 = DukeFreezeBlast
1636 = DukeSpit
1360 = DukeCoolExplosion1
578 = DukeReactor2
580 = DukeReactor2Spark
1088 = DukeReactor
1092 = DukeReactorSpark
4465 = DukeGenericPole2
979 = DukeHangLight
869 = DukeStatueFlash
753 = DukeStatue
1157 = DukeBottle10
765 = DukeVase
4502 = DukeLetter
4361 = DukeDuck
4359 = DukeTarget
1346 = DukeHelicopter
2491 = DukeCar
26 = DukePipeBomb
940 = DukeBounceMine
1650 = DukeMortar
2999 = DukeFrameEffect
925 = DukeNeon
926 = DukeNeon, "NEON2"
1007 = DukeNeon, "NEON3"
1008 = DukeNeon, "NEON4"
1009 = DukeNeon, "NEON5"
1046 = DukeNeon, "NEON6"
142 = DukeNukeButton
1233 = DukeMoney
4460 = DukePaper
4410 = DukeMail
1380 = DukeWaterSplash
1031 = DukeGlassPieces1
1032 = DukeGlassPieces2
1033 = DukeGlassPieces3
2533 = DukeShell
2535 = DukeShotgunShell
1226 = DukeBloodPool
407 = DukeFanSprite
516 = DukeSatellite
517 = DukeFuelPod
602 = DukeSolarPanel
607 = DukeAntenna
1358 = DukeFetus
1359 = DukeFetusBroke
969 = DukeHydroplant
1003 = DukeHydroplantBroke
981 = DukeHydrant
619 = DukePipe1
616 = DukePipe2
618 = DukePipe3
996 = DukePipe4
994 = DukePipe5
995 = DukePipe6
4943 = DukeJuryGuy
1353 = DukeSpaceMarine
1355 = DukeIndy
1352 = DukeMonk
1354 = DukeLuke
680 = DukeChair3
569 = DukeToilet
571 = DukeStall
1069 = DukePlug
568 = DukeFemMag
577 = DukeFemMag, "FEMMAG2"
4900 = DukeTag
4909 = DukeTag, "SIGN1"
4912 = DukeTag, "SIGN2"
285 = DukeMaskWall
913 = DukeMaskWall, "MASKWALL2"
914 = DukeMaskWall, "MASKWALL3"
915 = DukeMaskWall, "MASKWALL4"
514 = DukeMaskWall, "MASKWALL5"
1059 = DukeMaskWall, "MASKWALL6"
1174 = DukeMaskWall, "MASKWALL7"
1124 = DukeMaskWall, "MASKWALL8"
255 = DukeMaskWall, "MASKWALL9"
387 = DukeMaskWall, "MASKWALL10"
391 = DukeMaskWall, "MASKWALL11"
609 = DukeMaskWall, "MASKWALL12"
830 = DukeMaskWall, "MASKWALL13"
988 = DukeMaskWall, "MASKWALL14"
1024 = DukeMaskWall, "MASKWALL15"
550 = DukeFootprints
672 = DukeFootprints
673 = DukeFootprints
674 = DukeFootprints
952 = DukeBulletHole
554 = DukeCameraPole
977 = DukeGenericPole
1272 = DukeTrash
634 = DukeBolt1
635 = DukeBolt2
636 = DukeBolt3
637 = DukeBolt4
4525 = DukeSideBolt1
4526 = DukeSideBolt2
4527 = DukeSideBolt3
4528 = DukeSideBolt4
660 = DukeWaterdrip
160 = DukeDoorshock
1232 = DukeCanWithSomething
2807 = DukeCanWithSomething, "CANWITHSOMETHING2"
2808 = DukeCanWithSomething, "CANWITHSOMETHING3"
2809 = DukeCanWithSomething, "CANWITHSOMETHING4"
1647 = DukeTongue
1860 = DukeInnerJaw
1861 = DukeInnerJaw1
2245 = DukeJibs1
2250 = DukeJibs2
2255 = DukeJibs3
2260 = DukeJibs4
2265 = DukeJibs5
2286 = DukeJibs6
1768 = DukeHeadJib1
1772 = DukeArmJib1
1776 = DukeLegJib1
2201 = DukeLizmanHead
2205 = DukeLizmanArm
2209 = DukeLizmanLeg
1520 = DukePlayerTorso
1528 = DukePlayerGun
1536 = DukePlayerLeg
2370 = DukeGreenSlime
595 = DukeGenericDestructible, "GRATE1", "BGRATE1", "VENT_BUST", solid, unblocking
1113 = DukeGenericDestructible, "CIRCLEPANNEL", "CIRCLEPANNELBROKE", "VENT_BUST", unblocking
342 = DukeGenericDestructible, "PANNEL1", "BPANNEL1", "VENT_BUST", solid, unblocking
343 = DukeGenericDestructible, "PANNEL2", "BPANNEL3", "VENT_BUST", solid, unblocking
4099 = DukeGenericDestructible, "PANNEL3", "BPANNEL3", "VENT_BUST", unblocking
556 = DukeGenericDestructible, "CHAIR1", "BROKENCHAIR", solid, unblocking
557 = DukeGenericDestructible, "CHAIR2", "BROKENCHAIR", solid, unblocking
686 = DukeGenericDestructible, "MOVIECAMERA", "", "GLASS_HEAVYBREAK", solid, spawnscrap
678 = DukeGenericDestructible, "SCALE", "", "GLASS_HEAVYBREAK", solid, spawnscrap
685 = DukeGenericDestructible, "CAMERALIGHT", "", "GLASS_HEAVYBREAK", solid, spawnscrap
689 = DukeGenericDestructible, "IVUNIT", "", "GLASS_HEAVYBREAK", solid, spawnscrap
694 = DukeGenericDestructible, "POT1", "", "GLASS_HEAVYBREAK", solid, spawnscrap
695 = DukeGenericDestructible, "POT2", "", "GLASS_HEAVYBREAK", solid, spawnscrap
697 = DukeGenericDestructible, "POT3", "", "GLASS_HEAVYBREAK", solid, spawnscrap
4444 = DukeGenericDestructible, "TRIPODCAMERA", "", "GLASS_HEAVYBREAK", solid, spawnscrap
669 = DukeGenericDestructible, "*VACUUM", "", "GLASS_HEAVYBREAK", solid, spawnscrap
971 = DukeGenericDestructible, "OCEANSPRITE1", "", "", 8, blocking, spawnsmoke
972 = DukeGenericDestructible, "OCEANSPRITE2", "", "", 8, blocking, spawnsmoke
973 = DukeGenericDestructible, "OCEANSPRITE3", "", "", 8, blocking, spawnsmoke
974 = DukeGenericDestructible, "OCEANSPRITE4", "", "", spawnsmoke
975 = DukeGenericDestructible, "OCEANSPRITE5", "", "", 8, blocking, spawnsmoke
1025 = DukeGenericDestructible, "BOTTLE7", "", "GLASS_BREAKING", solid, spawnglass
551 = DukeGenericDestructible, "DOMELITE", "", "GLASS_HEAVYBREAK", blocking, spawnglass2
954 = DukeGenericDestructible, "BOTTLE1", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
955 = DukeGenericDestructible, "BOTTLE2", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
956 = DukeGenericDestructible, "BOTTLE3", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
957 = DukeGenericDestructible, "BOTTLE4", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1012 = DukeGenericDestructible, "BOTTLE5", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1013 = DukeGenericDestructible, "BOTTLE6", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1014 = DukeGenericDestructible, "BOTTLE8", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1158 = DukeGenericDestructible, "BOTTLE11", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1159 = DukeGenericDestructible, "BOTTLE12", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1160 = DukeGenericDestructible, "BOTTLE13", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1161 = DukeGenericDestructible, "BOTTLE14", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1162 = DukeGenericDestructible, "BOTTLE15", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1163 = DukeGenericDestructible, "BOTTLE16", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1164 = DukeGenericDestructible, "BOTTLE17", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1165 = DukeGenericDestructible, "BOTTLE18", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1166 = DukeGenericDestructible, "BOTTLE19", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
716 = DukeGenericDestructible, "WAITTOBESEATED", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
768 = DukeGenericDestructible, "SUSHIPLATE1", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
769 = DukeGenericDestructible, "SUSHIPLATE2", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
774 = DukeGenericDestructible, "SUSHIPLATE3", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
779 = DukeGenericDestructible, "SUSHIPLATE4", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
792 = DukeGenericDestructible, "SUSHIPLATE5", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
}
// most things in here will later go elsewhere, once better definition methods exist
tileflag TFLAG_WALLSWITCH {
HANDPRINTSWITCH

View file

@ -0,0 +1,234 @@
spawnclasses
{
2 = DukeActivator
3 = DukeTouchplate
4 = DukeActivatorLocked
5 = DukeSoundController
6 = DukeLocator
7 = DukeCycler
8 = DukeMasterSwitch
9 = DukeRespawnController
10 = DukeGPSpeed
4890 = DukeNaturalLightning
1221 = DukeCranePole
1222 = DukeCrane
563 = DukeWaterFountain
564 = DukeWaterFountain
565 = DukeWaterFountain
566 = DukeWaterFountain
567 = DukeWaterFountainBroke
951 = DukeBox
978 = DukeCone
908 = DukeTree1
910 = DukeTree2
990 = DukeTire
911 = DukeCactus
939 = DukeCactusBroke
2566 = DukeTripbombPlaced
2567 = DukeLaserline
546 = DukeCrack
547 = DukeCrack, "CRACK2"
548 = DukeCrack, "CRACK3"
549 = DukeCrack, "CRACK4"
916 = DukeFireext
1079 = DukeOozFilter
1247 = DukeSeenine
502 = DukeViewscreen
499 = DukeViewscreen2
621 = DukeCamera // yes, they are all the same!
622 = DukeCamera
623 = DukeCamera
624 = DukeCamera
625 = DukeCamera
3190 = DukeRespawnmarker
1267 = DukeRat
902 = DukeQueball
901 = DukeStripeBall
903 = DukePoolPocket
2590 = DukeForceSphere
1960 = DukeRecon
2300 = DukeOoz
2309 = DukeOoz2
2296 = DukeBloodSplat1
2297 = DukeBloodSplat2
2298 = DukeBloodSplat3
2299 = DukeBloodSplat4
1625 = DukeFireLaser
1646 = DukeShrinkSpark
2605 = DukeRPG
1641 = DukeFreezeBlast
1636 = DukeSpit
1360 = DukeCoolExplosion1
578 = DukeReactor2
580 = DukeReactor2Spark
1088 = DukeReactor
1092 = DukeReactorSpark
4465 = DukeGenericPole2
979 = DukeHangLight
869 = DukeStatueFlash
753 = DukeStatue
1157 = DukeBottle10
765 = DukeVase
4502 = DukeLetter
4361 = DukeDuck
4359 = DukeTarget
1346 = DukeHelicopter
2491 = DukeCar
26 = DukePipeBomb
940 = DukeBounceMine
1650 = DukeMortar
2999 = DukeFrameEffect
925 = DukeNeon
926 = DukeNeon, "NEON2"
1007 = DukeNeon, "NEON3"
1008 = DukeNeon, "NEON4"
1009 = DukeNeon, "NEON5"
1046 = DukeNeon, "NEON6"
142 = DukeNukeButton
1233 = DukeMoney
4460 = DukePaper
4410 = DukeMail
1380 = DukeWaterSplash
1031 = DukeGlassPieces
1032 = DukeGlassPieces1
1033 = DukeGlassPieces2
2533 = DukeShell
2535 = DukeShotgunShell
1226 = DukeBloodPool
407 = DukeFanSprite
516 = DukeSatellite
517 = DukeFuelPod
602 = DukeSolarPanel
607 = DukeAntenna
1358 = DukeFetus
1359 = DukeFetusBroke
969 = DukeHydroplant
1003 = DukeHydroplantBroke
981 = DukeHydrant
619 = DukePipe1
616 = DukePipe2
618 = DukePipe3
996 = DukePipe4
994 = DukePipe5
995 = DukePipe6
4943 = DukeJuryGuy
1353 = DukeSpaceMarine
1355 = DukeIndy
1352 = DukeMonk
1354 = DukeLuke
680 = DukeChair3
569 = DukeToilet
571 = DukeStall
1069 = DukePlug
568 = DukeFemMag
577 = DukeFemMag, "FEMMAG2"
4900 = DukeTag
4909 = DukeTag, "SIGN1"
4912 = DukeTag, "SIGN2"
285 = DukeMaskWall
913 = DukeMaskWall, "MASKWALL2"
914 = DukeMaskWall, "MASKWALL3"
915 = DukeMaskWall, "MASKWALL4"
514 = DukeMaskWall, "MASKWALL5"
1059 = DukeMaskWall, "MASKWALL6"
1174 = DukeMaskWall, "MASKWALL7"
1124 = DukeMaskWall, "MASKWALL8"
255 = DukeMaskWall, "MASKWALL9"
387 = DukeMaskWall, "MASKWALL10"
391 = DukeMaskWall, "MASKWALL11"
609 = DukeMaskWall, "MASKWALL12"
830 = DukeMaskWall, "MASKWALL13"
988 = DukeMaskWall, "MASKWALL14"
1024 = DukeMaskWall, "MASKWALL15"
550 = DukeFootprints
672 = DukeFootprints
673 = DukeFootprints
674 = DukeFootprints
952 = DukeBulletHole
554 = DukeCameraPole
977 = DukeGenericPole
1272 = DukeTrash
634 = DukeBolt1
635 = DukeBolt2
636 = DukeBolt3
637 = DukeBolt4
4525 = DukeSideBolt1
4526 = DukeSideBolt2
4527 = DukeSideBolt3
4528 = DukeSideBolt4
660 = DukeWaterdrip
160 = DukeDoorshock
1232 = DukeCanWithSomething
2807 = DukeCanWithSomething, "CANWITHSOMETHING2"
2808 = DukeCanWithSomething, "CANWITHSOMETHING3"
2809 = DukeCanWithSomething, "CANWITHSOMETHING4"
1647 = DukeTongue
1860 = DukeInnerJaw
1861 = DukeInnerJaw1
2245 = DukeJibs1
2250 = DukeJibs2
2255 = DukeJibs3
2260 = DukeJibs4
2265 = DukeJibs5
2286 = DukeJibs6
1768 = DukeHeadJib1
1772 = DukeArmJib1
1776 = DukeLegJib1
2201 = DukeLizmanHead
2205 = DukeLizmanArm
2209 = DukeLizmanLeg
1520 = DukePlayerTorso
1528 = DukePlayerGun
1536 = DukePlayerLeg
2370 = DukeGreenSlime
595 = DukeGenericDestructible, "GRATE1", "BGRATE1", "VENT_BUST", solid, unblocking
1113 = DukeGenericDestructible, "CIRCLEPANNEL", "CIRCLEPANNELBROKE", "VENT_BUST", unblocking
342 = DukeGenericDestructible, "PANNEL1", "BPANNEL1", "VENT_BUST", solid, unblocking
343 = DukeGenericDestructible, "PANNEL2", "BPANNEL3", "VENT_BUST", solid, unblocking
4099 = DukeGenericDestructible, "PANNEL3", "BPANNEL3", "VENT_BUST", unblocking
556 = DukeGenericDestructible, "CHAIR1", "BROKENCHAIR", "", solid, unblocking
557 = DukeGenericDestructible, "CHAIR2", "BROKENCHAIR", "", solid, unblocking
686 = DukeGenericDestructible, "MOVIECAMERA", "", "GLASS_HEAVYBREAK", solid, spawnscrap
678 = DukeGenericDestructible, "SCALE", "", "GLASS_HEAVYBREAK", solid, spawnscrap
685 = DukeGenericDestructible, "CAMERALIGHT", "", "GLASS_HEAVYBREAK", solid, spawnscrap
689 = DukeGenericDestructible, "IVUNIT", "", "GLASS_HEAVYBREAK", solid, spawnscrap
694 = DukeGenericDestructible, "POT1", "", "GLASS_HEAVYBREAK", solid, spawnscrap
695 = DukeGenericDestructible, "POT2", "", "GLASS_HEAVYBREAK", solid, spawnscrap
697 = DukeGenericDestructible, "POT3", "", "GLASS_HEAVYBREAK", solid, spawnscrap
4444 = DukeGenericDestructible, "TRIPODCAMERA", "", "GLASS_HEAVYBREAK", solid, spawnscrap
669 = DukeGenericDestructible, "*VACUUM", "", "GLASS_HEAVYBREAK", solid, spawnscrap
971 = DukeGenericDestructible, "OCEANSPRITE1", "", "", 8, blocking, spawnsmoke
972 = DukeGenericDestructible, "OCEANSPRITE2", "", "", 8, blocking, spawnsmoke
973 = DukeGenericDestructible, "OCEANSPRITE3", "", "", 8, blocking, spawnsmoke
974 = DukeGenericDestructible, "OCEANSPRITE4", "", "", spawnsmoke
975 = DukeGenericDestructible, "OCEANSPRITE5", "", "", 8, blocking, spawnsmoke
1025 = DukeGenericDestructible, "BOTTLE7", "", "GLASS_BREAKING", solid, spawnglass
551 = DukeGenericDestructible, "DOMELITE", "", "GLASS_HEAVYBREAK", blocking, spawnglass2
954 = DukeGenericDestructible, "BOTTLE1", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
955 = DukeGenericDestructible, "BOTTLE2", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
956 = DukeGenericDestructible, "BOTTLE3", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
957 = DukeGenericDestructible, "BOTTLE4", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1012 = DukeGenericDestructible, "BOTTLE5", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1013 = DukeGenericDestructible, "BOTTLE6", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1014 = DukeGenericDestructible, "BOTTLE8", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1158 = DukeGenericDestructible, "BOTTLE11", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1159 = DukeGenericDestructible, "BOTTLE12", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1160 = DukeGenericDestructible, "BOTTLE13", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1161 = DukeGenericDestructible, "BOTTLE14", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1162 = DukeGenericDestructible, "BOTTLE15", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1163 = DukeGenericDestructible, "BOTTLE16", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1164 = DukeGenericDestructible, "BOTTLE17", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1165 = DukeGenericDestructible, "BOTTLE18", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1166 = DukeGenericDestructible, "BOTTLE19", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
716 = DukeGenericDestructible, "WAITTOBESEATED", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
768 = DukeGenericDestructible, "SUSHIPLATE1", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
769 = DukeGenericDestructible, "SUSHIPLATE2", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
774 = DukeGenericDestructible, "SUSHIPLATE3", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
779 = DukeGenericDestructible, "SUSHIPLATE4", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
792 = DukeGenericDestructible, "SUSHIPLATE5", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
}

View file

@ -1,167 +1,5 @@
include "engine/defines.def"
spawnclasses
{
3464 = RedneckCheerBomb
2430 = RedneckCactusLargeYellow
2431 = RedneckCactusLargeGreen
2432 = RedneckCactusLargeBrown
2443 = RedneckCactusDrug
2451 = RedneckCactusWithHoles
2455 = RedneckCactusSmall
2446 = RedneckCactusLargeGreen2
2460 = RedneckCactusDebris1
2465 = RedneckCactusDebris2
7424 = RedneckRabbitSpawner
5872 = RedneckBikeJibA
5877 = RedneckBikeJibB
5882 = RedneckBikeJibC
6112 = RedneckBikerJibA
6117 = RedneckBikerJibB
6121 = RedneckBikerJibC
6127 = RedneckBikerJibD
7000 = RedneckCheerJibA
7005 = RedneckCheerJibB
7010 = RedneckCheerJibC
7015 = RedneckCheerJibD
7020 = RedneckFBoatJibA
7025 = RedneckFBoatJibB
7387 = RedneckRabbitJibA
7392 = RedneckRabbitJibB
7397 = RedneckRabbitJibC
8890 = RedneckMamaJibA
8895 = RedneckMamaJibB
8487 = RedneckBalloons1
8489 = RedneckBalloons2
8165 = RedneckGamblingMachine
8593 = RedneckGamblingMachine2
2437 = RedneckBell
5270 = RedneckUfoRRRA
5274 = RedneckUfo2
5278 = RedneckUfo3
5282 = RedneckUfo4
5286 = RedneckUfo5
8192 = RedneckUfoSpawnerToggle
1781 = RedneckChickenArrow
1790 = RedneckBoatGrenade
4956 = RedneckPigDisplay
8450 = RedneckAirplane
8099 = RedneckPiano
8094 = RedneckPianoKeys
8679 = RedneckSnakeRiverSign
8448 = RedneckMusicNotes
8704 = RedneckJoe9000
7220 = RedneckEmptyBike
7233 = RedneckEmptyBoat
7636 = DukeGenericDestructible, "OLDPHOTO0", "OLDPHOTO0BROKE", "VENT_BUST"
7638 = DukeGenericDestructible, "OLDPHOTO1", "OLDPHOTO1BROKE", "VENT_BUST"
7640 = DukeGenericDestructible, "FLAMMABLESIGN", "FLAMMABLESIGNBROKE", "VENT_BUST"
7644 = DukeGenericDestructible, "OLDPHOTO2", "OLDPHOTO2BROKE", "VENT_BUST"
7646 = DukeGenericDestructible, "OLDPHOTO3", "OLDPHOTO3BROKE", "VENT_BUST"
7648 = DukeGenericDestructible, "WILLIESGUNS", "WILLIESGUNSBROKE", "WOODBREK"
7650 = DukeGenericDestructible, "FLAMMABLE2SIGN", "FLAMMABLE2SIGNBROKE", "VENT_BUST"
7653 = DukeGenericDestructible, "LABSIGN", "LABSIGNBROKE", "VENT_BUST"
7655 = DukeGenericDestructible, "LABSIGN2", "LABSIGN2BROKE", "VENT_BUST"
7691 = DukeGenericDestructible, "SALOONSIGN", "SALOONSIGNBROKE", "VENT_BUST"
7875 = DukeGenericDestructible, "NOMOTOSIGN", "NOMOTOSIGNBROKE", "VENT_BUST"
7876 = DukeGenericDestructible, "STREETSIGN1", "STREETSIGN1BROKE", "VENT_BUST"
7881 = DukeGenericDestructible, "DANGERSIGN", "DANGERSIGNBROKE", "VENT_BUST"
7883 = DukeGenericDestructible, "RADIATIONSIGN", "RADIATIONSIGNBROKE", "VENT_BUST"
7879 = DukeGenericDestructible, "DIABLOHWAY", "DIABLOHWAYBROKE", "SIGNHIT", damaging
7694 = DukeGenericDestructible, "BANKELPESO", "BANKELPESOBROKE", "WOODBREK"
7700 = DukeGenericDestructible, "SHERIFFSIGN", "SHERIFFSIGNBROKE", "WOODBREK"
7702 = DukeGenericDestructible, "STORESIGN", "STORESIGNBROKE", "WOODBREK"
7711 = DukeGenericDestructible, "HOTELSIGN", "HOTELSIGNBROKE", "WOODBREK"
7595 = DukeGenericDestructible, "RRTILE7595", "RRTILE7705", "SIGNHIT"
7704 = DukeGenericDestructible, "RRTILE7704", "RRTILE7705", "SIGNHIT"
8579 = DukeGenericDestructible, "RRTILE8579", "RRTILE5014", "GLASS_HEAVYBREAK"
7441 = DukeGenericDestructible, "RRTILE7441", "RRTILE5016", "GLASS_HEAVYBREAK"
7534 = DukeGenericDestructible, "RRTILE7534", "RRTILE5029", "GLASS_HEAVYBREAK"
7545 = DukeGenericDestructible, "RRTILE7545", "RRTILE5030", "GLASS_HEAVYBREAK"
7547 = DukeGenericDestructible, "RRTILE7547", "RRTILE5031", "GLASS_HEAVYBREAK"
7574 = DukeGenericDestructible, "RRTILE7574", "RRTILE5032", "GLASS_HEAVYBREAK"
7575 = DukeGenericDestructible, "RRTILE7575", "RRTILE5033", "GLASS_HEAVYBREAK"
7578 = DukeGenericDestructible, "RRTILE7578", "RRTILE5034", "GLASS_HEAVYBREAK"
7478 = DukeGenericDestructible, "RRTILE7478", "RRTILE5035", "GLASS_HEAVYBREAK"
8525 = DukeGenericDestructible, "RRTILE8525", "RRTILE5036", "GLASS_HEAVYBREAK"
8537 = DukeGenericDestructible, "RRTILE8537", "RRTILE5062", "GLASS_HEAVYBREAK"
8215 = DukeGenericDestructible, "RRTILE8215", "RRTILE5064", "GLASS_HEAVYBREAK"
8216 = DukeGenericDestructible, "*RRTILE8216", "RRTILE5065", "GLASS_HEAVYBREAK" // *prefix means fullbright.
8217 = DukeGenericDestructible, "RRTILE8217", "RRTILE5066", "GLASS_HEAVYBREAK"
8218 = DukeGenericDestructible, "*RRTILE8218", "RRTILE5067", "GLASS_HEAVYBREAK"
8220 = DukeGenericDestructible, "*RRTILE8220", "RRTILE5068", "GLASS_HEAVYBREAK"
8221 = DukeGenericDestructible, "RRTILE8221", "RRTILE5069", "GLASS_HEAVYBREAK"
8395 = DukeGenericDestructible, "RRTILE8395", "RRTILE5072", "GLASS_HEAVYBREAK"
8423 = DukeGenericDestructible, "RRTILE8423", "RRTILE5073", "GLASS_HEAVYBREAK"
8462 = DukeGenericDestructible, "RRTILE8462", "RRTILE5074", "GLASS_HEAVYBREAK"
8475 = DukeGenericDestructible, "RRTILE8475", "RRTILE5075", "GLASS_HEAVYBREAK"
8608 = DukeGenericDestructible, "RRTILE8608", "RRTILE5083", "GLASS_HEAVYBREAK"
8609 = DukeGenericDestructible, "RRTILE8609", "RRTILE5084", "GLASS_HEAVYBREAK"
8312 = DukeGenericDestructible, "RRTILE8312", "RRTILE5071", "POOLBUD"
8567 = DukeGenericDestructible, "RRTILE8567", "RRTILE5082", "GLASS_HEAVYBREAK"
8568 = DukeGenericDestructible, "RRTILE8568", "RRTILE5082", "GLASS_HEAVYBREAK"
8569 = DukeGenericDestructible, "RRTILE8569", "RRTILE5082", "GLASS_HEAVYBREAK"
8570 = DukeGenericDestructible, "RRTILE8570", "RRTILE5082", "GLASS_HEAVYBREAK"
8571 = DukeGenericDestructible, "RRTILE8571", "RRTILE5082", "GLASS_HEAVYBREAK"
8640 = DukeGenericDestructible, "RRTILE8640", "RRTILE5085", "GLASS_HEAVYBREAK"
8611 = DukeGenericDestructible, "RRTILE8611", "RRTILE5086", "GLASS_HEAVYBREAK"
8497 = DukeGenericDestructible, "RRTILE8497", "RRTILE5076", "GLASS_HEAVYBREAK"
8498 = DukeGenericDestructible, "RRTILE8498", "RRTILE5077", "GLASS_HEAVYBREAK"
8499 = DukeGenericDestructible, "RRTILE8499", "RRTILE5078", "GLASS_HEAVYBREAK"
8503 = DukeGenericDestructible, "RRTILE8503", "RRTILE5079", "GLASS_HEAVYBREAK"
7901 = DukeGenericDestructible, "RRTILE7901", "RRTILE5080", "GLASS_HEAVYBREAK"
7696 = DukeGenericDestructible, "RRTILE7696", "RRTILE7697", "WOODBREK"
7806 = DukeGenericDestructible, "RRTILE7806", "RRTILE5043", "GLASS_HEAVYBREAK"
7900 = DukeGenericDestructible, "RRTILE7900", "RRTILE5047", "GLASS_HEAVYBREAK"
7906 = DukeGenericDestructible, "RRTILE7906", "RRTILE5048", "GLASS_HEAVYBREAK"
7912 = DukeGenericDestructible, "RRTILE7912", "RRTILE5049", "GLASS_HEAVYBREAK"
7913 = DukeGenericDestructible, "RRTILE7913", "RRTILE5049", "GLASS_HEAVYBREAK"
8047 = DukeGenericDestructible, "RRTILE8047", "RRTILE5050", "GLASS_HEAVYBREAK"
8596 = DukeGenericDestructible, "RRTILE8596", "RRTILE8598", "GLASS_HEAVYBREAK"
8059 = DukeGenericDestructible, "RRTILE8059", "RRTILE5051", "GLASS_HEAVYBREAK"
8060 = DukeGenericDestructible, "RRTILE8060", "RRTILE5052", "GLASS_HEAVYBREAK"
8222 = DukeGenericDestructible, "RRTILE8222", "RRTILE5053", "GLASS_HEAVYBREAK"
8223 = DukeGenericDestructible, "RRTILE8223", "RRTILE5054", "GLASS_HEAVYBREAK"
8224 = DukeGenericDestructible, "RRTILE8224", "RRTILE5055", "GLASS_HEAVYBREAK"
8370 = DukeGenericDestructible, "RRTILE8370", "RRTILE5056", "GLASS_HEAVYBREAK"
8371 = DukeGenericDestructible, "RRTILE8371", "RRTILE5057", "GLASS_HEAVYBREAK"
8372 = DukeGenericDestructible, "RRTILE8372", "RRTILE5058", "GLASS_HEAVYBREAK"
8373 = DukeGenericDestructible, "RRTILE8373", "RRTILE5059", "GLASS_HEAVYBREAK"
8396 = DukeGenericDestructible, "RRTILE8396", "RRTILE5038", "GLASS_HEAVYBREAK"
8397 = DukeGenericDestructible, "RRTILE8397", "RRTILE5039", "GLASS_HEAVYBREAK"
8398 = DukeGenericDestructible, "RRTILE8398", "RRTILE5040", "GLASS_HEAVYBREAK"
8399 = DukeGenericDestructible, "RRTILE8399", "RRTILE5041", "GLASS_HEAVYBREAK"
8385 = DukeGenericDestructible, "RRTILE8385", "RRTILE8386", "GLASS_HEAVYBREAK"
8387 = DukeGenericDestructible, "RRTILE8387", "RRTILE8388", "GLASS_HEAVYBREAK"
8389 = DukeGenericDestructible, "RRTILE8389", "RRTILE8390", "GLASS_HEAVYBREAK"
8391 = DukeGenericDestructible, "RRTILE8391", "RRTILE8392", "GLASS_HEAVYBREAK"
7553 = DukeGenericDestructible, "RRTILE7553", "RRTILE5035", "GLASS_HEAVYBREAK"
8475 = DukeGenericDestructible, "RRTILE8475", "RRTILE5075", "GLASS_HEAVYBREAK"
8498 = DukeGenericDestructible, "RRTILE8498", "RRTILE5077", "GLASS_HEAVYBREAK"
8499 = DukeGenericDestructible, "RRTILE8499", "RRTILE5078", "GLASS_HEAVYBREAK"
2445 = DukeGenericDestructible, "RRTILE2445", "RRTILE2450", "GLASS_HEAVYBREAK"
7885 = DukeGenericDestructible, "RRTILE7885", "RRTILE5045", "SIGNHIT", damaging
7890 = DukeGenericDestructible, "RRTILE7890", "RRTILE5045", "SIGNHIT", damaging
7886 = DukeGenericDestructible, "RRTILE7886", "RRTILE5046", "SIGNHIT", damaging
7887 = DukeGenericDestructible, "RRTILE7887", "RRTILE5044", "GLASS_HEAVYBREAK", damaging
2123 = DukeGenericDestructible, "RRTILE2123", "RRTILE2124", "GLASS_BREAKING", damaging
3773 = DukeGenericDestructible, "RRTILE3773", "RRTILE8651", "GLASS_BREAKING", damaging
7533 = DukeGenericDestructible, "*RRTILE7533", "*RRTILE5035", "SIGNHIT", damaging
3584 = DukeGenericDestructible, "RRTILE3584", "RRTILE8681", "SIGNHIT", damaging
8394 = DukeGenericDestructible, "RRTILE8394", "RRTILE5072", "SIGNHIT"
8461 = DukeGenericDestructible, "RRTILE8461", "RRTILE5074", "GLASS_HEAVYBREAK"
8462 = DukeGenericDestructible, "RRTILE8462", "RRTILE5074", "GLASS_HEAVYBREAK"
8682 = DukeGenericDestructible, "RRTILE8682", "RRTILE8683", "GLASS_HEAVYBREAK"
1824 = DukeGenericDestructible, "YELLOWBOTTLE", "", "GLASS_HEAVYBREAK", spawnglass2
244 = DukeActor, "*WALLLIGHT3"
246 = DukeActor, "*WALLLIGHT1"
3668 = DukeActor, "*RRTILE3668"
3795 = DukeActor, "*RRTILE3795"
7505 = DukeActor, "*RRTILE7505"
7506 = DukeActor, "*RRTILE7506"
}
tileflag TFLAG_WALLSWITCH {
MULTISWITCH2
@ -194,34 +32,3 @@ tileflag TFLAG_BLOCKDOOR {
RRTILE8605
}
breakwall RRTILE7555, RRTILE5015, GLASS_HEAVYBREAK
breakwall RRTILE7441, RRTILE5016, GLASS_HEAVYBREAK
breakwall RRTILE7559, RRTILE5017, GLASS_HEAVYBREAK
breakwall RRTILE7433, RRTILE5018, GLASS_HEAVYBREAK
breakwall RRTILE7557, RRTILE5019, GLASS_HEAVYBREAK
breakwall RRTILE7553, RRTILE5020, GLASS_HEAVYBREAK
breakwall RRTILE7552, RRTILE5021, GLASS_HEAVYBREAK
breakwall RRTILE7568, RRTILE5022, GLASS_HEAVYBREAK
breakwall RRTILE7540, RRTILE5023, GLASS_HEAVYBREAK
breakwall RRTILE7558, RRTILE5024, GLASS_HEAVYBREAK
breakwall RRTILE7554, RRTILE5025, GLASS_HEAVYBREAK
breakwall RRTILE7579, RRTILE5026, GLASS_HEAVYBREAK
breakwall RRTILE7561, RRTILE5027, GLASS_HEAVYBREAK
breakwall RRTILE7580, RRTILE5037, GLASS_HEAVYBREAK
breakwall RRTILE8227, RRTILE5070, GLASS_HEAVYBREAK
breakwall RRTILE8503, RRTILE5079, GLASS_HEAVYBREAK
breakwall RRTILE8567, RRTILE5082, GLASS_HEAVYBREAK
breakwall RRTILE8568, RRTILE5082, GLASS_HEAVYBREAK
breakwall RRTILE8569, RRTILE5082, GLASS_HEAVYBREAK
breakwall RRTILE8570, RRTILE5082, GLASS_HEAVYBREAK
breakwall RRTILE8571, RRTILE5082, GLASS_HEAVYBREAK
breakwall RRTILE7859, RRTILE5081, GLASS_HEAVYBREAK
breakwall RRTILE8496, RRTILE5061, GLASS_HEAVYBREAK
breakwall RRTILE8620, RRTILE8621, WOODBREK
breakwall RRTILE8622, RRTILE8623, SIGNHIT
breakwall WEAPONCABINET, WEAPONCABINETBROKE, GLASS_HEAVYBREAK
breakwall RRTILE8497, RRTILE5076, SIGNHIT
breakwall RRTILE7533, RRTILE5035, SIGNHIT
breakwall RRTILE8617, RRTILE8618, WOODBREK, "RedneckBreakwalls.SinglePlayerBreak"

View file

@ -0,0 +1,32 @@
breakwalls
{
RRTILE7555 = RRTILE5015, GLASS_HEAVYBREAK
RRTILE7441 = RRTILE5016, GLASS_HEAVYBREAK
RRTILE7559 = RRTILE5017, GLASS_HEAVYBREAK
RRTILE7433 = RRTILE5018, GLASS_HEAVYBREAK
RRTILE7557 = RRTILE5019, GLASS_HEAVYBREAK
RRTILE7553 = RRTILE5020, GLASS_HEAVYBREAK
RRTILE7552 = RRTILE5021, GLASS_HEAVYBREAK
RRTILE7568 = RRTILE5022, GLASS_HEAVYBREAK
RRTILE7540 = RRTILE5023, GLASS_HEAVYBREAK
RRTILE7558 = RRTILE5024, GLASS_HEAVYBREAK
RRTILE7554 = RRTILE5025, GLASS_HEAVYBREAK
RRTILE7579 = RRTILE5026, GLASS_HEAVYBREAK
RRTILE7561 = RRTILE5027, GLASS_HEAVYBREAK
RRTILE7580 = RRTILE5037, GLASS_HEAVYBREAK
RRTILE8227 = RRTILE5070, GLASS_HEAVYBREAK
RRTILE8503 = RRTILE5079, GLASS_HEAVYBREAK
RRTILE8567 = RRTILE5082, GLASS_HEAVYBREAK
RRTILE8568 = RRTILE5082, GLASS_HEAVYBREAK
RRTILE8569 = RRTILE5082, GLASS_HEAVYBREAK
RRTILE8570 = RRTILE5082, GLASS_HEAVYBREAK
RRTILE8571 = RRTILE5082, GLASS_HEAVYBREAK
RRTILE7859 = RRTILE5081, GLASS_HEAVYBREAK
RRTILE8496 = RRTILE5061, GLASS_HEAVYBREAK
RRTILE8620 = RRTILE8621, WOODBREK
RRTILE8622 = RRTILE8623, SIGNHIT
WEAPONCABINET = WEAPONCABINETBROKE, GLASS_HEAVYBREAK
RRTILE8497 = RRTILE5076, SIGNHIT
RRTILE7533 = RRTILE5035, SIGNHIT
RRTILE8617 = RRTILE8618, WOODBREK, "RedneckBreakwalls.SinglePlayerBreak"
}

View file

@ -0,0 +1,162 @@
spawnclasses
{
3464 = RedneckCheerBomb
2430 = RedneckCactusLargeYellow
2431 = RedneckCactusLargeGreen
2432 = RedneckCactusLargeBrown
2443 = RedneckCactusDrug
2451 = RedneckCactusWithHoles
2455 = RedneckCactusSmall
2446 = RedneckCactusLargeGreen2
2460 = RedneckCactusDebris1
2465 = RedneckCactusDebris2
7424 = RedneckRabbitSpawner
5872 = RedneckBikeJibA
5877 = RedneckBikeJibB
5882 = RedneckBikeJibC
6112 = RedneckBikerJibA
6117 = RedneckBikerJibB
6121 = RedneckBikerJibC
6127 = RedneckBikerJibD
7000 = RedneckCheerJibA
7005 = RedneckCheerJibB
7010 = RedneckCheerJibC
7015 = RedneckCheerJibD
7020 = RedneckFBoatJibA
7025 = RedneckFBoatJibB
7387 = RedneckRabbitJibA
7392 = RedneckRabbitJibB
7397 = RedneckRabbitJibC
8890 = RedneckMamaJibA
8895 = RedneckMamaJibB
8487 = RedneckBalloons1
8489 = RedneckBalloons2
8165 = RedneckGamblingMachine
8593 = RedneckGamblingMachine2
2437 = RedneckBell
5270 = RedneckUfoRRRA
5274 = RedneckUfo2
5278 = RedneckUfo3
5282 = RedneckUfo4
5286 = RedneckUfo5
8192 = RedneckUfoSpawnerToggle
1781 = RedneckChickenArrow
1790 = RedneckBoatGrenade
4956 = RedneckPigDisplay
8450 = RedneckAirplane
8099 = RedneckPiano
8094 = RedneckPianoKeys
8679 = RedneckSnakeRiverSign
8448 = RedneckMusicNotes
8704 = RedneckJoe9000
7220 = RedneckEmptyBike
7233 = RedneckEmptyBoat
7636 = DukeGenericDestructible, "OLDPHOTO0", "OLDPHOTO0BROKE", "VENT_BUST"
7638 = DukeGenericDestructible, "OLDPHOTO1", "OLDPHOTO1BROKE", "VENT_BUST"
7640 = DukeGenericDestructible, "FLAMMABLESIGN", "FLAMMABLESIGNBROKE", "VENT_BUST"
7644 = DukeGenericDestructible, "OLDPHOTO2", "OLDPHOTO2BROKE", "VENT_BUST"
7646 = DukeGenericDestructible, "OLDPHOTO3", "OLDPHOTO3BROKE", "VENT_BUST"
7648 = DukeGenericDestructible, "WILLIESGUNS", "WILLIESGUNSBROKE", "WOODBREK"
7650 = DukeGenericDestructible, "FLAMMABLE2SIGN", "FLAMMABLE2SIGNBROKE", "VENT_BUST"
7653 = DukeGenericDestructible, "LABSIGN", "LABSIGNBROKE", "VENT_BUST"
7655 = DukeGenericDestructible, "LABSIGN2", "LABSIGN2BROKE", "VENT_BUST"
7691 = DukeGenericDestructible, "SALOONSIGN", "SALOONSIGNBROKE", "VENT_BUST"
7875 = DukeGenericDestructible, "NOMOTOSIGN", "NOMOTOSIGNBROKE", "VENT_BUST"
7876 = DukeGenericDestructible, "STREETSIGN1", "STREETSIGN1BROKE", "VENT_BUST"
7881 = DukeGenericDestructible, "DANGERSIGN", "DANGERSIGNBROKE", "VENT_BUST"
7883 = DukeGenericDestructible, "RADIATIONSIGN", "RADIATIONSIGNBROKE", "VENT_BUST"
7879 = DukeGenericDestructible, "DIABLOHWAY", "DIABLOHWAYBROKE", "SIGNHIT", damaging
7694 = DukeGenericDestructible, "BANKELPESO", "BANKELPESOBROKE", "WOODBREK"
7700 = DukeGenericDestructible, "SHERIFFSIGN", "SHERIFFSIGNBROKE", "WOODBREK"
7702 = DukeGenericDestructible, "STORESIGN", "STORESIGNBROKE", "WOODBREK"
7711 = DukeGenericDestructible, "HOTELSIGN", "HOTELSIGNBROKE", "WOODBREK"
7595 = DukeGenericDestructible, "RRTILE7595", "RRTILE7705", "SIGNHIT"
7704 = DukeGenericDestructible, "RRTILE7704", "RRTILE7705", "SIGNHIT"
8579 = DukeGenericDestructible, "RRTILE8579", "RRTILE5014", "GLASS_HEAVYBREAK"
7441 = DukeGenericDestructible, "RRTILE7441", "RRTILE5016", "GLASS_HEAVYBREAK"
7534 = DukeGenericDestructible, "RRTILE7534", "RRTILE5029", "GLASS_HEAVYBREAK"
7545 = DukeGenericDestructible, "RRTILE7545", "RRTILE5030", "GLASS_HEAVYBREAK"
7547 = DukeGenericDestructible, "RRTILE7547", "RRTILE5031", "GLASS_HEAVYBREAK"
7574 = DukeGenericDestructible, "RRTILE7574", "RRTILE5032", "GLASS_HEAVYBREAK"
7575 = DukeGenericDestructible, "RRTILE7575", "RRTILE5033", "GLASS_HEAVYBREAK"
7578 = DukeGenericDestructible, "RRTILE7578", "RRTILE5034", "GLASS_HEAVYBREAK"
7478 = DukeGenericDestructible, "RRTILE7478", "RRTILE5035", "GLASS_HEAVYBREAK"
8525 = DukeGenericDestructible, "RRTILE8525", "RRTILE5036", "GLASS_HEAVYBREAK"
8537 = DukeGenericDestructible, "RRTILE8537", "RRTILE5062", "GLASS_HEAVYBREAK"
8215 = DukeGenericDestructible, "RRTILE8215", "RRTILE5064", "GLASS_HEAVYBREAK"
8216 = DukeGenericDestructible, "*RRTILE8216", "RRTILE5065", "GLASS_HEAVYBREAK" // *prefix means fullbright.
8217 = DukeGenericDestructible, "RRTILE8217", "RRTILE5066", "GLASS_HEAVYBREAK"
8218 = DukeGenericDestructible, "*RRTILE8218", "RRTILE5067", "GLASS_HEAVYBREAK"
8220 = DukeGenericDestructible, "*RRTILE8220", "RRTILE5068", "GLASS_HEAVYBREAK"
8221 = DukeGenericDestructible, "RRTILE8221", "RRTILE5069", "GLASS_HEAVYBREAK"
8395 = DukeGenericDestructible, "RRTILE8395", "RRTILE5072", "GLASS_HEAVYBREAK"
8423 = DukeGenericDestructible, "RRTILE8423", "RRTILE5073", "GLASS_HEAVYBREAK"
8462 = DukeGenericDestructible, "RRTILE8462", "RRTILE5074", "GLASS_HEAVYBREAK"
8475 = DukeGenericDestructible, "RRTILE8475", "RRTILE5075", "GLASS_HEAVYBREAK"
8608 = DukeGenericDestructible, "RRTILE8608", "RRTILE5083", "GLASS_HEAVYBREAK"
8609 = DukeGenericDestructible, "RRTILE8609", "RRTILE5084", "GLASS_HEAVYBREAK"
8312 = DukeGenericDestructible, "RRTILE8312", "RRTILE5071", "POOLBUD"
8567 = DukeGenericDestructible, "RRTILE8567", "RRTILE5082", "GLASS_HEAVYBREAK"
8568 = DukeGenericDestructible, "RRTILE8568", "RRTILE5082", "GLASS_HEAVYBREAK"
8569 = DukeGenericDestructible, "RRTILE8569", "RRTILE5082", "GLASS_HEAVYBREAK"
8570 = DukeGenericDestructible, "RRTILE8570", "RRTILE5082", "GLASS_HEAVYBREAK"
8571 = DukeGenericDestructible, "RRTILE8571", "RRTILE5082", "GLASS_HEAVYBREAK"
8640 = DukeGenericDestructible, "RRTILE8640", "RRTILE5085", "GLASS_HEAVYBREAK"
8611 = DukeGenericDestructible, "RRTILE8611", "RRTILE5086", "GLASS_HEAVYBREAK"
8497 = DukeGenericDestructible, "RRTILE8497", "RRTILE5076", "GLASS_HEAVYBREAK"
8498 = DukeGenericDestructible, "RRTILE8498", "RRTILE5077", "GLASS_HEAVYBREAK"
8499 = DukeGenericDestructible, "RRTILE8499", "RRTILE5078", "GLASS_HEAVYBREAK"
8503 = DukeGenericDestructible, "RRTILE8503", "RRTILE5079", "GLASS_HEAVYBREAK"
7901 = DukeGenericDestructible, "RRTILE7901", "RRTILE5080", "GLASS_HEAVYBREAK"
7696 = DukeGenericDestructible, "RRTILE7696", "RRTILE7697", "WOODBREK"
7806 = DukeGenericDestructible, "RRTILE7806", "RRTILE5043", "GLASS_HEAVYBREAK"
7900 = DukeGenericDestructible, "RRTILE7900", "RRTILE5047", "GLASS_HEAVYBREAK"
7906 = DukeGenericDestructible, "RRTILE7906", "RRTILE5048", "GLASS_HEAVYBREAK"
7912 = DukeGenericDestructible, "RRTILE7912", "RRTILE5049", "GLASS_HEAVYBREAK"
7913 = DukeGenericDestructible, "RRTILE7913", "RRTILE5049", "GLASS_HEAVYBREAK"
8047 = DukeGenericDestructible, "RRTILE8047", "RRTILE5050", "GLASS_HEAVYBREAK"
8596 = DukeGenericDestructible, "RRTILE8596", "RRTILE8598", "GLASS_HEAVYBREAK"
8059 = DukeGenericDestructible, "RRTILE8059", "RRTILE5051", "GLASS_HEAVYBREAK"
8060 = DukeGenericDestructible, "RRTILE8060", "RRTILE5052", "GLASS_HEAVYBREAK"
8222 = DukeGenericDestructible, "RRTILE8222", "RRTILE5053", "GLASS_HEAVYBREAK"
8223 = DukeGenericDestructible, "RRTILE8223", "RRTILE5054", "GLASS_HEAVYBREAK"
8224 = DukeGenericDestructible, "RRTILE8224", "RRTILE5055", "GLASS_HEAVYBREAK"
8370 = DukeGenericDestructible, "RRTILE8370", "RRTILE5056", "GLASS_HEAVYBREAK"
8371 = DukeGenericDestructible, "RRTILE8371", "RRTILE5057", "GLASS_HEAVYBREAK"
8372 = DukeGenericDestructible, "RRTILE8372", "RRTILE5058", "GLASS_HEAVYBREAK"
8373 = DukeGenericDestructible, "RRTILE8373", "RRTILE5059", "GLASS_HEAVYBREAK"
8396 = DukeGenericDestructible, "RRTILE8396", "RRTILE5038", "GLASS_HEAVYBREAK"
8397 = DukeGenericDestructible, "RRTILE8397", "RRTILE5039", "GLASS_HEAVYBREAK"
8398 = DukeGenericDestructible, "RRTILE8398", "RRTILE5040", "GLASS_HEAVYBREAK"
8399 = DukeGenericDestructible, "RRTILE8399", "RRTILE5041", "GLASS_HEAVYBREAK"
8385 = DukeGenericDestructible, "RRTILE8385", "RRTILE8386", "GLASS_HEAVYBREAK"
8387 = DukeGenericDestructible, "RRTILE8387", "RRTILE8388", "GLASS_HEAVYBREAK"
8389 = DukeGenericDestructible, "RRTILE8389", "RRTILE8390", "GLASS_HEAVYBREAK"
8391 = DukeGenericDestructible, "RRTILE8391", "RRTILE8392", "GLASS_HEAVYBREAK"
7553 = DukeGenericDestructible, "RRTILE7553", "RRTILE5035", "GLASS_HEAVYBREAK"
8475 = DukeGenericDestructible, "RRTILE8475", "RRTILE5075", "GLASS_HEAVYBREAK"
8498 = DukeGenericDestructible, "RRTILE8498", "RRTILE5077", "GLASS_HEAVYBREAK"
8499 = DukeGenericDestructible, "RRTILE8499", "RRTILE5078", "GLASS_HEAVYBREAK"
2445 = DukeGenericDestructible, "RRTILE2445", "RRTILE2450", "GLASS_HEAVYBREAK"
7885 = DukeGenericDestructible, "RRTILE7885", "RRTILE5045", "SIGNHIT", damaging
7890 = DukeGenericDestructible, "RRTILE7890", "RRTILE5045", "SIGNHIT", damaging
7886 = DukeGenericDestructible, "RRTILE7886", "RRTILE5046", "SIGNHIT", damaging
7887 = DukeGenericDestructible, "RRTILE7887", "RRTILE5044", "GLASS_HEAVYBREAK", damaging
2123 = DukeGenericDestructible, "RRTILE2123", "RRTILE2124", "GLASS_BREAKING", damaging
3773 = DukeGenericDestructible, "RRTILE3773", "RRTILE8651", "GLASS_BREAKING", damaging
7533 = DukeGenericDestructible, "*RRTILE7533", "*RRTILE5035", "SIGNHIT", damaging
3584 = DukeGenericDestructible, "RRTILE3584", "RRTILE8681", "SIGNHIT", damaging
8394 = DukeGenericDestructible, "RRTILE8394", "RRTILE5072", "SIGNHIT"
8461 = DukeGenericDestructible, "RRTILE8461", "RRTILE5074", "GLASS_HEAVYBREAK"
8462 = DukeGenericDestructible, "RRTILE8462", "RRTILE5074", "GLASS_HEAVYBREAK"
8682 = DukeGenericDestructible, "RRTILE8682", "RRTILE8683", "GLASS_HEAVYBREAK"
1824 = DukeGenericDestructible, "YELLOWBOTTLE", "", "GLASS_HEAVYBREAK", spawnglass2
244 = DukeActor, "*WALLLIGHT3"
246 = DukeActor, "*WALLLIGHT1"
3668 = DukeActor, "*RRTILE3668"
3795 = DukeActor, "*RRTILE3795"
7505 = DukeActor, "*RRTILE7505"
7506 = DukeActor, "*RRTILE7506"
}

View file

@ -1,275 +1,5 @@
include "engine/defines.def"
spawnclasses
{
2 = DukeActivator
3 = DukeTouchplate
4 = DukeActivatorLocked
5 = DukeSoundController
6 = DukeLocator
7 = DukeCycler
8 = DukeMasterSwitch
9 = DukeRespawnController
10 = DukeGPSpeed
18 = DukeTorchCtrl
35 = DukeLightningCtrl
68 = DukeShadeCtrl
67 = DukeDummyCtrl
71 = DukeSoundFX
64 = RedneckMinecartDef
65 = RedneckMinecartSound
66 = RedneckMinecartInner
11 = RedneckJaildoorDef
38 = RedneckJaildoorSound
19 = RedneckGeometryEffect
34 = RedneckKeyinfoSetter
1298 = DukeCranePole
1299 = DukeCrane
1092 = DukeWaterFountain
1093 = DukeWaterFountain
1094 = DukeWaterFountain
1095 = DukeWaterFountain
1096 = DukeWaterFountainBroke
1211 = DukeBox
1191 = DukeTree1
1193 = DukeTree2
1230 = DukeTire
1194 = DukeCactus
1203 = DukeCactusBroke
1075 = DukeCrack
1076 = DukeCrack, "CRACK2"
1077 = DukeCrack, "CRACK3"
1078 = DukeCrack, "CRACK4"
1273 = DukeOozFilter
1324 = DukeSeenine
1346 = DukeTrash
1127 = DukeBolt1
1128 = DukeBolt2
1129 = DukeBolt3
1130 = DukeBolt4
239 = DukeWaterdrip
120 = DukeDoorshock
1309 = DukeCanWithSomething
1414 = DukeTongue
1439 = DukeInnerJaw
1440 = DukeInnerJaw1
866 = RedneckRespawnMarker
1344 = DukeRat
1759 = DukeForceSphere
1529 = DukeOoz
1525 = DukeBloodSplat1
1526 = DukeBloodSplat2
1527 = DukeBloodSplat3
1528 = DukeBloodSplat4
3420 = DukeFireLaser
3471 = RedneckOWhip
3475 = RedneckUWhip
2095 = RedneckVixenShot
1774 = RedneckDynamiteArrow
3390 = RedneckShitBall
3400 = RedneckSawBlade
1107 = DukeReactor2
1109 = DukeReactor2Spark
2239 = DukeReactor
2243 = DukeReactorSpark
2754 = DukeGenericPole2
3063 = DukeHangLight
2231 = DukeStatueFlash
1168 = DukeStatue
1280 = DukeBottle10
1172 = DukeVase
4095 = DukeFrameEffect
1200 = DukeNeon
1201 = DukeNeon, "NEON2"
1241 = DukeNeon, "NEON3"
1242 = DukeNeon, "NEON4"
1243 = DukeNeon, "NEON5"
1264 = DukeNeon, "NEON6"
1310 = RedneckFeather
1383 = DukeWaterSplash
1420 = RedneckMudSplash
1256 = DukeGlassPieces1
1257 = DukeGlassPieces2
1258 = DukeGlassPieces3
1702 = DukeShell
1704 = DukeShotgunShell
1303 = DukeBloodPool
210 = DukeFanSprite
1066 = DukeSatellite
1067 = DukeFuelPod
1114 = DukeSolarPanel
1117 = DukeAntenna
1228 = DukeHydrant
1124 = DukePipe1
1121 = DukePipe2
1123 = DukePipe3
1234 = DukePipe4
1232 = DukePipe5
1233 = DukePipe6
1152 = DukeChair3
1098 = DukeToilet
1100 = DukeStall
2121 = RedneckToiletSeat
2122 = RedneckToilet2
1097 = DukeFemMag
1106 = DukeFemMag, "FEMMAG2"
2264 = DukeMaskWall, "MASKWALL7"
1079 = DukeFootprints
1144 = DukeFootprints
1145 = DukeFootprints
1146 = DukeFootprints
1212 = DukeBulletHole
1083 = DukeCameraPole
26 = RedneckDynamite
1416 = RedneckMortar
285 = RedneckChickenSpawner1
286 = RedneckChickenSpawner2
287 = RedneckFeatherSpawner
288 = RedneckChickenHeadSpawner
289 = RedneckChickenLoafSpawner
290 = RedneckChickenNuggetSpawner
291 = RedneckChickenRoastSpawner
292 = RedneckBonelessSpawner
293 = RedneckJibsSpawner
7525 = RedneckRabbitSpawner
3190 = RedneckChickenA
3191 = RedneckChickenB
3192 = RedneckChickenC
3120 = RedneckChickenLoaf
3122 = RedneckChickenNugget
3123 = RedneckRoastedChicken
3124 = RedneckBonelessChicken
3132 = RedneckChickenHead
3410 = RedneckLumberBlade
295 = RedneckKegHolder
1463 = DukeJibs1
1468 = RedneckJibs2
1473 = DukeJibs3
1478 = DukeJibs4
1483 = DukeJibs5
1515 = DukeJibs6
4041 = DukePlayerTorso
4046 = DukePlayerGun
4055 = DukePlayerLeg
4235 = RedneckBillyJibA
4244 = RedneckBillyJibB
4748 = RedneckHulkJibA
4753 = RedneckHulkJibB
4758 = RedneckHulkJibB
5290 = RedneckMinJibA
5295 = RedneckMinJibB
5300 = RedneckMinJibB
5602 = RedneckCootJibA
5607 = RedneckCootJibB
5616 = RedneckCootJibB
280 = RedneckBowlingPinController
281 = RedneckBowlingSectorLink
282 = RedneckBowlingBallSpot
283 = RedneckBowlingPinSpot
3440 = RedneckBowlingPin
3430 = RedneckBowlingBall
4897 = RedneckHenstand
296 = RedneckTeleport
297 = RedneckTeleportDest
2137 = RedneckFlamingo
2151 = RedneckMarbleStatue
2152 = RedneckMarbleStatue2
3114 = DukeGenericDestructible, "RRTILE3114", "RRTILE3117", "GLASS_BREAKING", spawnglass
2876 = DukeGenericDestructible, "RRTILE2876", "RRTILE2990", "GLASS_BREAKING", spawnglass
3152 = DukeGenericDestructible, "RRTILE3152", "RRTILE3218", "GLASS_BREAKING", spawnglass
3153 = DukeGenericDestructible, "RRTILE3153", "RRTILE3219", "GLASS_BREAKING", spawnglass
2030 = DukeGenericDestructible, "RRTILE2030", "RRTILE2034", "GLASS_BREAKING", spawnglass
2915 = DukeGenericDestructible, "RRTILE2915", "RRTILE2977", "GLASS_BREAKING", spawnglass
2893 = DukeGenericDestructible, "RRTILE2893", "RRTILE2978", "GLASS_BREAKING", spawnglass
3115 = DukeGenericDestructible, "RRTILE3115", "RRTILE3116", "GLASS_BREAKING", spawnglass
3171 = DukeGenericDestructible, "RRTILE3171", "RRTILE3216", "GLASS_BREAKING", spawnglass
2156 = DukeGenericDestructible, "*RRTILE2156", "*RRTILE2157", "GLASS_BREAKING", spawnglass
2158 = DukeGenericDestructible, "*RRTILE2158", "*RRTILE2159", "GLASS_BREAKING", spawnglass
2160 = DukeGenericDestructible, "*RRTILE2160", "*RRTILE2161", "GLASS_BREAKING", spawnglass
2175 = DukeGenericDestructible, "*RRTILE2175", "*RRTILE2176", "GLASS_BREAKING", spawnglass
234 = DukeGenericDestructible, "GRATE1", "BGRATE1", "VENT_BUST", solid, unblocking
2251 = DukeGenericDestructible, "CIRCLEPANNEL", "CIRCLEPANNELBROKE", "VENT_BUST", unblocking
343 = DukeGenericDestructible, "PANNEL2", "BPANNEL3", "VENT_BUST", solid, unblocking
1085 = DukeGenericDestructible, "CHAIR1", "BROKENCHAIR", solid, unblocking
1086 = DukeGenericDestructible, "CHAIR2", "BROKENCHAIR", solid, unblocking
1157 = DukeGenericDestructible, "CAMERALIGHT", "", "GLASS_HEAVYBREAK", spawnscrap
1158 = DukeGenericDestructible, "MOVIECAMERA", "", "GLASS_HEAVYBREAK", solid, spawnscrap
1150 = DukeGenericDestructible, "SCALE", "", "GLASS_HEAVYBREAK", solid, spawnscrap
1163 = DukeGenericDestructible, "IVUNIT", "", "GLASS_HEAVYBREAK", solid, spawnscrap
1164 = DukeGenericDestructible, "POT1", "", "GLASS_HEAVYBREAK", solid, spawnscrap
1165 = DukeGenericDestructible, "POT2", "", "GLASS_HEAVYBREAK", solid, spawnscrap
1166 = DukeGenericDestructible, "POT3", "", "GLASS_HEAVYBREAK", solid, spawnscrap
1141 = DukeGenericDestructible, "VACUUM", "", "GLASS_HEAVYBREAK", solid, spawnscrap
1080 = DukeGenericDestructible, "DOMELITE", "", "GLASS_HEAVYBREAK", blocking, spawnglass2
1215 = DukeGenericDestructible, "BOTTLE1", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1216 = DukeGenericDestructible, "BOTTLE2", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1217 = DukeGenericDestructible, "BOTTLE3", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1218 = DukeGenericDestructible, "BOTTLE4", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1219 = DukeGenericDestructible, "BOTTLE5", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1220 = DukeGenericDestructible, "BOTTLE6", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1221 = DukeGenericDestructible, "BOTTLE7", "", "GLASS_BREAKING", solid, spawnglass
1222 = DukeGenericDestructible, "BOTTLE8", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1281 = DukeGenericDestructible, "BOTTLE11", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1282 = DukeGenericDestructible, "BOTTLE12", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1283 = DukeGenericDestructible, "BOTTLE13", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1284 = DukeGenericDestructible, "BOTTLE14", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1285 = DukeGenericDestructible, "BOTTLE15", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1286 = DukeGenericDestructible, "BOTTLE16", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1287 = DukeGenericDestructible, "BOTTLE17", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1288 = DukeGenericDestructible, "BOTTLE18", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1289 = DukeGenericDestructible, "BOTTLE19", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
2215 = DukeGenericDestructible, "WAITTOBESEATED", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1174 = DukeGenericDestructible, "SUSHIPLATE1", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1175 = DukeGenericDestructible, "SUSHIPLATE2", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1176 = DukeGenericDestructible, "SUSHIPLATE3", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1178 = DukeGenericDestructible, "SUSHIPLATE4", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1180 = DukeGenericDestructible, "SUSHIPLATE5", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
2654 = DukeGenericDestructible, "RRTILE2654", "", "GLASS_BREAKING", spawnglass
2656 = DukeGenericDestructible, "RRTILE2656", "", "GLASS_BREAKING", spawnglass
3172 = DukeGenericDestructible, "RRTILE3172", "", "GLASS_BREAKING", spawnglass
1878 = DukeActor, "*RRTILE1878"
1952 = DukeActor, "*RRTILE1952"
1953 = DukeActor, "*RRTILE1953"
1990 = DukeActor, "*RRTILE1990"
2050 = DukeActor, "*RRTILE2050"
2056 = DukeActor, "*RRTILE2056"
2072 = DukeActor, "*RRTILE2072"
2075 = DukeActor, "*RRTILE2075"
2083 = DukeActor, "*RRTILE2083"
2097 = DukeActor, "*RRTILE2097"
2357 = DukeActor, "*RRTILE2357"
2564 = DukeActor, "*RRTILE2564"
2573 = DukeActor, "*RRTILE2573"
2574 = DukeActor, "*RRTILE2574"
2583 = DukeActor, "*RRTILE2583"
2604 = DukeActor, "*RRTILE2604"
2689 = DukeActor, "*RRTILE2689"
2893 = DukeActor, "*RRTILE2893"
2894 = DukeActor, "*RRTILE2894"
2915 = DukeActor, "*RRTILE2915"
2945 = DukeActor, "*RRTILE2945"
2946 = DukeActor, "*RRTILE2946"
2947 = DukeActor, "*RRTILE2947"
2948 = DukeActor, "*RRTILE2948"
2949 = DukeActor, "*RRTILE2949"
2977 = DukeActor, "*RRTILE2977"
2978 = DukeActor, "*RRTILE2978"
3116 = DukeActor, "*RRTILE3116"
3171 = DukeActor, "*RRTILE3171"
3216 = DukeActor, "*RRTILE3216"
3720 = DukeActor, "*RRTILE3720"
}
tileflag TFLAG_WALLSWITCH {
HANDPRINTSWITCH

View file

@ -0,0 +1,270 @@
spawnclasses
{
2 = DukeActivator
3 = DukeTouchplate
4 = DukeActivatorLocked
5 = DukeSoundController
6 = DukeLocator
7 = DukeCycler
8 = DukeMasterSwitch
9 = DukeRespawnController
10 = DukeGPSpeed
18 = DukeTorchCtrl
35 = DukeLightningCtrl
68 = DukeShadeCtrl
67 = DukeDummyCtrl
71 = DukeSoundFX
64 = RedneckMinecartDef
65 = RedneckMinecartSound
66 = RedneckMinecartInner
11 = RedneckJaildoorDef
38 = RedneckJaildoorSound
19 = RedneckGeometryEffect
34 = RedneckKeyinfoSetter
1298 = DukeCranePole
1299 = DukeCrane
1092 = DukeWaterFountain
1093 = DukeWaterFountain
1094 = DukeWaterFountain
1095 = DukeWaterFountain
1096 = DukeWaterFountainBroke
1211 = DukeBox
1191 = DukeTree1
1193 = DukeTree2
1230 = DukeTire
1194 = DukeCactus
1203 = DukeCactusBroke
1075 = DukeCrack
1076 = DukeCrack, "CRACK2"
1077 = DukeCrack, "CRACK3"
1078 = DukeCrack, "CRACK4"
1273 = DukeOozFilter
1324 = DukeSeenine
1346 = DukeTrash
1127 = DukeBolt1
1128 = DukeBolt2
1129 = DukeBolt3
1130 = DukeBolt4
239 = DukeWaterdrip
120 = DukeDoorshock
1309 = DukeCanWithSomething
1414 = DukeTongue
1439 = DukeInnerJaw
1440 = DukeInnerJaw1
866 = RedneckRespawnMarker
1344 = DukeRat
1759 = DukeForceSphere
1529 = DukeOoz
1525 = DukeBloodSplat1
1526 = DukeBloodSplat2
1527 = DukeBloodSplat3
1528 = DukeBloodSplat4
3420 = DukeFireLaser
3471 = RedneckOWhip
3475 = RedneckUWhip
2095 = RedneckVixenShot
1774 = RedneckDynamiteArrow
3390 = RedneckShitBall
3400 = RedneckSawBlade
1107 = DukeReactor2
1109 = DukeReactor2Spark
2239 = DukeReactor
2243 = DukeReactorSpark
2754 = DukeGenericPole2
3063 = DukeHangLight
2231 = DukeStatueFlash
1168 = DukeStatue
1280 = DukeBottle10
1172 = DukeVase
4095 = DukeFrameEffect
1200 = DukeNeon
1201 = DukeNeon, "NEON2"
1241 = DukeNeon, "NEON3"
1242 = DukeNeon, "NEON4"
1243 = DukeNeon, "NEON5"
1264 = DukeNeon, "NEON6"
1310 = RedneckFeather
1383 = DukeWaterSplash
1420 = RedneckMudSplash
1256 = DukeGlassPieces
1257 = DukeGlassPieces1
1258 = DukeGlassPieces2
1702 = DukeShell
1704 = DukeShotgunShell
1303 = DukeBloodPool
210 = DukeFanSprite
1066 = DukeSatellite
1067 = DukeFuelPod
1114 = DukeSolarPanel
1117 = DukeAntenna
1228 = DukeHydrant
1124 = DukePipe1
1121 = DukePipe2
1123 = DukePipe3
1234 = DukePipe4
1232 = DukePipe5
1233 = DukePipe6
1152 = DukeChair3
1098 = DukeToilet
1100 = DukeStall
2121 = RedneckToiletSeat
2122 = RedneckToilet2
1097 = DukeFemMag
1106 = DukeFemMag, "FEMMAG2"
2264 = DukeMaskWall, "MASKWALL7"
1079 = DukeFootprints
1144 = DukeFootprints
1145 = DukeFootprints
1146 = DukeFootprints
1212 = DukeBulletHole
1083 = DukeCameraPole
26 = RedneckDynamite
1416 = RedneckMortar
285 = RedneckChickenSpawner1
286 = RedneckChickenSpawner2
287 = RedneckFeatherSpawner
288 = RedneckChickenHeadSpawner
289 = RedneckChickenLoafSpawner
290 = RedneckChickenNuggetSpawner
291 = RedneckChickenRoastSpawner
292 = RedneckBonelessSpawner
293 = RedneckJibsSpawner
7525 = RedneckRabbitSpawner
3190 = RedneckChickenA
3191 = RedneckChickenB
3192 = RedneckChickenC
3120 = RedneckChickenLoaf
3122 = RedneckChickenNugget
3123 = RedneckRoastedChicken
3124 = RedneckBonelessChicken
3132 = RedneckChickenHead
3410 = RedneckLumberBlade
295 = RedneckKegHolder
1463 = DukeJibs1
1468 = RedneckJibs2
1473 = DukeJibs3
1478 = DukeJibs4
1483 = DukeJibs5
1515 = DukeJibs6
4041 = DukePlayerTorso
4046 = DukePlayerGun
4055 = DukePlayerLeg
4235 = RedneckBillyJibA
4244 = RedneckBillyJibB
4748 = RedneckHulkJibA
4753 = RedneckHulkJibB
4758 = RedneckHulkJibB
5290 = RedneckMinJibA
5295 = RedneckMinJibB
5300 = RedneckMinJibB
5602 = RedneckCootJibA
5607 = RedneckCootJibB
5616 = RedneckCootJibB
280 = RedneckBowlingPinController
281 = RedneckBowlingSectorLink
282 = RedneckBowlingBallSpot
283 = RedneckBowlingPinSpot
3440 = RedneckBowlingPin
3430 = RedneckBowlingBall
4897 = RedneckHenstand
296 = RedneckTeleport
297 = RedneckTeleportDest
2137 = RedneckFlamingo
2151 = RedneckMarbleStatue
2152 = RedneckMarbleStatue2
3114 = DukeGenericDestructible, "RRTILE3114", "RRTILE3117", "GLASS_BREAKING", spawnglass
2876 = DukeGenericDestructible, "RRTILE2876", "RRTILE2990", "GLASS_BREAKING", spawnglass
3152 = DukeGenericDestructible, "RRTILE3152", "RRTILE3218", "GLASS_BREAKING", spawnglass
3153 = DukeGenericDestructible, "RRTILE3153", "RRTILE3219", "GLASS_BREAKING", spawnglass
2030 = DukeGenericDestructible, "RRTILE2030", "RRTILE2034", "GLASS_BREAKING", spawnglass
2915 = DukeGenericDestructible, "RRTILE2915", "RRTILE2977", "GLASS_BREAKING", spawnglass
2893 = DukeGenericDestructible, "RRTILE2893", "RRTILE2978", "GLASS_BREAKING", spawnglass
3115 = DukeGenericDestructible, "RRTILE3115", "RRTILE3116", "GLASS_BREAKING", spawnglass
3171 = DukeGenericDestructible, "RRTILE3171", "RRTILE3216", "GLASS_BREAKING", spawnglass
2156 = DukeGenericDestructible, "*RRTILE2156", "*RRTILE2157", "GLASS_BREAKING", spawnglass
2158 = DukeGenericDestructible, "*RRTILE2158", "*RRTILE2159", "GLASS_BREAKING", spawnglass
2160 = DukeGenericDestructible, "*RRTILE2160", "*RRTILE2161", "GLASS_BREAKING", spawnglass
2175 = DukeGenericDestructible, "*RRTILE2175", "*RRTILE2176", "GLASS_BREAKING", spawnglass
234 = DukeGenericDestructible, "GRATE1", "BGRATE1", "VENT_BUST", solid, unblocking
2251 = DukeGenericDestructible, "CIRCLEPANNEL", "CIRCLEPANNELBROKE", "VENT_BUST", unblocking
343 = DukeGenericDestructible, "PANNEL2", "BPANNEL3", "VENT_BUST", solid, unblocking
1085 = DukeGenericDestructible, "CHAIR1", "BROKENCHAIR", "", solid, unblocking
1086 = DukeGenericDestructible, "CHAIR2", "BROKENCHAIR", "", solid, unblocking
1157 = DukeGenericDestructible, "CAMERALIGHT", "", "GLASS_HEAVYBREAK", spawnscrap
1158 = DukeGenericDestructible, "MOVIECAMERA", "", "GLASS_HEAVYBREAK", solid, spawnscrap
1150 = DukeGenericDestructible, "SCALE", "", "GLASS_HEAVYBREAK", solid, spawnscrap
1163 = DukeGenericDestructible, "IVUNIT", "", "GLASS_HEAVYBREAK", solid, spawnscrap
1164 = DukeGenericDestructible, "POT1", "", "GLASS_HEAVYBREAK", solid, spawnscrap
1165 = DukeGenericDestructible, "POT2", "", "GLASS_HEAVYBREAK", solid, spawnscrap
1166 = DukeGenericDestructible, "POT3", "", "GLASS_HEAVYBREAK", solid, spawnscrap
1141 = DukeGenericDestructible, "VACUUM", "", "GLASS_HEAVYBREAK", solid, spawnscrap
1080 = DukeGenericDestructible, "DOMELITE", "", "GLASS_HEAVYBREAK", blocking, spawnglass2
1215 = DukeGenericDestructible, "BOTTLE1", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1216 = DukeGenericDestructible, "BOTTLE2", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1217 = DukeGenericDestructible, "BOTTLE3", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1218 = DukeGenericDestructible, "BOTTLE4", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1219 = DukeGenericDestructible, "BOTTLE5", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1220 = DukeGenericDestructible, "BOTTLE6", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1221 = DukeGenericDestructible, "BOTTLE7", "", "GLASS_BREAKING", solid, spawnglass
1222 = DukeGenericDestructible, "BOTTLE8", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1281 = DukeGenericDestructible, "BOTTLE11", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1282 = DukeGenericDestructible, "BOTTLE12", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1283 = DukeGenericDestructible, "BOTTLE13", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1284 = DukeGenericDestructible, "BOTTLE14", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1285 = DukeGenericDestructible, "BOTTLE15", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1286 = DukeGenericDestructible, "BOTTLE16", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1287 = DukeGenericDestructible, "BOTTLE17", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1288 = DukeGenericDestructible, "BOTTLE18", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1289 = DukeGenericDestructible, "BOTTLE19", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
2215 = DukeGenericDestructible, "WAITTOBESEATED", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1174 = DukeGenericDestructible, "SUSHIPLATE1", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1175 = DukeGenericDestructible, "SUSHIPLATE2", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1176 = DukeGenericDestructible, "SUSHIPLATE3", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1178 = DukeGenericDestructible, "SUSHIPLATE4", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
1180 = DukeGenericDestructible, "SUSHIPLATE5", "", "GLASS_HEAVYBREAK", 8, blocking, spawnglass2
2654 = DukeGenericDestructible, "RRTILE2654", "", "GLASS_BREAKING", spawnglass
2656 = DukeGenericDestructible, "RRTILE2656", "", "GLASS_BREAKING", spawnglass
3172 = DukeGenericDestructible, "RRTILE3172", "", "GLASS_BREAKING", spawnglass
1878 = DukeActor, "*RRTILE1878"
1952 = DukeActor, "*RRTILE1952"
1953 = DukeActor, "*RRTILE1953"
1990 = DukeActor, "*RRTILE1990"
2050 = DukeActor, "*RRTILE2050"
2056 = DukeActor, "*RRTILE2056"
2072 = DukeActor, "*RRTILE2072"
2075 = DukeActor, "*RRTILE2075"
2083 = DukeActor, "*RRTILE2083"
2097 = DukeActor, "*RRTILE2097"
2357 = DukeActor, "*RRTILE2357"
2564 = DukeActor, "*RRTILE2564"
2573 = DukeActor, "*RRTILE2573"
2574 = DukeActor, "*RRTILE2574"
2583 = DukeActor, "*RRTILE2583"
2604 = DukeActor, "*RRTILE2604"
2689 = DukeActor, "*RRTILE2689"
2893 = DukeActor, "*RRTILE2893"
2894 = DukeActor, "*RRTILE2894"
2915 = DukeActor, "*RRTILE2915"
2945 = DukeActor, "*RRTILE2945"
2946 = DukeActor, "*RRTILE2946"
2947 = DukeActor, "*RRTILE2947"
2948 = DukeActor, "*RRTILE2948"
2949 = DukeActor, "*RRTILE2949"
2977 = DukeActor, "*RRTILE2977"
2978 = DukeActor, "*RRTILE2978"
3116 = DukeActor, "*RRTILE3116"
3171 = DukeActor, "*RRTILE3171"
3216 = DukeActor, "*RRTILE3216"
3720 = DukeActor, "*RRTILE3720"
}

View file

@ -63,6 +63,7 @@ version "4.10"
#include "zscript/games/duke/actors/dukemisc.zs"
#include "zscript/games/duke/actors/projectiles.zs"
#include "zscript/games/duke/actors/mortar.zs"
#include "zscript/games/duke/actors/rat.zs"
#include "zscript/games/duke/actors/jibs.zs"
#include "zscript/games/duke/actors/crane.zs"

View file

@ -74,7 +74,7 @@ class DukeGreenSlime : DukeActor
let vel = frandom(0, 2) + 2;
let zvel = 4 - frandom(0, 4);
static const name pieces[] = {'DukeGlassPieces', 'DukeGlassPieces', 'DukeGlassPieces'};
static const name pieces[] = {'DukeGlassPieces', 'DukeGlassPieces1', 'DukeGlassPieces2'};
let k = dlevel.SpawnActor(self.sector, self.pos, pieces[j % 3], -32, (0.5625, 0.5625), a, vel, zvel, self, STAT_MISC);
if (k) k.pal = 1;
}

View file

@ -177,7 +177,7 @@ class DukeBounceMine : DukeMortar
}
}
class RedneckNortar : DukeMortar
class RedneckMortar : DukeMortar
{
default
{

View file

@ -1,5 +1,7 @@
// Container for handler functions that handle walls with breakable textures
struct RedneckBreakWalls
// Container for handler functions that handle walls with breakable textures.
// Note that this must be a class, not a struct, so that the internal lookup functions can find it.
class RedneckBreakWalls
{
static void breakwall(TextureID newpn, DukeActor spr, walltype wal)