Rev 4 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
!include "MUI2.nsh"!include "FileFunc.nsh"!define PRODUCT_NAME "Rick Dangerous"!define PUBLISHER "Pierre-Marie Baty"!define PUBLISHER_WEBSITE "http://www.pmbaty.com/rick/"!define INSTALLER_SRC "Z:\Documents\Mes projets\Rick Dangerous"Name "${PRODUCT_NAME}"BrandingText "${PRODUCT_NAME} by ${PUBLISHER} - ${PUBLISHER_WEBSITE}"SetCompressor lzmaRequestExecutionLevel userAllowRootDirInstall trueInstallDir "$LOCALAPPDATA\${PRODUCT_NAME}"!define MUI_ICON "${INSTALLER_SRC}\installer\installer.ico"!define MUI_HEADERIMAGE!define MUI_HEADERIMAGE_BITMAP "${INSTALLER_SRC}\installer\installer.bmp"!define MUI_ABORTWARNING!insertmacro MUI_PAGE_LICENSE "${INSTALLER_SRC}\installer\License.txt"!insertmacro MUI_PAGE_DIRECTORYVar STR_HAYSTACKVar STR_NEEDLEVar STR_CONTAINS_VAR_1Var STR_CONTAINS_VAR_2Var STR_CONTAINS_VAR_3Var STR_CONTAINS_VAR_4Var STR_RETURN_VARFunction StrContainsExch $STR_NEEDLEExch 1Exch $STR_HAYSTACKStrCpy $STR_RETURN_VAR ""StrCpy $STR_CONTAINS_VAR_1 -1StrLen $STR_CONTAINS_VAR_2 $STR_NEEDLEStrLen $STR_CONTAINS_VAR_4 $STR_HAYSTACKloop:IntOp $STR_CONTAINS_VAR_1 $STR_CONTAINS_VAR_1 + 1StrCpy $STR_CONTAINS_VAR_3 $STR_HAYSTACK $STR_CONTAINS_VAR_2 $STR_CONTAINS_VAR_1StrCmp $STR_CONTAINS_VAR_3 $STR_NEEDLE foundStrCmp $STR_CONTAINS_VAR_1 $STR_CONTAINS_VAR_4 doneGoto loopfound:StrCpy $STR_RETURN_VAR $STR_NEEDLEGoto donedone:Pop $STR_NEEDLEExch $STR_RETURN_VARFunctionEnd!macro _StrContainsConstructor OUT NEEDLE HAYSTACKPush `${HAYSTACK}`Push `${NEEDLE}`Call StrContainsPop `${OUT}`!macroend!define StrContains '!insertmacro "_StrContainsConstructor"'Function .onVerifyInstDirPush $R0Push $R1${StrContains} $0 "Program Files" "$INSTDIR"StrCmp $0 "Program Files" pathbadStrCpy $R0 "$INSTDIR"loop:StrLen $R1 "$R0"StrCmp $R1 0 pathbadIfFileExists "$R0" 0 parentLoop${GetFileAttributes} "$R0" "DIRECTORY" $R1StrCmp $R1 0 parentLoop${GetFileAttributes} "$R0" "READONLY" $R1StrCmp $R1 1 pathbadClearErrorsIfFileExists "$R0\.nsis_test_dir" pathgood 0CreateDirectory "$R0\.nsis_test_dir"IfErrors pathbad 0RMDir "$R0\.nsis_test_dir"Goto pathgoodparentLoop:${GetParent} "$R0" "$R0"Goto looppathbad:Abortpathgood:Pop $R1Pop $R0FunctionEnd;!insertmacro MUI_PAGE_COMPONENTS!insertmacro MUI_PAGE_INSTFILESAutoCloseWindow true!insertmacro MUI_UNPAGE_CONFIRM!insertmacro MUI_UNPAGE_INSTFILES!insertmacro MUI_LANGUAGE "English"!insertmacro MUI_LANGUAGE "French"Section ""SetOutPath "$INSTDIR"; deploy our filesFile /r "${INSTALLER_SRC}\sounds"File "${INSTALLER_SRC}\${PRODUCT_NAME}.exe"File "${INSTALLER_SRC}\vc_redist.x86.exe"File "${INSTALLER_SRC}\SDL2.dll"File "${INSTALLER_SRC}\Rick Dangerous Paper Toy.pdf"; create Start menu shortcutsCreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\${PRODUCT_NAME}.exe" "" "" "" "" "" "Start a Rick Dangerous game"CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}"CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\${PRODUCT_NAME}.exe" "" "" "" "" "" "Start a Rick Dangerous game"CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Rick Dangerous Paper Toy.lnk" "$INSTDIR\Rick Dangerous Paper Toy.pdf" "" "" "" "" "" "Build your own Rick Dangerous 3D paper toy!"CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Online Help (incl. how to play).lnk" "http://www.pmbaty.com/rick/" "" "" "" "" "" "Visit the website to learn how to play"; create a proper uninstallerWriteUninstaller $INSTDIR\uninstall.exeWriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "DisplayName" "${PRODUCT_NAME}"WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "DisplayIcon" "$INSTDIR\${PRODUCT_NAME}.exe,0"WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "UninstallString" "$\"$INSTDIR\uninstall.exe$\""WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S"WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "Publisher" "${PUBLISHER}"WriteRegDWORD HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "NoModify" 1WriteRegDWORD HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "NoRepair" 1${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2IntFmt $0 "0x%08X" $0WriteRegDWORD HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "EstimatedSize" "$0"; silently install the Microsoft Visual C++ runtimeExec '"$INSTDIR\vc_redist.x86.exe" /install /quiet /norestart'SectionEndSection "Uninstall"Delete "$DESKTOP\${PRODUCT_NAME}.lnk"RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}"RMDir /r "$INSTDIR"DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"SectionEnd