diff --git a/src/fileio.cpp b/src/fileio.cpp index 07d2ab6..dfb79b1 100644 --- a/src/fileio.cpp +++ b/src/fileio.cpp @@ -5,6 +5,9 @@ */ #include "fileio.h" +#ifdef __EMSCRIPTEN__ +#include +#endif _TCHAR g_root[_MAX_PATH]; const char* g_savedir; @@ -30,6 +33,7 @@ FILEIO::~FILEIO(void) bool FILEIO::Fopen(const _TCHAR *filename, int mode) { + mode_ = mode; _TCHAR path[_MAX_PATH]; _stprintf_s(path, _MAX_PATH, _T("%s%s"), (g_savedir && mode & FILEIO_SAVEDATA) ? g_savedir : g_root, @@ -56,6 +60,11 @@ void FILEIO::Fclose() fclose(fp); } fp = NULL; + +#ifdef __EMSCRIPTEN__ + if (mode_ & FILEIO_WRITE_BINARY) + EM_ASM( xsystem35.shell.syncfs(); ); +#endif } uint32 FILEIO::Fseek(long offset, int origin) diff --git a/src/fileio.h b/src/fileio.h index 8ea92fd..f477cc5 100644 --- a/src/fileio.h +++ b/src/fileio.h @@ -22,6 +22,7 @@ class FILEIO { private: FILE* fp; + int mode_; public: FILEIO(); ~FILEIO();