Merge branch 'master' from Windows
This commit is contained in:
@@ -32,6 +32,7 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
|||||||
// Icon with lowest ID value placed first to ensure application icon
|
// Icon with lowest ID value placed first to ensure application icon
|
||||||
// remains consistent on all systems.
|
// remains consistent on all systems.
|
||||||
IDI_BLADESOFEXILE ICON "../../../rsrc/icons/win/BOE Icon.ico"
|
IDI_BLADESOFEXILE ICON "../../../rsrc/icons/win/BOE Icon.ico"
|
||||||
|
IDI_BOESAVE ICON "../../../rsrc/icons/win/BoE Save.ico"
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -158,6 +158,7 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Image Include="..\..\..\rsrc\icons\win\BOE Icon.ico" />
|
<Image Include="..\..\..\rsrc\icons\win\BOE Icon.ico" />
|
||||||
|
<Image Include="..\..\..\rsrc\icons\win\BOE Save.ico" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
|||||||
@@ -165,5 +165,8 @@
|
|||||||
<Image Include="..\..\..\rsrc\icons\win\BOE Icon.ico">
|
<Image Include="..\..\..\rsrc\icons\win\BOE Icon.ico">
|
||||||
<Filter>Resource Files</Filter>
|
<Filter>Resource Files</Filter>
|
||||||
</Image>
|
</Image>
|
||||||
|
<Image Include="..\..\..\rsrc\icons\win\BOE Save.ico">
|
||||||
|
<Filter>Resource Files</Filter>
|
||||||
|
</Image>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
@@ -39,15 +39,16 @@
|
|||||||
#define IDM_HELP_ABOUT 142
|
#define IDM_HELP_ABOUT 142
|
||||||
#define IDM_HELP_TOWN 143
|
#define IDM_HELP_TOWN 143
|
||||||
#define IDM_OPTIONS_JOURNAL 144
|
#define IDM_OPTIONS_JOURNAL 144
|
||||||
|
#define IDI_BOESAVE 145
|
||||||
|
|
||||||
// Next default values for new objects
|
// Next default values for new objects
|
||||||
//
|
//
|
||||||
#ifdef APSTUDIO_INVOKED
|
#ifdef APSTUDIO_INVOKED
|
||||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||||
#define _APS_NO_MFC 1
|
#define _APS_NO_MFC 1
|
||||||
#define _APS_NEXT_RESOURCE_VALUE 129
|
#define _APS_NEXT_RESOURCE_VALUE 131
|
||||||
#define _APS_NEXT_COMMAND_VALUE 32774
|
#define _APS_NEXT_COMMAND_VALUE 32774
|
||||||
#define _APS_NEXT_CONTROL_VALUE 1000
|
#define _APS_NEXT_CONTROL_VALUE 1000
|
||||||
#define _APS_NEXT_SYMED_VALUE 145
|
#define _APS_NEXT_SYMED_VALUE 146
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
119
src/BoE.vsproj/Installer/fileassoc.nsh
Normal file
119
src/BoE.vsproj/Installer/fileassoc.nsh
Normal file
@@ -0,0 +1,119 @@
|
|||||||
|
; fileassoc.nsh
|
||||||
|
; File association helper macros
|
||||||
|
; Written by Saivert
|
||||||
|
;
|
||||||
|
; Features automatic backup system and UPDATEFILEASSOC macro for
|
||||||
|
; shell change notification.
|
||||||
|
;
|
||||||
|
; |> How to use <|
|
||||||
|
; To associate a file with an application so you can double-click it in explorer, use
|
||||||
|
; the APP_ASSOCIATE macro like this:
|
||||||
|
;
|
||||||
|
; Example:
|
||||||
|
; !insertmacro APP_ASSOCIATE "txt" "myapp.textfile" "Description of txt files" \
|
||||||
|
; "$INSTDIR\myapp.exe,0" "Open with myapp" "$INSTDIR\myapp.exe $\"%1$\""
|
||||||
|
;
|
||||||
|
; Never insert the APP_ASSOCIATE macro multiple times, it is only ment
|
||||||
|
; to associate an application with a single file and using the
|
||||||
|
; the "open" verb as default. To add more verbs (actions) to a file
|
||||||
|
; use the APP_ASSOCIATE_ADDVERB macro.
|
||||||
|
;
|
||||||
|
; Example:
|
||||||
|
; !insertmacro APP_ASSOCIATE_ADDVERB "myapp.textfile" "edit" "Edit with myapp" \
|
||||||
|
; "$INSTDIR\myapp.exe /edit $\"%1$\""
|
||||||
|
;
|
||||||
|
; To have access to more options when registering the file association use the
|
||||||
|
; APP_ASSOCIATE_EX macro. Here you can specify the verb and what verb is to be the
|
||||||
|
; standard action (default verb).
|
||||||
|
;
|
||||||
|
; And finally: To remove the association from the registry use the APP_UNASSOCIATE
|
||||||
|
; macro. Here is another example just to wrap it up:
|
||||||
|
; !insertmacro APP_UNASSOCIATE "txt" "myapp.textfile"
|
||||||
|
;
|
||||||
|
; |> Note <|
|
||||||
|
; When defining your file class string always use the short form of your application title
|
||||||
|
; then a period (dot) and the type of file. This keeps the file class sort of unique.
|
||||||
|
; Examples:
|
||||||
|
; Winamp.Playlist
|
||||||
|
; NSIS.Script
|
||||||
|
; Photoshop.JPEGFile
|
||||||
|
;
|
||||||
|
; |> Tech info <|
|
||||||
|
; The registry key layout for a file association is:
|
||||||
|
; HKEY_CLASSES_ROOT
|
||||||
|
; <applicationID> = <"description">
|
||||||
|
; shell
|
||||||
|
; <verb> = <"menu-item text">
|
||||||
|
; command = <"command string">
|
||||||
|
;
|
||||||
|
|
||||||
|
!macro APP_ASSOCIATE EXT FILECLASS DESCRIPTION ICON COMMANDTEXT COMMAND
|
||||||
|
; Backup the previously associated file class
|
||||||
|
ReadRegStr $R0 HKCR ".${EXT}" ""
|
||||||
|
WriteRegStr HKCR ".${EXT}" "${FILECLASS}_backup" "$R0"
|
||||||
|
|
||||||
|
WriteRegStr HKCR ".${EXT}" "" "${FILECLASS}"
|
||||||
|
|
||||||
|
WriteRegStr HKCR "${FILECLASS}" "" `${DESCRIPTION}`
|
||||||
|
WriteRegStr HKCR "${FILECLASS}\DefaultIcon" "" `${ICON}`
|
||||||
|
WriteRegStr HKCR "${FILECLASS}\shell" "" "open"
|
||||||
|
WriteRegStr HKCR "${FILECLASS}\shell\open" "" `${COMMANDTEXT}`
|
||||||
|
WriteRegStr HKCR "${FILECLASS}\shell\open\command" "" `${COMMAND}`
|
||||||
|
!macroend
|
||||||
|
|
||||||
|
!macro APP_ASSOCIATE_EX EXT FILECLASS DESCRIPTION ICON VERB DEFAULTVERB SHELLNEW COMMANDTEXT COMMAND
|
||||||
|
; Backup the previously associated file class
|
||||||
|
ReadRegStr $R0 HKCR ".${EXT}" ""
|
||||||
|
WriteRegStr HKCR ".${EXT}" "${FILECLASS}_backup" "$R0"
|
||||||
|
|
||||||
|
WriteRegStr HKCR ".${EXT}" "" "${FILECLASS}"
|
||||||
|
StrCmp "${SHELLNEW}" "0" +2
|
||||||
|
WriteRegStr HKCR ".${EXT}\ShellNew" "NullFile" ""
|
||||||
|
|
||||||
|
WriteRegStr HKCR "${FILECLASS}" "" `${DESCRIPTION}`
|
||||||
|
WriteRegStr HKCR "${FILECLASS}\DefaultIcon" "" `${ICON}`
|
||||||
|
WriteRegStr HKCR "${FILECLASS}\shell" "" `${DEFAULTVERB}`
|
||||||
|
WriteRegStr HKCR "${FILECLASS}\shell\${VERB}" "" `${COMMANDTEXT}`
|
||||||
|
WriteRegStr HKCR "${FILECLASS}\shell\${VERB}\command" "" `${COMMAND}`
|
||||||
|
!macroend
|
||||||
|
|
||||||
|
!macro APP_ASSOCIATE_ADDVERB FILECLASS VERB COMMANDTEXT COMMAND
|
||||||
|
WriteRegStr HKCR "${FILECLASS}\shell\${VERB}" "" `${COMMANDTEXT}`
|
||||||
|
WriteRegStr HKCR "${FILECLASS}\shell\${VERB}\command" "" `${COMMAND}`
|
||||||
|
!macroend
|
||||||
|
|
||||||
|
!macro APP_ASSOCIATE_REMOVEVERB FILECLASS VERB
|
||||||
|
DeleteRegKey HKCR `${FILECLASS}\shell\${VERB}`
|
||||||
|
!macroend
|
||||||
|
|
||||||
|
|
||||||
|
!macro APP_UNASSOCIATE EXT FILECLASS
|
||||||
|
; Backup the previously associated file class
|
||||||
|
ReadRegStr $R0 HKCR ".${EXT}" `${FILECLASS}_backup`
|
||||||
|
WriteRegStr HKCR ".${EXT}" "" "$R0"
|
||||||
|
|
||||||
|
DeleteRegKey HKCR `${FILECLASS}`
|
||||||
|
!macroend
|
||||||
|
|
||||||
|
!macro APP_ASSOCIATE_GETFILECLASS OUTPUT EXT
|
||||||
|
ReadRegStr ${OUTPUT} HKCR ".${EXT}" ""
|
||||||
|
!macroend
|
||||||
|
|
||||||
|
|
||||||
|
; !defines for use with SHChangeNotify
|
||||||
|
!ifdef SHCNE_ASSOCCHANGED
|
||||||
|
!undef SHCNE_ASSOCCHANGED
|
||||||
|
!endif
|
||||||
|
!define SHCNE_ASSOCCHANGED 0x08000000
|
||||||
|
!ifdef SHCNF_FLUSH
|
||||||
|
!undef SHCNF_FLUSH
|
||||||
|
!endif
|
||||||
|
!define SHCNF_FLUSH 0x1000
|
||||||
|
|
||||||
|
!macro UPDATEFILEASSOC
|
||||||
|
; Using the system.dll plugin to call the SHChangeNotify Win32 API function so we
|
||||||
|
; can update the shell.
|
||||||
|
System::Call "shell32::SHChangeNotify(i,i,i,i) (${SHCNE_ASSOCCHANGED}, ${SHCNF_FLUSH}, 0, 0)"
|
||||||
|
!macroend
|
||||||
|
|
||||||
|
;EOF
|
||||||
@@ -10,6 +10,9 @@ InstallDir "$PROGRAMFILES\Blades of Exile"
|
|||||||
InstallDirRegKey HKLM "Software\${APPNAME}" ""
|
InstallDirRegKey HKLM "Software\${APPNAME}" ""
|
||||||
OutFile "Release\Install-OBoE.exe"
|
OutFile "Release\Install-OBoE.exe"
|
||||||
|
|
||||||
|
; File association helpers
|
||||||
|
!include "fileassoc.nsh"
|
||||||
|
|
||||||
; Modern interface settings
|
; Modern interface settings
|
||||||
!include "MUI.nsh"
|
!include "MUI.nsh"
|
||||||
|
|
||||||
@@ -69,6 +72,7 @@ Section "Blades of Exile" Section1
|
|||||||
File "..\Release\Blades of Exile Scenarios\ZAKHAZI.BMP"
|
File "..\Release\Blades of Exile Scenarios\ZAKHAZI.BMP"
|
||||||
File "..\Release\Blades of Exile Scenarios\zakhazi.exs"
|
File "..\Release\Blades of Exile Scenarios\zakhazi.exs"
|
||||||
!include data.nsi
|
!include data.nsi
|
||||||
|
SetShellVarContext all
|
||||||
CreateShortCut "$DESKTOP\Blades of Exile.lnk" "$INSTDIR\Blades of Exile.exe"
|
CreateShortCut "$DESKTOP\Blades of Exile.lnk" "$INSTDIR\Blades of Exile.exe"
|
||||||
CreateDirectory "$SMPROGRAMS\Blades of Exile"
|
CreateDirectory "$SMPROGRAMS\Blades of Exile"
|
||||||
CreateShortCut "$SMPROGRAMS\Blades of Exile\Blades of Exile.lnk" "$INSTDIR\Blades of Exile.exe"
|
CreateShortCut "$SMPROGRAMS\Blades of Exile\Blades of Exile.lnk" "$INSTDIR\Blades of Exile.exe"
|
||||||
@@ -83,6 +87,7 @@ Section "Character Editor" Section2
|
|||||||
; Set Section Files and Shortcuts
|
; Set Section Files and Shortcuts
|
||||||
SetOutPath "$INSTDIR\"
|
SetOutPath "$INSTDIR\"
|
||||||
File "..\Release\Char Editor.exe"
|
File "..\Release\Char Editor.exe"
|
||||||
|
SetShellVarContext all
|
||||||
CreateShortCut "$SMPROGRAMS\Blades of Exile\Character Editor.lnk" "$INSTDIR\Char Editor.exe"
|
CreateShortCut "$SMPROGRAMS\Blades of Exile\Character Editor.lnk" "$INSTDIR\Char Editor.exe"
|
||||||
|
|
||||||
SectionEnd
|
SectionEnd
|
||||||
@@ -97,6 +102,7 @@ Section "Scenario Editor" Section3
|
|||||||
File "..\Release\Scen Editor.exe"
|
File "..\Release\Scen Editor.exe"
|
||||||
SetOutPath "$INSTDIR\Scenario Editor\Blades of Exile Base\"
|
SetOutPath "$INSTDIR\Scenario Editor\Blades of Exile Base\"
|
||||||
File "..\Release\Scenario Editor\Blades of Exile Base\bladbase.exs"
|
File "..\Release\Scenario Editor\Blades of Exile Base\bladbase.exs"
|
||||||
|
SetShellVarContext all
|
||||||
CreateShortCut "$SMPROGRAMS\Blades of Exile\Scenario Editor.lnk" "$INSTDIR\Scen Editor.exe"
|
CreateShortCut "$SMPROGRAMS\Blades of Exile\Scenario Editor.lnk" "$INSTDIR\Scen Editor.exe"
|
||||||
|
|
||||||
SectionEnd
|
SectionEnd
|
||||||
@@ -107,6 +113,20 @@ Section -FinishSection
|
|||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "DisplayName" "${APPNAME}"
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "DisplayName" "${APPNAME}"
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "UninstallString" "$INSTDIR\uninstall.exe"
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "UninstallString" "$INSTDIR\uninstall.exe"
|
||||||
WriteUninstaller "$INSTDIR\uninstall.exe"
|
WriteUninstaller "$INSTDIR\uninstall.exe"
|
||||||
|
|
||||||
|
!insertmacro APP_ASSOCIATE "exg" "BladesofExile.SaveGame" "Blades of Exile saved game" "$INSTDIR\Blades of Exile.exe,1" "" '$INSTDIR\myapp.exe "%1"'
|
||||||
|
!insertmacro APP_ASSOCIATE_ADDVERB "BladesOfExile.SaveGame" "edit" "" '$INSTDIR\Character Editor.exe "%1"'
|
||||||
|
!insertmacro APP_ASSOCIATE "boes" "BladesofExile.Scenario" "Blades of Exile scenario" "$INSTDIR\Blades of Exile.exe,2" "" '$INSTDIR\Scenario Editor.exe "%1"'
|
||||||
|
!insertmacro UPDATEFILEASSOC
|
||||||
|
|
||||||
|
; WriteRegStr HKCR ".exg" "" "BladesOfExile.SaveGame"
|
||||||
|
; WriteRegStr HKCR ".boes" "" "BladesOfExile.Scenario"
|
||||||
|
|
||||||
|
; WriteRegStr HKCR "MPC.avi" "" "AVI File"
|
||||||
|
; WriteRegStr HKCR "MPC.avi\shell" "" "Open"
|
||||||
|
; WriteRegStr HKCR "MPC.avi\shell\open\command" "" '"$INSTDIR\Blades of Exile.exe" "%1"'
|
||||||
|
; WriteRegStr HKCR "MPC.avi\DefaultIcon" "" "$INSTDIR\Blades of Exile.exe,1"
|
||||||
|
|
||||||
|
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
@@ -123,17 +143,14 @@ Section Uninstall
|
|||||||
;Remove from registry...
|
;Remove from registry...
|
||||||
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}"
|
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}"
|
||||||
DeleteRegKey HKLM "SOFTWARE\${APPNAME}"
|
DeleteRegKey HKLM "SOFTWARE\${APPNAME}"
|
||||||
|
|
||||||
|
!insertmacro APP_UNASSOCIATE "exg" "BladesOfExile.SaveGame"
|
||||||
|
!insertmacro APP_UNASSOCIATE "boes" "BladesOfExile.Scenario"
|
||||||
|
!insertmacro UPDATEFILEASSOC
|
||||||
|
|
||||||
; Delete self
|
; Delete self
|
||||||
Delete "$INSTDIR\uninstall.exe"
|
Delete "$INSTDIR\uninstall.exe"
|
||||||
|
|
||||||
; Delete Shortcuts
|
|
||||||
Delete "$DESKTOP\Blades of Exile.lnk"
|
|
||||||
Delete "$SMPROGRAMS\Blades of Exile\Blades of Exile.lnk"
|
|
||||||
Delete "$SMPROGRAMS\Blades of Exile\Uninstall.lnk"
|
|
||||||
Delete "$SMPROGRAMS\Blades of Exile\Character Editor.lnk"
|
|
||||||
Delete "$SMPROGRAMS\Blades of Exile\Scenario Editor.lnk"
|
|
||||||
|
|
||||||
; Clean up Blades of Exile
|
; Clean up Blades of Exile
|
||||||
Delete "$INSTDIR\Blades of Exile.exe"
|
Delete "$INSTDIR\Blades of Exile.exe"
|
||||||
Delete "$INSTDIR\Blades of Exile Scenarios\busywork.exs"
|
Delete "$INSTDIR\Blades of Exile Scenarios\busywork.exs"
|
||||||
@@ -150,6 +167,7 @@ Section Uninstall
|
|||||||
Delete "$INSTDIR\sfml-system-2.dll"
|
Delete "$INSTDIR\sfml-system-2.dll"
|
||||||
Delete "$INSTDIR\sfml-window-2.dll"
|
Delete "$INSTDIR\sfml-window-2.dll"
|
||||||
Delete "$INSTDIR\zlib1.dll"
|
Delete "$INSTDIR\zlib1.dll"
|
||||||
|
Delete "$INSTDIR\openal.dll"
|
||||||
RMDir /r "$INSTDIR\data"
|
RMDir /r "$INSTDIR\data"
|
||||||
RMDir /r "$INSTDIR\Scenario Editor\graphics.exd"
|
RMDir /r "$INSTDIR\Scenario Editor\graphics.exd"
|
||||||
RMDir /r "$INSTDIR\Scenario Editor\sounds.exa"
|
RMDir /r "$INSTDIR\Scenario Editor\sounds.exa"
|
||||||
@@ -162,12 +180,20 @@ Section Uninstall
|
|||||||
Delete "$INSTDIR\Scenario Editor\Blades of Exile Base\bladbase.exs"
|
Delete "$INSTDIR\Scenario Editor\Blades of Exile Base\bladbase.exs"
|
||||||
|
|
||||||
; Remove remaining directories
|
; Remove remaining directories
|
||||||
RMDir "$SMPROGRAMS\Blades of Exile\"
|
|
||||||
RMDir "$INSTDIR\Blades of Exile Scenarios\"
|
RMDir "$INSTDIR\Blades of Exile Scenarios\"
|
||||||
RMDir "$INSTDIR\Scenario Editor\Blades of Exile Base\"
|
RMDir "$INSTDIR\Scenario Editor\Blades of Exile Base\"
|
||||||
RMDir "$INSTDIR\Scenario Editor\"
|
RMDir "$INSTDIR\Scenario Editor\"
|
||||||
RMDir "$INSTDIR\"
|
RMDir "$INSTDIR\"
|
||||||
|
|
||||||
|
; Delete Shortcuts
|
||||||
|
SetShellVarContext all
|
||||||
|
Delete "$DESKTOP\Blades of Exile.lnk"
|
||||||
|
Delete "$SMPROGRAMS\Blades of Exile\Blades of Exile.lnk"
|
||||||
|
Delete "$SMPROGRAMS\Blades of Exile\Uninstall.lnk"
|
||||||
|
Delete "$SMPROGRAMS\Blades of Exile\Character Editor.lnk"
|
||||||
|
Delete "$SMPROGRAMS\Blades of Exile\Scenario Editor.lnk"
|
||||||
|
RMDir "$SMPROGRAMS\Blades of Exile\"
|
||||||
|
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
; eof
|
; eof
|
||||||
Reference in New Issue
Block a user