From bbb186d9c8021ad1e75d7f9b49b9ffe90d42e0cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Mon, 3 Aug 2015 10:28:32 +0200 Subject: [PATCH] fix marking player as spectator going through unsynced code --- OpenRA.Mods.Common/Traits/Player/MissionObjectives.cs | 3 +++ .../Widgets/Logic/Ingame/LoadIngamePlayerOrObserverUILogic.cs | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/OpenRA.Mods.Common/Traits/Player/MissionObjectives.cs b/OpenRA.Mods.Common/Traits/Player/MissionObjectives.cs index e1c64d51ee..2b48951965 100644 --- a/OpenRA.Mods.Common/Traits/Player/MissionObjectives.cs +++ b/OpenRA.Mods.Common/Traits/Player/MissionObjectives.cs @@ -238,7 +238,10 @@ namespace OpenRA.Mods.Common.Traits public void ResolveOrder(Actor self, Order order) { if (order.OrderString == "Surrender") + { ForceDefeat(self.Owner); + self.Owner.Spectating = true; + } } } diff --git a/OpenRA.Mods.Common/Widgets/Logic/Ingame/LoadIngamePlayerOrObserverUILogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Ingame/LoadIngamePlayerOrObserverUILogic.cs index 13f5568645..cd444e23d7 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Ingame/LoadIngamePlayerOrObserverUILogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Ingame/LoadIngamePlayerOrObserverUILogic.cs @@ -38,7 +38,6 @@ namespace OpenRA.Mods.Common.Widgets.Logic if (world.LocalPlayer.WinState != WinState.Undefined) Game.RunAfterDelay(objectives != null ? objectives.Info.GameOverDelay : 0, () => { - world.LocalPlayer.Spectating = true; playerRoot.RemoveChildren(); Game.LoadWidget(world, "OBSERVER_WIDGETS", playerRoot, new WidgetArgs()); });