refactor(core/audio): Ja::* és l'única font de veritat de MusicState (INCONS-02)
music_.state era una cache d'estat que podia divergir del real —
precisament per això existia getRealMusicState() com a "consulta honesta".
Es descarta la cache:
- music_.state deixa d'existir; el struct privat Music només manté
name i loop.
- getMusicState() passa a ser static i consulta Ja::getMusicState(),
projectant INVALID/DISABLED al STOPPED que exposa Audio::MusicState.
- getRealMusicState() desapareix (getMusicState ja fa la consulta real).
- update() ja no necessita el bloc de sincronització.
- playMusicInternal/pauseMusic/resumeMusic/stopMusic/fadeOutMusic
llegeixen getMusicState() en comptes de music_.state i deixen de
reassignar-lo — Ja ja ho fa.
Externament: cap caller usa getMusicState/getRealMusicState, així que
canviar a static és segur (Audio::get()->getMusicState() continua
funcionant).
pauseMusic/resumeMusic/stopMusic es marquen amb NOLINT per
readability-make-member-function-const pel mateix motiu que INCONS-01
(muten globals de Ja::* que clang-tidy no veu).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
964ff104ce
commit
66c5801725
3 files changed
+28
-32
No files matched your search
@@ -20,7 +20,7 @@ Los IDs se mantienen estables una vez asignados. Cada entrada apunta al(los) fic
|
||||
|----|--------|--------|
|
||||
| COUP-01 | Encapsular globals `Ja::` en clase (engine sin estado global) | PENDING |
|
||||
| HC-02 | Formato/canales/freq hardcodeado en 3+ sitios | DONE |
|
||||
| INCONS-02 | Doble `MusicState` + `getRealMusicState` como cache paralelo | PENDING |
|
||||
| INCONS-02 | Doble `MusicState` + `getRealMusicState` como cache paralelo | DONE |
|
||||
| HC-01 | Parámetros de audio no configurables (viola convención del proyecto) | DONE |
|
||||
| PATCH-01 | `toggleEnabled/toggleSound/toggleMusic` no reaplican volumen | DONE |
|
||||
|
||||
@@ -71,7 +71,7 @@ Los IDs se mantienen estables una vez asignados. Cada entrada apunta al(los) fic
|
||||
| ID | Fichero:línea | Hallazgo | Severidad | Estado | Notas |
|
||||
|----|---------------|----------|-----------|--------|-------|
|
||||
| INCONS-01 | `audio.cpp:128,135,142,149,172,180` | Métodos `const` que mutan globals de `Ja` (const miente) | Importante | DONE | `const` tret de 6 mètodes (`playSound` x2, `stopAllSounds`, `fadeOutMusic`, `setSoundVolume`, `setMusicVolume`). `effectiveVolume` es queda `const` (pur sobre membres). Cap caller extern via `const Audio*` |
|
||||
| INCONS-02 | `audio.hpp:44-48` + `jail_audio.hpp:44-50` | Dos `MusicState` paralelos + `getRealMusicState` como puente | Importante | PENDING | Un enum único; eliminar `getRealMusicState` |
|
||||
| INCONS-02 | `audio.hpp:44-48` + `jail_audio.hpp:44-50` | Dos `MusicState` paralelos + `getRealMusicState` como puente | Importante | DONE | Eliminat `music_.state` (cache) i `getRealMusicState`. `getMusicState()` consulta Ja::* directament i projecta INVALID/DISABLED → STOPPED. La font de veritat passa a ser Ja. `update()` ja no necessita sincronització |
|
||||
| INCONS-03 | `audio.cpp` varios | Comentarios mezclan catalán y español | Menor | PENDING | Unificar a catalán |
|
||||
| INCONS-04 | `audio.hpp:70,78` | `playMusic` `loop=-1` vs `playSound` `loop=0` | Menor | WONTFIX | Convención razonable (música loop / sonido one-shot); documentar |
|
||||
| INCONS-05 | `audio.hpp:102-105` | 4 formas de enable/disable sound (API redundante) + divergencia con `Ja::enableSound` | Importante | PENDING | Dejar `enableSound(bool)` + `toggleSound()`; delegar a `Ja` |
|
||||
|
||||
Reference in new issue
Block a user