mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-10 14:51:40 +00:00
- Converted A_Puzzleitems.cpp and parts of A_HexenSpecialdecs.cpp to DECORATE and fixed a few broken Hexen items.
SVN r78 (trunk)
This commit is contained in:
parent
650d07b8c1
commit
d06793ad7e
10 changed files with 621 additions and 928 deletions
|
@ -173,10 +173,10 @@ ${COMPILER} "autostart.cpp a.nas blocks.nas misc.nas tmap.nas tmap2.nas tmap3.na
|
||||||
a_clericstaff.cpp a_demons.cpp a_dragon.cpp a_ettin.cpp a_fighteraxe.cpp \
|
a_clericstaff.cpp a_demons.cpp a_dragon.cpp a_ettin.cpp a_fighteraxe.cpp \
|
||||||
a_fighterboss.cpp a_fighterhammer.cpp a_fighterplayer.cpp a_fighterquietus.cpp \
|
a_fighterboss.cpp a_fighterhammer.cpp a_fighterplayer.cpp a_fighterquietus.cpp \
|
||||||
a_firedemon.cpp a_flechette.cpp a_fog.cpp a_healingradius.cpp \
|
a_firedemon.cpp a_flechette.cpp a_fog.cpp a_healingradius.cpp \
|
||||||
a_heresiarch.cpp a_hexenarmor.cpp a_hexendecorations.cpp a_hexenkeys.cpp \
|
a_heresiarch.cpp \
|
||||||
a_hexenspecialdecs.cpp a_iceguy.cpp a_korax.cpp a_mageboss.cpp a_magecone.cpp \
|
a_hexenspecialdecs.cpp a_iceguy.cpp a_korax.cpp a_mageboss.cpp a_magecone.cpp \
|
||||||
a_magelightning.cpp a_mageplayer.cpp a_magestaff.cpp a_magewand.cpp a_mana.cpp \
|
a_magelightning.cpp a_mageplayer.cpp a_magestaff.cpp a_magewand.cpp a_mana.cpp \
|
||||||
a_pig.cpp a_puzzleitems.cpp a_scriptprojectiles.cpp a_serpent.cpp a_speedboots.cpp \
|
a_pig.cpp a_puzzleitems.cpp a_scriptprojectiles.cpp a_serpent.cpp \
|
||||||
a_spike.cpp a_summon.cpp a_teleportother.cpp a_weaponpieces.cpp a_wraith.cpp \
|
a_spike.cpp a_summon.cpp a_teleportother.cpp a_weaponpieces.cpp a_wraith.cpp \
|
||||||
hexen_sbar.cpp a_artiegg.cpp a_artitele.cpp a_minotaur.cpp a_ravenambient.cpp \
|
hexen_sbar.cpp a_artiegg.cpp a_artitele.cpp a_minotaur.cpp a_ravenambient.cpp \
|
||||||
a_acolyte.cpp a_alienspectres.cpp \
|
a_acolyte.cpp a_alienspectres.cpp \
|
||||||
|
@ -212,6 +212,7 @@ src_paths tools/makewad
|
||||||
${COMPILER} makewad.c ioapi.c zip.c
|
${COMPILER} makewad.c ioapi.c zip.c
|
||||||
${LINK} tools/makewad/makewad
|
${LINK} tools/makewad/makewad
|
||||||
|
|
||||||
|
LDFLAGS = ''
|
||||||
src_paths tools/xlatcc
|
src_paths tools/xlatcc
|
||||||
${COMPILER} xlat-parse.tab.c gen.c
|
${COMPILER} xlat-parse.tab.c gen.c
|
||||||
${LINK} tools/xlatcc/xlatcc
|
${LINK} tools/xlatcc/xlatcc
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
May 4, 2006 (Changes by Graf Zahl)
|
May 4, 2006 (Changes by Graf Zahl)
|
||||||
- Converted A_Hexendecorations.cpp
|
- Converted A_Puzzleitems.cpp and parts of A_HexenSpecialdecs.cpp to DECORATE.
|
||||||
|
- Converted A_Hexendecorations.cpp to DECORATE.
|
||||||
- Changed the lower decal spawning code to transfer the main decal's color if
|
- Changed the lower decal spawning code to transfer the main decal's color if
|
||||||
the lower decal's default color is the same as the main decal's.
|
the lower decal's default color is the same as the main decal's.
|
||||||
- Changed the decal stretcher back to use the specified size parameters as a
|
- Changed the decal stretcher back to use the specified size parameters as a
|
||||||
|
|
|
@ -2644,6 +2644,9 @@ bool ADehackedPickup::TryPickup (AActor *toucher)
|
||||||
|
|
||||||
const char *ADehackedPickup::PickupMessage ()
|
const char *ADehackedPickup::PickupMessage ()
|
||||||
{
|
{
|
||||||
|
const char *message = RealPickup->GetClass()->Meta.GetMetaString (AIMETA_PickupMessage);
|
||||||
|
if (message != NULL) return message;
|
||||||
|
|
||||||
return RealPickup->PickupMessage ();
|
return RealPickup->PickupMessage ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -47,115 +47,7 @@ public:
|
||||||
|
|
||||||
IMPLEMENT_ABSTRACT_ACTOR (ASwitchingDecoration)
|
IMPLEMENT_ABSTRACT_ACTOR (ASwitchingDecoration)
|
||||||
|
|
||||||
// Winged Statue (no skull) -------------------------------------------------
|
|
||||||
|
|
||||||
class AZWingedStatueNoSkull : public ASwitchingDecoration
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (AZWingedStatueNoSkull, ASwitchingDecoration)
|
|
||||||
};
|
|
||||||
|
|
||||||
FState AZWingedStatueNoSkull::States[] =
|
|
||||||
{
|
|
||||||
S_NORMAL (STWN, 'A', -1, NULL, NULL),
|
|
||||||
S_NORMAL (STWN, 'B', -1, NULL, NULL)
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_ACTOR (AZWingedStatueNoSkull, Hexen, 9011, 0)
|
|
||||||
PROP_RadiusFixed (10)
|
|
||||||
PROP_HeightFixed (62)
|
|
||||||
PROP_Flags (MF_SOLID)
|
|
||||||
|
|
||||||
PROP_SpawnState (0)
|
|
||||||
PROP_SeeState (1)
|
|
||||||
PROP_MeleeState (0)
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
// Gem pedestal -------------------------------------------------------------
|
|
||||||
|
|
||||||
class AZGemPedestal : public ASwitchingDecoration
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (AZGemPedestal, ASwitchingDecoration)
|
|
||||||
};
|
|
||||||
|
|
||||||
FState AZGemPedestal::States[] =
|
|
||||||
{
|
|
||||||
S_NORMAL (GMPD, 'A', -1, NULL, NULL),
|
|
||||||
S_NORMAL (GMPD, 'B', -1, NULL, NULL)
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_ACTOR (AZGemPedestal, Hexen, 9012, 0)
|
|
||||||
PROP_RadiusFixed (10)
|
|
||||||
PROP_HeightFixed (40)
|
|
||||||
PROP_Flags (MF_SOLID)
|
|
||||||
|
|
||||||
PROP_SpawnState (0)
|
|
||||||
PROP_SeeState (1)
|
|
||||||
PROP_MeleeState (0)
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
// Tree (destructible) ------------------------------------------------------
|
|
||||||
|
|
||||||
class ATreeDestructible : public AActor
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (ATreeDestructible, AActor)
|
|
||||||
public:
|
|
||||||
void GetExplodeParms (int &damage, int &distance, bool &hurtSource);
|
|
||||||
void Die (AActor *source, AActor *inflictor);
|
|
||||||
};
|
|
||||||
|
|
||||||
FState ATreeDestructible::States[] =
|
|
||||||
{
|
|
||||||
#define S_ZTREEDESTRUCTIBLE 0
|
|
||||||
S_NORMAL (TRDT, 'A', -1, NULL , NULL),
|
|
||||||
|
|
||||||
#define S_ZTREEDES_D (S_ZTREEDESTRUCTIBLE+1)
|
|
||||||
S_NORMAL (TRDT, 'B', 5, NULL , &States[S_ZTREEDES_D+1]),
|
|
||||||
S_NORMAL (TRDT, 'C', 5, A_Scream , &States[S_ZTREEDES_D+2]),
|
|
||||||
S_NORMAL (TRDT, 'D', 5, NULL , &States[S_ZTREEDES_D+3]),
|
|
||||||
S_NORMAL (TRDT, 'E', 5, NULL , &States[S_ZTREEDES_D+4]),
|
|
||||||
S_NORMAL (TRDT, 'F', 5, NULL , &States[S_ZTREEDES_D+5]),
|
|
||||||
S_NORMAL (TRDT, 'G', -1, NULL , NULL),
|
|
||||||
|
|
||||||
#define S_ZTREEDES_X (S_ZTREEDES_D+6)
|
|
||||||
S_BRIGHT (TRDT, 'H', 5, A_Pain , &States[S_ZTREEDES_X+1]),
|
|
||||||
S_BRIGHT (TRDT, 'I', 5, NULL , &States[S_ZTREEDES_X+2]),
|
|
||||||
S_BRIGHT (TRDT, 'J', 5, NULL , &States[S_ZTREEDES_X+3]),
|
|
||||||
S_BRIGHT (TRDT, 'K', 5, NULL , &States[S_ZTREEDES_X+4]),
|
|
||||||
S_BRIGHT (TRDT, 'L', 5, NULL , &States[S_ZTREEDES_X+5]),
|
|
||||||
S_BRIGHT (TRDT, 'M', 5, A_Explode , &States[S_ZTREEDES_X+6]),
|
|
||||||
S_BRIGHT (TRDT, 'N', 5, NULL , &States[S_ZTREEDES_X+7]),
|
|
||||||
S_NORMAL (TRDT, 'O', 5, NULL , &States[S_ZTREEDES_X+8]),
|
|
||||||
S_NORMAL (TRDT, 'P', 5, NULL , &States[S_ZTREEDES_X+9]),
|
|
||||||
S_NORMAL (TRDT, 'Q', -1, NULL , NULL)
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_ACTOR (ATreeDestructible, Hexen, 8062, 0)
|
|
||||||
PROP_SpawnHealth (70)
|
|
||||||
PROP_RadiusFixed (15)
|
|
||||||
PROP_HeightFixed (180)
|
|
||||||
PROP_MassLong (INT_MAX)
|
|
||||||
PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_NOBLOOD)
|
|
||||||
PROP_Flags4 (MF4_NOICEDEATH)
|
|
||||||
|
|
||||||
PROP_SpawnState (S_ZTREEDESTRUCTIBLE)
|
|
||||||
PROP_DeathState (S_ZTREEDES_D)
|
|
||||||
PROP_BDeathState (S_ZTREEDES_X)
|
|
||||||
|
|
||||||
PROP_PainSound ("TreeExplode")
|
|
||||||
PROP_DeathSound ("TreeBreak")
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
void ATreeDestructible::GetExplodeParms (int &damage, int &distance, bool &hurtSource)
|
|
||||||
{
|
|
||||||
damage = 10;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ATreeDestructible::Die (AActor *source, AActor *inflictor)
|
|
||||||
{
|
|
||||||
Super::Die (source, inflictor);
|
|
||||||
height = 24*FRACUNIT;
|
|
||||||
flags &= ~MF_CORPSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Pottery1 ------------------------------------------------------------------
|
// Pottery1 ------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -700,175 +592,6 @@ void A_LeafCheck (AActor *actor)
|
||||||
|
|
||||||
// Torch base class ---------------------------------------------------------
|
// Torch base class ---------------------------------------------------------
|
||||||
|
|
||||||
// Twined torch -------------------------------------------------------------
|
|
||||||
|
|
||||||
class AZTwinedTorch : public ASwitchableDecoration
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (AZTwinedTorch, ASwitchableDecoration)
|
|
||||||
public:
|
|
||||||
void Activate (AActor *activator);
|
|
||||||
};
|
|
||||||
|
|
||||||
FState AZTwinedTorch::States[] =
|
|
||||||
{
|
|
||||||
#define S_ZTWINEDTORCH 0
|
|
||||||
S_BRIGHT (TWTR, 'A', 4, NULL , &States[S_ZTWINEDTORCH+1]),
|
|
||||||
S_BRIGHT (TWTR, 'B', 4, NULL , &States[S_ZTWINEDTORCH+2]),
|
|
||||||
S_BRIGHT (TWTR, 'C', 4, NULL , &States[S_ZTWINEDTORCH+3]),
|
|
||||||
S_BRIGHT (TWTR, 'D', 4, NULL , &States[S_ZTWINEDTORCH+4]),
|
|
||||||
S_BRIGHT (TWTR, 'E', 4, NULL , &States[S_ZTWINEDTORCH+5]),
|
|
||||||
S_BRIGHT (TWTR, 'F', 4, NULL , &States[S_ZTWINEDTORCH+6]),
|
|
||||||
S_BRIGHT (TWTR, 'G', 4, NULL , &States[S_ZTWINEDTORCH+7]),
|
|
||||||
S_BRIGHT (TWTR, 'H', 4, NULL , &States[S_ZTWINEDTORCH+0]),
|
|
||||||
|
|
||||||
#define S_ZTWINEDTORCH_UNLIT (S_ZTWINEDTORCH+8)
|
|
||||||
S_NORMAL (TWTR, 'I', -1, NULL , NULL)
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_ACTOR (AZTwinedTorch, Hexen, 116, 0)
|
|
||||||
PROP_RadiusFixed (10)
|
|
||||||
PROP_HeightFixed (64)
|
|
||||||
PROP_Flags (MF_SOLID)
|
|
||||||
|
|
||||||
PROP_SpawnState (S_ZTWINEDTORCH)
|
|
||||||
PROP_SeeState (S_ZTWINEDTORCH)
|
|
||||||
PROP_MeleeState (S_ZTWINEDTORCH_UNLIT)
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
void AZTwinedTorch::Activate (AActor *activator)
|
|
||||||
{
|
|
||||||
Super::Activate (activator);
|
|
||||||
S_Sound (this, CHAN_BODY, "Ignite", 1, ATTN_NORM);
|
|
||||||
}
|
|
||||||
|
|
||||||
class AZTwinedTorchUnlit : public AZTwinedTorch
|
|
||||||
{
|
|
||||||
DECLARE_STATELESS_ACTOR (AZTwinedTorchUnlit, AZTwinedTorch)
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_STATELESS_ACTOR (AZTwinedTorchUnlit, Hexen, 117, 0)
|
|
||||||
PROP_SpawnState (S_ZTWINEDTORCH_UNLIT)
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
// Wall torch ---------------------------------------------------------------
|
|
||||||
|
|
||||||
class AZWallTorch : public ASwitchableDecoration
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (AZWallTorch, ASwitchableDecoration)
|
|
||||||
public:
|
|
||||||
void Activate (AActor *activator);
|
|
||||||
};
|
|
||||||
|
|
||||||
FState AZWallTorch::States[] =
|
|
||||||
{
|
|
||||||
#define S_ZWALLTORCH 0
|
|
||||||
S_BRIGHT (WLTR, 'A', 5, NULL , &States[S_ZWALLTORCH+1]),
|
|
||||||
S_BRIGHT (WLTR, 'B', 5, NULL , &States[S_ZWALLTORCH+2]),
|
|
||||||
S_BRIGHT (WLTR, 'C', 5, NULL , &States[S_ZWALLTORCH+3]),
|
|
||||||
S_BRIGHT (WLTR, 'D', 5, NULL , &States[S_ZWALLTORCH+4]),
|
|
||||||
S_BRIGHT (WLTR, 'E', 5, NULL , &States[S_ZWALLTORCH+5]),
|
|
||||||
S_BRIGHT (WLTR, 'F', 5, NULL , &States[S_ZWALLTORCH+6]),
|
|
||||||
S_BRIGHT (WLTR, 'G', 5, NULL , &States[S_ZWALLTORCH+7]),
|
|
||||||
S_BRIGHT (WLTR, 'H', 5, NULL , &States[S_ZWALLTORCH+0]),
|
|
||||||
|
|
||||||
#define S_ZWALLTORCH_U (S_ZWALLTORCH+8)
|
|
||||||
S_NORMAL (WLTR, 'I', -1, NULL , NULL)
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_ACTOR (AZWallTorch, Hexen, 54, 0)
|
|
||||||
PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY)
|
|
||||||
PROP_Flags4 (MF4_FIXMAPTHINGPOS)
|
|
||||||
|
|
||||||
PROP_SpawnState (S_ZWALLTORCH)
|
|
||||||
PROP_SeeState (S_ZWALLTORCH)
|
|
||||||
PROP_MeleeState (S_ZWALLTORCH_U)
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
void AZWallTorch::Activate (AActor *activator)
|
|
||||||
{
|
|
||||||
Super::Activate (activator);
|
|
||||||
S_Sound (this, CHAN_BODY, "Ignite", 1, ATTN_NORM);
|
|
||||||
}
|
|
||||||
|
|
||||||
class AZWallTorchUnlit : public AZWallTorch
|
|
||||||
{
|
|
||||||
DECLARE_STATELESS_ACTOR (AZWallTorchUnlit, AZWallTorch)
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_STATELESS_ACTOR (AZWallTorchUnlit, Hexen, 55, 0)
|
|
||||||
PROP_SpawnState (S_ZWALLTORCH_U)
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
// Shrub1 -------------------------------------------------------------------
|
|
||||||
|
|
||||||
class AZShrub1 : public AActor
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (AZShrub1, AActor)
|
|
||||||
};
|
|
||||||
|
|
||||||
FState AZShrub1::States[] =
|
|
||||||
{
|
|
||||||
#define S_ZSHRUB1 0
|
|
||||||
S_NORMAL (SHB1, 'A', -1, NULL , NULL),
|
|
||||||
|
|
||||||
#define S_ZSHRUB1_X (S_ZSHRUB1+1)
|
|
||||||
S_BRIGHT (SHB1, 'B', 7, NULL , &States[S_ZSHRUB1_X+1]),
|
|
||||||
S_BRIGHT (SHB1, 'C', 6, A_Scream , &States[S_ZSHRUB1_X+2]),
|
|
||||||
S_BRIGHT (SHB1, 'D', 5, NULL , NULL)
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_ACTOR (AZShrub1, Hexen, 8101, 0)
|
|
||||||
PROP_RadiusFixed (8)
|
|
||||||
PROP_HeightFixed (24)
|
|
||||||
PROP_MassLong (FIXED_MAX)
|
|
||||||
PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_NOBLOOD)
|
|
||||||
PROP_Flags4 (MF4_NOICEDEATH)
|
|
||||||
|
|
||||||
PROP_SpawnState (S_ZSHRUB1)
|
|
||||||
PROP_BDeathState (S_ZSHRUB1_X)
|
|
||||||
|
|
||||||
PROP_DeathSound ("TreeExplode")
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
// Shrub2 -------------------------------------------------------------------
|
|
||||||
|
|
||||||
class AZShrub2 : public AActor
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (AZShrub2, AActor)
|
|
||||||
public:
|
|
||||||
void GetExplodeParms (int &damage, int &distance, bool &hurtSrc);
|
|
||||||
};
|
|
||||||
|
|
||||||
FState AZShrub2::States[] =
|
|
||||||
{
|
|
||||||
#define S_ZSHRUB2 0
|
|
||||||
S_NORMAL (SHB2, 'A', -1, NULL , NULL),
|
|
||||||
|
|
||||||
#define S_ZSHRUB2_X (S_ZSHRUB2+1)
|
|
||||||
S_BRIGHT (SHB2, 'B', 7, NULL , &States[S_ZSHRUB2_X+1]),
|
|
||||||
S_BRIGHT (SHB2, 'C', 6, A_Scream , &States[S_ZSHRUB2_X+2]),
|
|
||||||
S_BRIGHT (SHB2, 'D', 5, A_Explode , &States[S_ZSHRUB2_X+3]),
|
|
||||||
S_BRIGHT (SHB2, 'E', 5, NULL , NULL)
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_ACTOR (AZShrub2, Hexen, 8102, 0)
|
|
||||||
PROP_RadiusFixed (16)
|
|
||||||
PROP_HeightFixed (40)
|
|
||||||
PROP_MassLong (FIXED_MAX)
|
|
||||||
PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_NOBLOOD)
|
|
||||||
PROP_Flags4 (MF4_NOICEDEATH)
|
|
||||||
|
|
||||||
PROP_SpawnState (S_ZSHRUB2)
|
|
||||||
PROP_BDeathState (S_ZSHRUB2_X)
|
|
||||||
|
|
||||||
PROP_DeathSound ("TreeExplode")
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
void AZShrub2::GetExplodeParms (int &damage, int &distance, bool &hurtSrc)
|
|
||||||
{
|
|
||||||
damage = 30;
|
|
||||||
distance = 64;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Poison Shroom ------------------------------------------------------------
|
// Poison Shroom ------------------------------------------------------------
|
||||||
|
@ -925,62 +648,6 @@ void A_PoisonShroom (AActor *actor)
|
||||||
actor->tics = 128+(pr_shroom()<<1);
|
actor->tics = 128+(pr_shroom()<<1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fire Bull ----------------------------------------------------------------
|
|
||||||
|
|
||||||
class AZFireBull : public ASwitchableDecoration
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (AZFireBull, ASwitchableDecoration)
|
|
||||||
public:
|
|
||||||
void Activate (AActor *activator);
|
|
||||||
};
|
|
||||||
|
|
||||||
FState AZFireBull::States[] =
|
|
||||||
{
|
|
||||||
#define S_ZFIREBULL 0
|
|
||||||
S_BRIGHT (FBUL, 'A', 4, NULL , &States[S_ZFIREBULL+1]),
|
|
||||||
S_BRIGHT (FBUL, 'B', 4, NULL , &States[S_ZFIREBULL+2]),
|
|
||||||
S_BRIGHT (FBUL, 'C', 4, NULL , &States[S_ZFIREBULL+3]),
|
|
||||||
S_BRIGHT (FBUL, 'D', 4, NULL , &States[S_ZFIREBULL+4]),
|
|
||||||
S_BRIGHT (FBUL, 'E', 4, NULL , &States[S_ZFIREBULL+5]),
|
|
||||||
S_BRIGHT (FBUL, 'F', 4, NULL , &States[S_ZFIREBULL+6]),
|
|
||||||
S_BRIGHT (FBUL, 'G', 4, NULL , &States[S_ZFIREBULL+0]),
|
|
||||||
|
|
||||||
#define S_ZFIREBULL_U (S_ZFIREBULL+7)
|
|
||||||
S_NORMAL (FBUL, 'H', -1, NULL , NULL),
|
|
||||||
|
|
||||||
#define S_ZFIREBULL_DEATH (S_ZFIREBULL_U+1)
|
|
||||||
S_BRIGHT (FBUL, 'J', 4, NULL , &States[S_ZFIREBULL_DEATH+1]),
|
|
||||||
S_BRIGHT (FBUL, 'I', 4, NULL , &States[S_ZFIREBULL_U]),
|
|
||||||
|
|
||||||
#define S_ZFIREBULL_BIRTH (S_ZFIREBULL_DEATH+2)
|
|
||||||
S_BRIGHT (FBUL, 'I', 4, NULL , &States[S_ZFIREBULL_BIRTH+1]),
|
|
||||||
S_BRIGHT (FBUL, 'J', 4, NULL , &States[S_ZFIREBULL+0])
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_ACTOR (AZFireBull, Hexen, 8042, 0)
|
|
||||||
PROP_RadiusFixed (20)
|
|
||||||
PROP_HeightFixed (80)
|
|
||||||
PROP_Flags (MF_SOLID)
|
|
||||||
|
|
||||||
PROP_SpawnState (S_ZFIREBULL)
|
|
||||||
PROP_SeeState (S_ZFIREBULL_BIRTH)
|
|
||||||
PROP_MeleeState (S_ZFIREBULL_U)
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
void AZFireBull::Activate (AActor *activator)
|
|
||||||
{
|
|
||||||
Super::Activate (activator);
|
|
||||||
S_Sound (this, CHAN_BODY, "Ignite", 1, ATTN_NORM);
|
|
||||||
}
|
|
||||||
|
|
||||||
class AZFireBullUnlit : public AZFireBull
|
|
||||||
{
|
|
||||||
DECLARE_STATELESS_ACTOR (AZFireBullUnlit, AZFireBull)
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_STATELESS_ACTOR (AZFireBullUnlit, Hexen, 8043, 0)
|
|
||||||
PROP_SpawnState (S_ZFIREBULL_U)
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
// Suit of armor ------------------------------------------------------------
|
// Suit of armor ------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -1195,118 +862,3 @@ void A_BellReset2 (AActor *actor)
|
||||||
actor->health = 5;
|
actor->health = 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
// "Christmas" Tree ---------------------------------------------------------
|
|
||||||
|
|
||||||
class AZXmasTree : public AActor
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (AZXmasTree, AActor)
|
|
||||||
public:
|
|
||||||
void GetExplodeParms (int &damage, int &dist, bool &dmgSource);
|
|
||||||
};
|
|
||||||
|
|
||||||
FState AZXmasTree::States[] =
|
|
||||||
{
|
|
||||||
#define S_ZXMAS_TREE 0
|
|
||||||
S_NORMAL (XMAS, 'A', -1, NULL , NULL),
|
|
||||||
|
|
||||||
#define S_ZXMAS_TREE_X (S_ZXMAS_TREE+1)
|
|
||||||
S_BRIGHT (XMAS, 'B', 6, NULL , &States[S_ZXMAS_TREE_X+1]),
|
|
||||||
S_BRIGHT (XMAS, 'C', 6, A_Scream , &States[S_ZXMAS_TREE_X+2]),
|
|
||||||
S_BRIGHT (XMAS, 'D', 5, NULL , &States[S_ZXMAS_TREE_X+3]),
|
|
||||||
S_BRIGHT (XMAS, 'E', 5, A_Explode , &States[S_ZXMAS_TREE_X+4]),
|
|
||||||
S_BRIGHT (XMAS, 'F', 5, NULL , &States[S_ZXMAS_TREE_X+5]),
|
|
||||||
S_BRIGHT (XMAS, 'G', 4, NULL , &States[S_ZXMAS_TREE_X+6]),
|
|
||||||
S_NORMAL (XMAS, 'H', 5, NULL , &States[S_ZXMAS_TREE_X+7]),
|
|
||||||
S_NORMAL (XMAS, 'I', 4, A_NoBlocking , &States[S_ZXMAS_TREE_X+8]),
|
|
||||||
S_NORMAL (XMAS, 'J', 4, NULL , &States[S_ZXMAS_TREE_X+9]),
|
|
||||||
S_NORMAL (XMAS, 'K', -1, NULL , NULL)
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_ACTOR (AZXmasTree, Hexen, 8068, 0)
|
|
||||||
PROP_SpawnHealth (20)
|
|
||||||
PROP_RadiusFixed (11)
|
|
||||||
PROP_HeightFixed (130)
|
|
||||||
PROP_MassLong (0x7fffffff)
|
|
||||||
PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_NOBLOOD)
|
|
||||||
PROP_Flags4 (MF4_NOICEDEATH)
|
|
||||||
|
|
||||||
PROP_SpawnState (S_ZXMAS_TREE)
|
|
||||||
PROP_BDeathState (S_ZXMAS_TREE_X)
|
|
||||||
|
|
||||||
PROP_DeathSound ("TreeExplode")
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
void AZXmasTree::GetExplodeParms (int &damage, int &dist, bool &dmgSource)
|
|
||||||
{
|
|
||||||
damage = 30;
|
|
||||||
dist = 64;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Cauldron -----------------------------------------------------------------
|
|
||||||
|
|
||||||
class AZCauldron : public ASwitchableDecoration
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (AZCauldron, ASwitchableDecoration)
|
|
||||||
public:
|
|
||||||
void Activate (AActor *activator);
|
|
||||||
};
|
|
||||||
|
|
||||||
FState AZCauldron::States[] =
|
|
||||||
{
|
|
||||||
#define S_ZCAULDRON 0
|
|
||||||
S_BRIGHT (CDRN, 'B', 4, NULL , &States[S_ZCAULDRON+1]),
|
|
||||||
S_BRIGHT (CDRN, 'C', 4, NULL , &States[S_ZCAULDRON+2]),
|
|
||||||
S_BRIGHT (CDRN, 'D', 4, NULL , &States[S_ZCAULDRON+3]),
|
|
||||||
S_BRIGHT (CDRN, 'E', 4, NULL , &States[S_ZCAULDRON+4]),
|
|
||||||
S_BRIGHT (CDRN, 'F', 4, NULL , &States[S_ZCAULDRON+5]),
|
|
||||||
S_BRIGHT (CDRN, 'G', 4, NULL , &States[S_ZCAULDRON+6]),
|
|
||||||
S_BRIGHT (CDRN, 'H', 4, NULL , &States[S_ZCAULDRON+0]),
|
|
||||||
|
|
||||||
#define S_ZCAULDRON_U (S_ZCAULDRON+7)
|
|
||||||
S_NORMAL (CDRN, 'A', -1, NULL , NULL)
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_ACTOR (AZCauldron, Hexen, 8069, 0)
|
|
||||||
PROP_RadiusFixed (12)
|
|
||||||
PROP_HeightFixed (26)
|
|
||||||
PROP_Flags (MF_SOLID)
|
|
||||||
|
|
||||||
PROP_SpawnState (S_ZCAULDRON)
|
|
||||||
PROP_SeeState (S_ZCAULDRON)
|
|
||||||
PROP_MeleeState (S_ZCAULDRON_U)
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
void AZCauldron::Activate (AActor *activator)
|
|
||||||
{
|
|
||||||
Super::Activate (activator);
|
|
||||||
S_Sound (this, CHAN_BODY, "Ignite", 1, ATTN_NORM);
|
|
||||||
}
|
|
||||||
|
|
||||||
class AZCauldronUnlit : public AZCauldron
|
|
||||||
{
|
|
||||||
DECLARE_STATELESS_ACTOR (AZCauldronUnlit, AZCauldron)
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_STATELESS_ACTOR (AZCauldronUnlit, Hexen, 8070, 0)
|
|
||||||
PROP_SpawnState (S_ZCAULDRON_U)
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
// Water Drip ---------------------------------------------------------------
|
|
||||||
|
|
||||||
class AHWaterDrip : public AActor
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (AHWaterDrip, AActor)
|
|
||||||
};
|
|
||||||
|
|
||||||
FState AHWaterDrip::States[] =
|
|
||||||
{
|
|
||||||
S_NORMAL (HWAT, 'A', -1, NULL, NULL)
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_ACTOR (AHWaterDrip, Hexen, -1, 95)
|
|
||||||
PROP_Flags (MF_MISSILE)
|
|
||||||
PROP_Flags2 (MF2_LOGRAV|MF2_NOTELEPORT)
|
|
||||||
PROP_Mass (1)
|
|
||||||
PROP_SpawnState (0)
|
|
||||||
PROP_DeathSound ("Drip")
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
|
@ -7,27 +7,6 @@
|
||||||
#include "s_sound.h"
|
#include "s_sound.h"
|
||||||
#include "c_console.h"
|
#include "c_console.h"
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
puzzskull,
|
|
||||||
puzzgembig,
|
|
||||||
puzzgemred,
|
|
||||||
puzzgemgreen1,
|
|
||||||
puzzgemgreen2,
|
|
||||||
puzzgemblue1,
|
|
||||||
puzzgemblue2,
|
|
||||||
puzzbook1,
|
|
||||||
puzzbook2,
|
|
||||||
puzzskull2,
|
|
||||||
puzzfweapon,
|
|
||||||
puzzcweapon,
|
|
||||||
puzzmweapon,
|
|
||||||
puzzgear1,
|
|
||||||
puzzgear2,
|
|
||||||
puzzgear3,
|
|
||||||
puzzgear4,
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_STATELESS_ACTOR (APuzzleItem, Any, -1, 0)
|
IMPLEMENT_STATELESS_ACTOR (APuzzleItem, Any, -1, 0)
|
||||||
PROP_Flags (MF_SPECIAL|MF_NOGRAVITY)
|
PROP_Flags (MF_SPECIAL|MF_NOGRAVITY)
|
||||||
PROP_Inventory_FlagsSet (IF_INVBAR)
|
PROP_Inventory_FlagsSet (IF_INVBAR)
|
||||||
|
@ -69,455 +48,3 @@ bool APuzzleItem::ShouldStay ()
|
||||||
return !!multiplayer;
|
return !!multiplayer;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Yorick's Skull -----------------------------------------------------------
|
|
||||||
|
|
||||||
class APuzzSkull : public APuzzleItem
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (APuzzSkull, APuzzleItem)
|
|
||||||
public:
|
|
||||||
const char *PickupMessage ();
|
|
||||||
};
|
|
||||||
|
|
||||||
FState APuzzSkull::States[] =
|
|
||||||
{
|
|
||||||
S_NORMAL (ASKU, 'A', -1, NULL , NULL),
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_ACTOR (APuzzSkull, Hexen, 9002, 76)
|
|
||||||
PROP_SpawnState (0)
|
|
||||||
PROP_PuzzleItem_Number (puzzskull)
|
|
||||||
PROP_Inventory_Icon ("ARTISKLL")
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
const char *APuzzSkull::PickupMessage ()
|
|
||||||
{
|
|
||||||
return GStrings("TXT_ARTIPUZZSKULL");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Heart of D'Sparil --------------------------------------------------------
|
|
||||||
|
|
||||||
class APuzzGemBig : public APuzzleItem
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (APuzzGemBig, APuzzleItem)
|
|
||||||
public:
|
|
||||||
const char *PickupMessage ();
|
|
||||||
};
|
|
||||||
|
|
||||||
FState APuzzGemBig::States[] =
|
|
||||||
{
|
|
||||||
S_NORMAL (ABGM, 'A', -1, NULL , NULL),
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_ACTOR (APuzzGemBig, Hexen, 9003, 77)
|
|
||||||
PROP_SpawnState (0)
|
|
||||||
PROP_PuzzleItem_Number (puzzgembig)
|
|
||||||
PROP_Inventory_Icon ("ARTIBGEM")
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
const char *APuzzGemBig::PickupMessage ()
|
|
||||||
{
|
|
||||||
return GStrings("TXT_ARTIPUZZGEMBIG");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Red Gem (Ruby Planet) ----------------------------------------------------
|
|
||||||
|
|
||||||
class APuzzGemRed : public APuzzleItem
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (APuzzGemRed, APuzzleItem)
|
|
||||||
public:
|
|
||||||
const char *PickupMessage ();
|
|
||||||
};
|
|
||||||
|
|
||||||
FState APuzzGemRed::States[] =
|
|
||||||
{
|
|
||||||
S_NORMAL (AGMR, 'A', -1, NULL , NULL),
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_ACTOR (APuzzGemRed, Hexen, 9004, 78)
|
|
||||||
PROP_SpawnState (0)
|
|
||||||
PROP_PuzzleItem_Number (puzzgemred)
|
|
||||||
PROP_Inventory_Icon ("ARTIGEMR")
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
const char *APuzzGemRed::PickupMessage ()
|
|
||||||
{
|
|
||||||
return GStrings("TXT_ARTIPUZZGEMRED");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Green Gem 1 (Emerald Planet) ---------------------------------------------
|
|
||||||
|
|
||||||
class APuzzGemGreen1 : public APuzzleItem
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (APuzzGemGreen1, APuzzleItem)
|
|
||||||
public:
|
|
||||||
const char *PickupMessage ();
|
|
||||||
};
|
|
||||||
|
|
||||||
FState APuzzGemGreen1::States[] =
|
|
||||||
{
|
|
||||||
S_NORMAL (AGMG, 'A', -1, NULL , NULL),
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_ACTOR (APuzzGemGreen1, Hexen, 9005, 79)
|
|
||||||
PROP_SpawnState (0)
|
|
||||||
PROP_PuzzleItem_Number (puzzgemgreen1)
|
|
||||||
PROP_Inventory_Icon ("ARTIGEMG")
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
const char *APuzzGemGreen1::PickupMessage ()
|
|
||||||
{
|
|
||||||
return GStrings("TXT_ARTIPUZZGEMGREEN1");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Green Gem 2 (Emerald Planet) ---------------------------------------------
|
|
||||||
|
|
||||||
class APuzzGemGreen2 : public APuzzleItem
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (APuzzGemGreen2, APuzzleItem)
|
|
||||||
public:
|
|
||||||
const char *PickupMessage ();
|
|
||||||
};
|
|
||||||
|
|
||||||
FState APuzzGemGreen2::States[] =
|
|
||||||
{
|
|
||||||
S_NORMAL (AGG2, 'A', -1, NULL , NULL),
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_ACTOR (APuzzGemGreen2, Hexen, 9009, 80)
|
|
||||||
PROP_SpawnState (0)
|
|
||||||
PROP_PuzzleItem_Number (puzzgemgreen2)
|
|
||||||
PROP_Inventory_Icon ("ARTIGMG2")
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
const char *APuzzGemGreen2::PickupMessage ()
|
|
||||||
{
|
|
||||||
return GStrings("TXT_ARTIPUZZGEMGREEN2");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Blue Gem 1 (Sapphire Planet) ---------------------------------------------
|
|
||||||
|
|
||||||
class APuzzGemBlue1 : public APuzzleItem
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (APuzzGemBlue1, APuzzleItem)
|
|
||||||
public:
|
|
||||||
const char *PickupMessage ();
|
|
||||||
};
|
|
||||||
|
|
||||||
FState APuzzGemBlue1::States[] =
|
|
||||||
{
|
|
||||||
S_NORMAL (AGMB, 'A', -1, NULL , NULL),
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_ACTOR (APuzzGemBlue1, Hexen, 9006, 81)
|
|
||||||
PROP_SpawnState (0)
|
|
||||||
PROP_PuzzleItem_Number (puzzgemblue1)
|
|
||||||
PROP_Inventory_Icon ("ARTIGEMB")
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
const char *APuzzGemBlue1::PickupMessage ()
|
|
||||||
{
|
|
||||||
return GStrings("TXT_ARTIPUZZGEMBLUE1");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Blue Gem 2 (Sapphire Planet) ---------------------------------------------
|
|
||||||
|
|
||||||
class APuzzGemBlue2 : public APuzzleItem
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (APuzzGemBlue2, APuzzleItem)
|
|
||||||
public:
|
|
||||||
const char *PickupMessage ();
|
|
||||||
};
|
|
||||||
|
|
||||||
FState APuzzGemBlue2::States[] =
|
|
||||||
{
|
|
||||||
S_NORMAL (AGB2, 'A', -1, NULL , NULL),
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_ACTOR (APuzzGemBlue2, Hexen, 9010, 82)
|
|
||||||
PROP_SpawnState (0)
|
|
||||||
PROP_PuzzleItem_Number (puzzgemblue2)
|
|
||||||
PROP_Inventory_Icon ("ARTIGMB2")
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
const char *APuzzGemBlue2::PickupMessage ()
|
|
||||||
{
|
|
||||||
return GStrings("TXT_ARTIPUZZGEMBLUE2");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Book 1 (Daemon Codex) ----------------------------------------------------
|
|
||||||
|
|
||||||
class APuzzBook1 : public APuzzleItem
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (APuzzBook1, APuzzleItem)
|
|
||||||
public:
|
|
||||||
const char *PickupMessage ();
|
|
||||||
};
|
|
||||||
|
|
||||||
FState APuzzBook1::States[] =
|
|
||||||
{
|
|
||||||
S_NORMAL (ABK1, 'A', -1, NULL , NULL),
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_ACTOR (APuzzBook1, Hexen, 9007, 83)
|
|
||||||
PROP_SpawnState (0)
|
|
||||||
PROP_PuzzleItem_Number (puzzbook1)
|
|
||||||
PROP_Inventory_Icon ("ARTIBOK1")
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
const char *APuzzBook1::PickupMessage ()
|
|
||||||
{
|
|
||||||
return GStrings("TXT_ARTIPUZZBOOK1");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Book 2 (Liber Oscura) ----------------------------------------------------
|
|
||||||
|
|
||||||
class APuzzBook2 : public APuzzleItem
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (APuzzBook2, APuzzleItem)
|
|
||||||
public:
|
|
||||||
const char *PickupMessage ();
|
|
||||||
};
|
|
||||||
|
|
||||||
FState APuzzBook2::States[] =
|
|
||||||
{
|
|
||||||
S_NORMAL (ABK2, 'A', -1, NULL , NULL),
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_ACTOR (APuzzBook2, Hexen, 9008, 84)
|
|
||||||
PROP_SpawnState (0)
|
|
||||||
PROP_PuzzleItem_Number (puzzbook2)
|
|
||||||
PROP_Inventory_Icon ("ARTIBOK2")
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
const char *APuzzBook2::PickupMessage ()
|
|
||||||
{
|
|
||||||
return GStrings("TXT_ARTIPUZZBOOK2");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Flame Mask ---------------------------------------------------------------
|
|
||||||
|
|
||||||
class APuzzFlameMask : public APuzzleItem
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (APuzzFlameMask, APuzzleItem)
|
|
||||||
public:
|
|
||||||
const char *PickupMessage ();
|
|
||||||
};
|
|
||||||
|
|
||||||
FState APuzzFlameMask::States[] =
|
|
||||||
{
|
|
||||||
S_NORMAL (ASK2, 'A', -1, NULL , NULL),
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_ACTOR (APuzzFlameMask, Hexen, 9014, 0)
|
|
||||||
PROP_SpawnState (0)
|
|
||||||
PROP_PuzzleItem_Number (puzzskull2)
|
|
||||||
PROP_Inventory_Icon ("ARTISKL2")
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
const char *APuzzFlameMask::PickupMessage ()
|
|
||||||
{
|
|
||||||
return GStrings("TXT_ARTIPUZZSKULL2");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fighter Weapon (Glaive Seal) ---------------------------------------------
|
|
||||||
|
|
||||||
class APuzzFWeapon : public APuzzleItem
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (APuzzFWeapon, APuzzleItem)
|
|
||||||
public:
|
|
||||||
const char *PickupMessage ();
|
|
||||||
};
|
|
||||||
|
|
||||||
FState APuzzFWeapon::States[] =
|
|
||||||
{
|
|
||||||
S_NORMAL (AFWP, 'A', -1, NULL , NULL),
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_ACTOR (APuzzFWeapon, Hexen, 9015, 0)
|
|
||||||
PROP_SpawnState (0)
|
|
||||||
PROP_PuzzleItem_Number (puzzfweapon)
|
|
||||||
PROP_Inventory_Icon ("ARTIFWEP")
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
const char *APuzzFWeapon::PickupMessage ()
|
|
||||||
{
|
|
||||||
return GStrings("TXT_ARTIPUZZFWEAPON");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Cleric Weapon (Holy Relic) -----------------------------------------------
|
|
||||||
|
|
||||||
class APuzzCWeapon : public APuzzleItem
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (APuzzCWeapon, APuzzleItem)
|
|
||||||
public:
|
|
||||||
const char *PickupMessage ();
|
|
||||||
};
|
|
||||||
|
|
||||||
FState APuzzCWeapon::States[] =
|
|
||||||
{
|
|
||||||
S_NORMAL (ACWP, 'A', -1, NULL , NULL),
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_ACTOR (APuzzCWeapon, Hexen, 9016, 0)
|
|
||||||
PROP_SpawnState (0)
|
|
||||||
PROP_PuzzleItem_Number (puzzcweapon)
|
|
||||||
PROP_Inventory_Icon ("ARTICWEP")
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
const char *APuzzCWeapon::PickupMessage ()
|
|
||||||
{
|
|
||||||
return GStrings("TXT_ARTIPUZZCWEAPON");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Mage Weapon (Sigil of the Magus) -----------------------------------------
|
|
||||||
|
|
||||||
class APuzzMWeapon : public APuzzleItem
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (APuzzMWeapon, APuzzleItem)
|
|
||||||
public:
|
|
||||||
const char *PickupMessage ();
|
|
||||||
};
|
|
||||||
|
|
||||||
FState APuzzMWeapon::States[] =
|
|
||||||
{
|
|
||||||
S_NORMAL (AMWP, 'A', -1, NULL , NULL),
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_ACTOR (APuzzMWeapon, Hexen, 9017, 0)
|
|
||||||
PROP_SpawnState (0)
|
|
||||||
PROP_PuzzleItem_Number (puzzmweapon)
|
|
||||||
PROP_Inventory_Icon ("ARTIMWEP")
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
const char *APuzzMWeapon::PickupMessage ()
|
|
||||||
{
|
|
||||||
return GStrings("TXT_ARTIPUZZMWEAPON");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clock Gear 1 -------------------------------------------------------------
|
|
||||||
|
|
||||||
class APuzzGear1 : public APuzzleItem
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (APuzzGear1, APuzzleItem)
|
|
||||||
public:
|
|
||||||
const char *PickupMessage ();
|
|
||||||
};
|
|
||||||
|
|
||||||
FState APuzzGear1::States[] =
|
|
||||||
{
|
|
||||||
S_BRIGHT (AGER, 'A', 4, NULL , &States[1]),
|
|
||||||
S_BRIGHT (AGER, 'B', 4, NULL , &States[2]),
|
|
||||||
S_BRIGHT (AGER, 'C', 4, NULL , &States[3]),
|
|
||||||
S_BRIGHT (AGER, 'D', 4, NULL , &States[4]),
|
|
||||||
S_BRIGHT (AGER, 'E', 4, NULL , &States[5]),
|
|
||||||
S_BRIGHT (AGER, 'F', 4, NULL , &States[6]),
|
|
||||||
S_BRIGHT (AGER, 'G', 4, NULL , &States[7]),
|
|
||||||
S_BRIGHT (AGER, 'H', 4, NULL , &States[0]),
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_ACTOR (APuzzGear1, Hexen, 9018, 0)
|
|
||||||
PROP_SpawnState (0)
|
|
||||||
PROP_PuzzleItem_Number (puzzgear1)
|
|
||||||
PROP_Inventory_Icon ("ARTIGEAR")
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
const char *APuzzGear1::PickupMessage ()
|
|
||||||
{
|
|
||||||
return GStrings("TXT_ARTIPUZZGEAR");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clock Gear 2 -------------------------------------------------------------
|
|
||||||
|
|
||||||
class APuzzGear2 : public APuzzleItem
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (APuzzGear2, APuzzleItem)
|
|
||||||
public:
|
|
||||||
const char *PickupMessage ();
|
|
||||||
};
|
|
||||||
|
|
||||||
FState APuzzGear2::States[] =
|
|
||||||
{
|
|
||||||
S_BRIGHT (AGR2, 'A', 4, NULL , &States[1]),
|
|
||||||
S_BRIGHT (AGR2, 'B', 4, NULL , &States[2]),
|
|
||||||
S_BRIGHT (AGR2, 'C', 4, NULL , &States[3]),
|
|
||||||
S_BRIGHT (AGR2, 'D', 4, NULL , &States[4]),
|
|
||||||
S_BRIGHT (AGR2, 'E', 4, NULL , &States[5]),
|
|
||||||
S_BRIGHT (AGR2, 'F', 4, NULL , &States[6]),
|
|
||||||
S_BRIGHT (AGR2, 'G', 4, NULL , &States[7]),
|
|
||||||
S_BRIGHT (AGR2, 'H', 4, NULL , &States[0]),
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_ACTOR (APuzzGear2, Hexen, 9019, 0)
|
|
||||||
PROP_SpawnState (0)
|
|
||||||
PROP_PuzzleItem_Number (puzzgear2)
|
|
||||||
PROP_Inventory_Icon ("ARTIGER2")
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
const char *APuzzGear2::PickupMessage ()
|
|
||||||
{
|
|
||||||
return GStrings("TXT_ARTIPUZZGEAR");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clock Gear 3 -------------------------------------------------------------
|
|
||||||
|
|
||||||
class APuzzGear3 : public APuzzleItem
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (APuzzGear3, APuzzleItem)
|
|
||||||
public:
|
|
||||||
const char *PickupMessage ();
|
|
||||||
};
|
|
||||||
|
|
||||||
FState APuzzGear3::States[] =
|
|
||||||
{
|
|
||||||
S_BRIGHT (AGR3, 'A', 4, NULL , &States[1]),
|
|
||||||
S_BRIGHT (AGR3, 'B', 4, NULL , &States[2]),
|
|
||||||
S_BRIGHT (AGR3, 'C', 4, NULL , &States[3]),
|
|
||||||
S_BRIGHT (AGR3, 'D', 4, NULL , &States[4]),
|
|
||||||
S_BRIGHT (AGR3, 'E', 4, NULL , &States[5]),
|
|
||||||
S_BRIGHT (AGR3, 'F', 4, NULL , &States[6]),
|
|
||||||
S_BRIGHT (AGR3, 'G', 4, NULL , &States[7]),
|
|
||||||
S_BRIGHT (AGR3, 'H', 4, NULL , &States[0]),
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_ACTOR (APuzzGear3, Hexen, 9020, 0)
|
|
||||||
PROP_SpawnState (0)
|
|
||||||
PROP_PuzzleItem_Number (puzzgear3)
|
|
||||||
PROP_Inventory_Icon ("ARTIGER3")
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
const char *APuzzGear3::PickupMessage ()
|
|
||||||
{
|
|
||||||
return GStrings("TXT_ARTIPUZZGEAR");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clock Gear 4 -------------------------------------------------------------
|
|
||||||
|
|
||||||
class APuzzGear4 : public APuzzleItem
|
|
||||||
{
|
|
||||||
DECLARE_ACTOR (APuzzGear4, APuzzleItem)
|
|
||||||
public:
|
|
||||||
const char *PickupMessage ();
|
|
||||||
};
|
|
||||||
|
|
||||||
FState APuzzGear4::States[] =
|
|
||||||
{
|
|
||||||
S_BRIGHT (AGR4, 'A', 4, NULL , &States[1]),
|
|
||||||
S_BRIGHT (AGR4, 'B', 4, NULL , &States[2]),
|
|
||||||
S_BRIGHT (AGR4, 'C', 4, NULL , &States[3]),
|
|
||||||
S_BRIGHT (AGR4, 'D', 4, NULL , &States[4]),
|
|
||||||
S_BRIGHT (AGR4, 'E', 4, NULL , &States[5]),
|
|
||||||
S_BRIGHT (AGR4, 'F', 4, NULL , &States[6]),
|
|
||||||
S_BRIGHT (AGR4, 'G', 4, NULL , &States[7]),
|
|
||||||
S_BRIGHT (AGR4, 'H', 4, NULL , &States[0]),
|
|
||||||
};
|
|
||||||
|
|
||||||
IMPLEMENT_ACTOR (APuzzGear4, Hexen, 9021, 0)
|
|
||||||
PROP_SpawnState (0)
|
|
||||||
PROP_PuzzleItem_Number (puzzgear4)
|
|
||||||
PROP_Inventory_Icon ("ARTIGER4")
|
|
||||||
END_DEFAULTS
|
|
||||||
|
|
||||||
const char *APuzzGear4::PickupMessage ()
|
|
||||||
{
|
|
||||||
return GStrings("TXT_ARTIPUZZGEAR");
|
|
||||||
}
|
|
||||||
|
|
|
@ -1082,7 +1082,7 @@ void FFontChar2::MakeTexture ()
|
||||||
I_FatalError ("The font %s is corrupt", name);
|
I_FatalError ("The font %s is corrupt", name);
|
||||||
}
|
}
|
||||||
|
|
||||||
Spans = CreateSpans (Pixels);
|
if (Spans!=NULL) Spans = CreateSpans (Pixels);
|
||||||
}
|
}
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
|
@ -15,3 +15,10 @@
|
||||||
#include "actors/heretic/hereticdecorations.txt"
|
#include "actors/heretic/hereticdecorations.txt"
|
||||||
|
|
||||||
#include "actors/hexen/flame.txt"
|
#include "actors/hexen/flame.txt"
|
||||||
|
#include "actors/hexen/hexenarmor.txt"
|
||||||
|
#include "actors/hexen/hexendecorations.txt"
|
||||||
|
#include "actors/hexen/hexenkeys.txt"
|
||||||
|
#include "actors/hexen/hexenspecialdecs.txt"
|
||||||
|
#include "actors/hexen/puzzleitems.txt"
|
||||||
|
#include "actors/hexen/scriptprojectiles.txt"
|
||||||
|
#include "actors/hexen/speedboots.txt"
|
||||||
|
|
|
@ -437,7 +437,7 @@ ACTOR ZMossCeiling2 59
|
||||||
States
|
States
|
||||||
{
|
{
|
||||||
Spawn:
|
Spawn:
|
||||||
MS21 A -1
|
MSS2 A -1
|
||||||
Stop
|
Stop
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1 +1,308 @@
|
||||||
//
|
|
||||||
|
// Winged Statue (no skull) -------------------------------------------------
|
||||||
|
|
||||||
|
ACTOR ZWingedStatueNoSkull : SwitchingDecoration 9011
|
||||||
|
{
|
||||||
|
Game Hexen
|
||||||
|
Radius 10
|
||||||
|
Height 62
|
||||||
|
+SOLID
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
STWN A -1
|
||||||
|
Stop
|
||||||
|
Active:
|
||||||
|
STWN B -1
|
||||||
|
Stop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Gem pedestal -------------------------------------------------------------
|
||||||
|
|
||||||
|
ACTOR ZGemPedestal : SwitchingDecoration 9012
|
||||||
|
{
|
||||||
|
Game Hexen
|
||||||
|
Radius 10
|
||||||
|
Height 40
|
||||||
|
+SOLID
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
GMPD A -1
|
||||||
|
Stop
|
||||||
|
Active:
|
||||||
|
GMPD B -1
|
||||||
|
Stop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Tree (destructible) ------------------------------------------------------
|
||||||
|
|
||||||
|
ACTOR TreeDestructible 8062
|
||||||
|
{
|
||||||
|
Game Hexen
|
||||||
|
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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Twined torch -------------------------------------------------------------
|
||||||
|
|
||||||
|
ACTOR ZTwinedTorch : SwitchableDecoration 116
|
||||||
|
{
|
||||||
|
Game Hexen
|
||||||
|
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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ACTOR ZTwinedTorchUnlit : ZTwinedTorch 117
|
||||||
|
{
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
TWTR I -1
|
||||||
|
Stop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Wall torch ---------------------------------------------------------------
|
||||||
|
|
||||||
|
ACTOR ZWallTorch : SwitchableDecoration 54
|
||||||
|
{
|
||||||
|
Game Hexen
|
||||||
|
+NOBLOCKMAP
|
||||||
|
+NOGRAVITY
|
||||||
|
+FIXMAPTHINGPOS
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Active:
|
||||||
|
WLTR A 0 Bright A_PlaySound("Ignite")
|
||||||
|
Spawn:
|
||||||
|
WLTR ABCDEFGH 5 Bright
|
||||||
|
Loop
|
||||||
|
Inactive:
|
||||||
|
WLTR I -1
|
||||||
|
Stop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ACTOR ZWallTorchUnlit : ZWallTorch 55
|
||||||
|
{
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
WLTR I -1
|
||||||
|
Stop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Shrub1 -------------------------------------------------------------------
|
||||||
|
|
||||||
|
ACTOR ZShrub1 8101
|
||||||
|
{
|
||||||
|
Game Hexen
|
||||||
|
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 -------------------------------------------------------------------
|
||||||
|
|
||||||
|
ACTOR ZShrub2 8102
|
||||||
|
{
|
||||||
|
Game Hexen
|
||||||
|
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 ----------------------------------------------------------------
|
||||||
|
|
||||||
|
ACTOR ZFireBull : SwitchableDecoration 8042
|
||||||
|
{
|
||||||
|
Game Hexen
|
||||||
|
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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ACTOR ZFireBullUnlit : ZFireBull 8043
|
||||||
|
{
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
FBUL H -1
|
||||||
|
Stop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// "Christmas" Tree ---------------------------------------------------------
|
||||||
|
|
||||||
|
ACTOR ZXmasTree 8068
|
||||||
|
{
|
||||||
|
Game Hexen
|
||||||
|
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 -----------------------------------------------------------------
|
||||||
|
|
||||||
|
ACTOR ZCauldron : SwitchableDecoration 8069
|
||||||
|
{
|
||||||
|
Game Hexen
|
||||||
|
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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ACTOR AZCauldronUnlit : ZCauldron
|
||||||
|
{
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
CDRN A -1
|
||||||
|
Stop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Water Drip ---------------------------------------------------------------
|
||||||
|
|
||||||
|
ACTOR HWaterDrip
|
||||||
|
{
|
||||||
|
Game Hexen
|
||||||
|
SpawnID 95
|
||||||
|
+MISSILE
|
||||||
|
+LOWGRAVITY
|
||||||
|
+NOTELEPORT
|
||||||
|
Mass 1
|
||||||
|
DeathSound "Drip"
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
HWAT A -1
|
||||||
|
Stop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -1 +1,296 @@
|
||||||
//
|
|
||||||
|
// Yorick's Skull -----------------------------------------------------------
|
||||||
|
|
||||||
|
ACTOR PuzzSkull : PuzzleItem 9002
|
||||||
|
{
|
||||||
|
Game Hexen
|
||||||
|
SpawnID 76
|
||||||
|
PuzzleItem.Number 0
|
||||||
|
Inventory.Icon ARTISKLL
|
||||||
|
Inventory.PickupMessage "$TXT_ARTIPUZZSKULL"
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
ASKU A -1
|
||||||
|
Stop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Heart of D'Sparil --------------------------------------------------------
|
||||||
|
|
||||||
|
ACTOR PuzzGemBig : PuzzleItem 9003
|
||||||
|
{
|
||||||
|
Game Hexen
|
||||||
|
SpawnID 77
|
||||||
|
PuzzleItem.Number 1
|
||||||
|
Inventory.Icon ARTIBGEM
|
||||||
|
Inventory.PickupMessage "$TXT_ARTIPUZZGEMBIG"
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
ABGM A -1
|
||||||
|
Stop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Red Gem (Ruby Planet) ----------------------------------------------------
|
||||||
|
|
||||||
|
ACTOR PuzzGemRed : PuzzleItem 9004
|
||||||
|
{
|
||||||
|
Game Hexen
|
||||||
|
SpawnID 78
|
||||||
|
PuzzleItem.Number 2
|
||||||
|
Inventory.Icon ARTIGEMR
|
||||||
|
Inventory.PickupMessage "$TXT_ARTIPUZZGEMRED"
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
AGMR A -1
|
||||||
|
Stop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Green Gem 1 (Emerald Planet) ---------------------------------------------
|
||||||
|
|
||||||
|
ACTOR PuzzGemGreen : PuzzleItem 9005
|
||||||
|
{
|
||||||
|
Game Hexen
|
||||||
|
SpawnID 79
|
||||||
|
PuzzleItem.Number 3
|
||||||
|
Inventory.Icon ARTIGEMG
|
||||||
|
Inventory.PickupMessage "$TXT_ARTIPUZZGEMGREEN1"
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
AGMG A -1
|
||||||
|
Stop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Green Gem 2 (Emerald Planet) ---------------------------------------------
|
||||||
|
|
||||||
|
ACTOR PuzzGemGreen2 : PuzzleItem 9009
|
||||||
|
{
|
||||||
|
Game Hexen
|
||||||
|
SpawnID 80
|
||||||
|
PuzzleItem.Number 4
|
||||||
|
Inventory.Icon ARTIGMG2
|
||||||
|
Inventory.PickupMessage "$TXT_ARTIPUZZGEMGREEN2"
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
AGG2 A -1
|
||||||
|
Stop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Blue Gem 1 (Sapphire Planet) ---------------------------------------------
|
||||||
|
|
||||||
|
ACTOR PuzzGemBlue1 : PuzzleItem 9006
|
||||||
|
{
|
||||||
|
Game Hexen
|
||||||
|
SpawnID 81
|
||||||
|
PuzzleItem.Number 5
|
||||||
|
Inventory.Icon ARTIGEMB
|
||||||
|
Inventory.PickupMessage "$TXT_ARTIPUZZGEMBLUE1"
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
AGMB A -1
|
||||||
|
Stop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Blue Gem 2 (Sapphire Planet) ---------------------------------------------
|
||||||
|
|
||||||
|
ACTOR PuzzGemBlue2 : PuzzleItem 9010
|
||||||
|
{
|
||||||
|
Game Hexen
|
||||||
|
SpawnID 82
|
||||||
|
PuzzleItem.Number 6
|
||||||
|
Inventory.Icon ARTIGMB2
|
||||||
|
Inventory.PickupMessage "$TXT_ARTIPUZZGEMBLUE2"
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
AGB2 A -1
|
||||||
|
Stop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Book 1 (Daemon Codex) ----------------------------------------------------
|
||||||
|
|
||||||
|
ACTOR PuzzBook1 : PuzzleItem 9007
|
||||||
|
{
|
||||||
|
Game Hexen
|
||||||
|
SpawnID 83
|
||||||
|
PuzzleItem.Number 7
|
||||||
|
Inventory.Icon ARTIBOK1
|
||||||
|
Inventory.PickupMessage "$TXT_ARTIPUZZBOOK1"
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
ABK1 A -1
|
||||||
|
Stop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Book 2 (Liber Oscura) ----------------------------------------------------
|
||||||
|
|
||||||
|
ACTOR PuzzBook2 : PuzzleItem 9008
|
||||||
|
{
|
||||||
|
Game Hexen
|
||||||
|
SpawnID 84
|
||||||
|
PuzzleItem.Number 8
|
||||||
|
Inventory.Icon ARTIBOK2
|
||||||
|
Inventory.PickupMessage "$TXT_ARTIPUZZBOOK2"
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
ABK2 A -1
|
||||||
|
Stop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Flame Mask ---------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
ACTOR PuzzFlameMask : PuzzleItem 9014
|
||||||
|
{
|
||||||
|
Game Hexen
|
||||||
|
PuzzleItem.Number 9
|
||||||
|
Inventory.Icon ARTISKL2
|
||||||
|
Inventory.PickupMessage "$TXT_ARTIPUZZSKULL2"
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
ASK2 A -1
|
||||||
|
Stop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fighter Weapon (Glaive Seal) ---------------------------------------------
|
||||||
|
|
||||||
|
ACTOR PuzzFWeapon : PuzzleItem 9015
|
||||||
|
{
|
||||||
|
Game Hexen
|
||||||
|
PuzzleItem.Number 10
|
||||||
|
Inventory.Icon ARTIFWEP
|
||||||
|
Inventory.PickupMessage "$TXT_ARTIPUZZFWEAPON"
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
AFWP A -1
|
||||||
|
Stop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Cleric Weapon (Holy Relic) -----------------------------------------------
|
||||||
|
|
||||||
|
ACTOR PuzzCWeapon : PuzzleItem 9016
|
||||||
|
{
|
||||||
|
Game Hexen
|
||||||
|
PuzzleItem.Number 11
|
||||||
|
Inventory.Icon ARTICWEP
|
||||||
|
Inventory.PickupMessage "$TXT_ARTIPUZZCWEAPON"
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
ACWP A -1
|
||||||
|
Stop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Mage Weapon (Sigil of the Magus) -----------------------------------------
|
||||||
|
|
||||||
|
ACTOR PuzzMWeapon : PuzzleItem 9017
|
||||||
|
{
|
||||||
|
Game Hexen
|
||||||
|
PuzzleItem.Number 12
|
||||||
|
Inventory.Icon ARTIMWEP
|
||||||
|
Inventory.PickupMessage "$TXT_ARTIPUZZMWEAPON"
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
AMWP A -1
|
||||||
|
Stop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clock Gear 1 -------------------------------------------------------------
|
||||||
|
|
||||||
|
ACTOR PuzzGear : PuzzleItem 9018
|
||||||
|
{
|
||||||
|
Game Hexen
|
||||||
|
PuzzleItem.Number 13
|
||||||
|
Inventory.Icon ARTIGEAR
|
||||||
|
Inventory.PickupMessage "$TXT_ARTIPUZZGEAR"
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
AGER ABCDEFGH 4 Bright
|
||||||
|
Loop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Clock Gear 2 -------------------------------------------------------------
|
||||||
|
|
||||||
|
ACTOR PuzzGear2 : PuzzleItem 9019
|
||||||
|
{
|
||||||
|
Game Hexen
|
||||||
|
PuzzleItem.Number 14
|
||||||
|
Inventory.Icon ARTIGER2
|
||||||
|
Inventory.PickupMessage "$TXT_ARTIPUZZGEAR"
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
AGR2 ABCDEFGH 4 Bright
|
||||||
|
Loop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Clock Gear 3 -------------------------------------------------------------
|
||||||
|
|
||||||
|
ACTOR PuzzGear3 : PuzzleItem 9020
|
||||||
|
{
|
||||||
|
Game Hexen
|
||||||
|
PuzzleItem.Number 15
|
||||||
|
Inventory.Icon ARTIGER3
|
||||||
|
Inventory.PickupMessage "$TXT_ARTIPUZZGEAR"
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
AGR3 ABCDEFGH 4 Bright
|
||||||
|
Loop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Clock Gear 4 -------------------------------------------------------------
|
||||||
|
|
||||||
|
ACTOR PuzzGear4 : PuzzleItem 9021
|
||||||
|
{
|
||||||
|
Game Hexen
|
||||||
|
PuzzleItem.Number 16
|
||||||
|
Inventory.Icon ARTIGER4
|
||||||
|
Inventory.PickupMessage "$TXT_ARTIPUZZGEAR"
|
||||||
|
States
|
||||||
|
{
|
||||||
|
Spawn:
|
||||||
|
AGR4 ABCDEFGH 4 Bright
|
||||||
|
Loop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue