mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-06 06:32:56 +01:00
Fix compilation issues and restore line that went astray
This commit is contained in:
committed by
Michał Janiszewski
parent
72a1ad89a3
commit
67cbe2a2a1
@@ -247,34 +247,6 @@ const char * sprite_checksum()
|
||||
|
||||
#endif // DISABLE_NETWORK
|
||||
|
||||
/**
|
||||
* Clears all the unused sprite memory to zero. Probably so that it can be compressed better when saving.
|
||||
* rct2: 0x0069EBA4
|
||||
*/
|
||||
void sprite_clear_all_unused()
|
||||
{
|
||||
rct_unk_sprite *sprite;
|
||||
uint16 spriteIndex, nextSpriteIndex, previousSpriteIndex;
|
||||
|
||||
spriteIndex = gSpriteListHead[SPRITE_LIST_NULL];
|
||||
while (spriteIndex != SPRITE_INDEX_NULL) {
|
||||
sprite = &get_sprite(spriteIndex)->unknown;
|
||||
sprite_reset(sprite);
|
||||
sprite->linked_list_type_offset = SPRITE_LIST_NULL * 2;
|
||||
|
||||
// This shouldn't be necessary, as sprite_reset() preserves the index
|
||||
// but it has been left in as a safety net in case the index isn't set correctly
|
||||
sprite->sprite_index = spriteIndex;
|
||||
|
||||
// sprite->next_in_quadrant will only end up as zero owing to corruption
|
||||
// most likely due to previous builds not preserving it when resetting sprites
|
||||
// We reset it to SPRITE_INDEX_NULL to prevent cycles in the sprite lists
|
||||
if (sprite->next_in_quadrant == 0) { sprite->next_in_quadrant = SPRITE_INDEX_NULL; }
|
||||
_spriteFlashingList[spriteIndex] = false;
|
||||
spriteIndex = nextSpriteIndex;
|
||||
}
|
||||
}
|
||||
|
||||
static void sprite_reset(rct_unk_sprite *sprite)
|
||||
{
|
||||
// Need to retain how the sprite is linked in lists
|
||||
@@ -295,6 +267,35 @@ static void sprite_reset(rct_unk_sprite *sprite)
|
||||
sprite->sprite_identifier = SPRITE_IDENTIFIER_NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears all the unused sprite memory to zero. Probably so that it can be compressed better when saving.
|
||||
* rct2: 0x0069EBA4
|
||||
*/
|
||||
void sprite_clear_all_unused()
|
||||
{
|
||||
rct_unk_sprite *sprite;
|
||||
uint16 spriteIndex, nextSpriteIndex;
|
||||
|
||||
spriteIndex = gSpriteListHead[SPRITE_LIST_NULL];
|
||||
while (spriteIndex != SPRITE_INDEX_NULL) {
|
||||
sprite = &get_sprite(spriteIndex)->unknown;
|
||||
nextSpriteIndex = sprite->next;
|
||||
sprite_reset(sprite);
|
||||
sprite->linked_list_type_offset = SPRITE_LIST_NULL * 2;
|
||||
|
||||
// This shouldn't be necessary, as sprite_reset() preserves the index
|
||||
// but it has been left in as a safety net in case the index isn't set correctly
|
||||
sprite->sprite_index = spriteIndex;
|
||||
|
||||
// sprite->next_in_quadrant will only end up as zero owing to corruption
|
||||
// most likely due to previous builds not preserving it when resetting sprites
|
||||
// We reset it to SPRITE_INDEX_NULL to prevent cycles in the sprite lists
|
||||
if (sprite->next_in_quadrant == 0) { sprite->next_in_quadrant = SPRITE_INDEX_NULL; }
|
||||
_spriteFlashingList[spriteIndex] = false;
|
||||
spriteIndex = nextSpriteIndex;
|
||||
}
|
||||
}
|
||||
|
||||
// Resets all sprites in SPRITE_LIST_NULL list
|
||||
void reset_empty_sprites()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user