Migrated Minelayer.MinefieldDepth to use WDist instead of float
This commit is contained in:
@@ -676,6 +676,22 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
||||
}
|
||||
}
|
||||
|
||||
// Migrated Minelayer.MinefieldDepth to use WDist instead of float
|
||||
if (engineVersion < 20160325)
|
||||
{
|
||||
if (node.Key.StartsWith("Minelayer"))
|
||||
{
|
||||
var depthNode = node.Value.Nodes.FirstOrDefault(x => x.Key == "MinefieldDepth");
|
||||
if (depthNode != null)
|
||||
{
|
||||
// The MinefieldDepth value is now a WDist, so multiply the float value with 1024.
|
||||
var oldValue = FieldLoader.GetValue<float>("MinefieldDepth", depthNode.Value.Value);
|
||||
var newValue = (int)(oldValue * 1024);
|
||||
depthNode.Value.Value = newValue.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ namespace OpenRA.Mods.RA.Traits
|
||||
|
||||
public readonly string AmmoPoolName = "primary";
|
||||
|
||||
public readonly float MinefieldDepth = 1.5f;
|
||||
public readonly WDist MinefieldDepth = new WDist(1536);
|
||||
|
||||
public object Create(ActorInitializer init) { return new Minelayer(init.Self); }
|
||||
}
|
||||
@@ -97,7 +97,7 @@ namespace OpenRA.Mods.RA.Traits
|
||||
}
|
||||
}
|
||||
|
||||
static IEnumerable<CPos> GetMinefieldCells(CPos start, CPos end, float depth)
|
||||
static IEnumerable<CPos> GetMinefieldCells(CPos start, CPos end, WDist depth)
|
||||
{
|
||||
var mins = CPos.Min(start, end);
|
||||
var maxs = CPos.Max(start, end);
|
||||
@@ -113,7 +113,7 @@ namespace OpenRA.Mods.RA.Traits
|
||||
|
||||
for (var i = mins.X; i <= maxs.X; i++)
|
||||
for (var j = mins.Y; j <= maxs.Y; j++)
|
||||
if (Math.Abs(q.X * i + q.Y * j + c) < depth)
|
||||
if (Math.Abs(q.X * i + q.Y * j + c) * 1024 < depth.Length)
|
||||
yield return new CPos(i, j);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user