Remove legacy MP lobby mod and replay switching logic.

This commit is contained in:
Paul Chote
2017-02-11 16:25:36 +00:00
parent 69a869fe43
commit f2e6601e07
4 changed files with 14 additions and 55 deletions

View File

@@ -34,7 +34,6 @@ namespace OpenRA.Network
public string ServerError = "Server is not responding"; public string ServerError = "Server is not responding";
public bool AuthenticationFailed = false; public bool AuthenticationFailed = false;
public Manifest ServerMod = null;
public ExternalMod ServerExternalMod = null; public ExternalMod ServerExternalMod = null;
public int NetFrameNumber { get; private set; } public int NetFrameNumber { get; private set; }

View File

@@ -135,17 +135,6 @@ namespace OpenRA.Network
var mod = Game.ModData.Manifest; var mod = Game.ModData.Manifest;
var request = HandshakeRequest.Deserialize(order.TargetString); 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); var externalKey = ExternalMod.MakeKey(request.Mod, request.Version);
ExternalMod external; ExternalMod external;
if ((request.Mod != mod.Id || request.Version != mod.Metadata.Version) if ((request.Mod != mod.Id || request.Version != mod.Metadata.Version)

View File

@@ -32,8 +32,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
{ {
CloseWindow(); CloseWindow();
var switchPanel = (om.ServerExternalMod != null || om.ServerMod != null) ? var switchPanel = om.ServerExternalMod != null ? "CONNECTION_SWITCHMOD_PANEL" : "CONNECTIONFAILED_PANEL";
"CONNECTION_SWITCHMOD_PANEL" : "CONNECTIONFAILED_PANEL";
Ui.OpenWindow(switchPanel, new WidgetArgs() Ui.OpenWindow(switchPanel, new WidgetArgs()
{ {
{ "orderManager", om }, { "orderManager", om },
@@ -160,51 +159,24 @@ namespace OpenRA.Mods.Common.Widgets.Logic
var abortButton = panel.Get<ButtonWidget>("ABORT_BUTTON"); var abortButton = panel.Get<ButtonWidget>("ABORT_BUTTON");
var switchButton = panel.Get<ButtonWidget>("SWITCH_BUTTON"); var switchButton = panel.Get<ButtonWidget>("SWITCH_BUTTON");
var modTitle = ""; var modTitle = orderManager.ServerExternalMod.Title;
var modVersion = ""; var modVersion = orderManager.ServerExternalMod.Version;
Sprite modIcon = null; var modIcon = orderManager.ServerExternalMod.Icon;
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];
}
switchButton.OnClick = () => switchButton.OnClick = () =>
{ {
// Note: Switching mods for directly launched replays is handled by the load screen var launchCommand = "Launch.Connect=" + orderManager.Host + ":" + orderManager.Port;
// and the replay browser prevents loading replays from other mods, so it doesn't look Game.SwitchToExternalMod(orderManager.ServerExternalMod, new[] { launchCommand }, () =>
// 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)
{ {
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."; { "orderManager", orderManager },
Ui.CloseWindow(); { "onAbort", onAbort },
Ui.OpenWindow("CONNECTIONFAILED_PANEL", new WidgetArgs() { "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; abortButton.Visible = onAbort != null;

View File

@@ -91,8 +91,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
Action<string> onRetry = password => ConnectionLogic.Connect(om.Host, om.Port, password, onConnect, onExit); Action<string> onRetry = password => ConnectionLogic.Connect(om.Host, om.Port, password, onConnect, onExit);
var switchPanel = (om.ServerExternalMod != null || om.ServerMod != null) ? var switchPanel = om.ServerExternalMod != null ? "CONNECTION_SWITCHMOD_PANEL" : "CONNECTIONFAILED_PANEL";
"CONNECTION_SWITCHMOD_PANEL" : "CONNECTIONFAILED_PANEL";
Ui.OpenWindow(switchPanel, new WidgetArgs() Ui.OpenWindow(switchPanel, new WidgetArgs()
{ {
{ "orderManager", om }, { "orderManager", om },