From e59cd7832211d2a9c2dcf07bc5c3e35639e5ce57 Mon Sep 17 00:00:00 2001 From: deniz1a Date: Tue, 11 Aug 2015 12:31:23 +0300 Subject: [PATCH] Fixes observer widgets being loaded multiple times at game end. --- .../Logic/Ingame/LoadIngamePlayerOrObserverUILogic.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/OpenRA.Mods.Common/Widgets/Logic/Ingame/LoadIngamePlayerOrObserverUILogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Ingame/LoadIngamePlayerOrObserverUILogic.cs index cd444e23d7..660f676516 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Ingame/LoadIngamePlayerOrObserverUILogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Ingame/LoadIngamePlayerOrObserverUILogic.cs @@ -16,6 +16,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic { public class LoadIngamePlayerOrObserverUILogic { + bool loadingObserverWidgets = false; + [ObjectCreator.UseCtor] public LoadIngamePlayerOrObserverUILogic(Widget widget, World world) { @@ -35,12 +37,15 @@ namespace OpenRA.Mods.Common.Widgets.Logic sidebarTicker.OnTick = () => { // Switch to observer mode after win/loss - if (world.LocalPlayer.WinState != WinState.Undefined) + if (world.LocalPlayer.WinState != WinState.Undefined && !loadingObserverWidgets) + { + loadingObserverWidgets = true; Game.RunAfterDelay(objectives != null ? objectives.Info.GameOverDelay : 0, () => { playerRoot.RemoveChildren(); Game.LoadWidget(world, "OBSERVER_WIDGETS", playerRoot, new WidgetArgs()); }); + } }; }