X-Git-Url: https://deadsoftware.ru/gitweb?p=d2df-editor.git;a=blobdiff_plain;f=src%2Feditor%2Ff_addresource_sound.pas;h=eaba574aa61e2d71e0f8621e5f3b0842d3442301;hp=a3d3fe15c415323c647e899b4f695c81f443f369;hb=4cd27745126226e5e57a02f4c2a44ccbab16bbac;hpb=dd6a8c0ae0c61fbd1d070e83b5d54c41edeb6df8 diff --git a/src/editor/f_addresource_sound.pas b/src/editor/f_addresource_sound.pas index a3d3fe1..eaba574 100644 --- a/src/editor/f_addresource_sound.pas +++ b/src/editor/f_addresource_sound.pas @@ -45,7 +45,7 @@ var implementation uses - BinEditor, WADEDITOR, e_log, f_main, g_language, g_resources + BinEditor, WADEDITOR, e_log, f_main, g_language {$IFNDEF NOSOUND}, fmod, fmodtypes, fmoderrors;{$ELSE};{$ENDIF} {$R *.lfm} @@ -121,6 +121,7 @@ end; function TAddSoundForm.CreateSoundWAD(Resource: String): Boolean; var + WAD: TWADEditor_1; FileName, SectionName, ResourceName: String; ResLength: Integer; sz: LongWord; @@ -138,9 +139,11 @@ begin {$IFNDEF NOSOUND} g_ProcessResourceStr(Resource, FileName, SectionName, ResourceName); - g_ReadResource(FileName, SectionName, ResourceName, SoundData, ResLength); - if SoundData <> nil then + WAD := TWADEditor_1.Create; + WAD.ReadFile(FileName); + + if WAD.GetResource(utf2win(SectionName), utf2win(ResourceName), SoundData, ResLength) then begin sz := SizeOf(FMOD_CREATESOUNDEXINFO); FillMemory(@soundExInfo, sz, 0); @@ -155,16 +158,19 @@ begin begin e_WriteLog(Format('Error creating sound %s', [Resource]), MSG_WARNING); e_WriteLog(FMOD_ErrorString(res), MSG_WARNING); + WAD.Free(); Exit; end; end else begin e_WriteLog(Format('Error loading sound %s', [Resource]), MSG_WARNING); - //e_WriteLog(Format('WAD Reader error: %s', [WAD.GetLastErrorStr]), MSG_WARNING); + e_WriteLog(Format('WAD Reader error: %s', [WAD.GetLastErrorStr]), MSG_WARNING); + WAD.Free(); Exit; end; + WAD.Free(); Result := True; {$ENDIF} end;