bglga/TODO/GAL-49.md
Harald Hoyer 365e3a7cc4 chore(todo): add acceptance criteria and test hints to open issues
Flesh out the 14 still-open issues (GAL-34/35/36/37, 40/41, 43, 46/47/48/49,
52/53/55) with explicit acceptance criteria and concrete integration test
hints that reference existing types and headless tooling, so future work
on these tickets has a clear definition of done.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 09:53:09 +02:00

971 B

id title status parent labels
GAL-49 Add background music Todo GAL-46
polish
audio

GAL-49: Add background music

Add background music.

Acceptance criteria

  • Music begins on entering GameState::Playing and stops/pauses on GameOver and StartMenu.
  • Re-entering Playing (after restart) starts exactly one music instance — no overlapping tracks.
  • Music volume control independent from SFX channel.
  • Looping is seamless (no audible gap on loop).
  • Optional: per-stage track override defined in StageConfig.

Integration test hints

  • State-transition test: OnEnter(GameState::Playing) → assert one BgMusic-tagged audio entity exists; OnExit(Playing) → assert it is gone or paused.
  • Restart loop test: Playing → GameOver → restart (GAL-55) → Playing; assert exactly one music entity at the end (no duplication).
  • Headless: ensure the music asset loads under nix develop without blocking startup.