Added a flag that changes android storage from internal to external.

This commit is contained in:
BobbyJones
2015-12-31 01:28:00 -05:00
parent a42341aa73
commit 3c83fb8626
5 changed files with 17 additions and 9 deletions
+1 -1
View File
@@ -84,7 +84,7 @@ public:
* @param ident The name of the game. Will be used to
* to create the folder in the LOVE data folder.
**/
virtual bool setIdentity(const char *ident, bool appendToPath = false) = 0;
virtual bool setIdentity(const char *ident, bool appendToPath = false, bool internalStorage = false) = 0;
virtual const char *getIdentity() const = 0;
/**
+10 -5
View File
@@ -144,7 +144,7 @@ bool Filesystem::isFused() const
return fused;
}
bool Filesystem::setIdentity(const char *ident, bool appendToPath)
bool Filesystem::setIdentity(const char *ident, bool appendToPath, bool internalStorage)
{
if (!PHYSFS_isInit())
return false;
@@ -169,11 +169,16 @@ bool Filesystem::setIdentity(const char *ident, bool appendToPath)
#ifdef LOVE_ANDROID
if (save_identity == "")
save_identity = "unnamed";
std::string internal_storage_path = SDL_AndroidGetInternalStoragePath();
std::string save_directory = internal_storage_path + "/save";
save_path_full = std::string(SDL_AndroidGetInternalStoragePath()) + std::string("/save/") + save_identity;
std::string storage_path;
if (internalStorage)
storage_path = SDL_AndroidGetInternalStoragePath();
else
storage_path = SDL_AndroidGetExternalStoragePath();
std::string save_directory = storage_path + "/save";
save_path_full = storage_path + std::string("/save/") + save_identity;
if (!love::android::directoryExists(save_path_full.c_str()) &&
!love::android::mkdir(save_path_full.c_str()))
+1 -1
View File
@@ -52,7 +52,7 @@ public:
bool setupWriteDirectory();
bool setIdentity(const char *ident, bool appendToPath = false);
bool setIdentity(const char *ident, bool appendToPath = false, bool internalStorage = false);
const char *getIdentity() const;
bool setSource(const char *source);
+3 -1
View File
@@ -73,8 +73,10 @@ int w_setIdentity(lua_State *L)
{
const char *arg = luaL_checkstring(L, 1);
bool append = luax_optboolean(L, 2, false);
bool internalStorage = luax_optboolean(L, 3, false);
if (!instance()->setIdentity(arg, append))
if (!instance()->setIdentity(arg, append, internalStorage))
return luaL_error(L, "Could not set write directory.");
return 0;