diff --git a/src/client/game.cpp b/src/client/game.cpp index 50e7822986c7a..5fca2e2732e73 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -2592,7 +2592,7 @@ ClientDynamicInfo Game::getCurrentDynamicInfo() const return { screen_size, gui_scaling, hud_scaling, - ClientDynamicInfo::calculateMaxFSSize(screen_size, gui_scaling) + ClientDynamicInfo::calculateMaxFSSize(screen_size) }; } diff --git a/src/clientdynamicinfo.h b/src/clientdynamicinfo.h index f2b5a8dcdf0d9..259505c1abfa5 100644 --- a/src/clientdynamicinfo.h +++ b/src/clientdynamicinfo.h @@ -16,8 +16,17 @@ struct ClientDynamicInfo abs(real_hud_scaling - other.real_hud_scaling) < 0.001f; } - static v2f32 calculateMaxFSSize(v2u32 render_target_size, f32 real_gui_scaling) { - float slot_size = 0.5555f * 96.f * real_gui_scaling; - return v2f32(render_target_size.X, render_target_size.Y) / slot_size; + static v2f32 calculateMaxFSSize(v2u32 render_target_size) { + f32 factor = +#ifdef HAVE_TOUCHSCREENGUI + 10; +#else + 15; +#endif + f32 ratio = (f32)render_target_size.X / (f32)render_target_size.Y; + if (ratio < 1) + return { factor, factor / ratio }; + else + return { factor * ratio, factor }; } };