From 621afc99f0dc660b8f5c68044b806fb4def02744 Mon Sep 17 00:00:00 2001 From: briaguya <70942617+briaguya-ai@users.noreply.github.com> Date: Tue, 28 Nov 2023 16:34:00 -0800 Subject: [PATCH] sort patch otrs (#3430) --- soh/soh/OTRGlobals.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/soh/soh/OTRGlobals.cpp b/soh/soh/OTRGlobals.cpp index bd2e6208a..eece2c361 100644 --- a/soh/soh/OTRGlobals.cpp +++ b/soh/soh/OTRGlobals.cpp @@ -253,15 +253,26 @@ OTRGlobals::OTRGlobals() { OTRFiles.push_back(sohOtrPath); } std::string patchesPath = LUS::Context::LocateFileAcrossAppDirs("mods", appShortName); + std::vector patchOTRs = {}; if (patchesPath.length() > 0 && std::filesystem::exists(patchesPath)) { if (std::filesystem::is_directory(patchesPath)) { for (const auto& p : std::filesystem::recursive_directory_iterator(patchesPath, std::filesystem::directory_options::follow_directory_symlink)) { if (StringHelper::IEquals(p.path().extension().string(), ".otr")) { - OTRFiles.push_back(p.path().generic_string()); + patchOTRs.push_back(p.path().generic_string()); } } } } + std::sort(patchOTRs.begin(), patchOTRs.end(), [](const std::string& a, const std::string& b) { + return std::lexicographical_compare( + a.begin(), a.end(), + b.begin(), b.end(), + [](char c1, char c2) { + return std::tolower(c1) < std::tolower(c2); + } + ); + }); + OTRFiles.insert(OTRFiles.end(), patchOTRs.begin(), patchOTRs.end()); std::unordered_set ValidHashes = { OOT_PAL_MQ, OOT_NTSC_JP_MQ,