Move LookAt's same position check to the one that takes in an X and Y

position
This commit is contained in:
Yogurt 2019-05-27 15:37:54 -07:00
parent 9b566abb3d
commit 9889b6011b

View File

@ -652,7 +652,7 @@ namespace FFXIVClassic_Map_Server.Actors
public void LookAt(Actor actor) public void LookAt(Actor actor)
{ {
if (actor != null && actor != this) if (actor != null)
{ {
LookAt(actor.positionX, actor.positionZ); LookAt(actor.positionX, actor.positionZ);
} }
@ -672,16 +672,20 @@ namespace FFXIVClassic_Map_Server.Actors
public void LookAt(float x, float z) public void LookAt(float x, float z)
{ {
var rot1 = this.rotation; //Don't rotate if the lookat position is same as our current position
if (positionX != x || positionZ != z)
{
var rot1 = this.rotation;
var dX = this.positionX - x; var dX = this.positionX - x;
var dY = this.positionZ - z; var dY = this.positionZ - z;
var rot2 = Math.Atan2(dY, dX); var rot2 = Math.Atan2(dY, dX);
var dRot = Math.PI - rot2 + Math.PI / 2; var dRot = Math.PI - rot2 + Math.PI / 2;
// pending move, dont need to unset it // pending move, dont need to unset it
this.updateFlags |= ActorUpdateFlags.Position; this.updateFlags |= ActorUpdateFlags.Position;
rotation = (float)dRot; rotation = (float)dRot;
}
} }
// todo: is this legit? // todo: is this legit?