Add a hook for widgets being removed, and ensure widgets are removed consistently.

This commit is contained in:
Paul Chote
2011-05-31 21:14:28 +12:00
parent bbce4368d9
commit ad3f378545
9 changed files with 40 additions and 17 deletions

View File

@@ -28,7 +28,7 @@ namespace OpenRA.Mods.RA
public void StartGame()
{
Widget.RootWidget.RemoveChildren();
Widget.ResetAll();
Game.modData.WidgetLoader.LoadWidget( new WidgetArgs(), Widget.RootWidget, "INIT_SETUP" );
}
}

View File

@@ -34,7 +34,7 @@ namespace OpenRA.Mods.RA
public void WorldLoaded(World world)
{
// Remove all open widgets
Widget.RootWidget.Children.Clear();
Widget.ResetAll();
if (world.LocalPlayer != null)
Game.OpenWindow(world, Info.Widget);

View File

@@ -67,7 +67,7 @@ namespace OpenRA.Mods.RA
public void StartGame()
{
Widget.RootWidget.RemoveChildren();
Widget.ResetAll();
Game.modData.WidgetLoader.LoadWidget( new WidgetArgs(), Widget.RootWidget, "INIT_SETUP" );
}
}

View File

@@ -47,7 +47,8 @@ namespace OpenRA.Mods.RA.Widgets.Logic
// This is shit
void LayoutDialog(Widget bg)
{
bg.Children.RemoveAll(w => controls.Contains(w));
foreach (var c in controls)
bg.RemoveChild(c);
controls.Clear();
var y = 50;

View File

@@ -68,7 +68,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
Game.LoadShellMap();
if (Info.InstallMode != "cnc")
{
Widget.RootWidget.RemoveChildren();
Widget.ResetAll();
Widget.OpenWindow("MAINMENU_BG");
}
}