From 0fc5a564e168ecfa5a556299b50bb54f4503d300 Mon Sep 17 00:00:00 2001 From: Mr_Goldberg Date: Tue, 2 Aug 2022 01:16:40 -0400 Subject: [PATCH] Malformed achievements config should not crash stuff anymore. --- dll/steam_user_stats.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/dll/steam_user_stats.h b/dll/steam_user_stats.h index 4692084..3461ead 100644 --- a/dll/steam_user_stats.h +++ b/dll/steam_user_stats.h @@ -134,6 +134,16 @@ Steam_User_Stats(Settings *settings, Local_Storage *local_storage, class SteamCa load_achievements_db(); // achievements db load_achievements(); // achievements per user + auto x = defined_achievements.begin(); + while (x != defined_achievements.end()) { + + if (!x->contains("name")) { + x = defined_achievements.erase(x); + } else { + ++x; + } + } + for (auto & it : defined_achievements) { try { std::string name = static_cast(it["name"]); @@ -155,6 +165,9 @@ Steam_User_Stats(Settings *settings, Local_Storage *local_storage, class SteamCa try { it["hidden"] = std::to_string(it["hidden"].get()); } catch (...) {} + + it["displayName"] = it.value("displayName", ""); + it["description"] = it.value("description", ""); } //TODO: not sure if the sort is actually case insensitive, ach names seem to be treated by steam as case insensitive so I assume they are.