Merge pull request #7113 from Smilex/issue_7100

Prevent divide by zero. Issue #7100
This commit is contained in:
reaperrr
2014-12-12 13:21:18 +01:00

View File

@@ -63,8 +63,11 @@ namespace OpenRA.Mods.RA.Traits
return WVec.Zero;
var currentDir = FlyStep(Facing);
var length = currentDir.HorizontalLength * repulsionForce.HorizontalLength;
if (length == 0)
return WVec.Zero;
var dot = WVec.Dot(currentDir, repulsionForce) / (currentDir.HorizontalLength * repulsionForce.HorizontalLength);
var dot = WVec.Dot(currentDir, repulsionForce) / length;
// avoid stalling the plane
return dot >= 0 ? repulsionForce : WVec.Zero;
}