fix(demo): silencia només els SFX de joc i evita que la veu de fase es cole al títol
This commit is contained in:
@@ -281,6 +281,17 @@ void Audio::enableMusic(bool value) {
|
||||
setMusicVolume(config_.music_volume);
|
||||
}
|
||||
|
||||
// Silencia o restaura un grup de sons concret sense alterar config_ (el volum
|
||||
// que l'usuari va triar) ni els altres grups. Silenciar posa la ganancia del
|
||||
// grup a 0; restaurar-la torna al volum efectiu normal (que ja aplica els gates
|
||||
// master/sound i el volum de l'usuari). A diferència de setSoundVolume, no
|
||||
// xafa config_.sound_volume, así que el menu de servei segueix mostrant i
|
||||
// operant el volum real durant la demo.
|
||||
void Audio::silenceGroup(Group group, bool silenced) {
|
||||
const float VOL = silenced ? 0.0F : effectiveVolume(config_.sound_volume, sound_enabled_);
|
||||
engine_->setSoundVolume(VOL, static_cast<int>(group));
|
||||
}
|
||||
|
||||
// Inicialitza SDL Audio y el motor Ja::Engine owned.
|
||||
void Audio::initSDLAudio() {
|
||||
if (!SDL_Init(SDL_INIT_AUDIO)) {
|
||||
|
||||
@@ -128,6 +128,12 @@ class Audio {
|
||||
// --- Configuración de sons ---
|
||||
void enableSound(bool value); // Estableix l'estat dels sons (reaplica volum)
|
||||
void toggleSound() { enableSound(!sound_enabled_); } // Alterna l'estat dels sons (reaplica volum)
|
||||
// Silencia (o restaura) un únic grup de sons sense tocar el volum cachejat
|
||||
// de l'usuari ni la resta de grups. Pensat per a l'attract/demo: vol callar
|
||||
// els SFX de joc (Group::GAME) pero mantenir els del menu de servei
|
||||
// (Group::INTERFACE) i la música. En restaurar, reaplica el volum efectiu
|
||||
// normal del canal (que ja respecta els gates master/sound).
|
||||
void silenceGroup(Group group, bool silenced);
|
||||
|
||||
// --- Configuración de música ---
|
||||
void enableMusic(bool value); // Estableix l'estat de la música (reaplica volum)
|
||||
|
||||
Reference in New Issue
Block a user