Remove invalid caching from GCOT.

This commit is contained in:
Paul Chote
2020-03-18 09:58:25 +00:00
committed by abcdefg30
parent 32700df117
commit 1ff037a257

View File

@@ -35,9 +35,7 @@ namespace OpenRA.Mods.Common.Traits
ConditionManager conditionManager;
int conditionToken = ConditionManager.InvalidConditionToken;
string cachedTerrain;
CPos cachedLocation;
public GrantConditionOnTerrain(ActorInitializer init, GrantConditionOnTerrainInfo info)
{
@@ -53,9 +51,10 @@ namespace OpenRA.Mods.Common.Traits
void ITick.Tick(Actor self)
{
var loc = self.Location;
if (conditionManager == null || loc == cachedLocation)
if (conditionManager == null)
return;
// The terrain type may change between ticks without the actor moving
var currentTerrain = loc.Layer == 0 ? self.World.Map.GetTerrainInfo(loc).Type :
tileSet[self.World.GetCustomMovementLayers()[loc.Layer].GetTerrainIndex(loc)].Type;
@@ -69,7 +68,6 @@ namespace OpenRA.Mods.Common.Traits
}
cachedTerrain = currentTerrain;
cachedLocation = loc;
}
}
}