From 4ff5b9a89f9d8ddca83afbc55ce078a2eb55b283 Mon Sep 17 00:00:00 2001 From: Duncan Date: Sat, 16 Jan 2021 15:48:39 +0000 Subject: [PATCH] Reset Entity to 0 on removal (#13835) This is to force any use after remove bugs to the surface --- src/openrct2/ride/Ride.cpp | 4 ++-- src/openrct2/world/Sprite.cpp | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/openrct2/ride/Ride.cpp b/src/openrct2/ride/Ride.cpp index 2037e3b374..9f5f69b43f 100644 --- a/src/openrct2/ride/Ride.cpp +++ b/src/openrct2/ride/Ride.cpp @@ -1023,8 +1023,8 @@ static void ride_remove_cable_lift(Ride* ride) return; } vehicle->Invalidate(); - sprite_remove(vehicle); spriteIndex = vehicle->next_vehicle_on_train; + sprite_remove(vehicle); } while (spriteIndex != SPRITE_INDEX_NULL); } } @@ -1051,8 +1051,8 @@ static void ride_remove_vehicles(Ride* ride) break; } vehicle->Invalidate(); - sprite_remove(vehicle); spriteIndex = vehicle->next_vehicle_on_train; + sprite_remove(vehicle); } ride->vehicles[i] = SPRITE_INDEX_NULL; diff --git a/src/openrct2/world/Sprite.cpp b/src/openrct2/world/Sprite.cpp index 902bde4808..41ecc0f420 100644 --- a/src/openrct2/world/Sprite.cpp +++ b/src/openrct2/world/Sprite.cpp @@ -797,10 +797,8 @@ void sprite_remove(SpriteBase* sprite) EntityTweener::Get().RemoveEntity(sprite); move_sprite_to_list(sprite, EntityListId::Free); - sprite->sprite_identifier = SpriteIdentifier::Null; - _spriteFlashingList[sprite->sprite_index] = false; - SpriteSpatialRemove(sprite); + sprite_reset(sprite); } static bool litter_can_be_at(const CoordsXYZ& mapPos)