From d6aaf31b1af5f2cb2bfa3e68449d25d1a37058c7 Mon Sep 17 00:00:00 2001 From: kichikuou Date: Sun, 23 Feb 2020 12:02:29 +0900 Subject: [PATCH] Change the semantics of -savedir option Now trailing '@' is replaced with the game id. --- .../github/kichikuou/system3/GameActivity.kt | 2 +- src/sdlmain.cpp | 29 +++++++++++-------- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/android/app/src/main/java/io/github/kichikuou/system3/GameActivity.kt b/android/app/src/main/java/io/github/kichikuou/system3/GameActivity.kt index ba0d742..efc9390 100644 --- a/android/app/src/main/java/io/github/kichikuou/system3/GameActivity.kt +++ b/android/app/src/main/java/io/github/kichikuou/system3/GameActivity.kt @@ -62,7 +62,7 @@ class GameActivity : SDLActivity() { override fun getArguments(): Array { return arrayOf("-antialias", "-gamedir", intent.getStringExtra(EXTRA_GAME_ROOT), - "-savedir", intent.getStringExtra(EXTRA_SAVE_DIR) + "/") + "-savedir", intent.getStringExtra(EXTRA_SAVE_DIR) + "/@") } override fun setTitle(title: CharSequence?) { diff --git a/src/sdlmain.cpp b/src/sdlmain.cpp index c932a91..dd0f1c1 100644 --- a/src/sdlmain.cpp +++ b/src/sdlmain.cpp @@ -1,7 +1,8 @@ +#include +#include #include "common.h" #include "fileio.h" #include "sys/nact.h" -#include #ifdef __EMSCRIPTEN__ #include #include @@ -28,7 +29,7 @@ int main(int argc, char *argv[]) const char* font_file = DEFAULT_FONT_PATH "MTLc3m.ttf"; const char* playlist = NULL; const char* game_id = NULL; - char save_dir[256] = ""; + const char* save_dir = NULL; for (int i = 1; i < argc; i++) { if (strcmp(argv[i], "-gamedir") == 0) @@ -36,7 +37,7 @@ int main(int argc, char *argv[]) else if (strcmp(argv[i], "-antialias") == 0) ags_setAntialiasedStringMode(1); else if (strcmp(argv[i], "-savedir") == 0) - strcpy(save_dir, argv[++i]); + save_dir = argv[++i]; else if (strcmp(argv[i], "-fontfile") == 0) font_file = argv[++i]; else if (strcmp(argv[i], "-playlist") == 0) @@ -48,16 +49,20 @@ int main(int argc, char *argv[]) // system3 初期化 NACT* nact = NACT::create(game_id, font_file, playlist); - if (save_dir[0]) { -#ifdef __ANDROID__ - const char* gid = nact->get_game_id(); - if (gid) { - strcat(save_dir, gid); - mkdir(save_dir, 0777); - strcat(save_dir, "/"); + if (save_dir && save_dir[0]) { + std::string path(save_dir); + if (path[path.size() - 1] == '@') { + path.pop_back(); + const char* gid = nact->get_game_id(); + if (gid) { + path += gid; + mkdir(path.c_str(), 0777); + } } -#endif - FILEIO::SetSaveDir(save_dir); + if (path[path.size() - 1] != '/') { + path += '/'; + } + FILEIO::SetSaveDir(path.c_str()); } const char* title = nact->get_title();