refactor(bloques2-5): auditoria de codi - limpieza i arquitectura

Bloque 2: eliminar codi mort comentat (shape_manager, engine)
Bloque 3: Engine shape methods com thin wrappers a ShapeManager;
          eliminar estat duplicat de shapes en Engine
Bloque 4: encapsular getBallsMutable() amb helpers a SceneManager
          (enableShapeAttractionAll, resetDepthScalesAll)
Bloque 5: StateManager Phase 9 - tota la logica DEMO/LOGO
          implementada directament amb refs a SceneManager,
          ThemeManager i ShapeManager; eliminar callbacks a Engine.
          Acoplament Engine<->StateManager passa a unidireccional.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-19 00:42:03 +01:00
parent 6409b61bd5
commit 821eba3483
8 changed files with 640 additions and 1106 deletions

View File

@@ -9,6 +9,9 @@
class Engine;
class Shape;
class PNGShape;
class SceneManager;
class ThemeManager;
class ShapeManager;
/**
* @class StateManager
@@ -37,10 +40,13 @@ class StateManager {
~StateManager();
/**
* @brief Inicializa el StateManager con referencia al Engine
* @param engine Puntero al Engine (para callbacks)
* @brief Inicializa el StateManager con referencias a los subsistemas necesarios
* @param engine Puntero al Engine (para cambios de modo y texturas)
* @param scene_mgr Puntero a SceneManager (para control de bolas/gravedad)
* @param theme_mgr Puntero a ThemeManager (para cambios de tema)
* @param shape_mgr Puntero a ShapeManager (para figuras)
*/
void initialize(Engine* engine);
void initialize(Engine* engine, SceneManager* scene_mgr, ThemeManager* theme_mgr, ShapeManager* shape_mgr);
/**
* @brief Actualiza la máquina de estados (timers, triggers, acciones)
@@ -145,8 +151,11 @@ class StateManager {
void exitLogoMode(bool return_to_demo);
private:
// === Referencia al Engine (callback) ===
// === Referencias a subsistemas ===
Engine* engine_;
SceneManager* scene_mgr_;
ThemeManager* theme_mgr_;
ShapeManager* shape_mgr_;
// === Estado de aplicación ===
AppMode current_app_mode_;