Backport 'A_FaceConsolePlayer' from zandronum.

By Dusk, who authorized me to do this.
This commit is contained in:
Edoardo Prezioso 2014-11-08 00:31:16 +01:00
parent 71ce4bcf06
commit eab971500b
2 changed files with 31 additions and 0 deletions

View file

@ -3781,6 +3781,36 @@ DEFINE_ACTION_FUNCTION(AActor, A_RaiseSiblings)
}
}
//===========================================================================
//
// [TP] A_FaceConsolePlayer
//
//===========================================================================
DEFINE_ACTION_FUNCTION_PARAMS (AActor, A_FaceConsolePlayer) {
ACTION_PARAM_START (1);
ACTION_PARAM_ANGLE (MaxTurnAngle, 0);
angle_t Angle;
angle_t DeltaAngle;
AActor *pConsolePlayer;
// Always watch the consoleplayer.
pConsolePlayer = players[consoleplayer].mo;
if (( playeringame[consoleplayer] == false ) || ( pConsolePlayer == NULL ))
return;
// Find the angle between the actor and the console player.
Angle = R_PointToAngle2( self->x, self->y, pConsolePlayer->x, pConsolePlayer->y );
DeltaAngle = Angle - self->angle;
if (( MaxTurnAngle == 0 ) || ( DeltaAngle < MaxTurnAngle ) || ( DeltaAngle > (unsigned)-MaxTurnAngle ))
self->angle = Angle;
else if ( DeltaAngle < ANG180 )
self->angle += MaxTurnAngle;
else
self->angle -= MaxTurnAngle;
}
//===========================================================================
//
// A_MonsterRefire

View file

@ -186,6 +186,7 @@ ACTOR Actor native //: Thinker
action native A_ClearSoundTarget();
action native A_FireAssaultGun();
action native A_CheckTerrain();
action native A_FaceConsolePlayer(float MaxTurnAngle = 0); // [TP]
action native A_MissileAttack();
action native A_MeleeAttack();