diff options
author | Cameron Hall <cameronghall@cox.net> | 2018-02-17 17:30:31 -0600 |
---|---|---|
committer | Cameron Hall <cameronghall@cox.net> | 2018-02-17 17:30:31 -0600 |
commit | 17a5968adbc1dfb6586641729b39eeb3873481df (patch) | |
tree | 2e7c2c4bb62807cf76ead753ddff001cd1123b85 | |
parent | b9f8d43825463363a67be0ce9fcd00b23d264e05 (diff) |
decompile more debug code
-rw-r--r-- | data/debug_mystery_event_menu.s | 20 | ||||
-rw-r--r-- | include/global.h | 26 | ||||
-rw-r--r-- | include/link.h | 1 | ||||
-rw-r--r-- | ld_script.txt | 2 | ||||
-rw-r--r-- | src/engine/mystery_event_menu.c | 546 | ||||
-rw-r--r-- | src/field/battle_tower.c | 129 | ||||
-rw-r--r-- | src/field/item_menu.c | 552 |
7 files changed, 210 insertions, 1066 deletions
diff --git a/data/debug_mystery_event_menu.s b/data/debug_mystery_event_menu.s deleted file mode 100644 index 06bf18377..000000000 --- a/data/debug_mystery_event_menu.s +++ /dev/null @@ -1,20 +0,0 @@ -.if DEBUG - - .include "include/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -Str_843DA70:: - .string "CARDーE emulation。。。$" - -Str_843DA84:: - .string "LR: select A: send。$" - -Str_843DA98:: - .string "sending。。。$" - -Str_843DAA3:: - .string "completed。$" - -.endif diff --git a/include/global.h b/include/global.h index 4b23fded7..dcd20981e 100644 --- a/include/global.h +++ b/include/global.h @@ -740,7 +740,7 @@ struct BattleTowerTrainer /*0x0C*/ struct { u16 easyChat[6]; - } greeting; + } greeting[6]; }; struct BattleTowerRecord // record mixing @@ -757,28 +757,6 @@ struct BattleTowerRecord // record mixing /*0xA0*/u32 checksum; }; -#if 0 -struct BattleTowerEReaderTrainer -{ - /*0x00*/u8 unk0; - /*0x01*/u8 trainerClass; - /*0x02*/u16 winStreak; - /*0x04*/u8 name[8]; - /*0x0C*/u8 trainerId[4]; - /*0x10*/struct { - u16 easyChat[6]; - } greeting; - /*0x1C*/struct { - u16 easyChat[6]; - } farewellPlayerLost; - /*0x28*/struct { - u16 easyChat[6]; - } farewellPlayerWon; - /*0x34*/struct UnknownPokemonStruct party[3]; - /*0xB8*/u32 checksum; -}; -#endif - struct BattleTowerEReaderTrainer { /*0x00*/ u8 unk0; @@ -867,8 +845,6 @@ struct HallOfFame u8 filler[0x1F00]; }; -extern struct HallOfFame gHallOfFame; extern struct SaveBlock2 gSaveBlock2; -extern u8 ewram[]; #endif // GUARD_GLOBAL_H diff --git a/include/link.h b/include/link.h index d8c6690ea..f9f2b6d0e 100644 --- a/include/link.h +++ b/include/link.h @@ -148,6 +148,7 @@ extern bool8 gReceivedRemoteLinkPlayers; extern bool8 gLinkOpen; extern bool8 gLinkPlayerPending[MAX_LINK_PLAYERS]; void (*gLinkCallback)(void); +extern u8 gUnknown_Debug_30030E0; void Task_DestroySelf(u8); void sub_8007270(u8); diff --git a/ld_script.txt b/ld_script.txt index 1ca6bc702..de03fe966 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -671,7 +671,7 @@ SECTIONS { src/field/diploma.o(.rodata); src/strings.o(.rodata); src/field/berry_tag_screen.o(.rodata); - data/debug_mystery_event_menu.o(.rodata); + src/engine/mystery_event_menu.o(.rodata); src/engine/save_failed_screen.o(.rodata); src/pokemon/pokeblock_feed.o(.rodata); src/debug/nakamura_debug_menu.o(.rodata); diff --git a/src/engine/mystery_event_menu.c b/src/engine/mystery_event_menu.c index bc14c760d..56801ff53 100644 --- a/src/engine/mystery_event_menu.c +++ b/src/engine/mystery_event_menu.c @@ -13,6 +13,7 @@ #include "strings2.h" #include "task.h" #include "text.h" +#include "title_screen.h" #include "ewram.h" static EWRAM_DATA u8 gUnknown_02039338 = 0; @@ -341,151 +342,51 @@ static void CB2_MysteryEventMenu(void) #if DEBUG +static const u8 Str_843DA70[] = _("CARDーE emulation。。。"); +static const u8 Str_843DA84[] = _("LR: select A: send。"); +static const u8 Str_843DA98[] = _("sending。。。"); +static const u8 Str_843DAA3[] = _("completed。"); + +extern const struct {const u8 *text; void (*func)();} gUnknown_Debug_842E2D0[]; +extern const u8 gUnknown_Debug_842E350; + void debug_sub_815D1D8(); -__attribute__((naked)) -void debug_sub_815D04C() +void debug_sub_815D04C(u8 taskId) { - asm( - " push {r4, r5, r6, lr}\n" - " lsl r0, r0, #0x18\n" - " lsr r5, r0, #0x18\n" - " ldr r1, ._125 @ gTasks\n" - " lsl r0, r5, #0x2\n" - " add r0, r0, r5\n" - " lsl r0, r0, #0x3\n" - " add r4, r0, r1\n" - " mov r1, #0x8\n" - " ldsh r0, [r4, r1]\n" - " cmp r0, #0\n" - " bne ._121 @cond_branch\n" - " mov r0, #0x4\n" - " mov r1, #0x4\n" - " mov r2, #0xd\n" - " mov r3, #0x7\n" - " bl Menu_DrawStdWindowFrame\n" - " ldr r1, ._125 + 4 @ gUnknown_Debug_842E2D0\n" - " mov r2, #0xa\n" - " ldsh r0, [r4, r2]\n" - " lsl r0, r0, #0x3\n" - " add r0, r0, r1\n" - " ldr r0, [r0]\n" - " mov r1, #0x5\n" - " mov r2, #0x5\n" - " bl Menu_PrintText\n" - " ldrh r0, [r4, #0x8]\n" - " add r0, r0, #0x1\n" - " strh r0, [r4, #0x8]\n" - "._121:\n" - " ldr r2, ._125 + 8 @ gMain\n" - " ldrh r1, [r2, #0x2e]\n" - " mov r0, #0x20\n" - " and r0, r0, r1\n" - " add r6, r2, #0\n" - " cmp r0, #0\n" - " beq ._122 @cond_branch\n" - " ldrh r1, [r4, #0xa]\n" - " mov r2, #0xa\n" - " ldsh r0, [r4, r2]\n" - " cmp r0, #0\n" - " bne ._123 @cond_branch\n" - " ldr r0, ._125 + 12 @ gUnknown_Debug_842E350\n" - " ldrb r0, [r0]\n" - " sub r0, r0, #0x1\n" - " b ._124\n" - "._126:\n" - " .align 2, 0\n" - "._125:\n" - " .word gTasks\n" - " .word gUnknown_Debug_842E2D0\n" - " .word gMain\n" - " .word gUnknown_Debug_842E350\n" - "._123:\n" - " sub r0, r1, #1\n" - "._124:\n" - " strh r0, [r4, #0xa]\n" - " ldr r0, ._130 @ gTasks\n" - " lsl r1, r5, #0x2\n" - " add r1, r1, r5\n" - " lsl r1, r1, #0x3\n" - " add r1, r1, r0\n" - " mov r0, #0x0\n" - " strh r0, [r1, #0x8]\n" - "._122:\n" - " ldrh r1, [r6, #0x2e]\n" - " mov r0, #0x10\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._127 @cond_branch\n" - " ldr r1, ._130 @ gTasks\n" - " lsl r2, r5, #0x2\n" - " add r0, r2, r5\n" - " lsl r0, r0, #0x3\n" - " add r4, r0, r1\n" - " mov r0, #0xa\n" - " ldsh r3, [r4, r0]\n" - " ldr r0, ._130 + 4 @ gUnknown_Debug_842E350\n" - " ldrb r0, [r0]\n" - " sub r0, r0, #0x1\n" - " cmp r3, r0\n" - " bne ._128 @cond_branch\n" - " mov r0, #0x0\n" - " b ._129\n" - "._131:\n" - " .align 2, 0\n" - "._130:\n" - " .word gTasks\n" - " .word gUnknown_Debug_842E350\n" - "._128:\n" - " ldrh r0, [r4, #0xa]\n" - " add r0, r0, #0x1\n" - "._129:\n" - " strh r0, [r4, #0xa]\n" - " add r0, r2, r5\n" - " lsl r0, r0, #0x3\n" - " add r0, r0, r1\n" - " mov r1, #0x0\n" - " strh r1, [r0, #0x8]\n" - "._127:\n" - " ldrh r1, [r6, #0x2e]\n" - " mov r0, #0x1\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._132 @cond_branch\n" - " ldr r1, ._133 @ gTasks\n" - " lsl r0, r5, #0x2\n" - " add r0, r0, r5\n" - " lsl r0, r0, #0x3\n" - " add r0, r0, r1\n" - " mov r2, #0xa\n" - " ldsh r1, [r0, r2]\n" - " lsl r1, r1, #0x3\n" - " ldr r0, ._133 + 4 @ gUnknown_Debug_842E2D0\n" - " add r0, r0, #0x4\n" - " add r1, r1, r0\n" - " ldr r0, ._133 + 8 @ \n" - " ldr r1, [r1]\n" - " bl _call_via_r1\n" - " ldr r0, ._133 + 12 @ \n" - " add r1, r6, r0\n" - " ldrb r0, [r1]\n" - " add r0, r0, #0x1\n" - " strb r0, [r1]\n" - " add r0, r5, #0\n" - " bl DestroyTask\n" - "._132:\n" - " pop {r4, r5, r6}\n" - " pop {r0}\n" - " bx r0\n" - "._134:\n" - " .align 2, 0\n" - "._133:\n" - " .word gTasks\n" - " .word gUnknown_Debug_842E2D0\n" - " .word +0x2004000\n" - " .word 0x43c\n" - "\n" - ); + if (gTasks[taskId].data[0] == 0) + { + Menu_DrawStdWindowFrame(4, 4, 13, 7); + Menu_PrintText(gUnknown_Debug_842E2D0[gTasks[taskId].data[1]].text, 5, 5); + gTasks[taskId].data[0]++; + } + + if (gMain.newKeys & 0x20) + { + if (gTasks[taskId].data[1] == 0) + gTasks[taskId].data[1] = gUnknown_Debug_842E350 - 1; + else + gTasks[taskId].data[1]--; + gTasks[taskId].data[0] = 0; + } + if (gMain.newKeys & 0x10) + { + if (gTasks[taskId].data[1] == gUnknown_Debug_842E350 - 1) + gTasks[taskId].data[1] = 0; + else + gTasks[taskId].data[1]++; + gTasks[taskId].data[0] = 0; + } + if (gMain.newKeys & A_BUTTON) + { + // TODO: fix this + s32 var = gTasks[taskId].data[1]; + asm(""::"r"(var * 8)); + gUnknown_Debug_842E2D0[var].func(gSharedMem + 0x4000); + + gMain.state++; + DestroyTask(taskId); + } } void debug_sub_815D15C(void) @@ -510,291 +411,84 @@ void debug_sub_815D15C(void) SetMainCallback2(debug_sub_815D1D8); } -__attribute__((naked)) -void debug_sub_815D1D8() +void debug_sub_815D1D8(void) { - asm( - " push {r4, lr}\n" - " add sp, sp, #0xfffffffc\n" - " ldr r1, ._139 @ gMain\n" - " ldr r2, ._139 + 4 @ 0x43c\n" - " add r0, r1, r2\n" - " ldrb r0, [r0]\n" - " add r4, r1, #0\n" - " cmp r0, #0xb\n" - " bls ._137 @cond_branch\n" - " b ._196\n" - "._137:\n" - " lsl r0, r0, #0x2\n" - " ldr r1, ._139 + 8 @ \n" - " add r0, r0, r1\n" - " ldr r0, [r0]\n" - " mov pc, r0\n" - "._140:\n" - " .align 2, 0\n" - "._139:\n" - " .word gMain\n" - " .word 0x43c\n" - " .word ._141\n" - "._141:\n" - " .word ._142\n" - " .word ._143\n" - " .word ._144\n" - " .word ._145\n" - " .word ._146\n" - " .word ._196\n" - " .word ._148\n" - " .word ._149\n" - " .word ._150\n" - " .word ._151\n" - " .word ._152\n" - " .word ._153\n" - "._142:\n" - " mov r0, #0x3\n" - " mov r1, #0xe\n" - " mov r2, #0x1b\n" - " mov r3, #0x13\n" - " bl Menu_DrawStdWindowFrame\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 r1, ._155 @ gMain\n" - " ldr r0, ._155 + 4 @ 0x43c\n" - " add r1, r1, r0\n" - " b ._189\n" - "._156:\n" - " .align 2, 0\n" - "._155:\n" - " .word gMain\n" - " .word 0x43c\n" - "._143:\n" - " ldr r0, ._161 @ gPaletteFade\n" - " ldrb r1, [r0, #0x7]\n" - " mov r0, #0x80\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._157 @cond_branch\n" - " b ._196\n" - "._157:\n" - " ldrh r1, [r4, #0x2c]\n" - " mov r0, #0x80\n" - " lsl r0, r0, #0x1\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._159 @cond_branch\n" - " ldr r1, ._161 + 4 @ gUnknown_Debug_30030E0\n" - " ldrb r0, [r1]\n" - " add r0, r0, #0x1\n" - " strb r0, [r1]\n" - "._159:\n" - " ldr r0, ._161 + 8 @ Str_843DA70\n" - " mov r1, #0x4\n" - " mov r2, #0xf\n" - " bl MenuPrintMessage\n" - " ldr r2, ._161 + 12 @ 0x43c\n" - " add r1, r4, r2\n" - " b ._189\n" - "._162:\n" - " .align 2, 0\n" - "._161:\n" - " .word gPaletteFade\n" - " .word gUnknown_Debug_30030E0\n" - " .word Str_843DA70\n" - " .word 0x43c\n" - "._144:\n" - " bl Menu_UpdateWindowText\n" - " lsl r0, r0, #0x18\n" - " cmp r0, #0\n" - " bne ._163 @cond_branch\n" - " b ._196\n" - "._163:\n" - " ldr r1, ._166 @ gMain\n" - " ldr r0, ._166 + 4 @ 0x43c\n" - " add r1, r1, r0\n" - " ldrb r0, [r1]\n" - " add r0, r0, #0x1\n" - " strb r0, [r1]\n" - " ldr r1, ._166 + 8 @ gLinkType\n" - " ldr r2, ._166 + 12 @ 0x5501\n" - " add r0, r2, #0\n" - " strh r0, [r1]\n" - " bl OpenLink\n" - " b ._196\n" - "._167:\n" - " .align 2, 0\n" - "._166:\n" - " .word gMain\n" - " .word 0x43c\n" - " .word gLinkType\n" - " .word 0x5501\n" - "._145:\n" - " ldr r0, ._171 @ gReceivedRemoteLinkPlayers\n" - " ldrb r0, [r0]\n" - " cmp r0, #0\n" - " bne ._168 @cond_branch\n" - " b ._196\n" - "._168:\n" - " ldr r1, ._171 + 4 @ 0x43c\n" - " add r0, r4, r1\n" - " ldrb r1, [r0]\n" - " add r1, r1, #0x1\n" - " strb r1, [r0]\n" - " ldr r0, ._171 + 8 @ Str_843DA84\n" - " mov r1, #0x4\n" - " mov r2, #0xf\n" - " bl MenuPrintMessage\n" - " b ._196\n" - "._172:\n" - " .align 2, 0\n" - "._171:\n" - " .word gReceivedRemoteLinkPlayers\n" - " .word 0x43c\n" - " .word Str_843DA84\n" - "._146:\n" - " bl Menu_UpdateWindowText\n" - " lsl r0, r0, #0x18\n" - " cmp r0, #0\n" - " bne ._173 @cond_branch\n" - " b ._196\n" - "._173:\n" - " ldr r0, ._176 @ debug_sub_815D04C\n" - " mov r1, #0xa\n" - " bl CreateTask\n" - " ldr r1, ._176 + 4 @ gMain\n" - " ldr r2, ._176 + 8 @ 0x43c\n" - " add r1, r1, r2\n" - " b ._189\n" - "._177:\n" - " .align 2, 0\n" - "._176:\n" - " .word debug_sub_815D04C+1\n" - " .word gMain\n" - " .word 0x43c\n" - "._148:\n" - " ldr r0, ._179 @ Str_843DA98\n" - " mov r1, #0x4\n" - " mov r2, #0xf\n" - " bl MenuPrintMessage\n" - " ldr r1, ._179 + 4 @ 0x2004000\n" - " ldr r2, ._179 + 8 @ 0x2004\n" - " mov r0, #0x0\n" - " bl SendBlock\n" - " ldr r1, ._179 + 12 @ gMain\n" - " ldr r0, ._179 + 16 @ 0x43c\n" - " add r1, r1, r0\n" - " b ._189\n" - "._180:\n" - " .align 2, 0\n" - "._179:\n" - " .word Str_843DA98\n" - " .word 0x2004000\n" - " .word 0x2004\n" - " .word gMain\n" - " .word 0x43c\n" - "._149:\n" - " bl Menu_UpdateWindowText\n" - " bl IsLinkTaskFinished\n" - " lsl r0, r0, #0x18\n" - " cmp r0, #0\n" - " beq ._196 @cond_branch\n" - " ldr r1, ._183 @ gMain\n" - " ldr r2, ._183 + 4 @ 0x43c\n" - " add r1, r1, r2\n" - " b ._189\n" - "._184:\n" - " .align 2, 0\n" - "._183:\n" - " .word gMain\n" - " .word 0x43c\n" - "._150:\n" - " bl sub_800832C\n" - " ldr r1, ._186 @ gMain\n" - " ldr r0, ._186 + 4 @ 0x43c\n" - " add r1, r1, r0\n" - " b ._189\n" - "._187:\n" - " .align 2, 0\n" - "._186:\n" - " .word gMain\n" - " .word 0x43c\n" - "._151:\n" - " ldr r0, ._190 @ gReceivedRemoteLinkPlayers\n" - " ldrb r0, [r0]\n" - " cmp r0, #0\n" - " bne ._196 @cond_branch\n" - " mov r0, #0x4\n" - " mov r1, #0xf\n" - " mov r2, #0x1a\n" - " mov r3, #0x12\n" - " bl Menu_BlankWindowRect\n" - " ldr r0, ._190 + 4 @ Str_843DAA3\n" - " mov r1, #0x4\n" - " mov r2, #0xf\n" - " bl Menu_PrintText\n" - " ldr r1, ._190 + 8 @ gMain\n" - " ldr r2, ._190 + 12 @ 0x43c\n" - " add r1, r1, r2\n" - " b ._189\n" - "._191:\n" - " .align 2, 0\n" - "._190:\n" - " .word gReceivedRemoteLinkPlayers\n" - " .word Str_843DAA3\n" - " .word gMain\n" - " .word 0x43c\n" - "._152:\n" - " ldrh r1, [r4, #0x2e]\n" - " mov r0, #0x1\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._196 @cond_branch\n" - " mov r0, #0x1\n" - " neg r0, r0\n" - " mov r1, #0x0\n" - " str r1, [sp]\n" - " mov r2, #0x0\n" - " mov r3, #0x10\n" - " bl BeginNormalPaletteFade\n" - " ldr r0, ._194 @ 0x43c\n" - " add r1, r4, r0\n" - "._189:\n" - " ldrb r0, [r1]\n" - " add r0, r0, #0x1\n" - " strb r0, [r1]\n" - " b ._196\n" - "._195:\n" - " .align 2, 0\n" - "._194:\n" - " .word 0x43c\n" - "._153:\n" - " ldr r0, ._197 @ gPaletteFade\n" - " ldrb r1, [r0, #0x7]\n" - " mov r0, #0x80\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " bne ._196 @cond_branch\n" - " ldr r0, ._197 + 4 @ CB2_InitTitleScreen\n" - " bl SetMainCallback2\n" - "._196:\n" - " bl RunTasks\n" - " bl AnimateSprites\n" - " bl BuildOamBuffer\n" - " bl UpdatePaletteFade\n" - " add sp, sp, #0x4\n" - " pop {r4}\n" - " pop {r0}\n" - " bx r0\n" - "._198:\n" - " .align 2, 0\n" - "._197:\n" - " .word gPaletteFade\n" - " .word CB2_InitTitleScreen+1\n" - "\n" - ); + switch (gMain.state) + { + case 0: + Menu_DrawStdWindowFrame(3, 14, 27, 19); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); + gMain.state++; + break; + case 1: + if (!gPaletteFade.active) + { + if (gMain.heldKeys & 0x100) + gUnknown_Debug_30030E0++; + MenuPrintMessage(Str_843DA70, 4, 15); + gMain.state++; + } + break; + case 2: + if (Menu_UpdateWindowText()) + { + gMain.state++; + gLinkType = 0x5501; + OpenLink(); + } + break; + case 3: + if (gReceivedRemoteLinkPlayers != 0) + { + gMain.state++; + MenuPrintMessage(Str_843DA84, 4, 15); + } + break; + case 4: + if (Menu_UpdateWindowText()) + { + CreateTask(debug_sub_815D04C, 10); + gMain.state++; + } + break; + case 6: + MenuPrintMessage(Str_843DA98, 4, 15); + SendBlock(0, gSharedMem + 0x4000, 0x2004); + gMain.state++; + break; + case 7: + Menu_UpdateWindowText(); + if (IsLinkTaskFinished()) + gMain.state++; + break; + case 8: + sub_800832C(); + gMain.state++; + break; + case 9: + if (gReceivedRemoteLinkPlayers == 0) + { + Menu_BlankWindowRect(4, 15, 26, 18); + Menu_PrintText(Str_843DAA3, 4, 15); + gMain.state++; + } + break; + case 10: + if (gMain.newKeys & A_BUTTON) + { + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + gMain.state++; + } + break; + case 11: + if (!gPaletteFade.active) + SetMainCallback2(CB2_InitTitleScreen); + break; + } + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); } #endif diff --git a/src/field/battle_tower.c b/src/field/battle_tower.c index 1853abbee..8d8498d45 100644 --- a/src/field/battle_tower.c +++ b/src/field/battle_tower.c @@ -33,7 +33,8 @@ #include "../data/battle_tower/trainers_de.h" #endif -static const u16 sBattleTowerHeldItems[] = { +static const u16 sBattleTowerHeldItems[] = +{ ITEM_NONE, ITEM_KINGS_ROCK, ITEM_SITRUS_BERRY, @@ -102,7 +103,8 @@ static const u16 sBattleTowerHeldItems[] = { #include "../data/battle_tower/level_50_mons.h" #include "../data/battle_tower/level_100_mons.h" -static const u8 sMaleTrainerClasses[] = { +static const u8 sMaleTrainerClasses[] = +{ FACILITY_CLASS_RUIN_MANIAC, FACILITY_CLASS_TUBER_M, FACILITY_CLASS_COOL_TRAINER_M, @@ -135,7 +137,8 @@ static const u8 sMaleTrainerClasses[] = { FACILITY_CLASS_HIKER, }; -static const u8 sFemaleTrainerClasses[] = { +static const u8 sFemaleTrainerClasses[] = +{ FACILITY_CLASS_AROMA_LADY, FACILITY_CLASS_TUBER_F, FACILITY_CLASS_COOL_TRAINER_F, @@ -158,7 +161,8 @@ static const u8 sFemaleTrainerClasses[] = { FACILITY_CLASS_LASS, }; -static const u8 sMaleTrainerGfxIds[] = { +static const u8 sMaleTrainerGfxIds[] = +{ MAP_OBJ_GFX_HIKER, MAP_OBJ_GFX_TUBER_M, MAP_OBJ_GFX_MAN_4, @@ -191,7 +195,8 @@ static const u8 sMaleTrainerGfxIds[] = { MAP_OBJ_GFX_HIKER, }; -static const u8 sFemaleTrainerGfxIds[] = { +static const u8 sFemaleTrainerGfxIds[] = +{ MAP_OBJ_GFX_WOMAN_3, MAP_OBJ_GFX_TUBER_F, MAP_OBJ_GFX_WOMAN_7, @@ -214,7 +219,8 @@ static const u8 sFemaleTrainerGfxIds[] = { MAP_OBJ_GFX_LASS, }; -const u16 gBattleTowerBannedSpecies[] = { +const u16 gBattleTowerBannedSpecies[] = +{ SPECIES_MEW, SPECIES_MEWTWO, SPECIES_HO_OH, @@ -229,7 +235,8 @@ const u16 gBattleTowerBannedSpecies[] = { }; // Item prizes for battle tower streaks of 5 or fewer sets. -/*static*/ const u16 sShortStreakPrizes[] = { +static const u16 sShortStreakPrizes[] = +{ ITEM_HP_UP, ITEM_PROTEIN, ITEM_IRON, @@ -239,7 +246,8 @@ const u16 gBattleTowerBannedSpecies[] = { }; // Item prizes for battle tower streaks of greater than 5 sets. -/*static*/ const u16 sLongStreakPrizes[] = { +static const u16 sLongStreakPrizes[] = +{ ITEM_BRIGHT_POWDER, ITEM_WHITE_HERB, ITEM_QUICK_CLAW, @@ -292,9 +300,7 @@ void sub_8134548(void) default: ResetBattleTowerStreak(levelType); if (!var1) - { VarSet(VAR_TEMP_0, 5); - } break; case 1: ResetBattleTowerStreak(levelType); @@ -320,10 +326,8 @@ void sub_8134548(void) } if ((gSaveBlock2.battleTower.var_4AE[0] == 3 || gSaveBlock2.battleTower.var_4AE[0] == 6) - && (gSaveBlock2.battleTower.var_4AE[1] == 3 || gSaveBlock2.battleTower.var_4AE[1] == 6)) - { + && (gSaveBlock2.battleTower.var_4AE[1] == 3 || gSaveBlock2.battleTower.var_4AE[1] == 6)) VarSet(VAR_TEMP_0, 5); - } ValidateBattleTowerRecordChecksums(); } @@ -350,23 +354,18 @@ bool8 ShouldBattleEReaderTrainer(u8 levelType, u16 winStreak) ValidateEReaderTrainer(); if (gSpecialVar_Result != 0 || gSaveBlock2.battleTower.ereaderTrainer.winStreak != winStreak) - { return FALSE; - } - trainerTeamLevel = 50; if (levelType != 0) - { trainerTeamLevel = 100; - } + else + trainerTeamLevel = 50; for (i = 0; i < 3; i++) { monLevel = gSaveBlock2.battleTower.ereaderTrainer.party[i].level; if (gSaveBlock2.battleTower.ereaderTrainer.party[i].level != trainerTeamLevel) - { return FALSE; - } CheckMonBattleTowerBanlist( gSaveBlock2.battleTower.ereaderTrainer.party[i].species, @@ -379,7 +378,7 @@ bool8 ShouldBattleEReaderTrainer(u8 levelType, u16 winStreak) &numValid); } - return numValid == 3; + return (numValid == 3); } bool8 sub_81346F4(void) @@ -408,6 +407,7 @@ bool8 sub_81346F4(void) struct BattleTowerRecord *record = &gSaveBlock2.battleTower.records[recordIndex]; u32 recordHasData = 0; u32 checksum = 0; + for (i = 0; i < sizeof(struct BattleTowerRecord) / sizeof(u32) - 1; i++) { recordHasData |= ((u32 *)record)[i]; @@ -415,9 +415,9 @@ bool8 sub_81346F4(void) } if (gSaveBlock2.battleTower.records[recordIndex].winStreak == winStreak - && gSaveBlock2.battleTower.records[recordIndex].battleTowerLevelType == battleTowerLevelType - && recordHasData - && gSaveBlock2.battleTower.records[recordIndex].checksum == checksum) + && gSaveBlock2.battleTower.records[recordIndex].battleTowerLevelType == battleTowerLevelType + && recordHasData + && gSaveBlock2.battleTower.records[recordIndex].checksum == checksum) { trainerIds[numCandidates] = recordIndex; numCandidates++; @@ -784,19 +784,17 @@ void SetBattleTowerTrainerGfxId(u8 trainerIndex) u8 trainerClass; if (trainerIndex < BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID) - { trainerClass = gBattleTowerTrainers[trainerIndex].trainerClass; - } else if (trainerIndex < BATTLE_TOWER_EREADER_TRAINER_ID) - { trainerClass = gSaveBlock2.battleTower.records[trainerIndex - BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID].trainerClass; - } else - { trainerClass = gSaveBlock2.battleTower.ereaderTrainer.trainerClass; - } - for (i = 0; i < 30 && sMaleTrainerClasses[i] != trainerClass; i++); + for (i = 0; i < 30; i++) + { + if (sMaleTrainerClasses[i] == trainerClass) + break; + } if (i != 30) { u8 trainerObjectGfxId = sMaleTrainerGfxIds[i]; @@ -804,7 +802,11 @@ void SetBattleTowerTrainerGfxId(u8 trainerIndex) return; } - for (i = 0; i < 20 && sFemaleTrainerClasses[i] != trainerClass; i++); + for (i = 0; i < 20; i++) + { + if (sFemaleTrainerClasses[i] == trainerClass) + break; + } if (i != 20) { u8 trainerObjectGfxId = sFemaleTrainerGfxIds[i]; @@ -1143,33 +1145,21 @@ _08134C70: .4byte gSaveBlock2\n\ u8 get_trainer_class_pic_index(void) { if (gSaveBlock2.battleTower.battleTowerTrainerId == BATTLE_TOWER_EREADER_TRAINER_ID) - { return gTrainerClassToPicIndex[gSaveBlock2.battleTower.ereaderTrainer.trainerClass]; - } else if (gSaveBlock2.battleTower.battleTowerTrainerId < BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID) - { return gTrainerClassToPicIndex[gBattleTowerTrainers[gSaveBlock2.battleTower.battleTowerTrainerId].trainerClass]; - } else - { return gTrainerClassToPicIndex[gSaveBlock2.battleTower.records[gSaveBlock2.battleTower.battleTowerTrainerId - BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID].trainerClass]; - } } u8 get_trainer_class_name_index(void) { if (gSaveBlock2.battleTower.battleTowerTrainerId == BATTLE_TOWER_EREADER_TRAINER_ID) - { return gTrainerClassToNameIndex[gSaveBlock2.battleTower.ereaderTrainer.trainerClass]; - } else if (gSaveBlock2.battleTower.battleTowerTrainerId >= BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID) - { return gTrainerClassToNameIndex[gSaveBlock2.battleTower.records[gSaveBlock2.battleTower.battleTowerTrainerId - BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID].trainerClass]; - } else - { return gTrainerClassToNameIndex[gBattleTowerTrainers[gSaveBlock2.battleTower.battleTowerTrainerId].trainerClass]; - } } void get_trainer_name(u8* dest) @@ -1179,26 +1169,20 @@ void get_trainer_name(u8* dest) if (gSaveBlock2.battleTower.battleTowerTrainerId == BATTLE_TOWER_EREADER_TRAINER_ID) { for (i = 0; i < 7; i++) - { dest[i] = gSaveBlock2.battleTower.ereaderTrainer.name[i]; - } } else if (gSaveBlock2.battleTower.battleTowerTrainerId < BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID) { for (i = 0; i < 7; i++) - { dest[i] = gBattleTowerTrainers[gSaveBlock2.battleTower.battleTowerTrainerId].name[i]; - } } else { for (i = 0; i < 7; i++) - { dest[i] = gSaveBlock2.battleTower.records[gSaveBlock2.battleTower.battleTowerTrainerId - BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID].name[i]; - } } - dest[i] = 0xFF; + dest[i] = EOS; } void FillBattleTowerTrainerParty(void) @@ -1266,10 +1250,7 @@ void FillBattleTowerTrainerParty(void) { // Load E-Reader trainer's party. for (partyIndex = 0; partyIndex < 3; partyIndex++) - { sub_803ADE8(&gEnemyParty[partyIndex], &gSaveBlock2.battleTower.ereaderTrainer.party[partyIndex]); - } - return; } else @@ -1281,7 +1262,6 @@ void FillBattleTowerTrainerParty(void) &gEnemyParty[partyIndex], &gSaveBlock2.battleTower.records[gSaveBlock2.battleTower.battleTowerTrainerId - BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID].party[partyIndex]); } - return; } @@ -1329,10 +1309,8 @@ void FillBattleTowerTrainerParty(void) for (i = 0; i < partyIndex; i++) { if (GetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, NULL) != 0 - && GetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, NULL) == sBattleTowerHeldItems[battleTowerMons[battleMonIndex].heldItem]) - { + && GetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, NULL) == sBattleTowerHeldItems[battleTowerMons[battleMonIndex].heldItem]) break; - } } if (i != partyIndex) @@ -1341,7 +1319,12 @@ void FillBattleTowerTrainerParty(void) // Ensure this exact pokemon index isn't a duplicate. This check doesn't seem necessary // because the species and held items were already checked directly above. Perhaps this // is leftover code before the logic for duplicate species and held items was added. - for (i = 0; i < partyIndex && chosenMonIndices[i] != battleMonIndex; i++); + //for (i = 0; i < partyIndex && chosenMonIndices[i] != battleMonIndex; i++); + for (i = 0; i < partyIndex; i++) + { + if (chosenMonIndices[i] == battleMonIndex) + break; + } if (i != partyIndex) continue; @@ -1361,10 +1344,7 @@ void FillBattleTowerTrainerParty(void) { SetMonMoveSlot(&gEnemyParty[partyIndex], battleTowerMons[battleMonIndex].moves[i], i); if (battleTowerMons[battleMonIndex].moves[i] == MOVE_FRUSTRATION) - { - // MOVE_FRUSTRATION is more powerful the lower the pokemon's friendship is. - friendship = 0; - } + friendship = 0; // MOVE_FRUSTRATION is more powerful the lower the pokemon's friendship is. } SetMonData(&gEnemyParty[partyIndex], MON_DATA_FRIENDSHIP, &friendship); @@ -1385,9 +1365,7 @@ u32 CountBattleTowerBanlistCaught(void) for (i = 0; gBattleTowerBannedSpecies[i] != 0xFFFF; i++) { if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleTowerBannedSpecies[i]), FLAG_GET_CAUGHT)) - { numCaught++; - } } return numCaught; @@ -1398,7 +1376,6 @@ u8 AppendBattleTowerBannedSpeciesName(u16 species, u8 curIndexToAppend, s32 numT if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_CAUGHT)) { curIndexToAppend++; - switch (curIndexToAppend - 1) { case 0: @@ -1408,24 +1385,15 @@ u8 AppendBattleTowerBannedSpeciesName(u16 species, u8 curIndexToAppend, s32 numT case 8: case 10: if (numToAppend == curIndexToAppend) - { StringAppend(gStringVar1, BattleText_Format3); - } else if (numToAppend > curIndexToAppend) - { StringAppend(gStringVar1, BattleText_Format4); - } break; case 1: if (curIndexToAppend == numToAppend) - { StringAppend(gStringVar1, BattleText_Format3); - } else - { StringAppend(gStringVar1, BattleText_Format4); - } - StringAppend(gStringVar1, BattleText_Format7); break; case 3: @@ -1434,18 +1402,12 @@ u8 AppendBattleTowerBannedSpeciesName(u16 species, u8 curIndexToAppend, s32 numT case 9: default: if (curIndexToAppend == numToAppend) - { StringAppend(gStringVar1, BattleText_Format3); - } else - { StringAppend(gStringVar1, BattleText_Format4); - } - StringAppend(gStringVar1, BattleText_Format6); break; } - StringAppend(gStringVar1, gSpeciesNames[species]); } @@ -1463,7 +1425,7 @@ void CheckMonBattleTowerBanlist(u16 species, u16 heldItem, u16 hp, u8 battleTowe while (1) { if (gBattleTowerBannedSpecies[counter] == 0xFFFF) - goto EXIT2; // Couldn't get the code to match without this GOTO + break; if (gBattleTowerBannedSpecies[counter] == species) break; @@ -1474,7 +1436,6 @@ void CheckMonBattleTowerBanlist(u16 species, u16 heldItem, u16 hp, u8 battleTowe if (gBattleTowerBannedSpecies[counter] != 0xFFFF) return; - EXIT2: if (battleTowerLevelType == 0 && monLevel > 50) return; @@ -1527,9 +1488,7 @@ void CheckPartyBattleTowerBanlist(void) numBanlistCaught = CountBattleTowerBanlistCaught(); for (i = 0; gBattleTowerBannedSpecies[i] != 0xFFFF; i++) - { counter = AppendBattleTowerBannedSpeciesName(gBattleTowerBannedSpecies[i], counter, numBanlistCaught); - } if (counter == 0) { diff --git a/src/field/item_menu.c b/src/field/item_menu.c index 9fa3fd6cb..05fd3be53 100644 --- a/src/field/item_menu.c +++ b/src/field/item_menu.c @@ -289,24 +289,6 @@ static void sub_80A6618(u8); const struct YesNoFuncTable gUnknown_083C16FC = {sub_80A65AC, sub_80A6618}; -#if DEBUG -const struct {u16 item; u8 unk;} gUnknown_Debug_083EBC68[12+48] = -{ - {ITEM_POKE_BALL, 10}, - {ITEM_ULTRA_BALL, 15}, - {ITEM_GREAT_BALL, 20}, - {ITEM_MASTER_BALL, 25}, - {ITEM_ACRO_BIKE, 1 }, - {ITEM_OLD_ROD, 1 }, - {ITEM_GOOD_ROD, 1 }, - {ITEM_SUPER_ROD, 1 }, - {ITEM_POKEBLOCK_CASE, 1 }, - {ITEM_WAILMER_PAIL, 1 }, - {ITEM_ITEMFINDER, 1 }, - {ITEM_NONE, 1 }, -}; -#endif - void sub_80A34E8(void); static bool8 LoadBagGraphicsMultistep(void); static void sub_80A362C(void); @@ -393,390 +375,6 @@ static void sub_80A3134(void) DmaCopy16Defvars(3, gBGTilemapBuffers[2], (void *)(VRAM + 0x6000), 0x800); } -#if DEBUG -__attribute__((naked)) -static bool8 SetupBagMultistep(void) -{ - asm("\ - push {r4, r5, lr}\n\ - add sp, sp, #0xfffffffc\n\ - ldr r0, ._5 @ gMain\n\ - ldr r1, ._5 + 4 @ 0x43c\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 ClearVideoCallbacks\n\ - bl sub_80A34E8\n\ - b ._61\n\ -._9:\n\ - bl ScanlineEffect_Stop\n\ - ldr r1, ._27 @ gMain\n\ - ldr r0, ._27 + 4 @ 0x43c\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 ClearBGTilemapBuffers\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 @ gPaletteFade\n\ - ldrb r0, [r2, #0x8]\n\ - mov r1, #0x80\n\ - orr r0, r0, r1\n\ - strb r0, [r2, #0x8]\n\ - ldr r1, ._34 + 4 @ gMain\n\ - ldr r0, ._34 + 8 @ 0x43c\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 LoadBagGraphicsMultistep\n\ - lsl r0, r0, #0x18\n\ - cmp r0, #0\n\ - bne ._37 @cond_branch\n\ - b ._66\n\ -._37:\n\ - ldr r1, ._40 @ gMain\n\ - ldr r0, ._40 + 4 @ 0x43c\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 @ gWindowTemplate_81E6DFC\n\ - bl Text_LoadWindowTemplate\n\ - b ._61\n\ -._44:\n\ - .align 2, 0\n\ -._43:\n\ - .word gWindowTemplate_81E6DFC\n\ -._16:\n\ - ldr r0, ._46 @ gWindowTemplate_81E6DFC\n\ - bl MultistepInitMenuWindowBegin\n\ - ldr r1, ._46 + 4 @ gMain\n\ - ldr r0, ._46 + 8 @ 0x43c\n\ - add r1, r1, r0\n\ - b ._62\n\ -._47:\n\ - .align 2, 0\n\ -._46:\n\ - .word gWindowTemplate_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 ClearVerticalScrollIndicatorPalettes\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 SetVerticalScrollIndicatorPriority\n\ - mov r0, #0x1\n\ - mov r1, #0x2\n\ - bl SetVerticalScrollIndicatorPriority\n\ - mov r0, #0x2\n\ - mov r1, #0x2\n\ - bl SetVerticalScrollIndicatorPriority\n\ - mov r0, #0x3\n\ - mov r1, #0x2\n\ - bl SetVerticalScrollIndicatorPriority\n\ - ldr r0, ._53 @ sReturnLocation\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 SetVerticalScrollIndicators\n\ - mov r0, #0x3\n\ - mov r1, #0x1\n\ - bl SetVerticalScrollIndicators\n\ -._51:\n\ - ldr r1, ._53 + 4 @ gMain\n\ - ldr r0, ._53 + 8 @ 0x43c\n\ - add r1, r1, r0\n\ - b ._62\n\ -._54:\n\ - .align 2, 0\n\ -._53:\n\ - .word sReturnLocation\n\ - .word gMain\n\ - .word 0x43c\n\ -._19:\n\ - ldr r1, ._56 @ gUnknown_0203855A\n\ - mov r0, #0x10\n\ - strb r0, [r1]\n\ - ldr r4, ._56 + 4 @ gBGTilemapBuffers\n\ - ldr r5, ._56 + 8 @ sCurrentBagPocket\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 DrawPocketIndicatorDots\n\ - bl UpdateAllBagPockets\n\ - ldr r4, ._56 + 12 @ gBagPockets\n\ - ldr r0, [r4, #0x10]\n\ - ldr r1, [r4, #0x14]\n\ - bl SortItemSlots\n\ - ldr r0, [r4, #0x18]\n\ - ldr r1, [r4, #0x1c]\n\ - bl SortItemSlots\n\ - bl sub_80A3D40\n\ - ldr r1, ._56 + 16 @ gCurrentBagPocketItemSlots\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 sCurrentBagPocket\n\ - .word gBagPockets\n\ - .word gCurrentBagPocketItemSlots\n\ -._20:\n\ - ldr r0, ._59 @ 0xffff\n\ - mov r1, #0x0\n\ - mov r2, #0x7\n\ - bl sub_80A48E8\n\ - ldr r1, ._59 + 4 @ gBagPocketScrollStates\n\ - ldr r4, ._59 + 8 @ sCurrentBagPocket\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 @ gCurrentBagPocketItemSlots\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 @ gUnknown_0203855B\n\ - ldrb r0, [r4]\n\ - add r0, r0, #0x1\n\ - strb r0, [r1]\n\ - ldr r1, ._59 + 20 @ gUnknown_0203855C\n\ - mov r0, #0x0\n\ - strb r0, [r1]\n\ - ldr r1, ._59 + 24 @ gMain\n\ - ldr r0, ._59 + 28 @ 0x43c\n\ - add r1, r1, r0\n\ - b ._62\n\ -._60:\n\ - .align 2, 0\n\ -._59:\n\ - .word 0xffff\n\ - .word gBagPocketScrollStates\n\ - .word sCurrentBagPocket\n\ - .word gCurrentBagPocketItemSlots\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 @ 0x4000208\n\ - ldrh r2, [r3]\n\ - mov r0, #0x0\n\ - strh r0, [r3]\n\ - ldr r4, ._63 + 4 @ 0x4000200\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 @ 0x4000004\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 @ gPaletteFade\n\ - ldrb r1, [r2, #0x8]\n\ - mov r0, #0x7f\n\ - and r0, r0, r1\n\ - strb r0, [r2, #0x8]\n\ - ldr r1, ._63 + 16 @ gMain\n\ - ldr r0, ._63 + 20 @ 0x43c\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 @ gMain\n\ - ldr r2, ._67 + 4 @ 0x43c\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 @ sub_80A3134\n\ - bl SetVBlankCallback\n\ - ldr r0, ._71 + 4 @ sub_80A3118\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 @ gLinkOpen\n\ - ldrb r0, [r0]\n\ - cmp r0, #0x1\n\ - bne ._69 @cond_branch\n\ - ldr r0, ._71 + 12 @ 0x600f5e0\n\ - mov r1, #0x80\n\ - lsl r1, r1, #0x8\n\ - ldr r2, ._71 + 16 @ 0x600f800\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; @@ -897,11 +495,14 @@ static bool8 SetupBagMultistep(void) sub_80A770C(); sub_80A7828(); sub_80A78B8(); +#if DEBUG + if (gLinkOpen == TRUE) + debug_sub_8008218((void *)(VRAM + 0xF5E0), (void *)0x8000, (void *)(VRAM + 0xF800), 0); +#endif return TRUE; } return FALSE; } -#endif static bool8 sub_80A34B4(void) { @@ -1029,76 +630,42 @@ void ClearBag(void) } #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 @ gUnknown_Debug_083EBC68\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 @ 0xffff0000\n\ - add r0, r0, r1\n\ - lsr r0, r0, #0x10\n\ - ldr r1, ._138 + 8 @ gBagPockets\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"); + +const struct ItemSlot gUnknown_Debug_083EBC68[60] = +{ + {ITEM_POKE_BALL, 10}, + {ITEM_ULTRA_BALL, 15}, + {ITEM_GREAT_BALL, 20}, + {ITEM_MASTER_BALL, 25}, + {ITEM_ACRO_BIKE, 1 }, + {ITEM_OLD_ROD, 1 }, + {ITEM_GOOD_ROD, 1 }, + {ITEM_SUPER_ROD, 1 }, + {ITEM_POKEBLOCK_CASE, 1 }, + {ITEM_WAILMER_PAIL, 1 }, + {ITEM_ITEMFINDER, 1 }, + {ITEM_NONE, 1 }, +}; + +void debug_sub_80A3714(void) +{ + u16 arr[5]; + u16 i; + + for (i = 0; i < 5; i++) + arr[i] = 0; + for (i = 0; i < ARRAY_COUNT(gUnknown_Debug_083EBC68); i++) + { + u16 pocket; + + if (gUnknown_Debug_083EBC68[i].itemId == ITEM_NONE) + break; + pocket = ItemId_GetPocket(gUnknown_Debug_083EBC68[i].itemId) - 1; + gBagPockets[pocket].itemSlots[arr[pocket]] = gUnknown_Debug_083EBC68[i]; + arr[pocket]++; + } } + #endif static void sub_80A3740(void) @@ -4040,49 +3607,16 @@ 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 @ gLinkOpen\n\ - ldrb r0, [r0]\n\ - cmp r0, #0x1\n\ - bne ._930 @cond_branch\n\ - ldr r0, ._931 + 4 @ gLink\n\ - ldr r1, ._931 + 8 @ 0xfbd\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(); -} +#if DEBUG + if (gLinkOpen == TRUE) + debug_sub_8008264(gLink.recvQueue.count, 1, 1, 2, 0); #endif +} static void sub_80A7420(void) { |