qzdoom/wadsrc/static/zscript/hexen/hexenspecialdecs.txt
Christoph Oelckers 371712c53a - turned everything I could into non-action functions.
- fixed emission of the self pointer in FxVMFunctionCall. I did not realize that the self expression only sets up a register for the value, not pushing it onto the stack.
2016-10-22 17:49:08 +02:00

756 lines
9.6 KiB
Text

// Winged Statue (no skull) -------------------------------------------------
class ZWingedStatueNoSkull : SwitchingDecoration
{
Default
{
Radius 10;
Height 62;
+SOLID
}
States
{
Spawn:
STWN A -1;
Stop;
Active:
STWN B -1;
Stop;
}
}
// Gem pedestal -------------------------------------------------------------
class ZGemPedestal : SwitchingDecoration
{
Default
{
Radius 10;
Height 40;
+SOLID
}
States
{
Spawn:
GMPD A -1;
Stop;
Active:
GMPD B -1;
Stop;
}
}
// Tree (destructible) ------------------------------------------------------
class TreeDestructible : Actor
{
Default
{
Health 70;
Radius 15;
Height 180;
DeathHeight 24;
Mass 0x7fffffff;
PainSound "TreeExplode";
DeathSound "TreeBreak";
+SOLID +SHOOTABLE +NOBLOOD +NOICEDEATH
}
States
{
Spawn:
TRDT A -1;
Stop;
Death:
TRDT B 5;
TRDT C 5 A_Scream;
TRDT DEF 5;
TRDT G -1;
Stop;
Burn:
TRDT H 5 Bright A_Pain;
TRDT IJKL 5 Bright;
TRDT M 5 Bright A_Explode(10, 128);
TRDT N 5 Bright;
TRDT OP 5;
TRDT Q -1;
Stop;
}
}
// Pottery1 ------------------------------------------------------------------
class Pottery1 : Actor native
{
Default
{
Health 15;
Speed 10;
Height 32;
+SOLID +SHOOTABLE +NOBLOOD +DROPOFF
+SLIDESONWALLS +PUSHABLE +TELESTOMP +CANPASS
+NOICEDEATH
}
native void A_PotteryExplode();
States
{
Spawn:
POT1 A -1;
Loop;
Death:
POT1 A 0 A_PotteryExplode;
Stop;
}
}
// Pottery2 -----------------------------------------------------------------
class Pottery2 : Pottery1
{
Default
{
Height 25;
}
States
{
Spawn:
POT2 A -1;
Stop;
}
}
// Pottery3 -----------------------------------------------------------------
class Pottery3 : Pottery1
{
Default
{
Height 25;
}
States
{
Spawn:
POT3 A -1;
Stop;
}
}
// Pottery Bit --------------------------------------------------------------
class PotteryBit : Actor
{
Default
{
Radius 5;
Height 5;
+MISSILE
+NOTELEPORT
+NOICEDEATH
}
native void A_PotteryChooseBit();
native void A_PotteryCheck();
States
{
Spawn:
PBIT ABCDE -1;
Stop;
Death:
PBIT F 0 A_PotteryChooseBit;
Stop;
Pottery1:
PBIT F 140;
PBIT F 1 A_PotteryCheck;
Stop;
Pottery2:
PBIT G 140;
PBIT G 1 A_PotteryCheck;
Stop;
Pottery3:
PBIT H 140;
PBIT H 1 A_PotteryCheck;
Stop;
Pottery4:
PBIT I 140;
PBIT I 1 A_PotteryCheck;
Stop;
Pottery5:
PBIT J 140;
PBIT J 1 A_PotteryCheck;
Stop;
}
}
// Blood pool ---------------------------------------------------------------
class BloodPool : Actor
{
States
{
Spawn:
BDPL A -1;
Stop;
}
}
// Lynched corpse (no heart) ------------------------------------------------
class ZCorpseLynchedNoHeart : Actor native
{
Default
{
Radius 10;
Height 100;
+SOLID +SPAWNCEILING +NOGRAVITY
}
native void A_CorpseBloodDrip();
States
{
Spawn:
CPS5 A 140 A_CorpseBloodDrip;
Loop;
}
}
// CorpseBloodDrip ----------------------------------------------------------
class CorpseBloodDrip : Actor
{
Default
{
Radius 1;
Height 4;
Gravity 0.125;
+MISSILE
+NOICEDEATH
DeathSound "Drip";
}
States
{
Spawn:
BDRP A -1;
Stop;
Death:
BDSH AB 3;
BDSH CD 2;
Stop;
}
}
// Corpse bit ---------------------------------------------------------------
class CorpseBit : Actor
{
Default
{
Radius 5;
Height 5;
+NOBLOCKMAP
+TELESTOMP
}
States
{
Spawn:
CPB1 A -1;
Stop;
CPB2 A -1;
Stop;
CPB3 A -1;
Stop;
CPB4 A -1;
Stop;
}
}
// Corpse (sitting, splatterable) -------------------------------------------
class ZCorpseSitting : Actor
{
Default
{
Health 30;
Radius 15;
Height 35;
+SOLID +SHOOTABLE +NOBLOOD
+NOICEDEATH
DeathSound "FireDemonDeath";
}
native void A_CorpseExplode();
States
{
Spawn:
CPS6 A -1;
Stop;
Death:
CPS6 A 1 A_CorpseExplode;
Stop;
}
}
// Leaf Spawner -------------------------------------------------------------
class LeafSpawner : Actor
{
Default
{
+NOBLOCKMAP +NOSECTOR
+INVISIBLE
}
native void A_LeafSpawn();
States
{
Spawn:
TNT1 A 20 A_LeafSpawn;
Loop;
}
}
// Leaf 1 -------------------------------------------------------------------
class Leaf1 : Actor
{
Default
{
Radius 2;
Height 4;
Gravity 0.125;
+NOBLOCKMAP +MISSILE
+NOTELEPORT +DONTSPLASH
+NOICEDEATH
}
native void A_LeafThrust();
native void A_LeafCheck();
States
{
Spawn:
LEF1 ABC 4;
LEF1 D 4 A_LeafThrust;
LEF1 EFG 4;
LEF1 H 4 A_LeafThrust;
LEF1 I 4;
LEF1 AB 4;
LEF1 C 4 A_LeafThrust;
LEF1 DEF 4;
LEF1 G 4 A_LeafThrust;
LEF1 HI 4;
Stop;
Death:
LEF3 D 10 A_LeafCheck;
Wait;
}
}
// Leaf 2 -------------------------------------------------------------------
class Leaf2 : Leaf1
{
States
{
Spawn:
LEF2 ABC 4;
LEF2 D 4 A_LeafThrust;
LEF2 EFG 4;
LEF2 H 4 A_LeafThrust;
LEF2 I 4;
LEF2 AB 4;
LEF2 C 4 A_LeafThrust;
LEF2 DEF 4;
LEF2 G 4 A_LeafThrust;
LEF2 HI 4;
Stop;
}
}
// Twined torch -------------------------------------------------------------
class ZTwinedTorch : SwitchableDecoration
{
Default
{
Radius 10;
Height 64;
+SOLID
}
States
{
Active:
TWTR A 0 Bright A_PlaySound("Ignite");
Spawn:
TWTR ABCDEFGH 4 Bright;
Loop;
Inactive:
TWTR I -1;
Stop;
}
}
class ZTwinedTorchUnlit : ZTwinedTorch
{
States
{
Spawn:
Goto Super::Inactive;
}
}
// Wall torch ---------------------------------------------------------------
class ZWallTorch : SwitchableDecoration
{
Default
{
+NOBLOCKMAP
+NOGRAVITY
+FIXMAPTHINGPOS
Radius 6.5;
}
States
{
Active:
WLTR A 0 Bright A_PlaySound("Ignite");
Spawn:
WLTR ABCDEFGH 5 Bright;
Loop;
Inactive:
WLTR I -1;
Stop;
}
}
class ZWallTorchUnlit : ZWallTorch
{
States
{
Spawn:
Goto Super::Inactive;
}
}
// Shrub1 -------------------------------------------------------------------
class ZShrub1 : Actor
{
Default
{
Radius 8;
Height 24;
Health 20;
Mass 0x7fffffff;
+SOLID +SHOOTABLE +NOBLOOD +NOICEDEATH
DeathSound "TreeExplode";
}
States
{
Spawn:
SHB1 A -1;
Stop;
Burn:
SHB1 B 7 Bright;
SHB1 C 6 Bright A_Scream;
SHB1 D 5 Bright;
Stop;
}
}
// Shrub2 -------------------------------------------------------------------
class ZShrub2 : Actor
{
Default
{
Radius 16;
Height 40;
Health 20;
Mass 0x7fffffff;
+SOLID +SHOOTABLE +NOBLOOD +NOICEDEATH
DeathSound "TreeExplode";
}
States
{
Spawn:
SHB2 A -1;
Stop;
Burn:
SHB2 B 7 Bright;
SHB2 C 6 Bright A_Scream;
SHB2 D 5 Bright A_Explode(30, 64);
SHB2 E 5 Bright;
Stop;
}
}
// Fire Bull ----------------------------------------------------------------
class ZFireBull : SwitchableDecoration
{
Default
{
Radius 20;
Height 80;
+SOLID
}
States
{
Active:
FBUL I 4 Bright A_PlaySound("Ignite");
FBUL J 4 Bright;
Spawn:
FBUL ABCDEFG 4 Bright;
Loop;
Inactive:
FBUL JI 4 Bright;
FBUL H -1;
Stop;
}
}
class ZFireBullUnlit : ZFireBull
{
States
{
Spawn:
Goto Super::Inactive+2;
}
}
// Suit of armor ------------------------------------------------------------
class ZSuitOfArmor : Actor
{
Default
{
Health 60;
Radius 16;
Height 72;
Mass 0x7fffffff;
+SOLID +SHOOTABLE +NOBLOOD
+NOICEDEATH
DeathSound "SuitofArmorBreak";
}
native void A_SoAExplode();
States
{
Spawn:
ZSUI A -1;
Stop;
Death:
ZSUI A 1 A_SoAExplode;
Stop;
}
}
// Armor chunk --------------------------------------------------------------
class ZArmorChunk : Actor
{
Default
{
Radius 4;
Height 8;
}
States
{
Spawn:
ZSUI B -1;
Stop;
ZSUI C -1;
Stop;
ZSUI D -1;
Stop;
ZSUI E -1;
Stop;
ZSUI F -1;
Stop;
ZSUI G -1;
Stop;
ZSUI H -1;
Stop;
ZSUI I -1;
Stop;
ZSUI J -1;
Stop;
ZSUI K -1;
Stop;
}
}
// Bell ---------------------------------------------------------------------
class ZBell : Actor native
{
Default
{
Health 5;
Radius 56;
Height 120;
Mass 0x7fffffff;
+SOLID +SHOOTABLE +NOBLOOD +NOGRAVITY +SPAWNCEILING
+NOICEDEATH
DeathSound "BellRing";
}
native void A_BellReset1();
native void A_BellReset2();
States
{
Spawn:
BBLL F -1;
Stop;
Death:
BBLL A 4 A_BellReset1;
BBLL BC 4;
BBLL D 5 A_Scream;
BBLL CB 4;
BBLL A 3;
BBLL E 4;
BBLL F 5;
BBLL G 6 A_Scream;
BBLL F 5;
BBLL EA 4;
BBLL BC 5;
BBLL D 6 A_Scream;
BBLL CB 5;
BBLL A 4;
BBLL EF 5;
BBLL G 7 A_Scream;
BBLL FEA 5;
BBLL B 6;
BBLL C 6;
BBLL D 7 A_Scream;
BBLL CB 6;
BBLL A 5;
BBLL EF 6;
BBLL G 7 A_Scream;
BBLL FEABC 6;
BBLL B 7;
BBLL A 8;
BBLL E 12;
BBLL A 10;
BBLL B 12;
BBLL A 12;
BBLL E 14;
BBLL A 1 A_BellReset2;
Goto Spawn;
}
}
// "Christmas" Tree ---------------------------------------------------------
class ZXmasTree : Actor
{
Default
{
Radius 11;
Height 130;
Health 20;
Mass 0x7fffffff;
+SOLID +SHOOTABLE +NOBLOOD +NOICEDEATH
DeathSound "TreeExplode";
}
States
{
Spawn:
XMAS A -1;
Stop;
Burn:
XMAS B 6 Bright;
XMAS C 6 Bright A_Scream;
XMAS D 5 Bright;
XMAS E 5 Bright A_Explode(30, 64);
XMAS F 5 Bright;
XMAS G 4 Bright;
XMAS H 5;
XMAS I 4 A_NoBlocking;
XMAS J 4;
XMAS K -1;
Stop;
}
}
// Cauldron -----------------------------------------------------------------
class ZCauldron : SwitchableDecoration
{
Default
{
Radius 12;
Height 26;
+SOLID
}
States
{
Active:
CDRN B 0 Bright A_PlaySound("Ignite");
Spawn:
CDRN BCDEFGH 4 Bright;
Loop;
Inactive:
CDRN A -1;
Stop;
}
}
class ZCauldronUnlit : ZCauldron
{
States
{
Spawn:
Goto Super::Inactive;
}
}
// Water Drip ---------------------------------------------------------------
class HWaterDrip : Actor
{
Default
{
+MISSILE
+NOTELEPORT
Gravity 0.125;
Mass 1;
DeathSound "Drip";
}
States
{
Spawn:
HWAT A -1;
Stop;
}
}