diff options
| author | Admiral H. Curtiss <pikachu025@gmail.com> | 2024-07-14 04:15:05 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-14 04:15:05 +0200 |
| commit | a273dc2de2510f470f8a71f54ce2cb128055cd20 (patch) | |
| tree | 5108d3a70c3aad20778ff4bb93848e867762acf2 /Source | |
| parent | f23460ab42cb6ccd3f07d358d31389f17a25589a (diff) | |
| parent | 1bf12a50c211e091368a453dbcca5662bdf64acc (diff) | |
Merge pull request #12924 from JosJuice/ra-unverified-ini-osd
RetroAchievements: Show OSD messages also for unverified INI files
Diffstat (limited to 'Source')
| -rw-r--r-- | Source/Core/Core/AchievementManager.cpp | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/Source/Core/Core/AchievementManager.cpp b/Source/Core/Core/AchievementManager.cpp index 7a1837abbc..8b13a5327a 100644 --- a/Source/Core/Core/AchievementManager.cpp +++ b/Source/Core/Core/AchievementManager.cpp @@ -372,26 +372,32 @@ void AchievementManager::FilterApprovedPatches(std::vector<PatchEngine::Patch>& if (!IsHardcoreModeActive()) return; - if (!m_ini_root->contains(game_ini_id)) - patches.clear(); + const bool known_id = m_ini_root->contains(game_ini_id); + auto patch_itr = patches.begin(); while (patch_itr != patches.end()) { INFO_LOG_FMT(ACHIEVEMENTS, "Verifying patch {}", patch_itr->name); - auto context = Common::SHA1::CreateContext(); - context->Update(Common::BitCastToArray<u8>(static_cast<u64>(patch_itr->entries.size()))); - for (const auto& entry : patch_itr->entries) + bool verified = false; + + if (known_id) { - context->Update(Common::BitCastToArray<u8>(entry.type)); - context->Update(Common::BitCastToArray<u8>(entry.address)); - context->Update(Common::BitCastToArray<u8>(entry.value)); - context->Update(Common::BitCastToArray<u8>(entry.comparand)); - context->Update(Common::BitCastToArray<u8>(entry.conditional)); + auto context = Common::SHA1::CreateContext(); + context->Update(Common::BitCastToArray<u8>(static_cast<u64>(patch_itr->entries.size()))); + for (const auto& entry : patch_itr->entries) + { + context->Update(Common::BitCastToArray<u8>(entry.type)); + context->Update(Common::BitCastToArray<u8>(entry.address)); + context->Update(Common::BitCastToArray<u8>(entry.value)); + context->Update(Common::BitCastToArray<u8>(entry.comparand)); + context->Update(Common::BitCastToArray<u8>(entry.conditional)); + } + auto digest = context->Finish(); + + verified = m_ini_root->get(game_ini_id).contains(Common::SHA1::DigestToString(digest)); } - auto digest = context->Finish(); - bool verified = m_ini_root->get(game_ini_id).contains(Common::SHA1::DigestToString(digest)); if (!verified) { patch_itr = patches.erase(patch_itr); |
