// Notes so I don't forget them: // // When shooting missiles at something, if MF_SHADOW is set, the angle is adjusted with the formula: // angle += pr_spawnmissile.Random2() << 21 // When MF_STRIFEx4000000 is set, the angle is adjusted similarly: // angle += pr_spawnmissile.Random2() << 22 // Note that these numbers are different from those used by all the other Doom engine games. // Tank 1 Huge ------------------------------------------------------------ class Tank1 : Actor { Default { Radius 16; Height 192; +SOLID } States { Spawn: TNK1 A 15; TNK1 B 11; TNK1 C 40; Loop; } } // Tank 2 Huge ------------------------------------------------------------ class Tank2 : Actor { Default { Radius 16; Height 192; +SOLID } States { Spawn: TNK2 A 15; TNK2 B 11; TNK2 C 40; Loop; } } // Tank 3 Huge ------------------------------------------------------------ class Tank3 : Actor { Default { Radius 16; Height 192; +SOLID } States { Spawn: TNK3 A 15; TNK3 B 11; TNK3 C 40; Loop; } } // Tank 4 ------------------------------------------------------------------- class Tank4 : Actor { Default { Radius 16; Height 56; +SOLID } States { Spawn: TNK4 A 15; TNK4 B 11; TNK4 C 40; Loop; } } // Tank 5 ------------------------------------------------------------------- class Tank5 : Actor { Default { Radius 16; Height 56; +SOLID } States { Spawn: TNK5 A 15; TNK5 B 11; TNK5 C 40; Loop; } } // Tank 6 ------------------------------------------------------------------- class Tank6 : Actor { Default { Radius 16; Height 56; +SOLID } States { Spawn: TNK6 A 15; TNK6 B 11; TNK6 C 40; Loop; } } // Water Bottle ------------------------------------------------------------- class WaterBottle : Actor { States { Spawn: WATR A -1; Stop; } } // Mug ---------------------------------------------------------------------- class Mug : Actor { States { Spawn: MUGG A -1; Stop; } } // Wooden Barrel ------------------------------------------------------------ class WoodenBarrel : Actor { Default { Health 10; Radius 10; Height 32; +SOLID +SHOOTABLE +NOBLOOD +INCOMBAT DeathSound "woodenbarrel/death"; } States { Spawn: BARW A -1; Stop; Death: BARW B 2 A_Scream; BARW C 2; BARW D 2 A_NoBlocking; BARW EFG 2; BARW H -1; Stop; } } // Strife's explosive barrel ------------------------------------------------ class ExplosiveBarrel2 : Actor { Default { Health 30; Radius 10; Height 32; +SOLID +SHOOTABLE +NOBLOOD +OLDRADIUSDMG DeathSound "world/barrelx"; +INCOMBAT } States { Spawn: BART A -1; Stop; Death: BART B 2 Bright A_Scream; BART CD 2 Bright; BART E 2 Bright A_NoBlocking; BART F 2 Bright A_Explode(64, 64, alert:true); BART GHIJ 2 Bright; BART K 3 Bright; BART L -1; Stop; } } // Light Silver, Fluorescent ---------------------------------------------- class LightSilverFluorescent : Actor { Default { Radius 2.5; Height 16; +NOBLOCKMAP +FIXMAPTHINGPOS } States { Spawn: LITS A -1 Bright; Stop; } } // Light Brown, Fluorescent ----------------------------------------------- class LightBrownFluorescent : Actor { Default { Radius 2.5; Height 16; +NOBLOCKMAP +FIXMAPTHINGPOS } States { Spawn: LITB A -1 Bright; Stop; } } // Light Gold, Fluorescent ------------------------------------------------ class LightGoldFluorescent : Actor { Default { Radius 2.5; Height 16; +NOBLOCKMAP +FIXMAPTHINGPOS } States { Spawn: LITG A -1 Bright; Stop; } } // Light Globe -------------------------------------------------------------- class LightGlobe : Actor { Default { Radius 16; Height 16; +SOLID } States { Spawn: LITE A -1 Bright; Stop; } } // Techno Pillar ------------------------------------------------------------ class PillarTechno : Actor { Default { Radius 20; Height 128; +SOLID } States { Spawn: MONI A -1; Stop; } } // Aztec Pillar ------------------------------------------------------------- class PillarAztec : Actor { Default { Radius 16; Height 128; +SOLID } States { Spawn: STEL A -1; Stop; } } // Damaged Aztec Pillar ----------------------------------------------------- class PillarAztecDamaged : Actor { Default { Radius 16; Height 80; +SOLID } States { Spawn: STLA A -1; Stop; } } // Ruined Aztec Pillar ------------------------------------------------------ class PillarAztecRuined : Actor { Default { Radius 16; Height 40; +SOLID } States { Spawn: STLE A -1; Stop; } } // Huge Tech Pillar --------------------------------------------------------- class PillarHugeTech : Actor { Default { Radius 24; Height 192; +SOLID } States { Spawn: HUGE ABCD 4; Loop; } } // Alien Power Crystal in a Pillar ------------------------------------------ class PillarAlienPower : Actor { Default { Radius 24; Height 192; +SOLID ActiveSound "ambient/alien2"; } States { Spawn: APOW A 4 A_LoopActiveSound; Loop; } } // SStalactiteBig ----------------------------------------------------------- class SStalactiteBig : Actor { Default { Radius 16; Height 54; +SOLID +SPAWNCEILING +NOGRAVITY } States { Spawn: STLG C -1; Stop; } } // SStalactiteSmall --------------------------------------------------------- class SStalactiteSmall : Actor { Default { Radius 16; Height 40; +SOLID +SPAWNCEILING +NOGRAVITY } States { Spawn: STLG A -1; Stop; } } // SStalagmiteBig ----------------------------------------------------------- class SStalagmiteBig : Actor { Default { Radius 16; Height 40; +SOLID } States { Spawn: STLG B -1; Stop; } } // Cave Pillar Top ---------------------------------------------------------- class CavePillarTop : Actor { Default { Radius 16; Height 128; +SOLID +SPAWNCEILING +NOGRAVITY } States { Spawn: STLG D -1; Stop; } } // Cave Pillar Bottom ------------------------------------------------------- class CavePillarBottom : Actor { Default { Radius 16; Height 128; +SOLID } States { Spawn: STLG E -1; Stop; } } // SStalagmiteSmall --------------------------------------------------------- class SStalagmiteSmall : Actor { Default { Radius 16; Height 25; +SOLID } States { Spawn: STLG F -1; Stop; } } // Candle ------------------------------------------------------------------- class Candle : Actor { States { Spawn: KNDL A -1 Bright; Stop; } } // StrifeCandelabra --------------------------------------------------------- class StrifeCandelabra : Actor { Default { Radius 16; Height 40; +SOLID } States { Spawn: CLBR A -1; Stop; } } // Floor Water Drop --------------------------------------------------------- class WaterDropOnFloor : Actor { Default { +NOBLOCKMAP ActiveSound "world/waterdrip"; } States { Spawn: DRIP A 6 A_FLoopActiveSound; DRIP BC 4; DRIP D 4 A_FLoopActiveSound; DRIP EF 4; DRIP G 4 A_FLoopActiveSound; DRIP H 4; Loop; } } // Waterfall Splash --------------------------------------------------------- class WaterfallSplash : Actor { Default { +NOBLOCKMAP ActiveSound "world/waterfall"; } States { Spawn: SPLH ABCDEFG 4; SPLH H 4 A_LoopActiveSound; Loop; } } // Ceiling Water Drip ------------------------------------------------------- class WaterDrip : Actor { Default { Height 1; +NOBLOCKMAP +SPAWNCEILING +NOGRAVITY } States { Spawn: CDRP A 10; CDRP BCD 8; Loop; } } // WaterFountain ------------------------------------------------------------ class WaterFountain : Actor { Default { +NOBLOCKMAP ActiveSound "world/watersplash"; } States { Spawn: WTFT ABC 4; WTFT D 4 A_LoopActiveSound; Loop; } } // Hearts in Tank ----------------------------------------------------------- class HeartsInTank : Actor { Default { Radius 16; Height 56; +SOLID } States { Spawn: HERT ABC 4 Bright; Loop; } } // Teleport Swirl ----------------------------------------------------------- class TeleportSwirl : Actor { Default { +NOBLOCKMAP RenderStyle "Add"; Alpha 0.25; } States { Spawn: TELP ABCD 3 Bright; Loop; } } // Dead Player -------------------------------------------------------------- // Strife's disappeared. This one doesn't. class DeadStrifePlayer : Actor { States { Spawn: PLAY P 700; RGIB H -1; Stop; } } // Dead Peasant ------------------------------------------------------------- // Unlike Strife's, this one does not turn into gibs and disappear. class DeadPeasant : Actor { States { Spawn: PEAS N -1; Stop; } } // Dead Acolyte ------------------------------------------------------------- // Unlike Strife's, this one does not turn into gibs and disappear. class DeadAcolyte : Actor { States { Spawn: AGRD N -1; Stop; } } // Dead Reaver -------------------------------------------------------------- class DeadReaver : Actor { States { Spawn: ROB1 R -1; Stop; } } // Dead Rebel --------------------------------------------------------------- class DeadRebel : Actor { States { Spawn: HMN1 N -1; Stop; } } // Sacrificed Guy ----------------------------------------------------------- class SacrificedGuy : Actor { States { Spawn: SACR A -1; Stop; } } // Pile of Guts ------------------------------------------------------------- class PileOfGuts : Actor { // Strife used a doomednum, which is the same as the Aztec Pillar. Since // the pillar came first in the mobjinfo list, you could not spawn this // in a map. Pity. States { Spawn: DEAD A -1; Stop; } } // Burning Barrel ----------------------------------------------------------- class StrifeBurningBarrel : Actor { Default { Radius 16; Height 48; +SOLID } States { Spawn: BBAR ABCD 4 Bright; Loop; } } // Burning Bowl ----------------------------------------------------------- class BurningBowl : Actor { Default { Radius 16; Height 16; +SOLID ActiveSound "world/smallfire"; } States { Spawn: BOWL ABCD 4 Bright; Loop; } } // Burning Brazier ----------------------------------------------------------- class BurningBrazier : Actor { Default { Radius 10; Height 32; +SOLID ActiveSound "world/smallfire"; } States { Spawn: BRAZ ABCD 4 Bright; Loop; } } // Small Torch Lit -------------------------------------------------------- class SmallTorchLit : Actor { Default { Radius 2.5; Height 16; +NOBLOCKMAP +FIXMAPTHINGPOS // It doesn't have any action functions, so how does it use this sound? ActiveSound "world/smallfire"; } States { Spawn: TRHL ABCD 4 Bright; Loop; } } // Small Torch Unlit -------------------------------------------------------- class SmallTorchUnlit : Actor { Default { Radius 2.5; Height 16; +NOBLOCKMAP +FIXMAPTHINGPOS } States { Spawn: TRHO A -1; Stop; } } // Ceiling Chain ------------------------------------------------------------ class CeilingChain : Actor { Default { Radius 20; Height 93; +NOBLOCKMAP +SPAWNCEILING +NOGRAVITY } States { Spawn: CHAN A -1; Stop; } } // Cage Light --------------------------------------------------------------- class CageLight : Actor { Default { // No, it's not bright even though it's a light. Height 3; +NOBLOCKMAP +SPAWNCEILING +NOGRAVITY } States { Spawn: CAGE A -1; Stop; } } // Statue ------------------------------------------------------------------- class Statue : Actor { Default { Radius 20; Height 64; +SOLID } States { Spawn: STAT A -1; Stop; } } // Ruined Statue ------------------------------------------------------------ class StatueRuined : Actor { Default { Radius 20; Height 56; +SOLID } States { Spawn: DSTA A -1; Stop; } } // Medium Torch ------------------------------------------------------------- class MediumTorch : Actor { Default { Radius 4; Height 72; +SOLID } States { Spawn: LTRH ABCD 4; Loop; } } // Outside Lamp ------------------------------------------------------------- class OutsideLamp : Actor { Default { // No, it's not bright. Radius 3; Height 80; +SOLID } States { Spawn: LAMP A -1; Stop; } } // Pole Lantern ------------------------------------------------------------- class PoleLantern : Actor { Default { // No, it's not bright. Radius 3; Height 80; +SOLID } States { Spawn: LANT A -1; Stop; } } // Rock 1 ------------------------------------------------------------------- class SRock1 : Actor { Default { +NOBLOCKMAP } States { Spawn: ROK1 A -1; Stop; } } // Rock 2 ------------------------------------------------------------------- class SRock2 : Actor { Default { +NOBLOCKMAP } States { Spawn: ROK2 A -1; Stop; } } // Rock 3 ------------------------------------------------------------------- class SRock3 : Actor { Default { +NOBLOCKMAP } States { Spawn: ROK3 A -1; Stop; } } // Rock 4 ------------------------------------------------------------------- class SRock4 : Actor { Default { +NOBLOCKMAP } States { Spawn: ROK4 A -1; Stop; } } // Stick in Water ----------------------------------------------------------- class StickInWater : Actor { Default { +NOBLOCKMAP +FLOORCLIP ActiveSound "world/river"; } States { Spawn: LOGW ABCD 5 A_LoopActiveSound; Loop; } } // Rubble 1 ----------------------------------------------------------------- class Rubble1 : Actor { Default { +NOBLOCKMAP +NOCLIP } States { Spawn: RUB1 A -1; Stop; } } // Rubble 2 ----------------------------------------------------------------- class Rubble2 : Actor { Default { +NOBLOCKMAP +NOCLIP } States { Spawn: RUB2 A -1; Stop; } } // Rubble 3 ----------------------------------------------------------------- class Rubble3 : Actor { Default { +NOBLOCKMAP +NOCLIP } States { Spawn: RUB3 A -1; Stop; } } // Rubble 4 ----------------------------------------------------------------- class Rubble4 : Actor { Default { +NOBLOCKMAP +NOCLIP } States { Spawn: RUB4 A -1; Stop; } } // Rubble 5 ----------------------------------------------------------------- class Rubble5 : Actor { Default { +NOBLOCKMAP +NOCLIP } States { Spawn: RUB5 A -1; Stop; } } // Rubble 6 ----------------------------------------------------------------- class Rubble6 : Actor { Default { +NOBLOCKMAP +NOCLIP } States { Spawn: RUB6 A -1; Stop; } } // Rubble 7 ----------------------------------------------------------------- class Rubble7 : Actor { Default { +NOBLOCKMAP +NOCLIP } States { Spawn: RUB7 A -1; Stop; } } // Rubble 8 ----------------------------------------------------------------- class Rubble8 : Actor { Default { +NOBLOCKMAP +NOCLIP } States { Spawn: RUB8 A -1; Stop; } } // Surgery Crab ------------------------------------------------------------- class SurgeryCrab : Actor { Default { +SOLID +SPAWNCEILING +NOGRAVITY Radius 20; Height 16; } States { Spawn: CRAB A -1; Stop; } } // Large Torch -------------------------------------------------------------- class LargeTorch : Actor { Default { Radius 10; Height 72; +SOLID ActiveSound "world/smallfire"; } States { Spawn: LMPC ABCD 4 Bright; Loop; } } // Huge Torch -------------------------------------------------------------- class HugeTorch : Actor { Default { Radius 10; Height 80; +SOLID ActiveSound "world/smallfire"; } States { Spawn: LOGS ABCD 4; Loop; } } // Palm Tree ---------------------------------------------------------------- class PalmTree : Actor { Default { Radius 15; Height 109; +SOLID } States { Spawn: TREE A -1; Stop; } } // Big Tree ---------------------------------------------------------------- class BigTree2 : Actor { Default { Radius 15; Height 109; +SOLID } States { Spawn: TREE B -1; Stop; } } // Potted Tree ---------------------------------------------------------------- class PottedTree : Actor { Default { Radius 15; Height 64; +SOLID } States { Spawn: TREE C -1; Stop; } } // Tree Stub ---------------------------------------------------------------- class TreeStub : Actor { Default { Radius 15; Height 80; +SOLID } States { Spawn: TRET A -1; Stop; } } // Short Bush --------------------------------------------------------------- class ShortBush : Actor { Default { Radius 15; Height 40; +SOLID } States { Spawn: BUSH A -1; Stop; } } // Tall Bush --------------------------------------------------------------- class TallBush : Actor { Default { Radius 20; Height 64; +SOLID } States { Spawn: SHRB A -1; Stop; } } // Chimney Stack ------------------------------------------------------------ class ChimneyStack : Actor { Default { Radius 20; Height 64; // This height does not fit the sprite +SOLID } States { Spawn: STAK A -1; Stop; } } // Barricade Column --------------------------------------------------------- class BarricadeColumn : Actor { Default { Radius 16; Height 128; +SOLID } States { Spawn: BARC A -1; Stop; } } // Pot ---------------------------------------------------------------------- class Pot : Actor { Default { Radius 12; Height 24; +SOLID } States { Spawn: VAZE A -1; Stop; } } // Pitcher ------------------------------------------------------------------ class Pitcher : Actor { Default { Radius 12; Height 32; +SOLID } States { Spawn: VAZE B -1; Stop; } } // Stool -------------------------------------------------------------------- class Stool : Actor { Default { Radius 6; Height 24; +SOLID } States { Spawn: STOL A -1; Stop; } } // Metal Pot ---------------------------------------------------------------- class MetalPot : Actor { Default { +NOBLOCKMAP } States { Spawn: MPOT A -1; Stop; } } // Tub ---------------------------------------------------------------------- class Tub : Actor { Default { +NOBLOCKMAP } States { Spawn: TUB1 A -1; Stop; } } // Anvil -------------------------------------------------------------------- class Anvil : Actor { Default { Radius 16; Height 32; +SOLID } States { Spawn: ANVL A -1; Stop; } } // Silver Tech Lamp ---------------------------------------------------------- class TechLampSilver : Actor { Default { Radius 11; Height 64; +SOLID } States { Spawn: TECH A -1; Stop; } } // Brass Tech Lamp ---------------------------------------------------------- class TechLampBrass : Actor { Default { Radius 8; Height 64; +SOLID } States { Spawn: TECH B -1; Stop; } } // Tray -------------------------------------------------------------------- class Tray : Actor { Default { Radius 24; Height 40; +SOLID } States { Spawn: TRAY A -1; Stop; } } // AmmoFiller --------------------------------------------------------------- class AmmoFiller : Actor { Default { Radius 12; Height 24; +SOLID } States { Spawn: AFED A -1; Stop; } } // Sigil Banner ------------------------------------------------------------- class SigilBanner : Actor { Default { Radius 24; Height 96; +NOBLOCKMAP // I take it this was once solid, yes? } States { Spawn: SBAN A -1; Stop; } } // RebelBoots --------------------------------------------------------------- class RebelBoots : Actor { Default { +NOBLOCKMAP } States { Spawn: BOTR A -1; Stop; } } // RebelHelmet -------------------------------------------------------------- class RebelHelmet : Actor { Default { +NOBLOCKMAP } States { Spawn: HATR A -1; Stop; } } // RebelShirt --------------------------------------------------------------- class RebelShirt : Actor { Default { +NOBLOCKMAP } States { Spawn: TOPR A -1; Stop; } } // Alien Bubble Column ------------------------------------------------------ class AlienBubbleColumn : Actor { Default { Radius 16; Height 128; +SOLID ActiveSound "ambient/alien5"; } States { Spawn: BUBB A 4 A_LoopActiveSound; Loop; } } // Alien Floor Bubble ------------------------------------------------------- class AlienFloorBubble : Actor { Default { Radius 16; Height 72; +SOLID ActiveSound "ambient/alien6"; } States { Spawn: BUBF A 4 A_LoopActiveSound; Loop; } } // Alien Ceiling Bubble ----------------------------------------------------- class AlienCeilingBubble : Actor { Default { Radius 16; Height 72; +SOLID +SPAWNCEILING +NOGRAVITY ActiveSound "ambient/alien4"; } States { Spawn: BUBC A 4 A_LoopActiveSound; Loop; } } // Alien Asp Climber -------------------------------------------------------- class AlienAspClimber : Actor { Default { Radius 16; Height 128; +SOLID ActiveSound "ambient/alien3"; } States { Spawn: ASPR A 4 A_LoopActiveSound; Loop; } } // Alien Spider Light ------------------------------------------------------- class AlienSpiderLight : Actor { Default { Radius 32; Height 56; +SOLID ActiveSound "ambient/alien1"; } States { Spawn: SPDL ABC 5 A_LoopActiveSound; Loop; } } // Target Practice ----------------------------------------------------------- class TargetPractice : Actor { Default { Health 99999999; PainChance 255; Radius 10; Height 72; Mass 9999999; +SOLID +SHOOTABLE +NOBLOOD +INCOMBAT +NODAMAGE PainSound "misc/metalhit"; } States { Spawn: HOGN A 2 A_CheckTerrain; Loop; Pain: HOGN B 1 A_CheckTerrain; HOGN C 1 A_Pain; Goto Spawn; } } // Force Field Guard -------------------------------------------------------- class ForceFieldGuard : Actor { Default { Health 10; Radius 2; Height 1; Mass 10000; +SHOOTABLE +NOSECTOR +NOBLOOD +INCOMBAT } States { Spawn: TNT1 A -1; Stop; Death: TNT1 A 1 A_RemoveForceField; Stop; } override int TakeSpecialDamage (Actor inflictor, Actor source, int damage, Name damagetype) { if (inflictor == NULL || !(inflictor is "DegninOre")) { return -1; } return health; } } // Kneeling Guy ------------------------------------------------------------- class KneelingGuy : Actor { Default { Health 51; Painchance 255; Radius 6; Height 17; Mass 50000; +SOLID +SHOOTABLE +NOBLOOD +ISMONSTER +INCOMBAT PainSound "misc/static"; DeathSound "misc/static"; ActiveSound "misc/chant"; } States { Spawn: See: NEAL A 15 A_LoopActiveSound; NEAL B 40 A_LoopActiveSound; Loop; Pain: NEAL C 5 A_SetShadow; NEAL B 4 A_Pain; NEAL C 5 A_ClearShadow; Goto Spawn; Wound: NEAL B 6; NEAL C 13 A_GetHurt; Loop; Death: NEAL D 5; NEAL E 5 A_Scream; NEAL F 6; NEAL G 5 A_NoBlocking; NEAL H 5; NEAL I 6; NEAL J -1; Stop; } } // Power Coupling ----------------------------------------------------------- class PowerCoupling : Actor { Default { Health 40; Radius 17; Height 64; Mass 999999; +SOLID +SHOOTABLE +DROPPED +NOBLOOD +NOTDMATCH +INCOMBAT } States { Spawn: COUP AB 5; Loop; } override void Die (Actor source, Actor inflictor, int dmgflags) { Super.Die (source, inflictor, dmgflags); int i; for (i = 0; i < MAXPLAYERS; ++i) if (playeringame[i] && players[i].health > 0) break; if (i == MAXPLAYERS) return; // [RH] In case the player broke it with the dagger, alert the guards now. if (LastHeard != source) { NoiseAlert (source); } Door_Close(225, 16); Floor_LowerToHighestEE(44, 8); players[i].mo.GiveInventoryType ("QuestItem6"); S_Sound ("svox/voc13", CHAN_VOICE); players[i].SetLogNumber (13); DoDropItem ("BrokenPowerCoupling", -1, 256); Destroy (); } } // Gibs for things that bleed ----------------------------------------------- class Meat : Actor { Default { +NOCLIP } States { Spawn: MEAT A 700; Stop; MEAT B 700; Stop; MEAT C 700; Stop; MEAT D 700; Stop; MEAT E 700; Stop; MEAT F 700; Stop; MEAT G 700; Stop; MEAT H 700; Stop; MEAT I 700; Stop; MEAT J 700; Stop; MEAT K 700; Stop; MEAT L 700; Stop; MEAT M 700; Stop; MEAT N 700; Stop; MEAT O 700; Stop; MEAT P 700; Stop; MEAT Q 700; Stop; MEAT R 700; Stop; MEAT S 700; Stop; MEAT T 700; Stop; } override void BeginPlay () { // Strife used mod 19, but there are 20 states. Hmm. SetState (SpawnState + random[GibTosser]() % 20); } } // Gibs for things that don't bleed ----------------------------------------- class Junk : Meat { States { Spawn: JUNK A 700; Stop; JUNK B 700; Stop; JUNK C 700; Stop; JUNK D 700; Stop; JUNK E 700; Stop; JUNK F 700; Stop; JUNK G 700; Stop; JUNK H 700; Stop; JUNK I 700; Stop; JUNK J 700; Stop; JUNK K 700; Stop; JUNK L 700; Stop; JUNK M 700; Stop; JUNK N 700; Stop; JUNK O 700; Stop; JUNK P 700; Stop; JUNK Q 700; Stop; JUNK R 700; Stop; JUNK S 700; Stop; JUNK T 700; Stop; } }