diff --git a/OpenRA.Mods.RA/Cargo.cs b/OpenRA.Mods.RA/Cargo.cs index 9f2b6f46bf..616d222021 100644 --- a/OpenRA.Mods.RA/Cargo.cs +++ b/OpenRA.Mods.RA/Cargo.cs @@ -36,10 +36,10 @@ namespace OpenRA.Mods.RA readonly List cargo = new List(); readonly HashSet reserves = new HashSet(); - CPos cachedLocation; int totalWeight = 0; int reservedWeight = 0; + CPos currentCell; public IEnumerable CurrentAdjacentCells { get; private set; } public bool Unloading { get; internal set; } public IEnumerable Passengers { get { return cargo; } } @@ -269,7 +269,7 @@ namespace OpenRA.Mods.RA public void AddedToWorld(Actor self) { // Force location update to avoid issues when initial spawn is outside map - cachedLocation = self.Location; + currentCell = self.Location; CurrentAdjacentCells = GetAdjacentCells(); } @@ -286,13 +286,13 @@ namespace OpenRA.Mods.RA foreach (var npe in self.TraitsImplementing()) npe.PassengerEntered(self, c); } - initialized = true; } - if (cachedLocation != self.Location) + var cell = self.World.Map.CellContaining(self.CenterPosition); + if (currentCell != cell) { - cachedLocation = self.Location; + currentCell = cell; CurrentAdjacentCells = GetAdjacentCells(); } }