Canvi de idioma (i reinicia) amb una tecla

This commit is contained in:
2024-11-27 09:48:14 +01:00
parent 9f2448753b
commit 9c9cfdabc2
7 changed files with 59 additions and 4 deletions

View File

@@ -1,6 +1,7 @@
#include "global_inputs.h"
#include <string> // Para operator+, string
#include "input.h" // Para Input, InputType, INPUT_DO_NOT_ALLOW_REPEAT
#include <string> // Para operator+, string
#include "input.h" // Para Input, InputType, INPUT_DO_NOT_ALLOW_REPEAT
#include "asset.h"
#include "jail_audio.h" // Para JA_EnableMusic, JA_EnableSound
#include "lang.h" // Para getText
#include "notifier.h" // Para Notifier
@@ -71,6 +72,36 @@ namespace globalInputs
Notifier::get()->showText({"Audio " + boolToOnOff(options.audio.enabled)});
}
// Obtiene una fichero a partir de un lang::Code
std::string getLangFile(lang::Code code)
{
switch (code)
{
case lang::Code::ba_BA:
return Asset::get()->get("ba_BA.txt");
break;
case lang::Code::es_ES:
return Asset::get()->get("es_ES.txt");
break;
case lang::Code::en_UK:
return Asset::get()->get("en_UK.txt");
break;
default:
break;
}
return Asset::get()->get("en_UK.txt");
}
// Cambia el idioma
void changeLang()
{
options.game.language = lang::change(options.game.language);
lang::loadFromFile(getLangFile(static_cast<lang::Code>(options.game.language)));
section::name = section::Name::INIT;
Notifier::get()->showText({"Reset"});
}
// Comprueba los inputs que se pueden introducir en cualquier sección del juego
void check()
{
@@ -125,6 +156,13 @@ namespace globalInputs
return;
}
// Idioma
if (Input::get()->checkInput(InputType::CHANGE_LANG, INPUT_DO_NOT_ALLOW_REPEAT, InputDeviceToUse::KEYBOARD))
{
changeLang();
return;
}
// Shaders
if (Input::get()->checkInput(InputType::VIDEO_SHADERS, INPUT_DO_NOT_ALLOW_REPEAT, InputDeviceToUse::KEYBOARD))
{