2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-10 12:27:43 +00:00

Fix memcard path CVars and add menu notifying player when they've been reset

This commit is contained in:
2021-06-02 08:06:22 -07:00
parent 561e54527b
commit c6db983c41
7 changed files with 161 additions and 79 deletions

View File

@@ -131,6 +131,9 @@ bool CSaveGameScreen::PumpLoad() {
}
CSaveGameScreen::EUIType CSaveGameScreen::SelectUIType() const {
if (x10_uiType == EUIType::CreateDolphinCardFailed) {
return x10_uiType;
}
if (x6c_cardDriver->x10_state == EState::NoCard) {
return EUIType::NoCardFound;
}
@@ -312,6 +315,12 @@ void CSaveGameScreen::SetUIText() {
opt1 = 15; // No
}
break;
case EUIType::CreateDolphinCardFailed:
msgAStr = u"Attempt to create Dolphin Card failed!\n";
msgBStr = u"CVars have been reset to defaults.\nMetaforce will use Dolphin's memory cards if available\n";
opt0 = -2;
opt0Str = u"Press &image=SI,1.0,0.68,05AF9CAA; to proceed.\n";
break;
default:
break;
}
@@ -392,7 +401,12 @@ void CSaveGameScreen::DoAdvance([[maybe_unused]] CGuiTableGroup* caller) {
sfx = x84_navConfirmSfx;
} else if (userSel == 2 && x10_uiType == EUIType::NoCardFound) {
/* Create Dolphin Card */
CMemoryCardSys::CreateDolphinCard(kabufuda::ECardSlot::SlotA);
if (!CMemoryCardSys::CreateDolphinCard(kabufuda::ECardSlot::SlotA)) {
x10_uiType = EUIType::CreateDolphinCardFailed;
sfx = x8c_navBackSfx;
x91_uiTextDirty = true;
break;
}
ResetCardDriver();
sfx = x84_navConfirmSfx;
}
@@ -556,6 +570,15 @@ void CSaveGameScreen::DoAdvance([[maybe_unused]] CGuiTableGroup* caller) {
}
}
break;
case EUIType::CreateDolphinCardFailed: {
if (userSel == 0) {
CMemoryCardSys::_ResetCVar(kabufuda::ECardSlot::SlotA);
CMemoryCardSys::ResolveDolphinCardPath(kabufuda::ECardSlot::SlotA);
ResetCardDriver();
x10_uiType = EUIType::Empty;
sfx = x84_navConfirmSfx;
}
} break;
default:
break;