diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2021-07-09 21:18:21 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2021-07-09 21:18:21 -0400 |
commit | 8be8ee6ceebc477abe4fa3e1a65468451cab0542 (patch) | |
tree | 23dcbb234461a19331e04481af80cc63f4ada07f | |
parent | 501bf9bcb59dd9f13af6bc5632b5ff74bbf8b056 (diff) |
Match sub_80A5414
-rw-r--r-- | src/item_menu.c | 345 |
1 files changed, 55 insertions, 290 deletions
diff --git a/src/item_menu.c b/src/item_menu.c index b05bf2e49..b74f4e7d1 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -1782,51 +1782,56 @@ void sub_80A53F8(void) SetMainCallback2(sub_80A53CC); } -#ifdef NONMATCHING static void sub_80A5414(u8 taskId) { TaskFunc r5 = NULL; - - if (sub_80A78A0() != 0) + if (sub_80A78A0()) { - if ((gMain.newAndRepeatedKeys & DPAD_ANY) == 0x40) - { - if ((sPopupMenuSelection & 1) && sPopupMenuActionList[sPopupMenuSelection - 1] == 8) + while (1) { + if ((gMain.newAndRepeatedKeys & 0xF0) == DPAD_UP) { - PlaySE(SE_SELECT); - sPopupMenuSelection = MoveMenuCursor3(-1); + if ((sPopupMenuSelection & 1) && sPopupMenuActionList[sPopupMenuSelection - 1] != 8) + { + PlaySE(SE_SELECT); + sPopupMenuSelection = MoveMenuCursor3(-1); + } + break; } - } - //_080A546C - else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == 0x80) - { - if (!(sPopupMenuSelection & 1) && sPopupMenuActionList[sPopupMenuSelection + 1] != 8) + if ((gMain.newAndRepeatedKeys & 0xF0) == DPAD_DOWN) { - PlaySE(SE_SELECT); - sPopupMenuSelection = MoveMenuCursor3(1); + if ((!(sPopupMenuSelection & 1)) && sPopupMenuActionList[sPopupMenuSelection + 1] != 8) + { + PlaySE(SE_SELECT); + sPopupMenuSelection = MoveMenuCursor3(1); + } + break; } - } - //_080A549C - else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == 0x20) - { - if (sPopupMenuSelection > 1 && sPopupMenuActionList[sPopupMenuSelection - 2] != 8) + if ((gMain.newAndRepeatedKeys & 0xF0) == DPAD_LEFT) { - PlaySE(SE_SELECT); - sPopupMenuSelection = MoveMenuCursor3(-2); + if ((sPopupMenuSelection >= 2) && sPopupMenuActionList[sPopupMenuSelection - 2] != 8) + { + PlaySE(SE_SELECT); + sPopupMenuSelection = MoveMenuCursor3(-2); + } + break; } - } - //_080A54CC - else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == 0x10) - { - if (sPopupMenuSelection <= 1 && sPopupMenuActionList[sPopupMenuSelection + 2] != 8) + if ((gMain.newAndRepeatedKeys & 0xF0) == DPAD_RIGHT) { - PlaySE(SE_SELECT); - sPopupMenuSelection = MoveMenuCursor3(2); + if ((sPopupMenuSelection < 2) && sPopupMenuActionList[sPopupMenuSelection + 2] != 8) + { + PlaySE(SE_SELECT); + sPopupMenuSelection = MoveMenuCursor3(2); + } + break; + } + if (gMain.newKeys & A_BUTTON) + { + gTasks[taskId].data[10] = 0; + sub_80A4DA4(gBGTilemapBuffers[1]); + r5 = sItemPopupMenuActions[sPopupMenuActionList[sPopupMenuSelection]].func; + r5(taskId); + break; } - } - //_080A5500 - else if (!(gMain.newKeys & A_BUTTON)) - { if (gMain.newKeys & B_BUTTON) { gTasks[taskId].data[10] = 0; @@ -1834,18 +1839,11 @@ static void sub_80A5414(u8 taskId) sub_80A4DA4(gBGTilemapBuffers[1]); r5 = sItemPopupMenuActions[sPopupMenuActionList[3]].func; r5(taskId); + break; } - } - else - { - //_080A5590 - gTasks[taskId].data[10] = 0; - sub_80A4DA4(gBGTilemapBuffers[1]); - r5 = sItemPopupMenuActions[sPopupMenuActionList[sPopupMenuSelection]].func; - r5(taskId); + break; } } - //_080A5552 if (r5 == NULL) { if (sReturnLocation == RETURN_TO_FIELD_5) @@ -1853,262 +1851,29 @@ static void sub_80A5414(u8 taskId) if (sPopupMenuSelection == 0) { sub_8072DDC(12); - return; } - //_080A55D4 - //else - //{ - if (sPopupMenuSelection == 0 || sPopupMenuSelection == 1) - sub_8072DCC(0x2F); - else - sub_8072DCC(0x30); - //} + else if (sPopupMenuSelection < 2) + { + sub_8072DCC(47); + } + else + { + sub_8072DCC(48); + } } - //_080A55E0 else { - if (sPopupMenuSelection == 0 || sPopupMenuSelection == 1) - sub_8072DCC(0x2F); + if (sPopupMenuSelection < 2) + { + sub_8072DCC(47); + } else - sub_8072DCC(0x30); + { + sub_8072DCC(48); + } } } } -#else -NAKED -static void sub_80A5414(u8 taskId) -{ - asm(".syntax unified\n\ - push {r4,r5,lr}\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - movs r5, 0\n\ - bl sub_80A78A0\n\ - cmp r0, 0\n\ - bne _080A5426\n\ - b _080A5552\n\ -_080A5426:\n\ - ldr r2, _080A5460 @ =gMain\n\ - ldrh r0, [r2, 0x30]\n\ - movs r1, 0xF0\n\ - ands r1, r0\n\ - cmp r1, 0x40\n\ - bne _080A546C\n\ - ldr r4, _080A5464 @ =sPopupMenuSelection\n\ - ldrb r1, [r4]\n\ - movs r0, 0x1\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _080A5440\n\ - b _080A5552\n\ -_080A5440:\n\ - ldrb r1, [r4]\n\ - ldr r0, _080A5468 @ =sPopupMenuActionList\n\ - ldr r0, [r0]\n\ - adds r1, r0\n\ - subs r1, 0x1\n\ - ldrb r0, [r1]\n\ - cmp r0, 0x8\n\ - bne _080A5452\n\ - b _080A5552\n\ -_080A5452:\n\ - movs r0, 0x5\n\ - bl PlaySE\n\ - movs r0, 0x1\n\ - negs r0, r0\n\ - b _080A54EE\n\ - .align 2, 0\n\ -_080A5460: .4byte gMain\n\ -_080A5464: .4byte sPopupMenuSelection\n\ -_080A5468: .4byte sPopupMenuActionList\n\ -_080A546C:\n\ - cmp r1, 0x80\n\ - bne _080A549C\n\ - ldr r4, _080A5494 @ =sPopupMenuSelection\n\ - ldrb r1, [r4]\n\ - movs r0, 0x1\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _080A5552\n\ - ldrb r1, [r4]\n\ - ldr r0, _080A5498 @ =sPopupMenuActionList\n\ - ldr r0, [r0]\n\ - adds r1, r0\n\ - ldrb r0, [r1, 0x1]\n\ - cmp r0, 0x8\n\ - beq _080A5552\n\ - movs r0, 0x5\n\ - bl PlaySE\n\ - movs r0, 0x1\n\ - b _080A54EE\n\ - .align 2, 0\n\ -_080A5494: .4byte sPopupMenuSelection\n\ -_080A5498: .4byte sPopupMenuActionList\n\ -_080A549C:\n\ - cmp r1, 0x20\n\ - bne _080A54CC\n\ - ldr r4, _080A54C4 @ =sPopupMenuSelection\n\ - ldrb r0, [r4]\n\ - cmp r0, 0x1\n\ - bls _080A5552\n\ - adds r1, r0, 0\n\ - ldr r0, _080A54C8 @ =sPopupMenuActionList\n\ - ldr r0, [r0]\n\ - adds r1, r0\n\ - subs r1, 0x2\n\ - ldrb r0, [r1]\n\ - cmp r0, 0x8\n\ - beq _080A5552\n\ - movs r0, 0x5\n\ - bl PlaySE\n\ - movs r0, 0x2\n\ - negs r0, r0\n\ - b _080A54EE\n\ - .align 2, 0\n\ -_080A54C4: .4byte sPopupMenuSelection\n\ -_080A54C8: .4byte sPopupMenuActionList\n\ -_080A54CC:\n\ - cmp r1, 0x10\n\ - bne _080A5500\n\ - ldr r4, _080A54F8 @ =sPopupMenuSelection\n\ - ldrb r0, [r4]\n\ - cmp r0, 0x1\n\ - bhi _080A5552\n\ - adds r1, r0, 0\n\ - ldr r0, _080A54FC @ =sPopupMenuActionList\n\ - ldr r0, [r0]\n\ - adds r1, r0\n\ - ldrb r0, [r1, 0x2]\n\ - cmp r0, 0x8\n\ - beq _080A5552\n\ - movs r0, 0x5\n\ - bl PlaySE\n\ - movs r0, 0x2\n\ -_080A54EE:\n\ - bl MoveMenuCursor3\n\ - strb r0, [r4]\n\ - b _080A5552\n\ - .align 2, 0\n\ -_080A54F8: .4byte sPopupMenuSelection\n\ -_080A54FC: .4byte sPopupMenuActionList\n\ -_080A5500:\n\ - ldrh r1, [r2, 0x2E]\n\ - movs r0, 0x1\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _080A5590\n\ - movs r0, 0x2\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _080A5552\n\ - ldr r1, _080A5570 @ =gTasks\n\ - lsls r0, r4, 2\n\ - adds r0, r4\n\ - lsls r0, 3\n\ - adds r0, r1\n\ - strh r5, [r0, 0x1C]\n\ - ldr r1, _080A5574 @ =gBagPocketScrollStates\n\ - ldr r0, _080A5578 @ =sCurrentBagPocket\n\ - ldrb r0, [r0]\n\ - lsls r0, 24\n\ - asrs r0, 24\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - ldrb r2, [r0]\n\ - adds r0, r4, 0\n\ - adds r1, r2, 0\n\ - bl sub_80A48E8\n\ - ldr r0, _080A557C @ =gBGTilemapBuffers + 0x800\n\ - bl sub_80A4DA4\n\ - ldr r1, _080A5580 @ =sItemPopupMenuActions\n\ - ldr r0, _080A5584 @ =sPopupMenuActionList\n\ - ldr r0, [r0]\n\ - ldrb r0, [r0, 0x3]\n\ - lsls r0, 3\n\ - adds r1, 0x4\n\ - adds r0, r1\n\ - ldr r5, [r0]\n\ - adds r0, r4, 0\n\ - bl _call_via_r5\n\ -_080A5552:\n\ - cmp r5, 0\n\ - bne _080A55FA\n\ - ldr r0, _080A5588 @ =sReturnLocation\n\ - ldrb r0, [r0]\n\ - cmp r0, 0x5\n\ - bne _080A55E0\n\ - ldr r0, _080A558C @ =sPopupMenuSelection\n\ - ldrb r0, [r0]\n\ - cmp r0, 0\n\ - bne _080A55D4\n\ - movs r0, 0xC\n\ - bl sub_8072DDC\n\ - b _080A55FA\n\ - .align 2, 0\n\ -_080A5570: .4byte gTasks\n\ -_080A5574: .4byte gBagPocketScrollStates\n\ -_080A5578: .4byte sCurrentBagPocket\n\ -_080A557C: .4byte gBGTilemapBuffers + 0x800\n\ -_080A5580: .4byte sItemPopupMenuActions\n\ -_080A5584: .4byte sPopupMenuActionList\n\ -_080A5588: .4byte sReturnLocation\n\ -_080A558C: .4byte sPopupMenuSelection\n\ -_080A5590:\n\ - ldr r1, _080A55C0 @ =gTasks\n\ - lsls r0, r4, 2\n\ - adds r0, r4\n\ - lsls r0, 3\n\ - adds r0, r1\n\ - strh r5, [r0, 0x1C]\n\ - ldr r0, _080A55C4 @ =gBGTilemapBuffers + 0x800\n\ - bl sub_80A4DA4\n\ - ldr r1, _080A55C8 @ =sItemPopupMenuActions\n\ - ldr r0, _080A55CC @ =sPopupMenuSelection\n\ - ldrb r2, [r0]\n\ - ldr r0, _080A55D0 @ =sPopupMenuActionList\n\ - ldr r0, [r0]\n\ - adds r0, r2\n\ - ldrb r0, [r0]\n\ - lsls r0, 3\n\ - adds r1, 0x4\n\ - adds r0, r1\n\ - ldr r5, [r0]\n\ - adds r0, r4, 0\n\ - bl _call_via_r5\n\ - b _080A5552\n\ - .align 2, 0\n\ -_080A55C0: .4byte gTasks\n\ -_080A55C4: .4byte gBGTilemapBuffers + 0x800\n\ -_080A55C8: .4byte sItemPopupMenuActions\n\ -_080A55CC: .4byte sPopupMenuSelection\n\ -_080A55D0: .4byte sPopupMenuActionList\n\ -_080A55D4:\n\ - cmp r0, 0x1\n\ - bls _080A55E8\n\ - movs r0, 0x30\n\ - bl sub_8072DCC\n\ - b _080A55FA\n\ -_080A55E0:\n\ - ldr r0, _080A55F0 @ =sPopupMenuSelection\n\ - ldrb r0, [r0]\n\ - cmp r0, 0x1\n\ - bhi _080A55F4\n\ -_080A55E8:\n\ - movs r0, 0x2F\n\ - bl sub_8072DCC\n\ - b _080A55FA\n\ - .align 2, 0\n\ -_080A55F0: .4byte sPopupMenuSelection\n\ -_080A55F4:\n\ - movs r0, 0x30\n\ - bl sub_8072DCC\n\ -_080A55FA:\n\ - pop {r4,r5}\n\ - pop {r0}\n\ - bx r0\n\ - .syntax divided\n"); -} -#endif NAKED static void sub_80A5600(u8 taskId) |