summaryrefslogtreecommitdiff
path: root/src/battle/battle_interface.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/battle/battle_interface.c')
-rw-r--r--src/battle/battle_interface.c669
1 files changed, 661 insertions, 8 deletions
diff --git a/src/battle/battle_interface.c b/src/battle/battle_interface.c
index 97568d254..f7734301c 100644
--- a/src/battle/battle_interface.c
+++ b/src/battle/battle_interface.c
@@ -79,8 +79,8 @@ extern const u16 gBattleInterfaceStatusIcons_DynPal[];
static void sub_8043D5C(struct Sprite *);
static const void *sub_8043CDC(u8);
-static void sub_8044210(u8, s16, u8);
-static void draw_status_ailment_maybe(u8);
+/*static*/ void sub_8044210(u8, s16, u8);
+/*static*/ void draw_status_ailment_maybe(u8);
extern void sub_8045180(struct Sprite *);
static void sub_8045110(struct Sprite *);
static void sub_8045048(struct Sprite *);
@@ -651,7 +651,7 @@ void sub_8043F44(u8 a)
#define CHAR_LV_SEPARATOR CHAR_PERIOD
#endif
-static void sub_8043FC0(u8 a, u8 b)
+/*static*/ void sub_8043FC0(u8 a, u8 b)
{
u8 str[30];
void *const *r7;
@@ -905,7 +905,7 @@ _0804420C: .4byte 0x04000008\n\
}
#endif
-static void sub_8044210(u8 a, s16 b, u8 c)
+/*static*/ void sub_8044210(u8 a, s16 b, u8 c)
{
u8 str[0x14];
u8 *ptr;
@@ -1277,6 +1277,353 @@ _08044548: .4byte 0x04000008\n\
}
#endif
+#if DEBUG
+__attribute__((naked))
+void sub_804454C()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, sl\n"
+ " mov r6, r9\n"
+ " mov r5, r8\n"
+ " push {r5, r6, r7}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " mov r0, #0x0\n"
+ " mov r8, r0\n"
+ " ldr r0, ._150\n"
+ " ldrb r0, [r0]\n"
+ " cmp r8, r0\n"
+ " blt ._133 @cond_branch\n"
+ " b ._164\n"
+ "._133:\n"
+ " ldr r1, ._150 + 4\n"
+ " mov r9, r1\n"
+ " mov r2, #0x64\n"
+ " mov sl, r2\n"
+ " ldr r7, ._150 + 8\n"
+ "._165:\n"
+ " ldr r0, ._150 + 12\n"
+ " mov r6, r8\n"
+ " add r5, r6, r0\n"
+ " ldrb r1, [r5]\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " mov r1, r9\n"
+ " add r1, r1, #0x1c\n"
+ " add r0, r0, r1\n"
+ " ldr r1, [r0]\n"
+ " ldr r0, ._150 + 16\n"
+ " cmp r1, r0\n"
+ " beq ._135 @cond_branch\n"
+ " b ._147\n"
+ "._135:\n"
+ " ldr r0, ._150 + 20\n"
+ " ldrb r0, [r0]\n"
+ " lsl r4, r6, #0x18\n"
+ " cmp r0, #0\n"
+ " bne ._138 @cond_branch\n"
+ " lsr r0, r4, #0x18\n"
+ " bl GetBankSide\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x1\n"
+ " bne ._138 @cond_branch\n"
+ " b ._147\n"
+ "._138:\n"
+ " bl IsDoubleBattle\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " bne ._141 @cond_branch\n"
+ " lsr r0, r4, #0x18\n"
+ " bl GetBankSide\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " bne ._141 @cond_branch\n"
+ " b ._147\n"
+ "._141:\n"
+ " mov r0, r8\n"
+ " lsl r3, r0, #0x2\n"
+ " ldr r0, ._150 + 24\n"
+ " add r3, r3, r0\n"
+ " ldr r0, [r3]\n"
+ " lsl r0, r0, #0x1b\n"
+ " lsr r0, r0, #0x1f\n"
+ " mov r2, #0x1\n"
+ " eor r2, r2, r0\n"
+ " lsl r2, r2, #0x4\n"
+ " ldrb r0, [r3]\n"
+ " mov r6, #0x11\n"
+ " neg r6, r6\n"
+ " add r1, r6, #0\n"
+ " and r0, r0, r1\n"
+ " orr r0, r0, r2\n"
+ " strb r0, [r3]\n"
+ " ldr r0, [r3]\n"
+ " lsl r0, r0, #0x1b\n"
+ " lsr r6, r0, #0x1f\n"
+ " lsr r0, r4, #0x18\n"
+ " bl GetBankSide\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " bne ._143 @cond_branch\n"
+ " bl IsDoubleBattle\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " bne ._144 @cond_branch\n"
+ " b ._147\n"
+ "._144:\n"
+ " ldr r0, ._150 + 28\n"
+ " ldrh r1, [r0]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r2, r0, #0x10\n"
+ " cmp r2, #0\n"
+ " beq ._146 @cond_branch\n"
+ " b ._147\n"
+ "._146:\n"
+ " cmp r6, #0x1\n"
+ " bne ._148 @cond_branch\n"
+ " ldrb r1, [r5]\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r9\n"
+ " ldrh r0, [r0, #0x38]\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r1, r0, #0x18\n"
+ " str r2, [sp]\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r9\n"
+ " ldrh r1, [r0, #0x4]\n"
+ " lsl r1, r1, #0x16\n"
+ " lsr r1, r1, #0x11\n"
+ " ldr r0, ._150 + 32\n"
+ " add r1, r1, r0\n"
+ " mov r0, sp\n"
+ " ldr r2, ._150 + 36\n"
+ " bl gScriptFuncs_End+0x3cb4\n"
+ " ldrb r4, [r5]\n"
+ " ldrh r0, [r7]\n"
+ " mov r1, sl\n"
+ " mul r1, r1, r0\n"
+ " add r0, r1, #0\n"
+ " ldr r2, ._150 + 40\n"
+ " add r0, r0, r2\n"
+ " mov r1, #0x39\n"
+ " bl GetMonData\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " asr r1, r1, #0x10\n"
+ " add r0, r4, #0\n"
+ " mov r2, #0x0\n"
+ " bl sub_8044210\n"
+ " ldrb r4, [r5]\n"
+ " ldrh r0, [r7]\n"
+ " mov r6, sl\n"
+ " mul r6, r6, r0\n"
+ " add r0, r6, #0\n"
+ " ldr r1, ._150 + 40\n"
+ " b ._149\n"
+ "._151:\n"
+ " .align 2, 0\n"
+ "._150:\n"
+ " .word gNoOfAllBanks\n"
+ " .word gSprites\n"
+ " .word gBattlePartyID\n"
+ " .word gHealthboxIDs\n"
+ " .word SpriteCallbackDummy+1\n"
+ " .word gUnknown_020297ED\n"
+ " .word +0x2017800\n"
+ " .word gBattleTypeFlags\n"
+ " .word 0x6010000\n"
+ " .word 0x5000040\n"
+ " .word gPlayerParty\n"
+ "._148:\n"
+ " ldrb r0, [r5]\n"
+ " bl draw_status_ailment_maybe\n"
+ " ldrb r0, [r5]\n"
+ " ldrh r1, [r7]\n"
+ " mov r2, sl\n"
+ " mul r2, r2, r1\n"
+ " add r1, r2, #0\n"
+ " ldr r6, ._153\n"
+ " add r1, r1, r6\n"
+ " mov r2, #0x5\n"
+ " bl sub_8045A5C\n"
+ " mov r0, #0x75\n"
+ " bl sub_8043CDC\n"
+ " ldrb r2, [r5]\n"
+ " lsl r1, r2, #0x4\n"
+ " add r1, r1, r2\n"
+ " lsl r1, r1, #0x2\n"
+ " add r1, r1, r9\n"
+ " ldrh r1, [r1, #0x4]\n"
+ " lsl r1, r1, #0x16\n"
+ " lsr r1, r1, #0x11\n"
+ " ldr r2, ._153 + 4\n"
+ " add r1, r1, r2\n"
+ " ldr r2, ._153 + 8\n"
+ " bl gScriptFuncs_End+0x3cb4\n"
+ " b ._163\n"
+ "._154:\n"
+ " .align 2, 0\n"
+ "._153:\n"
+ " .word gPlayerParty\n"
+ " .word 0x6010680\n"
+ " .word 0x4000008\n"
+ "._143:\n"
+ " cmp r6, #0x1\n"
+ " bne ._155 @cond_branch\n"
+ " ldr r0, ._158\n"
+ " ldrh r1, [r0]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r2, r0, #0x10\n"
+ " cmp r2, #0\n"
+ " beq ._156 @cond_branch\n"
+ " ldrb r0, [r5]\n"
+ " ldrh r1, [r7]\n"
+ " mov r6, sl\n"
+ " mul r6, r6, r1\n"
+ " add r1, r6, #0\n"
+ " ldr r2, ._158 + 4\n"
+ " add r1, r1, r2\n"
+ " bl sub_8044338\n"
+ " b ._163\n"
+ "._159:\n"
+ " .align 2, 0\n"
+ "._158:\n"
+ " .word gBattleTypeFlags\n"
+ " .word gEnemyParty\n"
+ "._156:\n"
+ " ldrb r1, [r5]\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r9\n"
+ " ldrh r0, [r0, #0x38]\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r1, r0, #0x18\n"
+ " str r2, [sp]\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r9\n"
+ " ldrh r1, [r0, #0x4]\n"
+ " lsl r1, r1, #0x16\n"
+ " lsr r1, r1, #0x11\n"
+ " ldr r6, ._161\n"
+ " add r1, r1, r6\n"
+ " mov r0, sp\n"
+ " ldr r2, ._161 + 4\n"
+ " bl gScriptFuncs_End+0x3cb4\n"
+ " ldrb r4, [r5]\n"
+ " ldrh r0, [r7]\n"
+ " mov r1, sl\n"
+ " mul r1, r1, r0\n"
+ " add r0, r1, #0\n"
+ " ldr r2, ._161 + 8\n"
+ " add r0, r0, r2\n"
+ " mov r1, #0x39\n"
+ " bl GetMonData\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " asr r1, r1, #0x10\n"
+ " add r0, r4, #0\n"
+ " mov r2, #0x0\n"
+ " bl sub_8044210\n"
+ " ldrb r4, [r5]\n"
+ " ldrh r0, [r7]\n"
+ " mov r6, sl\n"
+ " mul r6, r6, r0\n"
+ " add r0, r6, #0\n"
+ " ldr r1, ._161 + 8\n"
+ "._149:\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0x3a\n"
+ " bl GetMonData\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " asr r1, r1, #0x10\n"
+ " add r0, r4, #0\n"
+ " mov r2, #0x1\n"
+ " bl sub_8044210\n"
+ " b ._163\n"
+ "._162:\n"
+ " .align 2, 0\n"
+ "._161:\n"
+ " .word 0x6010000\n"
+ " .word 0x5000040\n"
+ " .word gEnemyParty\n"
+ "._155:\n"
+ " ldrb r0, [r5]\n"
+ " bl draw_status_ailment_maybe\n"
+ " ldrb r0, [r5]\n"
+ " ldrh r1, [r7]\n"
+ " mov r6, #0x64\n"
+ " mul r1, r1, r6\n"
+ " ldr r4, ._166\n"
+ " add r1, r1, r4\n"
+ " mov r2, #0x5\n"
+ " bl sub_8045A5C\n"
+ " ldr r0, ._166 + 4\n"
+ " ldrh r1, [r0]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._163 @cond_branch\n"
+ " ldrb r0, [r5]\n"
+ " ldrh r1, [r7]\n"
+ " mul r1, r1, r6\n"
+ " add r1, r1, r4\n"
+ " mov r2, #0x4\n"
+ " bl sub_8045A5C\n"
+ "._163:\n"
+ " ldr r0, ._166 + 8\n"
+ " add r0, r0, r8\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r9\n"
+ " ldrh r1, [r0, #0x3c]\n"
+ " mov r2, #0x1\n"
+ " eor r1, r1, r2\n"
+ " strh r1, [r0, #0x3c]\n"
+ "._147:\n"
+ " add r7, r7, #0x2\n"
+ " mov r2, #0x1\n"
+ " add r8, r8, r2\n"
+ " ldr r0, ._166 + 12\n"
+ " ldrb r0, [r0]\n"
+ " cmp r8, r0\n"
+ " bge ._164 @cond_branch\n"
+ " b ._165\n"
+ "._164:\n"
+ " add sp, sp, #0x4\n"
+ " pop {r3, r4, r5}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " mov sl, r5\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._167:\n"
+ " .align 2, 0\n"
+ "._166:\n"
+ " .word gEnemyParty\n"
+ " .word gBattleTypeFlags\n"
+ " .word gHealthboxIDs\n"
+ " .word gNoOfAllBanks\n"
+ "\n"
+ );
+}
+#else
void sub_804454C(void)
{
s32 i;
@@ -1344,6 +1691,7 @@ void sub_804454C(void)
}
}
}
+#endif
// This function almost matches except for just two instructions around 0x08044B52 that are swapped.
#ifdef NONMATCHING
@@ -2359,7 +2707,7 @@ void sub_8045180(struct Sprite *sprite)
sprite->pos2.y = gSprites[spriteId].pos2.y;
}
-static void sub_80451A0(u8 a, struct Pokemon *pkmn)
+/*static*/ void sub_80451A0(u8 a, struct Pokemon *pkmn)
{
u8 nickname[POKEMON_NAME_LENGTH];
u8 gender;
@@ -2507,7 +2855,7 @@ static void sub_8045458(u8 a, u8 b)
}
}
-static void draw_status_ailment_maybe(u8 a)
+/*static*/ void draw_status_ailment_maybe(u8 a)
{
s32 r4;
s32 r4_2;
@@ -2649,7 +2997,7 @@ static u8 sub_80457E8(u8 a, u8 b)
return ret;
}
-static void sub_80458B0(u8 a)
+/*static*/ void sub_80458B0(u8 a)
{
u8 *r6;
u8 r8;
@@ -2675,7 +3023,7 @@ static void sub_80458B0(u8 a)
}
-static void sub_8045998(u8 a)
+/*static*/ void sub_8045998(u8 a)
{
u8 *r7;
u8 status;
@@ -2697,6 +3045,310 @@ static void sub_8045998(u8 a)
}
}
+#ifdef DEBUG
+__attribute__((naked))
+void sub_8045A5C(u8 a, struct Pokemon *pkmn, u8 c)
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, sl\n"
+ " mov r6, r9\n"
+ " mov r5, r8\n"
+ " push {r5, r6, r7}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " mov r9, r1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r8, r0\n"
+ " lsl r2, r2, #0x18\n"
+ " lsr r7, r2, #0x18\n"
+ " ldr r1, ._429\n"
+ " lsl r0, r0, #0x4\n"
+ " add r0, r0, r8\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r1\n"
+ " ldrh r0, [r0, #0x3a]\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov sl, r0\n"
+ " bl GetBankSide\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " beq ._410 @cond_branch\n"
+ " b ._411\n"
+ "._410:\n"
+ " cmp r7, #0x3\n"
+ " beq ._412 @cond_branch\n"
+ " cmp r7, #0\n"
+ " bne ._413 @cond_branch\n"
+ "._412:\n"
+ " mov r0, r9\n"
+ " mov r1, #0x38\n"
+ " bl GetMonData\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " mov r0, r8\n"
+ " bl sub_8043FC0\n"
+ "._413:\n"
+ " cmp r7, #0x1\n"
+ " bhi ._414 @cond_branch\n"
+ " mov r0, r9\n"
+ " mov r1, #0x39\n"
+ " bl GetMonData\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " asr r1, r1, #0x10\n"
+ " mov r0, r8\n"
+ " mov r2, #0x0\n"
+ " bl sub_80440EC\n"
+ "._414:\n"
+ " cmp r7, #0x2\n"
+ " beq ._415 @cond_branch\n"
+ " cmp r7, #0\n"
+ " bne ._416 @cond_branch\n"
+ "._415:\n"
+ " mov r0, r9\n"
+ " mov r1, #0x3a\n"
+ " bl GetMonData\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " asr r1, r1, #0x10\n"
+ " mov r0, r8\n"
+ " mov r2, #0x1\n"
+ " bl sub_80440EC\n"
+ "._416:\n"
+ " cmp r7, #0x5\n"
+ " beq ._417 @cond_branch\n"
+ " cmp r7, #0\n"
+ " bne ._418 @cond_branch\n"
+ "._417:\n"
+ " mov r0, #0x0\n"
+ " bl load_gfxc_health_bar\n"
+ " mov r0, r9\n"
+ " mov r1, #0x3a\n"
+ " bl GetMonData\n"
+ " add r4, r0, #0\n"
+ " mov r0, r9\n"
+ " mov r1, #0x39\n"
+ " bl GetMonData\n"
+ " add r3, r0, #0\n"
+ " mov r0, #0x0\n"
+ " str r0, [sp]\n"
+ " mov r0, sl\n"
+ " mov r1, r8\n"
+ " add r2, r4, #0\n"
+ " bl sub_8043D84\n"
+ " mov r0, sl\n"
+ " mov r1, r8\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x0\n"
+ " bl sub_8045C78\n"
+ "._418:\n"
+ " bl IsDoubleBattle\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " str r0, [sp, #0x4]\n"
+ " cmp r0, #0\n"
+ " bne ._421 @cond_branch\n"
+ " cmp r7, #0x6\n"
+ " beq ._420 @cond_branch\n"
+ " cmp r7, #0\n"
+ " bne ._421 @cond_branch\n"
+ "._420:\n"
+ " mov r0, #0x3\n"
+ " bl load_gfxc_health_bar\n"
+ " mov r0, r9\n"
+ " mov r1, #0xb\n"
+ " bl GetMonData\n"
+ " add r5, r0, #0\n"
+ " lsl r5, r5, #0x10\n"
+ " lsr r5, r5, #0x10\n"
+ " mov r0, r9\n"
+ " mov r1, #0x38\n"
+ " bl GetMonData\n"
+ " add r4, r0, #0\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " mov r0, r9\n"
+ " mov r1, #0x19\n"
+ " bl GetMonData\n"
+ " add r3, r0, #0\n"
+ " ldr r6, ._429 + 4\n"
+ " lsl r1, r4, #0x2\n"
+ " ldr r2, ._429 + 8\n"
+ " lsl r0, r5, #0x3\n"
+ " sub r0, r0, r5\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r2\n"
+ " ldrb r2, [r0, #0x13]\n"
+ " mov r0, #0xca\n"
+ " lsl r0, r0, #0x1\n"
+ " mul r0, r0, r2\n"
+ " add r1, r1, r0\n"
+ " add r1, r1, r6\n"
+ " ldr r1, [r1]\n"
+ " sub r3, r3, r1\n"
+ " add r4, r4, #0x1\n"
+ " lsl r4, r4, #0x2\n"
+ " add r4, r4, r0\n"
+ " add r4, r4, r6\n"
+ " ldr r2, [r4]\n"
+ " sub r2, r2, r1\n"
+ " ldr r0, [sp, #0x4]\n"
+ " str r0, [sp]\n"
+ " mov r0, sl\n"
+ " mov r1, r8\n"
+ " bl sub_8043D84\n"
+ " mov r0, sl\n"
+ " mov r1, r8\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x0\n"
+ " bl sub_8045C78\n"
+ "._421:\n"
+ " cmp r7, #0x4\n"
+ " beq ._422 @cond_branch\n"
+ " cmp r7, #0\n"
+ " bne ._423 @cond_branch\n"
+ "._422:\n"
+ " mov r0, r8\n"
+ " mov r1, r9\n"
+ " bl sub_80451A0\n"
+ "._423:\n"
+ " cmp r7, #0x9\n"
+ " beq ._424 @cond_branch\n"
+ " cmp r7, #0\n"
+ " bne ._425 @cond_branch\n"
+ "._424:\n"
+ " mov r0, r8\n"
+ " bl draw_status_ailment_maybe\n"
+ "._425:\n"
+ " cmp r7, #0xa\n"
+ " bne ._426 @cond_branch\n"
+ " mov r0, r8\n"
+ " bl sub_80458B0\n"
+ "._426:\n"
+ " add r0, r7, #0\n"
+ " sub r0, r0, #0xa\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x1\n"
+ " bhi ._442 @cond_branch\n"
+ " mov r0, r8\n"
+ " bl sub_8045998\n"
+ " b ._442\n"
+ "._430:\n"
+ " .align 2, 0\n"
+ "._429:\n"
+ " .word gSprites\n"
+ " .word gExperienceTables\n"
+ " .word gBaseStats\n"
+ "._411:\n"
+ " cmp r7, #0x3\n"
+ " beq ._431 @cond_branch\n"
+ " cmp r7, #0\n"
+ " bne ._432 @cond_branch\n"
+ "._431:\n"
+ " mov r0, r9\n"
+ " mov r1, #0x38\n"
+ " bl GetMonData\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " mov r0, r8\n"
+ " bl sub_8043FC0\n"
+ "._432:\n"
+ " ldr r0, ._443\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0x1\n"
+ " bne ._436 @cond_branch\n"
+ " cmp r7, #0x1\n"
+ " bhi ._434 @cond_branch\n"
+ " mov r0, r9\n"
+ " mov r1, #0x39\n"
+ " bl GetMonData\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " asr r1, r1, #0x10\n"
+ " mov r0, r8\n"
+ " mov r2, #0x0\n"
+ " bl sub_80440EC\n"
+ "._434:\n"
+ " cmp r7, #0x2\n"
+ " beq ._435 @cond_branch\n"
+ " cmp r7, #0\n"
+ " bne ._436 @cond_branch\n"
+ "._435:\n"
+ " mov r0, r9\n"
+ " mov r1, #0x3a\n"
+ " bl GetMonData\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " asr r1, r1, #0x10\n"
+ " mov r0, r8\n"
+ " mov r2, #0x1\n"
+ " bl sub_80440EC\n"
+ "._436:\n"
+ " cmp r7, #0x5\n"
+ " beq ._437 @cond_branch\n"
+ " cmp r7, #0\n"
+ " bne ._438 @cond_branch\n"
+ "._437:\n"
+ " mov r0, #0x0\n"
+ " bl load_gfxc_health_bar\n"
+ " mov r0, r9\n"
+ " mov r1, #0x3a\n"
+ " bl GetMonData\n"
+ " add r4, r0, #0\n"
+ " mov r0, r9\n"
+ " mov r1, #0x39\n"
+ " bl GetMonData\n"
+ " add r3, r0, #0\n"
+ " mov r0, #0x0\n"
+ " str r0, [sp]\n"
+ " mov r0, sl\n"
+ " mov r1, r8\n"
+ " add r2, r4, #0\n"
+ " bl sub_8043D84\n"
+ " mov r0, sl\n"
+ " mov r1, r8\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x0\n"
+ " bl sub_8045C78\n"
+ "._438:\n"
+ " cmp r7, #0x4\n"
+ " beq ._439 @cond_branch\n"
+ " cmp r7, #0\n"
+ " bne ._440 @cond_branch\n"
+ "._439:\n"
+ " mov r0, r8\n"
+ " mov r1, r9\n"
+ " bl sub_80451A0\n"
+ "._440:\n"
+ " cmp r7, #0x9\n"
+ " beq ._441 @cond_branch\n"
+ " cmp r7, #0\n"
+ " bne ._442 @cond_branch\n"
+ "._441:\n"
+ " mov r0, r8\n"
+ " bl draw_status_ailment_maybe\n"
+ "._442:\n"
+ " add sp, sp, #0x8\n"
+ " pop {r3, r4, r5}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " mov sl, r5\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._444:\n"
+ " .align 2, 0\n"
+ "._443:\n"
+ " .word gUnknown_020297ED\n"
+ "\n"
+ );
+}
+#else
void sub_8045A5C(u8 a, struct Pokemon *pkmn, u8 c)
{
u8 r10;
@@ -2766,6 +3418,7 @@ void sub_8045A5C(u8 a, struct Pokemon *pkmn, u8 c)
draw_status_ailment_maybe(a);
}
}
+#endif
s32 sub_8045C78(u8 a, u8 unused1, u8 c, u8 unused2)
{