Game's save state is stored at current directory under windows
authorAndreas Eversberg <jolly@eversberg.eu>
Thu, 8 Mar 2018 17:04:21 +0000 (18:04 +0100)
committerAndreas Eversberg <jolly@eversberg.eu>
Thu, 8 Mar 2018 17:04:21 +0000 (18:04 +0100)
src/mercenary/main.c

index 4dce2fb..80aff01 100644 (file)
@@ -296,7 +296,13 @@ static void disk_read(int track, int __attribute__((unused)) side, uint32_t data
                FILE *fp;
 
                memset(game_save, 0, sizeof(game_save)); /* clear so make the game fail, if we fail */
-               sprintf(filename, "%s/%s/%d.gamesave", home_dir, config_gamesave_dir, gamesave_num);
+#if defined(_WIN32)
+               filename[0] = '\0';
+#else
+               sprintf(filename, "%s/%s/", home_dir, config_gamesave_dir);
+               mkdir(filename, 0777);
+#endif
+               sprintf(filename + strlen(filename), "%d.gamesave", gamesave_num);
                fp = fopen(filename, "r");
                if (!fp) {
 fail:
@@ -345,9 +351,13 @@ static void disk_write(int track, int __attribute__((unused)) side, uint32_t dat
                int wrote;
                FILE *fp;
 
-               sprintf(filename, "%s/%s", home_dir, config_gamesave_dir);
+#if defined(_WIN32)
+               filename[0] = '\0';
+#else
+               sprintf(filename, "%s/%s/", home_dir, config_gamesave_dir);
                mkdir(filename, 0777);
-               sprintf(filename + strlen(filename), "/%d.gamesave", gamesave_num);
+#endif
+               sprintf(filename + strlen(filename), "%d.gamesave", gamesave_num);
                fp = fopen(filename, "w");
                if (!fp) {
 fail: