Only show the diplomacy window if its useful

This commit is contained in:
Paul Chote
2010-07-27 20:25:04 +12:00
parent 9a704e69b2
commit 966f607230

View File

@@ -20,17 +20,22 @@ namespace OpenRA.Widgets.Delegates
{
static List<Widget> controls = new List<Widget>();
int validPlayers = 0;
public DiplomacyDelegate()
{
var diplomacyBG = Widget.RootWidget.GetWidget("DIPLOMACY_BG");
Widget.RootWidget.GetWidget("INGAME_DIPLOMACY_BUTTON").OnMouseUp = mi =>
var root = Widget.RootWidget.GetWidget("INGAME_ROOT");
var diplomacyBG = root.GetWidget("DIPLOMACY_BG");
var diplomacy = root.GetWidget("INGAME_DIPLOMACY_BUTTON");
diplomacy.OnMouseUp = mi =>
{
diplomacyBG.Visible = !diplomacyBG.Visible;
if (diplomacyBG.IsVisible())
LayoutDialog(diplomacyBG);
return true;
};
Game.OnGameStart += () => validPlayers = Game.world.players.Values.Where(a => a != Game.world.LocalPlayer && !a.NonCombatant).Count();
diplomacy.IsVisible = () => (validPlayers > 0);
}
void LayoutDialog(Widget bg)