From 0040db61cdd082defa2391cd8d1c20862b69eb6b Mon Sep 17 00:00:00 2001 From: Matthew Bowra-Dean Date: Mon, 9 Nov 2009 23:07:35 +1300 Subject: [PATCH] Fixed specialised buildings not having their power requirements added/subtracted. --- OpenRa.Game/Traits/RenderBuilding.cs | 17 +++++++++++------ OpenRa.Game/Traits/RenderBuildingOre.cs | 2 +- OpenRa.Game/Traits/RenderBuildingTurreted.cs | 2 +- OpenRa.Game/Traits/RenderBuildingWarFactory.cs | 2 +- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/OpenRa.Game/Traits/RenderBuilding.cs b/OpenRa.Game/Traits/RenderBuilding.cs index 7185a395b7..67468e3975 100644 --- a/OpenRa.Game/Traits/RenderBuilding.cs +++ b/OpenRa.Game/Traits/RenderBuilding.cs @@ -21,19 +21,24 @@ namespace OpenRa.Game.Traits Make(() => { anim.PlayRepeating("idle"); - foreach (var x in self.traits.WithInterface()) - x.BuildingComplete(self); - }); + }, self); DoBib(self, false); } - protected void Make( Action after ) + protected void Make( Action after, Actor self ) { - if (Game.skipMakeAnims) + Action newAfter = () => + { after(); + foreach (var x in self.traits.WithInterface()) + x.BuildingComplete(self); + }; + + if (Game.skipMakeAnims) + newAfter(); else - anim.PlayThen("make", after); + anim.PlayThen("make", newAfter); } void DoBib(Actor self, bool isRemove) diff --git a/OpenRa.Game/Traits/RenderBuildingOre.cs b/OpenRa.Game/Traits/RenderBuildingOre.cs index 036e8f796e..1465c7def7 100644 --- a/OpenRa.Game/Traits/RenderBuildingOre.cs +++ b/OpenRa.Game/Traits/RenderBuildingOre.cs @@ -11,7 +11,7 @@ namespace OpenRa.Game.Traits : base(self) { Make( () => anim.PlayFetchIndex("idle", - () => (int)(5 * self.Owner.GetSiloFullness()))); + () => (int)(5 * self.Owner.GetSiloFullness())), self); } } } diff --git a/OpenRa.Game/Traits/RenderBuildingTurreted.cs b/OpenRa.Game/Traits/RenderBuildingTurreted.cs index e5fb905343..0825e8fa70 100644 --- a/OpenRa.Game/Traits/RenderBuildingTurreted.cs +++ b/OpenRa.Game/Traits/RenderBuildingTurreted.cs @@ -10,7 +10,7 @@ namespace OpenRa.Game.Traits public RenderBuildingTurreted(Actor self) : base(self) { - Make( () => PlayTurretAnim( self, "idle" )); + Make( () => PlayTurretAnim( self, "idle" ), self); } void PlayTurretAnim(Actor self, string a) diff --git a/OpenRa.Game/Traits/RenderBuildingWarFactory.cs b/OpenRa.Game/Traits/RenderBuildingWarFactory.cs index e9cbf21fe0..9bed59f2c7 100644 --- a/OpenRa.Game/Traits/RenderBuildingWarFactory.cs +++ b/OpenRa.Game/Traits/RenderBuildingWarFactory.cs @@ -26,7 +26,7 @@ namespace OpenRa.Game.Traits doneBuilding = true; anim.Play("idle"); roof.Play(prefix + "idle-top"); - }); + }, self); } public IEnumerable> RenderRoof(Actor self)