From 2b7b42f09e8118a58b7d6fa12bee5e5506db0c53 Mon Sep 17 00:00:00 2001 From: Sergii Pylypenko Date: Tue, 1 Jul 2014 22:01:22 +0300 Subject: [PATCH] Fixed 32bpp base graphics set not working on 16bpp videomode --- src/fontcache.cpp | 2 +- src/spritecache.cpp | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/fontcache.cpp b/src/fontcache.cpp index f1a2ac7775..41754a7755 100644 --- a/src/fontcache.cpp +++ b/src/fontcache.cpp @@ -453,7 +453,7 @@ static void *AllocateFont(size_t size) static bool GetFontAAState(FontSize size) { /* AA is only supported for 32 bpp */ - if (BlitterFactory::GetCurrentBlitter()->GetScreenDepth() != 32) return false; + if (BlitterFactory::GetCurrentBlitter()->GetScreenDepth() != 32 && BlitterFactory::GetCurrentBlitter()->GetScreenDepth() != 16) return false; switch (size) { default: NOT_REACHED(); diff --git a/src/spritecache.cpp b/src/spritecache.cpp index c41b8f51cb..e2ae84f0e0 100644 --- a/src/spritecache.cpp +++ b/src/spritecache.cpp @@ -400,6 +400,10 @@ static void *ReadSprite(const SpriteCache *sc, SpriteID id, SpriteType sprite_ty /* Try for 32bpp sprites first. */ sprite_avail = sprite_loader.LoadSprite(sprite, file_slot, file_pos, sprite_type, true); } + if (sprite_type != ST_MAPGEN && BlitterFactory::GetCurrentBlitter()->GetScreenDepth() == 16) { + /* 32bpp sprites for 16bpp videomode. */ + 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); }