mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2025-01-31 04:20:34 +00:00
- Added more DECORATE conversions by Karate Chris.
SVN r1108 (trunk)
This commit is contained in:
parent
affd0e5034
commit
cc99d150a3
14 changed files with 497 additions and 656 deletions
|
@ -160,6 +160,21 @@ ACTOR(MaceBallImpact2)
|
|||
ACTOR(DeathBallImpact)
|
||||
|
||||
|
||||
ACTOR(BatSpawnInit)
|
||||
ACTOR(BatSpawn)
|
||||
ACTOR(BatMove)
|
||||
ACTOR(BishopDecide)
|
||||
ACTOR(BishopDoBlur)
|
||||
ACTOR(BishopSpawnBlur)
|
||||
ACTOR(BishopPainBlur)
|
||||
ACTOR(BishopChase)
|
||||
ACTOR(BishopAttack)
|
||||
ACTOR(BishopAttack2)
|
||||
ACTOR(BishopPuff)
|
||||
WEAPON(CFlameAttack)
|
||||
WEAPON(CFlameRotate)
|
||||
ACTOR(CFlamePuff)
|
||||
WEAPON(CFlameMissile)
|
||||
WEAPON(CMaceAttack)
|
||||
ACTOR(FiredRocks)
|
||||
ACTOR(FiredChase)
|
||||
|
|
|
@ -7,77 +7,6 @@
|
|||
static FRandom pr_batspawn ("BatSpawn");
|
||||
static FRandom pr_batmove ("BatMove");
|
||||
|
||||
void A_BatSpawnInit (AActor *);
|
||||
void A_BatSpawn (AActor *);
|
||||
void A_BatMove (AActor *);
|
||||
|
||||
// Bat Spawner --------------------------------------------------------------
|
||||
|
||||
class ABatSpawner : public AActor
|
||||
{
|
||||
DECLARE_ACTOR (ABatSpawner, AActor)
|
||||
public:
|
||||
void Activate (AActor *activator);
|
||||
void Deactivate (AActor *activator);
|
||||
};
|
||||
|
||||
FState ABatSpawner::States[] =
|
||||
{
|
||||
#define S_SPAWNBATS1 0
|
||||
S_NORMAL (TNT1, 'A', 2, NULL , &States[S_SPAWNBATS1+1]),
|
||||
S_NORMAL (TNT1, 'A', 2, A_BatSpawnInit , &States[S_SPAWNBATS1+2]),
|
||||
S_NORMAL (TNT1, 'A', 2, A_BatSpawn , &States[S_SPAWNBATS1+2]),
|
||||
|
||||
#define S_SPAWNBATS_OFF (S_SPAWNBATS1+3)
|
||||
S_NORMAL (TNT1, 'A', -1, NULL , NULL)
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (ABatSpawner, Hexen, 10225, 0)
|
||||
PROP_Flags (MF_NOSECTOR|MF_NOBLOCKMAP|MF_NOGRAVITY)
|
||||
PROP_RenderStyle (STYLE_None)
|
||||
|
||||
PROP_SpawnState (S_SPAWNBATS1)
|
||||
END_DEFAULTS
|
||||
|
||||
void ABatSpawner::Activate (AActor *activator)
|
||||
{
|
||||
SetState (&States[S_SPAWNBATS1]);
|
||||
}
|
||||
|
||||
void ABatSpawner::Deactivate (AActor *activator)
|
||||
{
|
||||
SetState (&States[S_SPAWNBATS_OFF]);
|
||||
}
|
||||
|
||||
// Bat ----------------------------------------------------------------------
|
||||
|
||||
class ABat : public AActor
|
||||
{
|
||||
DECLARE_ACTOR (ABat, AActor)
|
||||
};
|
||||
|
||||
FState ABat::States[] =
|
||||
{
|
||||
#define S_BAT1 0
|
||||
S_NORMAL (ABAT, 'A', 2, A_BatMove , &States[S_BAT1+1]),
|
||||
S_NORMAL (ABAT, 'B', 2, A_BatMove , &States[S_BAT1+2]),
|
||||
S_NORMAL (ABAT, 'C', 2, A_BatMove , &States[S_BAT1]),
|
||||
|
||||
#define S_BAT_DEATH (S_BAT1+3)
|
||||
S_NORMAL (ABAT, 'A', 2, NULL , NULL),
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (ABat, Hexen, -1, 0)
|
||||
PROP_SpeedFixed (5)
|
||||
PROP_RadiusFixed (3)
|
||||
PROP_HeightFixed (3)
|
||||
PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY|MF_MISSILE)
|
||||
PROP_Flags2 (MF2_NOTELEPORT|MF2_PASSMOBJ)
|
||||
|
||||
PROP_SpawnState (S_BAT1)
|
||||
PROP_DeathState (S_BAT_DEATH)
|
||||
END_DEFAULTS
|
||||
|
||||
//===========================================================================
|
||||
// Bat Spawner Variables
|
||||
// special1 frequency counter
|
||||
|
@ -111,7 +40,7 @@ void A_BatSpawn (AActor *actor)
|
|||
delta = actor->args[1];
|
||||
if (delta==0) delta=1;
|
||||
angle = actor->angle + (((pr_batspawn()%delta)-(delta>>1))<<24);
|
||||
mo = P_SpawnMissileAngle (actor, RUNTIME_CLASS(ABat), angle, 0);
|
||||
mo = P_SpawnMissileAngle (actor, PClass::FindClass ("Bat"), angle, 0);
|
||||
if (mo)
|
||||
{
|
||||
mo->args[0] = pr_batspawn()&63; // floatbob index
|
||||
|
|
|
@ -14,216 +14,6 @@ static FRandom pr_doblur ("BishopDoBlur");
|
|||
static FRandom pr_sblur ("BishopSpawnBlur");
|
||||
static FRandom pr_pain ("BishopPainBlur");
|
||||
|
||||
void A_BishopDecide (AActor *);
|
||||
void A_BishopDoBlur (AActor *);
|
||||
void A_BishopSpawnBlur (AActor *);
|
||||
void A_BishopPainBlur (AActor *);
|
||||
void A_BishopChase (AActor *);
|
||||
void A_BishopAttack (AActor *);
|
||||
void A_BishopAttack2 (AActor *);
|
||||
void A_BishopPuff (AActor *);
|
||||
void A_SetAltShadow (AActor *);
|
||||
void A_BishopMissileWeave (AActor *);
|
||||
void A_BishopMissileSeek (AActor *);
|
||||
|
||||
// Bishop -------------------------------------------------------------------
|
||||
|
||||
FState ABishop::States[] =
|
||||
{
|
||||
#define S_BISHOP_LOOK 0
|
||||
S_NORMAL (BISH, 'A', 10, A_Look , &States[S_BISHOP_LOOK+0]),
|
||||
|
||||
#define S_BISHOP_BLUR (S_BISHOP_LOOK+1)
|
||||
S_NORMAL (BISH, 'A', 2, A_BishopDoBlur , &States[S_BISHOP_BLUR+1]),
|
||||
S_NORMAL (BISH, 'A', 4, A_BishopSpawnBlur , &States[S_BISHOP_BLUR+1]),
|
||||
|
||||
#define S_BISHOP_WALK (S_BISHOP_BLUR+2)
|
||||
S_NORMAL (BISH, 'A', 2, A_Chase , &States[S_BISHOP_WALK+1]),
|
||||
S_NORMAL (BISH, 'A', 2, A_BishopChase , &States[S_BISHOP_WALK+2]),
|
||||
S_NORMAL (BISH, 'A', 2, NULL , &States[S_BISHOP_WALK+3]),
|
||||
S_NORMAL (BISH, 'B', 2, A_BishopChase , &States[S_BISHOP_WALK+4]),
|
||||
S_NORMAL (BISH, 'B', 2, A_Chase , &States[S_BISHOP_WALK+5]),
|
||||
S_NORMAL (BISH, 'B', 2, A_BishopChase , &States[S_BISHOP_WALK+6]), // S_BISHOP_DECIDE
|
||||
|
||||
#define S_BISHOP_DECIDE (S_BISHOP_WALK+6)
|
||||
S_NORMAL (BISH, 'A', 1, A_BishopDecide , &States[S_BISHOP_WALK+0]),
|
||||
|
||||
#define S_BISHOP_ATK (S_BISHOP_DECIDE+1)
|
||||
S_NORMAL (BISH, 'A', 3, A_FaceTarget , &States[S_BISHOP_ATK+1]),
|
||||
S_BRIGHT (BISH, 'D', 3, A_FaceTarget , &States[S_BISHOP_ATK+2]),
|
||||
S_BRIGHT (BISH, 'E', 3, A_FaceTarget , &States[S_BISHOP_ATK+3]),
|
||||
S_BRIGHT (BISH, 'F', 3, A_BishopAttack , &States[S_BISHOP_ATK+4]),
|
||||
S_BRIGHT (BISH, 'F', 5, A_BishopAttack2 , &States[S_BISHOP_ATK+4]),
|
||||
|
||||
#define S_BISHOP_PAIN (S_BISHOP_ATK+5)
|
||||
S_NORMAL (BISH, 'C', 6, A_Pain , &States[S_BISHOP_PAIN+1]),
|
||||
S_NORMAL (BISH, 'C', 6, A_BishopPainBlur , &States[S_BISHOP_PAIN+2]),
|
||||
S_NORMAL (BISH, 'C', 6, A_BishopPainBlur , &States[S_BISHOP_PAIN+3]),
|
||||
S_NORMAL (BISH, 'C', 6, A_BishopPainBlur , &States[S_BISHOP_PAIN+4]),
|
||||
S_NORMAL (BISH, 'C', 0, NULL , &States[S_BISHOP_WALK+0]),
|
||||
|
||||
#define S_BISHOP_DEATH (S_BISHOP_PAIN+5)
|
||||
S_NORMAL (BISH, 'G', 6, NULL , &States[S_BISHOP_DEATH+1]),
|
||||
S_BRIGHT (BISH, 'H', 6, A_Scream , &States[S_BISHOP_DEATH+2]),
|
||||
S_BRIGHT (BISH, 'I', 5, A_NoBlocking , &States[S_BISHOP_DEATH+3]),
|
||||
S_BRIGHT (BISH, 'J', 5, A_Explode , &States[S_BISHOP_DEATH+4]),
|
||||
S_BRIGHT (BISH, 'K', 5, NULL , &States[S_BISHOP_DEATH+5]),
|
||||
S_BRIGHT (BISH, 'L', 4, NULL , &States[S_BISHOP_DEATH+6]),
|
||||
S_BRIGHT (BISH, 'M', 4, NULL , &States[S_BISHOP_DEATH+7]),
|
||||
S_NORMAL (BISH, 'N', 4, A_BishopPuff , &States[S_BISHOP_DEATH+8]),
|
||||
S_NORMAL (BISH, 'O', 4, A_QueueCorpse , &States[S_BISHOP_DEATH+9]),
|
||||
S_NORMAL (BISH, 'P', -1, NULL , NULL),
|
||||
|
||||
#define S_BISHOP_ICE (S_BISHOP_DEATH+10)
|
||||
S_NORMAL (BISH, 'X', 5, A_FreezeDeath , &States[S_BISHOP_ICE+1]),
|
||||
S_NORMAL (BISH, 'X', 1, A_FreezeDeathChunks , &States[S_BISHOP_ICE+1])
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (ABishop, Hexen, 114, 19)
|
||||
PROP_SpawnHealth (130)
|
||||
PROP_RadiusFixed (22)
|
||||
PROP_HeightFixed (65)
|
||||
PROP_SpeedFixed (10)
|
||||
PROP_PainChance (110)
|
||||
PROP_Flags (MF_SOLID|MF_SHOOTABLE|MF_COUNTKILL|MF_FLOAT|MF_NOGRAVITY|MF_NOBLOOD)
|
||||
PROP_Flags2 (MF2_PASSMOBJ|MF2_PUSHWALL|MF2_TELESTOMP)
|
||||
PROP_Flags3 (MF3_DONTOVERLAP)
|
||||
PROP_Flags4 (MF4_NOTARGETSWITCH)
|
||||
|
||||
PROP_SpawnState (S_BISHOP_LOOK)
|
||||
PROP_SeeState (S_BISHOP_WALK)
|
||||
PROP_PainState (S_BISHOP_PAIN)
|
||||
PROP_MissileState (S_BISHOP_ATK)
|
||||
PROP_DeathState (S_BISHOP_DEATH)
|
||||
PROP_IDeathState (S_BISHOP_ICE)
|
||||
|
||||
PROP_SeeSound ("BishopSight")
|
||||
PROP_AttackSound ("BishopAttack")
|
||||
PROP_PainSound ("BishopPain")
|
||||
PROP_DeathSound ("BishopDeath")
|
||||
PROP_ActiveSound ("BishopActiveSounds")
|
||||
PROP_Obituary("$OB_BISHOP")
|
||||
END_DEFAULTS
|
||||
|
||||
void ABishop::GetExplodeParms (int &damage, int &distance, bool &hurtSource)
|
||||
{ // Bishop radius death
|
||||
damage = 25 + (pr_boom() & 15);
|
||||
}
|
||||
|
||||
// Bishop puff --------------------------------------------------------------
|
||||
|
||||
class ABishopPuff : public AActor
|
||||
{
|
||||
DECLARE_ACTOR (ABishopPuff, AActor)
|
||||
};
|
||||
|
||||
FState ABishopPuff::States[] =
|
||||
{
|
||||
S_NORMAL (BISH, 'Q', 5, NULL , &States[1]),
|
||||
S_NORMAL (BISH, 'R', 5, NULL , &States[2]),
|
||||
S_NORMAL (BISH, 'S', 5, NULL , &States[3]),
|
||||
S_NORMAL (BISH, 'T', 5, NULL , &States[4]),
|
||||
S_NORMAL (BISH, 'U', 6, NULL , &States[5]),
|
||||
S_NORMAL (BISH, 'V', 6, NULL , &States[6]),
|
||||
S_NORMAL (BISH, 'W', 5, NULL , NULL)
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (ABishopPuff, Hexen, -1, 0)
|
||||
PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY)
|
||||
PROP_RenderStyle (STYLE_Translucent)
|
||||
PROP_Alpha (HX_SHADOW)
|
||||
|
||||
PROP_SpawnState (0)
|
||||
END_DEFAULTS
|
||||
|
||||
// Bishop blur --------------------------------------------------------------
|
||||
|
||||
class ABishopBlur : public AActor
|
||||
{
|
||||
DECLARE_ACTOR (ABishopBlur, AActor)
|
||||
};
|
||||
|
||||
FState ABishopBlur::States[] =
|
||||
{
|
||||
S_NORMAL (BISH, 'A', 16, NULL , &States[1]),
|
||||
S_NORMAL (BISH, 'A', 8, A_SetAltShadow , NULL)
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (ABishopBlur, Hexen, -1, 0)
|
||||
PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY)
|
||||
PROP_RenderStyle (STYLE_Translucent)
|
||||
PROP_Alpha (HX_SHADOW)
|
||||
|
||||
PROP_SpawnState (0)
|
||||
END_DEFAULTS
|
||||
|
||||
// Bishop pain blur ---------------------------------------------------------
|
||||
|
||||
class ABishopPainBlur : public AActor
|
||||
{
|
||||
DECLARE_ACTOR (ABishopPainBlur, AActor)
|
||||
};
|
||||
|
||||
FState ABishopPainBlur::States[] =
|
||||
{
|
||||
S_NORMAL (BISH, 'C', 8, NULL , NULL)
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (ABishopPainBlur, Hexen, -1, 0)
|
||||
PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY)
|
||||
PROP_RenderStyle (STYLE_Translucent)
|
||||
PROP_Alpha (HX_SHADOW)
|
||||
|
||||
PROP_SpawnState (0)
|
||||
END_DEFAULTS
|
||||
|
||||
// Bishop FX ----------------------------------------------------------------
|
||||
|
||||
class ABishopFX : public AActor
|
||||
{
|
||||
DECLARE_ACTOR (ABishopFX, AActor)
|
||||
public:
|
||||
int DoSpecialDamage (AActor *target, int damage);
|
||||
};
|
||||
|
||||
FState ABishopFX::States[] =
|
||||
{
|
||||
#define S_BISHFX1 0
|
||||
S_BRIGHT (BPFX, 'A', 1, A_BishopMissileWeave , &States[S_BISHFX1+1]),
|
||||
S_BRIGHT (BPFX, 'B', 1, A_BishopMissileWeave , &States[S_BISHFX1+2]),
|
||||
S_BRIGHT (BPFX, 'A', 1, A_BishopMissileWeave , &States[S_BISHFX1+3]),
|
||||
S_BRIGHT (BPFX, 'B', 1, A_BishopMissileWeave , &States[S_BISHFX1+4]),
|
||||
S_BRIGHT (BPFX, 'B', 0, A_BishopMissileSeek , &States[S_BISHFX1+0]),
|
||||
|
||||
#define S_BISHFXI1 (S_BISHFX1+5)
|
||||
S_BRIGHT (BPFX, 'C', 4, NULL , &States[S_BISHFXI1+1]),
|
||||
S_BRIGHT (BPFX, 'D', 4, NULL , &States[S_BISHFXI1+2]),
|
||||
S_BRIGHT (BPFX, 'E', 4, NULL , &States[S_BISHFXI1+3]),
|
||||
S_BRIGHT (BPFX, 'F', 4, NULL , &States[S_BISHFXI1+4]),
|
||||
S_BRIGHT (BPFX, 'G', 3, NULL , &States[S_BISHFXI1+5]),
|
||||
S_BRIGHT (BPFX, 'H', 3, NULL , NULL)
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (ABishopFX, Hexen, -1, 0)
|
||||
PROP_RadiusFixed (10)
|
||||
PROP_HeightFixed (6)
|
||||
PROP_SpeedFixed (10)
|
||||
PROP_Damage (1)
|
||||
PROP_Flags (MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY)
|
||||
PROP_Flags2 (MF2_NOTELEPORT|MF2_SEEKERMISSILE)
|
||||
PROP_RenderStyle (STYLE_Add)
|
||||
|
||||
PROP_SpawnState (S_BISHFX1)
|
||||
PROP_DeathState (S_BISHFXI1)
|
||||
|
||||
PROP_DeathSound ("BishopMissileExplode")
|
||||
END_DEFAULTS
|
||||
|
||||
int ABishopFX::DoSpecialDamage (AActor *target, int damage)
|
||||
{ // Bishops are just too nasty
|
||||
return damage >> 1;
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
//
|
||||
// A_BishopAttack
|
||||
|
@ -264,7 +54,7 @@ void A_BishopAttack2 (AActor *actor)
|
|||
actor->SetState (actor->SeeState);
|
||||
return;
|
||||
}
|
||||
mo = P_SpawnMissile (actor, actor->target, RUNTIME_CLASS(ABishopFX));
|
||||
mo = P_SpawnMissile (actor, actor->target, PClass::FindClass("BishopFX"));
|
||||
if (mo != NULL)
|
||||
{
|
||||
mo->tracer = actor->target;
|
||||
|
@ -302,17 +92,6 @@ void A_BishopMissileWeave (AActor *actor)
|
|||
actor->special2 = weaveZ + (weaveXY<<16);
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
//
|
||||
// A_BishopMissileSeek
|
||||
//
|
||||
//============================================================================
|
||||
|
||||
void A_BishopMissileSeek (AActor *actor)
|
||||
{
|
||||
P_SeekerMissile (actor, ANGLE_1*2, ANGLE_1*3);
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
//
|
||||
// A_BishopDecide
|
||||
|
@ -327,7 +106,7 @@ void A_BishopDecide (AActor *actor)
|
|||
}
|
||||
else
|
||||
{
|
||||
actor->SetState (&ABishop::States[S_BISHOP_BLUR]);
|
||||
actor->SetState (actor->FindState ("Blur"));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -378,7 +157,7 @@ void A_BishopSpawnBlur (AActor *actor)
|
|||
actor->SetState (actor->MissileState);
|
||||
}
|
||||
}
|
||||
mo = Spawn<ABishopBlur> (actor->x, actor->y, actor->z, ALLOW_REPLACE);
|
||||
mo = Spawn ("BishopBlur", actor->x, actor->y, actor->z, ALLOW_REPLACE);
|
||||
if (mo)
|
||||
{
|
||||
mo->angle = actor->angle;
|
||||
|
@ -408,7 +187,7 @@ void A_BishopPuff (AActor *actor)
|
|||
{
|
||||
AActor *mo;
|
||||
|
||||
mo = Spawn<ABishopPuff> (actor->x, actor->y, actor->z + 40*FRACUNIT, ALLOW_REPLACE);
|
||||
mo = Spawn ("BishopPuff", actor->x, actor->y, actor->z + 40*FRACUNIT, ALLOW_REPLACE);
|
||||
if (mo)
|
||||
{
|
||||
mo->momz = FRACUNIT/2;
|
||||
|
@ -427,27 +206,15 @@ void A_BishopPainBlur (AActor *actor)
|
|||
|
||||
if (pr_pain() < 64)
|
||||
{
|
||||
actor->SetState (&ABishop::States[S_BISHOP_BLUR]);
|
||||
actor->SetState (actor->FindState ("Blur"));
|
||||
return;
|
||||
}
|
||||
fixed_t x = actor->x + (pr_pain.Random2()<<12);
|
||||
fixed_t y = actor->y + (pr_pain.Random2()<<12);
|
||||
fixed_t z = actor->z + (pr_pain.Random2()<<11);
|
||||
mo = Spawn<ABishopPainBlur> (x, y, z, ALLOW_REPLACE);
|
||||
mo = Spawn ("BishopPainBlur", x, y, z, ALLOW_REPLACE);
|
||||
if (mo)
|
||||
{
|
||||
mo->angle = actor->angle;
|
||||
}
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
// A_SetAltShadow
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
void A_SetAltShadow (AActor *actor)
|
||||
{
|
||||
actor->alpha = HX_ALTSHADOW;
|
||||
actor->RenderStyle = STYLE_Translucent;
|
||||
}
|
||||
|
|
|
@ -14,64 +14,14 @@
|
|||
|
||||
class AArtiBlastRadius : public AInventory
|
||||
{
|
||||
DECLARE_ACTOR (AArtiBlastRadius, AInventory)
|
||||
DECLARE_CLASS (AArtiBlastRadius, AInventory)
|
||||
public:
|
||||
bool Use (bool pickup);
|
||||
protected:
|
||||
void BlastActor (AActor *victim, fixed_t strength);
|
||||
};
|
||||
FState AArtiBlastRadius::States[] =
|
||||
{
|
||||
S_BRIGHT (BLST, 'A', 4, NULL , &States[1]),
|
||||
S_BRIGHT (BLST, 'B', 4, NULL , &States[2]),
|
||||
S_BRIGHT (BLST, 'C', 4, NULL , &States[3]),
|
||||
S_BRIGHT (BLST, 'D', 4, NULL , &States[4]),
|
||||
S_BRIGHT (BLST, 'E', 4, NULL , &States[5]),
|
||||
S_BRIGHT (BLST, 'F', 4, NULL , &States[6]),
|
||||
S_BRIGHT (BLST, 'G', 4, NULL , &States[7]),
|
||||
S_BRIGHT (BLST, 'H', 4, NULL , &States[0]),
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (AArtiBlastRadius, Hexen, 10110, 74)
|
||||
PROP_Flags (MF_SPECIAL)
|
||||
PROP_Flags2 (MF2_FLOATBOB)
|
||||
PROP_SpawnState (0)
|
||||
PROP_Inventory_DefMaxAmount
|
||||
PROP_Inventory_PickupFlash (1)
|
||||
PROP_Inventory_FlagsSet (IF_INVBAR|IF_FANCYPICKUPSOUND)
|
||||
PROP_Inventory_Icon ("ARTIBLST")
|
||||
PROP_Inventory_PickupSound ("misc/p_pkup")
|
||||
PROP_Inventory_PickupMessage("$TXT_ARTIBLASTRADIUS")
|
||||
END_DEFAULTS
|
||||
|
||||
// Blast Effect -------------------------------------------------------------
|
||||
|
||||
class ABlastEffect : public AActor
|
||||
{
|
||||
DECLARE_ACTOR (ABlastEffect, AActor)
|
||||
};
|
||||
|
||||
FState ABlastEffect::States[] =
|
||||
{
|
||||
S_NORMAL (RADE, 'A', 4, NULL , &States[1]),
|
||||
S_NORMAL (RADE, 'B', 4, NULL , &States[2]),
|
||||
S_NORMAL (RADE, 'C', 4, NULL , &States[3]),
|
||||
S_NORMAL (RADE, 'D', 4, NULL , &States[4]),
|
||||
S_NORMAL (RADE, 'E', 4, NULL , &States[5]),
|
||||
S_NORMAL (RADE, 'F', 4, NULL , &States[6]),
|
||||
S_NORMAL (RADE, 'G', 4, NULL , &States[7]),
|
||||
S_NORMAL (RADE, 'H', 4, NULL , &States[8]),
|
||||
S_NORMAL (RADE, 'I', 4, NULL , NULL)
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (ABlastEffect, Any, -1, 0)
|
||||
PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP)
|
||||
PROP_Flags2 (MF2_NOTELEPORT)
|
||||
PROP_RenderStyle (STYLE_Translucent)
|
||||
PROP_Alpha (TRANSLUC66)
|
||||
|
||||
PROP_SpawnState (0)
|
||||
END_DEFAULTS
|
||||
IMPLEMENT_CLASS (AArtiBlastRadius)
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
|
@ -182,7 +132,7 @@ void AArtiBlastRadius::BlastActor (AActor *victim, fixed_t strength)
|
|||
x = victim->x + FixedMul (victim->radius+FRACUNIT, finecosine[ang]);
|
||||
y = victim->y + FixedMul (victim->radius+FRACUNIT, finesine[ang]);
|
||||
z = victim->z - victim->floorclip + (victim->height>>1);
|
||||
mo = Spawn<ABlastEffect> (x, y, z, ALLOW_REPLACE);
|
||||
mo = Spawn ("BlastEffect", x, y, z, ALLOW_REPLACE);
|
||||
if (mo)
|
||||
{
|
||||
mo->momx = victim->momx;
|
||||
|
|
|
@ -10,35 +10,12 @@
|
|||
|
||||
class AArtiBoostArmor : public AInventory
|
||||
{
|
||||
DECLARE_ACTOR (AArtiBoostArmor, AInventory)
|
||||
DECLARE_CLASS (AArtiBoostArmor, AInventory)
|
||||
public:
|
||||
bool Use (bool pickup);
|
||||
};
|
||||
|
||||
FState AArtiBoostArmor::States[] =
|
||||
{
|
||||
#define S_ARTI_ARMOR1 0
|
||||
S_BRIGHT (BRAC, 'A', 4, NULL , &States[1]),
|
||||
S_BRIGHT (BRAC, 'B', 4, NULL , &States[2]),
|
||||
S_BRIGHT (BRAC, 'C', 4, NULL , &States[3]),
|
||||
S_BRIGHT (BRAC, 'D', 4, NULL , &States[4]),
|
||||
S_BRIGHT (BRAC, 'E', 4, NULL , &States[5]),
|
||||
S_BRIGHT (BRAC, 'F', 4, NULL , &States[6]),
|
||||
S_BRIGHT (BRAC, 'G', 4, NULL , &States[7]),
|
||||
S_BRIGHT (BRAC, 'H', 4, NULL , &States[0]),
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (AArtiBoostArmor, Hexen, 8041, 22)
|
||||
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 ("ARTIBRAC")
|
||||
PROP_Inventory_PickupSound ("misc/p_pkup")
|
||||
PROP_Inventory_PickupMessage("$TXT_ARTIBOOSTARMOR")
|
||||
END_DEFAULTS
|
||||
IMPLEMENT_CLASS (AArtiBoostArmor)
|
||||
|
||||
bool AArtiBoostArmor::Use (bool pickup)
|
||||
{
|
||||
|
|
|
@ -22,270 +22,17 @@ void A_CFlameRotate (AActor *);
|
|||
void A_CFlamePuff (AActor *);
|
||||
void A_CFlameMissile (AActor *);
|
||||
|
||||
// The Cleric's Flame Strike ------------------------------------------------
|
||||
|
||||
class ACWeapFlame : public AClericWeapon
|
||||
{
|
||||
DECLARE_ACTOR (ACWeapFlame, AClericWeapon)
|
||||
};
|
||||
|
||||
FState ACWeapFlame::States[] =
|
||||
{
|
||||
#define S_CFLAME1 0
|
||||
S_BRIGHT (WCFM, 'A', 4, NULL , &States[S_CFLAME1+1]),
|
||||
S_BRIGHT (WCFM, 'B', 4, NULL , &States[S_CFLAME1+2]),
|
||||
S_BRIGHT (WCFM, 'C', 4, NULL , &States[S_CFLAME1+3]),
|
||||
S_BRIGHT (WCFM, 'D', 4, NULL , &States[S_CFLAME1+4]),
|
||||
S_BRIGHT (WCFM, 'E', 4, NULL , &States[S_CFLAME1+5]),
|
||||
S_BRIGHT (WCFM, 'F', 4, NULL , &States[S_CFLAME1+6]),
|
||||
S_BRIGHT (WCFM, 'G', 4, NULL , &States[S_CFLAME1+7]),
|
||||
S_BRIGHT (WCFM, 'H', 4, NULL , &States[S_CFLAME1]),
|
||||
|
||||
#define S_CFLAMEREADY (S_CFLAME1+8)
|
||||
S_NORMAL (CFLM, 'A', 1, A_WeaponReady , &States[S_CFLAMEREADY+1]),
|
||||
S_NORMAL (CFLM, 'A', 1, A_WeaponReady , &States[S_CFLAMEREADY+2]),
|
||||
S_NORMAL (CFLM, 'A', 1, A_WeaponReady , &States[S_CFLAMEREADY+3]),
|
||||
S_NORMAL (CFLM, 'A', 1, A_WeaponReady , &States[S_CFLAMEREADY+4]),
|
||||
S_NORMAL (CFLM, 'B', 1, A_WeaponReady , &States[S_CFLAMEREADY+5]),
|
||||
S_NORMAL (CFLM, 'B', 1, A_WeaponReady , &States[S_CFLAMEREADY+6]),
|
||||
S_NORMAL (CFLM, 'B', 1, A_WeaponReady , &States[S_CFLAMEREADY+7]),
|
||||
S_NORMAL (CFLM, 'B', 1, A_WeaponReady , &States[S_CFLAMEREADY+8]),
|
||||
S_NORMAL (CFLM, 'C', 1, A_WeaponReady , &States[S_CFLAMEREADY+9]),
|
||||
S_NORMAL (CFLM, 'C', 1, A_WeaponReady , &States[S_CFLAMEREADY+10]),
|
||||
S_NORMAL (CFLM, 'C', 1, A_WeaponReady , &States[S_CFLAMEREADY+11]),
|
||||
S_NORMAL (CFLM, 'C', 1, A_WeaponReady , &States[S_CFLAMEREADY]),
|
||||
|
||||
#define S_CFLAMEDOWN (S_CFLAMEREADY+12)
|
||||
S_NORMAL (CFLM, 'A', 1, A_Lower , &States[S_CFLAMEDOWN]),
|
||||
|
||||
#define S_CFLAMEUP (S_CFLAMEDOWN+1)
|
||||
S_NORMAL (CFLM, 'A', 1, A_Raise , &States[S_CFLAMEUP]),
|
||||
|
||||
#define S_CFLAMEATK (S_CFLAMEUP+1)
|
||||
S_NORMAL2 (CFLM, 'A', 2, NULL , &States[S_CFLAMEATK+1], 0, 40),
|
||||
S_NORMAL2 (CFLM, 'D', 2, NULL , &States[S_CFLAMEATK+2], 0, 50),
|
||||
S_NORMAL2 (CFLM, 'D', 2, NULL , &States[S_CFLAMEATK+3], 0, 36),
|
||||
S_BRIGHT (CFLM, 'E', 4, NULL , &States[S_CFLAMEATK+4]),
|
||||
S_BRIGHT (CFLM, 'F', 4, A_CFlameAttack , &States[S_CFLAMEATK+5]),
|
||||
S_BRIGHT (CFLM, 'E', 4, NULL , &States[S_CFLAMEATK+6]),
|
||||
S_NORMAL2 (CFLM, 'G', 2, NULL , &States[S_CFLAMEATK+7], 0, 40),
|
||||
S_NORMAL (CFLM, 'G', 2, NULL , &States[S_CFLAMEREADY]),
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (ACWeapFlame, Hexen, 8009, 0)
|
||||
PROP_Flags (MF_SPECIAL|MF_NOGRAVITY)
|
||||
PROP_SpawnState (S_CFLAME1)
|
||||
|
||||
PROP_Weapon_SelectionOrder (1000)
|
||||
PROP_Weapon_AmmoUse1 (4)
|
||||
PROP_Weapon_AmmoGive1 (25)
|
||||
PROP_Weapon_UpState (S_CFLAMEUP)
|
||||
PROP_Weapon_DownState (S_CFLAMEDOWN)
|
||||
PROP_Weapon_ReadyState (S_CFLAMEREADY)
|
||||
PROP_Weapon_AtkState (S_CFLAMEATK)
|
||||
PROP_Weapon_Kickback (150)
|
||||
PROP_Weapon_YAdjust (10)
|
||||
PROP_Weapon_MoveCombatDist (27000000)
|
||||
PROP_Weapon_AmmoType1 ("Mana2")
|
||||
PROP_Weapon_ProjectileType ("CFlameMissile")
|
||||
PROP_Inventory_PickupMessage("$TXT_WEAPON_C3")
|
||||
END_DEFAULTS
|
||||
|
||||
// Floor Flame --------------------------------------------------------------
|
||||
|
||||
class ACFlameFloor : public AActor
|
||||
{
|
||||
DECLARE_ACTOR (ACFlameFloor, AActor)
|
||||
};
|
||||
|
||||
FState ACFlameFloor::States[] =
|
||||
{
|
||||
S_BRIGHT (CFFX, 'N', 5, NULL , &States[1]),
|
||||
S_BRIGHT (CFFX, 'O', 4, NULL , &States[2]),
|
||||
S_BRIGHT (CFFX, 'P', 3, NULL , NULL),
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (ACFlameFloor, Hexen, -1, 0)
|
||||
PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY)
|
||||
PROP_RenderStyle (STYLE_Add)
|
||||
PROP_SpawnState (0)
|
||||
END_DEFAULTS
|
||||
|
||||
// Flame Puff ---------------------------------------------------------------
|
||||
|
||||
class AFlamePuff : public AActor
|
||||
{
|
||||
DECLARE_ACTOR (AFlamePuff, AActor)
|
||||
};
|
||||
|
||||
FState AFlamePuff::States[] =
|
||||
{
|
||||
S_BRIGHT (CFFX, 'A', 3, NULL , &States[1]),
|
||||
S_BRIGHT (CFFX, 'B', 3, NULL , &States[2]),
|
||||
S_BRIGHT (CFFX, 'C', 3, NULL , &States[3]),
|
||||
S_BRIGHT (CFFX, 'D', 4, NULL , &States[4]),
|
||||
S_BRIGHT (CFFX, 'E', 3, NULL , &States[5]),
|
||||
S_BRIGHT (CFFX, 'F', 4, NULL , &States[6]),
|
||||
S_BRIGHT (CFFX, 'G', 3, NULL , &States[7]),
|
||||
S_BRIGHT (CFFX, 'H', 4, NULL , &States[8]),
|
||||
S_BRIGHT (CFFX, 'I', 3, NULL , &States[9]),
|
||||
S_BRIGHT (CFFX, 'J', 4, NULL , &States[10]),
|
||||
S_BRIGHT (CFFX, 'K', 3, NULL , &States[11]),
|
||||
S_BRIGHT (CFFX, 'L', 4, NULL , &States[12]),
|
||||
S_BRIGHT (CFFX, 'M', 3, NULL , NULL),
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (AFlamePuff, Hexen, -1, 0)
|
||||
PROP_RadiusFixed (1)
|
||||
PROP_HeightFixed (1)
|
||||
PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY)
|
||||
PROP_RenderStyle (STYLE_Add)
|
||||
|
||||
PROP_SpawnState (0)
|
||||
|
||||
PROP_SeeSound ("ClericFlameExplode")
|
||||
PROP_AttackSound ("ClericFlameExplode")
|
||||
END_DEFAULTS
|
||||
|
||||
// Flame Puff 2 -------------------------------------------------------------
|
||||
|
||||
class AFlamePuff2 : public AActor
|
||||
{
|
||||
DECLARE_ACTOR (AFlamePuff2, AActor)
|
||||
};
|
||||
|
||||
FState AFlamePuff2::States[] =
|
||||
{
|
||||
S_BRIGHT (CFFX, 'A', 3, NULL , &States[1]),
|
||||
S_BRIGHT (CFFX, 'B', 3, NULL , &States[2]),
|
||||
S_BRIGHT (CFFX, 'C', 3, NULL , &States[3]),
|
||||
S_BRIGHT (CFFX, 'D', 4, NULL , &States[4]),
|
||||
S_BRIGHT (CFFX, 'E', 3, NULL , &States[5]),
|
||||
S_BRIGHT (CFFX, 'F', 4, NULL , &States[6]),
|
||||
S_BRIGHT (CFFX, 'G', 3, NULL , &States[7]),
|
||||
S_BRIGHT (CFFX, 'H', 4, NULL , &States[8]),
|
||||
S_BRIGHT (CFFX, 'I', 3, NULL , &States[9]),
|
||||
S_BRIGHT (CFFX, 'C', 3, NULL , &States[10]),
|
||||
S_BRIGHT (CFFX, 'D', 4, NULL , &States[11]),
|
||||
S_BRIGHT (CFFX, 'E', 3, NULL , &States[12]),
|
||||
S_BRIGHT (CFFX, 'F', 4, NULL , &States[13]),
|
||||
S_BRIGHT (CFFX, 'G', 3, NULL , &States[14]),
|
||||
S_BRIGHT (CFFX, 'H', 4, NULL , &States[15]),
|
||||
S_BRIGHT (CFFX, 'I', 3, NULL , &States[16]),
|
||||
S_BRIGHT (CFFX, 'J', 4, NULL , &States[17]),
|
||||
S_BRIGHT (CFFX, 'K', 3, NULL , &States[18]),
|
||||
S_BRIGHT (CFFX, 'L', 4, NULL , &States[19]),
|
||||
S_BRIGHT (CFFX, 'M', 3, NULL , NULL),
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (AFlamePuff2, Hexen, -1, 0)
|
||||
PROP_RadiusFixed (1)
|
||||
PROP_HeightFixed (1)
|
||||
PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY)
|
||||
PROP_RenderStyle (STYLE_Add)
|
||||
|
||||
PROP_SpawnState (0)
|
||||
|
||||
PROP_SeeSound ("ClericFlameExplode")
|
||||
PROP_AttackSound ("ClericFlameExplode")
|
||||
END_DEFAULTS
|
||||
|
||||
// Circle Flame -------------------------------------------------------------
|
||||
|
||||
class ACircleFlame : public AActor
|
||||
{
|
||||
DECLARE_ACTOR (ACircleFlame, AActor)
|
||||
public:
|
||||
void GetExplodeParms (int &damage, int &dist, bool &hurtSource);
|
||||
};
|
||||
|
||||
FState ACircleFlame::States[] =
|
||||
{
|
||||
#define S_CIRCLE_FLAME1 0
|
||||
S_BRIGHT (CFCF, 'A', 4, NULL , &States[S_CIRCLE_FLAME1+1]),
|
||||
S_BRIGHT (CFCF, 'B', 2, A_CFlameRotate , &States[S_CIRCLE_FLAME1+2]),
|
||||
S_BRIGHT (CFCF, 'C', 2, NULL , &States[S_CIRCLE_FLAME1+3]),
|
||||
S_BRIGHT (CFCF, 'D', 1, NULL , &States[S_CIRCLE_FLAME1+4]),
|
||||
S_BRIGHT (CFCF, 'E', 2, NULL , &States[S_CIRCLE_FLAME1+5]),
|
||||
S_BRIGHT (CFCF, 'F', 2, A_CFlameRotate , &States[S_CIRCLE_FLAME1+6]),
|
||||
S_BRIGHT (CFCF, 'G', 1, NULL , &States[S_CIRCLE_FLAME1+7]),
|
||||
S_BRIGHT (CFCF, 'H', 2, NULL , &States[S_CIRCLE_FLAME1+8]),
|
||||
S_BRIGHT (CFCF, 'I', 2, NULL , &States[S_CIRCLE_FLAME1+9]),
|
||||
S_BRIGHT (CFCF, 'J', 1, A_CFlameRotate , &States[S_CIRCLE_FLAME1+10]),
|
||||
S_BRIGHT (CFCF, 'K', 2, NULL , &States[S_CIRCLE_FLAME1+11]),
|
||||
S_BRIGHT (CFCF, 'L', 3, NULL , &States[S_CIRCLE_FLAME1+12]),
|
||||
S_BRIGHT (CFCF, 'M', 3, NULL , &States[S_CIRCLE_FLAME1+13]),
|
||||
S_BRIGHT (CFCF, 'N', 2, A_CFlameRotate , &States[S_CIRCLE_FLAME1+14]),
|
||||
S_BRIGHT (CFCF, 'O', 3, NULL , &States[S_CIRCLE_FLAME1+15]),
|
||||
S_BRIGHT (CFCF, 'P', 2, NULL , NULL),
|
||||
|
||||
#define S_CIRCLE_FLAME_X1 (S_CIRCLE_FLAME1+16)
|
||||
S_BRIGHT (CFCF, 'Q', 3, NULL , &States[S_CIRCLE_FLAME_X1+1]),
|
||||
S_BRIGHT (CFCF, 'R', 3, NULL , &States[S_CIRCLE_FLAME_X1+2]),
|
||||
S_BRIGHT (CFCF, 'S', 3, A_Explode , &States[S_CIRCLE_FLAME_X1+3]),
|
||||
S_BRIGHT (CFCF, 'T', 3, NULL , &States[S_CIRCLE_FLAME_X1+4]),
|
||||
S_BRIGHT (CFCF, 'U', 3, NULL , &States[S_CIRCLE_FLAME_X1+5]),
|
||||
S_BRIGHT (CFCF, 'V', 3, NULL , &States[S_CIRCLE_FLAME_X1+6]),
|
||||
S_BRIGHT (CFCF, 'W', 3, NULL , &States[S_CIRCLE_FLAME_X1+7]),
|
||||
S_BRIGHT (CFCF, 'X', 3, NULL , &States[S_CIRCLE_FLAME_X1+8]),
|
||||
S_BRIGHT (CFCF, 'Y', 3, NULL , &States[S_CIRCLE_FLAME_X1+9]),
|
||||
S_BRIGHT (CFCF, 'Z', 3, NULL , NULL),
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (ACircleFlame, Hexen, -1, 0)
|
||||
PROP_RadiusFixed (6)
|
||||
PROP_Damage (2)
|
||||
PROP_DamageType (NAME_Fire)
|
||||
PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY|MF_DROPOFF|MF_MISSILE)
|
||||
PROP_Flags2 (MF2_NOTELEPORT)
|
||||
PROP_RenderStyle (STYLE_Add)
|
||||
|
||||
PROP_SpawnState (S_CIRCLE_FLAME1)
|
||||
PROP_DeathState (S_CIRCLE_FLAME_X1)
|
||||
|
||||
PROP_DeathSound ("ClericFlameCircle")
|
||||
END_DEFAULTS
|
||||
|
||||
void ACircleFlame::GetExplodeParms (int &damage, int &dist, bool &hurtSource)
|
||||
{
|
||||
damage = 20;
|
||||
hurtSource = false;
|
||||
}
|
||||
|
||||
// Flame Missile ------------------------------------------------------------
|
||||
|
||||
class ACFlameMissile : public AActor
|
||||
{
|
||||
DECLARE_ACTOR (ACFlameMissile, AActor)
|
||||
DECLARE_CLASS (ACFlameMissile, AActor)
|
||||
public:
|
||||
void BeginPlay ();
|
||||
void Tick ();
|
||||
};
|
||||
|
||||
FState ACFlameMissile::States[] =
|
||||
{
|
||||
#define S_CFLAME_MISSILE1 0
|
||||
S_BRIGHT (CFFX, 'A', 4, NULL , &States[S_CFLAME_MISSILE1+1]),
|
||||
S_NORMAL (CFFX, 'A', 1, A_CFlamePuff , &AFlamePuff::States[0]),
|
||||
|
||||
#define S_CFLAME_MISSILE_X (S_CFLAME_MISSILE1+2)
|
||||
S_BRIGHT (CFFX, 'A', 1, A_CFlameMissile , &AFlamePuff::States[0]),
|
||||
};
|
||||
|
||||
IMPLEMENT_ACTOR (ACFlameMissile, Hexen, -1, 0)
|
||||
PROP_SpeedFixed (200)
|
||||
PROP_RadiusFixed (14)
|
||||
PROP_HeightFixed (8)
|
||||
PROP_Damage (8)
|
||||
PROP_DamageType (NAME_Fire)
|
||||
PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY|MF_DROPOFF|MF_MISSILE)
|
||||
PROP_Flags2 (MF2_NOTELEPORT|MF2_IMPACT|MF2_PCROSS)
|
||||
PROP_RenderFlags (RF_INVISIBLE)
|
||||
PROP_RenderStyle (STYLE_Add)
|
||||
|
||||
PROP_SpawnState (S_CFLAME_MISSILE1)
|
||||
PROP_DeathState (S_CFLAME_MISSILE_X)
|
||||
END_DEFAULTS
|
||||
IMPLEMENT_CLASS (ACFlameMissile)
|
||||
|
||||
void ACFlameMissile::BeginPlay ()
|
||||
{
|
||||
|
@ -347,7 +94,7 @@ void ACFlameMissile::Tick ()
|
|||
{
|
||||
newz = floorz;
|
||||
}
|
||||
mo = Spawn<ACFlameFloor> (x, y, newz, ALLOW_REPLACE);
|
||||
mo = Spawn ("CFlameFloor", x, y, newz, ALLOW_REPLACE);
|
||||
if (mo)
|
||||
{
|
||||
mo->angle = angle;
|
||||
|
@ -432,7 +179,7 @@ void A_CFlameMissile (AActor *actor)
|
|||
{
|
||||
an = (i*ANG45)>>ANGLETOFINESHIFT;
|
||||
an90 = (i*ANG45+ANG90)>>ANGLETOFINESHIFT;
|
||||
mo = Spawn<ACircleFlame> (BlockingMobj->x+FixedMul(dist, finecosine[an]),
|
||||
mo = Spawn ("CircleFlame", BlockingMobj->x+FixedMul(dist, finecosine[an]),
|
||||
BlockingMobj->y+FixedMul(dist, finesine[an]),
|
||||
BlockingMobj->z+5*FRACUNIT, ALLOW_REPLACE);
|
||||
if (mo)
|
||||
|
@ -443,7 +190,7 @@ void A_CFlameMissile (AActor *actor)
|
|||
mo->momy = mo->special2 = FixedMul(FLAMESPEED, finesine[an]);
|
||||
mo->tics -= pr_missile()&3;
|
||||
}
|
||||
mo = Spawn<ACircleFlame> (BlockingMobj->x-FixedMul(dist, finecosine[an]),
|
||||
mo = Spawn ("CircleFlame", BlockingMobj->x-FixedMul(dist, finecosine[an]),
|
||||
BlockingMobj->y-FixedMul(dist, finesine[an]),
|
||||
BlockingMobj->z+5*FRACUNIT, ALLOW_REPLACE);
|
||||
if(mo)
|
||||
|
@ -455,7 +202,7 @@ void A_CFlameMissile (AActor *actor)
|
|||
mo->tics -= pr_missile()&3;
|
||||
}
|
||||
}
|
||||
actor->SetState (&AFlamePuff2::States[0]);
|
||||
actor->SetState (actor->SpawnState);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1284,7 +1284,7 @@ void A_SorcFX2Orbit (AActor *actor)
|
|||
void A_SpawnBishop(AActor *actor)
|
||||
{
|
||||
AActor *mo;
|
||||
mo = Spawn<ABishop> (actor->x, actor->y, actor->z, ALLOW_REPLACE);
|
||||
mo = Spawn("Bishop", actor->x, actor->y, actor->z, ALLOW_REPLACE);
|
||||
if (mo)
|
||||
{
|
||||
if (!P_TestMobjLocation(mo))
|
||||
|
|
|
@ -19,13 +19,6 @@ public:
|
|||
void BeginPlay ();
|
||||
};
|
||||
|
||||
class ABishop : public AActor
|
||||
{
|
||||
DECLARE_ACTOR (ABishop, AActor)
|
||||
public:
|
||||
void GetExplodeParms (int &damage, int &distance, bool &hurtSource);
|
||||
};
|
||||
|
||||
class AHeresiarch : public AActor
|
||||
{
|
||||
DECLARE_ACTOR (AHeresiarch, AActor)
|
||||
|
|
48
wadsrc/static/actors/hexen/bats.txt
Normal file
48
wadsrc/static/actors/hexen/bats.txt
Normal file
|
@ -0,0 +1,48 @@
|
|||
|
||||
// Bat Spawner --------------------------------------------------------------
|
||||
|
||||
ACTOR BatSpawner : SwitchableDecoration 10225
|
||||
{
|
||||
Game Hexen
|
||||
+NOBLOCKMAP +NOSECTOR +NOGRAVITY
|
||||
RenderStyle None
|
||||
|
||||
action native A_BatSpawnInit();
|
||||
action native A_BatSpawn();
|
||||
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
Active:
|
||||
TNT1 A 2
|
||||
TNT1 A 2 A_BatSpawnInit
|
||||
TNT1 A 2 A_BatSpawn
|
||||
Wait
|
||||
Inactive:
|
||||
TNT1 A -1
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Bat ----------------------------------------------------------------------
|
||||
|
||||
ACTOR Bat
|
||||
{
|
||||
Speed 5
|
||||
Radius 3
|
||||
Height 3
|
||||
+NOBLOCKMAP +NOGRAVITY +MISSILE
|
||||
+NOTELEPORT +CANPASS
|
||||
|
||||
action native A_BatMove();
|
||||
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
ABAT ABC 2 A_BatMove
|
||||
Loop
|
||||
Death:
|
||||
ABAT A 2
|
||||
Stop
|
||||
}
|
||||
}
|
156
wadsrc/static/actors/hexen/bishop.txt
Normal file
156
wadsrc/static/actors/hexen/bishop.txt
Normal file
|
@ -0,0 +1,156 @@
|
|||
|
||||
// Bishop -------------------------------------------------------------------
|
||||
|
||||
ACTOR Bishop 114
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 19
|
||||
Health 130
|
||||
Radius 22
|
||||
Height 65
|
||||
Speed 10
|
||||
PainChance 110
|
||||
Monster
|
||||
+FLOAT +NOGRAVITY +NOBLOOD
|
||||
+TELESTOMP
|
||||
+DONTOVERLAP
|
||||
+NOTARGETSWITCH
|
||||
SeeSound "BishopSight"
|
||||
AttackSound "BishopAttack"
|
||||
PainSound "BishopPain"
|
||||
DeathSound "BishopDeath"
|
||||
ActiveSound "BishopActiveSounds"
|
||||
Obituary"$OB_BISHOP"
|
||||
|
||||
action native A_BishopChase();
|
||||
action native A_BishopDecide();
|
||||
action native A_BishopDoBlur();
|
||||
action native A_BishopSpawnBlur();
|
||||
action native A_BishopPainBlur();
|
||||
action native A_BishopAttack();
|
||||
action native A_BishopAttack2();
|
||||
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
BISH A 10 A_Look
|
||||
Loop
|
||||
See:
|
||||
BISH A 2 A_Chase
|
||||
BISH A 2 A_BishopChase
|
||||
BISH A 2
|
||||
BISH B 2 A_BishopChase
|
||||
BISH B 2 A_Chase
|
||||
BISH B 2 A_BishopChase
|
||||
BISH A 1 A_BishopDecide
|
||||
Loop
|
||||
Blur:
|
||||
BISH A 2 A_BishopDoBlur
|
||||
BISH A 4 A_BishopSpawnBlur
|
||||
Wait
|
||||
Pain:
|
||||
BISH C 6 A_Pain
|
||||
BISH CCC 6 A_BishopPainBlur
|
||||
BISH C 0
|
||||
Goto See
|
||||
Missile:
|
||||
BISH A 3 A_FaceTarget
|
||||
BISH DE 3 A_FaceTarget
|
||||
BISH F 3 A_BishopAttack
|
||||
BISH F 5 A_BishopAttack2
|
||||
Wait
|
||||
Death:
|
||||
BISH G 6
|
||||
BISH H 6 Bright A_Scream
|
||||
BISH I 5 Bright A_NoBlocking
|
||||
BISH J 5 BRIGHT A_Explode(random[BishopBoom](25,40))
|
||||
BISH K 5 Bright
|
||||
BISH LM 4 Bright
|
||||
BISH N 4 A_SpawnItemEx("BishopPuff", 0,0,40, 0,0,0.5)
|
||||
BISH O 4 A_QueueCorpse
|
||||
BISH P -1
|
||||
Stop
|
||||
Ice:
|
||||
BISH X 5 A_FreezeDeath
|
||||
BISH X 1 A_FreezeDeathChunks
|
||||
Wait
|
||||
}
|
||||
}
|
||||
|
||||
// Bishop puff --------------------------------------------------------------
|
||||
|
||||
ACTOR BishopPuff
|
||||
{
|
||||
Game Hexen
|
||||
+NOBLOCKMAP +NOGRAVITY
|
||||
RenderStyle Translucent
|
||||
Alpha 0.6
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
BISH QRST 5
|
||||
BISH UV 6
|
||||
BISH W 5
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Bishop pain blur ---------------------------------------------------------
|
||||
|
||||
ACTOR BishopPainBlur
|
||||
{
|
||||
Game Hexen
|
||||
+NOBLOCKMAP +NOGRAVITY
|
||||
RenderStyle Translucent
|
||||
Alpha 0.6
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
BISH C 8
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Bishop FX ----------------------------------------------------------------
|
||||
|
||||
ACTOR BishopFX
|
||||
{
|
||||
Game Hexen
|
||||
Radius 10
|
||||
Height 6
|
||||
Speed 10
|
||||
Damage 1
|
||||
Projectile
|
||||
+SEEKERMISSILE
|
||||
-ACTIVATEIMPACT -ACTIVATEPCROSS
|
||||
+STRIFEDAMAGE
|
||||
RenderStyle Add
|
||||
DeathSound "BishopMissileExplode"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
BPFX ABAB 1 Bright A_BishopMissileWeave
|
||||
BPFX B 0 Bright A_SeekerMissile(2,3)
|
||||
Loop
|
||||
Death:
|
||||
BPFX CDEF 4 Bright
|
||||
BPFX GH 3 Bright
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Bishop blur --------------------------------------------------------------
|
||||
|
||||
ACTOR BishopBlur
|
||||
{
|
||||
+NOBLOCKMAP +NOGRAVITY
|
||||
RenderStyle Translucent
|
||||
Alpha 0.6
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
BISH A 16
|
||||
BISH A 8 A_SetTranslucent(0.4)
|
||||
Stop
|
||||
}
|
||||
}
|
35
wadsrc/static/actors/hexen/blastradius.txt
Normal file
35
wadsrc/static/actors/hexen/blastradius.txt
Normal file
|
@ -0,0 +1,35 @@
|
|||
|
||||
ACTOR ArtiBlastRadius : Inventory 10110 native
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 74
|
||||
+FLOATBOB
|
||||
Inventory.DefMaxAmount
|
||||
Inventory.PickupFlash 1
|
||||
+INVBAR +FANCYPICKUPSOUND
|
||||
Inventory.Icon "ARTIBLST"
|
||||
Inventory.PickupSound "misc/p_pkup"
|
||||
Inventory.PickupMessage "$TXT_ARTIBLASTRADIUS"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
BLST ABCDEFGH 4 Bright
|
||||
Loop
|
||||
}
|
||||
}
|
||||
|
||||
// Blast Effect -------------------------------------------------------------
|
||||
|
||||
ACTOR BlastEffect
|
||||
{
|
||||
+NOBLOCKMAP +NOGRAVITY +NOCLIP
|
||||
+NOTELEPORT
|
||||
RenderStyle Translucent
|
||||
Alpha 0.666
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
RADE ABCDEFGHI 4
|
||||
Stop
|
||||
}
|
||||
}
|
22
wadsrc/static/actors/hexen/boostarmor.txt
Normal file
22
wadsrc/static/actors/hexen/boostarmor.txt
Normal file
|
@ -0,0 +1,22 @@
|
|||
|
||||
// Boost Armor Artifact (Dragonskin Bracers) --------------------------------
|
||||
|
||||
ACTOR ArtiBoostArmor : Inventory 8041 native
|
||||
{
|
||||
Game Hexen
|
||||
SpawnID 22
|
||||
+COUNTITEM
|
||||
+FLOATBOB
|
||||
Inventory.DefMaxAmount
|
||||
Inventory.PickupFlash 1
|
||||
+INVBAR +FANCYPICKUPSOUND
|
||||
Inventory.Icon "ARTIBRAC"
|
||||
Inventory.PickupSound "misc/p_pkup"
|
||||
Inventory.PickupMessage "$TXT_ARTIBOOSTARMOR"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
BRAC ABCDEFGH 4 Bright
|
||||
Loop
|
||||
}
|
||||
}
|
197
wadsrc/static/actors/hexen/clericflame.txt
Normal file
197
wadsrc/static/actors/hexen/clericflame.txt
Normal file
|
@ -0,0 +1,197 @@
|
|||
|
||||
// The Cleric's Flame Strike ------------------------------------------------
|
||||
|
||||
ACTOR CWeapFlame : ClericWeapon 8009
|
||||
{
|
||||
+NOGRAVITY
|
||||
Weapon.SelectionOrder 1000
|
||||
Weapon.AmmoUse 4
|
||||
Weapon.AmmoGive 25
|
||||
Weapon.KickBack 150
|
||||
Weapon.YAdjust 10
|
||||
Weapon.AmmoType1 "Mana2"
|
||||
Inventory.PickupMessage "$TXT_WEAPON_C3"
|
||||
|
||||
action native A_CFlameAttack();
|
||||
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
WCFM ABCDEFGH 4 Bright
|
||||
Loop
|
||||
Select:
|
||||
CFLM A 1 A_Raise
|
||||
Loop
|
||||
Deselect:
|
||||
CFLM A 1 A_Lower
|
||||
Loop
|
||||
Ready:
|
||||
CFLM AAAABBBBCCCC 1 A_WeaponReady
|
||||
Loop
|
||||
Fire:
|
||||
CFLM A 2 Offset (0, 40)
|
||||
CFLM D 2 Offset (0, 50)
|
||||
CFLM D 2 Offset (0, 36)
|
||||
CFLM E 4 Bright
|
||||
CFLM F 4 Bright A_CFlameAttack
|
||||
CFLM E 4 Bright
|
||||
CFLM G 2 Offset (0, 40)
|
||||
CFLM G 2
|
||||
Goto Ready
|
||||
}
|
||||
}
|
||||
|
||||
// Floor Flame --------------------------------------------------------------
|
||||
|
||||
ACTOR CFlameFloor
|
||||
{
|
||||
Game Hexen
|
||||
+NOBLOCKMAP +NOGRAVITY
|
||||
RenderStyle Add
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
CFFX N 5 Bright
|
||||
CFFX O 4 Bright
|
||||
CFFX P 3 Bright
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Flame Puff ---------------------------------------------------------------
|
||||
|
||||
ACTOR FlamePuff
|
||||
{
|
||||
Game Hexen
|
||||
Radius 1
|
||||
Height 1
|
||||
+NOBLOCKMAP +NOGRAVITY
|
||||
RenderStyle Add
|
||||
SeeSound "ClericFlameExplode"
|
||||
AttackSound "ClericFlameExplode"
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
CFFX ABC 3 Bright
|
||||
CFFX D 4 Bright
|
||||
CFFX E 3 Bright
|
||||
CFFX F 4 Bright
|
||||
CFFX G 3 Bright
|
||||
CFFX H 4 Bright
|
||||
CFFX I 3 Bright
|
||||
CFFX J 4 Bright
|
||||
CFFX K 3 Bright
|
||||
CFFX L 4 Bright
|
||||
CFFX M 3 Bright
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Flame Puff 2 -------------------------------------------------------------
|
||||
|
||||
ACTOR FlamePuff2 : FlamePuff
|
||||
{
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
CFFX ABC 3 Bright
|
||||
CFFX D 4 Bright
|
||||
CFFX E 3 Bright
|
||||
CFFX F 4 Bright
|
||||
CFFX G 3 Bright
|
||||
CFFX H 4 Bright
|
||||
CFFX IC 3 Bright
|
||||
CFFX D 4 Bright
|
||||
CFFX E 3 Bright
|
||||
CFFX F 4 Bright
|
||||
CFFX G 3 Bright
|
||||
CFFX H 4 Bright
|
||||
CFFX I 3 Bright
|
||||
CFFX J 4 Bright
|
||||
CFFX K 3 Bright
|
||||
CFFX L 4 Bright
|
||||
CFFX M 3 Bright
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Circle Flame -------------------------------------------------------------
|
||||
|
||||
ACTOR CircleFlame
|
||||
{
|
||||
Game Hexen
|
||||
Radius 6
|
||||
Damage 2
|
||||
DamageType "Fire"
|
||||
+NOBLOCKMAP +NOGRAVITY +DROPOFF +MISSILE
|
||||
+NOTELEPORT
|
||||
RenderStyle Add
|
||||
DeathSound "ClericFlameCircle"
|
||||
|
||||
action native A_CFlameRotate();
|
||||
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
CFCF A 4 Bright
|
||||
CFCF B 2 Bright A_CFlameRotate
|
||||
CFCF C 2 Bright
|
||||
CFCF D 1 Bright
|
||||
CFCF E 2 Bright
|
||||
CFCF F 2 Bright A_CFlameRotate
|
||||
CFCF G 1 Bright
|
||||
CFCF HI 2 Bright
|
||||
CFCF J 1 Bright A_CFlameRotate
|
||||
CFCF K 2 Bright
|
||||
CFCF LM 3 Bright
|
||||
CFCF N 2 Bright A_CFlameRotate
|
||||
CFCF O 3 Bright
|
||||
CFCF P 2 Bright
|
||||
Stop
|
||||
Death:
|
||||
CFCF QR 3 Bright
|
||||
CFCF S 3 Bright A_Explode(20, 20, 0)
|
||||
CFCF TUVWXYZ 3 Bright
|
||||
Stop
|
||||
}
|
||||
}
|
||||
|
||||
// Flame Missile ------------------------------------------------------------
|
||||
|
||||
ACTOR CFlameMissile native
|
||||
{
|
||||
Speed 200
|
||||
Radius 14
|
||||
Height 8
|
||||
Damage 8
|
||||
DamageType "Fire"
|
||||
Projectile
|
||||
+INVISIBLE
|
||||
-BLOODSPLATTER
|
||||
RenderStyle Add
|
||||
|
||||
action native A_CFlamePuff();
|
||||
action native A_CFlameMissile();
|
||||
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
CFFX A 4 Bright
|
||||
CFFX A 1 A_CFlamePuff
|
||||
Goto Death + 1
|
||||
Death:
|
||||
CFFX A 1 Bright A_CFlameMissile
|
||||
CFFX ABC 3 Bright
|
||||
CFFX D 4 Bright
|
||||
CFFX E 3 Bright
|
||||
CFFX F 4 Bright
|
||||
CFFX G 3 Bright
|
||||
CFFX H 4 Bright
|
||||
CFFX I 3 Bright
|
||||
CFFX J 4 Bright
|
||||
CFFX K 3 Bright
|
||||
CFFX L 4 Bright
|
||||
CFFX M 3 Bright
|
||||
Stop
|
||||
}
|
||||
}
|
|
@ -87,6 +87,11 @@
|
|||
#include "actors/hexen/clericboss.txt"
|
||||
#include "actors/hexen/fighterboss.txt"
|
||||
#include "actors/hexen/mageboss.txt"
|
||||
#include "actors/hexen/bats.txt"
|
||||
#include "actors/hexen/bishop.txt"
|
||||
#include "actors/hexen/blastradius.txt"
|
||||
#include "actors/hexen/boostarmor.txt"
|
||||
#include "actors/hexen/clericflame.txt"
|
||||
|
||||
#include "actors/strife/strifeplayer.txt"
|
||||
#include "actors/strife/beggars.txt"
|
||||
|
|
Loading…
Reference in a new issue