X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_sound.pas;h=813d8d145c4edec5cb745d5e83206215d9a17f12;hb=5472594f32e33da0c66606ec9eebc8f798ef6b54;hp=b1e09f8b4d91ee642fac286bf529fb0f32ab88c2;hpb=0968d19494ddf24230a822c02acbe3a3334bc3ad;p=d2df-sdl.git diff --git a/src/game/g_sound.pas b/src/game/g_sound.pas index b1e09f8..813d8d1 100644 --- a/src/game/g_sound.pas +++ b/src/game/g_sound.pas @@ -1,3 +1,19 @@ +(* 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 . + *) +{$MODE DELPHI} unit g_sound; interface @@ -68,7 +84,7 @@ procedure g_Sound_SetupAllVolumes(SoundVol, MusicVol: Byte); implementation uses - e_log, SysUtils, g_console, g_options, WADEDITOR, + e_log, SysUtils, g_console, g_options, wadreader, g_game, g_basic, g_items, g_map, Math, g_language; @@ -279,10 +295,8 @@ end; function g_Sound_CreateWAD(var ID: DWORD; Resource: string; isMusic: Boolean = False): Boolean; var - WAD: TWADEditor_1; - FileName, - SectionName, - ResourceName: string; + WAD: TWADFile; + FileName: string; SoundData: Pointer; ResLength: Integer; ok: Boolean; @@ -291,12 +305,12 @@ begin ok := False; // e_WriteLog('Loading sound: ' + Resource, MSG_NOTIFY); - g_ProcessResourceStr(Resource, FileName, SectionName, ResourceName); + FileName := g_ExtractWadName(Resource); - WAD := TWADEditor_1.Create(); + WAD := TWADFile.Create(); WAD.ReadFile(FileName); - if WAD.GetResource(SectionName, ResourceName, SoundData, ResLength) then + if WAD.GetResource(g_ExtractFilePathName(Resource), SoundData, ResLength) then begin if e_LoadSoundMem(SoundData, ResLength, ID, isMusic) then ok := True @@ -309,23 +323,23 @@ begin end; WAD.Free(); -{$IFNDEF HEADLESS} if (not ok) then begin +{$IFNDEF HEADLESS} if isMusic then e_WriteLog(Format('Error loading music %s', [Resource]), MSG_WARNING) else e_WriteLog(Format('Error loading sound %s', [Resource]), MSG_WARNING); Exit; - end; {$ENDIF} + end; Result := True; end; function g_Sound_CreateWADEx(SoundName: ShortString; Resource: string; isMusic: Boolean = False): Boolean; var - WAD: TWADEditor_1; - FileName, SectionName, ResourceName: string; + WAD: TWADFile; + FileName: string; SoundData: Pointer; ResLength: Integer; find_id: DWORD; @@ -335,14 +349,14 @@ begin ok := False; // e_WriteLog('Loading sound: ' + Resource, MSG_NOTIFY); - g_ProcessResourceStr(Resource, FileName, SectionName, ResourceName); + FileName := g_ExtractWadName(Resource); find_id := FindSound(); - WAD := TWADEditor_1.Create(); + WAD := TWADFile.Create(); WAD.ReadFile(FileName); - if WAD.GetResource(SectionName, ResourceName, SoundData, ResLength) then + if WAD.GetResource(g_ExtractFilePathName(Resource), SoundData, ResLength) then begin if e_LoadSoundMem(SoundData, ResLength, SoundArray[find_id].ID, isMusic) then begin @@ -359,16 +373,16 @@ begin end; WAD.Free(); -{$IFNDEF HEADLESS} if (not ok) then begin +{$IFNDEF HEADLESS} if isMusic then e_WriteLog(Format('Error loading music %s', [Resource]), MSG_WARNING) else e_WriteLog(Format('Error loading sound %s', [Resource]), MSG_WARNING); Exit; - end; {$ENDIF} + end; Result := True; end;