a8c0386355
This reverts commit ebfcad6f22.
41 lines
1.2 KiB
C++
41 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include <SDL3/SDL.h>
|
|
|
|
#include <cstdint> // for uint8_t
|
|
#include <string> // for string, basic_string
|
|
|
|
// Clase Lang
|
|
class Lang {
|
|
public:
|
|
// Códigos de idioma (basados en la convención IETF de los ficheros de locale)
|
|
enum class Code : std::uint8_t {
|
|
ES_ES = 0,
|
|
BA_BA = 1,
|
|
EN_UK = 2,
|
|
};
|
|
|
|
static constexpr int MAX_LANGUAGES = 3; // Número total de idiomas disponibles
|
|
|
|
// Singleton API
|
|
static void init(); // Crea la instancia
|
|
static void destroy(); // Libera la instancia
|
|
static auto get() -> Lang *; // Obtiene el puntero a la instancia
|
|
|
|
~Lang(); // Destructor
|
|
|
|
auto setLang(Code lang) -> bool; // Inicializa los textos del juego en el idioma seleccionado
|
|
auto getText(int index) -> std::string; // Obtiene la cadena de texto del indice
|
|
|
|
static auto nextLanguage(Code c) -> Code; // Devuelve el siguiente idioma del ciclo
|
|
|
|
private:
|
|
static constexpr int MAX_TEXT_STRINGS = 110;
|
|
|
|
std::string text_strings_[MAX_TEXT_STRINGS]; // Vector con los textos
|
|
|
|
static Lang *instance; // Instancia única
|
|
|
|
Lang(); // Constructor privado (usar Lang::init)
|
|
};
|