diff --git a/desktop_version/src/FileSystemUtils.cpp b/desktop_version/src/FileSystemUtils.cpp index a42d1137..4cbb6e50 100644 --- a/desktop_version/src/FileSystemUtils.cpp +++ b/desktop_version/src/FileSystemUtils.cpp @@ -165,6 +165,8 @@ void FILESYSTEM_mount(const char *fname) } } +bool FILESYSTEM_assetsmounted = false; + void FILESYSTEM_mountassets(const char* path) { const std::string _path(path); @@ -182,6 +184,7 @@ void FILESYSTEM_mountassets(const char* path) printf("Custom asset directory exists at %s\n", zippath.c_str()); FILESYSTEM_mount(zippath.c_str()); graphics.reloadresources(); + FILESYSTEM_assetsmounted = true; } else if (zip_path != "data.zip" && !endsWith(zip_path, "/data.zip") && endsWith(zip_path, ".zip")) { printf("Custom asset directory is .zip at %s\n", zip_path.c_str()); PHYSFS_File* zip = PHYSFS_openRead(zip_path.c_str()); @@ -193,13 +196,16 @@ void FILESYSTEM_mountassets(const char* path) } else { graphics.assetdir = zip_path; } + FILESYSTEM_assetsmounted = true; graphics.reloadresources(); } else if (FILESYSTEM_directoryExists(dirpath.c_str())) { printf("Custom asset directory exists at %s\n",dirpath.c_str()); FILESYSTEM_mount(dirpath.c_str()); graphics.reloadresources(); + FILESYSTEM_assetsmounted = true; } else { printf("Custom asset directory does not exist\n"); + FILESYSTEM_assetsmounted = false; } } @@ -216,6 +222,7 @@ void FILESYSTEM_unmountassets() { printf("Cannot unmount when no asset directory is mounted\n"); } + FILESYSTEM_assetsmounted = false; } void FILESYSTEM_loadFileToMemory( diff --git a/desktop_version/src/FileSystemUtils.h b/desktop_version/src/FileSystemUtils.h index e08a24cb..254383f4 100644 --- a/desktop_version/src/FileSystemUtils.h +++ b/desktop_version/src/FileSystemUtils.h @@ -15,6 +15,7 @@ char *FILESYSTEM_getUserLevelDirectory(); bool FILESYSTEM_directoryExists(const char *fname); void FILESYSTEM_mount(const char *fname); +extern bool FILESYSTEM_assetsmounted; void FILESYSTEM_mountassets(const char *path); void FILESYSTEM_unmountassets(); diff --git a/desktop_version/src/Graphics.cpp b/desktop_version/src/Graphics.cpp index 70f87afc..b1eee6da 100644 --- a/desktop_version/src/Graphics.cpp +++ b/desktop_version/src/Graphics.cpp @@ -640,7 +640,7 @@ void Graphics::drawtile( int x, int y, int t ) SDL_Rect rect = { Sint16(x), Sint16(y), tiles_rect.w, tiles_rect.h }; #if !defined(NO_CUSTOM_LEVELS) - if (t >= 14 && t <= 17) + if (t >= 14 && t <= 17 && !FILESYSTEM_assetsmounted) { colourTransform thect = {ed.getonewaycol()}; BlitSurfaceTinted(tiles[t], NULL, backBuffer, &rect, thect); @@ -663,7 +663,7 @@ void Graphics::drawtile2( int x, int y, int t ) SDL_Rect rect = { Sint16(x), Sint16(y), tiles_rect.w, tiles_rect.h }; #if !defined(NO_CUSTOM_LEVELS) - if (t >= 14 && t <= 17) + if (t >= 14 && t <= 17 && !FILESYSTEM_assetsmounted) { colourTransform thect = {ed.getonewaycol()}; BlitSurfaceTinted(tiles2[t], NULL, backBuffer, &rect, thect); @@ -3119,7 +3119,7 @@ void Graphics::drawforetile(int x, int y, int t) setRect(rect, x,y,tiles_rect.w, tiles_rect.h); #if !defined(NO_CUSTOM_LEVELS) - if (t >= 14 && t <= 17) + if (t >= 14 && t <= 17 && !FILESYSTEM_assetsmounted) { colourTransform thect = {ed.getonewaycol()}; BlitSurfaceTinted(tiles[t], NULL, foregroundBuffer, &rect, thect); @@ -3142,7 +3142,7 @@ void Graphics::drawforetile2(int x, int y, int t) setRect(rect, x,y,tiles_rect.w, tiles_rect.h); #if !defined(NO_CUSTOM_LEVELS) - if (t >= 14 && t <= 17) + if (t >= 14 && t <= 17 && !FILESYSTEM_assetsmounted) { colourTransform thect = {ed.getonewaycol()}; BlitSurfaceTinted(tiles2[t], NULL, foregroundBuffer, &rect, thect);