lang class

This commit is contained in:
2021-08-28 12:23:04 +02:00
parent cc8ef6e927
commit a54d71c990
16 changed files with 596 additions and 430 deletions

View File

@@ -5,7 +5,7 @@
#endif
// Constructor
Title::Title(SDL_Window *window, SDL_Renderer *renderer, Input *input, std::string *fileList, options_t *options, std::string *textStrings)
Title::Title(SDL_Window *window, SDL_Renderer *renderer, Input *input, std::string *fileList, options_t *options, Lang *lang)
{
// Copia las direcciones de los punteros
mWindow = window;
@@ -13,7 +13,7 @@ Title::Title(SDL_Window *window, SDL_Renderer *renderer, Input *input, std::stri
mInput = input;
mFileList = fileList;
mOptions = options;
mTextStrings = textStrings;
mLang = lang;
// Reserva memoria para los punteros propios
mEventHandler = new SDL_Event();
@@ -50,6 +50,9 @@ Title::~Title()
delete mText2;
mText2 = nullptr;
delete mLang;
mLang = nullptr;
delete mFade;
mFade = nullptr;
@@ -243,11 +246,11 @@ void Title::init(bool demo, Uint8 subsection)
// Inicializa los objetos de menu
mMenu.title->init("TITLE", 0, 14 * BLOCK, MENU_BACKGROUND_TRANSPARENT);
mMenu.title->addItem(mTextStrings[51]); // 1 PLAYER
mMenu.title->addItem(mTextStrings[52], 0, 5); // 2 PLAYERS
mMenu.title->addItem(mTextStrings[1], 0, 5); // OPTIONS
//mMenu.title->addItem(mTextStrings[2], 0, 5); // HOW TO PLAY
mMenu.title->addItem(mTextStrings[3]); // QUIT
mMenu.title->addItem(mLang->getText(51)); // 1 PLAYER
mMenu.title->addItem(mLang->getText(52), 0, 5); // 2 PLAYERS
mMenu.title->addItem(mLang->getText(1), 0, 5); // OPTIONS
//mMenu.title->addItem(mLang->getText(2), 0, 5); // HOW TO PLAY
mMenu.title->addItem(mLang->getText(3)); // QUIT
mMenu.title->setDefaultActionWhenCancel(3);
mMenu.title->setBackgroundColor(0x30, 0x30, 0x40, 192);
//mMenu.title->setSelectorColor(0xe5, 0x1c, 0x23, 255);
@@ -258,11 +261,11 @@ void Title::init(bool demo, Uint8 subsection)
mMenu.title->centerMenuElements();
//mMenu.options->init("OPTIONS", 0, 14 * BLOCK, MENU_BACKGROUND_SOLID);
//mMenu.options->addItem(mTextStrings[4]);
//mMenu.options->addItem(mTextStrings[7]);
//mMenu.options->addItem(mTextStrings[8], 0, 5);
//mMenu.options->addItem(mTextStrings[9]);
//mMenu.options->addItem(mTextStrings[10]);
//mMenu.options->addItem(mLang->getText(4));
//mMenu.options->addItem(mLang->getText(7));
//mMenu.options->addItem(mLang->getText(8), 0, 5);
//mMenu.options->addItem(mLang->getText(9));
//mMenu.options->addItem(mLang->getText(10));
//mMenu.options->setDefaultActionWhenCancel(4);
//mMenu.options->setBackgroundColor(0x30, 0x30, 0x40, 192);
//mMenu.options->setSelectorColor(0xe5, 0x1c, 0x23, 255);
@@ -271,11 +274,11 @@ void Title::init(bool demo, Uint8 subsection)
//mMenu.options->centerMenuElements();
mMenu.options->init("OPTIONS", 0, BLOCK, MENU_BACKGROUND_SOLID);
mMenu.options->addItem(mTextStrings[4]); // WINDOW
mMenu.options->addItem(mTextStrings[7]);
mMenu.options->addItem(mTextStrings[8], 0, 5);
mMenu.options->addItem(mTextStrings[9]); // ACCEPT
mMenu.options->addItem(mTextStrings[10]); // CANCEL
mMenu.options->addItem(mLang->getText(4)); // WINDOW
mMenu.options->addItem(mLang->getText(7));
mMenu.options->addItem(mLang->getText(8), 0, 5);
mMenu.options->addItem(mLang->getText(9)); // ACCEPT
mMenu.options->addItem(mLang->getText(10)); // CANCEL
mMenu.options->setDefaultActionWhenCancel(4);
mMenu.options->setBackgroundColor(0x30, 0x30, 0x40, 192);
mMenu.options->setSelectorColor(0xe5, 0x1c, 0x23, 255);
@@ -335,46 +338,46 @@ void Title::updateMenuLabels()
switch (mOptions->fullScreenMode)
{
case 0:
mMenu.options->setItemCaption(0, mTextStrings[4]); // WINDOW
mMenu.options->setItemCaption(0, mLang->getText(4)); // WINDOW
break;
case SDL_WINDOW_FULLSCREEN:
mMenu.options->setItemCaption(0, mTextStrings[5]); // FULLSCREEN
mMenu.options->setItemCaption(0, mLang->getText(5)); // FULLSCREEN
break;
case SDL_WINDOW_FULLSCREEN_DESKTOP:
mMenu.options->setItemCaption(0, mTextStrings[6]); // FAKE FULLSCREEN
mMenu.options->setItemCaption(0, mLang->getText(6)); // FAKE FULLSCREEN
break;
default:
mMenu.options->setItemCaption(0, mTextStrings[4]); // WINDOW
mMenu.options->setItemCaption(0, mLang->getText(4)); // WINDOW
break;
}
mMenu.options->setItemCaption(1, mTextStrings[7] + " x" + std::to_string(mOptions->windowSize)); // WINDOW SIZE
mMenu.options->setItemCaption(1, mLang->getText(7) + " x" + std::to_string(mOptions->windowSize)); // WINDOW SIZE
switch (mOptions->language)
{
case es_ES:
mMenu.options->setItemCaption(2, mTextStrings[8] + " " + mTextStrings[24]);
mMenu.options->setItemCaption(2, mLang->getText(8) + " " + mLang->getText(24));
break;
case ba_BA:
mMenu.options->setItemCaption(2, mTextStrings[8] + " " + mTextStrings[25]);
mMenu.options->setItemCaption(2, mLang->getText(8) + " " + mLang->getText(25));
break;
case en_UK:
mMenu.options->setItemCaption(2, mTextStrings[8] + " " + mTextStrings[26]);
mMenu.options->setItemCaption(2, mLang->getText(8) + " " + mLang->getText(26));
break;
}
mMenu.options->setItemCaption(3, mTextStrings[9]);
mMenu.options->setItemCaption(4, mTextStrings[10]);
mMenu.options->setItemCaption(3, mLang->getText(9));
mMenu.options->setItemCaption(4, mLang->getText(10));
mMenu.options->centerMenu(SCREEN_CENTER_X);
mMenu.options->centerMenuElements();
mMenu.title->setItemCaption(0, mTextStrings[51]); // 1 PLAYER
mMenu.title->setItemCaption(1, mTextStrings[52]); // 2 PLAYERS
mMenu.title->setItemCaption(2, mTextStrings[1]); // OPTIONS
//mMenu.title->setItemCaption(3, mTextStrings[2]); // HOW TO PLAY
mMenu.title->setItemCaption(3, mTextStrings[3]); // QUIT
mMenu.title->setItemCaption(0, mLang->getText(51)); // 1 PLAYER
mMenu.title->setItemCaption(1, mLang->getText(52)); // 2 PLAYERS
mMenu.title->setItemCaption(2, mLang->getText(1)); // OPTIONS
//mMenu.title->setItemCaption(3, mLang->getText(2)); // HOW TO PLAY
mMenu.title->setItemCaption(3, mLang->getText(3)); // QUIT
mMenu.title->centerMenu(SCREEN_CENTER_X);
mMenu.title->centerMenuElements();
@@ -385,7 +388,8 @@ void Title::applyOptions()
{
SDL_SetWindowFullscreen(mWindow, mOptions->fullScreenMode);
SDL_SetWindowSize(mWindow, SCREEN_WIDTH * mOptions->windowSize, SCREEN_HEIGHT * mOptions->windowSize);
initTextStrings(mTextStrings, mOptions->language);
mLang->setLang(mOptions->language);
updateMenuLabels();
}
@@ -701,7 +705,7 @@ section_t Title::run(Uint8 subsection)
// PRESS ANY KEY!
if ((mCounter % 50 > 14) && (mMenuVisible == false))
mText->writeDX(TXT_CENTER | TXT_SHADOW, SCREEN_CENTER_X, PLAY_AREA_THIRD_QUARTER_Y + BLOCK, mTextStrings[23], 1, noColor, 1, shdwTxtColor);
mText->writeDX(TXT_CENTER | TXT_SHADOW, SCREEN_CENTER_X, PLAY_AREA_THIRD_QUARTER_Y + BLOCK, mLang->getText(23), 1, noColor, 1, shdwTxtColor);
// Texto con el copyright y versión
mText2->writeDX(TXT_CENTER | TXT_SHADOW, SCREEN_CENTER_X, SCREEN_HEIGHT - (BLOCK * 2), TEXT_COPYRIGHT, 1, noColor, 1, shdwTxtColor);
@@ -739,7 +743,7 @@ section_t Title::run(Uint8 subsection)
// Ejecuta la parte donde se muestran las instrucciones
void Title::runInstructions(Uint8 mode)
{
mInstructions = new Instructions(mRenderer, mFileList, mTextStrings);
mInstructions = new Instructions(mRenderer, mFileList, mLang);
mInstructions->run(mode);
delete mInstructions;
}
@@ -747,7 +751,7 @@ void Title::runInstructions(Uint8 mode)
// Ejecuta el juego en modo demo
void Title::runDemoGame()
{
mDemoGame = new Game(1, mRenderer, mFileList, mTextStrings, mInput, mInput, true);
mDemoGame = new Game(1, mRenderer, mFileList, mLang, mInput, mInput, true);
mDemoGame->run();
delete mDemoGame;
}