Merge pull request #9852 from RoosterDragon/event-handler-removals
Detach some event handlers
This commit is contained in:
@@ -207,6 +207,8 @@ namespace OpenRA.Mods.Common.Traits
|
||||
foreach (var kv in spriteLayers.Values)
|
||||
kv.Dispose();
|
||||
|
||||
Map.MapResources.Value.CellEntryChanged -= UpdateCell;
|
||||
|
||||
disposed = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -294,6 +294,8 @@ namespace OpenRA.Mods.Common.Traits
|
||||
foreach (var kv in spriteLayers.Values)
|
||||
kv.Dispose();
|
||||
|
||||
RenderContent.CellEntryChanged -= UpdateSpriteLayers;
|
||||
|
||||
disposed = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -217,17 +217,19 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
}
|
||||
}
|
||||
|
||||
Game.OnRemoteDirectConnect += (host, port) =>
|
||||
Game.OnRemoteDirectConnect += OnRemoteDirectConnect;
|
||||
}
|
||||
|
||||
void OnRemoteDirectConnect(string host, int port)
|
||||
{
|
||||
menuType = MenuType.None;
|
||||
Ui.OpenWindow("MULTIPLAYER_PANEL", new WidgetArgs
|
||||
{
|
||||
menuType = MenuType.None;
|
||||
Ui.OpenWindow("MULTIPLAYER_PANEL", new WidgetArgs
|
||||
{
|
||||
{ "onStart", RemoveShellmapUI },
|
||||
{ "onExit", () => menuType = MenuType.Main },
|
||||
{ "directConnectHost", host },
|
||||
{ "directConnectPort", port },
|
||||
});
|
||||
};
|
||||
{ "onStart", RemoveShellmapUI },
|
||||
{ "onExit", () => menuType = MenuType.Main },
|
||||
{ "directConnectHost", host },
|
||||
{ "directConnectPort", port },
|
||||
});
|
||||
}
|
||||
|
||||
void LoadMapIntoEditor(Map map)
|
||||
@@ -362,5 +364,12 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
||||
OpenSkirmishLobbyPanel,
|
||||
() => { Game.CloseServer(); menuType = MenuType.Main; });
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
Game.OnRemoteDirectConnect -= OnRemoteDirectConnect;
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -442,5 +442,12 @@ namespace OpenRA.Mods.Common.Widgets
|
||||
var v = (int)((p.Y - mapRect.Y) / previewScale) + world.Map.Bounds.Top;
|
||||
return new MPos(u, v).ToCPos(world.Map);
|
||||
}
|
||||
|
||||
public override void Removed()
|
||||
{
|
||||
base.Removed();
|
||||
world.Map.MapTiles.Value.CellEntryChanged -= UpdateTerrainCell;
|
||||
world.Map.CustomTerrain.CellEntryChanged -= UpdateTerrainCell;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user