aboutsummaryrefslogtreecommitdiff
path: root/misc/nsis/ioquake3-q3ctc.nsi
diff options
context:
space:
mode:
Diffstat (limited to 'misc/nsis/ioquake3-q3ctc.nsi')
-rw-r--r--misc/nsis/ioquake3-q3ctc.nsi140
1 files changed, 140 insertions, 0 deletions
diff --git a/misc/nsis/ioquake3-q3ctc.nsi b/misc/nsis/ioquake3-q3ctc.nsi
new file mode 100644
index 0000000..e4f27e3
--- /dev/null
+++ b/misc/nsis/ioquake3-q3ctc.nsi
@@ -0,0 +1,140 @@
+; sample NSIS description file for a ioquake3 mod installer
+
+!define NAME "Catch the Chicken"
+!define FSNAME "ioquake3-q3ctc"
+!define VERSION "1.4"
+!define RELEASE "1"
+!define MODDIR "q3ctc"
+!define PUBLISHER "The ioquake3 Team"
+!define URL "http://ioquake3.org/"
+; uncomment if the mod works without baseq3
+;!define STANDALONE
+
+!define MUI_ICON "../quake3.ico"
+
+!macro FILES
+ File ctc0.pk3
+ File ctc1.pk3
+ File description.txt
+ File gfx/chicken.jpg
+ File gfx/egggun.jpg
+ File gfx/q3ctc.gif
+ File q3ctc.config
+ File q3ctcteam.config
+ File readme.html
+ File readmeFirst.txt
+!macroend
+
+; no need to edit below in theory
+
+SetCompressor lzma
+
+!define MULTIUSER_MUI
+!define MULTIUSER_EXECUTIONLEVEL Highest
+!define MULTIUSER_INSTALLMODE_COMMANDLINE
+!define MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY "Software\ioquake3"
+!define MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME "Install_Mode"
+!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY "Software\ioquake3"
+!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME "Install_Dir"
+!define MULTIUSER_INSTALLMODE_INSTDIR "ioquake3"
+!include MultiUser.nsh
+
+!include "FileFunc.nsh"
+
+!include "MUI2.nsh"
+
+; The name of the installer
+Name "${NAME}-${VERSION} for ioquake3"
+
+; The file to write
+OutFile "${FSNAME}-${VERSION}-${RELEASE}.x86.exe"
+
+;Interface Settings
+
+!define MUI_ABORTWARNING
+
+;--------------------------------
+;Pages
+
+!insertmacro MULTIUSER_PAGE_INSTALLMODE
+;!insertmacro MUI_PAGE_LICENSE "id_patch_pk3s_Q3A_EULA.txt"
+!define MUI_COMPONENTSPAGE_NODESC
+!insertmacro MUI_PAGE_COMPONENTS
+!insertmacro MUI_PAGE_DIRECTORY
+!insertmacro MUI_PAGE_INSTFILES
+
+!insertmacro MUI_UNPAGE_CONFIRM
+!insertmacro MUI_UNPAGE_INSTFILES
+
+;--------------------------------
+;Languages
+
+!insertmacro MUI_LANGUAGE "English"
+
+;--------------------------------
+
+;--------------------------------
+;Multiuser stuff
+Function .onInit
+ !insertmacro MULTIUSER_INIT
+ ReadRegStr $0 SHCTX "Software\ioquake3" ${MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME}
+ IfErrors 0 oninitdone
+ MessageBox MB_OK "You need to install the ioquake3 engine first"
+ Abort
+ oninitdone:
+FunctionEnd
+
+Function un.onInit
+ !insertmacro MULTIUSER_UNINIT
+FunctionEnd
+
+; The stuff to install
+Section "${NAME}" sec_base
+
+ SectionIn RO
+
+ SetOutPath $INSTDIR
+
+ SetOutPath "$INSTDIR\${MODDIR}"
+
+ !insertmacro FILES
+
+ ; Write the uninstall keys for Windows
+ WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FSNAME}" "DisplayName" "${NAME}"
+ WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FSNAME}" "DisplayVersion" "${VERSION}-${RELEASE}"
+ WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FSNAME}" "Publisher" "${PUBLISHER}"
+ WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FSNAME}" "URLInfoAbout" "${URL}"
+ WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FSNAME}" "UninstallString" '"$INSTDIR\uninstall-${FSNAME}.exe"'
+ WriteRegDWORD SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FSNAME}" "NoModify" 1
+ WriteRegDWORD SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FSNAME}" "NoRepair" 1
+
+ WriteUninstaller "uninstall-${FSNAME}.exe"
+
+!ifdef STANDALONE
+!define ARGS "+set com_standalone 1 "
+!else
+!define ARGS ""
+!endif
+ CreateShortCut "$SMPROGRAMS\ioquake3\${NAME}.lnk" "$INSTDIR\ioquake3.x86.exe" "${ARGS}+set fs_game ${MODDIR}" "$INSTDIR\ioquake3.x86.exe" 0 "" "" "${NAME}"
+
+SectionEnd
+
+Section "Uninstall"
+
+ ; Remove registry keys
+ DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FSNAME}"
+
+ ; Remove files and uninstaller
+ Delete $INSTDIR\${MODDIR}\*
+
+ Delete $INSTDIR\uninstall-${FSNAME}.exe
+
+ ; Remove shortcuts, if any
+ Delete "$SMPROGRAMS\ioquake3\${NAME}.lnk"
+
+ ; Remove directories used
+ RMDir "$SMPROGRAMS\ioquake3"
+ RMDir "$INSTDIR\${MODDIR}"
+ RMDir "$INSTDIR"
+
+SectionEnd