diff --git a/include/dusk/settings.h b/include/dusk/settings.h index bd6f30683b..0d85b714a5 100644 --- a/include/dusk/settings.h +++ b/include/dusk/settings.h @@ -212,6 +212,7 @@ struct UserSettings { ConfigVar liveSplitEnabled; ConfigVar showSpeedrunRTATimer; ConfigVar recordingMode; + ConfigVar removeQuestMapMarkers; ConfigVar showInputViewer; ConfigVar showInputViewerGyro; } game; 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 d463b2328d..72b97ddbc2 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 5861241fe3..e9768e9250 100644 --- a/src/dusk/settings.cpp +++ b/src/dusk/settings.cpp @@ -124,6 +124,7 @@ UserSettings g_userSettings = { .liveSplitEnabled {"game.liveSplitEnabled", false}, .showSpeedrunRTATimer {"game.showSpeedrunRTATimer", true}, .recordingMode {"game.recordingMode", false}, + .removeQuestMapMarkers {"game.removeQuestMapMarkers", false}, .showInputViewer {"game.showInputViewer", false}, .showInputViewerGyro {"game.showInputViewerGyro", false} }, @@ -246,6 +247,7 @@ void registerSettings() { Register(g_userSettings.game.liveSplitEnabled); Register(g_userSettings.game.showSpeedrunRTATimer); Register(g_userSettings.game.recordingMode); + Register(g_userSettings.game.removeQuestMapMarkers); Register(g_userSettings.game.showInputViewer); Register(g_userSettings.game.showInputViewerGyro); Register(g_userSettings.game.fastSpinner); diff --git a/src/dusk/ui/settings.cpp b/src/dusk/ui/settings.cpp index 9cf8a2f5d2..6187f97d4b 100644 --- a/src/dusk/ui/settings.cpp +++ b/src/dusk/ui/settings.cpp @@ -1105,6 +1105,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(