Fix CandidateMouseoverCells being incorrectly calculated for Rectangular grid

This commit is contained in:
Gustas
2023-04-30 15:09:34 +03:00
committed by Matthias Mailänder
parent 3824a591d5
commit 0ab7caedd9

View File

@@ -286,8 +286,19 @@ namespace OpenRA.Graphics
var minPos = worldRenderer.ProjectedPosition(world); var minPos = worldRenderer.ProjectedPosition(world);
// Find all the cells that could potentially have been clicked. // Find all the cells that could potentially have been clicked.
var a = map.CellContaining(minPos - new WVec(tileScale, 0, 0)).ToMPos(map.Grid.Type); MPos a;
var b = map.CellContaining(minPos + new WVec(tileScale, tileScale * map.Grid.MaximumTerrainHeight, 0)).ToMPos(map.Grid.Type); MPos b;
if (map.Grid.Type == MapGridType.RectangularIsometric)
{
// TODO: this generates too many cells.
a = map.CellContaining(minPos - new WVec(tileScale, 0, 0)).ToMPos(map.Grid.Type);
b = map.CellContaining(minPos + new WVec(tileScale, tileScale * map.Grid.MaximumTerrainHeight, 0)).ToMPos(map.Grid.Type);
}
else
{
a = map.CellContaining(minPos).ToMPos(map.Grid.Type);
b = map.CellContaining(minPos + new WVec(0, tileScale * map.Grid.MaximumTerrainHeight, 0)).ToMPos(map.Grid.Type);
}
for (var v = b.V; v >= a.V; v--) for (var v = b.V; v >= a.V; v--)
for (var u = b.U; u >= a.U; u--) for (var u = b.U; u >= a.U; u--)