Fix missiles not moving to CruiseAltitude if launched above it
This commit is contained in:
@@ -664,6 +664,11 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
// of vertical facing bound by the maximum vertical rate of turn
|
// of vertical facing bound by the maximum vertical rate of turn
|
||||||
var vDist = new WVec(-diffClfMslHgt - info.CruiseAltitude.Length, -speed, 0);
|
var vDist = new WVec(-diffClfMslHgt - info.CruiseAltitude.Length, -speed, 0);
|
||||||
desiredVFacing = (sbyte)vDist.HorizontalLengthSquared != 0 ? vDist.Yaw.Facing : vFacing;
|
desiredVFacing = (sbyte)vDist.HorizontalLengthSquared != 0 ? vDist.Yaw.Facing : vFacing;
|
||||||
|
|
||||||
|
// If the missile is launched above CruiseAltitude, it has to descend instead of climbing
|
||||||
|
if (-diffClfMslHgt > info.CruiseAltitude.Length)
|
||||||
|
desiredVFacing = -desiredVFacing;
|
||||||
|
|
||||||
desiredVFacing = desiredVFacing.Clamp(-info.VerticalRateOfTurn, info.VerticalRateOfTurn);
|
desiredVFacing = desiredVFacing.Clamp(-info.VerticalRateOfTurn, info.VerticalRateOfTurn);
|
||||||
|
|
||||||
ChangeSpeed();
|
ChangeSpeed();
|
||||||
@@ -675,6 +680,11 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
// of vertical facing bound by the maximum vertical rate of turn
|
// of vertical facing bound by the maximum vertical rate of turn
|
||||||
var vDist = new WVec(-diffClfMslHgt - info.CruiseAltitude.Length, -speed, 0);
|
var vDist = new WVec(-diffClfMslHgt - info.CruiseAltitude.Length, -speed, 0);
|
||||||
desiredVFacing = (sbyte)vDist.HorizontalLengthSquared != 0 ? vDist.Yaw.Facing : vFacing;
|
desiredVFacing = (sbyte)vDist.HorizontalLengthSquared != 0 ? vDist.Yaw.Facing : vFacing;
|
||||||
|
|
||||||
|
// If the missile is launched above CruiseAltitude, it has to descend instead of climbing
|
||||||
|
if (-diffClfMslHgt > info.CruiseAltitude.Length)
|
||||||
|
desiredVFacing = -desiredVFacing;
|
||||||
|
|
||||||
desiredVFacing = desiredVFacing.Clamp(-info.VerticalRateOfTurn, info.VerticalRateOfTurn);
|
desiredVFacing = desiredVFacing.Clamp(-info.VerticalRateOfTurn, info.VerticalRateOfTurn);
|
||||||
|
|
||||||
ChangeSpeed();
|
ChangeSpeed();
|
||||||
|
|||||||
Reference in New Issue
Block a user