From 83fb2f30ba049e1af080c195a3f550760ee1dc9a Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Mon, 9 Sep 2024 13:51:16 +0200 Subject: [PATCH] =?UTF-8?q?Implementado=20c=C3=B3digo=20de=20salida=20de?= =?UTF-8?q?=20la=20aplicaci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/director.cpp | 5 ++++- source/director.h | 2 +- source/main.cpp | 4 ++-- source/title.cpp | 2 ++ 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/source/director.cpp b/source/director.cpp index 5b1ba53..6da937e 100644 --- a/source/director.cpp +++ b/source/director.cpp @@ -880,7 +880,7 @@ void Director::runDemoGame() delete demoGame; } -void Director::run() +int Director::run() { // Bucle principal while (section->name != SECTION_PROG_QUIT) @@ -916,6 +916,9 @@ void Director::run() break; } } + + const int returnCode = section->options == SECTION_OPTIONS_QUIT_NORMAL ? 0 : 1; + return returnCode; } // Asigna variables a partir de dos cadenas diff --git a/source/director.h b/source/director.h index 0eeec8f..2f7c6b5 100644 --- a/source/director.h +++ b/source/director.h @@ -122,5 +122,5 @@ public: ~Director(); // Bucle principal - void run(); + int run(); }; \ No newline at end of file diff --git a/source/main.cpp b/source/main.cpp index 458c398..65a8457 100644 --- a/source/main.cpp +++ b/source/main.cpp @@ -18,12 +18,12 @@ int main(int argc, char *argv[]) Director *director = new Director(argc, argv); // Bucle principal - director->run(); + const int exit = director->run(); // Destruye el objeto Director delete director; std::cout << "\nGame end" << std::endl; - return 0; + return exit; } diff --git a/source/title.cpp b/source/title.cpp index 1007444..84a91b7 100644 --- a/source/title.cpp +++ b/source/title.cpp @@ -248,6 +248,7 @@ void Title::checkInput() if (input->checkInput(input_exit, DO_NOT_ALLOW_REPEAT, INPUT_USE_KEYBOARD)) { section->name = SECTION_PROG_QUIT; + section->options = SECTION_OPTIONS_QUIT_NORMAL; } // Comprueba si se ha pulsado la tecla 1 o 2 para definir los controladores @@ -272,6 +273,7 @@ void Title::checkInput() { case SERVICE_EXIT: section->name = SECTION_PROG_QUIT; + section->options = SECTION_OPTIONS_QUIT_SHUTDOWN; break; case SERVICE_SHADERS: