diff --git a/include/DSGM_projectHelper.h b/include/DSGM_projectHelper.h index 614f8e8..27c58f7 100644 --- a/include/DSGM_projectHelper.h +++ b/include/DSGM_projectHelper.h @@ -9,18 +9,19 @@ #define DSGM_GotoNextRoom(persistent) DSGM_SwitchRoom(DSGM_currentRoom + 1, persistent) void DSGM_InitSaving(int argc, char **argv) { - char saveName[256] = { '\0' }; - if(argc > 0 && strlen(argv[0]) > 4) { - snprintf(saveName, 255, "fat:/%.*s.sav", strlen(argv[0]) - 4, argv[0]); + snprintf(DSGM_saveName, 255, "%.*s.sav", strlen(argv[0]) - 4, argv[0]); } else { - sprintf(saveName, "fat:/" GAME_NAME ".sav"); + sprintf(DSGM_saveName, "fat:/" GAME_NAME ".sav"); } - if(!fopen(saveName, "rb")) fopen(saveName, "wb"); + DSGM_save = fopen(DSGM_saveName, "r+b"); - DSGM_save = fopen(saveName, "r+b"); + if(!DSGM_save) { + DSGM_save = fopen(DSGM_saveName, "wb"); + fclose(DSGM_save); + } } void DSGM_Init(int argc, char **argv) { diff --git a/include/DSGM_saving.h b/include/DSGM_saving.h index e2a04f3..9b414de 100644 --- a/include/DSGM_saving.h +++ b/include/DSGM_saving.h @@ -1,3 +1,4 @@ #pragma once extern FILE *DSGM_save; +extern char DSGM_saveName[256]; diff --git a/source/DSGM_saving.c b/source/DSGM_saving.c index e74a275..f4fbe7b 100644 --- a/source/DSGM_saving.c +++ b/source/DSGM_saving.c @@ -1,3 +1,4 @@ #include "DSGM.h" FILE *DSGM_save; +char DSGM_saveName[256];