diff --git a/lib/libimhex/source/api/achievement_manager.cpp b/lib/libimhex/source/api/achievement_manager.cpp index 8d3d050f6..41c53c383 100644 --- a/lib/libimhex/source/api/achievement_manager.cpp +++ b/lib/libimhex/source/api/achievement_manager.cpp @@ -218,7 +218,7 @@ namespace hex { for (const auto &directory : fs::getDefaultPaths(fs::ImHexPath::Config)) { auto path = directory / AchievementsFile; - wolv::io::File file(path, wolv::io::File::Mode::Create); + wolv::io::File file(path, wolv::io::File::Mode::Write); if (!file.isValid()) { continue; @@ -234,7 +234,9 @@ namespace hex { } } - file.writeString(json.dump(4)); + auto result = json.dump(4); + file.setSize(0); + file.writeString(result); break; } } diff --git a/main/gui/source/init/tasks.cpp b/main/gui/source/init/tasks.cpp index b9b7b2c25..ecc3ca3cc 100644 --- a/main/gui/source/init/tasks.cpp +++ b/main/gui/source/init/tasks.cpp @@ -318,6 +318,7 @@ namespace hex::init { bool storeSettings() { try { ContentRegistry::Settings::impl::store(); + AchievementManager::storeProgress(); } catch (std::exception &e) { log::error("Failed to store configuration! {}", e.what()); return false;