mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-03-23 03:12:38 +00:00
Hardcode A_DoNPCSkid
This commit is contained in:
parent
b4d8c2fa29
commit
b03bfbabe4
3 changed files with 54 additions and 0 deletions
|
@ -2225,6 +2225,7 @@ static actionpointer_t actionpointers[] =
|
|||
{{A_ParentTriesToSleep}, "A_PARENTTRIESTOSLEEP"},
|
||||
{{A_CryingToMomma}, "A_CRYINGTOMOMMA"},
|
||||
{{A_CheckFlags2}, "A_CHECKFLAGS2"},
|
||||
{{A_DoNPCSkid}, "A_DONPCSKID"},
|
||||
{{A_DoNPCPain}, "A_DONPCPAIN"},
|
||||
{{A_PrepareRepeat}, "A_PREPAREREPEAT"},
|
||||
{{A_Boss5ExtraRepeat}, "A_BOSS5EXTRAREPEAT"},
|
||||
|
|
|
@ -239,6 +239,7 @@ void A_WhoCaresIfYourSonIsABee();
|
|||
void A_ParentTriesToSleep();
|
||||
void A_CryingToMomma();
|
||||
void A_CheckFlags2();
|
||||
void A_DoNPCSkid();
|
||||
void A_DoNPCPain();
|
||||
void A_PrepareRepeat();
|
||||
void A_Boss5ExtraRepeat();
|
||||
|
|
|
@ -266,6 +266,7 @@ void A_WhoCaresIfYourSonIsABee(mobj_t *actor);
|
|||
void A_ParentTriesToSleep(mobj_t *actor);
|
||||
void A_CryingToMomma(mobj_t *actor);
|
||||
void A_CheckFlags2(mobj_t *actor);
|
||||
void A_DoNPCSkid(mobj_t *actor);
|
||||
void A_DoNPCPain(mobj_t *actor);
|
||||
void A_PrepareRepeat(mobj_t *actor);
|
||||
void A_Boss5ExtraRepeat(mobj_t *actor);
|
||||
|
@ -11861,6 +11862,57 @@ void A_CheckFlags2(mobj_t *actor)
|
|||
P_SetMobjState(actor, (statenum_t)locvar2);
|
||||
}
|
||||
|
||||
// Function: A_DoNPCSkid
|
||||
//
|
||||
// Description: Something that looks like a player is skidding.
|
||||
//
|
||||
// var1 = state to change to upon being slow enough
|
||||
// var2 = minimum speed
|
||||
//
|
||||
void A_DoNPCSkid(mobj_t *actor)
|
||||
{
|
||||
INT32 locvar1 = var1;
|
||||
INT32 locvar2 = var2;
|
||||
fixed_t x, y, z;
|
||||
#ifdef HAVE_BLUA
|
||||
if (LUA_CallAction("A_DoNPCSkid", actor))
|
||||
return;
|
||||
#endif
|
||||
|
||||
x = actor->x;
|
||||
y = actor->y;
|
||||
z = actor->y;
|
||||
|
||||
if (!locvar2)
|
||||
locvar2 = FRACUNIT/2;
|
||||
|
||||
if ((FixedHypot(actor->momx, actor->momy) < locvar2)
|
||||
|| !P_TryMove(actor, actor->x + actor->momx, actor->y + actor->momy, false))
|
||||
{
|
||||
actor->momx = actor->momy = 0;
|
||||
P_SetMobjState(actor, locvar1);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
actor->momx = (2*actor->momx)/3;
|
||||
actor->momy = (2*actor->momy)/3;
|
||||
}
|
||||
|
||||
P_TeleportMove(actor, x, y, z);
|
||||
|
||||
// Spawn a particle every 3 tics.
|
||||
if (!(leveltime % 3))
|
||||
{
|
||||
mobj_t *particle = P_SpawnMobjFromMobj(actor, 0, 0, 0, MT_SPINDUST);
|
||||
particle->tics = 10;
|
||||
|
||||
P_SetScale(particle, 2*actor->scale/3);
|
||||
particle->destscale = actor->scale;
|
||||
P_SetObjectMomZ(particle, FRACUNIT, false);
|
||||
}
|
||||
}
|
||||
|
||||
// Function: A_DoNPCPain
|
||||
//
|
||||
// Description: Something that looks like a player was hit, put them in pain.
|
||||
|
|
Loading…
Reference in a new issue