Inno Setup Custom Dialog from Component
I'm creating an installer with Inno Setup, and it's almost done. The problem I'm having now, is I'd like to check which components the user selects, and have input fields in a custom wizard page, only if the user selects a certain component.
Right now, it's creating the input fields BEFORE it knows which components the user selected. I tried using the if Assigned(DataDirPage) then
like I did with the two bottom functions, but that didn't work.
Thanks in advance!
Here is my .iss file:
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "DXX-Rebirth"
#define MyAppName1 "D1X-Rebirth"
#define MyAppName2 "D2X-Rebirth"
#define MyAppVersion "0.57.0"
#define MyAppURL "http://www.dxx-rebirth.com/"
#define MyAppExeName "d1x-rebirth.exe"
#define MyAppExeName2 "d2x-rebirth.exe"
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{DF665ED8-D2A7-490A-805F-6677EFFBAB40}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputBaseFilename=Setup
Compression=lzma
SolidCompression=yes
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "german"; MessagesFile: "compiler:Languages\German.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Types]
Name: "install"; Description: "DXX-Rebirth"; Flags: iscustom
[Components]
Name: "d1x"; Description: "D1X"; Types: install
Name: "d2x"; Description: "D2X"; Types: install
[Files]
;D1X Files
Source: "C:\Documents and Settings\Owner\Desktop\Downloads\d1x-rebirth_v0.57-win\d1x-rebirth_v0.57-win\d1x-rebirth.exe"; DestDir: "{app}\D1X-Rebirth"; Components: d1x; Flags: ignoreversion
Source: "C:\Documents and Settings\Owner\Desktop\Downloads\d1x-rebirth_v0.57-win\d1x-rebirth_v0.57-win\*"; DestDir: "{app}\D1X-Rebirth"; Excludes: "C:\Documents and Settings\Owner\Desktop\Downloads\d1x-rebirth_v0.57-win\d1x-rebirth_v0.57-win\Missions,C:\Documents and Settings\Owner\Desktop\Downloads\d1x-rebirth_v0.57-win\d1x-rebirth_v0.57-win\Players,C:\Documents and Settings\Owner\Desktop\Downloads\d1x-rebirth_v0.57-win\d1x-rebirth_v0.57-win\Demos,C:\Documents and Settings\Owner\Desktop\Downloads\d1x-rebirth_v0.57-win\d1x-rebirth_v0.57-win\Screenchots"; Components: d1x; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "C:\Documents and Settings\Owner\Desktop\Downloads\d1x-rebirth_v0.57-win\d1x-rebirth_v0.57-win\Missions"; DestDir: "{app}\D1X-Rebirth"; Components: d1x; Flags: ignoreversion recursesubdirs createallsubdirs onlyifdoesntexist
Source: "C:\Documents and Settings\Owner\Desktop\Downloads\d1x-rebirth_v0.57-win\d1x-rebirth_v0.57-win\Players"; DestDir: "{app}\D1X-Rebirth"; Components: d1x; Flags: ignoreversion recursesubdirs createallsubdirs onlyifdoesntexist
Source: "C:\Documents and Settings\Owner\Desktop\Downloads\d1x-rebirth_v0.57-win\d1x-rebirth_v0.57-win\Demos"; DestDir: "{app}\D1X-Rebirth"; Components: d1x; Flags: ignoreversion recursesubdirs createallsubdirs onlyifdoesntexist
Source: "C:\Documents and Settings\Owner\Desktop\Downloads\d1x-rebirth_v0.57-win\d1x-rebirth_v0.57-win\Screenshots"; DestDir: "{app}\D1X-Rebirth"; Components: d1x; Flags: ignoreversion recursesubdirs createallsubdirs onlyifdoesntexist
;D1 Main Files
Source: "{code:Descent}\descent.hog"; DestDir: "{app}\D1X-Rebirth"; Components: "d1x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\descent.pig"; DestDir: "{app}\D1X-Rebirth"; Components: "d1x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
;D1 Missions
Source: "{code:Descent}\*.hog"; DestDir: "{app}\D1X-Rebirth\Missions"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\*.msn"; DestDir: "{app}\D1X-Rebirth\Missions"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\*.rdl"; DestDir: "{app}\D1X-Rebirth\Missions"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\Missions\*"; DestDir: "{app}\D1X-Rebirth\Missions"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
;D1 Players
Source: "{code:Descent}\*.eff:"; DestDir: "{app}\D1X-Rebirth\Players"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\*.plr:"; DestDir: "{app}\D1X-Rebirth\Players"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\*.plx:"; DestDir: "{app}\D1X-Rebirth\Players"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\*.ngp:"; DestDir: "{app}\D1X-Rebirth\Players"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\*.sg*:"; DestDir: "{app}\D1X-Rebirth\Players"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\*.mg*:"; DestDir: "{app}\D1X-Rebirth\Players"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\Players\*.eff:"; DestDir: "{app}\D1X-Rebirth\Players"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\Players\*.plr:"; DestDir: "{app}\D1X-Rebirth\Players"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\Players\*.plx:"; DestDir: "{app}\D1X-Rebirth\Players"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\Players\*.ngp:"; DestDir: "{app}\D1X-Rebirth\Players"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\Players\*.sg*:"; DestDir: "{app}\D1X-Rebirth\Players"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\Players\*.mg*:"; DestDir: "{app}\D1X-Rebirth\Players"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
;D2X Files
Source: "C:\Documents and Settings\Owner\Desktop\Downloads\d2x-rebirth_v0.57-win\d2x-rebirth_v0.57-win\d2x-rebirth.exe"; DestDir: "{app}\D2X-Rebirth"; Components: d2x; Flags: ignoreversion
Source: "C:\Documents and Settings\Owner\Desktop\Downloads\d2x-rebirth_v0.57-win\d2x-rebirth_v0.57-win\*"; DestDir: "{app}\D2X-Rebirth"; Excludes: "C:\Documents and Settings\Owner\Desktop\Downloads\d2x-rebirth_v0.57-win\d2x-rebirth_v0.57-win\Missions,C:\Documents and Settings\Owner\Desktop\Downloads\d2x-rebirth_v0.57-win\d2x-rebirth_v0.57-win\Players,C:\Documents and Settings\Owner\Desktop\Downloads\d2x-rebirth_v0.57-win\d2x-rebirth_v0.57-win\Demos,C:\Documents and Settings\Owner\Desktop\Downloads\d2x-rebirth_v0.57-win\d2x-rebirth_v0.57-win\Screenshots"; Components: d2x; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "C:\Documents and Settings\Owner\Desktop\Downloads\d2x-rebirth_v0.57-win\d2x-rebirth_v0.57-win\Missions"; DestDir: "{app}\D2X-Rebirth"; Components: d2x; Flags: ignoreversion recursesubdirs createallsubdirs onlyifdoesntexist
Source: "C:\Documents and Settings\Owner\Desktop\Downloads\d2x-rebirth_v0.57-win\d2x-rebirth_v0.57-win\Players"; DestDir: "{app}\D2X-Rebirth"; Components: d2x; Flags: ignoreversion recursesubdirs createallsubdirs onlyifdoesntexist
Source: "C:\Documents and Settings\Owner\Desktop\Downloads\d2x-rebirth_v0.57-win\d2x-rebirth_v0.57-win\Demos"; DestDir: "{app}\D2X-Rebirth"; Components: d2x; Flags: ignoreversion recursesubdirs createallsubdirs onlyifdoesntexist
Source: "C:\Documents and Settings\Owner\Desktop\Downloads\d2x-rebirth_v0.57-win\d2x-rebirth_v0.57-win\Screenshots"; DestDir: "{app}\D2X-Rebirth"; Components: d2x; Flags: ignoreversion recursesubdirs createallsubdirs onlyifdoesntexist
;D2 Main Files
Source: "{code:DescentTwo}\descent2.ham"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\descent2.hog"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\descent2.s11"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\descent2.s22"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\alien1.pig"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\alien2.pig"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\fire.pig"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\groupa.pig"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\ice.pig"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\water.pig"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\intro-h.mvl"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\intro-l.mvl"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\other-h.mvl"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\other-l.mvl"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\robots-h.mvl"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\robots-l.mvl"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
;Vertigo
Source: "{code:DescentTwo}\d2x-h.mvl"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\d2x-l.mvl"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\hoard.ham"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\d2x.hog"; DestDir: "{app}\D2X-Rebirth\Missions"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\d2x.mn2"; DestDir: "{app}\D2X-Rebirth\Missions"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Missions\d2x.hog"; DestDir: "{app}\D2X-Rebirth\Missions"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Missions\d2x.mn2"; DestDir: "{app}\D2X-Rebirth\Missions"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
;D2 Missions
Source: "{code:DescentTwo}\*.hog"; DestDir: "{app}\D2X-Rebirth\Missions"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\*.mn2"; DestDir: "{app}\D2X-Rebirth\Missions"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Missions\*"; DestDir: "{app}\D2X-Rebirth\Missions"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
;D2 Players
Source: "{code:DescentTwo}\*.eff:"; DestDir: "{app}\D2X-Rebirth\Players"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\*.plr:"; DestDir: "{app}\D2X-Rebirth\Players"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\*.plx:"; DestDir: "{app}\D2X-Rebirth\Players"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\*.ngp:"; DestDir: "{app}\D2X-Rebirth\Players"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\*.sg*:"; DestDir: "{app}\D2X-Rebirth\Players"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\*.mg*:"; DestDir: "{app}\D2X-Rebirth\Players"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Players\*.eff:"; DestDir: "{app}\D2X-Rebirth\Players"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Players\*.plr:"; DestDir: "{app}\D2X-Rebirth\Players"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Players\*.plx:"; DestDir: "{app}\D2X-Rebirth\Players"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Players\*.ngp:"; DestDir: "{app}\D2X-Rebirth\Players"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Players\*.sg*:"; DestDir: "{app}\D2X-Rebirth\Players"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Players\*.mg*:"; DestDir: "{app}\D2X-Rebirth\Players"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: "{group}\{#MyAppName1}"; Filename: "{app}\D1X-Rebirth\{#MyAppExeName}"
Name: "{group}\{#MyAppName2}"; Filename: "{app}\D2X-Rebirth\{#MyAppExeName2}"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{#MyAppName1}"; Filename: "{app}\D1X-Rebirth\{#MyAppExeName}"; Tasks: desktopicon
Name: "{commondesktop}\{#MyAppName2}"; Filename: "{app}\D2X-Rebirth\{#MyAppExeName2}"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName1}"; Filename: "{app}\D1X-Rebirth\{#MyAppExeName}"; Tasks: quicklaunchicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName2}"; Filename: "{app}\D2X-Rebirth\{#MyAppExeName2}"; Tasks: quicklaunchicon
[Run]
Filename: "{app}\D1X-Rebirth\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName1, "&", "&&")}}"; Flags: nowait postinstall skipifsilent unchecked
Filename: "{app}\D2X-Rebirth\{#MyAppExeName2}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName2, "&", "&&")}}"; Flags: nowait postinstall skipifsilent unchecked
[Code]
// global vars
var
SampleDataPage: TInputOptionWizardPage;
DataDirPage: TInputDirWizardPage;
// custom wizard page setup, for data dir.
procedure InitializeWizard;
begin
{ Taken from CodeDlg.iss example script }
{ Create custom pages to show during install }
SampleDataPage := CreateInputOptionPage(wpSelectComponents,
'Install Descent Data', '',
'Would you like to copy the Descent game files to your DXX-Rebirth installation?',
True, False);
SampleDataPage.Add('Yes copy the game files, missions, players, and savegames.');
SampleDataPage.Add('Yes, but just copy the game files.');
SampleDataPage.Add('No, I'+chr(39)+'ll copy the game files myself later.');
SampleDataPage.Valu开发者_StackOverflow中文版es[0] := True;
DataDirPage := CreateInputDirPage(SampleDataPage.ID,
'Descent Data Directory', '',
'Please select the location where the original Descent files are installed.',
False, '');
if IsComponentSelected('d1x') and IsComponentSelected('d2x') then
begin
DataDirPage.Add('Descent location.');
DataDirPage.Add('Decent 2 location.');
DataDirPage.Values[0] := ExpandConstant('{pf}\GOG.com\Descent and Descent 2\Descent');
DataDirPage.Values[1] := ExpandConstant('{pf}\GOG.com\Descent and Descent 2\Descent 2');
end
else
begin
if IsComponentSelected('d1x') and not IsComponentSelected('d2x') then
begin
DataDirPage.Add('Descent location.');
DataDirPage.Values[0] := ExpandConstant('{pf}\GOG.com\Descent and Descent 2\Descent');
end
else
if IsComponentSelected('d2x') and not IsComponentSelected('d1x') then
begin
DataDirPage.Add('Decent 2 location.');
DataDirPage.Values[0] := ExpandConstant('{pf}\GOG.com\Descent and Descent 2\Descent 2');
end;
end;
end;
function ShouldSkipPage(PageID: Integer): Boolean;
begin
if (PageID = DataDirPage.ID) and (SampleDataPage.Values[2] = true) then
Result := True
else
Result := False;
end;
function InstallAll(): Boolean;
begin
{ Return the value of the 'install' radiobutton }
//MsgBox('InstallSampleData.', mbError, MB_OK);
Result := SampleDataPage.Values[0];
end;
function Install(): Boolean;
begin
{ Return the value of the 'install' radiobutton }
//MsgBox('InstallSampleData.', mbError, MB_OK);
Result := SampleDataPage.Values[1];
end;
function DontInstall(): Boolean;
begin
Result := SampleDataPage.Values[2];
end;
function DescentTwo(Param: String): String;
begin
if Assigned(DataDirPage) then
begin
if (IsComponentSelected('d1x') = true) and (IsComponentSelected('d2x') = true) then
begin
result := DataDirPage.Values[1];
end;
if (IsComponentSelected('d1x') = false) and (IsComponentSelected('d2x') = true) then
begin
result := DataDirPage.Values[0];
end;
if (IsComponentSelected('d1x') = true) and (IsComponentSelected('d2x') = false) then
begin
result := '';
end;
end
else
result := '';
end;
function Descent(Param: String): String;
begin
if Assigned(DataDirPage) then
begin
if (IsComponentSelected('d1x') = false) and (IsComponentSelected('d2x') = true) then
begin
result := '';
end
else
begin
result := DataDirPage.Values[0];
end;
end
else
result := '';
end;
end.
Thanks to Deanna the problem was solved...here's how it was done if any of you need to do the same thing:
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "DXX-Rebirth"
#define MyAppName1 "D1X-Rebirth"
#define MyAppName2 "D2X-Rebirth"
#define MyAppVersion "0.57.0"
#define MyAppURL "http://www.dxx-rebirth.com/"
#define MyAppExeName "d1x-rebirth.exe"
#define MyAppExeName2 "d2x-rebirth.exe"
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{DF665ED8-D2A7-490A-805F-6677EFFBAB40}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputBaseFilename=Setup
Compression=lzma
SolidCompression=yes
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "german"; MessagesFile: "compiler:Languages\German.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}";
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Types]
Name: "install"; Description: "DXX-Rebirth"; Flags: iscustom
[Components]
Name: "d1x"; Description: "D1X-Rebirth"; Types: install
Name: "d2x"; Description: "D2X-Rebirth"; Types: install
[Files]
;D1X Files
Source: "C:\Documents and Settings\Owner\Desktop\Downloads\d1x-rebirth_v0.57-win\d1x-rebirth_v0.57-win\d1x-rebirth.exe"; DestDir: "{app}\D1X-Rebirth"; Components: d1x; Flags: ignoreversion
Source: "C:\Documents and Settings\Owner\Desktop\Downloads\d1x-rebirth_v0.57-win\d1x-rebirth_v0.57-win\*"; DestDir: "{app}\D1X-Rebirth"; Excludes: "C:\Documents and Settings\Owner\Desktop\Downloads\d1x-rebirth_v0.57-win\d1x-rebirth_v0.57-win\Missions,C:\Documents and Settings\Owner\Desktop\Downloads\d1x-rebirth_v0.57-win\d1x-rebirth_v0.57-win\Players,C:\Documents and Settings\Owner\Desktop\Downloads\d1x-rebirth_v0.57-win\d1x-rebirth_v0.57-win\Demos,C:\Documents and Settings\Owner\Desktop\Downloads\d1x-rebirth_v0.57-win\d1x-rebirth_v0.57-win\Screenchots"; Components: d1x; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "C:\Documents and Settings\Owner\Desktop\Downloads\d1x-rebirth_v0.57-win\d1x-rebirth_v0.57-win\Missions"; DestDir: "{app}\D1X-Rebirth"; Components: d1x; Flags: ignoreversion recursesubdirs createallsubdirs onlyifdoesntexist
Source: "C:\Documents and Settings\Owner\Desktop\Downloads\d1x-rebirth_v0.57-win\d1x-rebirth_v0.57-win\Players"; DestDir: "{app}\D1X-Rebirth"; Components: d1x; Flags: ignoreversion recursesubdirs createallsubdirs onlyifdoesntexist
Source: "C:\Documents and Settings\Owner\Desktop\Downloads\d1x-rebirth_v0.57-win\d1x-rebirth_v0.57-win\Demos"; DestDir: "{app}\D1X-Rebirth"; Components: d1x; Flags: ignoreversion recursesubdirs createallsubdirs onlyifdoesntexist
Source: "C:\Documents and Settings\Owner\Desktop\Downloads\d1x-rebirth_v0.57-win\d1x-rebirth_v0.57-win\Screenshots"; DestDir: "{app}\D1X-Rebirth"; Components: d1x; Flags: ignoreversion recursesubdirs createallsubdirs onlyifdoesntexist
;D1 Main Files
Source: "{code:Descent}\descent.hog"; DestDir: "{app}\D1X-Rebirth"; Components: "d1x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\descent.pig"; DestDir: "{app}\D1X-Rebirth"; Components: "d1x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\Data\descent.hog"; DestDir: "{app}\D1X-Rebirth"; Components: "d1x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\Data\descent.pig"; DestDir: "{app}\D1X-Rebirth"; Components: "d1x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
;D1 Missions
Source: "{code:Descent}\*.hog"; DestDir: "{app}\D1X-Rebirth\Missions"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\*.msn"; DestDir: "{app}\D1X-Rebirth\Missions"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\*.rdl"; DestDir: "{app}\D1X-Rebirth\Missions"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\Missions\*"; DestDir: "{app}\D1X-Rebirth\Missions"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\descent.hog"; DestDir: "{app}\D1X-Rebirth\Missions"; Components: "d1x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist deleteafterinstall
;D1 Players
Source: "{code:Descent}\*.eff"; DestDir: "{app}\D1X-Rebirth\Players"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\*.plr"; DestDir: "{app}\D1X-Rebirth\Players"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\*.plx"; DestDir: "{app}\D1X-Rebirth\Players"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\*.ngp"; DestDir: "{app}\D1X-Rebirth\Players"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\*.sg*"; DestDir: "{app}\D1X-Rebirth\Players"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\*.mg*"; DestDir: "{app}\D1X-Rebirth\Players"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\Players\*.eff"; DestDir: "{app}\D1X-Rebirth\Players"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\Players\*.plr"; DestDir: "{app}\D1X-Rebirth\Players"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\Players\*.plx"; DestDir: "{app}\D1X-Rebirth\Players"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\Players\*.ngp"; DestDir: "{app}\D1X-Rebirth\Players"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\Players\*.sg*"; DestDir: "{app}\D1X-Rebirth\Players"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:Descent}\Players\*.mg*"; DestDir: "{app}\D1X-Rebirth\Players"; Components: "d1x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
;D2X Files
Source: "C:\Documents and Settings\Owner\Desktop\Downloads\d2x-rebirth_v0.57-win\d2x-rebirth_v0.57-win\d2x-rebirth.exe"; DestDir: "{app}\D2X-Rebirth"; Components: d2x; Flags: ignoreversion
Source: "C:\Documents and Settings\Owner\Desktop\Downloads\d2x-rebirth_v0.57-win\d2x-rebirth_v0.57-win\*"; DestDir: "{app}\D2X-Rebirth"; Excludes: "C:\Documents and Settings\Owner\Desktop\Downloads\d2x-rebirth_v0.57-win\d2x-rebirth_v0.57-win\Missions,C:\Documents and Settings\Owner\Desktop\Downloads\d2x-rebirth_v0.57-win\d2x-rebirth_v0.57-win\Players,C:\Documents and Settings\Owner\Desktop\Downloads\d2x-rebirth_v0.57-win\d2x-rebirth_v0.57-win\Demos,C:\Documents and Settings\Owner\Desktop\Downloads\d2x-rebirth_v0.57-win\d2x-rebirth_v0.57-win\Screenshots"; Components: d2x; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "C:\Documents and Settings\Owner\Desktop\Downloads\d2x-rebirth_v0.57-win\d2x-rebirth_v0.57-win\Missions"; DestDir: "{app}\D2X-Rebirth"; Components: d2x; Flags: ignoreversion recursesubdirs createallsubdirs onlyifdoesntexist
Source: "C:\Documents and Settings\Owner\Desktop\Downloads\d2x-rebirth_v0.57-win\d2x-rebirth_v0.57-win\Players"; DestDir: "{app}\D2X-Rebirth"; Components: d2x; Flags: ignoreversion recursesubdirs createallsubdirs onlyifdoesntexist
Source: "C:\Documents and Settings\Owner\Desktop\Downloads\d2x-rebirth_v0.57-win\d2x-rebirth_v0.57-win\Demos"; DestDir: "{app}\D2X-Rebirth"; Components: d2x; Flags: ignoreversion recursesubdirs createallsubdirs onlyifdoesntexist
Source: "C:\Documents and Settings\Owner\Desktop\Downloads\d2x-rebirth_v0.57-win\d2x-rebirth_v0.57-win\Screenshots"; DestDir: "{app}\D2X-Rebirth"; Components: d2x; Flags: ignoreversion recursesubdirs createallsubdirs onlyifdoesntexist
;D2 Main Files
Source: "{code:DescentTwo}\descent2.ham"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\descent2.hog"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\descent2.s11"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\descent2.s22"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\alien1.pig"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\alien2.pig"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\fire.pig"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\groupa.pig"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\ice.pig"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\water.pig"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\intro-h.mvl"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\intro-l.mvl"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\other-h.mvl"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\other-l.mvl"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\robots-h.mvl"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\robots-l.mvl"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Data\descent2.ham"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Data\descent2.hog"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Data\descent2.s11"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Data\descent2.s22"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Data\alien1.pig"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Data\alien2.pig"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Data\fire.pig"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Data\groupa.pig"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Data\ice.pig"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Data\water.pig"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Data\intro-h.mvl"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Data\intro-l.mvl"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Data\other-h.mvl"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Data\other-l.mvl"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Data\robots-h.mvl"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Data\robots-l.mvl"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
;Vertigo
Source: "{code:DescentTwo}\d2x-h.mvl"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\d2x-l.mvl"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\hoard.ham"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\d2x.hog"; DestDir: "{app}\D2X-Rebirth\Missions"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\d2x.mn2"; DestDir: "{app}\D2X-Rebirth\Missions"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Data\d2x-h.mvl"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Data\d2x-l.mvl"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Data\hoard.ham"; DestDir: "{app}\D2X-Rebirth"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Data\d2x.hog"; DestDir: "{app}\D2X-Rebirth\Missions"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Data\d2x.mn2"; DestDir: "{app}\D2X-Rebirth\Missions"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Missions\d2x.hog"; DestDir: "{app}\D2X-Rebirth\Missions"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Missions\d2x.mn2"; DestDir: "{app}\D2X-Rebirth\Missions"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist
;D2 Missions
Source: "{code:DescentTwo}\*.hog"; DestDir: "{app}\D2X-Rebirth\Missions"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\*.mn2"; DestDir: "{app}\D2X-Rebirth\Missions"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Missions\*"; DestDir: "{app}\D2X-Rebirth\Missions"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\descent2.hog"; DestDir: "{app}\D2X-Rebirth\Missions"; Components: "d2x"; Check: not DontInstall; Flags: external skipifsourcedoesntexist deleteafterinstall
;D2 Players
Source: "{code:DescentTwo}\*.eff"; DestDir: "{app}\D2X-Rebirth\Players"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\*.plr"; DestDir: "{app}\D2X-Rebirth\Players"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\*.plx"; DestDir: "{app}\D2X-Rebirth\Players"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\*.ngp"; DestDir: "{app}\D2X-Rebirth\Players"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\*.sg*"; DestDir: "{app}\D2X-Rebirth\Players"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\*.mg*"; DestDir: "{app}\D2X-Rebirth\Players"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Players\*.eff"; DestDir: "{app}\D2X-Rebirth\Players"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Players\*.plr"; DestDir: "{app}\D2X-Rebirth\Players"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Players\*.plx"; DestDir: "{app}\D2X-Rebirth\Players"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Players\*.ngp"; DestDir: "{app}\D2X-Rebirth\Players"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Players\*.sg*"; DestDir: "{app}\D2X-Rebirth\Players"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
Source: "{code:DescentTwo}\Players\*.mg*"; DestDir: "{app}\D2X-Rebirth\Players"; Components: "d2x"; Check: InstallAll; Flags: external skipifsourcedoesntexist
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: "{group}\{#MyAppName1}"; Filename: "{app}\D1X-Rebirth\{#MyAppExeName}"; Components: "d1x"
Name: "{group}\{#MyAppName2}"; Filename: "{app}\D2X-Rebirth\{#MyAppExeName2}"; Components: "d2x"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{userdesktop}\{#MyAppName1}"; Filename: "{app}\D1X-Rebirth\{#MyAppExeName}"; Components: "d1x"; Tasks: desktopicon
Name: "{userdesktop}\{#MyAppName2}"; Filename: "{app}\D2X-Rebirth\{#MyAppExeName2}"; Components: "d2x"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName1}"; Filename: "{app}\D1X-Rebirth\{#MyAppExeName}"; Components: "d1x"; Tasks: quicklaunchicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName2}"; Filename: "{app}\D2X-Rebirth\{#MyAppExeName2}"; Components: "d2x"; Tasks: quicklaunchicon
[Run]
Filename: "{app}\D1X-Rebirth\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName1, "&", "&&")}}"; Flags: nowait postinstall skipifsilent unchecked
Filename: "{app}\D2X-Rebirth\{#MyAppExeName2}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName2, "&", "&&")}}"; Flags: nowait postinstall skipifsilent unchecked
[UninstallDelete]
Type: filesandordirs; Name: "{app}"
[Code]
// global vars
var
SampleDataPage: TInputOptionWizardPage;
DataDirPage: TInputDirWizardPage;
DataDirPage1: TInputDirWizardPage;
DataDirPage2: TInputDirWizardPage;
// custom wizard page setup, for data dir.
procedure InitializeWizard;
begin
{ Taken from CodeDlg.iss example script }
{ Create custom pages to show during install }
SampleDataPage := CreateInputOptionPage(wpSelectComponents,
'Install Descent Data', '',
'Would you like to copy the Descent game files to your DXX-Rebirth installation?',
True, False);
SampleDataPage.Add('Yes copy the game files, missions, players, and savegames.');
SampleDataPage.Add('Yes, but just copy the game files.');
SampleDataPage.Add('No, I'+chr(39)+'ll copy the game files myself later.');
SampleDataPage.Values[0] := True;
DataDirPage := CreateInputDirPage(SampleDataPage.ID,
'Descent Data Directory', '',
'Please select the location where the original Descent files are installed.',
False, '');
DataDirPage.Add('Descent location.');
DataDirPage.Add('Decent 2 location.');
DataDirPage.Values[0] := ExpandConstant('{pf}\GOG.com\Descent and Descent 2\Descent');
DataDirPage.Values[1] := ExpandConstant('{pf}\GOG.com\Descent and Descent 2\Descent 2');
DataDirPage1 := CreateInputDirPage(SampleDataPage.ID,
'Descent Data Directory', '',
'Please select the location where the original Descent files are installed.',
False, '');
DataDirPage1.Add('');
DataDirPage1.Values[0] := ExpandConstant('{pf}\GOG.com\Descent and Descent 2\Descent');
DataDirPage2 := CreateInputDirPage(SampleDataPage.ID,
'Descent Data Directory', '',
'Please select the location where the original Descent 2 files are installed.',
False, '');
DataDirPage2.Add('Decent 2 location.');
DataDirPage2.Values[0] := ExpandConstant('{pf}\GOG.com\Descent and Descent 2\Descent 2');
end;
function ShouldSkipPage(PageID: Integer): Boolean;
begin
if (PageID = DataDirPage.ID) and (SampleDataPage.Values[2] = true) then
begin
Result := True
exit;
end;
if (IsComponentSelected('d1x') = true) and (IsComponentSelected('d2x') = true) then
begin
if PageID = DataDirPage.ID then
begin
result := false;
exit;
end;
if PageID = DataDirPage1.ID then
begin
result := true;
exit;
end;
if PageID = DataDirPage2.ID then
begin
result := true;
exit;
end;
exit;
end;
if (IsComponentSelected('d1x') = true) and (IsComponentSelected('d2x') = false) then
begin
if PageID = DataDirPage.ID then
begin
result := true;
exit;
end;
if PageID = DataDirPage1.ID then
begin
result := false;
exit;
end;
if PageID = DataDirPage2.ID then
begin
result := true;
exit;
end;
exit;
end;
if (IsComponentSelected('d1x') = false) and (IsComponentSelected('d2x') = true) then
begin
if PageID = DataDirPage.ID then
begin
result := true;
exit;
end;
if PageID = DataDirPage1.ID then
begin
result := true;
exit;
end;
if PageID = DataDirPage2.ID then
begin
result := false;
exit;
end;
exit;
end
else
begin
result := false;
end;
end;
function NextButtonClick(CurPageID: Integer): Boolean;
begin
if CurPageID = wpSelectComponents then
begin
if (IsComponentSelected('d1x') = false) and (IsComponentSelected('d2x') = false) then
begin
MsgBox('You didn'+chr(39)+'t select anything to install.', mbError, MB_OK);
result := false;
exit;
end
else
result := true;
end
else
result := true;
end;
function InstallAll(): Boolean;
begin
{ Return the value of the 'install' radiobutton }
//MsgBox('InstallSampleData.', mbError, MB_OK);
Result := SampleDataPage.Values[0];
end;
function Install(): Boolean;
begin
{ Return the value of the 'install' radiobutton }
//MsgBox('InstallSampleData.', mbError, MB_OK);
Result := SampleDataPage.Values[1];
end;
function DontInstall(): Boolean;
begin
Result := SampleDataPage.Values[2];
end;
function DescentTwo(Param: String): String;
begin
if Assigned(DataDirPage) then
begin
if (IsComponentSelected('d1x') = true) and (IsComponentSelected('d2x') = true) then
begin
result := DataDirPage.Values[1];
end;
if (IsComponentSelected('d1x') = false) and (IsComponentSelected('d2x') = true) then
begin
result := DataDirPage.Values[0];
end;
if (IsComponentSelected('d1x') = true) and (IsComponentSelected('d2x') = false) then
begin
result := '';
end;
end
else
result := '';
end;
function Descent(Param: String): String;
begin
if Assigned(DataDirPage) then
begin
if (IsComponentSelected('d1x') = false) and (IsComponentSelected('d2x') = true) then
begin
result := '';
end
else
begin
result := DataDirPage.Values[0];
end;
end
else
result := '';
end;
end.
精彩评论