Fix CellRegion.BoundingRegion behaviour.

This commit is contained in:
Paul Chote
2015-11-07 18:55:03 +00:00
parent 34cbd8bdf2
commit f945e35136

View File

@@ -53,23 +53,24 @@ namespace OpenRA
if (cells == null || !cells.Any())
throw new ArgumentException("cells must not be null or empty.", "cells");
var minX = int.MaxValue;
var minY = int.MaxValue;
var maxX = int.MinValue;
var maxY = int.MinValue;
var minU = int.MaxValue;
var minV = int.MaxValue;
var maxU = int.MinValue;
var maxV = int.MinValue;
foreach (var cell in cells)
{
if (minX > cell.X)
minX = cell.X;
if (maxX < cell.X)
maxX = cell.X;
if (minY > cell.Y)
minY = cell.Y;
if (maxY < cell.Y)
maxY = cell.Y;
var uv = cell.ToMPos(shape);
if (minU > uv.U)
minU = uv.U;
if (maxU < uv.U)
maxU = uv.U;
if (minV > uv.V)
minV = uv.V;
if (maxV < uv.V)
maxV = uv.V;
}
return new CellRegion(shape, new CPos(minX, minY), new CPos(maxX, maxY));
return new CellRegion(shape, new MPos(minU, minV).ToCPos(shape), new MPos(maxU, maxV).ToCPos(shape));
}
public bool Contains(CellRegion region)