char *artwork_path;
if (leveldir_current == NULL)
- return NOT_AVAILABLE;
+ return UNDEFINED_FILENAME;
artwork_path =
(type == TREE_TYPE_GRAPHICS_DIR ? leveldir_current->graphics_path :
type == TREE_TYPE_SOUNDS_DIR ? leveldir_current->sounds_path :
type == TREE_TYPE_MUSIC_DIR ? leveldir_current->music_path :
- NOT_AVAILABLE);
+ UNDEFINED_FILENAME);
return artwork_path;
}
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))
return NULL; /* cannot find specified artwork file anywhere */
}
-char *getCustomSoundConfigFilename()
+char *getCustomArtworkFilename(char *basename, int type)
+{
+ if (type == ARTWORK_TYPE_GRAPHICS)
+ return getCustomImageFilename(basename);
+ else if (type == ARTWORK_TYPE_SOUNDS)
+ return getCustomSoundFilename(basename);
+ else
+ return UNDEFINED_FILENAME;
+}
+
+char *getCustomArtworkConfigFilename(int type)
{
- return getCustomSoundFilename(SOUNDSINFO_FILENAME);
+ return getCustomArtworkFilename(ARTWORKINFO_FILENAME(type), type);
}
char *getCustomMusicDirectory(void)
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))
ldi->graphics_set = NULL;
ldi->sounds_set = NULL;
ldi->music_set = NULL;
- ldi->graphics_path = getStringCopy(NOT_AVAILABLE);
- ldi->sounds_path = getStringCopy(NOT_AVAILABLE);
- ldi->music_path = getStringCopy(NOT_AVAILABLE);
+ ldi->graphics_path = getStringCopy(UNDEFINED_FILENAME);
+ ldi->sounds_path = getStringCopy(UNDEFINED_FILENAME);
+ ldi->music_path = getStringCopy(UNDEFINED_FILENAME);
ldi->levels = 0;
ldi->first_level = 0;
ldi->last_level = 0;
setTreeInfoToDefaults(artwork_new, type);
- artwork_new->filename = getStringCopy(NOT_AVAILABLE);
- artwork_new->fullpath = getStringCopy(NOT_AVAILABLE);
- artwork_new->basepath = getStringCopy(NOT_AVAILABLE);
+ artwork_new->filename = getStringCopy(UNDEFINED_FILENAME);
+ artwork_new->fullpath = getStringCopy(UNDEFINED_FILENAME);
+ artwork_new->basepath = getStringCopy(UNDEFINED_FILENAME);
if (artwork_new->name != NULL)
free(artwork_new->name);
- artwork_new->identifier = getStringCopy(NOT_AVAILABLE);
- artwork_new->name = getStringCopy(NOT_AVAILABLE);
- artwork_new->name_sorting = getStringCopy(NOT_AVAILABLE);
+ artwork_new->identifier = getStringCopy(UNDEFINED_FILENAME);
+ artwork_new->name = getStringCopy(UNDEFINED_FILENAME);
+ artwork_new->name_sorting = getStringCopy(UNDEFINED_FILENAME);
return artwork_new;
}
ldi.first_level = 1;
ldi.sort_priority = LEVELCLASS_USER_START;
ldi.readonly = FALSE;
+ ldi.graphics_set = getStringCopy(GRAPHICS_SUBDIR);
+ ldi.sounds_set = getStringCopy(SOUNDS_SUBDIR);
+ ldi.music_set = getStringCopy(MUSIC_SUBDIR);
fprintf(file, "%s\n\n", getFormattedSetupEntry(TOKEN_STR_FILE_IDENTIFIER,
getCookie("LEVELINFO")));