From 696e8e6aa9e5ce402c51773180da5647df394914 Mon Sep 17 00:00:00 2001 From: Krutonium Date: Tue, 12 May 2026 17:30:07 -0400 Subject: [PATCH] Add ability to toggle off Owl Statue Markers on Map --- include/dusk/settings.h | 1 + src/d/d_map.cpp | 7 +++++++ src/d/d_menu_dmap_map.cpp | 7 +++++++ src/d/d_menu_fmap.cpp | 7 +++++++ src/dusk/settings.cpp | 4 +++- src/dusk/ui/settings.cpp | 2 ++ 6 files changed, 27 insertions(+), 1 deletion(-) diff --git a/include/dusk/settings.h b/include/dusk/settings.h index 366a9cd82b..7710eeceba 100644 --- a/include/dusk/settings.h +++ b/include/dusk/settings.h @@ -179,6 +179,7 @@ struct UserSettings { ConfigVar speedrunMode; ConfigVar liveSplitEnabled; ConfigVar recordingMode; + ConfigVar removeQuestMapMarkers; } game; struct { diff --git a/src/d/d_map.cpp b/src/d/d_map.cpp index fa9049fb00..8cecead15a 100644 --- a/src/d/d_map.cpp +++ b/src/d/d_map.cpp @@ -931,6 +931,13 @@ bool renderingAmap_c::isDrawIconSingle2(dTres_c::data_s const* i_data, bool para } break; case 5: +#if TARGET_PC + if (dusk::getSettings().game.removeQuestMapMarkers && + dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x190])) + { + break; + } +#endif if (((i_data->mNo == 255 || (i_data->mNo != 255 && !dComIfGs_isTbox(i_data->mNo))) && (i_data->mSwBit == 255 || (i_data->mSwBit != 255 && dComIfGs_isSwitch(i_data->mSwBit, i_data->mRoomNo)))) && diff --git a/src/d/d_menu_dmap_map.cpp b/src/d/d_menu_dmap_map.cpp index 0bb9717952..6320c09850 100644 --- a/src/d/d_menu_dmap_map.cpp +++ b/src/d/d_menu_dmap_map.cpp @@ -69,6 +69,13 @@ bool renderingDmap_c::isDrawIconSingle2(dTres_c::data_s const* i_data, bool para JUT_ASSERT(1044, FALSE); break; case 5: +#if TARGET_PC + if (dusk::getSettings().game.removeQuestMapMarkers && + dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x190])) + { + break; + } +#endif if ((i_data->mNo == 0xFF || (i_data->mNo != 0xFF && !dComIfGs_isTbox(i_data->mNo))) && (i_data->mSwBit == 0xFF || (i_data->mSwBit != 0xFF && dComIfGs_isSwitch(i_data->mSwBit, i_data->mRoomNo))) && param_1) { rt = true; } diff --git a/src/d/d_menu_fmap.cpp b/src/d/d_menu_fmap.cpp index d2b06e962c..e9efc9d1a7 100644 --- a/src/d/d_menu_fmap.cpp +++ b/src/d/d_menu_fmap.cpp @@ -2600,6 +2600,13 @@ void dMenu_Fmap_c::drawLightDropIcon() { } void dMenu_Fmap_c::drawBatsumarkIcon() { +#if TARGET_PC + if (dusk::getSettings().game.removeQuestMapMarkers && + dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x190])) + { + return; + } +#endif drawIcon(5, 0x12); } diff --git a/src/dusk/settings.cpp b/src/dusk/settings.cpp index 888ad2da7f..6e14f01802 100644 --- a/src/dusk/settings.cpp +++ b/src/dusk/settings.cpp @@ -115,7 +115,8 @@ UserSettings g_userSettings = { // Tools .speedrunMode {"game.speedrunMode", false}, .liveSplitEnabled {"game.liveSplitEnabled", false}, - .recordingMode {"game.recordingMode", false} + .recordingMode {"game.recordingMode", false}, + .removeQuestMapMarkers {"game.removeQuestMapMarkers", false} }, .backend = { @@ -202,6 +203,7 @@ void registerSettings() { Register(g_userSettings.game.speedrunMode); Register(g_userSettings.game.liveSplitEnabled); Register(g_userSettings.game.recordingMode); + Register(g_userSettings.game.removeQuestMapMarkers); Register(g_userSettings.game.fastSpinner); Register(g_userSettings.game.infiniteHearts); Register(g_userSettings.game.infiniteArrows); diff --git a/src/dusk/ui/settings.cpp b/src/dusk/ui/settings.cpp index bd4b305c04..74a7ec35c9 100644 --- a/src/dusk/ui/settings.cpp +++ b/src/dusk/ui/settings.cpp @@ -955,6 +955,8 @@ SettingsWindow::SettingsWindow(bool prelaunch) : mPrelaunch(prelaunch) { "Restores patched glitches from Wii USA 1.0, the first released version."); addOption("Enable Rotating Link Doll", getSettings().game.enableLinkDollRotation, "Enables rotating Link in the collection menu with the C-Stick."); + addOption("Hide Owl Statue Markers", getSettings().game.removeQuestMapMarkers, + "Removes completed Owl Statue markers from the map and Minimap."); leftPane.add_section("Difficulty"); leftPane.register_control(