Commit Graph
21 Commits
Author SHA1 Message Date
JailDesigner 505e819af1 HC-06: rutes d'assets de GameScene a Defaults::Pyramid + Config
Afegits `Defaults::Pyramid::{MAP_YAML, PLAYER_SPRITE, PLAYER_YAML,
MUSIC_TRACK}` a utils/defaults.hpp. `GameScene` exposa `Config` i
`defaultConfig()`; el ctor accepta Config (default = Defaults::Pyramid)
i usa els camps enlloc dels literals. `Player` passa a rebre el anim_key
per constructor en lloc de cablejar "player.yaml". Cache key = basename
(convenció preexistent). Cada piràmide futura serà un Config distint.
2026-04-20 17:52:53 +02:00
JailDesigner da4f78fd0c HC-01+PATCH-02: SPEED_PX_PER_S a Defaults::Player
La velocitat base del jugador (60 px/s) passa de `constexpr` local a
`player.cpp` a `Defaults::Player::SPEED_PX_PER_S`, seguint el patró usat
a l'audit d'àudio. `player.cpp` manté un alias local per llegibilitat.
Elimina el comentari TODO sobre sprint/slow-zones que PATCH-02 volia fora.
2026-04-20 17:43:32 +02:00
JailDesignerandClaude Opus 4.7 deb0fc2a4b refactor(core/audio): unificar format/canals/freq a Defaults::Audio (HC-02)
{SDL_AUDIO_S16, 2, 48000} apareixia com a literal a tres llocs de
jail_audio (Sound/Music/audio_spec) i audio.cpp:208 passava SDL_AUDIO_S16LE
i 2 canals per separat — dues convencions de format conviuen i els 2
canals eren número màgic.

Defaults::Audio guanya FORMAT (SDL_AUDIO_S16) i CHANNELS (2). Audio::
initSDLAudio passa ambdós junts a Ja::init. jail_audio obté un fallback
local Ja::DEFAULT_SPEC que consolida les tres instàncies; es queda
independent del projecte (no inclou utils/defaults.hpp) perquè l'engine
és reutilitzable.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 11:50:41 +02:00
JailDesignerandClaude Opus 4.7 6f0626c31f refactor(core/audio): moure constants UI/tuning a Defaults::Audio (HC-01)
VOLUME_STEP, FREQUENCY i DEFAULT_CROSSFADE_MS vivien com a membres
constexpr d'Audio. Eren valors de configuració — no invariants de la
classe — i la convenció del projecte és que tots els paràmetres
ajustables visquin a utils/defaults.hpp.

Passen a Defaults::Audio::{VOLUME_STEP, FREQUENCY, CROSSFADE_MS}. L'únic
ús intern (Ja::init al constructor d'Audio) es reapunta al Defaults. Cap
ús extern dels tres símbols.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 11:47:40 +02:00
JailDesignerandClaude Opus 4.7 bbb397abb2 refactor(core/rendering): nomenar constants a RenderInfo (HC-06/-07/-09 + PATCH-08)
render_info.cpp tenia diverses "cifres soltes" amb significat
estructural:
- Índex 0/1/2/3 dins segments_ per a FPS/driver/shader/temps — ara
  FPS_SEGMENT, DRIVER_SEGMENT, SHADER_SEGMENT, TIME_SEGMENT (HC-06).
- +1,+1 per a la ombra del text — ara SHADOW_OFFSET_PX (HC-09).
- % 3 al cicle de posicions de global_inputs.cpp — ara
  Defaults::RENDER_INFO_POSITION_COUNT (HC-07).

A més, init() assignava mono_digits=true al segment de temps que
refreshSegments() ja marca a cada crida, inclosa la primera d'update()
abans de render. S'elimina el doblegat (PATCH-08); el comentari
explica la garantia.

Build + smoke 5s xvfb OK (exit 124).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 09:47:49 +02:00
JailDesigner e2b8d0e459 Subsistema d'àudio: port de ../aee/core/audio refactoritzat amb namespace Ja, desacoblat d'Options via Audio::Config i extensió de Resource::Cache per preloading de música i sons; pyramid_1.ogg sona a GameScene (v0.15.0) 2026-04-19 23:19:20 +02:00
JailDesigner 6f3fafbfff RenderInfo amb tres estats (off/dalt/baix), temps de joc i persistència; ombra, mono-dígits i easing compartits (v0.14.0) 2026-04-19 20:28:23 +02:00
JailDesigner 46a578fd86 Tilemap YAML: sala piràmide renderitzada amb tiles reals de tomb.gif i caixa de debug llevada (v0.13.0) 2026-04-19 19:35:21 +02:00
JailDesigner c921833537 Mapa piràmide 4×5 amb muros i passadissos de 16 px + motor de colisions AABB amb snap al passadís (v0.12.0) 2026-04-19 18:08:51 +02:00
JailDesigner 297dc85e47 GlobalInputs F1-F12 + Escape, Screen sense destruir finestra, escalat al GPU, presets i fons canvas (v0.11.0) 2026-04-19 14:27:16 +02:00
JailDesigner 837eb73398 Locale amb català (defecte) i anglès; Options.locale persistit a config.yaml (v0.10.0) 2026-04-19 12:11:42 +02:00
JailDesigner 1b430500f4 Sistema de notificacions amb presets (F4, llisca des de dalt) (v0.9.0) 2026-04-19 10:54:32 +02:00
JailDesigner 96cbdf96b6 Input + moviment del jugador amb fletxes (flip, anim walk/stand, bounds) (v0.8.0) 2026-04-19 09:57:22 +02:00
JailDesigner bee9b650db Paleta UI compartida (sega-cube.pal) i constants semàntiques UiColor (v0.7.1) 2026-04-19 09:30:29 +02:00
JailDesigner e6f3c888e6 Font 8bithud, classe Text i overlay RenderInfo (F3, persistit a config.yaml) (v0.7.0) 2026-04-19 00:31:02 +02:00
JailDesigner ce5bec1b34 Shader CRT-Pi alternatiu en pipeline separat; selecció via config + presets (v0.6.0) 2026-04-18 23:16:17 +02:00
JailDesigner 26b4d9e610 Presets PostFX carregats de shaders/postfx.yaml; Screen aplica params (v0.5.0) 2026-04-18 23:02:06 +02:00
JailDesigner 6c8ef9ff44 Path SDL3 GPU amb PostFX passthrough; Screen amb init/shutdown explicit (v0.4.0) 2026-04-18 22:50:04 +02:00
JailDesigner 0348acb0eb Config.yaml + Screen::Config desacoblat via Options (v0.3.0) 2026-04-18 21:38:40 +02:00
JailDesigner de5a670fdb Motor de sprites/animacions/surfaces i jugador centrat (v0.2.0) 2026-04-18 21:02:55 +02:00
JailDesigner 7bb1edd08a Esquelet inicial: finestra negra i primera escena 2026-04-18 19:56:59 +02:00