arcanum 2560x1440 ; Script generated by the Inno Setup Script Wizard. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! #define MyAppName "Arcanum HD Cinematics PL" #define MyAppVersion "2.0" #define MyAppPublisher "Eselter" #define BeveledLabel "by Eselter" #define SourceDir "SourceDir\Spolszczenie filmów" arcanum 2560x1440 How to dowload it? arcanum 2560x1440 #define MyAppExeName "Arcanum.exe" #define FileName800x600 "Arcanum_HD_Cinematics_800x600.7z" #define FileNamePrev800x600 "Arcanum_HD_Cinematics_800x600.1.7z" #define FileUrl800x600 "https://www.moddb.com/downloads/start/281270" #define FileHash800x600 "eb32385df88f52012f640a3733fd4b41316f23cf00b24f6c0ce80a3d933eef3a" #define FileName1280x720 "Arcanum_HD_Cinematics_1280x720.7z" #define FileUrl1280x720 "https://www.moddb.com/downloads/start/281316" #define FileHash1280x720 "d62aba92467876f57ac81dd70d8cd99df2ec2ee3e9ebe51409ef36ffb6423387" arcanum 2560x1440 PasteShr arcanum 2560x1440 #define FileName1920x1080 "Arcanum_HD_Cinematics_1920x1080.7z" #define FileUrl1920x1080 "https://www.moddb.com/downloads/start/281317" #define FileHash1920x1080 "b5a79f9cc817ce08f76858a7ef9f87c8f90712f5cf605567d9668ce85b663b5b" #define FileName2560x1440 "Arcanum_HD_Cinematics_2560x1440.7z" #define FileUrl2560x1440 "https://www.moddb.com/downloads/start/281334" #define FileHash2560x1440 "149f3302ef77c46a7a5e5237b3c4c31b907c58b486a175d4af8859108e561c0e" #define FileName3840x2160 "Arcanum_HD_Cinematics_3840x2160.7z" arcanum 2560x1440 How to use it? arcanum 2560x1440 #define FileUrl3840x2160 "https://www.moddb.com/downloads/start/281335" #define FileHash3840x2160 "e4f7d76ad0fe0e8514f3aa83bce945a97830a059ff6f35df6a8d2f372e5b093d" [Setup] AppId=ArcanumHDCinematicsPL AppName={#MyAppName} VersionInfoDescription={#MyAppName} VersionInfoOriginalFileName=Arcanum_HD_Cinematics_PL.exe VersionInfoCopyright={#MyAppPublisher} VersionInfoVersion=2.0.0.0 arcanum 2560x1440 How to get it? arcanum 2560x1440 AppVersion={#MyAppVersion} AppVerName={#MyAppName} AppPublisher={#MyAppPublisher} DefaultDirName={code:GetInstallationPath} AppendDefaultDirName=no AllowNoIcons=yes DisableProgramGroupPage=yes OutputBaseFilename=Arcanum_HD_Cinematics_PL SetupIconFile=icon.ico Compression=lzma2/ultra64 arcanum 2560x1440 How to dowload it? arcanum 2560x1440 InternalCompressLevel=ultra64 LZMANumFastBytes=273 LZMADictionarySize=90112 LZMAUseSeparateProcess=yes SolidCompression=yes DiskSpanning=no UsePreviousLanguage=yes UsePreviousAppDir=yes Uninstallable=yes UninstallDisplayIcon={app}\{#MyAppExeName} arcanum 2560x1440 How to dowload it? arcanum 2560x1440 DisableDirPage=no DirExistsWarning=no WizardStyle=classic WizardResizable=no WizardSmallImageFile=55x55.bmp WizardImageFile=164x314.bmp InfoBeforeFile=InfoBeforeFile.rtf ShowComponentSizes=no [Languages] arcanum 2560x1440 How to get it for free? arcanum 2560x1440 Name: "polish"; MessagesFile: "compiler:Languages\Polish.isl" ;Name: "english"; MessagesFile: "compiler:Default.isl" [Messages] BeveledLabel={#BeveledLabel} [CustomMessages] polish.GameFolderName=Gry polish.LaunchProgram=Uruchom %1 polish.Open=Otwórz %1 arcanum 2560x1440 How to get it? arcanum 2560x1440 polish.MainDesc=Polskie napisy dla HD Cinematics polish.ToDownload=do pobrania polish.DeleteIntroDesc=Usuń zremasterowane intro (w przypadu gdy HighRes patch Logos = 1) polish.ExtractingArchive=Dekompresja archiwum polish.DownloadErrorMsg=Nie udało się pobrać pliku:%n%1%nNależy go pobrać ręcznie ze strony moddb.com i umieścić w tym samym folderze co instalator.%n%n polish.DownloadingTmpFileMsg=wydobywanie linku do pliku polish.Downloaded=Pobrano polish.of=z arcanum 2560x1440 How to dowload it? arcanum 2560x1440 polish.HashCalc=Pobieranie ukończone. Trwa sprawdzanie sumy kontrolnej. [Types] Name: "custom"; Description: Standardowa; Flags: iscustom [Components] Name: "main"; Description: {cm:MainDesc}; Flags: fixed; Types: custom Name: "movies"; Description: HD Cinematics: arcanum 2560x1440 How to get it? arcanum 2560x1440 Name: "movies\800x600"; Description: " 800x600"; Check: FileExists(ExpandConstant('{src}\{#FileName800x600}')) or FileExists(ExpandConstant('{src}\{#FileNamePrev800x600}')); Types: custom; ExtraDiskSpaceRequired: 339881984; Flags: exclusive disablenouninstallwarning Name: "movies\no800x600"; Description: " 800x600 - {cm:ToDownload} 319 MB ({#FileName800x600})"; Check: not FileExists(ExpandConstant('{src}\{#FileName800x600}')) and not FileExists(ExpandConstant('{src}\{#FileNamePrev800x600}')); ExtraDiskSpaceRequired: 674304000; Flags: exclusive disablenouninstallwarning Name: "movies\1280x720"; Description: " 1280x720"; Check: FileExists(ExpandConstant('{src}\{#FileName1280x720}')); Types: custom; ExtraDiskSpaceRequired: 795213824; Flags: exclusive disablenouninstallwarning Name: "movies\no1280x720"; Description: " 1280x720 - {cm:ToDownload} 744 MB ({#FileName1280x720})"; Check: not FileExists(ExpandConstant('{src}\{#FileName1280x720}')); ExtraDiskSpaceRequired: 1574879232; Flags: exclusive disablenouninstallwarning Name: "movies\1920x1080"; Description: "1920x1080"; Check: FileExists(ExpandConstant('{src}\{#FileName1920x1080}')); Types: custom; ExtraDiskSpaceRequired: 1334407168; Flags: exclusive disablenouninstallwarning Name: "movies\no1920x1080"; Description: "1920x1080 - {cm:ToDownload} 1,21 GB ({#FileName1920x1080})"; Check: not FileExists(ExpandConstant('{src}\{#FileName1920x1080}')); ExtraDiskSpaceRequired: 2633424896; Flags: exclusive disablenouninstallwarning Name: "movies\2560x1440"; Description: "2560x1440"; Check: FileExists(ExpandConstant('{src}\{#FileName2560x1440}')); Types: custom; ExtraDiskSpaceRequired: 2366590976; Flags: exclusive disablenouninstallwarning arcanum 2560x1440 PasteShr arcanum 2560x1440 Name: "movies\no2560x1440"; Description: "2560x1440 - {cm:ToDownload} 2,14 GB ({#FileName2560x1440})"; Check: not FileExists(ExpandConstant('{src}\{#FileName2560x1440}')); ExtraDiskSpaceRequired: 4664193024; Flags: exclusive disablenouninstallwarning Name: "movies\3840x2160"; Description: "3840x2160"; Check: FileExists(ExpandConstant('{src}\{#FileName3840x2160}')); Types: custom; ExtraDiskSpaceRequired: 5280428032; Flags: exclusive disablenouninstallwarning Name: "movies\no3840x2160"; Description: "3840x2160 - {cm:ToDownload} 4,69 GB ({#FileName3840x2160})"; Check: not FileExists(ExpandConstant('{src}\{#FileName3840x2160}')); ExtraDiskSpaceRequired: 10318835712; Flags: exclusive disablenouninstallwarning Name: "movies\deleteintro"; Description: "{cm:DeleteIntroDesc}"; Flags: disablenouninstallwarning [Files] Source: "{#SourceDir}\regular\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs overwritereadonly sortfilesbyextension sortfilesbyname; Components: "main" Source: "{#SourceDir}\binkw32.dll"; DestDir: "{app}\BikMod\original_bink_library\"; Flags: uninsneveruninstall overwritereadonly sortfilesbyextension sortfilesbyname; Components: "main" arcanum 2560x1440 PasteShr arcanum 2560x1440 Source: "{app}\modules\Arcanum\movies\00069.bik"; DestDir: "{app}\BikMod\backup\"; Flags: uninsneveruninstall overwritereadonly external onlyifdoesntexist skipifsourcedoesntexist; Components: "movies" Source: "{app}\modules\Arcanum\movies\01138.bik"; DestDir: "{app}\BikMod\backup\"; Flags: uninsneveruninstall overwritereadonly external onlyifdoesntexist skipifsourcedoesntexist; Components: "movies" Source: "{app}\modules\Arcanum\movies\02112.bik"; DestDir: "{app}\BikMod\backup\"; Flags: uninsneveruninstall overwritereadonly external onlyifdoesntexist skipifsourcedoesntexist; Components: "movies" Source: "{app}\modules\Arcanum\movies\50000.bik"; DestDir: "{app}\BikMod\backup\"; Flags: uninsneveruninstall overwritereadonly external onlyifdoesntexist skipifsourcedoesntexist; Components: "movies" Source: "{app}\modules\Arcanum\movies\51169.bik"; DestDir: "{app}\BikMod\backup\"; Flags: uninsneveruninstall overwritereadonly external onlyifdoesntexist skipifsourcedoesntexist; Components: "movies" Source: "{app}\modules\Arcanum\movies\91568.bik"; DestDir: "{app}\BikMod\backup\"; Flags: uninsneveruninstall overwritereadonly external onlyifdoesntexist skipifsourcedoesntexist; Components: "movies" Source: "{app}\modules\Arcanum\movies\A0021.bik"; DestDir: "{app}\BikMod\backup\"; Flags: uninsneveruninstall overwritereadonly external onlyifdoesntexist skipifsourcedoesntexist; Components: "movies" Source: "{app}\modules\Arcanum\movies\G0021.bik"; DestDir: "{app}\BikMod\backup\"; Flags: uninsneveruninstall overwritereadonly external onlyifdoesntexist skipifsourcedoesntexist; Components: "movies" arcanum 2560x1440 How to get it? arcanum 2560x1440 Source: "{app}\data\scr\01093KanHuamovie.scr"; DestDir: "{app}\BikMod\backup\"; Flags: uninsneveruninstall overwritereadonly external skipifsourcedoesntexist onlyifdoesntexist; Components: "movies"; AfterInstall: DeleteAfterInstall('{app}\data\scr\01093KanHuamovie.scr') Source: "{app}\modules\Arcanum\movies\movies.mes"; DestDir: "{app}\BikMod\backup\"; Flags: uninsneveruninstall overwritereadonly external onlyifdoesntexist; Components: "movies"; Check: FileExists(ExpandConstant('{app}\modules\Arcanum\movies\02112b.bik')) Source: "{#SourceDir}\movies.mes"; DestDir: "{app}\modules\Arcanum\movies\"; Flags: overwritereadonly sortfilesbyextension sortfilesbyname; Components: "movies"; Check: FileExists(ExpandConstant('{app}\modules\Arcanum\movies\02112b.bik')) Source: "{app}\modules\Arcanum\movies\02112b.bik"; DestDir: "{app}\BikMod\backup\"; Flags: uninsneveruninstall overwritereadonly external skipifsourcedoesntexist onlyifdoesntexist; Components: "movies"; AfterInstall: DeleteAfterInstall('{app}\modules\Arcanum\movies\02112b.bik') [Run] Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,Arcanum}"; Flags: nowait postinstall unchecked skipifsilent [UninstallDelete] arcanum 2560x1440 How to get it? arcanum 2560x1440 Type: files; Name: "{app}\BikMod\binkw32.log" Type: files; Name: "{app}\Data\movies\SierraLogo.bik"; Components: "movies" Type: files; Name: "{app}\Data\movies\TroikaLogo.bik"; Components: "movies" Type: files; Name: "{app}\Modules\Arcanum\Movies\00069.bik"; Components: "movies" Type: files; Name: "{app}\Modules\Arcanum\Movies\01138.bik"; Components: "movies" Type: files; Name: "{app}\Modules\Arcanum\Movies\02112.bik"; Components: "movies" Type: files; Name: "{app}\Modules\Arcanum\Movies\50000.bik"; Components: "movies" Type: files; Name: "{app}\Modules\Arcanum\Movies\51169.bik"; Components: "movies" Type: files; Name: "{app}\Modules\Arcanum\Movies\91568.bik"; Components: "movies" arcanum 2560x1440 How to use it? arcanum 2560x1440 Type: files; Name: "{app}\Modules\Arcanum\Movies\A0021.bik"; Components: "movies" Type: files; Name: "{app}\Modules\Arcanum\Movies\G0021.bik"; Components: "movies" [Code] procedure CurPageChanged(CurPageID: Integer); var HighResConfig: TArrayOfString; I, II, HighResHeightInt: Integer; HighResHeight: String; begin arcanum 2560x1440 How to get it? arcanum 2560x1440 if CurPageID = wpSelectComponents then begin WizardForm.ComponentsList.ItemIndex := -1; if LoadStringsFromLockedFile(ExpandConstant('{app}\HighRes\config.ini'), HighResConfig) then begin for I := 0 to GetArrayLength(HighResConfig)-1 do begin if Pos('Height', HighResConfig[I]) > 0 and Pos('=', HighResConfig[I]) then begin Delete(HighResConfig[I], 1, Pos('=', HighResConfig[I])); HighResConfig[I] := Trim(HighResConfig[I]); II := 1; HighResHeight := ''; arcanum 2560x1440 How to use it? arcanum 2560x1440 for II := 1 to Length(HighResConfig[I]) do begin if HighResConfig[I][II] in ['0','1','2','3','4','5','6','7','8','9'] then HighResHeight := HighResHeight + HighResConfig[I][II] else Break; end; Log(HighResHeight); Break; end; end; arcanum 2560x1440 How to get it? arcanum 2560x1440 end; if HighResHeight <> '' then HighResHeightInt := StrToIntDef(HighResHeight, -1) else HighResHeightInt := -1; if HighResHeightInt < 0 then else if HighResHeightInt < 720 then begin WizardSelectComponents('movies\800x600'); arcanum 2560x1440 How to get it for free? arcanum 2560x1440 WizardSelectComponents('movies\no800x600'); end else if HighResHeightInt < 1080 then begin WizardSelectComponents('movies\1280x720'); WizardSelectComponents('movies\no1280x720'); end else if HighResHeightInt < 1440 then begin WizardSelectComponents('movies\1920x1080'); WizardSelectComponents('movies\no1920x1080'); end else if HighResHeightInt < 2160 then begin WizardSelectComponents('movies\2560x1440'); WizardSelectComponents('movies\no2560x1440'); arcanum 2560x1440 How to get it? arcanum 2560x1440 end else begin WizardSelectComponents('movies\3840x2160'); WizardSelectComponents('movies\no3840x2160'); end; if FileExists(ExpandConstant('{app}\ArcanumXNoMovies.dat')) then WizardSelectComponents('!movies\deleteintro') else WizardSelectComponents('movies\deleteintro'); arcanum 2560x1440 How to dowload it? arcanum 2560x1440 if FileExists(ExpandConstant('{src}\{#FileNamePrev800x600}')) and not FileExists(ExpandConstant('{src}\{#FileName800x600}')) then RenameFile(ExpandConstant('{src}\{#FileNamePrev800x600}'), ExpandConstant('{src}\{#FileName800x600}')); end; end; var ExtractionPage: TExtractionWizardPage; DownloadPage: TDownloadWizardPage; function OnExtractionProgress(const ArchiveName, FileName: String; const Progress, ProgressMax: Int64): Boolean; arcanum 2560x1440 How to get it for free? arcanum 2560x1440 begin if Progress = ProgressMax then Log(Format('Successfully extracted file to {app}: %s', [FileName])); Result := True; end; function ReturnProgressAndProgressMax(ProgressInt, ProgressMaxInt: Int64): String; var SizeUnit: TArrayOfString; I: Integer; arcanum 2560x1440 How to use it? arcanum 2560x1440 Progress, ProgressMax, ProgressPercentage: Single; begin SizeUnit := ['B', 'KB', 'MB', 'GB']; Progress := ProgressInt; ProgressMax := ProgressMaxInt; ProgressPercentage := Progress*100/ProgressMax; I := 0; while ProgressMax >= 1024 do begin arcanum 2560x1440 How to get it? arcanum 2560x1440 ProgressMax := ProgressMax / 1024; Progress := Progress / 1024; Inc(I); if I >= Length(SizeUnit)-1 then Break; end; Result := ExpandConstant(Format('{cm:Downloaded} %f {cm:of} %1f %2s (%3f%%)', [Progress, ProgressMax, SizeUnit[I], ProgressPercentage])); end; function OnDownloadProgress(const Url, FileName: String; const Progress, ProgressMax: Int64): Boolean; arcanum 2560x1440 How to use it? arcanum 2560x1440 begin if (FileName <> ExpandConstant('{cm:DownloadingTmpFileMsg}')) and (ProgressMax > 0) then DownloadPage.SetText(ReturnProgressAndProgressMax(Progress, ProgressMax), FileName); if Progress = ProgressMax then begin Log(Format('Successfully downloaded file to {tmp}: %s', [FileName])); if FileName <> ExpandConstant('{cm:DownloadingTmpFileMsg}') then DownloadPage.SetText(ExpandConstant('{cm:HashCalc}'), FileName); end; Result := True; arcanum 2560x1440 PasteShr arcanum 2560x1440 end; procedure InitializeWizard; begin ExtractionPage := CreateExtractionPage(ExpandConstant('{cm:ExtractingArchive}'), '', @OnExtractionProgress); DownloadPage := CreateDownloadPage(SetupMessage(msgWizardPreparing), SetupMessage(msgPreparingDesc), @OnDownloadProgress); DownloadPage.ShowBaseNameInsteadOfUrl := True; end; // Extracting archive arcanum 2560x1440 How to get it? arcanum 2560x1440 procedure CurStepChanged(CurStep: TSetupStep); var ArchiveName: String; begin if CurStep = ssPostInstall then begin if WizardIsComponentSelected('movies\800x600') or WizardIsComponentSelected('movies\no800x600') then ArchiveName := '{#FileName800x600}' else if WizardIsComponentSelected('movies\1280x720') or WizardIsComponentSelected('movies\no1280x720') then ArchiveName := '{#FileName1280x720}' else if WizardIsComponentSelected('movies\1920x1080') or WizardIsComponentSelected('movies\no1920x1080') then arcanum 2560x1440 How to get it? arcanum 2560x1440 ArchiveName := '{#FileName1920x1080}' else if WizardIsComponentSelected('movies\2560x1440') or WizardIsComponentSelected('movies\no2560x1440') then ArchiveName := '{#FileName2560x1440}' else if WizardIsComponentSelected('movies\3840x2160') or WizardIsComponentSelected('movies\no3840x2160') then ArchiveName := '{#FileName3840x2160}'; if ArchiveName <> '' then begin ExtractionPage.Clear; ExtractionPage.Add(ExpandConstant('{src}\' + ArchiveName), ExpandConstant('{app}'), True); ExtractionPage.Description := ArchiveName; arcanum 2560x1440 How to dowload it? arcanum 2560x1440 ExtractionPage.Show; try try ExtractionPage.Extract; // This extracts the files to {app} if WizardIsComponentSelected('movies\deleteintro') then begin if FileExists(ExpandConstant('{app}\Data\movies\SierraLogo.bik')) then DeleteFile(ExpandConstant('{app}\Data\movies\SierraLogo.bik')); if FileExists(ExpandConstant('{app}\Data\movies\TroikaLogo.bik')) then arcanum 2560x1440 PasteShr arcanum 2560x1440 DeleteFile(ExpandConstant('{app}\Data\movies\TroikaLogo.bik')); end; except if ExtractionPage.AbortedByUser then Log('Aborted by user.') else SuppressibleMsgBox(AddPeriod(GetExceptionMessage), mbCriticalError, MB_OK, IDOK); end; finally ExtractionPage.Hide; arcanum 2560x1440 How to dowload it? arcanum 2560x1440 end; end; end; end; // Downloading files function NextButtonClick(CurPageID: Integer): Boolean; var ExtractedFileUrl, DownloadedFileName, FileHashToCompare, FileUrl: String; DownloadedTmpFileString: AnsiString; arcanum 2560x1440 How to get it? arcanum 2560x1440 begin if CurPageID = wpReady then begin if WizardIsComponentSelected('movies\no800x600') then begin DownloadedFileName := '{#FileName800x600}'; FileHashToCompare := '{#FileHash800x600}'; FileUrl := '{#FileUrl800x600}'; end else if WizardIsComponentSelected('movies\no1280x720') then begin DownloadedFileName := '{#FileName1280x720}'; FileHashToCompare := '{#FileHash1280x720}'; FileUrl := '{#FileUrl1280x720}'; arcanum 2560x1440 How to dowload it? arcanum 2560x1440 end else if WizardIsComponentSelected('movies\no1920x1080') then begin DownloadedFileName := '{#FileName1920x1080}'; FileHashToCompare := '{#FileHash1920x1080}'; FileUrl := '{#FileUrl1920x1080}'; end else if WizardIsComponentSelected('movies\no2560x1440') then begin DownloadedFileName := '{#FileName2560x1440}'; FileHashToCompare := '{#FileHash2560x1440}'; FileUrl := '{#FileUrl2560x1440}'; end else if WizardIsComponentSelected('movies\no3840x2160') then begin DownloadedFileName := '{#FileName3840x2160}'; arcanum 2560x1440 How to use it? arcanum 2560x1440 FileHashToCompare := '{#FileHash3840x2160}'; FileUrl := '{#FileUrl3840x2160}'; end else FileUrl := ''; if FileUrl <> '' then begin DownloadPage.Clear; DownloadPage.Add(FileUrl, ExpandConstant('{cm:DownloadingTmpFileMsg}'), ''); DownloadPage.Show; try arcanum 2560x1440 How to dowload it? arcanum 2560x1440 try DownloadPage.Download; // This downloads the files to {tmp} LoadStringFromLockedFile(ExpandConstant('{tmp}\{cm:DownloadingTmpFileMsg}'), DownloadedTmpFileString); DeleteFile(ExpandConstant('{tmp}\{cm:DownloadingTmpFileMsg}')); Log(DownloadedTmpFileString); if Pos('window.location.href="', DownloadedTmpFileString) > 0 then begin Delete(DownloadedTmpFileString, 1, Pos('window.location.href="', DownloadedTmpFileString) + 21); Log(DownloadedTmpFileString); if Pos('"', DownloadedTmpFileString) > 0 then begin arcanum 2560x1440 PasteShr arcanum 2560x1440 ExtractedFileUrl := Copy(DownloadedTmpFileString, 1, Pos('"', DownloadedTmpFileString) - 1); Log(ExtractedFileUrl); if Length(ExtractedFileUrl) > 0 then begin DownloadPage.Clear; DownloadPage.Add(ExtractedFileUrl, DownloadedFileName, FileHashToCompare); DownloadPage.Download; RenameFile(ExpandConstant('{tmp}\' + DownloadedFileName), ExpandConstant('{src}\' + DownloadedFileName)); end else Result := False; end else arcanum 2560x1440 How to get it for free? arcanum 2560x1440 Result := False; end else Result := False; Result := True; except if DownloadPage.AbortedByUser then Log('Aborted by user.') else SuppressibleMsgBox(ExpandConstant('{cm:DownloadErrorMsg,' + DownloadedFileName + '}') + AddPeriod(GetExceptionMessage), mbCriticalError, MB_OK, IDOK); Result := False; arcanum 2560x1440 PasteShr arcanum 2560x1440 end; finally DownloadPage.Hide; end; end else Result := True; end else Result := True; end; arcanum 2560x1440 How to use it? arcanum 2560x1440 // Deleting files after install procedure DeleteAfterInstall(FileName: String); begin DeleteFile(ExpandConstant(FileName)); end; // Credits for function GetInstallationPath goes to Martin Prikryl var InstallationPath: string; function GetInstallationPath(Param: string): string; begin arcanum 2560x1440 PasteShr arcanum 2560x1440 if InstallationPath = '' then begin if RegQueryStringValue( HKLM32, 'SOFTWARE\GOG.com\Games\1207658829', 'path', InstallationPath) then begin Log('Detected GOG installation: ' + InstallationPath); end else if IsWin64 and RegQueryStringValue( HKLM64, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Steam App 500810', arcanum 2560x1440 How to dowload it? arcanum 2560x1440 'InstallLocation', InstallationPath) then begin InstallationPath := InstallationPath + '\Arcanum'; Log('Detected Steam (x64) installation: ' + InstallationPath); end else if RegQueryStringValue( HKLM32, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Steam App 500810', 'InstallLocation', InstallationPath) then begin InstallationPath := InstallationPath + '\Arcanum'; arcanum 2560x1440 How to use it? arcanum 2560x1440 Log('Detected Steam (x86) installation: ' + InstallationPath); end else if RegQueryStringValue( HKLM32, 'SOFTWARE\Troika\Arcanum', 'installed_to', InstallationPath) then begin Log('Detected Troika installation: ' + InstallationPath); end else if RegQueryStringValue( HKLM32, 'SOFTWARE\Sierra OnLine\Setup\AR_USENG', arcanum 2560x1440 PasteShr arcanum 2560x1440 'Directory', InstallationPath) then begin Log('Detected Sierra OnLine installation: ' + InstallationPath); end else if RegQueryStringValue( HKLM32, 'SOFTWARE\Sierra OnLine\Setup\AR_PL', 'Directory', InstallationPath) then begin Log('Detected Sierra OnLine PL installation: ' + InstallationPath); end arcanum 2560x1440 How to get it? arcanum 2560x1440 else begin InstallationPath := ExpandConstant('{sd}\{cm:GameFolderName}\Arcanum'); Log('No installation detected, using the default path: ' + InstallationPath); end; end; Result := InstallationPath; end; // Moving backup files and cleanup arcanum 2560x1440 How to dowload it? arcanum 2560x1440 procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); begin if CurUninstallStep = usPostUninstall then begin RenameFile(ExpandConstant('{app}\BikMod\backup\00069.bik'), ExpandConstant('{app}\modules\Arcanum\movies\00069.bik')); RenameFile(ExpandConstant('{app}\BikMod\backup\01138.bik'), ExpandConstant('{app}\modules\Arcanum\movies\01138.bik')); RenameFile(ExpandConstant('{app}\BikMod\backup\02112.bik'), ExpandConstant('{app}\modules\Arcanum\movies\02112.bik')); RenameFile(ExpandConstant('{app}\BikMod\backup\02112b.bik'), ExpandConstant('{app}\modules\Arcanum\movies\02112b.bik')); RenameFile(ExpandConstant('{app}\BikMod\backup\50000.bik'), ExpandConstant('{app}\modules\Arcanum\movies\50000.bik')); RenameFile(ExpandConstant('{app}\BikMod\backup\51169.bik'), ExpandConstant('{app}\modules\Arcanum\movies\51169.bik')); arcanum 2560x1440 How to get it? arcanum 2560x1440 RenameFile(ExpandConstant('{app}\BikMod\backup\91568.bik'), ExpandConstant('{app}\modules\Arcanum\movies\91568.bik')); RenameFile(ExpandConstant('{app}\BikMod\backup\A0021.bik'), ExpandConstant('{app}\modules\Arcanum\movies\A0021.bik')); RenameFile(ExpandConstant('{app}\BikMod\backup\G0021.bik'), ExpandConstant('{app}\modules\Arcanum\movies\G0021.bik')); RenameFile(ExpandConstant('{app}\BikMod\backup\movies.mes'), ExpandConstant('{app}\modules\Arcanum\movies\movies.mes')); RenameFile(ExpandConstant('{app}\BikMod\backup\01093KanHuamovie.scr'), ExpandConstant('{app}\data\scr\01093KanHuamovie.scr')); RenameFile(ExpandConstant('{app}\BikMod\original_bink_library\binkw32.dll'), ExpandConstant('{app}\binkw32.dll')); DelTree(ExpandConstant('{app}\BikMod\backup'), True, False, False); DelTree(ExpandConstant('{app}\BikMod\original_bink_library'), True, False, False); DelTree(ExpandConstant('{app}\BikMod'), True, False, False); end; arcanum 2560x1440 PasteShr arcanum 2560x1440 end; arcanum 2560x1440