diff --git a/src/openrct2/entity/EntityBase.cpp b/src/openrct2/entity/EntityBase.cpp index 7b61eb001c..862211a732 100644 --- a/src/openrct2/entity/EntityBase.cpp +++ b/src/openrct2/entity/EntityBase.cpp @@ -20,18 +20,6 @@ template<> bool EntityBase::Is() const return true; } -CoordsXYZ EntityBase::GetLocation() const -{ - return { x, y, z }; -} - -void EntityBase::SetLocation(const CoordsXYZ& newLocation) -{ - x = newLocation.x; - y = newLocation.y; - z = newLocation.z; -} - void EntityBase::Invalidate() { if (x == kLocationNull) diff --git a/src/openrct2/entity/EntityRegistry.cpp b/src/openrct2/entity/EntityRegistry.cpp index 10ae01abb9..3a0104a815 100644 --- a/src/openrct2/entity/EntityRegistry.cpp +++ b/src/openrct2/entity/EntityRegistry.cpp @@ -464,6 +464,19 @@ void UpdateEntitiesSpatialIndex() } } +CoordsXYZ EntityBase::GetLocation() const +{ + return { x, y, z }; +} + +void EntityBase::SetLocation(const CoordsXYZ& newLocation) +{ + x = newLocation.x; + y = newLocation.y; + z = newLocation.z; + SpatialIndex |= kSpatialIndexDirtyMask; +} + void EntityBase::MoveTo(const CoordsXYZ& newLocation) { if (x != kLocationNull) @@ -478,17 +491,9 @@ void EntityBase::MoveTo(const CoordsXYZ& newLocation) loc.x = kLocationNull; } - const auto newSpatialIndex = ComputeSpatialIndex(loc); - if (newSpatialIndex != GetSpatialIndex(this)) - { - SpatialIndex |= kSpatialIndexDirtyMask; - } - if (loc.x == kLocationNull) { - x = loc.x; - y = loc.y; - z = loc.z; + SetLocation(loc); } else {