From 769e057a819881f1041fbd36e59e4dfaaba40214 Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Mon, 25 Sep 2023 21:48:45 +0200 Subject: [PATCH] Ya se puede cambiar el jailerID desde el menu de opciones --- data/lang/ba_BA.txt | 4 +- data/lang/en_UK.txt | 4 +- data/lang/es_ES.txt | 4 +- data/menu/options.men | 21 +++++---- source/enter_id.cpp | 104 +++++++++++++++++++++--------------------- source/enter_id.h | 7 +-- source/title.cpp | 14 +++++- 7 files changed, 88 insertions(+), 70 deletions(-) diff --git a/data/lang/ba_BA.txt b/data/lang/ba_BA.txt index 78c34aa..56e4611 100644 --- a/data/lang/ba_BA.txt +++ b/data/lang/ba_BA.txt @@ -190,8 +190,8 @@ CONTROLS DEL JUGADOR 1 ## 63 - MENU DE OPCIONES CONTROLS DEL JUGADOR 2 -## 64 - -- +## 64 - MENU DE OPCIONES +(FORA DE LINEA) ## 65 - - diff --git a/data/lang/en_UK.txt b/data/lang/en_UK.txt index 1f491f1..9135b30 100644 --- a/data/lang/en_UK.txt +++ b/data/lang/en_UK.txt @@ -190,8 +190,8 @@ PLAYER 1 CONTROLS ## 63 - MENU DE OPCIONES PLAYER 2 CONTROLS -## 64 - -- +## 64 - MENU DE OPCIONES +(OFFLINE MODE) ## 65 - - diff --git a/data/lang/es_ES.txt b/data/lang/es_ES.txt index 8adfbd8..0ffe93f 100644 --- a/data/lang/es_ES.txt +++ b/data/lang/es_ES.txt @@ -190,8 +190,8 @@ CONTROLES DEL JUGADOR 1 ## 63 - MENU DE OPCIONES CONTROLES DEL JUGADOR 2 -## 64 - -- +## 64 - MENU DE OPCIONES +(MODO OFFLINE) ## 65 - - diff --git a/data/menu/options.men b/data/menu/options.men index f61b457..c49156c 100644 --- a/data/menu/options.men +++ b/data/menu/options.men @@ -21,11 +21,11 @@ centerY=96 selector_color=229,28,35,255 selector_text_color=255,241,118 -defaultActionWhenCancel=13 +defaultActionWhenCancel=14 [item] text=DIFFICULTY -hPaddingDown=7 +hPaddingDown=5 [/item] [item] @@ -38,7 +38,7 @@ linkedDown=true [item] text=KEYBOARD -hPaddingDown=7 +hPaddingDown=5 selectable=false greyed=false [/item] @@ -53,14 +53,14 @@ linkedDown=true [item] text=GAME CONTROLLER -hPaddingDown=7 +hPaddingDown=5 selectable=false greyed=false [/item] [item] text=LANGUAGE -hPaddingDown=7 +hPaddingDown=5 [/item] [item] @@ -73,7 +73,7 @@ linkedDown=true [item] text=WINDOW -hPaddingDown=7 +hPaddingDown=5 selectable=false greyed=false [/item] @@ -90,12 +90,17 @@ hPaddingDown=2 [item] text=VSYNC -hPaddingDown=7 +hPaddingDown=5 [/item] [item] text=HOW TO PLAY -hPaddingDown=7 +hPaddingDown=5 +[/item] + +[item] +text=JAILERID: +hPaddingDown=5 [/item] [item] diff --git a/source/enter_id.cpp b/source/enter_id.cpp index 709b382..5015378 100644 --- a/source/enter_id.cpp +++ b/source/enter_id.cpp @@ -32,6 +32,7 @@ EnterID::EnterID(SDL_Renderer *renderer, Screen *screen, Asset *asset, Lang *lan SDL_SetTextureBlendMode(textTexture, SDL_BLENDMODE_BLEND); // Inicializa variables + oldJailerID = options->online.jailerID; loopRunning = true; counter = 0; ticks = 0; @@ -75,8 +76,8 @@ void EnterID::checkEvents() break; } - // El ENTER solo se comprueba cuando se suelta, para no saltarse la siguiente sección - if ((eventHandler->type == SDL_KEYUP && eventHandler->key.repeat == 0) || (eventHandler->type == SDL_JOYBUTTONUP)) + // Comprueba las teclas que se han pulsado + if ((eventHandler->type == SDL_KEYDOWN && eventHandler->key.repeat == 0) || (eventHandler->type == SDL_JOYBUTTONDOWN)) { if (eventHandler->key.keysym.scancode == SDL_SCANCODE_RETURN) { @@ -84,11 +85,7 @@ void EnterID::checkEvents() endSection(); break; } - } - // Comprueba las teclas que se han pulsado - if ((eventHandler->type == SDL_KEYDOWN && eventHandler->key.repeat == 0) || (eventHandler->type == SDL_JOYBUTTONDOWN)) - { if (eventHandler->key.keysym.scancode >= SDL_SCANCODE_A && eventHandler->key.keysym.scancode <= SDL_SCANCODE_Z) { // Si pulsa una letra if (pos < maxLenght) @@ -256,60 +253,65 @@ void EnterID::fillTexture() // Inicializa los servicios online void EnterID::initOnline() { + // Si ya ha iniciado la sesión y no ha cambiado el jailerID, que no continue if (options->online.sessionEnabled) - { // Si ya ha iniciado la sesión, que no continue - return; - } + { + if (oldJailerID == options->online.jailerID) + { + return; + } + } - if (options->online.jailerID == "") - { // Jailer ID no definido - options->online.enabled = false; - } - else - { // Jailer ID iniciado - options->online.enabled = options->online.sessionEnabled = true; - // Establece el servidor y el puerto - jscore::init(options->online.server, options->online.port); + if (options->online.jailerID == "") + { // Jailer ID no definido + options->online.enabled = false; + } + else + { // Jailer ID iniciado + options->online.enabled = options->online.sessionEnabled = true; + // Establece el servidor y el puerto + jscore::init(options->online.server, options->online.port); #ifdef DEBUG - const std::string caption = options->online.jailerID + " (DEBUG)"; + const std::string caption = options->online.jailerID + " (DEBUG)"; #else - const std::string caption = options->online.jailerID; + const std::string caption = options->online.jailerID; #endif - screen->showNotification(caption, lang->getText(85), 12); - if (options->console) - { - std::cout << caption << std::endl; - } + //screen->showNotification(caption, lang->getText(85), 12); + screen->showNotification(caption, lang->getText(85)); + if (options->console) + { + std::cout << caption << std::endl; + } - // Obtiene la información de puntuaciones online - if (!jscore::initOnlineScore(options->online.gameID)) - { - screen->showNotification(lang->getText(80), options->online.server); - if (options->console) - { - std::cout << "Can't connect to " << options->online.server << std::endl; - } + // Obtiene la información de puntuaciones online + if (!jscore::initOnlineScore(options->online.gameID)) + { + screen->showNotification(lang->getText(80), options->online.server); + if (options->console) + { + std::cout << "Can't connect to " << options->online.server << std::endl; + } - options->online.enabled = false; + options->online.enabled = false; - return; - } + return; + } - // Obten la puntuación online para el jailerID - const int points = jscore::getUserPoints(options->online.gameID, options->online.jailerID); - if (points == 0) - { // Fallo de conexión o no hay registros - screen->showNotification(lang->getText(81), lang->getText(82)); - if (options->console) - { - std::cout << "Can't get online scores" << std::endl; - } - } - else - { - options->online.score = points; - } - } + // Obten la puntuación online para el jailerID + const int points = jscore::getUserPoints(options->online.gameID, options->online.jailerID); + if (points == 0) + { // Fallo de conexión o no hay registros + screen->showNotification(lang->getText(81), lang->getText(82)); + if (options->console) + { + std::cout << "Can't get online scores" << std::endl; + } + } + else + { + options->online.score = points; + } + } } // Termina la sección diff --git a/source/enter_id.h b/source/enter_id.h index a6d098a..b7b11df 100644 --- a/source/enter_id.h +++ b/source/enter_id.h @@ -41,9 +41,10 @@ private: std::vector texts; // Vector con los textos std::string cursor; // Contiene el caracter que se muestra como cursor - char name[15]; // Aqui se guardan los caracteres de las teclas que se van pulsando - int pos; // Posición actual en el vector name - int maxLenght; // Tamaño máximo del jailerID + char name[15]; // Aqui se guardan los caracteres de las teclas que se van pulsando + int pos; // Posición actual en el vector name + int maxLenght; // Tamaño máximo del jailerID + std::string oldJailerID; // Almacena el valor de jailerID al inicio para ver si se ha modificado // Actualiza las variables void update(); diff --git a/source/title.cpp b/source/title.cpp index aebaffb..ce26c78 100644 --- a/source/title.cpp +++ b/source/title.cpp @@ -478,13 +478,18 @@ void Title::update() runInstructions(m_manual); break; - case 12: // ACCEPT + case 12: // JAILERID: + runEnterID(); + updateMenuLabels(); + break; + + case 13: // ACCEPT applyOptions(); menu.active->reset(); menu.active = menu.title; break; - case 13: // CANCEL + case 14: // CANCEL options = &optionsPrevious; updateMenuLabels(); menu.active->reset(); @@ -921,6 +926,11 @@ void Title::updateMenuLabels() // HOW TO PLAY menu.options->setItemCaption(i, lang->getText(2)); + i++; + // JAILERID; + const std::string jailerID = options->online.jailerID == "" ? lang->getText(64) : options->online.jailerID; + menu.options->setItemCaption(i, "JAILERID: " + jailerID); + i++; // ACCEPT menu.options->setItemCaption(i, lang->getText(9)); // ACCEPT