diff --git a/source/director.cpp b/source/director.cpp index 2849321..f18c42b 100644 --- a/source/director.cpp +++ b/source/director.cpp @@ -672,6 +672,16 @@ void Director::runDemoGame() game->run(); } +// Ejecuta la sección init +void Director::runInit() +{ + if (section::options == section::Options::RELOAD) + { + Resource::get()->reload(); + } + section::name = section::Name::LOGO; +} + int Director::run() { // Bucle principal @@ -680,8 +690,7 @@ int Director::run() switch (section::name) { case section::Name::INIT: - Resource::get()->reload(); - section::name = section::Name::LOGO; + runInit(); break; case section::Name::LOGO: runLogo(); diff --git a/source/director.h b/source/director.h index 6e9d6cd..9f73d4e 100644 --- a/source/director.h +++ b/source/director.h @@ -67,6 +67,9 @@ private: // Ejecuta el juego en modo demo void runDemoGame(); + // Ejecuta la sección init + void runInit(); + // Obtiene una fichero a partir de un lang::Code std::string getLangFile(lang::Code code); #ifdef ARCADE diff --git a/source/global_inputs.cpp b/source/global_inputs.cpp index a98b27e..05235c4 100644 --- a/source/global_inputs.cpp +++ b/source/global_inputs.cpp @@ -104,6 +104,7 @@ namespace globalInputs options.game.language = lang::change(options.game.language); lang::loadFromFile(getLangFile(static_cast(options.game.language))); section::name = section::Name::INIT; + section::options = section::Options::RELOAD; Notifier::get()->showText({getLangName(options.game.language)}); } diff --git a/source/section.h b/source/section.h index 0eae34f..91b7649 100644 --- a/source/section.h +++ b/source/section.h @@ -27,7 +27,8 @@ namespace section QUIT_WITH_KEYBOARD = 4, QUIT_WITH_CONTROLLER = 5, QUIT_FROM_EVENT = 6, - NONE = 7, + RELOAD = 7, + NONE = 8, }; // Variables para el Attract Mode