return getStringCat3WithSeparator(path1, path2, path3, STRING_PATH_SEPARATOR);
}
+char *getImg2(char *path1, char *path2)
+{
+ char *filename = getPath2(path1, path2);
+
+ if (!fileExists(filename) && strSuffix(path2, ".png"))
+ {
+ // backward compatibility: if PNG file not found, check for PCX file
+ char *path2pcx = getStringCopy(path2);
+
+ strcpy(&path2pcx[strlen(path2pcx) - 3], "pcx");
+
+ free(filename);
+
+ filename = getPath2(path1, path2pcx);
+
+ free(path2pcx);
+ }
+
+ return filename;
+}
+
+char *getImg3(char *path1, char *path2, char *path3)
+{
+ char *filename = getPath3(path1, path2, path3);
+
+ if (!fileExists(filename) && strSuffix(path3, ".png"))
+ {
+ // backward compatibility: if PNG file not found, check for PCX file
+ char *path3pcx = getStringCopy(path3);
+
+ strcpy(&path3pcx[strlen(path3pcx) - 3], "pcx");
+
+ free(filename);
+
+ filename = getPath3(path1, path2, path3pcx);
+
+ free(path3pcx);
+ }
+
+ return filename;
+}
+
char *getStringCopy(const char *s)
{
char *s_copy;
if (dir_name == NULL)
return FALSE;
- boolean success = (access(dir_name, F_OK) == 0);
+ struct stat file_status;
+ boolean success = (stat(dir_name, &file_status) == 0 &&
+ (file_status.st_mode & S_IFMT) == S_IFDIR);
#if defined(PLATFORM_ANDROID)
if (!success)
return FALSE;
}
-static boolean FileCouldBeArtwork(char *basename)
+static boolean FileCouldBeArtwork(char *filename)
{
+ char *basename = getBaseNamePtr(filename);
+
return (!strEqual(basename, ".") &&
!strEqual(basename, "..") &&
!fileHasSuffix(basename, "txt") &&
- !fileHasSuffix(basename, "conf"));
+ !fileHasSuffix(basename, "conf") &&
+ !directoryExists(filename));
}
boolean FileIsGraphic(char *filename)
{
- char *basename = getBaseNamePtr(filename);
-
- return FileCouldBeArtwork(basename);
+ return FileCouldBeArtwork(filename);
}
boolean FileIsSound(char *filename)
{
- char *basename = getBaseNamePtr(filename);
-
- return FileCouldBeArtwork(basename);
+ return FileCouldBeArtwork(filename);
}
boolean FileIsMusic(char *filename)
{
- char *basename = getBaseNamePtr(filename);
-
- return FileCouldBeArtwork(basename);
+ return FileCouldBeArtwork(filename);
}
-boolean FileIsArtworkType(char *basename, int type)
+boolean FileIsArtworkType(char *filename, int type)
{
- if ((type == TREE_TYPE_GRAPHICS_DIR && FileIsGraphic(basename)) ||
- (type == TREE_TYPE_SOUNDS_DIR && FileIsSound(basename)) ||
- (type == TREE_TYPE_MUSIC_DIR && FileIsMusic(basename)))
+ if ((type == TREE_TYPE_GRAPHICS_DIR && FileIsGraphic(filename)) ||
+ (type == TREE_TYPE_SOUNDS_DIR && FileIsSound(filename)) ||
+ (type == TREE_TYPE_MUSIC_DIR && FileIsMusic(filename)))
return TRUE;
return FALSE;