Add variable to make state of sound system clear
authorWuzzy <Wuzzy2@mail.ru>
Mon, 16 Jul 2018 23:27:15 +0200
changeset 13495 f725701ca529
parent 13491 4faebbf9c44f
child 13496 c7df0d96da81
Add variable to make state of sound system clear
hedgewars/uGame.pas
hedgewars/uSound.pas
hedgewars/uVariables.pas
--- a/hedgewars/uGame.pas	Mon Jul 16 20:28:01 2018 +0200
+++ b/hedgewars/uGame.pas	Mon Jul 16 23:27:15 2018 +0200
@@ -86,7 +86,7 @@
         begin
         j:= Volume;
         i:= ChangeVolume(cVolumeDelta);
-        if isAudioMuted and (j<>i) then
+        if (not cIsSoundEnabled) or (isAudioMuted and (j<>i)) then
             AddCaption(trmsg[sidMute], cWhiteColor, capgrpVolume)
         else if not isAudioMuted then
             begin
--- a/hedgewars/uSound.pas	Mon Jul 16 20:28:01 2018 +0200
+++ b/hedgewars/uSound.pas	Mon Jul 16 23:27:15 2018 +0200
@@ -339,7 +339,11 @@
 var success: boolean;
 begin
     if not (isSoundEnabled or isMusicEnabled) then
+        begin
+        isAudioMuted:= true;
+        cInitVolume:= 0;
         exit;
+        end;
     WriteToConsole('Init sound...');
     success:= SDL_InitSubSystem(SDL_INIT_AUDIO) = 0;
 
@@ -357,12 +361,17 @@
         WriteLnToConsole(msgFailed);
         isSoundEnabled:= false;
         isMusicEnabled:= false;
+        isAudioMuted:= true;
+        cInitVolume:= 0;
     end;
 
     WriteToConsole('Init SDL_mixer... ');
     if SDLCheck(Mix_Init(MIX_INIT_OGG) <> 0, 'Mix_Init', true) then exit;
     WriteLnToConsole(msgOK);
 
+    // from uVariables to be used by other modules
+    cIsSoundEnabled:= true;
+
     Mix_AllocateChannels(Succ(chanTPU));
     previousVolume:= cInitVolume;
     ChangeVolume(cInitVolume);
--- a/hedgewars/uVariables.pas	Mon Jul 16 20:28:01 2018 +0200
+++ b/hedgewars/uVariables.pas	Mon Jul 16 23:27:15 2018 +0200
@@ -168,6 +168,7 @@
     cScriptName     : shortstring;
     cScriptParam    : shortstring;
     cSeed           : shortstring;
+    cIsSoundEnabled : boolean; // If the sound system is enabled
     cVolumeDelta    : LongInt;
     cMuteToggle     : boolean; // Mute toggle requested
     cHasFocus       : boolean;
@@ -2852,6 +2853,7 @@
     fastScrolling   := false;
     autoCameraOn    := true;
     cSeed           := '';
+    cIsSoundEnabled := false;
     cVolumeDelta    := 0;
     cMuteToggle     := false;
     cHasFocus       := true;