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)