Initialize map inverse cell projections with capacity 1.

This prevents the capacity being set to 4 when the first item is added. For flat maps, the inverse projection will only ever be of size 1, thus this is sufficient capacity. For isometric maps, 1 is often sufficient, we only need more near height changes where the discontinuity means multiple cells may project back. We can pay for some reallocations to expand the size in these cases.

On flat maps, this reduces the memory required by the backing array 4x.
This commit is contained in:
RoosterDragon
2017-11-22 19:04:09 +00:00
committed by abcdefg30
parent 8ef8c60a1a
commit 2dd1bd2d39

View File

@@ -429,7 +429,7 @@ namespace OpenRA
{ {
var uv = cell.ToMPos(Grid.Type); var uv = cell.ToMPos(Grid.Type);
cellProjection[uv] = new PPos[0]; cellProjection[uv] = new PPos[0];
inverseCellProjection[uv] = new List<MPos>(); inverseCellProjection[uv] = new List<MPos>(1);
} }
// Initialize projections // Initialize projections