DEADSOFTWARE

Sound: OpenAL: Add MIDI support via FluidSynth
[d2df-sdl.git] / src / engine / e_sound_al.inc
index dfe5919ea8ef52f374a57939a80ecc6ce474ca7e..a5c83646ff18937ecf004e228250272b3af25b05 100644 (file)
@@ -91,7 +91,7 @@ procedure e_SoundUpdate();
 var
   e_SoundFormat: TSoundFormat; // desired sound format
   e_SoundsArray: array of TSoundRec = nil;
-  e_ZeroPosition: array [0..2] of ALfloat;
+  e_ZeroPosition: array [0..2] of ALfloat = (0, 0, 0);
   e_ALError: ALenum = 0;
 
 implementation
@@ -288,6 +288,8 @@ begin
     exit;
   end;
 
+  Loader.Looping := e_SoundsArray[find_id].Loops;
+
   if not Loader.Load(FileName, e_SoundsArray[find_id].isMusic) then
   begin
     e_LogWritefln('Could not load sound `%s`', [FileName]);
@@ -361,6 +363,8 @@ begin
     exit;
   end;
 
+  Loader.Looping := e_SoundsArray[find_id].Loops;
+
   if not Loader.Load(pData, LongWord(Length), e_SoundsArray[find_id].isMusic) then
   begin
     e_LogWritefln('Could not load sound `%p`', [pData]);
@@ -494,6 +498,8 @@ begin
   if Result >= 0 then
   begin
     Pos[0] := Pan;
+    Pos[1] := 0;
+    Pos[2] := 0;
     AssignSound(ID, alSources[Result]);
     alSourcef(alSources[Result], AL_GAIN, 1);
     alSourcefv(alSources[Result], AL_POSITION, Pos);
@@ -521,6 +527,8 @@ begin
   if Result >= 0 then
   begin
     Pos[0] := Pan;
+    Pos[1] := 0;
+    Pos[2] := 0;
     AssignSound(ID, alSources[Result]);
     alSourcefv(alSources[Result], AL_POSITION, Pos);
     alSourcef(alSources[Result], AL_GAIN, Volume);
@@ -812,6 +820,8 @@ begin
   if InvalidSource() then
     Exit;
   Pos[0] := Pan;
+  Pos[1] := 0;
+  Pos[2] := 0;
   alSourcefv(alSources[FSource], AL_POSITION, Pos);
 end;