diff --git a/VesselTarget.cs b/VesselTarget.cs index f53e01f..482c4ed 100644 --- a/VesselTarget.cs +++ b/VesselTarget.cs @@ -99,6 +99,7 @@ public override object GetSuffix(string suffixName) if (suffixName == "AIRSPEED") return (target.orbit.GetVel() - FlightGlobals.currentMainBody.getRFrmVel(target.GetWorldPos3D())).magnitude; //the velocity of the vessel relative to the air); if (suffixName == "VESSELNAME") return target.vesselName; if (suffixName == "ALTITUDE") return target.altitude; + if (suffixName == "ALTRADAR") return target.heightFromTerrain > 0 ? Math.Min((double)target.heightFromTerrain, target.altitude) : target.altitude; if (suffixName == "APOAPSIS") return target.orbit.ApA; if (suffixName == "PERIAPSIS") return target.orbit.PeA; if (suffixName == "SENSOR") return new VesselSensors(target); diff --git a/VesselUtils.cs b/VesselUtils.cs index 94606ca..333112e 100644 --- a/VesselUtils.cs +++ b/VesselUtils.cs @@ -234,6 +234,10 @@ public static float GetVelocityHeading(Vessel vessel) public static float GetTargetBearing(Vessel vessel, Vessel target) { + if (vessel == target) + { + return 0; + } return AngleDelta(GetHeading(vessel), GetTargetHeading(vessel, target)); } @@ -242,8 +246,12 @@ public static float GetTargetHeading(Vessel vessel, Vessel target) var up = vessel.upAxis; var north = GetNorthVector(vessel); var vector = Vector3d.Exclude(vessel.upAxis, target.GetWorldPos3D() - vessel.GetWorldPos3D()).normalized; - var headingQ = Quaternion.Inverse(Quaternion.Euler(90, 0, 0) * Quaternion.Inverse(Quaternion.LookRotation(vector, up)) * Quaternion.LookRotation(north, up)); + var headingQ = Quaternion.Inverse(Quaternion.Euler(90, 0, 0) * Quaternion.Inverse(Quaternion.LookRotation(vector, up)) * Quaternion.LookRotation(north, up)); + if(vessel == target) + { + return GetHeading(vessel); + } return headingQ.eulerAngles.y; }