working on options menu

This commit is contained in:
2021-08-28 21:43:47 +02:00
parent 502835453a
commit e9fcacd7c6
7 changed files with 287 additions and 140 deletions

View File

@@ -259,34 +259,27 @@ void Title::init(bool demo, Uint8 subsection)
mMenu.title->setSelectorColor(0xe5, 0x1c, 0x23, 0);
//mMenu.title->setSelectorTextColor(0xFF, 0xF1, 0x76);
mMenu.title->setSelectorTextColor(0xFF, 0xB4, 0x00);
mMenu.title->centerMenu(SCREEN_CENTER_X);
mMenu.title->centerMenuElements();
mMenu.title->centerMenuOnX(SCREEN_CENTER_X);
mMenu.title->centerMenuElementsOnX();
//mMenu.options->init("OPTIONS", 0, 14 * BLOCK, MENU_BACKGROUND_SOLID);
//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);
//mMenu.options->setSelectorTextColor(0xFF, 0xF1, 0x76);
//mMenu.options->centerMenu(SCREEN_CENTER_X);
//mMenu.options->centerMenuElements();
mMenu.options->init("OPTIONS", 0, BLOCK, MENU_BACKGROUND_SOLID);
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->init("OPTIONS", 0, BLOCK, MENU_BACKGROUND_TRANSPARENT);
mMenu.options->addItem(mLang->getText(59), 0, 5); // DIFFICULTY
mMenu.options->addItem(mLang->getText(62)); // PLAYER 1 CONTROLS
mMenu.options->addItem(mLang->getText(63), 0, 5); // PLAYER 2 CONTROLS
mMenu.options->addItem(mLang->getText(8), 0, 5); // LANGUAGE
mMenu.options->addItem(mLang->getText(58)); // DISPLAY MODE
mMenu.options->addItem(mLang->getText(7)); // WINDOW SIZE
mMenu.options->addItem(mLang->getText(60)); // FILTER
mMenu.options->addItem(mLang->getText(61), 0, 5); //VSYNC
mMenu.options->addItem(mLang->getText(9)); // ACCEPT
mMenu.options->addItem(mLang->getText(10)); // CANCEL
mMenu.options->setDefaultActionWhenCancel(9);
mMenu.options->setBackgroundColor(0x30, 0x30, 0x40, 192);
mMenu.options->setSelectorColor(0xe5, 0x1c, 0x23, 255);
mMenu.options->setSelectorTextColor(0xFF, 0xF1, 0x76);
mMenu.options->centerMenu(SCREEN_CENTER_X);
mMenu.options->centerMenuElements();
mMenu.options->centerMenuOnX(SCREEN_CENTER_X);
mMenu.options->centerMenuOnY(SCREEN_CENTER_Y);
mMenu.options->centerMenuElementsOnX();
// Actualiza los textos de los menus
updateMenuLabels();
@@ -337,43 +330,122 @@ void Title::switchFullScreenModeVar()
// Actualiza los elementos de los menus
void Title::updateMenuLabels()
{
switch (mOptions->fullScreenMode)
// DIFFICULTY
switch (mOptions->difficulty)
{
case 0:
mMenu.options->setItemCaption(0, mLang->getText(4)); // WINDOW
case DIFFICULTY_EASY:
mMenu.options->setItemCaption(0, mLang->getText(59) + ": " + mLang->getText(66)); // EASY
break;
case SDL_WINDOW_FULLSCREEN:
mMenu.options->setItemCaption(0, mLang->getText(5)); // FULLSCREEN
case DIFFICULTY_NORMAL:
mMenu.options->setItemCaption(0, mLang->getText(59) + ": " + mLang->getText(67)); // NORMAL
break;
case SDL_WINDOW_FULLSCREEN_DESKTOP:
mMenu.options->setItemCaption(0, mLang->getText(6)); // FAKE FULLSCREEN
case DIFFICULTY_HARD:
mMenu.options->setItemCaption(0, mLang->getText(59) + ": " + mLang->getText(68)); // HARD
break;
default:
mMenu.options->setItemCaption(0, mLang->getText(4)); // WINDOW
mMenu.options->setItemCaption(0, mLang->getText(59) + ": " + mLang->getText(67)); // NORMAL
break;
}
mMenu.options->setItemCaption(1, mLang->getText(7) + " x" + std::to_string(mOptions->windowSize)); // WINDOW SIZE
// PLAYER 1 CONTROLS
switch (mOptions->player1Input)
{
case INPUT_USE_KEYBOARD:
mMenu.options->setItemCaption(1, mLang->getText(62) + ": " + mLang->getText(69)); // KEYBOARD
break;
case INPUT_USE_GAMECONTROLLER:
mMenu.options->setItemCaption(1, mLang->getText(62) + ": " + mLang->getText(70)); // GAME CONTROLLER
break;
default:
mMenu.options->setItemCaption(1, mLang->getText(62) + ": " + mLang->getText(69)); // KEYBOARD
break;
}
// PLAYER 2 CONTROLS
switch (mOptions->player2Input)
{
case INPUT_USE_KEYBOARD:
mMenu.options->setItemCaption(2, mLang->getText(63) + ": " + mLang->getText(69)); // KEYBOARD
break;
case INPUT_USE_GAMECONTROLLER:
mMenu.options->setItemCaption(2, mLang->getText(63) + ": " + mLang->getText(70)); // GAME CONTROLLER
break;
default:
mMenu.options->setItemCaption(2, mLang->getText(63) + ": " + mLang->getText(69)); // KEYBOARD
break;
}
// LANGUAGE
switch (mOptions->language)
{
case es_ES:
mMenu.options->setItemCaption(2, mLang->getText(8) + " " + mLang->getText(24));
mMenu.options->setItemCaption(3, mLang->getText(8) + ": " + mLang->getText(24)); // SPANISH
break;
case ba_BA:
mMenu.options->setItemCaption(2, mLang->getText(8) + " " + mLang->getText(25));
mMenu.options->setItemCaption(3, mLang->getText(8) + ": " + mLang->getText(25)); // VALENCIAN
break;
case en_UK:
mMenu.options->setItemCaption(2, mLang->getText(8) + " " + mLang->getText(26));
mMenu.options->setItemCaption(3, mLang->getText(8) + ": " + mLang->getText(26)); // ENGLISH
break;
default:
mMenu.options->setItemCaption(3, mLang->getText(8) + ": " + mLang->getText(26)); // ENGLISH
break;
}
mMenu.options->setItemCaption(3, mLang->getText(9));
mMenu.options->setItemCaption(4, mLang->getText(10));
// DISPLAY MODE
switch (mOptions->fullScreenMode)
{
case 0:
mMenu.options->setItemCaption(4, mLang->getText(58) + ": " + mLang->getText(4)); // WINDOW
break;
mMenu.options->centerMenu(SCREEN_CENTER_X);
mMenu.options->centerMenuElements();
case SDL_WINDOW_FULLSCREEN:
mMenu.options->setItemCaption(4, mLang->getText(58) + ": " + mLang->getText(5)); // FULLSCREEN
break;
case SDL_WINDOW_FULLSCREEN_DESKTOP:
mMenu.options->setItemCaption(4, mLang->getText(58) + ": " + mLang->getText(6)); // FAKE FULLSCREEN
break;
default:
mMenu.options->setItemCaption(4, mLang->getText(58) + ": " + mLang->getText(4)); // WINDOW
break;
}
// WINDOW SIZE
mMenu.options->setItemCaption(5, mLang->getText(7) + " x" + std::to_string(mOptions->windowSize)); // WINDOW SIZE
// FILTER
if (mOptions->filter == FILTER_BILINEAL)
mMenu.options->setItemCaption(6, mLang->getText(60) + ": " + mLang->getText(71)); // BILINEAL
else
mMenu.options->setItemCaption(6, mLang->getText(60) + ": " + mLang->getText(72)); // LINEAL
// VSYNC
if (mOptions->vSync)
mMenu.options->setItemCaption(7, mLang->getText(61) + ": " + mLang->getText(73)); // ON
else
mMenu.options->setItemCaption(7, mLang->getText(61) + ": " + mLang->getText(74)); // OFF
// ACCEPT
mMenu.options->setItemCaption(8, mLang->getText(9)); // ACCEPT
// CANCEL
mMenu.options->setItemCaption(9, mLang->getText(10)); // CANCEL
mMenu.options->centerMenuOnX(SCREEN_CENTER_X);
mMenu.options->centerMenuOnY(SCREEN_CENTER_Y);
//mMenu.options->centerMenuElementsOnX();
mMenu.title->setItemCaption(0, mLang->getText(51)); // 1 PLAYER
mMenu.title->setItemCaption(1, mLang->getText(52)); // 2 PLAYERS
@@ -381,8 +453,8 @@ void Title::updateMenuLabels()
//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();
mMenu.title->centerMenuOnX(SCREEN_CENTER_X);
mMenu.title->centerMenuElementsOnX();
}
// Aplica las opciones de menu seleccionadas
@@ -696,8 +768,11 @@ section_t Title::run(Uint8 subsection)
mGradient->render();
// Dibuja los objetos
mCoffeeBitmap->render();
mCrisisBitmap->render();
if (mMenu.active->getName() != "OPTIONS")
{
mCoffeeBitmap->render();
mCrisisBitmap->render();
}
if (mMenuVisible == true)
mMenu.active->render();
mDustBitmapR->animate(0);
@@ -753,7 +828,7 @@ void Title::runInstructions(Uint8 mode)
// Ejecuta el juego en modo demo
void Title::runDemoGame()
{
mDemoGame = new Game(1, mRenderer, mFileList, mLang, mInput, mInput, true);
mDemoGame = new Game(1, mRenderer, mFileList, mLang, mInput, mInput, true, DIFFICULTY_NORMAL);
mDemoGame->run();
delete mDemoGame;
}