singletons
This commit is contained in:
@@ -6,9 +6,25 @@
|
||||
#include "core/resources/asset.h" // for Asset
|
||||
#include "core/resources/resource_helper.h"
|
||||
|
||||
// Instancia única
|
||||
Lang *Lang::instance = nullptr;
|
||||
|
||||
// Singleton API
|
||||
void Lang::init() {
|
||||
Lang::instance = new Lang();
|
||||
}
|
||||
|
||||
void Lang::destroy() {
|
||||
delete Lang::instance;
|
||||
Lang::instance = nullptr;
|
||||
}
|
||||
|
||||
auto Lang::get() -> Lang * {
|
||||
return Lang::instance;
|
||||
}
|
||||
|
||||
// Constructor
|
||||
Lang::Lang(Asset *mAsset) {
|
||||
this->mAsset = mAsset;
|
||||
Lang::Lang() {
|
||||
}
|
||||
|
||||
// Destructor
|
||||
@@ -21,19 +37,19 @@ bool Lang::setLang(Uint8 lang) {
|
||||
|
||||
switch (lang) {
|
||||
case es_ES:
|
||||
file = mAsset->get("es_ES.txt");
|
||||
file = Asset::get()->get("es_ES.txt");
|
||||
break;
|
||||
|
||||
case en_UK:
|
||||
file = mAsset->get("en_UK.txt");
|
||||
file = Asset::get()->get("en_UK.txt");
|
||||
break;
|
||||
|
||||
case ba_BA:
|
||||
file = mAsset->get("ba_BA.txt");
|
||||
file = Asset::get()->get("ba_BA.txt");
|
||||
break;
|
||||
|
||||
default:
|
||||
file = mAsset->get("en_UK.txt");
|
||||
file = Asset::get()->get("en_UK.txt");
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
#include <SDL3/SDL.h>
|
||||
|
||||
#include <string> // for string, basic_string
|
||||
class Asset;
|
||||
|
||||
// Códigos de idioma
|
||||
constexpr int es_ES = 0;
|
||||
@@ -17,12 +16,19 @@ constexpr int MAX_TEXT_STRINGS = 100;
|
||||
// Clase Lang
|
||||
class Lang {
|
||||
private:
|
||||
Asset *mAsset; // Objeto que gestiona todos los ficheros de recursos
|
||||
std::string mTextStrings[MAX_TEXT_STRINGS]; // Vector con los textos
|
||||
|
||||
// Constructor privado (usar Lang::init)
|
||||
Lang();
|
||||
|
||||
// Instancia única
|
||||
static Lang *instance;
|
||||
|
||||
public:
|
||||
// Constructor
|
||||
Lang(Asset *mAsset);
|
||||
// Singleton API
|
||||
static void init(); // Crea la instancia
|
||||
static void destroy(); // Libera la instancia
|
||||
static auto get() -> Lang *; // Obtiene el puntero a la instancia
|
||||
|
||||
// Destructor
|
||||
~Lang();
|
||||
|
||||
Reference in New Issue
Block a user