Commit Graph

41 Commits

Author SHA1 Message Date
JailDesigner 35d720bb77 feat(locale): sistema i18n YAML amb català i anglès 2026-05-24 10:28:56 +02:00
JailDesigner 3b1e469a4f feat(title): destell hiperespacial al VP quan la nau desapareix (sparkle 4-puntes còncau) 2026-05-22 23:46:56 +02:00
JailDesigner d618b6d561 feat(audio): so propi per a la nau a HURT (hurt.wav, separat del HIT de bala) 2026-05-22 23:20:18 +02:00
JailDesigner 6b1f064cda tweak(cuadrado): ull amb pupil·la al centre del rombe 2026-05-22 22:34:54 +02:00
JailDesigner 007460dc51 tweak(stages): stage 1 amb mix dels 3 tipus d'enemic (34/33/33) 2026-05-22 22:12:17 +02:00
JailDesigner 10057a82de tweak(audio): amplifica hit.wav +6dB i puja canals simultanis a 50 2026-05-22 22:09:03 +02:00
JailDesigner 869b4374ba tweak(pentagon): pentàgon doble concentric (interior rotat 36°) 2026-05-22 20:11:29 +02:00
JailDesigner 54d3e683a1 refactor(title): la 3D és l'única — elimina backup 2D i renomena als noms canònics 2026-05-22 12:04:16 +02:00
JailDesigner ca6f863c0f tune(audio): efectes a 48000 Hz u8 mono i ajust de volums per defecte 2026-05-21 19:58:45 +02:00
JailDesigner dec72340de feat(audio): so hit.wav quan l'enemic passa a ferit 2026-05-21 19:05:42 +02:00
JailDesigner 7646daef3d tune(stages): stage 1 a 50 enemics i puja el cap de validació a 200 2026-05-21 18:58:33 +02:00
JailDesigner ae946b578e feat(bloom): glow separable two-pass amb composite preserve-core i paleta neon 2026-05-21 18:39:16 +02:00
JailDesigner e8c253d953 Copyrights: barrido mecánico fuera de source/
Misma normalización aplicada al resto del árbol: cabeceras de data/
(shapes y stages), tooling, plist de macOS y los ejemplos del CLAUDE.md.
Todos pasan a "© 2026 JailDesigner".

Detalle:
- data/shapes/{ship3,star,enemy_pinwheel}.shp: cabeceras unificadas.
- data/stages/stages.yaml: cabecera unificada.
- tools/pack_resources/pack_resources.cpp: cabecera unificada.
- release/macos/Info.plist: NSHumanReadableCopyright actualizado.
- CLAUDE.md: snippets de PROJECT_COPYRIGHT, project.h y window title puestos
  al día (eran ejemplos con valores stale del esquema anterior).

Las menciones narrativas en README.md y CLAUDE.md sobre el origen Pascal
1999 se mantienen deliberadamente — son historia del proyecto, no
declaraciones de copyright. SDL3 vendoreado y source/legacy/ tampoco
se tocan.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 10:01:09 +02:00
JailDesigner a7aecbadd1 Fase 8c: postpro (bloom + flicker + background) en SDL_gpu
Renderiza la escena de líneas a una textura offscreen y aplica un pase
final de postpro que compone la imagen al swapchain. El shader del
postpro hace tres cosas:

- Bloom: kernel gaussiano 5×5 con high-pass por luminancia. Configurable
  vía intensity, threshold y radius_px.
- Flicker: multiplicador global de brillo modulado por sin(time*freq).
  Sustituye al antiguo ColorOscillator CPU; eliminados oscillator.{hpp,cpp}
  y Defaults::Color. SDLManager::updateColors queda como no-op para no
  tocar las escenas que lo invocaban.
- Background pulse: color de fondo aditivo entre color_min y color_max,
  pulsando en el tiempo.

Parámetros expuestos en data/config/postfx.yaml y cargados con fkYAML.
Si el archivo falta o falla, se usan defaults built-in. UV.y invertida
en el vertex shader del postpro para compensar la convención de
muestreo de SDL_gpu/Vulkan (el line shader sigue con su ndc.y flip).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 08:52:03 +02:00
JailDesigner 56533caff0 Fix: clave YAML 'quadrat' renombrada a 'cuadrado' tras Fase 1e
El sweep de comentarios de la Fase 1e cambió por error el string
literal yaml["quadrat"] a yaml["cuadrado"] dentro de
stage_loader.cpp:172 (sed sin distinción comentario vs string).

El archivo data/stages/stages.yaml seguía teniendo la clave
'quadrat:', lo que provocaba:
  [StageLoader] Error: enemy_distribution incompleta
  [GameScene] Error: no s'ha pogut load stages.yaml
  [StageManager] Error: config es null
  -> Violación de segmento al pasar de TITLE a GAME

