mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2025-12-21 14:53:02 +01:00
Refactor sprite_remove
This commit is contained in:
@@ -422,7 +422,7 @@ private:
|
||||
{
|
||||
litter = &(get_sprite(spriteIndex)->litter);
|
||||
nextSpriteIndex = litter->next;
|
||||
sprite_remove((rct_sprite*)litter);
|
||||
sprite_remove(litter);
|
||||
}
|
||||
|
||||
tile_element_iterator it;
|
||||
|
||||
@@ -154,7 +154,7 @@ private:
|
||||
if (execute == false)
|
||||
{
|
||||
// In query we just want to see if we can obtain a sprite slot.
|
||||
sprite_remove((rct_sprite*)newPeep);
|
||||
sprite_remove(newPeep);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -849,7 +849,7 @@ void peep_sprite_remove(Peep* peep)
|
||||
|
||||
news_item_disable_news(NEWS_ITEM_PEEP, peep->sprite_index);
|
||||
}
|
||||
sprite_remove((rct_sprite*)peep);
|
||||
sprite_remove(peep);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1014,7 +1014,7 @@ static void ride_remove_cable_lift(Ride* ride)
|
||||
{
|
||||
Vehicle* vehicle = GET_VEHICLE(spriteIndex);
|
||||
invalidate_sprite_2((rct_sprite*)vehicle);
|
||||
sprite_remove((rct_sprite*)vehicle);
|
||||
sprite_remove(vehicle);
|
||||
spriteIndex = vehicle->next_vehicle_on_train;
|
||||
} while (spriteIndex != SPRITE_INDEX_NULL);
|
||||
}
|
||||
@@ -1038,7 +1038,7 @@ static void ride_remove_vehicles(Ride* ride)
|
||||
{
|
||||
Vehicle* vehicle = GET_VEHICLE(spriteIndex);
|
||||
invalidate_sprite_2((rct_sprite*)vehicle);
|
||||
sprite_remove((rct_sprite*)vehicle);
|
||||
sprite_remove(vehicle);
|
||||
spriteIndex = vehicle->next_vehicle_on_train;
|
||||
}
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ void Balloon::Update()
|
||||
frame++;
|
||||
if (frame >= 5)
|
||||
{
|
||||
sprite_remove((rct_sprite*)this);
|
||||
sprite_remove(this);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -97,7 +97,7 @@ void Duck::Invalidate()
|
||||
void Duck::Remove()
|
||||
{
|
||||
Invalidate();
|
||||
sprite_remove((rct_sprite*)this);
|
||||
sprite_remove(this);
|
||||
}
|
||||
|
||||
void Duck::MoveTo(const CoordsXYZ& destination)
|
||||
@@ -382,7 +382,7 @@ void duck_remove_all()
|
||||
if (sprite->type == SPRITE_MISC_DUCK)
|
||||
{
|
||||
invalidate_sprite_1((rct_sprite*)sprite);
|
||||
sprite_remove((rct_sprite*)sprite);
|
||||
sprite_remove(sprite);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -401,7 +401,7 @@ void footpath_remove_litter(const CoordsXYZ& footpathPos)
|
||||
if (distanceZ <= 32)
|
||||
{
|
||||
invalidate_sprite_0((rct_sprite*)sprite);
|
||||
sprite_remove((rct_sprite*)sprite);
|
||||
sprite_remove(sprite);
|
||||
}
|
||||
}
|
||||
spriteIndex = nextSpriteIndex;
|
||||
|
||||
@@ -187,7 +187,7 @@ void JumpingFountain::Update()
|
||||
|
||||
if (frame == 16)
|
||||
{
|
||||
sprite_remove(reinterpret_cast<rct_sprite*>(this));
|
||||
sprite_remove(this);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -142,7 +142,7 @@ void MoneyEffect::Update()
|
||||
return;
|
||||
}
|
||||
|
||||
sprite_remove((rct_sprite*)this);
|
||||
sprite_remove(this);
|
||||
}
|
||||
|
||||
std::pair<rct_string_id, money32> MoneyEffect::GetStringId() const
|
||||
|
||||
@@ -54,7 +54,7 @@ void crashed_vehicle_particle_update(VehicleCrashParticle* particle)
|
||||
particle->time_to_live--;
|
||||
if (particle->time_to_live == 0)
|
||||
{
|
||||
sprite_remove((rct_sprite*)particle);
|
||||
sprite_remove(particle);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -88,7 +88,7 @@ void crashed_vehicle_particle_update(VehicleCrashParticle* particle)
|
||||
// Splash
|
||||
audio_play_sound_at_location(SoundId::Water2, { particle->x, particle->y, waterZ });
|
||||
crash_splash_create(particle->x, particle->y, waterZ);
|
||||
sprite_remove((rct_sprite*)particle);
|
||||
sprite_remove(particle);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -137,6 +137,6 @@ void crash_splash_update(CrashSplashParticle* splash)
|
||||
splash->frame += 85;
|
||||
if (splash->frame >= 7168)
|
||||
{
|
||||
sprite_remove((rct_sprite*)splash);
|
||||
sprite_remove(splash);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -490,7 +490,7 @@ static void sprite_steam_particle_update(SteamParticle* steam)
|
||||
steam->frame += 64;
|
||||
if (steam->frame >= (56 * 64))
|
||||
{
|
||||
sprite_remove((rct_sprite*)steam);
|
||||
sprite_remove(steam);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -523,7 +523,7 @@ static void sprite_misc_explosion_cloud_update(rct_sprite* sprite)
|
||||
sprite->generic.frame += 128;
|
||||
if (sprite->generic.frame >= (36 * 128))
|
||||
{
|
||||
sprite_remove(sprite);
|
||||
sprite_remove(&sprite->generic);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -556,7 +556,7 @@ static void sprite_misc_explosion_flare_update(rct_sprite* sprite)
|
||||
sprite->generic.frame += 64;
|
||||
if (sprite->generic.frame >= (124 * 64))
|
||||
{
|
||||
sprite_remove(sprite);
|
||||
sprite_remove(&sprite->generic);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -689,26 +689,26 @@ void sprite_set_coordinates(int16_t x, int16_t y, int16_t z, rct_sprite* sprite)
|
||||
*
|
||||
* rct2: 0x0069EDB6
|
||||
*/
|
||||
void sprite_remove(rct_sprite* sprite)
|
||||
void sprite_remove(SpriteBase* sprite)
|
||||
{
|
||||
auto peep = sprite->AsPeep();
|
||||
auto peep = ((rct_sprite*)sprite)->AsPeep();
|
||||
if (peep != nullptr)
|
||||
{
|
||||
peep->SetName({});
|
||||
}
|
||||
|
||||
move_sprite_to_list(&sprite->generic, SPRITE_LIST_FREE);
|
||||
sprite->generic.sprite_identifier = SPRITE_IDENTIFIER_NULL;
|
||||
_spriteFlashingList[sprite->generic.sprite_index] = false;
|
||||
move_sprite_to_list(sprite, SPRITE_LIST_FREE);
|
||||
sprite->sprite_identifier = SPRITE_IDENTIFIER_NULL;
|
||||
_spriteFlashingList[sprite->sprite_index] = false;
|
||||
|
||||
size_t quadrantIndex = GetSpatialIndexOffset(sprite->generic.x, sprite->generic.y);
|
||||
size_t quadrantIndex = GetSpatialIndexOffset(sprite->x, sprite->y);
|
||||
uint16_t* spriteIndex = &gSpriteSpatialIndex[quadrantIndex];
|
||||
rct_sprite* quadrantSprite;
|
||||
while (*spriteIndex != SPRITE_INDEX_NULL && (quadrantSprite = get_sprite(*spriteIndex)) != sprite)
|
||||
SpriteBase* quadrantSprite;
|
||||
while (*spriteIndex != SPRITE_INDEX_NULL && (quadrantSprite = &get_sprite(*spriteIndex)->generic) != sprite)
|
||||
{
|
||||
spriteIndex = &quadrantSprite->generic.next_in_quadrant;
|
||||
spriteIndex = &quadrantSprite->next_in_quadrant;
|
||||
}
|
||||
*spriteIndex = sprite->generic.next_in_quadrant;
|
||||
*spriteIndex = sprite->next_in_quadrant;
|
||||
}
|
||||
|
||||
static bool litter_can_be_at(int32_t x, int32_t y, int32_t z)
|
||||
@@ -769,7 +769,7 @@ void litter_create(int32_t x, int32_t y, int32_t z, int32_t direction, int32_t t
|
||||
if (newestLitter != nullptr)
|
||||
{
|
||||
invalidate_sprite_0((rct_sprite*)newestLitter);
|
||||
sprite_remove((rct_sprite*)newestLitter);
|
||||
sprite_remove(newestLitter);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -206,7 +206,7 @@ void sprite_set_coordinates(int16_t x, int16_t y, int16_t z, rct_sprite* sprite)
|
||||
void invalidate_sprite_0(rct_sprite* sprite);
|
||||
void invalidate_sprite_1(rct_sprite* sprite);
|
||||
void invalidate_sprite_2(rct_sprite* sprite);
|
||||
void sprite_remove(rct_sprite* sprite);
|
||||
void sprite_remove(SpriteBase* sprite);
|
||||
void litter_create(int32_t x, int32_t y, int32_t z, int32_t direction, int32_t type);
|
||||
void litter_remove_at(int32_t x, int32_t y, int32_t z);
|
||||
void sprite_misc_explosion_cloud_create(int32_t x, int32_t y, int32_t z);
|
||||
|
||||
Reference in New Issue
Block a user