summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorLéo Lam <leolino.lam@gmail.com>2018-01-29 21:58:59 +0100
committerGitHub <noreply@github.com>2018-01-29 21:58:59 +0100
commit3bceb3c52a791688034abf32ff72cd4babdcda48 (patch)
treeac5273eeec6c775a10847b248d08e65e9ed61ea3 /Source/Core
parentfe5150cc3195f6350c6726c46573ef3406d093eb (diff)
parent28e038865862cf88170bcfb8d9a5328f849d744d (diff)
Merge pull request #6328 from spycrab/qt_fix_gc_amnesia
Qt/GameCubePane: Various fixes
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/DolphinQt2/Settings/GameCubePane.cpp66
1 files changed, 38 insertions, 28 deletions
diff --git a/Source/Core/DolphinQt2/Settings/GameCubePane.cpp b/Source/Core/DolphinQt2/Settings/GameCubePane.cpp
index 2b941663ac..3aef7b6ec3 100644
--- a/Source/Core/DolphinQt2/Settings/GameCubePane.cpp
+++ b/Source/Core/DolphinQt2/Settings/GameCubePane.cpp
@@ -25,17 +25,26 @@
constexpr int SLOT_A_INDEX = 0;
constexpr int SLOT_B_INDEX = 1;
+constexpr int SLOT_SP1_INDEX = 2;
constexpr int SLOT_COUNT = 3;
-constexpr int EXP_MEMORYCARD_INDEX = 2;
-constexpr int EXP_GECKO_INDEX = 4;
+enum ExpansionSelection
+{
+ EXP_NOTHING = 0,
+ EXP_DUMMY = 1,
+ EXP_MEMORYCARD = 2,
+ EXP_BROADBAND = 2,
+ EXP_GCI_FOLDER = 3,
+ EXP_GECKO = 4,
+ EXP_AGP = 5,
+ EXP_MICROPHONE = 6
+};
GameCubePane::GameCubePane()
{
CreateWidgets();
- ConnectWidgets();
-
LoadSettings();
+ ConnectWidgets();
}
void GameCubePane::CreateWidgets()
@@ -172,6 +181,7 @@ void GameCubePane::OnConfigPressed(int slot)
QMessageBox::critical(this, tr("Error"), tr("Cannot use that file as a memory card.\n%s\n"
"is not a valid GameCube memory card file")
.arg(filename));
+
return;
}
@@ -241,29 +251,32 @@ void GameCubePane::LoadSettings()
for (int i = 0; i < SLOT_COUNT; i++)
{
- int index = 0;
+ int index = EXP_NOTHING;
switch (SConfig::GetInstance().m_EXIDevice[i])
{
case ExpansionInterface::EXIDEVICE_NONE:
- index = 0;
+ index = EXP_NOTHING;
break;
case ExpansionInterface::EXIDEVICE_DUMMY:
- index = 1;
+ index = EXP_DUMMY;
break;
case ExpansionInterface::EXIDEVICE_MEMORYCARD:
- index = 2;
+ index = EXP_MEMORYCARD;
+ break;
+ case ExpansionInterface::EXIDEVICE_ETH:
+ index = EXP_BROADBAND;
break;
case ExpansionInterface::EXIDEVICE_MEMORYCARDFOLDER:
- index = 3;
+ index = EXP_GCI_FOLDER;
break;
case ExpansionInterface::EXIDEVICE_GECKO:
- index = 4;
+ index = EXP_GECKO;
break;
case ExpansionInterface::EXIDEVICE_AGP:
- index = 5;
+ index = EXP_AGP;
break;
case ExpansionInterface::EXIDEVICE_MIC:
- index = 6;
+ index = EXP_MICROPHONE;
break;
default:
break;
@@ -271,7 +284,7 @@ void GameCubePane::LoadSettings()
if (i <= SLOT_B_INDEX)
{
- bool has_config = (index == EXP_MEMORYCARD_INDEX || index > EXP_GECKO_INDEX);
+ bool has_config = (index == EXP_MEMORYCARD || index > EXP_GECKO);
m_slot_buttons[i]->setEnabled(has_config);
}
@@ -290,37 +303,34 @@ void GameCubePane::SaveSettings()
for (int i = 0; i < SLOT_COUNT; i++)
{
- auto& dev = SConfig::GetInstance().m_EXIDevice[i];
+ auto dev = SConfig::GetInstance().m_EXIDevice[i];
int index = m_slot_combos[i]->currentIndex();
- if (i <= SLOT_B_INDEX)
- {
- bool has_config = (index == 3 || index > 4);
- m_slot_buttons[i]->setEnabled(has_config);
- }
-
switch (index)
{
- case 0:
+ case EXP_NOTHING:
dev = ExpansionInterface::EXIDEVICE_NONE;
break;
- case 1:
+ case EXP_DUMMY:
dev = ExpansionInterface::EXIDEVICE_DUMMY;
break;
- case 2:
- dev = ExpansionInterface::EXIDEVICE_MEMORYCARD;
+ case EXP_MEMORYCARD:
+ if (i == SLOT_SP1_INDEX)
+ dev = ExpansionInterface::EXIDEVICE_ETH;
+ else
+ dev = ExpansionInterface::EXIDEVICE_MEMORYCARD;
break;
- case 3:
+ case EXP_GCI_FOLDER:
dev = ExpansionInterface::EXIDEVICE_MEMORYCARDFOLDER;
break;
- case 4:
+ case EXP_GECKO:
dev = ExpansionInterface::EXIDEVICE_GECKO;
break;
- case 5:
+ case EXP_AGP:
dev = ExpansionInterface::EXIDEVICE_AGP;
break;
- case 6:
+ case EXP_MICROPHONE:
dev = ExpansionInterface::EXIDEVICE_MIC;
break;
}