mirror of
https://github.com/ncblakely/GiantsTools
synced 2024-11-23 22:55:37 +01:00
Add launcher update script.
This commit is contained in:
parent
95f608e8f2
commit
7af4abb543
2
.gitignore
vendored
2
.gitignore
vendored
@ -343,4 +343,4 @@ healthchecksdb
|
|||||||
|
|
||||||
#GPatch
|
#GPatch
|
||||||
GPatch/Files
|
GPatch/Files
|
||||||
GPatch/Launcher
|
GPatch/Launcher/*.exe
|
BIN
GPatch/Launcher/GPatch.ico
Normal file
BIN
GPatch/Launcher/GPatch.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.2 KiB |
75
GPatch/Launcher/Launcher.nsi
Normal file
75
GPatch/Launcher/Launcher.nsi
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
SetCompressor /SOLID lzma
|
||||||
|
|
||||||
|
!define PRODUCT_NAME "Giants Launcher"
|
||||||
|
!define PRODUCT_VERSION "1.0.0.2"
|
||||||
|
|
||||||
|
; MUI 1.67 compatible ------
|
||||||
|
!include "MUI.nsh"
|
||||||
|
|
||||||
|
; MUI Settings
|
||||||
|
!define MUI_ABORTWARNING
|
||||||
|
!define MUI_ICON "GPatch.ico"
|
||||||
|
|
||||||
|
; Welcome page
|
||||||
|
;!insertmacro MUI_PAGE_WELCOME
|
||||||
|
; Directory page
|
||||||
|
!insertmacro MUI_PAGE_DIRECTORY
|
||||||
|
; Instfiles page
|
||||||
|
!insertmacro MUI_PAGE_INSTFILES
|
||||||
|
|
||||||
|
!define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
|
||||||
|
!define MUI_LANGDLL_REGISTRY_KEY "Software\PlanetMoon\Giants"
|
||||||
|
!define MUI_LANGDLL_REGISTRY_VALUENAME "SetupLanguage"
|
||||||
|
|
||||||
|
; Language files
|
||||||
|
!insertmacro MUI_LANGUAGE "English"
|
||||||
|
|
||||||
|
; MUI end ------
|
||||||
|
|
||||||
|
Name "Giants Launcher Update"
|
||||||
|
OutFile "LauncherUpdate_1002.exe"
|
||||||
|
InstallDir "C:\Program Files\Giants"
|
||||||
|
InstallDirRegKey HKCU "SOFTWARE\PlanetMoon\Giants" "DestDir"
|
||||||
|
ShowInstDetails hide
|
||||||
|
|
||||||
|
;Request application privileges for Windows Vista
|
||||||
|
RequestExecutionLevel admin
|
||||||
|
|
||||||
|
Section
|
||||||
|
SetDetailsView hide
|
||||||
|
SectionIn RO
|
||||||
|
SetOverwrite on
|
||||||
|
|
||||||
|
|
||||||
|
SetOutPath "$INSTDIR"
|
||||||
|
File /r "Giants.exe"
|
||||||
|
|
||||||
|
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
Function .onInit
|
||||||
|
Processes::KillProcess "Giants.exe"
|
||||||
|
Processes::FindProcess "Giants.exe"
|
||||||
|
${If} $R0 == 1
|
||||||
|
MessageBox MB_OK "Please close the Giants launcher before installing this update."
|
||||||
|
Abort
|
||||||
|
${EndIf}
|
||||||
|
|
||||||
|
ClearErrors
|
||||||
|
FileOpen $R0 "$INSTDIR\Giants.exe" w
|
||||||
|
${If} ${Errors}
|
||||||
|
MessageBox MB_OK "Could not write to Giants.exe. Please ensure the Giants launcher is closed."
|
||||||
|
Abort
|
||||||
|
${Else}
|
||||||
|
FileClose $R0
|
||||||
|
${EndIf}
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
|
Function .onInstFailed
|
||||||
|
MessageBox MB_OK "Update failed. Please visit www.giantswd.org and download the latest version manually."
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
|
Function .onInstSuccess
|
||||||
|
MessageBox MB_OK "Update complete!"
|
||||||
|
Exec "$INSTDIR\Giants.exe"
|
||||||
|
FunctionEnd
|
@ -14,7 +14,7 @@ namespace Giants.Launcher
|
|||||||
private const string REGISTRY_KEY = @"HKEY_CURRENT_USER\Software\PlanetMoon\Giants";
|
private const string REGISTRY_KEY = @"HKEY_CURRENT_USER\Software\PlanetMoon\Giants";
|
||||||
private const int OPTIONS_VERSION = 3;
|
private const int OPTIONS_VERSION = 3;
|
||||||
|
|
||||||
private static Dictionary<string, object> _Settings = new Dictionary<string, object>();
|
private static readonly Dictionary<string, object> _Settings = new Dictionary<string, object>();
|
||||||
|
|
||||||
// List of renderers compatible with the user's system.
|
// List of renderers compatible with the user's system.
|
||||||
static public List<RendererInterop.Capabilities> CompatibleRenderers;
|
static public List<RendererInterop.Capabilities> CompatibleRenderers;
|
||||||
|
@ -1,25 +1,20 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Data;
|
|
||||||
using System.Drawing;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Windows.Forms;
|
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
namespace Giants.Launcher
|
namespace Giants.Launcher
|
||||||
{
|
{
|
||||||
public partial class OptionsForm : Form
|
public partial class OptionsForm : Form
|
||||||
{
|
{
|
||||||
string _gamePath = null;
|
private readonly string gamePath = null;
|
||||||
|
|
||||||
public OptionsForm(string title, string gamePath)
|
public OptionsForm(string title, string gamePath)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
this.Text = title;
|
this.Text = title;
|
||||||
_gamePath = gamePath;
|
this.gamePath = gamePath;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OptionsForm_Load(object sender, EventArgs e)
|
private void OptionsForm_Load(object sender, EventArgs e)
|
||||||
@ -232,12 +227,12 @@ namespace Giants.Launcher
|
|||||||
private void btnCancel_Click(object sender, EventArgs e)
|
private void btnCancel_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
this.Close();
|
this.Close();
|
||||||
GameSettings.Load(_gamePath);
|
GameSettings.Load(gamePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void btnResetDefaults_Click(object sender, EventArgs e)
|
private void btnResetDefaults_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
GameSettings.SetDefaults(_gamePath);
|
GameSettings.SetDefaults(gamePath);
|
||||||
SetOptions();
|
SetOptions();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -39,28 +39,28 @@ namespace Giants.Launcher
|
|||||||
|
|
||||||
public class Updater
|
public class Updater
|
||||||
{
|
{
|
||||||
Uri _updateUri;
|
private readonly Uri updateUri;
|
||||||
Version _appVersion;
|
private readonly Version appVersion;
|
||||||
AsyncCompletedEventHandler _updateCompletedCallback;
|
private AsyncCompletedEventHandler updateCompletedCallback;
|
||||||
DownloadProgressChangedEventHandler _updateProgressCallback;
|
private DownloadProgressChangedEventHandler updateProgressCallback;
|
||||||
|
|
||||||
public Updater(Uri updateUri, Version appVersion)
|
public Updater(Uri updateUri, Version appVersion)
|
||||||
{
|
{
|
||||||
_updateUri = updateUri;
|
this.updateUri = updateUri;
|
||||||
_appVersion = appVersion;
|
this.appVersion = appVersion;
|
||||||
}
|
}
|
||||||
public void DownloadUpdateInfo(AsyncCompletedEventHandler downloadCompleteCallback, DownloadProgressChangedEventHandler downloadProgressCallback)
|
public void DownloadUpdateInfo(AsyncCompletedEventHandler downloadCompleteCallback, DownloadProgressChangedEventHandler downloadProgressCallback)
|
||||||
{
|
{
|
||||||
WebClient client = new WebClient();
|
WebClient client = new WebClient();
|
||||||
|
|
||||||
// Keep track of our progress callbacks
|
// Keep track of our progress callbacks
|
||||||
_updateCompletedCallback = downloadCompleteCallback;
|
updateCompletedCallback = downloadCompleteCallback;
|
||||||
_updateProgressCallback = downloadProgressCallback;
|
updateProgressCallback = downloadProgressCallback;
|
||||||
|
|
||||||
// Download update info XML
|
// Download update info XML
|
||||||
client.Proxy = null;
|
client.Proxy = null;
|
||||||
client.DownloadDataCompleted += new DownloadDataCompletedEventHandler(DownloadDataCallback);
|
client.DownloadDataCompleted += new DownloadDataCompletedEventHandler(DownloadDataCallback);
|
||||||
client.DownloadDataAsync(_updateUri);
|
client.DownloadDataAsync(updateUri);
|
||||||
}
|
}
|
||||||
|
|
||||||
private int GetHttpFileSize(Uri uri)
|
private int GetHttpFileSize(Uri uri)
|
||||||
@ -124,8 +124,8 @@ namespace Giants.Launcher
|
|||||||
Proxy = null
|
Proxy = null
|
||||||
};
|
};
|
||||||
client.DownloadFileAsync(info.DownloadUri, path, info);
|
client.DownloadFileAsync(info.DownloadUri, path, info);
|
||||||
client.DownloadFileCompleted += _updateCompletedCallback;
|
client.DownloadFileCompleted += updateCompletedCallback;
|
||||||
client.DownloadProgressChanged += _updateProgressCallback;
|
client.DownloadProgressChanged += updateProgressCallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void StartLauncherUpdate(XElement root)
|
private void StartLauncherUpdate(XElement root)
|
||||||
@ -165,8 +165,8 @@ namespace Giants.Launcher
|
|||||||
Proxy = null
|
Proxy = null
|
||||||
};
|
};
|
||||||
client.DownloadFileAsync(info.DownloadUri, path, info);
|
client.DownloadFileAsync(info.DownloadUri, path, info);
|
||||||
client.DownloadFileCompleted += _updateCompletedCallback;
|
client.DownloadFileCompleted += updateCompletedCallback;
|
||||||
client.DownloadProgressChanged += _updateProgressCallback;
|
client.DownloadProgressChanged += updateProgressCallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DownloadDataCallback(Object sender, DownloadDataCompletedEventArgs e)
|
private void DownloadDataCallback(Object sender, DownloadDataCompletedEventArgs e)
|
||||||
@ -189,8 +189,8 @@ namespace Giants.Launcher
|
|||||||
StartLauncherUpdate(root);
|
StartLauncherUpdate(root);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (gameVersion > _appVersion)
|
else if (gameVersion > appVersion)
|
||||||
StartGameUpdate(root, _appVersion);
|
StartGameUpdate(root, appVersion);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user