X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Feditor%2Ff_addresource_sound.pas;h=eaba574aa61e2d71e0f8621e5f3b0842d3442301;hb=029af8474e551ee355f74aa3cbf87c8816d98230;hp=c6406d0769f032f19fa96621a193538f9106a6a0;hpb=6fb9c23afad22a71679525dc44ea32675d73609f;p=d2df-editor.git diff --git a/src/editor/f_addresource_sound.pas b/src/editor/f_addresource_sound.pas index c6406d0..eaba574 100644 --- a/src/editor/f_addresource_sound.pas +++ b/src/editor/f_addresource_sound.pas @@ -30,8 +30,10 @@ type private FSpectrum: TMiniSpectrum; FSetResource: String; + FSoundEnabled: Boolean; procedure ShowSpectrum(); + function CreateSoundWAD(Resource: String): Boolean; public property SetResource: String read FSetResource write FSetResource; @@ -77,6 +79,7 @@ begin Inherited; res := FMOD_OK; + FSoundEnabled := False; {$IFNDEF NOSOUND} try @@ -104,9 +107,9 @@ begin if res <> FMOD_OK then raise Exception.Create('FMOD_System_Init failed!'); + FSoundEnabled := True; except - Application.MessageBox(FMOD_ErrorString(res), 'Initialization', MB_OK or MB_ICONHAND); - raise; + Application.MessageBox(PChar('Sound was disabled. Reason: ' + FMOD_ErrorString(res)), 'FMOD Error', MB_OK or MB_ICONWARNING); end; {$ENDIF} @@ -116,7 +119,7 @@ begin FSpectrum.Style := ssBlock; end; -function CreateSoundWAD(Resource: String): Boolean; +function TAddSoundForm.CreateSoundWAD(Resource: String): Boolean; var WAD: TWADEditor_1; FileName, SectionName, ResourceName: String; @@ -130,6 +133,10 @@ begin SoundData := nil; Sound := nil; Channel := nil; + + if FSoundEnabled = False then + Exit; + {$IFNDEF NOSOUND} g_ProcessResourceStr(Resource, FileName, SectionName, ResourceName); @@ -180,15 +187,19 @@ begin if Playing then bbStop.Click(); + if FSoundEnabled = False then + Exit; + if not CreateSoundWAD(FFullResourceName) then Exit; + {$IFNDEF NOSOUND} res := FMOD_System_PlaySound(F_System, FMOD_CHANNEL_FREE, Sound, False, Channel); if res <> FMOD_OK then begin Application.MessageBox(FMOD_ErrorString(res), - PChar(_lc[I_MSG_SOUND_ERROR]), + PChar(MsgMsgSoundError), MB_OK or MB_ICONHAND); Exit; end; @@ -215,6 +226,10 @@ var begin Inherited; + + if FSoundEnabled = False then + Exit; + {$IFNDEF NOSOUND} FMOD_System_Update(F_System); @@ -234,6 +249,10 @@ begin Inherited; FSpectrum.Free; + + if FSoundEnabled = False then + Exit; + {$IFNDEF NOSOUND} res := FMOD_System_Close(F_System); if res <> FMOD_OK then @@ -305,7 +324,7 @@ begin g_ProcessResourceStr(FSetResource, FileName, SectionName, ResourceName); if FileName = '' then - FileName := _lc[I_WAD_SPECIAL_MAP]; + FileName := MsgWadSpecialMap; if SectionName = '' then SectionName := '..';