From a28c233c77d7da0acca1447f8e272b646f91e8c0 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Mon, 18 Mar 2024 19:45:04 -0500 Subject: [PATCH] DO NOT USE BECAUSE THIS WILL FAIL --- src/gui/newSong.cpp | 2 +- src/gui/presets.cpp | 113 +++++++++++++++++++++++--------------------- 2 files changed, 59 insertions(+), 56 deletions(-) diff --git a/src/gui/newSong.cpp b/src/gui/newSong.cpp index 3fed2da3b..a22f5d444 100644 --- a/src/gui/newSong.cpp +++ b/src/gui/newSong.cpp @@ -91,7 +91,7 @@ void FurnaceGUI::drawNewSong() { ImGui::TableNextColumn(); int index=0; for (FurnaceGUISysCategory& i: sysCategories) { - if (ImGui::Selectable(i.name,newSongCategory==index,ImGuiSelectableFlags_DontClosePopups)) { \ + if (ImGui::Selectable(i.name,newSongCategory==index,ImGuiSelectableFlags_DontClosePopups)) { newSongCategory=index; } if (ImGui::IsItemHovered()) { diff --git a/src/gui/presets.cpp b/src/gui/presets.cpp index 4c96204d1..6b116c3b8 100644 --- a/src/gui/presets.cpp +++ b/src/gui/presets.cpp @@ -35,7 +35,10 @@ #define CH FurnaceGUISysDefChip #define CATEGORY_BEGIN(x,y) cat=FurnaceGUISysCategory(x,y); #define CATEGORY_END sysCategories.push_back(cat); -#define ENTRY(...) cat.systems.push_back(FurnaceGUISysDef(__VA_ARGS__)); +#define ENTRY(...) \ + cat.systems.push_back(FurnaceGUISysDef(__VA_ARGS__)); +#define SUB_ENTRY(...) \ + cat.system[cat.size()-1].subDefs.push_back(FurnaceGUISysDef(__VA_ARGS__)); void FurnaceGUI::initSystemPresets() { sysCategories.clear(); @@ -49,60 +52,60 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_SMS, 0.5f, 0, "") } ); - ENTRY( - "Sega Genesis (extended channel 3)", { - CH(DIV_SYSTEM_YM2612_EXT, 1.0f, 0, ""), - CH(DIV_SYSTEM_SMS, 0.5f, 0, "") - } - ); - ENTRY( - "Sega Genesis (CSM)", { - CH(DIV_SYSTEM_YM2612_CSM, 1.0f, 0, ""), - CH(DIV_SYSTEM_SMS, 0.5f, 0, "") - } - ); - ENTRY( - "Sega Genesis (DualPCM)", { - CH(DIV_SYSTEM_YM2612_DUALPCM, 1.0f, 0, ""), - CH(DIV_SYSTEM_SMS, 0.5f, 0, "") - } - ); - ENTRY( - "Sega Genesis (DualPCM, extended channel 3)", { - CH(DIV_SYSTEM_YM2612_DUALPCM_EXT, 1.0f, 0, ""), - CH(DIV_SYSTEM_SMS, 0.5f, 0, "") - } - ); - ENTRY( - "Sega Genesis (with Sega CD)", { - CH(DIV_SYSTEM_YM2612, 1.0f, 0, ""), - CH(DIV_SYSTEM_SMS, 0.5f, 0, ""), - CH(DIV_SYSTEM_RF5C68, 1.0f, 0, - "clockSel=2\n" - "chipType=1\n" - ) - } - ); - ENTRY( - "Sega Genesis (extended channel 3 with Sega CD)", { - CH(DIV_SYSTEM_YM2612_EXT, 1.0f, 0, ""), - CH(DIV_SYSTEM_SMS, 0.5f, 0, ""), - CH(DIV_SYSTEM_RF5C68, 1.0f, 0, - "clockSel=2\n" - "chipType=1\n" - ) - } - ); - ENTRY( - "Sega Genesis (CSM with Sega CD)", { - CH(DIV_SYSTEM_YM2612_CSM, 1.0f, 0, ""), - CH(DIV_SYSTEM_SMS, 0.5f, 0, ""), - CH(DIV_SYSTEM_RF5C68, 1.0f, 0, - "clockSel=2\n" - "chipType=1\n" - ) - } - ); + SUB_ENTRY( + "Sega Genesis (extended channel 3)", { + CH(DIV_SYSTEM_YM2612_EXT, 1.0f, 0, ""), + CH(DIV_SYSTEM_SMS, 0.5f, 0, "") + } + ); + SUB_ENTRY( + "Sega Genesis (CSM)", { + CH(DIV_SYSTEM_YM2612_CSM, 1.0f, 0, ""), + CH(DIV_SYSTEM_SMS, 0.5f, 0, "") + } + ); + SUB_ENTRY( + "Sega Genesis (DualPCM)", { + CH(DIV_SYSTEM_YM2612_DUALPCM, 1.0f, 0, ""), + CH(DIV_SYSTEM_SMS, 0.5f, 0, "") + } + ); + SUB_ENTRY( + "Sega Genesis (DualPCM, extended channel 3)", { + CH(DIV_SYSTEM_YM2612_DUALPCM_EXT, 1.0f, 0, ""), + CH(DIV_SYSTEM_SMS, 0.5f, 0, "") + } + ); + SUB_ENTRY( + "Sega Genesis (with Sega CD)", { + CH(DIV_SYSTEM_YM2612, 1.0f, 0, ""), + CH(DIV_SYSTEM_SMS, 0.5f, 0, ""), + CH(DIV_SYSTEM_RF5C68, 1.0f, 0, + "clockSel=2\n" + "chipType=1\n" + ) + } + ); + SUB_ENTRY( + "Sega Genesis (extended channel 3 with Sega CD)", { + CH(DIV_SYSTEM_YM2612_EXT, 1.0f, 0, ""), + CH(DIV_SYSTEM_SMS, 0.5f, 0, ""), + CH(DIV_SYSTEM_RF5C68, 1.0f, 0, + "clockSel=2\n" + "chipType=1\n" + ) + } + ); + SUB_ENTRY( + "Sega Genesis (CSM with Sega CD)", { + CH(DIV_SYSTEM_YM2612_CSM, 1.0f, 0, ""), + CH(DIV_SYSTEM_SMS, 0.5f, 0, ""), + CH(DIV_SYSTEM_RF5C68, 1.0f, 0, + "clockSel=2\n" + "chipType=1\n" + ) + } + ); ENTRY( "Sega Master System", { CH(DIV_SYSTEM_SMS, 1.0f, 0, "")