mirror of
https://github.com/ZDoom/gzdoom.git
synced 2025-01-18 15:42:34 +00:00
- Added sector type translation to xlat_parser and removed the old sectorx
lump. SVN r841 (trunk)
This commit is contained in:
parent
9c1fa19dd2
commit
a665663c15
14 changed files with 912 additions and 696 deletions
|
@ -1,4 +1,6 @@
|
|||
March 22, 2008 (Changes by Graf Zahl)
|
||||
- Added sector type translation to xlat_parser and removed the old sectorx
|
||||
lump.
|
||||
- Changed DEHSUPP loader so that it reads the text file directly. As a result
|
||||
the DEHSUPP compiler is gone now. Unlike XLATCC I'm using FScanner though.
|
||||
A fully featured parser seems like overkill for this simple text file.
|
||||
|
|
|
@ -60,6 +60,19 @@ typedef enum {
|
|||
|
||||
Stairs_Special1 = 26,
|
||||
Stairs_Special2 = 27,
|
||||
|
||||
Wind_East_Weak=40,
|
||||
Wind_East_Medium,
|
||||
Wind_East_Strong,
|
||||
Wind_North_Weak,
|
||||
Wind_North_Medium,
|
||||
Wind_North_Strong,
|
||||
Wind_South_Weak,
|
||||
Wind_South_Medium,
|
||||
Wind_South_Strong,
|
||||
Wind_West_Weak,
|
||||
Wind_West_Medium,
|
||||
Wind_West_Strong,
|
||||
|
||||
// [RH] Equivalents for DOOM's sector specials
|
||||
dLight_Flicker = 65,
|
||||
|
|
140
src/p_xlat.cpp
140
src/p_xlat.cpp
|
@ -326,123 +326,9 @@ void P_TranslateTeleportThings ()
|
|||
}
|
||||
}
|
||||
|
||||
static short sectortables[2][256];
|
||||
static int boommask=0, boomshift=0;
|
||||
static bool secparsed;
|
||||
|
||||
void P_ReadSectorSpecials()
|
||||
{
|
||||
secparsed=true;
|
||||
for(int i=0;i<256;i++)
|
||||
{
|
||||
sectortables[0][i]=-1;
|
||||
sectortables[1][i]=i;
|
||||
}
|
||||
|
||||
int lastlump=0, lump;
|
||||
|
||||
lastlump = 0;
|
||||
while ((lump = Wads.FindLump ("SECTORX", &lastlump)) != -1)
|
||||
{
|
||||
FScanner sc(lump, "SECTORX");
|
||||
sc.SetCMode(true);
|
||||
while (sc.GetString())
|
||||
{
|
||||
if (sc.Compare("IFDOOM"))
|
||||
{
|
||||
sc.MustGetStringName("{");
|
||||
if (gameinfo.gametype != GAME_Doom)
|
||||
{
|
||||
do
|
||||
{
|
||||
if (!sc.GetString())
|
||||
{
|
||||
sc.ScriptError("Unexpected end of file");
|
||||
}
|
||||
}
|
||||
while (!sc.Compare("}"));
|
||||
}
|
||||
}
|
||||
else if (sc.Compare("IFHERETIC"))
|
||||
{
|
||||
sc.MustGetStringName("{");
|
||||
if (gameinfo.gametype != GAME_Heretic)
|
||||
{
|
||||
do
|
||||
{
|
||||
if (!sc.GetString())
|
||||
{
|
||||
sc.ScriptError("Unexpected end of file");
|
||||
}
|
||||
}
|
||||
while (!sc.Compare("}"));
|
||||
}
|
||||
}
|
||||
else if (sc.Compare("IFSTRIFE"))
|
||||
{
|
||||
sc.MustGetStringName("{");
|
||||
if (gameinfo.gametype != GAME_Strife)
|
||||
{
|
||||
do
|
||||
{
|
||||
if (!sc.GetString())
|
||||
{
|
||||
sc.ScriptError("Unexpected end of file");
|
||||
}
|
||||
}
|
||||
while (!sc.Compare("}"));
|
||||
}
|
||||
}
|
||||
else if (sc.Compare("}"))
|
||||
{
|
||||
// ignore
|
||||
}
|
||||
else if (sc.Compare("BOOMMASK"))
|
||||
{
|
||||
sc.MustGetNumber();
|
||||
boommask = sc.Number;
|
||||
sc.MustGetStringName(",");
|
||||
sc.MustGetNumber();
|
||||
boomshift = sc.Number;
|
||||
}
|
||||
else if (sc.Compare("["))
|
||||
{
|
||||
int start;
|
||||
int end;
|
||||
|
||||
sc.MustGetNumber();
|
||||
start = sc.Number;
|
||||
sc.MustGetStringName(",");
|
||||
sc.MustGetNumber();
|
||||
end = sc.Number;
|
||||
sc.MustGetStringName("]");
|
||||
sc.MustGetStringName(":");
|
||||
sc.MustGetNumber();
|
||||
for(int j = start; j <= end; j++)
|
||||
{
|
||||
sectortables[!!boommask][j]=sc.Number + j - start;
|
||||
}
|
||||
}
|
||||
else if (IsNum(sc.String))
|
||||
{
|
||||
int start;
|
||||
|
||||
start = atoi(sc.String);
|
||||
sc.MustGetStringName(":");
|
||||
sc.MustGetNumber();
|
||||
sectortables[!!boommask][start] = sc.Number;
|
||||
}
|
||||
else
|
||||
{
|
||||
sc.ScriptError(NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int P_TranslateSectorSpecial (int special)
|
||||
{
|
||||
int high;
|
||||
int mask = 0;
|
||||
|
||||
// Allow any supported sector special by or-ing 0x8000 to it in Doom format maps
|
||||
// That's for those who like to mess around with existing maps. ;)
|
||||
|
@ -450,16 +336,24 @@ int P_TranslateSectorSpecial (int special)
|
|||
{
|
||||
return special & 0x7fff;
|
||||
}
|
||||
|
||||
if (!secparsed) P_ReadSectorSpecials();
|
||||
|
||||
if (special>=0 && special<=255)
|
||||
|
||||
for(unsigned i = 0; i < SectorMasks.Size(); i++)
|
||||
{
|
||||
if (sectortables[0][special]>=0) return sectortables[0][special];
|
||||
int newmask = special & SectorMasks[i].mask;
|
||||
if (newmask)
|
||||
{
|
||||
special &= ~newmask;
|
||||
if (SectorMasks[i].op == 1) newmask <<= SectorMasks[i].shift;
|
||||
else if (SectorMasks[i].op == -1) newmask >>= SectorMasks[i].shift;
|
||||
mask |= newmask;
|
||||
}
|
||||
}
|
||||
high = (special & boommask) << boomshift;
|
||||
special &= (~boommask) & 255;
|
||||
|
||||
return sectortables[1][special] | high;
|
||||
if (special>=0 && special<SectorTranslations.Size())
|
||||
{
|
||||
if (SectorTranslations[special].bitmask_allowed && mask) special = 0;
|
||||
else special = SectorTranslations[special].newtype;
|
||||
}
|
||||
return special | mask;
|
||||
}
|
||||
|
||||
|
|
|
@ -47,6 +47,8 @@
|
|||
TAutoGrowArray<FLineTrans> SimpleLineTranslations;
|
||||
FBoomTranslator Boomish[MAX_BOOMISH];
|
||||
int NumBoomish;
|
||||
TAutoGrowArray<FSectorTrans> SectorTranslations;
|
||||
TArray<FSectorMask> SectorMasks;
|
||||
|
||||
// Token types not used in the grammar
|
||||
enum
|
||||
|
@ -154,16 +156,18 @@ struct XlatParseContext
|
|||
//==========================================================================
|
||||
bool FindToken (char *tok, int *type)
|
||||
{
|
||||
static const char tokens[][8] =
|
||||
static const char tokens[][10] =
|
||||
{
|
||||
"include", "define", "enum",
|
||||
"arg5", "arg4", "arg3", "arg2", "flags", "lineid", "tag"
|
||||
"arg5", "arg4", "arg3", "arg2", "flags", "lineid", "tag",
|
||||
"sector", "bitmask", "nobitmask"
|
||||
|
||||
};
|
||||
static const short types[] =
|
||||
{
|
||||
INCLUDE, DEFINE, ENUM,
|
||||
ARG5, ARG4, ARG3, ARG2, FLAGS, TAG, TAG
|
||||
ARG5, ARG4, ARG3, ARG2, FLAGS, TAG, TAG,
|
||||
SECTOR, BITMASK, NOBITMASK
|
||||
};
|
||||
int i;
|
||||
|
||||
|
@ -316,7 +320,7 @@ struct XlatParseContext
|
|||
if (c == '"')
|
||||
{
|
||||
int tokensize = 0;
|
||||
while ((c = *sourcep++) != '"' && c != EOF)
|
||||
while ((c = *sourcep++) != '"' && c != 0)
|
||||
{
|
||||
yylval->string[tokensize++] = c;
|
||||
}
|
||||
|
@ -331,6 +335,38 @@ struct XlatParseContext
|
|||
sourcep--;
|
||||
return OR;
|
||||
}
|
||||
if (c == '<')
|
||||
{
|
||||
c = *sourcep++;
|
||||
if (c == '<')
|
||||
{
|
||||
c = *sourcep++;
|
||||
if (c == '=')
|
||||
{
|
||||
return LSHASSIGN;
|
||||
}
|
||||
sourcep--;
|
||||
return 0;
|
||||
}
|
||||
c--;
|
||||
return 0;
|
||||
}
|
||||
if (c == '>')
|
||||
{
|
||||
c = *sourcep++;
|
||||
if (c == '>')
|
||||
{
|
||||
c = *sourcep++;
|
||||
if (c == '=')
|
||||
{
|
||||
return RSHASSIGN;
|
||||
}
|
||||
sourcep--;
|
||||
return 0;
|
||||
}
|
||||
c--;
|
||||
return 0;
|
||||
}
|
||||
switch (c)
|
||||
{
|
||||
case '^': return XOR;
|
||||
|
@ -344,7 +380,7 @@ struct XlatParseContext
|
|||
case '{': return LBRACE;
|
||||
case '}': return RBRACE;
|
||||
case '=': return EQUALS;
|
||||
//case ';': return SEMICOLON;
|
||||
case ';': return SEMICOLON;
|
||||
case ':': return COLON;
|
||||
case '[': return LBRACKET;
|
||||
case ']': return RBRACKET;
|
||||
|
|
|
@ -60,8 +60,29 @@ struct FBoomTranslator
|
|||
TArray<FBoomArg> Args;
|
||||
} ;
|
||||
|
||||
struct FSectorTrans
|
||||
{
|
||||
int newtype;
|
||||
bool bitmask_allowed;
|
||||
|
||||
FSectorTrans(int t=0, bool bitmask = false)
|
||||
{
|
||||
newtype = t;
|
||||
bitmask_allowed = bitmask;
|
||||
}
|
||||
};
|
||||
|
||||
struct FSectorMask
|
||||
{
|
||||
int mask;
|
||||
int op;
|
||||
int shift;
|
||||
};
|
||||
|
||||
extern TAutoGrowArray<FLineTrans> SimpleLineTranslations;
|
||||
extern FBoomTranslator Boomish[MAX_BOOMISH];
|
||||
extern int NumBoomish;
|
||||
extern TAutoGrowArray<FSectorTrans> SectorTranslations;
|
||||
extern TArray<FSectorMask> SectorMasks;
|
||||
|
||||
#endif
|
||||
|
|
|
@ -28,3 +28,9 @@
|
|||
#define ARG5 28
|
||||
#define OR_EQUAL 29
|
||||
#define COLON 30
|
||||
#define SECTOR 31
|
||||
#define SEMICOLON 32
|
||||
#define NOBITMASK 33
|
||||
#define BITMASK 34
|
||||
#define LSHASSIGN 35
|
||||
#define RSHASSIGN 36
|
||||
|
|
|
@ -15,6 +15,8 @@ external_declaration ::= define_statement.
|
|||
external_declaration ::= enum_statement.
|
||||
external_declaration ::= linetype_declaration.
|
||||
external_declaration ::= boom_declaration.
|
||||
external_declaration ::= sector_declaration.
|
||||
external_declaration ::= sector_bitmask.
|
||||
external_declaration ::= NOP.
|
||||
|
||||
|
||||
|
@ -449,3 +451,43 @@ list_val(A) ::= exp(B) COLON exp(C).
|
|||
A.value = C;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
// sector types
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
%type sector_op {int}
|
||||
|
||||
sector_declaration ::= SECTOR exp(from) EQUALS exp(to) SEMICOLON.
|
||||
{
|
||||
FSectorTrans tr(to, true);
|
||||
SectorTranslations.SetVal(from, tr);
|
||||
}
|
||||
|
||||
sector_declaration ::= SECTOR exp EQUALS SYM(sy) SEMICOLON.
|
||||
{
|
||||
Printf("Unknown constant '%s'\n", sy.sym);
|
||||
}
|
||||
|
||||
sector_declaration ::= SECTOR exp(from) EQUALS exp(to) NOBITMASK SEMICOLON.
|
||||
{
|
||||
FSectorTrans tr(to, false);
|
||||
SectorTranslations.SetVal(from, tr);
|
||||
}
|
||||
|
||||
sector_bitmask ::= SECTOR BITMASK exp(mask) sector_op(op) exp(shift) SEMICOLON.
|
||||
{
|
||||
FSectorMask sm = { mask, op, shift};
|
||||
SectorMasks.Push(sm);
|
||||
}
|
||||
|
||||
sector_bitmask ::= SECTOR BITMASK exp(mask) SEMICOLON.
|
||||
{
|
||||
FSectorMask sm = { mask, 0, 0};
|
||||
SectorMasks.Push(sm);
|
||||
}
|
||||
|
||||
sector_op(A) ::= LSHASSIGN. { A = 1; }
|
||||
sector_op(A) ::= RSHASSIGN. { A = -1; }
|
||||
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
9: 1024 // this is done before masking out the Boom bits.
|
||||
|
||||
ifdoom
|
||||
{
|
||||
boommask 0xfe0, 3
|
||||
[1,20] : 65
|
||||
[21,40] : 1
|
||||
}
|
||||
|
||||
ifheretic
|
||||
{
|
||||
boommask 0xfc0, 3
|
||||
|
||||
[1,19] : 65
|
||||
[20,40] :225
|
||||
5 : 82
|
||||
16 : 83
|
||||
4 : 84
|
||||
}
|
||||
|
||||
ifstrife
|
||||
{
|
||||
boommask 0xfe0, 3
|
||||
[1,20] : 65
|
||||
[21,40] : 1
|
||||
[4,5] : 104
|
||||
[15,16] : 115
|
||||
18: 118
|
||||
}
|
||||
|
538
wadsrc/xlat/base.txt
Normal file
538
wadsrc/xlat/base.txt
Normal file
|
@ -0,0 +1,538 @@
|
|||
include "xlat/defines.i"
|
||||
|
||||
1 = USE|MONST|REP, Door_Raise (0, D_SLOW, VDOORWAIT, tag)
|
||||
2 = WALK, Door_Open (tag, D_SLOW)
|
||||
3 = WALK, Door_Close (tag, D_SLOW)
|
||||
4 = WALK|MONST, Door_Raise (tag, D_SLOW, VDOORWAIT)
|
||||
5 = WALK, Floor_RaiseToLowestCeiling (tag, F_SLOW)
|
||||
6 = WALK, Ceiling_CrushAndRaiseA (tag, C_NORMAL, C_NORMAL, 10)
|
||||
7 = USE, Stairs_BuildUpDoom (tag, ST_SLOW, 8)
|
||||
8 = WALK, Stairs_BuildUpDoom (tag, ST_SLOW, 8)
|
||||
9 = USE, Floor_Donut (tag, DORATE, DORATE)
|
||||
10 = WALK|MONST, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT, 0)
|
||||
11 = USE, Exit_Normal (0)
|
||||
12 = WALK, Light_MaxNeighbor (tag)
|
||||
13 = WALK, Light_ChangeToValue (tag, 255)
|
||||
14 = USE, Plat_UpByValueStayTx (tag, P_SLOW/2, 4)
|
||||
15 = USE, Plat_UpByValueStayTx (tag, P_SLOW/2, 3)
|
||||
16 = WALK, Door_CloseWaitOpen (tag, D_SLOW, 240)
|
||||
17 = WALK, Light_StrobeDoom (tag, 5, 35)
|
||||
18 = USE, Floor_RaiseToNearest (tag, F_SLOW)
|
||||
19 = WALK, Floor_LowerToHighest (tag, F_SLOW, 128)
|
||||
20 = USE, Plat_RaiseAndStayTx0 (tag, P_SLOW/2)
|
||||
21 = USE, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT)
|
||||
22 = WALK, Plat_RaiseAndStayTx0 (tag, P_SLOW/2)
|
||||
23 = USE, Floor_LowerToLowest (tag, F_SLOW)
|
||||
24 = SHOOT, Floor_RaiseToLowestCeiling (tag, F_SLOW)
|
||||
25 = WALK, Ceiling_CrushAndRaiseA (tag, C_SLOW, C_SLOW, 10)
|
||||
26 = USE|REP, Door_LockedRaise (0, D_SLOW, VDOORWAIT, BCard | CardIsSkull, tag)
|
||||
27 = USE|REP, Door_LockedRaise (0, D_SLOW, VDOORWAIT, YCard | CardIsSkull, tag)
|
||||
28 = USE|REP, Door_LockedRaise (0, D_SLOW, VDOORWAIT, RCard | CardIsSkull, tag)
|
||||
29 = USE, Door_Raise (tag, D_SLOW, VDOORWAIT)
|
||||
30 = WALK, Floor_RaiseByTexture (tag, F_SLOW)
|
||||
31 = USE, Door_Open (0, D_SLOW, tag)
|
||||
32 = USE|MONST, Door_LockedRaise (0, D_SLOW, 0, BCard | CardIsSkull, tag)
|
||||
33 = USE|MONST, Door_LockedRaise (0, D_SLOW, 0, RCard | CardIsSkull, tag)
|
||||
34 = USE|MONST, Door_LockedRaise (0, D_SLOW, 0, YCard | CardIsSkull, tag)
|
||||
35 = WALK, Light_ChangeToValue (tag, 35)
|
||||
36 = WALK, Floor_LowerToHighest (tag, F_FAST, 136)
|
||||
37 = WALK, Floor_LowerToLowestTxTy (tag, F_SLOW)
|
||||
38 = WALK, Floor_LowerToLowest (tag, F_SLOW)
|
||||
39 = WALK|MONST, Teleport (0, tag)
|
||||
40 = WALK, Generic_Ceiling (tag, C_SLOW, 0, 1, 8)
|
||||
41 = USE, Ceiling_LowerToFloor (tag, C_SLOW)
|
||||
42 = USE|REP, Door_Close (tag, D_SLOW)
|
||||
43 = USE|REP, Ceiling_LowerToFloor (tag, C_SLOW)
|
||||
44 = WALK, Ceiling_LowerAndCrush (tag, C_SLOW, 0)
|
||||
45 = USE|REP, Floor_LowerToHighest (tag, F_SLOW, 128)
|
||||
46 = SHOOT|REP|MONST, Door_Open (tag, D_SLOW)
|
||||
47 = SHOOT, Plat_RaiseAndStayTx0 (tag, P_SLOW/2)
|
||||
48 = 0, Scroll_Texture_Left (SCROLL_UNIT)
|
||||
49 = USE, Ceiling_CrushAndRaiseA (tag, C_SLOW, C_SLOW, 10)
|
||||
50 = USE, Door_Close (tag, D_SLOW)
|
||||
51 = USE, Exit_Secret (0)
|
||||
52 = WALK, Exit_Normal (0)
|
||||
53 = WALK, Plat_PerpetualRaiseLip (tag, P_SLOW, PLATWAIT, 0)
|
||||
54 = WALK, Plat_Stop (tag)
|
||||
55 = USE, Floor_RaiseAndCrush (tag, F_SLOW, 10)
|
||||
56 = WALK, Floor_RaiseAndCrush (tag, F_SLOW, 10)
|
||||
57 = WALK, Ceiling_CrushStop (tag)
|
||||
58 = WALK, Floor_RaiseByValue (tag, F_SLOW, 24)
|
||||
59 = WALK, Floor_RaiseByValueTxTy (tag, F_SLOW, 24)
|
||||
60 = USE|REP, Floor_LowerToLowest (tag, F_SLOW)
|
||||
61 = USE|REP, Door_Open (tag, D_SLOW)
|
||||
62 = USE|REP, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT, 0)
|
||||
63 = USE|REP, Door_Raise (tag, D_SLOW, VDOORWAIT)
|
||||
64 = USE|REP, Floor_RaiseToLowestCeiling (tag, F_SLOW)
|
||||
65 = USE|REP, Floor_RaiseAndCrush (tag, F_SLOW, 10)
|
||||
66 = USE|REP, Plat_UpByValueStayTx (tag, P_SLOW/2, 3)
|
||||
67 = USE|REP, Plat_UpByValueStayTx (tag, P_SLOW/2, 4)
|
||||
68 = USE|REP, Plat_RaiseAndStayTx0 (tag, P_SLOW/2)
|
||||
69 = USE|REP, Floor_RaiseToNearest (tag, F_SLOW)
|
||||
70 = USE|REP, Floor_LowerToHighest (tag, F_FAST, 136)
|
||||
71 = USE, Floor_LowerToHighest (tag, F_FAST, 136)
|
||||
72 = WALK|REP, Ceiling_LowerAndCrush (tag, C_SLOW, 0)
|
||||
73 = WALK|REP, Ceiling_CrushAndRaiseA (tag, C_SLOW, C_SLOW, 10)
|
||||
74 = WALK|REP, Ceiling_CrushStop (tag)
|
||||
75 = WALK|REP, Door_Close (tag, D_SLOW)
|
||||
76 = WALK|REP, Door_CloseWaitOpen (tag, D_SLOW, 240)
|
||||
77 = WALK|REP, Ceiling_CrushAndRaiseA (tag, C_NORMAL, C_NORMAL, 10)
|
||||
78 = USE|REP, Floor_TransferNumeric (tag) // <- BOOM special
|
||||
79 = WALK|REP, Light_ChangeToValue (tag, 35)
|
||||
80 = WALK|REP, Light_MaxNeighbor (tag)
|
||||
81 = WALK|REP, Light_ChangeToValue (tag, 255)
|
||||
82 = WALK|REP, Floor_LowerToLowest (tag, F_SLOW)
|
||||
83 = WALK|REP, Floor_LowerToHighest (tag, F_SLOW, 128)
|
||||
84 = WALK|REP, Floor_LowerToLowestTxTy (tag, F_SLOW)
|
||||
85 = 0, Scroll_Texture_Right (SCROLL_UNIT) // <- BOOM special
|
||||
86 = WALK|REP, Door_Open (tag, D_SLOW)
|
||||
87 = WALK|REP, Plat_PerpetualRaiseLip (tag, P_SLOW, PLATWAIT, 0)
|
||||
88 = WALK|REP|MONST, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT, 0)
|
||||
89 = WALK|REP, Plat_Stop (tag)
|
||||
90 = WALK|REP, Door_Raise (tag, D_SLOW, VDOORWAIT)
|
||||
91 = WALK|REP, Floor_RaiseToLowestCeiling (tag, F_SLOW)
|
||||
92 = WALK|REP, Floor_RaiseByValue (tag, F_SLOW, 24)
|
||||
93 = WALK|REP, Floor_RaiseByValueTxTy (tag, F_SLOW, 24)
|
||||
94 = WALK|REP, Floor_RaiseAndCrush (tag, F_SLOW, 10)
|
||||
95 = WALK|REP, Plat_RaiseAndStayTx0 (tag, P_SLOW/2)
|
||||
96 = WALK|REP, Floor_RaiseByTexture (tag, F_SLOW)
|
||||
97 = WALK|REP|MONST, Teleport (0, tag)
|
||||
98 = WALK|REP, Floor_LowerToHighest (tag, F_FAST, 136)
|
||||
99 = USE|REP, Door_LockedRaise (tag, D_FAST, 0, BCard | CardIsSkull)
|
||||
100 = WALK, Stairs_BuildUpDoom (tag, ST_TURBO, 16, 0, 0)
|
||||
101 = USE, Floor_RaiseToLowestCeiling (tag, F_SLOW)
|
||||
102 = USE, Floor_LowerToHighest (tag, F_SLOW, 128)
|
||||
103 = USE, Door_Open (tag, D_SLOW)
|
||||
104 = WALK, Light_MinNeighbor (tag)
|
||||
105 = WALK|REP, Door_Raise (tag, D_FAST, VDOORWAIT)
|
||||
106 = WALK|REP, Door_Open (tag, D_FAST)
|
||||
107 = WALK|REP, Door_Close (tag, D_FAST)
|
||||
108 = WALK, Door_Raise (tag, D_FAST, VDOORWAIT)
|
||||
109 = WALK, Door_Open (tag, D_FAST)
|
||||
110 = WALK, Door_Close (tag, D_FAST)
|
||||
111 = USE, Door_Raise (tag, D_FAST, VDOORWAIT)
|
||||
112 = USE, Door_Open (tag, D_FAST)
|
||||
113 = USE, Door_Close (tag, D_FAST)
|
||||
114 = USE|REP, Door_Raise (tag, D_FAST, VDOORWAIT)
|
||||
115 = USE|REP, Door_Open (tag, D_FAST)
|
||||
116 = USE|REP, Door_Close (tag, D_FAST)
|
||||
117 = USE|REP, Door_Raise (0, D_FAST, VDOORWAIT, tag)
|
||||
118 = USE, Door_Open (0, D_FAST, tag)
|
||||
119 = WALK, Floor_RaiseToNearest (tag, F_SLOW)
|
||||
120 = WALK|REP, Plat_DownWaitUpStayLip (tag, P_TURBO, PLATWAIT, 0)
|
||||
121 = WALK, Plat_DownWaitUpStayLip (tag, P_TURBO, PLATWAIT, 0)
|
||||
122 = USE, Plat_DownWaitUpStayLip (tag, P_TURBO, PLATWAIT, 0)
|
||||
123 = USE|REP, Plat_DownWaitUpStayLip (tag, P_TURBO, PLATWAIT, 0)
|
||||
124 = WALK, Exit_Secret (0)
|
||||
125 = MONWALK, Teleport (0, tag)
|
||||
126 = MONWALK|REP, Teleport (0, tag)
|
||||
127 = USE, Stairs_BuildUpDoom (tag, ST_TURBO, 16, 0, 0)
|
||||
128 = WALK|REP, Floor_RaiseToNearest (tag, F_SLOW)
|
||||
129 = WALK|REP, Floor_RaiseToNearest (tag, F_FAST)
|
||||
130 = WALK, Floor_RaiseToNearest (tag, F_FAST)
|
||||
131 = USE, Floor_RaiseToNearest (tag, F_FAST)
|
||||
132 = USE|REP, Floor_RaiseToNearest (tag, F_FAST)
|
||||
133 = USE, Door_LockedRaise (tag, D_FAST, 0, BCard | CardIsSkull)
|
||||
134 = USE|REP, Door_LockedRaise (tag, D_FAST, 0, RCard | CardIsSkull)
|
||||
135 = USE, Door_LockedRaise (tag, D_FAST, 0, RCard | CardIsSkull)
|
||||
136 = USE|REP, Door_LockedRaise (tag, D_FAST, 0, YCard | CardIsSkull)
|
||||
137 = USE, Door_LockedRaise (tag, D_FAST, 0, YCard | CardIsSkull)
|
||||
138 = USE|REP, Light_ChangeToValue (tag, 255)
|
||||
139 = USE|REP, Light_ChangeToValue (tag, 35)
|
||||
140 = USE, Floor_RaiseByValueTimes8 (tag, F_SLOW, 64)
|
||||
141 = WALK, Ceiling_CrushAndRaiseSilentA (tag, C_SLOW, C_SLOW, 10)
|
||||
|
||||
/****** The following are all new to BOOM ******/
|
||||
|
||||
142 = WALK, Floor_RaiseByValueTimes8 (tag, F_SLOW, 64)
|
||||
143 = WALK, Plat_UpByValueStayTx (tag, P_SLOW/2, 3)
|
||||
144 = WALK, Plat_UpByValueStayTx (tag, P_SLOW/2, 4)
|
||||
145 = WALK, Ceiling_LowerToFloor (tag, C_SLOW)
|
||||
146 = WALK, Floor_Donut (tag, DORATE, DORATE)
|
||||
147 = WALK|REP, Floor_RaiseByValueTimes8 (tag, F_SLOW, 64)
|
||||
148 = WALK|REP, Plat_UpByValueStayTx (tag, P_SLOW/2, 3)
|
||||
149 = WALK|REP, Plat_UpByValueStayTx (tag, P_SLOW/2, 4)
|
||||
150 = WALK|REP, Ceiling_CrushAndRaiseSilentA (tag, C_SLOW, C_SLOW, 10)
|
||||
151 = WALK|REP, FloorAndCeiling_LowerRaise (tag, F_SLOW, C_SLOW)
|
||||
152 = WALK|REP, Ceiling_LowerToFloor (tag, C_SLOW)
|
||||
153 = WALK, Floor_TransferTrigger (tag)
|
||||
154 = WALK|REP, Floor_TransferTrigger (tag)
|
||||
155 = WALK|REP, Floor_Donut (tag, DORATE, DORATE)
|
||||
156 = WALK|REP, Light_StrobeDoom (tag, 5, 35)
|
||||
157 = WALK|REP, Light_MinNeighbor (tag)
|
||||
158 = USE, Floor_RaiseByTexture (tag, F_SLOW)
|
||||
159 = USE, Floor_LowerToLowestTxTy (tag, F_SLOW)
|
||||
160 = USE, Floor_RaiseByValueTxTy (tag, F_SLOW, 24)
|
||||
161 = USE, Floor_RaiseByValue (tag, F_SLOW, 24)
|
||||
162 = USE, Plat_PerpetualRaiseLip (tag, P_SLOW, PLATWAIT, 0)
|
||||
163 = USE, Plat_Stop (tag)
|
||||
164 = USE, Ceiling_CrushAndRaiseA (tag, C_NORMAL, C_NORMAL, 10)
|
||||
165 = USE, Ceiling_CrushAndRaiseSilentA (tag, C_SLOW, C_SLOW, 10)
|
||||
166 = USE, FloorAndCeiling_LowerRaise (tag, F_SLOW, C_SLOW)
|
||||
167 = USE, Ceiling_LowerAndCrush (tag, C_SLOW, 0)
|
||||
168 = USE, Ceiling_CrushStop (tag)
|
||||
169 = USE, Light_MaxNeighbor (tag)
|
||||
170 = USE, Light_ChangeToValue (tag, 35)
|
||||
171 = USE, Light_ChangeToValue (tag, 255)
|
||||
172 = USE, Light_StrobeDoom (tag, 5, 35)
|
||||
173 = USE, Light_MinNeighbor (tag)
|
||||
174 = USE|MONST, Teleport (0, tag)
|
||||
175 = USE, Door_CloseWaitOpen (tag, F_SLOW, 240)
|
||||
176 = USE|REP, Floor_RaiseByTexture (tag, F_SLOW)
|
||||
177 = USE|REP, Floor_LowerToLowestTxTy (tag, F_SLOW)
|
||||
178 = USE|REP, Floor_RaiseByValueTimes8 (tag, F_SLOW, 64)
|
||||
179 = USE|REP, Floor_RaiseByValueTxTy (tag, F_SLOW, 24)
|
||||
180 = USE|REP, Floor_RaiseByValue (tag, F_SLOW, 24)
|
||||
181 = USE|REP, Plat_PerpetualRaiseLip (tag, P_SLOW, PLATWAIT, 0)
|
||||
182 = USE|REP, Plat_Stop (tag)
|
||||
183 = USE|REP, Ceiling_CrushAndRaiseA (tag, C_NORMAL, C_NORMAL, 10)
|
||||
184 = USE|REP, Ceiling_CrushAndRaiseA (tag, C_SLOW, C_SLOW, 10)
|
||||
185 = USE|REP, Ceiling_CrushAndRaiseSilentA (tag, C_SLOW, C_SLOW, 10)
|
||||
186 = USE|REP, FloorAndCeiling_LowerRaise (tag, F_SLOW, C_SLOW)
|
||||
187 = USE|REP, Ceiling_LowerAndCrush (tag, C_SLOW, 0)
|
||||
188 = USE|REP, Ceiling_CrushStop (tag)
|
||||
189 = USE, Floor_TransferTrigger (tag)
|
||||
190 = USE|REP, Floor_TransferTrigger (tag)
|
||||
191 = USE|REP, Floor_Donut (tag, DORATE, DORATE)
|
||||
192 = USE|REP, Light_MaxNeighbor (tag)
|
||||
193 = USE|REP, Light_StrobeDoom (tag, 5, 35)
|
||||
194 = USE|REP, Light_MinNeighbor (tag)
|
||||
195 = USE|REP|MONST, Teleport (0, tag)
|
||||
196 = USE|REP, Door_CloseWaitOpen (tag, D_SLOW, 240)
|
||||
197 = SHOOT, Exit_Normal (0)
|
||||
198 = SHOOT, Exit_Secret (0)
|
||||
199 = WALK, Ceiling_LowerToLowest (tag, C_SLOW)
|
||||
200 = WALK, Ceiling_LowerToHighestFloor (tag, C_SLOW)
|
||||
201 = WALK|REP, Ceiling_LowerToLowest (tag, C_SLOW)
|
||||
202 = WALK|REP, Ceiling_LowerToHighestFloor (tag, C_SLOW)
|
||||
203 = USE, Ceiling_LowerToLowest (tag, C_SLOW)
|
||||
204 = USE, Ceiling_LowerToHighestFloor (tag, C_SLOW)
|
||||
205 = USE|REP, Ceiling_LowerToLowest (tag, C_SLOW)
|
||||
206 = USE|REP, Ceiling_LowerToHighestFloor (tag, C_SLOW)
|
||||
207 = WALK|MONST, Teleport_NoFog (0, 0, tag)
|
||||
208 = WALK|REP|MONST, Teleport_NoFog (0, 0, tag)
|
||||
209 = USE|MONST, Teleport_NoFog (0, 0, tag)
|
||||
210 = USE|REP|MONST, Teleport_NoFog (0, 0, tag)
|
||||
211 = USE|REP, Plat_ToggleCeiling (tag)
|
||||
212 = WALK|REP, Plat_ToggleCeiling (tag)
|
||||
213 = 0, Transfer_FloorLight (tag)
|
||||
214 = 0, Scroll_Ceiling (tag, 6, 0, 0, 0)
|
||||
215 = 0, Scroll_Floor (tag, 6, 0, 0, 0)
|
||||
216 = 0, Scroll_Floor (tag, 6, 1, 0, 0)
|
||||
217 = 0, Scroll_Floor (tag, 6, 2, 0, 0)
|
||||
218 = 0, Scroll_Texture_Model (lineid, 2)
|
||||
219 = WALK, Floor_LowerToNearest (tag, F_SLOW)
|
||||
220 = WALK|REP, Floor_LowerToNearest (tag, F_SLOW)
|
||||
221 = USE, Floor_LowerToNearest (tag, F_SLOW)
|
||||
222 = USE|REP, Floor_LowerToNearest (tag, F_SLOW)
|
||||
223 = 0, Sector_SetFriction (tag, 0)
|
||||
224 = 0, Sector_SetWind (tag, 0, 0, 1)
|
||||
225 = 0, Sector_SetCurrent (tag, 0, 0, 1)
|
||||
226 = 0, PointPush_SetForce (tag, 0, 0, 1)
|
||||
227 = WALK, Elevator_RaiseToNearest (tag, ELEVATORSPEED)
|
||||
228 = WALK|REP, Elevator_RaiseToNearest (tag, ELEVATORSPEED)
|
||||
229 = USE, Elevator_RaiseToNearest (tag, ELEVATORSPEED)
|
||||
230 = USE|REP, Elevator_RaiseToNearest (tag, ELEVATORSPEED)
|
||||
231 = WALK, Elevator_LowerToNearest (tag, ELEVATORSPEED)
|
||||
232 = WALK|REP, Elevator_LowerToNearest (tag, ELEVATORSPEED)
|
||||
233 = USE, Elevator_LowerToNearest (tag, ELEVATORSPEED)
|
||||
234 = USE|REP, Elevator_LowerToNearest (tag, ELEVATORSPEED)
|
||||
235 = WALK, Elevator_MoveToFloor (tag, ELEVATORSPEED)
|
||||
236 = WALK|REP, Elevator_MoveToFloor (tag, ELEVATORSPEED)
|
||||
237 = USE, Elevator_MoveToFloor (tag, ELEVATORSPEED)
|
||||
238 = USE|REP, Elevator_MoveToFloor (tag, ELEVATORSPEED)
|
||||
239 = WALK, Floor_TransferNumeric (tag)
|
||||
240 = WALK|REP, Floor_TransferNumeric (tag)
|
||||
241 = USE, Floor_TransferNumeric (tag)
|
||||
242 = 0, Transfer_Heights (tag)
|
||||
243 = WALK|MONST, Teleport_Line (tag, tag, 0)
|
||||
244 = WALK|REP|MONST, Teleport_Line (tag, tag, 0)
|
||||
245 = 0, Scroll_Ceiling (tag, 5, 0, 0, 0)
|
||||
246 = 0, Scroll_Floor (tag, 5, 0, 0, 0)
|
||||
247 = 0, Scroll_Floor (tag, 5, 1, 0, 0)
|
||||
248 = 0, Scroll_Floor (tag, 5, 2, 0, 0)
|
||||
249 = 0, Scroll_Texture_Model (lineid, 1)
|
||||
250 = 0, Scroll_Ceiling (tag, 4, 0, 0, 0)
|
||||
251 = 0, Scroll_Floor (tag, 4, 0, 0, 0)
|
||||
252 = 0, Scroll_Floor (tag, 4, 1, 0, 0)
|
||||
253 = 0, Scroll_Floor (tag, 4, 2, 0, 0)
|
||||
254 = 0, Scroll_Texture_Model (lineid, 0)
|
||||
255 = 0, Scroll_Texture_Offsets ()
|
||||
256 = WALK|REP, Stairs_BuildUpDoom (tag, ST_SLOW, 8, 0, 0)
|
||||
257 = WALK|REP, Stairs_BuildUpDoom (tag, ST_TURBO, 16, 0, 0)
|
||||
258 = USE|REP, Stairs_BuildUpDoom (tag, ST_SLOW, 8, 0, 0)
|
||||
259 = USE|REP, Stairs_BuildUpDoom (tag, ST_TURBO, 16, 0, 0)
|
||||
260 = 0, TranslucentLine (lineid, 168) // Changed to better reflect the BOOM default
|
||||
261 = 0, Transfer_CeilingLight (tag)
|
||||
262 = WALK|MONST, Teleport_Line (tag, tag, 1)
|
||||
263 = WALK|REP|MONST, Teleport_Line (tag, tag, 1)
|
||||
264 = MONWALK, Teleport_Line (tag, tag, 1)
|
||||
265 = MONWALK|REP, Teleport_Line (tag, tag, 1)
|
||||
266 = MONWALK, Teleport_Line (tag, tag, 0)
|
||||
267 = MONWALK|REP, Teleport_Line (tag, tag, 0)
|
||||
268 = MONWALK, Teleport_NoFog (0, 0, tag)
|
||||
269 = MONWALK|REP, Teleport_NoFog (0, 0, tag)
|
||||
|
||||
/****** MBF linetypes ******/
|
||||
|
||||
271 = 0, Static_Init (tag, Init_TransferSky, 0)
|
||||
272 = 0, Static_Init (tag, Init_TransferSky, 1)
|
||||
|
||||
/****** Legacy linetype ******/
|
||||
|
||||
280 = 0, Transfer_Heights (tag, 12)
|
||||
|
||||
// No, I haven't actually looked at these in Legacy. But these look like they
|
||||
// should give results equivalent to hardware Legacy rendering.
|
||||
284 = 0, TranslucentLine (lineid, 128, 0)
|
||||
285 = 0, TranslucentLine (lineid, 192, 0)
|
||||
286 = 0, TranslucentLine (lineid, 48, 0)
|
||||
287 = 0, TranslucentLine (lineid, 128, 1)
|
||||
|
||||
281 = 0, ExtraFloor_LightOnly (tag, 0) // thick extra floor
|
||||
301 = 0, ExtraFloor_LightOnly (tag, 1) // thick water
|
||||
302 = 0, ExtraFloor_LightOnly (tag, 1) // fog
|
||||
303 = 0, ExtraFloor_LightOnly (tag, 0) // light
|
||||
304 = 0, ExtraFloor_LightOnly (tag, 1) // opaque water
|
||||
305 = 0, ExtraFloor_LightOnly (tag, 1) // light block
|
||||
|
||||
/****** ZDoom linetypes ******/
|
||||
|
||||
333 = 0, Static_Init (tag, Init_Gravity)
|
||||
334 = 0, Static_Init (tag, Init_Color)
|
||||
335 = 0, Static_Init (tag, Init_Damage)
|
||||
336 = 0, Line_Mirror ()
|
||||
337 = 0, Line_Horizon ()
|
||||
338 = WALK, Floor_Waggle (tag, 24, 32, 0, 0)
|
||||
339 = WALK, Floor_Waggle (tag, 12, 32, 0, 0)
|
||||
|
||||
340 = 0, Plane_Align (1, 0) // Slope front floor
|
||||
341 = 0, Plane_Align (0, 1) // Slope front ceiling
|
||||
342 = 0, Plane_Align (1, 1) // Slope front floor and ceiling
|
||||
343 = 0, Plane_Align (2, 0) // Slope back floor
|
||||
344 = 0, Plane_Align (0, 2) // Slope back ceiling
|
||||
345 = 0, Plane_Align (2, 2) // Slope back floor and ceiling
|
||||
346 = 0, Plane_Align (2, 1) // Slope b.f. and f.c.
|
||||
347 = 0, Plane_Align (1, 2) // Slope f.f. and b.c.
|
||||
|
||||
348 = WALK, Autosave ()
|
||||
349 = USE, Autosave ()
|
||||
|
||||
350 = 0, Transfer_Heights (tag, 2) // Just fake the floor
|
||||
351 = 0, Transfer_Heights (tag, 6) // Just fake the floor and clip it too
|
||||
|
||||
/****** EDGE linetypes ******/
|
||||
|
||||
400 = 0, ExtraFloor_LightOnly (tag, 0) // thick
|
||||
401 = 0, ExtraFloor_LightOnly (tag, 0) // thick, side_upper
|
||||
402 = 0, ExtraFloor_LightOnly (tag, 0) // thick, side_lower
|
||||
403 = 0, ExtraFloor_LightOnly (tag, 2) // opaque liquid, flooder
|
||||
404 = 0, ExtraFloor_LightOnly (tag, 2) // 80% liquid, flooder
|
||||
405 = 0, ExtraFloor_LightOnly (tag, 2) // 60% liquid, flooder
|
||||
406 = 0, ExtraFloor_LightOnly (tag, 2) // 40% liquid, flooder
|
||||
407 = 0, ExtraFloor_LightOnly (tag, 2) // 20% liquid, flooder
|
||||
408 = 0, ExtraFloor_LightOnly (tag, 0) // light
|
||||
413 = 0, ExtraFloor_LightOnly (tag, 0) // thin opaque floor
|
||||
414 = 0, ExtraFloor_LightOnly (tag, 0) // thin 80% floor
|
||||
415 = 0, ExtraFloor_LightOnly (tag, 0) // thin 60% floor
|
||||
416 = 0, ExtraFloor_LightOnly (tag, 0) // thin 40% floor
|
||||
417 = 0, ExtraFloor_LightOnly (tag, 0) // thin 20% floor
|
||||
|
||||
409 = 0, TranslucentLine (lineid, 204) // 80% translucent
|
||||
410 = 0, TranslucentLine (lineid, 153) // 60% translucent
|
||||
411 = 0, TranslucentLine (lineid, 101) // 40% translucent
|
||||
412 = 0, TranslucentLine (lineid, 50) // 20% translucent
|
||||
422 = 0, Scroll_Texture_Right (SCROLL_UNIT)
|
||||
423 = 0, Scroll_Texture_Up (SCROLL_UNIT)
|
||||
424 = 0, Scroll_Texture_Down (SCROLL_UNIT)
|
||||
425 = 0, Scroll_Texture_Both (0, SCROLL_UNIT, 0, 0, SCROLL_UNIT)
|
||||
426 = 0, Scroll_Texture_Both (0, SCROLL_UNIT, 0, SCROLL_UNIT, 0)
|
||||
427 = 0, Scroll_Texture_Both (0, 0, SCROLL_UNIT, 0, SCROLL_UNIT)
|
||||
428 = 0, Scroll_Texture_Both (0, 0, SCROLL_UNIT, SCROLL_UNIT, 0)
|
||||
434 = USE, Floor_RaiseByValue (tag, F_SLOW, 2)
|
||||
435 = USE|REP, Floor_RaiseByValue (tag, F_SLOW, 2)
|
||||
436 = WALK, Floor_RaiseByValue (tag, F_SLOW, 2)
|
||||
437 = WALK|REP, Floor_RaiseByValue (tag, F_SLOW, 2)
|
||||
438 = SHOOT, Floor_RaiseByValue (tag, F_SLOW, 2)
|
||||
439 = SHOOT|REP, Floor_RaiseByValue (tag, F_SLOW, 2)
|
||||
|
||||
/****** BOOM generalized linetypes ******
|
||||
*
|
||||
* The general structure for a BOOM generalized translator is
|
||||
*
|
||||
* [ZDoom Line Special] (first line type for this, last line type for this)
|
||||
* {
|
||||
* one or more stores
|
||||
* }
|
||||
*
|
||||
* Stores have the form:
|
||||
*
|
||||
* <destination> <op> <value>
|
||||
*
|
||||
* <destination> can be arg2, arg3, arg4, arg5, or flags. Arg1 will always
|
||||
* be set to the line's tag, so it cannot be specified in a store.
|
||||
*
|
||||
* <op> can be |= or =. If it is =, then <value> is simply stored in
|
||||
* <destination>. If it is |=, then <value> is logically or'ed with
|
||||
* whatever is already in <destination>.
|
||||
*
|
||||
* <value> can be either a simple number, which will always be stored in
|
||||
* <destination> based on <op>, or it can be a list of numbers chosen
|
||||
* by using a bitmask. When using a list, this form is used:
|
||||
*
|
||||
* mask [choices]
|
||||
*
|
||||
* There can be at most 15 choices in a list. (If you need more, use
|
||||
* more than one list.) Each choice is separated from the other choices
|
||||
* by a comma. Each individual choice has the form:
|
||||
*
|
||||
* <selector> : <value>
|
||||
*
|
||||
* When ZDoom processes one of these lists, the linetype is logically
|
||||
* and'ed with the mask. It then searches the list for a selector that
|
||||
* matches the result of this operation. If it finds one, the selector's
|
||||
* corresponding value is used as the value for <op> to store into
|
||||
* <destination>.
|
||||
*/
|
||||
|
||||
|
||||
// Generalized crusher (tag, dnspeed, upspeed, silent, damage)
|
||||
[Generic_Crusher] (0x2f80, 0x2fff)
|
||||
{
|
||||
flags |= 0x0020 [0x0020 : MONST]
|
||||
arg2 = 0x0018 [0x0000 : C_SLOW,
|
||||
0x0008 : C_NORMAL,
|
||||
0x0010 : C_FAST,
|
||||
0x0018 : C_TURBO]
|
||||
arg3 = 0x0018 [0x0000 : C_SLOW,
|
||||
0x0008 : C_NORMAL,
|
||||
0x0010 : C_FAST,
|
||||
0x0018 : C_TURBO]
|
||||
arg4 = 0x0040 [0x0040 : 1]
|
||||
arg5 = 10
|
||||
}
|
||||
|
||||
// Generalized stairs (tag, speed, step, dir/igntxt, reset)
|
||||
[Generic_Stairs] (0x3000, 0x33ff)
|
||||
{
|
||||
flags |= 0x0020 [0x0020 : MONST]
|
||||
arg2 = 0x0018 [0x0000 : ST_SLOW,
|
||||
0x0008 : ST_NORMAL,
|
||||
0x0010 : ST_FAST,
|
||||
0x0018 : ST_TURBO]
|
||||
arg3 = 0x00c0 [0x0000 : 4,
|
||||
0x0040 : 8,
|
||||
0x0080 : 16,
|
||||
0x00c0 : 24]
|
||||
arg4 = 0x0300 [0x0100 : 1,
|
||||
0x0200 : 2,
|
||||
0x0300 : 3]
|
||||
}
|
||||
|
||||
// Generalized lift (tag, speed, delay, target, height)
|
||||
[Generic_Lift] (0x3400, 0x37ff)
|
||||
{
|
||||
flags |= 0x0020 [0x0020 : MONST]
|
||||
arg2 = 0x0018 [0x0000 : P_SLOW*2,
|
||||
0x0008 : P_NORMAL*2,
|
||||
0x0010 : P_FAST*2,
|
||||
0x0018 : P_TURBO*2]
|
||||
arg3 = 0x00c0 [0x0000 : 8,
|
||||
0x0040 : 24,
|
||||
0x0080 : 40,
|
||||
0x00c0 : 80]
|
||||
arg4 = 0x0300 [0x0000 : 1,
|
||||
0x0100 : 2,
|
||||
0x0200 : 3,
|
||||
0x0300 : 4]
|
||||
}
|
||||
|
||||
// Generalized locked door (tag, speed, kind, delay, lock)
|
||||
[Generic_Door] (0x3800, 0x3bff)
|
||||
{
|
||||
arg2 = 0x0018 [0x0000 : D_SLOW,
|
||||
0x0008 : D_NORMAL,
|
||||
0x0010 : D_FAST,
|
||||
0x0018 : D_TURBO]
|
||||
arg3 = 0x0020 [0x0020 : 1]
|
||||
arg4 = 0x0020 [0 : 34]
|
||||
arg5 = 0x01c0 [0x0000 : AnyKey,
|
||||
0x0040 : RCard,
|
||||
0x0080 : BCard,
|
||||
0x00c0 : YCard,
|
||||
0x0100 : RSkull,
|
||||
0x0140 : BSkull,
|
||||
0x0180 : YSkull,
|
||||
0x01c0 : AllKeys]
|
||||
arg5 |= 0x0200 [0x0200 : CardIsSkull]
|
||||
}
|
||||
|
||||
// Generalized door (tag, speed, kind, delay, lock)
|
||||
[Generic_Door] (0x3c00, 0x3fff)
|
||||
{
|
||||
flags |= 0x0080 [0x0080 : MONST]
|
||||
arg2 = 0x0018 [0x0000 : D_SLOW,
|
||||
0x0008 : D_NORMAL,
|
||||
0x0010 : D_FAST,
|
||||
0x0018 : D_TURBO]
|
||||
arg3 = 0x0060 [0x0000 : 0,
|
||||
0x0020 : 1,
|
||||
0x0040 : 2,
|
||||
0x0060 : 3]
|
||||
arg4 = 0x0300 [0x0000 : 8,
|
||||
0x0100 : 34,
|
||||
0x0200 : 69,
|
||||
0x0300 : 240]
|
||||
}
|
||||
|
||||
// Generalized ceiling (tag, speed, height, target, change/model/direct/crush)
|
||||
[Generic_Ceiling] (0x4000, 0x5fff)
|
||||
{
|
||||
flags |= 0x0c20 [0x0020 : MONST]
|
||||
arg2 = 0x0018 [0x0000 : F_SLOW,
|
||||
0x0008 : F_NORMAL,
|
||||
0x0010 : F_FAST,
|
||||
0x0018 : F_TURBO]
|
||||
arg3 = 0x0380 [0x0300 : 24,
|
||||
0x0380 : 32]
|
||||
arg4 = 0x0380 [0x0000 : 1,
|
||||
0x0080 : 2,
|
||||
0x0100 : 3,
|
||||
0x0180 : 4,
|
||||
0x0200 : 5,
|
||||
0x0280 : 6]
|
||||
arg5 = 0x0c00 [0x0000 : 0,
|
||||
0x0400 : 1,
|
||||
0x0800 : 2,
|
||||
0x0c00 : 3]
|
||||
arg5 |= 0x0060 [0x0020 : 4,
|
||||
0x0040 : 8,
|
||||
0x0060 : 12]
|
||||
arg5 |= 0x1000 [0x1000 : 16]
|
||||
}
|
||||
|
||||
// Generalized floor (tag, speed, height, target, change/model/direct/crush)
|
||||
[Generic_Floor] (0x6000, 0x7fff)
|
||||
{
|
||||
flags |= 0x0c20 [0x0020 : MONST]
|
||||
arg2 = 0x0018 [0x0000 : F_SLOW,
|
||||
0x0008 : F_NORMAL,
|
||||
0x0010 : F_FAST,
|
||||
0x0018 : F_TURBO]
|
||||
arg3 = 0x0380 [0x0300 : 24,
|
||||
0x0380 : 32]
|
||||
arg4 = 0x0380 [0x0000 : 1,
|
||||
0x0080 : 2,
|
||||
0x0100 : 3,
|
||||
0x0180 : 4,
|
||||
0x0200 : 5,
|
||||
0x0280 : 6]
|
||||
arg5 = 0x0c00 [0x0000 : 0,
|
||||
0x0400 : 1,
|
||||
0x0800 : 2,
|
||||
0x0c00 : 3]
|
||||
arg5 |= 0x0060 [0x0020 : 4,
|
||||
0x0040 : 8,
|
||||
0x0060 : 12]
|
||||
arg5 |= 0x1000 [0x1000 : 16]
|
||||
}
|
|
@ -90,3 +90,124 @@ enum
|
|||
AllKeys = 101,
|
||||
CardIsSkull = 128
|
||||
}
|
||||
|
||||
|
||||
enum
|
||||
{
|
||||
Light_Phased = 1,
|
||||
LightSequenceStart = 2,
|
||||
LightSequenceSpecial1 = 3,
|
||||
LightSequenceSpecial2 = 4,
|
||||
|
||||
Stairs_Special1 = 26,
|
||||
Stairs_Special2 = 27,
|
||||
|
||||
Wind_East_Weak=40,
|
||||
Wind_East_Medium,
|
||||
Wind_East_Strong,
|
||||
Wind_North_Weak,
|
||||
Wind_North_Medium,
|
||||
Wind_North_Strong,
|
||||
Wind_South_Weak,
|
||||
Wind_South_Medium,
|
||||
Wind_South_Strong,
|
||||
Wind_West_Weak,
|
||||
Wind_West_Medium,
|
||||
Wind_West_Strong,
|
||||
|
||||
// [RH] Equivalents for DOOM's sector specials
|
||||
dLight_Flicker = 65,
|
||||
dLight_StrobeFast = 66,
|
||||
dLight_StrobeSlow = 67,
|
||||
dLight_Strobe_Hurt = 68,
|
||||
dDamage_Hellslime = 69,
|
||||
dDamage_Nukage = 71,
|
||||
dLight_Glow = 72,
|
||||
dSector_DoorCloseIn30 = 74,
|
||||
dDamage_End = 75,
|
||||
dLight_StrobeSlowSync = 76,
|
||||
dLight_StrobeFastSync = 77,
|
||||
dSector_DoorRaiseIn5Mins = 78,
|
||||
dFriction_Low = 79,
|
||||
dDamage_SuperHellslime = 80,
|
||||
dLight_FireFlicker = 81,
|
||||
dDamage_LavaWimpy = 82,
|
||||
dDamage_LavaHefty = 83,
|
||||
dScroll_EastLavaDamage = 84,
|
||||
Sector_Outside = 87,
|
||||
|
||||
// And here are some for Strife
|
||||
sLight_Strobe_Hurt = 104,
|
||||
sDamage_Hellslime = 105,
|
||||
Damage_InstantDeath = 115,
|
||||
sDamage_SuperHellslime = 116,
|
||||
Scroll_StrifeCurrent = 118
|
||||
}
|
||||
|
||||
enum
|
||||
{
|
||||
// Caverns of Darkness healing sector
|
||||
Sector_Heal = 196,
|
||||
|
||||
Light_OutdoorLightning = 197,
|
||||
Light_IndoorLightning1 = 198,
|
||||
Light_IndoorLightning2 = 199,
|
||||
|
||||
Sky2 = 200,
|
||||
|
||||
// Hexen-type scrollers
|
||||
Scroll_North_Slow = 201,
|
||||
Scroll_North_Medium,
|
||||
Scroll_North_Fast,
|
||||
Scroll_East_Slow,
|
||||
Scroll_East_Medium,
|
||||
Scroll_East_Fast,
|
||||
Scroll_South_Slow,
|
||||
Scroll_South_Medium,
|
||||
Scroll_South_Fast,
|
||||
Scroll_West_Slow,
|
||||
Scroll_West_Medium,
|
||||
Scroll_West_Fast,
|
||||
Scroll_NorthWest_Slow,
|
||||
Scroll_NorthWest_Medium,
|
||||
Scroll_NorthWest_Fast,
|
||||
Scroll_NorthEast_Slow,
|
||||
Scroll_NorthEast_Medium,
|
||||
Scroll_NorthEast_Fast,
|
||||
Scroll_SouthEast_Slow,
|
||||
Scroll_SouthEast_Medium,
|
||||
Scroll_SouthEast_Fast,
|
||||
Scroll_SouthWest_Slow,
|
||||
Scroll_SouthWest_Medium,
|
||||
Scroll_SouthWest_Fast,
|
||||
|
||||
// Heretic-type scrollers
|
||||
Carry_East5 = 225,
|
||||
Carry_East10,
|
||||
Carry_East25,
|
||||
Carry_East30,
|
||||
Carry_East35,
|
||||
Carry_North5,
|
||||
Carry_North10,
|
||||
Carry_North25,
|
||||
Carry_North30,
|
||||
Carry_North35,
|
||||
Carry_South5,
|
||||
Carry_South10,
|
||||
Carry_South25,
|
||||
Carry_South30,
|
||||
Carry_South35,
|
||||
Carry_West5,
|
||||
Carry_West10,
|
||||
Carry_West25,
|
||||
Carry_West30,
|
||||
Carry_West35
|
||||
}
|
||||
|
||||
// [RH] Equivalents for BOOM's generalized sector types
|
||||
define DAMAGE_MASK (0x0300)
|
||||
define SECRET_MASK (0x0400)
|
||||
define FRICTION_MASK (0x0800)
|
||||
define PUSH_MASK (0x1000)
|
||||
|
||||
|
||||
|
|
|
@ -1,538 +1,29 @@
|
|||
include "xlat/defines.i"
|
||||
|
||||
1 = USE|MONST|REP, Door_Raise (0, D_SLOW, VDOORWAIT, tag)
|
||||
2 = WALK, Door_Open (tag, D_SLOW)
|
||||
3 = WALK, Door_Close (tag, D_SLOW)
|
||||
4 = WALK|MONST, Door_Raise (tag, D_SLOW, VDOORWAIT)
|
||||
5 = WALK, Floor_RaiseToLowestCeiling (tag, F_SLOW)
|
||||
6 = WALK, Ceiling_CrushAndRaiseA (tag, C_NORMAL, C_NORMAL, 10)
|
||||
7 = USE, Stairs_BuildUpDoom (tag, ST_SLOW, 8)
|
||||
8 = WALK, Stairs_BuildUpDoom (tag, ST_SLOW, 8)
|
||||
9 = USE, Floor_Donut (tag, DORATE, DORATE)
|
||||
10 = WALK|MONST, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT, 0)
|
||||
11 = USE, Exit_Normal (0)
|
||||
12 = WALK, Light_MaxNeighbor (tag)
|
||||
13 = WALK, Light_ChangeToValue (tag, 255)
|
||||
14 = USE, Plat_UpByValueStayTx (tag, P_SLOW/2, 4)
|
||||
15 = USE, Plat_UpByValueStayTx (tag, P_SLOW/2, 3)
|
||||
16 = WALK, Door_CloseWaitOpen (tag, D_SLOW, 240)
|
||||
17 = WALK, Light_StrobeDoom (tag, 5, 35)
|
||||
18 = USE, Floor_RaiseToNearest (tag, F_SLOW)
|
||||
19 = WALK, Floor_LowerToHighest (tag, F_SLOW, 128)
|
||||
20 = USE, Plat_RaiseAndStayTx0 (tag, P_SLOW/2)
|
||||
21 = USE, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT)
|
||||
22 = WALK, Plat_RaiseAndStayTx0 (tag, P_SLOW/2)
|
||||
23 = USE, Floor_LowerToLowest (tag, F_SLOW)
|
||||
24 = SHOOT, Floor_RaiseToLowestCeiling (tag, F_SLOW)
|
||||
25 = WALK, Ceiling_CrushAndRaiseA (tag, C_SLOW, C_SLOW, 10)
|
||||
26 = USE|REP, Door_LockedRaise (0, D_SLOW, VDOORWAIT, BCard | CardIsSkull, tag)
|
||||
27 = USE|REP, Door_LockedRaise (0, D_SLOW, VDOORWAIT, YCard | CardIsSkull, tag)
|
||||
28 = USE|REP, Door_LockedRaise (0, D_SLOW, VDOORWAIT, RCard | CardIsSkull, tag)
|
||||
29 = USE, Door_Raise (tag, D_SLOW, VDOORWAIT)
|
||||
30 = WALK, Floor_RaiseByTexture (tag, F_SLOW)
|
||||
31 = USE, Door_Open (0, D_SLOW, tag)
|
||||
32 = USE|MONST, Door_LockedRaise (0, D_SLOW, 0, BCard | CardIsSkull, tag)
|
||||
33 = USE|MONST, Door_LockedRaise (0, D_SLOW, 0, RCard | CardIsSkull, tag)
|
||||
34 = USE|MONST, Door_LockedRaise (0, D_SLOW, 0, YCard | CardIsSkull, tag)
|
||||
35 = WALK, Light_ChangeToValue (tag, 35)
|
||||
36 = WALK, Floor_LowerToHighest (tag, F_FAST, 136)
|
||||
37 = WALK, Floor_LowerToLowestTxTy (tag, F_SLOW)
|
||||
38 = WALK, Floor_LowerToLowest (tag, F_SLOW)
|
||||
39 = WALK|MONST, Teleport (0, tag)
|
||||
40 = WALK, Generic_Ceiling (tag, C_SLOW, 0, 1, 8)
|
||||
41 = USE, Ceiling_LowerToFloor (tag, C_SLOW)
|
||||
42 = USE|REP, Door_Close (tag, D_SLOW)
|
||||
43 = USE|REP, Ceiling_LowerToFloor (tag, C_SLOW)
|
||||
44 = WALK, Ceiling_LowerAndCrush (tag, C_SLOW, 0)
|
||||
45 = USE|REP, Floor_LowerToHighest (tag, F_SLOW, 128)
|
||||
46 = SHOOT|REP|MONST, Door_Open (tag, D_SLOW)
|
||||
47 = SHOOT, Plat_RaiseAndStayTx0 (tag, P_SLOW/2)
|
||||
48 = 0, Scroll_Texture_Left (SCROLL_UNIT)
|
||||
49 = USE, Ceiling_CrushAndRaiseA (tag, C_SLOW, C_SLOW, 10)
|
||||
50 = USE, Door_Close (tag, D_SLOW)
|
||||
51 = USE, Exit_Secret (0)
|
||||
52 = WALK, Exit_Normal (0)
|
||||
53 = WALK, Plat_PerpetualRaiseLip (tag, P_SLOW, PLATWAIT, 0)
|
||||
54 = WALK, Plat_Stop (tag)
|
||||
55 = USE, Floor_RaiseAndCrush (tag, F_SLOW, 10)
|
||||
56 = WALK, Floor_RaiseAndCrush (tag, F_SLOW, 10)
|
||||
57 = WALK, Ceiling_CrushStop (tag)
|
||||
58 = WALK, Floor_RaiseByValue (tag, F_SLOW, 24)
|
||||
59 = WALK, Floor_RaiseByValueTxTy (tag, F_SLOW, 24)
|
||||
60 = USE|REP, Floor_LowerToLowest (tag, F_SLOW)
|
||||
61 = USE|REP, Door_Open (tag, D_SLOW)
|
||||
62 = USE|REP, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT, 0)
|
||||
63 = USE|REP, Door_Raise (tag, D_SLOW, VDOORWAIT)
|
||||
64 = USE|REP, Floor_RaiseToLowestCeiling (tag, F_SLOW)
|
||||
65 = USE|REP, Floor_RaiseAndCrush (tag, F_SLOW, 10)
|
||||
66 = USE|REP, Plat_UpByValueStayTx (tag, P_SLOW/2, 3)
|
||||
67 = USE|REP, Plat_UpByValueStayTx (tag, P_SLOW/2, 4)
|
||||
68 = USE|REP, Plat_RaiseAndStayTx0 (tag, P_SLOW/2)
|
||||
69 = USE|REP, Floor_RaiseToNearest (tag, F_SLOW)
|
||||
70 = USE|REP, Floor_LowerToHighest (tag, F_FAST, 136)
|
||||
71 = USE, Floor_LowerToHighest (tag, F_FAST, 136)
|
||||
72 = WALK|REP, Ceiling_LowerAndCrush (tag, C_SLOW, 0)
|
||||
73 = WALK|REP, Ceiling_CrushAndRaiseA (tag, C_SLOW, C_SLOW, 10)
|
||||
74 = WALK|REP, Ceiling_CrushStop (tag)
|
||||
75 = WALK|REP, Door_Close (tag, D_SLOW)
|
||||
76 = WALK|REP, Door_CloseWaitOpen (tag, D_SLOW, 240)
|
||||
77 = WALK|REP, Ceiling_CrushAndRaiseA (tag, C_NORMAL, C_NORMAL, 10)
|
||||
78 = USE|REP, Floor_TransferNumeric (tag) // <- BOOM special
|
||||
79 = WALK|REP, Light_ChangeToValue (tag, 35)
|
||||
80 = WALK|REP, Light_MaxNeighbor (tag)
|
||||
81 = WALK|REP, Light_ChangeToValue (tag, 255)
|
||||
82 = WALK|REP, Floor_LowerToLowest (tag, F_SLOW)
|
||||
83 = WALK|REP, Floor_LowerToHighest (tag, F_SLOW, 128)
|
||||
84 = WALK|REP, Floor_LowerToLowestTxTy (tag, F_SLOW)
|
||||
85 = 0, Scroll_Texture_Right (SCROLL_UNIT) // <- BOOM special
|
||||
86 = WALK|REP, Door_Open (tag, D_SLOW)
|
||||
87 = WALK|REP, Plat_PerpetualRaiseLip (tag, P_SLOW, PLATWAIT, 0)
|
||||
88 = WALK|REP|MONST, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT, 0)
|
||||
89 = WALK|REP, Plat_Stop (tag)
|
||||
90 = WALK|REP, Door_Raise (tag, D_SLOW, VDOORWAIT)
|
||||
91 = WALK|REP, Floor_RaiseToLowestCeiling (tag, F_SLOW)
|
||||
92 = WALK|REP, Floor_RaiseByValue (tag, F_SLOW, 24)
|
||||
93 = WALK|REP, Floor_RaiseByValueTxTy (tag, F_SLOW, 24)
|
||||
94 = WALK|REP, Floor_RaiseAndCrush (tag, F_SLOW, 10)
|
||||
95 = WALK|REP, Plat_RaiseAndStayTx0 (tag, P_SLOW/2)
|
||||
96 = WALK|REP, Floor_RaiseByTexture (tag, F_SLOW)
|
||||
97 = WALK|REP|MONST, Teleport (0, tag)
|
||||
98 = WALK|REP, Floor_LowerToHighest (tag, F_FAST, 136)
|
||||
99 = USE|REP, Door_LockedRaise (tag, D_FAST, 0, BCard | CardIsSkull)
|
||||
100 = WALK, Stairs_BuildUpDoom (tag, ST_TURBO, 16, 0, 0)
|
||||
101 = USE, Floor_RaiseToLowestCeiling (tag, F_SLOW)
|
||||
102 = USE, Floor_LowerToHighest (tag, F_SLOW, 128)
|
||||
103 = USE, Door_Open (tag, D_SLOW)
|
||||
104 = WALK, Light_MinNeighbor (tag)
|
||||
105 = WALK|REP, Door_Raise (tag, D_FAST, VDOORWAIT)
|
||||
106 = WALK|REP, Door_Open (tag, D_FAST)
|
||||
107 = WALK|REP, Door_Close (tag, D_FAST)
|
||||
108 = WALK, Door_Raise (tag, D_FAST, VDOORWAIT)
|
||||
109 = WALK, Door_Open (tag, D_FAST)
|
||||
110 = WALK, Door_Close (tag, D_FAST)
|
||||
111 = USE, Door_Raise (tag, D_FAST, VDOORWAIT)
|
||||
112 = USE, Door_Open (tag, D_FAST)
|
||||
113 = USE, Door_Close (tag, D_FAST)
|
||||
114 = USE|REP, Door_Raise (tag, D_FAST, VDOORWAIT)
|
||||
115 = USE|REP, Door_Open (tag, D_FAST)
|
||||
116 = USE|REP, Door_Close (tag, D_FAST)
|
||||
117 = USE|REP, Door_Raise (0, D_FAST, VDOORWAIT, tag)
|
||||
118 = USE, Door_Open (0, D_FAST, tag)
|
||||
119 = WALK, Floor_RaiseToNearest (tag, F_SLOW)
|
||||
120 = WALK|REP, Plat_DownWaitUpStayLip (tag, P_TURBO, PLATWAIT, 0)
|
||||
121 = WALK, Plat_DownWaitUpStayLip (tag, P_TURBO, PLATWAIT, 0)
|
||||
122 = USE, Plat_DownWaitUpStayLip (tag, P_TURBO, PLATWAIT, 0)
|
||||
123 = USE|REP, Plat_DownWaitUpStayLip (tag, P_TURBO, PLATWAIT, 0)
|
||||
124 = WALK, Exit_Secret (0)
|
||||
125 = MONWALK, Teleport (0, tag)
|
||||
126 = MONWALK|REP, Teleport (0, tag)
|
||||
127 = USE, Stairs_BuildUpDoom (tag, ST_TURBO, 16, 0, 0)
|
||||
128 = WALK|REP, Floor_RaiseToNearest (tag, F_SLOW)
|
||||
129 = WALK|REP, Floor_RaiseToNearest (tag, F_FAST)
|
||||
130 = WALK, Floor_RaiseToNearest (tag, F_FAST)
|
||||
131 = USE, Floor_RaiseToNearest (tag, F_FAST)
|
||||
132 = USE|REP, Floor_RaiseToNearest (tag, F_FAST)
|
||||
133 = USE, Door_LockedRaise (tag, D_FAST, 0, BCard | CardIsSkull)
|
||||
134 = USE|REP, Door_LockedRaise (tag, D_FAST, 0, RCard | CardIsSkull)
|
||||
135 = USE, Door_LockedRaise (tag, D_FAST, 0, RCard | CardIsSkull)
|
||||
136 = USE|REP, Door_LockedRaise (tag, D_FAST, 0, YCard | CardIsSkull)
|
||||
137 = USE, Door_LockedRaise (tag, D_FAST, 0, YCard | CardIsSkull)
|
||||
138 = USE|REP, Light_ChangeToValue (tag, 255)
|
||||
139 = USE|REP, Light_ChangeToValue (tag, 35)
|
||||
140 = USE, Floor_RaiseByValueTimes8 (tag, F_SLOW, 64)
|
||||
141 = WALK, Ceiling_CrushAndRaiseSilentA (tag, C_SLOW, C_SLOW, 10)
|
||||
|
||||
/****** The following are all new to BOOM ******/
|
||||
|
||||
142 = WALK, Floor_RaiseByValueTimes8 (tag, F_SLOW, 64)
|
||||
143 = WALK, Plat_UpByValueStayTx (tag, P_SLOW/2, 3)
|
||||
144 = WALK, Plat_UpByValueStayTx (tag, P_SLOW/2, 4)
|
||||
145 = WALK, Ceiling_LowerToFloor (tag, C_SLOW)
|
||||
146 = WALK, Floor_Donut (tag, DORATE, DORATE)
|
||||
147 = WALK|REP, Floor_RaiseByValueTimes8 (tag, F_SLOW, 64)
|
||||
148 = WALK|REP, Plat_UpByValueStayTx (tag, P_SLOW/2, 3)
|
||||
149 = WALK|REP, Plat_UpByValueStayTx (tag, P_SLOW/2, 4)
|
||||
150 = WALK|REP, Ceiling_CrushAndRaiseSilentA (tag, C_SLOW, C_SLOW, 10)
|
||||
151 = WALK|REP, FloorAndCeiling_LowerRaise (tag, F_SLOW, C_SLOW)
|
||||
152 = WALK|REP, Ceiling_LowerToFloor (tag, C_SLOW)
|
||||
153 = WALK, Floor_TransferTrigger (tag)
|
||||
154 = WALK|REP, Floor_TransferTrigger (tag)
|
||||
155 = WALK|REP, Floor_Donut (tag, DORATE, DORATE)
|
||||
156 = WALK|REP, Light_StrobeDoom (tag, 5, 35)
|
||||
157 = WALK|REP, Light_MinNeighbor (tag)
|
||||
158 = USE, Floor_RaiseByTexture (tag, F_SLOW)
|
||||
159 = USE, Floor_LowerToLowestTxTy (tag, F_SLOW)
|
||||
160 = USE, Floor_RaiseByValueTxTy (tag, F_SLOW, 24)
|
||||
161 = USE, Floor_RaiseByValue (tag, F_SLOW, 24)
|
||||
162 = USE, Plat_PerpetualRaiseLip (tag, P_SLOW, PLATWAIT, 0)
|
||||
163 = USE, Plat_Stop (tag)
|
||||
164 = USE, Ceiling_CrushAndRaiseA (tag, C_NORMAL, C_NORMAL, 10)
|
||||
165 = USE, Ceiling_CrushAndRaiseSilentA (tag, C_SLOW, C_SLOW, 10)
|
||||
166 = USE, FloorAndCeiling_LowerRaise (tag, F_SLOW, C_SLOW)
|
||||
167 = USE, Ceiling_LowerAndCrush (tag, C_SLOW, 0)
|
||||
168 = USE, Ceiling_CrushStop (tag)
|
||||
169 = USE, Light_MaxNeighbor (tag)
|
||||
170 = USE, Light_ChangeToValue (tag, 35)
|
||||
171 = USE, Light_ChangeToValue (tag, 255)
|
||||
172 = USE, Light_StrobeDoom (tag, 5, 35)
|
||||
173 = USE, Light_MinNeighbor (tag)
|
||||
174 = USE|MONST, Teleport (0, tag)
|
||||
175 = USE, Door_CloseWaitOpen (tag, F_SLOW, 240)
|
||||
176 = USE|REP, Floor_RaiseByTexture (tag, F_SLOW)
|
||||
177 = USE|REP, Floor_LowerToLowestTxTy (tag, F_SLOW)
|
||||
178 = USE|REP, Floor_RaiseByValueTimes8 (tag, F_SLOW, 64)
|
||||
179 = USE|REP, Floor_RaiseByValueTxTy (tag, F_SLOW, 24)
|
||||
180 = USE|REP, Floor_RaiseByValue (tag, F_SLOW, 24)
|
||||
181 = USE|REP, Plat_PerpetualRaiseLip (tag, P_SLOW, PLATWAIT, 0)
|
||||
182 = USE|REP, Plat_Stop (tag)
|
||||
183 = USE|REP, Ceiling_CrushAndRaiseA (tag, C_NORMAL, C_NORMAL, 10)
|
||||
184 = USE|REP, Ceiling_CrushAndRaiseA (tag, C_SLOW, C_SLOW, 10)
|
||||
185 = USE|REP, Ceiling_CrushAndRaiseSilentA (tag, C_SLOW, C_SLOW, 10)
|
||||
186 = USE|REP, FloorAndCeiling_LowerRaise (tag, F_SLOW, C_SLOW)
|
||||
187 = USE|REP, Ceiling_LowerAndCrush (tag, C_SLOW, 0)
|
||||
188 = USE|REP, Ceiling_CrushStop (tag)
|
||||
189 = USE, Floor_TransferTrigger (tag)
|
||||
190 = USE|REP, Floor_TransferTrigger (tag)
|
||||
191 = USE|REP, Floor_Donut (tag, DORATE, DORATE)
|
||||
192 = USE|REP, Light_MaxNeighbor (tag)
|
||||
193 = USE|REP, Light_StrobeDoom (tag, 5, 35)
|
||||
194 = USE|REP, Light_MinNeighbor (tag)
|
||||
195 = USE|REP|MONST, Teleport (0, tag)
|
||||
196 = USE|REP, Door_CloseWaitOpen (tag, D_SLOW, 240)
|
||||
197 = SHOOT, Exit_Normal (0)
|
||||
198 = SHOOT, Exit_Secret (0)
|
||||
199 = WALK, Ceiling_LowerToLowest (tag, C_SLOW)
|
||||
200 = WALK, Ceiling_LowerToHighestFloor (tag, C_SLOW)
|
||||
201 = WALK|REP, Ceiling_LowerToLowest (tag, C_SLOW)
|
||||
202 = WALK|REP, Ceiling_LowerToHighestFloor (tag, C_SLOW)
|
||||
203 = USE, Ceiling_LowerToLowest (tag, C_SLOW)
|
||||
204 = USE, Ceiling_LowerToHighestFloor (tag, C_SLOW)
|
||||
205 = USE|REP, Ceiling_LowerToLowest (tag, C_SLOW)
|
||||
206 = USE|REP, Ceiling_LowerToHighestFloor (tag, C_SLOW)
|
||||
207 = WALK|MONST, Teleport_NoFog (0, 0, tag)
|
||||
208 = WALK|REP|MONST, Teleport_NoFog (0, 0, tag)
|
||||
209 = USE|MONST, Teleport_NoFog (0, 0, tag)
|
||||
210 = USE|REP|MONST, Teleport_NoFog (0, 0, tag)
|
||||
211 = USE|REP, Plat_ToggleCeiling (tag)
|
||||
212 = WALK|REP, Plat_ToggleCeiling (tag)
|
||||
213 = 0, Transfer_FloorLight (tag)
|
||||
214 = 0, Scroll_Ceiling (tag, 6, 0, 0, 0)
|
||||
215 = 0, Scroll_Floor (tag, 6, 0, 0, 0)
|
||||
216 = 0, Scroll_Floor (tag, 6, 1, 0, 0)
|
||||
217 = 0, Scroll_Floor (tag, 6, 2, 0, 0)
|
||||
218 = 0, Scroll_Texture_Model (lineid, 2)
|
||||
219 = WALK, Floor_LowerToNearest (tag, F_SLOW)
|
||||
220 = WALK|REP, Floor_LowerToNearest (tag, F_SLOW)
|
||||
221 = USE, Floor_LowerToNearest (tag, F_SLOW)
|
||||
222 = USE|REP, Floor_LowerToNearest (tag, F_SLOW)
|
||||
223 = 0, Sector_SetFriction (tag, 0)
|
||||
224 = 0, Sector_SetWind (tag, 0, 0, 1)
|
||||
225 = 0, Sector_SetCurrent (tag, 0, 0, 1)
|
||||
226 = 0, PointPush_SetForce (tag, 0, 0, 1)
|
||||
227 = WALK, Elevator_RaiseToNearest (tag, ELEVATORSPEED)
|
||||
228 = WALK|REP, Elevator_RaiseToNearest (tag, ELEVATORSPEED)
|
||||
229 = USE, Elevator_RaiseToNearest (tag, ELEVATORSPEED)
|
||||
230 = USE|REP, Elevator_RaiseToNearest (tag, ELEVATORSPEED)
|
||||
231 = WALK, Elevator_LowerToNearest (tag, ELEVATORSPEED)
|
||||
232 = WALK|REP, Elevator_LowerToNearest (tag, ELEVATORSPEED)
|
||||
233 = USE, Elevator_LowerToNearest (tag, ELEVATORSPEED)
|
||||
234 = USE|REP, Elevator_LowerToNearest (tag, ELEVATORSPEED)
|
||||
235 = WALK, Elevator_MoveToFloor (tag, ELEVATORSPEED)
|
||||
236 = WALK|REP, Elevator_MoveToFloor (tag, ELEVATORSPEED)
|
||||
237 = USE, Elevator_MoveToFloor (tag, ELEVATORSPEED)
|
||||
238 = USE|REP, Elevator_MoveToFloor (tag, ELEVATORSPEED)
|
||||
239 = WALK, Floor_TransferNumeric (tag)
|
||||
240 = WALK|REP, Floor_TransferNumeric (tag)
|
||||
241 = USE, Floor_TransferNumeric (tag)
|
||||
242 = 0, Transfer_Heights (tag)
|
||||
243 = WALK|MONST, Teleport_Line (tag, tag, 0)
|
||||
244 = WALK|REP|MONST, Teleport_Line (tag, tag, 0)
|
||||
245 = 0, Scroll_Ceiling (tag, 5, 0, 0, 0)
|
||||
246 = 0, Scroll_Floor (tag, 5, 0, 0, 0)
|
||||
247 = 0, Scroll_Floor (tag, 5, 1, 0, 0)
|
||||
248 = 0, Scroll_Floor (tag, 5, 2, 0, 0)
|
||||
249 = 0, Scroll_Texture_Model (lineid, 1)
|
||||
250 = 0, Scroll_Ceiling (tag, 4, 0, 0, 0)
|
||||
251 = 0, Scroll_Floor (tag, 4, 0, 0, 0)
|
||||
252 = 0, Scroll_Floor (tag, 4, 1, 0, 0)
|
||||
253 = 0, Scroll_Floor (tag, 4, 2, 0, 0)
|
||||
254 = 0, Scroll_Texture_Model (lineid, 0)
|
||||
255 = 0, Scroll_Texture_Offsets ()
|
||||
256 = WALK|REP, Stairs_BuildUpDoom (tag, ST_SLOW, 8, 0, 0)
|
||||
257 = WALK|REP, Stairs_BuildUpDoom (tag, ST_TURBO, 16, 0, 0)
|
||||
258 = USE|REP, Stairs_BuildUpDoom (tag, ST_SLOW, 8, 0, 0)
|
||||
259 = USE|REP, Stairs_BuildUpDoom (tag, ST_TURBO, 16, 0, 0)
|
||||
260 = 0, TranslucentLine (lineid, 168) // Changed to better reflect the BOOM default
|
||||
261 = 0, Transfer_CeilingLight (tag)
|
||||
262 = WALK|MONST, Teleport_Line (tag, tag, 1)
|
||||
263 = WALK|REP|MONST, Teleport_Line (tag, tag, 1)
|
||||
264 = MONWALK, Teleport_Line (tag, tag, 1)
|
||||
265 = MONWALK|REP, Teleport_Line (tag, tag, 1)
|
||||
266 = MONWALK, Teleport_Line (tag, tag, 0)
|
||||
267 = MONWALK|REP, Teleport_Line (tag, tag, 0)
|
||||
268 = MONWALK, Teleport_NoFog (0, 0, tag)
|
||||
269 = MONWALK|REP, Teleport_NoFog (0, 0, tag)
|
||||
|
||||
/****** MBF linetypes ******/
|
||||
|
||||
271 = 0, Static_Init (tag, Init_TransferSky, 0)
|
||||
272 = 0, Static_Init (tag, Init_TransferSky, 1)
|
||||
|
||||
/****** Legacy linetype ******/
|
||||
|
||||
280 = 0, Transfer_Heights (tag, 12)
|
||||
|
||||
// No, I haven't actually looked at these in Legacy. But these look like they
|
||||
// should give results equivalent to hardware Legacy rendering.
|
||||
284 = 0, TranslucentLine (lineid, 128, 0)
|
||||
285 = 0, TranslucentLine (lineid, 192, 0)
|
||||
286 = 0, TranslucentLine (lineid, 48, 0)
|
||||
287 = 0, TranslucentLine (lineid, 128, 1)
|
||||
|
||||
281 = 0, ExtraFloor_LightOnly (tag, 0) // thick extra floor
|
||||
301 = 0, ExtraFloor_LightOnly (tag, 1) // thick water
|
||||
302 = 0, ExtraFloor_LightOnly (tag, 1) // fog
|
||||
303 = 0, ExtraFloor_LightOnly (tag, 0) // light
|
||||
304 = 0, ExtraFloor_LightOnly (tag, 1) // opaque water
|
||||
305 = 0, ExtraFloor_LightOnly (tag, 1) // light block
|
||||
|
||||
/****** ZDoom linetypes ******/
|
||||
|
||||
333 = 0, Static_Init (tag, Init_Gravity)
|
||||
334 = 0, Static_Init (tag, Init_Color)
|
||||
335 = 0, Static_Init (tag, Init_Damage)
|
||||
336 = 0, Line_Mirror ()
|
||||
337 = 0, Line_Horizon ()
|
||||
338 = WALK, Floor_Waggle (tag, 24, 32, 0, 0)
|
||||
339 = WALK, Floor_Waggle (tag, 12, 32, 0, 0)
|
||||
|
||||
340 = 0, Plane_Align (1, 0) // Slope front floor
|
||||
341 = 0, Plane_Align (0, 1) // Slope front ceiling
|
||||
342 = 0, Plane_Align (1, 1) // Slope front floor and ceiling
|
||||
343 = 0, Plane_Align (2, 0) // Slope back floor
|
||||
344 = 0, Plane_Align (0, 2) // Slope back ceiling
|
||||
345 = 0, Plane_Align (2, 2) // Slope back floor and ceiling
|
||||
346 = 0, Plane_Align (2, 1) // Slope b.f. and f.c.
|
||||
347 = 0, Plane_Align (1, 2) // Slope f.f. and b.c.
|
||||
|
||||
348 = WALK, Autosave ()
|
||||
349 = USE, Autosave ()
|
||||
|
||||
350 = 0, Transfer_Heights (tag, 2) // Just fake the floor
|
||||
351 = 0, Transfer_Heights (tag, 6) // Just fake the floor and clip it too
|
||||
|
||||
/****** EDGE linetypes ******/
|
||||
|
||||
400 = 0, ExtraFloor_LightOnly (tag, 0) // thick
|
||||
401 = 0, ExtraFloor_LightOnly (tag, 0) // thick, side_upper
|
||||
402 = 0, ExtraFloor_LightOnly (tag, 0) // thick, side_lower
|
||||
403 = 0, ExtraFloor_LightOnly (tag, 2) // opaque liquid, flooder
|
||||
404 = 0, ExtraFloor_LightOnly (tag, 2) // 80% liquid, flooder
|
||||
405 = 0, ExtraFloor_LightOnly (tag, 2) // 60% liquid, flooder
|
||||
406 = 0, ExtraFloor_LightOnly (tag, 2) // 40% liquid, flooder
|
||||
407 = 0, ExtraFloor_LightOnly (tag, 2) // 20% liquid, flooder
|
||||
408 = 0, ExtraFloor_LightOnly (tag, 0) // light
|
||||
413 = 0, ExtraFloor_LightOnly (tag, 0) // thin opaque floor
|
||||
414 = 0, ExtraFloor_LightOnly (tag, 0) // thin 80% floor
|
||||
415 = 0, ExtraFloor_LightOnly (tag, 0) // thin 60% floor
|
||||
416 = 0, ExtraFloor_LightOnly (tag, 0) // thin 40% floor
|
||||
417 = 0, ExtraFloor_LightOnly (tag, 0) // thin 20% floor
|
||||
|
||||
409 = 0, TranslucentLine (lineid, 204) // 80% translucent
|
||||
410 = 0, TranslucentLine (lineid, 153) // 60% translucent
|
||||
411 = 0, TranslucentLine (lineid, 101) // 40% translucent
|
||||
412 = 0, TranslucentLine (lineid, 50) // 20% translucent
|
||||
422 = 0, Scroll_Texture_Right (SCROLL_UNIT)
|
||||
423 = 0, Scroll_Texture_Up (SCROLL_UNIT)
|
||||
424 = 0, Scroll_Texture_Down (SCROLL_UNIT)
|
||||
425 = 0, Scroll_Texture_Both (0, SCROLL_UNIT, 0, 0, SCROLL_UNIT)
|
||||
426 = 0, Scroll_Texture_Both (0, SCROLL_UNIT, 0, SCROLL_UNIT, 0)
|
||||
427 = 0, Scroll_Texture_Both (0, 0, SCROLL_UNIT, 0, SCROLL_UNIT)
|
||||
428 = 0, Scroll_Texture_Both (0, 0, SCROLL_UNIT, SCROLL_UNIT, 0)
|
||||
434 = USE, Floor_RaiseByValue (tag, F_SLOW, 2)
|
||||
435 = USE|REP, Floor_RaiseByValue (tag, F_SLOW, 2)
|
||||
436 = WALK, Floor_RaiseByValue (tag, F_SLOW, 2)
|
||||
437 = WALK|REP, Floor_RaiseByValue (tag, F_SLOW, 2)
|
||||
438 = SHOOT, Floor_RaiseByValue (tag, F_SLOW, 2)
|
||||
439 = SHOOT|REP, Floor_RaiseByValue (tag, F_SLOW, 2)
|
||||
|
||||
/****** BOOM generalized linetypes ******
|
||||
*
|
||||
* The general structure for a BOOM generalized translator is
|
||||
*
|
||||
* [ZDoom Line Special] (first line type for this, last line type for this)
|
||||
* {
|
||||
* one or more stores
|
||||
* }
|
||||
*
|
||||
* Stores have the form:
|
||||
*
|
||||
* <destination> <op> <value>
|
||||
*
|
||||
* <destination> can be arg2, arg3, arg4, arg5, or flags. Arg1 will always
|
||||
* be set to the line's tag, so it cannot be specified in a store.
|
||||
*
|
||||
* <op> can be |= or =. If it is =, then <value> is simply stored in
|
||||
* <destination>. If it is |=, then <value> is logically or'ed with
|
||||
* whatever is already in <destination>.
|
||||
*
|
||||
* <value> can be either a simple number, which will always be stored in
|
||||
* <destination> based on <op>, or it can be a list of numbers chosen
|
||||
* by using a bitmask. When using a list, this form is used:
|
||||
*
|
||||
* mask [choices]
|
||||
*
|
||||
* There can be at most 15 choices in a list. (If you need more, use
|
||||
* more than one list.) Each choice is separated from the other choices
|
||||
* by a comma. Each individual choice has the form:
|
||||
*
|
||||
* <selector> : <value>
|
||||
*
|
||||
* When ZDoom processes one of these lists, the linetype is logically
|
||||
* and'ed with the mask. It then searches the list for a selector that
|
||||
* matches the result of this operation. If it finds one, the selector's
|
||||
* corresponding value is used as the value for <op> to store into
|
||||
* <destination>.
|
||||
*/
|
||||
include "xlat/base.txt"
|
||||
|
||||
|
||||
// Generalized crusher (tag, dnspeed, upspeed, silent, damage)
|
||||
[Generic_Crusher] (0x2f80, 0x2fff)
|
||||
{
|
||||
flags |= 0x0020 [0x0020 : MONST]
|
||||
arg2 = 0x0018 [0x0000 : C_SLOW,
|
||||
0x0008 : C_NORMAL,
|
||||
0x0010 : C_FAST,
|
||||
0x0018 : C_TURBO]
|
||||
arg3 = 0x0018 [0x0000 : C_SLOW,
|
||||
0x0008 : C_NORMAL,
|
||||
0x0010 : C_FAST,
|
||||
0x0018 : C_TURBO]
|
||||
arg4 = 0x0040 [0x0040 : 1]
|
||||
arg5 = 10
|
||||
}
|
||||
sector bitmask 0xfe0 <<= 3;
|
||||
|
||||
// Generalized stairs (tag, speed, step, dir/igntxt, reset)
|
||||
[Generic_Stairs] (0x3000, 0x33ff)
|
||||
{
|
||||
flags |= 0x0020 [0x0020 : MONST]
|
||||
arg2 = 0x0018 [0x0000 : ST_SLOW,
|
||||
0x0008 : ST_NORMAL,
|
||||
0x0010 : ST_FAST,
|
||||
0x0018 : ST_TURBO]
|
||||
arg3 = 0x00c0 [0x0000 : 4,
|
||||
0x0040 : 8,
|
||||
0x0080 : 16,
|
||||
0x00c0 : 24]
|
||||
arg4 = 0x0300 [0x0100 : 1,
|
||||
0x0200 : 2,
|
||||
0x0300 : 3]
|
||||
}
|
||||
sector 1 = dLight_Flicker;
|
||||
sector 2 = dLight_StrobeFast;
|
||||
sector 3 = dLight_StrobeSlow;
|
||||
sector 4 = dLight_Strobe_Hurt;
|
||||
sector 5 = dDamage_Hellslime;
|
||||
sector 7 = dDamage_Nukage;
|
||||
sector 8 = dLight_Glow;
|
||||
sector 9 = SECRET_MASK nobitmask;
|
||||
sector 10 = dSector_DoorCloseIn30;
|
||||
sector 11 = dDamage_End;
|
||||
sector 12 = dLight_StrobeSlowSync;
|
||||
sector 13 = dLight_StrobeFastSync;
|
||||
sector 14 = dSector_DoorRaiseIn5Mins;
|
||||
sector 15 = dFriction_Low;
|
||||
sector 16 = dDamage_SuperHellslime;
|
||||
sector 17 = dLight_FireFlicker;
|
||||
sector 18 = dDamage_LavaWimpy;
|
||||
sector 19 = dDamage_LavaHefty;
|
||||
sector 20 = dScroll_EastLavaDamage;
|
||||
sector 21 = Light_Phased;
|
||||
sector 22 = LightSequenceStart;
|
||||
sector 23 = LightSequenceSpecial1;
|
||||
sector 24 = LightSequenceSpecial2;
|
||||
|
||||
// Generalized lift (tag, speed, delay, target, height)
|
||||
[Generic_Lift] (0x3400, 0x37ff)
|
||||
{
|
||||
flags |= 0x0020 [0x0020 : MONST]
|
||||
arg2 = 0x0018 [0x0000 : P_SLOW*2,
|
||||
0x0008 : P_NORMAL*2,
|
||||
0x0010 : P_FAST*2,
|
||||
0x0018 : P_TURBO*2]
|
||||
arg3 = 0x00c0 [0x0000 : 8,
|
||||
0x0040 : 24,
|
||||
0x0080 : 40,
|
||||
0x00c0 : 80]
|
||||
arg4 = 0x0300 [0x0000 : 1,
|
||||
0x0100 : 2,
|
||||
0x0200 : 3,
|
||||
0x0300 : 4]
|
||||
}
|
||||
|
||||
// Generalized locked door (tag, speed, kind, delay, lock)
|
||||
[Generic_Door] (0x3800, 0x3bff)
|
||||
{
|
||||
arg2 = 0x0018 [0x0000 : D_SLOW,
|
||||
0x0008 : D_NORMAL,
|
||||
0x0010 : D_FAST,
|
||||
0x0018 : D_TURBO]
|
||||
arg3 = 0x0020 [0x0020 : 1]
|
||||
arg4 = 0x0020 [0 : 34]
|
||||
arg5 = 0x01c0 [0x0000 : AnyKey,
|
||||
0x0040 : RCard,
|
||||
0x0080 : BCard,
|
||||
0x00c0 : YCard,
|
||||
0x0100 : RSkull,
|
||||
0x0140 : BSkull,
|
||||
0x0180 : YSkull,
|
||||
0x01c0 : AllKeys]
|
||||
arg5 |= 0x0200 [0x0200 : CardIsSkull]
|
||||
}
|
||||
|
||||
// Generalized door (tag, speed, kind, delay, lock)
|
||||
[Generic_Door] (0x3c00, 0x3fff)
|
||||
{
|
||||
flags |= 0x0080 [0x0080 : MONST]
|
||||
arg2 = 0x0018 [0x0000 : D_SLOW,
|
||||
0x0008 : D_NORMAL,
|
||||
0x0010 : D_FAST,
|
||||
0x0018 : D_TURBO]
|
||||
arg3 = 0x0060 [0x0000 : 0,
|
||||
0x0020 : 1,
|
||||
0x0040 : 2,
|
||||
0x0060 : 3]
|
||||
arg4 = 0x0300 [0x0000 : 8,
|
||||
0x0100 : 34,
|
||||
0x0200 : 69,
|
||||
0x0300 : 240]
|
||||
}
|
||||
|
||||
// Generalized ceiling (tag, speed, height, target, change/model/direct/crush)
|
||||
[Generic_Ceiling] (0x4000, 0x5fff)
|
||||
{
|
||||
flags |= 0x0c20 [0x0020 : MONST]
|
||||
arg2 = 0x0018 [0x0000 : F_SLOW,
|
||||
0x0008 : F_NORMAL,
|
||||
0x0010 : F_FAST,
|
||||
0x0018 : F_TURBO]
|
||||
arg3 = 0x0380 [0x0300 : 24,
|
||||
0x0380 : 32]
|
||||
arg4 = 0x0380 [0x0000 : 1,
|
||||
0x0080 : 2,
|
||||
0x0100 : 3,
|
||||
0x0180 : 4,
|
||||
0x0200 : 5,
|
||||
0x0280 : 6]
|
||||
arg5 = 0x0c00 [0x0000 : 0,
|
||||
0x0400 : 1,
|
||||
0x0800 : 2,
|
||||
0x0c00 : 3]
|
||||
arg5 |= 0x0060 [0x0020 : 4,
|
||||
0x0040 : 8,
|
||||
0x0060 : 12]
|
||||
arg5 |= 0x1000 [0x1000 : 16]
|
||||
}
|
||||
|
||||
// Generalized floor (tag, speed, height, target, change/model/direct/crush)
|
||||
[Generic_Floor] (0x6000, 0x7fff)
|
||||
{
|
||||
flags |= 0x0c20 [0x0020 : MONST]
|
||||
arg2 = 0x0018 [0x0000 : F_SLOW,
|
||||
0x0008 : F_NORMAL,
|
||||
0x0010 : F_FAST,
|
||||
0x0018 : F_TURBO]
|
||||
arg3 = 0x0380 [0x0300 : 24,
|
||||
0x0380 : 32]
|
||||
arg4 = 0x0380 [0x0000 : 1,
|
||||
0x0080 : 2,
|
||||
0x0100 : 3,
|
||||
0x0180 : 4,
|
||||
0x0200 : 5,
|
||||
0x0280 : 6]
|
||||
arg5 = 0x0c00 [0x0000 : 0,
|
||||
0x0400 : 1,
|
||||
0x0800 : 2,
|
||||
0x0c00 : 3]
|
||||
arg5 |= 0x0060 [0x0020 : 4,
|
||||
0x0040 : 8,
|
||||
0x0060 : 12]
|
||||
arg5 |= 0x1000 [0x1000 : 16]
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
include "xlat/doom.txt"
|
||||
include "xlat/base.txt"
|
||||
|
||||
7 = USE, Stairs_BuildUpDoom (tag, F_SLOW, 8)
|
||||
8 = WALK, Stairs_BuildUpDoom (tag, F_SLOW, 8)
|
||||
|
@ -9,3 +9,58 @@ include "xlat/doom.txt"
|
|||
105 = WALK, Exit_Secret (0)
|
||||
106 = WALK, Stairs_BuildUpDoom (tag, F_SLOW, 16)
|
||||
107 = USE, Stairs_BuildUpDoom (tag, F_SLOW, 16)
|
||||
|
||||
sector bitmask 0xfc0 <<= 3;
|
||||
|
||||
sector 1 = dLight_Flicker;
|
||||
sector 2 = dLight_StrobeFast;
|
||||
sector 3 = dLight_StrobeSlow;
|
||||
sector 4 = dScroll_EastLavaDamage;
|
||||
sector 5 = dDamage_LavaWimpy;
|
||||
sector 7 = dDamage_Nukage;
|
||||
sector 8 = dLight_Glow;
|
||||
sector 9 = SECRET_MASK nobitmask;
|
||||
sector 10 = dSector_DoorCloseIn30;
|
||||
sector 11 = dDamage_End;
|
||||
sector 12 = dLight_StrobeSlowSync;
|
||||
sector 13 = dLight_StrobeFastSync;
|
||||
sector 14 = dSector_DoorRaiseIn5Mins;
|
||||
sector 15 = dFriction_Low;
|
||||
sector 16 = dDamage_LavaHefty;
|
||||
sector 17 = dLight_FireFlicker;
|
||||
sector 18 = dDamage_LavaWimpy;
|
||||
sector 19 = dDamage_LavaHefty;
|
||||
sector 20 = Carry_East5;
|
||||
sector 21 = Carry_East10;
|
||||
sector 22 = Carry_East25;
|
||||
sector 23 = Carry_East30;
|
||||
sector 24 = Carry_East35;
|
||||
sector 25 = Carry_North5;
|
||||
sector 26 = Carry_North10;
|
||||
sector 27 = Carry_North25;
|
||||
sector 28 = Carry_North30;
|
||||
sector 29 = Carry_North35;
|
||||
sector 30 = Carry_South5;
|
||||
sector 31 = Carry_South10;
|
||||
sector 32 = Carry_South25;
|
||||
sector 33 = Carry_South30;
|
||||
sector 34 = Carry_South35;
|
||||
sector 35 = Carry_West5;
|
||||
sector 36 = Carry_West10;
|
||||
sector 37 = Carry_West25;
|
||||
sector 38 = Carry_West30;
|
||||
sector 39 = Carry_West35;
|
||||
sector 40 = Wind_East_Weak;
|
||||
sector 41 = Wind_East_Medium;
|
||||
sector 42 = Wind_East_Strong;
|
||||
sector 43 = Wind_North_Weak;
|
||||
sector 44 = Wind_North_Medium;
|
||||
sector 45 = Wind_North_Strong;
|
||||
sector 46 = Wind_South_Weak;
|
||||
sector 47 = Wind_South_Medium;
|
||||
sector 48 = Wind_South_Strong;
|
||||
sector 49 = Wind_West_Weak;
|
||||
sector 50 = Wind_West_Medium;
|
||||
sector 51 = Wind_West_Strong;
|
||||
|
||||
|
||||
|
|
|
@ -322,4 +322,32 @@ RetailOnly = 121
|
|||
214 = USE|REP, ACS_ExecuteWithResult (0, 214, tag)
|
||||
229 = USE|REP, ACS_ExecuteWithResult (0, 229, tag)
|
||||
233 = USE|REP, ACS_ExecuteWithResult (0, 233, tag)
|
||||
234 = USE|REP, ACS_ExecuteWithResult (0, 234, tag)
|
||||
234 = USE|REP, ACS_ExecuteWithResult (0, 234, tag)
|
||||
|
||||
sector bitmask 0xfe0 <<= 3;
|
||||
|
||||
sector 1 = dLight_Flicker;
|
||||
sector 2 = dLight_StrobeFast;
|
||||
sector 3 = dLight_StrobeSlow;
|
||||
sector 4 = sLight_Strobe_Hurt;
|
||||
sector 5 = sDamage_Hellslime;
|
||||
sector 7 = dDamage_Nukage;
|
||||
sector 8 = dLight_Glow;
|
||||
sector 9 = SECRET_MASK nobitmask;
|
||||
sector 10 = dSector_DoorCloseIn30;
|
||||
sector 11 = dDamage_End;
|
||||
sector 12 = dLight_StrobeSlowSync;
|
||||
sector 13 = dLight_StrobeFastSync;
|
||||
sector 14 = dSector_DoorRaiseIn5Mins;
|
||||
sector 15 = Damage_InstantDeath;
|
||||
sector 16 = sDamage_SuperHellslime;
|
||||
sector 17 = dLight_FireFlicker;
|
||||
sector 18 = Scroll_StrifeCurrent;
|
||||
sector 19 = dDamage_LavaHefty;
|
||||
sector 20 = dScroll_EastLavaDamage;
|
||||
sector 21 = Light_Phased;
|
||||
sector 22 = LightSequenceStart;
|
||||
sector 23 = LightSequenceSpecial1;
|
||||
sector 24 = LightSequenceSpecial2;
|
||||
|
||||
|
||||
|
|
|
@ -69,6 +69,7 @@ sbarinfo.txt sbarinfo.txt
|
|||
xlat/doom.txt xlat/doom.txt
|
||||
xlat/heretic.txt xlat/heretic.txt
|
||||
xlat/strife.txt xlat/strife.txt
|
||||
xlat/base.txt xlat/base.txt
|
||||
xlat/defines.i xlat/defines.i
|
||||
|
||||
|
||||
|
@ -77,8 +78,6 @@ xlat/defines.i xlat/defines.i
|
|||
|
||||
dehsupp.txt dehsupp.txt
|
||||
|
||||
sectorx.txt sectorx.txt
|
||||
|
||||
animated.lmp animated.lmp
|
||||
spaldoom.lmp spaldoom.lmp
|
||||
spalhtic.lmp spalhtic.lmp
|
||||
|
|
Loading…
Reference in a new issue