WIP: drop-down with all card choices

This commit is contained in:
tomcw
2025-11-14 22:30:10 +00:00
parent 7afff6362e
commit 502e126c96
3 changed files with 32 additions and 1 deletions
+10
View File
@@ -28,8 +28,18 @@ enum SS_CARDTYPE
CT_MegaAudio, // Soundcard
CT_SDMusic, // Soundcard
CT_BreakpointCard,
CT_NUM_CARDS
};
#if 0
enum SS_CARDTYPE_AUX
{
CT_80Col=12, // 80 column card (1K)
CT_Extended80Col, // Extended 80-col card (64K)
CT_RamWorksIII, // RamWorksIII (up to 8MB)
};
#endif
enum SLOTS { SLOT0=0, SLOT1, SLOT2, SLOT3, SLOT4, SLOT5, SLOT6, SLOT7, NUM_SLOTS, SLOT_AUX, GAME_IO_CONNECTOR };
class YamlSaveHelper;
+21
View File
@@ -317,6 +317,7 @@ void CardManager::SaveSnapshot(YamlSaveHelper& yamlSaveHelper)
void CardManager::GetCardChoicesForSlot(UINT slot, char* choices)
{
#if 0
strcpy(choices, "Card 1");
choices += 7;
strcpy(choices, "Card 2");
@@ -324,5 +325,25 @@ void CardManager::GetCardChoicesForSlot(UINT slot, char* choices)
strcpy(choices, "Card 3");
choices += 7;
*choices = 0;
#endif
for (UINT i = CT_Empty; i < CT_NUM_CARDS; i++)
{
if (i == CT_GenericClock) continue;
if (i == CT_Echo) continue;
if (i == CT_80Col) continue;
if (i == CT_Extended80Col) continue;
if (i == CT_RamWorksIII) continue;
if (i == CT_LanguageCard && slot != SLOT0) continue;
if (i == CT_LanguageCardIIe) continue;
if (i == CT_VidHD && slot != SLOT3) continue;
if (i == CT_BreakpointCard) continue;
std::string name = Card::GetCardName((SS_CARDTYPE)i);
strcpy(choices, name.c_str());
choices += name.size() + 1;
}
*choices = 0;
}
+1 -1
View File
@@ -235,7 +235,7 @@ void CPageSound::InitOptions(HWND hWnd)
if (slot == 4 || slot == 5)
continue;
char choices[100];
char choices[1000];
GetCardMgr().GetCardChoicesForSlot(slot, &choices[0]);
m_PropertySheetHelper.FillComboBox(hWnd, IDC_SLOT0+slot*2, choices, 0);
}