diff options
author | michi_cc <michi_cc@openttd.org> | 2012-02-04 22:18:57 +0000 |
---|---|---|
committer | michi_cc <michi_cc@openttd.org> | 2012-02-04 22:18:57 +0000 |
commit | 2c3bca6ad9af3ef5f886e6ce74d93d330f58859f (patch) | |
tree | d343b9c56f7c59365f812adb8019466633fe2854 /src/spritecache.cpp | |
parent | bd3c50791024b313208a4e163b7632554d8b5e9c (diff) | |
download | openttd-2c3bca6ad9af3ef5f886e6ce74d93d330f58859f.tar.xz |
(svn r23897) -Feature: [NewGRF] 32bpp sprites in GRFs.
Diffstat (limited to 'src/spritecache.cpp')
-rw-r--r-- | src/spritecache.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/spritecache.cpp b/src/spritecache.cpp index 75e402bed..59b04a4d7 100644 --- a/src/spritecache.cpp +++ b/src/spritecache.cpp @@ -391,7 +391,7 @@ static void *ReadSprite(const SpriteCache *sc, SpriteID id, SpriteType sprite_ty /* Try loading 32bpp graphics in case we are 32bpp output */ SpriteLoaderPNG sprite_loader; - sprite_avail = sprite_loader.LoadSprite(sprite, file_slot, sc->id, sprite_type); + sprite_avail = sprite_loader.LoadSprite(sprite, file_slot, sc->id, sprite_type, true); if (sprite_avail != 0) { if (ResizeSprites(sprite, sprite_avail, file_slot, sc->id)) { @@ -409,7 +409,13 @@ static void *ReadSprite(const SpriteCache *sc, SpriteID id, SpriteType sprite_ty } SpriteLoaderGrf sprite_loader(sc->container_ver); - sprite_avail = sprite_loader.LoadSprite(sprite, file_slot, file_pos, sprite_type); + if (sprite_type != ST_MAPGEN && BlitterFactoryBase::GetCurrentBlitter()->GetScreenDepth() == 32) { + /* Try for 32bpp sprites first. */ + sprite_avail = sprite_loader.LoadSprite(sprite, file_slot, file_pos, sprite_type, true); + } + if (sprite_avail == 0) { + sprite_avail = sprite_loader.LoadSprite(sprite, file_slot, file_pos, sprite_type, false); + } if (sprite_avail == 0) { if (sprite_type == ST_MAPGEN) return NULL; |