From ca8ca2df5cfb4a69793430fd7ff216b6bc470661 Mon Sep 17 00:00:00 2001 From: abcdefg30 Date: Thu, 5 Sep 2019 15:11:18 +0200 Subject: [PATCH] Fix a division by zero error in FindAndDeliverResources by preventing an overflow through dividing directly --- OpenRA.Mods.Common/Activities/FindAndDeliverResources.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenRA.Mods.Common/Activities/FindAndDeliverResources.cs b/OpenRA.Mods.Common/Activities/FindAndDeliverResources.cs index 8f60df95b6..febe0784d2 100644 --- a/OpenRA.Mods.Common/Activities/FindAndDeliverResources.cs +++ b/OpenRA.Mods.Common/Activities/FindAndDeliverResources.cs @@ -214,7 +214,7 @@ namespace OpenRA.Mods.Common.Activities if (b != WVec.Zero && c != WVec.Zero) { - var cosA = (int)(1024 * (b.LengthSquared + c.LengthSquared - a.LengthSquared) / (2 * b.Length * c.Length)); + var cosA = (int)(512 * (b.LengthSquared + c.LengthSquared - a.LengthSquared) / b.Length / c.Length); // Cost modifier varies between 0 and ResourceRefineryDirectionPenalty return Math.Abs(harvInfo.ResourceRefineryDirectionPenalty / 2) + harvInfo.ResourceRefineryDirectionPenalty * cosA / 2048;