diff --git a/OpenRa.Game/Chrome.cs b/OpenRa.Game/Chrome.cs index 7f75931ec6..b0c2a6c9fb 100644 --- a/OpenRa.Game/Chrome.cs +++ b/OpenRa.Game/Chrome.cs @@ -154,15 +154,19 @@ namespace OpenRa TickPaletteAnimation(); TickRadarAnimation(); - if (currentTab == null || !Rules.TechTree.BuildableItems(world.LocalPlayer, currentTab).Any()) - ChooseAvailableTab(world); - visibleTabs.Clear(); foreach (var q in tabImageNames) if (!Rules.TechTree.BuildableItems(world.LocalPlayer, q.Key).Any()) + { CheckDeadTab(world, q.Key); + if (currentTab == q.Key) + currentTab = null; + } else visibleTabs.Add(q.Key); + + if (currentTab == null) + currentTab = visibleTabs.FirstOrDefault(); } public void Draw( World world ) @@ -590,12 +594,6 @@ namespace OpenRa Game.IssueOrder(Order.CancelProduction(world.LocalPlayer, item.Item)); } - void ChooseAvailableTab( World world ) - { - currentTab = tabImageNames.Select(q => q.Key).FirstOrDefault( - t => Rules.TechTree.BuildableItems(world.LocalPlayer, t).Any()); - } - void DrawMoney( World world ) { var moneyDigits = world.LocalPlayer.DisplayCash.ToString();