home *** CD-ROM | disk | FTP | other *** search
- //
- // GERMAN UPDATE setup.rul
- //
- // NOTE: Changes made to this script should be made to the scripts for each
- // other language too!
- //
-
- // Game & folder names
- #define APP_TITLE "NOLF Update (v1.002)"
- #define APP_NAME "No One Lives Forever"
- #define APP_VERSION "1.0"
- #define APP_KEY "NOLF.exe"
- #define DEFAULT_PATH "Fox\\No One Lives Forever"
- #define DEFAULT_GROUP "Fox Interactive\\No One Lives Forever"
- #define UPDATE_VERSION "1.002"
- #define UPDATE_COMMAND "-rez Nolfu002.rez -rez Nolfcres002.rez"
- #define README_FILE "READMEU002.TXT"
-
- declare
- NUMBER nResult;
- NUMBER nType, nSize;
- STRING svSrcDir, svTargetDir;
- STRING svRegKey;
- STRING svTemp;
- STRING svVersion;
-
- program
- start:
- // Set paths
- svSrcDir = SRCDIR ^ "..\\..\\";
-
- // Setup screen & title
- Enable(BACKGROUND);
- SetColor(BACKGROUND, RGB(236, 164, 4));
- SetTitle(APP_TITLE, 26, WHITE);
-
- SetColor(STATUSBAR, BK_SOLIDBLUE);
- PlaceBitmap(svSrcDir ^ "SETUP\\NOLF1.BMP", 1, CENTERED, CENTERED, CENTERED);
- Delay(2);
-
- // Get installed path from registry
- RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
- svRegKey = "Software\\Monolith Productions\\" + APP_NAME + "\\" + APP_VERSION;
- nType = REGDB_STRING;
- nSize = -1;
- nResult = RegDBGetKeyValueEx(svRegKey, "WorkingDirectory", nType, svTargetDir, nSize);
- if (nResult < 0) then
- svTemp = APP_NAME + " kann nicht auf Version " + UPDATE_VERSION + " aktualisiert werden. ▄berprⁿfe, ob " +
- APP_NAME + " richtig installiert wurde!";
- MessageBox(svTemp, WARNING);
- exit;
- endif;
-
- // Check version number of what's already installed
- nType = REGDB_STRING;
- nSize = -1;
- nResult = RegDBGetKeyValueEx(svRegKey, "Version", nType, svVersion, nSize);
- if (nResult = 0) then
- nResult = StrCompare(svVersion, UPDATE_VERSION);
- if (nResult > 0) then
-
- svTemp = "Du benutzt momentan v" + svVersion + " von " + APP_NAME +
- ".\n\nDeshalb kannst du nicht auf v" + UPDATE_VERSION + " updaten." +
- "\n\nDie letzten Updates fⁿr " + APP_NAME +
- " k÷nnen unter http://www.the-operative.com heruntergeladen werden.";
- MessageBox(svTemp, INFORMATION);
- exit;
- endif;
- endif;
-
- // Show status window
- Disable(FEEDBACK_FULL);
- Enable(STATUS);
- Enable(INDVFILESTATUS);
- PlaceWindow(STATUS, CENTERED, 0, LOWER_RIGHT);
- SetStatusWindow(0, APP_NAME + " wird aktualisiert ...");
-
- // Copy all game files...
- StatusUpdate(ON, 100);
- SRCDIR = svSrcDir ^ "GAME";
- TARGETDIR = svTargetDir;
- CopyFile("*.*", "*.*");
-
- // Copy language-specific files...
- SRCDIR = svSrcDir ^ "GAME\\GERMAN";
- CopyFile("*.*", "*.*");
-
- // Display done message
- SetStatusWindow(1000, "Update abgeschlossen!");
-
- // Set new registry keys
- RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
- RegDBSetKeyValueEx(svRegKey, "Version", REGDB_STRING, UPDATE_VERSION, -1);
- RegDBSetKeyValueEx(svRegKey, "Update Command Line", REGDB_STRING, UPDATE_COMMAND, -1);
-
- // Do the readme...
-
- svTemp = "Das Update von " + APP_NAME + " ist abgeschlossen! M÷chtest du jetzt die README-Datei lesen?";
- if (AskYesNo(svTemp, YES) = YES) then
- LaunchAppAndWait("NOTEPAD.EXE " + svTargetDir ^ README_FILE, "", NOWAIT);
- endif;
-
- exit;