diff --git a/source/engine.cpp b/source/engine.cpp index c356c2d..6919163 100644 --- a/source/engine.cpp +++ b/source/engine.cpp @@ -1140,20 +1140,26 @@ void Engine::performLogoAction(bool logo_waiting_for_flip) { demo_next_action_time_ = logo_min_time_ + (rand() % 1000) / 1000.0f * interval_range; } } else { - // Logo animado (PHYSICS) → 3 opciones posibles - if (action < 60) { - // 60%: PHYSICS → SHAPE (reconstruir logo y ver rotaciones) + // Logo animado (PHYSICS) → 4 opciones posibles + if (action < 50) { + // 50%: PHYSICS → SHAPE (reconstruir logo y ver rotaciones) toggleShapeModeInternal(false); // Resetear variables de espera de flips al volver a SHAPE logo_waiting_for_flip_ = false; logo_current_flip_count_ = 0; - } else if (action < 80) { - // 20%: Forzar gravedad ON (empezar a caer mientras da vueltas) + } else if (action < 68) { + // 18%: Forzar gravedad ON (empezar a caer mientras da vueltas) scene_manager_->forceBallsGravityOn(); - } else { - // 20%: Forzar gravedad OFF (flotar mientras da vueltas) + } else if (action < 84) { + // 16%: Forzar gravedad OFF (flotar mientras da vueltas) scene_manager_->forceBallsGravityOff(); + } else { + // 16%: Cambiar dirección de gravedad (nueva variación) + GravityDirection new_direction = static_cast(rand() % 4); + scene_manager_->changeGravityDirection(new_direction); + // Si la gravedad está OFF, activarla para que el cambio sea visible + scene_manager_->forceBallsGravityOn(); } // Resetear timer con intervalos escalados diff --git a/source/state/state_manager.h b/source/state/state_manager.h index f9a66a9..3e8c687 100644 --- a/source/state/state_manager.h +++ b/source/state/state_manager.h @@ -119,6 +119,11 @@ class StateManager { */ float getLogoPreviousShapeScale() const { return logo_previous_shape_scale_; } + /** + * @brief Obtiene si LOGO fue activado manualmente (tecla K) o automáticamente (desde DEMO) + */ + bool getLogoEnteredManually() const { return logo_entered_manually_; } + /** * @brief Establece valores previos de LOGO (llamado por Engine antes de entrar) */