mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-30 07:41:22 +00:00
371712c53a
- 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.
756 lines
9.6 KiB
Text
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;
|
|
}
|
|
}
|
|
|