add hooks for custom text colors

This commit is contained in:
gymnast86
2026-08-21 18:46:47 -07:00
parent c475d72110
commit df522f1abb
+31
View File
@@ -201,6 +201,10 @@ 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;
}
@@ -3055,6 +3059,27 @@ void hookReplaceEvtControlSkipper(ModContext*, void* args, void* retval, void*)
*static_cast<bool*>(retval) = doSkip;
}
void hookPostGetColorTable(ModContext*, void* args, void* retval, void* userdata) {
auto& returnColor = *static_cast<u32*>(retval);
if (returnColor != 0xFFFFFFFF) {
return;
}
auto i_color = mods::arg<u8>(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;
}
}
}
@@ -3213,6 +3238,9 @@ ModResult initialize() {
ADD_HOOK_REPLACE(dEvt_control_c__skipper, hookReplaceEvtControlSkipper);
ADD_HOOK_POST(getCCColorTable, hookPostGetColorTable);
ADD_HOOK_POST(getGCColorTable, hookPostGetColorTable);
return MOD_OK;
}
@@ -3344,6 +3372,9 @@ ModResult uninstall() {
mods::hook::uninstall<dEvt_control_c__skipper>(svc_hook);
mods::hook::uninstall<getCCColorTable>(svc_hook);
mods::hook::uninstall<getGCColorTable>(svc_hook);
return MOD_OK;
}
}