From c8f7d9e714323f785e09deea98350c51e7c83f94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sat, 9 Nov 2013 18:02:29 +0100 Subject: [PATCH] allow spectators to still select bot spawn points closes #2137 --- OpenRA.Mods.RA/Widgets/Logic/LobbyUtils.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/OpenRA.Mods.RA/Widgets/Logic/LobbyUtils.cs b/OpenRA.Mods.RA/Widgets/Logic/LobbyUtils.cs index b348311e17..1c656ba881 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/LobbyUtils.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/LobbyUtils.cs @@ -142,8 +142,11 @@ namespace OpenRA.Mods.RA.Widgets.Logic public static void SelectSpawnPoint(OrderManager orderManager, MapPreviewWidget mapPreview, Map map, MouseInput mi) { - if (map == null || mi.Button != MouseButton.Left - || orderManager.LocalClient.State == Session.ClientState.Ready) + if (map == null) + return; + if (mi.Button != MouseButton.Left) + return; + if (!orderManager.LocalClient.IsObserver && orderManager.LocalClient.State == Session.ClientState.Ready) return; var selectedSpawn = map.GetSpawnPoints() @@ -156,7 +159,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic if (selectedSpawn == 0 || !owned) { var locals = orderManager.LobbyInfo.Clients.Where(c => c.Index == orderManager.LocalClient.Index || (Game.IsHost && c.Bot != null)); - var playerToMove = locals.FirstOrDefault(c => (selectedSpawn == 0) ^ (c.SpawnPoint == 0)); + var playerToMove = locals.FirstOrDefault(c => ((selectedSpawn == 0) ^ (c.SpawnPoint == 0) && !c.IsObserver)); orderManager.IssueOrder(Order.Command("spawn {0} {1}".F((playerToMove ?? orderManager.LocalClient).Index, selectedSpawn))); } }