diff --git a/src/game/g_sound.pas b/src/game/g_sound.pas
index 5c2882daae9ca8ef2a22e4454bbb6be6ee5870d4..094df0f80756b710312f6c19dfdb4b1aec05e99c 100644 (file)
--- a/src/game/g_sound.pas
+++ b/src/game/g_sound.pas
-{$MODE DELPHI}
+(* 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *)
+{$INCLUDE ../shared/a_modes.inc}
unit g_sound;
interface
unit g_sound;
interface
function g_Sound_PlayExAt(SoundName: ShortString; X, Y: Integer): Boolean;
function g_Sound_CreateWAD(var ID: DWORD; Resource: string; isMusic: Boolean = False): Boolean;
function g_Sound_PlayExAt(SoundName: ShortString; X, Y: Integer): Boolean;
function g_Sound_CreateWAD(var ID: DWORD; Resource: string; isMusic: Boolean = False): Boolean;
-function g_Sound_CreateWADEx(SoundName: ShortString; Resource: string; isMusic: Boolean = False): Boolean;
+function g_Sound_CreateWADEx(SoundName: ShortString; Resource: string; isMusic: Boolean = False; ForceNoLoop: Boolean = False): Boolean;
function g_Sound_CreateFile(var ID: DWORD; FileName: string; isMusic: Boolean = False): Boolean;
function g_Sound_CreateFile(var ID: DWORD; FileName: string; isMusic: Boolean = False): Boolean;
-function g_Sound_CreateFileEx(SoundName: ShortString; FileName: string; isMusic: Boolean = False): Boolean;
+function g_Sound_CreateFileEx(SoundName: ShortString; FileName: string; isMusic: Boolean = False; ForceNoLoop: Boolean = False): Boolean;
procedure g_Sound_Delete(SoundName: ShortString);
function g_Sound_Exists(SoundName: string): Boolean;
procedure g_Sound_Delete(SoundName: ShortString);
function g_Sound_Exists(SoundName: string): Boolean;
Exit;
end;
Exit;
end;
- e_WriteLog(Format(_lc[I_GAME_ERROR_SOUND], [SoundName]), MSG_WARNING);
+ e_WriteLog(Format(_lc[I_GAME_ERROR_SOUND], [SoundName]), TMsgType.Warning);
end;
function g_Sound_PlayExPanVolume(SoundName: ShortString; Pan: Single; Volume: Single): Boolean;
end;
function g_Sound_PlayExPanVolume(SoundName: ShortString; Pan: Single; Volume: Single): Boolean;
Exit;
end;
Exit;
end;
- e_WriteLog(Format(_lc[I_GAME_ERROR_SOUND], [SoundName]), MSG_WARNING);
+ e_WriteLog(Format(_lc[I_GAME_ERROR_SOUND], [SoundName]), TMsgType.Warning);
end;
function PlaySoundAt(X, Y: Integer; var Pan: Single; var Volume: Single; InVolume: Single = 1.0): Boolean;
end;
function PlaySoundAt(X, Y: Integer; var Pan: Single; var Volume: Single; InVolume: Single = 1.0): Boolean;
Exit;
end;
Exit;
end;
- e_WriteLog(Format(_lc[I_GAME_ERROR_SOUND], [SoundName]), MSG_WARNING);
+ e_WriteLog(Format(_lc[I_GAME_ERROR_SOUND], [SoundName]), TMsgType.Warning);
end;
function g_Sound_CreateFile(var ID: DWORD; FileName: string; isMusic: Boolean = False): Boolean;
end;
function g_Sound_CreateFile(var ID: DWORD; FileName: string; isMusic: Boolean = False): Boolean;
Result := e_LoadSound(FileName, ID, isMusic);
end;
Result := e_LoadSound(FileName, ID, isMusic);
end;
-function g_Sound_CreateFileEx(SoundName: ShortString; FileName: string; isMusic: Boolean = False): Boolean;
+function g_Sound_CreateFileEx(SoundName: ShortString; FileName: string; isMusic: Boolean = False; ForceNoLoop: Boolean = False): Boolean;
var
find_id: DWORD;
begin
var
find_id: DWORD;
begin
find_id := FindSound();
find_id := FindSound();
- if not e_LoadSound(FileName, SoundArray[find_id].ID, isMusic) then
+ if not e_LoadSound(FileName, SoundArray[find_id].ID, isMusic, ForceNoLoop) then
Exit;
SoundArray[find_id].Name := SoundName;
Exit;
SoundArray[find_id].Name := SoundName;
begin
{$IFNDEF HEADLESS}
if isMusic then
begin
{$IFNDEF HEADLESS}
if isMusic then
- e_WriteLog(Format('Error loading music %s', [Resource]), MSG_WARNING)
+ e_WriteLog(Format('Error loading music %s', [Resource]), TMsgType.Warning)
else
else
- e_WriteLog(Format('Error loading sound %s', [Resource]), MSG_WARNING);
+ e_WriteLog(Format('Error loading sound %s', [Resource]), TMsgType.Warning);
Exit;
{$ENDIF}
end;
Result := True;
end;
Exit;
{$ENDIF}
end;
Result := True;
end;
-function g_Sound_CreateWADEx(SoundName: ShortString; Resource: string; isMusic: Boolean = False): Boolean;
+function g_Sound_CreateWADEx(SoundName: ShortString; Resource: string; isMusic: Boolean = False; ForceNoLoop: Boolean = False): Boolean;
var
WAD: TWADFile;
FileName: string;
var
WAD: TWADFile;
FileName: string;
if WAD.GetResource(g_ExtractFilePathName(Resource), SoundData, ResLength) then
begin
if WAD.GetResource(g_ExtractFilePathName(Resource), SoundData, ResLength) then
begin
- if e_LoadSoundMem(SoundData, ResLength, SoundArray[find_id].ID, isMusic) then
+ if e_LoadSoundMem(SoundData, ResLength, SoundArray[find_id].ID, isMusic, ForceNoLoop) then
begin
SoundArray[find_id].Name := SoundName;
SoundArray[find_id].IsMusic := isMusic;
begin
SoundArray[find_id].Name := SoundName;
SoundArray[find_id].IsMusic := isMusic;
begin
{$IFNDEF HEADLESS}
if isMusic then
begin
{$IFNDEF HEADLESS}
if isMusic then
- e_WriteLog(Format('Error loading music %s', [Resource]), MSG_WARNING)
+ e_WriteLog(Format('Error loading music %s', [Resource]), TMsgType.Warning)
else
else
- e_WriteLog(Format('Error loading sound %s', [Resource]), MSG_WARNING);
+ e_WriteLog(Format('Error loading sound %s', [Resource]), TMsgType.Warning);
Exit;
{$ENDIF}
end;
Exit;
{$ENDIF}
end;