fixing crash.

This commit is contained in:
Bob
2010-01-17 14:00:56 +13:00
parent 356b449374
commit d60cc6deb0
3 changed files with 7 additions and 7 deletions

View File

@@ -8,12 +8,12 @@ namespace OpenRa
bool[,] blocked = new bool[128, 128]; bool[,] blocked = new bool[128, 128];
Actor[,] influence = new Actor[128, 128]; Actor[,] influence = new Actor[128, 128];
public BuildingInfluenceMap() public BuildingInfluenceMap( World world )
{ {
Game.world.ActorAdded += world.ActorAdded +=
a => { if (a.traits.Contains<Building>()) a => { if (a.traits.Contains<Building>())
ChangeInfluence(a, a.traits.Get<Building>(), true); }; ChangeInfluence(a, a.traits.Get<Building>(), true); };
Game.world.ActorRemoved += world.ActorRemoved +=
a => { if (a.traits.Contains<Building>()) a => { if (a.traits.Contains<Building>())
ChangeInfluence(a, a.traits.Get<Building>(), false); }; ChangeInfluence(a, a.traits.Get<Building>(), false); };
} }

View File

@@ -11,13 +11,13 @@ namespace OpenRa
List<Actor>[,] influence = new List<Actor>[128, 128]; List<Actor>[,] influence = new List<Actor>[128, 128];
readonly int2 searchDistance = new int2(2,2); readonly int2 searchDistance = new int2(2,2);
public UnitInfluenceMap() public UnitInfluenceMap( World world )
{ {
for (int i = 0; i < 128; i++) for (int i = 0; i < 128; i++)
for (int j = 0; j < 128; j++) for (int j = 0; j < 128; j++)
influence[ i, j ] = new List<Actor>(); influence[ i, j ] = new List<Actor>();
Game.world.ActorRemoved += a => Remove( a, a.traits.GetOrDefault<IOccupySpace>() ); world.ActorRemoved += a => Remove( a, a.traits.GetOrDefault<IOccupySpace>() );
} }
public void Tick() public void Tick()

View File

@@ -27,8 +27,8 @@ namespace OpenRa
FileSystem.MountTemporary( new Package( Map.Theater + ".mix" ) ); FileSystem.MountTemporary( new Package( Map.Theater + ".mix" ) );
TileSet = new TileSet( Map.TileSuffix ); TileSet = new TileSet( Map.TileSuffix );
BuildingInfluence = new BuildingInfluenceMap(); BuildingInfluence = new BuildingInfluenceMap( this );
UnitInfluence = new UnitInfluenceMap(); UnitInfluence = new UnitInfluenceMap( this );
oreFrequency = (int)(Rules.General.GrowthRate * 60 * 25); oreFrequency = (int)(Rules.General.GrowthRate * 60 * 25);
oreTicks = oreFrequency; oreTicks = oreFrequency;