/* system info functions */
/* ------------------------------------------------------------------------- */
+#if !defined(PLATFORM_MSDOS)
static char *get_corrected_real_name(char *real_name)
{
char *real_name_new = checked_malloc(MAX_USERNAME_LEN + 1);
return real_name_new;
}
+#endif
char *getLoginName()
{
return (access(filename, F_OK) == 0);
}
-boolean FileIsGraphic(char *filename)
+boolean fileHasPrefix(char *basename, char *prefix)
{
- if (strlen(filename) > 4 &&
- strcmp(&filename[strlen(filename) - 4], ".pcx") == 0)
+ static char *basename_lower = NULL;
+ int basename_length, prefix_length;
+
+ if (basename_lower != NULL)
+ free(basename_lower);
+
+ if (basename == NULL || prefix == NULL)
+ return FALSE;
+
+ basename_lower = getStringToLower(basename);
+ basename_length = strlen(basename_lower);
+ prefix_length = strlen(prefix);
+
+ if (basename_length > prefix_length + 1 &&
+ basename_lower[prefix_length] == '.' &&
+ strncmp(basename_lower, prefix, prefix_length) == 0)
return TRUE;
return FALSE;
}
-boolean FileIsSound(char *basename)
+boolean fileHasSuffix(char *basename, char *suffix)
{
- if (strlen(basename) > 4 &&
- strcmp(&basename[strlen(basename) - 4], ".wav") == 0)
+ static char *basename_lower = NULL;
+ int basename_length, suffix_length;
+
+ if (basename_lower != NULL)
+ free(basename_lower);
+
+ if (basename == NULL || suffix == NULL)
+ return FALSE;
+
+ basename_lower = getStringToLower(basename);
+ basename_length = strlen(basename_lower);
+ suffix_length = strlen(suffix);
+
+ if (basename_length > suffix_length + 1 &&
+ basename_lower[basename_length - suffix_length - 1] == '.' &&
+ strcmp(&basename_lower[basename_length - suffix_length], suffix) == 0)
return TRUE;
return FALSE;
}
-boolean FileIsMusic(char *basename)
+boolean FileIsGraphic(char *basename)
{
- /* "music" can be a WAV (loop) file or (if compiled with SDL) a MOD file */
+ return fileHasSuffix(basename, "pcx");
+}
+boolean FileIsSound(char *basename)
+{
+ return fileHasSuffix(basename, "wav");
+}
+
+boolean FileIsMusic(char *basename)
+{
if (FileIsSound(basename))
return TRUE;
#if defined(TARGET_SDL)
- if (strlen(basename) > 4 &&
- (strcmp(&basename[strlen(basename) - 4], ".mod") == 0 ||
- strcmp(&basename[strlen(basename) - 4], ".MOD") == 0 ||
- strncmp(basename, "mod.", 4) == 0 ||
- strncmp(basename, "MOD.", 4) == 0))
+ if (fileHasPrefix(basename, "mod") ||
+ fileHasSuffix(basename, "mod") ||
+ fileHasSuffix(basename, "s3m") ||
+ fileHasSuffix(basename, "it") ||
+ fileHasSuffix(basename, "xm") ||
+ fileHasSuffix(basename, "midi") ||
+ fileHasSuffix(basename, "mid") ||
+ fileHasSuffix(basename, "mp3") ||
+ fileHasSuffix(basename, "ogg"))
return TRUE;
#endif
}
END_HASH_ITERATION(extra_file_hash, itr)
-#if DEBUG
- if (dynamic_tokens_found)
+ if (options.debug && dynamic_tokens_found)
{
Error(ERR_RETURN_LINE, "-");
- Error(ERR_RETURN, "dynamic token(s) found:");
+ Error(ERR_RETURN, "dynamic token(s) found in config file:");
+ Error(ERR_RETURN, "- config file: '%s'", filename);
for (list = setup_file_list; list != NULL; list = list->next)
{
Error(ERR_RETURN_LINE, "-");
}
-#endif
if (unknown_tokens_found)
{
struct FileInfo *file_list = artwork_info->file_list;
int num_file_list_entries = artwork_info->num_file_list_entries;
int num_suffix_list_entries = artwork_info->num_suffix_list_entries;
- char *filename_base, *filename_local;
+ char *filename_base = UNDEFINED_FILENAME, *filename_local;
int i, j;
#if 0
artwork_info->num_property_mapping_entries = 0;
}
- /* first look for special artwork configured in level series config */
- filename_base = getCustomArtworkLevelConfigFilename(artwork_info->type);
+ if (!SETUP_OVERRIDE_ARTWORK(setup, artwork_info->type))
+ {
+ /* first look for special artwork configured in level series config */
+ filename_base = getCustomArtworkLevelConfigFilename(artwork_info->type);
- if (fileExists(filename_base))
- LoadArtworkConfigFromFilename(artwork_info, filename_base);
+ if (fileExists(filename_base))
+ LoadArtworkConfigFromFilename(artwork_info, filename_base);
+ }
filename_local = getCustomArtworkConfigFilename(artwork_info->type);
{
int error_mode = ERR_WARN;
+#if 1
/* 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;
+#endif
Error(error_mode, "cannot find artwork file '%s'", basename);
return;
{
int error_mode = ERR_WARN;
+#if 1
/* we can get away without sounds and music, but not without graphics */
if (artwork_info->type == ARTWORK_TYPE_GRAPHICS)
error_mode = ERR_EXIT;
+#endif
Error(error_mode, "cannot load artwork file '%s'", basename);
return;
LoadArtworkToList(artwork_info, &artwork_info->artwork_list[i],
file_list[i].filename, i);
+
+#if 0
+ if (artwork_info->artwork_list[i] == NULL &&
+ strcmp(file_list[i].default_filename, file_list[i].filename) != 0)
+ {
+ Error(ERR_WARN, "trying default artwork file '%s'",
+ file_list[i].default_filename);
+
+ LoadArtworkToList(artwork_info, &artwork_info->artwork_list[i],
+ file_list[i].default_filename, i);
+ }
+#endif
}
#if 0