From 34865a8ef1723b9469a9abf50dd8bcf94c22f27a Mon Sep 17 00:00:00 2001 From: Misa Date: Sat, 6 Mar 2021 10:48:02 -0800 Subject: [PATCH] Add FILESYSTEM_isAssetMounted() This function will check if a specific file is a mounted per-level custom asset, instead of being a variable that's true if ANY file is a mounted asset. --- desktop_version/src/FileSystemUtils.cpp | 20 ++++++++++++++++++++ desktop_version/src/FileSystemUtils.h | 1 + 2 files changed, 21 insertions(+) diff --git a/desktop_version/src/FileSystemUtils.cpp b/desktop_version/src/FileSystemUtils.cpp index 24b6d5d5..a93f936d 100644 --- a/desktop_version/src/FileSystemUtils.cpp +++ b/desktop_version/src/FileSystemUtils.cpp @@ -361,6 +361,26 @@ void FILESYSTEM_unmountassets(void) FILESYSTEM_assetsmounted = false; } +bool FILESYSTEM_isAssetMounted(const char* filename) +{ + const char* realDir; + + /* Fast path */ + if (assetDir[0] == '\0') + { + return false; + } + + realDir = PHYSFS_getRealDir(filename); + + if (realDir == NULL) + { + return false; + } + + return SDL_strcmp(assetDir, realDir) == 0; +} + void FILESYSTEM_freeMemory(unsigned char **mem); void FILESYSTEM_loadFileToMemory( diff --git a/desktop_version/src/FileSystemUtils.h b/desktop_version/src/FileSystemUtils.h index f3aee2e3..e9c885f8 100644 --- a/desktop_version/src/FileSystemUtils.h +++ b/desktop_version/src/FileSystemUtils.h @@ -20,6 +20,7 @@ void FILESYSTEM_loadZip(const char* filename); extern bool FILESYSTEM_assetsmounted; void FILESYSTEM_mountassets(const char *path); void FILESYSTEM_unmountassets(void); +bool FILESYSTEM_isAssetMounted(const char* filename); void FILESYSTEM_loadFileToMemory(const char *name, unsigned char **mem, size_t *len, bool addnull = false);