added some configuration options for global animation properties
[rocksndiamonds.git] / src / libgame / misc.c
index 3a7c28f4a3b0fe51fcf1d32e755286c119cab217..4498e7f49522a8ea9bfcd9485d87ab1cd584771c 100644 (file)
@@ -1139,6 +1139,12 @@ void GetOptions(int argc, char *argv[],
       /* when doing batch processing, always enable verbose mode (warnings) */
       options.verbose = TRUE;
     }
+#if defined(PLATFORM_MACOSX)
+    else if (strPrefix(option, "-psn"))
+    {
+      /* ignore process serial number when launched via GUI on Mac OS X */
+    }
+#endif
     else if (*option == '-')
     {
       Error(ERR_EXIT_HELP, "unrecognized option '%s'", option_str);
@@ -2647,6 +2653,17 @@ int get_parameter_value(char *value_raw, char *suffix, int type)
              strEqual(value, "up")    ? MV_UP :
              strEqual(value, "down")  ? MV_DOWN : MV_NONE);
   }
+  else if (strEqual(suffix, ".position"))
+  {
+    result = (strEqual(value, "left")   ? POS_LEFT :
+             strEqual(value, "right")  ? POS_RIGHT :
+             strEqual(value, "top")    ? POS_TOP :
+             strEqual(value, "upper")  ? POS_UPPER :
+             strEqual(value, "middle") ? POS_MIDDLE :
+             strEqual(value, "lower")  ? POS_LOWER :
+             strEqual(value, "bottom") ? POS_BOTTOM :
+             strEqual(value, "any")    ? POS_ANY : POS_UNDEFINED);
+  }
   else if (strEqual(suffix, ".align"))
   {
     result = (strEqual(value, "left")   ? ALIGN_LEFT :
@@ -2675,6 +2692,7 @@ int get_parameter_value(char *value_raw, char *suffix, int type)
              string_has_parameter(value, "horizontal") ? ANIM_HORIZONTAL :
              string_has_parameter(value, "vertical")   ? ANIM_VERTICAL :
              string_has_parameter(value, "centered")   ? ANIM_CENTERED :
+             string_has_parameter(value, "all")        ? ANIM_ALL :
              ANIM_DEFAULT);
 
     if (string_has_parameter(value, "reverse"))
@@ -2706,6 +2724,7 @@ int get_parameter_value(char *value_raw, char *suffix, int type)
              string_has_parameter(value, "fade")       ? FADE_MODE_FADE :
              string_has_parameter(value, "crossfade")  ? FADE_MODE_CROSSFADE :
              string_has_parameter(value, "melt")       ? FADE_MODE_MELT :
+             string_has_parameter(value, "curtain")    ? FADE_MODE_CURTAIN :
              FADE_MODE_DEFAULT);
   }
   else if (strPrefix(suffix, ".font"))         /* (may also be ".font_xyz") */
@@ -3269,8 +3288,8 @@ static void LoadArtworkConfigFromFilename(struct ArtworkListInfo *artwork_info,
     boolean unknown_tokens_found = FALSE;
     boolean undefined_values_found = (hashtable_count(empty_file_hash) != 0);
 
-    if ((setup_file_list = loadSetupFileList(filename)) == NULL)
-      Error(ERR_EXIT, "loadSetupFileHash works, but loadSetupFileList fails");
+    /* list may be NULL for empty artwork config files */
+    setup_file_list = loadSetupFileList(filename);
 
     BEGIN_HASH_ITERATION(extra_file_hash, itr)
     {