mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-22 12:11:25 +00:00
Export A_DoChase to zscript and make A_Chase a direct native function
This commit is contained in:
parent
7f8ce13d24
commit
caa4728bd4
2 changed files with 33 additions and 7 deletions
|
@ -2899,13 +2899,8 @@ void A_Chase(AActor *self)
|
|||
A_DoChase(self, false, self->MeleeState, self->MissileState, true, gameinfo.nightmarefast, false, 0);
|
||||
}
|
||||
|
||||
DEFINE_ACTION_FUNCTION(AActor, A_Chase)
|
||||
void A_ChaseNative(AActor * self, int meleelabel, int missilelabel, int flags)
|
||||
{
|
||||
PARAM_SELF_PROLOGUE(AActor);
|
||||
PARAM_STATELABEL(meleelabel);
|
||||
PARAM_STATELABEL(missilelabel);
|
||||
PARAM_INT(flags);
|
||||
|
||||
FName meleename = ENamedName(meleelabel - 0x10000000);
|
||||
FName missilename = ENamedName(missilelabel - 0x10000000);
|
||||
if (meleename != NAME__a_chase_default || missilename != NAME__a_chase_default)
|
||||
|
@ -2913,7 +2908,7 @@ DEFINE_ACTION_FUNCTION(AActor, A_Chase)
|
|||
FState *melee = StateLabels.GetState(meleelabel, self->GetClass());
|
||||
FState *missile = StateLabels.GetState(missilelabel, self->GetClass());
|
||||
if ((flags & CHF_RESURRECT) && P_CheckForResurrection(self, false))
|
||||
return 0;
|
||||
return;
|
||||
|
||||
A_DoChase(self, !!(flags&CHF_FASTCHASE), melee, missile, !(flags&CHF_NOPLAYACTIVE),
|
||||
!!(flags&CHF_NIGHTMAREFAST), !!(flags&CHF_DONTMOVE), flags & 0x3fffffff);
|
||||
|
@ -2922,6 +2917,36 @@ DEFINE_ACTION_FUNCTION(AActor, A_Chase)
|
|||
{
|
||||
A_DoChase(self, false, self->MeleeState, self->MissileState, true, gameinfo.nightmarefast, false, 0);
|
||||
}
|
||||
}
|
||||
|
||||
DEFINE_ACTION_FUNCTION_NATIVE(AActor, A_Chase, A_ChaseNative)
|
||||
{
|
||||
PARAM_SELF_PROLOGUE(AActor);
|
||||
PARAM_STATELABEL(meleelabel);
|
||||
PARAM_STATELABEL(missilelabel);
|
||||
PARAM_INT(flags);
|
||||
|
||||
A_ChaseNative(self, meleelabel, missilelabel, flags);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void A_DoChaseNative(AActor * self, FState *melee, FState *missile, int flags)
|
||||
{
|
||||
if ((flags & CHF_RESURRECT) && P_CheckForResurrection(self, false))
|
||||
return;
|
||||
A_DoChase(self, !!(flags&CHF_FASTCHASE), melee, missile, !(flags&CHF_NOPLAYACTIVE), !!(flags&CHF_NIGHTMAREFAST), !!(flags&CHF_DONTMOVE), flags & 0x3fffffff);
|
||||
}
|
||||
|
||||
DEFINE_ACTION_FUNCTION_NATIVE(AActor, A_DoChase, A_DoChaseNative)
|
||||
{
|
||||
PARAM_SELF_PROLOGUE(AActor);
|
||||
PARAM_STATE(melee);
|
||||
PARAM_STATE(missile);
|
||||
PARAM_INT(flags);
|
||||
|
||||
A_DoChaseNative(self, melee, missile, flags);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -1145,6 +1145,7 @@ class Actor : Thinker native
|
|||
void A_Fall() { A_NoBlocking(); }
|
||||
native void A_Look();
|
||||
native void A_Chase(statelabel melee = '_a_chase_default', statelabel missile = '_a_chase_default', int flags = 0);
|
||||
native void A_DoChase(State melee, State missile, int flags = 0);
|
||||
native void A_VileChase();
|
||||
native bool A_CheckForResurrection(State state = null, Sound snd = 0);
|
||||
native void A_BossDeath();
|
||||
|
|
Loading…
Reference in a new issue