canvi i reinici d'escene en la consola

This commit is contained in:
2026-03-28 00:02:14 +01:00
parent d39622c7e2
commit 7bad27d686
4 changed files with 121 additions and 20 deletions

View File

@@ -358,6 +358,8 @@ void Director::runGame() {
auto Director::run() -> int {
// Bucle principal
while (SceneManager::current != SceneManager::Scene::QUIT) {
const SceneManager::Scene ACTIVE = SceneManager::current;
switch (SceneManager::current) {
case SceneManager::Scene::LOGO:
runLogo();
@@ -395,9 +397,20 @@ auto Director::run() -> int {
runEnding2();
break;
case SceneManager::Scene::RESTART_CURRENT:
// La escena salió por RESTART_CURRENT → relanzar la escena guardada
SceneManager::current = SceneManager::scene_before_restart;
break;
default:
break;
}
// Si la escena que acaba de correr dejó RESTART_CURRENT pendiente,
// restaurar la escena que estaba activa para relanzarla en la próxima iteración
if (SceneManager::current == SceneManager::Scene::RESTART_CURRENT) {
SceneManager::current = ACTIVE;
}
}
return 0;