diff options
author | GriffinR <griffin.g.richards@gmail.com> | 2020-07-08 15:51:58 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-08 15:51:58 -0400 |
commit | ebb6c4ee661758874972956a94eb06d38eaa18a8 (patch) | |
tree | bccf414f4a854c2fd88290cbe5c221f56ba34f17 /src/save.c | |
parent | c0bc7e8f7b94ebab1e39b761aa194630e4c7bf6b (diff) | |
parent | 9ff261ac2a249a669a42381509ef288287535b4f (diff) |
Merge branch 'master' into doc-overworld
Diffstat (limited to 'src/save.c')
-rw-r--r-- | src/save.c | 50 |
1 files changed, 29 insertions, 21 deletions
diff --git a/src/save.c b/src/save.c index c19aff4d8..09e1b7aae 100644 --- a/src/save.c +++ b/src/save.c @@ -897,74 +897,78 @@ u32 TryWriteSpecialSaveSection(u8 sector, u8* src) return SAVE_STATUS_OK; } -void sub_8153688(u8 taskId) +#define tState data[0] +#define tTimer data[1] +#define tPartialSave data[2] + +void Task_LinkSave(u8 taskId) { - s16* taskData = gTasks[taskId].data; + s16* data = gTasks[taskId].data; - switch (taskData[0]) + switch (tState) { case 0: gSoftResetDisabled = TRUE; - taskData[0] = 1; + tState = 1; break; case 1: sub_800ADF8(); - taskData[0] = 2; + tState = 2; break; case 2: if (IsLinkTaskFinished()) { - if (taskData[2] == 0) + if (!tPartialSave) save_serialize_map(); - taskData[0] = 3; + tState = 3; } break; case 3: - if (taskData[2] == 0) + if (!tPartialSave) SetContinueGameWarpStatusToDynamicWarp(); sub_8153380(); - taskData[0] = 4; + tState = 4; break; case 4: - if (++taskData[1] == 5) + if (++tTimer == 5) { - taskData[1] = 0; - taskData[0] = 5; + tTimer = 0; + tState = 5; } break; case 5: if (sub_81533AC()) - taskData[0] = 6; + tState = 6; else - taskData[0] = 4; + tState = 4; break; case 6: sub_81533E0(); - taskData[0] = 7; + tState = 7; break; case 7: - if (taskData[2] == 0) + if (!tPartialSave) ClearContinueGameWarpStatus2(); sub_800ADF8(); - taskData[0] = 8; + tState = 8; break; case 8: if (IsLinkTaskFinished()) { sub_8153408(); - taskData[0] = 9; + tState = 9; } break; case 9: sub_800ADF8(); - taskData[0] = 10; + tState = 10; break; case 10: if (IsLinkTaskFinished()) - taskData[0]++; + tState++; break; case 11: - if (++taskData[1] > 5) + if (++tTimer > 5) { gSoftResetDisabled = FALSE; DestroyTask(taskId); @@ -972,3 +976,7 @@ void sub_8153688(u8 taskId) break; } } + +#undef tState +#undef tTimer +#undef tPartialSave |