docs/audit-game.md: PATCH-01 a DEFERRED i recompte global corregit

PATCH-01 (col·lisió per eix a Player::update) queda per a la branca
`refactor/options-class` junt amb COUP-02/03, ja que tryMove a
AnimatedSprite toca core/rendering/sprite/ i val la pena agrupar-ho
amb el refactor de MapInfo/Options. Recomptes: 28 DONE + 2 DONE
(parcial) + 5 WONTFIX + 4 DEFERRED.
This commit is contained in:
JailDesigner committed 2026-04-20 18:24:01 +02:00
1 parent 07a6e4d5d8
commit 4dc2654a66
1 file changed
+2 -2
+2 -2
View File
@@ -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: **25 DONE, 5 WONTFIX, 3 DEFERRED** sobre 33 ítems. 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).
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) van a la futura branca `refactor/options-class`.
Estados posibles:
- `PENDING` — identificat, sense tocar
@@ -55,7 +55,7 @@ Els IDs es mantenen estables una vegada assignats. Cada entrada apunta al fitxer
| ID | Fitxer:línia | Troballa | Severitat | Estat | Notes |
|----|--------------|----------|-----------|-------|-------|
| PATCH-01 | `player.cpp:66-77` | Col·lisió per eix fent `AnimatedSprite::update` + revertir + reaplicar | Importante | PENDING | `tryMove(dx, dy, collisionFn)` a la classe base |
| PATCH-01 | `player.cpp:66-77` | Col·lisió per eix fent `AnimatedSprite::update` + revertir + reaplicar | Importante | DEFERRED | Afegir `tryMove(dx, dy, collisionFn)` a la classe base toca `core/rendering/sprite/` i canvia l'API de tots els descendents. Millor lligar-ho al refactor de COUP-02/03 (`refactor/options-class` / MapInfo injectat al Player) per no dispersar el canvi |
| PATCH-02 | `player.cpp:13-15` | Comentari tipus TODO ("si més endavant volem sprint...") | Menor | DONE | Eliminat en HC-01 (la constant ja no viu al `.cpp`, sinó a `Defaults::Player`) |
| PATCH-03 | `map.cpp:13-15` | `overlapStrict` custom perquè SDL3 considera el toc com intersecció | Menor | WONTFIX | Només s'usa dins de `Map::collides` i és una línia; moure a utils/ ara seria sobre-abstraure. Si apareix a un segon mòdul, promourea a `utils/geometry.hpp` |
| PATCH-04 | `options.cpp:361-363,371-375,475-480,528-533` | Reescriure silenciosament `config.yaml` al fallar parseig o canviar versió | Crítico | DONE | Helper `backupFile()` que copia a `<path>.bak` si existeix. Cridat abans de cada reescriptura forçada (versió mismatch + catch a `loadFromFile`, `presets:` absent/invàlid/buit + catch a `loadPresetsFromFile`). Primera execució no genera `.bak`. Missatge explícit per motiu de reescriptura |