diff --git a/sc2/build/win32_install/README b/sc2/build/win32_install/README index 61151a151..0912cb1d5 100644 --- a/sc2/build/win32_install/README +++ b/sc2/build/win32_install/README @@ -31,10 +31,8 @@ resource hacker: http://www.users.on.net/johnson/resourcehacker/ 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 - -1a) If you have upx, run it on uqm.exe as follows: - upx --best --crp-ms=100000 uqm.exe +1) Compile uqm.exe. Note that version.h defines the version of UQM to build, + and should be set appropriately before compiling 2) Build content .zip files and content.nsh For this procedure, you must have no modifications in the content tree. @@ -42,8 +40,9 @@ resource hacker: http://www.users.on.net/johnson/resourcehacker/ modified files. use the 'full' option when building a production release where you plan to create a full content directory rather than just the upgrade zip - ./build_archives.pl 0.2 contour_0_1 [full] - This will generate .zip files of the content directory: + ./build_archives.pl contour_0_1 [full] + This will generate .zip files of the content directory (assuming + version.h defines the version as 0.2): uqm-0.1_to_0.2-content.zip uqm-0.1_to_0.2-voice.zip and (if 'full' is specified) @@ -53,35 +52,67 @@ resource hacker: http://www.users.on.net/johnson/resourcehacker/ These files should be uploaded to the disrtibution web page It will also generate content.nsh which contains a list of files for the - uninstaller, as well as the file-size of each of the archives, for use in + uninstaller, as well as the information aout the archives, for use in the installer 3) Modify the install script: - Edit uqm.nsi, and change the following variables: - MUI_VERSION: The version you are building + Edit options.nsi, and change the following variables: OLD_VERSION: The earliest version that can be upgraded from - 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 set to '0' all other builds - ahould leave it at '1' - also, there are 5 sections: - CONTENT, VOICE, THREEDO, UPGRADE, and VUPGRADE, which represent how to - retreive the data-files, voice-files, 3do music files, upgrade to the - data files, and upgrade to the voice files respectively). These - variables are: + DOWNLOAD_LOCATION: The default directory to download the archives from + if not using a mirror file. NOTE: This parameter + can be overridden by setting <...>_LOCATION an a + per-archive basis. + MIRROR_LOCATION: The default location of the mirror file to use for + retrieving the archives if <...>_USE_MIRROR is defined + (see below). The mirror file contains a list of + directries (http) where the data-file can be + downloaded from. NOTE: This parameter can be + overridden by setting <...>_LOCATION an a + per-archive basis. - <...>_USE_MIRROR: Whether the 'LOCATION' is pointing to a mirror file - or a directory for direct-download. The mirror file - contains a list of directries (http) where the data- - file can be downloaded from. + Each of the archives can be fine-tuned using per-archive defines. For + most of these, the defaults should be fine. The only paramater that + is likely to need changing is: + <...>_USE_MIRROR: Whether to use a mirror file or not. If this + parameter is not defined then DOWNLOAD_LOCATION + will be used, ootherwise MIRROR_LOCATION will be + used. If <...>_LOCATION is defined, then + <...>_USE_MIRROR must still be set depending on + whetehr the locationn is a mirror-file or directory. + (NOTE: DO NOT set it to '0'. The value should + either be defined as '1' or not at all. Defining + it is '0' WILL break things) + + The other sections that may be changed are defined below, however it is + STRONGLY recommended that you do not change them without being sure of + what you are doing! <...>_LOCATION: The path (http) to retrieve the data-file or 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 - It should only be bnecessary to modify the first two variables - (USE_MIRROR and LOCATION) + + 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 + ubx. this may break the game and/or installer, and + is not recomended. + MUI_VERSION: The version of UQM you are building. This parameter + is normally auto-defined by readinng version.h, but + can be manually overridden if needed. 4) run NSIS to build the installer: makensis uqm.nsi diff --git a/sc2/build/win32_install/build_archives.pl b/sc2/build/win32_install/build_archives.pl index 5e06e4ddf..850a8e34d 100755 --- a/sc2/build/win32_install/build_archives.pl +++ b/sc2/build/win32_install/build_archives.pl @@ -5,16 +5,38 @@ use Cwd; $use_zip = 1; -$version = shift @ARGV; $file = shift @ARGV; $tag = shift @ARGV; $do_full = shift @ARGV; -if (! defined ($version) || ! defined ($file) || scalar(@ARGV)) { - print STDERR "$0 version contour_file [full]\n"; +if (! defined ($file) || scalar(@ARGV)) { + print STDERR "$0 contour_file [full]\n"; print STDERR " or\n"; - print STDERR "$0 version cvs_log_file cvs_tag [full]\n"; + print STDERR "$0 cvs_log_file cvs_tag [full]\n"; exit 1; } +# fetch the version from version.h +if (-f "../../src/version.h") { + open (FH, "../../src/version.h") or die "couldn't read version.h\n"; + while () { + if (/^\s*\#define\s+UQM_MAJOR_VERSION\s+(\d+)/) { + $major = $1; + } + if (/^\s*#define\s+UQM_MINOR_VERSION\s+(\d+)/) { + $minor = $1; + } + if (/^\s*#define\s+UQM_EXTRA_VERSION\s+"(.*)"/) { + $extra = $1; + } + } + close FH; + if (!defined ($major) || !defined ($minor) || !defined ($extra)) { + die "Error reading version.h\n"; + } + $version = "$major.${minor}${extra}"; +} else { + die "couldn't find version.h\n"; +} + if (! defined ($do_full)) { if (defined ($tag) && $tag eq "full") { $do_full = $tag; @@ -103,7 +125,7 @@ if ($tag) { } $alldata{"$1,prev"} = $2; } else { - print "Couldn't find '$1' in the repository\n"; + print "Couldn't find '$1'. OK if removed since $oldver\n"; } } } @@ -114,11 +136,11 @@ if ($tag) { } } } -$change_zip = "$cwd/uqm-${oldver}_to_${version}-content.$ext"; -$change_ogg_zip = "$cwd/uqm-${oldver}_to_${version}-voice.$ext"; -$content_zip = "$cwd/uqm-${version}-content.$ext"; -$voice_zip = "$cwd/uqm-${version}-voice.$ext"; -$threedo_zip = "$cwd/uqm-${version}-3domusic.$ext"; +$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 = ""; @@ -146,17 +168,18 @@ foreach $path (@changed) { } close FH1; close FH2; -unlink $change_zip; -unlink $change_ogg_zip; +unlink "$cwd/$change_zip"; +unlink "$cwd/$change_ogg_zip"; if ($use_zip) { - `cat tmpfile | zip -r $change_zip -@`; - `cat tmpfile1 | zip -r $change_ogg_zip -@` if ($change_ogg_size); + `cat tmpfile | zip -r "$cwd/$change_zip" -@`; + `cat tmpfile1 | zip -r "$cwd/$change_ogg_zip" -@` if ($change_ogg_size); } else { - `tar -T tmpfile -czf $change_zip`; - `tar -T tmpfile1 -czf $change_ogg_zip` if ($change_ogg_size); + `tar -T tmpfile -czf "$cwd/$change_zip"`; + `tar -T tmpfile1 -czf "$cwd/$change_ogg_zip"` if ($change_ogg_size); } open (FH, ">$cwd/content.nsh"); +print FH "!verbose 3\n"; print FH "!macro REMOVE_CONTENT\n"; open FH1, ">tmpfile" || die "Couldn't create temp file!\n"; open FH2, ">tmpfile1" || die "Couldn't create temp file!\n"; @@ -177,7 +200,6 @@ foreach $path (@all) { $num_voice++; print FH2 "$path\n"; } elsif ($path =~ /\.ogg$/) { - print "$path : $siz1\n"; $threedo_size += $siz1; $num_3do++; print FH3 "$path\n"; @@ -209,16 +231,17 @@ foreach $dir (@dirs) { } print FH "!macroend\n"; if ($do_full) { - unlink $content_zip; - unlink $voice_zip; + unlink "$cwd/$content_zip"; + unlink "$cwd/$voice_zip"; + unlink "$cwd/$threedo_zip"; if ($use_zip) { - `cat tmpfile | zip -r $content_zip -@`; - `cat tmpfile1 | zip -r $voice_zip -@` if($voice_size); - `cat tmpfile2 | zip -r $threedo_zip -@` if($threedo_size); + `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 $content_zip`; - `tar -T tmpfile1 -czf $voice_zip` if ($voice_size); - `tar -T tmpfile2 -czf $threedo_zip` if ($threedo_size); + `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"; @@ -229,11 +252,70 @@ $change_ogg_size = int(0.5 + $change_ogg_size / 1000); $content_size = int(0.5 + $content_size / 1000); $voice_size = int(0.5 + $voice_size / 1000); $threedo_size = int(0.5 + $threedo_size / 1000); + +print FH "!ifndef \${MUI_VERSION}\n"; +print FH " !define MUI_VERSION \"$version\"\n"; +print FH "!endif\n"; +print FH "\n"; print FH "!define CONTENT_SIZE $content_size\n"; print FH "!define VOICE_SIZE $voice_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"; +if ($do_full) { + print FH "!ifndef \${CONTENT_PACKAGE_FILE}\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 "\n"; +print FH "!ifndef \${VUPGRADE_PACKAGE_FILE}\n"; +print FH " !define VUPGRADE_PACKAGE_FILE \"$change_ogg_zip\"\n"; +print FH "!endif\n"; +print FH "!ifndef \${VUPGRADE_TYPE}\n"; +print FH " !define VUPGRADE_TYPE \"$ext\"\n"; +print FH "!endif\n"; +print FH "!ifndef \${VUPGRADE_ROOT}\n"; +print FH " !define VUPGRADE_ROOT \"\\content\"\n"; +print FH "!endif\n"; +print FH "\n"; +print FH "!verbose 4\n"; close FH; print "upgrade : #files: $num_change ($change_size kb)\n"; print "voiceupgrade: #files: $num_change_ogg ($change_ogg_size kb)\n"; diff --git a/sc2/build/win32_install/options.nsh b/sc2/build/win32_install/options.nsh new file mode 100644 index 000000000..e6f4de735 --- /dev/null +++ b/sc2/build/win32_install/options.nsh @@ -0,0 +1,59 @@ +!define OLD_VERSION "0.1" ; The earliest version that we can upgrade from +!define DOWNLOAD_LOCATION "http://sc2.sf.net/install_files/0.2" +!define MIRROR_LOCATION "http://sc2.sf.net/install_files/0.2/mirror.txt" + +;!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 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 +;!define CONTENT_LOCATION "http://sc2.sf.net/install_files/0.2/mirror.txt" +;!define VOICE_LOCATION "http://sc2.sf.net/install_files/0.2" +;!define THREEDO_LOCATION "http://sc2.sf.net/install_files/0.2/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 +; recommend enabling it +; !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" + diff --git a/sc2/build/win32_install/uqm.nsi b/sc2/build/win32_install/uqm.nsi index 65f6fb09b..3d22f5693 100644 --- a/sc2/build/win32_install/uqm.nsi +++ b/sc2/build/win32_install/uqm.nsi @@ -1,55 +1,107 @@ !define MUI_PRODUCT "The Ur-Quan Masters" ;Define your own software name here -!define MUI_VERSION "0.14" ;Define your own software version here -!define OLD_VERSION "0.1" ; The earliest version that we can upgrade from -!define DEFAULT_UPGRADE 1 ; Define if the default install should be 'upgrade' -!define MIRROR_LOCATION "http://sc2.sourceforge.net/install_files/mirrors.txt" -!define NO_MIRROR_LOCATION "http://sc2.sourceforge.net/install_files/" +!include "options.nsh" +!include "content.nsh" -; define FULL_NEEDS_UPGRADE if both arhives are needed for a full install -!define FULL_NEEDS_UPGRADE 1 +; ***************** content ********************** +!ifndef ${CONTENT_LOCATION} + !ifdef ${CONTENT_USE_MIRROR} + !define CONTENT_LOCATION ${MIRROR_LOCATION} + !else + !define CONTENT_LOCATION ${DOWNLOAD_LOCATION} + !endif +!endif +!ifndef ${CONTENT_USE_MIRROR} + !define CONTENT_USE_MIRROR 0 +!endif +!ifndef ${CONTENT_PACKAGE_FILE} + !define CONTENT_PACKAGE_FILE "uqm-${MUI_VERSION}-content.zip" +!endif +!ifndef ${CONTENT_TYPE} + !define CONTENT_TYPE "zip" +!endif +!ifndef ${CONTENT_ROOT} + !define CONTENT_ROOT "\content" +!endif -!define CONTENT_USE_MIRROR 1 -!define CONTENT_LOCATION "http://sc2.sourceforge.net/install_files/mirrors.txt" -!define CONTENT_PACKAGE_FILE "uqm-${MUI_VERSION}-content.zip" -!define CONTENT_TYPE "zip" -!define CONTENT_ROOT "\content" +; ****************** voice ********************** +!ifndef ${VOICE_LOCATION} + !ifdef ${VOICE_USE_MIRROR} + !define VOICE_LOCATION ${MIRROR_LOCATION} + !else + !define VOICE_LOCATION ${DOWNLOAD_LOCATION} + !endif +!endif +!ifndef ${VOICE_USE_MIRROR} + !define VOICE_USE_MIRROR 0 +!endif +!ifndef ${VOICE_PACKAGE_FILE} + !define VOICE_PACKAGE_FILE "uqm-${MUI_VERSION}-voice.zip" +!endif +!ifndef ${VOICE_TYPE} + !define VOICE_TYPE "zip" +!endif +!ifndef ${VOICE_ROOT} + !define VOICE_ROOT "\content" +!endif -!define VOICE_USE_MIRROR 1 -!define VOICE_LOCATION "http://sc2.sourceforge.net/install_files/mirrors.txt" -!define VOICE_PACKAGE_FILE "uqm-${MUI_VERSION}-voice.zip" -!define VOICE_TYPE "zip" -!define VOICE_ROOT "\content" +; **************** 3do music ********************* +!ifndef ${THREEDO_LOCATION} + !ifdef ${THREEDO_USE_MIRROR} + !define THREEDO_LOCATION ${MIRROR_LOCATION} + !else + !define THREEDO_LOCATION ${DOWNLOAD_LOCATION} + !endif +!endif +!ifndef ${THREEDO_USE_MIRROR} + !define THREEDO_USE_MIRROR 0 +!endif +!ifndef ${THREEDO_PACKAGE_FILE} + !define THREEDO_PACKAGE_FILE "uqm-${MUI_VERSION}-3domusic.zip" +!endif +!ifndef ${THREEDO_TYPE} + !define THREEDO_TYPE "zip" +!endif +!ifndef ${THREEDO_ROOT} + !define THREEDO_ROOT "\content" +!endif -!define THREEDO_USE_MIRROR 1 -!define THREEDO_LOCATION "http://sc2.sourceforge.net/install_files/mirrors.txt" -!define THREEDO_PACKAGE_FILE "uqm-${MUI_VERSION}-3domusic.zip" -!define THREEDO_TYPE "zip" -!define THREEDO_ROOT "\content" +; ***************** 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 -!define UPGRADE_USE_MIRROR 0 -!define UPGRADE_LOCATION "http://sc2.sourceforge.net/install_files/" -!define UPGRADE_PACKAGE_FILE "uqm-${OLD_VERSION}_to_${MUI_VERSION}-content.zip" -!define UPGRADE_TYPE "zip" -!define UPGRADE_ROOT "\content" +; ************** 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 -!define VUPGRADE_USE_MIRROR 0 -!define VUPGRADE_LOCATION "http://sc2.sourceforge.net/install_files/" -!define VUPGRADE_PACKAGE_FILE "uqm-${OLD_VERSION}_to_${MUI_VERSION}-voice.zip" -!define VUPGRADE_TYPE "zip" -!define VUPGRADE_ROOT "\content" ;-------------------------------- !include "MUI.nsh" -!verbose 3 -!include "content.nsh" -!verbose 4 ;-------------------------------- ;Configuration ;Preprocessing of input files - !packhdr temp.dat "upx.exe --best --crp-ms=100000 temp.dat" + !ifdef USE_UBX + !system 'upx --best --crp-ms=100000 -f -q ..\..\uqm.exe' ignore + !packhdr temp.dat "upx.exe --best --crp-ms=100000 temp.dat" + !endif ;SetCompressor bzip2 ;Interface !define MUI_UI "${NSISDIR}\Contrib\UIs\modern2.exe" @@ -72,7 +124,7 @@ !insertmacro MUI_LANGUAGE "English" !include "uqm_english.nsh" - OutFile "UQMSetup.exe" + OutFile "UQMSetup-${MUI_VERSION}.exe" ;Page order diff --git a/sc2/src/msvc++/UrQuanMasters.dsp b/sc2/src/msvc++/UrQuanMasters.dsp index 2bf555282..d53f58a8b 100644 --- a/sc2/src/msvc++/UrQuanMasters.dsp +++ b/sc2/src/msvc++/UrQuanMasters.dsp @@ -3316,6 +3316,10 @@ SOURCE=..\options.h # End Source File # Begin Source File +SOURCE=..\version.h +# End Source File +# Begin Source File + SOURCE=..\types.h # End Source File # Begin Source File diff --git a/sc2/src/options.h b/sc2/src/options.h index 8fa2d0192..c20fb441d 100644 --- a/sc2/src/options.h +++ b/sc2/src/options.h @@ -22,9 +22,6 @@ #ifndef OPTIONS_H #define OPTIONS_H -#define UQM_MAJOR_VERSION 0 -#define UQM_MINOR_VERSION 14 - #define OPT_3DO 0x01 #define OPT_PC 0x02 #define OPT_ALL 0xFF diff --git a/sc2/src/sc2code/libs/graphics/sdl/sdl_common.c b/sc2/src/sc2code/libs/graphics/sdl/sdl_common.c index c122a365a..bf758b163 100644 --- a/sc2/src/sc2code/libs/graphics/sdl/sdl_common.c +++ b/sc2/src/sc2code/libs/graphics/sdl/sdl_common.c @@ -25,6 +25,7 @@ #include "primitives.h" #include "dcqueue.h" #include "options.h" +#include "version.h" #include "SDL_thread.h" #include "libs/graphics/drawcmd.h" #include "bbox.h" @@ -76,7 +77,8 @@ TFB_InitGraphics (int driver, int flags, int width, int height, int bpp) result = TFB_Pure_InitGraphics (driver, flags, width, height, bpp); } - sprintf (caption, "The Ur-Quan Masters v%d.%d", UQM_MAJOR_VERSION, UQM_MINOR_VERSION); + sprintf (caption, "The Ur-Quan Masters v%d.%d%s", + UQM_MAJOR_VERSION, UQM_MINOR_VERSION, UQM_EXTRA_VERSION); SDL_WM_SetCaption (caption, NULL); //if (flags & TFB_GFXFLAGS_FULLSCREEN) diff --git a/sc2/src/starcon2.c b/sc2/src/starcon2.c index da0917751..f0def4bee 100644 --- a/sc2/src/starcon2.c +++ b/sc2/src/starcon2.c @@ -36,6 +36,7 @@ #include "file.h" #include "port.h" #include "options.h" +#include "version.h" #include "comm.h" #if defined(GFXMODULE_SDL) || defined(SOUNDMODULE_SDL) @@ -124,7 +125,9 @@ main (int argc, char *argv[]) {0, 0, 0, 0} }; - fprintf (stderr, "The Ur-Quan Masters v%d.%d (compiled %s %s)\n", UQM_MAJOR_VERSION, UQM_MINOR_VERSION, __DATE__, __TIME__); + fprintf (stderr, "The Ur-Quan Masters v%d.%d%s (compiled %s %s)\n", + UQM_MAJOR_VERSION, UQM_MINOR_VERSION, UQM_EXTRA_VERSION, + __DATE__, __TIME__); #ifdef CONTENTDIR strcpy (contentdir, CONTENTDIR); diff --git a/sc2/src/version.h b/sc2/src/version.h new file mode 100644 index 000000000..e15b925ae --- /dev/null +++ b/sc2/src/version.h @@ -0,0 +1,27 @@ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifndef VERSION_H +#define VERSION_H + +#define UQM_MAJOR_VERSION 0 +#define UQM_MINOR_VERSION 14 +#define UQM_EXTRA_VERSION "" +/* The final version is interpreted as: + printf ("%d.%d%s", UQM_MAJOR_VERSION, UQM_MINOR_VERSION, UQM_EXTRA_VERSION); +*/ +#endif +