From f2e6601e07a73e43207bbb04f0143c63e1c60fcc Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Sat, 11 Feb 2017 16:25:36 +0000 Subject: [PATCH] Remove legacy MP lobby mod and replay switching logic. --- OpenRA.Game/Network/OrderManager.cs | 1 - OpenRA.Game/Network/UnitOrders.cs | 11 ---- .../Widgets/Logic/ConnectionLogic.cs | 54 +++++-------------- .../Widgets/Logic/Lobby/LobbyLogic.cs | 3 +- 4 files changed, 14 insertions(+), 55 deletions(-) diff --git a/OpenRA.Game/Network/OrderManager.cs b/OpenRA.Game/Network/OrderManager.cs index b103e4c7ae..3028a70e50 100644 --- a/OpenRA.Game/Network/OrderManager.cs +++ b/OpenRA.Game/Network/OrderManager.cs @@ -34,7 +34,6 @@ namespace OpenRA.Network public string ServerError = "Server is not responding"; public bool AuthenticationFailed = false; - public Manifest ServerMod = null; public ExternalMod ServerExternalMod = null; public int NetFrameNumber { get; private set; } diff --git a/OpenRA.Game/Network/UnitOrders.cs b/OpenRA.Game/Network/UnitOrders.cs index 798d430908..e3a2972292 100644 --- a/OpenRA.Game/Network/UnitOrders.cs +++ b/OpenRA.Game/Network/UnitOrders.cs @@ -135,17 +135,6 @@ namespace OpenRA.Network var mod = Game.ModData.Manifest; var request = HandshakeRequest.Deserialize(order.TargetString); - Manifest serverMod; - if (request.Mod != mod.Id && - Game.Mods.TryGetValue(request.Mod, out serverMod) && - serverMod.Metadata.Version == request.Version) - { - // The ConnectionFailedLogic will prompt the user to switch mods - orderManager.ServerMod = serverMod; - orderManager.Connection.Dispose(); - break; - } - var externalKey = ExternalMod.MakeKey(request.Mod, request.Version); ExternalMod external; if ((request.Mod != mod.Id || request.Version != mod.Metadata.Version) diff --git a/OpenRA.Mods.Common/Widgets/Logic/ConnectionLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/ConnectionLogic.cs index fae22d4c5c..a37505dad9 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/ConnectionLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/ConnectionLogic.cs @@ -32,8 +32,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic { CloseWindow(); - var switchPanel = (om.ServerExternalMod != null || om.ServerMod != null) ? - "CONNECTION_SWITCHMOD_PANEL" : "CONNECTIONFAILED_PANEL"; + var switchPanel = om.ServerExternalMod != null ? "CONNECTION_SWITCHMOD_PANEL" : "CONNECTIONFAILED_PANEL"; Ui.OpenWindow(switchPanel, new WidgetArgs() { { "orderManager", om }, @@ -160,51 +159,24 @@ namespace OpenRA.Mods.Common.Widgets.Logic var abortButton = panel.Get("ABORT_BUTTON"); var switchButton = panel.Get("SWITCH_BUTTON"); - var modTitle = ""; - var modVersion = ""; - Sprite modIcon = null; - if (orderManager.ServerExternalMod != null) - { - modTitle = orderManager.ServerExternalMod.Title; - modVersion = orderManager.ServerExternalMod.Version; - modIcon = orderManager.ServerExternalMod.Icon; - } - else - { - modTitle = orderManager.ServerMod.Metadata.Title; - modVersion = orderManager.ServerMod.Metadata.Version; - modIcon = Game.Mods.Icons[orderManager.ServerMod.Id]; - } + var modTitle = orderManager.ServerExternalMod.Title; + var modVersion = orderManager.ServerExternalMod.Version; + var modIcon = orderManager.ServerExternalMod.Icon; switchButton.OnClick = () => { - // Note: Switching mods for directly launched replays is handled by the load screen - // and the replay browser prevents loading replays from other mods, so it doesn't look - // like this replay case is ever hit. - var replay = orderManager.Connection as ReplayConnection; - var launchCommand = replay != null ? - "Launch.Replay=" + replay.Filename : - "Launch.Connect=" + orderManager.Host + ":" + orderManager.Port; - - if (orderManager.ServerExternalMod != null) + var launchCommand = "Launch.Connect=" + orderManager.Host + ":" + orderManager.Port; + Game.SwitchToExternalMod(orderManager.ServerExternalMod, new[] { launchCommand }, () => { - Game.SwitchToExternalMod(orderManager.ServerExternalMod, new[] { launchCommand }, () => + orderManager.ServerError = "Failed to switch mod."; + Ui.CloseWindow(); + Ui.OpenWindow("CONNECTIONFAILED_PANEL", new WidgetArgs() { - orderManager.ServerError = "Failed to switch mod."; - Ui.CloseWindow(); - Ui.OpenWindow("CONNECTIONFAILED_PANEL", new WidgetArgs() - { - { "orderManager", orderManager }, - { "onAbort", onAbort }, - { "onRetry", onRetry } - }); + { "orderManager", orderManager }, + { "onAbort", onAbort }, + { "onRetry", onRetry } }); - } - else - { - Game.ModData.LoadScreen.Display(); - Game.InitializeMod(orderManager.ServerMod.Id, new Arguments(launchCommand)); - } + }); }; abortButton.Visible = onAbort != null; diff --git a/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyLogic.cs index 2e734f48a8..b9500e8aac 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyLogic.cs @@ -91,8 +91,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic Action onRetry = password => ConnectionLogic.Connect(om.Host, om.Port, password, onConnect, onExit); - var switchPanel = (om.ServerExternalMod != null || om.ServerMod != null) ? - "CONNECTION_SWITCHMOD_PANEL" : "CONNECTIONFAILED_PANEL"; + var switchPanel = om.ServerExternalMod != null ? "CONNECTION_SWITCHMOD_PANEL" : "CONNECTIONFAILED_PANEL"; Ui.OpenWindow(switchPanel, new WidgetArgs() { { "orderManager", om },