marineharrison
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору [Setup] AppName=S.T.A.L.K.E.R. - Серебряное Издание AppVerName=S.T.A.L.K.E.R. - Серебряное Издание AppPublisher=GSC Game World / ]^[@r!ne_I-I@rr!$0n DefaultDirName={pf}\S.T.A.L.K.E.R. - Серебряное Издание DefaultGroupName=S.T.A.L.K.E.R. - Серебряное Издание AppPublisherURL=http://www.stalker-game.ru/ AppSupportURL=http://www.stalker-game.ru/ AppUpdatesURL=http://www.stalker-game.ru/ AlwaysShowDirOnReadyPage=yes AlwaysShowGroupOnReadyPage=yes Compression=lzma/ultra DiskSpanning=yes DiskSliceSize=730000000 SlicesPerDisk=4 WizardImageFile=C:\Documents and Settings\Константин\Рабочий стол\1.bmp WizardSmallImageFile=C:\Documents and Settings\Константин\Рабочий стол\2.bmp SetupIconFile=C:\Documents and Settings\Константин\Рабочий стол\stalker.ico LicenseFile=C:\Documents and Settings\Константин\Рабочий стол\License.txt OutputDir=D:\Setup\ OutputBaseFilename=setup [Messages] BeveledLabel=S.T.A.L.K.E.R. - Серебряное Издание Installer created by ]^[@r!ne_I-I@rr!$0n [Languages] Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl" [Types] Name: "full-ru"; Description: "Полная русская установка" Name: "full-ua"; Description: "Полная украинская установка" Name: "custom"; Description: "Выборочная установка"; Flags: iscustom [Components] Name: "shoc"; Description: "S.T.A.L.K.E.R.: Тень Чернобыля"; Types: full-ru full-ua Name: "shoc\ru"; Description: "Русская локализация"; Types: full-ru; Flags: exclusive Name: "shoc\ua"; Description: "Украинская локализация"; Types: full-ua; Flags: exclusive Name: "cs"; Description: "S.T.A.L.K.E.R.: Чистое Небо"; Types: full-ru full-ua Name: "cs\ru"; Description: "Русская локализация"; Types: full-ru; Flags: exclusive Name: "cs\ua"; Description: "Украинская локализация"; Types: full-ua; Flags: exclusive [Tasks] Name: desktopicon; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked Name: quicklaunchicon; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked [Files] Source: "D:\innocallback.dll"; DestDir: {tmp}; Flags: dontcopy Source: "D:\isjpgtobmp.dll"; DestDir: {tmp}; Flags: dontcopy Source: "D:\walls\BackImage.jpg"; DestDir: "{tmp}"; Flags: dontcopy Source: "D:\walls\01.jpg"; DestDir: "{tmp}"; Flags: dontcopy Source: "D:\walls\02.jpg"; DestDir: "{tmp}"; Flags: dontcopy Source: "D:\walls\03.jpg"; DestDir: "{tmp}"; Flags: dontcopy Source: "D:\walls\04.jpg"; DestDir: "{tmp}"; Flags: dontcopy Source: "D:\walls\05.jpg"; DestDir: "{tmp}"; Flags: dontcopy Source: "D:\walls\06.jpg"; DestDir: "{tmp}"; Flags: dontcopy Source: "D:\walls\07.jpg"; DestDir: "{tmp}"; Flags: dontcopy Source: "D:\walls\08.jpg"; DestDir: "{tmp}"; Flags: dontcopy Source: "D:\walls\09.jpg"; DestDir: "{tmp}"; Flags: dontcopy Source: "D:\walls\10.jpg"; DestDir: "{tmp}"; Flags: dontcopy Source: "D:\walls\11.jpg"; DestDir: "{tmp}"; Flags: dontcopy Source: "D:\walls\12.jpg"; DestDir: "{tmp}"; Flags: dontcopy Source: "D:\walls\13.jpg"; DestDir: "{tmp}"; Flags: dontcopy Source: "D:\walls\14.jpg"; DestDir: "{tmp}"; Flags: dontcopy Source: "D:\walls\15.jpg"; DestDir: "{tmp}"; Flags: dontcopy Source: "D:\BASS.dll"; DestDir: "{tmp}"; Flags: dontcopy Source: "D:\MoozE_-_Sleeping_In_Ashes_v1.mp3"; DestDir: "{tmp}"; Flags: dontcopy [Icons] Name: "{group}\WEB сайт игры"; FileName: "{app}\gamesite.url" Name: "{group}\WEB сайт издателя"; FileName: "{app}\publisher.url" Name: "{group}\Просмотреть ReadMe.txt"; FileName: "{app}\ReadMe.txt" Name: "{group}\Руководство пользователя"; FileName: "{app}\StalkerUserManual.pdf" Name: "{group}\Удалить игру"; FileName: "{uninstallexe}"; IconFilename: "{app}\uninstall.ico" Name: "{group}\Чистое Небо"; FileName: "{app}\CS\bin\xrEngine.exe"; WorkingDir: "{app}\CS"; IconFilename: "{app}\stalker_cs.ico"; Comment: "{app}\CS"; Components: cs Name: "{commondesktop}\S.T.A.L.K.E.R. - Чистое Небо"; FileName: "{app}\CS\bin\xrEngine.exe"; WorkingDir: "{app}\CS"; IconFilename: "{app}\stalker_cs.ico"; Components: cs; Tasks: desktopicon Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\S.T.A.L.K.E.R. - Чистое Небо"; FileName: "{app}\CS\bin\xrEngine.exe"; WorkingDir: "{app}\CS"; IconFilename: "{app}\stalker_cs.ico"; Components: cs; Tasks: quicklaunchicon Name: "{group}\Тень Чернобыля"; FileName: "{app}\SHOC\bin\XR_3DA.exe"; WorkingDir: "{app}\SHOC"; IconFilename: "{app}\stalker.ico"; Comment: "{app}\SHOC"; Components: shoc Name: "{commondesktop}\S.T.A.L.K.E.R. - Тень Чернобыля"; FileName: "{app}\SHOC\bin\XR_3DA.exe"; WorkingDir: "{app}\SHOC"; IconFilename: "{app}\stalker.ico"; Components: shoc; Tasks: desktopicon Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\S.T.A.L.K.E.R. - Тень Чернобыля"; FileName: "{app}\SHOC\bin\XR_3DA.exe"; WorkingDir: "{app}\SHOC"; IconFilename: "{app}\stalker.ico"; Components: shoc; Tasks: quicklaunchicon [Registry] Root: HKLM; Subkey: "Software\GSC Game World"; Flags: uninsdeletekeyifempty Root: HKLM; Subkey: "Software\GSC Game World\STALKER-SILVERED"; Flags: uninsdeletekey Root: HKLM; Subkey: "Software\GSC Game World\STALKER-SILVERED"; ValueType: string; ValueName: "UnInstConfirm"; ValueData: "Удалить сохраненные игры и профили?" Root: HKLM; Subkey: "Software\GSC Game World\STALKER-STCS"; Components: cs; Flags: uninsdeletekey Root: HKLM; Subkey: "Software\GSC Game World\STALKER-STCS"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}\CS"; Components: cs Root: HKLM; Subkey: "Software\GSC Game World\STALKER-STCS"; ValueType: string; ValueName: "InstallLang"; ValueData: "{language}"; Components: cs Root: HKLM; Subkey: "Software\GSC Game World\STALKER-STCS"; ValueType: string; ValueName: "InstallSource"; ValueData: "stkcs-rus-pack-r"; Components: cs Root: HKLM; Subkey: "Software\GSC Game World\STALKER-STCS"; ValueType: string; ValueName: "InstallVers"; ValueData: "1.0010"; Components: cs Root: HKLM; Subkey: "Software\GSC Game World\STALKER-STCS"; ValueType: string; ValueName: "InstallCDKEY"; ValueData: "5UU7-4XP9-544S-P35X"; Components: cs Root: HKLM; Subkey: "Software\GSC Game World\STALKER-STCS"; ValueType: string; ValueName: "InstallUserName"; Components: cs Root: HKLM; Subkey: "Software\GSC Game World\STALKER-STCS"; ValueType: dword; ValueName: "InstallPatchID"; ValueData: $00000594; Components: cs Root: HKLM; Subkey: "Software\GSC Game World\STALKER-SHOC"; Components: shoc; Flags: uninsdeletekey Root: HKLM; Subkey: "Software\GSC Game World\STALKER-SHOC"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}\SHOC"; Components: shoc Root: HKLM; Subkey: "Software\GSC Game World\STALKER-SHOC"; ValueType: string; ValueName: "InstallLang"; ValueData: "{language}"; Components: shoc Root: HKLM; Subkey: "Software\GSC Game World\STALKER-SHOC"; ValueType: string; ValueName: "InstallSource"; ValueData: "stk-rus-pack-starforce-keydisk-r"; Components: shoc Root: HKLM; Subkey: "Software\GSC Game World\STALKER-SHOC"; ValueType: string; ValueName: "InstallVers"; ValueData: "1.0006"; Components: shoc Root: HKLM; Subkey: "Software\GSC Game World\STALKER-SHOC"; ValueType: string; ValueName: "InstallCDKEY"; ValueData: "6TDU-HT8G-Z4PK-SGFC"; Components: shoc Root: HKLM; Subkey: "Software\GSC Game World\STALKER-SHOC"; ValueType: string; ValueName: "InstallUserName"; Components: shoc Root: HKLM; Subkey: "Software\GSC Game World\STALKER-SHOC"; ValueType: dword; ValueName: "InstallPatchID"; ValueData: $54C; Components: shoc Root: HKLM; Subkey: "Software\GSC Game World\STALKER-SHOC"; ValueType: dword; ValueName: "BonusPack1"; ValueData: $0; Components: shoc Root: HKLM; Subkey: "Software\GSC Game World\STALKER-SHOC"; ValueType: dword; ValueName: "BonusPack2"; ValueData: $0; Components: shoc [Code] const BASS_SAMPLE_LOOP = 4; //повторение NeedSize = 11; DRIVE_UNKNOWN = 0; DRIVE_NO_ROOT_DIR = 1; DRIVE_REMOVEABLE = 2; DRIVE_FIXED = 3; DRIVE_REMOTE = 4; DRIVE_CDROM = 5; DRIVE_RAMDISK = 6; type HSTREAM = DWORD; //тип звукового потока TProc=procedure(HandleW, msg, idEvent, TimeSys: LongWord); var ListBox: TListBox; BackImage: TBitmapImage; TimerID: LongWord; CurrentPicture,res:integer; PicList: TStringlist; path,Pics: string; function WrapTimerProc(callback:TProc; paramcount:integer):longword; external 'wrapcallback@files:innocallback.dll stdcall'; function SetTimer(hWnd: LongWord; nIDEvent, uElapse: LongWord; lpTimerFunc: LongWord): LongWord; external 'SetTimer@user32.dll stdcall'; function KillTimer(hWnd: LongWord; nIDEvent: LongWord): LongWord; external 'KillTimer@user32.dll stdcall'; function GetSystemMetrics(nIndex:Integer):Integer; external 'GetSystemMetrics@user32.dll stdcall'; procedure convertjpgtobmp(p: String); external 'convertjpgtobmp@files:isjpgtobmp.dll stdcall'; function BASS_Init(device: Integer; freq, flags: DWORD; win: hwnd; CLSID: Integer): Boolean; external 'BASS_Init@files:BASS.dll stdcall delayload'; function BASS_StreamCreateFile(mem: BOOL; f: PChar; offset: DWORD; length: DWORD; flags: DWORD): HSTREAM; external 'BASS_StreamCreateFile@files:BASS.dll stdcall delayload'; function BASS_Start(): Boolean; external 'BASS_Start@files:BASS.dll stdcall delayload'; function BASS_ChannelPlay(handle: DWORD; restart: BOOL): Boolean; external 'BASS_ChannelPlay@files:BASS.dll stdcall delayload'; function BASS_Stop(): Boolean; external 'BASS_Stop@files:BASS.dll stdcall delayload'; function BASS_Free(): Boolean; external 'BASS_Free@files:BASS.dll stdcall delayload'; function GetLogicalDrives: DWORD; external 'GetLogicalDrives@kernel32.dll stdcall'; function GetDriveType(nDrive: string): Longint; external 'GetDriveTypeA@kernel32.dll stdcall'; procedure OnTimer(HandleW, msg, idEvent, TimeSys: LongWord); var Pic: integer; d:double; begin d:=WizardForm.ProgressGauge.Max / ( piclist.Count ); Pic:= round( WizardForm.ProgressGauge.Position / d); if( Pic <> CurrentPicture ) then begin CurrentPicture := Pic; try BackImage.Bitmap.LoadFromFile(piclist.strings[CurrentPicture - 1]) except end; end; end; procedure ListBoxOnClick(Sender: TObject); var NewLetter, OldString: string; i: Integer; begin for i := 0 to ListBox.Items.Count - 1 do begin if ListBox.Selected[i] then begin NewLetter := Copy(ListBox.Items[i], 0, 1); OldString := Copy(WizardForm.DirEdit.Text, 2, Length(WizardForm.DirEdit.Text)); WizardForm.DirEdit.Text := NewLetter + OldString; end; end; end; procedure InitializeWizard(); var pfunc: LongWord; Name1: string; i: Integer; Text: TNewStaticText; Path: string; FreeMB, TotalMB: Cardinal; drives: DWORD; begin pfunc:=WrapTimerProc(@OnTimer, 4) TimerID:=SetTimer(0, 0, 200, pfunc) PicList:=tstringlist.Create; WizardForm.Position:=poScreenCenter WizardForm.CancelButton.BringToFront; MainForm.BORDERSTYLE:=bsNone MainForm.Left:=0 MainForm.Top:=0 MainForm.Width:=GetSystemMetrics(0) MainForm.Height:=GetSystemMetrics(1) ExtractTemporaryFile('BackImage.jpg') pics:=ExpandConstant('{tmp}')+'\BackImage.jpg '; convertjpgtobmp(pics); BackImage:=TBitmapImage.Create(MainForm) BackImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}')+'\BackImage.bmp ') BackImage.Align:=alClient BackImage.Parent:=MainForm BackImage.Stretch:=True MainForm.Visible:=True path:=ExpandConstant('{tmp}'); ExtractTemporaryFile('01.jpg') ExtractTemporaryFile('02.jpg') ExtractTemporaryFile('03.jpg') ExtractTemporaryFile('04.jpg') ExtractTemporaryFile('05.jpg') ExtractTemporaryFile('06.jpg') ExtractTemporaryFile('07.jpg') ExtractTemporaryFile('08.jpg') ExtractTemporaryFile('09.jpg') ExtractTemporaryFile('10.jpg') ExtractTemporaryFile('11.jpg') ExtractTemporaryFile('12.jpg') ExtractTemporaryFile('13.jpg') ExtractTemporaryFile('14.jpg') ExtractTemporaryFile('15.jpg') piclist.add(path + '\01.bmp'); piclist.add(path + '\02.bmp'); piclist.add(path + '\03.bmp'); piclist.add(path + '\04.bmp'); piclist.add(path + '\05.bmp'); piclist.add(path + '\06.bmp'); piclist.add(path + '\07.bmp'); piclist.add(path + '\08.bmp'); piclist.add(path + '\09.bmp'); piclist.add(path + '\10.bmp'); piclist.add(path + '\11.bmp'); piclist.add(path + '\12.bmp'); piclist.add(path + '\13.bmp'); piclist.add(path + '\14.bmp'); piclist.add(path + '\15.bmp'); pics:=path+'\01.jpg'; convertjpgtobmp(pics); pics:=path+'\02.jpg'; convertjpgtobmp(pics); pics:=path+'\03.jpg'; convertjpgtobmp(pics); pics:=path+'\04.jpg'; convertjpgtobmp(pics); pics:=path+'\05.jpg'; convertjpgtobmp(pics); pics:=path+'\06.jpg'; convertjpgtobmp(pics); pics:=path+'\07.jpg'; convertjpgtobmp(pics); pics:=path+'\08.jpg'; convertjpgtobmp(pics); pics:=path+'\09.jpg'; convertjpgtobmp(pics); pics:=path+'\10.jpg'; convertjpgtobmp(pics); pics:=path+'\11.jpg'; convertjpgtobmp(pics); pics:=path+'\12.jpg'; convertjpgtobmp(pics); pics:=path+'\13.jpg'; convertjpgtobmp(pics); pics:=path+'\14.jpg'; convertjpgtobmp(pics); pics:=path+'\15.jpg'; convertjpgtobmp(pics); begin ExtractTemporaryFile('BASS.dll'); ExtractTemporaryFile('MoozE_-_Sleeping_In_Ashes_v1.mp3'); if BASS_Init(-1, 44100, 0, 0, 0) then begin BASS_Start(); Name1:=ExpandConstant('{tmp}\MoozE_-_Sleeping_In_Ashes_v1.mp3'); i:=BASS_StreamCreateFile(FALSE, PChar(Name1), 0, 0, 4); if i <> 0 then begin BASS_ChannelPlay(i, True); begin Text := TNewStaticText.Create(WizardForm); Text.Top := 102; Text.Width := 205; Text.Height := 14; Text.Caption := 'Список жестких дисков и свободного места'; Text.Parent := WizardForm.SelectDirPage; ListBox := TListBox.Create(WizardForm); ListBox.Top := 120; ListBox.Width := 205; ListBox.Height := ScaleY(90); ListBox.Parent := WizardForm.SelectDirPage; ListBox.OnClick := @ListBoxOnClick; ListBox.Font.Name := 'Courier New'; ListBox.Font.Size := 10; ListBox.Font.Style := [fsBold]; ListBox.Color := clBtnFace; drives := GetLogicalDrives(); for i := 0 to 31 do begin if (drives and (1 shl i)) > 0 then begin Path := chr(ord('A') + i) + ':\'; if GetDriveType(Path) = DRIVE_FIXED then begin GetSpaceOnDisk(Path, True, FreeMB, TotalMB); if FreeMB>1024 then ListBox.Items.Add(Path + ' ' + IntToStr(round(FreeMB / TotalMB * 100)) + '% ' + floatToStr(round(FreeMB/1024*100)/100) + ' GB') else ListBox.Items.Add(Path + ' ' + IntToStr(round(FreeMB / TotalMB * 100)) + '% ' + IntToStr(FreeMB) + ' MB'); end; end; end; end; end; end; end; end; procedure CurPageChanged(CurPageID: Integer); begin If CurPageID=wpInstalling then begin WizardForm.MainPanel.Visible:=False; WizardForm.Bevel1.Visible:=False; WizardForm.Width:=ScaleX(395); WizardForm.Height:=ScaleY(142); WizardForm.Position:=poScreenCenter; WizardForm.Top:=ScaleY(MainForm.Height-170); WizardForm.InnerNotebook.Left:=ScaleX(10); WizardForm.InnerNotebook.Top:=ScaleY(10); WizardForm.InnerNotebook.Width:=ScaleX(370); WizardForm.StatusLabel.Left:=ScaleX(0); WizardForm.StatusLabel.Top:=ScaleY(0); WizardForm.StatusLabel.Width:=WizardForm.InnerNotebook.Width; WizardForm.FileNameLabel.Left:=ScaleX(0); WizardForm.FileNameLabel.Top:=ScaleY(20); WizardForm.FileNameLabel.Width:=WizardForm.InnerNotebook.Width; WizardForm.ProgressGauge.Top:=ScaleY(40); WizardForm.ProgressGauge.Width:=WizardForm.InnerNotebook.Width; WizardForm.CancelButton.Left:=ScaleX(154); WizardForm.CancelButton.Top:=ScaleY(80); end if CurPageID=wpFinished then begin WizardForm.Visible:=False; WizardForm.Width:=502; WizardForm.Height:=392; WizardForm.Left:=(MainForm.Width-WizardForm.Width) div 2; WizardForm.Top:=(MainForm.Height-WizardForm.Height) div 2; WizardForm.Visible:=True; BackImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}')+'\BackImage.bmp') end end; function NextButtonClick(CurPageID: Integer): Boolean; var Path,s,z: String; FreeMB, TotalMB: Cardinal; begin Result:= True; if CurPageID = wpSelectDir then begin Path:= ExtractFileDrive(WizardForm.DirEdit.Text); GetSpaceOnDisk(Path, True, FreeMB, TotalMB); if FreeMB < (NeedSize*1024) then begin if FreeMB>1024 then begin s:='Для установки приложения необходимо '+ IntTostr(NeedSize)+ ' GB,'#13+'а на выбранном Вами диске доступно только '+ floatToStr(round(FreeMB/1024*100)/100) + ' GB!' end else s:='Для установки приложения необходимо '+ IntTostr(NeedSize)+ ' GB,'#13+'а на выбранном Вами диске доступно только '+ + IntToStr(FreeMB)+' MB'; MsgBox(s, mbCriticalError, MB_OK) Result := False; end; end; end; procedure CurStepChanged(CurStep: TSetupStep); var SHOC: String; CS: String; FSGAME_ARRAY: TArrayOfString; begin If CurStep=ssPostInstall then begin SHOC := ExpandConstant('{commondocs}\STALKER-SHOC\'); StringChangeEx(SHOC, ':\', ':\|', True); FSGAME_ARRAY := ['$app_data_root$=true|false|' + SHOC, '$game_data$ = false| true| $fs_root$| gamedata\', '$game_ai$ = true| false| $game_data$| ai\', '$game_spawn$ = true| false| $game_data$| spawns\', '$game_anims$ = true| true| $game_data$| anims\', '$game_levels$ = true| false| $game_data$| levels\', '$game_meshes$ = true| true| $game_data$| meshes\', '$game_dm$ = true| true| $game_data$| meshes\', '$game_shaders$ = true| true| $game_data$| shaders\', '$game_sounds$ = true| true| $game_data$| sounds\', '$game_textures$ = true| true| $game_data$| textures\', '$game_scripts$ = true| false| $game_data$| scripts\', '$game_config$ = true| false| $game_data$| config\', '$level$ = false| false| $game_levels$', '$game_saves$ = true| false| $app_data_root$| savedgames\', '$logs$ = true| false| $app_data_root$| logs\', '$screenshots$ = true| false| $app_data_root$| screenshots\']; SaveStringsToFile(ExpandConstant('{app}')+'\SHOC\fsgame.ltx',FSGAME_ARRAY, False); CS := ExpandConstant('{commondocs}\STALKER-STCS\'); StringChangeEx(CS, ':\', ':\|', True); FSGAME_ARRAY := ['$app_data_root$=true|false|' + CS, ';abbreviation = recurs|notif| root| add| ext| description', '$arch_dir$ = false| false| $fs_root$', '$game_arch_mp$ = false| false| $fs_root$| mp\', '$arch_dir_levels$ = false| false| $fs_root$| levels\', '$arch_dir_resources$ = false| false| $fs_root$| resources\', '$arch_dir_localization$ = false| false| $fs_root$| localization\', '$arch_dir_patches$ = false| true| $fs_root$| patches\', '$game_data$ = false| true| $fs_root$| gamedata\', '$game_ai$ = true| false| $game_data$| ai\', '$game_spawn$ = true| false| $game_data$| spawns\', '$game_levels$ = true| false| $game_data$| levels\', '$game_meshes$ = true| true| $game_data$| meshes\| *.ogf;*.omf| Game Object files', '$game_anims$ = true| true| $game_data$| anims\| *.anm;*.anms| Animation files', '$game_dm$ = true| true| $game_data$| meshes\| *.dm| Detail Model files', '$game_shaders$ = true| true| $game_data$| shaders\', '$game_sounds$ = true| true| $game_data$| sounds\', '$game_textures$ = true| true| $game_data$| textures\', '$game_config$ = true| false| $game_data$| configs\', '$game_weathers$ = true| false| $game_config$| environment\weathers', '$game_weather_effects$ = true| false| $game_config$| environment\weather_effects', '$textures$ = true| true| $game_data$| textures\', '$level$ = false| false| $game_levels$', '$game_scripts$ = true| false| $game_data$| scripts\| *.script| Game script files', '$logs$ = true| false| $app_data_root$| logs\', '$screenshots$ = true| false| $app_data_root$| screenshots\', '$game_saves$ = true| false| $app_data_root$| savedgames\', '$downloads$ = false| false| $app_data_root$']; SaveStringsToFile(ExpandConstant('{app}')+'\CS\fsgame.ltx',FSGAME_ARRAY, False); end; end; procedure DeinitializeSetup(); begin KillTimer(0, TimerID) begin BASS_Stop(); //нужно для остановки проигрывания BASS_Free(); //нужно для быстрой выгрузки библиотеки вместе с муз. файлом end; end; |