diff options
| author | Philip Dubé <159546+serprex@users.noreply.github.com> | 2026-04-14 06:41:37 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-04-14 06:41:37 +0000 |
| commit | feb489cab07bcd8624d41a9153834b7f04147be6 (patch) | |
| tree | 449603eff28de359a6949b864ebe6d4166c4d07a /soh | |
| parent | adb1e46ba9bb847d39c5b371aa3ec06ecc5ddbdf (diff) | |
Fix shopsanity soft lock (#6502)
GetForCurrentLanguage() defaults to MF_FORMATTED, appending MESSAGE_END (\x02) to output string
Revert using hint name for items in shops. Other merchants return GetHintMessage directly
Diffstat (limited to 'soh')
| -rw-r--r-- | soh/soh/Enhancements/randomizer/Messages/MerchantMessages.cpp | 12 | ||||
| -rw-r--r-- | soh/soh/Enhancements/randomizer/location.cpp | 1 |
2 files changed, 8 insertions, 5 deletions
diff --git a/soh/soh/Enhancements/randomizer/Messages/MerchantMessages.cpp b/soh/soh/Enhancements/randomizer/Messages/MerchantMessages.cpp index 56fa5c7b1..9a004f4ab 100644 --- a/soh/soh/Enhancements/randomizer/Messages/MerchantMessages.cpp +++ b/soh/soh/Enhancements/randomizer/Messages/MerchantMessages.cpp @@ -24,8 +24,8 @@ extern PlayState* gPlayState; RAND_GET_OPTION(RSK_SHUFFLE_MERCHANTS).Is(RO_SHUFFLE_MERCHANTS_ALL)) void BuildMerchantMessage(CustomMessage& msg, RandomizerCheck rc, bool mysterious = true) { - RandomizerGet rgid = RAND_GET_ITEM(rc)->GetPlacedRandomizerGet(); - uint16_t price = RAND_GET_ITEM(rc)->GetPrice(); + auto location = RAND_GET_ITEM(rc); + RandomizerGet rgid = location->GetPlacedRandomizerGet(); CustomMessage itemName; std::string color = Rando::StaticData::RetrieveItem(static_cast<RandomizerGet>(rgid)).GetColor(); if (mysterious) { @@ -37,10 +37,14 @@ void BuildMerchantMessage(CustomMessage& msg, RandomizerCheck rc, bool mysteriou color = "%g"; } else { const Rando::Item& item = Rando::StaticData::RetrieveItem(rgid); - itemName = item.GetHint().GetHintMessage().GetForCurrentLanguage(); + if (Rando::StaticData::GetLocation(rc)->IsShop()) { + itemName = CustomMessage(Rando::StaticData::RetrieveItem(rgid).GetName()); + } else { + itemName = item.GetHint().GetHintMessage(); + } } msg.Replace("[[color]]", color); - msg.InsertNames({ itemName, CustomMessage(std::to_string(price)) }); + msg.InsertNames({ itemName, CustomMessage(std::to_string(location->GetPrice())) }); } void BuildBeanGuyMessage(uint16_t* textId, bool* loadFromMessageTable) { diff --git a/soh/soh/Enhancements/randomizer/location.cpp b/soh/soh/Enhancements/randomizer/location.cpp index e129a6b26..6de708c01 100644 --- a/soh/soh/Enhancements/randomizer/location.cpp +++ b/soh/soh/Enhancements/randomizer/location.cpp @@ -1,6 +1,5 @@ #include "location.h" #include "static_data.h" -#include <algorithm> #include <assert.h> #include "option.h" |
