summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2021-07-09 21:18:21 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2021-07-09 21:18:21 -0400
commit8be8ee6ceebc477abe4fa3e1a65468451cab0542 (patch)
tree23dcbb234461a19331e04481af80cc63f4ada07f
parent501bf9bcb59dd9f13af6bc5632b5ff74bbf8b056 (diff)
Match sub_80A5414
-rw-r--r--src/item_menu.c345
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)