From 23d66101390628a19162443d4b9191c444741ba6 Mon Sep 17 00:00:00 2001 From: Christopher Leggett Date: Thu, 27 Feb 2025 17:15:28 -0500 Subject: [PATCH] Convert Market Sneak --- .../Enhancements/TimeSavers/MarketSneak.cpp | 24 +++++++++++++++++++ soh/soh/OTRGlobals.cpp | 3 --- soh/soh/z_message_OTR.cpp | 5 ---- 3 files changed, 24 insertions(+), 8 deletions(-) create mode 100644 soh/soh/Enhancements/TimeSavers/MarketSneak.cpp diff --git a/soh/soh/Enhancements/TimeSavers/MarketSneak.cpp b/soh/soh/Enhancements/TimeSavers/MarketSneak.cpp new file mode 100644 index 000000000..c22d7b9b5 --- /dev/null +++ b/soh/soh/Enhancements/TimeSavers/MarketSneak.cpp @@ -0,0 +1,24 @@ +#include + +extern "C" { +#include +} + +// RANDOTODO: Port the rest of the behavior for this enhancement here. + +void BuildNightGuardMessage(uint16_t* textId, bool* loadFromMessageTable) { + CustomMessage msg = CustomMessage( + "You look bored. Wanna go out for a&walk?\x1B&%gYes&No%w", + "Du siehst gelangweilt aus.&Willst Du einen Spaziergang machen?\x1B&%gJa&Nein%w", + "Tu as l'air de t'ennuyer. Tu veux&aller faire un tour?\x1B&%gOui&Non%w" + ); + msg.AutoFormat(); + msg.LoadIntoFont(); + *loadFromMessageTable = false; +} + +void MarketSneak_Register() { + COND_ID_HOOK(OnOpenText, TEXT_MARKET_GUARD_NIGHT, CVarGetInteger(CVAR_ENHANCEMENT("MarketSneak"), 0), BuildNightGuardMessage); +} + +RegisterShipInitFunc initFunc(MarketSneak_Register, { CVAR_ENHANCEMENT("MarketSneak") }); \ No newline at end of file diff --git a/soh/soh/OTRGlobals.cpp b/soh/soh/OTRGlobals.cpp index 784291c26..0f0fd6571 100644 --- a/soh/soh/OTRGlobals.cpp +++ b/soh/soh/OTRGlobals.cpp @@ -2138,9 +2138,6 @@ extern "C" int CustomMessage_RetrieveIfExists(PlayState* play) { const int maxBufferSize = sizeof(font->msgBuf); CustomMessage messageEntry; s16 actorParams = 0; - if (textId == TEXT_MARKET_GUARD_NIGHT && CVarGetInteger(CVAR_ENHANCEMENT("MarketSneak"), 0) && play->sceneNum == SCENE_MARKET_ENTRANCE_NIGHT) { - messageEntry = CustomMessageManager::Instance->RetrieveMessage(customMessageTableID, TEXT_MARKET_GUARD_NIGHT, MF_FORMATTED); - } if (textId == TEXT_FISHERMAN_LEAVE && CVarGetInteger(CVAR_ENHANCEMENT("QuitFishingAtDoor"), 0)) { messageEntry = CustomMessageManager::Instance->RetrieveMessage(customMessageTableID, TEXT_FISHERMAN_LEAVE, MF_FORMATTED); } diff --git a/soh/soh/z_message_OTR.cpp b/soh/soh/z_message_OTR.cpp index b674ed86f..a09157696 100644 --- a/soh/soh/z_message_OTR.cpp +++ b/soh/soh/z_message_OTR.cpp @@ -113,11 +113,6 @@ extern "C" void OTRMessage_Init() { } CustomMessageManager::Instance->AddCustomMessageTable(customMessageTableID); - CustomMessageManager::Instance->CreateMessage( - customMessageTableID, TEXT_MARKET_GUARD_NIGHT, - CustomMessage("You look bored. Wanna go out for a&walk?\x1B&%gYes&No%w", - "Du siehst gelangweilt aus.&Willst Du einen Spaziergang machen?\x1B&%gJa&Nein%w", - "Tu as l'air de t'ennuyer. Tu veux&aller faire un tour?\x1B&%gOui&Non%w")); CustomMessageManager::Instance->CreateMessage( customMessageTableID, TEXT_FISHERMAN_LEAVE, CustomMessage("Hey! Hey!&You can't take the rod out of here!&I'm serious!^Do you want to quit?&\x1B&%gYes&No%w",