summaryrefslogtreecommitdiff
path: root/soh
diff options
context:
space:
mode:
authorPhilip Dubé <159546+serprex@users.noreply.github.com>2026-04-14 06:41:37 +0000
committerGitHub <noreply@github.com>2026-04-14 06:41:37 +0000
commitfeb489cab07bcd8624d41a9153834b7f04147be6 (patch)
tree449603eff28de359a6949b864ebe6d4166c4d07a /soh
parentadb1e46ba9bb847d39c5b371aa3ec06ecc5ddbdf (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.cpp12
-rw-r--r--soh/soh/Enhancements/randomizer/location.cpp1
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"