diff options
Diffstat (limited to 'src/spritecache.cpp')
-rw-r--r-- | src/spritecache.cpp | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/spritecache.cpp b/src/spritecache.cpp index c41b8f51c..764616e8f 100644 --- a/src/spritecache.cpp +++ b/src/spritecache.cpp @@ -438,12 +438,20 @@ static void *ReadSprite(const SpriteCache *sc, SpriteID id, SpriteType sprite_ty return s; } - if (sprite_type == ST_NORMAL) { - if (!ResizeSprites(sprite, sprite_avail, file_slot, sc->id)) { - if (id == SPR_IMG_QUERY) usererror("Okay... something went horribly wrong. I couldn't resize the fallback sprite. What should I do?"); - return (void*)GetRawSprite(SPR_IMG_QUERY, ST_NORMAL, allocator); - } + if (!ResizeSprites(sprite, sprite_avail, file_slot, sc->id)) { + if (id == SPR_IMG_QUERY) usererror("Okay... something went horribly wrong. I couldn't resize the fallback sprite. What should I do?"); + return (void*)GetRawSprite(SPR_IMG_QUERY, ST_NORMAL, allocator); } + + if (sprite->type == ST_FONT && ZOOM_LVL_GUI != ZOOM_LVL_NORMAL) { + /* Make ZOOM_LVL_GUI be ZOOM_LVL_NORMAL */ + sprite[ZOOM_LVL_NORMAL] = sprite[ZOOM_LVL_GUI]; + sprite->width = sprite[ZOOM_LVL_NORMAL].width; + sprite->height = sprite[ZOOM_LVL_NORMAL].height; + sprite->x_offs = sprite[ZOOM_LVL_NORMAL].x_offs; + sprite->y_offs = sprite[ZOOM_LVL_NORMAL].y_offs; + } + return BlitterFactory::GetCurrentBlitter()->Encode(sprite, allocator); } |