Merge branch 'master' into jgrpp

# Conflicts:
#	src/blitter/32bpp_anim.cpp
#	src/blitter/8bpp_optimized.cpp
#	src/gfx.cpp
#	src/gfx_func.h
#	src/gfxinit.cpp
#	src/network/core/os_abstraction.cpp
#	src/spritecache.cpp
This commit is contained in:
Jonathan G Rennison
2023-12-28 16:01:08 +00:00
48 changed files with 852 additions and 371 deletions

View File

@@ -378,6 +378,19 @@ static bool ResizeSprites(SpriteLoader::SpriteCollection &sprite, unsigned int s
{
ZoomLevel first_avail = static_cast<ZoomLevel>(FindFirstBit(sprite_avail));
ZoomLevel first_needed = static_cast<ZoomLevel>(FindFirstBit(zoom_levels));
/* Upscale to desired sprite_min_zoom if provided sprite only had zoomed in versions. */
if (first_avail < _settings_client.gui.sprite_zoom_min) {
const unsigned int below_min_zoom_mask = (1 << _settings_client.gui.sprite_zoom_min) - 1;
if ((zoom_levels & below_min_zoom_mask) != 0 && !HasBit(sprite_avail, _settings_client.gui.sprite_zoom_min)) {
if (!HasBit(sprite_avail, ZOOM_LVL_OUT_2X)) ResizeSpriteOut(sprite, ZOOM_LVL_OUT_2X, false);
if (_settings_client.gui.sprite_zoom_min == ZOOM_LVL_OUT_4X) ResizeSpriteOut(sprite, ZOOM_LVL_OUT_4X, false);
sprite_avail &= ~below_min_zoom_mask;
SetBit(sprite_avail, _settings_client.gui.sprite_zoom_min);
first_avail = _settings_client.gui.sprite_zoom_min;
}
}
ZoomLevel start = std::min(first_avail, first_needed);
bool needed = false;