74 lines
1.3 KiB
C++
74 lines
1.3 KiB
C++
#include "lang.h"
|
|
#include <iostream>
|
|
#include <fstream>
|
|
|
|
// Constructor
|
|
Lang::Lang(Asset *asset)
|
|
{
|
|
mAsset = asset;
|
|
}
|
|
|
|
// Destructor
|
|
Lang::~Lang()
|
|
{
|
|
mAsset = nullptr;
|
|
}
|
|
|
|
// Inicializa los textos del juego en el idioma seleccionado
|
|
bool Lang::setLang(Uint8 lang)
|
|
{
|
|
std::string file;
|
|
|
|
switch (lang)
|
|
{
|
|
case es_ES:
|
|
file = mAsset->get("es_ES.txt");
|
|
break;
|
|
|
|
case en_UK:
|
|
file = mAsset->get("en_UK.txt");
|
|
break;
|
|
|
|
case ba_BA:
|
|
file = mAsset->get("ba_BA.txt");
|
|
break;
|
|
|
|
default:
|
|
file = mAsset->get("en_UK.txt");
|
|
break;
|
|
}
|
|
|
|
for (int i = 0; i < MAX_TEXT_STRINGS; i++)
|
|
mTextStrings[i] = "";
|
|
|
|
bool success = false;
|
|
|
|
std::ifstream rfile(file);
|
|
if (rfile.is_open() && rfile.good())
|
|
{
|
|
success = true;
|
|
std::string buffer;
|
|
|
|
// lee el resto de datos del fichero
|
|
int index = 0;
|
|
int line_read = 0;
|
|
while (std::getline(rfile, buffer))
|
|
{
|
|
// Almacena solo las lineas impares
|
|
if (line_read % 2 == 1)
|
|
mTextStrings[index++] = buffer;
|
|
|
|
// Limpia el buffer
|
|
buffer.clear();
|
|
line_read++;
|
|
};
|
|
}
|
|
|
|
return success;
|
|
}
|
|
|
|
// Obtiene la cadena de texto del indice
|
|
std::string Lang::getText(int index)
|
|
{
|
|
return mTextStrings[index];
|
|
} |