summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-09-08 14:59:40 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2020-09-08 15:00:41 -0400
commita0fbb82a7c6412a38e35dcf3d30c724b3db3ad31 (patch)
treeb5d2a581465ae63f6446022253c19e43d7c545a7 /src
parent6c5a10767fd84d815dafef90f74db54241cc4293 (diff)
Match sub_8159AB8
Diffstat (limited to 'src')
-rw-r--r--src/battle_controller_pokedude.c135
1 files changed, 15 insertions, 120 deletions
diff --git a/src/battle_controller_pokedude.c b/src/battle_controller_pokedude.c
index c8a4b0286..2e55c5bfa 100644
--- a/src/battle_controller_pokedude.c
+++ b/src/battle_controller_pokedude.c
@@ -2434,133 +2434,28 @@ static void sub_8159998(void)
}
}
-#ifdef NONMATCHING
static bool8 sub_8159AB8(void)
{
const struct Unk_84790E8 *r6 = gUnknown_8479198[gBattleStruct->field_96];
- // why is address of unk_2 loaded first?
- const struct Unk_84790E8 *r12 = (const struct Unk_84790E8 *)gBattleBufferA[gActiveBattler];
+ const u16 * r12 = (const u16 *)&gBattleBufferA[gActiveBattler][2];
- if (r12->unk_0 == r6[gBattleStruct->field_97].unk_0
- && gActiveBattler == r6[gBattleStruct->field_97].unk_1
- && (r12->unk_0 != 16 || r6[gBattleStruct->field_97].unk_2 == r12->unk_2))
+ if (gBattleBufferA[gActiveBattler][0] != r6[gBattleStruct->field_97].unk_0)
+ return FALSE;
+ if (gActiveBattler != r6[gBattleStruct->field_97].unk_1)
+ return FALSE;
+ if (gBattleBufferA[gActiveBattler][0] == 16 && r6[gBattleStruct->field_97].unk_2 != *r12)
+ return FALSE;
+ if (r6[gBattleStruct->field_97].unk_4 == NULL)
{
- // why is mem reloaded here?
- // asm("":::"memory");
- if (r6[gBattleStruct->field_97].unk_4 != NULL)
- {
- gBattlerControllerFuncs[gActiveBattler] = r6[gBattleStruct->field_97].unk_4;
- gUnknown_3005EE0[gActiveBattler][2] = 0;
- gUnknown_3005EE0[gActiveBattler][3] = r6[gBattleStruct->field_97].unk_2;
- ++gBattleStruct->field_97;
- return TRUE;
- }
- ++gBattleStruct->field_97;
+ gBattleStruct->field_97++;
+ return FALSE;
}
- return FALSE;
+ gBattlerControllerFuncs[gActiveBattler] = r6[gBattleStruct->field_97].unk_4;
+ gUnknown_3005EE0[gActiveBattler][2] = 0;
+ gUnknown_3005EE0[gActiveBattler][3] = r6[gBattleStruct->field_97].unk_2;
+ gBattleStruct->field_97++;
+ return TRUE;
}
-#else
-NAKED
-static bool8 sub_8159AB8(void)
-{
- asm_unified("\n\
- push {r4-r7,lr}\n\
- ldr r1, _08159B54 @ =gUnknown_8479198\n\
- ldr r4, _08159B58 @ =gBattleStruct\n\
- ldr r2, [r4]\n\
- adds r0, r2, 0\n\
- adds r0, 0x96\n\
- ldrb r0, [r0]\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldr r6, [r0]\n\
- ldr r3, _08159B5C @ =gActiveBattler\n\
- ldrb r5, [r3]\n\
- lsls r1, r5, 9\n\
- ldr r0, _08159B60 @ =gBattleBufferA + 2\n\
- adds r7, r1, r0\n\
- mov r12, r7\n\
- subs r0, 0x2\n\
- adds r1, r0\n\
- adds r2, 0x97\n\
- ldrb r0, [r2]\n\
- lsls r0, 3\n\
- adds r0, r6\n\
- ldrb r1, [r1]\n\
- adds r7, r4, 0\n\
- adds r4, r3, 0\n\
- ldrb r2, [r0]\n\
- cmp r1, r2\n\
- bne _08159B70\n\
- ldrb r2, [r0, 0x1]\n\
- cmp r5, r2\n\
- bne _08159B70\n\
- cmp r1, 0x10\n\
- bne _08159B04\n\
- ldrh r0, [r0, 0x2]\n\
- mov r1, r12\n\
- ldrh r1, [r1]\n\
- cmp r0, r1\n\
- bne _08159B70\n\
- _08159B04:\n\
- ldr r0, [r7]\n\
- adds r3, r0, 0\n\
- adds r3, 0x97\n\
- ldrb r1, [r3]\n\
- lsls r0, r1, 3\n\
- adds r0, r6\n\
- ldr r2, [r0, 0x4]\n\
- cmp r2, 0\n\
- beq _08159B6C\n\
- ldr r1, _08159B64 @ =gBattlerControllerFuncs\n\
- ldrb r0, [r4]\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- str r2, [r0]\n\
- ldr r2, _08159B68 @ =gUnknown_3005EE0\n\
- ldrb r0, [r4]\n\
- lsls r0, 2\n\
- adds r0, r2\n\
- ldr r1, [r0]\n\
- movs r0, 0\n\
- strb r0, [r1, 0x2]\n\
- ldrb r0, [r4]\n\
- lsls r0, 2\n\
- adds r0, r2\n\
- ldr r1, [r0]\n\
- ldr r0, [r7]\n\
- adds r0, 0x97\n\
- ldrb r0, [r0]\n\
- lsls r0, 3\n\
- adds r0, r6\n\
- ldrh r0, [r0, 0x2]\n\
- strb r0, [r1, 0x3]\n\
- ldr r1, [r7]\n\
- adds r1, 0x97\n\
- ldrb r0, [r1]\n\
- adds r0, 0x1\n\
- strb r0, [r1]\n\
- movs r0, 0x1\n\
- b _08159B72\n\
- .align 2, 0\n\
- _08159B54: .4byte gUnknown_8479198\n\
- _08159B58: .4byte gBattleStruct\n\
- _08159B5C: .4byte gActiveBattler\n\
- _08159B60: .4byte gBattleBufferA + 2\n\
- _08159B64: .4byte gBattlerControllerFuncs\n\
- _08159B68: .4byte gUnknown_3005EE0\n\
- _08159B6C:\n\
- adds r0, r1, 0x1\n\
- strb r0, [r3]\n\
- _08159B70:\n\
- movs r0, 0\n\
- _08159B72:\n\
- pop {r4-r7}\n\
- pop {r1}\n\
- bx r1\n\
- ");
-}
-#endif
static void sub_8159B78(void)
{