--- 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;