diff --git a/OpenRA.Game/Graphics/Theater.cs b/OpenRA.Game/Graphics/Theater.cs index 78bd1010f6..15227b2993 100644 --- a/OpenRA.Game/Graphics/Theater.cs +++ b/OpenRA.Game/Graphics/Theater.cs @@ -82,7 +82,7 @@ namespace OpenRA.Graphics Sheet.ReleaseBuffer(); } - public Sprite TileSprite(TerrainTile r) + public Sprite TileSprite(TerrainTile r, int? variant = null) { TheaterTemplate template; if (!templates.TryGetValue(r.Type, out template)) @@ -91,7 +91,7 @@ namespace OpenRA.Graphics if (r.Index >= template.Stride) return missingTile; - var start = template.Variants > 1 ? random.Next(template.Variants) : 0; + var start = template.Variants > 1 ? variant.HasValue ? variant.Value : random.Next(template.Variants) : 0; return template.Sprites[start * template.Stride + r.Index]; } diff --git a/OpenRA.Mods.Common/Widgets/TerrainTemplatePreviewWidget.cs b/OpenRA.Mods.Common/Widgets/TerrainTemplatePreviewWidget.cs index abb08c3a78..d46470999f 100644 --- a/OpenRA.Mods.Common/Widgets/TerrainTemplatePreviewWidget.cs +++ b/OpenRA.Mods.Common/Widgets/TerrainTemplatePreviewWidget.cs @@ -89,7 +89,7 @@ namespace OpenRA.Mods.Common.Widgets if (tileInfo == null) continue; - var sprite = worldRenderer.Theater.TileSprite(tile); + var sprite = worldRenderer.Theater.TileSprite(tile, 0); var size = new float2(sprite.Size.X * scale, sprite.Size.Y * scale); var u = shape == TileShape.Rectangle ? x : (x - y) / 2f;