diff --git a/CMakeLists.txt b/CMakeLists.txt index 0c4079ce..445688cc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -382,6 +382,7 @@ else() target_link_options( ${EXECUTABLE_NAME} PRIVATE "-sEXPORTED_RUNTIME_METHODS=callMain,addRunDependency,removeRunDependency" ) target_link_options( ${EXECUTABLE_NAME} PRIVATE "-sEXPORT_ALL" ) target_link_options( ${EXECUTABLE_NAME} PRIVATE "-sEXPORT_NAME=fallout2ce" ) + target_link_options( ${EXECUTABLE_NAME} PRIVATE "-gsource-map" ) endif() target_link_libraries(${EXECUTABLE_NAME} ${ZLIB_LIBRARIES}) diff --git a/cmake/toolchain/Emscripten.cmake b/cmake/toolchain/Emscripten.cmake index fa1a010c..8e023c50 100644 --- a/cmake/toolchain/Emscripten.cmake +++ b/cmake/toolchain/Emscripten.cmake @@ -4,8 +4,10 @@ set( CMAKE_C_COMPILER "emcc" ) set( CMAKE_CXX_COMPILER "em++" ) set( CMAKE_C_FLAGS "--use-port=sdl2 \ --use-port=sdl2_mixer \ - --use-port=zlib" ) + --use-port=zlib \ + -gsource-map" ) set( CMAKE_CXX_FLAGS "--use-port=sdl2 \ --use-port=sdl2_mixer \ - --use-port=zlib" ) + --use-port=zlib \ + -gsource-map" ) set( EXECUTABLE_NAME fallout2-ce.js ) \ No newline at end of file diff --git a/src/xfile.cc b/src/xfile.cc index d917c217..f47d1d26 100644 --- a/src/xfile.cc +++ b/src/xfile.cc @@ -68,12 +68,10 @@ int xfileClose(XFile* stream) EM_ASM( // clang-format off // The following code is not C++ code, but JavaScript code. - const handle = setInterval(() => { - if (FS.syncFSRequests === 0) { - clearInterval(handle); - FS.syncfs(err => err && console.warn(`FS.syncfs() error: ${err}`, err)); - } - }, 0); + setTimeout(() => { + if (FS.syncFSRequests !== 0) return; + FS.syncfs(err => err && console.warn(`FS.syncfs() error: ${err}`, err)); + }, 0) // clang-format on ); }