From 510ab55a3372b9b51471e09b34d6e5aea65ec552 Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Wed, 22 Apr 2026 09:22:38 +0200 Subject: [PATCH] docs: actualitza estat post-refactor/options-class MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - audit-game.md cabecera: contadors actualitzats (32 DONE, 1 DONE parcial, 5 WONTFIX, 0 DEFERRED) i frase dels DEFERRED en pretèrit perfecte. INCONS-01 queda com l'únic DONE (parcial), intencionalment. - player-animations.md secció 4: el patró antic "AnimatedSprite::update integra + col·lisió eix-separada reverteix cada eix" es substitueix per "animate(dt) + tryMove(vx*dt, vy*dt, collidesFn) amb collisionBox() virtual" — coincidint amb el codi post-PATCH-01. Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/audit-game.md | 2 +- docs/player-animations.md | 15 ++++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/docs/audit-game.md b/docs/audit-game.md index 8886beb..ef8c64c 100644 --- a/docs/audit-game.md +++ b/docs/audit-game.md @@ -3,7 +3,7 @@ Rama: `audit/game`. Cobertura: `source/game/{entities,map,scenes,ui}` + `source/game/options.{hpp,cpp}` (12 fitxers, ~1.486 línies). -Estado global: **28 DONE, 2 DONE (parcial), 5 WONTFIX, 4 DEFERRED** sobre 39 ítems (el top 5 compta dins dels seus IDs individuals). Cada canvi té un commit aïllat i s'ha provat amb `SDL_VIDEODRIVER=dummy` + `SIGINT` (el log de `Game start` a `Bye!` és idèntic entre commits; la branca `config.yaml` de backup verificada manualment amb un fitxer corrupte). Els 4 DEFERRED (COUP-02, COUP-03, CONV-02 resta, PATCH-01) es tanquen a la branca `refactor/options-class` (registre de commits al final del fitxer). +Estado global: **32 DONE, 1 DONE (parcial), 5 WONTFIX, 0 DEFERRED** sobre 39 ítems (el top 5 compta dins dels seus IDs individuals). Cada canvi té un commit aïllat i s'ha provat amb `SDL_VIDEODRIVER=dummy` + `SIGINT` (el log de `Game start` a `Bye!` és idèntic entre commits; la branca `config.yaml` de backup verificada manualment amb un fitxer corrupte). Els 4 DEFERRED inicials (COUP-02, COUP-03, CONV-02 part Options, PATCH-01) s'han tancat a la branca `refactor/options-class` (registre de commits al final del fitxer); l'únic ítem que queda en DONE (parcial) és INCONS-01, intencionadament — la nota n'explica el motiu. Estados posibles: - `PENDING` — identificat, sense tocar diff --git a/docs/player-animations.md b/docs/player-animations.md index 57cc95c..7c05e4a 100644 --- a/docs/player-animations.md +++ b/docs/player-animations.md @@ -52,12 +52,17 @@ impedeix avançar, l'animació `walk*` s'atura i es força la variant 1. Al principi del frame es captura `FRAME_START_X` / `FRAME_START_Y`. 2. S'aplica snap al passadís perpendicular si hi ha pur moviment H o V. -3. `AnimatedSprite::update` integra la velocitat; la col·lisió - eix-separada reverteix cada eix si `Map::collides(baseBox())`. -4. Després de `clampToPlayfield`, es compara la posició final amb el +3. `animate(delta_time)` avança el frame de l'animació actual sense + tocar la posició. +4. `tryMove(vx*dt, vy*dt, collidesFn)` (a `MovingSprite`) aplica el + moviment per eix: si la `collisionBox()` resultant col·lisiona — + el Player la sobreescriu retornant `getBaseBox()` —, l'eix es + reverteix. Així el jugador llisca contra murs/sarcòfags en lloc de + bloquejar-se en sec. +5. Després de `clampToPlayfield`, es compara la posició final amb el valor capturat al pas 1. Si és idèntica, `MOVED = false` i es tria - `stand` / `stand_up` / `stand_down` segons `facing_`. -5. Si hi ha hagut moviment real (incloent-hi snap), s'aplica la variant + `stand` / `stand_up` / `stand_down` segons `facing_`. Si hi ha + hagut moviment real (incloent-hi snap), s'aplica la variant `walk*` del mateix facing. D'aquesta manera, xocar contra un mur o un sarcòfag fa que el jugador es