Track actor positions in ActorMap.

This commit is contained in:
Paul Chote
2013-09-21 16:06:39 +12:00
parent b00cc6108d
commit e03ec690ff
8 changed files with 64 additions and 8 deletions

View File

@@ -103,9 +103,7 @@ namespace OpenRA.Mods.RA
public void SetPosition(Actor self, CPos cell)
{
if (self.IsInWorld)
self.World.ActorMap.RemoveInfluence(self, this);
self.World.ActorMap.RemoveInfluence(self, this);
Location = cell;
CenterPosition = cell.CenterPosition;
@@ -117,6 +115,7 @@ namespace OpenRA.Mods.RA
if (self.IsInWorld)
{
self.World.ActorMap.AddInfluence(self, this);
self.World.ActorMap.UpdatePosition(self, this);
self.World.ScreenMap.Update(self);
}
}
@@ -129,12 +128,14 @@ namespace OpenRA.Mods.RA
public void AddedToWorld(Actor self)
{
self.World.ActorMap.AddInfluence(self, this);
self.World.ActorMap.AddPosition(self, this);
self.World.ScreenMap.Add(self);
}
public void RemovedFromWorld(Actor self)
{
self.World.ActorMap.RemoveInfluence(self, this);
self.World.ActorMap.RemovePosition(self, this);
self.World.ScreenMap.Remove(self);
}
}