- Eliminar constructores parametrizados redundantes de SpawnData y Data structs
- Agregar inicialización en declaración para collider_box_, jumping_sound_, falling_sound_
- Renombrar parámetro de transitionToState() para consistencia (value → state)
- Actualizar game.cpp para usar aggregate initialization de Player::Data
- Refactorizar sistema de estados del jugador con métodos por estado
Archivos modificados:
- source/game/entities/player.hpp: Simplificación de structs e inicialización
- source/game/entities/player.cpp: Refactoring del sistema de estados
- source/game/scenes/game.cpp: Actualización de construcción del Player
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Refactorización completa de la clase Room siguiendo patrón Facade.
## Resumen de la refactorización
La clase Room era un God Object con más de 1500 líneas y múltiples
responsabilidades. Se ha refactorizado en 6 fases, extrayendo
responsabilidades a clases especializadas:
### Fases completadas:
1. **Fase 1**: Gestión de entidades
- Creado EnemyManager
- Creado ItemManager
- Reducción: ~200 líneas
2. **Fase 2**: Sistema de colisiones
- Creado CollisionMap
- Extracción de geometría de colisión
- Reducción: ~400 líneas
3. **Fase 3**: Renderizado de tilemap
- Creado TilemapRenderer
- Separación de lógica de rendering
- Reducción: ~300 líneas
4. **Fase 4**: Sistema de parseo de archivos
- Creado RoomLoader
- Extracción de carga de .room y .tmx
- Reducción: ~285 líneas
5. **Fase 5**: Limpieza final
- Optimización de imports (16 → 12)
- Correcciones de estilo
- Reducción final
6. **Fase 6**: Corrección de estándares
- Corregidos 9 includes relativos a absolutos
- Cumplimiento de estándares del proyecto
## Resultados
- **Antes**: Room ~1500+ líneas (God Object)
- **Después**: Room ~260 líneas (Facade/Coordinator)
- **Reducción**: 83% del código
- **Nuevas clases**: 4 (EnemyManager, ItemManager, CollisionMap,
TilemapRenderer, RoomLoader)
- **Compilación**: ✓ Sin errores
- **Funcionamiento**: ✓ 325 assets verificados
- **Linters**: ✓ cppcheck limpio
## Patrón aplicado
Room ahora actúa como **Facade/Coordinator** que delega a managers
especializados, manteniendo su rol legítimo como contenedor de nivel.
Closes #refactor-room