summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorAdmiral H. Curtiss <pikachu025@gmail.com>2024-07-14 04:15:05 +0200
committerGitHub <noreply@github.com>2024-07-14 04:15:05 +0200
commita273dc2de2510f470f8a71f54ce2cb128055cd20 (patch)
tree5108d3a70c3aad20778ff4bb93848e867762acf2 /Source
parentf23460ab42cb6ccd3f07d358d31389f17a25589a (diff)
parent1bf12a50c211e091368a453dbcca5662bdf64acc (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.cpp30
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);