diff --git a/OpenRa.Game/Actor.cs b/OpenRa.Game/Actor.cs
index fd685c4a8a..759a4ad391 100755
--- a/OpenRa.Game/Actor.cs
+++ b/OpenRa.Game/Actor.cs
@@ -47,12 +47,12 @@ namespace OpenRa.Game
+ "; add Traits= to units.ini for appropriate unit" );
}
- public Actor( TreeReference tree, TreeCache treeRenderer )
- {
- ActorID = 0xffffffff;
- Location = new int2( tree.Location );
- traits.Add( new Traits.Tree( treeRenderer.GetImage( tree.Image ) ) );
- }
+ //public Actor( TreeReference tree, TreeCache treeRenderer )
+ //{
+ // ActorID = 0xffffffff;
+ // Location = new int2( tree.Location );
+ // traits.Add( new Traits.Tree( treeRenderer.GetImage( tree.Image ) ) );
+ //}
public void Tick()
{
diff --git a/OpenRa.Game/Game.cs b/OpenRa.Game/Game.cs
index bae9ae9e39..8041feb2c7 100644
--- a/OpenRa.Game/Game.cs
+++ b/OpenRa.Game/Game.cs
@@ -20,7 +20,6 @@ namespace OpenRa.Game
public static readonly int CellSize = 24;
public static World world;
- static TreeCache treeCache;
public static Viewport viewport;
public static PathFinder PathFinder;
public static WorldRenderer worldRenderer;
@@ -75,14 +74,15 @@ namespace OpenRa.Game
viewport = new Viewport( clientSize, Rules.Map.Offset, Rules.Map.Offset + Rules.Map.Size, renderer );
world = new World();
- treeCache = new TreeCache(Rules.Map);
-
- foreach (TreeReference treeReference in Rules.Map.Trees)
- world.Add(new Actor(treeReference, treeCache));
BuildingInfluence = new BuildingInfluenceMap();
UnitInfluence = new UnitInfluenceMap();
+ foreach (TreeReference treeReference in Rules.Map.Trees)
+ world.Add(new Actor(treeReference.Image,
+ new int2(treeReference.Location),
+ null));
+
LoadMapBuildings(Rules.AllRules);
LoadMapUnits(Rules.AllRules);
diff --git a/OpenRa.Game/GameRules/Rules.cs b/OpenRa.Game/GameRules/Rules.cs
index 817786ae1a..412114f1d2 100755
--- a/OpenRa.Game/GameRules/Rules.cs
+++ b/OpenRa.Game/GameRules/Rules.cs
@@ -31,14 +31,16 @@ namespace OpenRa.Game
FileSystem.Open( "rules.ini" ),
FileSystem.Open( "aftermathUnits.ini" ),
FileSystem.Open( "units.ini" ),
- FileSystem.Open( "campaignUnits.ini" ) );
+ FileSystem.Open("campaignUnits.ini"),
+ FileSystem.Open("trees.ini"));
else
AllRules = new IniFile(
FileSystem.Open("session.ini"),
FileSystem.Open(mapFileName),
FileSystem.Open("rules.ini"),
FileSystem.Open("units.ini"),
- FileSystem.Open("campaignUnits.ini"));
+ FileSystem.Open("campaignUnits.ini"),
+ FileSystem.Open("trees.ini"));
General = new GeneralInfo();
FieldLoader.Load(General, AllRules.GetSection("General"));
diff --git a/OpenRa.Game/Graphics/UnitSheetBuilder.cs b/OpenRa.Game/Graphics/UnitSheetBuilder.cs
index e455ba2dc1..6e423517c7 100644
--- a/OpenRa.Game/Graphics/UnitSheetBuilder.cs
+++ b/OpenRa.Game/Graphics/UnitSheetBuilder.cs
@@ -24,7 +24,7 @@ namespace OpenRa.Game.Graphics
int low = sprites.Count;
- ShpReader reader = new ShpReader( FileSystem.OpenWithExts( name, ".shp", ".tem", ".sno", ".int" ) );
+ ShpReader reader = new ShpReader( FileSystem.OpenWithExts( name, ".tem", ".sno", ".int", ".shp" ) );
foreach (ImageHeader h in reader)
sprites.Add(SheetBuilder.Add(h.Image, reader.Size));
diff --git a/OpenRa.Game/OpenRa.Game.csproj b/OpenRa.Game/OpenRa.Game.csproj
index 608ff6e91f..a513bba673 100644
--- a/OpenRa.Game/OpenRa.Game.csproj
+++ b/OpenRa.Game/OpenRa.Game.csproj
@@ -137,7 +137,6 @@
-
diff --git a/OpenRa.Game/Traits/Building.cs b/OpenRa.Game/Traits/Building.cs
index acd2ab866f..70e6dc18dd 100644
--- a/OpenRa.Game/Traits/Building.cs
+++ b/OpenRa.Game/Traits/Building.cs
@@ -26,7 +26,8 @@ namespace OpenRa.Game.Traits
public void BuildingComplete(Actor self)
{
- self.Owner.ChangePower(unitInfo.Power);
+ if (self.Owner != null)
+ self.Owner.ChangePower(unitInfo.Power);
}
}
}
diff --git a/OpenRa.Game/Traits/RenderBuilding.cs b/OpenRa.Game/Traits/RenderBuilding.cs
index 866e8bdbd5..bb3872c8e7 100644
--- a/OpenRa.Game/Traits/RenderBuilding.cs
+++ b/OpenRa.Game/Traits/RenderBuilding.cs
@@ -66,7 +66,8 @@ namespace OpenRa.Game.Traits
public override IEnumerable> Render(Actor self)
{
- yield return Tuple.New(anim.Image, 24f * (float2)self.Location, self.Owner.Palette);
+ var pal = self.Owner == null ? 0 : self.Owner.Palette;
+ yield return Tuple.New(anim.Image, 24f * (float2)self.Location, pal);
}
public virtual void Damaged(Actor self, DamageState state)
diff --git a/sequences.xml b/sequences.xml
index b4822c05c7..78ee18e470 100644
--- a/sequences.xml
+++ b/sequences.xml
@@ -1,4 +1,4 @@
-
+