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);
|
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 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); }
|
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 mins = CPos.Min(start, end);
|
||||||
var maxs = CPos.Max(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 i = mins.X; i <= maxs.X; i++)
|
||||||
for (var j = mins.Y; j <= maxs.Y; j++)
|
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);
|
yield return new CPos(i, j);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user