diff options
author | yenatch <yenatch@gmail.com> | 2017-03-22 18:34:29 -0400 |
---|---|---|
committer | yenatch <yenatch@gmail.com> | 2017-03-22 18:34:29 -0400 |
commit | 7acbfe40778bfbd03b0e2d357efef9ee9b0a34e9 (patch) | |
tree | 90c0b95146f3d768b536658eac6a63ff9adcaaec /src/player_pc.c | |
parent | c0a27d5455014bfe54f7ea73e8a38ce0ed8da6da (diff) | |
parent | e3c26e52ae6ab881ade913ca1fad2cd9629bbcb1 (diff) |
Merge remote-tracking branch 'origin/master'
Conflicts:
Makefile
Diffstat (limited to 'src/player_pc.c')
-rw-r--r-- | src/player_pc.c | 1216 |
1 files changed, 608 insertions, 608 deletions
diff --git a/src/player_pc.c b/src/player_pc.c index 822e2108e..6ea169713 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -1,14 +1,14 @@ #include "global.h" +#include "asm.h" #include "item.h" -#include "task.h" -#include "menu.h" -#include "sound.h" #include "main.h" -#include "script.h" +#include "menu.h" #include "palette.h" -#include "weather.h" -#include "asm.h" +#include "script.h" +#include "sound.h" #include "string_util.h" +#include "task.h" +#include "weather.h" extern void DisplayItemMessageOnField(u8, u8*, TaskFunc, u16); extern void ItemStorageMenuProcessInput(u8); @@ -65,7 +65,7 @@ void NewGameInitPCItems(void) while (gNewGamePCItems[i * 2] && (gNewGamePCItems + 1)[i * 2]) { - if(AddPCItem(gNewGamePCItems[i * 2], (gNewGamePCItems + 1)[i * 2]) != 1) + if (AddPCItem(gNewGamePCItems[i * 2], (gNewGamePCItems + 1)[i * 2]) != 1) break; i++; } @@ -73,746 +73,746 @@ void NewGameInitPCItems(void) void BedroomPC(void) { - u8 taskId; - - gUnknown_02039314 = gUnknown_084062B8; - gUnknown_030007B4 = 4; - taskId = CreateTask(TaskDummy, 0); - DisplayItemMessageOnField(taskId, gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0); + u8 taskId; + + gUnknown_02039314 = gUnknown_084062B8; + gUnknown_030007B4 = 4; + taskId = CreateTask(TaskDummy, 0); + DisplayItemMessageOnField(taskId, gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0); } void PlayerPC(void) { - u8 taskId; - - gUnknown_02039314 = gUnknown_084062BC; - gUnknown_030007B4 = 3; - taskId = CreateTask(TaskDummy, 0); - DisplayItemMessageOnField(taskId, gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0); + u8 taskId; + + gUnknown_02039314 = gUnknown_084062BC; + gUnknown_030007B4 = 3; + taskId = CreateTask(TaskDummy, 0); + DisplayItemMessageOnField(taskId, gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0); } void InitPlayerPCMenu(u8 taskId) { - MenuDrawTextWindow(0, 0, 10, gUnknown_030007B4 * 2 + 1); - PrintMenuItemsReordered(1, 1, gUnknown_030007B4, gUnknown_08406298, gUnknown_02039314); - InitMenu(0, 1, 1, gUnknown_030007B4, 0, 9); - gTasks[taskId].func = PlayerPCProcessMenuInput; + MenuDrawTextWindow(0, 0, 10, gUnknown_030007B4 * 2 + 1); + PrintMenuItemsReordered(1, 1, gUnknown_030007B4, gUnknown_08406298, gUnknown_02039314); + 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); - } + 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); + DisplayItemMessageOnField(var, gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0); } void PlayerPC_ItemStorage(u8 taskId) { - InitItemStorageMenu(0); - gTasks[taskId].func = ItemStorageMenuProcessInput; + 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; - } + 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); + 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); + 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]); + 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); + 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); - } + 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); - } + if (!gPaletteFade.active) + { + sub_80A6A30(); + DestroyTask(taskId); + } } void ItemStorage_Deposit(u8 taskId) { - gTasks[taskId].func = Task_ItemStorage_Deposit; - fade_screen(1, 0); + gTasks[taskId].func = Task_ItemStorage_Deposit; + fade_screen(1, 0); } void sub_813A0C8(u8 taskId) { - if(sub_807D770() == 1) - gTasks[taskId].func = ItemStorageMenuProcessInput; + if (sub_807D770() == 1) + gTasks[taskId].func = ItemStorageMenuProcessInput; } void sub_813A0F8(void) { - MenuDisplayMessageBox(); - InitItemStorageMenu(1); - CreateTask(sub_813A0C8, 0); - pal_fill_black(); + 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); + 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); + 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); + sub_8072DEC(); + MenuZeroFillWindowRect(0, 0, 11, 9); + ReshowPlayerPC(var); } void sub_813A240(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = gTasks[taskId].data; - if (data[2] > 7) - data[4] = 8; - else - data[4] = data[2] + 1; + 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; + 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); - } + 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\ + 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\ + 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\ + 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\ + 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\ + 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\ + 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\ + 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\ + 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\ + 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\ + 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\ + 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\ + 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\ + 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\ + 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\ + 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\ + 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\ + 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\ + 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"); + 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; + 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); + 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\ + 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\ + 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\ + 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\ + 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\ + 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\ + 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"); + .syntax divided"); } #endif |