From 8749b3c782835f855b83f77cb7e99e7b4a982577 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Fri, 5 Jan 2024 22:06:13 +1000 Subject: [PATCH] Patch: Fix last duplicate patch group not being ignored --- pcsx2/Patch.cpp | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/pcsx2/Patch.cpp b/pcsx2/Patch.cpp index a2957b11ab..e3f85d3248 100644 --- a/pcsx2/Patch.cpp +++ b/pcsx2/Patch.cpp @@ -245,6 +245,19 @@ u32 Patch::LoadPatchesFromString(PatchList* patch_list, const std::string& patch const size_t before = patch_list->size(); PatchGroup current_patch_group; + const auto add_current_patch = [patch_list, ¤t_patch_group]() { + // Don't show patches with duplicate names, prefer the first loaded. + if (!ContainsPatchName(*patch_list, current_patch_group.name)) + { + patch_list->push_back(std::move(current_patch_group)); + } + else + { + Console.WriteLn(Color_Gray, fmt::format( + "Patch: Skipped loading patch '{}' since a patch with a duplicate name was already loaded.", + current_patch_group.name)); + } + }; std::istringstream ss(patch_file); std::string line; @@ -264,15 +277,7 @@ u32 Patch::LoadPatchesFromString(PatchList* patch_list, const std::string& patch if (!current_patch_group.name.empty() || !current_patch_group.patches.empty()) { - // Don't show patches with duplicate names, prefer the first loaded. - if (!ContainsPatchName(*patch_list, current_patch_group.name)) - { - patch_list->push_back(std::move(current_patch_group)); - } - else - { - Console.WriteLn(Color_Gray, fmt::format("Patch: Skipped loading patch '{}' since a patch with a duplicate name was already loaded.", current_patch_group.name)); - } + add_current_patch(); current_patch_group = {}; } @@ -284,7 +289,7 @@ u32 Patch::LoadPatchesFromString(PatchList* patch_list, const std::string& patch } if (!current_patch_group.name.empty() || !current_patch_group.patches.empty()) - patch_list->push_back(std::move(current_patch_group)); + add_current_patch(); return static_cast(patch_list->size() - before); }