home *** CD-ROM | disk | FTP | other *** search
- //
- // ENGLISH 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 = "Unable to update " + APP_NAME + " to version " + UPDATE_VERSION + "!\n\nMake sure " + APP_NAME +
- " is installed correctly!";
- 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 = "You are currently running v" + svVersion +
- " of " + APP_NAME +".\n\nYou cannot update to v" + UPDATE_VERSION +
- ".\n\nYou can download the latest " + APP_NAME +
- " Updates from: http://www.the-operative.com";
- MessageBox(svTemp, INFORMATION);
- exit;
- endif;
- endif;
-
- // Show status window
- Disable(FEEDBACK_FULL);
- Enable(STATUS);
- Enable(INDVFILESTATUS);
- PlaceWindow(STATUS, CENTERED, 0, LOWER_RIGHT);
- SetStatusWindow(0, "Updating " + APP_NAME + "...");
-
- // Copy all game files...
- StatusUpdate(ON, 100);
- SRCDIR = svSrcDir ^ "GAME";
- TARGETDIR = svTargetDir;
- CopyFile("*.*", "*.*");
-
- // Display done message
- SetStatusWindow(1000, "Update complete!");
-
- // 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 = "The " + APP_NAME + " Update is complete! Would you like to read the README file now?";
- if (AskYesNo(svTemp, YES) = YES) then
- LaunchAppAndWait("NOTEPAD.EXE " + svTargetDir ^ README_FILE, "", NOWAIT);
- endif;
-
- exit;
-
-