From 023b21a1423adda13cab18f87aadd2f5f0935a54 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sat, 9 Aug 2008 17:43:14 +0000 Subject: [PATCH] - Converted the last of Hexen's inventory items to DECORATE so that I could export AInventory. - Added some DECORATE fixes by Gez. SVN r1138 (trunk) --- docs/rh-log.txt | 2 + src/codepointers.h | 9 + src/g_hexen/a_healingradius.cpp | 34 +- src/g_hexen/a_teleportother.cpp | 136 +----- src/g_shared/a_pickups.cpp | 78 ++- src/g_shared/a_pickups.h | 2 +- wadsrc/static/actors/hexen/flechette.txt | 38 ++ wadsrc/static/actors/hexen/healingradius.txt | 23 + .../static/actors/hexen/hexenspecialdecs.txt | 33 -- wadsrc/static/actors/hexen/korax.txt | 1 + wadsrc/static/actors/hexen/teleportother.txt | 113 +++++ wadsrc/static/actors/nativeclasses.txt | 43 +- wadsrc/static/actors/raven/artitele.txt | 2 +- wadsrc/static/actors/raven/minotaur.txt | 1 - wadsrc/static/decorate.txt | 2 + zdoom.vcproj | 450 +++++++++--------- 16 files changed, 459 insertions(+), 508 deletions(-) create mode 100644 wadsrc/static/actors/hexen/healingradius.txt create mode 100644 wadsrc/static/actors/hexen/teleportother.txt diff --git a/docs/rh-log.txt b/docs/rh-log.txt index b4f1a55b2..cffdbe6cb 100644 --- a/docs/rh-log.txt +++ b/docs/rh-log.txt @@ -1,4 +1,6 @@ August 9, 2008 (Changes by Graf Zahl) +- Converted the last of Hexen's inventory items to DECORATE so that I could + export AInventory. - Removed AT_GAME_SET because it's no longer used anywhere. - Converted the last remaining global classes to DECORATE. - Fixed: Inventory.PickupFlash requires an class name as parameter not an diff --git a/src/codepointers.h b/src/codepointers.h index 1a886870e..ffb7e785c 100644 --- a/src/codepointers.h +++ b/src/codepointers.h @@ -110,6 +110,10 @@ ACTOR(ClearReFire) ACTOR(SpawnSingleItem) ACTOR(GiveQuestItem) ACTOR(RemoveForceField) +ACTOR(RestoreSpecialPosition) +ACTOR(RestoreSpecialDoomThing) +ACTOR(RestoreSpecialThing1) +ACTOR(RestoreSpecialThing2) ACTOR(M_Refire) ACTOR(M_CheckAttack) @@ -304,6 +308,11 @@ ACTOR(MageAttack) ACTOR(IceSetTics) ACTOR(PigPain) ACTOR(SnoutAttack) +ACTOR(TeloSpawnA) +ACTOR(TeloSpawnB) +ACTOR(TeloSpawnC) +ACTOR(TeloSpawnD) +ACTOR(CheckTeleRing) ACTOR(TemplarAttack) ACTOR(SentinelAttack) diff --git a/src/g_hexen/a_healingradius.cpp b/src/g_hexen/a_healingradius.cpp index fbbe6bf5b..eceb926ee 100644 --- a/src/g_hexen/a_healingradius.cpp +++ b/src/g_hexen/a_healingradius.cpp @@ -18,42 +18,12 @@ static FRandom pr_healradius ("HealRadius"); class AArtiHealingRadius : public AInventory { - DECLARE_ACTOR (AArtiHealingRadius, AInventory) + DECLARE_CLASS (AArtiHealingRadius, AInventory) public: bool Use (bool pickup); }; -FState AArtiHealingRadius::States[] = -{ - S_BRIGHT (HRAD, 'A', 4, NULL , &States[1]), - S_BRIGHT (HRAD, 'B', 4, NULL , &States[2]), - S_BRIGHT (HRAD, 'C', 4, NULL , &States[3]), - S_BRIGHT (HRAD, 'D', 4, NULL , &States[4]), - S_BRIGHT (HRAD, 'E', 4, NULL , &States[5]), - S_BRIGHT (HRAD, 'F', 4, NULL , &States[6]), - S_BRIGHT (HRAD, 'G', 4, NULL , &States[7]), - S_BRIGHT (HRAD, 'H', 4, NULL , &States[8]), - S_BRIGHT (HRAD, 'I', 4, NULL , &States[9]), - S_BRIGHT (HRAD, 'J', 4, NULL , &States[10]), - S_BRIGHT (HRAD, 'K', 4, NULL , &States[11]), - S_BRIGHT (HRAD, 'L', 4, NULL , &States[12]), - S_BRIGHT (HRAD, 'M', 4, NULL , &States[13]), - S_BRIGHT (HRAD, 'N', 4, NULL , &States[14]), - S_BRIGHT (HRAD, 'O', 4, NULL , &States[15]), - S_BRIGHT (HRAD, 'P', 4, NULL , &States[0]), -}; - -IMPLEMENT_ACTOR (AArtiHealingRadius, Hexen, 10120, 0) - PROP_Flags (MF_SPECIAL|MF_COUNTITEM) - PROP_Flags2 (MF2_FLOATBOB) - PROP_SpawnState (0) - PROP_Inventory_DefMaxAmount - PROP_Inventory_PickupFlash (1) - PROP_Inventory_FlagsSet (IF_INVBAR|IF_FANCYPICKUPSOUND) - PROP_Inventory_Icon ("ARTIHRAD") - PROP_Inventory_PickupSound ("misc/p_pkup") - PROP_Inventory_PickupMessage("$TXT_ARTIHEALINGRADIUS") -END_DEFAULTS +IMPLEMENT_CLASS (AArtiHealingRadius) bool AArtiHealingRadius::Use (bool pickup) { diff --git a/src/g_hexen/a_teleportother.cpp b/src/g_hexen/a_teleportother.cpp index 8a9342e37..3bb12815e 100644 --- a/src/g_hexen/a_teleportother.cpp +++ b/src/g_hexen/a_teleportother.cpp @@ -25,143 +25,25 @@ void P_TeleportToDeathmatchStarts (AActor *victim); class AArtiTeleportOther : public AInventory { - DECLARE_ACTOR (AArtiTeleportOther, AInventory) + DECLARE_CLASS (AArtiTeleportOther, AInventory) public: bool Use (bool pickup); }; -FState AArtiTeleportOther::States[] = -{ -#define S_ARTI_TELOTHER1 0 - S_NORMAL (TELO, 'A', 5, NULL , &States[S_ARTI_TELOTHER1+1]), - S_NORMAL (TELO, 'B', 5, NULL , &States[S_ARTI_TELOTHER1+2]), - S_NORMAL (TELO, 'C', 5, NULL , &States[S_ARTI_TELOTHER1+3]), - S_NORMAL (TELO, 'D', 5, NULL , &States[S_ARTI_TELOTHER1]), -}; - -IMPLEMENT_ACTOR (AArtiTeleportOther, Hexen, 10040, 17) - PROP_Flags (MF_SPECIAL|MF_COUNTITEM) - PROP_Flags2 (MF2_FLOATBOB) - PROP_SpawnState (S_ARTI_TELOTHER1) - PROP_Inventory_DefMaxAmount - PROP_Inventory_PickupFlash (1) - PROP_Inventory_FlagsSet (IF_INVBAR|IF_FANCYPICKUPSOUND) - PROP_Inventory_Icon ("ARTITELO") - PROP_Inventory_PickupSound ("misc/p_pkup") - PROP_Inventory_PickupMessage("$TXT_ARTITELEPORTOTHER") -END_DEFAULTS +IMPLEMENT_CLASS (AArtiTeleportOther) // Teleport Other FX -------------------------------------------------------- class ATelOtherFX1 : public AActor { - DECLARE_ACTOR (ATelOtherFX1, AActor) + DECLARE_CLASS (ATelOtherFX1, AActor) public: int DoSpecialDamage (AActor *target, int damage); }; -FState ATelOtherFX1::States[] = -{ -#define S_TELO_FX1 0 - S_BRIGHT (TRNG, 'E', 5, NULL , &States[S_TELO_FX1+1]), - S_BRIGHT (TRNG, 'D', 4, NULL , &States[S_TELO_FX1+2]), - S_BRIGHT (TRNG, 'C', 3, A_TeloSpawnC , &States[S_TELO_FX1+3]), - S_BRIGHT (TRNG, 'B', 3, A_TeloSpawnB , &States[S_TELO_FX1+4]), - S_BRIGHT (TRNG, 'A', 3, A_TeloSpawnA , &States[S_TELO_FX1+5]), - S_BRIGHT (TRNG, 'B', 3, A_TeloSpawnB , &States[S_TELO_FX1+6]), - S_BRIGHT (TRNG, 'C', 3, A_TeloSpawnC , &States[S_TELO_FX1+7]), - S_BRIGHT (TRNG, 'D', 3, A_TeloSpawnD , &States[S_TELO_FX1+2]), +IMPLEMENT_CLASS (ATelOtherFX1) -#define S_TELO_FX_DONE (S_TELO_FX1+8) - S_BRIGHT (TRNG, 'E', 3, NULL , NULL), - -#define S_TELO_FX2 (S_TELO_FX_DONE+1) - S_BRIGHT (TRNG, 'B', 4, NULL , &States[S_TELO_FX2+1]), - S_BRIGHT (TRNG, 'C', 4, NULL , &States[S_TELO_FX2+2]), - S_BRIGHT (TRNG, 'D', 4, NULL , &States[S_TELO_FX2+3]), - S_BRIGHT (TRNG, 'C', 4, NULL , &States[S_TELO_FX2+4]), - S_BRIGHT (TRNG, 'B', 4, NULL , &States[S_TELO_FX2+5]), - S_BRIGHT (TRNG, 'A', 4, A_CheckTeleRing , &States[S_TELO_FX2+0]), - -#define S_TELO_FX3 (S_TELO_FX2+6) - S_BRIGHT (TRNG, 'C', 4, NULL , &States[S_TELO_FX3+1]), - S_BRIGHT (TRNG, 'D', 4, NULL , &States[S_TELO_FX3+2]), - S_BRIGHT (TRNG, 'C', 4, NULL , &States[S_TELO_FX3+3]), - S_BRIGHT (TRNG, 'B', 4, NULL , &States[S_TELO_FX3+4]), - S_BRIGHT (TRNG, 'A', 4, NULL , &States[S_TELO_FX3+5]), - S_BRIGHT (TRNG, 'B', 4, A_CheckTeleRing , &States[S_TELO_FX3+0]), - -#define S_TELO_FX4 (S_TELO_FX3+6) - S_BRIGHT (TRNG, 'D', 4, NULL , &States[S_TELO_FX4+1]), - S_BRIGHT (TRNG, 'C', 4, NULL , &States[S_TELO_FX4+2]), - S_BRIGHT (TRNG, 'B', 4, NULL , &States[S_TELO_FX4+3]), - S_BRIGHT (TRNG, 'A', 4, NULL , &States[S_TELO_FX4+4]), - S_BRIGHT (TRNG, 'B', 4, NULL , &States[S_TELO_FX4+5]), - S_BRIGHT (TRNG, 'C', 4, A_CheckTeleRing , &States[S_TELO_FX4+0]), - -#define S_TELO_FX5 (S_TELO_FX4+6) - S_BRIGHT (TRNG, 'C', 4, NULL , &States[S_TELO_FX5+1]), - S_BRIGHT (TRNG, 'B', 4, NULL , &States[S_TELO_FX5+2]), - S_BRIGHT (TRNG, 'A', 4, NULL , &States[S_TELO_FX5+3]), - S_BRIGHT (TRNG, 'B', 4, NULL , &States[S_TELO_FX5+4]), - S_BRIGHT (TRNG, 'C', 4, NULL , &States[S_TELO_FX5+5]), - S_BRIGHT (TRNG, 'D', 4, A_CheckTeleRing , &States[S_TELO_FX5+0]) -}; - -IMPLEMENT_ACTOR (ATelOtherFX1, Any, -1, 0) - PROP_DamageLong (10001) - PROP_Flags (MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY|MF_NOBLOCKMAP) - PROP_Flags2 (MF2_NOTELEPORT) - PROP_Flags3 (MF3_BLOODLESSIMPACT) - PROP_RadiusFixed (16) - PROP_HeightFixed (16) - PROP_SpeedFixed (20) - - PROP_SpawnState (S_TELO_FX1) - PROP_DeathState (S_TELO_FX_DONE) -END_DEFAULTS - -class ATelOtherFX2 : public ATelOtherFX1 -{ - DECLARE_STATELESS_ACTOR (ATelOtherFX2, ATelOtherFX1) -}; - -IMPLEMENT_STATELESS_ACTOR (ATelOtherFX2, Any, -1, 0) - PROP_SpeedFixed (16) - PROP_SpawnState (S_TELO_FX2) -END_DEFAULTS - -class ATelOtherFX3 : public ATelOtherFX1 -{ - DECLARE_STATELESS_ACTOR (ATelOtherFX3, ATelOtherFX1) -}; - -IMPLEMENT_STATELESS_ACTOR (ATelOtherFX3, Any, -1, 0) - PROP_SpeedFixed (16) - PROP_SpawnState (S_TELO_FX3) -END_DEFAULTS - -class ATelOtherFX4 : public ATelOtherFX1 -{ - DECLARE_STATELESS_ACTOR (ATelOtherFX4, ATelOtherFX1) -}; - -IMPLEMENT_STATELESS_ACTOR (ATelOtherFX4, Any, -1, 0) - PROP_SpeedFixed (16) - PROP_SpawnState (S_TELO_FX4) -END_DEFAULTS - -class ATelOtherFX5 : public ATelOtherFX1 -{ - DECLARE_STATELESS_ACTOR (ATelOtherFX5, ATelOtherFX1) -}; - -IMPLEMENT_STATELESS_ACTOR (ATelOtherFX5, Any, -1, 0) - PROP_SpeedFixed (16) - PROP_SpawnState (S_TELO_FX5) -END_DEFAULTS - -static void TeloSpawn (AActor *source, const PClass *type) +static void TeloSpawn (AActor *source, const char *type) { AActor *fx; @@ -179,22 +61,22 @@ static void TeloSpawn (AActor *source, const PClass *type) void A_TeloSpawnA (AActor *actor) { - TeloSpawn (actor, RUNTIME_CLASS(ATelOtherFX2)); + TeloSpawn (actor, "TelOtherFX2"); } void A_TeloSpawnB (AActor *actor) { - TeloSpawn (actor, RUNTIME_CLASS(ATelOtherFX3)); + TeloSpawn (actor, "TelOtherFX3"); } void A_TeloSpawnC (AActor *actor) { - TeloSpawn (actor, RUNTIME_CLASS(ATelOtherFX4)); + TeloSpawn (actor, "TelOtherFX4"); } void A_TeloSpawnD (AActor *actor) { - TeloSpawn (actor, RUNTIME_CLASS(ATelOtherFX5)); + TeloSpawn (actor, "TelOtherFX5"); } void A_CheckTeleRing (AActor *actor) diff --git a/src/g_shared/a_pickups.cpp b/src/g_shared/a_pickups.cpp index fe880cb84..29bdf4ba6 100644 --- a/src/g_shared/a_pickups.cpp +++ b/src/g_shared/a_pickups.cpp @@ -363,38 +363,6 @@ void A_RestoreSpecialPosition (AActor *self) } } -/***************************************************************************/ -/* AInventory implementation */ -/***************************************************************************/ - -FState AInventory::States[] = -{ -#define S_HIDEDOOMISH 0 - S_NORMAL (TNT1, 'A', 1050, NULL , &States[S_HIDEDOOMISH+1]), - S_NORMAL (TNT1, 'A', 0, A_RestoreSpecialPosition , &States[S_HIDEDOOMISH+2]), - S_NORMAL (TNT1, 'A', 1, A_RestoreSpecialDoomThing , NULL), - -#define S_HIDESPECIAL (S_HIDEDOOMISH+3) - S_NORMAL (ACLO, 'E', 1400, NULL , &States[S_HIDESPECIAL+1]), - S_NORMAL (ACLO, 'A', 0, A_RestoreSpecialPosition , &States[S_HIDESPECIAL+2]), - S_NORMAL (ACLO, 'A', 4, A_RestoreSpecialThing1 , &States[S_HIDESPECIAL+3]), - S_NORMAL (ACLO, 'B', 4, NULL , &States[S_HIDESPECIAL+4]), - S_NORMAL (ACLO, 'A', 4, NULL , &States[S_HIDESPECIAL+5]), - S_NORMAL (ACLO, 'B', 4, NULL , &States[S_HIDESPECIAL+6]), - S_NORMAL (ACLO, 'C', 4, NULL , &States[S_HIDESPECIAL+7]), - S_NORMAL (ACLO, 'B', 4, NULL , &States[S_HIDESPECIAL+8]), - S_NORMAL (ACLO, 'C', 4, NULL , &States[S_HIDESPECIAL+9]), - S_NORMAL (ACLO, 'D', 4, NULL , &States[S_HIDESPECIAL+10]), - S_NORMAL (ACLO, 'C', 4, NULL , &States[S_HIDESPECIAL+11]), - S_NORMAL (ACLO, 'D', 4, A_RestoreSpecialThing2 , NULL), - -#define S_HELD (S_HIDESPECIAL+12) - S_NORMAL (TNT1, 'A', -1, NULL , NULL), - -#define S_HOLDANDDESTROY (S_HELD+1) - S_NORMAL (TNT1, 'A', 1, NULL , NULL), -}; - int AInventory::StaticLastMessageTic; const char *AInventory::StaticLastMessage; @@ -402,13 +370,6 @@ IMPLEMENT_POINTY_CLASS (AInventory) DECLARE_POINTER (Owner) END_POINTERS -BEGIN_DEFAULTS (AInventory, Any, -1, 0) - PROP_Inventory_Amount (1) - PROP_Inventory_MaxAmount (1) - PROP_UseSound ("misc/invuse") - PROP_Inventory_PickupSound ("misc/i_pkup") -END_DEFAULTS - //=========================================================================== // // AInventory :: Tick @@ -626,7 +587,7 @@ void AInventory::GoAwayAndDie () if (!GoAway ()) { flags &= ~MF_SPECIAL; - SetState (&States[S_HOLDANDDESTROY]); + SetState (FindState("HoldAndDestroy")); } } @@ -725,7 +686,7 @@ void AInventory::BecomeItem () } RemoveFromHash (); flags &= ~MF_SPECIAL; - SetState (&States[S_HELD]); + SetState (FindState("Held")); } //=========================================================================== @@ -853,19 +814,44 @@ bool AInventory::Use (bool pickup) void AInventory::Hide () { + FState *HideSpecialState = NULL, *HideDoomishState = NULL; + flags = (flags & ~MF_SPECIAL) | MF_NOGRAVITY; renderflags |= RF_INVISIBLE; + if (gameinfo.gametype & GAME_Raven) { - SetState (&States[S_HIDESPECIAL]); - tics = 1400; - if (PickupFlash != NULL) tics += 30; + HideSpecialState = FindState("HideSpecial"); + if (HideSpecialState == NULL) + { + HideDoomishState = FindState("HideDoomish"); + } } else { - SetState (&States[S_HIDEDOOMISH]); + HideDoomishState = FindState("HideDoomish"); + if (HideDoomishState == NULL) + { + HideSpecialState = FindState("HideSpecial"); + } + } + + if (HideSpecialState != NULL) + { + SetState (HideSpecialState); + tics = 1400; + if (PickupFlash != NULL) tics += 30; + } + else if (HideDoomishState != NULL) + { + SetState (HideDoomishState); tics = 1050; } + else + { + GoAwayAndDie(); + return; + } if (RespawnTics != 0) { tics = RespawnTics; @@ -1245,7 +1231,7 @@ bool AInventory::TryPickup (AActor *toucher) if (--copy->Amount <= 0) { copy->flags &= ~MF_SPECIAL; - copy->SetState (&States[S_HOLDANDDESTROY]); + copy->SetState (copy->FindState("HoldAndDestroy")); } } } diff --git a/src/g_shared/a_pickups.h b/src/g_shared/a_pickups.h index 510d490a0..a9e2254f8 100644 --- a/src/g_shared/a_pickups.h +++ b/src/g_shared/a_pickups.h @@ -105,7 +105,7 @@ struct vissprite_t; class AInventory : public AActor { - DECLARE_ACTOR (AInventory, AActor) + DECLARE_CLASS (AInventory, AActor) HAS_OBJECT_POINTERS public: virtual void Touch (AActor *toucher); diff --git a/wadsrc/static/actors/hexen/flechette.txt b/wadsrc/static/actors/hexen/flechette.txt index 1b09eb0a3..e3c50018a 100644 --- a/wadsrc/static/actors/hexen/flechette.txt +++ b/wadsrc/static/actors/hexen/flechette.txt @@ -166,3 +166,41 @@ ACTOR PoisonCloud native Stop } } + +// Poison Shroom ------------------------------------------------------------ + +ACTOR ZPoisonShroom : PoisonBag 8104 +{ + Game Hexen + Radius 6 + Height 20 + PainChance 255 + Health 30 + Mass 0x7fffffff + +SHOOTABLE + +SOLID + +NOBLOOD + +NOICEDEATH + -NOBLOCKMAP + -NOGRAVITY + PainSound "PoisonShroomPain" + DeathSound "PoisonShroomDeath" + + action native A_PoisonShroom(); + + States + { + Spawn: + SHRM A 5 A_PoisonShroom + Pain: + SHRM A 6 + SHRM B 8 A_Pain + Goto Spawn + Death: + SHRM CD 5 + SHRM E 5 A_PoisonBagInit + SHRM F -1 + Stop + } +} + diff --git a/wadsrc/static/actors/hexen/healingradius.txt b/wadsrc/static/actors/hexen/healingradius.txt new file mode 100644 index 000000000..8c5b0e53a --- /dev/null +++ b/wadsrc/static/actors/hexen/healingradius.txt @@ -0,0 +1,23 @@ + +// Healing Radius Artifact -------------------------------------------------- + +ACTOR ArtiHealingRadius : Inventory 10120 native +{ + Game Hexen + +COUNTITEM + +FLOATBOB + Inventory.DefMaxAmount + +INVENTORY.INVBAR + +INVENTORY.PICKUPFLASH + +INVENTORY.FANCYPICKUPSOUND + Inventory.Icon "ARTIHRAD" + Inventory.PickupSound "misc/p_pkup" + Inventory.PickupMessage "$TXT_ARTIHEALINGRADIUS" + States + { + Spawn: + HRAD ABCDEFGHIJKLMNOP 4 Bright + Loop + } +} + diff --git a/wadsrc/static/actors/hexen/hexenspecialdecs.txt b/wadsrc/static/actors/hexen/hexenspecialdecs.txt index 0d8d7ab40..8e70cc8f6 100644 --- a/wadsrc/static/actors/hexen/hexenspecialdecs.txt +++ b/wadsrc/static/actors/hexen/hexenspecialdecs.txt @@ -468,39 +468,6 @@ ACTOR ZShrub2 8102 } -// Poison Shroom ------------------------------------------------------------ - -ACTOR ZPoisonShroom 8104 -{ - Game Hexen - Radius 6 - Height 20 - PainChance 255 - Health 30 - Mass 0x7fffffff - +SHOOTABLE +SOLID +NOBLOOD - +NOICEDEATH - PainSound "PoisonShroomPain" - DeathSound "PoisonShroomDeath" - - action native A_PoisonShroom(); - - States - { - Spawn: - SHRM A 5 A_PoisonShroom - Pain: - SHRM A 6 - SHRM B 8 A_Pain - Goto Spawn - Death: - SHRM CDE 5 - SHRM F -1 - Stop - } -} - - // Fire Bull ---------------------------------------------------------------- ACTOR ZFireBull : SwitchableDecoration 8042 diff --git a/wadsrc/static/actors/hexen/korax.txt b/wadsrc/static/actors/hexen/korax.txt index 1c6705811..48212fd26 100644 --- a/wadsrc/static/actors/hexen/korax.txt +++ b/wadsrc/static/actors/hexen/korax.txt @@ -121,5 +121,6 @@ ACTOR KoraxBolt MLFX I 2 Bright MLFX J 2 Bright A_KBoltRaise MLFX IJKLM 2 Bright A_KBolt + Stop } } diff --git a/wadsrc/static/actors/hexen/teleportother.txt b/wadsrc/static/actors/hexen/teleportother.txt new file mode 100644 index 000000000..bcbdfc33c --- /dev/null +++ b/wadsrc/static/actors/hexen/teleportother.txt @@ -0,0 +1,113 @@ + +// Teleport Other Artifact -------------------------------------------------- + +ACTOR ArtiTeleportOther : Inventory 10040 native +{ + Game Hexen + SpawnID 17 + +COUNTITEM + +FLOATBOB + +INVENTORY.INVBAR + +INVENTORY.PICKUPFLASH + +INVENTORY.FANCYPICKUPSOUND + Inventory.DefMaxAmount + Inventory.Icon "ARTITELO" + Inventory.PickupSound "misc/p_pkup" + Inventory.PickupMessage "$TXT_ARTITELEPORTOTHER" + States + { + Spawn: + TELO ABCD 5 + Loop + } +} + + +// Teleport Other FX -------------------------------------------------------- + +ACTOR TelOtherFX1 native +{ + Damage 10001 + Projectile + -ACTIVATEIMPACT + -ACTIVATEPCROSS + +BLOODLESSIMPACT + Radius 16 + Height 16 + Speed 20 + + action native A_TeloSpawnA (); + action native A_TeloSpawnB (); + action native A_TeloSpawnC (); + action native A_TeloSpawnD (); + action native A_CheckTeleRing (); + + States + { + Spawn: + TRNG E 5 Bright + TRNG D 4 Bright + TRNG C 3 Bright A_TeloSpawnC + TRNG B 3 Bright A_TeloSpawnB + TRNG A 3 Bright A_TeloSpawnA + TRNG B 3 Bright A_TeloSpawnB + TRNG C 3 Bright A_TeloSpawnC + TRNG D 3 Bright A_TeloSpawnD + Goto Spawn+2 + Death: + TRNG E 3 Bright + Stop + } +} + + +ACTOR TelOtherFX2 : TelOtherFX1 +{ + Speed 16 + States + { + Spawn: + TRNG BCDCB 4 Bright + TRNG A 4 Bright A_CheckTeleRing + Loop + } +} + +ACTOR TelOtherFX3 : TelOtherFX1 +{ + Speed 16 + States + { + Spawn: + TRNG CDCBA 4 Bright + TRNG B 4 Bright A_CheckTeleRing + Loop + } +} + +ACTOR TelOtherFX4 : TelOtherFX1 +{ + Speed 16 + States + { + Spawn: + TRNG DCBAB 4 Bright + TRNG C 4 Bright A_CheckTeleRing + Loop + } + +} + +ACTOR TelOtherFX5 : TelOtherFX1 +{ + Speed 16 + States + { + Spawn: + TRNG CBABC 4 Bright + TRNG D 4 Bright A_CheckTeleRing + Loop + } +} + + diff --git a/wadsrc/static/actors/nativeclasses.txt b/wadsrc/static/actors/nativeclasses.txt index 109903a13..a85d68c80 100644 --- a/wadsrc/static/actors/nativeclasses.txt +++ b/wadsrc/static/actors/nativeclasses.txt @@ -191,47 +191,8 @@ class Actor extends Thinker } -class Inventory extends Actor - native -{ - action native A_JumpIfNoAmmo(state label); - action native A_CustomPunch(eval int damage, optional eval bool norandom, optional evalnot bool useammo, optional class pufftype, optional eval float range); - action native A_FireBullets(eval float spread_xy, eval float spread_z, eval int numbullets, eval int damageperbullet, optional class pufftype, optional evalnot bool useammo, optional eval float range); - action native A_FireCustomMissile(class missiletype, optional eval float angle, optional evalnot bool useammo, optional eval int spawnofs_xy, optional eval float spawnheight, optional eval bool aimatangle); - action native A_RailAttack(eval int damage, optional eval int spawnofs_xy, optional evalnot int useammo, optional color color1, optional color color2, optional eval bool silent, optional eval float maxdiff, optional class pufftype); - action native A_Light(eval int extralight); - action native A_Light0(); - action native A_Light1(); - action native A_Light2(); - action native A_LightInverse(); - action native A_WeaponReady(); - action native A_Lower(); - action native A_Raise(); - action native A_FirePistol(); - action native A_FireShotgun(); - action native A_FireShotgun2(); - action native A_OpenShotgun2(); - action native A_LoadShotgun2(); - action native A_CloseShotgun2(); - action native A_FireCGun(); - action native A_FireMissile(); - action native A_FirePlasma(); - action native A_FireRailgun(); - action native A_FireRailgunLeft(); - action native A_FireRailgunRight(); - action native A_RailWait(); - action native A_BFGsound(); - action native A_FireBFG(); - action native A_ReFire(); - action native A_ClearReFire(); - action native A_CheckReload(); - action native A_GunFlash(); - action native A_Saw(optional coerce sound fullsound, optional coerce sound hitsound, optional eval int damage, optional class pufftype); - action native A_CheckForReload(eval int counter, state label); - action native A_ResetReloadCounter(); -} -/* + ACTOR Inventory native { Inventory.Amount 1 @@ -301,8 +262,6 @@ ACTOR Inventory native Stop } } -*/ - Actor Ammo : Inventory native { diff --git a/wadsrc/static/actors/raven/artitele.txt b/wadsrc/static/actors/raven/artitele.txt index f13e7566b..86085ed7d 100644 --- a/wadsrc/static/actors/raven/artitele.txt +++ b/wadsrc/static/actors/raven/artitele.txt @@ -1,7 +1,7 @@ // Teleport (self) ---------------------------------------------------------- -ACTOR ArtiTeleport : Inventory native +ACTOR ArtiTeleport : Inventory 36 native { Game Raven +COUNTITEM diff --git a/wadsrc/static/actors/raven/minotaur.txt b/wadsrc/static/actors/raven/minotaur.txt index 1e94fb7af..33ae5573c 100644 --- a/wadsrc/static/actors/raven/minotaur.txt +++ b/wadsrc/static/actors/raven/minotaur.txt @@ -103,7 +103,6 @@ ACTOR Minotaur 9 native ACTOR MinotaurFriend : Minotaur native { - Game Hexen Health 2500 -DROPOFF -BOSS diff --git a/wadsrc/static/decorate.txt b/wadsrc/static/decorate.txt index ab1630414..c0c498184 100644 --- a/wadsrc/static/decorate.txt +++ b/wadsrc/static/decorate.txt @@ -125,6 +125,8 @@ #include "actors/hexen/fighterhammer.txt" #include "actors/hexen/fighterquietus.txt" #include "actors/hexen/dragon.txt" +#include "actors/hexen/healingradius.txt" +#include "actors/hexen/teleportother.txt" #include "actors/strife/strifehumanoid.txt" #include "actors/strife/strifeplayer.txt" diff --git a/zdoom.vcproj b/zdoom.vcproj index fa9c411d9..a2a7d9bf0 100644 --- a/zdoom.vcproj +++ b/zdoom.vcproj @@ -1,7 +1,7 @@ + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - @@ -953,6 +943,16 @@ Outputs=""src/$(InputName).h"" /> + + + @@ -1554,6 +1554,16 @@ Outputs="$(IntDir)\$(InputName).obj" /> + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + @@ -1796,14 +1804,6 @@ Outputs="$(IntDir)/$(InputName).obj" /> - - - @@ -1969,14 +1969,6 @@ Outputs="$(IntDir)\$(InputName).obj" /> - - - @@ -1987,6 +1979,14 @@ Outputs="$(IntDir)\$(InputName).obj" /> + + + - - - @@ -2873,6 +2865,14 @@ AdditionalIncludeDirectories="src\win32;$(NoInherit)" /> + + + @@ -3147,7 +3147,7 @@ />