1
0
mirror of https://github.com/OpenTTD/OpenTTD synced 2026-01-20 10:52:41 +01:00

Change: Let sprite loader know what sprites are available in both 8bpp and 32bpp depths.

This commit is contained in:
Peter Nelson
2025-01-15 17:36:30 +00:00
committed by Peter Nelson
parent 60d0d7b8b2
commit 83e9ee00f0
4 changed files with 18 additions and 10 deletions

View File

@@ -477,15 +477,17 @@ static void *ReadSprite(const SpriteCache *sc, SpriteID id, SpriteType sprite_ty
SpriteLoader::SpriteCollection sprite;
uint8_t sprite_avail = 0;
uint8_t avail_8bpp = 0;
uint8_t avail_32bpp = 0;
sprite[ZOOM_LVL_MIN].type = sprite_type;
SpriteLoaderGrf sprite_loader(file.GetContainerVersion());
if (sprite_type != SpriteType::MapGen && encoder->Is32BppSupported()) {
/* Try for 32bpp sprites first. */
sprite_avail = sprite_loader.LoadSprite(sprite, file, file_pos, sprite_type, true, sc->control_flags);
sprite_avail = sprite_loader.LoadSprite(sprite, file, file_pos, sprite_type, true, sc->control_flags, avail_8bpp, avail_32bpp);
}
if (sprite_avail == 0) {
sprite_avail = sprite_loader.LoadSprite(sprite, file, file_pos, sprite_type, false, sc->control_flags);
sprite_avail = sprite_loader.LoadSprite(sprite, file, file_pos, sprite_type, false, sc->control_flags, avail_8bpp, avail_32bpp);
}
if (sprite_avail == 0) {