diff -r 1b327b7515ed -r 7e0f88013fe8 hedgewars/uSound.pas --- a/hedgewars/uSound.pas Thu Dec 24 13:38:20 2009 +0000 +++ b/hedgewars/uSound.pas Sun Jan 03 15:40:41 2010 +0000 @@ -70,21 +70,26 @@ procedure InitSound; var i: TSound; begin -if not isSoundEnabled then exit; -WriteToConsole('Init sound...'); -isSoundEnabled:= SDL_Init(SDL_INIT_AUDIO) >= 0; -if isSoundEnabled then - isSoundEnabled:= Mix_OpenAudio(44100, $8010, 2, 1024) = 0; -if isSoundEnabled then WriteLnToConsole(msgOK) - else WriteLnToConsole(msgFailed); -Mix_AllocateChannels(Succ(chanTPU)); -if isMusicEnabled then Mix_VolumeMusic(50); + if not isSoundEnabled then exit; + WriteToConsole('Init sound...'); + isSoundEnabled:= SDL_Init(SDL_INIT_AUDIO) >= 0; + + if isSoundEnabled then + isSoundEnabled:= Mix_OpenAudio(44100, $8010, 2, 1024) = 0; -for i:= Low(TSound) to High(TSound) do - lastChan[i]:= -1; + if isSoundEnabled then + WriteLnToConsole(msgOK) + else + WriteLnToConsole(msgFailed); -Volume:= 0; -ChangeVolume(cInitVolume) + Mix_AllocateChannels(Succ(chanTPU)); + if isMusicEnabled then + Mix_VolumeMusic(50); + for i:= Low(TSound) to High(TSound) do + lastChan[i]:= -1; + + Volume:= 0; + ChangeVolume(cInitVolume) end; procedure ReleaseSound; @@ -98,7 +103,7 @@ Mix_FreeChunk(voicepacks[t].chunks[i]); Mix_FreeMusic(Mus); -Mix_CloseAudio +Mix_CloseAudio(); end; procedure SoundLoad; @@ -106,9 +111,13 @@ s: shortstring; t: Longword; begin -if not isSoundEnabled then exit; + if not isSoundEnabled then exit; -defVoicepack:= AskForVoicepack('Default'); + WriteToConsole('Init SDL_mixer... '); + SDLTry(Mix_Init(MIX_INIT_OGG) <> 0, true); + WriteLnToConsole(msgOK); + + defVoicepack:= AskForVoicepack('Default'); for i:= Low(TSound) to High(TSound) do if (Soundz[i].Path <> ptVoices) and (Soundz[i].FileName <> '') then @@ -133,6 +142,8 @@ else WriteLnToConsole(msgOK) end; + + Mix_Quit(); end; procedure PlaySound(snd: TSound; infinite: boolean; voicepack: PVoicepack);