From 0f94af763af7539e71df47797dc17fc9fc9050a4 Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Sat, 10 Oct 2009 21:30:47 +1300 Subject: [PATCH] fix selection of phantom units, etc --- OpenRa.Game/Game.cs | 2 +- OpenRa.Game/Graphics/WorldRenderer.cs | 5 +++-- OpenRa.Game/MainWindow.cs | 2 +- OpenRa.Game/Sidebar.cs | 2 +- OpenRa.Game/TechTree/TechTree.cs | 9 +-------- 5 files changed, 7 insertions(+), 13 deletions(-) diff --git a/OpenRa.Game/Game.cs b/OpenRa.Game/Game.cs index b3ec25dce4..a97f177de1 100644 --- a/OpenRa.Game/Game.cs +++ b/OpenRa.Game/Game.cs @@ -30,7 +30,7 @@ namespace OpenRa.Game Rules.LoadRules(); for( int i = 0 ; i < 8 ; i++ ) - players.Add(i, new Player(i, string.Format("Multi{0}", i), OpenRa.TechTree.Race.Soviet)); + players.Add(i, new Player(i, string.Format("Multi{0}", i), OpenRa.TechTree.Race.Allies)); map = new Map(new IniFile(FileSystem.Open(mapName))); FileSystem.Mount(new Package(map.Theater + ".mix")); diff --git a/OpenRa.Game/Graphics/WorldRenderer.cs b/OpenRa.Game/Graphics/WorldRenderer.cs index 2770e8e10a..dc126d6966 100644 --- a/OpenRa.Game/Graphics/WorldRenderer.cs +++ b/OpenRa.Game/Graphics/WorldRenderer.cs @@ -1,4 +1,5 @@ -using System.Drawing; +using System.Drawing; +using System.Linq; using System.Windows.Forms; namespace OpenRa.Game.Graphics @@ -71,7 +72,7 @@ namespace OpenRa.Game.Graphics var selection = world.game.controller.orderGenerator as UnitOrderGenerator; if (selection != null) - foreach( var a in selection.selection ) + foreach( var a in world.Actors.Intersect(selection.selection) ) /* make sure we don't grab actors that are dead */ DrawSelectionBox(a, Color.White); diff --git a/OpenRa.Game/MainWindow.cs b/OpenRa.Game/MainWindow.cs index 666ce30c8c..4fd91e9698 100644 --- a/OpenRa.Game/MainWindow.cs +++ b/OpenRa.Game/MainWindow.cs @@ -49,7 +49,7 @@ namespace OpenRa.Game game.world.Add( new Actor( "mcv", new int2( 9, 5 ), game.players[ 0 ] ) ); game.world.Add( new Actor( "jeep", new int2( 9, 7 ), game.players[ 1 ] ) ); - sidebar = new Sidebar(Race.Soviet, renderer, game); + sidebar = new Sidebar(renderer, game); renderer.SetPalette(new HardwarePalette(renderer, game.map)); } diff --git a/OpenRa.Game/Sidebar.cs b/OpenRa.Game/Sidebar.cs index c412453c8d..ccca84fc9f 100644 --- a/OpenRa.Game/Sidebar.cs +++ b/OpenRa.Game/Sidebar.cs @@ -34,7 +34,7 @@ namespace OpenRa.Game List items = new List(); - public Sidebar( Race race, Renderer renderer, Game game ) + public Sidebar( Renderer renderer, Game game ) { this.techTree = game.LocalPlayer.TechTree; this.techTree.BuildableItemsChanged += PopulateItemList; diff --git a/OpenRa.Game/TechTree/TechTree.cs b/OpenRa.Game/TechTree/TechTree.cs index 756f5003f3..98f610676f 100644 --- a/OpenRa.Game/TechTree/TechTree.cs +++ b/OpenRa.Game/TechTree/TechTree.cs @@ -94,17 +94,10 @@ namespace OpenRa.TechTree void CheckAll() { - bool changed = false; foreach (Item unit in objects.Values) - { - bool old = unit.CanBuild; unit.CheckPrerequisites(built, currentRace); - if (old != unit.CanBuild) - changed = true; - } - //if (changed) - BuildableItemsChanged(); + BuildableItemsChanged(); } public IEnumerable BuildableItems