- fixed: The charge attack of Heretic's imp is not precisely the same

as A_SkullAttack with a different speed so A_ImpMsAttack has been
  reinstated.


SVN r2003 (trunk)
This commit is contained in:
Christoph Oelckers 2009-11-27 13:23:02 +00:00
parent 787f00abf9
commit 53a6ffee15
6 changed files with 28 additions and 7 deletions

View file

@ -1,3 +1,8 @@
November 27, 2009 (Changes by Graf Zahl)
- fixed: The charge attack of Heretic's imp is not precisely the same
as A_SkullAttack with a different speed so A_ImpMsAttack has been
reinstated.
November 25, 2009 November 25, 2009
- Make the palette indexes used by FRemapTable subject to the global remap - Make the palette indexes used by FRemapTable subject to the global remap
table, just as the images they translate are. table, just as the images they translate are.

View file

@ -19,7 +19,6 @@
// SkullAttack // SkullAttack
// Fly at the player like a missile. // Fly at the player like a missile.
// //
#define SKULLSPEED (20*FRACUNIT)
void A_SkullAttack(AActor *self, fixed_t speed) void A_SkullAttack(AActor *self, fixed_t speed)
{ {
@ -55,8 +54,6 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_SkullAttack)
A_SkullAttack(self, n); A_SkullAttack(self, n);
} }
DEFINE_ACTION_FUNCTION(AActor, A_BetaSkullAttack) DEFINE_ACTION_FUNCTION(AActor, A_BetaSkullAttack)
{ {
int damage; int damage;

View file

@ -22,9 +22,6 @@ static const PClass *GetSpawnType(DECLARE_PARAMINFO)
} }
#define SKULLSPEED (20*FRACUNIT)
void A_SkullAttack(AActor *self, fixed_t speed);
// //
// A_PainShootSkull // A_PainShootSkull
// Spawn a lost soul and launch it at the target // Spawn a lost soul and launch it at the target

View file

@ -9,8 +9,26 @@
#include "thingdef/thingdef.h" #include "thingdef/thingdef.h"
*/ */
static FRandom pr_impmsatk ("ImpMsAttack");
static FRandom pr_imp ("ImpExplode"); static FRandom pr_imp ("ImpExplode");
//----------------------------------------------------------------------------
//
// PROC A_ImpMsAttack
//
//----------------------------------------------------------------------------
DEFINE_ACTION_FUNCTION(AActor, A_ImpMsAttack)
{
if (!self->target || pr_impmsatk() > 64)
{
self->SetState (self->SeeState);
return;
}
A_SkullAttack(self, 12 * FRACUNIT);
}
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
// //
// PROC A_ImpExplode // PROC A_ImpExplode

View file

@ -76,4 +76,7 @@ bool CheckBossDeath (AActor *);
int P_Massacre (); int P_Massacre ();
bool P_CheckMissileRange (AActor *actor); bool P_CheckMissileRange (AActor *actor);
#define SKULLSPEED (20*FRACUNIT)
void A_SkullAttack(AActor *self, fixed_t speed);
#endif //__P_ENEMY_H__ #endif //__P_ENEMY_H__

View file

@ -25,6 +25,7 @@ ACTOR HereticImp 66
Obituary "$OB_HERETICIMP" Obituary "$OB_HERETICIMP"
HitObituary "$OB_HERETICIMPHIT" HitObituary "$OB_HERETICIMPHIT"
action native A_ImpMsAttack();
action native A_ImpDeath(); action native A_ImpDeath();
action native A_ImpXDeath1(); action native A_ImpXDeath1();
action native A_ImpExplode(); action native A_ImpExplode();
@ -44,7 +45,7 @@ ACTOR HereticImp 66
Goto See Goto See
Missile: Missile:
IMPX A 10 A_FaceTarget IMPX A 10 A_FaceTarget
IMPX B 6 A_SkullAttack(12) IMPX B 6 A_ImpMsAttack
IMPX CBAB 6 IMPX CBAB 6
Goto Missile+2 Goto Missile+2
Pain: Pain: