feat(demo): silenciar els efectes de so durant la demo (música intacta)

This commit is contained in:
2026-05-29 09:09:37 +02:00
parent b363efd1f0
commit 1e63d3ae9d
2 changed files with 13 additions and 1 deletions
+11
View File
@@ -164,6 +164,10 @@ GameScene::GameScene(SDLManager& sdl, SceneContext& context)
context_.advanceDemoScenario();
stage_manager_->initDemo(SC.stage);
demo_timer_ = DEMO_DURATION;
// Silenciar els SFX durant la demo (la música segueix). Guardem l'estat
// previ per restaurar-lo al destructor sense xafar la preferència de l'usuari.
sound_was_enabled_ = Audio::get()->isSoundEnabled();
Audio::get()->enableSound(false);
} else {
stage_manager_->init();
}
@@ -231,6 +235,13 @@ GameScene::GameScene(SDLManager& sdl, SceneContext& context)
init_hud_rect_sound_played_ = false;
}
GameScene::~GameScene() {
// Si la demo havia silenciat els SFX, restaurar l'estat previ en sortir.
if (match_config_.mode == GameConfig::Mode::DEMO) {
Audio::get()->enableSound(sound_was_enabled_);
}
}
auto GameScene::isFinished() const -> bool {
return context_.nextScene() != SceneType::GAME;
}