diff options
author | Cameron Hall <cameronghall@cox.net> | 2018-01-25 16:50:16 -0600 |
---|---|---|
committer | Cameron Hall <cameronghall@cox.net> | 2018-01-25 16:50:16 -0600 |
commit | 092eba3155abf78bfdde1dbe3f140fdbfa9f5081 (patch) | |
tree | e83a38353ceaaa5a95f0a40690d3a04cef23bed0 | |
parent | aa3c9d1d357f858baad3065fa2939eba695d5731 (diff) |
integrate debug functions in contest.c
-rw-r--r-- | src/contest.c | 1022 |
1 files changed, 187 insertions, 835 deletions
diff --git a/src/contest.c b/src/contest.c index 950b26d0c..2f988b9e4 100644 --- a/src/contest.c +++ b/src/contest.c @@ -33,6 +33,8 @@ #include "util.h" #include "contest_ai.h" +extern u8 gUnknown_020297ED; + extern u8 AreMovesContestCombo(u16, u16); // I don't think this is a bool extern void sub_80C8A38(u8); extern void sub_80C8AD0(u8); @@ -238,6 +240,7 @@ void sub_80B0BC4(u8, bool8); void sub_80B0C5C(struct Sprite *); void sub_80B0CB0(struct Sprite *); void sub_80B0CDC(u8, int); +void unref_sub_80B0CF4(void); void sub_80B0D7C(void); void sub_80B1118(void); void sub_80B114C(u8); @@ -611,43 +614,17 @@ void sub_80AB9A0(u8 taskId) } } -#if DEBUG -__attribute__((naked)) -void ContestMainCallback2(void) -{ - asm("\ - push {lr}\n\ - ldr r0, ._122\n\ - ldrb r0, [r0]\n\ - cmp r0, #0x1\n\ - bne ._121 @cond_branch\n\ - ldr r0, ._122 + 4\n\ - ldrh r0, [r0, #0x2e]\n\ - cmp r0, #0x4\n\ - bne ._121 @cond_branch\n\ - bl unref_sub_80B0CF4\n\ -._121:\n\ - bl AnimateSprites\n\ - bl RunTasks\n\ - bl BuildOamBuffer\n\ - bl UpdatePaletteFade\n\ - pop {r0}\n\ - bx r0\n\ -._123:\n\ - .align 2, 0\n\ -._122:\n\ - .word gUnknown_020297ED\n\ - .word gMain"); -} -#else void ContestMainCallback2(void) { +#if DEBUG + if (gUnknown_020297ED == 1 && gMain.newKeys == 4) + unref_sub_80B0CF4(); +#endif AnimateSprites(); RunTasks(); BuildOamBuffer(); UpdatePaletteFade(); } -#endif void ContestVBlankCallback(void) { @@ -762,273 +739,9 @@ void sub_80ABCDC(u8 taskId) gTasks[taskId].func = sub_80ABEA0; } +void debug_sub_80B9EBC(u8); + // Handle move selection input -#if DEBUG -__attribute__((naked)) -void sub_80ABEA0(u8 taskId) -{ - asm("\ - push {r4, r5, r6, r7, lr}\n\ - add sp, sp, #0xfffffff8\n\ - lsl r0, r0, #0x18\n\ - lsr r7, r0, #0x18\n\ - mov r6, #0x0\n\ - ldr r0, ._161\n\ - mov ip, r0\n\ - ldr r4, ._161 + 4\n\ - ldr r3, ._161 + 8\n\ - ldrb r0, [r4]\n\ - lsl r0, r0, #0x6\n\ - mov r1, ip\n\ - add r1, r1, #0x1e\n\ - add r1, r0, r1\n\ - mov r2, #0x3\n\ -._158:\n\ - ldrh r0, [r1]\n\ - cmp r0, #0\n\ - beq ._157 @cond_branch\n\ - add r0, r6, #1\n\ - lsl r0, r0, #0x18\n\ - lsr r6, r0, #0x18\n\ -._157:\n\ - add r1, r1, #0x2\n\ - sub r2, r2, #0x1\n\ - cmp r2, #0\n\ - bge ._158 @cond_branch\n\ - ldrh r0, [r3, #0x2e]\n\ - mov r5, #0x1\n\ - and r5, r5, r0\n\ - cmp r5, #0\n\ - beq ._159 @cond_branch\n\ - bl DestroyMenuCursor\n\ - mov r0, #0x5\n\ - bl PlaySE\n\ - ldr r0, ._161 + 12\n\ - lsl r1, r7, #0x2\n\ - add r1, r1, r7\n\ - lsl r1, r1, #0x3\n\ - add r1, r1, r0\n\ - ldr r0, ._161 + 16\n\ - b ._160\n\ -._162:\n\ - .align 2, 0\n\ -._161:\n\ - .word gContestMons\n\ - .word gContestPlayerMonIndex\n\ - .word gMain\n\ - .word gTasks\n\ - .word sub_80AC0C8+1\n\ -._159:\n\ - ldrh r0, [r3, #0x30]\n\ - cmp r0, #0x10\n\ - bne ._163 @cond_branch\n\ - b ._196\n\ -._163:\n\ - cmp r0, #0x10\n\ - bgt ._165 @cond_branch\n\ - cmp r0, #0x2\n\ - beq ._166 @cond_branch\n\ - cmp r0, #0x8\n\ - bne ._167 @cond_branch\n\ - b ._168\n\ -._167:\n\ - b ._196\n\ -._165:\n\ - cmp r0, #0x40\n\ - beq ._170 @cond_branch\n\ - cmp r0, #0x40\n\ - bgt ._171 @cond_branch\n\ - b ._196\n\ -._171:\n\ - cmp r0, #0x80\n\ - beq ._173 @cond_branch\n\ - b ._196\n\ -._166:\n\ - bl sub_814A904\n\ - mov r0, #0x5\n\ - bl PlaySE\n\ - mov r0, #0x0\n\ - bl sub_80AFFE0\n\ - ldr r0, ._177\n\ - ldr r1, ._177 + 4\n\ - ldrb r2, [r1]\n\ - ldrb r3, [r1, #0x1]\n\ - ldrb r4, [r1, #0x2]\n\ - str r4, [sp]\n\ - ldrb r1, [r1, #0x3]\n\ - str r1, [sp, #0x4]\n\ - mov r1, #0x0\n\ - bl Text_FillWindowRectDefPalette\n\ - ldr r0, ._177 + 8\n\ - ldrb r0, [r0]\n\ - bl Contest_IsMonsTurnDisabled\n\ - lsl r0, r0, #0x18\n\ - cmp r0, #0\n\ - bne ._175 @cond_branch\n\ - ldr r0, ._177 + 12\n\ - ldr r1, ._177 + 16\n\ - bl StringCopy\n\ - b ._176\n\ -._178:\n\ - .align 2, 0\n\ -._177:\n\ - .word gUnknown_03004210\n\ - .word gUnknown_083CA340\n\ - .word gContestPlayerMonIndex\n\ - .word gDisplayedStringBattle\n\ - .word gText_Contest_WhichMoveWillBePlayed\n\ -._175:\n\ - ldr r0, ._180\n\ - ldr r1, ._180 + 4\n\ - bl StringCopy\n\ -._176:\n\ - ldr r5, ._180\n\ - ldr r0, ._180 + 8\n\ - ldrb r1, [r0, #0x1]\n\ - add r1, r1, #0x1\n\ - add r0, r5, #0\n\ - bl InsertStringDigit\n\ - bl sub_80AF138\n\ - ldr r4, ._180 + 12\n\ - add r0, r4, #0\n\ - add r1, r5, #0\n\ - bl StringExpandPlaceholders\n\ - ldr r0, ._180 + 16\n\ - mov r2, #0xc2\n\ - lsl r2, r2, #0x2\n\ - mov r1, #0xf\n\ - str r1, [sp]\n\ - add r1, r4, #0\n\ - mov r3, #0x1\n\ - bl Text_InitWindowAndPrintText\n\ - ldr r0, ._180 + 20\n\ - mov r1, #0x0\n\ - strh r1, [r0]\n\ - ldr r0, ._180 + 24\n\ - strh r1, [r0]\n\ - ldr r1, ._180 + 28\n\ - lsl r0, r7, #0x2\n\ - add r0, r0, r7\n\ - lsl r0, r0, #0x3\n\ - add r0, r0, r1\n\ - ldr r1, ._180 + 32\n\ - str r1, [r0]\n\ - b ._196\n\ -._181:\n\ - .align 2, 0\n\ -._180:\n\ - .word gDisplayedStringBattle\n\ - .word gText_Contest_ButItCantParticipate\n\ - .word gSharedMem+0x19204\n\ - .word gStringVar4\n\ - .word gMenuWindow\n\ - .word gBattle_BG0_Y\n\ - .word gBattle_BG2_Y\n\ - .word gTasks\n\ - .word sub_80ABC70+1\n\ -._170:\n\ - ldr r4, ._184\n\ - mov r0, #0x0\n\ - ldsb r0, [r4, r0]\n\ - bl nullsub_17\n\ - ldrb r0, [r4]\n\ - cmp r0, #0\n\ - bne ._182 @cond_branch\n\ - sub r0, r6, #1\n\ - b ._186\n\ -._185:\n\ - .align 2, 0\n\ -._184:\n\ - .word gSharedMem+0x19204\n\ -._182:\n\ - sub r0, r0, #0x1\n\ - b ._186\n\ -._173:\n\ - ldr r4, ._189\n\ - mov r0, #0x0\n\ - ldsb r0, [r4, r0]\n\ - bl nullsub_17\n\ - ldrb r1, [r4]\n\ - sub r0, r6, #1\n\ - cmp r1, r0\n\ - bne ._187 @cond_branch\n\ - strb r5, [r4]\n\ - b ._188\n\ -._190:\n\ - .align 2, 0\n\ -._189:\n\ - .word gSharedMem+0x19204\n\ -._187:\n\ - add r0, r1, #1\n\ -._186:\n\ - strb r0, [r4]\n\ -._188:\n\ - ldr r4, ._193\n\ - mov r0, #0x0\n\ - ldsb r0, [r4, r0]\n\ - bl sub_80AC0AC\n\ - bl sub_80AED58\n\ - ldr r2, ._193 + 4\n\ - ldrb r1, [r4]\n\ - lsl r1, r1, #0x1\n\ - ldr r0, ._193 + 8\n\ - ldrb r0, [r0]\n\ - lsl r0, r0, #0x6\n\ - add r1, r1, r0\n\ - add r2, r2, #0x1e\n\ - add r1, r1, r2\n\ - ldrh r0, [r1]\n\ - bl sub_80AEBEC\n\ - cmp r6, #0x1\n\ - bls ._196 @cond_branch\n\ - mov r0, #0x5\n\ - bl PlaySE\n\ - b ._196\n\ -._194:\n\ - .align 2, 0\n\ -._193:\n\ - .word gSharedMem+0x19204\n\ - .word gContestMons\n\ - .word gContestPlayerMonIndex\n\ -._168:\n\ - ldr r0, ._197\n\ - ldrb r1, [r0]\n\ - cmp r1, #0x1\n\ - bne ._196 @cond_branch\n\ - ldr r0, ._197 + 4\n\ - ldrb r0, [r0]\n\ - add r2, r0, #0\n\ - and r2, r2, r1\n\ - cmp r2, #0\n\ - bne ._196 @cond_branch\n\ - ldr r0, ._197 + 8\n\ - lsl r1, r7, #0x2\n\ - add r1, r1, r7\n\ - lsl r1, r1, #0x3\n\ - add r1, r1, r0\n\ - strh r2, [r1, #0x8]\n\ - ldrb r0, [r4]\n\ - lsl r0, r0, #0x6\n\ - add r0, r0, ip\n\ - ldrh r0, [r0, #0x1e]\n\ - strh r0, [r1, #0xa]\n\ - ldr r0, ._197 + 12\n\ -._160:\n\ - str r0, [r1]\n\ -._196:\n\ - add sp, sp, #0x8\n\ - pop {r4, r5, r6, r7}\n\ - pop {r0}\n\ - bx r0\n\ -._198:\n\ - .align 2, 0\n\ -._197:\n\ - .word gUnknown_020297ED\n\ - .word gIsLinkContest\n\ - .word gTasks\n\ - .word debug_sub_80B9EBC+1"); -} -#else void sub_80ABEA0(u8 taskId) { u8 numMoves = 0; @@ -1100,552 +813,191 @@ void sub_80ABEA0(u8 taskId) if (numMoves > 1) PlaySE(SE_SELECT); break; +#if DEBUG + case START_BUTTON: + if (gUnknown_020297ED == 1 && !(gIsLinkContest & 1)) + { + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = gContestMons[gContestPlayerMonIndex].moves[0]; + gTasks[taskId].func = debug_sub_80B9EBC; + } + break; +#endif } } } -#endif #if DEBUG -__attribute__((naked)) -void debug_sub_80B9EBC() -{ - asm("\ - push {r4, r5, r6, r7, lr}\n\ - mov r7, r8\n\ - push {r7}\n\ - add sp, sp, #0xffffff94\n\ - lsl r0, r0, #0x18\n\ - lsr r4, r0, #0x18\n\ - ldr r1, ._202\n\ - lsl r0, r4, #0x2\n\ - add r0, r0, r4\n\ - lsl r0, r0, #0x3\n\ - add r7, r0, r1\n\ - mov r0, #0x8\n\ - ldsh r2, [r7, r0]\n\ - cmp r2, #0\n\ - beq ._199 @cond_branch\n\ - cmp r2, #0x1\n\ - beq ._200 @cond_branch\n\ - b ._229\n\ -._203:\n\ - .align 2, 0\n\ -._202:\n\ - .word gTasks\n\ -._199:\n\ - ldr r5, ._205\n\ - ldr r4, ._205 + 4\n\ - ldrb r0, [r4]\n\ - mov r8, r0\n\ - ldrb r6, [r4, #0x1]\n\ - ldrb r0, [r4, #0x2]\n\ - str r0, [sp]\n\ - ldrb r0, [r4, #0x3]\n\ - str r0, [sp, #0x4]\n\ - add r0, r5, #0\n\ - mov r1, #0x0\n\ - mov r2, r8\n\ - add r3, r6, #0\n\ - bl Text_FillWindowRectDefPalette\n\ - mov r0, #0xa\n\ - ldsh r1, [r7, r0]\n\ - mov r0, #0xd\n\ - mul r1, r1, r0\n\ - ldr r0, ._205 + 8\n\ - add r1, r1, r0\n\ - mov r2, #0xc2\n\ - lsl r2, r2, #0x2\n\ - str r6, [sp]\n\ - add r0, r5, #0\n\ - mov r3, r8\n\ - bl Text_InitWindowAndPrintText\n\ - mov r0, #0xa\n\ - ldsh r1, [r7, r0]\n\ - add r0, sp, #0x8\n\ - mov r2, #0x2\n\ - mov r3, #0x3\n\ - bl ConvertIntToDecimalStringN\n\ - mov r2, #0xc7\n\ - lsl r2, r2, #0x2\n\ - ldrb r3, [r4, #0x4]\n\ - ldrb r0, [r4, #0x5]\n\ - str r0, [sp]\n\ - add r0, r5, #0\n\ - add r1, sp, #0x8\n\ - bl Text_InitWindowAndPrintText\n\ - bl sub_80AED58\n\ - ldrh r0, [r7, #0xa]\n\ - bl sub_80AEBEC\n\ - ldrh r0, [r7, #0x8]\n\ - add r0, r0, #0x1\n\ - strh r0, [r7, #0x8]\n\ - b ._229\n\ -._206:\n\ - .align 2, 0\n\ -._205:\n\ - .word gUnknown_03004210\n\ - .word gUnknown_083CA340\n\ - .word gMoveNames\n\ -._200:\n\ - ldr r0, ._213\n\ - ldrh r1, [r0, #0x30]\n\ - cmp r1, #0x10\n\ - beq ._207 @cond_branch\n\ - cmp r1, #0x10\n\ - bgt ._208 @cond_branch\n\ - cmp r1, #0x4\n\ - beq ._215 @cond_branch\n\ - cmp r1, #0x4\n\ - bgt ._210 @cond_branch\n\ - cmp r1, #0x2\n\ - beq ._211 @cond_branch\n\ - b ._229\n\ -._214:\n\ - .align 2, 0\n\ -._213:\n\ - .word gMain\n\ -._210:\n\ - cmp r1, #0x8\n\ - beq ._215 @cond_branch\n\ - b ._229\n\ -._208:\n\ - mov r0, #0x80\n\ - lsl r0, r0, #0x1\n\ - cmp r1, r0\n\ - beq ._217 @cond_branch\n\ - cmp r1, r0\n\ - bgt ._218 @cond_branch\n\ - cmp r1, #0x20\n\ - beq ._219 @cond_branch\n\ - b ._229\n\ -._218:\n\ - mov r0, #0x80\n\ - lsl r0, r0, #0x2\n\ - cmp r1, r0\n\ - beq ._221 @cond_branch\n\ - b ._229\n\ -._219:\n\ - ldrh r0, [r7, #0xa]\n\ - sub r0, r0, #0x1\n\ - b ._223\n\ -._221:\n\ - ldrh r0, [r7, #0xa]\n\ - sub r0, r0, #0xa\n\ -._223:\n\ - strh r0, [r7, #0xa]\n\ - lsl r0, r0, #0x10\n\ - cmp r0, #0\n\ - bgt ._227 @cond_branch\n\ - mov r0, #0xb1\n\ - lsl r0, r0, #0x1\n\ - strh r0, [r7, #0xa]\n\ - b ._227\n\ -._207:\n\ - ldrh r0, [r7, #0xa]\n\ - add r0, r0, #0x1\n\ - b ._226\n\ -._217:\n\ - ldrh r0, [r7, #0xa]\n\ - add r0, r0, #0xa\n\ -._226:\n\ - strh r0, [r7, #0xa]\n\ - lsl r0, r0, #0x10\n\ - mov r1, #0xb1\n\ - lsl r1, r1, #0x11\n\ - cmp r0, r1\n\ - ble ._227 @cond_branch\n\ - strh r2, [r7, #0xa]\n\ -._227:\n\ - ldrh r0, [r7, #0x8]\n\ - sub r0, r0, #0x1\n\ - strh r0, [r7, #0x8]\n\ - b ._229\n\ -._215:\n\ - ldr r0, ._230\n\ - mov r1, #0x0\n\ - strh r1, [r0]\n\ - ldr r0, ._230 + 4\n\ - strh r1, [r0]\n\ - bl sub_80B1BDC\n\ - ldr r1, ._230 + 8\n\ - lsl r0, r4, #0x2\n\ - add r0, r0, r4\n\ - lsl r0, r0, #0x3\n\ - add r0, r0, r1\n\ - mov r1, #0x0\n\ - strh r1, [r0, #0x8]\n\ - ldr r1, ._230 + 12\n\ - str r1, [r0]\n\ - b ._229\n\ -._231:\n\ - .align 2, 0\n\ -._230:\n\ - .word gBattle_BG0_Y\n\ - .word gBattle_BG2_Y\n\ - .word gTasks\n\ - .word debug_sub_80BA054+1\n\ -._211:\n\ - ldr r0, ._232\n\ - mov r1, #0xa0\n\ - strh r1, [r0]\n\ - ldr r0, ._232 + 4\n\ - strh r1, [r0]\n\ - ldr r1, ._232 + 8\n\ - ldr r0, ._232 + 12\n\ - ldrb r0, [r0]\n\ - lsl r0, r0, #0x6\n\ - add r0, r0, r1\n\ - ldrh r2, [r7, #0xa]\n\ - mov r1, #0x0\n\ - strh r2, [r0, #0x1e]\n\ - strh r1, [r7, #0x8]\n\ - strh r1, [r7, #0xa]\n\ - strh r1, [r7, #0xc]\n\ - strh r1, [r7, #0xe]\n\ - ldr r0, ._232 + 16\n\ - str r0, [r7]\n\ -._229:\n\ - add sp, sp, #0x6c\n\ - pop {r3}\n\ - mov r8, r3\n\ - pop {r4, r5, r6, r7}\n\ - pop {r0}\n\ - bx r0\n\ -._233:\n\ - .align 2, 0\n\ -._232:\n\ - .word gBattle_BG0_Y\n\ - .word gBattle_BG2_Y\n\ - .word gContestMons\n\ - .word gContestPlayerMonIndex\n\ - .word sub_80ABCDC+1"); -} -__attribute__((naked)) -void debug_sub_80BA054() -{ - asm("\ - push {r4, r5, r6, r7, lr}\n\ - mov r7, r9\n\ - mov r6, r8\n\ - push {r6, r7}\n\ - lsl r0, r0, #0x18\n\ - lsr r7, r0, #0x18\n\ - ldr r1, ._236\n\ - lsl r0, r7, #0x2\n\ - add r0, r0, r7\n\ - lsl r0, r0, #0x3\n\ - add r0, r0, r1\n\ - mov r2, #0x8\n\ - ldsh r0, [r0, r2]\n\ - add r2, r1, #0\n\ - cmp r0, #0x14\n\ - bls ._234 @cond_branch\n\ - b ._286\n\ -._234:\n\ - lsl r0, r0, #0x2\n\ - ldr r1, ._236 + 4\n\ - add r0, r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ -._237:\n\ - .align 2, 0\n\ -._236:\n\ - .word gTasks\n\ - .word ._238\n\ -._238:\n\ - .word ._239\n\ - .word ._240\n\ - .word ._241\n\ - .word ._242\n\ - .word ._243\n\ - .word ._286\n\ - .word ._286\n\ - .word ._286\n\ - .word ._286\n\ - .word ._286\n\ - .word ._286\n\ - .word ._286\n\ - .word ._286\n\ - .word ._286\n\ - .word ._286\n\ - .word ._286\n\ - .word ._286\n\ - .word ._286\n\ - .word ._286\n\ - .word ._286\n\ - .word ._259\n\ -._239:\n\ - lsl r0, r7, #0x2\n\ - mov r8, r0\n\ - ldr r2, ._262\n\ - mov r9, r2\n\ - ldr r1, ._262 + 4\n\ - mov r2, #0x0\n\ - add r0, r1, #3\n\ -._260:\n\ - strb r2, [r0]\n\ - sub r0, r0, #0x1\n\ - cmp r0, r1\n\ - bge ._260 @cond_branch\n\ - mov r5, #0x0\n\ - mov r0, r9\n\ - mov r1, #0x0\n\ - mov r2, #0x14\n\ - bl memset\n\ - ldr r4, ._262 + 8\n\ - ldrb r0, [r4]\n\ - bl sub_80B28F0\n\ - ldr r3, ._262 + 12\n\ - ldrb r2, [r4]\n\ - lsl r2, r2, #0x6\n\ - add r0, r2, r3\n\ - ldrh r0, [r0]\n\ - add r1, r3, #0\n\ - add r1, r1, #0x3c\n\ - add r1, r2, r1\n\ - ldr r1, [r1]\n\ - add r3, r3, #0x38\n\ - add r2, r2, r3\n\ - ldr r2, [r2]\n\ - bl sub_80AE9FC\n\ - lsl r0, r0, #0x18\n\ - lsr r6, r0, #0x18\n\ - ldr r2, ._262 + 16\n\ - lsl r0, r6, #0x4\n\ - add r0, r0, r6\n\ - lsl r0, r0, #0x2\n\ - add r3, r0, r2\n\ - mov r4, #0x0\n\ - mov r1, #0x78\n\ - strh r1, [r3, #0x24]\n\ - add r2, r2, #0x1c\n\ - add r0, r0, r2\n\ - ldr r1, ._262 + 20\n\ - str r1, [r0]\n\ - ldr r0, ._262 + 24\n\ - mov r2, r8\n\ - add r1, r2, r7\n\ - lsl r1, r1, #0x3\n\ - add r1, r1, r0\n\ - strh r6, [r1, #0xc]\n\ - ldr r2, ._262 + 28\n\ - ldr r0, ._262 + 32\n\ - ldrb r0, [r0]\n\ - add r0, r0, r2\n\ - strb r6, [r0]\n\ - strh r5, [r1, #0xe]\n\ - ldrh r0, [r1, #0x8]\n\ - add r0, r0, #0x1\n\ - strh r0, [r1, #0x8]\n\ - mov r0, r9\n\ - sub r0, r0, #0xea\n\ - strb r4, [r0]\n\ - b ._286\n\ -._263:\n\ - .align 2, 0\n\ -._262:\n\ - .word gSharedMem+0x19348\n\ - .word gBattleMonForms\n\ - .word gContestPlayerMonIndex\n\ - .word gContestMons\n\ - .word gSprites\n\ - .word sub_80AD8FC+1\n\ - .word gTasks\n\ - .word gObjectBankIDs\n\ - .word gBankAttacker\n\ -._240:\n\ - lsl r0, r7, #0x2\n\ - add r0, r0, r7\n\ - lsl r0, r0, #0x3\n\ - add r7, r0, r2\n\ - ldrb r6, [r7, #0xc]\n\ - ldr r1, ._267\n\ - lsl r0, r6, #0x4\n\ - add r0, r0, r6\n\ - lsl r0, r0, #0x2\n\ - add r1, r1, #0x1c\n\ - add r0, r0, r1\n\ - ldr r1, [r0]\n\ - ldr r0, ._267 + 4\n\ - cmp r1, r0\n\ - beq ._264 @cond_branch\n\ - b ._286\n\ -._264:\n\ - ldr r4, ._267 + 8\n\ - ldrb r1, [r4]\n\ - lsl r0, r1, #0x3\n\ - sub r0, r0, r1\n\ - lsl r0, r0, #0x2\n\ - ldr r1, ._267 + 12\n\ - add r0, r0, r1\n\ - ldrh r1, [r7, #0xa]\n\ - mov r5, #0x0\n\ - strh r1, [r0, #0x6]\n\ - ldrb r0, [r4]\n\ - bl sub_80B2790\n\ - ldrb r0, [r4]\n\ - bl sub_80B28F0\n\ - ldrh r0, [r7, #0xa]\n\ - bl SelectContestMoveBankTarget\n\ - ldrh r0, [r7, #0xa]\n\ - bl DoMoveAnim\n\ - strh r5, [r7, #0xe]\n\ - ldrh r0, [r7, #0x8]\n\ - add r0, r0, #0x1\n\ - strh r0, [r7, #0x8]\n\ - b ._286\n\ -._268:\n\ - .align 2, 0\n\ -._267:\n\ - .word gSprites\n\ - .word SpriteCallbackDummy+1\n\ - .word gContestPlayerMonIndex\n\ - .word gSharedMem+0x19260\n\ -._241:\n\ - ldr r0, ._273\n\ - ldr r0, [r0]\n\ - bl _call_via_r0\n\ - ldr r0, ._273 + 4\n\ - ldrb r4, [r0]\n\ - cmp r4, #0\n\ - beq ._269 @cond_branch\n\ - b ._286\n\ -._269:\n\ - ldr r0, ._273 + 8\n\ - ldrb r0, [r0]\n\ - bl sub_80B28CC\n\ - ldr r0, ._273 + 12\n\ - add r0, r0, #0x5a\n\ - ldrb r0, [r0]\n\ - cmp r0, #0\n\ - beq ._271 @cond_branch\n\ - ldr r0, ._273 + 16\n\ - lsl r1, r7, #0x2\n\ - add r1, r1, r7\n\ - lsl r1, r1, #0x3\n\ - add r1, r1, r0\n\ - strh r4, [r1, #0x1c]\n\ - mov r0, #0x14\n\ - strh r0, [r1, #0x8]\n\ - b ._286\n\ -._274:\n\ - .align 2, 0\n\ -._273:\n\ - .word gAnimScriptCallback\n\ - .word gAnimScriptActive\n\ - .word gContestPlayerMonIndex\n\ - .word gSharedMem+0x19204\n\ - .word gTasks\n\ -._271:\n\ - ldr r0, ._276\n\ - lsl r1, r7, #0x2\n\ - add r1, r1, r7\n\ - lsl r1, r1, #0x3\n\ - add r1, r1, r0\n\ - ldrh r0, [r1, #0x8]\n\ - add r0, r0, #0x1\n\ - strh r0, [r1, #0x8]\n\ - b ._286\n\ -._277:\n\ - .align 2, 0\n\ -._276:\n\ - .word gTasks\n\ -._242:\n\ - lsl r0, r7, #0x2\n\ - add r0, r0, r7\n\ - lsl r0, r0, #0x3\n\ - add r4, r0, r2\n\ - ldrh r0, [r4, #0xe]\n\ - add r0, r0, #0x1\n\ - strh r0, [r4, #0xe]\n\ - lsl r0, r0, #0x10\n\ - asr r0, r0, #0x10\n\ - cmp r0, #0x15\n\ - bne ._286 @cond_branch\n\ - ldrb r6, [r4, #0xc]\n\ - ldr r1, ._280\n\ - lsl r0, r6, #0x4\n\ - add r0, r0, r6\n\ - lsl r0, r0, #0x2\n\ - add r1, r1, #0x1c\n\ - add r0, r0, r1\n\ - ldr r1, ._280 + 4\n\ - str r1, [r0]\n\ - bl sub_80B1B14\n\ - mov r0, #0x0\n\ - strh r0, [r4, #0xe]\n\ - ldrh r0, [r4, #0x8]\n\ - add r0, r0, #0x1\n\ - strh r0, [r4, #0x8]\n\ - b ._286\n\ -._281:\n\ - .align 2, 0\n\ -._280:\n\ - .word gSprites\n\ - .word sub_80AD92C+1\n\ -._243:\n\ - lsl r0, r7, #0x2\n\ - add r0, r0, r7\n\ - lsl r0, r0, #0x3\n\ - add r5, r0, r2\n\ - ldrb r6, [r5, #0xc]\n\ - ldr r1, ._284\n\ - lsl r0, r6, #0x4\n\ - add r0, r0, r6\n\ - lsl r0, r0, #0x2\n\ - add r4, r0, r1\n\ - add r0, r4, #0\n\ - add r0, r0, #0x3e\n\ - ldrb r0, [r0]\n\ - lsl r0, r0, #0x1d\n\ - cmp r0, #0\n\ - bge ._286 @cond_branch\n\ - add r0, r4, #0\n\ - bl FreeSpriteOamMatrix\n\ - add r0, r4, #0\n\ - bl DestroySprite\n\ - mov r0, #0x0\n\ - strh r0, [r5, #0x8]\n\ - ldr r0, ._284 + 4\n\ - str r0, [r5]\n\ - ldr r0, ._284 + 8\n\ - mov r1, #0xa0\n\ - strh r1, [r0]\n\ - ldr r0, ._284 + 12\n\ - strh r1, [r0]\n\ - b ._286\n\ -._285:\n\ - .align 2, 0\n\ -._284:\n\ - .word gSprites\n\ - .word debug_sub_80B9EBC+1\n\ - .word gBattle_BG0_Y\n\ - .word gBattle_BG2_Y\n\ -._259:\n\ - lsl r0, r7, #0x2\n\ - add r0, r0, r7\n\ - lsl r0, r0, #0x3\n\ - add r2, r0, r2\n\ - ldrh r0, [r2, #0x1c]\n\ - add r1, r0, #1\n\ - strh r1, [r2, #0x1c]\n\ - lsl r0, r0, #0x10\n\ - asr r0, r0, #0x10\n\ - cmp r0, #0x1e\n\ - ble ._286 @cond_branch\n\ - mov r0, #0x0\n\ - strh r0, [r2, #0x1c]\n\ - mov r0, #0x1\n\ - strh r0, [r2, #0x8]\n\ -._286:\n\ - pop {r3, r4}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - pop {r4, r5, r6, r7}\n\ - pop {r0}\n\ - bx r0"); +void debug_sub_80BA054(u8); + +void debug_sub_80B9EBC(u8 taskId) +{ + u8 text[100]; + + switch (gTasks[taskId].data[0]) + { + case 0: + Text_FillWindowRectDefPalette( + &gUnknown_03004210, + 0, + gUnknown_083CA340[0][0], + gUnknown_083CA340[0][1], + gUnknown_083CA340[0][2], + gUnknown_083CA340[0][3]); + Text_InitWindowAndPrintText( + &gUnknown_03004210, + gMoveNames[gTasks[taskId].data[1]], + 776, + gUnknown_083CA340[0][0], + gUnknown_083CA340[0][1]); + ConvertIntToDecimalStringN(text, gTasks[taskId].data[1], 2, 3); + Text_InitWindowAndPrintText( + &gUnknown_03004210, + text, + 796, + gUnknown_083CA340[1][0], + gUnknown_083CA340[1][1]); + sub_80AED58(); + sub_80AEBEC(gTasks[taskId].data[1]); + gTasks[taskId].data[0]++; + break; + case 1: + switch (gMain.newAndRepeatedKeys) + { + case 0x20: + gTasks[taskId].data[1] -= 1; + if (gTasks[taskId].data[1] < 1) + gTasks[taskId].data[1] = 354; + gTasks[taskId].data[0]--; + break; + case 0x200: + gTasks[taskId].data[1] -= 10; + if (gTasks[taskId].data[1] < 1) + gTasks[taskId].data[1] = 354; + gTasks[taskId].data[0]--; + break; + case 0x10: + gTasks[taskId].data[1] += 1; + if (gTasks[taskId].data[1] > 354) + gTasks[taskId].data[1] = 1; + gTasks[taskId].data[0]--; + break; + case 0x100: + gTasks[taskId].data[1] += 10; + if (gTasks[taskId].data[1] > 354) + gTasks[taskId].data[1] = 1; + gTasks[taskId].data[0]--; + break; + case 4: + case 8: + gBattle_BG0_Y = 0; + gBattle_BG2_Y = 0; + sub_80B1BDC(); + gTasks[taskId].data[0] = 0; + gTasks[taskId].func = debug_sub_80BA054; + break; + case 2: + gBattle_BG0_Y = DISPLAY_HEIGHT; + gBattle_BG2_Y = DISPLAY_HEIGHT; + gContestMons[gContestPlayerMonIndex].moves[0] = gTasks[taskId].data[1]; + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[2] = 0; + gTasks[taskId].data[3] = 0; + gTasks[taskId].func = sub_80ABCDC; + break; + } + break; + } +} + +void debug_sub_80BA054(u8 taskId) +{ + s32 i; + u8 r6; + + switch (gTasks[taskId].data[0]) + { + case 0: + for (i = 0; i < 4; i++) + gBattleMonForms[i] = 0; + memset(&shared19348, 0, sizeof(shared19348)); + sub_80B28F0(gContestPlayerMonIndex); + r6 = sub_80AE9FC( + gContestMons[gContestPlayerMonIndex].species, + gContestMons[gContestPlayerMonIndex].otId, + gContestMons[gContestPlayerMonIndex].personality); + gSprites[r6].pos2.x = 120; + gSprites[r6].callback = sub_80AD8FC; + gTasks[taskId].data[2] = r6; + gObjectBankIDs[gBankAttacker] = r6; + gTasks[taskId].data[3] = 0; + gTasks[taskId].data[0]++; + sContest.unk1925E = 0; + break; + case 1: + r6 = gTasks[taskId].data[2]; + if (gSprites[r6].callback == SpriteCallbackDummy) + { + sContestantStatus[gContestPlayerMonIndex].currMove = gTasks[taskId].data[1]; + sub_80B2790(gContestPlayerMonIndex); + sub_80B28F0(gContestPlayerMonIndex); + SelectContestMoveBankTarget(gTasks[taskId].data[1]); + DoMoveAnim(gTasks[taskId].data[1]); + gTasks[taskId].data[3] = 0; + gTasks[taskId].data[0]++; + } + break; + case 2: + gAnimScriptCallback(); + if (!gAnimScriptActive) + { + sub_80B28CC(gContestPlayerMonIndex); + if (sContest.unk1925E != 0) + { + gTasks[taskId].data[10] = 0; + gTasks[taskId].data[0] = 20; + } + else + { + gTasks[taskId].data[0]++; + } + } + break; + case 3: + gTasks[taskId].data[3]++; + if (gTasks[taskId].data[3] == 21) + { + r6 = gTasks[taskId].data[2]; + gSprites[r6].callback = sub_80AD92C; + sub_80B1B14(); + gTasks[taskId].data[3] = 0; + gTasks[taskId].data[0]++; + } + break; + case 4: + r6 = gTasks[taskId].data[2]; + if (gSprites[r6].invisible) + { + FreeSpriteOamMatrix(&gSprites[r6]); + DestroySprite(&gSprites[r6]); + gTasks[taskId].data[0] = 0; + gTasks[taskId].func = debug_sub_80B9EBC; + gBattle_BG0_Y = DISPLAY_HEIGHT; + gBattle_BG2_Y = DISPLAY_HEIGHT; + } + break; + case 20: + if (gTasks[taskId].data[10]++ > 30) + { + gTasks[taskId].data[10] = 0; + gTasks[taskId].data[0] = 1; + } + break; + } } + #endif void sub_80AC0AC(s8 a) |