diff --git a/src/modules/filesystem/physfs/File.cpp b/src/modules/filesystem/physfs/File.cpp index 26c40a6aa..4453b262d 100644 --- a/src/modules/filesystem/physfs/File.cpp +++ b/src/modules/filesystem/physfs/File.cpp @@ -32,11 +32,15 @@ namespace love namespace filesystem { -extern bool hack_setupWriteDirectory(); - namespace physfs { +static bool setupWriteDirectory() +{ + auto fs = Module::getInstance(Module::M_FILESYSTEM); + return fs != nullptr && fs->setupWriteDirectory(); +} + File::File(const std::string &filename) : filename(filename) , file(nullptr) @@ -65,7 +69,7 @@ bool File::open(Mode mode) throw love::Exception("Could not open file %s. Does not exist.", filename.c_str()); // Check whether the write directory is set. - if ((mode == MODE_APPEND || mode == MODE_WRITE) && (PHYSFS_getWriteDir() == nullptr) && !hack_setupWriteDirectory()) + if ((mode == MODE_APPEND || mode == MODE_WRITE) && (PHYSFS_getWriteDir() == nullptr) && !setupWriteDirectory()) throw love::Exception("Could not set write directory."); // File already open? diff --git a/src/modules/filesystem/wrap_Filesystem.cpp b/src/modules/filesystem/wrap_Filesystem.cpp index 61f365c59..fdb4a103c 100644 --- a/src/modules/filesystem/wrap_Filesystem.cpp +++ b/src/modules/filesystem/wrap_Filesystem.cpp @@ -45,13 +45,6 @@ namespace filesystem #define instance() (Module::getInstance(Module::M_FILESYSTEM)) -bool hack_setupWriteDirectory() -{ - if (instance() != 0) - return instance()->setupWriteDirectory(); - return false; -} - int w_init(lua_State *L) { const char *arg0 = luaL_checkstring(L, 1); diff --git a/src/modules/filesystem/wrap_Filesystem.h b/src/modules/filesystem/wrap_Filesystem.h index 2a361c47b..8c7a708af 100644 --- a/src/modules/filesystem/wrap_Filesystem.h +++ b/src/modules/filesystem/wrap_Filesystem.h @@ -45,7 +45,6 @@ File *luax_getfile(lua_State *L, int idx); Data *luax_getdata(lua_State *L, int idx); bool luax_cangetdata(lua_State *L, int idx); -bool hack_setupWriteDirectory(); int loader(lua_State *L); int extloader(lua_State *L); extern "C" LOVE_EXPORT int luaopen_love_filesystem(lua_State *L);