; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

[Setup]
AppName=Zone Builder
AppVerName=Zone Builder v3.0
VersionInfoVersion=3.0.0.2700
AppPublisher=Sonic Team Junior
AppPublisherURL=https://www.srb2.org/
AppSupportURL=https://git.do.srb2.org/STJr/ZoneBuilder
AppUpdatesURL=https://git.do.srb2.org/STJr/ZoneBuilder
DefaultDirName={commonpf}\Zone Builder
DefaultGroupName=Zone Builder
AllowNoIcons=true
InfoBeforeFile=..\Setup\disclaimer.txt
OutputDir=..\Release
OutputBaseFilename=Zone Builder Setup
Compression=lzma/ultra64
SolidCompression=true
SourceDir=..\Build
SetupLogging=false
AppMutex=zonebuilder
PrivilegesRequired=admin
ShowLanguageDialog=no
LanguageDetectionMethod=none
MinVersion=0,6.1sp1
UninstallDisplayIcon={app}\Builder.exe
WizardImageFile=..\Setup\WizardLarge100.bmp,..\Setup\WizardLarge125.bmp,..\Setup\WizardLarge150.bmp,..\Setup\WizardLarge175.bmp,..\Setup\WizardLarge200.bmp,
WizardSmallImageFile=..\Setup\WizardSmall100.bmp,..\Setup\WizardSmall125.bmp,..\Setup\WizardSmall150.bmp,..\Setup\WizardSmall175.bmp,..\Setup\WizardSmall200.bmp
WizardImageAlphaFormat=defined
WizardImageStretch=false     
DisableDirPage=no
AlwaysShowDirOnReadyPage=yes

[Languages]
Name: english; MessagesFile: compiler:Default.isl

[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked

[Files]
Source: Builder.exe; DestDir: {app}; Flags: ignoreversion
Source: ZoneBuilder.default.cfg; DestDir: {app}; Flags: ignoreversion
Source: Refmanual.chm; DestDir: {app}; Flags: ignoreversion
Source: DevIL.dll; DestDir: {app}; Flags: ignoreversion
Source: SharpCompress.3.5.dll; DestDir: {app}; Flags: ignoreversion
Source: ScintillaNET.3.5.dll; DestDir: {app}; Flags: ignoreversion
Source: SlimDX.dll; DestDir: {app}; Flags: ignoreversion
Source: GPL.txt; DestDir: {app}; Flags: ignoreversion
Source: Compilers\*; DestDir: {app}\Compilers; Flags: ignoreversion recursesubdirs
Source: Configurations\*; DestDir: {app}\Configurations; Flags: ignoreversion recursesubdirs
Source: Scripting\*; DestDir: {app}\Scripting; Flags: ignoreversion recursesubdirs
Source: Snippets\*; DestDir: {app}\Snippets; Flags: ignoreversion recursesubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
Source: Plugins\BuilderModes.dll; DestDir: {app}\Plugins; Flags: ignoreversion
Source: Plugins\BuilderEffects.dll; DestDir: {app}\Plugins; Flags: ignoreversion
Source: Plugins\ColorPicker.dll; DestDir: {app}\Plugins; Flags: ignoreversion
Source: Plugins\CommentsPanel.dll; DestDir: {app}\Plugins; Flags: ignoreversion
Source: Plugins\NodesViewer.dll; DestDir: {app}\Plugins; Flags: ignoreversion
Source: Plugins\SoundPropagationMode.dll; DestDir: {app}\Plugins; Flags: ignoreversion
Source: Plugins\StairSectorBuilder.dll; DestDir: {app}\Plugins; Flags: ignoreversion
Source: Plugins\TagExplorer.dll; DestDir: {app}\Plugins; Flags: ignoreversion
Source: Plugins\TagRange.dll; DestDir: {app}\Plugins; Flags: ignoreversion
Source: Plugins\VisplaneExplorer.dll; DestDir: {app}\Plugins; Flags: ignoreversion
Source: Plugins\Loadorder.cfg; DestDir: {app}\Plugins; Flags: ignoreversion onlyifdoesntexist
Source: Sprites\*; DestDir: {app}\Sprites; Flags: ignoreversion recursesubdirs
Source: Textures\*; DestDir: {app}\Textures; Flags: ignoreversion

[Icons]
Name: {group}\Zone Builder; Filename: {app}\Builder.exe
Name: {group}\{cm:UninstallProgram,Zone Builder}; Filename: {uninstallexe}
Name: {commondesktop}\Zone Builder; Filename: {app}\Builder.exe; Tasks: desktopicon

[UninstallDelete]
Name: {app}; Type: filesandordirs

[InstallDelete]
Name: {app}\Builder.pdb; Type: files
Name: {app}\Builder.xml; Type: files              
Name: {app}\Configurations\Includes\Boom*; Type: files   
Name: {app}\Configurations\Includes\Common*; Type: files
Name: {app}\Configurations\Includes\Doom*; Type: files
Name: {app}\Configurations\Includes\Eternity*; Type: files
Name: {app}\Configurations\Includes\Game*; Type: files
Name: {app}\Configurations\Includes\GZDoom*; Type: files
Name: {app}\Configurations\Includes\Heretic*; Type: files
Name: {app}\Configurations\Includes\Hexen*; Type: files
Name: {app}\Configurations\Includes\Skulltag*; Type: files
Name: {app}\Configurations\Includes\Strife*; Type: files
Name: {app}\Configurations\Includes\Test*; Type: files
Name: {app}\Configurations\Includes\UDMF*; Type: files
Name: {app}\Configurations\Includes\Zandronum*; Type: files
Name: {app}\Configurations\Includes\ZDoom*; Type: files     
Name: {app}\Configurations\Other Games; Type: filesandordirs
Name: {app}\Configurations\Boom*; Type: files   
Name: {app}\Configurations\Doom*; Type: files
Name: {app}\Configurations\Eternity*; Type: files
Name: {app}\Configurations\GZDoom*; Type: files
Name: {app}\Configurations\Heretic*; Type: files
Name: {app}\Configurations\Hexen*; Type: files
Name: {app}\Configurations\Strife*; Type: files
Name: {app}\Configurations\Zandronum*; Type: files
Name: {app}\Configurations\ZDoom*; Type: files

[Registry]
Root: HKLM; Subkey: SOFTWARE\SRB2\Zone Builder\; ValueType: string; ValueName: Location; ValueData: {app}; Flags: uninsdeletevalue

[Messages]
ReadyLabel2a=Continue to begin with the installation, or click Back if you want to review or change any settings.

[Run]
Filename: "{app}\Builder.exe"; Description: Start Zone Builder; Flags: postinstall unchecked nowait

[Code]

//Remove configs?
procedure DeinitializeUninstall();
begin
	if MsgBox('Delete map restore data and program configuration files?', mbConfirmation, MB_YESNO) = IDYES then
	begin
		// Remove restore data
		DelTree(ExpandConstant('{localappdata}\Zone Builder\Restore'), True, True, True);

		// Remove configs
		DeleteFile(ExpandConstant('{localappdata}\Zone Builder\ZoneBuilder.cfg'));
		DeleteFile(ExpandConstant('{localappdata}\Zone Builder\ZoneBuilder.log'));
		DeleteFile(ExpandConstant('{localappdata}\Zone Builder\GZCrash.txt'));
	end;
end;