From 328805068082181fa5c03c99c5327f0baaee91ba Mon Sep 17 00:00:00 2001 From: Robbie Date: Mon, 30 Oct 2017 20:57:15 -0500 Subject: [PATCH] Have trophy manager reject games that have invalid usr data rather than dying. --- rpcs3/rpcs3qt/trophy_manager_dialog.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/rpcs3/rpcs3qt/trophy_manager_dialog.cpp b/rpcs3/rpcs3qt/trophy_manager_dialog.cpp index 51786a8729..f270be6f94 100644 --- a/rpcs3/rpcs3qt/trophy_manager_dialog.cpp +++ b/rpcs3/rpcs3qt/trophy_manager_dialog.cpp @@ -72,6 +72,7 @@ trophy_manager_dialog::trophy_manager_dialog() : QWidget(), m_sort_column(0), m_ continue; } std::string dirName = sstr(dir_iter.fileName()); + LOG_TRACE(GENERAL, "Loading trophy dir: %s", dirName); LoadTrophyFolderToDB(dirName); dir_iter.next(); } @@ -166,6 +167,12 @@ bool trophy_manager_dialog::LoadTrophyFolderToDB(const std::string& trop_name) return false; } + if (game_trophy_data->trop_usr->GetTrophiesCount() == 0) + { + LOG_ERROR(GENERAL, "Warning game %s in trophy folder %s usr file reports zero trophies. Cannot load in trophy manager.", game_trophy_data->game_name, game_trophy_data->path); + return false; + } + for (int trophy_id = 0; trophy_id < game_trophy_data->trop_usr->GetTrophiesCount(); ++trophy_id) { // Figure out how many zeros are needed for padding. (either 0, 1, or 2) @@ -324,6 +331,7 @@ void trophy_manager_dialog::PopulateUI() { auto& data = m_trophies_db[i]; + LOG_TRACE(GENERAL, "Populating Trophy Manager UI with %s %s", data->game_name, data->path); std::shared_ptr trophy_base = data->trop_config.GetRoot(); if (trophy_base->GetChildren()->GetName() == "trophyconf") {