From 3689cb6b38393273173f728e6098fb1ab529011e Mon Sep 17 00:00:00 2001 From: NyakoFox Date: Thu, 11 Apr 2024 17:50:07 -0300 Subject: [PATCH] Language menu changes --- desktop_version/src/Game.cpp | 18 +++++++++--------- desktop_version/src/Input.cpp | 4 ++-- desktop_version/src/Touch.cpp | 12 ++++++++++++ 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/desktop_version/src/Game.cpp b/desktop_version/src/Game.cpp index 25c640b7..546a164b 100644 --- a/desktop_version/src/Game.cpp +++ b/desktop_version/src/Game.cpp @@ -7031,13 +7031,13 @@ void Game::createmenu( enum Menu::MenuName t, bool samemenu/*= false*/ ) int button_x = 0; int button_y = 0; bool spawn_buttons = false; - if (i >= (languagepage * 16)) + if (i >= (languagepage * 12)) { spawn_buttons = true; button_count++; - button_x = (button_count >= 8) ? 240 : 80; - button_y = 32 + 20 * (button_count % 8); - if (button_count >= 16) + button_x = (button_count >= 6) ? 240 : 80; + button_y = 32 + 26 * (button_count % 6); + if (button_count >= 12) { spawn_buttons = false; } @@ -7049,8 +7049,8 @@ void Game::createmenu( enum Menu::MenuName t, bool samemenu/*= false*/ ) if (spawn_buttons) { - int button_width = SDL_max(120, font::len(PR_1X, loc::languagelist[i].code.c_str()) + 16); - touch::create_menu_button(button_x - button_width / 2, button_y, button_width, 16, loc::languagelist[i].code.c_str(), i); + int button_width = SDL_max(136, font::len(PR_1X, loc::languagelist[i].code.c_str()) + 16); + touch::create_menu_button(button_x - button_width / 2, button_y, button_width, 24, loc::languagelist[i].code.c_str(), i); } } else @@ -7064,8 +7064,8 @@ void Game::createmenu( enum Menu::MenuName t, bool samemenu/*= false*/ ) if (spawn_buttons) { - int button_width = SDL_max(120, font::len(flags, loc::languagelist[i].nativename.c_str()) + 16); - touch::create_menu_button_flags(button_x - button_width / 2, button_y, button_width, 16, loc::languagelist[i].nativename.c_str(), i, flags); + int button_width = SDL_max(136, font::len(flags, loc::languagelist[i].nativename.c_str()) + 16); + touch::create_menu_button_flags(button_x - button_width / 2, button_y, button_width, 24, loc::languagelist[i].nativename.c_str(), i, flags); } } } @@ -7075,7 +7075,7 @@ void Game::createmenu( enum Menu::MenuName t, bool samemenu/*= false*/ ) } touch::create_menu_button(46 - 16, 200, 76, 26, loc::gettext("previous"), -2); - touch::create_menu_button(122, 200, 76, 26, loc::gettext("return"), -3); + touch::create_menu_button(122, 200, 76, 26, loc::gettext("ok"), -3); touch::create_menu_button(198 + 16, 200, 76, 26, loc::gettext("next"), -1); break; diff --git a/desktop_version/src/Input.cpp b/desktop_version/src/Input.cpp index 71ab6d09..1d691273 100644 --- a/desktop_version/src/Input.cpp +++ b/desktop_version/src/Input.cpp @@ -1258,7 +1258,7 @@ void menuactionpress(void) else if (game.currentmenuoption == -2) { // go left a page (or wrap to end) - game.languagepage = POS_MOD(game.languagepage - 1, (int) SDL_ceilf(loc::languagelist.size() / 16.0)); + game.languagepage = POS_MOD(game.languagepage - 1, (int) SDL_ceilf(loc::languagelist.size() / 12.0)); loc::loadlanguagelist(); game.createmenu(Menu::language, true); game.currentmenuoption = loc::languagelist_curlang; @@ -1267,7 +1267,7 @@ void menuactionpress(void) else if (game.currentmenuoption == -1) { // go right a page (or wrap to start) - game.languagepage = POS_MOD(game.languagepage + 1, (int) SDL_ceilf(loc::languagelist.size() / 16.0)); + game.languagepage = POS_MOD(game.languagepage + 1, (int) SDL_ceilf(loc::languagelist.size() / 12.0)); loc::loadlanguagelist(); game.createmenu(Menu::language, true); game.currentmenuoption = loc::languagelist_curlang; diff --git a/desktop_version/src/Touch.cpp b/desktop_version/src/Touch.cpp index 9c0f8e23..2cae6208 100644 --- a/desktop_version/src/Touch.cpp +++ b/desktop_version/src/Touch.cpp @@ -611,6 +611,18 @@ namespace touch font::print(PR_CJK_LOW | font_scale | button->flags, button->x + 16 + offset * scale, button->y + ((button->height - height) / 2 + offset) * scale, button->text, use_r, use_g, use_b); break; default: + // This is a dumb hack for the language menu, but... if this button is NOT for the current language, darken it (unless it's negative) + + if (game.currentmenuname == Menu::language) + { + if (button->id != game.currentmenuoption && button->id >= 0) + { + use_r /= 2; + use_g /= 2; + use_b /= 2; + } + } + graphics.fill_rect(button->x + 4 * scale, button->y + 4 * scale, button->width, button->height, r / shadow_div, g / shadow_div, b / shadow_div); graphics.fill_rect(button->x + offset * scale, button->y + offset * scale, button->width, button->height, use_r, use_g, use_b);