From 8ef000554d62738ccda04a2587b9bcd24f48ba1c Mon Sep 17 00:00:00 2001 From: Dav999 Date: Mon, 2 Oct 2023 02:44:13 +0200 Subject: [PATCH] Add "English sprites" setting It'll start working in the next commit... See the description there. (This commit does not add the new strings to the language files, since Terry now added them separately in his own branch) --- desktop_version/src/Game.cpp | 7 +++++++ desktop_version/src/Input.cpp | 10 ++++++++++ desktop_version/src/Localization.cpp | 1 + desktop_version/src/Localization.h | 1 + desktop_version/src/Render.cpp | 16 ++++++++++++++++ 5 files changed, 35 insertions(+) diff --git a/desktop_version/src/Game.cpp b/desktop_version/src/Game.cpp index c10fd107..24589145 100644 --- a/desktop_version/src/Game.cpp +++ b/desktop_version/src/Game.cpp @@ -4637,6 +4637,11 @@ void Game::deserializesettings(tinyxml2::XMLElement* dataNode, struct ScreenSett loc::lang_set = help.Int(pText); } + if (SDL_strcmp(pKey, "english_sprites") == 0) + { + loc::english_sprites = help.Int(pText); + } + if (SDL_strcmp(pKey, "new_level_font") == 0) { loc::new_level_font = std::string(pText); @@ -4902,6 +4907,7 @@ void Game::serializesettings(tinyxml2::XMLElement* dataNode, const struct Screen xml::update_tag(dataNode, "lang", loc::lang.c_str()); xml::update_tag(dataNode, "lang_set", (int) loc::lang_set); + xml::update_tag(dataNode, "english_sprites", (int) loc::english_sprites); xml::update_tag(dataNode, "new_level_font", loc::new_level_font.c_str()); xml::update_tag(dataNode, "roomname_translator", (int) roomname_translator::enabled); } @@ -6514,6 +6520,7 @@ void Game::createmenu( enum Menu::MenuName t, bool samemenu/*= false*/ ) option(loc::gettext("interact button")); option(loc::gettext("fake load screen")); option(loc::gettext("toggle in-game timer")); + option(loc::gettext("english sprites")); option(loc::gettext("return")); menuyoff = 0; maxspacing = 15; diff --git a/desktop_version/src/Input.cpp b/desktop_version/src/Input.cpp index a9c0446e..912abf08 100644 --- a/desktop_version/src/Input.cpp +++ b/desktop_version/src/Input.cpp @@ -797,6 +797,16 @@ static void menuactionpress(void) game.savestatsandsettings_menu(); music.playef(Sound_VIRIDIAN); break; + case 5: + // english sprites + loc::english_sprites = !loc::english_sprites; + if (!loc::english_sprites) + { + graphics.grphx.init_translations(); + } + game.savestatsandsettings_menu(); + music.playef(Sound_VIRIDIAN); + break; default: //back music.playef(Sound_VIRIDIAN); diff --git a/desktop_version/src/Localization.cpp b/desktop_version/src/Localization.cpp index c8105430..9ebce28c 100644 --- a/desktop_version/src/Localization.cpp +++ b/desktop_version/src/Localization.cpp @@ -16,6 +16,7 @@ bool pre_title_lang_menu = false; std::string lang = "en"; std::string lang_custom = ""; +bool english_sprites = false; std::string new_level_font = ""; LangMeta langmeta; diff --git a/desktop_version/src/Localization.h b/desktop_version/src/Localization.h index c63b3771..399400c7 100644 --- a/desktop_version/src/Localization.h +++ b/desktop_version/src/Localization.h @@ -49,6 +49,7 @@ extern bool pre_title_lang_menu; extern std::string lang; extern std::string lang_custom; +extern bool english_sprites; extern std::string new_level_font; extern LangMeta langmeta; extern std::vector languagelist; diff --git a/desktop_version/src/Render.cpp b/desktop_version/src/Render.cpp index 5ce434c9..e325586c 100644 --- a/desktop_version/src/Render.cpp +++ b/desktop_version/src/Render.cpp @@ -1019,6 +1019,7 @@ static void menurender(void) break; } case 4: + { font::print(PR_2X | PR_CEN, -1, 30, loc::gettext("In-Game Timer"), tr, tg, tb); int next_y = font::print_wrap(PR_CEN, -1, 65, loc::gettext("Toggle the in-game timer outside of time trials."), tr, tg, tb); if (game.showingametimer) @@ -1031,6 +1032,21 @@ static void menurender(void) } break; } + case 5: + { + font::print(PR_2X | PR_CEN, -1, 30, loc::gettext("English Sprites"), tr, tg, tb); + int next_y = font::print_wrap(PR_CEN, -1, 65, loc::gettext("Show the original English word enemies regardless of your language setting."), tr, tg, tb); + if (loc::english_sprites) + { + font::print_wrap(PR_CEN, -1, next_y, loc::gettext("Sprites are currently ALWAYS ENGLISH"), tr, tg, tb); + } + else + { + font::print_wrap(PR_CEN, -1, next_y, loc::gettext("Sprites are currently translated"), tr / 2, tg / 2, tb / 2); + } + break; + } + } break; case Menu::setglitchrunner: {