MCPcopy Create free account
hub / github.com/doldecomp/mkdd / waitRead

Function waitRead

src/Osako/CardAgent.cpp:877–974  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

875 }
876
877 void waitRead()
878 {
879 s32 chan = msChan;
880 CardMgr::TaskStatus taskStatus = CardMgr::msaCardData[chan].mTaskStatus;
881 if (taskStatus != CardMgr::mcTaskDone)
882 return;
883
884 if (taskStatus == CardMgr::mcTaskDone)
885 CardMgr::msaCardData[chan].mTaskStatus = CardMgr::mcNoTask;
886
887 switch (CardMgr::msaCardData[msChan].mCardStatus)
888 {
889 case CARD_RESULT_READY:
890 mspSaveFile->checkData();
891 switch (msCommand)
892 {
893 case mcCommand2:
894 msFlags |= 1;
895 if (mspSystemFile->mSectionCount == 0 || CardMgr::areOffsetsOk(msChan))
896 {
897 msState = 3;
898 msButtonAt = 6;
899 mspPrintMemoryCard->init(PrintMemoryCard::mcBrokenNoLoad);
900 }
901 else
902 {
903 mspSystemFile->setDataChecksums();
904 mspSystemFile->store();
905 msState = 0xe;
906 }
907 break;
908 case mcCommand3:
909 if (mspSystemFile->isSavable() || CardMgr::areOffsetsOk(msChan))
910 {
911 if (FLAG_ON(mspSystemFile->mValidSections, 4)) // check if header is valid/active
912 CardMgr::write(msChan, SaveFile::mcHeader);
913 else if (mspSystemFile->mSectionCount == 0)
914 CardMgr::write(msChan, SaveFile::mcData1);
915 else
916 CardMgr::write(msChan, SaveFile::mcData2);
917
918 msState = 9;
919 mspPrintMemoryCard->init(PrintMemoryCard::mcGameSavingNoTouch);
920 msMessageTimer.set();
921 break;
922 }
923
924 msState = 4;
925 msSelectAt = 6;
926 mspPrintMemoryCard->init(PrintMemoryCard::mcNoFileNoSave);
927 break;
928
929 break;
930 case mcCommand4:
931 switch (mspGhostFile->mGhostType)
932 {
933 case 2:
934 msState = 2;

Callers 1

calcFunction · 0.85

Calls 10

areOffsetsOkFunction · 0.85
writeFunction · 0.85
errorNoCardFunction · 0.85
errorIOErrorFunction · 0.85
setDataChecksumsMethod · 0.80
isSavableMethod · 0.80
checkDataMethod · 0.45
initMethod · 0.45
storeMethod · 0.45
setMethod · 0.45

Tested by

no test coverage detected