--- a/hedgewars/SDLh.pas Sat Sep 03 16:01:28 2005 +0000
+++ b/hedgewars/SDLh.pas Sun Sep 04 21:19:19 2005 +0000
@@ -75,6 +75,8 @@
SDL_QUITEV = 12;
SDL_INIT_VIDEO = $00000020;
+ SDL_INIT_AUDIO = $00000010;
+
type PSDL_Rect = ^TSDL_Rect;
TSDL_Rect = record
x, y: SmallInt;
@@ -305,6 +307,7 @@
function Mix_VolumeMusic(volume: integer): integer; cdecl; external SDL_MixerLibName;
+function Mix_AllocateChannels(numchans: integer): integer; cdecl; external SDL_MixerLibName;
procedure Mix_FreeChunk(chunk: PMixChunk); cdecl; external SDL_MixerLibName;
procedure Mix_FreeMusic(music: PMixMusic); cdecl; external SDL_MixerLibName;
--- a/hedgewars/uSound.pas Sat Sep 03 16:01:28 2005 +0000
+++ b/hedgewars/uSound.pas Sun Sep 04 21:19:19 2005 +0000
@@ -51,9 +51,12 @@
begin
if not isSoundEnabled then exit;
WriteToConsole('Init sound...');
-isSoundEnabled:= Mix_OpenAudio(22050, $8010, 2, 512) = 0;
+isSoundEnabled:= SDL_Init(SDL_INIT_AUDIO) >= 0;
+if isSoundEnabled then
+ isSoundEnabled:= Mix_OpenAudio(22050, $8010, 2, 512) = 0;
if isSoundEnabled then WriteLnToConsole(msgOK)
else WriteLnToConsole(msgFailed);
+Mix_AllocateChannels(Succ(ord(High(TSound))));
Mix_VolumeMusic(48)
end;