| 375 | } |
| 376 | |
| 377 | void CardManager::GetCardChoicesForSlot(const UINT slot, const SS_CARDTYPE currConfig[NUM_SLOTS], std::vector<SS_CARDTYPE>& choicesList) |
| 378 | { |
| 379 | // Availability & order of cards in drop-down menu: |
| 380 | const SS_CARDTYPE cardsOnlyInSlot0[] = |
| 381 | { |
| 382 | CT_Empty, |
| 383 | CT_LanguageCard, |
| 384 | CT_Saturn128K, |
| 385 | }; |
| 386 | |
| 387 | // Availability & order of cards in drop-down menu: |
| 388 | const SS_CARDTYPE cardsInSlots1to7[] = |
| 389 | { |
| 390 | CT_Empty, |
| 391 | CT_Disk2, |
| 392 | CT_GenericHDD, |
| 393 | CT_GenericPrinter, |
| 394 | CT_MouseInterface, |
| 395 | CT_Saturn128K, |
| 396 | CT_SSC, |
| 397 | // Controllers |
| 398 | CT_FourPlay, |
| 399 | CT_SNESMAX, |
| 400 | // Sound |
| 401 | CT_MockingboardC, |
| 402 | CT_Phasor, |
| 403 | // CT_MegaAudio, // Exclude mb-audit test h/w for now |
| 404 | // CT_SDMusic, // Exclude mb-audit test h/w for now |
| 405 | CT_SAM, |
| 406 | // (continue with alphabetic) |
| 407 | CT_Uthernet, |
| 408 | CT_Uthernet2, |
| 409 | CT_VidHD, |
| 410 | CT_Z80, |
| 411 | // CT_GenericClock, |
| 412 | // CT_Echo, |
| 413 | // CT_80Col, |
| 414 | // CT_Extended80Col, |
| 415 | // CT_RamWorksIII, |
| 416 | // CT_LanguageCardIIe, |
| 417 | // CT_BreakpointCard, |
| 418 | }; |
| 419 | |
| 420 | choicesList.clear(); |
| 421 | |
| 422 | if (slot == SLOT0) |
| 423 | { |
| 424 | choicesList.reserve(std::size(cardsOnlyInSlot0)); |
| 425 | for (UINT i = 0; i < std::size(cardsOnlyInSlot0); i++) |
| 426 | { |
| 427 | choicesList.push_back(cardsOnlyInSlot0[i]); |
| 428 | } |
| 429 | } |
| 430 | else |
| 431 | { |
| 432 | const UINT kInvalidSlot = NUM_SLOTS; |
| 433 | BYTE haveCard[CT_NUM_CARDS]; |
| 434 | memset(haveCard, kInvalidSlot, sizeof(haveCard)); |