DEADSOFTWARE

changed license to GPLv3 only; sorry, no trust to FSF anymore
[d2df-sdl.git] / src / engine / e_sound_fmod.inc
index ab3f4fe1c14a0e5dd00dc909c79e48e91406ac0b..8f4486481947f1cb956db2528e7e1b991f9dac00 100644 (file)
@@ -1,9 +1,8 @@
-(* Copyright (C)  DooM 2D:Forever Developers
+(* Copyright (C)  Doom 2D: Forever Developers
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
+ * the Free Software Foundation, version 3 of the License ONLY.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -68,8 +67,8 @@ const
 
 function e_InitSoundSystem(NoOutput: Boolean = False): Boolean;
 
-function e_LoadSound(FileName: string; var ID: DWORD; bLoop: Boolean): Boolean;
-function e_LoadSoundMem(pData: Pointer; Length: Integer; var ID: DWORD; bLoop: Boolean): Boolean;
+function e_LoadSound(FileName: string; var ID: DWORD; isMusic: Boolean; ForceNoLoop: Boolean = False): Boolean;
+function e_LoadSoundMem(pData: Pointer; Length: Integer; var ID: DWORD; isMusic: Boolean; ForceNoLoop: Boolean = False): Boolean;
 
 function e_PlaySound(ID: DWORD): Integer;
 function e_PlaySoundPan(ID: DWORD; Pan: Single): Integer;
@@ -286,7 +285,7 @@ begin
     end;
 end;
 
-function e_LoadSound(FileName: String; var ID: DWORD; bLoop: Boolean): Boolean;
+function e_LoadSound(FileName: String; var ID: DWORD; isMusic: Boolean; ForceNoLoop: Boolean = False): Boolean;
 var
   find_id: DWORD;
   res: FMOD_RESULT;
@@ -300,12 +299,12 @@ begin
 
   find_id := FindESound();
 
-  if bLoop then
+  if isMusic and not ForceNoLoop then
     bt := FMOD_LOOP_NORMAL
   else
     bt := FMOD_LOOP_OFF;
 
-  if not bLoop then
+  if not isMusic then
     res := FMOD_System_CreateSound(F_System, PAnsiChar(FileName),
              bt + FMOD_2D + FMOD_HARDWARE,
              nil, e_SoundsArray[find_id].Sound)
@@ -329,7 +328,7 @@ begin
   end;
 
   e_SoundsArray[find_id].Data := nil;
-  e_SoundsArray[find_id].isMusic := bLoop;
+  e_SoundsArray[find_id].isMusic := isMusic;
   e_SoundsArray[find_id].nRefs := 0;
 
   ID := find_id;
@@ -337,7 +336,7 @@ begin
   Result := True;
 end;
 
-function e_LoadSoundMem(pData: Pointer; Length: Integer; var ID: DWORD; bLoop: Boolean): Boolean;
+function e_LoadSoundMem(pData: Pointer; Length: Integer; var ID: DWORD; isMusic: Boolean; ForceNoLoop: Boolean = False): Boolean;
 var
   find_id: DWORD;
   res: FMOD_RESULT;
@@ -356,12 +355,12 @@ begin
   soundExInfo.cbsize := sz;
   soundExInfo.length := Length;
 
-  if bLoop then
+  if isMusic and not ForceNoLoop then
     bt := FMOD_LOOP_NORMAL
   else
     bt := FMOD_LOOP_OFF;
 
-  if not bLoop then
+  if not isMusic then
     res := FMOD_System_CreateSound(F_System, pData,
              bt + FMOD_2D + FMOD_HARDWARE + FMOD_OPENMEMORY,
              @soundExInfo, e_SoundsArray[find_id].Sound)
@@ -385,7 +384,7 @@ begin
   end;
 
   e_SoundsArray[find_id].Data := pData;
-  e_SoundsArray[find_id].isMusic := bLoop;
+  e_SoundsArray[find_id].isMusic := isMusic;
   e_SoundsArray[find_id].nRefs := 0;
 
   ID := find_id;