Solución coherente con la política "código en inglés/castellano,
strings de UI en valenciano": el YAML es archivo de configuración,
no UI, así que se alinea con el código.

Cambios:
- data/stages/stages.yaml: quadrat -> cuadrado en las 10 stages
- build/resources.pack regenerado con `make pack`

Audit completo: verificado que ninguna otra clave YAML ni string
literal de filename (.shp, .wav) fue tocada por el sweep.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 12:19:24 +02:00
JailDesigner 6cf990bc1d Fase 0: eliminar tot el codi llegacy (polars + primitives + bool dibuixar)
Aplicada la directiva "res llegacy" abans d'arrencar la migracio a fisica
vectorial + SDL3 GPU. Cada bossa de cruft que arrossegava el port de Pascal
queda eliminada.

Borrats (huerfanos):
- source/core/rendering/primitives.hpp/.cpp (modul/diferencia/angle_punt/
  crear_poligon_regular)
- source/core/rendering/polygon_renderer.hpp/.cpp (rota_tri/rota_pol)
- core::types::Triangle, Poligon, IPunt
- Defaults::Entities::MAX_IPUNTS i alias a constants.hpp
- EscenaJoc::chatarra_cosmica_ (mai usat)
- Bresenham comentat dins de Rendering::linea()

Simplificat (parametre 'dibuixar' llegacy que sempre era true):
- Rendering::linea(...): treta la signatura bool dibuixar, retorn void
- Rendering::render_shape(...): treta la signatura bool dibuixar
- 11 callsites de linea() actualitzats (escena_joc, debris_manager)
- 12 callsites de render_shape() actualitzats

Modernitzats:
- 5 fitxers .shp netejats de comentaris polar->cartesia historics
- types.hpp queda nomes amb Punt (l'unica coordenada del joc)
- debris_manager.hpp afegit include explicit de defaults.hpp

Net: 452 linies eliminades, 56 afegides. Compila i enllaca correctament.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 11:10:42 +02:00
JailDesigner 461eaedecf retocs en nave2 2025-12-17 17:55:14 +01:00
JailDesigner 1891c9e49e eliminades shapes sobrants 2025-12-17 17:44:23 +01:00
JailDesigner 8bc259b25a nous sons 2025-12-17 17:05:42 +01:00
JailDesigner bc5982b286 treballant en les naus de title 2025-12-16 22:14:55 +01:00
JailDesigner 0ceaa75862 integrada classe Input 2025-12-11 12:41:03 +01:00
JailDesigner 087b8d346d afegit segon jugador 2025-12-10 17:18:34 +01:00
JailDesigner 9a5adcbcc5 revisat el marcador
modificada la shape 03
2025-12-10 11:05:15 +01:00
JailDesigner 07e00fff09 eliminada ship2.shp i substituida ship.shp 2025-12-10 07:51:02 +01:00
JailDesigner b4e0ca7eca INIT_HUD amb temps de les animacions per percentatge
ordenats en subcarpetes els fitxers d'audio
corregit typo LIFES a LIVES
2025-12-09 22:57:01 +01:00
JailDesigner 20ca024100 les bales ara son redones 2025-12-09 12:58:44 +01:00
JailDesigner 789cbbc593 afegida veu: good job commander
calibrats els volumnes de musica i efectes
afegida forma: ship2.shp
canviat tamany de textos de canvi de pantalla
2025-12-04 18:27:39 +01:00
JailDesigner 1023cde1be afegida progresió 2025-12-03 22:19:44 +01:00
JailDesigner a3aeed4b7c afegides musiques
afegit control de brillo al starfield
2025-12-03 19:27:36 +01:00
JailDesigner 3b0354da54 afegit titol al TITOL 2025-12-03 17:40:27 +01:00
JailDesigner 622ccd22bc afegits diferents enemics 2025-12-03 13:47:31 +01:00
JailDesigner 98c90e6075 treballant en el starfield 2025-12-02 21:19:43 +01:00
JailDesigner f795c86a38 afegida escena TITOL 2025-12-02 21:03:21 +01:00
JailDesigner c1c5774406 retocs disseny en LOGO 2025-12-02 17:27:18 +01:00
JailDesigner ec911979fb afegit so al LOGO 2025-12-02 14:01:53 +01:00
JailDesigner e51749dbc6 afegit sistema de audio 2025-12-02 13:51:54 +01:00
JailDesigner 983f42814f afegides shapes per a fonts 2025-11-29 10:06:33 +01:00
JailDesigner 4f926ddebf el zoom del LOGO ja es correcte 2025-11-28 22:43:36 +01:00
JailDesigner 624039e00d treballant en el LOGO 2025-11-28 21:07:36 +01:00
JailDesigner 3c7df0e989 afegides formes per als numeros i simbols 2025-11-28 12:49:51 +01:00
JailDesigner 4d0a5ca5bd migrat a sistema de shapes 2025-11-28 12:29:56 +01:00