diff --git a/source/defines.h b/source/defines.h index 0568ef8..1ec1297 100644 --- a/source/defines.h +++ b/source/defines.h @@ -289,8 +289,8 @@ constexpr float LOGO_FLIP_TRIGGER_MAX = 0.80f; // 80% máximo de progres constexpr int LOGO_FLIP_WAIT_PROBABILITY = 50; // 50% probabilidad de elegir el camino "esperar flip" // Configuración de AppLogo (logo periódico en pantalla) -constexpr float APPLOGO_DISPLAY_INTERVAL = 2.0f; // Intervalo entre apariciones del logo (segundos) -constexpr float APPLOGO_DISPLAY_DURATION = 4.0f; // Duración de visibilidad del logo (segundos) +constexpr float APPLOGO_DISPLAY_INTERVAL = 120.0f; // Intervalo entre apariciones del logo (segundos) +constexpr float APPLOGO_DISPLAY_DURATION = 30.0f; // Duración de visibilidad del logo (segundos) constexpr float APPLOGO_ANIMATION_DURATION = 0.5f; // Duración de animación entrada/salida (segundos) constexpr float APPLOGO_HEIGHT_PERCENT = 0.4f; // Altura del logo = 40% de la altura de pantalla constexpr float APPLOGO_PADDING_PERCENT = 0.05f; // Padding desde esquina inferior-derecha = 10% diff --git a/source/engine.cpp b/source/engine.cpp index f9575f5..48b0f4c 100644 --- a/source/engine.cpp +++ b/source/engine.cpp @@ -247,8 +247,19 @@ bool Engine::initialize(int width, int height, int zoom, bool fullscreen, AppMod state_manager_->initialize(this); // Callback al Engine // Establecer modo inicial si no es SANDBOX (default) - if (initial_mode != AppMode::SANDBOX) { - state_manager_->setState(initial_mode, current_screen_width_, current_screen_height_); + // Usar métodos de alto nivel que ejecutan las acciones de configuración + if (initial_mode == AppMode::DEMO) { + state_manager_->toggleDemoMode(current_screen_width_, current_screen_height_); + // Como estamos en SANDBOX (default), toggleDemoMode() cambiará a DEMO + randomizará + } + else if (initial_mode == AppMode::DEMO_LITE) { + state_manager_->toggleDemoLiteMode(current_screen_width_, current_screen_height_); + // Como estamos en SANDBOX (default), toggleDemoLiteMode() cambiará a DEMO_LITE + randomizará + } + else if (initial_mode == AppMode::LOGO) { + size_t initial_ball_count = scene_manager_->getBallCount(); + state_manager_->enterLogoMode(false, current_screen_width_, current_screen_height_, initial_ball_count); + // enterLogoMode() hace: setState(LOGO) + executeEnterLogoMode() (tema, PNG_SHAPE, etc.) } // Actualizar ShapeManager con StateManager (dependencia circular - StateManager debe existir primero)