From a8429af13150dcdb81fbb9aeb1b66b7c5ece582d Mon Sep 17 00:00:00 2001 From: Jaklyy <102590697+Jaklyy@users.noreply.github.com> Date: Tue, 13 Feb 2024 14:17:29 -0500 Subject: dont make a save file on launching a game (#1974) avoids the issue of saves being created for roms that dont use save files. --- src/frontend/qt_sdl/Platform.cpp | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/frontend/qt_sdl/Platform.cpp b/src/frontend/qt_sdl/Platform.cpp index 9bb19d1..0cd4f61 100644 --- a/src/frontend/qt_sdl/Platform.cpp +++ b/src/frontend/qt_sdl/Platform.cpp @@ -31,6 +31,7 @@ #include #include #include +#include #include #include "Platform.h" @@ -333,13 +334,29 @@ bool LocalFileExists(const std::string& name) bool CheckFileWritable(const std::string& filepath) { - FileHandle* file = Platform::OpenFile(filepath.c_str(), FileMode::Append); + FileHandle* file = Platform::OpenFile(filepath.c_str(), FileMode::Read); + if (file) { + // if the file exists, check if it can be opened for writing. Platform::CloseFile(file); - return true; + file = Platform::OpenFile(filepath.c_str(), FileMode::Append); + if (file) + { + Platform::CloseFile(file); + return true; + } + else return false; + } + else + { + // if the file does not exist, create a temporary file to check, to avoid creating an empty file. + if (QTemporaryFile(filepath.c_str()).open()) + { + return true; + } + else return false; } - else return false; } bool CheckLocalFileWritable(const std::string& name) -- cgit v1.2.3