From 6fc4807a104058dbd3992cacb7408f9d40d3fbf6 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Tue, 26 Feb 2013 09:31:19 +1300 Subject: [PATCH] Remove PaletteReference.FromName from PBOG. --- .../Orders/PlaceBuildingOrderGenerator.cs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/OpenRA.Mods.RA/Orders/PlaceBuildingOrderGenerator.cs b/OpenRA.Mods.RA/Orders/PlaceBuildingOrderGenerator.cs index 031e0d8c57..b65d9cc9c1 100755 --- a/OpenRA.Mods.RA/Orders/PlaceBuildingOrderGenerator.cs +++ b/OpenRA.Mods.RA/Orders/PlaceBuildingOrderGenerator.cs @@ -21,20 +21,17 @@ namespace OpenRA.Mods.RA.Orders { readonly Actor Producer; readonly string Building; - readonly IEnumerable Preview; readonly BuildingInfo BuildingInfo; + IEnumerable preview; Sprite buildOk, buildBlocked; + bool initialized = false; public PlaceBuildingOrderGenerator(Actor producer, string name) { Producer = producer; Building = name; BuildingInfo = Rules.Info[Building].Traits.Get(); - var rbi = Rules.Info[Building].Traits.Get(); - var pr = PaletteReference.FromName(rbi.Palette ?? (producer.Owner != null ? - rbi.PlayerPalette + producer.Owner.InternalName : null)); - Preview = rbi.RenderPreview(Rules.Info[Building], pr); buildOk = SequenceProvider.GetSequence("overlay", "build-valid").GetSprite(0); buildBlocked = SequenceProvider.GetSequence("overlay", "build-invalid").GetSprite(0); } @@ -90,7 +87,17 @@ namespace OpenRA.Mods.RA.Orders } else { - foreach (var r in Preview) + if (!initialized) + { + var rbi = Rules.Info[Building].Traits.Get(); + var palette = rbi.Palette ?? (Producer.Owner != null ? + rbi.PlayerPalette + Producer.Owner.InternalName : null); + + preview = rbi.RenderPreview(Rules.Info[Building], wr.Palette(palette)); + initialized = true; + } + + foreach (var r in preview) r.Sprite.DrawAt(topLeft.ToPPos().ToFloat2() + r.Pos, r.Palette.RowIndex(wr), r.Scale*r.Sprite.size);