From e0f25905c2d3f3fbfb2db553e1f18a684b80813a Mon Sep 17 00:00:00 2001 From: Rozelette Date: Sat, 14 Dec 2024 13:00:28 -0600 Subject: [PATCH] Add pulsate boss icon enhancement (#4651) --- soh/soh/SohMenuBar.cpp | 2 ++ soh/src/code/z_kaleido_scope_call.c | 2 +- .../misc/ovl_kaleido_scope/z_lmap_mark.c | 16 ++++++++++++++-- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/soh/soh/SohMenuBar.cpp b/soh/soh/SohMenuBar.cpp index b362dfb2b..ba9e683bf 100644 --- a/soh/soh/SohMenuBar.cpp +++ b/soh/soh/SohMenuBar.cpp @@ -1555,6 +1555,8 @@ void DrawEnhancementsMenu() { UIWidgets::Tooltip("Restores the original outcomes when performing Reverse Bottle Adventure."); UIWidgets::PaddedEnhancementCheckbox("Early Eyeball Frog", CVAR_ENHANCEMENT("EarlyEyeballFrog"), true, false); UIWidgets::Tooltip("Restores a bug from NTSC 1.0/1.1 that allows you to obtain the eyeball frog from King Zora instead of the Zora Tunic by holding shield."); + UIWidgets::PaddedEnhancementCheckbox("Pulsate boss icon", CVAR_ENHANCEMENT("PulsateBossIcon"), true, false); + UIWidgets::Tooltip("Restores an unfinished feature to pulsate the boss room icon when you are in the boss room."); ImGui::EndMenu(); } diff --git a/soh/src/code/z_kaleido_scope_call.c b/soh/src/code/z_kaleido_scope_call.c index d95819187..196e20041 100644 --- a/soh/src/code/z_kaleido_scope_call.c +++ b/soh/src/code/z_kaleido_scope_call.c @@ -4,7 +4,7 @@ void (*sKaleidoScopeUpdateFunc)(PlayState* play); void (*sKaleidoScopeDrawFunc)(PlayState* play); -f32 gBossMarkScale; +f32 gBossMarkScale = 1.0f; u32 D_8016139C; PauseMapMarksData* gLoadedPauseMarkDataTable; diff --git a/soh/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.c b/soh/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.c index f884d5a28..d4b3da6a9 100644 --- a/soh/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.c +++ b/soh/src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.c @@ -37,8 +37,6 @@ extern PauseMapMarksData gPauseMapMarkDataTable[]; extern PauseMapMarksData gPauseMapMarkDataTableMasterQuest[]; void PauseMapMark_Init(PlayState* play) { - gBossMarkState = 0; - gBossMarkScale = 1.0f; if(ResourceMgr_IsGameMasterQuest()) { gLoadedPauseMarkDataTable = gPauseMapMarkDataTableMasterQuest; } else { @@ -172,6 +170,20 @@ void PauseMapMark_Draw(PlayState* play) { case SCENE_ICE_CAVERN: PauseMapMark_DrawForDungeon(play); break; + case SCENE_DEKU_TREE_BOSS: + case SCENE_DODONGOS_CAVERN_BOSS: + case SCENE_JABU_JABU_BOSS: + case SCENE_FOREST_TEMPLE_BOSS: + case SCENE_FIRE_TEMPLE_BOSS: + case SCENE_WATER_TEMPLE_BOSS: + case SCENE_SPIRIT_TEMPLE_BOSS: + case SCENE_SHADOW_TEMPLE_BOSS: + case SCENE_GANONDORF_BOSS: + case SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR: + if (CVarGetInteger(CVAR_ENHANCEMENT("PulsateBossIcon"), 0) != 0) { + PauseMapMark_DrawForDungeon(play); + } + break; } PauseMapMark_Clear(play);