I found that my issue with LaunchPad always saying that it needed to be updated was due to the fact that my remote version had a trailing space character and was therefore not equal to the launcherVersion.
The following modification to DoLauncherUpdateCheck() in the source I believe fixes the issue
private void DoLauncherUpdateCheck()
{
try
{
string remoteLauncherVersion = FTP.ReadFTPFile(Config.GetFTPUsername(), Config.GetFTPPassword(), String.Format("{0}/launcher/launcherVersion.txt", Config.GetFTPUrl())).Replace("\0", string.Empty);
string launcherVersion = Config.GetLauncherVersion();
System.Version RemoteVersion = new System.Version(remoteLauncherVersion);
System.Version LauncherVersion = new System.Version(launcherVersion);
progress_label.Text = "Checking launcher version...";
progress_label.Refresh();
if (Config.GetLauncherVersion() == "")
{
//this should never happen - if it did, something is SERIOUSLY wrong
bLauncherVersionCheckFailed = true;
Console.WriteLine("LauncherUpdateCheck: Local version is NULL!");
warning_label.ForeColor = Color.Red;
warning_label.Text = "Could not retrieve local launcher version!";
warning_label.Refresh();
UpdateMainWindow();
}
else if (RemoteVersion.Equals(LauncherVersion))
{
//launcher does not need to be updated
bLauncherNeedsUpdate = false;
if (File.Exists(String.Format(@"{0}\update.bat", Config.GetLocalDir())))
{
File.Delete(String.Format(@"{0}\update.bat", Config.GetLocalDir()));
}
Console.WriteLine("SYSMSG: Launcher version is OK");
UpdateMainWindow();
}
else
{
bLauncherNeedsUpdate = true;
UpdateMainWindow();
}
bLauncherVersionCheckFailed = false;
}
catch (WebException ex)
{
Console.WriteLine(ex.Status);
bLauncherVersionCheckFailed = true;
}
catch (Exception ex)
{
Console.WriteLine(ex.StackTrace);
bLauncherVersionCheckFailed = true;
}
}
But I still need to work out why my game is not downloading. Hopefully be able to put more time into this tomorrow.