From bb57733a8aa73cab4d1d09753af9d59be7479514 Mon Sep 17 00:00:00 2001 From: otavepto <153766569+otavepto@users.noreply.github.com> Date: Sat, 8 Jun 2024 18:04:10 +0300 Subject: [PATCH] ensure all default values are added to a user achievement on load --- dll/steam_user_stats.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/dll/steam_user_stats.cpp b/dll/steam_user_stats.cpp index d4b13457..1b8a491d 100644 --- a/dll/steam_user_stats.cpp +++ b/dll/steam_user_stats.cpp @@ -742,12 +742,12 @@ Steam_User_Stats::Steam_User_Stats(Settings *settings, class Networking *network achievement_stat_trigger[stat_name].push_back(trig); } catch(...) {} - if (user_achievements.find(name) == user_achievements.end()) { - user_achievements[name]["earned"] = false; - user_achievements[name]["earned_time"] = static_cast(0); - user_achievements[name]["progress"] = std::stoi(trig.min_value); - user_achievements[name]["max_progress"] = std::stoi(trig.max_value); - } + // default initial values, will only be added if they don't exist already + auto &user_ach = user_achievements[name]; // this will create a new json entry if the key didn't exist already + user_ach.emplace("earned", false); + user_ach.emplace("earned_time", static_cast(0)); + user_ach.emplace("progress", std::stof(trig.min_value)); + user_ach.emplace("max_progress", std::stof(trig.max_value)); } catch(...) {} try {