Commit Graph

4 Commits

Author SHA1 Message Date
288e4813e8 fix: Recompilar pack_resources (binario antiguo generaba formato incorrecto)
**Problema crítico:**
Error al ejecutar aplicación: "Pack inválido (magic incorrecto)"

**Causa raíz:**
El binario tools/pack_resources era OBSOLETO (de proyecto anterior):
- Binario: "Coffee Crisis Arcade Edition" (5 oct, 68 KB)
- Magic number generado: "CCAE" (43 43 41 45)
- Magic esperado por código: "VBE3" (56 42 45 33)

**Verificación:**
```bash
$ strings tools/pack_resources | grep -i coffee
Coffee Crisis Arcade Edition  ← BINARIO ANTIGUO
CCAE_RESOURCES_2024
```

**Solución:**
1. Eliminado binario antiguo tools/pack_resources
2. Recompilado desde código actual (pack_resources.cpp)
3. Regenerado resources.pack con herramienta correcta

**Resultado:**
 Binario nuevo: "ViBe3 Physics - Resource Packer"
 Magic number correcto: 56 42 45 33 ("VBE3")
 Pack válido: 16 recursos, 3.7 MB
 Aplicación carga correctamente

**Nota:** El commit anterior (4d3ddec) añadió permisos +x al binario
antiguo, pero no lo recompiló. Este commit corrige el binario.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-19 09:19:39 +02:00
2d405a86d7 Sistema de carga de recursos: inicialización y tests completados
**Inicialización en main.cpp:**
- Llamada a Texture::initResourceSystem("resources.pack") antes de Engine
- Intenta cargar pack, si falla usa fallback a disco automáticamente

**Fix normalizePath:**
- Mejorado para extraer rutas relativas desde paths absolutos
- Busca "data/" en cualquier parte del path y extrae lo siguiente
- Convierte "C:/Users/.../data/balls/big.png" → "balls/big.png"

**Tests realizados (3/3 exitosos):**

 TEST 1 - Sin pack (solo disco):
   - Output: "resources.pack no encontrado - usando carpeta data/"
   - Carga: 4 texturas desde disco
   - Resultado: Funciona perfectamente en modo desarrollo

 TEST 2 - Con pack completo (5 recursos):
   - Output: "resources.pack cargado (5 recursos)"
   - Carga: 4 texturas desde pack
   - Resultado: Sistema de pack funcionando al 100%

 TEST 3 - Híbrido (pack parcial con 2 recursos):
   - Output: "resources.pack cargado (2 recursos)"
   - Carga: big.png y small.png desde pack
   - Fallback: normal.png y tiny.png desde disco
   - Resultado: Sistema de fallback perfecto

**Sistema completo y funcional:**
-  Carga desde pack cuando existe
-  Fallback automático a disco por archivo
-  Modo híbrido (mix pack + disco)
-  Desarrollo (sin pack) sin cambios

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-05 09:30:27 +02:00
c9db7e6038 Fix: eliminar carga doble de texturas en inicialización
Problema: Cada textura se cargaba DOS veces:
1. Primera carga temporal para obtener dimensiones (width)
2. Segunda carga real para almacenar en textures_

Solución: Reutilizar la textura cargada en lugar de crear nueva.
- TextureInfo ahora guarda shared_ptr<Texture> en lugar de solo path
- Se ordena por tamaño usando la textura ya cargada
- Se almacena directamente en textures_ sin recargar

Resultado: 4 cargas → 4 cargas (sin duplicados)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-05 09:25:10 +02:00
577fe843f9 Implementar sistema de empaquetado de recursos y releases
Sistema completo de packaging para distribuir ViBe3 Physics:

**Core - ResourcePack:**
- source/resource_pack.{h,cpp}: Clase para empaquetar/desempaquetar recursos
- Header binario "VBE3" con índice de archivos
- Encriptación XOR simple para ofuscar contenido
- Checksums para verificar integridad

**Integración en Texture:**
- source/external/texture.cpp: Carga desde pack con fallback a disco
- Método estático Texture::initResourceSystem()
- 1. Intenta cargar desde resources.pack
- 2. Si falla, carga desde carpeta data/ (modo desarrollo)

**Herramienta de empaquetado:**
- tools/pack_resources.cpp: Herramienta CLI para generar .pack
- tools/README.md: Documentación actualizada para ViBe3
- make pack_tool: Compila herramienta
- make resources.pack: Genera pack desde data/

**Sistema de releases (Makefile):**
- Makefile: Adaptado de Coffee Crisis a ViBe3 Physics
- Targets: windows_release, macos_release, linux_release
- APP_SOURCES actualizado con archivos de ViBe3
- Variables: TARGET_NAME=vibe3_physics, APP_NAME="ViBe3 Physics"
- Elimina carpeta config (no usada en ViBe3)

**Recursos de release:**
- release/vibe3.rc: Resource file para Windows (icono)
- release/Info.plist: Bundle info para macOS (.app)
- release/icon.{ico,icns,png}: Iconos multiplataforma
- release/frameworks/SDL3.xcframework: Framework macOS
- release/SDL3.dll: DLL Windows
- release/create_icons.py: Script generador de iconos

**Resultado:**
- resources.pack generado (5 recursos, ~1.3KB)
- Compila correctamente con CMake
- Listo para make windows_release / macos_release

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-05 09:18:54 +02:00