diff --git a/src/gui/compatFlags.cpp b/src/gui/compatFlags.cpp index efa88feec..50fb3b0cd 100644 --- a/src/gui/compatFlags.cpp +++ b/src/gui/compatFlags.cpp @@ -210,11 +210,15 @@ void FurnaceGUI::drawCompatFlags() { if (ImGui::IsItemHovered()) { ImGui::SetTooltip("like ProTracker/FamiTracker"); } - if (ImGui::RadioButton("Partial (only 04xy/E5xx)",e->song.linearPitch==1)) { - e->song.linearPitch=1; - } - if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("like DefleMask"); + if (e->song.linearPitch==1) { + pushWarningColor(true); + if (ImGui::RadioButton("Partial (only 04xy/E5xx)",e->song.linearPitch==1)) { + e->song.linearPitch=1; + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("like DefleMask\n\nthis pitch linearity mode is deprecated due to:\n- excessive complexity\n- lack of possible optimization\n\nit is recommended to change it now because I will remove this option in the future!"); + } + popWarningColor(); } if (ImGui::RadioButton("Full",e->song.linearPitch==2)) { e->song.linearPitch=2; diff --git a/src/gui/gui.h b/src/gui/gui.h index cdf676303..280f9debf 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -1517,6 +1517,7 @@ class FurnaceGUI { int noMultiSystem; int oldMacroVSlider; int displayAllInsTypes; + int displayPartial; int noteCellSpacing; int insCellSpacing; int volCellSpacing; @@ -1694,6 +1695,7 @@ class FurnaceGUI { noMultiSystem(0), oldMacroVSlider(0), displayAllInsTypes(0), + displayPartial(0), noteCellSpacing(0), insCellSpacing(0), volCellSpacing(0), diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index e36a6bdd9..aebc14e1f 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -3032,6 +3032,7 @@ void FurnaceGUI::drawSettings() { // "Debug" - toggles mobile UI // "Nice Amiga cover of the song!" - enables hidden systems (YMU759/SoundUnit/Dummy) // "42 63" - enables all instrument types + // "4-bit FDS" - enables partial pitch linearity option // "????" - enables stuff CONFIG_SECTION("Cheat Codes") { // SUBSECTION ENTER CODE: @@ -3219,6 +3220,7 @@ void FurnaceGUI::syncSettings() { settings.noMultiSystem=e->getConfInt("noMultiSystem",0); settings.oldMacroVSlider=e->getConfInt("oldMacroVSlider",0); settings.displayAllInsTypes=e->getConfInt("displayAllInsTypes",0); + settings.displayPartial=e->getConfInt("displayPartial",0); settings.noteCellSpacing=e->getConfInt("noteCellSpacing",0); settings.insCellSpacing=e->getConfInt("insCellSpacing",0); settings.volCellSpacing=e->getConfInt("volCellSpacing",0); @@ -3377,6 +3379,7 @@ void FurnaceGUI::syncSettings() { clampSetting(settings.noMultiSystem,0,1); clampSetting(settings.oldMacroVSlider,0,1); clampSetting(settings.displayAllInsTypes,0,1); + clampSetting(settings.displayPartial,0,1); clampSetting(settings.noteCellSpacing,0,32); clampSetting(settings.insCellSpacing,0,32); clampSetting(settings.volCellSpacing,0,32); @@ -3625,6 +3628,7 @@ void FurnaceGUI::commitSettings() { e->setConf("noMultiSystem",settings.noMultiSystem); e->setConf("oldMacroVSlider",settings.oldMacroVSlider); e->setConf("displayAllInsTypes",settings.displayAllInsTypes); + e->setConf("displayPartial",settings.displayPartial); e->setConf("noteCellSpacing",settings.noteCellSpacing); e->setConf("insCellSpacing",settings.insCellSpacing); e->setConf("volCellSpacing",settings.volCellSpacing);