diff options
author | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2016-11-14 22:28:20 -0500 |
---|---|---|
committer | YamaArashi <YamaArashi@users.noreply.github.com> | 2016-11-14 19:28:20 -0800 |
commit | a07e8aa2f473ffe4217e0d48c20c14c67b9e9d99 (patch) | |
tree | cbf6e3e9bb51a3495df47a93ebb8dbb0bf744e4d /asm/battle_ai.s | |
parent | c293f7966e4e991e404631dd445d29ce1f43542b (diff) |
Start decompiling battle_ai.c cmd functions (#100)
* begin decompiling battle AI macros
* decompile more battle AI macros
* nonmatching function
* decompile BattleAICmd_get_ability
* current nonmatching work
* get BattleAICmd_unk_30 a bit closer
* get battle_ai.c into a mergable state.
Diffstat (limited to 'asm/battle_ai.s')
-rw-r--r-- | asm/battle_ai.s | 2943 |
1 files changed, 95 insertions, 2848 deletions
diff --git a/asm/battle_ai.s b/asm/battle_ai.s index 3efe87815..78e928ac7 100644 --- a/asm/battle_ai.s +++ b/asm/battle_ai.s @@ -5,2760 +5,7 @@ .syntax unified .text - - thumb_func_start BattleAICmd_if_random -BattleAICmd_if_random: @ 810752C - push {lr} - bl Random - lsls r0, 16 - movs r1, 0xFF - lsls r1, 16 - ldr r3, _08107560 @ =gUnknown_02039238 - ldr r2, [r3] - ands r1, r0 - lsrs r1, 16 - ldrb r0, [r2, 0x1] - cmp r1, r0 - bcs _08107564 - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08107568 - .align 2, 0 -_08107560: .4byte gUnknown_02039238 -_08107564: - adds r0, r2, 0x6 - str r0, [r3] -_08107568: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_random - - thumb_func_start BattleAICmd_if_not_random -BattleAICmd_if_not_random: @ 810756C - push {lr} - bl Random - lsls r0, 16 - movs r1, 0xFF - lsls r1, 16 - ldr r3, _081075A0 @ =gUnknown_02039238 - ldr r2, [r3] - ands r1, r0 - lsrs r1, 16 - ldrb r0, [r2, 0x1] - cmp r1, r0 - bls _081075A4 - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081075A8 - .align 2, 0 -_081075A0: .4byte gUnknown_02039238 -_081075A4: - adds r0, r2, 0x6 - str r0, [r3] -_081075A8: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_not_random - - thumb_func_start BattleAICmd_if_random_1 -BattleAICmd_if_random_1: @ 81075AC - push {lr} - bl Random - lsls r0, 16 - movs r1, 0xFF - lsls r1, 16 - ldr r3, _081075E0 @ =gUnknown_02039238 - ldr r2, [r3] - ands r1, r0 - lsrs r1, 16 - ldrb r0, [r2, 0x1] - cmp r1, r0 - bne _081075E4 - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081075E8 - .align 2, 0 -_081075E0: .4byte gUnknown_02039238 -_081075E4: - adds r0, r2, 0x6 - str r0, [r3] -_081075E8: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_random_1 - - thumb_func_start BattleAICmd_if_not_random_1 -BattleAICmd_if_not_random_1: @ 81075EC - push {lr} - bl Random - lsls r0, 16 - movs r1, 0xFF - lsls r1, 16 - ldr r3, _08107620 @ =gUnknown_02039238 - ldr r2, [r3] - ands r1, r0 - lsrs r1, 16 - ldrb r0, [r2, 0x1] - cmp r1, r0 - beq _08107624 - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08107628 - .align 2, 0 -_08107620: .4byte gUnknown_02039238 -_08107624: - adds r0, r2, 0x6 - str r0, [r3] -_08107628: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_not_random_1 - - thumb_func_start BattleAICmd_score -BattleAICmd_score: @ 810762C - push {r4,r5,lr} - ldr r2, _08107660 @ =0x02016800 - ldrb r1, [r2, 0x1] - adds r3, r2, 0x4 - adds r1, r3 - ldr r4, _08107664 @ =gUnknown_02039238 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - ldrb r5, [r1] - adds r0, r5 - strb r0, [r1] - ldrb r0, [r2, 0x1] - adds r1, r0, r3 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - bge _08107652 - movs r0, 0 - strb r0, [r1] -_08107652: - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08107660: .4byte 0x02016800 -_08107664: .4byte gUnknown_02039238 - thumb_func_end BattleAICmd_score - - thumb_func_start BattleAICmd_if_hp_less_than -BattleAICmd_if_hp_less_than: @ 8107668 - push {r4,lr} - ldr r0, _0810767C @ =gUnknown_02039238 - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r4, r0, 0 - cmp r1, 0x1 - bne _08107684 - ldr r0, _08107680 @ =gUnknown_02024C07 - b _08107686 - .align 2, 0 -_0810767C: .4byte gUnknown_02039238 -_08107680: .4byte gUnknown_02024C07 -_08107684: - ldr r0, _081076BC @ =gUnknown_02024C08 -_08107686: - ldrb r1, [r0] - ldr r2, _081076C0 @ =gBattleMons - movs r0, 0x58 - muls r1, r0 - adds r1, r2 - ldrh r2, [r1, 0x28] - movs r0, 0x64 - muls r0, r2 - ldrh r1, [r1, 0x2C] - bl __divsi3 - ldr r2, [r4] - ldrb r1, [r2, 0x2] - cmp r0, r1 - bcs _081076C4 - ldrb r1, [r2, 0x3] - ldrb r0, [r2, 0x4] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x6] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _081076C8 - .align 2, 0 -_081076BC: .4byte gUnknown_02024C08 -_081076C0: .4byte gBattleMons -_081076C4: - adds r0, r2, 0x7 - str r0, [r4] -_081076C8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_hp_less_than - - thumb_func_start BattleAICmd_if_hp_more_than -BattleAICmd_if_hp_more_than: @ 81076D0 - push {r4,lr} - ldr r0, _081076E4 @ =gUnknown_02039238 - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r4, r0, 0 - cmp r1, 0x1 - bne _081076EC - ldr r0, _081076E8 @ =gUnknown_02024C07 - b _081076EE - .align 2, 0 -_081076E4: .4byte gUnknown_02039238 -_081076E8: .4byte gUnknown_02024C07 -_081076EC: - ldr r0, _08107724 @ =gUnknown_02024C08 -_081076EE: - ldrb r1, [r0] - ldr r2, _08107728 @ =gBattleMons - movs r0, 0x58 - muls r1, r0 - adds r1, r2 - ldrh r2, [r1, 0x28] - movs r0, 0x64 - muls r0, r2 - ldrh r1, [r1, 0x2C] - bl __divsi3 - ldr r2, [r4] - ldrb r1, [r2, 0x2] - cmp r0, r1 - bls _0810772C - ldrb r1, [r2, 0x3] - ldrb r0, [r2, 0x4] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x6] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08107730 - .align 2, 0 -_08107724: .4byte gUnknown_02024C08 -_08107728: .4byte gBattleMons -_0810772C: - adds r0, r2, 0x7 - str r0, [r4] -_08107730: - pop {r4} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_hp_more_than - - thumb_func_start BattleAICmd_if_hp_equal -BattleAICmd_if_hp_equal: @ 8107738 - push {r4,lr} - ldr r0, _0810774C @ =gUnknown_02039238 - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r4, r0, 0 - cmp r1, 0x1 - bne _08107754 - ldr r0, _08107750 @ =gUnknown_02024C07 - b _08107756 - .align 2, 0 -_0810774C: .4byte gUnknown_02039238 -_08107750: .4byte gUnknown_02024C07 -_08107754: - ldr r0, _0810778C @ =gUnknown_02024C08 -_08107756: - ldrb r1, [r0] - ldr r2, _08107790 @ =gBattleMons - movs r0, 0x58 - muls r1, r0 - adds r1, r2 - ldrh r2, [r1, 0x28] - movs r0, 0x64 - muls r0, r2 - ldrh r1, [r1, 0x2C] - bl __divsi3 - ldr r2, [r4] - ldrb r1, [r2, 0x2] - cmp r0, r1 - bne _08107794 - ldrb r1, [r2, 0x3] - ldrb r0, [r2, 0x4] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x6] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08107798 - .align 2, 0 -_0810778C: .4byte gUnknown_02024C08 -_08107790: .4byte gBattleMons -_08107794: - adds r0, r2, 0x7 - str r0, [r4] -_08107798: - pop {r4} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_hp_equal - - thumb_func_start BattleAICmd_if_hp_not_equal -BattleAICmd_if_hp_not_equal: @ 81077A0 - push {r4,lr} - ldr r0, _081077B4 @ =gUnknown_02039238 - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r4, r0, 0 - cmp r1, 0x1 - bne _081077BC - ldr r0, _081077B8 @ =gUnknown_02024C07 - b _081077BE - .align 2, 0 -_081077B4: .4byte gUnknown_02039238 -_081077B8: .4byte gUnknown_02024C07 -_081077BC: - ldr r0, _081077F4 @ =gUnknown_02024C08 -_081077BE: - ldrb r1, [r0] - ldr r2, _081077F8 @ =gBattleMons - movs r0, 0x58 - muls r1, r0 - adds r1, r2 - ldrh r2, [r1, 0x28] - movs r0, 0x64 - muls r0, r2 - ldrh r1, [r1, 0x2C] - bl __divsi3 - ldr r2, [r4] - ldrb r1, [r2, 0x2] - cmp r0, r1 - beq _081077FC - ldrb r1, [r2, 0x3] - ldrb r0, [r2, 0x4] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x6] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08107800 - .align 2, 0 -_081077F4: .4byte gUnknown_02024C08 -_081077F8: .4byte gBattleMons -_081077FC: - adds r0, r2, 0x7 - str r0, [r4] -_08107800: - pop {r4} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_hp_not_equal - - thumb_func_start BattleAICmd_if_status -BattleAICmd_if_status: @ 8107808 - push {r4,r5,lr} - ldr r0, _0810781C @ =gUnknown_02039238 - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r5, r0, 0 - cmp r1, 0x1 - bne _08107824 - ldr r0, _08107820 @ =gUnknown_02024C07 - b _08107826 - .align 2, 0 -_0810781C: .4byte gUnknown_02039238 -_08107820: .4byte gUnknown_02024C07 -_08107824: - ldr r0, _08107868 @ =gUnknown_02024C08 -_08107826: - ldrb r4, [r0] - ldr r3, [r5] - ldrb r2, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r2, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r2, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r2, r0 - ldr r1, _0810786C @ =gBattleMons - movs r0, 0x58 - muls r0, r4 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - ands r0, r2 - cmp r0, 0 - beq _08107870 - ldrb r1, [r3, 0x6] - ldrb r0, [r3, 0x7] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x8] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x9] - lsls r0, 24 - orrs r1, r0 - str r1, [r5] - b _08107876 - .align 2, 0 -_08107868: .4byte gUnknown_02024C08 -_0810786C: .4byte gBattleMons -_08107870: - adds r0, r3, 0 - adds r0, 0xA - str r0, [r5] -_08107876: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_status - - thumb_func_start BattleAICmd_if_not_status -BattleAICmd_if_not_status: @ 810787C - push {r4,r5,lr} - ldr r0, _08107890 @ =gUnknown_02039238 - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r5, r0, 0 - cmp r1, 0x1 - bne _08107898 - ldr r0, _08107894 @ =gUnknown_02024C07 - b _0810789A - .align 2, 0 -_08107890: .4byte gUnknown_02039238 -_08107894: .4byte gUnknown_02024C07 -_08107898: - ldr r0, _081078DC @ =gUnknown_02024C08 -_0810789A: - ldrb r4, [r0] - ldr r3, [r5] - ldrb r2, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r2, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r2, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r2, r0 - ldr r1, _081078E0 @ =gBattleMons - movs r0, 0x58 - muls r0, r4 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - ands r0, r2 - cmp r0, 0 - bne _081078E4 - ldrb r1, [r3, 0x6] - ldrb r0, [r3, 0x7] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x8] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x9] - lsls r0, 24 - orrs r1, r0 - str r1, [r5] - b _081078EA - .align 2, 0 -_081078DC: .4byte gUnknown_02024C08 -_081078E0: .4byte gBattleMons -_081078E4: - adds r0, r3, 0 - adds r0, 0xA - str r0, [r5] -_081078EA: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_not_status - - thumb_func_start BattleAICmd_if_status2 -BattleAICmd_if_status2: @ 81078F0 - push {r4,r5,lr} - ldr r0, _08107904 @ =gUnknown_02039238 - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r5, r0, 0 - cmp r1, 0x1 - bne _0810790C - ldr r0, _08107908 @ =gUnknown_02024C07 - b _0810790E - .align 2, 0 -_08107904: .4byte gUnknown_02039238 -_08107908: .4byte gUnknown_02024C07 -_0810790C: - ldr r0, _08107950 @ =gUnknown_02024C08 -_0810790E: - ldrb r4, [r0] - ldr r3, [r5] - ldrb r2, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r2, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r2, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r2, r0 - ldr r1, _08107954 @ =gBattleMons - movs r0, 0x58 - muls r0, r4 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - ands r0, r2 - cmp r0, 0 - beq _08107958 - ldrb r1, [r3, 0x6] - ldrb r0, [r3, 0x7] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x8] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x9] - lsls r0, 24 - orrs r1, r0 - str r1, [r5] - b _0810795E - .align 2, 0 -_08107950: .4byte gUnknown_02024C08 -_08107954: .4byte gBattleMons -_08107958: - adds r0, r3, 0 - adds r0, 0xA - str r0, [r5] -_0810795E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_status2 - - thumb_func_start BattleAICmd_if_not_status2 -BattleAICmd_if_not_status2: @ 8107964 - push {r4,r5,lr} - ldr r0, _08107978 @ =gUnknown_02039238 - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r5, r0, 0 - cmp r1, 0x1 - bne _08107980 - ldr r0, _0810797C @ =gUnknown_02024C07 - b _08107982 - .align 2, 0 -_08107978: .4byte gUnknown_02039238 -_0810797C: .4byte gUnknown_02024C07 -_08107980: - ldr r0, _081079C4 @ =gUnknown_02024C08 -_08107982: - ldrb r4, [r0] - ldr r3, [r5] - ldrb r2, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r2, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r2, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r2, r0 - ldr r1, _081079C8 @ =gBattleMons - movs r0, 0x58 - muls r0, r4 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - ands r0, r2 - cmp r0, 0 - bne _081079CC - ldrb r1, [r3, 0x6] - ldrb r0, [r3, 0x7] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x8] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x9] - lsls r0, 24 - orrs r1, r0 - str r1, [r5] - b _081079D2 - .align 2, 0 -_081079C4: .4byte gUnknown_02024C08 -_081079C8: .4byte gBattleMons -_081079CC: - adds r0, r3, 0 - adds r0, 0xA - str r0, [r5] -_081079D2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_not_status2 - - thumb_func_start BattleAICmd_if_status3 -BattleAICmd_if_status3: @ 81079D8 - push {r4,r5,lr} - ldr r0, _081079EC @ =gUnknown_02039238 - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r5, r0, 0 - cmp r1, 0x1 - bne _081079F4 - ldr r0, _081079F0 @ =gUnknown_02024C07 - b _081079F6 - .align 2, 0 -_081079EC: .4byte gUnknown_02039238 -_081079F0: .4byte gUnknown_02024C07 -_081079F4: - ldr r0, _08107A34 @ =gUnknown_02024C08 -_081079F6: - ldrb r4, [r0] - ldr r3, [r5] - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - ldr r2, _08107A38 @ =gUnknown_02024C98 - lsls r0, r4, 2 - adds r0, r2 - ldr r0, [r0] - ands r0, r1 - cmp r0, 0 - beq _08107A3C - ldrb r1, [r3, 0x6] - ldrb r0, [r3, 0x7] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x8] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x9] - lsls r0, 24 - orrs r1, r0 - str r1, [r5] - b _08107A42 - .align 2, 0 -_08107A34: .4byte gUnknown_02024C08 -_08107A38: .4byte gUnknown_02024C98 -_08107A3C: - adds r0, r3, 0 - adds r0, 0xA - str r0, [r5] -_08107A42: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_status3 - - thumb_func_start BattleAICmd_if_not_status3 -BattleAICmd_if_not_status3: @ 8107A48 - push {r4,r5,lr} - ldr r0, _08107A5C @ =gUnknown_02039238 - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r5, r0, 0 - cmp r1, 0x1 - bne _08107A64 - ldr r0, _08107A60 @ =gUnknown_02024C07 - b _08107A66 - .align 2, 0 -_08107A5C: .4byte gUnknown_02039238 -_08107A60: .4byte gUnknown_02024C07 -_08107A64: - ldr r0, _08107AA4 @ =gUnknown_02024C08 -_08107A66: - ldrb r4, [r0] - ldr r3, [r5] - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - ldr r2, _08107AA8 @ =gUnknown_02024C98 - lsls r0, r4, 2 - adds r0, r2 - ldr r0, [r0] - ands r0, r1 - cmp r0, 0 - bne _08107AAC - ldrb r1, [r3, 0x6] - ldrb r0, [r3, 0x7] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x8] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x9] - lsls r0, 24 - orrs r1, r0 - str r1, [r5] - b _08107AB2 - .align 2, 0 -_08107AA4: .4byte gUnknown_02024C08 -_08107AA8: .4byte gUnknown_02024C98 -_08107AAC: - adds r0, r3, 0 - adds r0, 0xA - str r0, [r5] -_08107AB2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_not_status3 - - thumb_func_start BattleAICmd_if_status4 -BattleAICmd_if_status4: @ 8107AB8 - push {r4,lr} - ldr r0, _08107AC8 @ =gUnknown_02039238 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x1 - bne _08107AD0 - ldr r0, _08107ACC @ =gUnknown_02024C07 - b _08107AD2 - .align 2, 0 -_08107AC8: .4byte gUnknown_02039238 -_08107ACC: .4byte gUnknown_02024C07 -_08107AD0: - ldr r0, _08107B1C @ =gUnknown_02024C08 -_08107AD2: - ldrb r0, [r0] - bl battle_get_per_side_status - movs r2, 0x1 - ands r2, r0 - ldr r4, _08107B20 @ =gUnknown_02039238 - ldr r3, [r4] - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - ldr r0, _08107B24 @ =gUnknown_02024C7A - lsls r2, 1 - adds r2, r0 - ldrh r0, [r2] - ands r0, r1 - cmp r0, 0 - beq _08107B28 - ldrb r1, [r3, 0x6] - ldrb r0, [r3, 0x7] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x8] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x9] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08107B2E - .align 2, 0 -_08107B1C: .4byte gUnknown_02024C08 -_08107B20: .4byte gUnknown_02039238 -_08107B24: .4byte gUnknown_02024C7A -_08107B28: - adds r0, r3, 0 - adds r0, 0xA - str r0, [r4] -_08107B2E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_status4 - - thumb_func_start BattleAICmd_if_not_status4 -BattleAICmd_if_not_status4: @ 8107B34 - push {r4,lr} - ldr r0, _08107B44 @ =gUnknown_02039238 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x1 - bne _08107B4C - ldr r0, _08107B48 @ =gUnknown_02024C07 - b _08107B4E - .align 2, 0 -_08107B44: .4byte gUnknown_02039238 -_08107B48: .4byte gUnknown_02024C07 -_08107B4C: - ldr r0, _08107B98 @ =gUnknown_02024C08 -_08107B4E: - ldrb r0, [r0] - bl battle_get_per_side_status - movs r2, 0x1 - ands r2, r0 - ldr r4, _08107B9C @ =gUnknown_02039238 - ldr r3, [r4] - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - ldr r0, _08107BA0 @ =gUnknown_02024C7A - lsls r2, 1 - adds r2, r0 - ldrh r0, [r2] - ands r0, r1 - cmp r0, 0 - bne _08107BA4 - ldrb r1, [r3, 0x6] - ldrb r0, [r3, 0x7] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x8] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x9] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08107BAA - .align 2, 0 -_08107B98: .4byte gUnknown_02024C08 -_08107B9C: .4byte gUnknown_02039238 -_08107BA0: .4byte gUnknown_02024C7A -_08107BA4: - adds r0, r3, 0 - adds r0, 0xA - str r0, [r4] -_08107BAA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_not_status4 - - thumb_func_start BattleAICmd_if_less_than -BattleAICmd_if_less_than: @ 8107BB0 - push {lr} - ldr r0, _08107BD8 @ =0x02016800 - ldr r3, _08107BDC @ =gUnknown_02039238 - ldr r2, [r3] - ldr r0, [r0, 0x8] - ldrb r1, [r2, 0x1] - cmp r0, r1 - bcs _08107BE0 - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08107BE4 - .align 2, 0 -_08107BD8: .4byte 0x02016800 -_08107BDC: .4byte gUnknown_02039238 -_08107BE0: - adds r0, r2, 0x6 - str r0, [r3] -_08107BE4: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_less_than - - thumb_func_start BattleAICmd_if_more_than -BattleAICmd_if_more_than: @ 8107BE8 - push {lr} - ldr r0, _08107C10 @ =0x02016800 - ldr r3, _08107C14 @ =gUnknown_02039238 - ldr r2, [r3] - ldr r0, [r0, 0x8] - ldrb r1, [r2, 0x1] - cmp r0, r1 - bls _08107C18 - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08107C1C - .align 2, 0 -_08107C10: .4byte 0x02016800 -_08107C14: .4byte gUnknown_02039238 -_08107C18: - adds r0, r2, 0x6 - str r0, [r3] -_08107C1C: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_more_than - - thumb_func_start BattleAICmd_if_equal -BattleAICmd_if_equal: @ 8107C20 - push {lr} - ldr r0, _08107C48 @ =0x02016800 - ldr r3, _08107C4C @ =gUnknown_02039238 - ldr r2, [r3] - ldr r0, [r0, 0x8] - ldrb r1, [r2, 0x1] - cmp r0, r1 - bne _08107C50 - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08107C54 - .align 2, 0 -_08107C48: .4byte 0x02016800 -_08107C4C: .4byte gUnknown_02039238 -_08107C50: - adds r0, r2, 0x6 - str r0, [r3] -_08107C54: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_equal - - thumb_func_start BattleAICmd_if_not_equal -BattleAICmd_if_not_equal: @ 8107C58 - push {lr} - ldr r0, _08107C80 @ =0x02016800 - ldr r3, _08107C84 @ =gUnknown_02039238 - ldr r2, [r3] - ldr r0, [r0, 0x8] - ldrb r1, [r2, 0x1] - cmp r0, r1 - beq _08107C88 - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08107C8C - .align 2, 0 -_08107C80: .4byte 0x02016800 -_08107C84: .4byte gUnknown_02039238 -_08107C88: - adds r0, r2, 0x6 - str r0, [r3] -_08107C8C: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_not_equal - - thumb_func_start BattleAICmd_if_less_than_32 -BattleAICmd_if_less_than_32: @ 8107C90 - push {lr} - ldr r3, _08107CCC @ =gUnknown_02039238 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - ldr r0, _08107CD0 @ =0x02016800 - ldr r0, [r0, 0x8] - ldrb r1, [r1] - cmp r0, r1 - bcs _08107CD4 - ldrb r1, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08107CDA - .align 2, 0 -_08107CCC: .4byte gUnknown_02039238 -_08107CD0: .4byte 0x02016800 -_08107CD4: - adds r0, r2, 0 - adds r0, 0x9 - str r0, [r3] -_08107CDA: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_less_than_32 - - thumb_func_start BattleAICmd_if_more_than_32 -BattleAICmd_if_more_than_32: @ 8107CE0 - push {lr} - ldr r3, _08107D1C @ =gUnknown_02039238 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - ldr r0, _08107D20 @ =0x02016800 - ldr r0, [r0, 0x8] - ldrb r1, [r1] - cmp r0, r1 - bls _08107D24 - ldrb r1, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08107D2A - .align 2, 0 -_08107D1C: .4byte gUnknown_02039238 -_08107D20: .4byte 0x02016800 -_08107D24: - adds r0, r2, 0 - adds r0, 0x9 - str r0, [r3] -_08107D2A: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_more_than_32 - - thumb_func_start BattleAICmd_if_equal_32 -BattleAICmd_if_equal_32: @ 8107D30 - push {lr} - ldr r3, _08107D6C @ =gUnknown_02039238 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - ldr r0, _08107D70 @ =0x02016800 - ldr r0, [r0, 0x8] - ldrb r1, [r1] - cmp r0, r1 - bne _08107D74 - ldrb r1, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08107D7A - .align 2, 0 -_08107D6C: .4byte gUnknown_02039238 -_08107D70: .4byte 0x02016800 -_08107D74: - adds r0, r2, 0 - adds r0, 0x9 - str r0, [r3] -_08107D7A: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_equal_32 - - thumb_func_start BattleAICmd_if_not_equal_32 -BattleAICmd_if_not_equal_32: @ 8107D80 - push {lr} - ldr r3, _08107DBC @ =gUnknown_02039238 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - ldr r0, _08107DC0 @ =0x02016800 - ldr r0, [r0, 0x8] - ldrb r1, [r1] - cmp r0, r1 - beq _08107DC4 - ldrb r1, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08107DCA - .align 2, 0 -_08107DBC: .4byte gUnknown_02039238 -_08107DC0: .4byte 0x02016800 -_08107DC4: - adds r0, r2, 0 - adds r0, 0x9 - str r0, [r3] -_08107DCA: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_not_equal_32 - - thumb_func_start BattleAICmd_if_move -BattleAICmd_if_move: @ 8107DD0 - push {lr} - ldr r3, _08107E00 @ =gUnknown_02039238 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldr r0, _08107E04 @ =0x02016800 - ldrh r0, [r0, 0x2] - cmp r0, r1 - bne _08107E08 - ldrb r1, [r2, 0x3] - ldrb r0, [r2, 0x4] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x6] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08107E0C - .align 2, 0 -_08107E00: .4byte gUnknown_02039238 -_08107E04: .4byte 0x02016800 -_08107E08: - adds r0, r2, 0x7 - str r0, [r3] -_08107E0C: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_move - - thumb_func_start BattleAICmd_if_not_move -BattleAICmd_if_not_move: @ 8107E10 - push {lr} - ldr r3, _08107E40 @ =gUnknown_02039238 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldr r0, _08107E44 @ =0x02016800 - ldrh r0, [r0, 0x2] - cmp r0, r1 - beq _08107E48 - ldrb r1, [r2, 0x3] - ldrb r0, [r2, 0x4] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x6] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08107E4C - .align 2, 0 -_08107E40: .4byte gUnknown_02039238 -_08107E44: .4byte 0x02016800 -_08107E48: - adds r0, r2, 0x7 - str r0, [r3] -_08107E4C: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_not_move - - thumb_func_start BattleAICmd_if_in_bytes -BattleAICmd_if_in_bytes: @ 8107E50 - push {r4,lr} - ldr r2, _08107E98 @ =gUnknown_02039238 - ldr r1, [r2] - ldrb r3, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - orrs r3, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - orrs r3, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - orrs r3, r0 - ldrb r0, [r3] - cmp r0, 0xFF - beq _08107EA8 - ldr r0, _08107E9C @ =0x02016800 - ldr r1, [r0, 0x8] - adds r4, r2, 0 -_08107E76: - ldrb r0, [r3] - cmp r1, r0 - bne _08107EA0 - ldr r2, [r4] - ldrb r1, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08107EAE - .align 2, 0 -_08107E98: .4byte gUnknown_02039238 -_08107E9C: .4byte 0x02016800 -_08107EA0: - adds r3, 0x1 - ldrb r0, [r3] - cmp r0, 0xFF - bne _08107E76 -_08107EA8: - ldr r0, [r2] - adds r0, 0x9 - str r0, [r2] -_08107EAE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_in_bytes - - thumb_func_start BattleAICmd_if_not_in_bytes -BattleAICmd_if_not_in_bytes: @ 8107EB4 - push {r4,lr} - ldr r2, _08107EEC @ =gUnknown_02039238 - ldr r1, [r2] - ldrb r3, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - orrs r3, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - orrs r3, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - orrs r3, r0 - ldrb r0, [r3] - adds r4, r2, 0 - cmp r0, 0xFF - beq _08107EFC - ldr r0, _08107EF0 @ =0x02016800 - ldr r2, [r0, 0x8] - adds r1, r4, 0 -_08107EDC: - ldrb r0, [r3] - cmp r2, r0 - bne _08107EF4 - ldr r0, [r1] - adds r0, 0x9 - str r0, [r1] - b _08107F14 - .align 2, 0 -_08107EEC: .4byte gUnknown_02039238 -_08107EF0: .4byte 0x02016800 -_08107EF4: - adds r3, 0x1 - ldrb r0, [r3] - cmp r0, 0xFF - bne _08107EDC -_08107EFC: - ldr r2, [r4] - ldrb r1, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] -_08107F14: - pop {r4} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_not_in_bytes - - thumb_func_start BattleAICmd_if_in_words -BattleAICmd_if_in_words: @ 8107F1C - push {r4,r5,lr} - ldr r2, _08107F64 @ =gUnknown_02039238 - ldr r1, [r2] - ldrb r3, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - orrs r3, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - orrs r3, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - orrs r3, r0 - ldrh r0, [r3] - ldr r5, _08107F68 @ =0x0000ffff - cmp r0, r5 - beq _08107F78 - ldr r0, _08107F6C @ =0x02016800 - ldr r1, [r0, 0x8] - adds r4, r2, 0 -_08107F44: - ldrh r0, [r3] - cmp r1, r0 - bne _08107F70 - ldr r2, [r4] - ldrb r1, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08107F7E - .align 2, 0 -_08107F64: .4byte gUnknown_02039238 -_08107F68: .4byte 0x0000ffff -_08107F6C: .4byte 0x02016800 -_08107F70: - adds r3, 0x2 - ldrh r0, [r3] - cmp r0, r5 - bne _08107F44 -_08107F78: - ldr r0, [r2] - adds r0, 0x9 - str r0, [r2] -_08107F7E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_in_words - - thumb_func_start BattleAICmd_if_not_in_words -BattleAICmd_if_not_in_words: @ 8107F84 - push {r4,r5,lr} - ldr r2, _08107FBC @ =gUnknown_02039238 - ldr r1, [r2] - ldrb r3, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - orrs r3, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - orrs r3, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - orrs r3, r0 - ldrh r0, [r3] - ldr r4, _08107FC0 @ =0x0000ffff - adds r5, r2, 0 - cmp r0, r4 - beq _08107FD0 - ldr r0, _08107FC4 @ =0x02016800 - ldr r2, [r0, 0x8] - adds r1, r5, 0 -_08107FAE: - ldrh r0, [r3] - cmp r2, r0 - bne _08107FC8 - ldr r0, [r1] - adds r0, 0x9 - str r0, [r1] - b _08107FE8 - .align 2, 0 -_08107FBC: .4byte gUnknown_02039238 -_08107FC0: .4byte 0x0000ffff -_08107FC4: .4byte 0x02016800 -_08107FC8: - adds r3, 0x2 - ldrh r0, [r3] - cmp r0, r4 - bne _08107FAE -_08107FD0: - ldr r2, [r5] - ldrb r1, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 24 - orrs r1, r0 - str r1, [r5] -_08107FE8: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_not_in_words - - thumb_func_start BattleAICmd_if_user_can_damage -BattleAICmd_if_user_can_damage: @ 8107FF0 - push {r4,r5,lr} - movs r3, 0 - ldr r4, _08108030 @ =gUnknown_02039238 - ldr r1, _08108034 @ =gBattleMons - ldr r0, _08108038 @ =gUnknown_02024C07 - ldrb r2, [r0] - ldr r5, _0810803C @ =gBattleMoves - movs r0, 0x58 - muls r0, r2 - adds r1, 0xC - adds r2, r0, r1 -_08108006: - ldrh r0, [r2] - cmp r0, 0 - beq _0810801A - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _08108022 -_0810801A: - adds r2, 0x2 - adds r3, 0x1 - cmp r3, 0x3 - ble _08108006 -_08108022: - cmp r3, 0x4 - bne _08108040 - ldr r0, [r4] - adds r0, 0x5 - str r0, [r4] - b _08108058 - .align 2, 0 -_08108030: .4byte gUnknown_02039238 -_08108034: .4byte gBattleMons -_08108038: .4byte gUnknown_02024C07 -_0810803C: .4byte gBattleMoves -_08108040: - ldr r2, [r4] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] -_08108058: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_user_can_damage - - thumb_func_start BattleAICmd_if_user_cant_damage -BattleAICmd_if_user_cant_damage: @ 8108060 - push {r4,r5,lr} - movs r3, 0 - ldr r4, _081080A0 @ =gUnknown_02039238 - ldr r1, _081080A4 @ =gBattleMons - ldr r0, _081080A8 @ =gUnknown_02024C07 - ldrb r2, [r0] - ldr r5, _081080AC @ =gBattleMoves - movs r0, 0x58 - muls r0, r2 - adds r1, 0xC - adds r2, r0, r1 -_08108076: - ldrh r0, [r2] - cmp r0, 0 - beq _0810808A - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _08108092 -_0810808A: - adds r2, 0x2 - adds r3, 0x1 - cmp r3, 0x3 - ble _08108076 -_08108092: - cmp r3, 0x4 - beq _081080B0 - ldr r0, [r4] - adds r0, 0x5 - str r0, [r4] - b _081080C8 - .align 2, 0 -_081080A0: .4byte gUnknown_02039238 -_081080A4: .4byte gBattleMons -_081080A8: .4byte gUnknown_02024C07 -_081080AC: .4byte gBattleMoves -_081080B0: - ldr r2, [r4] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] -_081080C8: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_user_cant_damage - - thumb_func_start BattleAICmd_unk_21 -BattleAICmd_unk_21: @ 81080D0 - ldr r1, _081080E4 @ =0x02016800 - ldr r0, _081080E8 @ =gUnknown_030042E0 - ldrb r0, [r0, 0x13] - str r0, [r1, 0x8] - ldr r1, _081080EC @ =gUnknown_02039238 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_081080E4: .4byte 0x02016800 -_081080E8: .4byte gUnknown_030042E0 -_081080EC: .4byte gUnknown_02039238 - thumb_func_end BattleAICmd_unk_21 - - thumb_func_start BattleAICmd_get_type -BattleAICmd_get_type: @ 81080F0 - push {r4,lr} - ldr r1, _08108108 @ =gUnknown_02039238 - ldr r0, [r1] - ldrb r0, [r0, 0x1] - adds r4, r1, 0 - cmp r0, 0x4 - bhi _081081B6 - lsls r0, 2 - ldr r1, _0810810C @ =_08108110 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08108108: .4byte gUnknown_02039238 -_0810810C: .4byte _08108110 - .align 2, 0 -_08108110: - .4byte _08108144 - .4byte _08108124 - .4byte _08108184 - .4byte _08108164 - .4byte _081081A4 -_08108124: - ldr r3, _08108138 @ =0x02016800 - ldr r2, _0810813C @ =gBattleMons - ldr r0, _08108140 @ =gUnknown_02024C07 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x21 - ldrb r0, [r0] - b _081081B4 - .align 2, 0 -_08108138: .4byte 0x02016800 -_0810813C: .4byte gBattleMons -_08108140: .4byte gUnknown_02024C07 -_08108144: - ldr r3, _08108158 @ =0x02016800 - ldr r2, _0810815C @ =gBattleMons - ldr r0, _08108160 @ =gUnknown_02024C08 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x21 - ldrb r0, [r0] - b _081081B4 - .align 2, 0 -_08108158: .4byte 0x02016800 -_0810815C: .4byte gBattleMons -_08108160: .4byte gUnknown_02024C08 -_08108164: - ldr r3, _08108178 @ =0x02016800 - ldr r2, _0810817C @ =gBattleMons - ldr r0, _08108180 @ =gUnknown_02024C07 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x22 - ldrb r0, [r0] - b _081081B4 - .align 2, 0 -_08108178: .4byte 0x02016800 -_0810817C: .4byte gBattleMons -_08108180: .4byte gUnknown_02024C07 -_08108184: - ldr r3, _08108198 @ =0x02016800 - ldr r2, _0810819C @ =gBattleMons - ldr r0, _081081A0 @ =gUnknown_02024C08 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x22 - ldrb r0, [r0] - b _081081B4 - .align 2, 0 -_08108198: .4byte 0x02016800 -_0810819C: .4byte gBattleMons -_081081A0: .4byte gUnknown_02024C08 -_081081A4: - ldr r3, _081081C4 @ =0x02016800 - ldr r2, _081081C8 @ =gBattleMoves - ldrh r1, [r3, 0x2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x2] -_081081B4: - str r0, [r3, 0x8] -_081081B6: - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081081C4: .4byte 0x02016800 -_081081C8: .4byte gBattleMoves - thumb_func_end BattleAICmd_get_type - - thumb_func_start BattleAICmd_unk_23 -BattleAICmd_unk_23: @ 81081CC - ldr r3, _081081E8 @ =0x02016800 - ldr r2, _081081EC @ =gBattleMoves - ldrh r1, [r3, 0x2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - str r0, [r3, 0x8] - ldr r1, _081081F0 @ =gUnknown_02039238 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_081081E8: .4byte 0x02016800 -_081081EC: .4byte gBattleMoves -_081081F0: .4byte gUnknown_02039238 - thumb_func_end BattleAICmd_unk_23 - - thumb_func_start BattleAICmd_unk_24 -BattleAICmd_unk_24: @ 81081F4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - movs r3, 0 - ldr r0, _08108328 @ =gUnknown_083F62BC - ldrh r1, [r0] - ldr r4, _0810832C @ =0x0000ffff - ldr r6, _08108330 @ =gBattleMoves - ldr r5, _08108334 @ =0x02016800 - cmp r1, r4 - beq _0810822E - ldrh r1, [r5, 0x2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r2, [r0] - ldr r1, _08108328 @ =gUnknown_083F62BC -_0810821E: - ldrh r0, [r1] - cmp r2, r0 - beq _0810822E - adds r1, 0x2 - adds r3, 0x1 - ldrh r0, [r1] - cmp r0, r4 - bne _0810821E -_0810822E: - ldrh r0, [r5, 0x2] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1, 0x1] - cmp r0, 0x1 - bhi _08108240 - b _081083B2 -_08108240: - lsls r0, r3, 1 - ldr r1, _08108328 @ =gUnknown_083F62BC - adds r0, r1 - ldrh r3, [r0] - ldr r0, _0810832C @ =0x0000ffff - cmp r3, r0 - beq _08108250 - b _081083B2 -_08108250: - ldr r0, _08108338 @ =gUnknown_02024DEC - movs r1, 0 - strh r1, [r0] - ldr r2, _0810833C @ =0xfffff81c - adds r0, r5, r2 - strb r1, [r0] - adds r2, 0x3 - adds r0, r5, r2 - movs r2, 0x1 - strb r2, [r0] - ldr r0, _08108340 @ =gUnknown_02024C68 - strb r1, [r0] - ldr r0, _08108344 @ =gCritMultiplier - strb r2, [r0] - movs r6, 0 - mov r9, r3 - ldr r0, _08108328 @ =gUnknown_083F62BC - ldrh r0, [r0] - str r0, [sp, 0x10] -_08108276: - movs r3, 0 - ldr r5, _08108348 @ =gBattleMons - lsls r4, r6, 1 - ldr r7, _0810834C @ =gUnknown_02024C07 - lsls r1, r6, 2 - mov r8, r1 - adds r2, r6, 0x1 - mov r10, r2 - ldr r0, [sp, 0x10] - cmp r0, r9 - beq _081082BA - ldr r2, _08108330 @ =gBattleMoves - ldrb r1, [r7] - movs r0, 0x58 - muls r0, r1 - adds r0, r4, r0 - adds r1, r5, 0 - adds r1, 0xC - adds r0, r1 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r2, [r0] - ldr r1, _08108328 @ =gUnknown_083F62BC -_081082AA: - ldrh r0, [r1] - cmp r2, r0 - beq _081082BA - adds r1, 0x2 - adds r3, 0x1 - ldrh r0, [r1] - cmp r0, r9 - bne _081082AA -_081082BA: - ldrb r1, [r7] - movs r0, 0x58 - muls r0, r1 - adds r0, r4, r0 - adds r1, r5, 0 - adds r1, 0xC - adds r1, r0, r1 - ldrh r0, [r1] - cmp r0, 0 - beq _0810835C - lsls r0, r3, 1 - ldr r2, _08108328 @ =gUnknown_083F62BC - adds r0, r2 - ldrh r0, [r0] - cmp r0, r9 - bne _0810835C - ldr r0, _08108330 @ =gBattleMoves - ldrh r2, [r1] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0x1 - bls _0810835C - ldr r5, _08108350 @ =gUnknown_02024BE6 - strh r2, [r5] - ldrb r0, [r7] - ldr r4, _08108354 @ =gUnknown_02024C08 - ldrb r1, [r4] - bl sub_801CAF8 - ldrh r0, [r5] - ldrb r1, [r7] - ldrb r2, [r4] - bl move_effectiveness_something - mov r4, sp - add r4, r8 - ldr r2, _08108358 @ =gUnknown_02024BEC - ldr r0, _08108334 @ =0x02016800 - adds r0, 0x18 - adds r0, r6, r0 - ldrb r1, [r0] - ldr r0, [r2] - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - str r0, [r4] - cmp r0, 0 - bne _08108364 - movs r0, 0x1 - str r0, [r4] - b _08108364 - .align 2, 0 -_08108328: .4byte gUnknown_083F62BC -_0810832C: .4byte 0x0000ffff -_08108330: .4byte gBattleMoves -_08108334: .4byte 0x02016800 -_08108338: .4byte gUnknown_02024DEC -_0810833C: .4byte 0xfffff81c -_08108340: .4byte gUnknown_02024C68 -_08108344: .4byte gCritMultiplier -_08108348: .4byte gBattleMons -_0810834C: .4byte gUnknown_02024C07 -_08108350: .4byte gUnknown_02024BE6 -_08108354: .4byte gUnknown_02024C08 -_08108358: .4byte gUnknown_02024BEC -_0810835C: - mov r1, sp - add r1, r8 - movs r0, 0 - str r0, [r1] -_08108364: - mov r6, r10 - cmp r6, 0x3 - ble _08108276 - movs r6, 0 - ldr r1, _081083A4 @ =0x02016800 - ldrb r0, [r1, 0x1] - lsls r0, 2 - add r0, sp - ldr r2, [sp] - ldr r0, [r0] - adds r5, r1, 0 - ldr r4, _081083A8 @ =gUnknown_02039238 - cmp r2, r0 - bgt _0810839A - adds r3, r5, 0 - mov r2, sp -_08108384: - adds r2, 0x4 - adds r6, 0x1 - cmp r6, 0x3 - bgt _0810839A - ldrb r0, [r3, 0x1] - lsls r0, 2 - add r0, sp - ldr r1, [r2] - ldr r0, [r0] - cmp r1, r0 - ble _08108384 -_0810839A: - cmp r6, 0x4 - bne _081083AC - movs r0, 0x2 - str r0, [r5, 0x8] - b _081083B8 - .align 2, 0 -_081083A4: .4byte 0x02016800 -_081083A8: .4byte gUnknown_02039238 -_081083AC: - movs r0, 0x1 - str r0, [r5, 0x8] - b _081083B8 -_081083B2: - movs r0, 0 - str r0, [r5, 0x8] - ldr r4, _081083D0 @ =gUnknown_02039238 -_081083B8: - ldr r0, [r4] - adds r0, 0x1 - str r0, [r4] - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081083D0: .4byte gUnknown_02039238 - thumb_func_end BattleAICmd_unk_24 - - thumb_func_start BattleAICmd_get_move -BattleAICmd_get_move: @ 81083D4 - push {lr} - ldr r0, _081083EC @ =gUnknown_02039238 - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r3, r0, 0 - cmp r1, 0x1 - bne _081083FC - ldr r2, _081083F0 @ =0x02016800 - ldr r1, _081083F4 @ =gUnknown_02024C34 - ldr r0, _081083F8 @ =gUnknown_02024C07 - b _08108402 - .align 2, 0 -_081083EC: .4byte gUnknown_02039238 -_081083F0: .4byte 0x02016800 -_081083F4: .4byte gUnknown_02024C34 -_081083F8: .4byte gUnknown_02024C07 -_081083FC: - ldr r2, _08108418 @ =0x02016800 - ldr r1, _0810841C @ =gUnknown_02024C34 - ldr r0, _08108420 @ =gUnknown_02024C08 -_08108402: - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - str r0, [r2, 0x8] - ldr r0, [r3] - adds r0, 0x2 - str r0, [r3] - pop {r0} - bx r0 - .align 2, 0 -_08108418: .4byte 0x02016800 -_0810841C: .4byte gUnknown_02024C34 -_08108420: .4byte gUnknown_02024C08 - thumb_func_end BattleAICmd_get_move - - thumb_func_start BattleAICmd_if_type -BattleAICmd_if_type: @ 8108424 - push {lr} - ldr r3, _0810844C @ =gUnknown_02039238 - ldr r2, [r3] - ldrb r0, [r2, 0x1] - ldr r1, _08108450 @ =0x02016800 - ldr r1, [r1, 0x8] - cmp r0, r1 - bne _08108454 - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08108458 - .align 2, 0 -_0810844C: .4byte gUnknown_02039238 -_08108450: .4byte 0x02016800 -_08108454: - adds r0, r2, 0x6 - str r0, [r3] -_08108458: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_type - - thumb_func_start BattleAICmd_unk_27 -BattleAICmd_unk_27: @ 810845C - push {lr} - ldr r3, _08108484 @ =gUnknown_02039238 - ldr r2, [r3] - ldrb r0, [r2, 0x1] - ldr r1, _08108488 @ =0x02016800 - ldr r1, [r1, 0x8] - cmp r0, r1 - beq _0810848C - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08108490 - .align 2, 0 -_08108484: .4byte gUnknown_02039238 -_08108488: .4byte 0x02016800 -_0810848C: - adds r0, r2, 0x6 - str r0, [r3] -_08108490: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_unk_27 - - thumb_func_start BattleAICmd_if_would_go_first -BattleAICmd_if_would_go_first: @ 8108494 - push {lr} - ldr r0, _081084CC @ =gUnknown_02024C07 - ldrb r0, [r0] - ldr r1, _081084D0 @ =gUnknown_02024C08 - ldrb r1, [r1] - movs r2, 0x1 - bl b_first_side - ldr r3, _081084D4 @ =gUnknown_02039238 - ldr r2, [r3] - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r2, 0x1] - cmp r0, r1 - bne _081084D8 - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081084DC - .align 2, 0 -_081084CC: .4byte gUnknown_02024C07 -_081084D0: .4byte gUnknown_02024C08 -_081084D4: .4byte gUnknown_02039238 -_081084D8: - adds r0, r2, 0x6 - str r0, [r3] -_081084DC: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_would_go_first - - thumb_func_start BattleAICmd_if_would_not_go_first -BattleAICmd_if_would_not_go_first: @ 81084E0 - push {lr} - ldr r0, _08108518 @ =gUnknown_02024C07 - ldrb r0, [r0] - ldr r1, _0810851C @ =gUnknown_02024C08 - ldrb r1, [r1] - movs r2, 0x1 - bl b_first_side - ldr r3, _08108520 @ =gUnknown_02039238 - ldr r2, [r3] - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r2, 0x1] - cmp r0, r1 - beq _08108524 - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08108528 - .align 2, 0 -_08108518: .4byte gUnknown_02024C07 -_0810851C: .4byte gUnknown_02024C08 -_08108520: .4byte gUnknown_02039238 -_08108524: - adds r0, r2, 0x6 - str r0, [r3] -_08108528: - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_would_not_go_first - - thumb_func_start BattleAICmd_unk_2A -BattleAICmd_unk_2A: @ 810852C - bx lr - thumb_func_end BattleAICmd_unk_2A - - thumb_func_start BattleAICmd_unk_2B -BattleAICmd_unk_2B: @ 8108530 - bx lr - thumb_func_end BattleAICmd_unk_2B - - thumb_func_start BattleAICmd_count_alive_pokemon -BattleAICmd_count_alive_pokemon: @ 8108534 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r1, _08108550 @ =0x02016800 - movs r0, 0 - str r0, [r1, 0x8] - ldr r0, _08108554 @ =gUnknown_02039238 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x1 - bne _0810855C - ldr r0, _08108558 @ =gUnknown_02024C07 - b _0810855E - .align 2, 0 -_08108550: .4byte 0x02016800 -_08108554: .4byte gUnknown_02039238 -_08108558: .4byte gUnknown_02024C07 -_0810855C: - ldr r0, _081085A8 @ =gUnknown_02024C08 -_0810855E: - ldrb r5, [r0] - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - ldr r1, _081085AC @ =gEnemyParty - mov r9, r1 - cmp r0, 0 - bne _08108574 - ldr r0, _081085B0 @ =gPlayerParty - mov r9, r0 -_08108574: - ldr r0, _081085B4 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081085BC - ldr r4, _081085B8 @ =gUnknown_02024A6A - lsls r0, r5, 1 - adds r0, r4 - ldrb r0, [r0] - mov r8, r0 - adds r0, r5, 0 - bl battle_get_per_side_status - movs r1, 0x2 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - ldrb r6, [r0] - b _081085C6 - .align 2, 0 -_081085A8: .4byte gUnknown_02024C08 -_081085AC: .4byte gEnemyParty -_081085B0: .4byte gPlayerParty -_081085B4: .4byte gUnknown_020239F8 -_081085B8: .4byte gUnknown_02024A6A -_081085BC: - ldr r1, _08108624 @ =gUnknown_02024A6A - lsls r0, r5, 1 - adds r0, r1 - ldrb r6, [r0] - mov r8, r6 -_081085C6: - movs r5, 0 - ldr r7, _08108628 @ =0x02016800 -_081085CA: - cmp r5, r8 - beq _08108608 - cmp r5, r6 - beq _08108608 - movs r0, 0x64 - muls r0, r5 - mov r1, r9 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08108608 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _08108608 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _08108608 - ldr r0, [r7, 0x8] - adds r0, 0x1 - str r0, [r7, 0x8] -_08108608: - adds r5, 0x1 - cmp r5, 0x5 - ble _081085CA - ldr r1, _0810862C @ =gUnknown_02039238 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08108624: .4byte gUnknown_02024A6A -_08108628: .4byte 0x02016800 -_0810862C: .4byte gUnknown_02039238 - thumb_func_end BattleAICmd_count_alive_pokemon - - thumb_func_start BattleAICmd_unk_2D -BattleAICmd_unk_2D: @ 8108630 - ldr r1, _08108640 @ =0x02016800 - ldrh r0, [r1, 0x2] - str r0, [r1, 0x8] - ldr r1, _08108644 @ =gUnknown_02039238 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_08108640: .4byte 0x02016800 -_08108644: .4byte gUnknown_02039238 - thumb_func_end BattleAICmd_unk_2D - - thumb_func_start BattleAICmd_unk_2E -BattleAICmd_unk_2E: @ 8108648 - ldr r3, _08108664 @ =0x02016800 - ldr r2, _08108668 @ =gBattleMoves - ldrh r1, [r3, 0x2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - str r0, [r3, 0x8] - ldr r1, _0810866C @ =gUnknown_02039238 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_08108664: .4byte 0x02016800 -_08108668: .4byte gBattleMoves -_0810866C: .4byte gUnknown_02039238 - thumb_func_end BattleAICmd_unk_2E - - thumb_func_start BattleAICmd_get_ability -BattleAICmd_get_ability: @ 8108670 - push {r4-r7,lr} - ldr r0, _08108680 @ =gUnknown_02039238 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x1 - bne _08108688 - ldr r0, _08108684 @ =gUnknown_02024C07 - b _0810868A - .align 2, 0 -_08108680: .4byte gUnknown_02039238 -_08108684: .4byte gUnknown_02024C07 -_08108688: - ldr r0, _081086BC @ =gUnknown_02024C08 -_0810868A: - ldrb r4, [r0] - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08108774 - adds r0, r4, 0 - bl battle_get_per_side_status - movs r7, 0x1 - adds r1, r7, 0 - ands r1, r0 - ldr r6, _081086C0 @ =0x02016a00 - adds r0, r6, 0 - adds r0, 0x20 - adds r3, r1, r0 - ldrb r0, [r3] - cmp r0, 0 - beq _081086C8 - ldr r0, _081086C4 @ =0xfffffe00 - adds r1, r6, r0 - ldrb r0, [r3] - str r0, [r1, 0x8] - b _08108784 - .align 2, 0 -_081086BC: .4byte gUnknown_02024C08 -_081086C0: .4byte 0x02016a00 -_081086C4: .4byte 0xfffffe00 -_081086C8: - ldr r1, _081086F4 @ =gBattleMons - movs r0, 0x58 - muls r0, r4 - adds r5, r0, r1 - adds r0, r5, 0 - adds r0, 0x20 - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0x17 - beq _081086E4 - cmp r0, 0x2A - beq _081086E4 - cmp r0, 0x47 - bne _081086FC -_081086E4: - ldr r1, _081086F8 @ =0x02016800 - movs r0, 0x58 - muls r0, r4 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - str r0, [r1, 0x8] - b _08108784 - .align 2, 0 -_081086F4: .4byte gBattleMons -_081086F8: .4byte 0x02016800 -_081086FC: - ldr r4, _08108734 @ =gBaseStats - ldrh r0, [r5] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r3, r1, r4 - ldrb r0, [r3, 0x16] - cmp r0, 0 - beq _08108764 - ldrb r0, [r3, 0x17] - cmp r0, 0 - beq _08108754 - bl Random - adds r1, r7, 0 - ands r1, r0 - cmp r1, 0 - beq _0810873C - ldr r0, _08108738 @ =0xfffffe00 - adds r2, r6, r0 - ldrh r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x16] - b _08108782 - .align 2, 0 -_08108734: .4byte gBaseStats -_08108738: .4byte 0xfffffe00 -_0810873C: - ldr r0, _08108750 @ =0xfffffe00 - adds r2, r6, r0 - ldrh r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x17] - b _08108782 - .align 2, 0 -_08108750: .4byte 0xfffffe00 -_08108754: - ldr r0, _08108760 @ =0xfffffe00 - adds r1, r6, r0 - ldrb r0, [r3, 0x16] - str r0, [r1, 0x8] - b _08108784 - .align 2, 0 -_08108760: .4byte 0xfffffe00 -_08108764: - ldr r0, _08108770 @ =0xfffffe00 - adds r1, r6, r0 - ldrb r0, [r3, 0x17] - str r0, [r1, 0x8] - b _08108784 - .align 2, 0 -_08108770: .4byte 0xfffffe00 -_08108774: - ldr r2, _08108794 @ =0x02016800 - ldr r1, _08108798 @ =gBattleMons - movs r0, 0x58 - muls r0, r4 - adds r0, r1 - adds r0, 0x20 - ldrb r0, [r0] -_08108782: - str r0, [r2, 0x8] -_08108784: - ldr r1, _0810879C @ =gUnknown_02039238 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08108794: .4byte 0x02016800 -_08108798: .4byte gBattleMons -_0810879C: .4byte gUnknown_02039238 - thumb_func_end BattleAICmd_get_ability - - thumb_func_start BattleAICmd_unk_30 -BattleAICmd_unk_30: @ 81087A0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _0810885C @ =gUnknown_02024DEC - movs r2, 0 - strh r2, [r0] - ldr r1, _08108860 @ =0x02000000 - ldr r3, _08108864 @ =0x0001601c - adds r0, r1, r3 - movs r4, 0 - strb r2, [r0] - adds r3, 0x3 - adds r0, r1, r3 - movs r3, 0x1 - strb r3, [r0] - ldr r0, _08108868 @ =gUnknown_02024C68 - strb r2, [r0] - ldr r0, _0810886C @ =gCritMultiplier - strb r3, [r0] - movs r0, 0xB4 - lsls r0, 9 - adds r1, r0 - str r4, [r1, 0x8] - movs r5, 0 - ldr r4, _08108870 @ =gUnknown_02024BEC - ldr r7, _08108874 @ =gUnknown_02024BE6 - ldr r3, _08108878 @ =gUnknown_02024A8C - mov r8, r3 - ldr r6, _0810887C @ =gUnknown_02024C07 -_081087DA: - movs r0, 0x28 - str r0, [r4] - lsls r1, r5, 1 - ldrb r2, [r6] - movs r0, 0x58 - muls r0, r2 - adds r1, r0 - add r1, r8 - ldrh r0, [r1] - strh r0, [r7] - lsls r0, 16 - cmp r0, 0 - beq _08108844 - ldrh r0, [r7] - ldrb r1, [r6] - ldr r2, _08108880 @ =gUnknown_02024C08 - ldrb r2, [r2] - bl move_effectiveness_something - ldr r0, [r4] - cmp r0, 0x78 - bne _0810880A - movs r0, 0x50 - str r0, [r4] -_0810880A: - ldr r0, [r4] - cmp r0, 0xF0 - bne _08108814 - movs r0, 0xA0 - str r0, [r4] -_08108814: - ldr r0, [r4] - cmp r0, 0x1E - bne _0810881E - movs r0, 0x14 - str r0, [r4] -_0810881E: - ldr r0, [r4] - cmp r0, 0xF - bne _08108828 - movs r0, 0xA - str r0, [r4] -_08108828: - ldr r0, _08108868 @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08108838 - movs r0, 0 - str r0, [r4] -_08108838: - ldr r2, _08108884 @ =0x02016800 - ldr r0, [r2, 0x8] - ldr r1, [r4] - cmp r0, r1 - bcs _08108844 - str r1, [r2, 0x8] -_08108844: - adds r5, 0x1 - cmp r5, 0x3 - ble _081087DA - ldr r1, _08108888 @ =gUnknown_02039238 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810885C: .4byte gUnknown_02024DEC -_08108860: .4byte 0x02000000 -_08108864: .4byte 0x0001601c -_08108868: .4byte gUnknown_02024C68 -_0810886C: .4byte gCritMultiplier -_08108870: .4byte gUnknown_02024BEC -_08108874: .4byte gUnknown_02024BE6 -_08108878: .4byte gUnknown_02024A8C -_0810887C: .4byte gUnknown_02024C07 -_08108880: .4byte gUnknown_02024C08 -_08108884: .4byte 0x02016800 -_08108888: .4byte gUnknown_02039238 - thumb_func_end BattleAICmd_unk_30 - - thumb_func_start BattleAICmd_if_damage_bonus -BattleAICmd_if_damage_bonus: @ 810888C - push {r4,r5,lr} - ldr r0, _08108928 @ =gUnknown_02024DEC - movs r1, 0 - strh r1, [r0] - ldr r2, _0810892C @ =0x02000000 - ldr r3, _08108930 @ =0x0001601c - adds r0, r2, r3 - strb r1, [r0] - adds r3, 0x3 - adds r0, r2, r3 - movs r3, 0x1 - strb r3, [r0] - ldr r5, _08108934 @ =gUnknown_02024C68 - strb r1, [r5] - ldr r0, _08108938 @ =gCritMultiplier - strb r3, [r0] - ldr r4, _0810893C @ =gUnknown_02024BEC - movs r0, 0x28 - str r0, [r4] - ldr r1, _08108940 @ =gUnknown_02024BE6 - movs r0, 0xB4 - lsls r0, 9 - adds r2, r0 - ldrh r0, [r2, 0x2] - strh r0, [r1] - ldrh r0, [r1] - ldr r1, _08108944 @ =gUnknown_02024C07 - ldrb r1, [r1] - ldr r2, _08108948 @ =gUnknown_02024C08 - ldrb r2, [r2] - bl move_effectiveness_something - ldr r0, [r4] - cmp r0, 0x78 - bne _081088D6 - movs r0, 0x50 - str r0, [r4] -_081088D6: - ldr r0, [r4] - cmp r0, 0xF0 - bne _081088E0 - movs r0, 0xA0 - str r0, [r4] -_081088E0: - ldr r0, [r4] - cmp r0, 0x1E - bne _081088EA - movs r0, 0x14 - str r0, [r4] -_081088EA: - ldr r0, [r4] - cmp r0, 0xF - bne _081088F4 - movs r0, 0xA - str r0, [r4] -_081088F4: - ldrb r1, [r5] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08108902 - movs r0, 0 - str r0, [r4] -_08108902: - ldrb r0, [r4] - ldr r3, _0810894C @ =gUnknown_02039238 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - cmp r0, r1 - bne _08108950 - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08108954 - .align 2, 0 -_08108928: .4byte gUnknown_02024DEC -_0810892C: .4byte 0x02000000 -_08108930: .4byte 0x0001601c -_08108934: .4byte gUnknown_02024C68 -_08108938: .4byte gCritMultiplier -_0810893C: .4byte gUnknown_02024BEC -_08108940: .4byte gUnknown_02024BE6 -_08108944: .4byte gUnknown_02024C07 -_08108948: .4byte gUnknown_02024C08 -_0810894C: .4byte gUnknown_02039238 -_08108950: - adds r0, r2, 0x6 - str r0, [r3] -_08108954: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end BattleAICmd_if_damage_bonus - - thumb_func_start BattleAICmd_unk_32 -BattleAICmd_unk_32: @ 810895C - bx lr - thumb_func_end BattleAICmd_unk_32 - - thumb_func_start BattleAICmd_unk_33 -BattleAICmd_unk_33: @ 8108960 - bx lr - thumb_func_end BattleAICmd_unk_33 - + thumb_func_start BattleAICmd_if_status_in_party BattleAICmd_if_status_in_party: @ 8108964 push {r4-r7,lr} @@ -2766,7 +13,7 @@ BattleAICmd_if_status_in_party: @ 8108964 mov r6, r9 mov r5, r8 push {r5-r7} - ldr r0, _0810897C @ =gUnknown_02039238 + ldr r0, _0810897C @ =gAIScriptPtr ldr r1, [r0] ldrb r1, [r1, 0x1] cmp r1, 0x1 @@ -2774,10 +21,10 @@ BattleAICmd_if_status_in_party: @ 8108964 ldr r1, _08108980 @ =gEnemyParty b _081089A6 .align 2, 0 -_0810897C: .4byte gUnknown_02039238 +_0810897C: .4byte gAIScriptPtr _08108980: .4byte gEnemyParty _08108984: - ldr r3, _081089A0 @ =gUnknown_02039238 + ldr r3, _081089A0 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2, 0x6] ldrb r0, [r2, 0x7] @@ -2792,7 +39,7 @@ _08108984: str r1, [r3] b _08108A12 .align 2, 0 -_081089A0: .4byte gUnknown_02039238 +_081089A0: .4byte gAIScriptPtr _081089A4: ldr r1, _08108A20 @ =gPlayerParty _081089A6: @@ -2845,7 +92,7 @@ _08108A00: mov r1, r8 cmp r1, 0x5 ble _081089C8 - ldr r1, _08108A24 @ =gUnknown_02039238 + ldr r1, _08108A24 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0xA str r0, [r1] @@ -2859,7 +106,7 @@ _08108A12: bx r0 .align 2, 0 _08108A20: .4byte gPlayerParty -_08108A24: .4byte gUnknown_02039238 +_08108A24: .4byte gAIScriptPtr thumb_func_end BattleAICmd_if_status_in_party thumb_func_start BattleAICmd_if_status_not_in_party @@ -2869,7 +116,7 @@ BattleAICmd_if_status_not_in_party: @ 8108A28 mov r6, r9 mov r5, r8 push {r5-r7} - ldr r0, _08108A44 @ =gUnknown_02039238 + ldr r0, _08108A44 @ =gAIScriptPtr ldr r1, [r0] ldrb r1, [r1, 0x1] adds r2, r0, 0 @@ -2879,7 +126,7 @@ BattleAICmd_if_status_not_in_party: @ 8108A28 mov r10, r0 b _08108A50 .align 2, 0 -_08108A44: .4byte gUnknown_02039238 +_08108A44: .4byte gAIScriptPtr _08108A48: .4byte gEnemyParty _08108A4C: ldr r1, _08108AE4 @ =gPlayerParty @@ -2937,7 +184,7 @@ _08108AB0: mov r1, r8 cmp r1, 0x5 ble _08108A6C - ldr r3, _08108AE8 @ =gUnknown_02039238 + ldr r3, _08108AE8 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2, 0x6] ldrb r0, [r2, 0x7] @@ -2959,7 +206,7 @@ _08108AB0: bx r0 .align 2, 0 _08108AE4: .4byte gPlayerParty -_08108AE8: .4byte gUnknown_02039238 +_08108AE8: .4byte gAIScriptPtr thumb_func_end BattleAICmd_if_status_not_in_party thumb_func_start BattleAICmd_unk_36 @@ -3001,7 +248,7 @@ _08108B20: movs r0, 0x3 str r0, [r1, 0x8] _08108B2E: - ldr r1, _08108B44 @ =gUnknown_02039238 + ldr r1, _08108B44 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -3010,7 +257,7 @@ _08108B2E: .align 2, 0 _08108B3C: .4byte word_2024DB8 _08108B40: .4byte 0x02016800 -_08108B44: .4byte gUnknown_02039238 +_08108B44: .4byte gAIScriptPtr thumb_func_end BattleAICmd_unk_36 thumb_func_start BattleAICmd_if_effect @@ -3023,7 +270,7 @@ BattleAICmd_if_effect: @ 8108B48 adds r0, r1 lsls r0, 2 adds r0, r2 - ldr r3, _08108B84 @ =gUnknown_02039238 + ldr r3, _08108B84 @ =gAIScriptPtr ldr r2, [r3] ldrb r0, [r0] ldrb r1, [r2, 0x1] @@ -3044,7 +291,7 @@ BattleAICmd_if_effect: @ 8108B48 .align 2, 0 _08108B7C: .4byte gBattleMoves _08108B80: .4byte 0x02016800 -_08108B84: .4byte gUnknown_02039238 +_08108B84: .4byte gAIScriptPtr _08108B88: adds r0, r2, 0x6 str r0, [r3] @@ -3063,7 +310,7 @@ BattleAICmd_if_not_effect: @ 8108B90 adds r0, r1 lsls r0, 2 adds r0, r2 - ldr r3, _08108BCC @ =gUnknown_02039238 + ldr r3, _08108BCC @ =gAIScriptPtr ldr r2, [r3] ldrb r0, [r0] ldrb r1, [r2, 0x1] @@ -3084,7 +331,7 @@ BattleAICmd_if_not_effect: @ 8108B90 .align 2, 0 _08108BC4: .4byte gBattleMoves _08108BC8: .4byte 0x02016800 -_08108BCC: .4byte gUnknown_02039238 +_08108BCC: .4byte gAIScriptPtr _08108BD0: adds r0, r2, 0x6 str r0, [r3] @@ -3096,7 +343,7 @@ _08108BD4: thumb_func_start BattleAICmd_if_stat_level_less_than BattleAICmd_if_stat_level_less_than: @ 8108BD8 push {r4,lr} - ldr r0, _08108BEC @ =gUnknown_02039238 + ldr r0, _08108BEC @ =gAIScriptPtr ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 @@ -3105,7 +352,7 @@ BattleAICmd_if_stat_level_less_than: @ 8108BD8 ldr r0, _08108BF0 @ =gUnknown_02024C07 b _08108BF6 .align 2, 0 -_08108BEC: .4byte gUnknown_02039238 +_08108BEC: .4byte gAIScriptPtr _08108BF0: .4byte gUnknown_02024C07 _08108BF4: ldr r0, _08108C2C @ =gUnknown_02024C08 @@ -3153,7 +400,7 @@ _08108C3A: thumb_func_start BattleAICmd_if_stat_level_more_than BattleAICmd_if_stat_level_more_than: @ 8108C40 push {r4,lr} - ldr r0, _08108C54 @ =gUnknown_02039238 + ldr r0, _08108C54 @ =gAIScriptPtr ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 @@ -3162,7 +409,7 @@ BattleAICmd_if_stat_level_more_than: @ 8108C40 ldr r0, _08108C58 @ =gUnknown_02024C07 b _08108C5E .align 2, 0 -_08108C54: .4byte gUnknown_02039238 +_08108C54: .4byte gAIScriptPtr _08108C58: .4byte gUnknown_02024C07 _08108C5C: ldr r0, _08108C94 @ =gUnknown_02024C08 @@ -3210,7 +457,7 @@ _08108CA2: thumb_func_start BattleAICmd_if_stat_level_equal BattleAICmd_if_stat_level_equal: @ 8108CA8 push {r4,lr} - ldr r0, _08108CBC @ =gUnknown_02039238 + ldr r0, _08108CBC @ =gAIScriptPtr ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 @@ -3219,7 +466,7 @@ BattleAICmd_if_stat_level_equal: @ 8108CA8 ldr r0, _08108CC0 @ =gUnknown_02024C07 b _08108CC6 .align 2, 0 -_08108CBC: .4byte gUnknown_02039238 +_08108CBC: .4byte gAIScriptPtr _08108CC0: .4byte gUnknown_02024C07 _08108CC4: ldr r0, _08108CFC @ =gUnknown_02024C08 @@ -3267,7 +514,7 @@ _08108D0A: thumb_func_start BattleAICmd_if_stat_level_not_equal BattleAICmd_if_stat_level_not_equal: @ 8108D10 push {r4,lr} - ldr r0, _08108D24 @ =gUnknown_02039238 + ldr r0, _08108D24 @ =gAIScriptPtr ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 @@ -3276,7 +523,7 @@ BattleAICmd_if_stat_level_not_equal: @ 8108D10 ldr r0, _08108D28 @ =gUnknown_02024C07 b _08108D2E .align 2, 0 -_08108D24: .4byte gUnknown_02039238 +_08108D24: .4byte gAIScriptPtr _08108D28: .4byte gUnknown_02024C07 _08108D2C: ldr r0, _08108D64 @ =gUnknown_02024C08 @@ -3389,7 +636,7 @@ _08108DEE: ldr r0, [r4] cmp r1, r0 bgt _08108E4C - ldr r3, _08108E48 @ =gUnknown_02039238 + ldr r3, _08108E48 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -3415,9 +662,9 @@ _08108E38: .4byte gUnknown_02024C07 _08108E3C: .4byte gUnknown_02024C08 _08108E40: .4byte gUnknown_02024BEC _08108E44: .4byte gBattleMons -_08108E48: .4byte gUnknown_02039238 +_08108E48: .4byte gAIScriptPtr _08108E4C: - ldr r1, _08108E60 @ =gUnknown_02039238 + ldr r1, _08108E60 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -3428,7 +675,7 @@ _08108E54: pop {r0} bx r0 .align 2, 0 -_08108E60: .4byte gUnknown_02039238 +_08108E60: .4byte gAIScriptPtr thumb_func_end BattleAICmd_if_can_faint thumb_func_start BattleAICmd_if_cant_faint @@ -3489,7 +736,7 @@ BattleAICmd_if_cant_faint: @ 8108E64 ldrh r1, [r1, 0x28] cmp r1, r0 ble _08108F28 - ldr r3, _08108F24 @ =gUnknown_02039238 + ldr r3, _08108F24 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -3515,9 +762,9 @@ _08108F14: .4byte gUnknown_02024C07 _08108F18: .4byte gUnknown_02024C08 _08108F1C: .4byte gUnknown_02024BEC _08108F20: .4byte gBattleMons -_08108F24: .4byte gUnknown_02039238 +_08108F24: .4byte gAIScriptPtr _08108F28: - ldr r1, _08108F38 @ =gUnknown_02039238 + ldr r1, _08108F38 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -3526,13 +773,13 @@ _08108F30: pop {r0} bx r0 .align 2, 0 -_08108F38: .4byte gUnknown_02039238 +_08108F38: .4byte gAIScriptPtr thumb_func_end BattleAICmd_if_cant_faint thumb_func_start BattleAICmd_unk_3F BattleAICmd_unk_3F: @ 8108F3C push {r4-r7,lr} - ldr r1, _08108F58 @ =gUnknown_02039238 + ldr r1, _08108F58 @ =gAIScriptPtr ldr r0, [r1] adds r6, r0, 0x2 ldrb r0, [r0, 0x1] @@ -3545,7 +792,7 @@ BattleAICmd_unk_3F: @ 8108F3C beq _08108FA8 b _08109008 .align 2, 0 -_08108F58: .4byte gUnknown_02039238 +_08108F58: .4byte gAIScriptPtr _08108F5C: cmp r0, 0x2 beq _08108FA8 @@ -3647,7 +894,7 @@ _08109008: thumb_func_start BattleAICmd_unk_40 BattleAICmd_unk_40: @ 8109010 push {r4-r7,lr} - ldr r1, _0810902C @ =gUnknown_02039238 + ldr r1, _0810902C @ =gAIScriptPtr ldr r0, [r1] adds r6, r0, 0x2 ldrb r0, [r0, 0x1] @@ -3660,7 +907,7 @@ BattleAICmd_unk_40: @ 8109010 beq _0810907C b _081090DC .align 2, 0 -_0810902C: .4byte gUnknown_02039238 +_0810902C: .4byte gAIScriptPtr _08109030: cmp r0, 0x2 beq _0810907C @@ -3762,7 +1009,7 @@ _081090DC: thumb_func_start BattleAICmd_if_move_effect BattleAICmd_if_move_effect: @ 81090E4 push {r4-r7,lr} - ldr r1, _081090FC @ =gUnknown_02039238 + ldr r1, _081090FC @ =gAIScriptPtr ldr r0, [r1] ldrb r0, [r0, 0x1] adds r4, r1, 0 @@ -3774,7 +1021,7 @@ BattleAICmd_if_move_effect: @ 81090E4 beq _0810915C b _081091B8 .align 2, 0 -_081090FC: .4byte gUnknown_02039238 +_081090FC: .4byte gAIScriptPtr _08109100: cmp r0, 0x2 beq _0810915C @@ -3790,7 +1037,7 @@ _08109108: muls r0, r2 adds r1, 0xC adds r2, r0, r1 - ldr r5, _08109158 @ =gUnknown_02039238 + ldr r5, _08109158 @ =gAIScriptPtr _0810911C: ldrh r0, [r2] cmp r0, 0 @@ -3821,7 +1068,7 @@ _0810913E: _0810914C: .4byte gBattleMons _08109150: .4byte gUnknown_02024C07 _08109154: .4byte gBattleMoves -_08109158: .4byte gUnknown_02039238 +_08109158: .4byte gAIScriptPtr _0810915C: movs r3, 0 ldr r1, _081091C0 @ =gBattleMons @@ -3887,7 +1134,7 @@ _081091D0: .4byte gUnknown_02024C08 thumb_func_start BattleAICmd_if_not_move_effect BattleAICmd_if_not_move_effect: @ 81091D4 push {r4-r6,lr} - ldr r1, _081091EC @ =gUnknown_02039238 + ldr r1, _081091EC @ =gAIScriptPtr ldr r0, [r1] ldrb r0, [r0, 0x1] adds r4, r1, 0 @@ -3899,7 +1146,7 @@ BattleAICmd_if_not_move_effect: @ 81091D4 beq _0810925C b _08109294 .align 2, 0 -_081091EC: .4byte gUnknown_02039238 +_081091EC: .4byte gAIScriptPtr _081091F0: cmp r0, 0x2 beq _0810925C @@ -3915,7 +1162,7 @@ _081091F8: muls r0, r2 adds r1, 0xC adds r2, r0, r1 - ldr r5, _08109258 @ =gUnknown_02039238 + ldr r5, _08109258 @ =gAIScriptPtr _0810920C: ldrh r0, [r2] cmp r0, 0 @@ -3955,7 +1202,7 @@ _0810922E: _0810924C: .4byte gBattleMons _08109250: .4byte gUnknown_02024C07 _08109254: .4byte gBattleMoves -_08109258: .4byte gUnknown_02039238 +_08109258: .4byte gAIScriptPtr _0810925C: movs r3, 0 ldr r1, _0810929C @ =0x02016a00 @@ -4001,7 +1248,7 @@ _081092A4: .4byte gBattleMoves thumb_func_start BattleAICmd_if_last_move_did_damage BattleAICmd_if_last_move_did_damage: @ 81092A8 push {r4,r5,lr} - ldr r0, _081092BC @ =gUnknown_02039238 + ldr r0, _081092BC @ =gAIScriptPtr ldr r1, [r0] ldrb r1, [r1, 0x1] adds r5, r0, 0 @@ -4010,7 +1257,7 @@ BattleAICmd_if_last_move_did_damage: @ 81092A8 ldr r0, _081092C0 @ =gUnknown_02024C07 b _081092C6 .align 2, 0 -_081092BC: .4byte gUnknown_02039238 +_081092BC: .4byte gAIScriptPtr _081092C0: .4byte gUnknown_02024C07 _081092C4: ldr r0, _081092E4 @ =gUnknown_02024C08 @@ -4076,7 +1323,7 @@ _08109328: thumb_func_start BattleAICmd_if_encored BattleAICmd_if_encored: @ 8109330 push {r4,lr} - ldr r4, _08109344 @ =gUnknown_02039238 + ldr r4, _08109344 @ =gAIScriptPtr ldr r3, [r4] ldrb r0, [r3, 0x1] cmp r0, 0 @@ -4085,7 +1332,7 @@ BattleAICmd_if_encored: @ 8109330 beq _08109370 b _081093AC .align 2, 0 -_08109344: .4byte gUnknown_02039238 +_08109344: .4byte gAIScriptPtr _08109348: ldr r2, _08109364 @ =gUnknown_02024CA8 ldr r0, _08109368 @ =gUnknown_02024A60 @@ -4175,7 +1422,7 @@ BattleAICmd_if_random_2: @ 81093C8 lsrs r0, 24 cmp r0, r4 bcs _08109418 - ldr r3, _08109414 @ =gUnknown_02039238 + ldr r3, _08109414 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -4192,9 +1439,9 @@ BattleAICmd_if_random_2: @ 81093C8 .align 2, 0 _0810940C: .4byte 0x02000000 _08109410: .4byte 0x00016088 -_08109414: .4byte gUnknown_02039238 +_08109414: .4byte gAIScriptPtr _08109418: - ldr r1, _08109428 @ =gUnknown_02039238 + ldr r1, _08109428 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -4203,7 +1450,7 @@ _08109420: pop {r0} bx r0 .align 2, 0 -_08109428: .4byte gUnknown_02039238 +_08109428: .4byte gAIScriptPtr thumb_func_end BattleAICmd_if_random_2 thumb_func_start BattleAICmd_unk_47 @@ -4221,7 +1468,7 @@ _08109438: .4byte 0x02016800 thumb_func_start BattleAICmd_get_hold_effect BattleAICmd_get_hold_effect: @ 810943C push {r4,lr} - ldr r0, _0810944C @ =gUnknown_02039238 + ldr r0, _0810944C @ =gAIScriptPtr ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x1 @@ -4229,7 +1476,7 @@ BattleAICmd_get_hold_effect: @ 810943C ldr r0, _08109450 @ =gUnknown_02024C07 b _08109456 .align 2, 0 -_0810944C: .4byte gUnknown_02039238 +_0810944C: .4byte gAIScriptPtr _08109450: .4byte gUnknown_02024C07 _08109454: ldr r0, _0810947C @ =gUnknown_02024C08 @@ -4267,7 +1514,7 @@ _08109488: lsrs r0, 24 str r0, [r1, 0x8] _0810949E: - ldr r1, _081094B4 @ =gUnknown_02039238 + ldr r1, _081094B4 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x2 str r0, [r1] @@ -4277,13 +1524,13 @@ _0810949E: .align 2, 0 _081094AC: .4byte gBattleMons _081094B0: .4byte 0x02016800 -_081094B4: .4byte gUnknown_02039238 +_081094B4: .4byte gAIScriptPtr thumb_func_end BattleAICmd_get_hold_effect thumb_func_start BattleAICmd_get_gender BattleAICmd_get_gender: @ 81094B8 push {lr} - ldr r0, _081094C8 @ =gUnknown_02039238 + ldr r0, _081094C8 @ =gAIScriptPtr ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x1 @@ -4291,7 +1538,7 @@ BattleAICmd_get_gender: @ 81094B8 ldr r0, _081094CC @ =gUnknown_02024C07 b _081094D2 .align 2, 0 -_081094C8: .4byte gUnknown_02039238 +_081094C8: .4byte gAIScriptPtr _081094CC: .4byte gUnknown_02024C07 _081094D0: ldr r0, _081094FC @ =gUnknown_02024C08 @@ -4310,7 +1557,7 @@ _081094D2: lsls r0, 24 lsrs r0, 24 str r0, [r1, 0x8] - ldr r1, _08109508 @ =gUnknown_02039238 + ldr r1, _08109508 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x2 str r0, [r1] @@ -4320,13 +1567,13 @@ _081094D2: _081094FC: .4byte gUnknown_02024C08 _08109500: .4byte gBattleMons _08109504: .4byte 0x02016800 -_08109508: .4byte gUnknown_02039238 +_08109508: .4byte gAIScriptPtr thumb_func_end BattleAICmd_get_gender thumb_func_start BattleAICmd_is_first_turn BattleAICmd_is_first_turn: @ 810950C push {r4,lr} - ldr r0, _08109520 @ =gUnknown_02039238 + ldr r0, _08109520 @ =gAIScriptPtr ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 @@ -4335,7 +1582,7 @@ BattleAICmd_is_first_turn: @ 810950C ldr r0, _08109524 @ =gUnknown_02024C07 b _0810952A .align 2, 0 -_08109520: .4byte gUnknown_02039238 +_08109520: .4byte gAIScriptPtr _08109524: .4byte gUnknown_02024C07 _08109528: ldr r0, _08109548 @ =gUnknown_02024C08 @@ -4364,7 +1611,7 @@ _08109550: .4byte gUnknown_02024CA8 thumb_func_start BattleAICmd_get_stockpile_count BattleAICmd_get_stockpile_count: @ 8109554 push {r4,lr} - ldr r0, _08109568 @ =gUnknown_02039238 + ldr r0, _08109568 @ =gAIScriptPtr ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 @@ -4373,7 +1620,7 @@ BattleAICmd_get_stockpile_count: @ 8109554 ldr r0, _0810956C @ =gUnknown_02024C07 b _08109572 .align 2, 0 -_08109568: .4byte gUnknown_02039238 +_08109568: .4byte gAIScriptPtr _0810956C: .4byte gUnknown_02024C07 _08109570: ldr r0, _08109590 @ =gUnknown_02024C08 @@ -4407,7 +1654,7 @@ BattleAICmd_unk_4C: @ 810959C movs r0, 0x1 ands r0, r1 str r0, [r2, 0x8] - ldr r1, _081095BC @ =gUnknown_02039238 + ldr r1, _081095BC @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -4415,13 +1662,13 @@ BattleAICmd_unk_4C: @ 810959C .align 2, 0 _081095B4: .4byte 0x02016800 _081095B8: .4byte gUnknown_020239F8 -_081095BC: .4byte gUnknown_02039238 +_081095BC: .4byte gAIScriptPtr thumb_func_end BattleAICmd_unk_4C thumb_func_start BattleAICmd_get_item BattleAICmd_get_item: @ 81095C0 push {lr} - ldr r0, _081095D4 @ =gUnknown_02039238 + ldr r0, _081095D4 @ =gAIScriptPtr ldr r1, [r0] ldrb r1, [r1, 0x1] adds r2, r0, 0 @@ -4430,7 +1677,7 @@ BattleAICmd_get_item: @ 81095C0 ldr r0, _081095D8 @ =gUnknown_02024C07 b _081095DE .align 2, 0 -_081095D4: .4byte gUnknown_02039238 +_081095D4: .4byte gAIScriptPtr _081095D8: .4byte gUnknown_02024C07 _081095DC: ldr r0, _081095F8 @ =gUnknown_02024C08 @@ -4465,7 +1712,7 @@ BattleAICmd_unk_4E: @ 8109604 adds r0, r2 ldrb r0, [r0, 0x2] str r0, [r3, 0x8] - ldr r1, _08109628 @ =gUnknown_02039238 + ldr r1, _08109628 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -4473,7 +1720,7 @@ BattleAICmd_unk_4E: @ 8109604 .align 2, 0 _08109620: .4byte 0x02016800 _08109624: .4byte gBattleMoves -_08109628: .4byte gUnknown_02039238 +_08109628: .4byte gAIScriptPtr thumb_func_end BattleAICmd_unk_4E thumb_func_start BattleAICmd_unk_4F @@ -4487,7 +1734,7 @@ BattleAICmd_unk_4F: @ 810962C adds r0, r2 ldrb r0, [r0, 0x1] str r0, [r3, 0x8] - ldr r1, _08109650 @ =gUnknown_02039238 + ldr r1, _08109650 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -4495,7 +1742,7 @@ BattleAICmd_unk_4F: @ 810962C .align 2, 0 _08109648: .4byte 0x02016800 _0810964C: .4byte gBattleMoves -_08109650: .4byte gUnknown_02039238 +_08109650: .4byte gAIScriptPtr thumb_func_end BattleAICmd_unk_4F thumb_func_start BattleAICmd_unk_50 @@ -4509,7 +1756,7 @@ BattleAICmd_unk_50: @ 8109654 adds r0, r2 ldrb r0, [r0] str r0, [r3, 0x8] - ldr r1, _08109678 @ =gUnknown_02039238 + ldr r1, _08109678 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -4517,13 +1764,13 @@ BattleAICmd_unk_50: @ 8109654 .align 2, 0 _08109670: .4byte 0x02016800 _08109674: .4byte gBattleMoves -_08109678: .4byte gUnknown_02039238 +_08109678: .4byte gAIScriptPtr thumb_func_end BattleAICmd_unk_50 thumb_func_start BattleAICmd_get_protect_count BattleAICmd_get_protect_count: @ 810967C push {r4,lr} - ldr r0, _08109690 @ =gUnknown_02039238 + ldr r0, _08109690 @ =gAIScriptPtr ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 @@ -4532,7 +1779,7 @@ BattleAICmd_get_protect_count: @ 810967C ldr r0, _08109694 @ =gUnknown_02024C07 b _0810969A .align 2, 0 -_08109690: .4byte gUnknown_02039238 +_08109690: .4byte gAIScriptPtr _08109694: .4byte gUnknown_02024C07 _08109698: ldr r0, _081096B8 @ =gUnknown_02024C08 @@ -4591,7 +1838,7 @@ BattleAICmd_unk_57: @ 81096D8 thumb_func_start BattleAICmd_call BattleAICmd_call: @ 81096DC push {r4,lr} - ldr r4, _08109708 @ =gUnknown_02039238 + ldr r4, _08109708 @ =gAIScriptPtr ldr r0, [r4] adds r0, 0x5 bl sub_81098C4 @@ -4611,12 +1858,12 @@ BattleAICmd_call: @ 81096DC pop {r0} bx r0 .align 2, 0 -_08109708: .4byte gUnknown_02039238 +_08109708: .4byte gAIScriptPtr thumb_func_end BattleAICmd_call thumb_func_start BattleAICmd_jump BattleAICmd_jump: @ 810970C - ldr r3, _08109728 @ =gUnknown_02039238 + ldr r3, _08109728 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -4631,7 +1878,7 @@ BattleAICmd_jump: @ 810970C str r1, [r3] bx lr .align 2, 0 -_08109728: .4byte gUnknown_02039238 +_08109728: .4byte gAIScriptPtr thumb_func_end BattleAICmd_jump thumb_func_start BattleAICmd_unk_5A @@ -4656,7 +1903,7 @@ _08109748: .4byte 0x02016800 thumb_func_start BattleAICmd_if_level_cond BattleAICmd_if_level_cond: @ 810974C push {r4,r5,lr} - ldr r5, _08109764 @ =gUnknown_02039238 + ldr r5, _08109764 @ =gAIScriptPtr ldr r4, [r5] ldrb r0, [r4, 0x1] cmp r0, 0x1 @@ -4667,7 +1914,7 @@ BattleAICmd_if_level_cond: @ 810974C beq _0810976E b _0810981C .align 2, 0 -_08109764: .4byte gUnknown_02039238 +_08109764: .4byte gAIScriptPtr _08109768: cmp r0, 0x2 beq _081097D0 @@ -4776,7 +2023,7 @@ BattleAICmd_if_taunted: @ 8109824 lsls r0, 28 cmp r0, 0 beq _08109864 - ldr r3, _08109860 @ =gUnknown_02039238 + ldr r3, _08109860 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -4793,9 +2040,9 @@ BattleAICmd_if_taunted: @ 8109824 .align 2, 0 _08109858: .4byte gUnknown_02024CA8 _0810985C: .4byte gUnknown_02024C08 -_08109860: .4byte gUnknown_02039238 +_08109860: .4byte gAIScriptPtr _08109864: - ldr r1, _08109870 @ =gUnknown_02039238 + ldr r1, _08109870 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -4803,7 +2050,7 @@ _0810986C: pop {r0} bx r0 .align 2, 0 -_08109870: .4byte gUnknown_02039238 +_08109870: .4byte gAIScriptPtr thumb_func_end BattleAICmd_if_taunted thumb_func_start BattleAICmd_if_not_taunted @@ -4820,7 +2067,7 @@ BattleAICmd_if_not_taunted: @ 8109874 lsls r0, 28 cmp r0, 0 bne _081098B4 - ldr r3, _081098B0 @ =gUnknown_02039238 + ldr r3, _081098B0 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -4837,9 +2084,9 @@ BattleAICmd_if_not_taunted: @ 8109874 .align 2, 0 _081098A8: .4byte gUnknown_02024CA8 _081098AC: .4byte gUnknown_02024C08 -_081098B0: .4byte gUnknown_02039238 +_081098B0: .4byte gAIScriptPtr _081098B4: - ldr r1, _081098C0 @ =gUnknown_02039238 + ldr r1, _081098C0 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -4847,7 +2094,7 @@ _081098BC: pop {r0} bx r0 .align 2, 0 -_081098C0: .4byte gUnknown_02039238 +_081098C0: .4byte gAIScriptPtr thumb_func_end BattleAICmd_if_not_taunted thumb_func_start sub_81098C4 @@ -4881,13 +2128,13 @@ unref_sub_81098E4: @ 81098E4 lsls r0, 24 lsrs r0, 22 adds r0, r3 - ldr r1, _08109904 @ =gUnknown_02039238 + ldr r1, _08109904 @ =gAIScriptPtr ldr r1, [r1] str r1, [r0] bx lr .align 2, 0 _08109900: .4byte 0x02016c00 -_08109904: .4byte gUnknown_02039238 +_08109904: .4byte gAIScriptPtr thumb_func_end unref_sub_81098E4 thumb_func_start sub_8109908 @@ -4906,7 +2153,7 @@ _0810991C: .4byte 0x02016c00 _08109920: subs r0, 0x1 strb r0, [r2] - ldr r1, _08109938 @ =gUnknown_02039238 + ldr r1, _08109938 @ =gAIScriptPtr ldrb r0, [r2] lsls r0, 2 adds r0, r3 @@ -4917,7 +2164,7 @@ _08109932: pop {r1} bx r1 .align 2, 0 -_08109938: .4byte gUnknown_02039238 +_08109938: .4byte gAIScriptPtr thumb_func_end sub_8109908 .align 2, 0 @ Don't pad with nop. |