#include "CAutoSave.hpp" #include "CSaveGameScreen.hpp" #include "Runtime/MP1/MP1.hpp" namespace metaforce::MP1 { CAutoSave::CAutoSave() : CIOWin("AutoSave"sv), x14_savegameScreen(new CSaveGameScreen(ESaveContext::InGame, g_GameState->GetCardSerial())) { static_cast(g_Main)->RefreshGameState(); } void CAutoSave::Draw() { x14_savegameScreen->Draw(); } CIOWin::EMessageReturn CAutoSave::OnMessage(const CArchitectureMessage& msg, CArchitectureQueue& queue) { if (g_GameState->GetCardSerial() == 0ull) { return EMessageReturn ::RemoveIOWinAndExit; } if (msg.GetType() == EArchMsgType::UserInput) { x14_savegameScreen->ProcessUserInput(MakeMsg::GetParmUserInput(msg).x4_parm); } else if (msg.GetType() == EArchMsgType::TimerTick) { auto ret = x14_savegameScreen->Update(MakeMsg::GetParmTimerTick(msg).x4_parm); if (ret != EMessageReturn::Exit) { return EMessageReturn::RemoveIOWinAndExit; } } return EMessageReturn::Exit; } } // namespace metaforce::MP1