Canvi de idioma (i reinicia) amb una tecla
This commit is contained in:
@@ -28,6 +28,10 @@ Les tecles son les següents:
|
|||||||
|
|
||||||
- **Tecla F4**: Activa o desactiva els shaders
|
- **Tecla F4**: Activa o desactiva els shaders
|
||||||
|
|
||||||
|
- **Tecla F5**: Activa o desactiva l'audio
|
||||||
|
|
||||||
|
- **Tecla F6**: Canvia el idioma del joc i reinicia
|
||||||
|
|
||||||
- **Tecla F10**: Reset
|
- **Tecla F10**: Reset
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
|
|||||||
@@ -362,7 +362,7 @@ Tiempo!
|
|||||||
Puntuacion
|
Puntuacion
|
||||||
|
|
||||||
## 121 - CREDITS
|
## 121 - CREDITS
|
||||||
PROGRAMADO Y DISEÑADO POR
|
PROGRAMADO Y DISE{ADO POR
|
||||||
|
|
||||||
## 122 - CREDITS
|
## 122 - CREDITS
|
||||||
GRAFICOS DIBUJADOS POR
|
GRAFICOS DIBUJADOS POR
|
||||||
|
|||||||
@@ -166,7 +166,8 @@ void Director::bindInputs()
|
|||||||
Input::get()->bindKey(InputType::WINDOW_FULLSCREEN, SDL_SCANCODE_F3);
|
Input::get()->bindKey(InputType::WINDOW_FULLSCREEN, SDL_SCANCODE_F3);
|
||||||
Input::get()->bindKey(InputType::VIDEO_SHADERS, SDL_SCANCODE_F4);
|
Input::get()->bindKey(InputType::VIDEO_SHADERS, SDL_SCANCODE_F4);
|
||||||
Input::get()->bindKey(InputType::MUTE, SDL_SCANCODE_F5);
|
Input::get()->bindKey(InputType::MUTE, SDL_SCANCODE_F5);
|
||||||
Input::get()->bindKey(InputType::SHOWINFO, SDL_SCANCODE_F6);
|
Input::get()->bindKey(InputType::CHANGE_LANG, SDL_SCANCODE_F6);
|
||||||
|
Input::get()->bindKey(InputType::SHOWINFO, SDL_SCANCODE_F7);
|
||||||
Input::get()->bindKey(InputType::RESET, SDL_SCANCODE_F10);
|
Input::get()->bindKey(InputType::RESET, SDL_SCANCODE_F10);
|
||||||
|
|
||||||
// Asigna botones a inputs
|
// Asigna botones a inputs
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
#include "global_inputs.h"
|
#include "global_inputs.h"
|
||||||
#include <string> // Para operator+, string
|
#include <string> // Para operator+, string
|
||||||
#include "input.h" // Para Input, InputType, INPUT_DO_NOT_ALLOW_REPEAT
|
#include "input.h" // Para Input, InputType, INPUT_DO_NOT_ALLOW_REPEAT
|
||||||
|
#include "asset.h"
|
||||||
#include "jail_audio.h" // Para JA_EnableMusic, JA_EnableSound
|
#include "jail_audio.h" // Para JA_EnableMusic, JA_EnableSound
|
||||||
#include "lang.h" // Para getText
|
#include "lang.h" // Para getText
|
||||||
#include "notifier.h" // Para Notifier
|
#include "notifier.h" // Para Notifier
|
||||||
@@ -71,6 +72,36 @@ namespace globalInputs
|
|||||||
Notifier::get()->showText({"Audio " + boolToOnOff(options.audio.enabled)});
|
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
|
// Comprueba los inputs que se pueden introducir en cualquier sección del juego
|
||||||
void check()
|
void check()
|
||||||
{
|
{
|
||||||
@@ -125,6 +156,13 @@ namespace globalInputs
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Idioma
|
||||||
|
if (Input::get()->checkInput(InputType::CHANGE_LANG, INPUT_DO_NOT_ALLOW_REPEAT, InputDeviceToUse::KEYBOARD))
|
||||||
|
{
|
||||||
|
changeLang();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Shaders
|
// Shaders
|
||||||
if (Input::get()->checkInput(InputType::VIDEO_SHADERS, INPUT_DO_NOT_ALLOW_REPEAT, InputDeviceToUse::KEYBOARD))
|
if (Input::get()->checkInput(InputType::VIDEO_SHADERS, INPUT_DO_NOT_ALLOW_REPEAT, InputDeviceToUse::KEYBOARD))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ enum class InputType : int
|
|||||||
VIDEO_SHADERS,
|
VIDEO_SHADERS,
|
||||||
RESET,
|
RESET,
|
||||||
MUTE,
|
MUTE,
|
||||||
|
CHANGE_LANG,
|
||||||
SHOWINFO,
|
SHOWINFO,
|
||||||
CONFIG,
|
CONFIG,
|
||||||
SWAP_CONTROLLERS,
|
SWAP_CONTROLLERS,
|
||||||
|
|||||||
@@ -40,4 +40,12 @@ namespace lang
|
|||||||
{
|
{
|
||||||
return texts.at(index);
|
return texts.at(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Cambia el idioma seleccionado al siguiente idioma disponible
|
||||||
|
Code change(Code current_lang)
|
||||||
|
{
|
||||||
|
auto index = static_cast<int>(current_lang);
|
||||||
|
index = (index + 1) % 3;
|
||||||
|
return static_cast<Code>(index);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -16,4 +16,7 @@ namespace lang
|
|||||||
|
|
||||||
// Obtiene la cadena de texto del indice
|
// Obtiene la cadena de texto del indice
|
||||||
std::string getText(int index);
|
std::string getText(int index);
|
||||||
|
|
||||||
|
// Cambia el idioma seleccionado al siguiente idioma disponible
|
||||||
|
Code change(Code current_lang);
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user