working on options menu
This commit is contained in:
@@ -104,13 +104,47 @@ NICE!!
|
||||
1 PLAYER
|
||||
## 52 - MENU DEL TITULO
|
||||
2 PLAYERS
|
||||
## 53 MARCADOR
|
||||
## 53 - MARCADOR
|
||||
player 1
|
||||
## 54 MARCADOR
|
||||
## 54 - MARCADOR
|
||||
player 2
|
||||
## 55 MARCADOR
|
||||
## 55 - MARCADOR
|
||||
mult -
|
||||
## 56 MARCADOR
|
||||
## 56 - MARCADOR
|
||||
high score -
|
||||
## 57 MARCADOR
|
||||
stage
|
||||
## 57 - MARCADOR
|
||||
stage
|
||||
## 58 - MENU DE OPCIONES
|
||||
DISPLAY MODE
|
||||
## 59 - MENU DE OPCIONES
|
||||
DIFFICULTY
|
||||
## 60 - MENU DE OPCIONES
|
||||
FILTER
|
||||
## 61 - MENU DE OPCIONES
|
||||
VSYNC
|
||||
## 62 - MENU DE OPCIONES
|
||||
PLAYER 1 CONTROLS
|
||||
## 63 - MENU DE OPCIONES
|
||||
PLAYER 2 CONTROLS
|
||||
## 64 - MENU DE OPCIONES
|
||||
KEYBOARD
|
||||
## 65 - MENU DE OPCIONES
|
||||
GAME CONTROLLER
|
||||
## 66 - MENU DE OPCIONES
|
||||
EASY
|
||||
## 67 - MENU DE OPCIONES
|
||||
NORMAL
|
||||
## 68 - MENU DE OPCIONES
|
||||
HARD
|
||||
## 69 - MENU DE OPCIONES
|
||||
KEYBOARD
|
||||
## 70 - MENU DE OPCIONES
|
||||
GAME CONTROLLER
|
||||
## 71 - MENU DE OPCIONES
|
||||
BILINEAL
|
||||
## 72 - MENU DE OPCIONES
|
||||
LINEAL
|
||||
## 73 - MENU DE OPCIONES
|
||||
ON
|
||||
## 74 - MENU DE OPCIONES
|
||||
OFF
|
||||
@@ -351,4 +351,8 @@ const color_t shdwTxtColor = {0x43, 0x43, 0x4F};
|
||||
#define DIFFICULTY_NORMAL 1
|
||||
#define DIFFICULTY_HARD 2
|
||||
|
||||
// Tipo de filtro
|
||||
#define FILTER_BILINEAL 0
|
||||
#define FILTER_LINEAL 1
|
||||
|
||||
#endif
|
||||
@@ -386,8 +386,8 @@ void Game::init()
|
||||
mMenuPause->setBackgroundColor(0x29, 0x39, 0x41, 240);
|
||||
mMenuPause->setSelectorColor(0xFF, 0x7A, 0x00, 255);
|
||||
mMenuPause->setSelectorTextColor(0xFF, 0xFF, 0xFF);
|
||||
mMenuPause->centerMenu(SCREEN_CENTER_X);
|
||||
mMenuPause->centerMenuElements();
|
||||
mMenuPause->centerMenuOnX(SCREEN_CENTER_X);
|
||||
mMenuPause->centerMenuElementsOnX();
|
||||
|
||||
// Inicializa el objeto con el menu de la pantalla de game over
|
||||
mMenuGameOver->init("GAME OVER", 0, PLAY_AREA_CENTER_Y + BLOCK * 4, MENU_BACKGROUND_TRANSPARENT);
|
||||
@@ -400,8 +400,8 @@ void Game::init()
|
||||
mMenuGameOver->setSelectorTextColor(0xFF, 0xFF, 0xFF);
|
||||
mMenuGameOver->setSelectorTextColor(0xFF, 0xF1, 0x76);
|
||||
mMenuGameOver->setSelectorTextColor(0xFF, 0x7A, 0x00);
|
||||
mMenuGameOver->centerMenu(SCREEN_CENTER_X);
|
||||
mMenuGameOver->centerMenuElements();
|
||||
mMenuGameOver->centerMenuOnX(SCREEN_CENTER_X);
|
||||
mMenuGameOver->centerMenuElementsOnX();
|
||||
|
||||
// Sprites
|
||||
mClouds1a->init(0, 0, 256, 52, -0.4f, 0.0f, 0.0f, 0.0f, mTextureGameBG, mRenderer);
|
||||
|
||||
156
source/menu.cpp
156
source/menu.cpp
@@ -47,9 +47,11 @@ void Menu::init(std::string name, int x, int y, int backgroundType)
|
||||
mSelector.b = 0;
|
||||
mSelector.a = 255;
|
||||
mBackgroundType = backgroundType;
|
||||
mIsCentered = false;
|
||||
mAreElementsCentered = false;
|
||||
mCenter = x + ((SCREEN_WIDTH - x) / 2);
|
||||
mIsCenteredOnX = false;
|
||||
mIsCenteredOnY = false;
|
||||
mAreElementsCenteredOnX = false;
|
||||
mCenterX = x + ((SCREEN_WIDTH - x) / 2);
|
||||
mCenterY = y + ((SCREEN_HEIGHT - y) / 2);
|
||||
mWidestItem = 0;
|
||||
|
||||
// Selector
|
||||
@@ -60,15 +62,6 @@ void Menu::init(std::string name, int x, int y, int backgroundType)
|
||||
mSelector.despY = 0;
|
||||
mSelector.moving = false;
|
||||
|
||||
// Sprite con los graficos del selector
|
||||
//mSelectorSprite.setWidth(8);
|
||||
//mSelectorSprite.setHeight(8);
|
||||
//mSelectorSprite.setPosX(0);
|
||||
//mSelectorSprite.setPosY(0);
|
||||
//mSelectorSprite.setTexture(texture);
|
||||
//mSelectorSprite.setRenderer(renderer);
|
||||
//mSelectorSprite.setSpriteClip(0, 0, mSelectorSprite.getWidth(), mSelectorSprite.getHeight());
|
||||
|
||||
// Elementos del menu
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
@@ -80,9 +73,6 @@ void Menu::init(std::string name, int x, int y, int backgroundType)
|
||||
mItem[i].hPaddingUp = 0;
|
||||
mItem[i].hPaddingDown = 0;
|
||||
}
|
||||
|
||||
// Mueve el grafico del selector al elemento seleccionado
|
||||
//moveSelectorSprite(mSelector.index);
|
||||
}
|
||||
|
||||
// Carga los recursos necesarios para la sección 'Title'
|
||||
@@ -113,12 +103,6 @@ Uint8 Menu::getItemSelected()
|
||||
return temp;
|
||||
}
|
||||
|
||||
// Mueve el grafico del selector al elemento seleccionado
|
||||
/*void Menu::moveSelectorSprite(int pos)
|
||||
{
|
||||
mSelector.rect.y = mItem[pos].y - 1;
|
||||
}*/
|
||||
|
||||
// Actualiza la posicion y el estado del selector
|
||||
void Menu::updateSelector()
|
||||
{
|
||||
@@ -194,7 +178,6 @@ void Menu::reset()
|
||||
{
|
||||
mItemSelected = MENU_NO_OPTION;
|
||||
mSelector.index = 0;
|
||||
//moveSelectorSprite(mSelector.index);
|
||||
mSelector.origin = mSelector.target = mSelector.y = mItem[0].y;
|
||||
mSelector.moving = false;
|
||||
}
|
||||
@@ -209,10 +192,12 @@ void Menu::deselectItem()
|
||||
void Menu::reorganize()
|
||||
{
|
||||
setRectSize();
|
||||
if (mIsCentered)
|
||||
centerMenu(mCenter);
|
||||
if (mAreElementsCentered)
|
||||
centerMenuElements();
|
||||
if (mIsCenteredOnX)
|
||||
centerMenuOnX(mCenterX);
|
||||
if (mIsCenteredOnY)
|
||||
centerMenuOnY(mCenterY);
|
||||
if (mAreElementsCenteredOnX)
|
||||
centerMenuElementsOnX();
|
||||
}
|
||||
|
||||
// Deja el menu apuntando al siguiente elemento
|
||||
@@ -278,9 +263,6 @@ void Menu::render()
|
||||
SDL_RenderDrawRect(mRenderer, &mRectBG.rect);
|
||||
}
|
||||
|
||||
// Renderiza el sprite del selector
|
||||
//mSelectorSprite.render();
|
||||
|
||||
// Renderitza el text
|
||||
for (int i = 0; i < mTotalItems; i++)
|
||||
{
|
||||
@@ -299,30 +281,13 @@ void Menu::render()
|
||||
// Establece el rectangulo de fondo del menu y el selector
|
||||
void Menu::setRectSize()
|
||||
{
|
||||
Uint8 i = 0;
|
||||
mRectBG.rect.w = 0;
|
||||
mRectBG.rect.h = 0;
|
||||
mSelector.rect.w = 0;
|
||||
mSelector.rect.h = 0;
|
||||
findHeight();
|
||||
findWidth();
|
||||
mRectBG.rect.w = mWidth;
|
||||
mRectBG.rect.h = mHeight;
|
||||
|
||||
// Obtenemos la anchura del item mas ancho y la altura de la suma de alturas de los items
|
||||
for (i = 0; i < mTotalItems; i++)
|
||||
{
|
||||
if (mItem[i].w > mRectBG.rect.w)
|
||||
{
|
||||
mRectBG.rect.w = mItem[i].w;
|
||||
}
|
||||
mRectBG.rect.h += mItem[i].h + mItem[i].hPaddingDown;
|
||||
}
|
||||
|
||||
// La anchura de la cadena más larga, mas un caracter, mas la anchura del sprite del selector
|
||||
mRectBG.rect.w += (mText->getCharacterWidth() * 1); // + mSelectorSprite.getWidth();
|
||||
|
||||
// La altura de la suma de los items mas un caracter y menos un pixel (porque el texto en realidad es de 7 pixeles)
|
||||
mRectBG.rect.h += (mText->getCharacterWidth() * 1) - 1;
|
||||
|
||||
// La posición X es la del menú menos la anchura del sprite del selector y menos medio caracter
|
||||
mRectBG.rect.x = mPosX - (mText->getCharacterWidth() / 2); // - mSelectorSprite.getWidth();
|
||||
// La posición X es la del menú menos medio caracter
|
||||
mRectBG.rect.x = mPosX - (mText->getCharacterWidth() / 2);
|
||||
|
||||
// La posición Y es la del menu menos la altura de medio caracter i el padding
|
||||
mRectBG.rect.y = mPosY - (mText->getCharacterWidth() / 2) - mVerticalPadding;
|
||||
@@ -365,11 +330,11 @@ void Menu::setSelectorTextColor(int r, int g, int b)
|
||||
mSelector.itemB = b;
|
||||
}
|
||||
|
||||
// Centra el menu respecto un punto
|
||||
void Menu::centerMenu(int value)
|
||||
// Centra el menu respecto un punto en el eje X
|
||||
void Menu::centerMenuOnX(int value)
|
||||
{
|
||||
mIsCentered = true;
|
||||
mCenter = value;
|
||||
mIsCenteredOnX = true;
|
||||
mCenterX = value;
|
||||
|
||||
// Actualiza el rectangulo de fondo para recalcular las dimensiones
|
||||
setRectSize();
|
||||
@@ -392,22 +357,41 @@ void Menu::centerMenu(int value)
|
||||
// Recoloca el selector
|
||||
mSelector.origin = mSelector.target = mSelector.y = mItem[mSelector.index].y;
|
||||
mSelector.moving = false;
|
||||
//moveSelectorSprite(mSelector.index);
|
||||
}
|
||||
|
||||
// Centra los elementos del menu
|
||||
void Menu::centerMenuElements()
|
||||
// Centra el menu respecto un punto en el eje Y
|
||||
void Menu::centerMenuOnY(int value)
|
||||
{
|
||||
mAreElementsCentered = true;
|
||||
mIsCenteredOnY = true;
|
||||
mCenterY = value;
|
||||
|
||||
// Actualiza el rectangulo de fondo para recalcular las dimensiones
|
||||
setRectSize();
|
||||
|
||||
// Obten el alto del menu
|
||||
findHeight();
|
||||
|
||||
// Establece la nueva posición centrada en funcion del elemento más ancho
|
||||
mPosY = (value) - (mHeight / 2);
|
||||
|
||||
// Reposiciona los elementos del menu
|
||||
replaceElementsOnY();
|
||||
|
||||
// Recalcula el rectangulo de fondo
|
||||
setRectSize();
|
||||
|
||||
// Recoloca el selector
|
||||
mSelector.origin = mSelector.target = mSelector.y = mItem[mSelector.index].y;
|
||||
mSelector.moving = false;
|
||||
}
|
||||
|
||||
// Centra los elementos del menu en el eje X
|
||||
void Menu::centerMenuElementsOnX()
|
||||
{
|
||||
mAreElementsCenteredOnX = true;
|
||||
|
||||
for (int i = 0; i < mTotalItems; i++)
|
||||
{
|
||||
//mItem[i].x = (mCenter - ((mText->lenght(mItem[i].label, 0)) / 2));
|
||||
mItem[i].x = (mCenter - (mItem[i].w / 2));
|
||||
}
|
||||
|
||||
// Mueve el grafico del selector al elemento seleccionado
|
||||
//moveSelectorSprite(mSelector.index);
|
||||
mItem[i].x = (mCenterX - (mItem[i].w / 2));
|
||||
}
|
||||
|
||||
// Añade un item al menu
|
||||
@@ -483,4 +467,42 @@ void Menu::checkInput()
|
||||
mItemSelected = mDefaultActionWhenCancel;
|
||||
JA_PlaySound(mSoundCancel);
|
||||
}
|
||||
}
|
||||
|
||||
// Calcula el ancho del menu
|
||||
void Menu::findWidth()
|
||||
{
|
||||
mWidth = 0;
|
||||
|
||||
// Obtenemos la anchura del item mas ancho
|
||||
for (int i = 0; i < mTotalItems; i++)
|
||||
if (mItem[i].w > mWidth)
|
||||
mWidth = mItem[i].w;
|
||||
|
||||
// La anchura de la cadena más larga, mas un caracter
|
||||
mWidth += (mText->getCharacterWidth() * 1);
|
||||
}
|
||||
|
||||
// Calcula el alto del menu
|
||||
void Menu::findHeight()
|
||||
{
|
||||
mHeight = 0;
|
||||
|
||||
// Obtenemos la altura de la suma de alturas de los items
|
||||
for (int i = 0; i < mTotalItems; i++)
|
||||
mHeight += mItem[i].h + mItem[i].hPaddingDown;
|
||||
|
||||
// La altura de la suma de los items mas un caracter y menos un pixel (porque el texto en realidad es de 7 pixeles)
|
||||
mHeight += (mText->getCharacterWidth() * 1) - 1;
|
||||
}
|
||||
|
||||
// Recoloca los elementos del menu en el eje Y
|
||||
void Menu::replaceElementsOnY()
|
||||
{
|
||||
mItem[0].y = mPosY;
|
||||
|
||||
for (int i = 1; i < mTotalItems; i++)
|
||||
{
|
||||
mItem[i].y = mItem[i - 1].y + mItem[i - 1].h + mItem[i - 1].hPaddingDown;
|
||||
}
|
||||
}
|
||||
@@ -16,18 +16,21 @@ private:
|
||||
int mPosY; // Posición en el eje Y de la primera letra del primer elemento
|
||||
std::string mName; // Nombre del menu
|
||||
Uint8 mTotalItems; // Numero total de items del menu
|
||||
int mItemSelected; // Índice del item del menu que ha sido seleccionado
|
||||
int mItemSelected; // Índice del item del menu que ha sido seleccionado
|
||||
Uint8 mDefaultActionWhenCancel; // Indice del item del menu que se selecciona cuando se cancela el menu
|
||||
Uint8 mVerticalPadding; // Espacio de separacion entre items
|
||||
Uint8 mBackgroundType; // Tipo de fondo para el menu
|
||||
Sprite *mSelectorSprite; // Sprite con los graficos del selector
|
||||
Text *mText; // Texto para poder escribir los items del menu
|
||||
SDL_Renderer *mRenderer; // Puntero al renderizador de la ventana
|
||||
std::string *mFileList; // Lista de ficheros
|
||||
bool mIsCentered; // Variable para saber si el menu debe estar centrado respecto a un punto
|
||||
int mCenter; // Centro del menu
|
||||
bool mAreElementsCentered; // Variable para saber si los elementos van centrados
|
||||
std::string *mFileList; // Lista de ficheros
|
||||
bool mIsCenteredOnX; // Variable para saber si el menu debe estar centrado respecto a un punto en el eje X
|
||||
bool mIsCenteredOnY; // Variable para saber si el menu debe estar centrado respecto a un punto en el eje Y
|
||||
int mCenterX; // Centro del menu en el eje X
|
||||
int mCenterY; // Centro del menu en el eje Y
|
||||
bool mAreElementsCenteredOnX; // Variable para saber si los elementos van centrados en el eje X
|
||||
Uint16 mWidestItem; // Anchura del elemento más ancho
|
||||
Uint16 mHeight; // Altura del menu
|
||||
Uint16 mWidth; // Anchura del menu
|
||||
JA_Sound mSoundAccept; // Sonido al aceptar o elegir una opción del menu
|
||||
JA_Sound mSoundCancel; // Sonido al cancelar el menu
|
||||
JA_Sound mSoundMove; // Sonido al mover el selector
|
||||
@@ -93,9 +96,6 @@ private:
|
||||
// Deja el menu apuntando al elemento anterior
|
||||
bool decreaseSelectorIndex();
|
||||
|
||||
// Mueve el grafico del selector al elemento seleccionado
|
||||
//void moveSelectorSprite(int pos);
|
||||
|
||||
// Actualiza la posicion y el estado del selector
|
||||
void updateSelector();
|
||||
|
||||
@@ -111,6 +111,15 @@ private:
|
||||
// Gestiona la entrada de teclado y mando durante el menu
|
||||
void checkMenuInput(Menu *menu);
|
||||
|
||||
// Calcula el ancho del menu
|
||||
void findWidth();
|
||||
|
||||
// Calcula el alto del menu
|
||||
void findHeight();
|
||||
|
||||
// Recoloca los elementos del menu en el eje Y
|
||||
void replaceElementsOnY();
|
||||
|
||||
public:
|
||||
// Constructor
|
||||
Menu(SDL_Renderer *renderer, Text *text, Input *input, std::string *fileList);
|
||||
@@ -151,11 +160,14 @@ public:
|
||||
// Establece el color del texto del selector
|
||||
void setSelectorTextColor(int r, int g, int b);
|
||||
|
||||
// Centra el menu respecto a un punto
|
||||
void centerMenu(int value);
|
||||
// Centra el menu respecto a un punto en el eje X
|
||||
void centerMenuOnX(int value);
|
||||
|
||||
// Centra los elementos del menu
|
||||
void centerMenuElements();
|
||||
// Centra el menu respecto a un punto en el eje Y
|
||||
void centerMenuOnY(int value);
|
||||
|
||||
// Centra los elementos del menu en el eje X
|
||||
void centerMenuElementsOnX();
|
||||
|
||||
// Añade un item al menu
|
||||
void addItem(std::string text, const Uint8 hPaddingUp = 0, const Uint8 hPaddingDown = 0);
|
||||
|
||||
165
source/title.cpp
165
source/title.cpp
@@ -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;
|
||||
}
|
||||
@@ -42,15 +42,15 @@ struct demoKeys_t
|
||||
// Estructura con todas las opciones de configuración del programa
|
||||
struct options_t
|
||||
{
|
||||
Uint8 difficulty; // Dificultad del juego
|
||||
Uint8 player1Input; // Modo de control para el jugador 1 (teclado o mando)
|
||||
Uint8 player2Input; // Modo de control para el jugador 2 (teclado o mando)
|
||||
Uint8 language; // Idioma usado en el juego
|
||||
Uint8 languagePrevious; // Usado por si se cancelan los cambios en el menu de opciones
|
||||
Uint32 fullScreenMode; // Contiene el valor del modo de pantalla completa
|
||||
Uint32 fullScreenModePrevious; // Usado por si se cancelan los cambios en el menu de opciones
|
||||
Uint8 windowSize; // Contiene el valor del tamaño de la ventana
|
||||
Uint8 windowSizePrevious; // Usado por si se cancelan los cambios en el menu de opciones
|
||||
Uint8 language; // Idioma usado en el juego
|
||||
Uint8 languagePrevious; // Usado por si se cancelan los cambios en el menu de opciones
|
||||
Uint8 difficulty; // Dificultad del juego
|
||||
Uint8 player1Input; // Modo de control para el jugador 1 (teclado o mando)
|
||||
Uint8 player2Input; // Modo de control para el jugador 2 (teclado o mando)
|
||||
Uint32 filter; // Filtro usado para el escalado de la imagen
|
||||
bool vSync; // Indica si se quiere usar vsync o no
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user