don't update the actor map outside the map borders

This commit is contained in:
Matthias Mailänder
2014-09-21 10:40:49 +02:00
parent 3f66d310db
commit 44d134afe0

View File

@@ -154,13 +154,17 @@ namespace OpenRA.Traits
public void AddInfluence(Actor self, IOccupySpace ios) public void AddInfluence(Actor self, IOccupySpace ios)
{ {
foreach (var c in ios.OccupiedCells()) foreach (var c in ios.OccupiedCells())
influence[c.First] = new InfluenceNode { Next = influence[c.First], SubCell = c.Second, Actor = self }; if (map.Contains(c.First))
influence[c.First] = new InfluenceNode { Next = influence[c.First], SubCell = c.Second, Actor = self };
} }
public void RemoveInfluence(Actor self, IOccupySpace ios) public void RemoveInfluence(Actor self, IOccupySpace ios)
{ {
foreach (var c in ios.OccupiedCells()) foreach (var c in ios.OccupiedCells())
{ {
if (!map.Contains(c.First))
continue;
var temp = influence[c.First]; var temp = influence[c.First];
RemoveInfluenceInner(ref temp, self); RemoveInfluenceInner(ref temp, self);
influence[c.First] = temp; influence[c.First] = temp;