summaryrefslogtreecommitdiff
path: root/src/field
diff options
context:
space:
mode:
Diffstat (limited to 'src/field')
-rw-r--r--src/field/field_fadetransition.c16
-rw-r--r--src/field/fldeff_cut.c109
-rw-r--r--src/field/fldeff_flash.c30
-rw-r--r--src/field/fldeff_strength.c23
-rw-r--r--src/field/item_menu.c498
5 files changed, 676 insertions, 0 deletions
diff --git a/src/field/field_fadetransition.c b/src/field/field_fadetransition.c
index 5014e97e3..6d40c53aa 100644
--- a/src/field/field_fadetransition.c
+++ b/src/field/field_fadetransition.c
@@ -511,6 +511,22 @@ void sub_80810DC(void)
CreateTask(sub_8081050, 10);
}
+#if DEBUG
+
+__attribute__((naked))
+void debug_sub_80888D8()
+{
+ asm("\
+ PUSH {LR}\n\
+ BL debug_sub_8052E04\n\
+ BL sub_8080E88\n\
+ BL ScriptContext2_Enable\n\
+ POP {R0}\n\
+ BX R0");
+}
+
+#endif
+
void task0A_fade_n_map_maybe(u8 taskId)
{
struct Task *task = &gTasks[taskId];
diff --git a/src/field/fldeff_cut.c b/src/field/fldeff_cut.c
index e4328acfc..7d90b9f4d 100644
--- a/src/field/fldeff_cut.c
+++ b/src/field/fldeff_cut.c
@@ -72,6 +72,115 @@ static const struct SpriteTemplate gSpriteTemplate_CutGrass =
.callback = sub_80A2A48,
};
+#if DEBUG
+__attribute__((naked))
+void debug_sub_80AFEE4()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r8\n"
+ " push {r7}\n"
+ " mov r0, #0x52\n"
+ " bl npc_before_player_of_type\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x1\n"
+ " bne ._1 @cond_branch\n"
+ " ldr r1, ._3\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r1]\n"
+ " bl sub_80A2634\n"
+ " b ._8\n"
+ "._4:\n"
+ " .align 2, 0\n"
+ "._3:\n"
+ " .word gLastFieldPokeMenuOpened\n"
+ "._1:\n"
+ " ldr r4, ._9\n"
+ " add r1, r4, #2\n"
+ " add r0, r4, #0\n"
+ " bl PlayerGetDestCoords\n"
+ " mov r7, #0x0\n"
+ " mov r8, r4\n"
+ "._12:\n"
+ " ldr r1, ._9 + 4\n"
+ " add r0, r7, r1\n"
+ " mov r2, r8\n"
+ " ldrh r2, [r2, #0x2]\n"
+ " add r0, r0, r2\n"
+ " mov r6, #0x0\n"
+ " lsl r0, r0, #0x10\n"
+ " asr r5, r0, #0x10\n"
+ "._11:\n"
+ " ldr r1, ._9 + 4\n"
+ " add r0, r6, r1\n"
+ " mov r2, r8\n"
+ " ldrh r2, [r2]\n"
+ " add r0, r0, r2\n"
+ " lsl r0, r0, #0x10\n"
+ " asr r4, r0, #0x10\n"
+ " add r0, r4, #0\n"
+ " add r1, r5, #0\n"
+ " bl MapGridGetZCoordAt\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r2, r8\n"
+ " mov r1, #0x4\n"
+ " ldsb r1, [r2, r1]\n"
+ " cmp r0, r1\n"
+ " bne ._7 @cond_branch\n"
+ " add r0, r4, #0\n"
+ " add r1, r5, #0\n"
+ " bl MapGridGetMetatileBehaviorAt\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " add r0, r4, #0\n"
+ " bl MetatileBehavior_IsPokeGrass\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x1\n"
+ " beq ._6 @cond_branch\n"
+ " add r0, r4, #0\n"
+ " bl MetatileBehavior_IsAshGrass\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x1\n"
+ " bne ._7 @cond_branch\n"
+ "._6:\n"
+ " ldr r1, ._9 + 8\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r1]\n"
+ " bl sub_80A25E8\n"
+ " b ._8\n"
+ "._10:\n"
+ " .align 2, 0\n"
+ "._9:\n"
+ " .word gUnknown_0203923C\n"
+ " .word 0xffff\n"
+ " .word gLastFieldPokeMenuOpened\n"
+ "._7:\n"
+ " add r0, r6, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r6, r0, #0x18\n"
+ " cmp r6, #0x2\n"
+ " bls ._11 @cond_branch\n"
+ " add r0, r7, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r7, r0, #0x18\n"
+ " cmp r7, #0x2\n"
+ " bls ._12 @cond_branch\n"
+ " bl ScriptContext2_Disable\n"
+ "._8:\n"
+ " pop {r3}\n"
+ " mov r8, r3\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+#endif
+
bool8 SetUpFieldMove_Cut(void)
{
s16 x, y;
diff --git a/src/field/fldeff_flash.c b/src/field/fldeff_flash.c
index 22f170184..d8f70200c 100644
--- a/src/field/fldeff_flash.c
+++ b/src/field/fldeff_flash.c
@@ -71,6 +71,36 @@ static const u16 gUnknown_083F809C[] = INCBIN_U16("graphics/misc/83F809C.gbapal"
static const u16 gCaveTransitionTilemap[] = INCBIN_U16("graphics/misc/cave_transition_map.bin.lz");
static const u8 gCaveTransitionTiles[] = INCBIN_U8("graphics/misc/cave_transition.4bpp.lz");
+#if DEBUG
+__attribute__((naked))
+void debug_sub_8122080(void)
+{
+ asm("\
+ push {lr}\n\
+ ldr r0, ._4\n\
+ ldrb r0, [r0, #0x15]\n\
+ cmp r0, #0x1\n\
+ bne ._2 @cond_branch\n\
+ ldr r0, ._4 + 4\n\
+ bl FlagGet\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ bne ._2 @cond_branch\n\
+ bl sub_810CBFC\n\
+ b ._3\n\
+._5:\n\
+ .align 2, 0\n\
+._4:\n\
+ .word gMapHeader\n\
+ .word 0x828\n\
+._2:\n\
+ bl ScriptContext2_Disable\n\
+._3:\n\
+ pop {r0}\n\
+ bx r0");
+}
+#endif
+
bool8 SetUpFieldMove_Flash(void)
{
if (gMapHeader.cave == TRUE && !FlagGet(FLAG_SYS_USE_FLASH))
diff --git a/src/field/fldeff_strength.c b/src/field/fldeff_strength.c
index 565ac1651..9f9cd4013 100644
--- a/src/field/fldeff_strength.c
+++ b/src/field/fldeff_strength.c
@@ -1,4 +1,5 @@
#include "global.h"
+#include "constants/map_objects.h"
#include "braille_puzzles.h"
#include "field_effect.h"
#include "party_menu.h"
@@ -20,6 +21,28 @@ extern void (*gUnknown_03005CE4)(void);
extern u8 S_UseStrength[];
+#if DEBUG
+void debug_sub_8130318(void)
+{
+ if (ShouldDoBrailleStrengthEffect())
+ {
+ gLastFieldPokeMenuOpened = 0;
+ gSpecialVar_Result = 0;
+ sub_811AA38();
+ }
+ else if (npc_before_player_of_type(MAP_OBJ_GFX_PUSHABLE_BOULDER) == TRUE)
+ {
+ gLastFieldPokeMenuOpened = 0;
+ gSpecialVar_Result = 0;
+ sub_811AA18();
+ }
+ else
+ {
+ ScriptContext2_Disable();
+ }
+}
+#endif
+
bool8 SetUpFieldMove_Strength(void)
{
if (ShouldDoBrailleStrengthEffect())
diff --git a/src/field/item_menu.c b/src/field/item_menu.c
index e0575af4c..125edfef2 100644
--- a/src/field/item_menu.c
+++ b/src/field/item_menu.c
@@ -158,6 +158,9 @@ extern struct PocketScrollState gBagPocketScrollStates[];
extern struct ItemSlot *gCurrentBagPocketItemSlots; // selected pocket item slots
extern const u8 Event_NoRegisteredItem[];
+// TODO: decompile the debug code so we can use static in this file
+#define static
+
extern const struct CompressedSpriteSheet sMaleBagSpriteSheet;
extern const struct CompressedSpriteSheet sFemaleBagSpriteSheet;
extern const struct CompressedSpritePalette sBagSpritePalette;
@@ -384,6 +387,390 @@ static void sub_80A3134(void)
}
}
+#if DEBUG
+__attribute__((naked))
+static bool8 SetupBagMultistep(void)
+{
+ asm("\
+ push {r4, r5, lr}\n\
+ add sp, sp, #0xfffffffc\n\
+ ldr r0, ._5\n\
+ ldr r1, ._5 + 4\n\
+ add r0, r0, r1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0x10\n\
+ bls ._3 @cond_branch\n\
+ b ._66\n\
+._3:\n\
+ lsl r0, r0, #0x2\n\
+ ldr r1, ._5 + 8\n\
+ add r0, r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+._6:\n\
+ .align 2, 0\n\
+._5:\n\
+ .word gMain\n\
+ .word 0x43c\n\
+ .word ._7\n\
+._7:\n\
+ .word ._8\n\
+ .word ._9\n\
+ .word ._10\n\
+ .word ._11\n\
+ .word ._12\n\
+ .word ._13\n\
+ .word ._14\n\
+ .word ._15\n\
+ .word ._16\n\
+ .word ._17\n\
+ .word ._18\n\
+ .word ._19\n\
+ .word ._20\n\
+ .word ._21\n\
+ .word ._22\n\
+ .word ._23\n\
+ .word ._24\n\
+._8:\n\
+ bl sub_80F9438\n\
+ bl sub_80A34E8\n\
+ b ._61\n\
+._9:\n\
+ bl remove_some_task\n\
+ ldr r1, ._27\n\
+ ldr r0, ._27 + 4\n\
+ add r1, r1, r0\n\
+ b ._62\n\
+._28:\n\
+ .align 2, 0\n\
+._27:\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._10:\n\
+ bl gpu_pal_allocator_reset__manage_upper_four\n\
+ b ._61\n\
+._11:\n\
+ bl sub_80F9020\n\
+ ldr r0, ._31\n\
+ ldr r1, ._31 + 4\n\
+ add r0, r0, r1\n\
+ mov r1, #0x0\n\
+ strb r1, [r0]\n\
+ b ._61\n\
+._32:\n\
+ .align 2, 0\n\
+._31:\n\
+ .word +0x2000000\n\
+ .word 0x1ffff\n\
+._12:\n\
+ bl ResetPaletteFade\n\
+ ldr r2, ._34\n\
+ ldrb r0, [r2, #0x8]\n\
+ mov r1, #0x80\n\
+ orr r0, r0, r1\n\
+ strb r0, [r2, #0x8]\n\
+ ldr r1, ._34 + 4\n\
+ ldr r0, ._34 + 8\n\
+ add r1, r1, r0\n\
+ b ._62\n\
+._35:\n\
+ .align 2, 0\n\
+._34:\n\
+ .word gPaletteFade\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._13:\n\
+ bl ResetSpriteData\n\
+ b ._61\n\
+._14:\n\
+ bl sub_80A3520\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ bne ._37 @cond_branch\n\
+ b ._66\n\
+._37:\n\
+ ldr r1, ._40\n\
+ ldr r0, ._40 + 4\n\
+ add r1, r1, r0\n\
+ b ._62\n\
+._41:\n\
+ .align 2, 0\n\
+._40:\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._15:\n\
+ ldr r0, ._43\n\
+ bl SetUpWindowConfig\n\
+ b ._61\n\
+._44:\n\
+ .align 2, 0\n\
+._43:\n\
+ .word gWindowConfig_81E6DFC\n\
+._16:\n\
+ ldr r0, ._46\n\
+ bl MultistepInitMenuWindowBegin\n\
+ ldr r1, ._46 + 4\n\
+ ldr r0, ._46 + 8\n\
+ add r1, r1, r0\n\
+ b ._62\n\
+._47:\n\
+ .align 2, 0\n\
+._46:\n\
+ .word gWindowConfig_81E6DFC\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._17:\n\
+ bl MultistepInitMenuWindowContinue\n\
+ cmp r0, #0\n\
+ bne ._48 @cond_branch\n\
+ b ._66\n\
+._48:\n\
+ b ._61\n\
+._18:\n\
+ bl sub_80F944C\n\
+ bl LoadScrollIndicatorPalette\n\
+ mov r0, #0x0\n\
+ mov r1, #0xac\n\
+ mov r2, #0xc\n\
+ bl CreateVerticalScrollIndicators\n\
+ mov r0, #0x1\n\
+ mov r1, #0xac\n\
+ mov r2, #0x94\n\
+ bl CreateVerticalScrollIndicators\n\
+ mov r0, #0x2\n\
+ mov r1, #0x1c\n\
+ mov r2, #0x58\n\
+ bl CreateVerticalScrollIndicators\n\
+ mov r0, #0x3\n\
+ mov r1, #0x64\n\
+ mov r2, #0x58\n\
+ bl CreateVerticalScrollIndicators\n\
+ mov r0, #0x0\n\
+ mov r1, #0x2\n\
+ bl sub_80F9988\n\
+ mov r0, #0x1\n\
+ mov r1, #0x2\n\
+ bl sub_80F9988\n\
+ mov r0, #0x2\n\
+ mov r1, #0x2\n\
+ bl sub_80F9988\n\
+ mov r0, #0x3\n\
+ mov r1, #0x2\n\
+ bl sub_80F9988\n\
+ ldr r0, ._53\n\
+ ldrb r0, [r0]\n\
+ sub r0, r0, #0x4\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ cmp r0, #0x1\n\
+ bhi ._51 @cond_branch\n\
+ mov r0, #0x2\n\
+ mov r1, #0x1\n\
+ bl sub_80F979C\n\
+ mov r0, #0x3\n\
+ mov r1, #0x1\n\
+ bl sub_80F979C\n\
+._51:\n\
+ ldr r1, ._53 + 4\n\
+ ldr r0, ._53 + 8\n\
+ add r1, r1, r0\n\
+ b ._62\n\
+._54:\n\
+ .align 2, 0\n\
+._53:\n\
+ .word gUnknown_03000701\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._19:\n\
+ ldr r1, ._56\n\
+ mov r0, #0x10\n\
+ strb r0, [r1]\n\
+ ldr r4, ._56 + 4\n\
+ ldr r5, ._56 + 8\n\
+ ldrb r1, [r5]\n\
+ add r1, r1, #0x1\n\
+ lsl r1, r1, #0x18\n\
+ lsr r1, r1, #0x18\n\
+ add r0, r4, #0\n\
+ bl sub_80A39B8\n\
+ ldrb r1, [r5]\n\
+ add r0, r4, #0\n\
+ bl sub_80A3AC0\n\
+ bl sub_80A3D08\n\
+ ldr r4, ._56 + 12\n\
+ ldr r0, [r4, #0x10]\n\
+ ldr r1, [r4, #0x14]\n\
+ bl sub_80A3C34\n\
+ ldr r0, [r4, #0x18]\n\
+ ldr r1, [r4, #0x1c]\n\
+ bl sub_80A3C34\n\
+ bl sub_80A3D40\n\
+ ldr r1, ._56 + 16\n\
+ mov r0, #0x0\n\
+ ldsb r0, [r5, r0]\n\
+ lsl r0, r0, #0x3\n\
+ add r0, r0, r4\n\
+ ldr r0, [r0]\n\
+ str r0, [r1]\n\
+ bl sub_80A362C\n\
+ b ._61\n\
+._57:\n\
+ .align 2, 0\n\
+._56:\n\
+ .word gUnknown_0203855A\n\
+ .word gBGTilemapBuffers+0x1000\n\
+ .word gUnknown_02038559\n\
+ .word gBagPockets\n\
+ .word gUnknown_03005D24\n\
+._20:\n\
+ ldr r0, ._59\n\
+ mov r1, #0x0\n\
+ mov r2, #0x7\n\
+ bl sub_80A48E8\n\
+ ldr r1, ._59 + 4\n\
+ ldr r4, ._59 + 8\n\
+ mov r0, #0x0\n\
+ ldsb r0, [r4, r0]\n\
+ lsl r0, r0, #0x2\n\
+ add r0, r0, r1\n\
+ ldrb r1, [r0, #0x1]\n\
+ ldrb r0, [r0]\n\
+ add r1, r1, r0\n\
+ ldr r0, ._59 + 12\n\
+ ldr r0, [r0]\n\
+ lsl r1, r1, #0x2\n\
+ add r1, r1, r0\n\
+ mov r2, #0x0\n\
+ ldsh r0, [r1, r2]\n\
+ bl ItemListMenu_InitDescription\n\
+ bl ItemListMenu_InitMenu\n\
+ ldr r1, ._59 + 16\n\
+ ldrb r0, [r4]\n\
+ add r0, r0, #0x1\n\
+ strb r0, [r1]\n\
+ ldr r1, ._59 + 20\n\
+ mov r0, #0x0\n\
+ strb r0, [r1]\n\
+ ldr r1, ._59 + 24\n\
+ ldr r0, ._59 + 28\n\
+ add r1, r1, r0\n\
+ b ._62\n\
+._60:\n\
+ .align 2, 0\n\
+._59:\n\
+ .word 0xffff\n\
+ .word gUnknown_03005D10\n\
+ .word gUnknown_02038559\n\
+ .word gUnknown_03005D24\n\
+ .word gUnknown_0203855B\n\
+ .word gUnknown_0203855C\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._21:\n\
+ bl CreateBagSprite\n\
+ mov r0, #0x0\n\
+ bl CreateBagPokeballSprite\n\
+ bl sub_80A3740\n\
+ b ._61\n\
+._22:\n\
+ ldr r3, ._63\n\
+ ldrh r2, [r3]\n\
+ mov r0, #0x0\n\
+ strh r0, [r3]\n\
+ ldr r4, ._63 + 4\n\
+ ldrh r0, [r4]\n\
+ mov r1, #0x1\n\
+ orr r0, r0, r1\n\
+ strh r0, [r4]\n\
+ strh r2, [r3]\n\
+ ldr r2, ._63 + 8\n\
+ ldrh r0, [r2]\n\
+ mov r1, #0x8\n\
+ orr r0, r0, r1\n\
+ strh r0, [r2]\n\
+ mov r0, #0x1\n\
+ neg r0, r0\n\
+ mov r1, #0x0\n\
+ str r1, [sp]\n\
+ mov r2, #0x10\n\
+ mov r3, #0x0\n\
+ bl BeginNormalPaletteFade\n\
+ ldr r2, ._63 + 12\n\
+ ldrb r1, [r2, #0x8]\n\
+ mov r0, #0x7f\n\
+ and r0, r0, r1\n\
+ strb r0, [r2, #0x8]\n\
+ ldr r1, ._63 + 16\n\
+ ldr r0, ._63 + 20\n\
+ add r1, r1, r0\n\
+ b ._62\n\
+._64:\n\
+ .align 2, 0\n\
+._63:\n\
+ .word 0x4000208\n\
+ .word 0x4000200\n\
+ .word 0x4000004\n\
+ .word gPaletteFade\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._23:\n\
+ bl sub_8055870\n\
+ cmp r0, #0x1\n\
+ beq ._66 @cond_branch\n\
+._61:\n\
+ ldr r1, ._67\n\
+ ldr r2, ._67 + 4\n\
+ add r1, r1, r2\n\
+._62:\n\
+ ldrb r0, [r1]\n\
+ add r0, r0, #0x1\n\
+ strb r0, [r1]\n\
+ b ._66\n\
+._68:\n\
+ .align 2, 0\n\
+._67:\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._24:\n\
+ ldr r0, ._71\n\
+ bl SetVBlankCallback\n\
+ ldr r0, ._71 + 4\n\
+ bl SetMainCallback2\n\
+ bl sub_80A751C\n\
+ bl sub_80A7630\n\
+ bl sub_80A770C\n\
+ bl sub_80A7828\n\
+ bl sub_80A78B8\n\
+ ldr r0, ._71 + 8\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0x1\n\
+ bne ._69 @cond_branch\n\
+ ldr r0, ._71 + 12\n\
+ mov r1, #0x80\n\
+ lsl r1, r1, #0x8\n\
+ ldr r2, ._71 + 16\n\
+ mov r3, #0x0\n\
+ bl debug_sub_8008218\n\
+._69:\n\
+ mov r0, #0x1\n\
+ b ._70\n\
+._72:\n\
+ .align 2, 0\n\
+._71:\n\
+ .word sub_80A3134+1\n\
+ .word sub_80A3118+1\n\
+ .word gLinkOpen\n\
+ .word 0x600f5e0\n\
+ .word 0x600f800\n\
+._66:\n\
+ mov r0, #0x0\n\
+._70:\n\
+ add sp, sp, #0x4\n\
+ pop {r4, r5}\n\
+ pop {r1}\n\
+ bx r1");
+}
+#else
static bool8 SetupBagMultistep(void)
{
u32 index;
@@ -508,6 +895,7 @@ static bool8 SetupBagMultistep(void)
}
return FALSE;
}
+#endif
static bool8 sub_80A34B4(void)
{
@@ -634,6 +1022,79 @@ void ClearBag(void)
ResetBagScrollPositions();
}
+#if DEBUG
+__attribute__((naked))
+void debug_sub_80A3714()
+{
+ asm("\
+ push {r4, r5, r6, lr}\n\
+ add sp, sp, #0xfffffff4\n\
+ mov r5, #0x0\n\
+ ldr r2, ._138\n\
+ mov r1, #0x0\n\
+._134:\n\
+ lsl r0, r5, #0x1\n\
+ add r0, r0, sp\n\
+ strh r1, [r0]\n\
+ add r0, r5, #1\n\
+ lsl r0, r0, #0x10\n\
+ lsr r5, r0, #0x10\n\
+ cmp r5, #0x4\n\
+ bls ._134 @cond_branch\n\
+ mov r5, #0x0\n\
+ ldrh r0, [r2]\n\
+ cmp r0, #0\n\
+ beq ._136 @cond_branch\n\
+ add r6, r2, #0\n\
+._137:\n\
+ lsl r4, r5, #0x2\n\
+ add r4, r4, r6\n\
+ ldrh r0, [r4]\n\
+ bl ItemId_GetPocket\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x8\n\
+ ldr r1, ._138 + 4\n\
+ add r0, r0, r1\n\
+ lsr r0, r0, #0x10\n\
+ ldr r1, ._138 + 8\n\
+ lsl r2, r0, #0x3\n\
+ add r2, r2, r1\n\
+ lsl r0, r0, #0x1\n\
+ mov r1, sp\n\
+ add r3, r1, r0\n\
+ ldrh r1, [r3]\n\
+ ldr r0, [r2]\n\
+ lsl r1, r1, #0x2\n\
+ add r1, r1, r0\n\
+ ldr r0, [r4]\n\
+ str r0, [r1]\n\
+ ldrh r0, [r3]\n\
+ add r0, r0, #0x1\n\
+ strh r0, [r3]\n\
+ add r0, r5, #1\n\
+ lsl r0, r0, #0x10\n\
+ lsr r5, r0, #0x10\n\
+ cmp r5, #0x3b\n\
+ bhi ._136 @cond_branch\n\
+ lsl r0, r5, #0x2\n\
+ add r0, r0, r6\n\
+ ldrh r0, [r0]\n\
+ cmp r0, #0\n\
+ bne ._137 @cond_branch\n\
+._136:\n\
+ add sp, sp, #0xc\n\
+ pop {r4, r5, r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+._139:\n\
+ .align 2, 0\n\
+._138:\n\
+ .word gUnknown_Debug_083EBC68\n\
+ .word 0xffff0000\n\
+ .word gBagPockets");
+}
+#endif
+
static void sub_80A3740(void)
{
const u16 colors[2] = {RGB(14, 15, 16), RGB_WHITE};
@@ -3573,12 +4034,49 @@ static void sub_80A73FC(void)
MenuCursor_Destroy814AD44();
}
+#if DEBUG
+__attribute__((naked))
+static void sub_80A740C(void)
+{
+ asm("\
+ push {lr}\n\
+ add sp, sp, #0xfffffffc\n\
+ bl sub_80A75E4\n\
+ bl sub_80A7768\n\
+ bl sub_80A7420\n\
+ ldr r0, ._931\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0x1\n\
+ bne ._930 @cond_branch\n\
+ ldr r0, ._931 + 4\n\
+ ldr r1, ._931 + 8\n\
+ add r0, r0, r1\n\
+ ldrb r0, [r0]\n\
+ mov r1, #0x0\n\
+ str r1, [sp]\n\
+ mov r1, #0x1\n\
+ mov r2, #0x1\n\
+ mov r3, #0x2\n\
+ bl debug_sub_8008264\n\
+._930:\n\
+ add sp, sp, #0x4\n\
+ pop {r0}\n\
+ bx r0\n\
+._932:\n\
+ .align 2, 0\n\
+._931:\n\
+ .word gLinkOpen\n\
+ .word gLink\n\
+ .word 0xfbd");
+}
+#else
static void sub_80A740C(void)
{
sub_80A75E4();
sub_80A7768();
sub_80A7420();
}
+#endif
static void sub_80A7420(void)
{