From a6813841b854feb84376ec4fdc35653ee1f08ee9 Mon Sep 17 00:00:00 2001 From: Luke Street Date: Sat, 22 Aug 2026 23:44:55 -0600 Subject: [PATCH] Use full color extensions --- mods/randomizer/generator/utility/text.cpp | 23 +++++++++++++--- mods/randomizer/src/hooks.cpp | 32 ---------------------- 2 files changed, 19 insertions(+), 36 deletions(-) diff --git a/mods/randomizer/generator/utility/text.cpp b/mods/randomizer/generator/utility/text.cpp index f3bc5240f3..31e471eca1 100644 --- a/mods/randomizer/generator/utility/text.cpp +++ b/mods/randomizer/generator/utility/text.cpp @@ -3,6 +3,8 @@ #include "string.hpp" #include "yaml.hpp" +#include + #include #include @@ -14,6 +16,20 @@ #endif namespace randomizer { +namespace { + +std::string text_color_code(uint32_t rgba) { + const auto message = + mods::flow::MessageBuilder{}.text_color(rgba).build(MESSAGE_LANGUAGE_ENGLISH); + const auto& bytes = message.text(); + return {reinterpret_cast(bytes.data()), bytes.size() - 1}; +} + +const auto kDarkGreenMessageCode = text_color_code(0x4BBE4BFF); +const auto kBlueMessageCode = text_color_code(0x4B96D7FF); +const auto kSilverMessageCode = text_color_code(0xBFBFBFFF); + +} // namespace Text::Text(const std::string& str) { for (auto& text : mText) { @@ -435,10 +451,9 @@ namespace randomizer { {"", "\x1A\x06\xFF\x00\x00\x04"sv}, {"", "\x1A\x06\xFF\x00\x00\x06"sv}, {"", "\x1A\x06\xFF\x00\x00\x08"sv}, - // custom colors - {"", "\x1A\x06\xFF\x00\x00\x09"sv}, - {"", "\x1A\x06\xFF\x00\x00\x0A"sv}, - {"", "\x1A\x06\xFF\x00\x00\x0B"sv}, + {"", kDarkGreenMessageCode}, + {"", kBlueMessageCode}, + {"", kSilverMessageCode}, }; void breakLines(std::string& str, float maxStrLength) { diff --git a/mods/randomizer/src/hooks.cpp b/mods/randomizer/src/hooks.cpp index 1896a33370..7efac96715 100644 --- a/mods/randomizer/src/hooks.cpp +++ b/mods/randomizer/src/hooks.cpp @@ -202,10 +202,6 @@ DEFINE_HOOK_SYMBOL("dComIfGs_getCollectSmell", u8(), getCollectSmell); DEFINE_HOOK(&dEvt_control_c::skipper, dEvt_control_c__skipper); -DEFINE_HOOK_SYMBOL("getFontCCColorTable", u32(u8, u8), getCCColorTable); -DEFINE_HOOK_SYMBOL("getFontGCColorTable", u32(u8, u8), getGCColorTable); - - namespace randomizer::ui { dialogSelectModeState g_dialogSelectModeState = SelectReady; } @@ -3081,28 +3077,6 @@ void hookReplaceEvtControlSkipper(ModContext*, void* args, void* retval, void*) *static_cast(retval) = doSkip; } -void hookPostGetColorTable(ModContext*, void* args, void* retval, void* userdata) { - auto& returnColor = *static_cast(retval); - if (returnColor != 0xFFFFFFFF) { - return; - } - - auto i_color = mods::arg(args, 0); - switch (i_color) { - case 9: - returnColor = 0x4BBE4BFF; // Dark Green - break; - case 10: - returnColor = 0x4B96D7FF; // Blue - break; - case 11: - returnColor = 0xBFBFBFFF; // Silver - break; - default: - break; - } -} - } ModResult initialize() { @@ -3260,9 +3234,6 @@ ModResult initialize() { ADD_HOOK_REPLACE(dEvt_control_c__skipper, hookReplaceEvtControlSkipper); - ADD_HOOK_POST(getCCColorTable, hookPostGetColorTable); - ADD_HOOK_POST(getGCColorTable, hookPostGetColorTable); - return MOD_OK; } @@ -3394,9 +3365,6 @@ ModResult uninstall() { mods::hook::uninstall(svc_hook); - mods::hook::uninstall(svc_hook); - mods::hook::uninstall(svc_hook); - return MOD_OK; } }