-
-; *** Buttons
-ButtonBack=< Na&zaj
-ButtonNext=&Naprej >
-ButtonInstall=&Namesti
-ButtonOK=V redu
-ButtonCancel=Preklii
-ButtonYes=&Da
-ButtonYesToAll=Da za &vse
-ButtonNo=&Ne
-ButtonNoToAll=N&e za vse
-ButtonFinish=&Konaj
-ButtonBrowse=Pre&brskaj...
-ButtonWizardBrowse=Pre&brskaj...
-ButtonNewFolder=&Ustvari novo mapo
-
-; *** "Select Language" dialog messages
-SelectLanguageTitle=Izbira jezika namestitve
-SelectLanguageLabel=Izberite jezik, ki ga elite uporabljati med namestitvijo.
-
-; *** Common wizard text
-ClickNext=Kliknite Naprej za nadaljevanje namestitve ali Preklii za prekinitev namestitve.
-BeveledLabel=
-BrowseDialogTitle=Izbira mape
-BrowseDialogLabel=Izberite mapo s spiska, nato kliknite V redu.
-NewFolderName=Nova mapa
-
-; *** "Welcome" wizard page
-WelcomeLabel1=Dobrodoli v namestitev programa [name].
-WelcomeLabel2=V raunalnik boste namestili program [name/ver].%n%nPriporoljivo je, da pred zaetkom namestitve zaprete vse odprte programe.
-
-; *** "Password" wizard page
-WizardPassword=Geslo
-PasswordLabel1=Namestitev je zaitena z geslom.
-PasswordLabel3=Vnesite geslo, nato kliknite Naprej za nadaljevanje. Pri vnaanju pazite na male in velike rke.
-PasswordEditLabel=&Geslo:
-IncorrectPassword=Vneseno geslo ni pravilno. Poizkusite ponovno.
-
-; *** "License Agreement" wizard page
-WizardLicense=Licenna pogodba
-LicenseLabel=Pred nadaljevanjem preberite licenno pogodbo za uporabo programa.
-LicenseLabel3=Preberite licenno pogodbo za uporabo programa. Program lahko namestite le, e se s pogodbo v celoti strinjate.
-LicenseAccepted=&Da, sprejemam vse pogoje licenne pogodbe
-LicenseNotAccepted=N&e, pogojev licenne pogodbe ne sprejmem
-
-; *** "Information" wizard pages
-WizardInfoBefore=Informacije
-InfoBeforeLabel=Pred nadaljevanjem preberite naslednje pomembne informacije.
-InfoBeforeClickLabel=Ko boste pripravljeni na nadaljevanje namestitve, kliknite Naprej.
-WizardInfoAfter=Informacije
-InfoAfterLabel=Pred nadaljevanjem preberite naslednje pomembne informacije.
-InfoAfterClickLabel=Ko boste pripravljeni na nadaljevanje namestitve, kliknite Naprej.
-
-; *** "User Information" wizard page
-WizardUserInfo=Podatki o uporabniku
-UserInfoDesc=Vnesite svoje podatke.
-UserInfoName=&Ime:
-UserInfoOrg=&Podjetje:
-UserInfoSerial=&Serijska tevilka:
-UserInfoNameRequired=Vnos imena je obvezen.
-
-; *** "Select Destination Location" wizard page
-WizardSelectDir=Izbira ciljnega mesta
-SelectDirDesc=Kam elite namestiti program [name]?
-SelectDirLabel3=Program [name] bo nameen v naslednjo mapo.
-SelectDirBrowseLabel=Za nadaljevanje kliknite Naprej. e elite izbrati drugo mapo, kliknite Prebrskaj.
-DiskSpaceGBLabel=Na disku mora biti vsaj [gb] GB prostora.
-DiskSpaceMBLabel=Na disku mora biti vsaj [mb] MB prostora.
-CannotInstallToNetworkDrive=Programa ni mogoe namestiti na mreni pogon.
-CannotInstallToUNCPath=Programa ni mogoe namestiti v UNC pot.
-InvalidPath=Vpisati morate polno pot vkljuno z oznako pogona. Primer:%n%nC:\PROGRAM%n%nali UNC pot v obliki:%n%n\\strenik\mapa_skupne_rabe
-InvalidDrive=Izbrani pogon ali omreno sredstvo UNC ne obstaja ali ni dostopno. Izberite drugega.
-DiskSpaceWarningTitle=Na disku ni dovolj prostora
-DiskSpaceWarning=Namestitev potrebuje vsaj %1 KB prostora, toda na izbranem pogonu je na voljo le %2 KB.%n%nelite kljub temu nadaljevati?
-DirNameTooLong=Ime mape ali poti je predolgo.
-InvalidDirName=Ime mape ni veljavno.
-BadDirName32=Ime mape ne sme vsebovati naslednjih znakov:%n%n%1
-DirExistsTitle=Mapa e obstaja
-DirExists=Mapa%n%n%1%n%ne obstaja. elite program vseeno namestiti v to mapo?
-DirDoesntExistTitle=Mapa ne obstaja
-DirDoesntExist=Mapa %n%n%1%n%nne obstaja. Ali jo elite ustvariti?
-
-; *** "Select Components" wizard page
-WizardSelectComponents=Izbira komponent
-SelectComponentsDesc=Katere komponente elite namestiti?
-SelectComponentsLabel2=Oznaite komponente, ki jih elite namestiti; odznaite komponente, ki jih ne elite namestiti. Kliknite Naprej, ko boste pripravljeni za nadaljevanje.
-FullInstallation=Popolna namestitev
-; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
-CompactInstallation=Osnovna namestitev
-CustomInstallation=Namestitev po meri
-NoUninstallWarningTitle=Komponente e obstajajo
-NoUninstallWarning=Namestitveni program je ugotovil, da so naslednje komponente e nameene v raunalniku:%n%n%1%n%nNamestitveni program teh e nameenih komponent ne bo odstranil.%n%nelite vseeno nadaljevati?
-ComponentSize1=%1 KB
-ComponentSize2=%1 MB
-ComponentsDiskSpaceGBLabel=Za izbrano namestitev potrebujete vsaj [gb] GB prostora na disku.
-ComponentsDiskSpaceMBLabel=Za izbrano namestitev potrebujete vsaj [mb] MB prostora na disku.
-
-; *** "Select Additional Tasks" wizard page
-WizardSelectTasks=Izbira dodatnih opravil
-SelectTasksDesc=Katera dodatna opravila elite izvesti?
-SelectTasksLabel2=Izberite dodatna opravila, ki jih bo namestitveni program opravil med namestitvijo programa [name], nato kliknite Naprej.
-
-; *** "Select Start Menu Folder" wizard page
-WizardSelectProgramGroup=Izbira mape v meniju Zaetek
-SelectStartMenuFolderDesc=Kje naj namestitveni program ustvari blinjice?
-SelectStartMenuFolderLabel3=Namestitveni program bo ustvaril blinjice v naslednji mapi v meniju Start.
-SelectStartMenuFolderBrowseLabel=Za nadaljevanje kliknite Naprej. e elite izbrati drugo mapo, kliknite Prebrskaj.
-MustEnterGroupName=Ime skupine mora biti vpisano.
-GroupNameTooLong=Ime mape ali poti je predolgo.
-InvalidGroupName=Ime mape ni veljavno.
-BadGroupName=Ime skupine ne sme vsebovati naslednjih znakov:%n%n%1
-NoProgramGroupCheck2=&Ne ustvari mape v meniju Start
-
-; *** "Ready to Install" wizard page
-WizardReady=Pripravljen za namestitev
-ReadyLabel1=Namestitveni program je pripravljen za namestitev programa [name] v va raunalnik.
-ReadyLabel2a=Kliknite Namesti za zaetek nameanja. Kliknite Nazaj, e elite pregledati ali spremeniti katerokoli nastavitev.
-ReadyLabel2b=Kliknite Namesti za zaetek nameanja.
-ReadyMemoUserInfo=Podatki o uporabniku:
-ReadyMemoDir=Ciljno mesto:
-ReadyMemoType=Vrsta namestitve:
-ReadyMemoComponents=Izbrane komponente:
-ReadyMemoGroup=Mapa v meniju Zaetek:
-ReadyMemoTasks=Dodatna opravila:
-
-; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
-DownloadingLabel=Prenaam dodatne datoteke...
-ButtonStopDownload=Prekini preno&s
-StopDownload=Ali res elite prekiniti prenos?
-ErrorDownloadAborted=Prenos prekinjen
-ErrorDownloadFailed=Prenos ni uspel: %1 %2
-ErrorDownloadSizeFailed=Pridobivanje velikosti ni uspelo: %1 %2
-ErrorFileHash1=Pridobivanje zgoene vrednosti ni uspelo: %1
-ErrorFileHash2=Neveljavna zgoena vrednost: priakovana %1, dobljena %2
-ErrorProgress=Neveljaven potek: %1 od %2
-ErrorFileSize=Neveljavna velikost datoteke: priakovana %1, dobljena %2
-
-; *** "Preparing to Install" wizard page
-WizardPreparing=Pripravljam za namestitev
-PreparingDesc=Namestitveni program je pripravljen za namestitev programa [name] v va raunalnik.
-PreviousInstallNotCompleted=Namestitev ali odstranitev prejnjega programa ni bila konana. Da bi jo dokonali, morate raunalnik znova zagnati.%n%nPo ponovnem zagonu raunalnika znova zaenite namestitveni program, da boste konali namestitev programa [name].
-CannotContinue=Namestitveni program ne more nadaljevati. Pritisnite Preklii za izhod.
-
-; *** "Installing" wizard page
-ApplicationsFound=Naslednji programi uporabljajo datoteke, ki jih mora namestitveni program posodobiti. Priporoljivo je, da namestitvenemu programu dovolite, da te programe kona.
-ApplicationsFound2=Naslednji programi uporabljajo datoteke, ki jih mora namestitveni program posodobiti. Priporoljivo je, da namestitvenemu programu dovolite, da te programe kona. Po koncu namestitve bo namestitveni program poizkusil znova zagnati te programe.
-CloseApplications=S&amodejno zapri programe
-DontCloseApplications=&Ne zapri programov
-ErrorCloseApplications=Namestitvenemu programu ni uspelo samodejno zapreti vseh programov. Priporoljivo je, da pred nadaljevanjem zaprete vse programe, ki uporabljajo datoteke, katere mora namestitev posodobiti.
-PrepareToInstallNeedsRestart=Namestitveni program mora znova zagnati va raunalnik. Za dokonanje namestitve programa [name], po ponovnem zagonu znova zaenite namestitveni program.%n%nAli elite zdaj znova zagnati raunalnik?
-
-WizardInstalling=Nameanje
-InstallingLabel=Poakajte, da bo program [name] nameen v va raunalnik.
-
-; *** "Setup Completed" wizard page
-FinishedHeadingLabel=Zakljuek namestitve programa [name]
-FinishedLabelNoIcons=Program [name] je nameen v va raunalnik.
-FinishedLabel=Program [name] je nameen v va raunalnik. Program zaenete tako, da odprete pravkar ustvarjene programske ikone.
-ClickFinish=Kliknite tipko Konaj za zakljuek namestitve.
-FinishedRestartLabel=Za dokonanje namestitve programa [name] morate raunalnik znova zagnati. Ali ga elite znova zagnati zdaj?
-FinishedRestartMessage=Za dokonanje namestitve programa [name] morate raunalnik znova zagnati. %n%nAli ga elite znova zagnati zdaj?
-ShowReadmeCheck=elim prebrati datoteko BERIME
-YesRadio=&Da, raunalnik znova zaeni zdaj
-NoRadio=&Ne, raunalnik bom znova zagnal pozneje
-
-; used for example as 'Run MyProg.exe'
-RunEntryExec=Zaeni %1
-; used for example as 'View Readme.txt'
-RunEntryShellExec=Preglej %1
-
-; *** "Setup Needs the Next Disk" stuff
-ChangeDiskTitle=Namestitveni program potrebuje naslednji disk
-SelectDiskLabel2=Vstavite disk %1 in kliknite V redu.%n%ne se datoteke s tega diska nahajajo v drugi mapi kot je navedena spodaj, vnesite pravilno pot ali kliknite Prebrskaj.
-PathLabel=&Pot:
-FileNotInDir2=Datoteke %1 ni v mapi %2. Vstavite pravilni disk ali izberite drugo mapo.
-SelectDirectoryLabel=Vnesite mesto naslednjega diska.
-
-; *** Installation phase messages
-SetupAborted=Namestitev ni bila konana.%n%nOdpravite teavo in znova odprite namestitveni program.
-AbortRetryIgnoreSelectAction=Izberite dejanje
-AbortRetryIgnoreRetry=Poizkusi &znova
-AbortRetryIgnoreIgnore=&Prezri napako in nadaljuj
-AbortRetryIgnoreCancel=Preklii namestitev
-
-; *** Installation status messages
-StatusClosingApplications=Zapiranje programov...
-StatusCreateDirs=Ustvarjanje map...
-StatusExtractFiles=Razirjanje datotek...
-StatusCreateIcons=Ustvarjanje blinjic...
-StatusCreateIniEntries=Vpisovanje v INI datoteke...
-StatusCreateRegistryEntries=Ustvarjanje vnosov v register...
-StatusRegisterFiles=Registriranje datotek...
-StatusSavingUninstall=Zapisovanje podatkov za odstranitev...
-StatusRunProgram=Zakljuevanje namestitve...
-StatusRestartingApplications=Zaganjanje programov...
-StatusRollback=Obnavljanje prvotnega stanja...
-
-; *** Misc. errors
-ErrorInternal2=Interna napaka: %1
-ErrorFunctionFailedNoCode=%1 ni uspel(a)
-ErrorFunctionFailed=%1 ni uspel(a); koda %2
-ErrorFunctionFailedWithMessage=%1 ni uspela; koda %2.%n%3
-ErrorExecutingProgram=Ne morem zagnati programa:%n%1
-
-; *** Registry errors
-ErrorRegOpenKey=Napaka pri odpiranju kljua v registru:%n%1\%2
-ErrorRegCreateKey=Napaka pri ustvarjanju kljua v registru:%n%1\%2
-ErrorRegWriteKey=Napaka pri pisanju kljua v registru:%n%1\%2
-
-; *** INI errors
-ErrorIniEntry=Napaka pri vpisu v INI datoteko %1.
-
-; *** File copying errors
-FileAbortRetryIgnoreSkipNotRecommended=Pre&skoi to datoteko (ni priporoeno)
-FileAbortRetryIgnoreIgnoreNotRecommended=Prezr&i napako in nadaljuj (ni priporoeno)
-SourceIsCorrupted=Izvorna datoteka je okvarjena
-SourceDoesntExist=Izvorna datoteka %1 ne obstaja
-ExistingFileReadOnly2=Obstojee datoteke ni mogoe nadomestiti, ker ima oznako samo za branje.
-ExistingFileReadOnlyRetry=Odst&rani oznako samo za branje in poizkusi ponovno
-ExistingFileReadOnlyKeepExisting=&Ohrani obstojeo datoteko
-ErrorReadingExistingDest=Pri branju obstojee datoteke je prilo do napake:
-FileExistsSelectAction=Izberite dejanje
-FileExists2=Datoteka e obstaja.
-FileExistsOverwriteExisting=&Prepii obstojeo datoteko
-FileExistsKeepExisting=&Ohrani trenutno datoteko
-FileExistsOverwriteOrKeepAll=&To naredite za preostale spore
-ExistingFileNewerSelectAction=Izberite dejanje
-ExistingFileNewer2=Obstojea datoteka je noveja, kot datoteka, ki se namea.
-ExistingFileNewerOverwriteExisting=&Prepii obstojeo datoteko
-ExistingFileNewerKeepExisting=&Ohrani trenutno datoteko (priporoeno)
-ExistingFileNewerOverwriteOrKeepAll=&To naredite za preostale spore
-ErrorChangingAttr=Pri poskusu spremembe lastnosti datoteke je prilo do napake:
-ErrorCreatingTemp=Pri ustvarjanju datoteke v ciljni mapi je prilo do napake:
-ErrorReadingSource=Pri branju izvorne datoteke je prilo do napake:
-ErrorCopying=Pri kopiranju datoteke je prilo do napake:
-ErrorReplacingExistingFile=Pri poskusu zamenjave obstojee datoteke je prilo do napake:
-ErrorRestartReplace=Napaka RestartReplace:
-ErrorRenamingTemp=Pri poskusu preimenovanja datoteke v ciljni mapi je prilo do napake:
-ErrorRegisterServer=Registracija DLL/OCX ni uspela: %1
-ErrorRegSvr32Failed=RegSvr32 ni uspel s kodo napake %1
-ErrorRegisterTypeLib=Registracija TypeLib ni uspela: %1
-
-; *** Uninstall display name markings
-UninstallDisplayNameMark=%1 (%2)
-UninstallDisplayNameMarks=%1 (%2, %3)
-UninstallDisplayNameMark32Bit=32-bitno
-UninstallDisplayNameMark64Bit=64-bitno
-UninstallDisplayNameMarkAllUsers=vsi uporabniki
-UninstallDisplayNameMarkCurrentUser=trenutni uporabnik
-
-; *** Post-installation errors
-ErrorOpeningReadme=Pri odpiranju datoteke BERIME je prilo do napake.
-ErrorRestartingComputer=Namestitvenemu programu ni uspelo znova zagnati raunalnika. Sami znova zaenite raunalnik.
-
-; *** Uninstaller messages
-UninstallNotFound=Datoteka %1 ne obstaja. Odstranitev ni mogoa.
-UninstallOpenError=Datoteke %1 ne morem odpreti. Ne morem odstraniti
-UninstallUnsupportedVer=Dnevnika datoteka %1 je v obliki, ki je ta razliica odstranitvenega programa ne razume. Programa ni mogoe odstraniti
-UninstallUnknownEntry=V dnevniki datoteki je bil najden neznani vpis (%1)
-ConfirmUninstall=Ste prepriani, da elite v celoti odstraniti program %1 in pripadajoe komponente?
-UninstallOnlyOnWin64=To namestitev je mogoe odstraniti le v 64-bitni razliici sistema Windows.
-OnlyAdminCanUninstall=Za odstranitev tega programa morate imeti skrbnike pravice.
-UninstallStatusLabel=Poakajte, da se program %1 odstrani iz vaega raunalnika.
-UninstalledAll=Program %1 je bil uspeno odstranjen iz vaega raunalnika.
-UninstalledMost=Odstranjevanje programa %1 je konano.%n%nNekatere datoteke niso bile odstranjene in jih lahko odstranite rono.
-UninstalledAndNeedsRestart=Za dokonanje odstranitve programa %1 morate raunalnik znova zagnati.%n%nAli ga elite znova zagnati zdaj?
-UninstallDataCorrupted=Datoteka %1 je okvarjena. Odstranitev ni mona
-
-; *** Uninstallation phase messages
-ConfirmDeleteSharedFileTitle=elite odstraniti datoteko v skupni rabi?
-ConfirmDeleteSharedFile2=Spodaj izpisane datoteke v skupni rabi ne uporablja ve noben program. elite odstraniti to datoteko?%n%ne jo uporablja katerikoli program in jo boste odstranili, ta program verjetno ne bo ve deloval pravilno. e niste prepriani, kliknite Ne. e boste datoteko ohranili v raunalniku, ne bo ni narobe.
-SharedFileNameLabel=Ime datoteke:
-SharedFileLocationLabel=Mesto:
-WizardUninstalling=Odstranjevanje programa
-StatusUninstalling=Odstranjujem %1...
-
-ShutdownBlockReasonInstallingApp=Nameam %1.
-ShutdownBlockReasonUninstallingApp=Odstranjujem %1.
-
-[CustomMessages]
-
-NameAndVersion=%1 razliica %2
-AdditionalIcons=Dodatne ikone:
-CreateDesktopIcon=Ustvari ikono na &namizju
-CreateQuickLaunchIcon=Ustvari ikono za &hitri zagon
-ProgramOnTheWeb=%1 na spletu
-UninstallProgram=Odstrani %1
-LaunchProgram=Odpri %1
-AssocFileExtension=&Povei %1 s pripono %2
-AssocingFileExtension=Povezujem %1 s pripono %2...
-AutoStartProgramGroupDescription=Zagon:
-AutoStartProgram=Samodejno zaeni %1
-AddonHostProgramNotFound=Programa %1 ni bilo mogoe najti v izbrani mapi.%n%nAli elite vseeno nadaljevati?
diff --git a/Dependencies/Inno/Languages/Spanish.isl b/Dependencies/Inno/Languages/Spanish.isl
deleted file mode 100644
index 0bd5df2f..00000000
--- a/Dependencies/Inno/Languages/Spanish.isl
+++ /dev/null
@@ -1,383 +0,0 @@
-; *** Inno Setup version 6.1.0+ Spanish messages ***
-;
-; Maintained by Jorge Andres Brugger (jbrugger@ideaworks.com.ar)
-; Spanish.isl version 1.5 (20200727)
-; Default.isl version 6.1.0
-;
-; Thanks to Germn Giraldo, Jordi Latorre, Ximo Tamarit, Emiliano Llano,
-; Ramn Verduzco, Graciela Garca, Carles Millan and Rafael Barranco-Droege
-
-[LangOptions]
-; The following three entries are very important. Be sure to read and
-; understand the '[LangOptions] section' topic in the help file.
-LanguageName=Espa<00F1>ol
-LanguageID=$0c0a
-LanguageCodePage=1252
-; If the language you are translating to requires special font faces or
-; sizes, uncomment any of the following entries and change them accordingly.
-;DialogFontName=
-;DialogFontSize=8
-;WelcomeFontName=Verdana
-;WelcomeFontSize=12
-;TitleFontName=Arial
-;TitleFontSize=29
-;CopyrightFontName=Arial
-;CopyrightFontSize=8
-
-[Messages]
-
-; *** Application titles
-SetupAppTitle=Instalar
-SetupWindowTitle=Instalar - %1
-UninstallAppTitle=Desinstalar
-UninstallAppFullTitle=Desinstalar - %1
-
-; *** Misc. common
-InformationTitle=Informacin
-ConfirmTitle=Confirmar
-ErrorTitle=Error
-
-; *** SetupLdr messages
-SetupLdrStartupMessage=Este programa instalar %1. Desea continuar?
-LdrCannotCreateTemp=Imposible crear archivo temporal. Instalacin interrumpida
-LdrCannotExecTemp=Imposible ejecutar archivo en la carpeta temporal. Instalacin interrumpida
-HelpTextNote=
-
-; *** Startup error messages
-LastErrorMessage=%1.%n%nError %2: %3
-SetupFileMissing=El archivo %1 no se encuentra en la carpeta de instalacin. Por favor, solucione el problema u obtenga una copia nueva del programa.
-SetupFileCorrupt=Los archivos de instalacin estn daados. Por favor, obtenga una copia nueva del programa.
-SetupFileCorruptOrWrongVer=Los archivos de instalacin estn daados o son incompatibles con esta versin del programa de instalacin. Por favor, solucione el problema u obtenga una copia nueva del programa.
-InvalidParameter=Se ha utilizado un parmetro no vlido en la lnea de comandos:%n%n%1
-SetupAlreadyRunning=El programa de instalacin an est ejecutndose.
-WindowsVersionNotSupported=Este programa no es compatible con la versin de Windows de su equipo.
-WindowsServicePackRequired=Este programa requiere %1 Service Pack %2 o posterior.
-NotOnThisPlatform=Este programa no se ejecutar en %1.
-OnlyOnThisPlatform=Este programa debe ejecutarse en %1.
-OnlyOnTheseArchitectures=Este programa slo puede instalarse en versiones de Windows diseadas para las siguientes arquitecturas de procesadores:%n%n%1
-WinVersionTooLowError=Este programa requiere %1 versin %2 o posterior.
-WinVersionTooHighError=Este programa no puede instalarse en %1 versin %2 o posterior.
-AdminPrivilegesRequired=Debe iniciar la sesin como administrador para instalar este programa.
-PowerUserPrivilegesRequired=Debe iniciar la sesin como administrador o como miembro del grupo de Usuarios Avanzados para instalar este programa.
-SetupAppRunningError=El programa de instalacin ha detectado que %1 est ejecutndose.%n%nPor favor, cirrelo ahora, luego haga clic en Aceptar para continuar o en Cancelar para salir.
-UninstallAppRunningError=El desinstalador ha detectado que %1 est ejecutndose.%n%nPor favor, cirrelo ahora, luego haga clic en Aceptar para continuar o en Cancelar para salir.
-
-; *** Startup questions
-PrivilegesRequiredOverrideTitle=Seleccin del Modo de Instalacin
-PrivilegesRequiredOverrideInstruction=Seleccione el modo de instalacin
-PrivilegesRequiredOverrideText1=%1 puede ser instalado para todos los usuarios (requiere privilegios administrativos), o solo para Ud.
-PrivilegesRequiredOverrideText2=%1 puede ser instalado solo para Ud, o para todos los usuarios (requiere privilegios administrativos).
-PrivilegesRequiredOverrideAllUsers=Instalar para &todos los usuarios
-PrivilegesRequiredOverrideAllUsersRecommended=Instalar para &todos los usuarios (recomendado)
-PrivilegesRequiredOverrideCurrentUser=Instalar para &m solamente
-PrivilegesRequiredOverrideCurrentUserRecommended=Instalar para &m solamente (recomendado)
-
-; *** Misc. errors
-ErrorCreatingDir=El programa de instalacin no pudo crear la carpeta "%1"
-ErrorTooManyFilesInDir=Imposible crear un archivo en la carpeta "%1" porque contiene demasiados archivos
-
-; *** Setup common messages
-ExitSetupTitle=Salir de la Instalacin
-ExitSetupMessage=La instalacin no se ha completado an. Si cancela ahora, el programa no se instalar.%n%nPuede ejecutar nuevamente el programa de instalacin en otra ocasin para completarla.%n%nSalir de la instalacin?
-AboutSetupMenuItem=&Acerca de Instalar...
-AboutSetupTitle=Acerca de Instalar
-AboutSetupMessage=%1 versin %2%n%3%n%n%1 sitio Web:%n%4
-AboutSetupNote=
-TranslatorNote=Spanish translation maintained by Jorge Andres Brugger (jbrugger@gmx.net)
-
-; *** Buttons
-ButtonBack=< &Atrs
-ButtonNext=&Siguiente >
-ButtonInstall=&Instalar
-ButtonOK=Aceptar
-ButtonCancel=Cancelar
-ButtonYes=&S
-ButtonYesToAll=S a &Todo
-ButtonNo=&No
-ButtonNoToAll=N&o a Todo
-ButtonFinish=&Finalizar
-ButtonBrowse=&Examinar...
-ButtonWizardBrowse=&Examinar...
-ButtonNewFolder=&Crear Nueva Carpeta
-
-; *** "Select Language" dialog messages
-SelectLanguageTitle=Seleccione el Idioma de la Instalacin
-SelectLanguageLabel=Seleccione el idioma a utilizar durante la instalacin.
-
-; *** Common wizard text
-ClickNext=Haga clic en Siguiente para continuar o en Cancelar para salir de la instalacin.
-BeveledLabel=
-BrowseDialogTitle=Buscar Carpeta
-BrowseDialogLabel=Seleccione una carpeta y luego haga clic en Aceptar.
-NewFolderName=Nueva Carpeta
-
-; *** "Welcome" wizard page
-WelcomeLabel1=Bienvenido al asistente de instalacin de [name]
-WelcomeLabel2=Este programa instalar [name/ver] en su sistema.%n%nSe recomienda cerrar todas las dems aplicaciones antes de continuar.
-
-; *** "Password" wizard page
-WizardPassword=Contrasea
-PasswordLabel1=Esta instalacin est protegida por contrasea.
-PasswordLabel3=Por favor, introduzca la contrasea y haga clic en Siguiente para continuar. En las contraseas se hace diferencia entre maysculas y minsculas.
-PasswordEditLabel=&Contrasea:
-IncorrectPassword=La contrasea introducida no es correcta. Por favor, intntelo nuevamente.
-
-; *** "License Agreement" wizard page
-WizardLicense=Acuerdo de Licencia
-LicenseLabel=Es importante que lea la siguiente informacin antes de continuar.
-LicenseLabel3=Por favor, lea el siguiente acuerdo de licencia. Debe aceptar las clusulas de este acuerdo antes de continuar con la instalacin.
-LicenseAccepted=A&cepto el acuerdo
-LicenseNotAccepted=&No acepto el acuerdo
-
-; *** "Information" wizard pages
-WizardInfoBefore=Informacin
-InfoBeforeLabel=Es importante que lea la siguiente informacin antes de continuar.
-InfoBeforeClickLabel=Cuando est listo para continuar con la instalacin, haga clic en Siguiente.
-WizardInfoAfter=Informacin
-InfoAfterLabel=Es importante que lea la siguiente informacin antes de continuar.
-InfoAfterClickLabel=Cuando est listo para continuar, haga clic en Siguiente.
-
-; *** "User Information" wizard page
-WizardUserInfo=Informacin de Usuario
-UserInfoDesc=Por favor, introduzca sus datos.
-UserInfoName=Nombre de &Usuario:
-UserInfoOrg=&Organizacin:
-UserInfoSerial=Nmero de &Serie:
-UserInfoNameRequired=Debe introducir un nombre.
-
-; *** "Select Destination Location" wizard page
-WizardSelectDir=Seleccione la Carpeta de Destino
-SelectDirDesc=Dnde debe instalarse [name]?
-SelectDirLabel3=El programa instalar [name] en la siguiente carpeta.
-SelectDirBrowseLabel=Para continuar, haga clic en Siguiente. Si desea seleccionar una carpeta diferente, haga clic en Examinar.
-DiskSpaceGBLabel=Se requieren al menos [gb] GB de espacio libre en el disco.
-DiskSpaceMBLabel=Se requieren al menos [mb] MB de espacio libre en el disco.
-CannotInstallToNetworkDrive=El programa de instalacin no puede realizar la instalacin en una unidad de red.
-CannotInstallToUNCPath=El programa de instalacin no puede realizar la instalacin en una ruta de acceso UNC.
-InvalidPath=Debe introducir una ruta completa con la letra de la unidad; por ejemplo:%n%nC:\APP%n%no una ruta de acceso UNC de la siguiente forma:%n%n\\servidor\compartido
-InvalidDrive=La unidad o ruta de acceso UNC que seleccion no existe o no es accesible. Por favor, seleccione otra.
-DiskSpaceWarningTitle=Espacio Insuficiente en Disco
-DiskSpaceWarning=La instalacin requiere al menos %1 KB de espacio libre, pero la unidad seleccionada slo cuenta con %2 KB disponibles.%n%nDesea continuar de todas formas?
-DirNameTooLong=El nombre de la carpeta o la ruta son demasiado largos.
-InvalidDirName=El nombre de la carpeta no es vlido.
-BadDirName32=Los nombres de carpetas no pueden incluir los siguientes caracteres:%n%n%1
-DirExistsTitle=La Carpeta Ya Existe
-DirExists=La carpeta:%n%n%1%n%nya existe. Desea realizar la instalacin en esa carpeta de todas formas?
-DirDoesntExistTitle=La Carpeta No Existe
-DirDoesntExist=La carpeta:%n%n%1%n%nno existe. Desea crear esa carpeta?
-
-; *** "Select Components" wizard page
-WizardSelectComponents=Seleccione los Componentes
-SelectComponentsDesc=Qu componentes deben instalarse?
-SelectComponentsLabel2=Seleccione los componentes que desea instalar y desmarque los componentes que no desea instalar. Haga clic en Siguiente cuando est listo para continuar.
-FullInstallation=Instalacin Completa
-; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
-CompactInstallation=Instalacin Compacta
-CustomInstallation=Instalacin Personalizada
-NoUninstallWarningTitle=Componentes Encontrados
-NoUninstallWarning=El programa de instalacin ha detectado que los siguientes componentes ya estn instalados en su sistema:%n%n%1%n%nDesmarcar estos componentes no los desinstalar.%n%nDesea continuar de todos modos?
-ComponentSize1=%1 KB
-ComponentSize2=%1 MB
-ComponentsDiskSpaceGBLabel=La seleccin actual requiere al menos [gb] GB de espacio en disco.
-ComponentsDiskSpaceMBLabel=La seleccin actual requiere al menos [mb] MB de espacio en disco.
-
-; *** "Select Additional Tasks" wizard page
-WizardSelectTasks=Seleccione las Tareas Adicionales
-SelectTasksDesc=Qu tareas adicionales deben realizarse?
-SelectTasksLabel2=Seleccione las tareas adicionales que desea que se realicen durante la instalacin de [name] y haga clic en Siguiente.
-
-; *** "Select Start Menu Folder" wizard page
-WizardSelectProgramGroup=Seleccione la Carpeta del Men Inicio
-SelectStartMenuFolderDesc=Dnde deben colocarse los accesos directos del programa?
-SelectStartMenuFolderLabel3=El programa de instalacin crear los accesos directos del programa en la siguiente carpeta del Men Inicio.
-SelectStartMenuFolderBrowseLabel=Para continuar, haga clic en Siguiente. Si desea seleccionar una carpeta distinta, haga clic en Examinar.
-MustEnterGroupName=Debe proporcionar un nombre de carpeta.
-GroupNameTooLong=El nombre de la carpeta o la ruta son demasiado largos.
-InvalidGroupName=El nombre de la carpeta no es vlido.
-BadGroupName=El nombre de la carpeta no puede incluir ninguno de los siguientes caracteres:%n%n%1
-NoProgramGroupCheck2=&No crear una carpeta en el Men Inicio
-
-; *** "Ready to Install" wizard page
-WizardReady=Listo para Instalar
-ReadyLabel1=Ahora el programa est listo para iniciar la instalacin de [name] en su sistema.
-ReadyLabel2a=Haga clic en Instalar para continuar con el proceso o haga clic en Atrs si desea revisar o cambiar alguna configuracin.
-ReadyLabel2b=Haga clic en Instalar para continuar con el proceso.
-ReadyMemoUserInfo=Informacin del usuario:
-ReadyMemoDir=Carpeta de Destino:
-ReadyMemoType=Tipo de Instalacin:
-ReadyMemoComponents=Componentes Seleccionados:
-ReadyMemoGroup=Carpeta del Men Inicio:
-ReadyMemoTasks=Tareas Adicionales:
-
-; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
-DownloadingLabel=Descargando archivos adicionales...
-ButtonStopDownload=&Detener descarga
-StopDownload=Est seguiro que desea detener la descarga?
-ErrorDownloadAborted=Descarga cancelada
-ErrorDownloadFailed=Fall descarga: %1 %2
-ErrorDownloadSizeFailed=Fall obtencin de tamao: %1 %2
-ErrorFileHash1=Fall hash del archivo: %1
-ErrorFileHash2=Hash de archivo no vlido: esperado %1, encontrado %2
-ErrorProgress=Progreso no vlido: %1 de %2
-ErrorFileSize=Tamao de archivo no vlido: esperado %1, encontrado %2
-
-; *** "Preparing to Install" wizard page
-WizardPreparing=Preparndose para Instalar
-PreparingDesc=El programa de instalacin est preparndose para instalar [name] en su sistema.
-PreviousInstallNotCompleted=La instalacin/desinstalacin previa de un programa no se complet. Deber reiniciar el sistema para completar esa instalacin.%n%nUna vez reiniciado el sistema, ejecute el programa de instalacin nuevamente para completar la instalacin de [name].
-CannotContinue=El programa de instalacin no puede continuar. Por favor, presione Cancelar para salir.
-ApplicationsFound=Las siguientes aplicaciones estn usando archivos que necesitan ser actualizados por el programa de instalacin. Se recomienda que permita al programa de instalacin cerrar automticamente estas aplicaciones.
-ApplicationsFound2=Las siguientes aplicaciones estn usando archivos que necesitan ser actualizados por el programa de instalacin. Se recomienda que permita al programa de instalacin cerrar automticamente estas aplicaciones. Al completarse la instalacin, el programa de instalacin intentar reiniciar las aplicaciones.
-CloseApplications=&Cerrar automticamente las aplicaciones
-DontCloseApplications=&No cerrar las aplicaciones
-ErrorCloseApplications=El programa de instalacin no pudo cerrar de forma automtica todas las aplicaciones. Se recomienda que, antes de continuar, cierre todas las aplicaciones que utilicen archivos que necesitan ser actualizados por el programa de instalacin.
-PrepareToInstallNeedsRestart=El programa de instalacin necesita reiniciar el sistema. Una vez que se haya reiniciado ejecute nuevamente el programa de instalacin para completar la instalacin de [name].%n%nDesea reiniciar el sistema ahora?
-
-; *** "Installing" wizard page
-WizardInstalling=Instalando
-InstallingLabel=Por favor, espere mientras se instala [name] en su sistema.
-
-; *** "Setup Completed" wizard page
-FinishedHeadingLabel=Completando la instalacin de [name]
-FinishedLabelNoIcons=El programa complet la instalacin de [name] en su sistema.
-FinishedLabel=El programa complet la instalacin de [name] en su sistema. Puede ejecutar la aplicacin utilizando los accesos directos creados.
-ClickFinish=Haga clic en Finalizar para salir del programa de instalacin.
-FinishedRestartLabel=Para completar la instalacin de [name], su sistema debe reiniciarse. Desea reiniciarlo ahora?
-FinishedRestartMessage=Para completar la instalacin de [name], su sistema debe reiniciarse.%n%nDesea reiniciarlo ahora?
-ShowReadmeCheck=S, deseo ver el archivo LAME
-YesRadio=&S, deseo reiniciar el sistema ahora
-NoRadio=&No, reiniciar el sistema ms tarde
-; used for example as 'Run MyProg.exe'
-RunEntryExec=Ejecutar %1
-; used for example as 'View Readme.txt'
-RunEntryShellExec=Ver %1
-
-; *** "Setup Needs the Next Disk" stuff
-ChangeDiskTitle=El Programa de Instalacin Necesita el Siguiente Disco
-SelectDiskLabel2=Por favor, inserte el Disco %1 y haga clic en Aceptar.%n%nSi los archivos pueden ser hallados en una carpeta diferente a la indicada abajo, introduzca la ruta correcta o haga clic en Examinar.
-PathLabel=&Ruta:
-FileNotInDir2=El archivo "%1" no se ha podido hallar en "%2". Por favor, inserte el disco correcto o seleccione otra carpeta.
-SelectDirectoryLabel=Por favor, especifique la ubicacin del siguiente disco.
-
-; *** Installation phase messages
-SetupAborted=La instalacin no se ha completado.%n%nPor favor solucione el problema y ejecute nuevamente el programa de instalacin.
-AbortRetryIgnoreSelectAction=Seleccione accin
-AbortRetryIgnoreRetry=&Reintentar
-AbortRetryIgnoreIgnore=&Ignorar el error y continuar
-AbortRetryIgnoreCancel=Cancelar instalacin
-
-; *** Installation status messages
-StatusClosingApplications=Cerrando aplicaciones...
-StatusCreateDirs=Creando carpetas...
-StatusExtractFiles=Extrayendo archivos...
-StatusCreateIcons=Creando accesos directos...
-StatusCreateIniEntries=Creando entradas INI...
-StatusCreateRegistryEntries=Creando entradas de registro...
-StatusRegisterFiles=Registrando archivos...
-StatusSavingUninstall=Guardando informacin para desinstalar...
-StatusRunProgram=Terminando la instalacin...
-StatusRestartingApplications=Reiniciando aplicaciones...
-StatusRollback=Deshaciendo cambios...
-
-; *** Misc. errors
-ErrorInternal2=Error interno: %1
-ErrorFunctionFailedNoCode=%1 fall
-ErrorFunctionFailed=%1 fall; cdigo %2
-ErrorFunctionFailedWithMessage=%1 fall; cdigo %2.%n%3
-ErrorExecutingProgram=Imposible ejecutar el archivo:%n%1
-
-; *** Registry errors
-ErrorRegOpenKey=Error al abrir la clave del registro:%n%1\%2
-ErrorRegCreateKey=Error al crear la clave del registro:%n%1\%2
-ErrorRegWriteKey=Error al escribir la clave del registro:%n%1\%2
-
-; *** INI errors
-ErrorIniEntry=Error al crear entrada INI en el archivo "%1".
-
-; *** File copying errors
-FileAbortRetryIgnoreSkipNotRecommended=&Omitir este archivo (no recomendado)
-FileAbortRetryIgnoreIgnoreNotRecommended=&Ignorar el error y continuar (no recomendado)
-SourceIsCorrupted=El archivo de origen est daado
-SourceDoesntExist=El archivo de origen "%1" no existe
-ExistingFileReadOnly2=El archivo existente no puede ser reemplazado debido a que est marcado como slo-lectura.
-ExistingFileReadOnlyRetry=&Elimine el atributo de slo-lectura y reintente
-ExistingFileReadOnlyKeepExisting=&Mantener el archivo existente
-ErrorReadingExistingDest=Ocurri un error mientras se intentaba leer el archivo:
-FileExistsSelectAction=Seleccione accin
-FileExists2=El archivo ya existe.
-FileExistsOverwriteExisting=&Sobreescribir el archivo existente
-FileExistsKeepExisting=&Mantener el archivo existente
-FileExistsOverwriteOrKeepAll=&Hacer lo mimso para lo siguientes conflictos
-ExistingFileNewerSelectAction=Seleccione accin
-ExistingFileNewer2=El archivo existente es ms reciente que el que se est tratando de instalar.
-ExistingFileNewerOverwriteExisting=&Sobreescribir el archivo existente
-ExistingFileNewerKeepExisting=&Mantener el archivo existente (recomendado)
-ExistingFileNewerOverwriteOrKeepAll=&Hacer lo mimso para lo siguientes conflictos
-ErrorChangingAttr=Ocurri un error al intentar cambiar los atributos del archivo:
-ErrorCreatingTemp=Ocurri un error al intentar crear un archivo en la carpeta de destino:
-ErrorReadingSource=Ocurri un error al intentar leer el archivo de origen:
-ErrorCopying=Ocurri un error al intentar copiar el archivo:
-ErrorReplacingExistingFile=Ocurri un error al intentar reemplazar el archivo existente:
-ErrorRestartReplace=Fall reintento de reemplazar:
-ErrorRenamingTemp=Ocurri un error al intentar renombrar un archivo en la carpeta de destino:
-ErrorRegisterServer=Imposible registrar el DLL/OCX: %1
-ErrorRegSvr32Failed=RegSvr32 fall con el cdigo de salida %1
-ErrorRegisterTypeLib=Imposible registrar la librera de tipos: %1
-
-; *** Uninstall display name markings
-; used for example as 'My Program (32-bit)'
-UninstallDisplayNameMark=%1 (%2)
-; used for example as 'My Program (32-bit, All users)'
-UninstallDisplayNameMarks=%1 (%2, %3)
-UninstallDisplayNameMark32Bit=32-bit
-UninstallDisplayNameMark64Bit=64-bit
-UninstallDisplayNameMarkAllUsers=Todos los usuarios
-UninstallDisplayNameMarkCurrentUser=Usuario actual
-
-; *** Post-installation errors
-ErrorOpeningReadme=Ocurri un error al intentar abrir el archivo LAME.
-ErrorRestartingComputer=El programa de instalacin no pudo reiniciar el equipo. Por favor, hgalo manualmente.
-
-; *** Uninstaller messages
-UninstallNotFound=El archivo "%1" no existe. Imposible desinstalar.
-UninstallOpenError=El archivo "%1" no pudo ser abierto. Imposible desinstalar
-UninstallUnsupportedVer=El archivo de registro para desinstalar "%1" est en un formato no reconocido por esta versin del desinstalador. Imposible desinstalar
-UninstallUnknownEntry=Se encontr una entrada desconocida (%1) en el registro de desinstalacin
-ConfirmUninstall=Est seguro que desea desinstalar completamente %1 y todos sus componentes?
-UninstallOnlyOnWin64=Este programa slo puede ser desinstalado en Windows de 64-bits.
-OnlyAdminCanUninstall=Este programa slo puede ser desinstalado por un usuario con privilegios administrativos.
-UninstallStatusLabel=Por favor, espere mientras %1 es desinstalado de su sistema.
-UninstalledAll=%1 se desinstal satisfactoriamente de su sistema.
-UninstalledMost=La desinstalacin de %1 ha sido completada.%n%nAlgunos elementos no pudieron eliminarse, pero podr eliminarlos manualmente si lo desea.
-UninstalledAndNeedsRestart=Para completar la desinstalacin de %1, su sistema debe reiniciarse.%n%nDesea reiniciarlo ahora?
-UninstallDataCorrupted=El archivo "%1" est daado. No puede desinstalarse
-
-; *** Uninstallation phase messages
-ConfirmDeleteSharedFileTitle=Eliminar Archivo Compartido?
-ConfirmDeleteSharedFile2=El sistema indica que el siguiente archivo compartido no es utilizado por ningn otro programa. Desea eliminar este archivo compartido?%n%nSi elimina el archivo y hay programas que lo utilizan, esos programas podran dejar de funcionar correctamente. Si no est seguro, elija No. Dejar el archivo en su sistema no producir ningn dao.
-SharedFileNameLabel=Archivo:
-SharedFileLocationLabel=Ubicacin:
-WizardUninstalling=Estado de la Desinstalacin
-StatusUninstalling=Desinstalando %1...
-
-; *** Shutdown block reasons
-ShutdownBlockReasonInstallingApp=Instalando %1.
-ShutdownBlockReasonUninstallingApp=Desinstalando %1.
-
-; The custom messages below aren't used by Setup itself, but if you make
-; use of them in your scripts, you'll want to translate them.
-
-[CustomMessages]
-
-NameAndVersion=%1 versin %2
-AdditionalIcons=Accesos directos adicionales:
-CreateDesktopIcon=Crear un acceso directo en el &escritorio
-CreateQuickLaunchIcon=Crear un acceso directo en &Inicio Rpido
-ProgramOnTheWeb=%1 en la Web
-UninstallProgram=Desinstalar %1
-LaunchProgram=Ejecutar %1
-AssocFileExtension=&Asociar %1 con la extensin de archivo %2
-AssocingFileExtension=Asociando %1 con la extensin de archivo %2...
-AutoStartProgramGroupDescription=Inicio:
-AutoStartProgram=Iniciar automticamente %1
-AddonHostProgramNotFound=%1 no pudo ser localizado en la carpeta seleccionada.%n%nDesea continuar de todas formas?
diff --git a/Dependencies/Inno/Languages/Turkish.isl b/Dependencies/Inno/Languages/Turkish.isl
deleted file mode 100644
index 932c705b..00000000
--- a/Dependencies/Inno/Languages/Turkish.isl
+++ /dev/null
@@ -1,384 +0,0 @@
-; *** Inno Setup version 6.1.0+ Turkish messages ***
-; Language "Turkce" Turkish Translate by "Ceviren" Kaya Zeren translator@zeron.net
-; To download user-contributed translations of this file, go to:
-; https://www.jrsoftware.org/files/istrans/
-;
-; Note: When translating this text, do not add periods (.) to the end of
-; messages that didn't have them already, because on those messages Inno
-; Setup adds the periods automatically (appending a period would result in
-; two periods being displayed).
-
-[LangOptions]
-; The following three entries are very important. Be sure to read and
-; understand the '[LangOptions] section' topic in the help file.
-LanguageName=T<00FC>rk<00E7>e
-LanguageID=$041f
-LanguageCodePage=1254
-; If the language you are translating to requires special font faces or
-; sizes, uncomment any of the following entries and change them accordingly.
-;DialogFontName=
-;DialogFontSize=8
-;WelcomeFontName=Verdana
-;WelcomeFontSize=12
-;TitleFontName=Arial
-;TitleFontSize=29
-;CopyrightFontName=Arial
-;CopyrightFontSize=8
-
-[Messages]
-
-; *** Uygulama balklar
-SetupAppTitle=Kurulum Yardmcs
-SetupWindowTitle=%1 - Kurulum Yardmcs
-UninstallAppTitle=Kaldrma Yardmcs
-UninstallAppFullTitle=%1 Kaldrma Yardmcs
-
-; *** eitli ortak metinler
-InformationTitle=Bilgi
-ConfirmTitle=Onay
-ErrorTitle=Hata
-
-; *** Kurulum ykleyici iletileri
-SetupLdrStartupMessage=%1 uygulamas kurulacak. Devam etmek istiyor musunuz?
-LdrCannotCreateTemp=Geici dosya oluturulamadndan kurulum iptal edildi
-LdrCannotExecTemp=Geici klasrdeki dosya altrlamadndan kurulum iptal edildi
-HelpTextNote=
-
-; *** Balang hata iletileri
-LastErrorMessage=%1.%n%nHata %2: %3
-SetupFileMissing=Kurulum klasrnde %1 dosyas eksik. Ltfen sorunu zn ya da uygulamann yeni bir kopyasyla yeniden deneyin.
-SetupFileCorrupt=Kurulum dosyalar bozulmu. Ltfen uygulamann yeni bir kopyasyla yeniden kurmay deneyin.
-SetupFileCorruptOrWrongVer=Kurulum dosyalar bozulmu ya da bu kurulum yardmcs srm ile uyumlu deil. Ltfen sorunu zn ya da uygulamann yeni bir kopyasyla yeniden kurmay deneyin.
-InvalidParameter=Komut satrnda geersiz bir parametre yazlm:%n%n%1
-SetupAlreadyRunning=Kurulum yardmcs zaten alyor.
-WindowsVersionNotSupported=Bu uygulama, bilgisayarnzda ykl olan Windows srm ile uyumlu deil.
-WindowsServicePackRequired=Bu uygulama, %1 Hizmet Paketi %2 ve zerindeki srmler ile alr.
-NotOnThisPlatform=Bu uygulama, %1 zerinde almaz.
-OnlyOnThisPlatform=Bu uygulama, %1 zerinde altrlmaldr.
-OnlyOnTheseArchitectures=Bu uygulama, yalnz u ilemci mimarileri iin tasarlanm Windows srmleriyle alr:%n%n%1
-WinVersionTooLowError=Bu uygulama iin %1 srm %2 ya da zeri gereklidir.
-WinVersionTooHighError=Bu uygulama, '%1' srm '%2' ya da zerine kurulamaz.
-AdminPrivilegesRequired=Bu uygulamay kurmak iin Ynetici olarak oturum alm olmas gereklidir.
-PowerUserPrivilegesRequired=Bu uygulamay kurarken, Ynetici ya da Gl Kullanclar grubunun bir yesi olarak oturum alm olmas gereklidir.
-SetupAppRunningError=Kurulum yardmcs %1 uygulamasnn almakta olduunu alglad.%n%nLtfen uygulamann alan tm kopyalarn kapatp, devam etmek iin Tamam, kurulum yardmcsndan kmak iin ptal zerine tklayn.
-UninstallAppRunningError=Kaldrma yardmcs, %1 uygulamasnn almakta olduunu alglad.%n%nLtfen uygulamann alan tm kopyalarn kapatp, devam etmek iin Tamam ya da kaldrma yardmcsndan kmak iin ptal zerine tklayn.
-
-; *** Balang sorular
-PrivilegesRequiredOverrideTitle=Kurulum Kipini Sein
-PrivilegesRequiredOverrideInstruction=Kurulum kipini sein
-PrivilegesRequiredOverrideText1=%1 tm kullanclar iin (ynetici izinleri gerekir) ya da yalnz sizin hesabnz iin kurulabilir.
-PrivilegesRequiredOverrideText2=%1 yalnz sizin hesabnz iin ya da tm kullanclar iin (ynetici izinleri gerekir) kurulabilir.
-PrivilegesRequiredOverrideAllUsers=&Tm kullanclar iin kurulsun
-PrivilegesRequiredOverrideAllUsersRecommended=&Tm kullanclar iin kurulsun (nerilir)
-PrivilegesRequiredOverrideCurrentUser=&Yalnz benim kullancm iin kurulsun
-PrivilegesRequiredOverrideCurrentUserRecommended=&Yalnz benim kullancm iin kurulsun (nerilir)
-
-; *** eitli hata metinleri
-ErrorCreatingDir=Kurulum yardmcs "%1" klasrn oluturamad.
-ErrorTooManyFilesInDir="%1" klasr iinde ok sayda dosya olduundan bir dosya oluturulamad
-
-; *** Ortak kurulum iletileri
-ExitSetupTitle=Kurulum Yardmcsndan k
-ExitSetupMessage=Kurulum tamamlanmad. imdi karsanz, uygulama kurulmayacak.%n%nKurulumu tamamlamak iin istediiniz zaman kurulum yardmcsn yeniden altrabilirsiniz.%n%nKurulum yardmcsndan klsn m?
-AboutSetupMenuItem=Kurulum H&akknda...
-AboutSetupTitle=Kurulum Hakknda
-AboutSetupMessage=%1 %2 srm%n%3%n%n%1 ana sayfa:%n%4
-AboutSetupNote=
-TranslatorNote=
-
-; *** Dmeler
-ButtonBack=< &nceki
-ButtonNext=&Sonraki >
-ButtonInstall=&Kur
-ButtonOK=Tamam
-ButtonCancel=ptal
-ButtonYes=E&vet
-ButtonYesToAll=&Tmne Evet
-ButtonNo=&Hayr
-ButtonNoToAll=Tmne Ha&yr
-ButtonFinish=&Bitti
-ButtonBrowse=&Gzat...
-ButtonWizardBrowse=Gza&t...
-ButtonNewFolder=Ye&ni Klasr Olutur
-
-; *** "Kurulum Dilini Sein" sayfas iletileri
-SelectLanguageTitle=Kurulum Yardmcs Dilini Sein
-SelectLanguageLabel=Kurulum sresince kullanlacak dili sein.
-
-; *** Ortak metinler
-ClickNext=Devam etmek iin Sonraki, kmak iin ptal zerine tklayn.
-BeveledLabel=
-BrowseDialogTitle=Klasre Gzat
-BrowseDialogLabel=Aadaki listeden bir klasr seip, Tamam zerine tklayn.
-NewFolderName=Yeni Klasr
-
-; *** "Ho geldiniz" sayfas
-WelcomeLabel1=[name] Kurulum Yardmcsna Hogeldiniz.
-WelcomeLabel2=Bilgisayarnza [name/ver] uygulamas kurulacak.%n%nDevam etmeden nce alan dier tm uygulamalar kapatmanz nerilir.
-
-; *** "Parola" sayfas
-WizardPassword=Parola
-PasswordLabel1=Bu kurulum parola korumaldr.
-PasswordLabel3=Ltfen parolay yazn ve devam etmek iin Sonraki zerine tklayn. Parolalar byk kk harflere duyarldr.
-PasswordEditLabel=&Parola:
-IncorrectPassword=Yazdnz parola doru deil. Ltfen yeniden deneyin.
-
-; *** "Lisans Anlamas" sayfas
-WizardLicense=Lisans Anlamas
-LicenseLabel=Ltfen devam etmeden nce aadaki nemli bilgileri okuyun.
-LicenseLabel3=Ltfen Aadaki Lisans Anlamasn okuyun. Kuruluma devam edebilmek iin bu anlamay kabul etmelisiniz.
-LicenseAccepted=Anlamay kabul &ediyorum.
-LicenseNotAccepted=Anlamay kabul et&miyorum.
-
-; *** "Bilgiler" sayfas
-WizardInfoBefore=Bilgiler
-InfoBeforeLabel=Ltfen devam etmeden nce aadaki nemli bilgileri okuyun.
-InfoBeforeClickLabel=Kuruluma devam etmeye hazr olduunuzda Sonraki zerine tklayn.
-WizardInfoAfter=Bilgiler
-InfoAfterLabel=Ltfen devam etmeden nce aadaki nemli bilgileri okuyun.
-InfoAfterClickLabel=Kuruluma devam etmeye hazr olduunuzda Sonraki zerine tklayn.
-
-; *** "Kullanc Bilgileri" sayfas
-WizardUserInfo=Kullanc Bilgileri
-UserInfoDesc=Ltfen bilgilerinizi yazn.
-UserInfoName=K&ullanc Ad:
-UserInfoOrg=Ku&rum:
-UserInfoSerial=&Seri Numaras:
-UserInfoNameRequired=Bir ad yazmalsnz.
-
-; *** "Hedef Konumunu Sein" sayfas
-WizardSelectDir=Hedef Konumunu Sein
-SelectDirDesc=[name] nereye kurulsun?
-SelectDirLabel3=[name] uygulamas u klasre kurulacak.
-SelectDirBrowseLabel=Devam etmek icin Sonraki zerine tklayn. Farkl bir klasr semek iin Gzat zerine tklayn.
-DiskSpaceGBLabel=En az [gb] GB bo disk alan gereklidir.
-DiskSpaceMBLabel=En az [mb] MB bo disk alan gereklidir.
-CannotInstallToNetworkDrive=Uygulama bir a srcs zerine kurulamaz.
-CannotInstallToUNCPath=Uygulama bir UNC yolu zerine (\\yol gibi) kurulamaz.
-InvalidPath=Src ad ile tam yolu yazmalsnz; rnein: %n%nC:\APP%n%n ya da u ekilde bir UNC yolu:%n%n\\sunucu\paylam
-InvalidDrive=Src ya da UNC paylam yok ya da eriilemiyor. Ltfen baka bir tane sein.
-DiskSpaceWarningTitle=Yeterli Bo Disk Alan Yok
-DiskSpaceWarning=Kurulum iin %1 KB bo alan gerekli, ancak seilmi srcde yalnz %2 KB bo alan var.%n%nGene de devam etmek istiyor musunuz?
-DirNameTooLong=Klasr ad ya da yol ok uzun.
-InvalidDirName=Klasr ad geersiz.
-BadDirName32=Klasr adlarnda u karakterler bulunamaz:%n%n%1
-DirExistsTitle=Klasr Zaten Var"
-DirExists=Klasr:%n%n%1%n%zaten var. Kurulum iin bu klasr kullanmak ister misiniz?
-DirDoesntExistTitle=Klasr Bulunamad
-DirDoesntExist=Klasr:%n%n%1%n%nbulunamad.Klasrn oluturmasn ister misiniz?
-
-; *** "Bileenleri Sein" sayfas
-WizardSelectComponents=Bileenleri Sein
-SelectComponentsDesc=Hangi bileenler kurulacak?
-SelectComponentsLabel2=Kurmak istediiniz bileenleri sein; kurmak istemediiniz bileenlerin iaretini kaldrn. Devam etmeye hazr olduunuzda Sonraki zerine tklayn.
-FullInstallation=Tam Kurulum
-; Mmknse 'Compact' ifadesini kendi dilinizde 'Minimal' anlamnda evirmeyin
-CompactInstallation=Normal kurulum
-CustomInstallation=zel kurulum
-NoUninstallWarningTitle=Bileenler Zaten Var
-NoUninstallWarning=u bileenlerin bilgisayarnzda zaten kurulu olduu algland:%n%n%1%n%n Bu bileenlerin iaretlerinin kaldrlmas bileenleri kaldrmaz.%n%nGene de devam etmek istiyor musunuz?
-ComponentSize1=%1 KB
-ComponentSize2=%1 MB
-ComponentsDiskSpaceGBLabel=Seili bileenler iin diskte en az [gb] GB bo alan bulunmas gerekli.
-ComponentsDiskSpaceMBLabel=Seili bileenler iin diskte en az [mb] MB bo alan bulunmas gerekli.
-
-; *** "Ek lemleri Sein" sayfas
-WizardSelectTasks=Ek lemleri Sein
-SelectTasksDesc=Baka hangi ilemler yaplsn?
-SelectTasksLabel2=[name] kurulumu srasnda yaplmasn istediiniz ek ileri sein ve Sonraki zerine tklayn.
-
-; *** "Balat Mens Klasrn Sein" sayfas
-WizardSelectProgramGroup=Balat Mens Klasrn Sein
-SelectStartMenuFolderDesc=Uygulamann ksayollar nereye eklensin?
-SelectStartMenuFolderLabel3=Kurulum yardmcs uygulama ksayollarn aadaki Balat Mens klasrne ekleyecek.
-SelectStartMenuFolderBrowseLabel=Devam etmek iin Sonraki zerine tklayn. Farkl bir klasr semek iin Gzat zerine tklayn.
-MustEnterGroupName=Bir klasr ad yazmalsnz.
-GroupNameTooLong=Klasr ad ya da yol ok uzun.
-InvalidGroupName=Klasr ad geersiz.
-BadGroupName=Klasr adnda u karakterler bulunamaz:%n%n%1
-NoProgramGroupCheck2=Balat Mens klasr &oluturulmasn
-
-; *** "Kurulmaya Hazr" sayfas
-WizardReady=Kurulmaya Hazr
-ReadyLabel1=[name] bilgisayarnza kurulmaya hazr.
-ReadyLabel2a=Kuruluma devam etmek iin Sonraki zerine, ayarlar gzden geirip deitirmek iin nceki zerine tklayn.
-ReadyLabel2b=Kuruluma devam etmek iin Sonraki zerine tklayn.
-ReadyMemoUserInfo=Kullanc bilgileri:
-ReadyMemoDir=Hedef konumu:
-ReadyMemoType=Kurulum tr:
-ReadyMemoComponents=Seilmi bileenler:
-ReadyMemoGroup=Balat Mens klasr:
-ReadyMemoTasks=Ek ilemler:
-
-; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
-DownloadingLabel=Ek dosyalar indiriliyor...
-ButtonStopDownload=ndirmeyi &durdur
-StopDownload=ndirmeyi durdurmak istediinize emin misiniz?
-ErrorDownloadAborted=ndirme durduruldu
-ErrorDownloadFailed=ndirilemedi: %1 %2
-ErrorDownloadSizeFailed=Boyut alnamad: %1 %2
-ErrorFileHash1=Dosya karmas dorulanamad: %1
-ErrorFileHash2=Dosya karmas geersiz: %1 olmas gerekirken %2
-ErrorProgress=Adm geersiz: %1 / %2
-ErrorFileSize=Dosya boyutu geersiz: %1 olmas gerekirken %2
-
-; *** "Kuruluma Hazrlanlyor" sayfas
-WizardPreparing=Kuruluma Hazrlanlyor
-PreparingDesc=[name] bilgisayarnza kurulmaya hazrlanyor.
-PreviousInstallNotCompleted=nceki uygulama kurulumu ya da kaldrlmas tamamlanmam. Bu kurulumun tamamlanmas iin bilgisayarnz yeniden balatmalsnz.%n%nBilgisayarnz yeniden balattktan sonra ilemi tamamlamak iin [name] kurulum yardmcsn yeniden altrn.
-CannotContinue=Kuruluma devam edilemiyor. kmak iin ptal zerine tklayn.
-ApplicationsFound=Kurulum yardmcs tarafndan gncellenmesi gereken dosyalar, u uygulamalar tarafndan kullanyor. Kurulum yardmcsnn bu uygulamalar otomatik olarak kapatmasna izin vermeniz nerilir.
-ApplicationsFound2=Kurulum yardmcs tarafndan gncellenmesi gereken dosyalar, u uygulamalar tarafndan kullanyor. Kurulum yardmcsnn bu uygulamalar otomatik olarak kapatmasna izin vermeniz nerilir. Kurulum tamamlandktan sonra, uygulamalar yeniden balatlmaya allacak.
-CloseApplications=&Uygulamalar kapatlsn
-DontCloseApplications=Uygulamalar &kapatlmasn
-ErrorCloseApplications=Kurulum yardmcs uygulamalar kapatamad. Kurulum yardmcs tarafndan gncellenmesi gereken dosyalar kullanan uygulamalar el ile kapatmanz nerilir.
-PrepareToInstallNeedsRestart=Kurulum iin bilgisayarn yeniden balatlmas gerekiyor. Bilgisayar yeniden balattktan sonra [name] kurulumunu tamamlamak iin kurulum yardmcsn yeniden altrn.%n%nBilgisayar imdi yeniden balatmak ister misiniz?
-
-; *** "Kuruluyor" sayfas
-WizardInstalling=Kuruluyor
-InstallingLabel=Ltfen [name] bilgisayarnza kurulurken bekleyin.
-
-; *** "Kurulum Tamamland" sayfas
-FinishedHeadingLabel=[name] kurulum yardmcs tamamlanyor
-FinishedLabelNoIcons=Bilgisayarnza [name] kurulumu tamamland.
-FinishedLabel=Bilgisayarnza [name] kurulumu tamamland. Simgeleri yklemeyi setiyseniz, simgelere tklayarak uygulamay balatabilirsiniz.
-ClickFinish=Kurulum yardmcsndan kmak iin Bitti zerine tklayn.
-FinishedRestartLabel=[name] kurulumunun tamamlanmas iin, bilgisayarnz yeniden balatlmal. imdi yeniden balatmak ister misiniz?
-FinishedRestartMessage=[name] kurulumunun tamamlanmas iin, bilgisayarnz yeniden balatlmal.%n%nimdi yeniden balatmak ister misiniz?
-ShowReadmeCheck=Evet README dosyas grntlensin
-YesRadio=&Evet, bilgisayar imdi yeniden balatlsn
-NoRadio=&Hayr, bilgisayar daha sonra yeniden balatacam
-; used for example as 'Run MyProg.exe'
-RunEntryExec=%1 altrlsn
-; used for example as 'View Readme.txt'
-RunEntryShellExec=%1 grntlensin
-
-; *** "Kurulum iin Sradaki Disk Gerekli" iletileri
-ChangeDiskTitle=Kurulum Yardmcs Sradaki Diske Gerek Duyuyor
-SelectDiskLabel2=Ltfen %1 numaral diski takp Tamam zerine tklayn.%n%nDiskteki dosyalar aadakinden farkl bir klasrde bulunuyorsa, doru yolu yazn ya da Gzat zerine tklayarak doru klasr sein.
-PathLabel=&Yol:
-FileNotInDir2="%1" dosyas "%2" iinde bulunamad. Ltfen doru diski takn ya da baka bir klasr sein.
-SelectDirectoryLabel=Ltfen sonraki diskin konumunu belirtin.
-
-; *** Kurulum aamas iletileri
-SetupAborted=Kurulum tamamlanamad.%n%nLtfen sorunu dzelterek kurulum yardmcsn yeniden altrn.
-AbortRetryIgnoreSelectAction=Yaplacak ilemi sein
-AbortRetryIgnoreRetry=&Yeniden denensin
-AbortRetryIgnoreIgnore=&Sorun yok saylp devam edilsin
-AbortRetryIgnoreCancel=Kurulum iptal edilsin
-
-; *** Kurulum durumu iletileri
-StatusClosingApplications=Uygulamalar kapatlyor...
-StatusCreateDirs=Klasrler oluturuluyor...
-StatusExtractFiles=Dosyalar ayklanyor...
-StatusCreateIcons=Ksayollar oluturuluyor...
-StatusCreateIniEntries=INI kaytlar oluturuluyor...
-StatusCreateRegistryEntries=Kayt Defteri kaytlar oluturuluyor...
-StatusRegisterFiles=Dosyalar kaydediliyor...
-StatusSavingUninstall=Kaldrma bilgileri kaydediliyor...
-StatusRunProgram=Kurulum tamamlanyor...
-StatusRestartingApplications=Uygulamalar yeniden balatlyor...
-StatusRollback=Deiiklikler geri alnyor...
-
-; *** eitli hata iletileri
-ErrorInternal2= hata: %1
-ErrorFunctionFailedNoCode=%1 tamamlanamad.
-ErrorFunctionFailed=%1 tamamlanamad; kod %2
-ErrorFunctionFailedWithMessage=%1 tamamlanamad; kod %2.%n%3
-ErrorExecutingProgram=u dosya yrtlemedi:%n%1
-
-; *** Kayt defteri hatalar
-ErrorRegOpenKey=Kayt defteri anahtar alrken bir sorun kt:%n%1%2
-ErrorRegCreateKey=Kayt defteri anahtar eklenirken bir sorun kt:%n%1%2
-ErrorRegWriteKey=Kayt defteri anahtar yazlrken bir sorun kt:%n%1%2
-
-; *** INI hatalar
-ErrorIniEntry="%1" dosyasna INI kayd eklenirken bir sorun kt.
-
-; *** Dosya kopyalama hatalar
-FileAbortRetryIgnoreSkipNotRecommended=&Bu dosya atlansn (nerilmez)
-FileAbortRetryIgnoreIgnoreNotRecommended=&Sorun yok saylp devam edilsin (nerilmez)
-SourceIsCorrupted=Kaynak dosya bozulmu
-SourceDoesntExist="%1" kaynak dosyas bulunamad
-ExistingFileReadOnly2=Var olan dosya salt okunabilir olarak iaretlenmi olduundan zerine yazlamad.
-ExistingFileReadOnlyRetry=&Salt okunur iareti kaldrlp yeniden denensin
-ExistingFileReadOnlyKeepExisting=&Var olan dosya korunsun
-ErrorReadingExistingDest=Var olan dosya okunmaya allrken bir sorun kt.
-FileExistsSelectAction=Yaplacak ilemi sein
-FileExists2=Dosya zaten var.
-FileExistsOverwriteExisting=&Var olan dosyann zerine yazlsn
-FileExistsKeepExisting=Var &olan dosya korunsun
-FileExistsOverwriteOrKeepAll=&Sonraki akmalarda da bu ilem yaplsn
-ExistingFileNewerSelectAction=Yaplacak ilemi sein
-ExistingFileNewer2=Var olan dosya, kurulum yardmcs tarafndan yazlmaya allandan daha yeni.
-ExistingFileNewerOverwriteExisting=&Var olan dosyann zerine yazlsn
-ExistingFileNewerKeepExisting=Var &olan dosya korunsun (nerilir)
-ExistingFileNewerOverwriteOrKeepAll=&Sonraki akmalarda bu ilem yaplsn
-ErrorChangingAttr=Var olan dosyann znitelikleri deitirilirken bir sorun kt:
-ErrorCreatingTemp=Hedef klasrde bir dosya oluturulurken bir sorun kt:
-ErrorReadingSource=Kaynak dosya okunurken bir sorun kt:
-ErrorCopying=Dosya kopyalanrken bir sorun kt:
-ErrorReplacingExistingFile=Var olan dosya deitirilirken bir sorun kt:
-ErrorRestartReplace=Yeniden balatmada zerine yazlamad:
-ErrorRenamingTemp=Hedef klasrdeki bir dosyann ad deitirilirken sorun kt:
-ErrorRegisterServer=DLL/OCX kayt edilemedi: %1
-ErrorRegSvr32Failed=RegSvr32 ilemi u kod ile tamamlanamad: %1
-ErrorRegisterTypeLib=Tr kitapl kayt defterine eklenemedi: %1
-
-; *** Kaldrma srasnda grntlenecek ad iaretleri
-; used for example as 'My Program (32-bit)'
-UninstallDisplayNameMark=%1 (%2)
-; used for example as 'My Program (32-bit, All users)'
-UninstallDisplayNameMarks=%1 (%2, %3)
-UninstallDisplayNameMark32Bit=32 bit
-UninstallDisplayNameMark64Bit=64 bit
-UninstallDisplayNameMarkAllUsers=Tm kullanclar
-UninstallDisplayNameMarkCurrentUser=Geerli kullanc
-
-; *** Kurulum sonras hatalar
-ErrorOpeningReadme=README dosyas alrken bir sorun kt.
-ErrorRestartingComputer=Kurulum yardmcs bilgisayarnz yeniden balatamyor. Ltfen bilgisayarnz yeniden balatn.
-
-; *** Kaldrma yardmcs iletileri
-UninstallNotFound="%1" dosyas bulunamad. Uygulama kaldrlamyor.
-UninstallOpenError="%1" dosyas alamad. Uygulama kaldrlamyor.
-UninstallUnsupportedVer="%1" uygulama kaldrma gnlk dosyasnn biimi, bu kaldrma yardmcs srm tarafndan anlalamad. Uygulama kaldrlamyor.
-UninstallUnknownEntry=Kaldrma gnlnde bilinmeyen bir kayt (%1) bulundu.
-ConfirmUninstall=%1 uygulamasn tm bileenleri ile birlikte tamamen kaldrmak istediinize emin misiniz?
-UninstallOnlyOnWin64=Bu kurulum yalnz 64 bit Windows zerinden kaldrlabilir.
-OnlyAdminCanUninstall=Bu kurulum yalnz ynetici haklarna sahip bir kullanc tarafndan kaldrlabilir.
-UninstallStatusLabel=Ltfen %1 uygulamas bilgisayarnzdan kaldrlrken bekleyin.
-UninstalledAll=%1 uygulamas bilgisayarnzdan kaldrld.
-UninstalledMost=%1 uygulamas kaldrld.%n%nBaz bileenler kaldrlamad. Bunlar el ile silebilirsiniz.
-UninstalledAndNeedsRestart=%1 kaldrma ileminin tamamlanmas iin bilgisayarnzn yeniden balatlmas gerekli.%n%nimdi yeniden balatmak ister misiniz?
-UninstallDataCorrupted="%1" dosyas bozulmu. Kaldrlamyor.
-
-; *** Kaldrma aamas iletileri
-ConfirmDeleteSharedFileTitle=Paylalan Dosya Silinsin mi?
-ConfirmDeleteSharedFile2=Sisteme gre, paylalan u dosya baka bir uygulama tarafndan kullanlmyor ve kaldrlabilir. Bu paylalm dosyay silmek ister misiniz?%n%nBu dosya, baka herhangi bir uygulama tarafndan kullanlyor ise, silindiinde dier uygulama dzgn almayabilir. Emin deilseniz Hayr zerine tklayn. Dosyay sisteminizde brakmann bir zarar olmaz.
-SharedFileNameLabel=Dosya ad:
-SharedFileLocationLabel=Konum:
-WizardUninstalling=Kaldrma Durumu
-StatusUninstalling=%1 kaldrlyor...
-
-; *** Kapatmay engelleme nedenleri
-ShutdownBlockReasonInstallingApp=%1 kuruluyor.
-ShutdownBlockReasonUninstallingApp=%1 kaldrlyor.
-
-; The custom messages below aren't used by Setup itself, but if you make
-; use of them in your scripts, you'll want to translate them.
-
-[CustomMessages]
-
-NameAndVersion=%1 %2 srm
-AdditionalIcons=Ek simgeler:
-CreateDesktopIcon=Masast simg&esi oluturulsun
-CreateQuickLaunchIcon=Hzl Balat simgesi &oluturulsun
-ProgramOnTheWeb=%1 Web Sitesi
-UninstallProgram=%1 Uygulamasn Kaldr
-LaunchProgram=%1 Uygulamasn altr
-AssocFileExtension=%1 &uygulamas ile %2 dosya uzants ilikilendirilsin
-AssocingFileExtension=%1 uygulamas ile %2 dosya uzants ilikilendiriliyor...
-AutoStartProgramGroupDescription=Balang:
-AutoStartProgram=%1 otomatik olarak balatlsn
-AddonHostProgramNotFound=%1 setiiniz klasrde bulunamad.%n%nYine de devam etmek istiyor musunuz?
\ No newline at end of file
diff --git a/Dependencies/Inno/Languages/Ukrainian.isl b/Dependencies/Inno/Languages/Ukrainian.isl
deleted file mode 100644
index c12c6ebf..00000000
--- a/Dependencies/Inno/Languages/Ukrainian.isl
+++ /dev/null
@@ -1,385 +0,0 @@
-; *** Inno Setup version 6.1.0+ Ukrainian messages ***
-; Author: Dmytro Onyshchuk
-; E-Mail: mrlols3@gmail.com
-; Please report all spelling/grammar errors, and observations.
-; Version 2020.08.04
-
-; *** Inno Setup 6.1.0 ***
-; :
-; E-Mail: mrlols3@gmail.com
-; , .
-; 2020.08.04
-
-[LangOptions]
-; The following three entries are very important. Be sure to read and
-; understand the '[LangOptions] section' topic in the help file.
-LanguageName=<0423><043A><0440><0430><0457><043D><0441><044C><043A><0430>
-LanguageID=$0422
-LanguageCodePage=1251
-; If the language you are translating to requires special font faces or
-; sizes, uncomment any of the following entries and change them accordingly.
-;DialogFontName=
-;DialogFontSize=8
-;WelcomeFontName=Verdana
-;WelcomeFontSize=12
-;TitleFontName=Arial
-;TitleFontSize=29
-;CopyrightFontName=Arial
-;CopyrightFontSize=8
-
-[Messages]
-
-; ***
-SetupAppTitle=
-SetupWindowTitle= %1
-UninstallAppTitle=
-UninstallAppFullTitle= %1
-
-; *** Misc. common
-InformationTitle=
-ConfirmTitle=ϳ
-ErrorTitle=
-
-; *** SetupLdr messages
-SetupLdrStartupMessage= %1 ', ?
-LdrCannotCreateTemp= .
-LdrCannotExecTemp= .
-HelpTextNote=
-
-; *** Startup error messages
-LastErrorMessage=%1.%n%n %2: %3
-SetupFileMissing= %1 . , .
-SetupFileCorrupt= . , .
-SetupFileCorruptOrWrongVer= . , .
-InvalidParameter= :%n%n%1
-SetupAlreadyRunning= .
-WindowsVersionNotSupported= Windows, '.
-WindowsServicePackRequired= %1 Service Pack %2 .
-NotOnThisPlatform= %1.
-OnlyOnThisPlatform= %1.
-OnlyOnTheseArchitectures= ' Windows :%n%n%1
-WinVersionTooLowError= %1 %2 .
-WinVersionTooHighError= %1 %2 .
-AdminPrivilegesRequired= .
-PowerUserPrivilegesRequired= .
-SetupAppRunningError=, %1 .%n%n , ﳿ OK , .
-UninstallAppRunningError=, %1 .%n%n , ﳿ OK , .
-
-; *** Startup questions
-PrivilegesRequiredOverrideTitle=
-PrivilegesRequiredOverrideInstruction=
-PrivilegesRequiredOverrideText1=%1 ( ), .
-PrivilegesRequiredOverrideText2=%1 , ( ).
-PrivilegesRequiredOverrideAllUsers= &
-PrivilegesRequiredOverrideAllUsersRecommended= & ()
-PrivilegesRequiredOverrideCurrentUser=
-PrivilegesRequiredOverrideCurrentUserRecommended= & ()
-
-; *** г
-ErrorCreatingDir= "%1"
-ErrorTooManyFilesInDir= "%1",
-
-; ***
-ExitSetupTitle=
-ExitSetupMessage= . , .%n%n .%n%n ?
-AboutSetupMenuItem=& ...
-AboutSetupTitle=
-AboutSetupMessage=%1 %2%n%3%n%n%1 :%n%4
-AboutSetupNote=
-TranslatorNote=Ukrainian translation by Dmytro Onyshchuk
-
-; ***
-ButtonBack=< &
-ButtonNext=& >
-ButtonInstall=&
-ButtonOK=OK
-ButtonCancel=
-ButtonYes=&
-ButtonYesToAll= &
-ButtonNo=&ͳ
-ButtonNoToAll=&
-ButtonFinish=&
-ButtonBrowse=&...
-ButtonWizardBrowse=&...
-ButtonNewFolder=&
-
-; *** ij " "
-SelectLanguageTitle=
-SelectLanguageLabel= , .
-
-; ***
-ClickNext= 볻, , .
-BeveledLabel=
-BrowseDialogTitle=
-BrowseDialogLabel= ʻ.
-NewFolderName=
-
-; *** ""
-WelcomeLabel1= [name].
-WelcomeLabel2= [name/ver] .%n%n .
-
-; *** ""
-WizardPassword=
-PasswordLabel1= .
-PasswordLabel3= , 볻, . .
-PasswordEditLabel=&:
-IncorrectPassword= . , .
-
-; *** "˳ "
-WizardLicense=˳
-LicenseLabel= , .
-LicenseLabel3= , . , .
-LicenseAccepted= &
-LicenseNotAccepted= &
-
-; *** ""
-WizardInfoBefore=
-InfoBeforeLabel= , , .
-InfoBeforeClickLabel= , 볻.
-WizardInfoAfter=
-InfoAfterLabel= , , .
-InfoAfterClickLabel= , 볻.
-
-; *** " "
-WizardUserInfo=
-UserInfoDesc= , .
-UserInfoName=& :
-UserInfoOrg=&:
-UserInfoSerial=& :
-UserInfoNameRequired= '.
-
-; *** " "
-WizardSelectDir=
-SelectDirDesc= [name]?
-SelectDirLabel3= [name] .
-SelectDirBrowseLabel= 볻, . , .
-DiskSpaceGBLabel= [gb] .
-DiskSpaceMBLabel= [mb] M .
-CannotInstallToNetworkDrive= .
-CannotInstallToUNCPath= .
-InvalidPath= , :%n%nC:\APP%n%n UNC:%n%n\\\
-InvalidDrive= , . , .
-DiskSpaceWarningTitle=
-DiskSpaceWarning= %1 , %2 .%n%n ?
-DirNameTooLong=' .
-InvalidDirName= .
-BadDirName32=' :%n%n%1
-DirExistsTitle=
-DirExists=:%n%n%1%n%n . ?
-DirDoesntExistTitle=
-DirDoesntExist=:%n%n%1%n%n . ?
-
-; *** " "
-WizardSelectComponents=
-SelectComponentsDesc= ?
-SelectComponentsLabel2= ; . 볻, .
-FullInstallation=
-; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
-CompactInstallation=
-CustomInstallation=
-NoUninstallWarningTitle=
-NoUninstallWarning=, :%n%n%1%n%n³ .%n%n ?
-ComponentSize1=%1 K
-ComponentSize2=%1 M
-ComponentsDiskSpaceGBLabel= [gb] .
-ComponentsDiskSpaceMBLabel= [mb] M .
-
-; *** " "
-WizardSelectTasks=
-SelectTasksDesc= ?
-SelectTasksLabel2= [name] , 볻.
-
-; *** " "
-WizardSelectProgramGroup=
-SelectStartMenuFolderDesc= ?
-SelectStartMenuFolderLabel3= .
-SelectStartMenuFolderBrowseLabel= 볻, . , .
-MustEnterGroupName= ' .
-GroupNameTooLong= .
-InvalidGroupName= .
-BadGroupName=' :%n%n%1
-NoProgramGroupCheck2=&
-
-; *** " "
-WizardReady=
-ReadyLabel1= [name] .
-ReadyLabel2a= , , .
-ReadyLabel2b= .
-ReadyMemoUserInfo= :
-ReadyMemoDir= :
-ReadyMemoType= :
-ReadyMemoComponents= :
-ReadyMemoGroup= :
-ReadyMemoTasks= :
-
-; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
-DownloadingLabel= ...
-ButtonStopDownload=&
-StopDownload= ?
-ErrorDownloadAborted=
-ErrorDownloadFailed= : %1 %2
-ErrorDownloadSizeFailed= : %1 %2
-ErrorFileHash1= : %1
-ErrorFileHash2= : %1, %2
-ErrorProgress= : %1 %2
-ErrorFileSize= : %1, %2
-
-; *** "ϳ "
-WizardPreparing=ϳ
-PreparingDesc= [name] .
-PreviousInstallNotCompleted= . .%n%nϳ , [name].
-CannotContinue= . , .
-ApplicationsFound= , . .
-ApplicationsFound2= , . . ϳ , .
-CloseApplications=&
-DontCloseApplications=&
-ErrorCloseApplications= . , , , .
-PrepareToInstallNeedsRestart= . ϳ , [name]%n%n ?
-
-; *** ""
-WizardInstalling=
-InstallingLabel= , , [name] '.
-
-; *** " "
-FinishedHeadingLabel= [name]
-FinishedLabelNoIcons= [name] .
-FinishedLabel= [name] . .
-ClickFinish= .
-FinishedRestartLabel= [name] . ?
-FinishedRestartMessage= [name] .%n%n ?
-ShowReadmeCheck=, README
-YesRadio=&,
-NoRadio=&ͳ,
-; used for example as 'Run MyProg.exe'
-RunEntryExec=³ %1
-; used for example as 'View Readme.txt'
-RunEntryShellExec= %1
-
-; *** "Setup Needs the Next Disk" stuff
-ChangeDiskTitle=
-SelectDiskLabel2= , %1 OK.%n%n , , .
-PathLabel=&:
-FileNotInDir2= "%1" "%2". , .
-SelectDirectoryLabel= , .
-
-; *** Installation phase messages
-SetupAborted= .%n%n , .
-AbortRetryIgnoreSelectAction=
-AbortRetryIgnoreRetry=&
-AbortRetryIgnoreIgnore=&
-AbortRetryIgnoreCancel=³
-
-; ***
-StatusClosingApplications= ...
-StatusCreateDirs= ...
-StatusExtractFiles= ...
-StatusCreateIcons= ...
-StatusCreateIniEntries= INI ...
-StatusCreateRegistryEntries= ...
-StatusRegisterFiles= ...
-StatusSavingUninstall= ...
-StatusRunProgram= ...
-StatusRestartingApplications= ...
-StatusRollback= ...
-
-; *** г
-ErrorInternal2= : %1
-ErrorFunctionFailedNoCode=%1
-ErrorFunctionFailed=%1 ; %2
-ErrorFunctionFailedWithMessage=%1 ; %2.%n%3
-ErrorExecutingProgram= :%n%1
-
-; ***
-ErrorRegOpenKey= :%n%1\%2
-ErrorRegCreateKey= :%n%1\%2
-ErrorRegWriteKey= :%n%1\%2
-
-; *** INI
-ErrorIniEntry= INI- "%1".
-
-; ***
-FileAbortRetryIgnoreSkipNotRecommended=& ( )
-FileAbortRetryIgnoreIgnoreNotRecommended=& ( )
-SourceIsCorrupted=
-SourceDoesntExist= "%1"
-ExistingFileReadOnly2= , .
-ExistingFileReadOnlyRetry=& " "
-ExistingFileReadOnlyKeepExisting=&
-ErrorReadingExistingDest= :
-FileExistsSelectAction=
-FileExists2= .
-FileExistsOverwriteExisting=&
-FileExistsKeepExisting=&
-FileExistsOverwriteOrKeepAll=&
-ExistingFileNewerSelectAction=
-ExistingFileNewer2= , .
-ExistingFileNewerOverwriteExisting=&
-ExistingFileNewerKeepExisting=& ()
-ExistingFileNewerOverwriteOrKeepAll=&
-ErrorChangingAttr= :
-ErrorCreatingTemp= :
-ErrorReadingSource= :
-ErrorCopying= :
-ErrorReplacingExistingFile= :
-ErrorRestartReplace= RestartReplace:
-ErrorRenamingTemp= :
-ErrorRegisterServer= DLL/OCX: %1
-ErrorRegSvr32Failed= RegSvr32, %1
-ErrorRegisterTypeLib= : %1
-
-; *** Uninstall display name markings
-UninstallDisplayNameMark=%1 (%2)
-UninstallDisplayNameMarks=%1 (%2, %3)
-UninstallDisplayNameMark32Bit=32-
-UninstallDisplayNameMark64Bit=64-
-UninstallDisplayNameMarkAllUsers=
-UninstallDisplayNameMarkCurrentUser=
-
-; *** Post-installation errors
-ErrorOpeningReadme= README.
-ErrorRestartingComputer= '. , .
-
-; ***
-UninstallNotFound= "%1" , .
-UninstallOpenError= "%1".
-UninstallUnsupportedVer= "%1" .
-UninstallUnknownEntry= (%1)
-ConfirmUninstall= , %1 ?
-UninstallOnlyOnWin64= 64- Windows.
-OnlyAdminCanUninstall= .
-UninstallStatusLabel= , , %1 '.
-UninstalledAll=%1 '.
-UninstalledMost= %1 .%n%n . .
-UninstalledAndNeedsRestart= %1 .%n%n ?
-UninstallDataCorrupted= "%1" .
-
-; *** Uninstallation phase messages
-ConfirmDeleteSharedFileTitle= ?
-ConfirmDeleteSharedFile2= , . ?%n%n , . , ͳ. .
-SharedFileNameLabel=' :
-SharedFileLocationLabel=:
-WizardUninstalling=
-StatusUninstalling= %1...
-
-
-; ***
-ShutdownBlockReasonInstallingApp= %1.
-ShutdownBlockReasonUninstallingApp= %1.
-
-; The custom messages below aren't used by Setup itself, but if you make
-; use of them in your scripts, you'll want to translate them.
-
-[CustomMessages]
-
-NameAndVersion=%1, %2
-AdditionalIcons= :
-CreateDesktopIcon= &
-CreateQuickLaunchIcon= &
-ProgramOnTheWeb= %1
-UninstallProgram= %1
-LaunchProgram=³ %1
-AssocFileExtension=& %1 %2
-AssocingFileExtension= %1 %2...
-AutoStartProgramGroupDescription=:
-AutoStartProgram= %1
-AddonHostProgramNotFound=%1 %n%n ?
diff --git a/Dependencies/Inno/Setup.e32 b/Dependencies/Inno/Setup.e32
deleted file mode 100644
index 7fcf47cd..00000000
Binary files a/Dependencies/Inno/Setup.e32 and /dev/null differ
diff --git a/Dependencies/Inno/SetupLdr.e32 b/Dependencies/Inno/SetupLdr.e32
deleted file mode 100644
index 9bf36bab..00000000
Binary files a/Dependencies/Inno/SetupLdr.e32 and /dev/null differ
diff --git a/Dependencies/Inno/WizModernImage-IS.bmp b/Dependencies/Inno/WizModernImage-IS.bmp
deleted file mode 100644
index cf844e09..00000000
Binary files a/Dependencies/Inno/WizModernImage-IS.bmp and /dev/null differ
diff --git a/Dependencies/Inno/WizModernImage.bmp b/Dependencies/Inno/WizModernImage.bmp
deleted file mode 100644
index cb05a063..00000000
Binary files a/Dependencies/Inno/WizModernImage.bmp and /dev/null differ
diff --git a/Dependencies/Inno/WizModernSmallImage-IS.bmp b/Dependencies/Inno/WizModernSmallImage-IS.bmp
deleted file mode 100644
index 1e8e4979..00000000
Binary files a/Dependencies/Inno/WizModernSmallImage-IS.bmp and /dev/null differ
diff --git a/Dependencies/Inno/WizModernSmallImage.bmp b/Dependencies/Inno/WizModernSmallImage.bmp
deleted file mode 100644
index 63f42104..00000000
Binary files a/Dependencies/Inno/WizModernSmallImage.bmp and /dev/null differ
diff --git a/Dependencies/Inno/isbunzip.dll b/Dependencies/Inno/isbunzip.dll
deleted file mode 100644
index 814e8680..00000000
Binary files a/Dependencies/Inno/isbunzip.dll and /dev/null differ
diff --git a/Dependencies/Inno/isbzip.dll b/Dependencies/Inno/isbzip.dll
deleted file mode 100644
index 1afeefd5..00000000
Binary files a/Dependencies/Inno/isbzip.dll and /dev/null differ
diff --git a/Dependencies/Inno/isfaq.url b/Dependencies/Inno/isfaq.url
deleted file mode 100644
index 91054550..00000000
--- a/Dependencies/Inno/isfaq.url
+++ /dev/null
@@ -1,2 +0,0 @@
-[InternetShortcut]
-URL=https://jrsoftware.org/isfaq.php
diff --git a/Dependencies/Inno/islzma.dll b/Dependencies/Inno/islzma.dll
deleted file mode 100644
index 81fd05ac..00000000
Binary files a/Dependencies/Inno/islzma.dll and /dev/null differ
diff --git a/Dependencies/Inno/islzma32.exe b/Dependencies/Inno/islzma32.exe
deleted file mode 100644
index 7562645e..00000000
Binary files a/Dependencies/Inno/islzma32.exe and /dev/null differ
diff --git a/Dependencies/Inno/islzma64.exe b/Dependencies/Inno/islzma64.exe
deleted file mode 100644
index fd58a59e..00000000
Binary files a/Dependencies/Inno/islzma64.exe and /dev/null differ
diff --git a/Dependencies/Inno/isscint.dll b/Dependencies/Inno/isscint.dll
deleted file mode 100644
index 5f8ef49b..00000000
Binary files a/Dependencies/Inno/isscint.dll and /dev/null differ
diff --git a/Dependencies/Inno/isunzlib.dll b/Dependencies/Inno/isunzlib.dll
deleted file mode 100644
index 8c4ed510..00000000
Binary files a/Dependencies/Inno/isunzlib.dll and /dev/null differ
diff --git a/Dependencies/Inno/iszlib.dll b/Dependencies/Inno/iszlib.dll
deleted file mode 100644
index b326e3a7..00000000
Binary files a/Dependencies/Inno/iszlib.dll and /dev/null differ
diff --git a/Dependencies/Inno/license.txt b/Dependencies/Inno/license.txt
deleted file mode 100644
index 17b2e1b7..00000000
--- a/Dependencies/Inno/license.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-Inno Setup License
-==================
-
-Except where otherwise noted, all of the documentation and software included in the Inno Setup
-package is copyrighted by Jordan Russell.
-
-Copyright (C) 1997-2020 Jordan Russell. All rights reserved.
-Portions Copyright (C) 2000-2020 Martijn Laan. All rights reserved.
-
-This software is provided "as-is," without any express or implied warranty. In no event shall the
-author be held liable for any damages arising from the use of this software.
-
-Permission is granted to anyone to use this software for any purpose, including commercial
-applications, and to alter and redistribute it, provided that the following conditions are met:
-
-1. All redistributions of source code files must retain all copyright notices that are currently in
- place, and this list of conditions without modification.
-
-2. All redistributions in binary form must retain all occurrences of the above copyright notice and
- web site addresses that are currently in place (for example, in the About boxes).
-
-3. The origin of this software must not be misrepresented; you must not claim that you wrote the
- original software. If you use this software to distribute a product, an acknowledgment in the
- product documentation would be appreciated but is not required.
-
-4. Modified versions in source or binary form must be plainly marked as such, and must not be
- misrepresented as being the original software.
-
-
-Jordan Russell
-jr-2020 AT jrsoftware.org
-https://jrsoftware.org/
\ No newline at end of file
diff --git a/Dependencies/Inno/unins000.dat b/Dependencies/Inno/unins000.dat
deleted file mode 100644
index 409a1aa0..00000000
Binary files a/Dependencies/Inno/unins000.dat and /dev/null differ
diff --git a/Dependencies/Inno/unins000.exe b/Dependencies/Inno/unins000.exe
deleted file mode 100644
index b8b4f910..00000000
Binary files a/Dependencies/Inno/unins000.exe and /dev/null differ
diff --git a/Dependencies/Inno/unins000.msg b/Dependencies/Inno/unins000.msg
deleted file mode 100644
index 24de8ec9..00000000
Binary files a/Dependencies/Inno/unins000.msg and /dev/null differ
diff --git a/Dependencies/Inno/whatsnew.htm b/Dependencies/Inno/whatsnew.htm
deleted file mode 100644
index 9add84e1..00000000
--- a/Dependencies/Inno/whatsnew.htm
+++ /dev/null
@@ -1,172 +0,0 @@
-
-
-
-Inno Setup 6 Revision History
-
-
-
-
-
-Inno Setup 6
Revision History
-
-Copyright © 1997-2020 Jordan Russell. All rights reserved.
-Portions Copyright © 2000-2020 Martijn Laan. All rights reserved.
-For conditions of distribution and use, see LICENSE.TXT.
-
-
-Want to be notified by e-mail of new Inno Setup releases? Subscribe to the Inno Setup Mailing List!
-
-6.1.2 (2020-11-15)
-
- - Compiler IDE change: Added new Print... (Ctrl+P) menu item to the File menu.
- - Minor tweaks.
-
-
-6.1.1-beta (2020-10-29)
-Compiler IDE updates
-Various improvements have been made to the Compiler IDE:
-
-Other changes
-
- - The /PORTABLE=1 command line parameter accepted by Inno Setup's own installers has been improved to allow side-by-side installations. For example, to quickly install a new version to the current user's desktop without affecting already installed versions use the following command line parameters: /portable=1 /silent /currentuser.
- - Setup's and Uninstall's Back and Next buttons no longer display outdated "<" and ">" markers.
- - Added new topic to the help file listing the additional Compiler IDE keyboard commands which are not listed in the menus. Added new Keyboard Commands menu item to the Compiler IDE's Help menu to open this topic.
- - ISPP change: Added new SaveStringToFile support function.
- - Fix: Calling DLL functions which return a 64-bit integer now gives correct result values.
- - Minor tweaks.
-
-
-All official translations have now been updated for the changes in the previous version. Thanks to the maintainers for their time.
-
-
6.1.0-beta (2020-09-13)
-Per-user fonts
-Per-user fonts are now supported if Setup is running on Windows 10 Version 1803 and later:
-
- - [Files] section parameter FontInstall can now be used in non administrative installs. Requires Windows 10 Version 1803 or later to successfully install a font.
- - The {fonts} constant has been renamed to {commonfonts}. The old name is still supported, but it is recommended to update your scripts to the new names and the compiler will issue a warning if you don't.
-
- Added new {userfonts} constant. Only Windows 10 Version 1803 and later supports {userfonts}. Same directory as {localappdata}\Microsoft\Windows\Fonts.
- - Added new {autofonts} constant which automatically maps to {commonfonts} unless the installation is running in non administrative install mode, in which case it maps to {userfonts}. It is recommended to update your scripts to use {autofonts} as much as possible to avoid mistakes.
- - Updated all examples to use {autofonts} instead of {fonts}.
- - Pascal Scripting change: The UnregisterFont support function now has an extra parameter.
-
-Compiler IDE updates
-Various improvements have been made to the Compiler IDE:
-
- - If the script uses Inno Setup Preprocessor (ISPP) functionality, the Compiler IDE now automatically shows the preprocessor output in a tab so you can check it. This can be turned off in the options.
- - The Compiler IDE now automatically opens (up to 10) #include files in tabs which allow you to edit and debug these files from within the Compiler IDE. The list of #include files is updated after opening a new main file and after each compilation. This can be turned off in the options. If the option is not turned off, a new Save All menu item is added to the File menu.
- - If #include files are modified since last compile, the script is now automatically re-compiled before running it. This works even if the option to automatically open #include files is turned off.
- - Added new Next Tab and Previous Tab menu items to the View menu.
- - Added new topic to the help file explaining the various integrated debugger menu items in the Run menu which can be used to debug your [Code] section.
- - Improved highlighting for the [CustomMessages] and [Messages] sections.
- - Added new MessageBox Designer menu item to the Tools menu to design and insert MsgBox or TaskDialogMsgBox calls for the [Code] section.
- - Added new Step Out menu item to the Run menu to unpause Setup until it reaches the end of the current function, then pause it on the next line.
- - Added buttons to the Welcome dialog to Donate to support Inno Setup (Thank you!) and to Subscribe to the Inno Setup Mailing List to be notified by e-mail of new Inno Setup releases.
- - The Run Parameters dialog now shows a list of most recently used parameters.
-
-Built-in download support for [Code]
-Pascal Scripting now supports downloading files and checking SHA-256 hashes:
-
- - Added new DownloadTemporaryFile support function to download files without using a third-party tool:
-
- - Supports HTTPS (but not expired or self-signed certificates) and HTTP.
- - Redirects are automatically followed and proxy settings are automatically used.
- - Safe to use from services unlike existing third-party tools.
- - Supports SHA-256 hash checking of the downloaded file.
- - Supports basic authentication.
-
-
- - Added new CreateDownloadPage support function to easily show the download progress to the user. See the new CodeDownloadFiles.iss example script for an example.
- - Added new DownloadTemporaryFileSize support function to get the size of a file without downloading it.
- - Added new GetSHA256OfFile, GetSHA256OfString, and GetSHA256OfUnicodeString support functions to calculate SHA-256 hashes.
- - Change in default behavior: Setup no longer disables itself entirely while PrepareToInstall is running. Instead only the Cancel button is disabled.
-
-Inno Setup Preprocessor (ISPP) updates
-ISPP now uses 64-bit integers and has new functions to more easily compare version numbers:
-
- - ISPP's int type is now a signed 64-bit integer type.
-
- Support function FileSize now supports 64-bit file sizes.
- - Added new GetPackedVersion, PackVersionNumbers, PackVersionComponents, ComparePackedVersion, SamePackedVersion, UnpackVersionNumbers, UnpackVersionComponents, and VersionToStr support functions.
- - Support function GetFileVersion and ParseVersion have been renamed to GetVersionNumbersString and GetVersionComponents respectively. The old names are still supported, but it is recommended to update your scripts to the new names and the compiler will issue a warning if you don't.
-
-Similar Pascal Scripting changes have been done for [Code]:
-
- - Added new FileSize64 support function.
- - Added new GetPackedVersion, PackVersionNumbers, PackVersionComponents, ComparePackedVersion, SamePackedVersion, UnpackVersionNumbers, UnpackVersionComponents, GetVersionComponents, and VersionToStr support functions. This makes ISPP and [Code] support the same list of version related functions.
-
-Other changes
-
- - Fix: Inno Setup 6.0.5 no longer supported Windows Vista.
- - Change in default behavior: [Setup] section directive MinVersion now defaults to 6.1sp1, so by default Setup will not run on Windows Vista or on versions of Windows 7 and Windows Server 2008 R2 which have not been updated. Setting MinVersion to 6.0 to allow Setup to run on Windows Vista is supported but not recommended: Windows Vista doesn't support some of Setup's security measures against potential DLL preloading attacks so these have to be removed by the compiler if MinVersion is below 6.1 making your installer less secure on all versions of Windows.
- - Inno Setup's version number doesn't display "(u)" at the end anymore since the Unicode version has been the only version for quite some time now.
- - Added new [Run] and [UninstallRun] sections flag: dontlogparameters. If this flag is specified, the command line parameters for the program will not be included in the log file.
- - If there are [UninstallRun] section entries without a RunOnceId parameter the compiler will now warn you about this. By assigning a string to RunOnceId, you can ensure that a particular [UninstallRun] entry will only be executed once during uninstallation. The warning can be disabled using new [Setup] section directive MissingRunOnceIdsWarning.
- - Added new [Icons] section parameter: AppUserModelToastActivatorCLSID. Specifies the Windows 10 Application User Model Toast Activator CLSID for the shortcut. Ignored on earlier Windows versions.
- - Setup's prompts to overwrite or keep existing files have been made more user friendly:
-
-
- - Console-mode compiler (ISCC) change: Warnings and errors are now colorized.
- - Pascal Scripting changes:
-
- - Added new CalculateButtonWidth function to the TSetupForm support class.
- - The ACaption and ADescription parameters of the various Create...Page support functions may now specify Setup messages containing shorthands like [name].
- - Fix: Support function WizardSelectComponents now also updates component sizes and the current selection's required disk space.
-
-
- - ISPP changes:
-
- - Using #pragma verboselevel now automatically turns on verbose mode.
- - Added new Message, Warning, and Error support functions.
- - ISPP's output is now cleaner and warnings are colorized.
-
- - Various documentation improvements.
- - Minor tweaks.
-
-
-Contributions via GitHub: Thanks to Gavin Lambert and Sergii Leonov for their contributions.
-
-Some messages have been added and changed in this version: (View differences in Default.isl).
-
- - New messages:
-
- - DownloadingLabel, ButtonStopDownload, StopDownload, ErrorDownloadAborted, ErrorDownloadFailed, ErrorDownloadSizeFailed, ErrorFileHash1, ErrorFileHash2, ErrorProgress, ErrorFileSize.
- - ExistingFileNewerSelectAction, ExistingFileNewer2, ExistingFileNewerOverwriteExisting, ExistingFileNewerKeepExisting, ExistingFileNewerOverwriteOrKeepAll.
- - FileExistsSelectAction, FileExists2, FileExistsOverwriteExisting, FileExistsKeepExisting, FileExistsOverwriteOrKeepAll.
-
-
- - Previously optional messages which must now always be set:
-
- - ComponentsDiskSpaceGBLabel, DiskSpaceGBLabel, PrepareToInstallNeedsRestart.
-
- - Removed messages:
-
- - ExistingFileNewer, FileExists.
-
-
-
-
-Note: Not all official translations have been updated for these changes at this moment.
-
-
Inno Setup 6.0 Revision History
-
-
-
diff --git a/Dependencies/SN.EXP/Newtonsoft.Json.dll b/Dependencies/SN.EXP/Newtonsoft.Json.dll
deleted file mode 100644
index 66300631..00000000
Binary files a/Dependencies/SN.EXP/Newtonsoft.Json.dll and /dev/null differ
diff --git a/Dependencies/SN.EXP/UnityEngine.AssetBundleModule.dll b/Dependencies/SN.EXP/UnityEngine.AssetBundleModule.dll
deleted file mode 100644
index 3eb582e2..00000000
Binary files a/Dependencies/SN.EXP/UnityEngine.AssetBundleModule.dll and /dev/null differ
diff --git a/Dependencies/SN.EXP/UnityEngine.CoreModule.dll b/Dependencies/SN.EXP/UnityEngine.CoreModule.dll
deleted file mode 100644
index b08f4fbd..00000000
Binary files a/Dependencies/SN.EXP/UnityEngine.CoreModule.dll and /dev/null differ
diff --git a/Dependencies/SN.EXP/UnityEngine.IMGUIModule.dll b/Dependencies/SN.EXP/UnityEngine.IMGUIModule.dll
deleted file mode 100644
index 1018fd12..00000000
Binary files a/Dependencies/SN.EXP/UnityEngine.IMGUIModule.dll and /dev/null differ
diff --git a/Dependencies/SN.EXP/UnityEngine.InputLegacyModule.dll b/Dependencies/SN.EXP/UnityEngine.InputLegacyModule.dll
deleted file mode 100644
index f5b9c00a..00000000
Binary files a/Dependencies/SN.EXP/UnityEngine.InputLegacyModule.dll and /dev/null differ
diff --git a/Dependencies/SN.EXP/UnityEngine.InputModule.dll b/Dependencies/SN.EXP/UnityEngine.InputModule.dll
deleted file mode 100644
index a7a35d15..00000000
Binary files a/Dependencies/SN.EXP/UnityEngine.InputModule.dll and /dev/null differ
diff --git a/Dependencies/SN.EXP/UnityEngine.UI.dll b/Dependencies/SN.EXP/UnityEngine.UI.dll
deleted file mode 100644
index 584a0e7d..00000000
Binary files a/Dependencies/SN.EXP/UnityEngine.UI.dll and /dev/null differ
diff --git a/Dependencies/SN.EXP/UnityEngine.dll b/Dependencies/SN.EXP/UnityEngine.dll
deleted file mode 100644
index 87a2f2eb..00000000
Binary files a/Dependencies/SN.EXP/UnityEngine.dll and /dev/null differ
diff --git a/Dependencies/SN.STABLE/Newtonsoft.Json.dll b/Dependencies/SN.STABLE/Newtonsoft.Json.dll
deleted file mode 100644
index dec691f5..00000000
Binary files a/Dependencies/SN.STABLE/Newtonsoft.Json.dll and /dev/null differ
diff --git a/Dependencies/SN.STABLE/UnityEngine.AssetBundleModule.dll b/Dependencies/SN.STABLE/UnityEngine.AssetBundleModule.dll
deleted file mode 100644
index 1384caa9..00000000
Binary files a/Dependencies/SN.STABLE/UnityEngine.AssetBundleModule.dll and /dev/null differ
diff --git a/Dependencies/SN.STABLE/UnityEngine.CoreModule.dll b/Dependencies/SN.STABLE/UnityEngine.CoreModule.dll
deleted file mode 100644
index 0baea738..00000000
Binary files a/Dependencies/SN.STABLE/UnityEngine.CoreModule.dll and /dev/null differ
diff --git a/Dependencies/SN.STABLE/UnityEngine.IMGUIModule.dll b/Dependencies/SN.STABLE/UnityEngine.IMGUIModule.dll
deleted file mode 100644
index f1d0b5fc..00000000
Binary files a/Dependencies/SN.STABLE/UnityEngine.IMGUIModule.dll and /dev/null differ
diff --git a/Dependencies/SN.STABLE/UnityEngine.InputLegacyModule.dll b/Dependencies/SN.STABLE/UnityEngine.InputLegacyModule.dll
deleted file mode 100644
index 728614c5..00000000
Binary files a/Dependencies/SN.STABLE/UnityEngine.InputLegacyModule.dll and /dev/null differ
diff --git a/Dependencies/SN.STABLE/UnityEngine.InputModule.dll b/Dependencies/SN.STABLE/UnityEngine.InputModule.dll
deleted file mode 100644
index 4642b984..00000000
Binary files a/Dependencies/SN.STABLE/UnityEngine.InputModule.dll and /dev/null differ
diff --git a/Dependencies/SN.STABLE/UnityEngine.UI.dll b/Dependencies/SN.STABLE/UnityEngine.UI.dll
deleted file mode 100644
index 68935e7a..00000000
Binary files a/Dependencies/SN.STABLE/UnityEngine.UI.dll and /dev/null differ
diff --git a/Dependencies/SN.STABLE/UnityEngine.dll b/Dependencies/SN.STABLE/UnityEngine.dll
deleted file mode 100644
index bc73a682..00000000
Binary files a/Dependencies/SN.STABLE/UnityEngine.dll and /dev/null differ
diff --git a/Dependencies/VclStylesinno.dll b/Dependencies/VclStylesinno.dll
deleted file mode 100644
index 8a55dfb5..00000000
Binary files a/Dependencies/VclStylesinno.dll and /dev/null differ
diff --git a/Executable/CleanUp.cs b/Executable/CleanUp.cs
deleted file mode 100644
index 60dd3225..00000000
--- a/Executable/CleanUp.cs
+++ /dev/null
@@ -1,68 +0,0 @@
-using Mono.Cecil;
-using System;
-using System.IO;
-
-namespace QModManager
-{
- internal static class CleanUp
- {
- private static bool IsChildOf(this DirectoryInfo child, DirectoryInfo parent, bool recursive = false)
- {
- if (child.Parent == null)
- return false;
-
- return child.Parent.FullName == parent.FullName || (recursive && child.Parent.IsChildOf(parent, recursive));
- }
-
- private static bool IsChildOf(this FileInfo child, DirectoryInfo parent, bool recursive = true)
- {
- if (child.Directory == null)
- return false;
-
- return child.Directory.FullName == parent.FullName || (recursive && child.Directory.IsChildOf(parent, recursive));
- }
- private static bool IsChildOf(this FileInfo child, string parentPath, bool recursive = true)
- => child.IsChildOf(new DirectoryInfo(parentPath), recursive);
-
- internal static void Initialize(string gameRootDirectory, string managedDirectory)
- {
- string qmodsDirectory = Path.Combine(gameRootDirectory, "QMods");
- string bepinexCoreDirectory = Path.Combine(gameRootDirectory, "BepInEx", "core");
-
- string[] pathsToCheck = new[] { managedDirectory, qmodsDirectory };
-
- foreach (var path in pathsToCheck)
- {
- foreach (var file in Directory.GetFiles(path, "*.dll", SearchOption.AllDirectories))
- {
- var fileInfo = new FileInfo(file);
- if (fileInfo.FullName.Contains("system32") || fileInfo.FullName.Contains("Windows") || fileInfo.IsChildOf(bepinexCoreDirectory, true))
- {
- Console.WriteLine($"Path is unsafe! {path}");
- continue;
- }
-
- try
- {
- using (var stream = new MemoryStream(File.ReadAllBytes(file)))
- {
- if (AssemblyDefinition.ReadAssembly(stream).MainModule.Name == "0Harmony" && File.Exists(file))
- {
- File.Delete(file);
- Console.WriteLine($"Deleted {new DirectoryInfo(file).FullName}...");
- }
- }
- }
- catch (BadImageFormatException)
- {
- if (Path.GetFileName(file).StartsWith("0Harmony") && File.Exists(file))
- {
- File.Delete(file);
- Console.WriteLine($"Deleted {new DirectoryInfo(file).FullName}...");
- }
- }
- }
- }
- }
- }
-}
diff --git a/Executable/Executable.csproj b/Executable/Executable.csproj
deleted file mode 100644
index 3d133575..00000000
--- a/Executable/Executable.csproj
+++ /dev/null
@@ -1,89 +0,0 @@
-
-
-
-
- Debug
- AnyCPU
- {E00B7FE8-0F1D-4AE6-9E47-4BFD81537F14}
- Exe
- QModManager
- QModManager
- v4.7.2
- 512
- {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- 4
- true
-
-
-
- ..\Build\$(Configuration)\
- SUBNAUTICA;SUBNAUTICA_STABLE
- true
- pdbonly
- AnyCPU
- 7.3
- prompt
-
-
- ..\Build\$(Configuration)\
- SUBNAUTICA;SUBNAUTICA_EXP
- true
- pdbonly
- AnyCPU
- 7.3
- prompt
-
-
- ..\Build\$(Configuration)\
- BELOWZERO;BELOWZERO_STABLE
- true
- pdbonly
- AnyCPU
- 7.3
- prompt
-
-
- ..\Build\$(Configuration)\
- BELOWZERO;BELOWZERO_EXP
- true
- pdbonly
- AnyCPU
- 7.3
- prompt
-
-
- QModManager.Executable
-
-
- icon.ico
-
-
-
- ..\Dependencies\BepInEx\BepInEx\core\Mono.Cecil.dll
- False
-
-
-
-
-
-
-
- Code
-
-
-
-
-
-
-
-
- {ca99f076-7459-4682-a41d-2850aee28566}
- QModManager.UnityAudioFixer
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Executable/Program.cs b/Executable/Program.cs
deleted file mode 100644
index 38095240..00000000
--- a/Executable/Program.cs
+++ /dev/null
@@ -1,305 +0,0 @@
-namespace QModManager
-{
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Reflection;
- using System.Runtime.InteropServices;
-
- internal enum Action
- {
- Install,
- Uninstall,
- RunByUser,
- CleanUp
- }
-
- [Flags]
- internal enum OS
- {
- None = 0b00,
- Windows = 0b01,
- Mac = 0b10,
- Both = Windows | Mac,
- }
-
- internal static class Executable
- {
- internal static Action action = Action.RunByUser;
- internal static OS os;
-
- internal static void Main(string[] args)
- {
- try
- {
- InitAssemblyResolver();
-
- var parsedArgs = new Dictionary();
-
- foreach (string arg in args)
- {
- if (arg.Contains("="))
- {
- parsedArgs = args.Select(s => s.Split(new[] { '=' }, 1)).ToDictionary(s => s[0], s => s[1]);
- }
- else if (arg == "-i")
- action = Action.Install;
- else if (arg == "-u")
- action = Action.Uninstall;
- else if (arg == "-c")
- action = Action.CleanUp;
- }
-
- string gameRootDirectory = Path.Combine(Environment.CurrentDirectory, "../../..");
- string snManagedDirectory = Path.Combine(gameRootDirectory, "Subnautica_Data", "Managed");
- string bzManagedDirectory = Path.Combine(gameRootDirectory, "SubnauticaZero_Data", "Managed");
- string managedDirectory;
- if (Directory.Exists(snManagedDirectory))
- {
- managedDirectory = snManagedDirectory;
- }
- else if (Directory.Exists(bzManagedDirectory))
- {
- managedDirectory = bzManagedDirectory;
- }
- else
- {
- Console.WriteLine("Could not find Managed directory.");
- Console.WriteLine("Please make sure you have installed QModManager in the right folder.");
- Console.WriteLine("If the problem persists, open a bug report on NexusMods or an issue on GitHub");
- Console.WriteLine();
- Console.WriteLine("Press any key to exit...");
- Console.ReadKey();
- Environment.Exit(1);
- return;
- }
- string globalgamemanagers = Path.Combine(managedDirectory, "../globalgamemanagers");
-
- os = GetOS();
-
- if (os == OS.Both)
- {
- // This runs if both windows and mac files were detected, but it should NEVER happen.
- Console.WriteLine("An unexpected error has occurred.");
- Console.WriteLine("Both Windows and Mac files detected!");
- Console.WriteLine("Is this a Windows or a Mac environment?");
- Console.WriteLine();
- Console.WriteLine("Press any key to exit...");
- Console.ReadKey();
- Environment.Exit(1);
- return;
- }
- else if (os == OS.None)
- {
- Console.WriteLine("Could not find any game to patch!");
- Console.WriteLine("An assembly file was found, but no executable was detected.");
- Console.WriteLine("Please make sure you have installed QModManager in the right folder.");
- Console.WriteLine("If the problem persists, open a bug report on NexusMods or an issue on GitHub");
- Console.WriteLine();
- Console.WriteLine("Press any key to exit...");
- Console.ReadKey();
- Environment.Exit(1);
- return;
- }
-
- if (!File.Exists(Path.Combine(managedDirectory, "Assembly-CSharp.dll")))
- {
- Console.WriteLine("Could not find the assembly file.");
- Console.WriteLine("Please make sure you have installed QModManager in the right folder.");
- Console.WriteLine("If the problem persists, open a bug report on NexusMods or an issue on GitHub");
- Console.WriteLine();
- Console.WriteLine("Press any key to exit...");
- Console.ReadKey();
- Environment.Exit(1);
- }
-
- if (action == Action.Install)
- {
- Console.WriteLine("Attempting to enable Unity audio...");
- UnityAudioFixer.EnableUnityAudio();
- Console.WriteLine("Unity audio enabled.");
- Environment.Exit(0);
- }
- else if (action == Action.Uninstall)
- {
- Console.WriteLine("Attempting to disable Unity audio...");
- UnityAudioFixer.DisableUnityAudio();
- Console.WriteLine("Unity audio disabled.");
- Environment.Exit(0);
- }
- else if (action == Action.CleanUp)
- {
- Console.WriteLine("Attempting to clean up Nitrox and previous QMM installs...");
- CleanUp.Initialize(gameRootDirectory, managedDirectory);
- Console.WriteLine("Clean-up complete.");
- Environment.Exit(0);
- }
- else
- {
- Console.Write("Clean up install? [Y/N] > ");
- ConsoleKey key = Console.ReadKey().Key;
- Console.WriteLine();
-
- if (key == ConsoleKey.Y)
- {
- Console.WriteLine("Attempting to clean up Nitrox and previous QMM installs...");
- CleanUp.Initialize(gameRootDirectory, managedDirectory);
- Console.WriteLine("Clean-up complete.");
- Console.WriteLine();
- }
-
- Console.Write("Enable Unity sound? [Y/N] > ");
- key = Console.ReadKey().Key;
- Console.WriteLine();
-
- if (key == ConsoleKey.Y)
- {
- Console.WriteLine("Attempting to enable Unity audio...");
- UnityAudioFixer.EnableUnityAudio();
- Console.WriteLine("Unity audio enabled.");
- Console.WriteLine("Press any key to exit...");
- Console.ReadKey();
- Environment.Exit(0);
- }
- else if (key == ConsoleKey.N)
- {
- Console.WriteLine("Attempting to disable Unity audio...");
- UnityAudioFixer.DisableUnityAudio();
- Console.WriteLine("Unity audio disabled.");
- Console.WriteLine("Press any key to exit...");
- Console.ReadKey();
- Environment.Exit(0);
- }
- }
- }
- catch (Exception e)
- {
- Console.WriteLine("EXCEPTION CAUGHT!");
- Console.WriteLine(e.ToString());
- Console.WriteLine();
- Console.ReadKey();
- Environment.Exit(2);
- }
- }
-
- private static OS GetOS()
- {
- string windowsDirectory = Path.Combine(Environment.CurrentDirectory, "../../..");
- string macDirectory = Path.Combine(Environment.CurrentDirectory, "../../../../../..");
-
- bool subnautica = false, belowzero = false;
-
- // Check if the device is running Windows OS
- bool onWindows = false, onWindowsSN, onWindowsBZ;
- if (Directory.Exists(windowsDirectory))
- {
- try
- {
- // Try to get the Subnautica executable
- // This method throws a lot of exceptions
- onWindowsSN = Directory.GetFiles(windowsDirectory, "Subnautica.exe", SearchOption.TopDirectoryOnly).Length > 0;
- onWindowsBZ = Directory.GetFiles(windowsDirectory, "SubnauticaZero.exe", SearchOption.TopDirectoryOnly).Length > 0;
-
- onWindows = onWindowsSN || onWindowsBZ;
-
- subnautica = subnautica || onWindowsSN;
- belowzero = belowzero || onWindowsBZ;
- }
- catch (Exception)
- {
- // If an exception was thrown, the file probably isn't there
- onWindows = false;
- }
- }
-
- // Check if the device is running Mac OS
- bool onMac = false, onMacSN, onMacBZ;
- if (Directory.Exists(macDirectory))
- {
- try
- {
- // Try to get the Subnautica executable
- // This method throws a lot of exceptions
- // On mac, .app files act as files and folders at the same time, but they are detected as folders.
- onMacSN = Directory.GetDirectories(macDirectory, "Subnautica.app", SearchOption.TopDirectoryOnly).Length > 0;
- onMacBZ = Directory.GetDirectories(macDirectory, "SubnauticaZero.app", SearchOption.TopDirectoryOnly).Length > 0;
-
- onMac = onMacSN || onMacBZ;
-
- subnautica = subnautica || onMacSN;
- belowzero = belowzero || onMacBZ;
- }
- catch (Exception)
- {
- // If an exception was thrown, the file probably isn't there
- onMac = false;
- }
- }
-
- var os = OS.None;
- if (onWindows)
- {
- os |= OS.Windows;
- }
- if (onMac)
- {
- os |= OS.Mac;
- }
- return os;
- }
-
- private static void InitAssemblyResolver()
- {
- AppDomain.CurrentDomain.AssemblyResolve += ResolveAssemblies;
- }
-
- internal static string GameRootDirectory => Path.Combine(Environment.CurrentDirectory, "../../..");
- internal static string BepInExRootDirectory => Path.Combine(GameRootDirectory, "BepInEx");
- internal static string BepInExAssemblyDirectory => Path.Combine(BepInExRootDirectory, "core");
- internal static string QModManagerPluginDirectory => Path.Combine(BepInExRootDirectory, "plugins", "QModManager");
- internal static string QModManagerPatcherDirectory => Path.Combine(BepInExRootDirectory, "patchers", "QModManager");
-
- private static Assembly ResolveAssemblies(object sender, ResolveEventArgs e)
- {
- var name = new AssemblyName(e.Name);
-
- if (Utility.TryResolveDllAssembly(name, BepInExRootDirectory, out var assembly) || // First try BepInEx assemblies
- Utility.TryResolveDllAssembly(name, QModManagerPluginDirectory, out assembly) || // Then QModManager plugins
- Utility.TryResolveDllAssembly(name, QModManagerPatcherDirectory, out assembly)) // Then QModManager patchers
- {
-
- return assembly;
- }
- else
- {
- return null;
- }
- }
-
- #region Disable exit
-
- internal static void DisableExit()
- {
- DisableExitButton();
- Console.CancelKeyPress += CancelKeyPress;
- Console.TreatControlCAsInput = true;
- }
-
- private static void DisableExitButton()
- {
- EnableMenuItem(GetSystemMenu(GetConsoleWindow(), false), 0xF060, 0x1);
- }
-
- private static void CancelKeyPress(object sender, ConsoleCancelEventArgs e)
- {
- e.Cancel = true;
- }
-
- [DllImport("user32.dll")] private static extern int EnableMenuItem(IntPtr tMenu, int targetItem, int targetStatus);
- [DllImport("user32.dll")] private static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRevert);
- [DllImport("kernel32.dll", ExactSpelling = true)] private static extern IntPtr GetConsoleWindow();
-
- #endregion
- }
-}
diff --git a/Executable/Properties/AssemblyInfo.cs b/Executable/Properties/AssemblyInfo.cs
deleted file mode 100644
index 1b7e0557..00000000
--- a/Executable/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-[assembly: AssemblyTitle("QModManagerExecutable")]
-[assembly: AssemblyDescription("Config based patch management for Subnautica and Subnautica: Below Zero")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("QModManager")]
-[assembly: AssemblyProduct("QModManagerExecutable")]
-[assembly: AssemblyCopyright("")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-[assembly: ComVisible(false)]
-
-[assembly: AssemblyVersion("4.3.0")]
-[assembly: AssemblyFileVersion("4.3.0")]
diff --git a/Executable/Utility.cs b/Executable/Utility.cs
deleted file mode 100644
index 36f1503c..00000000
--- a/Executable/Utility.cs
+++ /dev/null
@@ -1,59 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Reflection;
-
-namespace QModManager
-{
- public static class Utility
- {
- ///
- /// Try to resolve and load the given assembly DLL.
- ///
- /// Name of the assembly, of the type .
- /// Directory to search the assembly from.
- /// The loaded assembly.
- /// True, if the assembly was found and loaded. Otherwise, false.
- private static bool TryResolveDllAssembly(AssemblyName assemblyName, string directory, Func loader, out T assembly) where T : class
- {
- assembly = null;
-
- var potentialDirectories = new List { directory };
-
- potentialDirectories.AddRange(Directory.GetDirectories(directory, "*", SearchOption.AllDirectories));
-
- foreach (string subDirectory in potentialDirectories)
- {
- string path = Path.Combine(subDirectory, $"{assemblyName.Name}.dll");
-
- if (!File.Exists(path))
- continue;
-
- try
- {
- assembly = loader(path);
- }
- catch (Exception)
- {
- continue;
- }
-
- return true;
- }
-
- return false;
- }
-
- ///
- /// Try to resolve and load the given assembly DLL.
- ///
- /// Name of the assembly, of the type .
- /// Directory to search the assembly from.
- /// The loaded assembly.
- /// True, if the assembly was found and loaded. Otherwise, false.
- public static bool TryResolveDllAssembly(AssemblyName assemblyName, string directory, out Assembly assembly)
- {
- return TryResolveDllAssembly(assemblyName, directory, Assembly.LoadFile, out assembly);
- }
- }
-}
diff --git a/Executable/app.config b/Executable/app.config
deleted file mode 100644
index 312bb3f2..00000000
--- a/Executable/app.config
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/Executable/icon.ico b/Executable/icon.ico
deleted file mode 100644
index 0d39dee8..00000000
Binary files a/Executable/icon.ico and /dev/null differ
diff --git a/Installer/BZ.EXP.iss b/Installer/BZ.EXP.iss
deleted file mode 100644
index 04b9d9f1..00000000
--- a/Installer/BZ.EXP.iss
+++ /dev/null
@@ -1,606 +0,0 @@
-; Throws an error if the version used to compile this script is not unicode
-; This ensures that the application is built correctly
-#if !Defined(UNICODE)
- #error A unicode version of Inno Setup is required to compile this script
-#endif
-
-#define Name "QModManager" ; The name of the game will be added after it
-#define Version "4.3.0"
-#define Author "QModManager"
-#define URL "https://github.com/QModManager/QModManager"
-#define SupportURL "https://discord.gg/UpWuWwq"
-#define UpdatesURL "https://nexusmods.com" ; The link to the mod will be added after it
-
-[Setup]
-AllowNetworkDrive=no
-AllowUNCPath=no
-AlwaysShowDirOnReadyPage=yes
-AppendDefaultDirName=no
-AppId={code:GetGUID}
-AppName={#Name}
-AppPublisher={#Author}
-AppPublisherURL={#URL}
-AppSupportURL={#SupportURL}
-AppUpdatesURL={code:GetURL}
-AppVerName={#Name} {#Version}
-AppVersion={#Version}
-Compression=lzma
-DefaultDirName=.
-DirExistsWarning=no
-DisableDirPage=no
-DisableProgramGroupPage=yes
-DisableWelcomePage=no
-EnableDirDoesntExistWarning=yes
-OutputBaseFilename=QModManager_{#Version}_BelowZero_Experimental_Setup
-OutputDir=.\
-PrivilegesRequired=admin
-SetupIconFile=..\..\Assets\Icon.ico
-SolidCompression=yes
-UninstallDisplayIcon={app}\BepInEx\patchers\QModManager\QModManager.exe
-UninstallDisplayName={code:GetName}
-UsePreviousAppDir=no
-UsePreviousLanguage=no
-WizardImageFile=..\..\Assets\InstallerImage.bmp
-WizardSmallImageFile=..\..\Assets\InstallerSmallImage.bmp
-UsePreviousSetupType=False
-UsePreviousTasks=False
-CloseApplications=False
-
-[Languages]
-Name: "english"; MessagesFile: "compiler:Default.isl"
-
-[Files]
-; Files used by the installer but not required by QModManager itself
-; Installer theme
-Source: "..\..\Dependencies\VclStylesinno.dll"; Flags: DontCopy
-Source: "..\..\Dependencies\Carbon.vsf"; Flags: DontCopy
-; Installer extensions
-Source: "InstallerExtensions.dll"; Flags: DontCopy
-
-; Files required by QModManager itself
-; Dependencies
-Source: "..\..\packages\AssetsTools.NET.2.0.9\lib\net40\AssetsTools.NET.dll"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-Source: "..\..\Dependencies\cldb.dat"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-Source: "..\..\Dependencies\Oculus.Newtonsoft.Json.dll"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-
-; QMM
-Source: "QModInstaller.dll"; DestDir: "{app}\BepInEx\plugins\QModManager"; Flags: ignoreversion;
-Source: "QModInstaller.xml"; DestDir: "{app}\BepInEx\plugins\QModManager"; Flags: ignoreversion;
-Source: "QModManager.exe"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-
-; BepInEx patchers
-Source: "QModManager.OculusNewtonsoftRedirect.dll"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-Source: "QModManager.QModPluginGenerator.dll"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-Source: "QModManager.UnityAudioFixer.dll"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-Source: "QModManager.UnityAudioFixer.xml"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-
-; BepInEx
-Source: "..\..\Dependencies\BepInEx\*"; DestDir: "{app}"; Flags: recursesubdirs createallsubdirs replacesameversion sharedfile uninsnosharedfileprompt;
-Source: "..\..\Dependencies\BZ.EXP\BepInEx.cfg"; DestDir: "{app}\BepInEx\config"; Flags: ignoreversion sharedfile uninsnosharedfileprompt;
-
-[Dirs]
-Name: "{app}\QMods"
-
-[Run]
-Filename: "{app}\BepInEx\patchers\QModManager\QModManager.exe"; Parameters: "-c"; Tasks: cleanup
-
-[UninstallRun]
-Filename: "{app}\BepInEx\patchers\QModManager\QModManager.exe"; Parameters: "-u";
-
-[Messages]
-; BeveledLabel={#Name} {#Version}
-WizardSelectDir=Select install location
-SelectDirLabel3=Please select the install folder of the game.
-SelectDirBrowseLabel=To continue, click Next. If you would like to select a different folder, click Browse.%nIf you have the game on steam, you can also use the buttons on the bottom left to auto-complete the install path for the chosen game.
-ReadyLabel2a=By installing, you agree to allow QModManager to send external web requests, most often to check for updates. You can disable this option at any time in the Mods tab of the Subnautica options menu.
-ExitSetupMessage=Setup is not complete. If you exit now, {#Name} will not be installed.%nExit Setup?
-WizardSelectComponents=Review Install
-SelectComponentsDesc=
-SelectComponentsLabel2=
-
-[Types]
-; Used to disable the three Full, Compact and Custom types
-Name: "select"; Description: "QModManager"; Flags: IsCustom;
-
-[Components]
-Name: "qmm"; Description: "QModManager"; Flags: fixed; Types: select;
-Name: "qmm\bz"; Description: "Install for Below Zero"; Flags: exclusive fixed;
-
-[Tasks]
-Name: "cleanup"; Description: "(Recommended) Clean up after previous Nitrox and QMM installs";
-
-[Code]
-// Import stuff from InstallerExtensions.dll
-function PathsEqual(pathone, pathtwo: WideString): Boolean; external 'PathsEqual@files:InstallerExtensions.dll stdcall setuponly delayload';
-
-function IsBelowZero(path: String): Boolean;
-begin
- if (FileExists(path + '\SubnauticaZero.exe')) and (FileExists(path + '\SubnauticaZero_Data\Managed\Assembly-CSharp.dll')) then
- begin
- Result := true
- Exit
- end
- else
- begin
- Result := false
- Exit
- end
-end;
-function IsBelowZeroApp(): Boolean;
-begin
- Result := IsBelowZero(ExpandConstant('{app}'));
-end;
-
-function GetName(def: string): String;
-begin
- if (IsBelowZeroApp()) then
- begin
- Result := '{#Name} (Below Zero)'
- end
- else
- begin
- Result := ExpandConstant('{app}')
- end
-end;
-
-function GetURL(def: string): String;
-begin
- if (IsBelowZeroApp()) then
- begin
- Result := '{#UpdatesURL}/subnauticabelowzero/mods/1'
- end
- else
- begin
- Result := '{#UpdatesURL}'
- end
-end;
-
-function CurPageChanged_SelectComponents(CurPageID: Integer): Boolean;
-var
- Index: Integer;
- app: String;
-begin
- if CurPageID = wpSelectComponents then
- begin
- try
- app := ExpandConstant('{app}')
- except
- app := 'null'
- end;
- if not IsBelowZero(app) then
- begin
- WizardForm.SelectComponentsLabel.Caption := 'No game detected in this folder, cannot install'
- Exit
- end;
- Index := WizardForm.ComponentsList.Items.IndexOf('Install for Below Zero')
- if Index <> -1 then
- begin
- if IsBelowZero(app) then
- begin
- WizardForm.ComponentsList.Checked[Index] := true
- WizardForm.SelectComponentsLabel.Caption := 'Install QModManager for Below Zero'
- end
- end
- end
-end;
-
-function GetDir(folder: String; name: String): String;
-var
-I : Integer;
-P : Integer;
-steamInstallPath : String;
-configFile : String;
-fileLines: TArrayOfString;
-begin
- steamInstallPath := ''
- RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\WOW6432Node\Valve\Steam', 'InstallPath', steamInstallPath)
- if (FileExists(steamInstallPath + '\steamapps\common\' + folder + '\' + name + '.exe')) and (FileExists(steamInstallPath + '\steamapps\common\' + folder + '\' + name + '_Data\Managed\Assembly-CSharp.dll')) then
- begin
- Result := steamInstallPath + '\steamapps\common\' + folder
- Exit
- end
- else
- begin
- configFile := steamInstallPath + '\config\config.vdf'
- if FileExists(configFile) then
- begin
- if LoadStringsFromFile(configFile, FileLines) then
- begin
- for I := 0 to GetArrayLength(FileLines) - 1 do
- begin
- P := Pos('BaseInstallFolder_', FileLines[I])
- if P > 0 then
- begin
- steamInstallPath := Copy(FileLines[I], P + 23, 3) + Copy(FileLines[I], P + 27, Length(FileLines[I]) - P - 27);
- if (FileExists(steamInstallPath + '\steamapps\common\' + folder + '\' + name + '.exe')) and (FileExists(steamInstallPath + '\steamapps\common\' + folder + '\' + name + '_Data\Managed\Assembly-CSharp.dll')) then // If the folder is correct
- begin
- Result := steamInstallPath + '\steamapps\common\' + folder
- Exit
- end
- end
- end
- end
- end
- end;
- Result := 'none'
- Exit
-end;
-
-var ACLabel: TLabel;
-var BelowZeroButton: TNewRadioButton;
-
-procedure BelowZeroButtonOnClick(Sender: TObject);
-begin
- WizardForm.DirEdit.Text := GetDir('SubnauticaZero', 'SubnauticaZero')
- BelowZeroButton.Checked := true
-end;
-
-function InitializeWizard_AddButtons(): Boolean;
-begin
- ACLabel := TLabel.Create(WizardForm)
- with ACLabel do
- begin
- Parent := WizardForm
- Caption := 'Get path from Steam for:'
- Left := WizardForm.SelectDirLabel.Left / 3
- Top := WizardForm.BackButton.Top - WizardForm.BackButton.Top / 90
- end;
-
- BelowZeroButton := TNewRadioButton.Create(WizardForm)
- with BelowZeroButton do
- begin
- Parent := WizardForm
- Caption := 'Below Zero'
- OnClick := @BelowZeroButtonOnClick
- Left := WizardForm.SelectDirLabel.Left + WizardForm.SelectDirLabel.Left / 30
- Top := WizardForm.BackButton.Top + 10
- Height := WizardForm.BackButton.Height
- Enabled := True
- end;
-end;
-
-function CurPageChanged_AddButtons(CurPageID: Integer): Boolean;
-begin
- if CurPageID = wpSelectDir then
- begin
- WizardForm.DirEdit.Text := ''
- if GetDir('SubnauticaZero', 'SubnauticaZero') = 'none' then
- begin
- BelowZeroButton.Enabled := false
- end;
-
- if BelowZeroButton.Enabled then
- begin
- WizardForm.DirEdit.Text := GetDir('SubnauticaZero', 'SubnauticaZero')
- BelowZeroButton.Checked := true
- end;
- end;
- BelowZeroButton.Visible := CurPageID = wpSelectDir
- ACLabel.Visible := CurPageID = wpSelectDir
-end;
-
-var DirEditOnChangePrev: TNotifyEvent;
-
-procedure DirEditOnChange(Sender: TObject);
-var
- S: String;
-begin
- if Pos('subnauticazero', LowerCase(WizardForm.DirEdit.Text)) <> 0 then
- begin
- if PathsEqual(WizardForm.DirEdit.Text, GetDir('SubnauticaZero', 'SubnauticaZero')) then
- begin
- BelowZeroButton.Checked := true
- end
- else
- begin
- BelowZeroButton.Checked := false;
- end
- end
- else
- begin
- BelowZeroButton.Checked := false;
- end;
-
- if (Pos('://', WizardForm.DirEdit.Text) <> 0) or (Pos(':\\', WizardForm.DirEdit.Text) <> 0) then
- begin
- S := WizardForm.DirEdit.Text;
- StringChangeEx(S, '://', ':/', true);
- StringChangeEx(S, ':\\', ':\', true);
- WizardForm.DirEdit.Text := S;
- end
-end;
-
-function InitializeWizard_DirOnChange(): Boolean;
-begin
- DirEditOnChangePrev := WizardForm.DirEdit.OnChange
- WizardForm.DirEdit.OnChange := @DirEditOnChange
-end;
-
-var appIsSet: Boolean;
-
-function GetGUID(def: String): String;
-begin
- if not appIsSet then // The installer tries to get the GUID at startup to use previous options such as install path or install settings. As QModManager's GUID is defined AFTER the path is selected, it doesn't need to provide a value
- begin
- Result := ''
- Exit
- end;
- if IsBelowZero(ExpandConstant('{app}')) then
- begin
- Result := '{A535470D-3403-46A2-8D44-28AD4B90C9A3}'
- Exit
- end
-end;
-
-function IsAppRunning(const FileName : string): Boolean;
-var
- FSWbemLocator: Variant;
- FWMIService : Variant;
- FWbemObjectSet: Variant;
-begin
- Result := false;
- FSWbemLocator := CreateOleObject('WBEMScripting.SWBEMLocator');
- FWMIService := FSWbemLocator.ConnectServer('', 'root\CIMV2', '', '');
- FWbemObjectSet :=
- FWMIService.ExecQuery(
- Format('SELECT Name FROM Win32_Process Where Name="%s"', [FileName]));
- Result := (FWbemObjectSet.Count > 0);
- FWbemObjectSet := Unassigned;
- FWMIService := Unassigned;
- FSWbemLocator := Unassigned;
-end;
-
-// Imports some stuff from VclStylesInno.dll
-procedure LoadVCLStyle(VClStyleFile: String); external 'LoadVCLStyleW@files:VclStylesInno.dll stdcall';
-procedure UnLoadVCLStyles; external 'UnLoadVCLStyles@files:VclStylesInno.dll stdcall';
-
-// Check for .NET version -- code from http://www.kynosarges.de/DotNetVersion.html
-function IsDotNetDetected(version: string; service: cardinal): boolean;
-// Indicates whether the specified version and service pack of the .NET Framework is installed.
-//
-// version -- Specify one of these strings for the required .NET Framework version:
-// 'v1.1' .NET Framework 1.1
-// 'v2.0' .NET Framework 2.0
-// 'v3.0' .NET Framework 3.0
-// 'v3.5' .NET Framework 3.5
-// 'v4\Client' .NET Framework 4.0 Client Profile
-// 'v4\Full' .NET Framework 4.0 Full Installation
-// 'v4.5' .NET Framework 4.5
-// 'v4.5.1' .NET Framework 4.5.1
-// 'v4.5.2' .NET Framework 4.5.2
-// 'v4.6' .NET Framework 4.6
-// 'v4.6.1' .NET Framework 4.6.1
-// 'v4.6.2' .NET Framework 4.6.2
-// 'v4.7' .NET Framework 4.7
-//
-// service -- Specify any non-negative integer for the required service pack level:
-// 0 No service packs required
-// 1, 2, etc. Service pack 1, 2, etc. required
-var
- key, versionKey: string;
- install, release, serviceCount, versionRelease: cardinal;
- success: boolean;
-begin
- versionKey := version;
- versionRelease := 0;
-
- // .NET 1.1 and 2.0 embed release number in version key
- if version = 'v1.1' then begin
- versionKey := 'v1.1.4322';
- end else if version = 'v2.0' then begin
- versionKey := 'v2.0.50727';
- end
-
- // .NET 4.5 and newer install as update to .NET 4.0 Full
- else if Pos('v4.', version) = 1 then begin
- versionKey := 'v4\Full';
- case version of
- 'v4.5': versionRelease := 378389;
- 'v4.5.1': versionRelease := 378675; // 378758 on Windows 8 and older
- 'v4.5.2': versionRelease := 379893;
- 'v4.6': versionRelease := 393295; // 393297 on Windows 8.1 and older
- 'v4.6.1': versionRelease := 394254; // 394271 before Win10 November Update
- 'v4.6.2': versionRelease := 394802; // 394806 before Win10 Anniversary Update
- 'v4.7': versionRelease := 460798; // 460805 before Win10 Creators Update
- end;
- end;
-
- // installation key group for all .NET versions
- key := 'SOFTWARE\Microsoft\NET Framework Setup\NDP\' + versionKey;
-
- // .NET 3.0 uses value InstallSuccess in subkey Setup
- if Pos('v3.0', version) = 1 then begin
- success := RegQueryDWordValue(HKLM, key + '\Setup', 'InstallSuccess', install);
- end else begin
- success := RegQueryDWordValue(HKLM, key, 'Install', install);
- end;
-
- // .NET 4.0 and newer use value Servicing instead of SP
- if Pos('v4', version) = 1 then begin
- success := success and RegQueryDWordValue(HKLM, key, 'Servicing', serviceCount);
- end else begin
- success := success and RegQueryDWordValue(HKLM, key, 'SP', serviceCount);
- end;
-
- // .NET 4.5 and newer use additional value Release
- if versionRelease > 0 then begin
- success := success and RegQueryDWordValue(HKLM, key, 'Release', release);
- success := success and (release >= versionRelease);
- end;
-
- result := success and (install = 1) and (serviceCount >= service);
-end;
-
-function InitializeSetup(): Boolean;
-var
- ErrCode: Integer;
-begin
- if not IsDotNetDetected('v4\Full', 0) then
- begin
- if MsgBox('QModManager requires Microsoft .NET Framework 4.0' + #13#10 + 'Would you like to install it now?', mbCriticalError, MB_YESNO) = IDYES then
- begin
- if not ShellExec('open', 'https://dotnet.microsoft.com/download/dotnet-framework/net40', '', '', SW_SHOW, ewNoWait, ErrCode) then
- begin
- SysErrorMessage(ErrCode);
- end
- end;
- result := false;
- Exit
- end;
- appIsSet := false
- if IsAppRunning('SubnauticaZero.exe') then
- begin
- MsgBox('You need to close Below Zero before installing QModManager.' + #13#10 + 'If the game is not running, please reboot your computer.', mbError, MB_OK);
- Result := false
- end
- else
- begin
- // Load skin
- ExtractTemporaryFile('Carbon.vsf');
- LoadVCLStyle(ExpandConstant('{tmp}\Carbon.vsf'));
- Result := true
- end
-end;
-
-function IsPreviousVersionInstalled: Boolean;
-var
- uninstallRegKey: String;
- previousVersion: String;
-begin
- uninstallRegKey := 'Software\Microsoft\Windows\CurrentVersion\Uninstall\' + GetGuid('') + '_is1';
- previousVersion := '';
- Result := (RegKeyExists(HKLM, uninstallRegKey) or RegKeyExists(HKCU, uninstallRegKey));
-end;
-
-function GetUninstallString: string;
-var
- uninstallRegKey: String;
- uninstallString: String;
-begin
- Result := '';
- uninstallRegKey := 'Software\Microsoft\Windows\CurrentVersion\Uninstall\' + GetGuid('') + '_is1';
- uninstallString := '';
- if not RegQueryStringValue(HKLM, uninstallRegKey, 'UninstallString', uninstallString) then
- RegQueryStringValue(HKCU, uninstallRegKey, 'UninstallString', uninstallString);
- Result := uninstallString;
-end;
-
-function IsUpgrade: Boolean;
-begin
- Result := (GetUninstallString() <> '');
-end;
-
-function NextButtonClick(CurPageID: Integer): Boolean;
-var
- uninstallString: String;
- resultCode: Integer;
-begin
- if CurPageID = wpSelectComponents then
- appIsSet := true;
-
- Result := true;
-end;
-
-function PrepareToInstall(var NeedsRestart: boolean): string;
-var
- uninstallString: string;
- resultCode: integer;
-begin
- NeedsRestart := false;
-
- if IsPreviousVersionInstalled() then
- begin
- uninstallString := RemoveQuotes(GetUninstallString());
- if FileExists(uninstallString) then
- begin
- Exec(uninstallString, '/SILENT', '', SW_SHOW, ewWaitUntilTerminated, resultCode);
- if IsPreviousVersionInstalled() then
- Result := 'Previous installation must be uninstalled to continue.';
- end;
- end;
-end;
-
-var TypesComboOnChangePrev: TNotifyEvent;
-
-procedure ComponentsListCheckChanges;
-begin
- WizardForm.NextButton.Enabled := (WizardSelectedComponents(false) <> '')
-end;
-
-procedure ComponentsListClickCheck(Sender: TObject);
-begin
- ComponentsListCheckChanges
-end;
-
-procedure TypesComboOnChange(Sender: TObject);
-begin
- TypesComboOnChangePrev(Sender)
- ComponentsListCheckChanges
-end;
-
-procedure CurPageChanged(CurPageID: Integer);
-begin
- CurPageChanged_SelectComponents(CurPageID)
- CurPageChanged_AddButtons(CurPageID)
- if CurPageID = wpSelectComponents then
- begin
- ComponentsListCheckChanges;
- end
-end;
-
-procedure InitializeWizard();
-begin
- WizardForm.ComponentsList.OnClickCheck := @ComponentsListClickCheck
- TypesComboOnChangePrev := WizardForm.TypesCombo.OnChange
- WizardForm.TypesCombo.OnChange := @TypesComboOnChange
- InitializeWizard_AddButtons
- InitializeWizard_DirOnChange
-end;
-
-procedure UnloadInstallerExtensions();
- var
- FilePath: string;
- BatchPath: string;
- S: TArrayOfString;
- ResultCode: Integer;
-begin
- FilePath := ExpandConstant('{tmp}\InstallerExtensions.dll');
- if not FileExists(FilePath) then
- begin
- Log(Format('File %s does not exist', [FilePath]));
- end
- else
- begin
- BatchPath :=
- ExpandConstant('{%TEMP}\') +
- 'delete_' + ExtractFileName(ExpandConstant('{tmp}')) + '.bat';
- SetArrayLength(S, 7);
- S[0] := ':loop';
- S[1] := 'del "' + FilePath + '"';
- S[2] := 'if not exist "' + FilePath + '" goto end';
- S[3] := 'goto loop';
- S[4] := ':end';
- S[5] := 'rd "' + ExpandConstant('{tmp}') + '"';
- S[6] := 'del "' + BatchPath + '"';
- if not SaveStringsToFile(BatchPath, S, False) then
- begin
- Log(Format('Error creating batch file %s to delete %s', [BatchPath, FilePath]));
- end
- else
- if not Exec(BatchPath, '', '', SW_HIDE, ewNoWait, ResultCode) then
- begin
- Log(Format('Error executing batch file %s to delete %s', [BatchPath, FilePath]));
- end
- else
- begin
- Log(Format('Executed batch file %s to delete %s', [BatchPath, FilePath]));
- end;
- end;
-end;
-
-procedure DeinitializeSetup();
-begin
- // Unload skin
- UnLoadVCLStyles;
- UnloadInstallerExtensions;
-end;
diff --git a/Installer/BZ.STABLE.iss b/Installer/BZ.STABLE.iss
deleted file mode 100644
index a111918d..00000000
--- a/Installer/BZ.STABLE.iss
+++ /dev/null
@@ -1,606 +0,0 @@
-; Throws an error if the version used to compile this script is not unicode
-; This ensures that the application is built correctly
-#if !Defined(UNICODE)
- #error A unicode version of Inno Setup is required to compile this script
-#endif
-
-#define Name "QModManager" ; The name of the game will be added after it
-#define Version "4.3.0"
-#define Author "QModManager"
-#define URL "https://github.com/QModManager/QModManager"
-#define SupportURL "https://discord.gg/UpWuWwq"
-#define UpdatesURL "https://nexusmods.com" ; The link to the mod will be added after it
-
-[Setup]
-AllowNetworkDrive=no
-AllowUNCPath=no
-AlwaysShowDirOnReadyPage=yes
-AppendDefaultDirName=no
-AppId={code:GetGUID}
-AppName={#Name}
-AppPublisher={#Author}
-AppPublisherURL={#URL}
-AppSupportURL={#SupportURL}
-AppUpdatesURL={code:GetURL}
-AppVerName={#Name} {#Version}
-AppVersion={#Version}
-Compression=lzma
-DefaultDirName=.
-DirExistsWarning=no
-DisableDirPage=no
-DisableProgramGroupPage=yes
-DisableWelcomePage=no
-EnableDirDoesntExistWarning=yes
-OutputBaseFilename=QModManager_{#Version}_BelowZero_Setup
-OutputDir=.\
-PrivilegesRequired=admin
-SetupIconFile=..\..\Assets\Icon.ico
-SolidCompression=yes
-UninstallDisplayIcon={app}\BepInEx\patchers\QModManager\QModManager.exe
-UninstallDisplayName={code:GetName}
-UsePreviousAppDir=no
-UsePreviousLanguage=no
-WizardImageFile=..\..\Assets\InstallerImage.bmp
-WizardSmallImageFile=..\..\Assets\InstallerSmallImage.bmp
-UsePreviousSetupType=False
-UsePreviousTasks=False
-CloseApplications=False
-
-[Languages]
-Name: "english"; MessagesFile: "compiler:Default.isl"
-
-[Files]
-; Files used by the installer but not required by QModManager itself
-; Installer theme
-Source: "..\..\Dependencies\VclStylesinno.dll"; Flags: DontCopy
-Source: "..\..\Dependencies\Carbon.vsf"; Flags: DontCopy
-; Installer extensions
-Source: "InstallerExtensions.dll"; Flags: DontCopy
-
-; Files required by QModManager itself
-; Dependencies
-Source: "..\..\packages\AssetsTools.NET.2.0.9\lib\net40\AssetsTools.NET.dll"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-Source: "..\..\Dependencies\cldb.dat"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-Source: "..\..\Dependencies\Oculus.Newtonsoft.Json.dll"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-
-; QMM
-Source: "QModInstaller.dll"; DestDir: "{app}\BepInEx\plugins\QModManager"; Flags: ignoreversion;
-Source: "QModInstaller.xml"; DestDir: "{app}\BepInEx\plugins\QModManager"; Flags: ignoreversion;
-Source: "QModManager.exe"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-
-; BepInEx patchers
-Source: "QModManager.OculusNewtonsoftRedirect.dll"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-Source: "QModManager.QModPluginGenerator.dll"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-Source: "QModManager.UnityAudioFixer.dll"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-Source: "QModManager.UnityAudioFixer.xml"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-
-; BepInEx
-Source: "..\..\Dependencies\BepInEx\*"; DestDir: "{app}"; Flags: recursesubdirs createallsubdirs replacesameversion sharedfile uninsnosharedfileprompt;
-Source: "..\..\Dependencies\BZ.STABLE\BepInEx.cfg"; DestDir: "{app}\BepInEx\config"; Flags: ignoreversion sharedfile uninsnosharedfileprompt;
-
-[Dirs]
-Name: "{app}\QMods"
-
-[Run]
-Filename: "{app}\BepInEx\patchers\QModManager\QModManager.exe"; Parameters: "-c"; Tasks: cleanup
-
-[UninstallRun]
-Filename: "{app}\BepInEx\patchers\QModManager\QModManager.exe"; Parameters: "-u";
-
-[Messages]
-; BeveledLabel={#Name} {#Version}
-WizardSelectDir=Select install location
-SelectDirLabel3=Please select the install folder of the game.
-SelectDirBrowseLabel=To continue, click Next. If you would like to select a different folder, click Browse.%nIf you have the game on steam, you can also use the buttons on the bottom left to auto-complete the install path for the chosen game.
-ReadyLabel2a=By installing, you agree to allow QModManager to send external web requests, most often to check for updates. You can disable this option at any time in the Mods tab of the Subnautica options menu.
-ExitSetupMessage=Setup is not complete. If you exit now, {#Name} will not be installed.%nExit Setup?
-WizardSelectComponents=Review Install
-SelectComponentsDesc=
-SelectComponentsLabel2=
-
-[Types]
-; Used to disable the three Full, Compact and Custom types
-Name: "select"; Description: "QModManager"; Flags: IsCustom;
-
-[Components]
-Name: "qmm"; Description: "QModManager"; Flags: fixed; Types: select;
-Name: "qmm\bz"; Description: "Install for Below Zero"; Flags: exclusive fixed;
-
-[Tasks]
-Name: "cleanup"; Description: "(Recommended) Clean up after previous Nitrox and QMM installs";
-
-[Code]
-// Import stuff from InstallerExtensions.dll
-function PathsEqual(pathone, pathtwo: WideString): Boolean; external 'PathsEqual@files:InstallerExtensions.dll stdcall setuponly delayload';
-
-function IsBelowZero(path: String): Boolean;
-begin
- if (FileExists(path + '\SubnauticaZero.exe')) and (FileExists(path + '\SubnauticaZero_Data\Managed\Assembly-CSharp.dll')) then
- begin
- Result := true
- Exit
- end
- else
- begin
- Result := false
- Exit
- end
-end;
-function IsBelowZeroApp(): Boolean;
-begin
- Result := IsBelowZero(ExpandConstant('{app}'));
-end;
-
-function GetName(def: string): String;
-begin
- if (IsBelowZeroApp()) then
- begin
- Result := '{#Name} (Below Zero)'
- end
- else
- begin
- Result := ExpandConstant('{app}')
- end
-end;
-
-function GetURL(def: string): String;
-begin
- if (IsBelowZeroApp()) then
- begin
- Result := '{#UpdatesURL}/subnauticabelowzero/mods/1'
- end
- else
- begin
- Result := '{#UpdatesURL}'
- end
-end;
-
-function CurPageChanged_SelectComponents(CurPageID: Integer): Boolean;
-var
- Index: Integer;
- app: String;
-begin
- if CurPageID = wpSelectComponents then
- begin
- try
- app := ExpandConstant('{app}')
- except
- app := 'null'
- end;
- if not IsBelowZero(app) then
- begin
- WizardForm.SelectComponentsLabel.Caption := 'No game detected in this folder, cannot install'
- Exit
- end;
- Index := WizardForm.ComponentsList.Items.IndexOf('Install for Below Zero')
- if Index <> -1 then
- begin
- if IsBelowZero(app) then
- begin
- WizardForm.ComponentsList.Checked[Index] := true
- WizardForm.SelectComponentsLabel.Caption := 'Install QModManager for Below Zero'
- end
- end
- end
-end;
-
-function GetDir(folder: String; name: String): String;
-var
-I : Integer;
-P : Integer;
-steamInstallPath : String;
-configFile : String;
-fileLines: TArrayOfString;
-begin
- steamInstallPath := ''
- RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\WOW6432Node\Valve\Steam', 'InstallPath', steamInstallPath)
- if (FileExists(steamInstallPath + '\steamapps\common\' + folder + '\' + name + '.exe')) and (FileExists(steamInstallPath + '\steamapps\common\' + folder + '\' + name + '_Data\Managed\Assembly-CSharp.dll')) then
- begin
- Result := steamInstallPath + '\steamapps\common\' + folder
- Exit
- end
- else
- begin
- configFile := steamInstallPath + '\config\config.vdf'
- if FileExists(configFile) then
- begin
- if LoadStringsFromFile(configFile, FileLines) then
- begin
- for I := 0 to GetArrayLength(FileLines) - 1 do
- begin
- P := Pos('BaseInstallFolder_', FileLines[I])
- if P > 0 then
- begin
- steamInstallPath := Copy(FileLines[I], P + 23, 3) + Copy(FileLines[I], P + 27, Length(FileLines[I]) - P - 27);
- if (FileExists(steamInstallPath + '\steamapps\common\' + folder + '\' + name + '.exe')) and (FileExists(steamInstallPath + '\steamapps\common\' + folder + '\' + name + '_Data\Managed\Assembly-CSharp.dll')) then // If the folder is correct
- begin
- Result := steamInstallPath + '\steamapps\common\' + folder
- Exit
- end
- end
- end
- end
- end
- end;
- Result := 'none'
- Exit
-end;
-
-var ACLabel: TLabel;
-var BelowZeroButton: TNewRadioButton;
-
-procedure BelowZeroButtonOnClick(Sender: TObject);
-begin
- WizardForm.DirEdit.Text := GetDir('SubnauticaZero', 'SubnauticaZero')
- BelowZeroButton.Checked := true
-end;
-
-function InitializeWizard_AddButtons(): Boolean;
-begin
- ACLabel := TLabel.Create(WizardForm)
- with ACLabel do
- begin
- Parent := WizardForm
- Caption := 'Get path from Steam for:'
- Left := WizardForm.SelectDirLabel.Left / 3
- Top := WizardForm.BackButton.Top - WizardForm.BackButton.Top / 90
- end;
-
- BelowZeroButton := TNewRadioButton.Create(WizardForm)
- with BelowZeroButton do
- begin
- Parent := WizardForm
- Caption := 'Below Zero'
- OnClick := @BelowZeroButtonOnClick
- Left := WizardForm.SelectDirLabel.Left + WizardForm.SelectDirLabel.Left / 30
- Top := WizardForm.BackButton.Top + 10
- Height := WizardForm.BackButton.Height
- Enabled := True
- end;
-end;
-
-function CurPageChanged_AddButtons(CurPageID: Integer): Boolean;
-begin
- if CurPageID = wpSelectDir then
- begin
- WizardForm.DirEdit.Text := ''
- if GetDir('SubnauticaZero', 'SubnauticaZero') = 'none' then
- begin
- BelowZeroButton.Enabled := false
- end;
-
- if BelowZeroButton.Enabled then
- begin
- WizardForm.DirEdit.Text := GetDir('SubnauticaZero', 'SubnauticaZero')
- BelowZeroButton.Checked := true
- end;
- end;
- BelowZeroButton.Visible := CurPageID = wpSelectDir
- ACLabel.Visible := CurPageID = wpSelectDir
-end;
-
-var DirEditOnChangePrev: TNotifyEvent;
-
-procedure DirEditOnChange(Sender: TObject);
-var
- S: String;
-begin
- if Pos('subnauticazero', LowerCase(WizardForm.DirEdit.Text)) <> 0 then
- begin
- if PathsEqual(WizardForm.DirEdit.Text, GetDir('SubnauticaZero', 'SubnauticaZero')) then
- begin
- BelowZeroButton.Checked := true
- end
- else
- begin
- BelowZeroButton.Checked := false;
- end
- end
- else
- begin
- BelowZeroButton.Checked := false;
- end;
-
- if (Pos('://', WizardForm.DirEdit.Text) <> 0) or (Pos(':\\', WizardForm.DirEdit.Text) <> 0) then
- begin
- S := WizardForm.DirEdit.Text;
- StringChangeEx(S, '://', ':/', true);
- StringChangeEx(S, ':\\', ':\', true);
- WizardForm.DirEdit.Text := S;
- end
-end;
-
-function InitializeWizard_DirOnChange(): Boolean;
-begin
- DirEditOnChangePrev := WizardForm.DirEdit.OnChange
- WizardForm.DirEdit.OnChange := @DirEditOnChange
-end;
-
-var appIsSet: Boolean;
-
-function GetGUID(def: String): String;
-begin
- if not appIsSet then // The installer tries to get the GUID at startup to use previous options such as install path or install settings. As QModManager's GUID is defined AFTER the path is selected, it doesn't need to provide a value
- begin
- Result := ''
- Exit
- end;
- if IsBelowZero(ExpandConstant('{app}')) then
- begin
- Result := '{A535470D-3403-46A2-8D44-28AD4B90C9A3}'
- Exit
- end
-end;
-
-function IsAppRunning(const FileName : string): Boolean;
-var
- FSWbemLocator: Variant;
- FWMIService : Variant;
- FWbemObjectSet: Variant;
-begin
- Result := false;
- FSWbemLocator := CreateOleObject('WBEMScripting.SWBEMLocator');
- FWMIService := FSWbemLocator.ConnectServer('', 'root\CIMV2', '', '');
- FWbemObjectSet :=
- FWMIService.ExecQuery(
- Format('SELECT Name FROM Win32_Process Where Name="%s"', [FileName]));
- Result := (FWbemObjectSet.Count > 0);
- FWbemObjectSet := Unassigned;
- FWMIService := Unassigned;
- FSWbemLocator := Unassigned;
-end;
-
-// Imports some stuff from VclStylesInno.dll
-procedure LoadVCLStyle(VClStyleFile: String); external 'LoadVCLStyleW@files:VclStylesInno.dll stdcall';
-procedure UnLoadVCLStyles; external 'UnLoadVCLStyles@files:VclStylesInno.dll stdcall';
-
-// Check for .NET version -- code from http://www.kynosarges.de/DotNetVersion.html
-function IsDotNetDetected(version: string; service: cardinal): boolean;
-// Indicates whether the specified version and service pack of the .NET Framework is installed.
-//
-// version -- Specify one of these strings for the required .NET Framework version:
-// 'v1.1' .NET Framework 1.1
-// 'v2.0' .NET Framework 2.0
-// 'v3.0' .NET Framework 3.0
-// 'v3.5' .NET Framework 3.5
-// 'v4\Client' .NET Framework 4.0 Client Profile
-// 'v4\Full' .NET Framework 4.0 Full Installation
-// 'v4.5' .NET Framework 4.5
-// 'v4.5.1' .NET Framework 4.5.1
-// 'v4.5.2' .NET Framework 4.5.2
-// 'v4.6' .NET Framework 4.6
-// 'v4.6.1' .NET Framework 4.6.1
-// 'v4.6.2' .NET Framework 4.6.2
-// 'v4.7' .NET Framework 4.7
-//
-// service -- Specify any non-negative integer for the required service pack level:
-// 0 No service packs required
-// 1, 2, etc. Service pack 1, 2, etc. required
-var
- key, versionKey: string;
- install, release, serviceCount, versionRelease: cardinal;
- success: boolean;
-begin
- versionKey := version;
- versionRelease := 0;
-
- // .NET 1.1 and 2.0 embed release number in version key
- if version = 'v1.1' then begin
- versionKey := 'v1.1.4322';
- end else if version = 'v2.0' then begin
- versionKey := 'v2.0.50727';
- end
-
- // .NET 4.5 and newer install as update to .NET 4.0 Full
- else if Pos('v4.', version) = 1 then begin
- versionKey := 'v4\Full';
- case version of
- 'v4.5': versionRelease := 378389;
- 'v4.5.1': versionRelease := 378675; // 378758 on Windows 8 and older
- 'v4.5.2': versionRelease := 379893;
- 'v4.6': versionRelease := 393295; // 393297 on Windows 8.1 and older
- 'v4.6.1': versionRelease := 394254; // 394271 before Win10 November Update
- 'v4.6.2': versionRelease := 394802; // 394806 before Win10 Anniversary Update
- 'v4.7': versionRelease := 460798; // 460805 before Win10 Creators Update
- end;
- end;
-
- // installation key group for all .NET versions
- key := 'SOFTWARE\Microsoft\NET Framework Setup\NDP\' + versionKey;
-
- // .NET 3.0 uses value InstallSuccess in subkey Setup
- if Pos('v3.0', version) = 1 then begin
- success := RegQueryDWordValue(HKLM, key + '\Setup', 'InstallSuccess', install);
- end else begin
- success := RegQueryDWordValue(HKLM, key, 'Install', install);
- end;
-
- // .NET 4.0 and newer use value Servicing instead of SP
- if Pos('v4', version) = 1 then begin
- success := success and RegQueryDWordValue(HKLM, key, 'Servicing', serviceCount);
- end else begin
- success := success and RegQueryDWordValue(HKLM, key, 'SP', serviceCount);
- end;
-
- // .NET 4.5 and newer use additional value Release
- if versionRelease > 0 then begin
- success := success and RegQueryDWordValue(HKLM, key, 'Release', release);
- success := success and (release >= versionRelease);
- end;
-
- result := success and (install = 1) and (serviceCount >= service);
-end;
-
-function InitializeSetup(): Boolean;
-var
- ErrCode: Integer;
-begin
- if not IsDotNetDetected('v4\Full', 0) then
- begin
- if MsgBox('QModManager requires Microsoft .NET Framework 4.0' + #13#10 + 'Would you like to install it now?', mbCriticalError, MB_YESNO) = IDYES then
- begin
- if not ShellExec('open', 'https://dotnet.microsoft.com/download/dotnet-framework/net40', '', '', SW_SHOW, ewNoWait, ErrCode) then
- begin
- SysErrorMessage(ErrCode);
- end
- end;
- result := false;
- Exit
- end;
- appIsSet := false
- if IsAppRunning('SubnauticaZero.exe') then
- begin
- MsgBox('You need to close Below Zero before installing QModManager.' + #13#10 + 'If the game is not running, please reboot your computer.', mbError, MB_OK);
- Result := false
- end
- else
- begin
- // Load skin
- ExtractTemporaryFile('Carbon.vsf');
- LoadVCLStyle(ExpandConstant('{tmp}\Carbon.vsf'));
- Result := true
- end
-end;
-
-function IsPreviousVersionInstalled: Boolean;
-var
- uninstallRegKey: String;
- previousVersion: String;
-begin
- uninstallRegKey := 'Software\Microsoft\Windows\CurrentVersion\Uninstall\' + GetGuid('') + '_is1';
- previousVersion := '';
- Result := (RegKeyExists(HKLM, uninstallRegKey) or RegKeyExists(HKCU, uninstallRegKey));
-end;
-
-function GetUninstallString: string;
-var
- uninstallRegKey: String;
- uninstallString: String;
-begin
- Result := '';
- uninstallRegKey := 'Software\Microsoft\Windows\CurrentVersion\Uninstall\' + GetGuid('') + '_is1';
- uninstallString := '';
- if not RegQueryStringValue(HKLM, uninstallRegKey, 'UninstallString', uninstallString) then
- RegQueryStringValue(HKCU, uninstallRegKey, 'UninstallString', uninstallString);
- Result := uninstallString;
-end;
-
-function IsUpgrade: Boolean;
-begin
- Result := (GetUninstallString() <> '');
-end;
-
-function NextButtonClick(CurPageID: Integer): Boolean;
-var
- uninstallString: String;
- resultCode: Integer;
-begin
- if CurPageID = wpSelectComponents then
- appIsSet := true;
-
- Result := true;
-end;
-
-function PrepareToInstall(var NeedsRestart: boolean): string;
-var
- uninstallString: string;
- resultCode: integer;
-begin
- NeedsRestart := false;
-
- if IsPreviousVersionInstalled() then
- begin
- uninstallString := RemoveQuotes(GetUninstallString());
- if FileExists(uninstallString) then
- begin
- Exec(uninstallString, '/SILENT', '', SW_SHOW, ewWaitUntilTerminated, resultCode);
- if IsPreviousVersionInstalled() then
- Result := 'Previous installation must be uninstalled to continue.';
- end;
- end;
-end;
-
-var TypesComboOnChangePrev: TNotifyEvent;
-
-procedure ComponentsListCheckChanges;
-begin
- WizardForm.NextButton.Enabled := (WizardSelectedComponents(false) <> '')
-end;
-
-procedure ComponentsListClickCheck(Sender: TObject);
-begin
- ComponentsListCheckChanges
-end;
-
-procedure TypesComboOnChange(Sender: TObject);
-begin
- TypesComboOnChangePrev(Sender)
- ComponentsListCheckChanges
-end;
-
-procedure CurPageChanged(CurPageID: Integer);
-begin
- CurPageChanged_SelectComponents(CurPageID)
- CurPageChanged_AddButtons(CurPageID)
- if CurPageID = wpSelectComponents then
- begin
- ComponentsListCheckChanges;
- end
-end;
-
-procedure InitializeWizard();
-begin
- WizardForm.ComponentsList.OnClickCheck := @ComponentsListClickCheck
- TypesComboOnChangePrev := WizardForm.TypesCombo.OnChange
- WizardForm.TypesCombo.OnChange := @TypesComboOnChange
- InitializeWizard_AddButtons
- InitializeWizard_DirOnChange
-end;
-
-procedure UnloadInstallerExtensions();
- var
- FilePath: string;
- BatchPath: string;
- S: TArrayOfString;
- ResultCode: Integer;
-begin
- FilePath := ExpandConstant('{tmp}\InstallerExtensions.dll');
- if not FileExists(FilePath) then
- begin
- Log(Format('File %s does not exist', [FilePath]));
- end
- else
- begin
- BatchPath :=
- ExpandConstant('{%TEMP}\') +
- 'delete_' + ExtractFileName(ExpandConstant('{tmp}')) + '.bat';
- SetArrayLength(S, 7);
- S[0] := ':loop';
- S[1] := 'del "' + FilePath + '"';
- S[2] := 'if not exist "' + FilePath + '" goto end';
- S[3] := 'goto loop';
- S[4] := ':end';
- S[5] := 'rd "' + ExpandConstant('{tmp}') + '"';
- S[6] := 'del "' + BatchPath + '"';
- if not SaveStringsToFile(BatchPath, S, False) then
- begin
- Log(Format('Error creating batch file %s to delete %s', [BatchPath, FilePath]));
- end
- else
- if not Exec(BatchPath, '', '', SW_HIDE, ewNoWait, ResultCode) then
- begin
- Log(Format('Error executing batch file %s to delete %s', [BatchPath, FilePath]));
- end
- else
- begin
- Log(Format('Executed batch file %s to delete %s', [BatchPath, FilePath]));
- end;
- end;
-end;
-
-procedure DeinitializeSetup();
-begin
- // Unload skin
- UnLoadVCLStyles;
- UnloadInstallerExtensions;
-end;
diff --git a/Installer/Extensions.cs b/Installer/Extensions.cs
deleted file mode 100644
index 03cb4a84..00000000
--- a/Installer/Extensions.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using RGiesecke.DllExport;
-using System;
-using System.IO;
-using System.Runtime.InteropServices;
-
-namespace QModManager.Installer.Extensions
-{
- public static class Extensions
- {
- [DllExport]
- [return: MarshalAs(UnmanagedType.Bool)]
- public static bool PathsEqual([MarshalAs(UnmanagedType.BStr)] string path1, [MarshalAs(UnmanagedType.BStr)] string path2)
- {
- string path1parsed = Path.GetFullPath(path1.Trim('/', '\\'));
- string path2parsed = Path.GetFullPath(path2.Trim('/', '\\'));
-
- return string.Equals(path1parsed, path2parsed, StringComparison.OrdinalIgnoreCase);
- }
- }
-}
diff --git a/Installer/InstallerExtensions.csproj b/Installer/InstallerExtensions.csproj
deleted file mode 100644
index 5042885a..00000000
--- a/Installer/InstallerExtensions.csproj
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
- Debug
- AnyCPU
- {92726127-A08F-4843-BF96-4989CE1BF422}
- Library
- Properties
- QModManager.Installer.Extensions
- InstallerExtensions
- v3.5
- 512
- true
-
-
- ..\Build\$(Configuration)\
- SUBNAUTICA;SUBNAUTICA_STABLE
- true
- none
- x86
- 7.3
- prompt
-
-
- ..\Build\$(Configuration)\
- SUBNAUTICA;SUBNAUTICA_EXP
- true
- none
- x86
- 7.3
- prompt
-
-
- ..\Build\$(Configuration)\
- BELOWZERO;BELOWZERO_STABLE
- true
- none
- x86
- 7.3
- prompt
-
-
- ..\Build\$(Configuration)\
- BELOWZERO;BELOWZERO_EXP
- true
- none
- x86
- 7.3
- prompt
-
-
-
- ..\packages\UnmanagedExports.1.2.7\lib\net\RGiesecke.DllExport.Metadata.dll
- False
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Installer/Properties/AssemblyInfo.cs b/Installer/Properties/AssemblyInfo.cs
deleted file mode 100644
index 82875126..00000000
--- a/Installer/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-[assembly: AssemblyTitle("QModManagerInstallerExtensions")]
-[assembly: AssemblyDescription("Config based patch management for Subnautica and Subnautica: Below Zero")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("QModManager")]
-[assembly: AssemblyProduct("QModManagerInstallerExtensions")]
-[assembly: AssemblyCopyright("")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-[assembly: ComVisible(true)]
-
-[assembly: Guid("8c6c9a0b-80c4-43d2-89f2-749e6f09fdda")]
-
-[assembly: AssemblyVersion("4.3.0")]
-[assembly: AssemblyFileVersion("4.3.0")]
diff --git a/Installer/SN.EXP.iss b/Installer/SN.EXP.iss
deleted file mode 100644
index 2532cf9d..00000000
--- a/Installer/SN.EXP.iss
+++ /dev/null
@@ -1,608 +0,0 @@
-; Throws an error if the version used to compile this script is not unicode
-; This ensures that the application is built correctly
-#if !Defined(UNICODE)
- #error A unicode version of Inno Setup is required to compile this script
-#endif
-
-#define Name "QModManager" ; The name of the game will be added after it
-#define Version "4.3.0"
-#define Author "QModManager"
-#define URL "https://github.com/QModManager/QModManager"
-#define SupportURL "https://discord.gg/UpWuWwq"
-#define UpdatesURL "https://nexusmods.com" ; The link to the mod will be added after it
-
-[Setup]
-AllowNetworkDrive=no
-AllowUNCPath=no
-AlwaysShowDirOnReadyPage=yes
-AppendDefaultDirName=no
-AppId={code:GetGUID}
-AppName={#Name}
-AppPublisher={#Author}
-AppPublisherURL={#URL}
-AppSupportURL={#SupportURL}
-AppUpdatesURL={code:GetURL}
-AppVerName={#Name} {#Version}
-AppVersion={#Version}
-Compression=lzma
-DefaultDirName=.
-DirExistsWarning=no
-DisableDirPage=no
-DisableProgramGroupPage=yes
-DisableWelcomePage=no
-EnableDirDoesntExistWarning=yes
-OutputBaseFilename=QModManager_{#Version}_Subnautica_Experimental_Setup
-OutputDir=.\
-PrivilegesRequired=admin
-SetupIconFile=..\..\Assets\Icon.ico
-SolidCompression=yes
-UninstallDisplayIcon={app}\BepInEx\patchers\QModManager\QModManager.exe
-UninstallDisplayName={code:GetName}
-UsePreviousAppDir=no
-UsePreviousLanguage=no
-WizardImageFile=..\..\Assets\InstallerImage.bmp
-WizardSmallImageFile=..\..\Assets\InstallerSmallImage.bmp
-UsePreviousSetupType=False
-UsePreviousTasks=False
-CloseApplications=False
-
-[Languages]
-Name: "english"; MessagesFile: "compiler:Default.isl"
-
-[Files]
-; Files used by the installer but not required by QModManager itself
-; Installer theme
-Source: "..\..\Dependencies\VclStylesinno.dll"; Flags: DontCopy
-Source: "..\..\Dependencies\Carbon.vsf"; Flags: DontCopy
-; Installer extensions
-Source: "InstallerExtensions.dll"; Flags: DontCopy
-
-; Files required by QModManager itself
-; Dependencies
-Source: "..\..\packages\AssetsTools.NET.2.0.9\lib\net40\AssetsTools.NET.dll"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-Source: "..\..\Dependencies\cldb.dat"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-Source: "..\..\Dependencies\Oculus.Newtonsoft.Json.dll"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-
-; QMM
-Source: "QModInstaller.dll"; DestDir: "{app}\BepInEx\plugins\QModManager"; Flags: ignoreversion;
-Source: "QModInstaller.xml"; DestDir: "{app}\BepInEx\plugins\QModManager"; Flags: ignoreversion;
-Source: "QModManager.exe"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-
-; BepInEx patchers
-Source: "QModManager.OculusNewtonsoftRedirect.dll"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-Source: "QModManager.QModPluginGenerator.dll"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-Source: "QModManager.UnityAudioFixer.dll"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-Source: "QModManager.UnityAudioFixer.xml"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-
-; BepInEx
-Source: "..\..\Dependencies\BepInEx\*"; DestDir: "{app}"; Flags: recursesubdirs createallsubdirs replacesameversion sharedfile uninsnosharedfileprompt;
-Source: "..\..\Dependencies\SN.EXP\BepInEx.cfg"; DestDir: "{app}\BepInEx\config"; Flags: ignoreversion sharedfile uninsnosharedfileprompt;
-
-[Dirs]
-Name: "{app}\QMods"
-
-[Run]
-Filename: "{app}\BepInEx\patchers\QModManager\QModManager.exe"; Parameters: "-c"; Tasks: cleanup
-
-[UninstallRun]
-Filename: "{app}\BepInEx\patchers\QModManager\QModManager.exe"; Parameters: "-u";
-
-[Messages]
-; BeveledLabel={#Name} {#Version}
-WizardSelectDir=Select install location
-SelectDirLabel3=Please select the install folder of the game.
-SelectDirBrowseLabel=To continue, click Next. If you would like to select a different folder, click Browse.%nIf you have the game on steam, you can also use the buttons on the bottom left to auto-complete the install path for the chosen game.
-ReadyLabel2a=By installing, you agree to allow QModManager to send external web requests, most often to check for updates. You can disable this option at any time in the Mods tab of the Subnautica options menu.
-ExitSetupMessage=Setup is not complete. If you exit now, {#Name} will not be installed.%nExit Setup?
-WizardSelectComponents=Review Install
-SelectComponentsDesc=
-SelectComponentsLabel2=
-
-[Types]
-; Used to disable the three Full, Compact and Custom types
-Name: "select"; Description: "QModManager"; Flags: IsCustom;
-
-[Components]
-Name: "qmm"; Description: "QModManager"; Flags: fixed; Types: select;
-Name: "qmm\sn"; Description: "Install for Subnautica"; Flags: exclusive fixed;
-
-[Tasks]
-Name: "cleanup"; Description: "(Recommended) Clean up after previous Nitrox and QMM installs";
-
-[Code]
-// Import stuff from InstallerExtensions.dll
-function PathsEqual(pathone, pathtwo: WideString): Boolean; external 'PathsEqual@files:InstallerExtensions.dll stdcall setuponly delayload';
-
-function IsSubnautica(path: String): Boolean;
-begin
- if (FileExists(path + '\Subnautica.exe')) and (FileExists(path + '\Subnautica_Data\Managed\Assembly-CSharp.dll')) then
- begin
- Result := true
- Exit
- end
- else
- begin
- Result := false
- Exit
- end
-end;
-function IsSubnauticaApp(): Boolean;
-begin
- Result := IsSubnautica(ExpandConstant('{app}'));
-end;
-
-function GetName(def: string): String;
-begin
- if (IsSubnauticaApp()) then
- begin
- Result := '{#Name} (Subnautica)'
- end
- else
- begin
- Result := ExpandConstant('{app}')
- end
-end;
-
-function GetURL(def: string): String;
-begin
- if (IsSubnauticaApp()) then
- begin
- Result := '{#UpdatesURL}/subnautica/mods/201'
- end
- else
- begin
- Result := '{#UpdatesURL}'
- end
-end;
-
-function CurPageChanged_SelectComponents(CurPageID: Integer): Boolean;
-var
- Index: Integer;
- app: String;
-begin
- if CurPageID = wpSelectComponents then
- begin
- try
- app := ExpandConstant('{app}')
- except
- app := 'null'
- end;
- if not IsSubnautica(app) then
- begin
- WizardForm.SelectComponentsLabel.Caption := 'Game not detected in this folder, cannot install'
- Exit
- end;
- Index := WizardForm.ComponentsList.Items.IndexOf('Install for Subnautica')
- if Index <> -1 then
- begin
- if IsSubnautica(app) then
- begin
- WizardForm.ComponentsList.Checked[Index] := true
- WizardForm.SelectComponentsLabel.Caption := 'Install QModManager for Subnautica'
- end
- end;
- end
-end;
-
-function GetDir(folder: String; name: String): String;
-var
-I : Integer;
-P : Integer;
-steamInstallPath : String;
-configFile : String;
-fileLines: TArrayOfString;
-begin
- steamInstallPath := ''
- RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\WOW6432Node\Valve\Steam', 'InstallPath', steamInstallPath)
- if (FileExists(steamInstallPath + '\steamapps\common\' + folder + '\' + name + '.exe')) and (FileExists(steamInstallPath + '\steamapps\common\' + folder + '\' + name + '_Data\Managed\Assembly-CSharp.dll')) then
- begin
- Result := steamInstallPath + '\steamapps\common\' + folder
- Exit
- end
- else
- begin
- configFile := steamInstallPath + '\config\config.vdf'
- if FileExists(configFile) then
- begin
- if LoadStringsFromFile(configFile, FileLines) then
- begin
- for I := 0 to GetArrayLength(FileLines) - 1 do
- begin
- P := Pos('BaseInstallFolder_', FileLines[I])
- if P > 0 then
- begin
- steamInstallPath := Copy(FileLines[I], P + 23, 3) + Copy(FileLines[I], P + 27, Length(FileLines[I]) - P - 27);
- if (FileExists(steamInstallPath + '\steamapps\common\' + folder + '\' + name + '.exe')) and (FileExists(steamInstallPath + '\steamapps\common\' + folder + '\' + name + '_Data\Managed\Assembly-CSharp.dll')) then // If the folder is correct
- begin
- Result := steamInstallPath + '\steamapps\common\' + folder
- Exit
- end
- end
- end
- end
- end
- end;
- Result := 'none'
- Exit
-end;
-
-var ACLabel: TLabel;
-var SubnauticaButton: TNewRadioButton;
-
-procedure SubnauticaButtonOnClick(Sender: TObject);
-begin
- WizardForm.DirEdit.Text := GetDir('Subnautica', 'Subnautica')
- SubnauticaButton.Checked := true
-end;
-
-function InitializeWizard_AddButtons(): Boolean;
-begin
- ACLabel := TLabel.Create(WizardForm)
- with ACLabel do
- begin
- Parent := WizardForm
- Caption := 'Get path from Steam for:'
- Left := WizardForm.SelectDirLabel.Left / 3
- Top := WizardForm.BackButton.Top - WizardForm.BackButton.Top / 90
- end;
-
- SubnauticaButton := TNewRadioButton.Create(WizardForm)
- with SubnauticaButton do
- begin
- Parent := WizardForm
- Caption := 'Subnautica'
- OnClick := @SubnauticaButtonOnClick
- Left := WizardForm.SelectDirLabel.Left + WizardForm.SelectDirLabel.Left / 30
- Top := WizardForm.BackButton.Top + 10
- Height := WizardForm.BackButton.Height
- Enabled := True
- end;
-
-end;
-
-function CurPageChanged_AddButtons(CurPageID: Integer): Boolean;
-begin
- if CurPageID = wpSelectDir then
- begin
- WizardForm.DirEdit.Text := ''
- if GetDir('Subnautica', 'Subnautica') = 'none' then
- begin
- SubnauticaButton.Enabled := false
- end;
-
- if SubnauticaButton.Enabled then
- begin
- WizardForm.DirEdit.Text := GetDir('Subnautica', 'Subnautica')
- SubnauticaButton.Checked := true
- end
-
- end;
- SubnauticaButton.Visible := CurPageID = wpSelectDir
- ACLabel.Visible := CurPageID = wpSelectDir
-end;
-
-var DirEditOnChangePrev: TNotifyEvent;
-
-procedure DirEditOnChange(Sender: TObject);
-var
- S: String;
-begin
- if Pos('subnautica', LowerCase(WizardForm.DirEdit.Text)) <> 0 then
- begin
- if PathsEqual(WizardForm.DirEdit.Text, GetDir('Subnautica', 'Subnautica')) then
- begin
- SubnauticaButton.Checked := true
- end
- else
- begin
- SubnauticaButton.Checked := false;
- end
- end
- else
- begin
- SubnauticaButton.Checked := false;
- end;
-
- if (Pos('://', WizardForm.DirEdit.Text) <> 0) or (Pos(':\\', WizardForm.DirEdit.Text) <> 0) then
- begin
- S := WizardForm.DirEdit.Text;
- StringChangeEx(S, '://', ':/', true);
- StringChangeEx(S, ':\\', ':\', true);
- WizardForm.DirEdit.Text := S;
- end
-end;
-
-function InitializeWizard_DirOnChange(): Boolean;
-begin
- DirEditOnChangePrev := WizardForm.DirEdit.OnChange
- WizardForm.DirEdit.OnChange := @DirEditOnChange
-end;
-
-var appIsSet: Boolean;
-
-function GetGUID(def: String): String;
-begin
- if not appIsSet then // The installer tries to get the GUID at startup to use previous options such as install path or install settings. As QModManager's GUID is defined AFTER the path is selected, it doesn't need to provide a value
- begin
- Result := ''
- Exit
- end;
- if IsSubnautica(ExpandConstant('{app}')) then
- begin
- Result := '{52CC87AA-645D-40FB-8411-510142191678}'
- Exit
- end;
-end;
-
-function IsAppRunning(const FileName : string): Boolean;
-var
- FSWbemLocator: Variant;
- FWMIService : Variant;
- FWbemObjectSet: Variant;
-begin
- Result := false;
- FSWbemLocator := CreateOleObject('WBEMScripting.SWBEMLocator');
- FWMIService := FSWbemLocator.ConnectServer('', 'root\CIMV2', '', '');
- FWbemObjectSet :=
- FWMIService.ExecQuery(
- Format('SELECT Name FROM Win32_Process Where Name="%s"', [FileName]));
- Result := (FWbemObjectSet.Count > 0);
- FWbemObjectSet := Unassigned;
- FWMIService := Unassigned;
- FSWbemLocator := Unassigned;
-end;
-
-// Imports some stuff from VclStylesInno.dll
-procedure LoadVCLStyle(VClStyleFile: String); external 'LoadVCLStyleW@files:VclStylesInno.dll stdcall';
-procedure UnLoadVCLStyles; external 'UnLoadVCLStyles@files:VclStylesInno.dll stdcall';
-
-// Check for .NET version -- code from http://www.kynosarges.de/DotNetVersion.html
-function IsDotNetDetected(version: string; service: cardinal): boolean;
-// Indicates whether the specified version and service pack of the .NET Framework is installed.
-//
-// version -- Specify one of these strings for the required .NET Framework version:
-// 'v1.1' .NET Framework 1.1
-// 'v2.0' .NET Framework 2.0
-// 'v3.0' .NET Framework 3.0
-// 'v3.5' .NET Framework 3.5
-// 'v4\Client' .NET Framework 4.0 Client Profile
-// 'v4\Full' .NET Framework 4.0 Full Installation
-// 'v4.5' .NET Framework 4.5
-// 'v4.5.1' .NET Framework 4.5.1
-// 'v4.5.2' .NET Framework 4.5.2
-// 'v4.6' .NET Framework 4.6
-// 'v4.6.1' .NET Framework 4.6.1
-// 'v4.6.2' .NET Framework 4.6.2
-// 'v4.7' .NET Framework 4.7
-//
-// service -- Specify any non-negative integer for the required service pack level:
-// 0 No service packs required
-// 1, 2, etc. Service pack 1, 2, etc. required
-var
- key, versionKey: string;
- install, release, serviceCount, versionRelease: cardinal;
- success: boolean;
-begin
- versionKey := version;
- versionRelease := 0;
-
- // .NET 1.1 and 2.0 embed release number in version key
- if version = 'v1.1' then begin
- versionKey := 'v1.1.4322';
- end else if version = 'v2.0' then begin
- versionKey := 'v2.0.50727';
- end
-
- // .NET 4.5 and newer install as update to .NET 4.0 Full
- else if Pos('v4.', version) = 1 then begin
- versionKey := 'v4\Full';
- case version of
- 'v4.5': versionRelease := 378389;
- 'v4.5.1': versionRelease := 378675; // 378758 on Windows 8 and older
- 'v4.5.2': versionRelease := 379893;
- 'v4.6': versionRelease := 393295; // 393297 on Windows 8.1 and older
- 'v4.6.1': versionRelease := 394254; // 394271 before Win10 November Update
- 'v4.6.2': versionRelease := 394802; // 394806 before Win10 Anniversary Update
- 'v4.7': versionRelease := 460798; // 460805 before Win10 Creators Update
- end;
- end;
-
- // installation key group for all .NET versions
- key := 'SOFTWARE\Microsoft\NET Framework Setup\NDP\' + versionKey;
-
- // .NET 3.0 uses value InstallSuccess in subkey Setup
- if Pos('v3.0', version) = 1 then begin
- success := RegQueryDWordValue(HKLM, key + '\Setup', 'InstallSuccess', install);
- end else begin
- success := RegQueryDWordValue(HKLM, key, 'Install', install);
- end;
-
- // .NET 4.0 and newer use value Servicing instead of SP
- if Pos('v4', version) = 1 then begin
- success := success and RegQueryDWordValue(HKLM, key, 'Servicing', serviceCount);
- end else begin
- success := success and RegQueryDWordValue(HKLM, key, 'SP', serviceCount);
- end;
-
- // .NET 4.5 and newer use additional value Release
- if versionRelease > 0 then begin
- success := success and RegQueryDWordValue(HKLM, key, 'Release', release);
- success := success and (release >= versionRelease);
- end;
-
- result := success and (install = 1) and (serviceCount >= service);
-end;
-
-function InitializeSetup(): Boolean;
-var
- ErrCode: Integer;
-begin
- if not IsDotNetDetected('v4\Full', 0) then
- begin
- if MsgBox('QModManager requires Microsoft .NET Framework 4.0' + #13#10 + 'Would you like to install it now?', mbCriticalError, MB_YESNO) = IDYES then
- begin
- if not ShellExec('open', 'https://dotnet.microsoft.com/download/dotnet-framework/net40', '', '', SW_SHOW, ewNoWait, ErrCode) then
- begin
- SysErrorMessage(ErrCode);
- end
- end;
- result := false;
- Exit
- end;
- appIsSet := false
- if IsAppRunning('Subnautica.exe') then
- begin
- MsgBox('You need to close Subnautica before installing QModManager.' + #13#10 + 'If the game is not running, please reboot your computer.', mbError, MB_OK);
- Result := false
- end
- else
- begin
- // Load skin
- ExtractTemporaryFile('Carbon.vsf');
- LoadVCLStyle(ExpandConstant('{tmp}\Carbon.vsf'));
- Result := true
- end
-end;
-
-function IsPreviousVersionInstalled: Boolean;
-var
- uninstallRegKey: String;
- previousVersion: String;
-begin
- uninstallRegKey := 'Software\Microsoft\Windows\CurrentVersion\Uninstall\' + GetGuid('') + '_is1';
- previousVersion := '';
- Result := (RegKeyExists(HKLM, uninstallRegKey) or RegKeyExists(HKCU, uninstallRegKey));
-end;
-
-function GetUninstallString: string;
-var
- uninstallRegKey: String;
- uninstallString: String;
-begin
- Result := '';
- uninstallRegKey := 'Software\Microsoft\Windows\CurrentVersion\Uninstall\' + GetGuid('') + '_is1';
- uninstallString := '';
- if not RegQueryStringValue(HKLM, uninstallRegKey, 'UninstallString', uninstallString) then
- RegQueryStringValue(HKCU, uninstallRegKey, 'UninstallString', uninstallString);
- Result := uninstallString;
-end;
-
-function IsUpgrade: Boolean;
-begin
- Result := (GetUninstallString() <> '');
-end;
-
-function NextButtonClick(CurPageID: Integer): Boolean;
-var
- uninstallString: String;
- resultCode: Integer;
-begin
- if CurPageID = wpSelectComponents then
- appIsSet := true;
-
- Result := true;
-end;
-
-function PrepareToInstall(var NeedsRestart: boolean): string;
-var
- uninstallString: string;
- resultCode: integer;
-begin
- NeedsRestart := false;
-
- if IsPreviousVersionInstalled() then
- begin
- uninstallString := RemoveQuotes(GetUninstallString());
- if FileExists(uninstallString) then
- begin
- Exec(uninstallString, '/SILENT', '', SW_SHOW, ewWaitUntilTerminated, resultCode);
- if IsPreviousVersionInstalled() then
- Result := 'Previous installation must be uninstalled to continue.';
- end;
- end;
-end;
-
-var TypesComboOnChangePrev: TNotifyEvent;
-
-procedure ComponentsListCheckChanges;
-begin
- WizardForm.NextButton.Enabled := (WizardSelectedComponents(false) <> '')
-end;
-
-procedure ComponentsListClickCheck(Sender: TObject);
-begin
- ComponentsListCheckChanges
-end;
-
-procedure TypesComboOnChange(Sender: TObject);
-begin
- TypesComboOnChangePrev(Sender)
- ComponentsListCheckChanges
-end;
-
-procedure CurPageChanged(CurPageID: Integer);
-begin
- CurPageChanged_SelectComponents(CurPageID)
- CurPageChanged_AddButtons(CurPageID)
- if CurPageID = wpSelectComponents then
- begin
- ComponentsListCheckChanges;
- end
-end;
-
-procedure InitializeWizard();
-begin
- WizardForm.ComponentsList.OnClickCheck := @ComponentsListClickCheck
- TypesComboOnChangePrev := WizardForm.TypesCombo.OnChange
- WizardForm.TypesCombo.OnChange := @TypesComboOnChange
- InitializeWizard_AddButtons
- InitializeWizard_DirOnChange
-end;
-
-procedure UnloadInstallerExtensions();
- var
- FilePath: string;
- BatchPath: string;
- S: TArrayOfString;
- ResultCode: Integer;
-begin
- FilePath := ExpandConstant('{tmp}\InstallerExtensions.dll');
- if not FileExists(FilePath) then
- begin
- Log(Format('File %s does not exist', [FilePath]));
- end
- else
- begin
- BatchPath :=
- ExpandConstant('{%TEMP}\') +
- 'delete_' + ExtractFileName(ExpandConstant('{tmp}')) + '.bat';
- SetArrayLength(S, 7);
- S[0] := ':loop';
- S[1] := 'del "' + FilePath + '"';
- S[2] := 'if not exist "' + FilePath + '" goto end';
- S[3] := 'goto loop';
- S[4] := ':end';
- S[5] := 'rd "' + ExpandConstant('{tmp}') + '"';
- S[6] := 'del "' + BatchPath + '"';
- if not SaveStringsToFile(BatchPath, S, False) then
- begin
- Log(Format('Error creating batch file %s to delete %s', [BatchPath, FilePath]));
- end
- else
- if not Exec(BatchPath, '', '', SW_HIDE, ewNoWait, ResultCode) then
- begin
- Log(Format('Error executing batch file %s to delete %s', [BatchPath, FilePath]));
- end
- else
- begin
- Log(Format('Executed batch file %s to delete %s', [BatchPath, FilePath]));
- end;
- end;
-end;
-
-procedure DeinitializeSetup();
-begin
- // Unload skin
- UnLoadVCLStyles;
- UnloadInstallerExtensions;
-end;
diff --git a/Installer/SN.STABLE.iss b/Installer/SN.STABLE.iss
deleted file mode 100644
index e2c08f9d..00000000
--- a/Installer/SN.STABLE.iss
+++ /dev/null
@@ -1,606 +0,0 @@
-; Throws an error if the version used to compile this script is not unicode
-; This ensures that the application is built correctly
-#if !Defined(UNICODE)
- #error A unicode version of Inno Setup is required to compile this script
-#endif
-
-#define Name "QModManager" ; The name of the game will be added after it
-#define Version "4.3.0"
-#define Author "QModManager"
-#define URL "https://github.com/QModManager/QModManager"
-#define SupportURL "https://discord.gg/UpWuWwq"
-#define UpdatesURL "https://nexusmods.com" ; The link to the mod will be added after it
-
-[Setup]
-AllowNetworkDrive=no
-AllowUNCPath=no
-AlwaysShowDirOnReadyPage=yes
-AppendDefaultDirName=no
-AppId={code:GetGUID}
-AppName={#Name}
-AppPublisher={#Author}
-AppPublisherURL={#URL}
-AppSupportURL={#SupportURL}
-AppUpdatesURL={code:GetURL}
-AppVerName={#Name} {#Version}
-AppVersion={#Version}
-Compression=lzma
-DefaultDirName=.
-DirExistsWarning=no
-DisableDirPage=no
-DisableProgramGroupPage=yes
-DisableWelcomePage=no
-EnableDirDoesntExistWarning=yes
-OutputBaseFilename=QModManager_{#Version}_Subnautica_Setup
-OutputDir=.\
-PrivilegesRequired=admin
-SetupIconFile=..\..\Assets\Icon.ico
-SolidCompression=yes
-UninstallDisplayIcon={app}\BepInEx\patchers\QModManager\QModManager.exe
-UninstallDisplayName={code:GetName}
-UsePreviousAppDir=no
-UsePreviousLanguage=no
-WizardImageFile=..\..\Assets\InstallerImage.bmp
-WizardSmallImageFile=..\..\Assets\InstallerSmallImage.bmp
-UsePreviousSetupType=False
-UsePreviousTasks=False
-CloseApplications=False
-
-[Languages]
-Name: "english"; MessagesFile: "compiler:Default.isl"
-
-[Files]
-; Files used by the installer but not required by QModManager itself
-; Installer theme
-Source: "..\..\Dependencies\VclStylesinno.dll"; Flags: DontCopy
-Source: "..\..\Dependencies\Carbon.vsf"; Flags: DontCopy
-; Installer extensions
-Source: "InstallerExtensions.dll"; Flags: DontCopy
-
-; Files required by QModManager itself
-; Dependencies
-Source: "..\..\packages\AssetsTools.NET.2.0.9\lib\net40\AssetsTools.NET.dll"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-Source: "..\..\Dependencies\cldb.dat"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-
-; QMM
-Source: "QModInstaller.dll"; DestDir: "{app}\BepInEx\plugins\QModManager"; Flags: ignoreversion;
-Source: "QModInstaller.xml"; DestDir: "{app}\BepInEx\plugins\QModManager"; Flags: ignoreversion;
-Source: "QModManager.exe"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-
-; BepInEx patchers
-Source: "QModManager.QModPluginGenerator.dll"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-Source: "QModManager.UnityAudioFixer.dll"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-Source: "QModManager.UnityAudioFixer.xml"; DestDir: "{app}\BepInEx\patchers\QModManager"; Flags: ignoreversion;
-
-; BepInEx
-Source: "..\..\Dependencies\BepInEx\*"; DestDir: "{app}"; Flags: recursesubdirs createallsubdirs replacesameversion sharedfile uninsnosharedfileprompt;
-Source: "..\..\Dependencies\SN.STABLE\BepInEx.cfg"; DestDir: "{app}\BepInEx\config"; Flags: ignoreversion sharedfile uninsnosharedfileprompt;
-
-[Dirs]
-Name: "{app}\QMods"
-
-[Run]
-Filename: "{app}\BepInEx\patchers\QModManager\QModManager.exe"; Parameters: "-c"; Tasks: cleanup
-
-[UninstallRun]
-Filename: "{app}\BepInEx\patchers\QModManager\QModManager.exe"; Parameters: "-u";
-
-[Messages]
-; BeveledLabel={#Name} {#Version}
-WizardSelectDir=Select install location
-SelectDirLabel3=Please select the install folder of the game.
-SelectDirBrowseLabel=To continue, click Next. If you would like to select a different folder, click Browse.%nIf you have the game on steam, you can also use the buttons on the bottom left to auto-complete the install path for the chosen game.
-ReadyLabel2a=By installing, you agree to allow QModManager to send external web requests, most often to check for updates. You can disable this option at any time in the Mods tab of the Subnautica options menu.
-ExitSetupMessage=Setup is not complete. If you exit now, {#Name} will not be installed.%nExit Setup?
-WizardSelectComponents=Review Install
-SelectComponentsDesc=
-SelectComponentsLabel2=
-
-[Types]
-; Used to disable the three Full, Compact and Custom types
-Name: "select"; Description: "QModManager"; Flags: IsCustom;
-
-[Components]
-Name: "qmm"; Description: "QModManager"; Flags: fixed; Types: select;
-Name: "qmm\sn"; Description: "Install for Subnautica"; Flags: exclusive fixed;
-
-[Tasks]
-Name: "cleanup"; Description: "(Recommended) Clean up after previous Nitrox and QMM installs";
-
-[Code]
-// Import stuff from InstallerExtensions.dll
-function PathsEqual(pathone, pathtwo: WideString): Boolean; external 'PathsEqual@files:InstallerExtensions.dll stdcall setuponly delayload';
-
-function IsSubnautica(path: String): Boolean;
-begin
- if (FileExists(path + '\Subnautica.exe')) and (FileExists(path + '\Subnautica_Data\Managed\Assembly-CSharp.dll')) then
- begin
- Result := true
- Exit
- end
- else
- begin
- Result := false
- Exit
- end
-end;
-function IsSubnauticaApp(): Boolean;
-begin
- Result := IsSubnautica(ExpandConstant('{app}'));
-end;
-
-function GetName(def: string): String;
-begin
- if (IsSubnauticaApp()) then
- begin
- Result := '{#Name} (Subnautica)'
- end
- else
- begin
- Result := ExpandConstant('{app}')
- end
-end;
-
-function GetURL(def: string): String;
-begin
- if (IsSubnauticaApp()) then
- begin
- Result := '{#UpdatesURL}/subnautica/mods/201'
- end
- else
- begin
- Result := '{#UpdatesURL}'
- end
-end;
-
-function CurPageChanged_SelectComponents(CurPageID: Integer): Boolean;
-var
- Index: Integer;
- app: String;
-begin
- if CurPageID = wpSelectComponents then
- begin
- try
- app := ExpandConstant('{app}')
- except
- app := 'null'
- end;
- if not IsSubnautica(app) then
- begin
- WizardForm.SelectComponentsLabel.Caption := 'Game not detected in this folder, cannot install'
- Exit
- end;
- Index := WizardForm.ComponentsList.Items.IndexOf('Install for Subnautica')
- if Index <> -1 then
- begin
- if IsSubnautica(app) then
- begin
- WizardForm.ComponentsList.Checked[Index] := true
- WizardForm.SelectComponentsLabel.Caption := 'Install QModManager for Subnautica'
- end
- end;
- end
-end;
-
-function GetDir(folder: String; name: String): String;
-var
-I : Integer;
-P : Integer;
-steamInstallPath : String;
-configFile : String;
-fileLines: TArrayOfString;
-begin
- steamInstallPath := ''
- RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\WOW6432Node\Valve\Steam', 'InstallPath', steamInstallPath)
- if (FileExists(steamInstallPath + '\steamapps\common\' + folder + '\' + name + '.exe')) and (FileExists(steamInstallPath + '\steamapps\common\' + folder + '\' + name + '_Data\Managed\Assembly-CSharp.dll')) then
- begin
- Result := steamInstallPath + '\steamapps\common\' + folder
- Exit
- end
- else
- begin
- configFile := steamInstallPath + '\config\config.vdf'
- if FileExists(configFile) then
- begin
- if LoadStringsFromFile(configFile, FileLines) then
- begin
- for I := 0 to GetArrayLength(FileLines) - 1 do
- begin
- P := Pos('BaseInstallFolder_', FileLines[I])
- if P > 0 then
- begin
- steamInstallPath := Copy(FileLines[I], P + 23, 3) + Copy(FileLines[I], P + 27, Length(FileLines[I]) - P - 27);
- if (FileExists(steamInstallPath + '\steamapps\common\' + folder + '\' + name + '.exe')) and (FileExists(steamInstallPath + '\steamapps\common\' + folder + '\' + name + '_Data\Managed\Assembly-CSharp.dll')) then // If the folder is correct
- begin
- Result := steamInstallPath + '\steamapps\common\' + folder
- Exit
- end
- end
- end
- end
- end
- end;
- Result := 'none'
- Exit
-end;
-
-var ACLabel: TLabel;
-var SubnauticaButton: TNewRadioButton;
-
-procedure SubnauticaButtonOnClick(Sender: TObject);
-begin
- WizardForm.DirEdit.Text := GetDir('Subnautica', 'Subnautica')
- SubnauticaButton.Checked := true
-end;
-
-function InitializeWizard_AddButtons(): Boolean;
-begin
- ACLabel := TLabel.Create(WizardForm)
- with ACLabel do
- begin
- Parent := WizardForm
- Caption := 'Get path from Steam for:'
- Left := WizardForm.SelectDirLabel.Left / 3
- Top := WizardForm.BackButton.Top - WizardForm.BackButton.Top / 90
- end;
-
- SubnauticaButton := TNewRadioButton.Create(WizardForm)
- with SubnauticaButton do
- begin
- Parent := WizardForm
- Caption := 'Subnautica'
- OnClick := @SubnauticaButtonOnClick
- Left := WizardForm.SelectDirLabel.Left + WizardForm.SelectDirLabel.Left / 30
- Top := WizardForm.BackButton.Top + 10
- Height := WizardForm.BackButton.Height
- Enabled := True
- end;
-
-end;
-
-function CurPageChanged_AddButtons(CurPageID: Integer): Boolean;
-begin
- if CurPageID = wpSelectDir then
- begin
- WizardForm.DirEdit.Text := ''
- if GetDir('Subnautica', 'Subnautica') = 'none' then
- begin
- SubnauticaButton.Enabled := false
- end;
-
- if SubnauticaButton.Enabled then
- begin
- WizardForm.DirEdit.Text := GetDir('Subnautica', 'Subnautica')
- SubnauticaButton.Checked := true
- end
-
- end;
- SubnauticaButton.Visible := CurPageID = wpSelectDir
- ACLabel.Visible := CurPageID = wpSelectDir
-end;
-
-var DirEditOnChangePrev: TNotifyEvent;
-
-procedure DirEditOnChange(Sender: TObject);
-var
- S: String;
-begin
- if Pos('subnautica', LowerCase(WizardForm.DirEdit.Text)) <> 0 then
- begin
- if PathsEqual(WizardForm.DirEdit.Text, GetDir('Subnautica', 'Subnautica')) then
- begin
- SubnauticaButton.Checked := true
- end
- else
- begin
- SubnauticaButton.Checked := false;
- end
- end
- else
- begin
- SubnauticaButton.Checked := false;
- end;
-
- if (Pos('://', WizardForm.DirEdit.Text) <> 0) or (Pos(':\\', WizardForm.DirEdit.Text) <> 0) then
- begin
- S := WizardForm.DirEdit.Text;
- StringChangeEx(S, '://', ':/', true);
- StringChangeEx(S, ':\\', ':\', true);
- WizardForm.DirEdit.Text := S;
- end
-end;
-
-function InitializeWizard_DirOnChange(): Boolean;
-begin
- DirEditOnChangePrev := WizardForm.DirEdit.OnChange
- WizardForm.DirEdit.OnChange := @DirEditOnChange
-end;
-
-var appIsSet: Boolean;
-
-function GetGUID(def: String): String;
-begin
- if not appIsSet then // The installer tries to get the GUID at startup to use previous options such as install path or install settings. As QModManager's GUID is defined AFTER the path is selected, it doesn't need to provide a value
- begin
- Result := ''
- Exit
- end;
- if IsSubnautica(ExpandConstant('{app}')) then
- begin
- Result := '{52CC87AA-645D-40FB-8411-510142191678}'
- Exit
- end;
-end;
-
-function IsAppRunning(const FileName : string): Boolean;
-var
- FSWbemLocator: Variant;
- FWMIService : Variant;
- FWbemObjectSet: Variant;
-begin
- Result := false;
- FSWbemLocator := CreateOleObject('WBEMScripting.SWBEMLocator');
- FWMIService := FSWbemLocator.ConnectServer('', 'root\CIMV2', '', '');
- FWbemObjectSet :=
- FWMIService.ExecQuery(
- Format('SELECT Name FROM Win32_Process Where Name="%s"', [FileName]));
- Result := (FWbemObjectSet.Count > 0);
- FWbemObjectSet := Unassigned;
- FWMIService := Unassigned;
- FSWbemLocator := Unassigned;
-end;
-
-// Imports some stuff from VclStylesInno.dll
-procedure LoadVCLStyle(VClStyleFile: String); external 'LoadVCLStyleW@files:VclStylesInno.dll stdcall';
-procedure UnLoadVCLStyles; external 'UnLoadVCLStyles@files:VclStylesInno.dll stdcall';
-
-// Check for .NET version -- code from http://www.kynosarges.de/DotNetVersion.html
-function IsDotNetDetected(version: string; service: cardinal): boolean;
-// Indicates whether the specified version and service pack of the .NET Framework is installed.
-//
-// version -- Specify one of these strings for the required .NET Framework version:
-// 'v1.1' .NET Framework 1.1
-// 'v2.0' .NET Framework 2.0
-// 'v3.0' .NET Framework 3.0
-// 'v3.5' .NET Framework 3.5
-// 'v4\Client' .NET Framework 4.0 Client Profile
-// 'v4\Full' .NET Framework 4.0 Full Installation
-// 'v4.5' .NET Framework 4.5
-// 'v4.5.1' .NET Framework 4.5.1
-// 'v4.5.2' .NET Framework 4.5.2
-// 'v4.6' .NET Framework 4.6
-// 'v4.6.1' .NET Framework 4.6.1
-// 'v4.6.2' .NET Framework 4.6.2
-// 'v4.7' .NET Framework 4.7
-//
-// service -- Specify any non-negative integer for the required service pack level:
-// 0 No service packs required
-// 1, 2, etc. Service pack 1, 2, etc. required
-var
- key, versionKey: string;
- install, release, serviceCount, versionRelease: cardinal;
- success: boolean;
-begin
- versionKey := version;
- versionRelease := 0;
-
- // .NET 1.1 and 2.0 embed release number in version key
- if version = 'v1.1' then begin
- versionKey := 'v1.1.4322';
- end else if version = 'v2.0' then begin
- versionKey := 'v2.0.50727';
- end
-
- // .NET 4.5 and newer install as update to .NET 4.0 Full
- else if Pos('v4.', version) = 1 then begin
- versionKey := 'v4\Full';
- case version of
- 'v4.5': versionRelease := 378389;
- 'v4.5.1': versionRelease := 378675; // 378758 on Windows 8 and older
- 'v4.5.2': versionRelease := 379893;
- 'v4.6': versionRelease := 393295; // 393297 on Windows 8.1 and older
- 'v4.6.1': versionRelease := 394254; // 394271 before Win10 November Update
- 'v4.6.2': versionRelease := 394802; // 394806 before Win10 Anniversary Update
- 'v4.7': versionRelease := 460798; // 460805 before Win10 Creators Update
- end;
- end;
-
- // installation key group for all .NET versions
- key := 'SOFTWARE\Microsoft\NET Framework Setup\NDP\' + versionKey;
-
- // .NET 3.0 uses value InstallSuccess in subkey Setup
- if Pos('v3.0', version) = 1 then begin
- success := RegQueryDWordValue(HKLM, key + '\Setup', 'InstallSuccess', install);
- end else begin
- success := RegQueryDWordValue(HKLM, key, 'Install', install);
- end;
-
- // .NET 4.0 and newer use value Servicing instead of SP
- if Pos('v4', version) = 1 then begin
- success := success and RegQueryDWordValue(HKLM, key, 'Servicing', serviceCount);
- end else begin
- success := success and RegQueryDWordValue(HKLM, key, 'SP', serviceCount);
- end;
-
- // .NET 4.5 and newer use additional value Release
- if versionRelease > 0 then begin
- success := success and RegQueryDWordValue(HKLM, key, 'Release', release);
- success := success and (release >= versionRelease);
- end;
-
- result := success and (install = 1) and (serviceCount >= service);
-end;
-
-function InitializeSetup(): Boolean;
-var
- ErrCode: Integer;
-begin
- if not IsDotNetDetected('v4\Full', 0) then
- begin
- if MsgBox('QModManager requires Microsoft .NET Framework 4.0' + #13#10 + 'Would you like to install it now?', mbCriticalError, MB_YESNO) = IDYES then
- begin
- if not ShellExec('open', 'https://dotnet.microsoft.com/download/dotnet-framework/net40', '', '', SW_SHOW, ewNoWait, ErrCode) then
- begin
- SysErrorMessage(ErrCode);
- end
- end;
- result := false;
- Exit
- end;
- appIsSet := false
- if IsAppRunning('Subnautica.exe') then
- begin
- MsgBox('You need to close Subnautica before installing QModManager.' + #13#10 + 'If the game is not running, please reboot your computer.', mbError, MB_OK);
- Result := false
- end
- else
- begin
- // Load skin
- ExtractTemporaryFile('Carbon.vsf');
- LoadVCLStyle(ExpandConstant('{tmp}\Carbon.vsf'));
- Result := true
- end
-end;
-
-function IsPreviousVersionInstalled: Boolean;
-var
- uninstallRegKey: String;
- previousVersion: String;
-begin
- uninstallRegKey := 'Software\Microsoft\Windows\CurrentVersion\Uninstall\' + GetGuid('') + '_is1';
- previousVersion := '';
- Result := (RegKeyExists(HKLM, uninstallRegKey) or RegKeyExists(HKCU, uninstallRegKey));
-end;
-
-function GetUninstallString: string;
-var
- uninstallRegKey: String;
- uninstallString: String;
-begin
- Result := '';
- uninstallRegKey := 'Software\Microsoft\Windows\CurrentVersion\Uninstall\' + GetGuid('') + '_is1';
- uninstallString := '';
- if not RegQueryStringValue(HKLM, uninstallRegKey, 'UninstallString', uninstallString) then
- RegQueryStringValue(HKCU, uninstallRegKey, 'UninstallString', uninstallString);
- Result := uninstallString;
-end;
-
-function IsUpgrade: Boolean;
-begin
- Result := (GetUninstallString() <> '');
-end;
-
-function NextButtonClick(CurPageID: Integer): Boolean;
-var
- uninstallString: String;
- resultCode: Integer;
-begin
- if CurPageID = wpSelectComponents then
- appIsSet := true;
-
- Result := true;
-end;
-
-function PrepareToInstall(var NeedsRestart: boolean): string;
-var
- uninstallString: string;
- resultCode: integer;
-begin
- NeedsRestart := false;
-
- if IsPreviousVersionInstalled() then
- begin
- uninstallString := RemoveQuotes(GetUninstallString());
- if FileExists(uninstallString) then
- begin
- Exec(uninstallString, '/SILENT', '', SW_SHOW, ewWaitUntilTerminated, resultCode);
- if IsPreviousVersionInstalled() then
- Result := 'Previous installation must be uninstalled to continue.';
- end;
- end;
-end;
-
-var TypesComboOnChangePrev: TNotifyEvent;
-
-procedure ComponentsListCheckChanges;
-begin
- WizardForm.NextButton.Enabled := (WizardSelectedComponents(false) <> '')
-end;
-
-procedure ComponentsListClickCheck(Sender: TObject);
-begin
- ComponentsListCheckChanges
-end;
-
-procedure TypesComboOnChange(Sender: TObject);
-begin
- TypesComboOnChangePrev(Sender)
- ComponentsListCheckChanges
-end;
-
-procedure CurPageChanged(CurPageID: Integer);
-begin
- CurPageChanged_SelectComponents(CurPageID)
- CurPageChanged_AddButtons(CurPageID)
- if CurPageID = wpSelectComponents then
- begin
- ComponentsListCheckChanges;
- end
-end;
-
-procedure InitializeWizard();
-begin
- WizardForm.ComponentsList.OnClickCheck := @ComponentsListClickCheck
- TypesComboOnChangePrev := WizardForm.TypesCombo.OnChange
- WizardForm.TypesCombo.OnChange := @TypesComboOnChange
- InitializeWizard_AddButtons
- InitializeWizard_DirOnChange
-end;
-
-procedure UnloadInstallerExtensions();
- var
- FilePath: string;
- BatchPath: string;
- S: TArrayOfString;
- ResultCode: Integer;
-begin
- FilePath := ExpandConstant('{tmp}\InstallerExtensions.dll');
- if not FileExists(FilePath) then
- begin
- Log(Format('File %s does not exist', [FilePath]));
- end
- else
- begin
- BatchPath :=
- ExpandConstant('{%TEMP}\') +
- 'delete_' + ExtractFileName(ExpandConstant('{tmp}')) + '.bat';
- SetArrayLength(S, 7);
- S[0] := ':loop';
- S[1] := 'del "' + FilePath + '"';
- S[2] := 'if not exist "' + FilePath + '" goto end';
- S[3] := 'goto loop';
- S[4] := ':end';
- S[5] := 'rd "' + ExpandConstant('{tmp}') + '"';
- S[6] := 'del "' + BatchPath + '"';
- if not SaveStringsToFile(BatchPath, S, False) then
- begin
- Log(Format('Error creating batch file %s to delete %s', [BatchPath, FilePath]));
- end
- else
- if not Exec(BatchPath, '', '', SW_HIDE, ewNoWait, ResultCode) then
- begin
- Log(Format('Error executing batch file %s to delete %s', [BatchPath, FilePath]));
- end
- else
- begin
- Log(Format('Executed batch file %s to delete %s', [BatchPath, FilePath]));
- end;
- end;
-end;
-
-procedure DeinitializeSetup();
-begin
- // Unload skin
- UnLoadVCLStyles;
- UnloadInstallerExtensions;
-end;
diff --git a/Installer/packages.config b/Installer/packages.config
deleted file mode 100644
index 79f218d4..00000000
--- a/Installer/packages.config
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/NStrip.exe b/NStrip.exe
new file mode 100644
index 00000000..23054860
Binary files /dev/null and b/NStrip.exe differ
diff --git a/NuGet.Config b/NuGet.Config
new file mode 100644
index 00000000..2e1990f2
--- /dev/null
+++ b/NuGet.Config
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OculusNewtonsoftRedirect/OculusNewtonsoftRedirect.cs b/OculusNewtonsoftRedirect/OculusNewtonsoftRedirect.cs
index 23f40c18..0bd9ec10 100644
--- a/OculusNewtonsoftRedirect/OculusNewtonsoftRedirect.cs
+++ b/OculusNewtonsoftRedirect/OculusNewtonsoftRedirect.cs
@@ -4,13 +4,13 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using System.Reflection;
namespace QModManager
{
public static class OculusNewtonsoftRedirect
{
- private static string OculusNewtonsoftJsonPath => Path.Combine(
- Paths.BepInExRootPath, "patchers", "QModManager", "Oculus.Newtonsoft.Json.dll");
+ private static string OculusNewtonsoftJsonPath => Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? string.Empty, "Oculus.Newtonsoft.Json.dll");
private static readonly ManualLogSource Logger = BepInEx.Logging.Logger.CreateLogSource("OculusNewtonsoftRedirect");
diff --git a/OculusNewtonsoftRedirect/QModManager.OculusNewtonsoftRedirect.csproj b/OculusNewtonsoftRedirect/OculusNewtonsoftRedirect.csproj
similarity index 51%
rename from OculusNewtonsoftRedirect/QModManager.OculusNewtonsoftRedirect.csproj
rename to OculusNewtonsoftRedirect/OculusNewtonsoftRedirect.csproj
index a8e9ff54..0f7e3107 100644
--- a/OculusNewtonsoftRedirect/QModManager.OculusNewtonsoftRedirect.csproj
+++ b/OculusNewtonsoftRedirect/OculusNewtonsoftRedirect.csproj
@@ -13,6 +13,8 @@
512
true
+
+
..\Build\$(Configuration)\
@@ -51,12 +53,36 @@
prompt
-
- ..\Dependencies\BepInEx\BepInEx\core\BepInEx.dll
+
+ ..\packages\HarmonyX.2.7.0\lib\net45\0Harmony.dll
False
-
- ..\Dependencies\BepInEx\BepInEx\core\Mono.Cecil.dll
+
+ ..\packages\BepInEx.BaseLib.5.4.19\lib\net35\BepInEx.dll
+ False
+
+
+ ..\packages\Mono.Cecil.0.11.4\lib\net40\Mono.Cecil.dll
+ False
+
+
+ ..\packages\Mono.Cecil.0.11.4\lib\net40\Mono.Cecil.Mdb.dll
+ False
+
+
+ ..\packages\Mono.Cecil.0.11.4\lib\net40\Mono.Cecil.Pdb.dll
+ False
+
+
+ ..\packages\Mono.Cecil.0.11.4\lib\net40\Mono.Cecil.Rocks.dll
+ False
+
+
+ ..\packages\MonoMod.RuntimeDetour.21.12.13.1\lib\net452\MonoMod.RuntimeDetour.dll
+ False
+
+
+ ..\packages\MonoMod.Utils.21.12.13.1\lib\net452\MonoMod.Utils.dll
False
@@ -66,5 +92,16 @@
+
+
+
+
+
+
+
+ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
+
+
+
\ No newline at end of file
diff --git a/OculusNewtonsoftRedirect/Properties/AssemblyInfo.cs b/OculusNewtonsoftRedirect/Properties/AssemblyInfo.cs
index 134e3813..655b30cb 100644
--- a/OculusNewtonsoftRedirect/Properties/AssemblyInfo.cs
+++ b/OculusNewtonsoftRedirect/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("4.3.0")]
-[assembly: AssemblyFileVersion("4.3.0")]
+[assembly: AssemblyVersion("4.4.3")]
+[assembly: AssemblyFileVersion("4.4.3")]
diff --git a/OculusNewtonsoftRedirect/app.config b/OculusNewtonsoftRedirect/app.config
new file mode 100644
index 00000000..2a4bf252
--- /dev/null
+++ b/OculusNewtonsoftRedirect/app.config
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OculusNewtonsoftRedirect/packages.config b/OculusNewtonsoftRedirect/packages.config
new file mode 100644
index 00000000..47859cc9
--- /dev/null
+++ b/OculusNewtonsoftRedirect/packages.config
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/QModManager.sln b/QModManager.sln
index bb32a167..095d0bca 100644
--- a/QModManager.sln
+++ b/QModManager.sln
@@ -1,40 +1,30 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.30204.135
+# Visual Studio Version 17
+VisualStudioVersion = 17.1.32210.238
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QModManager", "QModManager\QModManager.csproj", "{DA63F59D-4676-4726-AFEC-BD9D3682733F}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unit Tests", "Unit Tests\Unit Tests.csproj", "{D433A819-73DB-4E6C-AE73-D3DED793BD4E}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{5A8D179E-C749-4346-AD81-05F11C082A1C}"
ProjectSection(SolutionItems) = preProject
+ common.props = common.props
+ Configurations.targets = Configurations.targets
Data\latest-version.txt = Data\latest-version.txt
+ NuGet.Config = NuGet.Config
+ References.targets = References.targets
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InstallerExtensions", "Installer\InstallerExtensions.csproj", "{92726127-A08F-4843-BF96-4989CE1BF422}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Executable", "Executable\Executable.csproj", "{E00B7FE8-0F1D-4AE6-9E47-4BFD81537F14}"
- ProjectSection(ProjectDependencies) = postProject
- {CA99F076-7459-4682-A41D-2850AEE28566} = {CA99F076-7459-4682-A41D-2850AEE28566}
- EndProjectSection
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QModManager.UnityAudioFixer", "UnityAudioFixer\QModManager.UnityAudioFixer.csproj", "{CA99F076-7459-4682-A41D-2850AEE28566}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnityAudioFixer", "UnityAudioFixer\UnityAudioFixer.csproj", "{CA99F076-7459-4682-A41D-2850AEE28566}"
ProjectSection(ProjectDependencies) = postProject
{DA63F59D-4676-4726-AFEC-BD9D3682733F} = {DA63F59D-4676-4726-AFEC-BD9D3682733F}
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QModManager.QModPluginGenerator", "QModPluginEmulator\QModManager.QModPluginGenerator.csproj", "{EA496DDF-D775-4E17-9EAE-C570C5F50701}"
ProjectSection(ProjectDependencies) = postProject
- {D433A819-73DB-4E6C-AE73-D3DED793BD4E} = {D433A819-73DB-4E6C-AE73-D3DED793BD4E}
- {92726127-A08F-4843-BF96-4989CE1BF422} = {92726127-A08F-4843-BF96-4989CE1BF422}
- {25558450-FF33-4FDF-91C7-0C5C00A94A57} = {25558450-FF33-4FDF-91C7-0C5C00A94A57}
- {CA99F076-7459-4682-A41D-2850AEE28566} = {CA99F076-7459-4682-A41D-2850AEE28566}
{DA63F59D-4676-4726-AFEC-BD9D3682733F} = {DA63F59D-4676-4726-AFEC-BD9D3682733F}
- {E00B7FE8-0F1D-4AE6-9E47-4BFD81537F14} = {E00B7FE8-0F1D-4AE6-9E47-4BFD81537F14}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QModManager.OculusNewtonsoftRedirect", "OculusNewtonsoftRedirect\QModManager.OculusNewtonsoftRedirect.csproj", "{25558450-FF33-4FDF-91C7-0C5C00A94A57}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OculusNewtonsoftRedirect", "OculusNewtonsoftRedirect\OculusNewtonsoftRedirect.csproj", "{25558450-FF33-4FDF-91C7-0C5C00A94A57}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build Scripts", "Build Scripts", "{075884D3-CC6F-4B56-B050-C31A8E11FA52}"
ProjectSection(SolutionItems) = preProject
@@ -81,78 +71,6 @@ Global
{DA63F59D-4676-4726-AFEC-BD9D3682733F}.SN.STABLE|x64.Build.0 = SN.STABLE|Any CPU
{DA63F59D-4676-4726-AFEC-BD9D3682733F}.SN.STABLE|x86.ActiveCfg = SN.STABLE|Any CPU
{DA63F59D-4676-4726-AFEC-BD9D3682733F}.SN.STABLE|x86.Build.0 = SN.STABLE|Any CPU
- {D433A819-73DB-4E6C-AE73-D3DED793BD4E}.BZ.EXP|Any CPU.ActiveCfg = BZ.EXP|Any CPU
- {D433A819-73DB-4E6C-AE73-D3DED793BD4E}.BZ.EXP|Any CPU.Build.0 = BZ.EXP|Any CPU
- {D433A819-73DB-4E6C-AE73-D3DED793BD4E}.BZ.EXP|x64.ActiveCfg = BZ.EXP|Any CPU
- {D433A819-73DB-4E6C-AE73-D3DED793BD4E}.BZ.EXP|x64.Build.0 = BZ.EXP|Any CPU
- {D433A819-73DB-4E6C-AE73-D3DED793BD4E}.BZ.EXP|x86.ActiveCfg = BZ.EXP|Any CPU
- {D433A819-73DB-4E6C-AE73-D3DED793BD4E}.BZ.EXP|x86.Build.0 = BZ.EXP|Any CPU
- {D433A819-73DB-4E6C-AE73-D3DED793BD4E}.BZ.STABLE|Any CPU.ActiveCfg = BZ.STABLE|Any CPU
- {D433A819-73DB-4E6C-AE73-D3DED793BD4E}.BZ.STABLE|Any CPU.Build.0 = BZ.STABLE|Any CPU
- {D433A819-73DB-4E6C-AE73-D3DED793BD4E}.BZ.STABLE|x64.ActiveCfg = BZ.STABLE|Any CPU
- {D433A819-73DB-4E6C-AE73-D3DED793BD4E}.BZ.STABLE|x64.Build.0 = BZ.STABLE|Any CPU
- {D433A819-73DB-4E6C-AE73-D3DED793BD4E}.BZ.STABLE|x86.ActiveCfg = BZ.STABLE|Any CPU
- {D433A819-73DB-4E6C-AE73-D3DED793BD4E}.BZ.STABLE|x86.Build.0 = BZ.STABLE|Any CPU
- {D433A819-73DB-4E6C-AE73-D3DED793BD4E}.SN.EXP|Any CPU.ActiveCfg = SN.EXP|Any CPU
- {D433A819-73DB-4E6C-AE73-D3DED793BD4E}.SN.EXP|Any CPU.Build.0 = SN.EXP|Any CPU
- {D433A819-73DB-4E6C-AE73-D3DED793BD4E}.SN.EXP|x64.ActiveCfg = SN.EXP|Any CPU
- {D433A819-73DB-4E6C-AE73-D3DED793BD4E}.SN.EXP|x64.Build.0 = SN.EXP|Any CPU
- {D433A819-73DB-4E6C-AE73-D3DED793BD4E}.SN.EXP|x86.ActiveCfg = SN.EXP|Any CPU
- {D433A819-73DB-4E6C-AE73-D3DED793BD4E}.SN.EXP|x86.Build.0 = SN.EXP|Any CPU
- {D433A819-73DB-4E6C-AE73-D3DED793BD4E}.SN.STABLE|Any CPU.ActiveCfg = SN.STABLE|Any CPU
- {D433A819-73DB-4E6C-AE73-D3DED793BD4E}.SN.STABLE|Any CPU.Build.0 = SN.STABLE|Any CPU
- {D433A819-73DB-4E6C-AE73-D3DED793BD4E}.SN.STABLE|x64.ActiveCfg = SN.STABLE|Any CPU
- {D433A819-73DB-4E6C-AE73-D3DED793BD4E}.SN.STABLE|x64.Build.0 = SN.STABLE|Any CPU
- {D433A819-73DB-4E6C-AE73-D3DED793BD4E}.SN.STABLE|x86.ActiveCfg = SN.STABLE|Any CPU
- {D433A819-73DB-4E6C-AE73-D3DED793BD4E}.SN.STABLE|x86.Build.0 = SN.STABLE|Any CPU
- {92726127-A08F-4843-BF96-4989CE1BF422}.BZ.EXP|Any CPU.ActiveCfg = BZ.EXP|Any CPU
- {92726127-A08F-4843-BF96-4989CE1BF422}.BZ.EXP|Any CPU.Build.0 = BZ.EXP|Any CPU
- {92726127-A08F-4843-BF96-4989CE1BF422}.BZ.EXP|x64.ActiveCfg = BZ.EXP|Any CPU
- {92726127-A08F-4843-BF96-4989CE1BF422}.BZ.EXP|x64.Build.0 = BZ.EXP|Any CPU
- {92726127-A08F-4843-BF96-4989CE1BF422}.BZ.EXP|x86.ActiveCfg = BZ.EXP|Any CPU
- {92726127-A08F-4843-BF96-4989CE1BF422}.BZ.EXP|x86.Build.0 = BZ.EXP|Any CPU
- {92726127-A08F-4843-BF96-4989CE1BF422}.BZ.STABLE|Any CPU.ActiveCfg = BZ.STABLE|Any CPU
- {92726127-A08F-4843-BF96-4989CE1BF422}.BZ.STABLE|Any CPU.Build.0 = BZ.STABLE|Any CPU
- {92726127-A08F-4843-BF96-4989CE1BF422}.BZ.STABLE|x64.ActiveCfg = BZ.STABLE|Any CPU
- {92726127-A08F-4843-BF96-4989CE1BF422}.BZ.STABLE|x64.Build.0 = BZ.STABLE|Any CPU
- {92726127-A08F-4843-BF96-4989CE1BF422}.BZ.STABLE|x86.ActiveCfg = BZ.STABLE|Any CPU
- {92726127-A08F-4843-BF96-4989CE1BF422}.BZ.STABLE|x86.Build.0 = BZ.STABLE|Any CPU
- {92726127-A08F-4843-BF96-4989CE1BF422}.SN.EXP|Any CPU.ActiveCfg = SN.EXP|Any CPU
- {92726127-A08F-4843-BF96-4989CE1BF422}.SN.EXP|Any CPU.Build.0 = SN.EXP|Any CPU
- {92726127-A08F-4843-BF96-4989CE1BF422}.SN.EXP|x64.ActiveCfg = SN.EXP|Any CPU
- {92726127-A08F-4843-BF96-4989CE1BF422}.SN.EXP|x64.Build.0 = SN.EXP|Any CPU
- {92726127-A08F-4843-BF96-4989CE1BF422}.SN.EXP|x86.ActiveCfg = SN.EXP|Any CPU
- {92726127-A08F-4843-BF96-4989CE1BF422}.SN.EXP|x86.Build.0 = SN.EXP|Any CPU
- {92726127-A08F-4843-BF96-4989CE1BF422}.SN.STABLE|Any CPU.ActiveCfg = SN.STABLE|Any CPU
- {92726127-A08F-4843-BF96-4989CE1BF422}.SN.STABLE|Any CPU.Build.0 = SN.STABLE|Any CPU
- {92726127-A08F-4843-BF96-4989CE1BF422}.SN.STABLE|x64.ActiveCfg = SN.STABLE|Any CPU
- {92726127-A08F-4843-BF96-4989CE1BF422}.SN.STABLE|x64.Build.0 = SN.STABLE|Any CPU
- {92726127-A08F-4843-BF96-4989CE1BF422}.SN.STABLE|x86.ActiveCfg = SN.STABLE|Any CPU
- {92726127-A08F-4843-BF96-4989CE1BF422}.SN.STABLE|x86.Build.0 = SN.STABLE|Any CPU
- {E00B7FE8-0F1D-4AE6-9E47-4BFD81537F14}.BZ.EXP|Any CPU.ActiveCfg = BZ.EXP|Any CPU
- {E00B7FE8-0F1D-4AE6-9E47-4BFD81537F14}.BZ.EXP|Any CPU.Build.0 = BZ.EXP|Any CPU
- {E00B7FE8-0F1D-4AE6-9E47-4BFD81537F14}.BZ.EXP|x64.ActiveCfg = BZ.EXP|Any CPU
- {E00B7FE8-0F1D-4AE6-9E47-4BFD81537F14}.BZ.EXP|x64.Build.0 = BZ.EXP|Any CPU
- {E00B7FE8-0F1D-4AE6-9E47-4BFD81537F14}.BZ.EXP|x86.ActiveCfg = BZ.EXP|Any CPU
- {E00B7FE8-0F1D-4AE6-9E47-4BFD81537F14}.BZ.EXP|x86.Build.0 = BZ.EXP|Any CPU
- {E00B7FE8-0F1D-4AE6-9E47-4BFD81537F14}.BZ.STABLE|Any CPU.ActiveCfg = BZ.STABLE|Any CPU
- {E00B7FE8-0F1D-4AE6-9E47-4BFD81537F14}.BZ.STABLE|Any CPU.Build.0 = BZ.STABLE|Any CPU
- {E00B7FE8-0F1D-4AE6-9E47-4BFD81537F14}.BZ.STABLE|x64.ActiveCfg = BZ.STABLE|Any CPU
- {E00B7FE8-0F1D-4AE6-9E47-4BFD81537F14}.BZ.STABLE|x64.Build.0 = BZ.STABLE|Any CPU
- {E00B7FE8-0F1D-4AE6-9E47-4BFD81537F14}.BZ.STABLE|x86.ActiveCfg = BZ.STABLE|Any CPU
- {E00B7FE8-0F1D-4AE6-9E47-4BFD81537F14}.BZ.STABLE|x86.Build.0 = BZ.STABLE|Any CPU
- {E00B7FE8-0F1D-4AE6-9E47-4BFD81537F14}.SN.EXP|Any CPU.ActiveCfg = SN.EXP|Any CPU
- {E00B7FE8-0F1D-4AE6-9E47-4BFD81537F14}.SN.EXP|Any CPU.Build.0 = SN.EXP|Any CPU
- {E00B7FE8-0F1D-4AE6-9E47-4BFD81537F14}.SN.EXP|x64.ActiveCfg = SN.EXP|Any CPU
- {E00B7FE8-0F1D-4AE6-9E47-4BFD81537F14}.SN.EXP|x64.Build.0 = SN.EXP|Any CPU
- {E00B7FE8-0F1D-4AE6-9E47-4BFD81537F14}.SN.EXP|x86.ActiveCfg = SN.EXP|Any CPU
- {E00B7FE8-0F1D-4AE6-9E47-4BFD81537F14}.SN.EXP|x86.Build.0 = SN.EXP|Any CPU
- {E00B7FE8-0F1D-4AE6-9E47-4BFD81537F14}.SN.STABLE|Any CPU.ActiveCfg = SN.STABLE|Any CPU
- {E00B7FE8-0F1D-4AE6-9E47-4BFD81537F14}.SN.STABLE|Any CPU.Build.0 = SN.STABLE|Any CPU
- {E00B7FE8-0F1D-4AE6-9E47-4BFD81537F14}.SN.STABLE|x64.ActiveCfg = SN.STABLE|Any CPU
- {E00B7FE8-0F1D-4AE6-9E47-4BFD81537F14}.SN.STABLE|x64.Build.0 = SN.STABLE|Any CPU
- {E00B7FE8-0F1D-4AE6-9E47-4BFD81537F14}.SN.STABLE|x86.ActiveCfg = SN.STABLE|Any CPU
- {E00B7FE8-0F1D-4AE6-9E47-4BFD81537F14}.SN.STABLE|x86.Build.0 = SN.STABLE|Any CPU
{CA99F076-7459-4682-A41D-2850AEE28566}.BZ.EXP|Any CPU.ActiveCfg = BZ.EXP|Any CPU
{CA99F076-7459-4682-A41D-2850AEE28566}.BZ.EXP|Any CPU.Build.0 = BZ.EXP|Any CPU
{CA99F076-7459-4682-A41D-2850AEE28566}.BZ.EXP|x64.ActiveCfg = BZ.EXP|Any CPU
diff --git a/QModManager/BepInex/Plugins/LogFilter.cs b/QModManager/BepInex/Plugins/LogFilter.cs
index 79ec1842..918b4a01 100644
--- a/QModManager/BepInex/Plugins/LogFilter.cs
+++ b/QModManager/BepInex/Plugins/LogFilter.cs
@@ -13,7 +13,7 @@ internal class LogFilter : BaseUnityPlugin
{
internal const string PluginGuid = "QModManager.LogFilter";
internal const string PluginName = PluginGuid;
- internal const string PluginVersion = "4.3.0";
+ internal const string PluginVersion = "4.4.3";
private void Awake()
{
diff --git a/QModManager/BepInex/Plugins/QMMLoader.cs b/QModManager/BepInex/Plugins/QMMLoader.cs
index bf8948d7..45d221be 100644
--- a/QModManager/BepInex/Plugins/QMMLoader.cs
+++ b/QModManager/BepInex/Plugins/QMMLoader.cs
@@ -21,7 +21,7 @@ public class QMMLoader : BaseUnityPlugin
{
internal const string PluginGuid = "QModManager.QMMLoader";
internal const string PluginName = "QMMLoader";
- internal const string PluginVersion = "4.3.0";
+ internal const string PluginVersion = "4.4.3";
internal static List QModsToLoad;
private static Initializer Initializer;
diff --git a/QModManager/Properties/AssemblyInfo.cs b/QModManager/Properties/AssemblyInfo.cs
index 7638f956..844cc06e 100644
--- a/QModManager/Properties/AssemblyInfo.cs
+++ b/QModManager/Properties/AssemblyInfo.cs
@@ -13,8 +13,8 @@
[assembly: ComVisible(false)]
-[assembly: AssemblyVersion("4.3.0")]
-[assembly: AssemblyFileVersion("4.3.0")]
+[assembly: AssemblyVersion("4.4.3")]
+[assembly: AssemblyFileVersion("4.4.3")]
[assembly: InternalsVisibleTo("QMMTests")]
[assembly: InternalsVisibleTo("QModManager")]
diff --git a/QModManager/QModManager.csproj b/QModManager/QModManager.csproj
index f6bfac15..9f39fb4f 100644
--- a/QModManager/QModManager.csproj
+++ b/QModManager/QModManager.csproj
@@ -1,6 +1,7 @@
+
Debug
AnyCPU
@@ -12,6 +13,8 @@
512
true
+
+
..\Build\$(Configuration)\
@@ -57,66 +60,41 @@
latest
prompt
+
-
- ..\Dependencies\BepInEx\BepInEx\core\0Harmony.dll
+
+ ..\packages\HarmonyX.2.7.0\lib\net45\0Harmony.dll
False
-
- ..\Dependencies\$(Configuration)\Assembly-CSharp-firstpass_publicized.dll
+
+ ..\packages\BepInEx.BaseLib.5.4.19\lib\net35\BepInEx.dll
False
-
- ..\Dependencies\$(Configuration)\Assembly-CSharp_publicized.dll
+
+ ..\packages\Mono.Cecil.0.11.4\lib\net40\Mono.Cecil.dll
False
-
- ..\Dependencies\BepInEx\BepInEx\core\BepInEx.dll
+
+ ..\packages\Mono.Cecil.0.11.4\lib\net40\Mono.Cecil.Mdb.dll
False
-
- ..\Dependencies\$(Configuration)\Newtonsoft.Json.dll
+
+ ..\packages\Mono.Cecil.0.11.4\lib\net40\Mono.Cecil.Pdb.dll
False
-
-
- ..\Dependencies\$(Configuration)\UnityEngine.dll
- False
-
-
- ..\Dependencies\$(Configuration)\UnityEngine.AssetBundleModule.dll
- False
-
-
- ..\Dependencies\$(Configuration)\UnityEngine.CoreModule.dll
- False
-
-
- ..\Dependencies\$(Configuration)\UnityEngine.IMGUIModule.dll
- False
-
-
- ..\Dependencies\$(Configuration)\UnityEngine.InputLegacyModule.dll
+
+ ..\packages\Mono.Cecil.0.11.4\lib\net40\Mono.Cecil.Rocks.dll
False
-
- ..\Dependencies\$(Configuration)\UnityEngine.InputModule.dll
+
+ ..\packages\MonoMod.RuntimeDetour.21.12.13.1\lib\net452\MonoMod.RuntimeDetour.dll
False
-
- ..\Dependencies\$(Configuration)\UnityEngine.UI.dll
- False
-
-
- ..\Dependencies\$(Configuration)\Unity.ResourceManager.dll
- False
-
-
-
-
- ..\Dependencies\$(Configuration)\Sentry.dll
+
+ ..\packages\MonoMod.Utils.21.12.13.1\lib\net452\MonoMod.Utils.dll
False
+
@@ -174,10 +152,23 @@
-
+
+
+
+
-
-
+
+ IF NOT EXIST "$(Dependencies)/$(Configuration)/Assemblies" (
+ mkdir "$(Dependencies)/$(Configuration)/Assemblies"
+ $(SolutionDir)nstrip.exe -p -cg -cg-exclude-events "$(ManagedDir)" "$(Dependencies)/$(Configuration)/Assemblies" >nul
+ )
+
+
+
+ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
+
+
+
\ No newline at end of file
diff --git a/QModManager/app.config b/QModManager/app.config
new file mode 100644
index 00000000..2a4bf252
--- /dev/null
+++ b/QModManager/app.config
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/QModManager/packages.config b/QModManager/packages.config
new file mode 100644
index 00000000..47859cc9
--- /dev/null
+++ b/QModManager/packages.config
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/QModPluginEmulator/Properties/AssemblyInfo.cs b/QModPluginEmulator/Properties/AssemblyInfo.cs
index 6aa21b86..9d8d0715 100644
--- a/QModPluginEmulator/Properties/AssemblyInfo.cs
+++ b/QModPluginEmulator/Properties/AssemblyInfo.cs
@@ -33,8 +33,8 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("4.3.0")]
-[assembly: AssemblyFileVersion("4.3.0")]
+[assembly: AssemblyVersion("4.4.3")]
+[assembly: AssemblyFileVersion("4.4.3")]
[assembly: NeutralResourcesLanguage("en")]
[assembly: InternalsVisibleTo("QModManager.QMMLoader")]
diff --git a/QModPluginEmulator/QModManager.QModPluginGenerator.csproj b/QModPluginEmulator/QModManager.QModPluginGenerator.csproj
index 91da93a4..ad83e03f 100644
--- a/QModPluginEmulator/QModManager.QModPluginGenerator.csproj
+++ b/QModPluginEmulator/QModManager.QModPluginGenerator.csproj
@@ -1,6 +1,7 @@
+
Debug
AnyCPU
@@ -18,6 +19,8 @@
AnyCPU
7.3
prompt
+
+
..\Build\$(Configuration)\
@@ -38,41 +41,39 @@
OnBuildSuccess
+
-
- ..\Dependencies\BepInEx\BepInEx\core\0Harmony.dll
- False
+
+ ..\packages\HarmonyX.2.9.0\lib\net45\0Harmony.dll
-
- ..\Dependencies\$(Configuration)\Assembly-CSharp-firstpass_publicized.dll
+
+ ..\packages\BepInEx.BaseLib.5.4.19\lib\net35\BepInEx.dll
False
-
- ..\Dependencies\$(Configuration)\Assembly-CSharp_publicized.dll
+
+ ..\packages\Mono.Cecil.0.11.4\lib\net40\Mono.Cecil.dll
False
-
- ..\Dependencies\BepInEx\BepInEx\core\BepInEx.dll
+
+ ..\packages\Mono.Cecil.0.11.4\lib\net40\Mono.Cecil.Mdb.dll
False
-
- ..\Dependencies\BepInEx\BepInEx\core\Mono.Cecil.dll
+
+ ..\packages\Mono.Cecil.0.11.4\lib\net40\Mono.Cecil.Pdb.dll
False
-
- ..\Dependencies\$(Configuration)\Newtonsoft.Json.dll
+
+ ..\packages\Mono.Cecil.0.11.4\lib\net40\Mono.Cecil.Rocks.dll
False
-
-
-
- ..\Dependencies\$(Configuration)\UnityEngine.dll
- False
+
+ ..\packages\MonoMod.RuntimeDetour.22.1.29.1\lib\net452\MonoMod.RuntimeDetour.dll
-
- ..\Dependencies\$(Configuration)\UnityEngine.CoreModule.dll
- False
+
+ ..\packages\MonoMod.Utils.22.1.29.1\lib\net452\MonoMod.Utils.dll
+
+
@@ -83,13 +84,22 @@
{da63f59d-4676-4726-afec-bd9d3682733f}
QModManager
+ True
+
call "$(SolutionDir)\Scripts\QModPluginGenerator-post-build.cmd" "$(SolutionDir)" "$(TargetDir)" "$(ConfigurationName)"
+
+
+
+ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
+
+
+
\ No newline at end of file
diff --git a/QModPluginEmulator/app.config b/QModPluginEmulator/app.config
new file mode 100644
index 00000000..2a4bf252
--- /dev/null
+++ b/QModPluginEmulator/app.config
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/QModPluginEmulator/packages.config b/QModPluginEmulator/packages.config
index 09dc1015..9ec11252 100644
--- a/QModPluginEmulator/packages.config
+++ b/QModPluginEmulator/packages.config
@@ -1,4 +1,10 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
index 8d3d5081..81545632 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,6 @@
## QModManager
### Config based patch management for Subnautica and Subnautica: Below Zero
-
-https://www.nexusmods.com/subnautica/mods/201/
-https://www.nexusmods.com/subnauticabelowzero/mods/1/
-
___
**For instructions on how to create a mod, see the [wiki](https://github.com/SubnauticaModding/QModManager/wiki)**.
-
-**The log file for QModManager can be found in the base game folder with the name `qmodmanager_log-Subnautica.txt` or `qmodmanager_log-SubnauticaZero.txt`, depending on the game.**
diff --git a/References.targets b/References.targets
new file mode 100644
index 00000000..f86a827c
--- /dev/null
+++ b/References.targets
@@ -0,0 +1,270 @@
+
+
+
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+
+
+ False
+
+
+
\ No newline at end of file
diff --git a/Scripts/QModPluginGenerator-post-build.cmd b/Scripts/QModPluginGenerator-post-build.cmd
index e9e22b18..6ccf5f41 100644
--- a/Scripts/QModPluginGenerator-post-build.cmd
+++ b/Scripts/QModPluginGenerator-post-build.cmd
@@ -2,26 +2,36 @@ set solutionDir=%~f1
set targetDir=%~f2
set configName=%3
-rmdir "%solutionDir%VortexBuild\%configName%" /q /s
-xcopy "%solutionDir%Dependencies\BepInEx" "%solutionDir%VortexBuild\%configName%" /E /H /I /Q /Y
-xcopy "%solutionDir%Dependencies\%configName%\BepInEx.cfg" "%solutionDir%VortexBuild\%configName%\BepInEx\config\" /I /Q /Y
-mkdir "%solutionDir%VortexBuild\%configName%\QMods"
-xcopy "%solutionDir%Dependencies\cldb.dat" "%solutionDir%VortexBuild\%configName%\BepInEx\patchers\QModManager\" /I /Q /Y
-xcopy "%solutionDir%packages\AssetsTools.NET.2.0.9\lib\net40\AssetsTools.NET.dll" "%solutionDir%VortexBuild\%configName%\BepInEx\patchers\QModManager\" /I /Q /Y
-xcopy "%targetDir%QModManager.exe" "%solutionDir%VortexBuild\%configName%\BepInEx\patchers\QModManager\" /I /Q /Y
-xcopy "%targetDir%QModManager.QModPluginGenerator.dll" "%solutionDir%VortexBuild\%configName%\BepInEx\patchers\QModManager\" /I /Q /Y
-xcopy "%targetDir%QModManager.UnityAudioFixer.dll" "%solutionDir%VortexBuild\%configName%\BepInEx\patchers\QModManager\" /I /Q /Y
-xcopy "%targetDir%QModManager.UnityAudioFixer.xml" "%solutionDir%VortexBuild\%configName%\BepInEx\patchers\QModManager\" /I /Q /Y
-if NOT "%configName%" =="SN.STABLE" (
- xcopy "%solutionDir%Dependencies\Oculus.Newtonsoft.Json.dll" "%solutionDir%VortexBuild\%configName%\BepInEx\patchers\QModManager\" /I /Q /Y
- xcopy "%targetDir%QModManager.OculusNewtonsoftRedirect.dll" "%solutionDir%VortexBuild\%configName%\BepInEx\patchers\QModManager\" /I /Q /Y
+if %configName% == "SN.STABLE" (
+ xcopy "%targetDir%QModManager.QModPluginGenerator.dll" "%solutionDir%BepinexPackages\Subnautica_Packages\QModManager\patchers\QModManager\" /I /Q /Y
+ xcopy "%targetDir%QModInstaller.dll" "%solutionDir%BepinexPackages\Subnautica_Packages\QModManager\plugins\QModManager\" /I /Q /Y
+ xcopy "%targetDir%QModInstaller.xml" "%solutionDir%BepinexPackages\Subnautica_Packages\QModManager\plugins\QModManager\" /I /Q /Y
+ IF EXIST "%solutionDir%BepinexPackages\Subnautica_Packages\QModManager_Subnautica.zip" DEL /F "%solutionDir%BepinexPackages\Subnautica_Packages\QModManager_Subnautica.zip"
+%solutionDir%packages\7-Zip.CommandLine.18.1.0\tools\7za.exe a "%solutionDir%BepinexPackages\Subnautica_Packages\QModManager_Subnautica.zip" "%solutionDir%BepinexPackages\Subnautica_Packages\QModManager\*"
)
-xcopy "%targetDir%QModInstaller.dll" "%solutionDir%VortexBuild\%configName%\BepInEx\plugins\QModManager\" /I /Q /Y
-xcopy "%targetDir%QModInstaller.xml" "%solutionDir%VortexBuild\%configName%\BepInEx\plugins\QModManager\" /I /Q /Y
+if %configName% == "SN.EXP" (
+ xcopy "%targetDir%QModManager.QModPluginGenerator.dll" "%solutionDir%BepinexPackages\Subnautica_Packages\QModManager_Exp\patchers\QModManager\" /I /Q /Y
+ xcopy "%targetDir%QModInstaller.dll" "%solutionDir%BepinexPackages\Subnautica_Packages\QModManager_Exp\plugins\QModManager\" /I /Q /Y
+ xcopy "%targetDir%QModInstaller.xml" "%solutionDir%BepinexPackages\Subnautica_Packages\QModManager_Exp\plugins\QModManager\" /I /Q /Y
+ IF EXIST "%solutionDir%BepinexPackages\Subnautica_Packages\QModManager_Subnautica_Experimental.zip" DEL /F "%solutionDir%BepinexPackages\Subnautica_Packages\QModManager_Subnautica_Experimental.zip"
+%solutionDir%packages\7-Zip.CommandLine.18.1.0\tools\7za.exe a "%solutionDir%BepinexPackages\Subnautica_Packages\QModManager_Subnautica_Experimental.zip" "%solutionDir%BepinexPackages\Subnautica_Packages\QModManager_Exp\*"
+)
+
+if %configName% == "BZ.STABLE" (
+ xcopy "%targetDir%QModManager.QModPluginGenerator.dll" "%solutionDir%BepinexPackages\BelowZero_Packages\QModManager\patchers\QModManager\" /I /Q /Y
+ xcopy "%targetDir%QModInstaller.dll" "%solutionDir%BepinexPackages\BelowZero_Packages\QModManager\plugins\QModManager\" /I /Q /Y
+ xcopy "%targetDir%QModInstaller.xml" "%solutionDir%BepinexPackages\BelowZero_Packages\QModManager\plugins\QModManager\" /I /Q /Y
+ IF EXIST "%solutionDir%BepinexPackages\BelowZero_Packages\QModManager_BelowZero.zip" DEL /F "%solutionDir%BepinexPackages\BelowZero_Packages\QModManager_BelowZero.zip"
+%solutionDir%packages\7-Zip.CommandLine.18.1.0\tools\7za.exe a "%solutionDir%BepinexPackages\BelowZero_Packages\QModManager_BelowZero.zip" "%solutionDir%BepinexPackages\BelowZero_Packages\QModManager\*"
+)
-%solutionDir%packages\7-Zip.CommandLine.18.1.0\tools\7za.exe a "%solutionDir%VortexBuild\QModManager_%configName%.zip" "%solutionDir%VortexBuild\%configName%\*"
+if %configName% == "BZ.EXP" (
+ xcopy "%targetDir%QModManager.QModPluginGenerator.dll" "%solutionDir%BepinexPackages\BelowZero_Packages\QModManager_Exp\patchers\QModManager\" /I /Q /Y
+ xcopy "%targetDir%QModInstaller.dll" "%solutionDir%BepinexPackages\BelowZero_Packages\QModManager_Exp\plugins\QModManager\" /I /Q /Y
+ xcopy "%targetDir%QModInstaller.xml" "%solutionDir%BepinexPackages\BelowZero_Packages\QModManager_Exp\plugins\QModManager\" /I /Q /Y
+ IF EXIST "%solutionDir%BepinexPackages\BelowZero_Packages\QModManager_BelowZero_Experimental.zip" DEL /F "%solutionDir%BepinexPackages\BelowZero_Packages\QModManager_BelowZero_Experimental.zip"
+%solutionDir%packages\7-Zip.CommandLine.18.1.0\tools\7za.exe a "%solutionDir%BepinexPackages\BelowZero_Packages\QModManager_BelowZero_Experimental.zip" "%solutionDir%BepinexPackages\BelowZero_Packages\QModManager_Exp\*"
+)
-echo F|xcopy /S /Q /Y /F "%solutionDir%Installer\%configName%.iss" "%targetDir%\QModsInstallerScript.iss"
-"%solutionDir%Dependencies\Inno\ISCC.exe" "%targetDir%QModsInstallerScript.iss"
\ No newline at end of file
diff --git a/UnityAudioFixer/Properties/AssemblyInfo.cs b/UnityAudioFixer/Properties/AssemblyInfo.cs
index d30c4ba0..2045db79 100644
--- a/UnityAudioFixer/Properties/AssemblyInfo.cs
+++ b/UnityAudioFixer/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("4.3.0")]
-[assembly: AssemblyFileVersion("4.3.0")]
+[assembly: AssemblyVersion("4.4.3")]
+[assembly: AssemblyFileVersion("4.4.3")]
diff --git a/UnityAudioFixer/UnityAudioFixer.cs b/UnityAudioFixer/UnityAudioFixer.cs
index efa53c76..020b991b 100644
--- a/UnityAudioFixer/UnityAudioFixer.cs
+++ b/UnityAudioFixer/UnityAudioFixer.cs
@@ -3,7 +3,6 @@
using BepInEx;
using BepInEx.Logging;
using Mono.Cecil;
-using QModManager.API;
using System;
using System.Collections.Generic;
using System.IO;
@@ -19,18 +18,18 @@ public static class UnityAudioFixer
{
internal static string UnityAudioFixerPath => Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
internal static string DataPath => Directory.GetDirectories(Paths.GameRootPath, "*_Data", SearchOption.TopDirectoryOnly).SingleOrDefault();
- internal static QModGame Game
+ internal static string Game
{
get
{
switch (new DirectoryInfo(DataPath).Name)
{
case "Subnautica_Data":
- return QModGame.Subnautica;
+ return "Subnautica";
case "SubnauticaZero_Data":
- return QModGame.BelowZero;
+ return "BelowZero";
default:
- return QModGame.None;
+ return "";
}
}
}
@@ -82,9 +81,9 @@ public static void DisableUnityAudio()
}
}
- private static void ChangeDisableUnityAudio(string path, bool newValue, QModGame game)
+ private static void ChangeDisableUnityAudio(string path, bool newValue, string game)
{
- if (game != QModGame.Subnautica && game != QModGame.BelowZero)
+ if (game != "Subnautica" && game != "BelowZero")
throw new ArgumentException("Neither Subnautica nor Below Zero detected!");
AssetsManager am = new AssetsManager();
AssetsFileInstance afi = am.LoadAssetsFile(path, false);
diff --git a/UnityAudioFixer/QModManager.UnityAudioFixer.csproj b/UnityAudioFixer/UnityAudioFixer.csproj
similarity index 56%
rename from UnityAudioFixer/QModManager.UnityAudioFixer.csproj
rename to UnityAudioFixer/UnityAudioFixer.csproj
index 004ccd32..2a5ae269 100644
--- a/UnityAudioFixer/QModManager.UnityAudioFixer.csproj
+++ b/UnityAudioFixer/UnityAudioFixer.csproj
@@ -13,6 +13,8 @@
512
true
+
+
..\Build\$(Configuration)\
@@ -55,15 +57,39 @@
prompt
+
+ ..\packages\HarmonyX.2.7.0\lib\net45\0Harmony.dll
+ False
+
..\packages\AssetsTools.NET.2.0.9\lib\net40\AssetsTools.NET.dll
-
- ..\Dependencies\BepInEx\BepInEx\core\BepInEx.dll
+
+ ..\packages\BepInEx.BaseLib.5.4.19\lib\net35\BepInEx.dll
+ False
+
+
+ ..\packages\Mono.Cecil.0.11.4\lib\net40\Mono.Cecil.dll
+ False
+
+
+ ..\packages\Mono.Cecil.0.11.4\lib\net40\Mono.Cecil.Mdb.dll
+ False
+
+
+ ..\packages\Mono.Cecil.0.11.4\lib\net40\Mono.Cecil.Pdb.dll
+ False
+
+
+ ..\packages\Mono.Cecil.0.11.4\lib\net40\Mono.Cecil.Rocks.dll
False
-
- ..\Dependencies\BepInEx\BepInEx\core\Mono.Cecil.dll
+
+ ..\packages\MonoMod.RuntimeDetour.21.12.13.1\lib\net452\MonoMod.RuntimeDetour.dll
+ False
+
+
+ ..\packages\MonoMod.Utils.21.12.13.1\lib\net452\MonoMod.Utils.dll
False
@@ -73,13 +99,15 @@
+
-
-
- {da63f59d-4676-4726-afec-bd9d3682733f}
- QModManager
-
-
+
+
+
+ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
+
+
+
\ No newline at end of file
diff --git a/UnityAudioFixer/app.config b/UnityAudioFixer/app.config
new file mode 100644
index 00000000..2a4bf252
--- /dev/null
+++ b/UnityAudioFixer/app.config
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/UnityAudioFixer/packages.config b/UnityAudioFixer/packages.config
index e70d9e05..d551a0a4 100644
--- a/UnityAudioFixer/packages.config
+++ b/UnityAudioFixer/packages.config
@@ -1,5 +1,10 @@
-
+
+
+
+
+
+
\ No newline at end of file
diff --git a/common.props b/common.props
new file mode 100644
index 00000000..02071706
--- /dev/null
+++ b/common.props
@@ -0,0 +1,29 @@
+
+
+
+ C:\Program Files (x86)\Steam\steamapps\common\SubnauticaBranches\Stable
+ $(GameDir)\Subnautica_Data\Managed
+
+
+ C:\Program Files (x86)\Steam\steamapps\common\SubnauticaZeroBranches\Stable
+ $(GameDir)\SubnauticaZero_Data\Managed
+
+
+
+ C:\Program Files (x86)\Steam\steamapps\common\SubnauticaBranches\Exp
+ $(GameDir)\Subnautica_Data\Managed
+
+
+ C:\Program Files (x86)\Steam\steamapps\common\SubnauticaZeroBranches\Exp
+ $(GameDir)\SubnauticaZero_Data\Managed
+
+
+ $(SolutionDir)Dependencies
+ True
+ true
+ latest
+
+ $(Dependencies);$(Dependencies)\$(Configuration)\Assemblies;$(Dependencies)\$(Configuration);
+
+
+
\ No newline at end of file