Win32 installer changes for v0.3: removed support for upgrades,

doesn't unpack content zips anymore, various cleanups, downloading now
tries next mirror if current doesn't work


git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@1107 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
gewlitys
2003-08-21 20:39:56 +00:00
parent 84405b3e1a
commit 47771de310
10 changed files with 156 additions and 14391 deletions
+15 -59
View File
@@ -6,31 +6,12 @@ alternatively, steps 3 and 4 can be completed on a linux machine (which
will probably work better anyway) will probably work better anyway)
The following additional tools are required: The following additional tools are required:
NSIS 2.0b1 or newer: nsis.sourceforge.net NSIS 2.0b3 or newer: nsis.sourceforge.net
NSIS 'ZipDLL' http://nsis.sourceforge.net/archive/nsisweb.php?page=33
Optionally: Optionally:
NSIS 'unTGZ' http://nsis.sourceforge.net/archive/viewpage.php?pageid=84
upx 1.90 or newer: http://upx.sourceforge.net/#unstable upx 1.90 or newer: http://upx.sourceforge.net/#unstable
resource hacker: http://www.users.on.net/johnson/resourcehacker/ resource hacker: http://www.users.on.net/johnson/resourcehacker/
0) Update the 'upgrade' reference.
NOTE: Only run this step if you are building an official release! If you
are building a development release, or anything not sanctioned by the
UQM developers, you do not need to run this.
The UQM installer can install either a 'full' version of the content dir
or an 'upgrade' from a previous version. The last official version was
0.1 as of Feb 14, 2003. To build the upgrade, it is necessary to determine
what has changed since the previous release. Each release is taggged in
the CVS repository with something like 'version_0_1'. A perl script is
included which can build a list of file versions tagged with a specific tag.
The command is:
./build_contour.pl version_0_1 contour_0_1
(NOTE that this may take a very long time to run, as it is fetching the
CVS log for each file in the content directory)
This will generate a reference contour to compare the current CVS build
against. This only needs to be done once (after each release)
1) Compile uqm.exe. Note that uqmversion.h defines the version of UQM to build, 1) Compile uqm.exe. Note that uqmversion.h defines the version of UQM to build,
and should be set appropriately before compiling and should be set appropriately before compiling
@@ -38,26 +19,19 @@ resource hacker: http://www.users.on.net/johnson/resourcehacker/
For this procedure, you must have no modifications in the content tree. For this procedure, you must have no modifications in the content tree.
having additional files won't cause any issues, but there can't be any having additional files won't cause any issues, but there can't be any
modified files. modified files.
use the 'full' option when building a production release where you plan ./build_archives.pl
to create a full content directory rather than just the upgrade zip
./build_archives.pl contour_0_1 [full]
This will generate .zip files of the content directory (assuming This will generate .zip files of the content directory (assuming
uqmversion.h defines the version as 0.2): uqmversion.h defines the version as 0.3):
uqm-0.1_to_0.2-content.zip uqm-0.3-content.zip
uqm-0.1_to_0.2-voice.zip uqm-0.3-voice.zip
and (if 'full' is specified) uqm-0.3-3domusic.zip
uqm-0.2-content.zip These files should be uploaded to the distribution web page
uqm-0.2-voice.zip
uqm-0.2-3domusic.zip
These files should be uploaded to the disrtibution web page
It will also generate content.nsh which contains a list of files for the It will also generate content.nsh which contains information about the
uninstaller, as well as the information aout the archives, for use in archives, for use in the installer
the installer
3) Modify the install script: 3) Modify the install script:
Edit options.nsi, and change the following variables: Edit options.nsh, and change the following variables:
OLD_VERSION: The earliest version that can be upgraded from
DOWNLOAD_LOCATION: The default directory to download the archives from DOWNLOAD_LOCATION: The default directory to download the archives from
if not using a mirror file. NOTE: This parameter if not using a mirror file. NOTE: This parameter
can be overridden by setting <...>_LOCATION an a can be overridden by setting <...>_LOCATION an a
@@ -88,34 +62,16 @@ resource hacker: http://www.users.on.net/johnson/resourcehacker/
what you are doing! what you are doing!
<...>_LOCATION: The path (http) to retrieve the data-file or mirror- <...>_LOCATION: The path (http) to retrieve the data-file or mirror-
file from (depending on the value of 'USE_MIRROR') file from (depending on the value of 'USE_MIRROR')
<...>_PACKAGE_FILE: The name of the data-file to retreive
<...>_TYPE: The type of archiver used (must be "zip" or "tgz")
<...>_ROOT: The directory to unpack the data-file archive into
There are other parameters which may be tuned as well, although it
should not be necessary (and once again, changing the defaults should
not be done unless you are sure about what you are doing)
FULL_NEEDS_UPGRADE: This parameter is set if a 'full' build requires
both the 'content' archive pak along with the
'upgrade' archive pak. In general, only official
builds wil have this parameter undefined, all other
builds ahould probably leave it as is. NOTE:
the paramter should be either defined or undefined,
it should not have a value
DEFAULT_UPGRADE: this parameter determines whether the installer
defaults to an 'upgrade' or 'full' install. In
general, it is probably better to define this
paramater, since a full install is ~150MB, vs an
upgrade which is ~3MB
USE_UBX: This will compress uqm.exe and the installer with USE_UBX: This will compress uqm.exe and the installer with
ubx. this may break the game and/or installer, and ubx. This may break the game and/or installer, and
is not recomended. is not recomended.
MUI_VERSION: The version of UQM you are building. This parameter MUI_VERSION: The version of UQM you are building. This parameter
is normally auto-defined by readinng uqmversion.h, is normally auto-defined by reading uqmversion.h,
but can be manually overridden if needed. but can be manually overridden if needed.
4) run NSIS to build the installer: 4) Run NSIS to build the installer:
makensis uqm.nsi makensis uqm.nsi
the installer expects all the dlls to be in the same directory as uqm.exe The installer expects all the dlls to be in the same directory as uqm.exe
5) you should be done. 5) You should be done.
+4 -6
View File
@@ -1,8 +1,6 @@
Things stiill needing doing of rthe installer: Things still needing doing of the installer:
- untgz.dll doesn't support error checking yet - Check md5 sums on downloaded files
- check md5 sums on downloaded files
- Read previous install directory from registry - Read previous install directory from registry
- Allow users to choose mirror, rather than randomly choosing one - Allow users to choose mirror
- Only read mirror file once, if only 1 is used. - Only read mirror file once, if only 1 is used.
- use uqm icon for the installer - Use uqm icon for the installer
+34 -241
View File
@@ -1,26 +1,12 @@
#! /usr/bin/perl -w #! /usr/bin/perl -w
use File::Find; use File::Find;
use Cwd; use Cwd;
# set use_zip = 1 for .zip, = 0 for .tgz
$use_zip = 1;
$make_archive = 1;
$contour_file = shift @ARGV;
$tag = shift @ARGV;
$do_full = shift @ARGV;
if (! defined ($contour_file) || scalar(@ARGV)) {
print STDERR "$0 contour_file [full]\n";
# print STDERR " or\n";
# print STDERR "$0 cvs_log_file cvs_tag [full]\n";
exit 1;
}
# fetch the version from uqmversion.h # fetch the version from uqmversion.h
if (-f "../../src/uqmversion.h") { if (-f "../../src/uqmversion.h") {
open (FH, "../../src/uqmversion.h") or die "couldn't read uqmversion.h\n"; open (FH, "../../src/uqmversion.h") or die "couldn't read uqmversion.h\n";
while (<FH>) { while (<FH>) {
if (/^\s*\#define\s+UQM_MAJOR_VERSION\s+(\d+)/) { if (/^\s*#define\s+UQM_MAJOR_VERSION\s+(\d+)/) {
$major = $1; $major = $1;
} }
if (/^\s*#define\s+UQM_MINOR_VERSION\s+(\d+)/) { if (/^\s*#define\s+UQM_MINOR_VERSION\s+(\d+)/) {
@@ -39,159 +25,29 @@ if (-f "../../src/uqmversion.h") {
die "couldn't find uqmversion.h\n"; die "couldn't find uqmversion.h\n";
} }
if (! defined ($do_full)) {
if (defined ($tag) && $tag eq "full") {
$do_full = $tag;
$tag = "";
} else {
$do_full = "";
if (!defined ($tag)) {
$tag = "";
}
}
}
@dirs = (); @dirs = ();
@changed = ();
@all = (); @all = ();
$ignore = 0;
%alldata = ();
$cwd = cwd(); $cwd = cwd();
if ($use_zip) { chdir "../../content";
$ext = "zip"; find (\&find_callback, ".");
} else {
$ext = "tgz";
}
if ($tag) { $content_zip = "uqm-${version}-content.zip";
print STDERR "reading from a cvs log is not suppported\n"; $voice_zip = "uqm-${version}-voice.zip";
exit 1; $threedo_zip = "uqm-${version}-3domusic.zip";
if ($tag =~ /(\d+[._]\d+\S*)$/) {
$oldver = $1;
} else {
$oldver = "";
}
# read in a cvs log for the content dir.
# log is made by doing:
# cd content
# cvs log -h > logfile
open FH, $contour_file || die "Couldn't read cvs-log '$contour_file'\n";
print "Reading revisions from cvs-log file\n";
while (<FH>) {
chomp;
if (/RCS file: (.+)\s*$/) {
if ($1 =~ /\/Attic\//) {
$ignore = 1;
} else {
$ignore = 0;
}
}
if (/Working file: (.+)\s*$/) {
$file = $1;
$alldata{"$file,head"} = "";
$alldata{"$file,prev"} = "";
}
if (/head: (\S+)/) {
$head = $1;
$alldata{"$file,head"} = $head;
if (! $ignore) {
push @changed, $file;
push @all, $file;
}
}
if (/\s+${tag}: (\S+)/) {
$alldata{"$file,prev"} = $1;
if (!$ignore && ($head eq $1 || $head eq "1.1" && $1 eq "1.1.1.1")) {
pop @changed;
}
}
}
close FH;
chdir "../../content";
} else {
print "Reading revisions from local cvs repository\n";
open FH, $contour_file || die "Couldn't read contour '$contour_file'\n";
chdir "../../content";
find (\&find_callback, ".");
# use a contour file and the 'CVS' directories to determine the file list
$first = 1;
$oldver = "";
while (<FH>) {
chomp;
if ($first) {
$oldver = $_;
$first = 0;
next;
}
if (/^(\S+) : (\S+)/) {
if (defined ($alldata{"$1,prev"})) {
if ($alldata{"$1,head"} ne $2 && $alldata{"$1,head"} ne "1.1" &&
$alldata{"$1,head"} ne "1.1.1.1") {
push @changed, $1;
}
$alldata{"$1,prev"} = $2;
} else {
print "Couldn't find '$1'. OK if removed since $oldver\n";
}
}
}
close FH;
foreach $change (@all) {
if ($alldata{"$change,prev"} eq "") {
push @changed, $change;
}
}
}
$change_zip = "uqm-${oldver}_to_${version}-content.$ext";
$change_ogg_zip = "uqm-${oldver}_to_${version}-voice.$ext";
$content_zip = "uqm-${version}-content.$ext";
$voice_zip = "uqm-${version}-voice.$ext";
$threedo_zip = "uqm-${version}-3domusic.$ext";
# build the upgrade .zip file
$last_dir = "";
$change_size = 0;
$change_ogg_size = 0;
$num_change = 0;
$num_change_ogg = 0;
open FH1, ">tmpfile" || die "Couldn't create temp file!\n";
open FH2, ">tmpfile1" || die "Couldn't create temp file!\n";
foreach $path (@changed) {
if (-f $path) {
($null,$null,$null,$null,$null,$null,$null,$siz1) = stat $path;
if ($path =~ /comm\/.*\/.*\.ogg$/) {
$change_ogg_size += $siz1;
$num_change_ogg++;
print FH2 "$path\n";
} else {
$change_size += $siz1;
$num_change++;
print FH1 "$path\n";
}
} else {
print "WARNING: '$path' was not found in local repository\n";
}
}
close FH1;
close FH2;
unlink "$cwd/$change_zip";
unlink "$cwd/$change_ogg_zip";
if ($make_archive) {
if ($use_zip) {
`cat tmpfile | zip -r "$cwd/$change_zip" -@`;
`cat tmpfile1 | zip -r "$cwd/$change_ogg_zip" -@` if ($change_ogg_size);
} else {
`tar -T tmpfile -czf "$cwd/$change_zip"`;
`tar -T tmpfile1 -czf "$cwd/$change_ogg_zip"` if ($change_ogg_size);
}
}
open (FH, ">$cwd/content.nsh"); open (FH, ">$cwd/content.nsh");
print FH "!verbose 3\n";
print FH "!macro REMOVE_CONTENT\n"; #print FH "!verbose 3\n";
#print FH "!macro REMOVE_CONTENT\n";
#print FH "Delete \"\$INSTDIR\\content\\packages\\$content_zip\"\n";
#print FH "Delete \"\$INSTDIR\\content\\packages\\$voice_zip\"\n";
#print FH "Delete \"\$INSTDIR\\content\\packages\\$threedo_zip\"\n";
#print FH "!macroend\n";
open FH1, ">tmpfile" || die "Couldn't create temp file!\n"; open FH1, ">tmpfile" || die "Couldn't create temp file!\n";
open FH2, ">tmpfile1" || die "Couldn't create temp file!\n"; open FH2, ">tmpfile1" || die "Couldn't create temp file!\n";
open FH3, ">tmpfile2" || die "Couldn't create temp file!\n"; open FH3, ">tmpfile2" || die "Couldn't create temp file!\n";
$last_dir = "";
$content_size = 0; $content_size = 0;
$voice_size = 0; $voice_size = 0;
$threedo_size = 0; $threedo_size = 0;
@@ -218,7 +74,7 @@ foreach $path (@all) {
print "WARNING: '$path' was not found in local repository\n"; print "WARNING: '$path' was not found in local repository\n";
} }
if ($path =~ /^(.*\/)([^\/]+)$/) { if ($path =~ /^(.*\/)([^\/]+)$/) {
($dir, $file) = ($1, $2); $dir = $1;
@partdir = split /\//, $dir; @partdir = split /\//, $dir;
$newdir = ""; $newdir = "";
foreach $dir (@partdir) { foreach $dir (@partdir) {
@@ -229,42 +85,22 @@ foreach $path (@all) {
} }
} }
} }
# if ($dir ne $last_dir) {
# push @dirs, $dir;
# $last_dir = $dir;
# }
# }
$path =~ s/\//\\/g;
print FH "Delete \"\$INSTDIR\\content\\$path\"\n";
} }
close FH1; close FH1;
close FH2; close FH2;
close FH3; close FH3;
foreach $dir (@dirs) {
$dir =~ s/\/$//; unlink "$cwd/$content_zip";
$dir =~ s/\//\\/g; unlink "$cwd/$voice_zip";
print FH "RMDir \"\$INSTDIR\\content\\$dir\"\n"; unlink "$cwd/$threedo_zip";
} `cat tmpfile | zip -r "$cwd/$content_zip" -@`;
print FH "!macroend\n"; `cat tmpfile1 | zip -r -n .ogg "$cwd/$voice_zip" -@` if($voice_size);
if ($do_full) { `cat tmpfile2 | zip -r -n .ogg "$cwd/$threedo_zip" -@` if($threedo_size);
unlink "$cwd/$content_zip";
unlink "$cwd/$voice_zip";
unlink "$cwd/$threedo_zip";
if ($use_zip) {
`cat tmpfile | zip -r "$cwd/$content_zip" -@`;
`cat tmpfile1 | zip -r "$cwd/$voice_zip" -@` if($voice_size);
`cat tmpfile2 | zip -r "$cwd/$threedo_zip" -@` if($threedo_size);
} else {
`tar -T tmpfile -czf "$cwd/$content_zip"`;
`tar -T tmpfile1 -czf "$cwd/$voice_zip"` if ($voice_size);
`tar -T tmpfile2 -czf "$cwd/$threedo_zip"` if ($threedo_size);
}
}
unlink "tmpfile"; unlink "tmpfile";
unlink "tmpfile1"; unlink "tmpfile1";
unlink "tmpfile2"; unlink "tmpfile2";
$change_size = int(0.5 + $change_size / 1000);
$change_ogg_size = int(0.5 + $change_ogg_size / 1000);
$content_size = int(0.5 + $content_size / 1000); $content_size = int(0.5 + $content_size / 1000);
$voice_size = int(0.5 + $voice_size / 1000); $voice_size = int(0.5 + $voice_size / 1000);
$threedo_size = int(0.5 + $threedo_size / 1000); $threedo_size = int(0.5 + $threedo_size / 1000);
@@ -277,64 +113,21 @@ print FH "\n";
print FH "!define CONTENT_SIZE $content_size\n"; print FH "!define CONTENT_SIZE $content_size\n";
print FH "!define VOICE_SIZE $voice_size\n"; print FH "!define VOICE_SIZE $voice_size\n";
print FH "!define THREEDO_SIZE $threedo_size\n"; print FH "!define THREEDO_SIZE $threedo_size\n";
print FH "!define UPGRADE_SIZE $change_size\n";
print FH "!define VUPGRADE_SIZE $change_ogg_size\n";
print FH "\n"; print FH "\n";
if ($do_full) { print FH "!ifndef CONTENT_PACKAGE_FILE\n";
print FH "!ifndef CONTENT_PACKAGE_FILE\n"; print FH " !define CONTENT_PACKAGE_FILE \"$content_zip\"\n";
print FH " !define CONTENT_PACKAGE_FILE \"$content_zip\"\n";
print FH "!endif\n";
print FH "!ifndef CONTENT_TYPE\n";
print FH " !define CONTENT_TYPE \"$ext\"\n";
print FH "!endif\n";
print FH "!ifndef CONTENT_ROOT\n";
print FH " !define CONTENT_ROOT \"\\content\"\n";
print FH "!endif\n";
print FH "\n";
print FH "!ifndef VOICE_PACKAGE_FILE\n";
print FH " !define VOICE_PACKAGE_FILE \"$voice_zip\"\n";
print FH "!endif\n";
print FH "!ifndef VOICE_TYPE\n";
print FH " !define VOICE_TYPE \"$ext\"\n";
print FH "!endif\n";
print FH "!ifndef VOICE_ROOT\n";
print FH " !define VOICE_ROOT \"\\content\"\n";
print FH "!endif\n";
print FH "\n";
print FH "!ifndef THREEDO_PACKAGE_FILE\n";
print FH " !define THREEDO_PACKAGE_FILE \"$threedo_zip\"\n";
print FH "!endif\n";
print FH "!ifndef THREEDO_TYPE\n";
print FH " !define THREEDO_TYPE \"$ext\"\n";
print FH "!endif\n";
print FH "!ifndef THREEDO_ROOT\n";
print FH " !define THREEDO_ROOT \"\\content\"\n";
print FH "!endif\n";
print FH "\n";
}
print FH "!ifndef UPGRADE_PACKAGE_FILE\n";
print FH " !define UPGRADE_PACKAGE_FILE \"$change_zip\"\n";
print FH "!endif\n";
print FH "!ifndef UPGRADE_TYPE\n";
print FH " !define UPGRADE_TYPE \"$ext\"\n";
print FH "!endif\n";
print FH "!ifndef UPGRADE_ROOT\n";
print FH " !define UPGRADE_ROOT \"\\content\"\n";
print FH "!endif\n"; print FH "!endif\n";
print FH "\n"; print FH "\n";
print FH "!ifndef VUPGRADE_PACKAGE_FILE\n"; print FH "!ifndef VOICE_PACKAGE_FILE\n";
print FH " !define VUPGRADE_PACKAGE_FILE \"$change_ogg_zip\"\n"; print FH " !define VOICE_PACKAGE_FILE \"$voice_zip\"\n";
print FH "!endif\n"; print FH "!endif\n";
print FH "!ifndef VUPGRADE_TYPE\n"; print FH "\n";
print FH " !define VUPGRADE_TYPE \"$ext\"\n"; print FH "!ifndef THREEDO_PACKAGE_FILE\n";
print FH "!endif\n"; print FH " !define THREEDO_PACKAGE_FILE \"$threedo_zip\"\n";
print FH "!ifndef VUPGRADE_ROOT\n";
print FH " !define VUPGRADE_ROOT \"\\content\"\n";
print FH "!endif\n"; print FH "!endif\n";
print FH "\n"; print FH "\n";
close FH; close FH;
print "upgrade : #files: $num_change ($change_size kb)\n";
print "voiceupgrade: #files: $num_change_ogg ($change_ogg_size kb)\n";
print "content : #files: $num_content ($content_size kb)\n"; print "content : #files: $num_content ($content_size kb)\n";
print "voice : #files: $num_voice ($voice_size kb)\n"; print "voice : #files: $num_voice ($voice_size kb)\n";
print "threedo : #files: $num_3do ($threedo_size kb)\n"; print "threedo : #files: $num_3do ($threedo_size kb)\n";
@@ -363,7 +156,7 @@ sub find_callback {
$alldata{"$file1,prev"} = ""; $alldata{"$file1,prev"} = "";
push @all, $file1; push @all, $file1;
} else { } else {
# print "Couldn't parse '$root' @args\n"; # print "Couldn't parse '$root' @args\n";
} }
} }
close FH_find; close FH_find;
-37
View File
@@ -1,37 +0,0 @@
#! /usr/bin/perl -w
if (scalar (@ARGV) != 2) {
print STDERR "$0 cvs_tag output_contour_file\n";
exit 1;
}
$ver = shift @ARGV;
$file = shift @ARGV;
if ($ver =~ /(\d+_\d+\S*)$/) {
$vernum = $1;
$vernum =~ s/_/./g;
} else {
print STDERR "Couldn't parse the cvs-tag for a release version\n";
$vernum = "0.0";
}
open FH1, ">$file" or die "Couldn't write to $file\n";
print FH1 "$vernum\n";
chdir "../../content";
open FH, "cvs log -h|" or die "Couldn't run 'cvs log -h'\n";
$file = "";
while (<FH>) {
chomp;
if (/Working file: (.+)\s*$/) {
$file = $1;
}
if (/head: (\S+)/) {
$head = $1;
}
if (/\s+${ver}:\s+(\S+)/) {
print FH1 "$file : $1\n";
$file = "";
$head = "";
}
}
close FH;
close FH1;
File diff suppressed because it is too large Load Diff
+1 -24
View File
@@ -1,5 +1,5 @@
[Settings] [Settings]
NumFields=8 NumFields=7
; comment this out to hide the back button ; comment this out to hide the back button
BackEnabled=1 BackEnabled=1
@@ -40,26 +40,3 @@ left=0
right=-1 right=-1
top=80 top=80
bottom=90 bottom=90
[Field 6]
Type=CheckBox
State=0
left=0
right=-1
top=90
bottom=100
[Field 7]
Type=DirRequest
left=20
right=-1
top=100
bottom=112
[Field 8]
Type=label
left=20
right=-1
top=112
bottom=160
+23 -127
View File
@@ -4,16 +4,6 @@
SetDetailsPrint textonly SetDetailsPrint textonly
!macroend !macroend
;Function MirrorCleanup
; Pop $R5 ;Get number of mirrors on the stack
; mirror_cleanupstart:
; IntCmp $R5 0 mirror_cleanupcomplete
; Pop $R3
; IntOp $R5 $R5 - "1"
; goto mirror_cleanupstart
; mirror_cleanupcomplete:
;FunctionEnd
;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------
; TrimNewlines ; TrimNewlines
; input, top of stack (i.e. whatever$\r$\n) ; input, top of stack (i.e. whatever$\r$\n)
@@ -41,38 +31,12 @@ Function TrimNewlines
FunctionEnd FunctionEnd
;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------
; TrimBackslashes ; Download
; input, top of stack (i.e. whatever\)
; output, top of stack (replaces, with i.e. whatever)
; modifies no other variables.
;
Function TrimBackslashes
Exch $0
Push $1
Push $2
StrCpy $1 0
loop:
IntOp $1 $1 - 1
StrCpy $2 $0 1 $1
StrCmp $2 "\" loop
IntOp $1 $1 + 1
StrLen $2 $0
IntOp $2 $2 + $1
StrCpy $0 $0 $2
Pop $2
Pop $1
Exch $0
FunctionEnd
;------------------------------------------------------------------------------
; DownloadAndExtract
; $0 = Package to download ; $0 = Package to download
; $1 = Mirror location or Download location ; $1 = Mirror location or Download location
; $2 = Install directory ; $2 = Install directory
; $3 = Use mirror or direct download ; $3 = Use mirror or direct download
; $4 = archive type (either tgz or zip) Function Download
Function DownloadAndExtract
SetDetailsPrint textonly SetDetailsPrint textonly
StrCpy $R9 success StrCpy $R9 success
@@ -82,49 +46,30 @@ Function DownloadAndExtract
ReadIniStr $R0 "$PLUGINSDIR\download.ini" "Field 5" state ReadIniStr $R0 "$PLUGINSDIR\download.ini" "Field 5" state
StrCmp $R0 "1" function_end StrCmp $R0 "1" function_end
; Check if installer should use local package directory and if the target file already exists
StrCpy $R0 ""
ReadIniStr $R0 "$PLUGINSDIR\download.ini" "Field 6" state
StrCmp $R0 "1" try_use_local
IntCmp $3 1 dl_mirror IntCmp $3 1 dl_mirror
StrCpy $R3 "$1/$0" StrCpy $R3 "$1/$0"
StrCpy $R5 0 StrCpy $R5 0
goto download_file goto download_file
try_use_local:
StrCpy $R0 ""
ReadIniStr $R0 "$PLUGINSDIR\download.ini" "Field 7" state
StrCmp $R0 "" use_temp
ClearErrors
CreateDirectory $R0
IfFileExists "$R0\*.*" "" dl_mirror
IfErrors dl_mirror
Push $R0
Call TrimBackslashes
Pop $R0
StrCpy $R0 "$R0\$0"
StrCpy $R2 1
IfFileExists $R0 startextract
dl_mirror: dl_mirror:
!insertmacro Print $(DownloadDownloading) !insertmacro Print $(DownloadDownloading)
!insertmacro Print $(DownloadRetrievingMirrorList) !insertmacro Print $(DownloadRetrievingMirrorList)
; Save variables ; Save variables
Push $0 Push $0
StrCpy $0 ""
; make the call to download ; make the call to download
GetTempFileName $R0 GetTempFileName $R0
nsisdl::download_quiet $1 $R0 ; for a quiet install, use download_quiet nsisdl::download_quiet $1 $R0 ; for a quiet install, use download_quiet
Pop $0
; check if download succeeded ; check if download succeeded
StrCmp $0 "success" mirrorsuccessful StrCmp $0 "success" mirrorsuccessful
StrCmp $0 "cancel" mirrorcancelled StrCmp $0 "cancel" mirrorcancelled
; we failed ; we failed
!insertmacro Print $(DownloadDownloadFailed) !insertmacro Print $(DownloadDownloadFailed)
Delete $R0 ;Delete $R0
StrCpy $R1 $0 StrCpy $R1 $0
Pop $0 Pop $0
MessageBox MB_OK|MB_ICONEXCLAMATION $(DownloadMirrorDownloadFailedBox) MessageBox MB_OK|MB_ICONEXCLAMATION $(DownloadMirrorDownloadFailedBox)
@@ -141,7 +86,9 @@ dl_mirror:
mirrorsuccessful: mirrorsuccessful:
!insertmacro Print $(DownloadRetrievingMirrorListSuccessful) !insertmacro Print $(DownloadRetrievingMirrorListSuccessful)
Pop $0 Pop $0
StrCpy $R8 "1"
mirrorretry:
;Now parse the mirror list ;Now parse the mirror list
FileOpen $R1 $R0 a FileOpen $R1 $R0 a
@@ -150,13 +97,7 @@ dl_mirror:
; Check the the first line is a number ; Check the the first line is a number
IntCmp $R5 0 mirror_broken 0 0 IntCmp $R5 0 mirror_broken 0 0
;Chose one random mirror StrCpy $R6 $R8
;Calculate a random number based on the filetime of the downloaded mirror list
GetFileTime $R0 $R7 $R6
IntOp $R6 $R6 & "16777215" ;Just keep the last few bity, also ensure that $R6 is positive
IntOp $R6 $R6 / "100" ;Skip last 2 digits, they aren't really random due to low timer resolution
IntOp $R6 $R6 % $R5
IntOp $R6 $R6 + "1" ; $R6 now contains the index of the mirror to use first
StrCpy $R7 $R5 StrCpy $R7 $R5
readmirror: readmirror:
FileRead $R1 $R4 FileRead $R1 $R4
@@ -188,7 +129,7 @@ dl_mirror:
FileClose $R1 FileClose $R1
;Done parsing ;Done parsing
Delete $R0 ;Delete $R0
;Now download the file ;Now download the file
download_file: download_file:
@@ -197,32 +138,12 @@ dl_mirror:
; make the call to download ; make the call to download
; Check if installer should use local package directory StrCpy $R7 $R0
StrCpy $R0 $2\$0
StrCpy $R0 ""
ReadIniStr $R0 "$PLUGINSDIR\download.ini" "Field 6" state
StrCmp $R0 "1" use_local
use_temp:
StrCpy $R2 0
GetTempFileName $R0
goto dl_start
use_local:
StrCpy $R0 ""
ReadIniStr $R0 "$PLUGINSDIR\download.ini" "Field 7" state
StrCmp $R0 "" use_temp
ClearErrors
CreateDirectory $R0
IfFileExists "$R0\*.*" use_local2 use_temp
use_local2:
IfErrors use_temp
Push $R0
Call TrimBackslashes
Pop $R0
StrCpy $R0 "$R0\$0"
StrCpy $R2 1
dl_start:
nsisdl::download $R3 $R0 ; for a quiet install, use download_quiet nsisdl::download $R3 $R0 ; for a quiet install, use download_quiet
Pop $0
; check if download succeeded ; check if download succeeded
StrCmp $0 "success" dlsuccessful StrCmp $0 "success" dlsuccessful
StrCmp $0 "cancel" dlcancelled StrCmp $0 "cancel" dlcancelled
@@ -230,58 +151,33 @@ dl_mirror:
; we failed ; we failed
!insertmacro Print $(DownloadDownloadFailed) !insertmacro Print $(DownloadDownloadFailed)
Delete $R0 Delete $R0
StrCpy $R1 $0 StrCpy $R0 $R7
StrCpy $R6 $0
Pop $0 Pop $0
IntOp $R8 $R8 + "1"
; try next mirror if possible
IntCmp $R8 $R5 mirrorretry mirrorretry 0
Delete $R7
StrCpy $R1 $R6
MessageBox MB_OK|MB_ICONEXCLAMATION $(DownloadDownloadFailedBox) MessageBox MB_OK|MB_ICONEXCLAMATION $(DownloadDownloadFailedBox)
StrCpy $R9 failure StrCpy $R9 failure
;call MirrorCleanup
goto function_end goto function_end
dlcancelled: dlcancelled:
!insertmacro Print $(DownloadDownloadCancelled) !insertmacro Print $(DownloadDownloadCancelled)
Delete $R0 Delete $R0
Delete $R7
Pop $0 Pop $0
;call MirrorCleanup
StrCpy $R9 cancel StrCpy $R9 cancel
goto function_end goto function_end
dlsuccessful: dlsuccessful:
!insertmacro Print $(DownloadDownloadSuccessful) !insertmacro Print $(DownloadDownloadSuccessful)
Delete $R7
Pop $0 Pop $0
;call MirrorCleanup
startextract:
;Now extract the file
; make the call to ExtractAll
Push $R0
Push $2
StrCmp $4 "tgz" do_tgz_extract
ZipDll::extractall $R0 $2
goto check_extract
do_tgz_extract:
untgz::extract -d $2 $R0
StrCpy $R1 "success"
Push $R1
check_extract:
; check if extract succeeded
Pop $R1
StrCmp $R1 "success" extract_end
MessageBox MB_OK|MB_ICONEXCLAMATION $(DownloadExtractFailedBox)
StrCpy $R9 failure
extract_end:
StrCmp $R2 1 no_delete
Delete $R0
no_delete:
function_end: function_end:
Push $R9 Push $R9
SetDetailsPrint both SetDetailsPrint both
+5 -47
View File
@@ -1,59 +1,17 @@
!define OLD_VERSION "0.1" ; The earliest version that we can upgrade from !define DOWNLOAD_LOCATION "http://sc2.sourceforge.net/install_files/0.3"
!define DOWNLOAD_LOCATION "http://sc2.sf.net/install_files/0.2" !define MIRROR_LOCATION "http://sc2.sourceforge.net/install_files/0.3/mirrors.txt"
!define MIRROR_LOCATION "http://sc2.sf.net/install_files/0.2/mirrors.txt"
!define CONTENT_USE_MIRROR 1 ; Define if the download should use a mirror !define CONTENT_USE_MIRROR 1 ; Define if the download should use a mirror
!define VOICE_USE_MIRROR 1 ; Define if the download should use a mirror !define VOICE_USE_MIRROR 1 ; Define if the download should use a mirror
!define THREEDO_USE_MIRROR 1 ; Define if the download should use a mirror !define THREEDO_USE_MIRROR 1 ; Define if the download should use a mirror
!define UPGRADE_USE_MIRROR 1 ; Define if the download should use a mirror
!define VUPGRADE_USE_MIRROR 1 ; Define if the download should use a mirror
; ----------------------------- ; -----------------------------
; Only define these if you need fine control over where the archives are stored ; Only define these if you need fine control over where the archives are stored
;!define CONTENT_LOCATION "http://sc2.sf.net/install_files/0.2/mirror.txt" ;!define CONTENT_LOCATION "http://sc2.sourceforge.net/install_files/0.3/mirror.txt"
;!define VOICE_LOCATION "http://sc2.sf.net/install_files/0.2" ;!define VOICE_LOCATION "http://sc2.sourceforge.net/install_files/0.3"
;!define THREEDO_LOCATION "http://sc2.sf.net/install_files/0.2/mirror.txt" ;!define THREEDO_LOCATION "http://sc2.sourceforge.net/install_files/0.3/mirror.txt"
;!define UPGRADE_LOCATION "http://sc2.sf.net/install_files/0.2"
;!define VUPGRADE_LOCATION "http://sc2.sf.net/install_files/0.2/mirror.txt"
; -----------------------------
; define DEFAULT_UPGRADE if the defaullt should be to install an upgrade.
; undefining this will cause the default install to be a full install
; (i.e. install all files)
!define DEFAULT_UPGRADE
; -----------------------------
; define FULL_NEEDS_UPGRADE if both arhives are needed for a full install
; !define FULL_NEEDS_UPGRADE
; ----------------------------- ; -----------------------------
; using 'ubx' is risky, and often leads to unusable binaries. I don't ; using 'ubx' is risky, and often leads to unusable binaries. I don't
; recommend enabling it ; recommend enabling it
; !define USE_UBX ; !define USE_UBX
; -----------------------------
; These should only be changed if you know what you are doing!!!!!
; These definitions override the defaults, and should probaly NOT be used
;!define MUI_VERSION "0.14"
;!define CONTENT_PACKAGE_FILE "uqm-${MUI_VERSION}-content.zip"
;!define CONTENT_TYPE "zip"
;!define CONTENT_ROOT "\content"
;!define VOICE_PACKAGE_FILE "uqm-${MUI_VERSION}-voice.zip"
;!define VOICE_TYPE "zip"
;!define VOICE_ROOT "\content"
;!define THREEDO_PACKAGE_FILE "uqm-${MUI_VERSION}-3domusic.zip"
;!define THREEDO_TYPE "zip"
;!define THREEDO_ROOT "\content"
;!define UPGRADE_PACKAGE_FILE "uqm-${OLD_VERSION}_to_${MUI_VERSION}-upgrade.zip"
;!define UPGRADE_TYPE "zip"
;!define UPGRADE_ROOT "\content"
;!define VUPGRADE_PACKAGE_FILE "uqm-${OLD_VERSION}_to_${MUI_VERSION}-voice.zip"
;!define VUPGRADE_TYPE "zip"
;!define VUPGRADE_ROOT "\content"
+57 -294
View File
@@ -1,10 +1,18 @@
!define MUI_PRODUCT "The Ur-Quan Masters" ;Define your own software name here !define MUI_PRODUCT "The Ur-Quan Masters"
!echo "Loading options.nsh file..." !echo "Loading options.nsh file..."
!include "options.nsh" !include "options.nsh"
!echo "Loading content.nsh file..." !echo "Loading content.nsh file..."
!include "content.nsh" !include "content.nsh"
!ifndef CONTENT_ROOT
!define CONTENT_ROOT "content"
!endif
!ifndef PACKAGE_ROOT
!define PACKAGE_ROOT "${CONTENT_ROOT}\packages"
!endif
; ***************** content ********************** ; ***************** content **********************
!ifndef CONTENT_LOCATION !ifndef CONTENT_LOCATION
!ifdef CONTENT_USE_MIRROR !ifdef CONTENT_USE_MIRROR
@@ -19,12 +27,6 @@
!ifndef CONTENT_PACKAGE_FILE !ifndef CONTENT_PACKAGE_FILE
!define CONTENT_PACKAGE_FILE "uqm-${MUI_VERSION}-content.zip" !define CONTENT_PACKAGE_FILE "uqm-${MUI_VERSION}-content.zip"
!endif !endif
!ifndef CONTENT_TYPE
!define CONTENT_TYPE "zip"
!endif
!ifndef CONTENT_ROOT
!define CONTENT_ROOT "\content"
!endif
; ****************** voice ********************** ; ****************** voice **********************
!ifndef VOICE_LOCATION !ifndef VOICE_LOCATION
@@ -40,12 +42,6 @@
!ifndef VOICE_PACKAGE_FILE !ifndef VOICE_PACKAGE_FILE
!define VOICE_PACKAGE_FILE "uqm-${MUI_VERSION}-voice.zip" !define VOICE_PACKAGE_FILE "uqm-${MUI_VERSION}-voice.zip"
!endif !endif
!ifndef VOICE_TYPE
!define VOICE_TYPE "zip"
!endif
!ifndef VOICE_ROOT
!define VOICE_ROOT "\content"
!endif
; **************** 3do music ********************* ; **************** 3do music *********************
!ifndef THREEDO_LOCATION !ifndef THREEDO_LOCATION
@@ -61,36 +57,6 @@
!ifndef THREEDO_PACKAGE_FILE !ifndef THREEDO_PACKAGE_FILE
!define THREEDO_PACKAGE_FILE "uqm-${MUI_VERSION}-3domusic.zip" !define THREEDO_PACKAGE_FILE "uqm-${MUI_VERSION}-3domusic.zip"
!endif !endif
!ifndef THREEDO_TYPE
!define THREEDO_TYPE "zip"
!endif
!ifndef THREEDO_ROOT
!define THREEDO_ROOT "\content"
!endif
; ***************** upgrade **********************
!ifndef UPGRADE_LOCATION
!ifdef UPGRADE_USE_MIRROR
!define UPGRADE_LOCATION ${MIRROR_LOCATION}
!else
!define UPGRADE_LOCATION ${DOWNLOAD_LOCATION}
!endif
!endif
!ifndef UPGRADE_USE_MIRROR
!define UPGRADE_USE_MIRROR 0
!endif
; ************** voice upgrade *******************
!ifndef VUPGRADE_LOCATION
!ifdef VUPGRADE_USE_MIRROR
!define VUPGRADE_LOCATION ${MIRROR_LOCATION}
!else
!define VUPGRADE_LOCATION ${DOWNLOAD_LOCATION}
!endif
!endif
!ifndef VUPGRADE_USE_MIRROR
!define VUPGRADE_USE_MIRROR 0
!endif
;-------------------------------- ;--------------------------------
@@ -106,7 +72,7 @@
!endif !endif
;SetCompressor bzip2 ;SetCompressor bzip2
;Interface ;Interface
!define MUI_UI "${NSISDIR}\Contrib\UIs\modern2.exe" !define MUI_UI "${NSISDIR}\Contrib\UIs\modern.exe"
;!define MUI_ICON "uqm.ico" ;!define MUI_ICON "uqm.ico"
;!define MUI_UNICON "uninstall.ico" ;!define MUI_UNICON "uninstall.ico"
!define MUI_LICENSEPAGE !define MUI_LICENSEPAGE
@@ -126,7 +92,7 @@
!insertmacro MUI_LANGUAGE "English" !insertmacro MUI_LANGUAGE "English"
!include "uqm_english.nsh" !include "uqm_english.nsh"
OutFile "UQMSetup-${MUI_VERSION}.exe" OutFile "uqm-${MUI_VERSION}-win32-installer.exe"
;Page order ;Page order
@@ -150,42 +116,32 @@
ReserveFile "download.ini" ReserveFile "download.ini"
!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
ReserveFile "${NSISDIR}\Plugins\NSISdl.dll" ReserveFile "${NSISDIR}\Plugins\NSISdl.dll"
!ifdef UPGRADE_TYPE_ZIP | CONTENT_TYPE_ZIP
ReserveFile "${NSISDIR}\Plugins\ZipDLL.dll"
!endif
!ifdef UPGRADE_TYPE_TGZ | CONTENT_TYPE_TGZ
ReserveFile "${NSISDIR}\Plugins\untgz.dll"
!endif
;--------------------------------
;Modern UI system
!define MUI_CUSTOMFUNCTION_DIRECTORY_PRE SetDirectory
!define MUI_CUSTOMFUNCTION_DIRECTORY_SHOW SetDirectoryDialog
!insertmacro MUI_SYSTEM
;--------------------------------
;Installer Sections ;Installer Sections
!ifndef DEFAULT_UPGRADE InstType $(InstTypeFullName)
InstType $(InstTypeFullName) InstType $(InstTypeExeName)
InstType $(InstTypeUpgradeName)
!else
InstType $(InstTypeUpgradeName)
InstType $(InstTypeFullName)
!endif
Section !$(SecUQMName) SecUQM Section !$(SecUQMName) SecUQM
SectionIn 1 2 RO SectionIn 1 2 RO
CreateDirectory "$INSTDIR\${PACKAGE_ROOT}"
; Set output path to the installation directory. ; Set output path to the installation directory.
SetOutPath $INSTDIR SetOutPath $INSTDIR
; Put file there ; Put file there
File "..\..\uqm.exe" File "..\..\uqm.exe"
File /oname=WhatsNew.txt "..\..\WhatsNew" File /oname=WhatsNew.txt "..\..\WhatsNew"
File "..\..\doc\users\manual.txt" File /oname=Manual.txt "..\..\doc\users\manual.txt"
File /oname=COPYING.txt "..\..\COPYING" File /oname=COPYING.txt "..\..\COPYING"
File /oname=AUTHORS.txt "..\..\AUTHORS" File /oname=AUTHORS.txt "..\..\AUTHORS"
File /oname=README.txt "..\..\README" File /oname=README.txt "..\..\README"
SetOutPath $INSTDIR\${CONTENT_ROOT}
File "..\..\content\version"
SetOutPath $INSTDIR
; Write the installation path into the registry ; Write the installation path into the registry
WriteRegStr HKCU "Software\${MUI_PRODUCT}" "Install_Dir" "$INSTDIR" WriteRegStr HKCU "Software\${MUI_PRODUCT}" "Install_Dir" "$INSTDIR"
WriteRegStr HKLM "Software\${MUI_PRODUCT}" "Install_Dir" "$INSTDIR" WriteRegStr HKLM "Software\${MUI_PRODUCT}" "Install_Dir" "$INSTDIR"
@@ -204,11 +160,7 @@ SectionIn 1 2 RO
SectionEnd SectionEnd
Section $(SecContentName) SecContent Section $(SecContentName) SecContent
!ifndef DEFAULT_UPGRADE
SectionIn 1 SectionIn 1
!else
SectionIn 2
!endif
AddSize ${CONTENT_SIZE} AddSize ${CONTENT_SIZE}
@@ -216,13 +168,11 @@ SectionIn 2
; $1 = web site for download or mirror ; $1 = web site for download or mirror
; $2 = install directory ; $2 = install directory
; $3 = use mirror ; $3 = use mirror
; $4 = archive type ("zip" or "tgz")
StrCpy $0 ${CONTENT_PACKAGE_FILE} StrCpy $0 ${CONTENT_PACKAGE_FILE}
StrCpy $1 ${CONTENT_LOCATION} StrCpy $1 ${CONTENT_LOCATION}
StrCpy $2 "$INSTDIR${CONTENT_ROOT}" StrCpy $2 "$INSTDIR\${PACKAGE_ROOT}"
StrCpy $3 ${CONTENT_USE_MIRROR} StrCpy $3 ${CONTENT_USE_MIRROR}
StrCpy $4 ${CONTENT_TYPE} call Download
call DownloadAndExtract
Pop $0 Pop $0
StrCmp $0 success content_ok content_failure StrCmp $0 success content_ok content_failure
content_ok: content_ok:
@@ -235,11 +185,7 @@ SectionIn 2
SectionEnd SectionEnd
Section $(SecVoiceName) SecVoice Section $(SecVoiceName) SecVoice
!ifndef DEFAULT_UPGRADE
SectionIn 1 SectionIn 1
!else
SectionIn 2
!endif
AddSize ${VOICE_SIZE} AddSize ${VOICE_SIZE}
@@ -247,13 +193,11 @@ SectionIn 2
; $1 = web site for download or mirror ; $1 = web site for download or mirror
; $2 = install directory ; $2 = install directory
; $3 = use mirror ; $3 = use mirror
; $4 = archive type ("zip" or "tgz")
StrCpy $0 ${VOICE_PACKAGE_FILE} StrCpy $0 ${VOICE_PACKAGE_FILE}
StrCpy $1 ${VOICE_LOCATION} StrCpy $1 ${VOICE_LOCATION}
StrCpy $2 "$INSTDIR${VOICE_ROOT}" StrCpy $2 "$INSTDIR\${PACKAGE_ROOT}"
StrCpy $3 ${VOICE_USE_MIRROR} StrCpy $3 ${VOICE_USE_MIRROR}
StrCpy $4 ${VOICE_TYPE} call Download
call DownloadAndExtract
Pop $0 Pop $0
StrCmp $0 success voice_ok voice_failure StrCmp $0 success voice_ok voice_failure
voice_ok: voice_ok:
@@ -266,11 +210,7 @@ SectionIn 2
SectionEnd SectionEnd
Section $(Sec3doMusicName) Sec3doMusic Section $(Sec3doMusicName) Sec3doMusic
!ifndef DEFAULT_UPGRADE
SectionIn 1 SectionIn 1
!else
SectionIn 2
!endif
AddSize ${THREEDO_SIZE} AddSize ${THREEDO_SIZE}
@@ -278,13 +218,11 @@ SectionIn 2
; $1 = web site for download or mirror ; $1 = web site for download or mirror
; $2 = install directory ; $2 = install directory
; $3 = use mirror ; $3 = use mirror
; $4 = archive type ("zip" or "tgz")
StrCpy $0 ${THREEDO_PACKAGE_FILE} StrCpy $0 ${THREEDO_PACKAGE_FILE}
StrCpy $1 ${THREEDO_LOCATION} StrCpy $1 ${THREEDO_LOCATION}
StrCpy $2 "$INSTDIR${THREEDO_ROOT}" StrCpy $2 "$INSTDIR\${PACKAGE_ROOT}"
StrCpy $3 ${THREEDO_USE_MIRROR} StrCpy $3 ${THREEDO_USE_MIRROR}
StrCpy $4 ${THREEDO_TYPE} call Download
call DownloadAndExtract
Pop $0 Pop $0
StrCmp $0 success threedo_ok threedo_failure StrCmp $0 success threedo_ok threedo_failure
threedo_ok: threedo_ok:
@@ -296,86 +234,10 @@ SectionIn 2
SectionEnd SectionEnd
SubSection $(SubSecUpgradeName) SubSecUpgrade
Section $(SecUpgradeName) SecUpgrade
!ifdef FULL_NEEDS_UPGRADE
SectionIn 1 2
!else
!ifndef DEFAULT_UPGRADE
SectionIn 2
!else
SectionIn 1
!endif
!endif
AddSize ${UPGRADE_SIZE}
; $0 = download file name
; $1 = web site for download or mirror
; $2 = install directory
; $3 = use mirror
; $4 = archive type ("zip" or "tgz")
StrCpy $0 ${UPGRADE_PACKAGE_FILE}
StrCpy $1 ${UPGRADE_LOCATION}
StrCpy $2 "$INSTDIR${UPGRADE_ROOT}"
StrCpy $3 ${UPGRADE_USE_MIRROR}
StrCpy $4 ${UPGRADE_TYPE}
call DownloadAndExtract
Pop $0
StrCmp $0 success upgrade_ok upgrade_failure
upgrade_ok:
StrCpy $0 "upgrade"
goto upgrade_end
upgrade_failure:
StrCpy $0 ""
upgrade_end:
SectionEnd
Section $(SecVUpgradeName) SecVUpgrade
!ifdef FULL_NEEDS_UPGRADE
SectionIn 1 2
!else
!ifndef DEFAULT_UPGRADE
SectionIn 2
!else
SectionIn 1
!endif
!endif
AddSize ${VUPGRADE_SIZE}
; $0 = download file name
; $1 = web site for download or mirror
; $2 = install directory
; $3 = use mirror
; $4 = archive type ("zip" or "tgz")
StrCpy $0 ${VUPGRADE_PACKAGE_FILE}
StrCpy $1 ${VUPGRADE_LOCATION}
StrCpy $2 "$INSTDIR${VUPGRADE_ROOT}"
StrCpy $3 ${VUPGRADE_USE_MIRROR}
StrCpy $4 ${VUPGRADE_TYPE}
call DownloadAndExtract
Pop $0
StrCmp $0 success vupgrade_ok vupgrade_failure
vupgrade_ok:
StrCpy $0 "vupgrade"
goto vupgrade_end
vupgrade_failure:
StrCpy $0 ""
vupgrade_end:
SectionEnd
SubSectionEnd
SubSection $(SecSupportDLLName) SecSupportDLL SubSection $(SecSupportDLLName) SecSupportDLL
Section $(SecSDLName) SecSDL Section $(SecSDLName) SecSDL
!ifndef DEFAULT_UPGRADE SectionIn 1 2
SectionIn 1
!else
SectionIn 2
!endif
; Set output path to the installation directory. ; Set output path to the installation directory.
SetOutPath $INSTDIR SetOutPath $INSTDIR
@@ -388,11 +250,7 @@ SectionIn 2
SectionEnd SectionEnd
Section $(SecVoiceDLLName) SecVoiceDLL Section $(SecVoiceDLLName) SecVoiceDLL
!ifndef DEFAULT_UPGRADE SectionIn 1 2
SectionIn 1
!else
SectionIn 2
!endif
; Set output path to the installation directory. ; Set output path to the installation directory.
SetOutPath $INSTDIR SetOutPath $INSTDIR
@@ -403,11 +261,7 @@ SectionIn 2
SectionEnd SectionEnd
Section $(SecOpenALName) SecOpenAL Section $(SecOpenALName) SecOpenAL
!ifndef DEFAULT_UPGRADE SectionIn 1 2
SectionIn 1
!else
SectionIn 2
!endif
; Set output path to the installation directory. ; Set output path to the installation directory.
SetOutPath $INSTDIR SetOutPath $INSTDIR
@@ -417,47 +271,16 @@ SectionEnd
SubSectionEnd SubSectionEnd
Section $(SecMoveSaveName) SecMoveSave
SectionIn 1 2
IfFileExists "$INSTDIR\content\starcon2.0*" +2
goto MoveSaveEnd
ReadEnvStr $R0 "APPDATA"
StrCmp $R0 "" 0 MoveSave
ReadEnvStr $R0 "USERPROFILE"
StrCmp $R0 "" MoveSaveLastResort
StrCpy $R0 "$R0\Application Data"
IfFileExists "$R0\*.*" MoveSave
MoveSaveLastResort:
StrCpy $R0 "$INSTDIR\userdata"
IfFileExists "$R0\*.*" MoveSave
CreateDirectory $R0
MoveSave:
StrCpy $R0 "$R0\uqm\save"
IfFileExists "$R0\starcon2.0*" 0 MoveSaveContinue
MessageBox MB_OK|MB_ICONEXCLAMATION $(MoveSaveAlreadyExists)
goto MoveSaveEnd
MoveSaveContinue:
CreateDirectory $R0
ClearErrors
CopyFiles /FILESONLY "$INSTDIR\content\starcon2.0*" "$R0\"
IfErrors +3
Delete "$INSTDIR\content\starcon2.0*"
goto MoveSaveEnd
MessageBox MB_OK|MB_ICONEXCLAMATION $(MoveSaveBadCopy)
MoveSaveEnd:
SectionEnd
Section $(SecStartMenuName) SecStartMenu Section $(SecStartMenuName) SecStartMenu
SectionIn 1 2 SectionIn 1 2
CreateDirectory "$SMPROGRAMS\${MUI_PRODUCT}" CreateDirectory "$SMPROGRAMS\${MUI_PRODUCT}\Documentation"
CreateShortCut "$SMPROGRAMS\${MUI_PRODUCT}\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0 CreateShortCut "$SMPROGRAMS\${MUI_PRODUCT}\Documentation\AUTHORS.lnk" "$INSTDIR\AUTHORS.txt"
CreateShortCut "$SMPROGRAMS\${MUI_PRODUCT}\Documentation\COPYING.lnk" "$INSTDIR\COPYING.txt"
CreateShortCut "$SMPROGRAMS\${MUI_PRODUCT}\Documentation\Manual.lnk" "$INSTDIR\Manual.txt"
CreateShortCut "$SMPROGRAMS\${MUI_PRODUCT}\Documentation\README.lnk" "$INSTDIR\README.txt"
CreateShortCut "$SMPROGRAMS\${MUI_PRODUCT}\Documentation\WhatsNew.lnk" "$INSTDIR\WhatsNew.txt"
CreateShortCut "$SMPROGRAMS\${MUI_PRODUCT}\${MUI_PRODUCT}.lnk" "$INSTDIR\uqm.exe" "" "$INSTDIR\uqm.exe" 0 CreateShortCut "$SMPROGRAMS\${MUI_PRODUCT}\${MUI_PRODUCT}.lnk" "$INSTDIR\uqm.exe" "" "$INSTDIR\uqm.exe" 0
CreateShortCut "$SMPROGRAMS\${MUI_PRODUCT}\manual.lnk" "$INSTDIR\manual.txt" CreateShortCut "$SMPROGRAMS\${MUI_PRODUCT}\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
CreateShortCut "$SMPROGRAMS\${MUI_PRODUCT}\WhatsNew.lnk" "$INSTDIR\WhatsNew.txt"
CreateShortCut "$SMPROGRAMS\${MUI_PRODUCT}\COPYING.lnk" "$INSTDIR\COPYING.txt"
CreateShortCut "$SMPROGRAMS\${MUI_PRODUCT}\AUTHORS.lnk" "$INSTDIR\AUTHORS.txt"
CreateShortCut "$SMPROGRAMS\${MUI_PRODUCT}\README.lnk" "$INSTDIR\README.txt"
SectionEnd SectionEnd
Section $(SecDesktopIconName) SecDesktopIcon Section $(SecDesktopIconName) SecDesktopIcon
@@ -487,34 +310,14 @@ Function .onSelChange
SectionGetFlags ${SecContent} $0 SectionGetFlags ${SecContent} $0
IntOp $0 $0 & 1 IntOp $0 $0 & 1
IntCmp $0 0 sel_change_voice IntCmp $0 0 sel_change_voice
SectionGetFlags ${SecUpgrade} $0
!ifdef FULL_NEEDS_UPGRADE
IntOp $0 $0 | 1
!else
IntOp $0 $0 & 0xFFFFFFFE
!endif
SectionSetFlags ${SecUpgrade} $0
sel_change_voice: sel_change_voice:
SectionGetFlags ${SecVoice} $0 SectionGetFlags ${SecVoice} $0
IntOp $0 $0 & 1 IntOp $0 $0 & 1
IntCmp $0 0 sel_change_done IntCmp $0 0 sel_change_done
SectionGetFlags ${SecVUpgrade} $0
!ifdef FULL_NEEDS_UPGRADE
IntOp $0 $0 | 1
!else
IntOp $0 $0 & 0xFFFFFFFE
!endif
SectionSetFlags ${SecVUpgrade} $0
sel_change_done: sel_change_done:
Pop $0 Pop $0
FunctionEnd FunctionEnd
!ifdef MUI_DIRECTORYPAGE
Function SetDirectory
!insertmacro MUI_HEADER_TEXT $(MUI_TEXT_DIRECTORY_TITLE) $(MUI_TEXT_DIRECTORY_SUBTITLE)
FunctionEnd
!endif
Function DownloadOptions Function DownloadOptions
Push $0 Push $0
Call CheckDownloadDialog Call CheckDownloadDialog
@@ -527,8 +330,6 @@ Function DownloadOptions
!insertmacro MUI_INSTALLOPTIONS_WRITE "download.ini" "Field 3" text $(DownloadDialog3) !insertmacro MUI_INSTALLOPTIONS_WRITE "download.ini" "Field 3" text $(DownloadDialog3)
!insertmacro MUI_INSTALLOPTIONS_WRITE "download.ini" "Field 4" text $(DownloadDialog4) !insertmacro MUI_INSTALLOPTIONS_WRITE "download.ini" "Field 4" text $(DownloadDialog4)
!insertmacro MUI_INSTALLOPTIONS_WRITE "download.ini" "Field 5" text $(DownloadDialog5) !insertmacro MUI_INSTALLOPTIONS_WRITE "download.ini" "Field 5" text $(DownloadDialog5)
!insertmacro MUI_INSTALLOPTIONS_WRITE "download.ini" "Field 6" text $(DownloadDialog6)
!insertmacro MUI_INSTALLOPTIONS_WRITE "download.ini" "Field 8" text $(DownloadDialog8)
Pop $R1 Pop $R1
!insertmacro MUI_INSTALLOPTIONS_WRITE "download.ini" "Field 2" text $R1 !insertmacro MUI_INSTALLOPTIONS_WRITE "download.ini" "Field 2" text $R1
Pop $0 Pop $0
@@ -536,22 +337,6 @@ Function DownloadOptions
!insertmacro MUI_INSTALLOPTIONS_DISPLAY "download.ini" !insertmacro MUI_INSTALLOPTIONS_DISPLAY "download.ini"
FunctionEnd FunctionEnd
Function SetDirectoryDialog
!insertmacro MUI_INNERDIALOG_TEXT 1041 $(MUI_INNERTEXT_DIRECTORY_DESTINATION)
Push $0
Call CheckDownloadDialog
StrCmp $0 "" buttoninst
StrCpy $R0 $(DownloadDialogNext2)
goto buttondone
buttoninst:
StrCpy $R0 $(DownloadDialogNext1)
buttondone:
Pop $0
GetDlgItem $R1 $HWNDPARENT 1
SendMessage $R1 ${WM_SETTEXT} 0 "STR:$R0"
FunctionEnd
Function CheckDownloadDialog Function CheckDownloadDialog
Push $R0 Push $R0
Push $R1 Push $R1
@@ -575,36 +360,18 @@ Function CheckDownloadDialog
dlchk_3domusic: dlchk_3domusic:
SectionGetFlags ${Sec3doMusic} $R0 SectionGetFlags ${Sec3doMusic} $R0
Intop $R0 $R0 & "0x1" Intop $R0 $R0 & "0x1"
IntCmp $R0 0 dlchk_upg IntCmp $R0 0 dlchk_end
StrLen $R0 $2 StrLen $R0 $2
IntCmp $R0 0 +2 IntCmp $R0 0 +2
StrCpy $2 $2$R1 StrCpy $2 $2$R1
StrCpy $R0 $(Sec3doMusicName) StrCpy $R0 $(Sec3doMusicName)
StrCpy $2 $2$R0 StrCpy $2 $2$R0
dlchk_upg: dlchk_end:
SectionGetFlags ${SecUpgrade} $R0 StrCpy $0 $2
Intop $R0 $R0 & "0x1" Pop $2
IntCmp $R0 0 dlchk_vupg Pop $R1
StrLen $R0 $2 Pop $R0
IntCmp $R0 0 +2 Return
StrCpy $2 $2$R1
StrCpy $R0 $(SecUpgradeName)
StrCpy $2 $2$R0
dlchk_vupg:
SectionGetFlags ${SecVUpgrade} $R0
Intop $R0 $R0 & "0x1"
IntCmp $R0 0 dlchk_end
StrLen $R0 $2
IntCmp $R0 0 +2
StrCpy $2 $2$R1
StrCpy $R0 $(SecVUpgradeName)
StrCpy $2 $2$R0
dlchk_end:
StrCpy $0 $2
Pop $2
Pop $R1
Pop $R0
Return
FunctionEnd FunctionEnd
!include "download.nsh" !include "download.nsh"
@@ -614,8 +381,6 @@ FunctionEnd
!insertmacro MUI_FUNCTIONS_DESCRIPTION_BEGIN !insertmacro MUI_FUNCTIONS_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SecUQM} $(SecUQMDesc) !insertmacro MUI_DESCRIPTION_TEXT ${SecUQM} $(SecUQMDesc)
!insertmacro MUI_DESCRIPTION_TEXT ${SecUpgrade} $(SecUpgradeDesc)
!insertmacro MUI_DESCRIPTION_TEXT ${SecVUpgrade} $(SecVUpgradeDesc)
!insertmacro MUI_DESCRIPTION_TEXT ${SecContent} $(SecContentDesc) !insertmacro MUI_DESCRIPTION_TEXT ${SecContent} $(SecContentDesc)
!insertmacro MUI_DESCRIPTION_TEXT ${SecVoice} $(SecVoiceDesc) !insertmacro MUI_DESCRIPTION_TEXT ${SecVoice} $(SecVoiceDesc)
!insertmacro MUI_DESCRIPTION_TEXT ${Sec3doMusic} $(Sec3doMusicDesc) !insertmacro MUI_DESCRIPTION_TEXT ${Sec3doMusic} $(Sec3doMusicDesc)
@@ -623,7 +388,6 @@ FunctionEnd
!insertmacro MUI_DESCRIPTION_TEXT ${SecSDL} $(SecSDLDesc) !insertmacro MUI_DESCRIPTION_TEXT ${SecSDL} $(SecSDLDesc)
!insertmacro MUI_DESCRIPTION_TEXT ${SecOpenAL} $(SecOpenALDesc) !insertmacro MUI_DESCRIPTION_TEXT ${SecOpenAL} $(SecOpenALDesc)
!insertmacro MUI_DESCRIPTION_TEXT ${SecVoiceDLL} $(SecVoiceDLLDesc) !insertmacro MUI_DESCRIPTION_TEXT ${SecVoiceDLL} $(SecVoiceDLLDesc)
!insertmacro MUI_DESCRIPTION_TEXT ${SecMoveSave} $(SecMoveSaveDesc)
!insertmacro MUI_DESCRIPTION_TEXT ${SecStartMenu} $(SecStartMenuDesc) !insertmacro MUI_DESCRIPTION_TEXT ${SecStartMenu} $(SecStartMenuDesc)
!insertmacro MUI_DESCRIPTION_TEXT ${SecDesktopIcon} $(SecDesktopIconDesc) !insertmacro MUI_DESCRIPTION_TEXT ${SecDesktopIcon} $(SecDesktopIconDesc)
!insertmacro MUI_FUNCTIONS_DESCRIPTION_END !insertmacro MUI_FUNCTIONS_DESCRIPTION_END
@@ -643,7 +407,7 @@ Section "Uninstall"
; remove files ; remove files
Delete "$INSTDIR\uqm.exe" Delete "$INSTDIR\uqm.exe"
Delete "$INSTDIR\WhatsNew.txt" Delete "$INSTDIR\WhatsNew.txt"
Delete "$INSTDIR\manual.txt" Delete "$INSTDIR\Manual.txt"
Delete "$INSTDIR\COPYING.txt" Delete "$INSTDIR\COPYING.txt"
Delete "$INSTDIR\AUTHORS.txt" Delete "$INSTDIR\AUTHORS.txt"
Delete "$INSTDIR\README.txt" Delete "$INSTDIR\README.txt"
@@ -657,27 +421,26 @@ Section "Uninstall"
Delete "$INSTDIR\vorbis.dll" Delete "$INSTDIR\vorbis.dll"
Delete "$INSTDIR\ogg.dll" Delete "$INSTDIR\ogg.dll"
; Remove content dir ; remove content packages
!echo "Adding 'Remove content' commands. Please wait..." Delete "$INSTDIR\${PACKAGE_ROOT}\${CONTENT_PACKAGE_FILE}"
!verbose 3 Delete "$INSTDIR\${PACKAGE_ROOT}\${VOICE_PACKAGE_FILE}"
!insertmacro REMOVE_CONTENT Delete "$INSTDIR\${PACKAGE_ROOT}\${THREEDO_PACKAGE_FILE}"
!verbose 4 Delete "$INSTDIR\${CONTENT_ROOT}\version"
; MUST REMOVE UNINSTALLER, too ; MUST REMOVE UNINSTALLER, too
Delete $INSTDIR\uninstall.exe Delete $INSTDIR\uninstall.exe
; remove shortcuts, if any. ; remove shortcuts, if any.
Delete "$SMPROGRAMS\${MUI_PRODUCT}\Documentation\*.*"
Delete "$SMPROGRAMS\${MUI_PRODUCT}\*.*" Delete "$SMPROGRAMS\${MUI_PRODUCT}\*.*"
Delete "$DESKTOP\${MUI_PRODUCT}.lnk" Delete "$DESKTOP\${MUI_PRODUCT}.lnk"
; remove directories used. ; remove directories used.
RMDir "$SMPROGRAMS\${MUI_PRODUCT}\Documentation"
RMDir "$SMPROGRAMS\${MUI_PRODUCT}" RMDir "$SMPROGRAMS\${MUI_PRODUCT}"
RMDir "$INSTDIR\content" RMDir "$INSTDIR\${PACKAGE_ROOT}"
RMDir "$INSTDIR\${CONTENT_ROOT}"
RMDir "$INSTDIR" RMDir "$INSTDIR"
;Security - do not delete anything if ${MUI_PRODUCT} is empty
;StrCmp "${MUI_PRODUCT}" "" +2
; DeleteRegKey HKCU "Software\${MUI_PRODUCT}"
!insertmacro MUI_UNFINISHHEADER !insertmacro MUI_UNFINISHHEADER
SectionEnd SectionEnd
@@ -686,8 +449,8 @@ SectionEnd
;Uninstaller Functions ;Uninstaller Functions
;-------------------------------- ;--------------------------------
;Ur-Quan Masters install script
;written by Geoffrey Hausheer ;The Ur-Quan Masters install script
;Based on ;Based on
;NSIS Modern Style UI version 1.61 ;NSIS Modern Style UI version 1.61
;Multilanguage & LangDLL Example Script ;Multilanguage & LangDLL Example Script
+11 -27
View File
@@ -1,8 +1,5 @@
;Language specific include file for UrQuan Masters installer ;Language specific include file for The Ur-Quan Masters installer
;Created by Geoffrey Hausheer
;Based on installer for FileZilla ;Based on installer for FileZilla
;Created by Tim Kosse (mailto:tim.kosse@gmx.de)
;This file has been translated by <insert your name here>
!verbose 3 !verbose 3
@@ -11,35 +8,28 @@ LicenseData /LANG=${LANG_ENGLISH} "..\..\COPYING"
;Component-select dialog ;Component-select dialog
LangString InstTypeFullName ${LANG_ENGLISH} "Full" LangString InstTypeFullName ${LANG_ENGLISH} "Full"
LangString InstTypeUpgradeName ${LANG_ENGLISH} "Upgrade" LangString InstTypeExeName ${LANG_ENGLISH} "Executable Only"
LangString SecUQMName ${LANG_ENGLISH} "Ur-Quan Masters (required)" LangString SecUQMName ${LANG_ENGLISH} "The Ur-Quan Masters (required)"
LangString SecContentName ${LANG_ENGLISH} "Install data files" LangString SecContentName ${LANG_ENGLISH} "Install data files"
LangString SecVoiceName ${LANG_ENGLISH} "Install voice files" LangString SecVoiceName ${LANG_ENGLISH} "Install voice files"
LangString Sec3doMusicName ${LANG_ENGLISH} "Install 3DO Music" LangString Sec3doMusicName ${LANG_ENGLISH} "Install 3DO Music"
LangString SubSecUpgradeName ${LANG_ENGLISH} "Upgrade from ${OLD_VERSION}"
LangString SecUpgradeName ${LANG_ENGLISH} "Upgrade data files"
LangString SecVUpgradeName ${LANG_ENGLISH} "Upgrade voice files"
LangString SecSupportDLLName ${LANG_ENGLISH} "Graphics/Sound libs" LangString SecSupportDLLName ${LANG_ENGLISH} "Graphics/Sound libs"
LangString SecSDLName ${LANG_ENGLISH} "SDL" LangString SecSDLName ${LANG_ENGLISH} "SDL"
LangString SecOpenALName ${LANG_ENGLISH} "OpenAL" LangString SecOpenALName ${LANG_ENGLISH} "OpenAL"
LangString SecVoiceDLLName ${LANG_ENGLISH} "Voice" LangString SecVoiceDLLName ${LANG_ENGLISH} "Voice"
LangString SecMoveSaveName ${LANG_ENGLISH} "Move Save Games"
LangString SecStartMenuName ${LANG_ENGLISH} "Start Menu Shortcuts" LangString SecStartMenuName ${LANG_ENGLISH} "Start Menu Shortcuts"
LangString SecDesktopIconName ${LANG_ENGLISH} "Desktop Icon" LangString SecDesktopIconName ${LANG_ENGLISH} "Desktop Icon"
LangString SecUQMDesc ${LANG_ENGLISH} "Install uqm.exe and other required files" LangString SecUQMDesc ${LANG_ENGLISH} "Install uqm.exe and other required files"
LangString SecUpgradeDesc ${LANG_ENGLISH} "Download the upgrade data-files from a previous ${OLD_VERSION} (or later) install."
LangString SecVUpgradeDesc ${LANG_ENGLISH} "Download the upgrade voices from a previous ${OLD_VERSION} (or later) install."
LangString SecContentDesc ${LANG_ENGLISH} "Download all data files needed to play uqm." LangString SecContentDesc ${LANG_ENGLISH} "Download all data files needed to play uqm."
LangString SecVoiceDesc ${LANG_ENGLISH} "Download optional voice files (gives voices to go along with the subtitles)." LangString SecVoiceDesc ${LANG_ENGLISH} "Download optional voice files (gives voices to go along with the subtitles)."
LangString Sec3doMusicDesc ${LANG_ENGLISH} "Download optional music from the 3do version." LangString Sec3doMusicDesc ${LANG_ENGLISH} "Download optional music from the 3do version."
LangString SecSupportDLLDesc ${LANG_ENGLISH} "Install Support .dll files needed to play Ur-Quan Masters" LangString SecSupportDLLDesc ${LANG_ENGLISH} "Install support .dll files needed to play The Ur-Quan Masters"
LangString SecSDLDesc ${LANG_ENGLISH} "Install SDL and SDL_image libraries for graphics and sound support" LangString SecSDLDesc ${LANG_ENGLISH} "Install SDL and SDL_image libraries for graphics and sound support"
LangString SecOpenALDesc ${LANG_ENGLISH} "Install OpenAL audio drivers" LangString SecOpenALDesc ${LANG_ENGLISH} "Install OpenAL audio drivers"
LangString SecVoiceDLLDesc ${LANG_ENGLISH} "Install OggVorbis libraries for playing voice" LangString SecVoiceDLLDesc ${LANG_ENGLISH} "Install OggVorbis libraries for playing voice"
LangString SecMoveSaveDesc ${LANG_ENGLISH} "Move SavedGames from ${OLD_VERSION} location to new location" LangString SecStartMenuDesc ${LANG_ENGLISH} "Create shortcuts in the Start Menu"
LangString SecStartMenuDesc ${LANG_ENGLISH} "Create shortcuts in the start menu" LangString SecDesktopIconDesc ${LANG_ENGLISH} "Add a desktop icon for quick access to The Ur-Quan Masters"
LangString SecDesktopIconDesc ${LANG_ENGLISH} "Add a desktop icon for quick access to UrQuan Masters"
;Page titles ;Page titles
LangString PageDownloadTitle ${LANG_ENGLISH} "Download options" LangString PageDownloadTitle ${LANG_ENGLISH} "Download options"
@@ -49,30 +39,24 @@ LangString PageDownloadSubTitle ${LANG_ENGLISH} "Some components have to be down
LangString DownloadDialogNext1 ${LANG_ENGLISH} "&Install" LangString DownloadDialogNext1 ${LANG_ENGLISH} "&Install"
LangString DownloadDialogNext2 ${LANG_ENGLISH} "&Next >" LangString DownloadDialogNext2 ${LANG_ENGLISH} "&Next >"
LangString DownloadDialog1 ${LANG_ENGLISH} "The following components are not included in the installer to reduce its size:" LangString DownloadDialog1 ${LANG_ENGLISH} "The following components are not included in the installer to reduce its size:"
LangString DownloadDialog3 ${LANG_ENGLISH} "To install these components, the installer can download the required files. If you don't want to download the files now, you can run the installer again later, or you can download the files manually from http://sc2.sourceforge.net" LangString DownloadDialog3 ${LANG_ENGLISH} "To install these components, the installer can download the required files. If you don't want to download the files now, you can run the installer again later, or you can download the files manually from http://sc2.sourceforge.net/"
LangString DownloadDialog4 ${LANG_ENGLISH} "Download and Install from the internet" LangString DownloadDialog4 ${LANG_ENGLISH} "Download and Install from the internet"
LangString DownloadDialog5 ${LANG_ENGLISH} "Skip these components" LangString DownloadDialog5 ${LANG_ENGLISH} "Skip these components"
LangString DownloadDialog6 ${LANG_ENGLISH} "Use local package directory (enter below):"
LangString DownloadDialog8 ${LANG_ENGLISH} "When using the package directory, the installer will save all downloaded files in this directory. It will also only download the files which aren't already present in the package directory."
;Download strings ;Download strings
LangString DownloadDownloading ${LANG_ENGLISH} "Downloading $0" LangString DownloadDownloading ${LANG_ENGLISH} "Downloading $0"
LangString DownloadRetrievingMirrorList ${LANG_ENGLISH} " Retrieving mirror list from $1" ;Don't remove the leading two whitespaces LangString DownloadRetrievingMirrorList ${LANG_ENGLISH} " Retrieving mirror list from $1" ;Don't remove the leading two whitespaces
LangString DownloadDownloadFailed ${LANG_ENGLISH} " Download failed: $0" ;Don't remove the leading two whitespaces LangString DownloadDownloadFailed ${LANG_ENGLISH} " Download attempt failed: $0" ;Don't remove the leading two whitespaces
LangString DownloadMirrorDownloadFailedBox ${LANG_ENGLISH} "Failed to download mirror list for $0. Reason: $R1$\nThis component will not be installed.$\nRun the installer again later to retry downloading this component.$\nIf this error stays, the installer may not able to access the internet. In any case you can download the components manually from http://sc2.sourceforge.net" LangString DownloadMirrorDownloadFailedBox ${LANG_ENGLISH} "Failed to download mirror list for $0. Reason: $R1$\nThis component will not be installed.$\nRun the installer again later to retry downloading this component.$\nIf this error stays, the installer may not able to access the internet. In any case you can download the components manually from http://sc2.sourceforge.net/"
LangString DownloadDownloadCancelled ${LANG_ENGLISH} " Download cancelled" ;Don't remove the leading two whitespaces LangString DownloadDownloadCancelled ${LANG_ENGLISH} " Download cancelled" ;Don't remove the leading two whitespaces
LangString DownloadRetrievingMirrorListSuccessful ${LANG_ENGLISH} " Mirror list download successful" ;Don't remove the leading two whitespaces LangString DownloadRetrievingMirrorListSuccessful ${LANG_ENGLISH} " Mirror list download successful" ;Don't remove the leading two whitespaces
LangString DownloadUsingMirror ${LANG_ENGLISH} " Using mirror $R3" ;Don't remove the leading two whitespaces LangString DownloadUsingMirror ${LANG_ENGLISH} " Using mirror $R3" ;Don't remove the leading two whitespaces
LangString DownloadDownloadFailedBox ${LANG_ENGLISH} "Failed to download $0. Reason: $R1$\nThis component will not be installed.$\nRun the installer again later to retry downloading this component.$\nIf this error stays, the installer may not able to access the internet. In any case you can download the components manually from http://sc2.sourceforge.net" LangString DownloadDownloadFailedBox ${LANG_ENGLISH} "Failed to download $0. Reason: $R1$\nThis component will not be installed.$\nRun the installer again later to retry downloading this component.$\nIf this error stays, the installer may not able to access the internet. In any case you can download the components manually from http://sc2.sourceforge.net/"
LangString DownloadDownloadSuccessful ${LANG_ENGLISH} " Download successful" ;Don't remove the leading two whitespaces LangString DownloadDownloadSuccessful ${LANG_ENGLISH} " Download successful" ;Don't remove the leading two whitespaces
LangString DownloadExtractFailedBox ${LANG_ENGLISH} "Failed to extract contents of $0. Reason: $R1$\nThis component will not be installed."
; Mirror problems ; Mirror problems
LangString DownloadMirrorBroken ${LANG_ENGLISH} "Failed to parse mirror file" LangString DownloadMirrorBroken ${LANG_ENGLISH} "Failed to parse mirror file"
LangString DownloadMirrorBrokenDlg ${LANG_ENGLISH} "There were problems reading the mirror file. We wil not be able to install downloaded content. You can retrieve the files directly from http://sc2.sourceforge.net" LangString DownloadMirrorBrokenDlg ${LANG_ENGLISH} "There were problems reading the mirror file. We will not be able to install downloaded content. You can retrieve the files directly from http://sc2.sourceforge.net/"
;Move Saved Games
LangString MoveSaveAlreadyExists ${LANG_ENGLISH} "Saved games already exist in $R0. We will not overwrite them!"
LangString MoveSaveBadCopy ${LANG_ENGLISH} "Error while copying saved games to $R0!"
;Uninstaller ;Uninstaller
LangString un.QuestionDeleteRegistry ${LANG_ENGLISH} "Delete all Registry keys created by Ur-Quan Masters?" LangString un.QuestionDeleteRegistry ${LANG_ENGLISH} "Delete all Registry keys created by Ur-Quan Masters?"