feat(demo): logo silenciós dins el cicle d'atracció (no sons ni reinici de música si ja sona)

This commit is contained in:
2026-05-29 08:54:56 +02:00
parent 0abbaa09f8
commit b363efd1f0
2 changed files with 20 additions and 3 deletions
+15 -3
View File
@@ -55,6 +55,11 @@ LogoScene::LogoScene(SDLManager& sdl, SceneContext& context)
(void)option; // Suprimir warning
sound_played_.fill(false); // Inicialitzar seguiment de sons
// Si ja sona música (venim de la demo del cicle d'atracció), operar en
// silenci: ni sons de lletres ni reinici de title.ogg.
attract_silent_ = (Audio::getMusicState() == Audio::MusicState::PLAYING);
initLetters();
}
@@ -171,7 +176,10 @@ void LogoScene::changeState(AnimationState nou_estat) {
std::mt19937 g(rd());
std::shuffle(explosion_order_.begin(), explosion_order_.end(), g);
} else if (nou_estat == AnimationState::POST_EXPLOSION) {
Audio::get()->playMusic("title.ogg");
// En el cicle d'atracció la música ja sona; no la reiniciem.
if (!attract_silent_) {
Audio::get()->playMusic("title.ogg");
}
}
std::cout << "[LogoScene] Canvi a state: " << static_cast<int>(nou_estat)
@@ -237,9 +245,13 @@ void LogoScene::update(float delta_time) {
global_progress,
LETTER_THRESHOLD);
// Reproduir so cuando la letter comença a aparèixer (progress > 0)
// Reproduir so cuando la letter comença a aparèixer (progress > 0).
// En mode silenciós (cicle d'atracció) saltem el so però igualment
// marquem la letter per no acumular pendents.
if (letter_progress > 0.0F) {
Audio::get()->playSound(Defaults::Sound::LOGO, Audio::Group::GAME);
if (!attract_silent_) {
Audio::get()->playSound(Defaults::Sound::LOGO, Audio::Group::GAME);
}
sound_played_[i] = true;
}
}