static char *getCorrectedImageBasename(char *basename)
{
- char *result = basename;
+ char *basename_corrected = basename;
#if defined(PLATFORM_MSDOS)
if (program.filename_prefix != NULL)
int prefix_len = strlen(program.filename_prefix);
if (strncmp(basename, program.filename_prefix, prefix_len) == 0)
- result = &basename[prefix_len];
+ basename_corrected = &basename[prefix_len];
+
+ /* if corrected filename is still longer than standard MS-DOS filename
+ size (8 characters + 1 dot + 3 characters file extension), shorten
+ filename by writing file extension after 8th basename character */
+ if (strlen(basename_corrected) > 8+1+3)
+ {
+ static char *msdos_filename = NULL;
+
+ if (filename != NULL)
+ free(filename);
+
+ filename = getStringCopy(basename_corrected);
+ strncpy(&filename[8], &basename[strlen(basename) - 1+3], 1+3 + 1);
+ }
}
#endif
- return result;
+ return basename_corrected;
}
static boolean fileExists(char *filename)
if (fileExists(filename))
return filename;
+ free(filename);
+
/* 2nd try: look for special artwork in current level series directory */
filename = getPath3(getCurrentLevelDir(), GRAPHICS_DIRECTORY, basename);
if (fileExists(filename))
return filename;
+
+ free(filename);
}
/* 3rd try: look for special artwork in configured artwork directory */
if (fileExists(filename))
return filename;
+ free(filename);
+
/* 4th try: look for default artwork in new default artwork directory */
filename = getPath2(getDefaultGraphicsDir(GRAPHICS_SUBDIR), basename);
if (fileExists(filename))
return filename;
+ free(filename);
+
/* 5th try: look for default artwork in old default artwork directory */
filename = getPath2(options.graphics_directory, basename);
if (fileExists(filename))
if (fileExists(filename))
return filename;
+ free(filename);
+
/* 2nd try: look for special artwork in current level series directory */
filename = getPath3(getCurrentLevelDir(), SOUNDS_DIRECTORY, basename);
if (fileExists(filename))
return filename;
+
+ free(filename);
}
/* 3rd try: look for special artwork in configured artwork directory */
if (fileExists(filename))
return filename;
+ free(filename);
+
/* 4th try: look for default artwork in new default artwork directory */
filename = getPath2(getDefaultSoundsDir(SOUNDS_SUBDIR), basename);
if (fileExists(filename))
return filename;
+ free(filename);
+
/* 5th try: look for default artwork in old default artwork directory */
filename = getPath2(options.sounds_directory, basename);
if (fileExists(filename))
if (fileExists(directory))
return directory;
+ free(directory);
+
/* 2nd try: look for special artwork in current level series directory */
directory = getPath2(getCurrentLevelDir(), MUSIC_DIRECTORY);
if (fileExists(directory))
return directory;
+
+ free(directory);
}
/* 3rd try: look for special artwork in configured artwork directory */
if (fileExists(directory))
return directory;
+ free(directory);
+
/* 4th try: look for default artwork in new default artwork directory */
directory = getStringCopy(getDefaultMusicDir(MUSIC_SUBDIR));
if (fileExists(directory))
return directory;
+ free(directory);
+
/* 5th try: look for default artwork in old default artwork directory */
directory = getStringCopy(options.music_directory);
if (fileExists(directory))