working on options menu, almost done
This commit is contained in:
160
source/title.cpp
160
source/title.cpp
@@ -263,23 +263,25 @@ void Title::init(bool demo, Uint8 subsection)
|
||||
mMenu.title->centerMenuElementsOnX();
|
||||
|
||||
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->addItem(mLang->getText(59), 0, 5); // (0) DIFFICULTY
|
||||
mMenu.options->addItem(mLang->getText(62)); // (1) PLAYER 1 CONTROLS
|
||||
mMenu.options->addItem(mLang->getText(69), 0, 0, false, false); // (2) KEYBOARD
|
||||
mMenu.options->addItem(mLang->getText(63)); // (3) PLAYER 2 CONTROLS
|
||||
mMenu.options->addItem(mLang->getText(70), 0, 5, false, false); // (4) GAME CONTROLLER
|
||||
mMenu.options->addItem(mLang->getText(8), 0, 5); // (5) LANGUAGE
|
||||
mMenu.options->addItem(mLang->getText(58)); // (6) DISPLAY MODE
|
||||
mMenu.options->addItem(mLang->getText(4), 0, 0, false, false); // (7) WINDOWED
|
||||
mMenu.options->addItem(mLang->getText(7)); // (8) WINDOW SIZE
|
||||
mMenu.options->addItem(mLang->getText(60)); // (9) FILTER
|
||||
mMenu.options->addItem(mLang->getText(61), 0, 5); // (10) VSYNC
|
||||
mMenu.options->addItem(mLang->getText(9)); // (11) ACCEPT
|
||||
mMenu.options->addItem(mLang->getText(10)); // (12) 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->centerMenuOnX(SCREEN_CENTER_X);
|
||||
mMenu.options->centerMenuOnY(SCREEN_CENTER_Y);
|
||||
mMenu.options->centerMenuElementsOnX();
|
||||
|
||||
// Actualiza los textos de los menus
|
||||
updateMenuLabels();
|
||||
@@ -330,122 +332,132 @@ void Title::switchFullScreenModeVar()
|
||||
// Actualiza los elementos de los menus
|
||||
void Title::updateMenuLabels()
|
||||
{
|
||||
int i = 0;
|
||||
// DIFFICULTY
|
||||
switch (mOptions->difficulty)
|
||||
{
|
||||
case DIFFICULTY_EASY:
|
||||
mMenu.options->setItemCaption(0, mLang->getText(59) + ": " + mLang->getText(66)); // EASY
|
||||
mMenu.options->setItemCaption(i, mLang->getText(59) + ": " + mLang->getText(66)); // EASY
|
||||
break;
|
||||
|
||||
case DIFFICULTY_NORMAL:
|
||||
mMenu.options->setItemCaption(0, mLang->getText(59) + ": " + mLang->getText(67)); // NORMAL
|
||||
mMenu.options->setItemCaption(i, mLang->getText(59) + ": " + mLang->getText(67)); // NORMAL
|
||||
break;
|
||||
|
||||
case DIFFICULTY_HARD:
|
||||
mMenu.options->setItemCaption(0, mLang->getText(59) + ": " + mLang->getText(68)); // HARD
|
||||
mMenu.options->setItemCaption(i, mLang->getText(59) + ": " + mLang->getText(68)); // HARD
|
||||
break;
|
||||
|
||||
default:
|
||||
mMenu.options->setItemCaption(0, mLang->getText(59) + ": " + mLang->getText(67)); // NORMAL
|
||||
mMenu.options->setItemCaption(i, mLang->getText(59) + ": " + mLang->getText(67)); // NORMAL
|
||||
break;
|
||||
}
|
||||
|
||||
i = 2;
|
||||
// PLAYER 1 CONTROLS
|
||||
switch (mOptions->player1Input)
|
||||
{
|
||||
case INPUT_USE_KEYBOARD:
|
||||
mMenu.options->setItemCaption(1, mLang->getText(62) + ": " + mLang->getText(69)); // KEYBOARD
|
||||
mMenu.options->setItemCaption(i, mLang->getText(69)); // KEYBOARD
|
||||
break;
|
||||
|
||||
case INPUT_USE_GAMECONTROLLER:
|
||||
mMenu.options->setItemCaption(1, mLang->getText(62) + ": " + mLang->getText(70)); // GAME CONTROLLER
|
||||
mMenu.options->setItemCaption(i, mLang->getText(70)); // GAME CONTROLLER
|
||||
break;
|
||||
|
||||
default:
|
||||
mMenu.options->setItemCaption(1, mLang->getText(62) + ": " + mLang->getText(69)); // KEYBOARD
|
||||
mMenu.options->setItemCaption(i, mLang->getText(69)); // KEYBOARD
|
||||
break;
|
||||
}
|
||||
|
||||
i = 4;
|
||||
// PLAYER 2 CONTROLS
|
||||
switch (mOptions->player2Input)
|
||||
{
|
||||
case INPUT_USE_KEYBOARD:
|
||||
mMenu.options->setItemCaption(2, mLang->getText(63) + ": " + mLang->getText(69)); // KEYBOARD
|
||||
mMenu.options->setItemCaption(i, mLang->getText(69)); // KEYBOARD
|
||||
break;
|
||||
|
||||
case INPUT_USE_GAMECONTROLLER:
|
||||
mMenu.options->setItemCaption(2, mLang->getText(63) + ": " + mLang->getText(70)); // GAME CONTROLLER
|
||||
mMenu.options->setItemCaption(i, mLang->getText(70)); // GAME CONTROLLER
|
||||
break;
|
||||
|
||||
default:
|
||||
mMenu.options->setItemCaption(2, mLang->getText(63) + ": " + mLang->getText(69)); // KEYBOARD
|
||||
mMenu.options->setItemCaption(i, mLang->getText(69)); // KEYBOARD
|
||||
break;
|
||||
}
|
||||
|
||||
i++;
|
||||
// LANGUAGE
|
||||
switch (mOptions->language)
|
||||
{
|
||||
case es_ES:
|
||||
mMenu.options->setItemCaption(3, mLang->getText(8) + ": " + mLang->getText(24)); // SPANISH
|
||||
mMenu.options->setItemCaption(i, mLang->getText(8) + ": " + mLang->getText(24)); // SPANISH
|
||||
break;
|
||||
|
||||
case ba_BA:
|
||||
mMenu.options->setItemCaption(3, mLang->getText(8) + ": " + mLang->getText(25)); // VALENCIAN
|
||||
mMenu.options->setItemCaption(i, mLang->getText(8) + ": " + mLang->getText(25)); // VALENCIAN
|
||||
break;
|
||||
|
||||
case en_UK:
|
||||
mMenu.options->setItemCaption(3, mLang->getText(8) + ": " + mLang->getText(26)); // ENGLISH
|
||||
mMenu.options->setItemCaption(i, mLang->getText(8) + ": " + mLang->getText(26)); // ENGLISH
|
||||
break;
|
||||
|
||||
default:
|
||||
mMenu.options->setItemCaption(3, mLang->getText(8) + ": " + mLang->getText(26)); // ENGLISH
|
||||
mMenu.options->setItemCaption(i, mLang->getText(8) + ": " + mLang->getText(26)); // ENGLISH
|
||||
break;
|
||||
}
|
||||
|
||||
i = 7;
|
||||
// DISPLAY MODE
|
||||
switch (mOptions->fullScreenMode)
|
||||
{
|
||||
case 0:
|
||||
mMenu.options->setItemCaption(4, mLang->getText(58) + ": " + mLang->getText(4)); // WINDOW
|
||||
mMenu.options->setItemCaption(i, mLang->getText(4)); // WINDOW
|
||||
break;
|
||||
|
||||
case SDL_WINDOW_FULLSCREEN:
|
||||
mMenu.options->setItemCaption(4, mLang->getText(58) + ": " + mLang->getText(5)); // FULLSCREEN
|
||||
mMenu.options->setItemCaption(i, mLang->getText(5)); // FULLSCREEN
|
||||
break;
|
||||
|
||||
case SDL_WINDOW_FULLSCREEN_DESKTOP:
|
||||
mMenu.options->setItemCaption(4, mLang->getText(58) + ": " + mLang->getText(6)); // FAKE FULLSCREEN
|
||||
mMenu.options->setItemCaption(i, mLang->getText(6)); // FAKE FULLSCREEN
|
||||
break;
|
||||
|
||||
default:
|
||||
mMenu.options->setItemCaption(4, mLang->getText(58) + ": " + mLang->getText(4)); // WINDOW
|
||||
mMenu.options->setItemCaption(i, mLang->getText(4)); // WINDOW
|
||||
break;
|
||||
}
|
||||
|
||||
i++;
|
||||
// WINDOW SIZE
|
||||
mMenu.options->setItemCaption(5, mLang->getText(7) + " x" + std::to_string(mOptions->windowSize)); // WINDOW SIZE
|
||||
mMenu.options->setItemCaption(i, mLang->getText(7) + " x" + std::to_string(mOptions->windowSize)); // WINDOW SIZE
|
||||
|
||||
i++;
|
||||
// FILTER
|
||||
if (mOptions->filter == FILTER_BILINEAL)
|
||||
mMenu.options->setItemCaption(6, mLang->getText(60) + ": " + mLang->getText(71)); // BILINEAL
|
||||
mMenu.options->setItemCaption(i, mLang->getText(60) + ": " + mLang->getText(71)); // BILINEAL
|
||||
else
|
||||
mMenu.options->setItemCaption(6, mLang->getText(60) + ": " + mLang->getText(72)); // LINEAL
|
||||
mMenu.options->setItemCaption(i, mLang->getText(60) + ": " + mLang->getText(72)); // LINEAL
|
||||
|
||||
i++;
|
||||
// VSYNC
|
||||
if (mOptions->vSync)
|
||||
mMenu.options->setItemCaption(7, mLang->getText(61) + ": " + mLang->getText(73)); // ON
|
||||
mMenu.options->setItemCaption(i, mLang->getText(61) + ": " + mLang->getText(73)); // ON
|
||||
else
|
||||
mMenu.options->setItemCaption(7, mLang->getText(61) + ": " + mLang->getText(74)); // OFF
|
||||
mMenu.options->setItemCaption(i, mLang->getText(61) + ": " + mLang->getText(74)); // OFF
|
||||
|
||||
i++;
|
||||
// ACCEPT
|
||||
mMenu.options->setItemCaption(8, mLang->getText(9)); // ACCEPT
|
||||
mMenu.options->setItemCaption(i, mLang->getText(9)); // ACCEPT
|
||||
|
||||
i++;
|
||||
// CANCEL
|
||||
mMenu.options->setItemCaption(9, mLang->getText(10)); // CANCEL
|
||||
mMenu.options->setItemCaption(i, mLang->getText(10)); // CANCEL
|
||||
|
||||
mMenu.options->centerMenuOnX(SCREEN_CENTER_X);
|
||||
mMenu.options->centerMenuOnY(SCREEN_CENTER_Y);
|
||||
//mMenu.options->centerMenuElementsOnX();
|
||||
mMenu.options->centerMenuElementsOnX();
|
||||
|
||||
mMenu.title->setItemCaption(0, mLang->getText(51)); // 1 PLAYER
|
||||
mMenu.title->setItemCaption(1, mLang->getText(52)); // 2 PLAYERS
|
||||
@@ -694,9 +706,10 @@ section_t Title::run(Uint8 subsection)
|
||||
break;
|
||||
case 2: // OPTIONS
|
||||
mMenu.active = mMenu.options;
|
||||
mOptions->fullScreenModePrevious = mOptions->fullScreenMode;
|
||||
mOptions->windowSizePrevious = mOptions->windowSize;
|
||||
mOptions->languagePrevious = mOptions->language;
|
||||
mOptionsPrevious = *mOptions;
|
||||
//mOptions->fullScreenModePrevious = mOptions->fullScreenMode;
|
||||
//mOptions->windowSizePrevious = mOptions->windowSize;
|
||||
//mOptions->languagePrevious = mOptions->language;
|
||||
break;
|
||||
//case 3: // HOW TO PLAY
|
||||
// runInstructions(INSTRUCTIONS_MODE_MANUAL);
|
||||
@@ -716,31 +729,63 @@ section_t Title::run(Uint8 subsection)
|
||||
{
|
||||
switch (mMenu.active->getItemSelected())
|
||||
{
|
||||
case 0: // Fullscreen mode
|
||||
switchFullScreenModeVar();
|
||||
case 0: // Difficulty
|
||||
if (mOptions->difficulty == DIFFICULTY_EASY)
|
||||
mOptions->difficulty = DIFFICULTY_NORMAL;
|
||||
else if (mOptions->difficulty == DIFFICULTY_NORMAL)
|
||||
mOptions->difficulty = DIFFICULTY_HARD;
|
||||
else
|
||||
mOptions->difficulty = DIFFICULTY_EASY;
|
||||
updateMenuLabels();
|
||||
break;
|
||||
case 1: // Windows size
|
||||
mOptions->windowSize++;
|
||||
if (mOptions->windowSize == 5)
|
||||
mOptions->windowSize = 1;
|
||||
case 1: // PLAYER 1 CONTROLS
|
||||
SwitchInputs(1);
|
||||
updateMenuLabels();
|
||||
break;
|
||||
case 2: // Language
|
||||
case 3: // PLAYER 2 CONTROLS
|
||||
SwitchInputs(2);
|
||||
updateMenuLabels();
|
||||
break;
|
||||
case 5: // Language
|
||||
mOptions->language++;
|
||||
if (mOptions->language == 3)
|
||||
mOptions->language = 0;
|
||||
updateMenuLabels();
|
||||
break;
|
||||
case 3: // OK
|
||||
case 6: // Display mode
|
||||
switchFullScreenModeVar();
|
||||
updateMenuLabels();
|
||||
break;
|
||||
case 8: // Windows size
|
||||
mOptions->windowSize++;
|
||||
if (mOptions->windowSize == 5)
|
||||
mOptions->windowSize = 1;
|
||||
updateMenuLabels();
|
||||
break;
|
||||
case 9: // FILTER
|
||||
if (mOptions->filter == FILTER_BILINEAL)
|
||||
mOptions->filter = FILTER_LINEAL;
|
||||
else
|
||||
mOptions->filter = FILTER_BILINEAL;
|
||||
updateMenuLabels();
|
||||
break;
|
||||
case 10: // VSYNC
|
||||
if (mOptions->vSync)
|
||||
mOptions->vSync = false;
|
||||
else
|
||||
mOptions->vSync = true;
|
||||
updateMenuLabels();
|
||||
break;
|
||||
case 11: // ACCEPT
|
||||
applyOptions();
|
||||
mMenu.active->reset();
|
||||
mMenu.active = mMenu.title;
|
||||
break;
|
||||
case 4: // CANCEL
|
||||
mOptions->fullScreenMode = mOptions->fullScreenModePrevious;
|
||||
mOptions->windowSize = mOptions->windowSizePrevious;
|
||||
mOptions->language = mOptions->languagePrevious;
|
||||
case 12: // CANCEL
|
||||
mOptions = &mOptionsPrevious;
|
||||
//mOptions->fullScreenMode = mOptions->fullScreenModePrevious;
|
||||
//mOptions->windowSize = mOptions->windowSizePrevious;
|
||||
//mOptions->language = mOptions->languagePrevious;
|
||||
updateMenuLabels();
|
||||
mMenu.active->reset();
|
||||
mMenu.active = mMenu.title;
|
||||
@@ -831,4 +876,13 @@ void Title::runDemoGame()
|
||||
mDemoGame = new Game(1, mRenderer, mFileList, mLang, mInput, mInput, true, DIFFICULTY_NORMAL);
|
||||
mDemoGame->run();
|
||||
delete mDemoGame;
|
||||
}
|
||||
}
|
||||
|
||||
// Modifica las opciones para los controles de los jugadores
|
||||
void Title::SwitchInputs(int value)
|
||||
{
|
||||
Uint8 temp;
|
||||
temp = mOptions->player1Input;
|
||||
mOptions->player1Input = mOptions->player2Input;
|
||||
mOptions->player2Input = temp;
|
||||
}
|
||||
Reference in New Issue
Block a user