options.network = FALSE;
options.verbose = FALSE;
options.debug = FALSE;
+ options.debug_x11_sync = FALSE;
#if !defined(PLATFORM_UNIX)
if (*options_left == NULL) /* no options given -- enable verbose mode */
{
options.debug = TRUE;
}
+ else if (strncmp(option, "-debug-x11-sync", option_len) == 0)
+ {
+ options.debug_x11_sync = TRUE;
+ }
else if (strncmp(option, "-execute", option_len) == 0)
{
if (option_arg == NULL)
return result;
}
+int get_switch3_from_string(char *s)
+{
+ char *s_lower = getStringToLower(s);
+ int result = FALSE;
+
+ if (strEqual(s_lower, "true") ||
+ strEqual(s_lower, "yes") ||
+ strEqual(s_lower, "on") ||
+ get_integer_from_string(s) == 1)
+ result = TRUE;
+ else if (strEqual(s_lower, "auto"))
+ result = AUTO;
+
+ free(s_lower);
+
+ return result;
+}
+
/* ------------------------------------------------------------------------- */
/* functions for generic lists */
file_list[i].redefined = FALSE;
file_list[i].fallback_to_default = FALSE;
+ file_list[i].default_is_cloned = FALSE;
}
}
printf("::: '%s' => '%s'\n", config_list[i].token, config_list[i].value);
#endif
}
+
+ if (strSuffix(config_list[i].token, ".clone_from"))
+ file_list[list_pos].default_is_cloned = TRUE;
}
num_file_list_entries_found = list_pos + 1;
new_list_entry->redefined = FALSE;
new_list_entry->fallback_to_default = FALSE;
+ new_list_entry->default_is_cloned = FALSE;
read_token_parameters(extra_file_hash, suffix_list, new_list_entry);
}
artwork_info->num_property_mapping_entries = 0;
}
+#if 1
+ if (!GFX_OVERRIDE_ARTWORK(artwork_info->type))
+#else
if (!SETUP_OVERRIDE_ARTWORK(setup, artwork_info->type))
+#endif
{
/* first look for special artwork configured in level series config */
filename_base = getCustomArtworkLevelConfigFilename(artwork_info->type);
+#if 0
+ printf("::: filename_base == '%s' [%s, %s]\n", filename_base,
+ leveldir_current->graphics_set,
+ leveldir_current->graphics_path);
+#endif
+
if (fileExists(filename_base))
LoadArtworkConfigFromFilename(artwork_info, filename_base);
}
basename = file_list_entry->default_filename;
+ /* fail for cloned default artwork that has no default filename defined */
+ if (file_list_entry->default_is_cloned &&
+ strEqual(basename, UNDEFINED_FILENAME))
+ {
+ int error_mode = ERR_WARN;
+
+ /* we can get away without sounds and music, but not without graphics */
+ if (*listnode == NULL && artwork_info->type == ARTWORK_TYPE_GRAPHICS)
+ error_mode = ERR_EXIT;
+
+ Error(error_mode, "token '%s' was cloned and has no default filename",
+ file_list_entry->token);
+
+ return;
+ }
+
/* dynamic artwork has no default filename / skip empty default artwork */
if (basename == NULL || strEqual(basename, UNDEFINED_FILENAME))
return;
error_mode = ERR_EXIT;
Error(error_mode, "cannot load artwork file '%s'", basename);
+
return;
}
}