summaryrefslogtreecommitdiff
path: root/src/player_pc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/player_pc.c')
-rw-r--r--src/player_pc.c757
1 files changed, 757 insertions, 0 deletions
diff --git a/src/player_pc.c b/src/player_pc.c
index 79d7a671b..822e2108e 100644
--- a/src/player_pc.c
+++ b/src/player_pc.c
@@ -2,21 +2,60 @@
#include "item.h"
#include "task.h"
#include "menu.h"
+#include "sound.h"
+#include "main.h"
+#include "script.h"
+#include "palette.h"
+#include "weather.h"
+#include "asm.h"
+#include "string_util.h"
extern void DisplayItemMessageOnField(u8, u8*, TaskFunc, u16);
+extern void ItemStorageMenuProcessInput(u8);
+extern void DoPlayerPCDecoration(u8);
+extern void BuyMenuFreeMemory(void);
+extern void DestroyVerticalScrollIndicator(u8);
+extern u8 sub_813AF3C(void);
+extern void sub_813AF78(void);
+extern void sub_813A240(u8);
+extern void sub_813B108(u8);
+extern void sub_813B174(u8);
+extern void sub_80A6A30(void);
+extern u8 sub_807D770(void);
+extern void sub_813A280(u8);
+extern void sub_813AE6C(u8, u8);
+extern void sub_813A240(u8);
+extern void sub_813AD58(u16);
+extern void sub_813AE0C(u8);
+extern void sub_813ABE8(u8);
+extern void sub_813AA30(u8, u8);
+extern void sub_813A4B4(u8);
+extern void sub_813A468(u8);
+
+extern u8 gOtherText_NoItems[];
extern u16 gNewGamePCItems[];
extern u8 gOtherText_WhatWillYouDo[];
+extern u8 gOtherText_NoMailHere[];
extern u8 *gUnknown_02039314;
extern struct MenuAction gUnknown_08406298[];
extern u8 gUnknown_084062B8[];
extern u8 gUnknown_084062BC[];
extern u8 gUnknown_030007B4;
+extern u8 unk_201FE00[];
+
+extern u8 gUnknown_08152850;
+extern u8 gUnknown_08152C75;
+
+extern u32 gUnknown_08406288[];
+extern const struct MenuAction gUnknown_084062C0[];
void InitPlayerPCMenu(u8 taskId);
void PlayerPCProcessMenuInput(u8 taskId);
+void InitItemStorageMenu(u8);
+void ItemStorageMenuPrint(u8 *);
void NewGameInitPCItems(void)
{
@@ -59,3 +98,721 @@ void InitPlayerPCMenu(u8 taskId)
InitMenu(0, 1, 1, gUnknown_030007B4, 0, 9);
gTasks[taskId].func = PlayerPCProcessMenuInput;
}
+
+void PlayerPCProcessMenuInput(u8 taskId)
+{
+ if(gMain.newAndRepeatedKeys & 0x40)
+ {
+ PlaySE(5);
+ MoveMenuCursor(-1);
+ }
+ else if(gMain.newAndRepeatedKeys & 0x80)
+ {
+ PlaySE(5);
+ MoveMenuCursor(1);
+ }
+ else if(gMain.newKeys & 0x1)
+ {
+ sub_8072DEC();
+ PlaySE(5);
+ gUnknown_08406298[gUnknown_02039314[GetMenuCursorPos()]].func(taskId);
+ }
+ else if(gMain.newKeys & 0x2)
+ {
+ sub_8072DEC();
+ PlaySE(5);
+ gUnknown_08406298[gUnknown_030007B4[gUnknown_02039314 - 1]].func(taskId);
+ }
+}
+
+void ReshowPlayerPC(u8 var)
+{
+ DisplayItemMessageOnField(var, gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0);
+}
+
+void PlayerPC_ItemStorage(u8 taskId)
+{
+ InitItemStorageMenu(0);
+ gTasks[taskId].func = ItemStorageMenuProcessInput;
+}
+
+void PlayerPC_Mailbox(u8 taskId)
+{
+ MenuZeroFillWindowRect(0, 0, 10, 9);
+ unk_201FE00[3] = sub_813AF3C();
+ if(!unk_201FE00[3])
+ DisplayItemMessageOnField(taskId, gOtherText_NoMailHere, ReshowPlayerPC, 0);
+ else
+ {
+ unk_201FE00[0] = 0;
+ unk_201FE00[2] = 0;
+ sub_813AF78();
+ sub_813A240(taskId);
+ sub_813B108(taskId);
+ gTasks[taskId].func = sub_813B174;
+ }
+}
+
+void PlayerPC_Decoration(u8 var)
+{
+ MenuZeroFillWindowRect(0, 0, 10, 9);
+ DoPlayerPCDecoration(var);
+}
+
+void PlayerPC_TurnOff(u8 taskId)
+{
+ if(gUnknown_030007B4 == 4)
+ {
+ MenuZeroFillWindowRect(0, 0, 0x1D, 0x13);
+ if(!gSaveBlock2.playerGender)
+ ScriptContext1_SetupScript(&gUnknown_08152850); // male
+ else
+ ScriptContext1_SetupScript(&gUnknown_08152C75); // female
+ }
+ else
+ {
+ MenuZeroFillWindowRect(0, 0, 10, 9);
+ EnableBothScriptContexts();
+ }
+ DestroyTask(taskId);
+}
+
+void InitItemStorageMenu(u8 var)
+{
+ MenuZeroFillWindowRect(0, 0, 10, 9);
+ MenuDrawTextWindow(0, 0, 11, 9);
+ PrintMenuItems(1, 1, 4, gUnknown_084062C0);
+ InitMenu(0, 1, 1, 4, var, 10);
+ ItemStorageMenuPrint((u8 *)gUnknown_08406288[var]);
+}
+
+void ItemStorageMenuPrint(u8 *textPtr)
+{
+ MenuFillWindowRectWithBlankTile(2, 15, 27, 18);
+ MenuPrint(textPtr, 2, 15);
+}
+
+void ItemStorageMenuProcessInput(u8 var)
+{
+ if(gMain.newAndRepeatedKeys & 0x40)
+ {
+ PlaySE(5);
+ MoveMenuCursor(-1);
+ ItemStorageMenuPrint((u8 *)gUnknown_08406288[GetMenuCursorPos()]);
+ }
+ else if(gMain.newAndRepeatedKeys & 0x80)
+ {
+ PlaySE(5);
+ MoveMenuCursor(1);
+ ItemStorageMenuPrint((u8 *)gUnknown_08406288[GetMenuCursorPos()]);
+ }
+ else if(gMain.newKeys & 0x1)
+ {
+ PlaySE(5);
+ gUnknown_084062C0[GetMenuCursorPos()].func(var);
+ }
+ else if(gMain.newKeys & 0x2)
+ {
+ sub_8072DEC();
+ PlaySE(5);
+ gUnknown_084062C0[3].func(var);
+ }
+}
+
+void Task_ItemStorage_Deposit(u8 taskId)
+{
+ if(!gPaletteFade.active)
+ {
+ sub_80A6A30();
+ DestroyTask(taskId);
+ }
+}
+
+void ItemStorage_Deposit(u8 taskId)
+{
+ gTasks[taskId].func = Task_ItemStorage_Deposit;
+ fade_screen(1, 0);
+}
+
+void sub_813A0C8(u8 taskId)
+{
+ if(sub_807D770() == 1)
+ gTasks[taskId].func = ItemStorageMenuProcessInput;
+}
+
+void sub_813A0F8(void)
+{
+ MenuDisplayMessageBox();
+ InitItemStorageMenu(1);
+ CreateTask(sub_813A0C8, 0);
+ pal_fill_black();
+}
+
+void ItemStorage_Withdraw(u8 taskId)
+{
+ u8 var;
+ u16 * data = gTasks[taskId].data;
+
+ sub_8072DEC();
+ MenuZeroFillWindowRect(0, 0, 11, 9);
+ var = CountUsedPCItemSlots();
+ data[2] = var;
+
+ if(var)
+ {
+ MenuZeroFillWindowRect(0, 14, 29, 19);
+ data[6] = 0;
+ data[0] = 0;
+ data[1] = 0;
+ sub_813A240(taskId);
+ sub_813AE6C(taskId, 0);
+ gTasks[taskId].func = sub_813A280;
+ }
+ else
+ DisplayItemMessageOnField(taskId, gOtherText_NoItems, PlayerPC_ItemStorage, 0);
+}
+
+void ItemStorage_Toss(u8 taskId)
+{
+ u8 var;
+ u16 * data = gTasks[taskId].data;
+
+ sub_8072DEC();
+ MenuZeroFillWindowRect(0, 0, 11, 9);
+ var = CountUsedPCItemSlots();
+ data[2] = var;
+
+ if(var)
+ {
+ MenuZeroFillWindowRect(0, 14, 29, 19);
+ data[6] = 2;
+ data[0] = 0;
+ data[1] = 0;
+ sub_813A240(taskId);
+ sub_813AE6C(taskId, 2);
+ gTasks[taskId].func = sub_813A280;
+ }
+ else
+ DisplayItemMessageOnField(taskId, gOtherText_NoItems, PlayerPC_ItemStorage, 0);
+}
+
+void ItemStorage_Exit(u8 var)
+{
+ sub_8072DEC();
+ MenuZeroFillWindowRect(0, 0, 11, 9);
+ ReshowPlayerPC(var);
+}
+
+void sub_813A240(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ if (data[2] > 7)
+ data[4] = 8;
+ else
+ data[4] = data[2] + 1;
+
+ if(unk_201FE00[3] > 7)
+ unk_201FE00[1] = 8;
+ else
+ unk_201FE00[1] = unk_201FE00[3] + 1;
+}
+
+#ifdef NONMATCHING
+void sub_813A280(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ if(gMain.newAndRepeatedKeys & 0x40)
+ {
+ if(data[0])
+ {
+ PlaySE(5);
+ data[0] = MoveMenuCursor(-1);
+ if(!data[9])
+ {
+ if(data[1] + data[0] == data[2])
+ {
+ sub_813AD58(0xFFFF);
+ return;
+ }
+ sub_813AD58(gSaveBlock1.pcItems[data[1] + data[0]].itemId);
+ }
+ return;
+ }
+ if(!data[1])
+ return;
+ PlaySE(5);
+ sub_813AE0C(taskId);
+ if(data[9])
+ MoveMenuCursor(0);
+ return;
+ }
+ if(!(gMain.newAndRepeatedKeys & 0x80))
+ {
+ if(gMain.newKeys & 0x4)
+ {
+ if(!data[9])
+ {
+ if(data[0] + data[1] != data[2])
+ {
+ PlaySE(5);
+ data[9] = 1;
+ data[8] = data[0] + data[1];
+ sub_813AD58(0xFFF7);
+ }
+ sub_813ABE8(taskId);
+ return;
+ }
+ PlaySE(5);
+ sub_813AA30(taskId, 0);
+ sub_813AE0C(taskId);
+ return;
+ }
+ if(gMain.newKeys & 0x1)
+ {
+ PlaySE(5);
+ if(data[9])
+ {
+ sub_813AA30(taskId, 0);
+ sub_813AE0C(taskId);
+ return;
+ }
+ if(data[1] + data[0] != data[2])
+ {
+ sub_813A4B4(taskId);
+ return;
+ }
+ }
+ else
+ {
+ if(!(gMain.newKeys & 0x2))
+ return;
+ PlaySE(5);
+ if(data[9])
+ {
+ sub_813AA30(taskId, 1);
+ sub_813AE0C(taskId);
+ return;
+ }
+ sub_8072DEC();
+ }
+ sub_813A468(taskId);
+ return;
+ }
+ if(data[0] == data[4] - 1)
+ {
+ if(data[1] + data[0] == data[2])
+ return;
+ PlaySE(5);
+ data[1]++;
+ sub_813AE0C(taskId);
+ if(data[9])
+ MoveMenuCursor(0);
+ return;
+ }
+ PlaySE(5);
+ data[0] = MoveMenuCursor(1);
+ if(!data[9])
+ {
+ if(data[1] + data[0] != data[2])
+ {
+ sub_813AD58(gSaveBlock1.pcItems[data[1] + data[0]].itemId);
+ return;
+ }
+ sub_813AD58(0xFFFF);
+ }
+}
+#else
+__attribute__((naked))
+void sub_813A280(u8 taskId)
+{
+ asm(".syntax unified\n\
+ push {r4-r6,lr}\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ adds r6, r5, 0\n\
+ lsls r0, r5, 2\n\
+ adds r0, r5\n\
+ lsls r0, 3\n\
+ ldr r1, _0813A2DC @ =gTasks + 0x8\n\
+ adds r4, r0, r1\n\
+ ldr r2, _0813A2E0 @ =gMain\n\
+ ldrh r1, [r2, 0x30]\n\
+ movs r0, 0x40\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0813A306\n\
+ movs r1, 0\n\
+ ldrsh r0, [r4, r1]\n\
+ cmp r0, 0\n\
+ beq _0813A2E4\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ movs r0, 0x1\n\
+ negs r0, r0\n\
+ bl MoveMenuCursor\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ strh r0, [r4]\n\
+ ldrh r1, [r4, 0x2]\n\
+ adds r1, r0\n\
+ lsls r1, 16\n\
+ lsrs r1, 16\n\
+ movs r2, 0x12\n\
+ ldrsh r0, [r4, r2]\n\
+ cmp r0, 0\n\
+ beq _0813A2CC\n\
+ b _0813A460\n\
+_0813A2CC:\n\
+ lsls r0, r1, 16\n\
+ asrs r1, r0, 16\n\
+ movs r2, 0x4\n\
+ ldrsh r0, [r4, r2]\n\
+ cmp r1, r0\n\
+ beq _0813A34C\n\
+ b _0813A358\n\
+ .align 2, 0\n\
+_0813A2DC: .4byte gTasks + 0x8\n\
+_0813A2E0: .4byte gMain\n\
+_0813A2E4:\n\
+ movs r1, 0x2\n\
+ ldrsh r0, [r4, r1]\n\
+ cmp r0, 0\n\
+ bne _0813A2EE\n\
+ b _0813A460\n\
+_0813A2EE:\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ ldrh r0, [r4, 0x2]\n\
+ subs r0, 0x1\n\
+ strh r0, [r4, 0x2]\n\
+ adds r0, r5, 0\n\
+ bl sub_813AE0C\n\
+ movs r2, 0x12\n\
+ ldrsh r0, [r4, r2]\n\
+ b _0813A394\n\
+_0813A306:\n\
+ movs r0, 0x80\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0813A3A0\n\
+ movs r0, 0\n\
+ ldrsh r1, [r4, r0]\n\
+ movs r2, 0x8\n\
+ ldrsh r0, [r4, r2]\n\
+ subs r0, 0x1\n\
+ cmp r1, r0\n\
+ beq _0813A370\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ movs r0, 0x1\n\
+ bl MoveMenuCursor\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ strh r0, [r4]\n\
+ ldrh r1, [r4, 0x2]\n\
+ adds r1, r0\n\
+ lsls r1, 16\n\
+ lsrs r1, 16\n\
+ movs r2, 0x12\n\
+ ldrsh r0, [r4, r2]\n\
+ cmp r0, 0\n\
+ beq _0813A340\n\
+ b _0813A460\n\
+_0813A340:\n\
+ lsls r0, r1, 16\n\
+ asrs r1, r0, 16\n\
+ movs r2, 0x4\n\
+ ldrsh r0, [r4, r2]\n\
+ cmp r1, r0\n\
+ bne _0813A358\n\
+_0813A34C:\n\
+ ldr r0, _0813A354 @ =0x0000ffff\n\
+ bl sub_813AD58\n\
+ b _0813A460\n\
+ .align 2, 0\n\
+_0813A354: .4byte 0x0000ffff\n\
+_0813A358:\n\
+ ldr r0, _0813A36C @ =gSaveBlock1\n\
+ lsls r1, 2\n\
+ adds r1, r0\n\
+ movs r0, 0x93\n\
+ lsls r0, 3\n\
+ adds r1, r0\n\
+ ldrh r0, [r1]\n\
+ bl sub_813AD58\n\
+ b _0813A460\n\
+ .align 2, 0\n\
+_0813A36C: .4byte gSaveBlock1\n\
+_0813A370:\n\
+ movs r2, 0x2\n\
+ ldrsh r0, [r4, r2]\n\
+ adds r0, r1\n\
+ movs r2, 0x4\n\
+ ldrsh r1, [r4, r2]\n\
+ cmp r0, r1\n\
+ beq _0813A460\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ ldrh r0, [r4, 0x2]\n\
+ adds r0, 0x1\n\
+ strh r0, [r4, 0x2]\n\
+ adds r0, r5, 0\n\
+ bl sub_813AE0C\n\
+ movs r1, 0x12\n\
+ ldrsh r0, [r4, r1]\n\
+_0813A394:\n\
+ cmp r0, 0\n\
+ beq _0813A460\n\
+ movs r0, 0\n\
+ bl MoveMenuCursor\n\
+ b _0813A460\n\
+_0813A3A0:\n\
+ ldrh r1, [r2, 0x2E]\n\
+ movs r0, 0x4\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0813A3F0\n\
+ movs r2, 0x12\n\
+ ldrsh r0, [r4, r2]\n\
+ cmp r0, 0\n\
+ bne _0813A3E8\n\
+ movs r1, 0\n\
+ ldrsh r0, [r4, r1]\n\
+ movs r2, 0x2\n\
+ ldrsh r1, [r4, r2]\n\
+ adds r0, r1\n\
+ movs r2, 0x4\n\
+ ldrsh r1, [r4, r2]\n\
+ cmp r0, r1\n\
+ beq _0813A3DC\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ movs r0, 0x1\n\
+ strh r0, [r4, 0x12]\n\
+ ldrh r0, [r4]\n\
+ ldrh r1, [r4, 0x2]\n\
+ adds r0, r1\n\
+ strh r0, [r4, 0x10]\n\
+ ldr r0, _0813A3E4 @ =0x0000fff7\n\
+ bl sub_813AD58\n\
+_0813A3DC:\n\
+ adds r0, r5, 0\n\
+ bl sub_813ABE8\n\
+ b _0813A460\n\
+ .align 2, 0\n\
+_0813A3E4: .4byte 0x0000fff7\n\
+_0813A3E8:\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ b _0813A420\n\
+_0813A3F0:\n\
+ movs r0, 0x1\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0813A430\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ movs r2, 0x12\n\
+ ldrsh r0, [r4, r2]\n\
+ cmp r0, 0\n\
+ bne _0813A420\n\
+ movs r1, 0x2\n\
+ ldrsh r0, [r4, r1]\n\
+ movs r2, 0\n\
+ ldrsh r1, [r4, r2]\n\
+ adds r0, r1\n\
+ movs r2, 0x4\n\
+ ldrsh r1, [r4, r2]\n\
+ cmp r0, r1\n\
+ beq _0813A44A\n\
+ adds r0, r5, 0\n\
+ bl sub_813A4B4\n\
+ b _0813A460\n\
+_0813A420:\n\
+ adds r0, r5, 0\n\
+ movs r1, 0\n\
+ bl sub_813AA30\n\
+ adds r0, r5, 0\n\
+ bl sub_813AE0C\n\
+ b _0813A460\n\
+_0813A430:\n\
+ movs r0, 0x2\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0813A460\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ movs r1, 0x12\n\
+ ldrsh r0, [r4, r1]\n\
+ cmp r0, 0\n\
+ bne _0813A452\n\
+ bl sub_8072DEC\n\
+_0813A44A:\n\
+ adds r0, r5, 0\n\
+ bl sub_813A468\n\
+ b _0813A460\n\
+_0813A452:\n\
+ adds r0, r6, 0\n\
+ movs r1, 0x1\n\
+ bl sub_813AA30\n\
+ adds r0, r6, 0\n\
+ bl sub_813AE0C\n\
+_0813A460:\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .syntax divided");
+}
+#endif
+
+void sub_813A468(u8 taskId)
+{
+ BuyMenuFreeMemory();
+ DestroyVerticalScrollIndicator(0);
+ DestroyVerticalScrollIndicator(1);
+ MenuZeroFillWindowRect(0, 0, 29, 19);
+ MenuDisplayMessageBox();
+ InitItemStorageMenu(gTasks[taskId].data[6]);
+ gTasks[taskId].func = ItemStorageMenuProcessInput;
+}
+
+#ifdef NONMATCHING
+void sub_813A4B4(u8 taskId)
+{
+ u16 *data = gTasks[taskId].data;
+ u16 var = data[2] + data[0];
+
+ sub_80F996C(0);
+ sub_80F996C(1);
+
+ if(data[6])
+ {
+ if(gSaveBlock1.pcItems[var].itemId == 1)
+ {
+ data[3] = 1;
+ sub_813A794(taskId);
+ return;
+ }
+ sub_813AD58(0xFFF7);
+ data[3] = 1;
+ MenuDrawTextWindow(6, 8, 13, 11);
+ sub_80A418C(data[3], STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3);
+ gTasks[taskId].func = sub_813A584;
+ return;
+ }
+ if(gSaveBlock1.pcItems[var].itemId != 1)
+ {
+ sub_813AD58(0xFFF7);
+ data[3] = 1;
+ MenuDrawTextWindow(6, 8, 13, 11);
+ sub_80A418C(data[3], STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3);
+ gTasks[taskId].func = sub_813A584;
+ return;
+ }
+ data[3] = 1;
+ sub_813A6FC(taskId);
+}
+#else
+__attribute__((naked))
+void sub_813A4B4(u8 taskId)
+{
+ asm(".syntax unified\n\
+ push {r4-r6,lr}\n\
+ sub sp, 0x4\n\
+ lsls r0, 24\n\
+ lsrs r6, r0, 24\n\
+ lsls r0, r6, 2\n\
+ adds r0, r6\n\
+ lsls r0, 3\n\
+ ldr r1, _0813A500 @ =gTasks + 0x8\n\
+ adds r4, r0, r1\n\
+ ldrb r0, [r4, 0x2]\n\
+ ldrb r1, [r4]\n\
+ adds r0, r1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ movs r0, 0\n\
+ bl sub_80F996C\n\
+ movs r0, 0x1\n\
+ bl sub_80F996C\n\
+ movs r1, 0xC\n\
+ ldrsh r0, [r4, r1]\n\
+ cmp r0, 0\n\
+ bne _0813A518\n\
+ ldr r1, _0813A504 @ =gSaveBlock1\n\
+ lsls r0, r5, 2\n\
+ adds r0, r1\n\
+ ldr r1, _0813A508 @ =0x0000049a\n\
+ adds r0, r1\n\
+ ldrh r0, [r0]\n\
+ cmp r0, 0x1\n\
+ bne _0813A50C\n\
+ strh r0, [r4, 0x6]\n\
+ adds r0, r6, 0\n\
+ bl sub_813A6FC\n\
+ b _0813A570\n\
+ .align 2, 0\n\
+_0813A500: .4byte gTasks + 0x8\n\
+_0813A504: .4byte gSaveBlock1\n\
+_0813A508: .4byte 0x0000049a\n\
+_0813A50C:\n\
+ ldr r0, _0813A514 @ =0x0000fffe\n\
+ bl sub_813AD58\n\
+ b _0813A542\n\
+ .align 2, 0\n\
+_0813A514: .4byte 0x0000fffe\n\
+_0813A518:\n\
+ ldr r1, _0813A534 @ =gSaveBlock1\n\
+ lsls r0, r5, 2\n\
+ adds r0, r1\n\
+ ldr r1, _0813A538 @ =0x0000049a\n\
+ adds r0, r1\n\
+ ldrh r0, [r0]\n\
+ cmp r0, 0x1\n\
+ bne _0813A53C\n\
+ strh r0, [r4, 0x6]\n\
+ adds r0, r6, 0\n\
+ bl sub_813A794\n\
+ b _0813A570\n\
+ .align 2, 0\n\
+_0813A534: .4byte gSaveBlock1\n\
+_0813A538: .4byte 0x0000049a\n\
+_0813A53C:\n\
+ ldr r0, _0813A578 @ =0x0000fffc\n\
+ bl sub_813AD58\n\
+_0813A542:\n\
+ movs r0, 0x1\n\
+ strh r0, [r4, 0x6]\n\
+ movs r0, 0x6\n\
+ movs r1, 0x8\n\
+ movs r2, 0xD\n\
+ movs r3, 0xB\n\
+ bl MenuDrawTextWindow\n\
+ ldrh r0, [r4, 0x6]\n\
+ movs r1, 0x3\n\
+ str r1, [sp]\n\
+ movs r1, 0x1\n\
+ movs r2, 0x8\n\
+ movs r3, 0x9\n\
+ bl sub_80A418C\n\
+ ldr r1, _0813A57C @ =gTasks\n\
+ lsls r0, r6, 2\n\
+ adds r0, r6\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ ldr r1, _0813A580 @ =sub_813A584\n\
+ str r1, [r0]\n\
+_0813A570:\n\
+ add sp, 0x4\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_0813A578: .4byte 0x0000fffc\n\
+_0813A57C: .4byte gTasks\n\
+_0813A580: .4byte sub_813A584\n\
+ .syntax divided");
+}
+#endif