; Script generated by the Inno Setup Script Wizard. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! [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={{7AA590AB-748B-4C44-A192-A88297BB383C} AppName=OpenSpace3D Editor AppVersion=1.92 AppVerName=OpenSpace3D Editor 1.92 AppPublisher=I-maginer AppPublisherURL=https://www.openspace3d.com AppSupportURL=https://www.openspace3d.com AppUpdatesURL=https://www.openspace3d.com DefaultDirName={code:GetScolInstallDir} DefaultGroupName=OpenSpace3D OutputDir=release OutputBaseFilename=openspace3d_editor_setup SetupIconFile=..\..\scol_applications\openspace3d\os3deditor\os3deditor.ico Compression=lzma SolidCompression=true UninstallDisplayIcon={app}\scol.ico InternalCompressLevel=max VersionInfoVersion=1.92 VersionInfoCompany=I-maginer VersionInfoDescription=OpenSpace3D Editor VersionInfoCopyright=I-maginer 2023 MinVersion=0,5.01.2600 AppCopyright=I-maginer 2023 DisableProgramGroupPage=false CreateAppDir=true DisableDirPage=true UsePreviousAppDir=false SignTool=i-maginer ;sign setup i-maginer "C:\Program Files (x86)\Windows Kits\8.1\bin\x86\signtool" sign /a /t http://timestamp.globalsign.com/scripts/timestamp.dll $f [Languages] Name: english; MessagesFile: compiler:Default.isl Name: french; MessagesFile: compiler:Languages\French.isl [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}" Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked [Files] ; download Source: "..\common\isxdlfiles\isxdl.dll"; Flags: dontcopy ; application Source: "..\..\scol_applications\openspace3d\os3deditor\*"; DestDir: "{code:GetScolLockedDir}\tools\os3deditor"; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: ".svn,*.log,*.psd,*.max,*.docx, documentation, *.chinese.lang, *.italian.lang" Source: "..\..\scol_applications\openspace3d\os3dplayer\*"; DestDir: "{code:GetScolLockedDir}\tools\os3dplayer"; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: ".svn,*.log,*.psd,*.max,*.docx" Source: "..\..\scol_applications\openspace3d\os3dlib\*"; DestDir: "{code:GetScolLockedDir}\tools\os3dlib"; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: ".svn,*.log,*.psd,*.max" Source: "..\..\scol_applications\openspace3d\os3dplugins\*"; DestDir: "{code:GetScolLockedDir}\tools\os3dplugins"; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: ".svn,*.log,anr,jizen,pise,studec,gametools,emotiondetector,eyetracking,respirationbelt,nonin,vlc,oculus,materialreflection,kinect*,deferred,test*,tutorial,webrequest,physicstructure,terrain" Source: "..\..\scol_applications\openspace3d\demos\*"; DestDir: "{code:GetScolLockedDir}\demos"; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: ".svn,*.log,kinectdemo" Source: "..\..\scol_applications\openspace3d\examples\*"; DestDir: "{code:GetScolLockedDir}\examples"; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: ".svn,*.log" Source: "..\..\scol_applications\openspace3d\assets\materials\*"; DestDir: {code:GetScolLockedDir}\assets\materials; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: .svn,*.log Source: "..\..\scol_applications\openspace3d\assets\primitives\*"; DestDir: {code:GetScolLockedDir}\assets\primitives; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: .svn,*.log Source: "..\..\scol_applications\openspace3d\assets\models\common\*"; DestDir: {code:GetScolLockedDir}\assets\models\common; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: .svn,*.log Source: "..\..\scol_applications\openspace3d\assets\hud\*"; DestDir: {code:GetScolLockedDir}\assets\hud; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: .svn,*.log Source: "..\..\scol_applications\openspace3d\assets\templates\*"; DestDir: {code:GetScolLockedDir}\assets\templates; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: .svn,*.log Source: "..\..\scol_applications\openspace3d\assets\themes\*"; DestDir: {code:GetScolLockedDir}\assets\themes; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: .svn,*.log ;Source: "..\..\scol_applications\openspace3d\assets\*"; DestDir: {code:GetScolLockedDir}\assets; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: .svn,*.log [Icons] Name: {group}\OpenSpace3D Editor; Filename: {code:GetScolLockedDir}\tools\os3deditor\os3deditor.scol; IconIndex: 0; IconFilename: {code:GetScolLockedDir}\tools\os3deditor\os3deditor.ico Name: {group}\OpenSpace3D Player; Filename: {code:GetScolLockedDir}\tools\os3dplayer\os3dplayer.scol; IconIndex: 0; IconFilename: {code:GetScolLockedDir}\tools\os3deditor\os3deditor.ico Name: {group}\Demos\Kid Kitchen Demo; Filename: {code:GetScolLockedDir}\demos\kidkitchen\kidkitchen.scol; IconIndex: 0 Name: {group}\Demos\Car Showroom Demo; Filename: {code:GetScolLockedDir}\demos\car_showroom\car_showroom.scol; IconIndex: 0 Name: {group}\Demos\NeuroSky Demo; Filename: {code:GetScolLockedDir}\demos\neurosky\neurosky.scol; IconIndex: 0 Name: {group}\Demos\Scene 3D Demo; Filename: {code:GetScolLockedDir}\demos\scene3d\scene3d.scol; IconIndex: 0 Name: {group}\Demos\Solar system AR Demo; Filename: {code:GetScolLockedDir}\demos\solar_system\solar_system.scol; IconIndex: 0 Name: {group}\Demos\Solar system AR Demo Markers; Filename: {code:GetScolLockedDir}\demos\solar_system\markers.pdf; IconIndex: 0 Name: {group}\Demos\Solar system VR Demo; Filename: {code:GetScolLockedDir}\demos\solar_system\solar_system_vr.scol; IconIndex: 0 Name: {group}\Demos\Tutorial Demo; Filename: {code:GetScolLockedDir}\demos\tutorial\tutorial.scol; IconIndex: 0 Name: {group}\Demos\Vehicle Demo; Filename: {code:GetScolLockedDir}\demos\vehicle\vehicle.scol; IconIndex: 0 Name: {group}\Demos\Industrial Demo; Filename: {code:GetScolLockedDir}\demos\industry\industrial.scol; IconIndex: 0 Name: {group}\Demos\O3D boxing VR Demo; Filename: {code:GetScolLockedDir}\demos\leapmotion\o3dboxing_quest.scol; IconIndex: 0 Name: {group}\Demos\Leap Motion skeletal Demo; Filename: {code:GetScolLockedDir}\demos\leapmotion\skeletal.scol; IconIndex: 0 Name: {group}\Demos\Myo Demo; Filename: {code:GetScolLockedDir}\demos\myo\myo.scol; IconIndex: 0 Name: {group}\Demos\Network Demo; Filename: {code:GetScolLockedDir}\demos\network\network.scol; IconIndex: 0 Name: {group}\Demos\FPS Physic Demo; Filename: {code:GetScolLockedDir}\demos\FPSDemo\fpsdemo.scol; IconIndex: 0 Name: {group}\Demos\Loft 3D Demo; Filename: {code:GetScolLockedDir}\demos\loft3d\loft3d.scol; IconIndex: 0 Name: {group}\Demos\Alien Crash; Filename: {code:GetScolLockedDir}\demos\aliencrash\aliencrash.scol; IconIndex: 0 Name: {group}\Demos\Architecture; Filename: {code:GetScolLockedDir}\demos\architecture\scene1.scol; IconIndex: 0 Name: {group}\Demos\VR Shooting Gallery; Filename: {code:GetScolLockedDir}\demos\vrShootingGallery\vrshootinggallery.scol; IconIndex: 0 Name: {group}\Demos\3dRudder; Filename: {code:GetScolLockedDir}\demos\3drudder\3drudder.scol; IconIndex: 0 Name: {group}\Demos\Materials; Filename: {code:GetScolLockedDir}\demos\materials\materials.scol; IconIndex: 0 Name: {group}\Demos\VR cells; Filename: {code:GetScolLockedDir}\demos\vrcells\vrcells.scol; IconIndex: 0 Name: {group}\GPL licence; Filename: {code:GetScolLockedDir}\tools\os3deditor\COPYING.txt Name: {group}\LGPL licence; Filename: {code:GetScolLockedDir}\tools\os3deditor\COPYING.LESSER.txt Name: {group}\{cm:ProgramOnTheWeb,OpenSpace3D}; Filename: https://www.openspace3d.com Name: {group}\{cm:UninstallProgram,OpenSpace3D Editor}; Filename: {uninstallexe} Name: {commondesktop}\OpenSpace3D Editor; Filename: {code:GetScolLockedDir}\tools\os3deditor\os3deditor.scol; IconFilename: {code:GetScolLockedDir}\tools\os3deditor\os3deditor.ico; IconIndex: 0; Tasks: desktopicon Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\OpenSpace3D Editor; Filename: {code:GetScolLockedDir}\tools\os3deditor\os3deditor.scol; IconFilename: {code:GetScolLockedDir}\tools\os3deditor\os3deditor.ico; Tasks: quicklaunchicon Name: {group}\Documentation\{cm:ProgramOnTheWeb,Online documentation}; Filename: https://www.openspace3d.com/documentation/; Tasks: ; Languages: Name: {group}\examples; Filename: {code:GetScolLockedDir}\examples\; WorkingDir: {code:GetScolLockedDir}\examples\; Languages: english Name: {group}\exemples; Filename: {code:GetScolLockedDir}\examples\; WorkingDir: {code:GetScolLockedDir}\examples\; Languages: french [Run] Filename: {tmp}\scolplug.exe; Parameters: /SILENT; Check: CheckDownload and VoyagerIsNeeded; StatusMsg: Installing Scol Voy@ger...; AfterInstall: UpdateUsm Filename: {tmp}\os3d_3dlibrary_setup.exe; Parameters: /SILENT; Check: CheckDownload and IsComponentSelected('library'); StatusMsg: Installing 3D library...; Filename: {tmp}\scol_windows.exe; Parameters: /SILENT; Check: CheckDownload and IsComponentSelected('windowspack'); StatusMsg: Installing Windows Pack...; Filename: {tmp}\scol_android.exe; Parameters: /SILENT; Check: CheckDownload and IsComponentSelected('androidpack'); StatusMsg: Installing Android Pack...; Filename: {tmp}\scol_raspberrypi.exe; Parameters: /SILENT; Check: CheckDownload and IsComponentSelected('raspberrypipack'); StatusMsg: Installing Raspberry Pi Pack...; Filename: {tmp}\scol_macosx.exe; Parameters: /SILENT; Check: CheckDownload and IsComponentSelected('macosxpack'); StatusMsg: Installing MacOSX Pack...; Filename: {tmp}\scol_ios.exe; Parameters: /SILENT; Check: CheckDownload and IsComponentSelected('iospack'); StatusMsg: Installing IOS Pack...; Filename: {tmp}\scol_linux.exe; Parameters: /SILENT; Check: CheckDownload and IsComponentSelected('linuxpack'); StatusMsg: Installing Linux Pi Pack...; Filename: {tmp}\scol_kinect.exe; Check: CheckDownload and IsComponentSelected('kinectpack'); StatusMsg: Installing Kinect Pack...; [CustomMessages] french.NoScolInstalled=L'installation de Scol Voy@ger n'a pas été trouvée. Installez le Scol Voy@ger depuis www.scolring.org puis réessayez. english.NoScolInstalled=The Scol Voy@ger installation can not be found. Install the Scol Voy@ger from www.scolring.org and retry. french.BadScolInstalled=La version trouvée du Scol Voy@ger est obselète. Installez la dernière version du Scol Voy@ger depuis www.scolring.org puis réessayez. english.BadScolInstalled=You must install the last version of Scol Voy@ger from www.scolring.org. [Components] Name: "library"; Description: "Download and install Free 3D models from www.educartec.com.br"; ExtraDiskSpaceRequired: 1342799872; Types: custom full Name: "windowspack"; Description: "Download and install Windows deployer Pack for OpenSpace3D"; ExtraDiskSpaceRequired: 366056024; Types: custom full Name: "androidpack"; Description: "Download and install Android deployer Pack for OpenSpace3D"; ExtraDiskSpaceRequired: 44461030; Types: custom full Name: "raspberrypipack"; Description: "Download and install Raspberry Pi Pack for OpenSpace3D"; ExtraDiskSpaceRequired: 23850604; Types: custom full Name: "macosxpack"; Description: "Download and install MacOSX Pack for OpenSpace3D"; ExtraDiskSpaceRequired: 23850604; Types: custom full Name: "iospack"; Description: "Download and install IOS Pack for OpenSpace3D"; ExtraDiskSpaceRequired: 45096892; Types: custom full Name: "linuxpack"; Description: "Download and install Linux Pack for OpenSpace3D"; ExtraDiskSpaceRequired: 74988223; Types: custom full Name: "kinectpack"; Description: "Download and install Kinect Pack for OpenSpace3D"; ExtraDiskSpaceRequired: 216809400 [Code] var FilesDownloaded: Boolean; //use http://www.sherlocksoftware.org/page.php?id=51 for http download //#include ReadReg(HKEY_LOCAL_MACHINE,'Software\Sherlock Software\InnoTools\Downloader','ScriptPath','') procedure isxdl_AddFile(URL, Filename: AnsiString); external 'isxdl_AddFile@files:isxdl.dll stdcall'; function isxdl_DownloadFiles(hWnd: Integer): Integer; external 'isxdl_DownloadFiles@files:isxdl.dll stdcall'; function isxdl_SetOption(Option, Value: AnsiString): Integer; external 'isxdl_SetOption@files:isxdl.dll stdcall'; #include "../common/common_type.iss" var InternalMsgs: array of TInternalMsg; var NeedVoyager: Boolean; var ScolUserPartition: String; var ScolLockedPartition: String; var ScolDir: String; #include "../common/common_code.iss" function VoyagerIsNeeded(): Boolean; begin Result := NeedVoyager; end; function GetScolUserDir(Default: String): String; begin Result := ScolUserPartition; end; function GetScolLockedDir(Default: String): String; begin Result := ScolLockedPartition; end; function GetVoyagerDir(): String; begin Result := ScolDir; end; /////////////////////////////// // Scol install directory function GetScolInstallDir(Default: String): String; var UsmIni: String; UsmFile: String; ArrUsmIni: array of String; Value: String; begin if IsWin64 then begin Value := GetScolDir(ExpandConstant('{pf64}') + '\Scol Voyager'); end else begin Value := GetScolDir(ExpandConstant('{pf}') + '\Scol Voyager'); end; if (CheckScolVer(Value) = False) then begin NeedVoyager := True; end else begin NeedVoyager := False; end; ScolDir := Value; UsmFile := GetVoyagerDir() + '\usm.ini'; // update usm.ini LoadStringFromFile(UsmFile, UsmIni); if FileExists(UsmFile) = true then begin FileCopy (UsmFile, GetVoyagerDir() + '\usm.bak', false); SetArrayLength(ArrUsmIni, 0); Strings2Array(UsmIni, ArrUsmIni); // add the OpenSpace3D partition InstallPartition(ArrUsmIni, './OpenSpace3D', True); SaveStringsToFile(UsmFile, ArrUsmIni, false); end; ScolUserPartition := GetScolUserPartitionDir(Value, ExpandConstant('{userdocs}') + '\OpenSpace3D'); ScolLockedPartition := GetScolLockedPartitionDir(Value, Value + '\Partition_LockedApp'); Result := Value; end; procedure UpdateUsm(); var UsmIni: String; UsmFile: String; ArrUsmIni: array of String; begin UsmFile := GetVoyagerDir() + '\usm.ini'; // update usm.ini LoadStringFromFile(UsmFile, UsmIni); if FileExists(UsmFile) = true then begin FileCopy (UsmFile, GetVoyagerDir() + '\usm.bak', false); SetArrayLength(ArrUsmIni, 0); Strings2Array(UsmIni, ArrUsmIni); // add the OpenSpace3D partition InstallPartition(ArrUsmIni, './OpenSpace3D', True); SaveStringsToFile(UsmFile, ArrUsmIni, false); end; end; var ResultCode: Integer; procedure CurStepChanged(CurStep: TSetupStep); var Uninstall: String; begin if (CurStep = ssInstall) then begin // Kill Scol Voyager and wait for it to terminate if Exec(ExpandConstant('tskill'), 'scol', '', SW_HIDE, ewNoWait, ResultCode) OR Exec(ExpandConstant('taskkill'), '/IM ' + GetScolExe() + ' /F', '', SW_HIDE, ewNoWait, ResultCode) then begin // handle success if necessary; ResultCode contains the exit code //MsgBox('ok', mbInformation, MB_OK); end else begin // handle failure if necessary; ResultCode contains the error code //MsgBox('pas ok', mbInformation, MB_OK); end; if RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\{7AA590AB-748B-4C44-A192-A88297BB383C}_is1', 'UninstallString', Uninstall) then begin Exec(RemoveQuotes(Uninstall), ' /SILENT', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode); end; end else if (CurStep = ssDone) then begin // Kill Scol Voyager if it starts after voyager install if Exec(ExpandConstant('tskill'), 'scol', '', SW_HIDE, ewNoWait, ResultCode) OR Exec(ExpandConstant('taskkill'), '/IM ' + GetScolExe() + ' /F', '', SW_HIDE, ewNoWait, ResultCode) then begin end; end; end; procedure CurPageChanged(CurPageID: Integer); var hWnd: Integer; URL, FileName: String; begin if (CurPageID = wpReady) then begin isxdl_SetOption('label', 'Downloading extra files'); isxdl_SetOption('description', 'Please wait while Setup is downloading extra files to your computer.'); FilesDownloaded := False; //turn off isxdl resume so it won't leave partially downloaded files behind //resuming wouldn't help anyway since we're going to download to {tmp} isxdl_SetOption('resume', 'false'); hWnd := StrToInt(ExpandConstant('{wizardhwnd}')); if (NeedVoyager = True) OR IsComponentSelected('library') OR IsComponentSelected('windowspack') OR IsComponentSelected('androidpack') OR IsComponentSelected('macosxpack') OR IsComponentSelected('iospack') OR IsComponentSelected('linuxpack') OR IsComponentSelected('kinectpack') OR IsComponentSelected('raspberrypipack') then begin if (NeedVoyager = True) then begin if IsWin64 then begin URL := 'http://www.openspace3d.com/downloads/Scol_Voyager_x64'; end else begin URL := 'http://www.openspace3d.com/downloads/Scol_Voyager'; end; FileName := ExpandConstant('{tmp}\scolplug.exe'); isxdl_AddFile(URL, FileName); end; if IsComponentSelected('windowspack') then begin URL := 'http://www.openspace3d.com/downloads/WindowsPack'; FileName := ExpandConstant('{tmp}\scol_windows.exe'); isxdl_AddFile(URL, FileName); end; if IsComponentSelected('androidpack') then begin URL := 'http://www.openspace3d.com/downloads/AndroidPack'; FileName := ExpandConstant('{tmp}\scol_android.exe'); isxdl_AddFile(URL, FileName); end; if IsComponentSelected('raspberrypipack') then begin URL := 'http://www.openspace3d.com/downloads/RaspberryPiPack'; FileName := ExpandConstant('{tmp}\scol_raspberrypi.exe'); isxdl_AddFile(URL, FileName); end; if IsComponentSelected('macosxpack') then begin URL := 'http://www.openspace3d.com/downloads/MacOSXPack'; FileName := ExpandConstant('{tmp}\scol_macosx.exe'); isxdl_AddFile(URL, FileName); end; if IsComponentSelected('iospack') then begin URL := 'http://www.openspace3d.com/downloads/IosPack'; FileName := ExpandConstant('{tmp}\scol_ios.exe'); isxdl_AddFile(URL, FileName); end; if IsComponentSelected('linuxpack') then begin URL := 'http://www.openspace3d.com/downloads/LinuxPack'; FileName := ExpandConstant('{tmp}\scol_linux.exe'); isxdl_AddFile(URL, FileName); end; if IsComponentSelected('library') then begin URL := 'http://www.openspace3d.com/downloads/os3d_3dlibrary'; FileName := ExpandConstant('{tmp}\os3d_3dlibrary_setup.exe'); isxdl_AddFile(URL, FileName); end; if IsComponentSelected('kinectpack') then begin if IsWin64 then begin URL := 'http://www.openspace3d.com/downloads/KinectPack_x64'; end else begin URL := 'http://www.openspace3d.com/downloads/KinectPack'; end; FileName := ExpandConstant('{tmp}\scol_kinect.exe'); isxdl_AddFile(URL, FileName); end; if isxdl_DownloadFiles(hWnd) <> 0 then FilesDownloaded := True else SuppressibleMsgBox('Setup could not download the extra files. Try again later or download and install the extra files manually.' + #13#13 + 'Setup will now continue installing normally.', mbError, mb_Ok, idOk); end; end end; procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); begin if (CurUninstallStep = usUninstall) then begin // Kill Scol Voyager and wait for it to terminate if Exec(ExpandConstant('tskill'), 'scol', '', SW_HIDE, ewNoWait, ResultCode) OR Exec(ExpandConstant('taskkill'), '/IM ' + GetScolExe() + ' /F', '', SW_HIDE, ewNoWait, ResultCode) then begin // handle success if necessary; ResultCode contains the exit code //MsgBox('ok', mbInformation, MB_OK); end else begin // handle failure if necessary; ResultCode contains the error code //MsgBox('pas ok', mbInformation, MB_OK); end; end; end; function CheckDownload: Boolean; begin Result := FilesDownloaded; end;