From 41c296e5c24ae2b02f7f3fdcc00a2711bbd3e002 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Sun, 5 Oct 2014 21:22:41 +1300 Subject: [PATCH] Fix some bogus cell accesses in Map. --- OpenRA.Editor/Surface.cs | 9 +++++---- OpenRA.Game/Map/Map.cs | 13 ++++++------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/OpenRA.Editor/Surface.cs b/OpenRA.Editor/Surface.cs index 10b9fffe21..e801a283aa 100644 --- a/OpenRA.Editor/Surface.cs +++ b/OpenRA.Editor/Surface.cs @@ -271,8 +271,9 @@ namespace OpenRA.Editor for (var i = 0; i < ChunkSize; i++) for (var j = 0; j < ChunkSize; j++) { - var cell = new CPos(u * ChunkSize + i, v * ChunkSize + j); - var tr = Map.MapTiles.Value[cell]; + var ui = u * ChunkSize + i; + var vj = v * ChunkSize + j; + var tr = Map.MapTiles.Value[ui, vj]; var tile = TileSetRenderer.Data(tr.Type); var index = (tr.Index < tile.Length) ? tr.Index : (byte)0; var rawImage = tile[index]; @@ -280,9 +281,9 @@ namespace OpenRA.Editor for (var y = 0; y < TileSetRenderer.TileSize; y++) p[(j * TileSetRenderer.TileSize + y) * stride + i * TileSetRenderer.TileSize + x] = Palette.GetColor(rawImage[x + TileSetRenderer.TileSize * y]).ToArgb(); - if (Map.MapResources.Value[cell].Type != 0) + if (Map.MapResources.Value[ui, vj].Type != 0) { - var resourceImage = ResourceTemplates[Map.MapResources.Value[cell].Type].Bitmap; + var resourceImage = ResourceTemplates[Map.MapResources.Value[ui, vj].Type].Bitmap; var srcdata = resourceImage.LockBits(resourceImage.Bounds(), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb); diff --git a/OpenRA.Game/Map/Map.cs b/OpenRA.Game/Map/Map.cs index 311b4ffc02..30b8751024 100644 --- a/OpenRA.Game/Map/Map.cs +++ b/OpenRA.Game/Map/Map.cs @@ -457,7 +457,7 @@ namespace OpenRA for (var i = 0; i < MapSize.X; i++) for (var j = 0; j < MapSize.Y; j++) { - var tile = MapTiles.Value[new CPos(i, j)]; + var tile = MapTiles.Value[i, j]; writer.Write(tile.Type); writer.Write(tile.Index); } @@ -467,7 +467,7 @@ namespace OpenRA { for (var j = 0; j < MapSize.Y; j++) { - var tile = MapResources.Value[new CPos(i, j)]; + var tile = MapResources.Value[i, j]; writer.Write(tile.Type); writer.Write(tile.Index); } @@ -654,9 +654,8 @@ namespace OpenRA { for (var i = Bounds.Left; i < Bounds.Right; i++) { - var cell = new CPos(i, j); - var type = MapTiles.Value[cell].Type; - var index = MapTiles.Value[cell].Index; + var type = MapTiles.Value[i, j].Type; + var index = MapTiles.Value[i, j].Index; if (!tileset.Templates.ContainsKey(type)) { Console.WriteLine("Unknown Tile ID {0}".F(type)); @@ -668,7 +667,7 @@ namespace OpenRA continue; index = (byte)r.Next(0, template.TilesCount); - MapTiles.Value[cell] = new TerrainTile(type, index); + MapTiles.Value[i, j] = new TerrainTile(type, index); } } } @@ -730,7 +729,7 @@ namespace OpenRA for (var j = -max; j <= max; j++) for (var i = -max; i <= max; i++) if (max * max >= i * i + j * j) - ts [Exts.ISqrt(i * i + j * j, Exts.ISqrtRoundMode.Ceiling)].Add(new CVec(i, j)); + ts[Exts.ISqrt(i * i + j * j, Exts.ISqrtRoundMode.Ceiling)].Add(new CVec(i, j)); // Sort each integer-distance group by the actual distance foreach (var list in ts)