PATCH-04: backup <path>.bak abans de reescriure config/presets per fallada
Helper `backupFile(path)` que copia el YAML a `<path>.bak` si existeix. Es crida a `loadFromFile` (versió mismatch i catch) i a `loadPresetsFromFile<T>` (manca `presets:`, llista buida, catch). La primera execució no genera .bak. Cada reescriptura forçada registra el motiu per stderr (INCONS-02 migrarà a std::cout). Prova manual: config.yaml amb contingut \"===broken===\" genera config.yaml.bak amb el contingut previ i un nou config.yaml amb defaults.
This commit is contained in:
1 parent
505c20dabc
commit
db2e5d66e0
2 files changed
+31
-4
No files matched your search
+2
-2
@@ -21,7 +21,7 @@ Els IDs es mantenen estables una vegada assignats. Cada entrada apunta al fitxer
|
||||
| HC-03 | Geometria del mapa cablejada a `map.hpp` (bloqueja "pirámide a pirámide") | DONE |
|
||||
| COUP-01 | `core/` inclou `game/ui/notification_presets.hpp` (dependència invertida) | DONE |
|
||||
| DUP-01 | PostFX i CrtPi són dos pipelines duplicats a `options.cpp` | DONE |
|
||||
| PATCH-04 | Reescriure silenciosament `config.yaml` al fallar parseig o versió | PENDING |
|
||||
| PATCH-04 | Reescriure silenciosament `config.yaml` al fallar parseig o versió | DONE |
|
||||
| HC-01 | `SPEED_PX_PER_S`, caixa de col·lisió i rutes d'assets cablejades | PENDING |
|
||||
|
||||
---
|
||||
@@ -56,7 +56,7 @@ Els IDs es mantenen estables una vegada assignats. Cada entrada apunta al fitxer
|
||||
| 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-02 | `player.cpp:13-15` | Comentari tipus TODO ("si més endavant volem sprint...") | Menor | PENDING | Treure o convertir en feature amb issue |
|
||||
| PATCH-03 | `map.cpp:13-15` | `overlapStrict` custom perquè SDL3 considera el toc com intersecció | Menor | PENDING | Si s'usa més, mourea `utils/` |
|
||||
| PATCH-04 | `options.cpp:361-363,371-375,475-480,528-533` | Reescriure silenciosament `config.yaml` al fallar parseig o canviar versió | Crítico | PENDING | `.bak` + log abans de sobreescriure |
|
||||
| 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 |
|
||||
| PATCH-05 | `game_scene.cpp:51` | `if (Audio::get() != nullptr)` com a defensa sobre un singleton Meyers | Menor | PENDING | Assumir invariant, treure |
|
||||
| PATCH-06 | `game_scene.cpp:78-91` | Ordenació per `getFeetY()` amb 1 jugador i sense sarcs-sprite: cerimonial | Menor | PENDING | Comentar "reactivar quan hi haja sarcs-sprite" o treure |
|
||||
| PATCH-07 | `map.hpp:64` + `map.cpp:19` | `Map` declara ctor però tots els mètodes són `static` (transició a mitges) | Importante | PENDING | Decidir: namespace o instanciar |
|
||||
|
||||
Reference in new issue
Block a user