added custom version string to default program configuration settings
[rocksndiamonds.git] / src / main.c
index e24e0b73f9bb63fb277c50d183b06645495568ba..1dd7a167c16985f3605f9af9d1c4e2cb87679b4c 100644 (file)
@@ -183,6 +183,7 @@ SetupFileHash              *image_config_hash = NULL;
 SetupFileHash         *element_token_hash = NULL;
 SetupFileHash         *graphic_token_hash = NULL;
 SetupFileHash         *font_token_hash = NULL;
+SetupFileHash         *hide_setup_hash = NULL;
 
 
 /* ------------------------------------------------------------------------- */
@@ -5534,6 +5535,8 @@ struct SpecialSuffixInfo special_suffix_info[NUM_SPECIAL_GFX_ARGS + 1 + 1] =
   { ".SUBMENU",                        GFX_SPECIAL_ARG_SUBMENU,                },
   { ".MENU",                   GFX_SPECIAL_ARG_MENU,                   },
   { ".TOONS",                  GFX_SPECIAL_ARG_TOONS,                  },
+  { ".SCORESOLD",              GFX_SPECIAL_ARG_SCORESOLD,              },
+  { ".SCORESNEW",              GFX_SPECIAL_ARG_SCORESNEW,              },
   { ".FADING",                 GFX_SPECIAL_ARG_FADING,                 },
   { ".QUIT",                   GFX_SPECIAL_ARG_QUIT,                   },
 
@@ -5735,13 +5738,20 @@ static void print_usage()
 
 static void print_version()
 {
-  Print("%s %d.%d.%d.%d%s\n",
-       PROGRAM_TITLE_STRING,
-       PROGRAM_VERSION_MAJOR,
-       PROGRAM_VERSION_MINOR,
-       PROGRAM_VERSION_PATCH,
-       PROGRAM_VERSION_BUILD,
-       PROGRAM_VERSION_EXTRA);
+  Print("%s", getProgramInitString());
+
+  if (!strEqual(getProgramVersionString(), getProgramRealVersionString()))
+  {
+    Print(" (%s %d.%d.%d.%d%s)",
+         PROGRAM_TITLE_STRING,
+         PROGRAM_VERSION_MAJOR,
+         PROGRAM_VERSION_MINOR,
+         PROGRAM_VERSION_PATCH,
+         PROGRAM_VERSION_BUILD,
+         PROGRAM_VERSION_EXTRA);
+  }
+
+  Print("\n");
 
   if (options.debug)
   {
@@ -5777,6 +5787,7 @@ static void InitProgramConfig(char *command_filename)
 {
   char *program_title = PROGRAM_TITLE_STRING;
   char *program_icon_file = PROGRAM_ICON_FILENAME;
+  char *program_version = getProgramRealVersionString();
   char *config_filename = getProgramConfigFilename(command_filename);
   char *userdata_basename = getBaseNameNoSuffix(command_filename);
   char *userdata_subdir;
@@ -5802,6 +5813,11 @@ static void InitProgramConfig(char *command_filename)
       strlen(setup.internal.program_title) > 0)
     program_title = getStringCopy(setup.internal.program_title);
 
+  // set program version from potentially redefined program version
+  if (setup.internal.program_version != NULL &&
+      strlen(setup.internal.program_version) > 0)
+    program_version = getStringCopy(setup.internal.program_version);
+
   // set program icon file from potentially redefined program icon file
   if (setup.internal.program_icon_file != NULL &&
       strlen(setup.internal.program_icon_file) > 0)
@@ -5830,6 +5846,7 @@ static void InitProgramConfig(char *command_filename)
                  program_title,
                  program_icon_file,
                  COOKIE_PREFIX,
+                 program_version,
                  GAME_VERSION_ACTUAL);
 }