X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fengine%2Fe_sound_fmod.inc;h=36d4932387d1f73e120a12368b460dc9079aba10;hb=a4b97dbff3c995c7dda7fcfd5fc61e0aa19e7547;hp=bb12c810cc55dd61addc602e374148f08e742cda;hpb=d7d166dc3cd287276202e862746208892c4cc89f;p=d2df-sdl.git diff --git a/src/engine/e_sound_fmod.inc b/src/engine/e_sound_fmod.inc index bb12c81..36d4932 100644 --- a/src/engine/e_sound_fmod.inc +++ b/src/engine/e_sound_fmod.inc @@ -1,4 +1,4 @@ -(* 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 @@ -19,7 +19,7 @@ uses fmod, fmodtypes, fmoderrors, - mempool, + {$IFDEF USE_MEMPOOL}mempool,{$ENDIF} e_log, SysUtils; @@ -31,7 +31,7 @@ type nRefs: Integer; end; - TBasicSound = class(TPoolObject) + TBasicSound = class{$IFDEF USE_MEMPOOL}(TPoolObject){$ENDIF} private FChannel: FMOD_CHANNEL; @@ -68,8 +68,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 +286,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 +300,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 +329,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 +337,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 +356,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 +385,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;