summaryrefslogtreecommitdiff
path: root/src/save.c
diff options
context:
space:
mode:
authorGriffinR <griffin.g.richards@gmail.com>2020-07-08 15:51:58 -0400
committerGitHub <noreply@github.com>2020-07-08 15:51:58 -0400
commitebb6c4ee661758874972956a94eb06d38eaa18a8 (patch)
treebccf414f4a854c2fd88290cbe5c221f56ba34f17 /src/save.c
parentc0bc7e8f7b94ebab1e39b761aa194630e4c7bf6b (diff)
parent9ff261ac2a249a669a42381509ef288287535b4f (diff)
Merge branch 'master' into doc-overworld
Diffstat (limited to 'src/save.c')
-rw-r--r--src/save.c50
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