fix: Preservar SimulationMode y mejorar Debug HUD
CAMBIOS: - Debug HUD reorganizado en layout de 2 columnas (LEFT/RIGHT, sin centro) - Añadidos getters públicos en Engine para info de sistema - changeScenario() ahora preserva el SimulationMode actual - Inicialización de pelotas según modo (PHYSICS/SHAPE/BOIDS) - Eliminada duplicación de logo_entered_manually_ (ahora en StateManager) ARCHIVOS MODIFICADOS: - engine.h: Añadidos 8 getters públicos para UIManager - engine.cpp: changeScenario() pasa current_mode_ a SceneManager - scene_manager.h: changeScenario() acepta parámetro SimulationMode - scene_manager.cpp: Inicialización según modo (RULES.md líneas 23-26) - ui_manager.h: render() acepta Engine* y renderDebugHUD() actualizado - ui_manager.cpp: Debug HUD con columnas LEFT (sistema) y RIGHT (física) REGLAS.md IMPLEMENTADO: ✅ Líneas 23-26: Inicialización diferenciada por modo - PHYSICS: Top, 75% distribución central en X, velocidades aleatorias - SHAPE: Centro de pantalla, sin velocidad inicial - BOIDS: Posiciones y velocidades aleatorias ✅ Líneas 88-96: Debug HUD con información de sistema completa BUGS CORREGIDOS: - Fix: Cambiar escenario (1-8) en FIGURE ya no resetea a PHYSICS ❌→✅ - Fix: Las pelotas se inicializan correctamente según el modo activo - Fix: AppMode movido de centro a izquierda en Debug HUD 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -11,6 +11,7 @@ class ThemeManager;
|
||||
class TextRenderer;
|
||||
class Notifier;
|
||||
class HelpOverlay;
|
||||
class Engine;
|
||||
enum class SimulationMode;
|
||||
enum class AppMode;
|
||||
|
||||
@@ -59,6 +60,7 @@ class UIManager {
|
||||
/**
|
||||
* @brief Renderiza todos los elementos UI
|
||||
* @param renderer Renderizador SDL3
|
||||
* @param engine Puntero a Engine (para info de sistema)
|
||||
* @param scene_manager SceneManager (para info de debug)
|
||||
* @param current_mode Modo de simulación actual (PHYSICS/SHAPE)
|
||||
* @param current_app_mode Modo de aplicación (SANDBOX/DEMO/LOGO)
|
||||
@@ -69,6 +71,7 @@ class UIManager {
|
||||
* @param current_screen_width Ancho lógico de pantalla (para texto centrado)
|
||||
*/
|
||||
void render(SDL_Renderer* renderer,
|
||||
const Engine* engine,
|
||||
const SceneManager* scene_manager,
|
||||
SimulationMode current_mode,
|
||||
AppMode current_app_mode,
|
||||
@@ -136,13 +139,15 @@ class UIManager {
|
||||
private:
|
||||
/**
|
||||
* @brief Renderiza HUD de debug (solo si show_debug_ == true)
|
||||
* @param engine Puntero a Engine (para info de sistema)
|
||||
* @param scene_manager SceneManager (para info de pelotas)
|
||||
* @param current_mode Modo de simulación (PHYSICS/SHAPE)
|
||||
* @param current_app_mode Modo de aplicación (SANDBOX/DEMO/LOGO)
|
||||
* @param active_shape Figura 3D activa (puede ser nullptr)
|
||||
* @param shape_convergence % de convergencia en LOGO mode
|
||||
*/
|
||||
void renderDebugHUD(const SceneManager* scene_manager,
|
||||
void renderDebugHUD(const Engine* engine,
|
||||
const SceneManager* scene_manager,
|
||||
SimulationMode current_mode,
|
||||
AppMode current_app_mode,
|
||||
const Shape* active_shape,
|
||||
|
||||
Reference in New Issue
Block a user