diff options
-rw-r--r-- | asm/battle_ai.s | 2943 | ||||
-rw-r--r-- | asm/contest_ai.s | 648 | ||||
-rw-r--r-- | include/pokemon.h | 133 | ||||
-rw-r--r-- | shared_syms.txt | 4 | ||||
-rw-r--r-- | src/battle_ai.c | 1383 | ||||
-rw-r--r-- | sym_ewram.txt | 2 |
6 files changed, 1832 insertions, 3281 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. diff --git a/asm/contest_ai.s b/asm/contest_ai.s index 7aef5885c..1e5497570 100644 --- a/asm/contest_ai.s +++ b/asm/contest_ai.s @@ -118,7 +118,7 @@ sub_81289AC: @ 81289AC cmp r0, 0x2 beq _08128A76 adds r4, r1, 0 - ldr r5, _081289F8 @ =gUnknown_02039238 + ldr r5, _081289F8 @ =gAIScriptPtr ldr r6, _081289FC @ =gUnknown_0203858E _081289BE: ldrb r0, [r4] @@ -150,7 +150,7 @@ _081289BE: b _08128A06 .align 2, 0 _081289F4: .4byte 0x020192e4 -_081289F8: .4byte gUnknown_02039238 +_081289F8: .4byte gAIScriptPtr _081289FC: .4byte gUnknown_0203858E _08128A00: .4byte gContestAIs _08128A04: @@ -256,7 +256,7 @@ sub_8128AA8: @ 8128AA8 adds r1, r2, 0x5 ldrb r0, [r2, 0x4] adds r1, r0 - ldr r3, _08128AD4 @ =gUnknown_02039238 + ldr r3, _08128AD4 @ =gAIScriptPtr ldr r0, [r3] ldrb r0, [r0, 0x1] lsls r0, 24 @@ -272,7 +272,7 @@ sub_8128AA8: @ 8128AA8 b _08128ADE .align 2, 0 _08128AD0: .4byte 0x020192e4 -_08128AD4: .4byte gUnknown_02039238 +_08128AD4: .4byte gAIScriptPtr _08128AD8: cmp r0, 0 bge _08128ADE @@ -296,14 +296,14 @@ contest_ai_get_turn: @ 8128AF0 subs r0, 0xE0 ldrb r0, [r0, 0x1] strh r0, [r1, 0x18] - ldr r1, _08128B08 @ =gUnknown_02039238 + ldr r1, _08128B08 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08128B04: .4byte 0x020192e4 -_08128B08: .4byte gUnknown_02039238 +_08128B08: .4byte gAIScriptPtr thumb_func_end contest_ai_get_turn thumb_func_start sub_8128B0C @@ -313,7 +313,7 @@ sub_8128B0C: @ 8128B0C ldr r0, _08128B3C @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _08128B40 @ =gUnknown_02039238 + ldr r3, _08128B40 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -332,7 +332,7 @@ sub_8128B0C: @ 8128B0C b _08128B48 .align 2, 0 _08128B3C: .4byte 0x020192e4 -_08128B40: .4byte gUnknown_02039238 +_08128B40: .4byte gAIScriptPtr _08128B44: adds r0, r2, 0x5 str r0, [r3] @@ -348,7 +348,7 @@ sub_8128B4C: @ 8128B4C ldr r0, _08128B7C @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _08128B80 @ =gUnknown_02039238 + ldr r3, _08128B80 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -367,7 +367,7 @@ sub_8128B4C: @ 8128B4C b _08128B88 .align 2, 0 _08128B7C: .4byte 0x020192e4 -_08128B80: .4byte gUnknown_02039238 +_08128B80: .4byte gAIScriptPtr _08128B84: adds r0, r2, 0x5 str r0, [r3] @@ -383,7 +383,7 @@ sub_8128B8C: @ 8128B8C ldr r0, _08128BBC @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _08128BC0 @ =gUnknown_02039238 + ldr r3, _08128BC0 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -402,7 +402,7 @@ sub_8128B8C: @ 8128B8C b _08128BC8 .align 2, 0 _08128BBC: .4byte 0x020192e4 -_08128BC0: .4byte gUnknown_02039238 +_08128BC0: .4byte gAIScriptPtr _08128BC4: adds r0, r2, 0x5 str r0, [r3] @@ -418,7 +418,7 @@ sub_8128BCC: @ 8128BCC ldr r0, _08128BFC @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _08128C00 @ =gUnknown_02039238 + ldr r3, _08128C00 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -437,7 +437,7 @@ sub_8128BCC: @ 8128BCC b _08128C08 .align 2, 0 _08128BFC: .4byte 0x020192e4 -_08128C00: .4byte gUnknown_02039238 +_08128C00: .4byte gAIScriptPtr _08128C04: adds r0, r2, 0x5 str r0, [r3] @@ -455,14 +455,14 @@ contest_ai_get_excitement: @ 8128C0C lsls r0, 24 asrs r0, 24 strh r0, [r1, 0x18] - ldr r1, _08128C28 @ =gUnknown_02039238 + ldr r1, _08128C28 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08128C24: .4byte 0x020192e4 -_08128C28: .4byte gUnknown_02039238 +_08128C28: .4byte gAIScriptPtr thumb_func_end contest_ai_get_excitement thumb_func_start sub_8128C2C @@ -472,7 +472,7 @@ sub_8128C2C: @ 8128C2C ldr r0, _08128C5C @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _08128C60 @ =gUnknown_02039238 + ldr r3, _08128C60 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -491,7 +491,7 @@ sub_8128C2C: @ 8128C2C b _08128C68 .align 2, 0 _08128C5C: .4byte 0x020192e4 -_08128C60: .4byte gUnknown_02039238 +_08128C60: .4byte gAIScriptPtr _08128C64: adds r0, r2, 0x5 str r0, [r3] @@ -507,7 +507,7 @@ sub_8128C6C: @ 8128C6C ldr r0, _08128C9C @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _08128CA0 @ =gUnknown_02039238 + ldr r3, _08128CA0 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -526,7 +526,7 @@ sub_8128C6C: @ 8128C6C b _08128CA8 .align 2, 0 _08128C9C: .4byte 0x020192e4 -_08128CA0: .4byte gUnknown_02039238 +_08128CA0: .4byte gAIScriptPtr _08128CA4: adds r0, r2, 0x5 str r0, [r3] @@ -542,7 +542,7 @@ sub_8128CAC: @ 8128CAC ldr r0, _08128CDC @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _08128CE0 @ =gUnknown_02039238 + ldr r3, _08128CE0 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -561,7 +561,7 @@ sub_8128CAC: @ 8128CAC b _08128CE8 .align 2, 0 _08128CDC: .4byte 0x020192e4 -_08128CE0: .4byte gUnknown_02039238 +_08128CE0: .4byte gAIScriptPtr _08128CE4: adds r0, r2, 0x5 str r0, [r3] @@ -577,7 +577,7 @@ sub_8128CEC: @ 8128CEC ldr r0, _08128D1C @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _08128D20 @ =gUnknown_02039238 + ldr r3, _08128D20 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -596,7 +596,7 @@ sub_8128CEC: @ 8128CEC b _08128D28 .align 2, 0 _08128D1C: .4byte 0x020192e4 -_08128D20: .4byte gUnknown_02039238 +_08128D20: .4byte gAIScriptPtr _08128D24: adds r0, r2, 0x5 str r0, [r3] @@ -616,14 +616,14 @@ contest_ai_get_user_order: @ 8128D2C adds r0, r2 ldrb r0, [r0] strh r0, [r1, 0x18] - ldr r1, _08128D4C @ =gUnknown_02039238 + ldr r1, _08128D4C @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08128D48: .4byte 0x020192e4 -_08128D4C: .4byte gUnknown_02039238 +_08128D4C: .4byte gAIScriptPtr thumb_func_end contest_ai_get_user_order thumb_func_start sub_8128D50 @@ -633,7 +633,7 @@ sub_8128D50: @ 8128D50 ldr r0, _08128D80 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _08128D84 @ =gUnknown_02039238 + ldr r3, _08128D84 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -652,7 +652,7 @@ sub_8128D50: @ 8128D50 b _08128D8C .align 2, 0 _08128D80: .4byte 0x020192e4 -_08128D84: .4byte gUnknown_02039238 +_08128D84: .4byte gAIScriptPtr _08128D88: adds r0, r2, 0x5 str r0, [r3] @@ -668,7 +668,7 @@ sub_8128D90: @ 8128D90 ldr r0, _08128DC0 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _08128DC4 @ =gUnknown_02039238 + ldr r3, _08128DC4 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -687,7 +687,7 @@ sub_8128D90: @ 8128D90 b _08128DCC .align 2, 0 _08128DC0: .4byte 0x020192e4 -_08128DC4: .4byte gUnknown_02039238 +_08128DC4: .4byte gAIScriptPtr _08128DC8: adds r0, r2, 0x5 str r0, [r3] @@ -703,7 +703,7 @@ sub_8128DD0: @ 8128DD0 ldr r0, _08128E00 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _08128E04 @ =gUnknown_02039238 + ldr r3, _08128E04 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -722,7 +722,7 @@ sub_8128DD0: @ 8128DD0 b _08128E0C .align 2, 0 _08128E00: .4byte 0x020192e4 -_08128E04: .4byte gUnknown_02039238 +_08128E04: .4byte gAIScriptPtr _08128E08: adds r0, r2, 0x5 str r0, [r3] @@ -738,7 +738,7 @@ sub_8128E10: @ 8128E10 ldr r0, _08128E40 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _08128E44 @ =gUnknown_02039238 + ldr r3, _08128E44 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -757,7 +757,7 @@ sub_8128E10: @ 8128E10 b _08128E4C .align 2, 0 _08128E40: .4byte 0x020192e4 -_08128E44: .4byte gUnknown_02039238 +_08128E44: .4byte gAIScriptPtr _08128E48: adds r0, r2, 0x5 str r0, [r3] @@ -787,7 +787,7 @@ contest_ai_get_user_condition_maybe: @ 8128E50 lsls r0, 24 asrs r0, 24 strh r0, [r4, 0x18] - ldr r1, _08128E8C @ =gUnknown_02039238 + ldr r1, _08128E8C @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -796,7 +796,7 @@ contest_ai_get_user_condition_maybe: @ 8128E50 bx r0 .align 2, 0 _08128E88: .4byte 0x020192e4 -_08128E8C: .4byte gUnknown_02039238 +_08128E8C: .4byte gAIScriptPtr thumb_func_end contest_ai_get_user_condition_maybe thumb_func_start sub_8128E90 @@ -806,7 +806,7 @@ sub_8128E90: @ 8128E90 ldr r0, _08128EC0 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _08128EC4 @ =gUnknown_02039238 + ldr r3, _08128EC4 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -825,7 +825,7 @@ sub_8128E90: @ 8128E90 b _08128ECC .align 2, 0 _08128EC0: .4byte 0x020192e4 -_08128EC4: .4byte gUnknown_02039238 +_08128EC4: .4byte gAIScriptPtr _08128EC8: adds r0, r2, 0x5 str r0, [r3] @@ -841,7 +841,7 @@ sub_8128ED0: @ 8128ED0 ldr r0, _08128F00 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _08128F04 @ =gUnknown_02039238 + ldr r3, _08128F04 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -860,7 +860,7 @@ sub_8128ED0: @ 8128ED0 b _08128F0C .align 2, 0 _08128F00: .4byte 0x020192e4 -_08128F04: .4byte gUnknown_02039238 +_08128F04: .4byte gAIScriptPtr _08128F08: adds r0, r2, 0x5 str r0, [r3] @@ -876,7 +876,7 @@ sub_8128F10: @ 8128F10 ldr r0, _08128F40 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _08128F44 @ =gUnknown_02039238 + ldr r3, _08128F44 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -895,7 +895,7 @@ sub_8128F10: @ 8128F10 b _08128F4C .align 2, 0 _08128F40: .4byte 0x020192e4 -_08128F44: .4byte gUnknown_02039238 +_08128F44: .4byte gAIScriptPtr _08128F48: adds r0, r2, 0x5 str r0, [r3] @@ -911,7 +911,7 @@ sub_8128F50: @ 8128F50 ldr r0, _08128F80 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _08128F84 @ =gUnknown_02039238 + ldr r3, _08128F84 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -930,7 +930,7 @@ sub_8128F50: @ 8128F50 b _08128F8C .align 2, 0 _08128F80: .4byte 0x020192e4 -_08128F84: .4byte gUnknown_02039238 +_08128F84: .4byte gAIScriptPtr _08128F88: adds r0, r2, 0x5 str r0, [r3] @@ -953,14 +953,14 @@ sub_8128F90: @ 8128F90 adds r0, r1 ldrh r0, [r0, 0x4] strh r0, [r2, 0x18] - ldr r1, _08128FB8 @ =gUnknown_02039238 + ldr r1, _08128FB8 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _08128FB4: .4byte 0x020192e4 -_08128FB8: .4byte gUnknown_02039238 +_08128FB8: .4byte gAIScriptPtr thumb_func_end sub_8128F90 thumb_func_start sub_8128FBC @@ -968,7 +968,7 @@ sub_8128FBC: @ 8128FBC push {r4,r5,lr} bl sub_8128F90 ldr r2, _08128FF4 @ =0x020192e4 - ldr r4, _08128FF8 @ =gUnknown_02039238 + ldr r4, _08128FF8 @ =gAIScriptPtr ldr r3, [r4] ldrb r1, [r3] ldrb r0, [r3, 0x1] @@ -994,7 +994,7 @@ sub_8128FBC: @ 8128FBC b _08129000 .align 2, 0 _08128FF4: .4byte 0x020192e4 -_08128FF8: .4byte gUnknown_02039238 +_08128FF8: .4byte gAIScriptPtr _08128FFC: adds r0, r3, 0x6 str r0, [r4] @@ -1009,7 +1009,7 @@ sub_8129008: @ 8129008 push {r4,r5,lr} bl sub_8128F90 ldr r2, _08129040 @ =0x020192e4 - ldr r4, _08129044 @ =gUnknown_02039238 + ldr r4, _08129044 @ =gAIScriptPtr ldr r3, [r4] ldrb r1, [r3] ldrb r0, [r3, 0x1] @@ -1035,7 +1035,7 @@ sub_8129008: @ 8129008 b _0812904C .align 2, 0 _08129040: .4byte 0x020192e4 -_08129044: .4byte gUnknown_02039238 +_08129044: .4byte gAIScriptPtr _08129048: adds r0, r3, 0x6 str r0, [r4] @@ -1050,7 +1050,7 @@ sub_8129054: @ 8129054 push {r4,r5,lr} bl sub_8128F90 ldr r2, _0812908C @ =0x020192e4 - ldr r4, _08129090 @ =gUnknown_02039238 + ldr r4, _08129090 @ =gAIScriptPtr ldr r3, [r4] ldrb r1, [r3] ldrb r0, [r3, 0x1] @@ -1076,7 +1076,7 @@ sub_8129054: @ 8129054 b _08129098 .align 2, 0 _0812908C: .4byte 0x020192e4 -_08129090: .4byte gUnknown_02039238 +_08129090: .4byte gAIScriptPtr _08129094: adds r0, r3, 0x6 str r0, [r4] @@ -1091,7 +1091,7 @@ sub_81290A0: @ 81290A0 push {r4,r5,lr} bl sub_8128F90 ldr r2, _081290D8 @ =0x020192e4 - ldr r4, _081290DC @ =gUnknown_02039238 + ldr r4, _081290DC @ =gAIScriptPtr ldr r3, [r4] ldrb r1, [r3] ldrb r0, [r3, 0x1] @@ -1117,7 +1117,7 @@ sub_81290A0: @ 81290A0 b _081290E4 .align 2, 0 _081290D8: .4byte 0x020192e4 -_081290DC: .4byte gUnknown_02039238 +_081290DC: .4byte gAIScriptPtr _081290E0: adds r0, r3, 0x6 str r0, [r4] @@ -1138,7 +1138,7 @@ sub_81290EC: @ 81290EC adds r0, r1 ldrh r0, [r0] strh r0, [r2, 0x18] - ldr r1, _08129110 @ =gUnknown_02039238 + ldr r1, _08129110 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -1146,7 +1146,7 @@ sub_81290EC: @ 81290EC .align 2, 0 _08129108: .4byte 0x020192e4 _0812910C: .4byte gUnknown_02038670 -_08129110: .4byte gUnknown_02039238 +_08129110: .4byte gAIScriptPtr thumb_func_end sub_81290EC thumb_func_start sub_8129114 @@ -1154,7 +1154,7 @@ sub_8129114: @ 8129114 push {r4,r5,lr} bl sub_81290EC ldr r2, _0812914C @ =0x020192e4 - ldr r4, _08129150 @ =gUnknown_02039238 + ldr r4, _08129150 @ =gAIScriptPtr ldr r3, [r4] ldrb r1, [r3] ldrb r0, [r3, 0x1] @@ -1180,7 +1180,7 @@ sub_8129114: @ 8129114 b _08129158 .align 2, 0 _0812914C: .4byte 0x020192e4 -_08129150: .4byte gUnknown_02039238 +_08129150: .4byte gAIScriptPtr _08129154: adds r0, r3, 0x6 str r0, [r4] @@ -1195,7 +1195,7 @@ sub_8129160: @ 8129160 push {r4,r5,lr} bl sub_81290EC ldr r2, _08129198 @ =0x020192e4 - ldr r4, _0812919C @ =gUnknown_02039238 + ldr r4, _0812919C @ =gAIScriptPtr ldr r3, [r4] ldrb r1, [r3] ldrb r0, [r3, 0x1] @@ -1221,7 +1221,7 @@ sub_8129160: @ 8129160 b _081291A4 .align 2, 0 _08129198: .4byte 0x020192e4 -_0812919C: .4byte gUnknown_02039238 +_0812919C: .4byte gAIScriptPtr _081291A0: adds r0, r3, 0x6 str r0, [r4] @@ -1236,7 +1236,7 @@ sub_81291AC: @ 81291AC push {r4,r5,lr} bl sub_81290EC ldr r2, _081291E4 @ =0x020192e4 - ldr r4, _081291E8 @ =gUnknown_02039238 + ldr r4, _081291E8 @ =gAIScriptPtr ldr r3, [r4] ldrb r1, [r3] ldrb r0, [r3, 0x1] @@ -1262,7 +1262,7 @@ sub_81291AC: @ 81291AC b _081291F0 .align 2, 0 _081291E4: .4byte 0x020192e4 -_081291E8: .4byte gUnknown_02039238 +_081291E8: .4byte gAIScriptPtr _081291EC: adds r0, r3, 0x6 str r0, [r4] @@ -1277,7 +1277,7 @@ sub_81291F8: @ 81291F8 push {r4,r5,lr} bl sub_81290EC ldr r2, _08129230 @ =0x020192e4 - ldr r4, _08129234 @ =gUnknown_02039238 + ldr r4, _08129234 @ =gAIScriptPtr ldr r3, [r4] ldrb r1, [r3] ldrb r0, [r3, 0x1] @@ -1303,7 +1303,7 @@ sub_81291F8: @ 81291F8 b _0812923C .align 2, 0 _08129230: .4byte 0x020192e4 -_08129234: .4byte gUnknown_02039238 +_08129234: .4byte gAIScriptPtr _08129238: adds r0, r3, 0x6 str r0, [r4] @@ -1319,7 +1319,7 @@ contest_ai_get_contest_type: @ 8129244 ldr r0, _0812925C @ =gScriptContestCategory ldrh r0, [r0] strh r0, [r1, 0x18] - ldr r1, _08129260 @ =gUnknown_02039238 + ldr r1, _08129260 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -1327,7 +1327,7 @@ contest_ai_get_contest_type: @ 8129244 .align 2, 0 _08129258: .4byte 0x020192e4 _0812925C: .4byte gScriptContestCategory -_08129260: .4byte gUnknown_02039238 +_08129260: .4byte gAIScriptPtr thumb_func_end contest_ai_get_contest_type thumb_func_start sub_8129264 @@ -1337,7 +1337,7 @@ sub_8129264: @ 8129264 ldr r0, _08129294 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _08129298 @ =gUnknown_02039238 + ldr r3, _08129298 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -1356,7 +1356,7 @@ sub_8129264: @ 8129264 b _081292A0 .align 2, 0 _08129294: .4byte 0x020192e4 -_08129298: .4byte gUnknown_02039238 +_08129298: .4byte gAIScriptPtr _0812929C: adds r0, r2, 0x5 str r0, [r3] @@ -1372,7 +1372,7 @@ sub_81292A4: @ 81292A4 ldr r0, _081292D4 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _081292D8 @ =gUnknown_02039238 + ldr r3, _081292D8 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -1391,7 +1391,7 @@ sub_81292A4: @ 81292A4 b _081292E0 .align 2, 0 _081292D4: .4byte 0x020192e4 -_081292D8: .4byte gUnknown_02039238 +_081292D8: .4byte gAIScriptPtr _081292DC: adds r0, r2, 0x5 str r0, [r3] @@ -1419,7 +1419,7 @@ contest_ai_get_move_excitement: @ 81292E4 lsls r0, 24 asrs r0, 24 strh r0, [r4, 0x18] - ldr r1, _08129320 @ =gUnknown_02039238 + ldr r1, _08129320 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -1429,7 +1429,7 @@ contest_ai_get_move_excitement: @ 81292E4 .align 2, 0 _08129318: .4byte gUnknown_02038570 _0812931C: .4byte 0x020192e4 -_08129320: .4byte gUnknown_02039238 +_08129320: .4byte gAIScriptPtr thumb_func_end contest_ai_get_move_excitement thumb_func_start sub_8129324 @@ -1437,7 +1437,7 @@ sub_8129324: @ 8129324 push {r4,lr} bl contest_ai_get_move_excitement ldr r0, _08129354 @ =0x020192e4 - ldr r3, _08129358 @ =gUnknown_02039238 + ldr r3, _08129358 @ =gAIScriptPtr ldr r2, [r3] movs r4, 0x18 ldrsh r1, [r0, r4] @@ -1459,7 +1459,7 @@ sub_8129324: @ 8129324 b _08129360 .align 2, 0 _08129354: .4byte 0x020192e4 -_08129358: .4byte gUnknown_02039238 +_08129358: .4byte gAIScriptPtr _0812935C: adds r0, r2, 0x5 str r0, [r3] @@ -1474,7 +1474,7 @@ sub_8129368: @ 8129368 push {r4,lr} bl contest_ai_get_move_excitement ldr r0, _08129398 @ =0x020192e4 - ldr r3, _0812939C @ =gUnknown_02039238 + ldr r3, _0812939C @ =gAIScriptPtr ldr r2, [r3] movs r4, 0x18 ldrsh r1, [r0, r4] @@ -1496,7 +1496,7 @@ sub_8129368: @ 8129368 b _081293A4 .align 2, 0 _08129398: .4byte 0x020192e4 -_0812939C: .4byte gUnknown_02039238 +_0812939C: .4byte gAIScriptPtr _081293A0: adds r0, r2, 0x5 str r0, [r3] @@ -1511,7 +1511,7 @@ sub_81293AC: @ 81293AC push {r4,lr} bl contest_ai_get_move_excitement ldr r0, _081293DC @ =0x020192e4 - ldr r3, _081293E0 @ =gUnknown_02039238 + ldr r3, _081293E0 @ =gAIScriptPtr ldr r2, [r3] movs r4, 0x18 ldrsh r1, [r0, r4] @@ -1533,7 +1533,7 @@ sub_81293AC: @ 81293AC b _081293E8 .align 2, 0 _081293DC: .4byte 0x020192e4 -_081293E0: .4byte gUnknown_02039238 +_081293E0: .4byte gAIScriptPtr _081293E4: adds r0, r2, 0x5 str r0, [r3] @@ -1548,7 +1548,7 @@ sub_81293F0: @ 81293F0 push {r4,lr} bl contest_ai_get_move_excitement ldr r0, _08129420 @ =0x020192e4 - ldr r3, _08129424 @ =gUnknown_02039238 + ldr r3, _08129424 @ =gAIScriptPtr ldr r2, [r3] movs r4, 0x18 ldrsh r1, [r0, r4] @@ -1570,7 +1570,7 @@ sub_81293F0: @ 81293F0 b _0812942C .align 2, 0 _08129420: .4byte 0x020192e4 -_08129424: .4byte gUnknown_02039238 +_08129424: .4byte gAIScriptPtr _08129428: adds r0, r2, 0x5 str r0, [r3] @@ -1599,7 +1599,7 @@ contest_ai_get_move_effect: @ 8129434 adds r0, r1 ldrb r0, [r0] strh r0, [r3, 0x18] - ldr r1, _0812946C @ =gUnknown_02039238 + ldr r1, _0812946C @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -1608,7 +1608,7 @@ contest_ai_get_move_effect: @ 8129434 _08129460: .4byte gUnknown_02038570 _08129464: .4byte 0x020192e4 _08129468: .4byte gContestMoves -_0812946C: .4byte gUnknown_02039238 +_0812946C: .4byte gAIScriptPtr thumb_func_end contest_ai_get_move_effect thumb_func_start sub_8129470 @@ -1618,7 +1618,7 @@ sub_8129470: @ 8129470 ldr r0, _081294A0 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _081294A4 @ =gUnknown_02039238 + ldr r3, _081294A4 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -1637,7 +1637,7 @@ sub_8129470: @ 8129470 b _081294AC .align 2, 0 _081294A0: .4byte 0x020192e4 -_081294A4: .4byte gUnknown_02039238 +_081294A4: .4byte gAIScriptPtr _081294A8: adds r0, r2, 0x5 str r0, [r3] @@ -1653,7 +1653,7 @@ sub_81294B0: @ 81294B0 ldr r0, _081294E0 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _081294E4 @ =gUnknown_02039238 + ldr r3, _081294E4 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -1672,7 +1672,7 @@ sub_81294B0: @ 81294B0 b _081294EC .align 2, 0 _081294E0: .4byte 0x020192e4 -_081294E4: .4byte gUnknown_02039238 +_081294E4: .4byte gAIScriptPtr _081294E8: adds r0, r2, 0x5 str r0, [r3] @@ -1704,7 +1704,7 @@ contest_ai_get_move_effect_type: @ 81294F0 adds r0, r2 ldrb r0, [r0] strh r0, [r3, 0x18] - ldr r1, _08129534 @ =gUnknown_02039238 + ldr r1, _08129534 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -1714,7 +1714,7 @@ _08129524: .4byte gUnknown_02038570 _08129528: .4byte 0x020192e4 _0812952C: .4byte gContestEffects _08129530: .4byte gContestMoves -_08129534: .4byte gUnknown_02039238 +_08129534: .4byte gAIScriptPtr thumb_func_end contest_ai_get_move_effect_type thumb_func_start sub_8129538 @@ -1724,7 +1724,7 @@ sub_8129538: @ 8129538 ldr r0, _08129568 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _0812956C @ =gUnknown_02039238 + ldr r3, _0812956C @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -1743,7 +1743,7 @@ sub_8129538: @ 8129538 b _08129574 .align 2, 0 _08129568: .4byte 0x020192e4 -_0812956C: .4byte gUnknown_02039238 +_0812956C: .4byte gAIScriptPtr _08129570: adds r0, r2, 0x5 str r0, [r3] @@ -1759,7 +1759,7 @@ sub_8129578: @ 8129578 ldr r0, _081295A8 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _081295AC @ =gUnknown_02039238 + ldr r3, _081295AC @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -1778,7 +1778,7 @@ sub_8129578: @ 8129578 b _081295B4 .align 2, 0 _081295A8: .4byte 0x020192e4 -_081295AC: .4byte gUnknown_02039238 +_081295AC: .4byte gAIScriptPtr _081295B0: adds r0, r2, 0x5 str r0, [r3] @@ -1811,7 +1811,7 @@ contest_ai_check_move_has_highest_appeal: @ 81295B8 adds r0, r4 ldrb r7, [r0, 0x1] movs r6, 0 - ldr r0, _08129620 @ =gUnknown_02039238 + ldr r0, _08129620 @ =gAIScriptPtr mov r12, r0 adds r1, r2 _081295EA: @@ -1841,7 +1841,7 @@ _08129610: .4byte gUnknown_02038570 _08129614: .4byte 0x020192e4 _08129618: .4byte gContestEffects _0812961C: .4byte gContestMoves -_08129620: .4byte gUnknown_02039238 +_08129620: .4byte gAIScriptPtr _08129624: movs r0, 0 _08129626: @@ -1864,7 +1864,7 @@ sub_8129638: @ 8129638 ldrsh r0, [r0, r1] cmp r0, 0 beq _0812966C - ldr r3, _08129668 @ =gUnknown_02039238 + ldr r3, _08129668 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] @@ -1880,9 +1880,9 @@ sub_8129638: @ 8129638 b _08129674 .align 2, 0 _08129664: .4byte 0x020192e4 -_08129668: .4byte gUnknown_02039238 +_08129668: .4byte gAIScriptPtr _0812966C: - ldr r1, _08129678 @ =gUnknown_02039238 + ldr r1, _08129678 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x4 str r0, [r1] @@ -1890,7 +1890,7 @@ _08129674: pop {r0} bx r0 .align 2, 0 -_08129678: .4byte gUnknown_02039238 +_08129678: .4byte gAIScriptPtr thumb_func_end sub_8129638 thumb_func_start sub_812967C @@ -1917,7 +1917,7 @@ sub_812967C: @ 812967C adds r0, r4 ldrb r7, [r0, 0x2] movs r6, 0 - ldr r0, _081296E4 @ =gUnknown_02039238 + ldr r0, _081296E4 @ =gAIScriptPtr mov r12, r0 adds r1, r2 _081296AE: @@ -1947,7 +1947,7 @@ _081296D4: .4byte gUnknown_02038570 _081296D8: .4byte 0x020192e4 _081296DC: .4byte gContestEffects _081296E0: .4byte gContestMoves -_081296E4: .4byte gUnknown_02039238 +_081296E4: .4byte gAIScriptPtr _081296E8: movs r0, 0 _081296EA: @@ -1970,7 +1970,7 @@ sub_81296FC: @ 81296FC ldrsh r0, [r0, r1] cmp r0, 0 beq _08129730 - ldr r3, _0812972C @ =gUnknown_02039238 + ldr r3, _0812972C @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -1986,9 +1986,9 @@ sub_81296FC: @ 81296FC b _08129738 .align 2, 0 _08129728: .4byte 0x020192e4 -_0812972C: .4byte gUnknown_02039238 +_0812972C: .4byte gAIScriptPtr _08129730: - ldr r1, _0812973C @ =gUnknown_02039238 + ldr r1, _0812973C @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x5 str r0, [r1] @@ -1996,7 +1996,7 @@ _08129738: pop {r0} bx r0 .align 2, 0 -_0812973C: .4byte gUnknown_02039238 +_0812973C: .4byte gAIScriptPtr thumb_func_end sub_81296FC thumb_func_start sub_8129740 @@ -2027,7 +2027,7 @@ sub_8129740: @ 8129740 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x18] - ldr r1, _08129794 @ =gUnknown_02039238 + ldr r1, _08129794 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -2039,7 +2039,7 @@ _08129784: .4byte gUnknown_02038570 _08129788: .4byte 0x020192e4 _0812978C: .4byte gContestEffects _08129790: .4byte gContestMoves -_08129794: .4byte gUnknown_02039238 +_08129794: .4byte gAIScriptPtr thumb_func_end sub_8129740 thumb_func_start sub_8129798 @@ -2049,7 +2049,7 @@ sub_8129798: @ 8129798 ldr r0, _081297C8 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _081297CC @ =gUnknown_02039238 + ldr r3, _081297CC @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -2068,7 +2068,7 @@ sub_8129798: @ 8129798 b _081297D4 .align 2, 0 _081297C8: .4byte 0x020192e4 -_081297CC: .4byte gUnknown_02039238 +_081297CC: .4byte gAIScriptPtr _081297D0: adds r0, r2, 0x5 str r0, [r3] @@ -2084,7 +2084,7 @@ sub_81297D8: @ 81297D8 ldr r0, _08129808 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _0812980C @ =gUnknown_02039238 + ldr r3, _0812980C @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -2103,7 +2103,7 @@ sub_81297D8: @ 81297D8 b _08129814 .align 2, 0 _08129808: .4byte 0x020192e4 -_0812980C: .4byte gUnknown_02039238 +_0812980C: .4byte gAIScriptPtr _08129810: adds r0, r2, 0x5 str r0, [r3] @@ -2119,7 +2119,7 @@ sub_8129818: @ 8129818 ldr r0, _08129848 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _0812984C @ =gUnknown_02039238 + ldr r3, _0812984C @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -2138,7 +2138,7 @@ sub_8129818: @ 8129818 b _08129854 .align 2, 0 _08129848: .4byte 0x020192e4 -_0812984C: .4byte gUnknown_02039238 +_0812984C: .4byte gAIScriptPtr _08129850: adds r0, r2, 0x5 str r0, [r3] @@ -2154,7 +2154,7 @@ sub_8129858: @ 8129858 ldr r0, _08129888 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _0812988C @ =gUnknown_02039238 + ldr r3, _0812988C @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -2173,7 +2173,7 @@ sub_8129858: @ 8129858 b _08129894 .align 2, 0 _08129888: .4byte 0x020192e4 -_0812988C: .4byte gUnknown_02039238 +_0812988C: .4byte gAIScriptPtr _08129890: adds r0, r2, 0x5 str r0, [r3] @@ -2210,7 +2210,7 @@ sub_8129898: @ 8129898 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x18] - ldr r1, _081298EC @ =gUnknown_02039238 + ldr r1, _081298EC @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -2222,7 +2222,7 @@ _081298DC: .4byte gUnknown_02038570 _081298E0: .4byte 0x020192e4 _081298E4: .4byte gContestEffects _081298E8: .4byte gContestMoves -_081298EC: .4byte gUnknown_02039238 +_081298EC: .4byte gAIScriptPtr thumb_func_end sub_8129898 thumb_func_start sub_81298F0 @@ -2232,7 +2232,7 @@ sub_81298F0: @ 81298F0 ldr r0, _08129920 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _08129924 @ =gUnknown_02039238 + ldr r3, _08129924 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -2251,7 +2251,7 @@ sub_81298F0: @ 81298F0 b _0812992C .align 2, 0 _08129920: .4byte 0x020192e4 -_08129924: .4byte gUnknown_02039238 +_08129924: .4byte gAIScriptPtr _08129928: adds r0, r2, 0x5 str r0, [r3] @@ -2267,7 +2267,7 @@ sub_8129930: @ 8129930 ldr r0, _08129960 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _08129964 @ =gUnknown_02039238 + ldr r3, _08129964 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -2286,7 +2286,7 @@ sub_8129930: @ 8129930 b _0812996C .align 2, 0 _08129960: .4byte 0x020192e4 -_08129964: .4byte gUnknown_02039238 +_08129964: .4byte gAIScriptPtr _08129968: adds r0, r2, 0x5 str r0, [r3] @@ -2302,7 +2302,7 @@ sub_8129970: @ 8129970 ldr r0, _081299A0 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _081299A4 @ =gUnknown_02039238 + ldr r3, _081299A4 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -2321,7 +2321,7 @@ sub_8129970: @ 8129970 b _081299AC .align 2, 0 _081299A0: .4byte 0x020192e4 -_081299A4: .4byte gUnknown_02039238 +_081299A4: .4byte gAIScriptPtr _081299A8: adds r0, r2, 0x5 str r0, [r3] @@ -2337,7 +2337,7 @@ sub_81299B0: @ 81299B0 ldr r0, _081299E0 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _081299E4 @ =gUnknown_02039238 + ldr r3, _081299E4 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -2356,7 +2356,7 @@ sub_81299B0: @ 81299B0 b _081299EC .align 2, 0 _081299E0: .4byte 0x020192e4 -_081299E4: .4byte gUnknown_02039238 +_081299E4: .4byte gAIScriptPtr _081299E8: adds r0, r2, 0x5 str r0, [r3] @@ -2401,7 +2401,7 @@ _08129A28: adds r0, 0x1 _08129A30: strh r0, [r4, 0x18] - ldr r1, _08129A40 @ =gUnknown_02039238 + ldr r1, _08129A40 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -2409,7 +2409,7 @@ _08129A30: pop {r0} bx r0 .align 2, 0 -_08129A40: .4byte gUnknown_02039238 +_08129A40: .4byte gAIScriptPtr thumb_func_end contest_ai_get_move_used_count thumb_func_start sub_8129A44 @@ -2419,7 +2419,7 @@ sub_8129A44: @ 8129A44 ldr r0, _08129A74 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _08129A78 @ =gUnknown_02039238 + ldr r3, _08129A78 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -2438,7 +2438,7 @@ sub_8129A44: @ 8129A44 b _08129A80 .align 2, 0 _08129A74: .4byte 0x020192e4 -_08129A78: .4byte gUnknown_02039238 +_08129A78: .4byte gAIScriptPtr _08129A7C: adds r0, r2, 0x5 str r0, [r3] @@ -2454,7 +2454,7 @@ sub_8129A84: @ 8129A84 ldr r0, _08129AB4 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _08129AB8 @ =gUnknown_02039238 + ldr r3, _08129AB8 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -2473,7 +2473,7 @@ sub_8129A84: @ 8129A84 b _08129AC0 .align 2, 0 _08129AB4: .4byte 0x020192e4 -_08129AB8: .4byte gUnknown_02039238 +_08129AB8: .4byte gAIScriptPtr _08129ABC: adds r0, r2, 0x5 str r0, [r3] @@ -2489,7 +2489,7 @@ sub_8129AC4: @ 8129AC4 ldr r0, _08129AF4 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _08129AF8 @ =gUnknown_02039238 + ldr r3, _08129AF8 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -2508,7 +2508,7 @@ sub_8129AC4: @ 8129AC4 b _08129B00 .align 2, 0 _08129AF4: .4byte 0x020192e4 -_08129AF8: .4byte gUnknown_02039238 +_08129AF8: .4byte gAIScriptPtr _08129AFC: adds r0, r2, 0x5 str r0, [r3] @@ -2524,7 +2524,7 @@ sub_8129B04: @ 8129B04 ldr r0, _08129B34 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _08129B38 @ =gUnknown_02039238 + ldr r3, _08129B38 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -2543,7 +2543,7 @@ sub_8129B04: @ 8129B04 b _08129B40 .align 2, 0 _08129B34: .4byte 0x020192e4 -_08129B38: .4byte gUnknown_02039238 +_08129B38: .4byte gAIScriptPtr _08129B3C: adds r0, r2, 0x5 str r0, [r3] @@ -2600,7 +2600,7 @@ _08129B94: _08129B96: ldr r0, _08129BB0 @ =0x020192e4 strh r5, [r0, 0x18] - ldr r1, _08129BB4 @ =gUnknown_02039238 + ldr r1, _08129BB4 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -2612,7 +2612,7 @@ _08129B96: .align 2, 0 _08129BAC: .4byte gUnknown_02038570 _08129BB0: .4byte 0x020192e4 -_08129BB4: .4byte gUnknown_02039238 +_08129BB4: .4byte gAIScriptPtr thumb_func_end contest_ai_check_combo_starter thumb_func_start sub_8129BB8 @@ -2624,7 +2624,7 @@ sub_8129BB8: @ 8129BB8 ldrsh r0, [r0, r1] cmp r0, 0 beq _08129BEC - ldr r3, _08129BE8 @ =gUnknown_02039238 + ldr r3, _08129BE8 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] @@ -2640,9 +2640,9 @@ sub_8129BB8: @ 8129BB8 b _08129BF4 .align 2, 0 _08129BE4: .4byte 0x020192e4 -_08129BE8: .4byte gUnknown_02039238 +_08129BE8: .4byte gAIScriptPtr _08129BEC: - ldr r1, _08129BF8 @ =gUnknown_02039238 + ldr r1, _08129BF8 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x4 str r0, [r1] @@ -2650,7 +2650,7 @@ _08129BF4: pop {r0} bx r0 .align 2, 0 -_08129BF8: .4byte gUnknown_02039238 +_08129BF8: .4byte gAIScriptPtr thumb_func_end sub_8129BB8 thumb_func_start sub_8129BFC @@ -2662,7 +2662,7 @@ sub_8129BFC: @ 8129BFC ldrsh r0, [r0, r1] cmp r0, 0 bne _08129C30 - ldr r3, _08129C2C @ =gUnknown_02039238 + ldr r3, _08129C2C @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] @@ -2678,9 +2678,9 @@ sub_8129BFC: @ 8129BFC b _08129C38 .align 2, 0 _08129C28: .4byte 0x020192e4 -_08129C2C: .4byte gUnknown_02039238 +_08129C2C: .4byte gAIScriptPtr _08129C30: - ldr r1, _08129C3C @ =gUnknown_02039238 + ldr r1, _08129C3C @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x4 str r0, [r1] @@ -2688,7 +2688,7 @@ _08129C38: pop {r0} bx r0 .align 2, 0 -_08129C3C: .4byte gUnknown_02039238 +_08129C3C: .4byte gAIScriptPtr thumb_func_end sub_8129BFC thumb_func_start contest_ai_check_combo_finisher @@ -2738,7 +2738,7 @@ _08129C8E: _08129C90: ldr r0, _08129CAC @ =0x020192e4 strh r5, [r0, 0x18] - ldr r1, _08129CB0 @ =gUnknown_02039238 + ldr r1, _08129CB0 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -2750,7 +2750,7 @@ _08129C90: .align 2, 0 _08129CA8: .4byte gUnknown_02038570 _08129CAC: .4byte 0x020192e4 -_08129CB0: .4byte gUnknown_02039238 +_08129CB0: .4byte gAIScriptPtr thumb_func_end contest_ai_check_combo_finisher thumb_func_start sub_8129CB4 @@ -2762,7 +2762,7 @@ sub_8129CB4: @ 8129CB4 ldrsh r0, [r0, r1] cmp r0, 0 beq _08129CE8 - ldr r3, _08129CE4 @ =gUnknown_02039238 + ldr r3, _08129CE4 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] @@ -2778,9 +2778,9 @@ sub_8129CB4: @ 8129CB4 b _08129CF0 .align 2, 0 _08129CE0: .4byte 0x020192e4 -_08129CE4: .4byte gUnknown_02039238 +_08129CE4: .4byte gAIScriptPtr _08129CE8: - ldr r1, _08129CF4 @ =gUnknown_02039238 + ldr r1, _08129CF4 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x4 str r0, [r1] @@ -2788,7 +2788,7 @@ _08129CF0: pop {r0} bx r0 .align 2, 0 -_08129CF4: .4byte gUnknown_02039238 +_08129CF4: .4byte gAIScriptPtr thumb_func_end sub_8129CB4 thumb_func_start sub_8129CF8 @@ -2800,7 +2800,7 @@ sub_8129CF8: @ 8129CF8 ldrsh r0, [r0, r1] cmp r0, 0 bne _08129D2C - ldr r3, _08129D28 @ =gUnknown_02039238 + ldr r3, _08129D28 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] @@ -2816,9 +2816,9 @@ sub_8129CF8: @ 8129CF8 b _08129D34 .align 2, 0 _08129D24: .4byte 0x020192e4 -_08129D28: .4byte gUnknown_02039238 +_08129D28: .4byte gAIScriptPtr _08129D2C: - ldr r1, _08129D38 @ =gUnknown_02039238 + ldr r1, _08129D38 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x4 str r0, [r1] @@ -2826,7 +2826,7 @@ _08129D34: pop {r0} bx r0 .align 2, 0 -_08129D38: .4byte gUnknown_02039238 +_08129D38: .4byte gAIScriptPtr thumb_func_end sub_8129CF8 thumb_func_start contest_ai_check_would_finish_combo @@ -2864,7 +2864,7 @@ _08129D74: movs r5, 0x1 _08129D7A: strh r5, [r4, 0x18] - ldr r1, _08129D94 @ =gUnknown_02039238 + ldr r1, _08129D94 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -2874,7 +2874,7 @@ _08129D7A: .align 2, 0 _08129D8C: .4byte gUnknown_02038570 _08129D90: .4byte 0x020192e4 -_08129D94: .4byte gUnknown_02039238 +_08129D94: .4byte gAIScriptPtr thumb_func_end contest_ai_check_would_finish_combo thumb_func_start sub_8129D98 @@ -2886,7 +2886,7 @@ sub_8129D98: @ 8129D98 ldrsh r0, [r0, r1] cmp r0, 0 beq _08129DCC - ldr r3, _08129DC8 @ =gUnknown_02039238 + ldr r3, _08129DC8 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] @@ -2902,9 +2902,9 @@ sub_8129D98: @ 8129D98 b _08129DD4 .align 2, 0 _08129DC4: .4byte 0x020192e4 -_08129DC8: .4byte gUnknown_02039238 +_08129DC8: .4byte gAIScriptPtr _08129DCC: - ldr r1, _08129DD8 @ =gUnknown_02039238 + ldr r1, _08129DD8 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x4 str r0, [r1] @@ -2912,7 +2912,7 @@ _08129DD4: pop {r0} bx r0 .align 2, 0 -_08129DD8: .4byte gUnknown_02039238 +_08129DD8: .4byte gAIScriptPtr thumb_func_end sub_8129D98 thumb_func_start sub_8129DDC @@ -2924,7 +2924,7 @@ sub_8129DDC: @ 8129DDC ldrsh r0, [r0, r1] cmp r0, 0 bne _08129E10 - ldr r3, _08129E0C @ =gUnknown_02039238 + ldr r3, _08129E0C @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] @@ -2940,9 +2940,9 @@ sub_8129DDC: @ 8129DDC b _08129E18 .align 2, 0 _08129E08: .4byte 0x020192e4 -_08129E0C: .4byte gUnknown_02039238 +_08129E0C: .4byte gAIScriptPtr _08129E10: - ldr r1, _08129E1C @ =gUnknown_02039238 + ldr r1, _08129E1C @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x4 str r0, [r1] @@ -2950,13 +2950,13 @@ _08129E18: pop {r0} bx r0 .align 2, 0 -_08129E1C: .4byte gUnknown_02039238 +_08129E1C: .4byte gAIScriptPtr thumb_func_end sub_8129DDC thumb_func_start contest_ai_get_condition contest_ai_get_condition: @ 8129E20 push {r4,r5,lr} - ldr r4, _08129E5C @ =gUnknown_02039238 + ldr r4, _08129E5C @ =gAIScriptPtr ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8128A7C @@ -2983,7 +2983,7 @@ contest_ai_get_condition: @ 8129E20 pop {r0} bx r0 .align 2, 0 -_08129E5C: .4byte gUnknown_02039238 +_08129E5C: .4byte gAIScriptPtr _08129E60: .4byte 0x020192e4 thumb_func_end contest_ai_get_condition @@ -2994,7 +2994,7 @@ sub_8129E64: @ 8129E64 ldr r0, _08129E94 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _08129E98 @ =gUnknown_02039238 + ldr r3, _08129E98 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -3013,7 +3013,7 @@ sub_8129E64: @ 8129E64 b _08129EA0 .align 2, 0 _08129E94: .4byte 0x020192e4 -_08129E98: .4byte gUnknown_02039238 +_08129E98: .4byte gAIScriptPtr _08129E9C: adds r0, r2, 0x5 str r0, [r3] @@ -3029,7 +3029,7 @@ sub_8129EA4: @ 8129EA4 ldr r0, _08129ED4 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _08129ED8 @ =gUnknown_02039238 + ldr r3, _08129ED8 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -3048,7 +3048,7 @@ sub_8129EA4: @ 8129EA4 b _08129EE0 .align 2, 0 _08129ED4: .4byte 0x020192e4 -_08129ED8: .4byte gUnknown_02039238 +_08129ED8: .4byte gAIScriptPtr _08129EDC: adds r0, r2, 0x5 str r0, [r3] @@ -3064,7 +3064,7 @@ sub_8129EE4: @ 8129EE4 ldr r0, _08129F14 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _08129F18 @ =gUnknown_02039238 + ldr r3, _08129F18 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -3083,7 +3083,7 @@ sub_8129EE4: @ 8129EE4 b _08129F20 .align 2, 0 _08129F14: .4byte 0x020192e4 -_08129F18: .4byte gUnknown_02039238 +_08129F18: .4byte gAIScriptPtr _08129F1C: adds r0, r2, 0x5 str r0, [r3] @@ -3099,7 +3099,7 @@ sub_8129F24: @ 8129F24 ldr r0, _08129F54 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _08129F58 @ =gUnknown_02039238 + ldr r3, _08129F58 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -3118,7 +3118,7 @@ sub_8129F24: @ 8129F24 b _08129F60 .align 2, 0 _08129F54: .4byte 0x020192e4 -_08129F58: .4byte gUnknown_02039238 +_08129F58: .4byte gAIScriptPtr _08129F5C: adds r0, r2, 0x5 str r0, [r3] @@ -3131,7 +3131,7 @@ _08129F60: contest_ai_get_used_combo_starter: @ 8129F64 push {r4-r6,lr} movs r6, 0 - ldr r5, _08129FAC @ =gUnknown_02039238 + ldr r5, _08129FAC @ =gAIScriptPtr ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8128A7C @@ -3165,7 +3165,7 @@ _08129F9C: pop {r0} bx r0 .align 2, 0 -_08129FAC: .4byte gUnknown_02039238 +_08129FAC: .4byte gAIScriptPtr _08129FB0: .4byte gContestMoves _08129FB4: .4byte 0x02019260 _08129FB8: .4byte 0x020192e4 @@ -3178,7 +3178,7 @@ sub_8129FBC: @ 8129FBC ldr r0, _08129FEC @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _08129FF0 @ =gUnknown_02039238 + ldr r3, _08129FF0 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -3197,7 +3197,7 @@ sub_8129FBC: @ 8129FBC b _08129FF8 .align 2, 0 _08129FEC: .4byte 0x020192e4 -_08129FF0: .4byte gUnknown_02039238 +_08129FF0: .4byte gAIScriptPtr _08129FF4: adds r0, r2, 0x5 str r0, [r3] @@ -3213,7 +3213,7 @@ sub_8129FFC: @ 8129FFC ldr r0, _0812A02C @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _0812A030 @ =gUnknown_02039238 + ldr r3, _0812A030 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -3232,7 +3232,7 @@ sub_8129FFC: @ 8129FFC b _0812A038 .align 2, 0 _0812A02C: .4byte 0x020192e4 -_0812A030: .4byte gUnknown_02039238 +_0812A030: .4byte gAIScriptPtr _0812A034: adds r0, r2, 0x5 str r0, [r3] @@ -3248,7 +3248,7 @@ sub_812A03C: @ 812A03C ldr r0, _0812A06C @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _0812A070 @ =gUnknown_02039238 + ldr r3, _0812A070 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -3267,7 +3267,7 @@ sub_812A03C: @ 812A03C b _0812A078 .align 2, 0 _0812A06C: .4byte 0x020192e4 -_0812A070: .4byte gUnknown_02039238 +_0812A070: .4byte gAIScriptPtr _0812A074: adds r0, r2, 0x5 str r0, [r3] @@ -3283,7 +3283,7 @@ sub_812A07C: @ 812A07C ldr r0, _0812A0AC @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _0812A0B0 @ =gUnknown_02039238 + ldr r3, _0812A0B0 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -3302,7 +3302,7 @@ sub_812A07C: @ 812A07C b _0812A0B8 .align 2, 0 _0812A0AC: .4byte 0x020192e4 -_0812A0B0: .4byte gUnknown_02039238 +_0812A0B0: .4byte gAIScriptPtr _0812A0B4: adds r0, r2, 0x5 str r0, [r3] @@ -3314,7 +3314,7 @@ _0812A0B8: thumb_func_start contest_ai_check_can_participate contest_ai_check_can_participate: @ 812A0BC push {lr} - ldr r0, _0812A0DC @ =gUnknown_02039238 + ldr r0, _0812A0DC @ =gAIScriptPtr ldr r0, [r0] ldrb r0, [r0, 0x1] bl sub_8128A7C @@ -3328,14 +3328,14 @@ contest_ai_check_can_participate: @ 812A0BC movs r0, 0 b _0812A0E8 .align 2, 0 -_0812A0DC: .4byte gUnknown_02039238 +_0812A0DC: .4byte gAIScriptPtr _0812A0E0: .4byte 0x020192e4 _0812A0E4: ldr r1, _0812A0F8 @ =0x020192e4 movs r0, 0x1 _0812A0E8: strh r0, [r1, 0x18] - ldr r1, _0812A0FC @ =gUnknown_02039238 + ldr r1, _0812A0FC @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x2 str r0, [r1] @@ -3343,7 +3343,7 @@ _0812A0E8: bx r0 .align 2, 0 _0812A0F8: .4byte 0x020192e4 -_0812A0FC: .4byte gUnknown_02039238 +_0812A0FC: .4byte gAIScriptPtr thumb_func_end contest_ai_check_can_participate thumb_func_start sub_812A100 @@ -3355,7 +3355,7 @@ sub_812A100: @ 812A100 ldrsh r0, [r0, r1] cmp r0, 0 beq _0812A134 - ldr r3, _0812A130 @ =gUnknown_02039238 + ldr r3, _0812A130 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] @@ -3371,9 +3371,9 @@ sub_812A100: @ 812A100 b _0812A13C .align 2, 0 _0812A12C: .4byte 0x020192e4 -_0812A130: .4byte gUnknown_02039238 +_0812A130: .4byte gAIScriptPtr _0812A134: - ldr r1, _0812A140 @ =gUnknown_02039238 + ldr r1, _0812A140 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x4 str r0, [r1] @@ -3381,7 +3381,7 @@ _0812A13C: pop {r0} bx r0 .align 2, 0 -_0812A140: .4byte gUnknown_02039238 +_0812A140: .4byte gAIScriptPtr thumb_func_end sub_812A100 thumb_func_start sub_812A144 @@ -3393,7 +3393,7 @@ sub_812A144: @ 812A144 ldrsh r0, [r0, r1] cmp r0, 0 bne _0812A178 - ldr r3, _0812A174 @ =gUnknown_02039238 + ldr r3, _0812A174 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] @@ -3409,9 +3409,9 @@ sub_812A144: @ 812A144 b _0812A180 .align 2, 0 _0812A170: .4byte 0x020192e4 -_0812A174: .4byte gUnknown_02039238 +_0812A174: .4byte gAIScriptPtr _0812A178: - ldr r1, _0812A184 @ =gUnknown_02039238 + ldr r1, _0812A184 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x4 str r0, [r1] @@ -3419,13 +3419,13 @@ _0812A180: pop {r0} bx r0 .align 2, 0 -_0812A184: .4byte gUnknown_02039238 +_0812A184: .4byte gAIScriptPtr thumb_func_end sub_812A144 thumb_func_start contest_ai_get_val_812A188 contest_ai_get_val_812A188: @ 812A188 push {r4,lr} - ldr r4, _0812A1BC @ =gUnknown_02039238 + ldr r4, _0812A1BC @ =gAIScriptPtr ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8128A7C @@ -3449,7 +3449,7 @@ contest_ai_get_val_812A188: @ 812A188 pop {r0} bx r0 .align 2, 0 -_0812A1BC: .4byte gUnknown_02039238 +_0812A1BC: .4byte gAIScriptPtr _0812A1C0: .4byte 0x020192e4 thumb_func_end contest_ai_get_val_812A188 @@ -3462,7 +3462,7 @@ sub_812A1C4: @ 812A1C4 ldrsh r0, [r0, r1] cmp r0, 0 beq _0812A1F8 - ldr r3, _0812A1F4 @ =gUnknown_02039238 + ldr r3, _0812A1F4 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] @@ -3478,9 +3478,9 @@ sub_812A1C4: @ 812A1C4 b _0812A200 .align 2, 0 _0812A1F0: .4byte 0x020192e4 -_0812A1F4: .4byte gUnknown_02039238 +_0812A1F4: .4byte gAIScriptPtr _0812A1F8: - ldr r1, _0812A204 @ =gUnknown_02039238 + ldr r1, _0812A204 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x4 str r0, [r1] @@ -3488,7 +3488,7 @@ _0812A200: pop {r0} bx r0 .align 2, 0 -_0812A204: .4byte gUnknown_02039238 +_0812A204: .4byte gAIScriptPtr thumb_func_end sub_812A1C4 thumb_func_start sub_812A208 @@ -3500,7 +3500,7 @@ sub_812A208: @ 812A208 ldrsh r0, [r0, r1] cmp r0, 0 bne _0812A23C - ldr r3, _0812A238 @ =gUnknown_02039238 + ldr r3, _0812A238 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] @@ -3516,9 +3516,9 @@ sub_812A208: @ 812A208 b _0812A244 .align 2, 0 _0812A234: .4byte 0x020192e4 -_0812A238: .4byte gUnknown_02039238 +_0812A238: .4byte gAIScriptPtr _0812A23C: - ldr r1, _0812A248 @ =gUnknown_02039238 + ldr r1, _0812A248 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x4 str r0, [r1] @@ -3526,13 +3526,13 @@ _0812A244: pop {r0} bx r0 .align 2, 0 -_0812A248: .4byte gUnknown_02039238 +_0812A248: .4byte gAIScriptPtr thumb_func_end sub_812A208 thumb_func_start sub_812A24C sub_812A24C: @ 812A24C push {r4,r5,lr} - ldr r5, _0812A28C @ =gUnknown_02039238 + ldr r5, _0812A28C @ =gAIScriptPtr ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8128A7C @@ -3563,7 +3563,7 @@ sub_812A24C: @ 812A24C pop {r0} bx r0 .align 2, 0 -_0812A28C: .4byte gUnknown_02039238 +_0812A28C: .4byte gAIScriptPtr _0812A290: .4byte 0x020192e4 thumb_func_end sub_812A24C @@ -3576,7 +3576,7 @@ sub_812A294: @ 812A294 ldrsh r0, [r0, r1] cmp r0, 0 bge _0812A2C8 - ldr r3, _0812A2C4 @ =gUnknown_02039238 + ldr r3, _0812A2C4 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] @@ -3592,9 +3592,9 @@ sub_812A294: @ 812A294 b _0812A2D0 .align 2, 0 _0812A2C0: .4byte 0x020192e4 -_0812A2C4: .4byte gUnknown_02039238 +_0812A2C4: .4byte gAIScriptPtr _0812A2C8: - ldr r1, _0812A2D4 @ =gUnknown_02039238 + ldr r1, _0812A2D4 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x4 str r0, [r1] @@ -3602,7 +3602,7 @@ _0812A2D0: pop {r0} bx r0 .align 2, 0 -_0812A2D4: .4byte gUnknown_02039238 +_0812A2D4: .4byte gAIScriptPtr thumb_func_end sub_812A294 thumb_func_start sub_812A2D8 @@ -3614,7 +3614,7 @@ sub_812A2D8: @ 812A2D8 ldrsh r0, [r0, r1] cmp r0, 0 ble _0812A30C - ldr r3, _0812A308 @ =gUnknown_02039238 + ldr r3, _0812A308 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] @@ -3630,9 +3630,9 @@ sub_812A2D8: @ 812A2D8 b _0812A314 .align 2, 0 _0812A304: .4byte 0x020192e4 -_0812A308: .4byte gUnknown_02039238 +_0812A308: .4byte gAIScriptPtr _0812A30C: - ldr r1, _0812A318 @ =gUnknown_02039238 + ldr r1, _0812A318 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x4 str r0, [r1] @@ -3640,7 +3640,7 @@ _0812A314: pop {r0} bx r0 .align 2, 0 -_0812A318: .4byte gUnknown_02039238 +_0812A318: .4byte gAIScriptPtr thumb_func_end sub_812A2D8 thumb_func_start sub_812A31C @@ -3652,7 +3652,7 @@ sub_812A31C: @ 812A31C ldrsh r0, [r0, r1] cmp r0, 0 bne _0812A350 - ldr r3, _0812A34C @ =gUnknown_02039238 + ldr r3, _0812A34C @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] @@ -3668,9 +3668,9 @@ sub_812A31C: @ 812A31C b _0812A358 .align 2, 0 _0812A348: .4byte 0x020192e4 -_0812A34C: .4byte gUnknown_02039238 +_0812A34C: .4byte gAIScriptPtr _0812A350: - ldr r1, _0812A35C @ =gUnknown_02039238 + ldr r1, _0812A35C @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x4 str r0, [r1] @@ -3678,7 +3678,7 @@ _0812A358: pop {r0} bx r0 .align 2, 0 -_0812A35C: .4byte gUnknown_02039238 +_0812A35C: .4byte gAIScriptPtr thumb_func_end sub_812A31C thumb_func_start sub_812A360 @@ -3690,7 +3690,7 @@ sub_812A360: @ 812A360 ldrsh r0, [r0, r1] cmp r0, 0 beq _0812A394 - ldr r3, _0812A390 @ =gUnknown_02039238 + ldr r3, _0812A390 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] @@ -3706,9 +3706,9 @@ sub_812A360: @ 812A360 b _0812A39C .align 2, 0 _0812A38C: .4byte 0x020192e4 -_0812A390: .4byte gUnknown_02039238 +_0812A390: .4byte gAIScriptPtr _0812A394: - ldr r1, _0812A3A0 @ =gUnknown_02039238 + ldr r1, _0812A3A0 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x4 str r0, [r1] @@ -3716,13 +3716,13 @@ _0812A39C: pop {r0} bx r0 .align 2, 0 -_0812A3A0: .4byte gUnknown_02039238 +_0812A3A0: .4byte gAIScriptPtr thumb_func_end sub_812A360 thumb_func_start sub_812A3A4 sub_812A3A4: @ 812A3A4 push {r4,lr} - ldr r4, _0812A3D8 @ =gUnknown_02039238 + ldr r4, _0812A3D8 @ =gAIScriptPtr ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8128A7C @@ -3747,7 +3747,7 @@ sub_812A3A4: @ 812A3A4 pop {r0} bx r0 .align 2, 0 -_0812A3D8: .4byte gUnknown_02039238 +_0812A3D8: .4byte gAIScriptPtr _0812A3DC: .4byte 0x020192e4 _0812A3E0: .4byte gUnknown_02038670 thumb_func_end sub_812A3A4 @@ -3761,7 +3761,7 @@ sub_812A3E4: @ 812A3E4 ldrsh r0, [r0, r1] cmp r0, 0 bge _0812A418 - ldr r3, _0812A414 @ =gUnknown_02039238 + ldr r3, _0812A414 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] @@ -3777,9 +3777,9 @@ sub_812A3E4: @ 812A3E4 b _0812A420 .align 2, 0 _0812A410: .4byte 0x020192e4 -_0812A414: .4byte gUnknown_02039238 +_0812A414: .4byte gAIScriptPtr _0812A418: - ldr r1, _0812A424 @ =gUnknown_02039238 + ldr r1, _0812A424 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x4 str r0, [r1] @@ -3787,7 +3787,7 @@ _0812A420: pop {r0} bx r0 .align 2, 0 -_0812A424: .4byte gUnknown_02039238 +_0812A424: .4byte gAIScriptPtr thumb_func_end sub_812A3E4 thumb_func_start sub_812A428 @@ -3799,7 +3799,7 @@ sub_812A428: @ 812A428 ldrsh r0, [r0, r1] cmp r0, 0 ble _0812A45C - ldr r3, _0812A458 @ =gUnknown_02039238 + ldr r3, _0812A458 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] @@ -3815,9 +3815,9 @@ sub_812A428: @ 812A428 b _0812A464 .align 2, 0 _0812A454: .4byte 0x020192e4 -_0812A458: .4byte gUnknown_02039238 +_0812A458: .4byte gAIScriptPtr _0812A45C: - ldr r1, _0812A468 @ =gUnknown_02039238 + ldr r1, _0812A468 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x4 str r0, [r1] @@ -3825,7 +3825,7 @@ _0812A464: pop {r0} bx r0 .align 2, 0 -_0812A468: .4byte gUnknown_02039238 +_0812A468: .4byte gAIScriptPtr thumb_func_end sub_812A428 thumb_func_start sub_812A46C @@ -3837,7 +3837,7 @@ sub_812A46C: @ 812A46C ldrsh r0, [r0, r1] cmp r0, 0 bne _0812A4A0 - ldr r3, _0812A49C @ =gUnknown_02039238 + ldr r3, _0812A49C @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] @@ -3853,9 +3853,9 @@ sub_812A46C: @ 812A46C b _0812A4A8 .align 2, 0 _0812A498: .4byte 0x020192e4 -_0812A49C: .4byte gUnknown_02039238 +_0812A49C: .4byte gAIScriptPtr _0812A4A0: - ldr r1, _0812A4AC @ =gUnknown_02039238 + ldr r1, _0812A4AC @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x4 str r0, [r1] @@ -3863,7 +3863,7 @@ _0812A4A8: pop {r0} bx r0 .align 2, 0 -_0812A4AC: .4byte gUnknown_02039238 +_0812A4AC: .4byte gAIScriptPtr thumb_func_end sub_812A46C thumb_func_start sub_812A4B0 @@ -3875,7 +3875,7 @@ sub_812A4B0: @ 812A4B0 ldrsh r0, [r0, r1] cmp r0, 0 beq _0812A4E4 - ldr r3, _0812A4E0 @ =gUnknown_02039238 + ldr r3, _0812A4E0 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] @@ -3891,9 +3891,9 @@ sub_812A4B0: @ 812A4B0 b _0812A4EC .align 2, 0 _0812A4DC: .4byte 0x020192e4 -_0812A4E0: .4byte gUnknown_02039238 +_0812A4E0: .4byte gAIScriptPtr _0812A4E4: - ldr r1, _0812A4F0 @ =gUnknown_02039238 + ldr r1, _0812A4F0 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x4 str r0, [r1] @@ -3901,13 +3901,13 @@ _0812A4EC: pop {r0} bx r0 .align 2, 0 -_0812A4F0: .4byte gUnknown_02039238 +_0812A4F0: .4byte gAIScriptPtr thumb_func_end sub_812A4B0 thumb_func_start sub_812A4F4 sub_812A4F4: @ 812A4F4 push {r4,lr} - ldr r4, _0812A52C @ =gUnknown_02039238 + ldr r4, _0812A52C @ =gAIScriptPtr ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8128A7C @@ -3934,7 +3934,7 @@ sub_812A4F4: @ 812A4F4 pop {r0} bx r0 .align 2, 0 -_0812A52C: .4byte gUnknown_02039238 +_0812A52C: .4byte gAIScriptPtr _0812A530: .4byte 0x02019204 _0812A534: .4byte gContestMoves thumb_func_end sub_812A4F4 @@ -3946,7 +3946,7 @@ sub_812A538: @ 812A538 ldr r0, _0812A568 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _0812A56C @ =gUnknown_02039238 + ldr r3, _0812A56C @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -3965,7 +3965,7 @@ sub_812A538: @ 812A538 b _0812A574 .align 2, 0 _0812A568: .4byte 0x020192e4 -_0812A56C: .4byte gUnknown_02039238 +_0812A56C: .4byte gAIScriptPtr _0812A570: adds r0, r2, 0x5 str r0, [r3] @@ -3981,7 +3981,7 @@ sub_812A578: @ 812A578 ldr r0, _0812A5A8 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _0812A5AC @ =gUnknown_02039238 + ldr r3, _0812A5AC @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -4000,7 +4000,7 @@ sub_812A578: @ 812A578 b _0812A5B4 .align 2, 0 _0812A5A8: .4byte 0x020192e4 -_0812A5AC: .4byte gUnknown_02039238 +_0812A5AC: .4byte gAIScriptPtr _0812A5B0: adds r0, r2, 0x5 str r0, [r3] @@ -4016,7 +4016,7 @@ sub_812A5B8: @ 812A5B8 ldr r0, _0812A5E8 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _0812A5EC @ =gUnknown_02039238 + ldr r3, _0812A5EC @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -4035,7 +4035,7 @@ sub_812A5B8: @ 812A5B8 b _0812A5F4 .align 2, 0 _0812A5E8: .4byte 0x020192e4 -_0812A5EC: .4byte gUnknown_02039238 +_0812A5EC: .4byte gAIScriptPtr _0812A5F0: adds r0, r2, 0x5 str r0, [r3] @@ -4051,7 +4051,7 @@ sub_812A5F8: @ 812A5F8 ldr r0, _0812A628 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _0812A62C @ =gUnknown_02039238 + ldr r3, _0812A62C @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -4070,7 +4070,7 @@ sub_812A5F8: @ 812A5F8 b _0812A634 .align 2, 0 _0812A628: .4byte 0x020192e4 -_0812A62C: .4byte gUnknown_02039238 +_0812A62C: .4byte gAIScriptPtr _0812A630: adds r0, r2, 0x5 str r0, [r3] @@ -4082,7 +4082,7 @@ _0812A634: thumb_func_start sub_812A638 sub_812A638: @ 812A638 push {r4,lr} - ldr r4, _0812A66C @ =gUnknown_02039238 + ldr r4, _0812A66C @ =gAIScriptPtr ldr r0, [r4] ldrb r0, [r0, 0x1] bl sub_8128A7C @@ -4107,7 +4107,7 @@ sub_812A638: @ 812A638 pop {r0} bx r0 .align 2, 0 -_0812A66C: .4byte gUnknown_02039238 +_0812A66C: .4byte gAIScriptPtr _0812A670: .4byte 0x02019204 thumb_func_end sub_812A638 @@ -4118,7 +4118,7 @@ sub_812A674: @ 812A674 ldr r0, _0812A6A4 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _0812A6A8 @ =gUnknown_02039238 + ldr r3, _0812A6A8 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -4137,7 +4137,7 @@ sub_812A674: @ 812A674 b _0812A6B0 .align 2, 0 _0812A6A4: .4byte 0x020192e4 -_0812A6A8: .4byte gUnknown_02039238 +_0812A6A8: .4byte gAIScriptPtr _0812A6AC: adds r0, r2, 0x5 str r0, [r3] @@ -4153,7 +4153,7 @@ sub_812A6B4: @ 812A6B4 ldr r0, _0812A6E4 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _0812A6E8 @ =gUnknown_02039238 + ldr r3, _0812A6E8 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -4172,7 +4172,7 @@ sub_812A6B4: @ 812A6B4 b _0812A6F0 .align 2, 0 _0812A6E4: .4byte 0x020192e4 -_0812A6E8: .4byte gUnknown_02039238 +_0812A6E8: .4byte gAIScriptPtr _0812A6EC: adds r0, r2, 0x5 str r0, [r3] @@ -4188,7 +4188,7 @@ sub_812A6F4: @ 812A6F4 ldr r0, _0812A724 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _0812A728 @ =gUnknown_02039238 + ldr r3, _0812A728 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -4207,7 +4207,7 @@ sub_812A6F4: @ 812A6F4 b _0812A730 .align 2, 0 _0812A724: .4byte 0x020192e4 -_0812A728: .4byte gUnknown_02039238 +_0812A728: .4byte gAIScriptPtr _0812A72C: adds r0, r2, 0x5 str r0, [r3] @@ -4223,7 +4223,7 @@ sub_812A734: @ 812A734 ldr r0, _0812A764 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _0812A768 @ =gUnknown_02039238 + ldr r3, _0812A768 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -4242,7 +4242,7 @@ sub_812A734: @ 812A734 b _0812A770 .align 2, 0 _0812A764: .4byte 0x020192e4 -_0812A768: .4byte gUnknown_02039238 +_0812A768: .4byte gAIScriptPtr _0812A76C: adds r0, r2, 0x5 str r0, [r3] @@ -4254,7 +4254,7 @@ _0812A770: thumb_func_start sub_812A774 sub_812A774: @ 812A774 push {r4,r5,lr} - ldr r5, _0812A7B4 @ =gUnknown_02039238 + ldr r5, _0812A7B4 @ =gAIScriptPtr ldr r0, [r5] ldrb r0, [r0, 0x1] bl sub_8128A7C @@ -4285,7 +4285,7 @@ sub_812A774: @ 812A774 pop {r0} bx r0 .align 2, 0 -_0812A7B4: .4byte gUnknown_02039238 +_0812A7B4: .4byte gAIScriptPtr _0812A7B8: .4byte 0x02019204 _0812A7BC: .4byte gContestEffects _0812A7C0: .4byte gContestMoves @@ -4298,7 +4298,7 @@ sub_812A7C4: @ 812A7C4 ldr r0, _0812A7F4 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _0812A7F8 @ =gUnknown_02039238 + ldr r3, _0812A7F8 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -4317,7 +4317,7 @@ sub_812A7C4: @ 812A7C4 b _0812A800 .align 2, 0 _0812A7F4: .4byte 0x020192e4 -_0812A7F8: .4byte gUnknown_02039238 +_0812A7F8: .4byte gAIScriptPtr _0812A7FC: adds r0, r2, 0x5 str r0, [r3] @@ -4333,7 +4333,7 @@ sub_812A804: @ 812A804 ldr r0, _0812A834 @ =0x020192e4 movs r1, 0x18 ldrsh r0, [r0, r1] - ldr r3, _0812A838 @ =gUnknown_02039238 + ldr r3, _0812A838 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] cmp r0, r1 @@ -4352,7 +4352,7 @@ sub_812A804: @ 812A804 b _0812A840 .align 2, 0 _0812A834: .4byte 0x020192e4 -_0812A838: .4byte gUnknown_02039238 +_0812A838: .4byte gAIScriptPtr _0812A83C: adds r0, r2, 0x5 str r0, [r3] @@ -4365,7 +4365,7 @@ _0812A840: sub_812A844: @ 812A844 push {r4,lr} ldr r3, _0812A864 @ =0x020192e4 - ldr r4, _0812A868 @ =gUnknown_02039238 + ldr r4, _0812A868 @ =gAIScriptPtr ldr r2, [r4] ldrb r0, [r2, 0x1] lsls r0, 1 @@ -4381,14 +4381,14 @@ sub_812A844: @ 812A844 bx r0 .align 2, 0 _0812A864: .4byte 0x020192e4 -_0812A868: .4byte gUnknown_02039238 +_0812A868: .4byte gAIScriptPtr thumb_func_end sub_812A844 thumb_func_start sub_812A86C sub_812A86C: @ 812A86C push {r4,lr} ldr r0, _0812A890 @ =0x020192e4 - ldr r4, _0812A894 @ =gUnknown_02039238 + ldr r4, _0812A894 @ =gAIScriptPtr ldr r3, [r4] ldrb r2, [r3, 0x1] lsls r2, 1 @@ -4406,14 +4406,14 @@ sub_812A86C: @ 812A86C bx r0 .align 2, 0 _0812A890: .4byte 0x020192e4 -_0812A894: .4byte gUnknown_02039238 +_0812A894: .4byte gAIScriptPtr thumb_func_end sub_812A86C thumb_func_start sub_812A898 sub_812A898: @ 812A898 push {r4,lr} ldr r0, _0812A8C4 @ =0x020192e4 - ldr r4, _0812A8C8 @ =gUnknown_02039238 + ldr r4, _0812A8C8 @ =gAIScriptPtr ldr r3, [r4] ldrb r2, [r3, 0x1] lsls r2, 1 @@ -4434,14 +4434,14 @@ sub_812A898: @ 812A898 bx r0 .align 2, 0 _0812A8C4: .4byte 0x020192e4 -_0812A8C8: .4byte gUnknown_02039238 +_0812A8C8: .4byte gAIScriptPtr thumb_func_end sub_812A898 thumb_func_start sub_812A8CC sub_812A8CC: @ 812A8CC push {r4,lr} ldr r2, _0812A8F4 @ =0x020192e4 - ldr r4, _0812A8F8 @ =gUnknown_02039238 + ldr r4, _0812A8F8 @ =gAIScriptPtr ldr r3, [r4] ldrb r1, [r3, 0x1] lsls r1, 1 @@ -4461,14 +4461,14 @@ sub_812A8CC: @ 812A8CC bx r0 .align 2, 0 _0812A8F4: .4byte 0x020192e4 -_0812A8F8: .4byte gUnknown_02039238 +_0812A8F8: .4byte gAIScriptPtr thumb_func_end sub_812A8CC thumb_func_start sub_812A8FC sub_812A8FC: @ 812A8FC push {r4,lr} ldr r2, _0812A924 @ =0x020192e4 - ldr r4, _0812A928 @ =gUnknown_02039238 + ldr r4, _0812A928 @ =gAIScriptPtr ldr r3, [r4] ldrb r1, [r3, 0x1] lsls r1, 1 @@ -4488,14 +4488,14 @@ sub_812A8FC: @ 812A8FC bx r0 .align 2, 0 _0812A924: .4byte 0x020192e4 -_0812A928: .4byte gUnknown_02039238 +_0812A928: .4byte gAIScriptPtr thumb_func_end sub_812A8FC thumb_func_start sub_812A92C sub_812A92C: @ 812A92C push {r4,lr} ldr r1, _0812A964 @ =0x020192e4 - ldr r4, _0812A968 @ =gUnknown_02039238 + ldr r4, _0812A968 @ =gAIScriptPtr ldr r3, [r4] ldrb r0, [r3, 0x1] lsls r0, 1 @@ -4523,7 +4523,7 @@ sub_812A92C: @ 812A92C b _0812A972 .align 2, 0 _0812A964: .4byte 0x020192e4 -_0812A968: .4byte gUnknown_02039238 +_0812A968: .4byte gAIScriptPtr _0812A96C: adds r0, r3, 0 adds r0, 0x8 @@ -4538,7 +4538,7 @@ _0812A972: sub_812A978: @ 812A978 push {r4,lr} ldr r1, _0812A9B0 @ =0x020192e4 - ldr r4, _0812A9B4 @ =gUnknown_02039238 + ldr r4, _0812A9B4 @ =gAIScriptPtr ldr r3, [r4] ldrb r0, [r3, 0x1] lsls r0, 1 @@ -4566,7 +4566,7 @@ sub_812A978: @ 812A978 b _0812A9BE .align 2, 0 _0812A9B0: .4byte 0x020192e4 -_0812A9B4: .4byte gUnknown_02039238 +_0812A9B4: .4byte gAIScriptPtr _0812A9B8: adds r0, r3, 0 adds r0, 0x8 @@ -4581,7 +4581,7 @@ _0812A9BE: sub_812A9C4: @ 812A9C4 push {r4,lr} ldr r1, _0812A9FC @ =0x020192e4 - ldr r4, _0812AA00 @ =gUnknown_02039238 + ldr r4, _0812AA00 @ =gAIScriptPtr ldr r3, [r4] ldrb r0, [r3, 0x1] lsls r0, 1 @@ -4609,7 +4609,7 @@ sub_812A9C4: @ 812A9C4 b _0812AA0A .align 2, 0 _0812A9FC: .4byte 0x020192e4 -_0812AA00: .4byte gUnknown_02039238 +_0812AA00: .4byte gAIScriptPtr _0812AA04: adds r0, r3, 0 adds r0, 0x8 @@ -4624,7 +4624,7 @@ _0812AA0A: sub_812AA10: @ 812AA10 push {r4,lr} ldr r1, _0812AA48 @ =0x020192e4 - ldr r4, _0812AA4C @ =gUnknown_02039238 + ldr r4, _0812AA4C @ =gAIScriptPtr ldr r3, [r4] ldrb r0, [r3, 0x1] lsls r0, 1 @@ -4652,7 +4652,7 @@ sub_812AA10: @ 812AA10 b _0812AA56 .align 2, 0 _0812AA48: .4byte 0x020192e4 -_0812AA4C: .4byte gUnknown_02039238 +_0812AA4C: .4byte gAIScriptPtr _0812AA50: adds r0, r3, 0 adds r0, 0x8 @@ -4667,7 +4667,7 @@ _0812AA56: sub_812AA5C: @ 812AA5C push {r4,lr} ldr r2, _0812AA98 @ =0x020192e4 - ldr r4, _0812AA9C @ =gUnknown_02039238 + ldr r4, _0812AA9C @ =gAIScriptPtr ldr r3, [r4] ldrb r1, [r3, 0x1] lsls r1, 1 @@ -4696,7 +4696,7 @@ sub_812AA5C: @ 812AA5C b _0812AAA4 .align 2, 0 _0812AA98: .4byte 0x020192e4 -_0812AA9C: .4byte gUnknown_02039238 +_0812AA9C: .4byte gAIScriptPtr _0812AAA0: adds r0, r3, 0x7 str r0, [r4] @@ -4710,7 +4710,7 @@ _0812AAA4: sub_812AAAC: @ 812AAAC push {r4,lr} ldr r2, _0812AAE8 @ =0x020192e4 - ldr r4, _0812AAEC @ =gUnknown_02039238 + ldr r4, _0812AAEC @ =gAIScriptPtr ldr r3, [r4] ldrb r1, [r3, 0x1] lsls r1, 1 @@ -4739,7 +4739,7 @@ sub_812AAAC: @ 812AAAC b _0812AAF4 .align 2, 0 _0812AAE8: .4byte 0x020192e4 -_0812AAEC: .4byte gUnknown_02039238 +_0812AAEC: .4byte gAIScriptPtr _0812AAF0: adds r0, r3, 0x7 str r0, [r4] @@ -4753,7 +4753,7 @@ _0812AAF4: sub_812AAFC: @ 812AAFC push {r4,lr} ldr r2, _0812AB38 @ =0x020192e4 - ldr r4, _0812AB3C @ =gUnknown_02039238 + ldr r4, _0812AB3C @ =gAIScriptPtr ldr r3, [r4] ldrb r1, [r3, 0x1] lsls r1, 1 @@ -4782,7 +4782,7 @@ sub_812AAFC: @ 812AAFC b _0812AB44 .align 2, 0 _0812AB38: .4byte 0x020192e4 -_0812AB3C: .4byte gUnknown_02039238 +_0812AB3C: .4byte gAIScriptPtr _0812AB40: adds r0, r3, 0x7 str r0, [r4] @@ -4796,7 +4796,7 @@ _0812AB44: sub_812AB4C: @ 812AB4C push {r4,lr} ldr r2, _0812AB88 @ =0x020192e4 - ldr r4, _0812AB8C @ =gUnknown_02039238 + ldr r4, _0812AB8C @ =gAIScriptPtr ldr r3, [r4] ldrb r1, [r3, 0x1] lsls r1, 1 @@ -4825,7 +4825,7 @@ sub_812AB4C: @ 812AB4C b _0812AB94 .align 2, 0 _0812AB88: .4byte 0x020192e4 -_0812AB8C: .4byte gUnknown_02039238 +_0812AB8C: .4byte gAIScriptPtr _0812AB90: adds r0, r3, 0x7 str r0, [r4] @@ -4842,7 +4842,7 @@ sub_812AB9C: @ 812AB9C movs r2, 0xFF ands r2, r0 ldr r1, _0812ABD4 @ =0x020192e4 - ldr r4, _0812ABD8 @ =gUnknown_02039238 + ldr r4, _0812ABD8 @ =gAIScriptPtr ldr r3, [r4] ldrb r0, [r3, 0x1] lsls r0, 1 @@ -4866,7 +4866,7 @@ sub_812AB9C: @ 812AB9C b _0812ABE0 .align 2, 0 _0812ABD4: .4byte 0x020192e4 -_0812ABD8: .4byte gUnknown_02039238 +_0812ABD8: .4byte gAIScriptPtr _0812ABDC: adds r0, r3, 0x6 str r0, [r4] @@ -4883,7 +4883,7 @@ sub_812ABE8: @ 812ABE8 movs r2, 0xFF ands r2, r0 ldr r1, _0812AC20 @ =0x020192e4 - ldr r4, _0812AC24 @ =gUnknown_02039238 + ldr r4, _0812AC24 @ =gAIScriptPtr ldr r3, [r4] ldrb r0, [r3, 0x1] lsls r0, 1 @@ -4907,7 +4907,7 @@ sub_812ABE8: @ 812ABE8 b _0812AC2C .align 2, 0 _0812AC20: .4byte 0x020192e4 -_0812AC24: .4byte gUnknown_02039238 +_0812AC24: .4byte gAIScriptPtr _0812AC28: adds r0, r3, 0x6 str r0, [r4] @@ -4919,7 +4919,7 @@ _0812AC2C: thumb_func_start sub_812AC34 sub_812AC34: @ 812AC34 - ldr r3, _0812AC50 @ =gUnknown_02039238 + ldr r3, _0812AC50 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] @@ -4934,13 +4934,13 @@ sub_812AC34: @ 812AC34 str r1, [r3] bx lr .align 2, 0 -_0812AC50: .4byte gUnknown_02039238 +_0812AC50: .4byte gAIScriptPtr thumb_func_end sub_812AC34 thumb_func_start sub_812AC54 sub_812AC54: @ 812AC54 push {r4,lr} - ldr r4, _0812AC80 @ =gUnknown_02039238 + ldr r4, _0812AC80 @ =gAIScriptPtr ldr r0, [r4] adds r0, 0x5 bl sub_812ACA4 @@ -4960,7 +4960,7 @@ sub_812AC54: @ 812AC54 pop {r0} bx r0 .align 2, 0 -_0812AC80: .4byte gUnknown_02039238 +_0812AC80: .4byte gAIScriptPtr thumb_func_end sub_812AC54 thumb_func_start sub_812AC84 @@ -5019,7 +5019,7 @@ _0812ACDC: .4byte 0x020192e4 _0812ACE0: subs r0, 0x1 strb r0, [r3] - ldr r2, _0812ACF8 @ =gUnknown_02039238 + ldr r2, _0812ACF8 @ =gAIScriptPtr ldrb r0, [r3] lsls r0, 2 adds r1, 0x20 @@ -5031,7 +5031,7 @@ _0812ACF4: pop {r1} bx r1 .align 2, 0 -_0812ACF8: .4byte gUnknown_02039238 +_0812ACF8: .4byte gAIScriptPtr thumb_func_end sub_812ACC8 thumb_func_start contest_ai_check_for_exciting_move @@ -5067,7 +5067,7 @@ _0812AD30: _0812AD36: ldr r0, _0812AD48 @ =0x020192e4 strh r5, [r0, 0x18] - ldr r1, _0812AD4C @ =gUnknown_02039238 + ldr r1, _0812AD4C @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x1 str r0, [r1] @@ -5076,7 +5076,7 @@ _0812AD36: bx r0 .align 2, 0 _0812AD48: .4byte 0x020192e4 -_0812AD4C: .4byte gUnknown_02039238 +_0812AD4C: .4byte gAIScriptPtr thumb_func_end contest_ai_check_for_exciting_move thumb_func_start sub_812AD50 @@ -5088,7 +5088,7 @@ sub_812AD50: @ 812AD50 ldrsh r0, [r0, r1] cmp r0, 0 beq _0812AD84 - ldr r3, _0812AD80 @ =gUnknown_02039238 + ldr r3, _0812AD80 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] @@ -5104,9 +5104,9 @@ sub_812AD50: @ 812AD50 b _0812AD8C .align 2, 0 _0812AD7C: .4byte 0x020192e4 -_0812AD80: .4byte gUnknown_02039238 +_0812AD80: .4byte gAIScriptPtr _0812AD84: - ldr r1, _0812AD90 @ =gUnknown_02039238 + ldr r1, _0812AD90 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x4 str r0, [r1] @@ -5114,7 +5114,7 @@ _0812AD8C: pop {r0} bx r0 .align 2, 0 -_0812AD90: .4byte gUnknown_02039238 +_0812AD90: .4byte gAIScriptPtr thumb_func_end sub_812AD50 thumb_func_start sub_812AD94 @@ -5126,7 +5126,7 @@ sub_812AD94: @ 812AD94 ldrsh r0, [r0, r1] cmp r0, 0 bne _0812ADC8 - ldr r3, _0812ADC4 @ =gUnknown_02039238 + ldr r3, _0812ADC4 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] @@ -5142,9 +5142,9 @@ sub_812AD94: @ 812AD94 b _0812ADD0 .align 2, 0 _0812ADC0: .4byte 0x020192e4 -_0812ADC4: .4byte gUnknown_02039238 +_0812ADC4: .4byte gAIScriptPtr _0812ADC8: - ldr r1, _0812ADD4 @ =gUnknown_02039238 + ldr r1, _0812ADD4 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x4 str r0, [r1] @@ -5152,14 +5152,14 @@ _0812ADD0: pop {r0} bx r0 .align 2, 0 -_0812ADD4: .4byte gUnknown_02039238 +_0812ADD4: .4byte gAIScriptPtr thumb_func_end sub_812AD94 thumb_func_start sub_812ADD8 sub_812ADD8: @ 812ADD8 push {r4-r7,lr} movs r6, 0 - ldr r2, _0812AE08 @ =gUnknown_02039238 + ldr r2, _0812AE08 @ =gAIScriptPtr ldr r0, [r2] ldrb r4, [r0, 0x1] ldrb r0, [r0, 0x2] @@ -5182,7 +5182,7 @@ sub_812ADD8: @ 812ADD8 mov r12, r5 b _0812AE2E .align 2, 0 -_0812AE08: .4byte gUnknown_02039238 +_0812AE08: .4byte gAIScriptPtr _0812AE0C: .4byte gUnknown_02038570 _0812AE10: .4byte 0x020192e4 _0812AE14: @@ -5223,7 +5223,7 @@ sub_812AE44: @ 812AE44 ldrsh r0, [r0, r1] cmp r0, 0 beq _0812AE78 - ldr r3, _0812AE74 @ =gUnknown_02039238 + ldr r3, _0812AE74 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] @@ -5239,9 +5239,9 @@ sub_812AE44: @ 812AE44 b _0812AE80 .align 2, 0 _0812AE70: .4byte 0x020192e4 -_0812AE74: .4byte gUnknown_02039238 +_0812AE74: .4byte gAIScriptPtr _0812AE78: - ldr r1, _0812AE84 @ =gUnknown_02039238 + ldr r1, _0812AE84 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x4 str r0, [r1] @@ -5249,7 +5249,7 @@ _0812AE80: pop {r0} bx r0 .align 2, 0 -_0812AE84: .4byte gUnknown_02039238 +_0812AE84: .4byte gAIScriptPtr thumb_func_end sub_812AE44 thumb_func_start sub_812AE88 @@ -5261,7 +5261,7 @@ sub_812AE88: @ 812AE88 ldrsh r0, [r0, r1] cmp r0, 0 bne _0812AEBC - ldr r3, _0812AEB8 @ =gUnknown_02039238 + ldr r3, _0812AEB8 @ =gAIScriptPtr ldr r2, [r3] ldrb r1, [r2] ldrb r0, [r2, 0x1] @@ -5277,9 +5277,9 @@ sub_812AE88: @ 812AE88 b _0812AEC4 .align 2, 0 _0812AEB4: .4byte 0x020192e4 -_0812AEB8: .4byte gUnknown_02039238 +_0812AEB8: .4byte gAIScriptPtr _0812AEBC: - ldr r1, _0812AEC8 @ =gUnknown_02039238 + ldr r1, _0812AEC8 @ =gAIScriptPtr ldr r0, [r1] adds r0, 0x4 str r0, [r1] @@ -5287,7 +5287,7 @@ _0812AEC4: pop {r0} bx r0 .align 2, 0 -_0812AEC8: .4byte gUnknown_02039238 +_0812AEC8: .4byte gAIScriptPtr thumb_func_end sub_812AE88 .align 2, 0 @ Don't pad with nop. diff --git a/include/pokemon.h b/include/pokemon.h index a1042b0c0..450a8174f 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -242,81 +242,72 @@ struct UnknownPokemonStruct struct BattlePokemon { - /*0x00*/ u16 species; - /*0x02*/ u16 attack; - /*0x04*/ u16 defense; - /*0x06*/ u16 speed; - /*0x08*/ u16 spAttack; - /*0x0A*/ u16 spDefense; - /*0x0C*/ u16 moves[4]; - /*0x14*/ u32 hpIV:5; - u32 attackIV:5; - u32 defenseIV:5; - u32 speedIV:5; - u32 spAttackIV:5; - u32 spDefenseIV:5; - u32 isEgg:1; - u32 altAbility:1; - /*0x18*/ s8 statStages[8]; - /*0x20*/ u8 ability; - /*0x21*/ u8 type1; - /*0x22*/ u8 type2; - /*0x23*/ u8 unknown; - /*0x24*/ u8 pp[4]; - /*0x28*/ u16 hp; - /*0x2A*/ u8 level; - /*0x2B*/ u8 friendship; - /*0x2C*/ u16 maxHP; - /*0x2E*/ u16 item; - /*0x30*/ u8 nickname[POKEMON_NAME_LENGTH + 1]; - /*0x3B*/ u8 ppBonuses; - /*0x3C*/ u8 otName[8]; - /*0x44*/ u32 experience; - /*0x48*/ u32 personality; - /*0x4C*/ u32 status1; - /*0x50*/ u32 status2; - /*0x54*/ u32 otId; + /* 0x00 */ u16 species; + /* 0x02 */ u16 attack; + /* 0x04 */ u16 defense; + /* 0x06 */ u16 speed; + /* 0x08 */ u16 spAttack; + /* 0x0A */ u16 spDefense; + /* 0x0C */ u16 moves[4]; + /* 0x14 */ u32 hpIV:5; + /* 0x14 */ u32 attackIV:5; + /* 0x15 */ u32 defenseIV:5; + /* 0x15 */ u32 speedIV:5; + /* 0x16 */ u32 spAttackIV:5; + /* 0x17 */ u32 spDefenseIV:5; + /* 0x17 */ u32 isEgg:1; + /* 0x17 */ u32 altAbility:1; + /* 0x18 */ s8 statStages[8]; + /* 0x20 */ u8 ability; + /* 0x21 */ u8 type1; + /* 0x22 */ u8 type2; + /* 0x23 */ u8 unknown; + /* 0x24 */ u8 pp[4]; + /* 0x28 */ u16 hp; + /* 0x2A */ u8 level; + /* 0x2B */ u8 friendship; + /* 0x2C */ u16 maxHP; + /* 0x2E */ u16 item; + /* 0x30 */ u8 nickname[POKEMON_NAME_LENGTH + 1]; + /* 0x3B */ u8 ppBonuses; + /* 0x3C */ u8 otName[8]; + /* 0x44 */ u32 experience; + /* 0x48 */ u32 personality; + /* 0x4C */ u32 status1; + /* 0x50 */ u32 status2; + /* 0x54 */ u32 otId; }; struct BaseStats { - u8 baseHP; - u8 baseAttack; - u8 baseDefense; - u8 baseSpeed; - u8 baseSpAttack; - u8 baseSpDefense; - - u8 type1, type2; - - u8 catchRate; - - u8 expYield; - - u16 evYield_HP:2; - u16 evYield_Attack:2; - u16 evYield_Defense:2; - u16 evYield_Speed:2; - u16 evYield_SpAttack:2; - u16 evYield_SpDefense:2; - - u16 item1, item2; - - u8 genderRatio; - - u8 eggCycles; - - u8 friendship; - - u8 growthRate; - - u8 eggGroup1, eggGroup2; - - u8 ability1, ability2; - - u8 safariZoneFleeRate; - - u8 bodyColor; + /* 0x00 */ u8 baseHP; + /* 0x01 */ u8 baseAttack; + /* 0x02 */ u8 baseDefense; + /* 0x03 */ u8 baseSpeed; + /* 0x04 */ u8 baseSpAttack; + /* 0x05 */ u8 baseSpDefense; + /* 0x06 */ u8 type1; + /* 0x07 */ u8 type2; + /* 0x08 */ u8 catchRate; + /* 0x09 */ u8 expYield; + /* 0x0A */ u16 evYield_HP:2; + /* 0x0A */ u16 evYield_Attack:2; + /* 0x0A */ u16 evYield_Defense:2; + /* 0x0A */ u16 evYield_Speed:2; + /* 0x0B */ u16 evYield_SpAttack:2; + /* 0x0B */ u16 evYield_SpDefense:2; + /* 0x0C */ u16 item1; + /* 0x0E */ u16 item2; + /* 0x10 */ u8 genderRatio; + /* 0x11 */ u8 eggCycles; + /* 0x12 */ u8 friendship; + /* 0x13 */ u8 growthRate; + /* 0x14 */ u8 eggGroup1; + /* 0x15 */ u8 eggGroup2; + /* 0x16 */ u8 ability1; + /* 0x17 */ u8 ability2; + /* 0x18 */ u8 safariZoneFleeRate; + /* 0x19 */ u8 bodyColor; }; struct BattleMove diff --git a/shared_syms.txt b/shared_syms.txt index bc187a1ea..b85cd1f76 100644 --- a/shared_syms.txt +++ b/shared_syms.txt @@ -1,4 +1,6 @@ unk_2000000 = 0x2000000; +ewram = 0x2000000; + unk_2004000 = 0x2004000; unk_2007800 = 0x2007800; @@ -6,6 +8,8 @@ unk_2007900 = 0x2007900; unk_2008000 = 0x2008000; +unk_2016000 = 0x2016000; + unk_20160BC = 0x20160BC; unk_2016800 = 0x2016800; diff --git a/src/battle_ai.c b/src/battle_ai.c index ec15a7bf6..945176b64 100644 --- a/src/battle_ai.c +++ b/src/battle_ai.c @@ -3,45 +3,70 @@ #include "pokemon.h" #include "rng.h" +#define AIScriptRead32(ptr) ((ptr)[0] | (ptr)[1] << 8 | (ptr)[2] << 16 | (ptr)[3] << 24) +#define AIScriptRead16(ptr) ((ptr)[0] | (ptr)[1] << 8) +#define AIScriptRead8(ptr) ((ptr)[0]) + +/* +this file is a mess. I stopped part way because it starts to involve a huge struct that begins at 0x2000000 and goes +all the way to at least 0x2016800, in addition to extremely hard functions that I can't seem to get right. I am leaving this file +as it currently is until someone bothers to document this huge struct. +*/ + extern u8 sub_8015A98(u8, u8, u8); extern u8 battle_side_get_owner(u8); -extern u32 battle_get_per_side_status(u8); +extern s16 battle_get_per_side_status(u8); +extern u8 b_first_side(u8, u8, u8); extern u16 gUnknown_020239F8; extern u8 gUnknown_02024A60; extern u8 gUnknown_02024C07; extern u8 gUnknown_02024C08; extern u8 gUnknown_02024C0C; +extern u16 gUnknown_02024DEC; +extern u8 gUnknown_02024C68; +extern u32 gUnknown_02024BEC; +extern u8 gUnknown_0201601C; +extern u8 gUnknown_0201601F; +extern u16 gUnknown_02024BE6; +extern u8 gCritMultiplier; extern u16 gUnknown_02024C34[]; -extern u8 *gUnknown_02039238; +extern u32 gUnknown_02024ACC[]; +extern u32 gUnknown_02024C98[]; +extern u16 gUnknown_02024C7A[]; +extern struct BattlePokemon gUnknown_02024A8C[]; +extern u8 gUnknown_030042E0[]; +extern u8 *gAIScriptPtr; extern u16 gTrainerBattleOpponent; -extern struct Trainer gTrainers[]; extern u32 gBitTable[]; extern u8 *BattleAIs[]; +extern struct Trainer gTrainers[]; extern struct BattlePokemon gBattleMons[]; +extern struct BattleMove gBattleMoves[]; +extern struct BaseStats gBaseStats[]; extern void (*gBattleAICmdTable[])(void); struct UnknownStruct1 { - u16 unk0[2][8]; - u8 unk20[2]; - u8 unk22[2]; - u16 items[4]; - u8 unk8; +/* 0x00 */ u16 unk0[2][8]; +/* 0x20 */ u8 unk20[2]; +/* 0x22 */ u8 unk22[2]; +/* 0x24 */ u16 items[4]; +/* 0x2C */ u8 unk8; }; -struct UnknownStruct2 -{ - u8 unk0; - u8 unk1; - u16 unk2; - u8 unk4[4]; - u8 filler8[4]; - u32 aiFlags; - u8 unk10; - u8 unk11; - u8 filler12[6]; - u8 unk18[4]; +struct UnknownStruct2 /* 0x2016800 */ +{ +/* 0x00 */ u8 unk0; +/* 0x01 */ u8 moveConsidered; +/* 0x02 */ u16 unk2; +/* 0x04 */ s8 score[4]; // score? +/* 0x08 */ u32 unk8; +/* 0x0C */ u32 aiFlags; +/* 0x10 */ u8 unk10; +/* 0x11 */ u8 unk11; +/* 0x12 */ u8 filler12[6]; +/* 0x18 */ u8 unk18[4]; }; struct UnknownStruct3 @@ -50,6 +75,22 @@ struct UnknownStruct3 u8 unk20; }; +struct SmallBattleStruct1 +{ + u8 unk1; + u8 unk2; + u8 unk3; + u8 unk4; +}; + +// move to battle.h before PR. +struct BattleStruct /* 0x2000000 */ +{ + u8 filler0[0x1601C]; + struct SmallBattleStruct1 unk; +}; + +extern struct BattleStruct unk_2000000; extern struct UnknownStruct2 unk_2016800; extern struct UnknownStruct1 unk_2016A00; extern struct UnknownStruct3 unk_2016C00; @@ -88,14 +129,14 @@ void sub_810715C(void) for(i = 0; (u32)i < 28; i++) data[i] = 0; for(i = 0; i < 4; i++) - unk_2016800.unk4[i] = 100; + unk_2016800.score[i] = 100; r7 = sub_8015A98(gUnknown_02024A60, 0, 0xFF); for(i = 0; i < 4; i++) { u16 rand; if(gBitTable[i] & r7) - unk_2016800.unk4[i] = 0; + unk_2016800.score[i] = 0; rand = Random(); unk_2016800.unk18[i] = 100 - (rand & 0xF); } @@ -139,26 +180,26 @@ u8 sub_81072A8(void) } unk_2016800.aiFlags >>= 1; unk_2016800.unk11++; - unk_2016800.unk1 = 0; + unk_2016800.moveConsidered = 0; } if(unk_2016800.unk10 & 2) return 4; if(unk_2016800.unk10 & 4) return 5; r5 = 1; - arr1[0] = unk_2016800.unk4[0]; + arr1[0] = unk_2016800.score[0]; arr2[0] = 0; for(i = 1; i < 4; i++) { - if(arr1[0] < (s8)unk_2016800.unk4[i]) + if(arr1[0] < (s8)unk_2016800.score[i]) { r5 = 1; - arr1[0] = unk_2016800.unk4[i]; + arr1[0] = unk_2016800.score[i]; arr2[0] = i; } - if(arr1[0] == (s8)unk_2016800.unk4[i]) + if(arr1[0] == (s8)unk_2016800.score[i]) { - arr1[r5] = unk_2016800.unk4[i]; + arr1[r5] = unk_2016800.score[i]; arr2[r5++] = i; } } @@ -174,29 +215,29 @@ void sub_8107374(void) case 3: //Needed to match. break; case 0: - gUnknown_02039238 = BattleAIs[unk_2016800.unk11]; - if(gBattleMons[gUnknown_02024C07].pp[unk_2016800.unk1] == 0) + gAIScriptPtr = BattleAIs[unk_2016800.unk11]; + if(gBattleMons[gUnknown_02024C07].pp[unk_2016800.moveConsidered] == 0) { unk_2016800.unk2 = 0; } else { - unk_2016800.unk2 = gBattleMons[gUnknown_02024C07].moves[unk_2016800.unk1]; + unk_2016800.unk2 = gBattleMons[gUnknown_02024C07].moves[unk_2016800.moveConsidered]; } unk_2016800.unk0++; break; case 1: if(unk_2016800.unk2 != 0) - gBattleAICmdTable[*(u8 *)gUnknown_02039238](); //weird... + gBattleAICmdTable[*(u8 *)gAIScriptPtr](); //weird... else { - unk_2016800.unk4[unk_2016800.unk1] = 0; + unk_2016800.score[unk_2016800.moveConsidered] = 0; unk_2016800.unk10 |= 1; } if(unk_2016800.unk10 & 1) { - unk_2016800.unk1++; - if(unk_2016800.unk1 < 4 && !(unk_2016800.unk10 & 8)) + unk_2016800.moveConsidered++; + if(unk_2016800.moveConsidered < 4 && !(unk_2016800.unk10 & 8)) unk_2016800.unk0 = 0; else unk_2016800.unk0++; @@ -276,11 +317,1279 @@ void unref_sub_81074A0(u8 a) void sub_81074C4(u8 a, u8 b) { if(battle_side_get_owner(a) == 0) - unk_2016A00.unk20[battle_get_per_side_status(a) % 2] = b; + unk_2016A00.unk20[battle_get_per_side_status(a) & 1] = b; } void sub_81074F8(u8 a, u8 b) { if(battle_side_get_owner(a) == 0) - unk_2016A00.unk22[battle_get_per_side_status(a) % 2] = b; + unk_2016A00.unk22[battle_get_per_side_status(a) & 1] = b; +} + +void BattleAICmd_if_random(void) +{ + u16 random = Random(); + + if (!(random % 256 >= gAIScriptPtr[1])) // roll a random value. is it less than the parameter of the if_random call? (96 on if_random 80 will return true) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2); + else + gAIScriptPtr += 6; +} + +void BattleAICmd_if_not_random(void) +{ + u16 random = Random(); + + if (!(random % 256 <= gAIScriptPtr[1])) // roll a random value. is it greater than the parameter of the if_random call? (96 on if_random 80 will return true) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2); + else + gAIScriptPtr += 6; +} + +void BattleAICmd_if_random_1(void) // if RNG Value equal to +{ + u16 random = Random(); + + if (random % 256 == gAIScriptPtr[1]) // roll a random value. is it greater than the parameter of the if_random call? (96 on if_random 80 will return true) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2); + else + gAIScriptPtr += 6; +} + +void BattleAICmd_if_not_random_1(void) // if RNG value not equal to +{ + u16 random = Random(); + + if (random % 256 != gAIScriptPtr[1]) // roll a random value. is it greater than the parameter of the if_random call? (96 on if_random 80 will return true) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2); + else + gAIScriptPtr += 6; +} + +void BattleAICmd_score(void) +{ + unk_2016800.score[unk_2016800.moveConsidered] += gAIScriptPtr[1]; // add the result to the array of the move consider's score. + + if(unk_2016800.score[unk_2016800.moveConsidered] < 0) // if the score is negative, flatten it to 0. + unk_2016800.score[unk_2016800.moveConsidered] = 0; + + gAIScriptPtr += 2; // AI return. +} + +void BattleAICmd_if_hp_less_than(void) +{ + u16 var; + + if ( gAIScriptPtr[1] == 1 ) + var = gUnknown_02024C07; + else + var = gUnknown_02024C08; + + if ((u32)(100 * gBattleMons[var].hp / gBattleMons[var].maxHP) < gAIScriptPtr[2]) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 3); + else + gAIScriptPtr += 7; +} + +void BattleAICmd_if_hp_more_than(void) +{ + u16 var; + + if ( gAIScriptPtr[1] == 1 ) + var = gUnknown_02024C07; + else + var = gUnknown_02024C08; + + if ((u32)(100 * gBattleMons[var].hp / gBattleMons[var].maxHP) > gAIScriptPtr[2]) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 3); + else + gAIScriptPtr += 7; +} + +void BattleAICmd_if_hp_equal(void) +{ + u16 var; + + if ( gAIScriptPtr[1] == 1 ) + var = gUnknown_02024C07; + else + var = gUnknown_02024C08; + + if ((u32)(100 * gBattleMons[var].hp / gBattleMons[var].maxHP) == gAIScriptPtr[2]) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 3); + else + gAIScriptPtr += 7; +} + +void BattleAICmd_if_hp_not_equal(void) +{ + u16 var; + + if ( gAIScriptPtr[1] == 1 ) + var = gUnknown_02024C07; + else + var = gUnknown_02024C08; + + if ((u32)(100 * gBattleMons[var].hp / gBattleMons[var].maxHP) != gAIScriptPtr[2]) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 3); + else + gAIScriptPtr += 7; +} + +void BattleAICmd_if_status(void) +{ + u16 var; + u32 temp; + + if ( gAIScriptPtr[1] == 1 ) + var = gUnknown_02024C07; + else + var = gUnknown_02024C08; + + temp = AIScriptRead32(gAIScriptPtr + 2); + + if (gBattleMons[var].status1 & temp) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 6); + else + gAIScriptPtr += 10; +} + +void BattleAICmd_if_not_status(void) +{ + u16 var; + u32 temp; + + if ( gAIScriptPtr[1] == 1 ) + var = gUnknown_02024C07; + else + var = gUnknown_02024C08; + + temp = AIScriptRead32(gAIScriptPtr + 2); + + if (!(gBattleMons[var].status1 & temp)) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 6); + else + gAIScriptPtr += 10; +} + +void BattleAICmd_if_status2(void) +{ + u8 var; + u32 temp; + + if ( gAIScriptPtr[1] == 1 ) + var = gUnknown_02024C07; + else + var = gUnknown_02024C08; + + temp = AIScriptRead32(gAIScriptPtr + 2); + + if (gBattleMons[var].status2 & temp) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 6); + else + gAIScriptPtr += 10; +} + +void BattleAICmd_if_not_status2(void) +{ + u8 var; + u32 temp; + + if ( gAIScriptPtr[1] == 1 ) + var = gUnknown_02024C07; + else + var = gUnknown_02024C08; + + temp = AIScriptRead32(gAIScriptPtr + 2); + + if (!(gBattleMons[var].status2 & temp)) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 6); + else + gAIScriptPtr += 10; +} + +void BattleAICmd_if_status3(void) +{ + u8 var; + u32 temp; + + if ( gAIScriptPtr[1] == 1 ) + var = gUnknown_02024C07; + else + var = gUnknown_02024C08; + + temp = AIScriptRead32(gAIScriptPtr + 2); + + if ( gUnknown_02024C98[var] & temp ) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 6); + else + gAIScriptPtr += 10; +} + +void BattleAICmd_if_not_status3(void) +{ + u8 var; + u32 temp; + + if ( gAIScriptPtr[1] == 1 ) + var = gUnknown_02024C07; + else + var = gUnknown_02024C08; + + temp = AIScriptRead32(gAIScriptPtr + 2); + + if (!(gUnknown_02024C98[var] & temp)) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 6); + else + gAIScriptPtr += 10; +} + +void BattleAICmd_if_status4(void) +{ + u8 var; + u32 temp; + u32 temp2; + + if ( gAIScriptPtr[1] == 1 ) + var = gUnknown_02024C07; + else + var = gUnknown_02024C08; + + temp = battle_get_per_side_status(var) & 1; + temp2 = AIScriptRead32(gAIScriptPtr + 2); + + if ( gUnknown_02024C7A[temp] & temp2 ) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 6); + else + gAIScriptPtr += 10; +} + +void BattleAICmd_if_not_status4(void) +{ + u8 var; + u32 temp; + u32 temp2; + + if (gAIScriptPtr[1] == 1) + var = gUnknown_02024C07; + else + var = gUnknown_02024C08; + + temp = battle_get_per_side_status(var) & 1; + temp2 = AIScriptRead32(gAIScriptPtr + 2); + + if (!(gUnknown_02024C7A[temp] & temp2)) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 6); + else + gAIScriptPtr += 10; +} + +void BattleAICmd_if_less_than(void) +{ + if (unk_2016800.unk8 < gAIScriptPtr[1]) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2); + else + gAIScriptPtr += 6; +} + +void BattleAICmd_if_more_than(void) +{ + if (unk_2016800.unk8 > gAIScriptPtr[1]) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2); + else + gAIScriptPtr += 6; +} + +void BattleAICmd_if_equal(void) +{ + if (unk_2016800.unk8 == gAIScriptPtr[1]) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2); + else + gAIScriptPtr += 6; +} + +void BattleAICmd_if_not_equal(void) +{ + if (unk_2016800.unk8 != gAIScriptPtr[1]) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2); + else + gAIScriptPtr += 6; +} + +void BattleAICmd_if_less_than_32(void) +{ + u8 *temp = AIScriptRead32(gAIScriptPtr + 1); + + if (unk_2016800.unk8 < *temp) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 5); + else + gAIScriptPtr += 9; +} + +void BattleAICmd_if_more_than_32(void) +{ + u8 *temp = AIScriptRead32(gAIScriptPtr + 1); + + if (unk_2016800.unk8 > *temp) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 5); + else + gAIScriptPtr += 9; +} + +void BattleAICmd_if_equal_32(void) +{ + u8 *temp = AIScriptRead32(gAIScriptPtr + 1); + + if (unk_2016800.unk8 == *temp) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 5); + else + gAIScriptPtr += 9; } + +void BattleAICmd_if_not_equal_32(void) +{ + u8 *temp = AIScriptRead32(gAIScriptPtr + 1); + + if (unk_2016800.unk8 != *temp) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 5); + else + gAIScriptPtr += 9; +} + +void BattleAICmd_if_move(void) +{ + u16 move = AIScriptRead16(gAIScriptPtr + 1); + + if (unk_2016800.unk2 == move) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 3); + else + gAIScriptPtr += 7; +} + +void BattleAICmd_if_not_move(void) +{ + u16 move = AIScriptRead16(gAIScriptPtr + 1); + + if (unk_2016800.unk2 != move) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 3); + else + gAIScriptPtr += 7; +} + +void BattleAICmd_if_in_bytes(void) +{ + u8 *ptr = AIScriptRead32(gAIScriptPtr + 1); + + while(*ptr != 0xFF) + { + if(unk_2016800.unk8 == *ptr) + { + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 5); + return; + } + ptr++; + } + gAIScriptPtr += 9; +} + +void BattleAICmd_if_not_in_bytes(void) +{ + u8 *ptr = AIScriptRead32(gAIScriptPtr + 1); + + while(*ptr != 0xFF) + { + if(unk_2016800.unk8 == *ptr) + { + gAIScriptPtr += 9; + return; + } + ptr++; + } + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 5); +} + +void BattleAICmd_if_in_words(void) +{ + u16 *ptr = AIScriptRead32(gAIScriptPtr + 1); + + while(*ptr != 0xFFFF) + { + if(unk_2016800.unk8 == *ptr) + { + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 5); + return; + } + ptr++; + } + gAIScriptPtr += 9; +} + +void BattleAICmd_if_not_in_words(void) +{ + u16 *ptr = AIScriptRead32(gAIScriptPtr + 1); + + while(*ptr != 0xFFFF) + { + if(unk_2016800.unk8 == *ptr) + { + gAIScriptPtr += 9; + return; + } + ptr++; + } + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 5); +} + +void BattleAICmd_if_user_can_damage(void) +{ + s32 i; + + for(i = 0; i < 4; i++) + { + if (gBattleMons[gUnknown_02024C07].moves[i] != 0 + && gBattleMoves[gBattleMons[gUnknown_02024C07].moves[i]].power != 0) + break; + } + if(i == 4) + gAIScriptPtr += 5; + else + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 1); +} + +void BattleAICmd_if_user_cant_damage(void) +{ + s32 i; + + for(i = 0; i < 4; i++) + { + if (gBattleMons[gUnknown_02024C07].moves[i] != 0 + && gBattleMoves[gBattleMons[gUnknown_02024C07].moves[i]].power != 0) + break; + } + if(i != 4) + gAIScriptPtr += 5; + else + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 1); +} + +void BattleAICmd_unk_21(void) +{ + unk_2016800.unk8 = gUnknown_030042E0[19]; + gAIScriptPtr += 1; +} + +void BattleAICmd_get_type(void) +{ + u8 typeVar = gAIScriptPtr[1]; + + switch(typeVar) + { + case 1: + unk_2016800.unk8 = gBattleMons[gUnknown_02024C07].type1; + break; + case 0: + unk_2016800.unk8 = gBattleMons[gUnknown_02024C08].type1; + break; + case 3: + unk_2016800.unk8 = gBattleMons[gUnknown_02024C07].type2; + break; + case 2: + unk_2016800.unk8 = gBattleMons[gUnknown_02024C08].type2; + break; + case 4: + unk_2016800.unk8 = gBattleMoves[unk_2016800.unk2].type; + break; + } + gAIScriptPtr += 2; +} + +void BattleAICmd_unk_23(void) +{ + unk_2016800.unk8 = gBattleMoves[unk_2016800.unk2].power; + gAIScriptPtr += 1; +} + +__attribute__((naked)) +void BattleAICmd_unk_24(void) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x14\n\ + movs r3, 0\n\ + ldr r0, _08108328 @ =gUnknown_083F62BC\n\ + ldrh r1, [r0]\n\ + ldr r4, _0810832C @ =0x0000ffff\n\ + ldr r6, _08108330 @ =gBattleMoves\n\ + ldr r5, _08108334 @ =0x02016800\n\ + cmp r1, r4\n\ + beq _0810822E\n\ + ldrh r1, [r5, 0x2]\n\ + lsls r0, r1, 1\n\ + adds r0, r1\n\ + lsls r0, 2\n\ + adds r0, r6\n\ + ldrb r2, [r0]\n\ + ldr r1, _08108328 @ =gUnknown_083F62BC\n\ +_0810821E:\n\ + ldrh r0, [r1]\n\ + cmp r2, r0\n\ + beq _0810822E\n\ + adds r1, 0x2\n\ + adds r3, 0x1\n\ + ldrh r0, [r1]\n\ + cmp r0, r4\n\ + bne _0810821E\n\ +_0810822E:\n\ + ldrh r0, [r5, 0x2]\n\ + lsls r1, r0, 1\n\ + adds r1, r0\n\ + lsls r1, 2\n\ + adds r1, r6\n\ + ldrb r0, [r1, 0x1]\n\ + cmp r0, 0x1\n\ + bhi _08108240\n\ + b _081083B2\n\ +_08108240:\n\ + lsls r0, r3, 1\n\ + ldr r1, _08108328 @ =gUnknown_083F62BC\n\ + adds r0, r1\n\ + ldrh r3, [r0]\n\ + ldr r0, _0810832C @ =0x0000ffff\n\ + cmp r3, r0\n\ + beq _08108250\n\ + b _081083B2\n\ +_08108250:\n\ + ldr r0, _08108338 @ =gUnknown_02024DEC\n\ + movs r1, 0\n\ + strh r1, [r0]\n\ + ldr r2, _0810833C @ =0xfffff81c\n\ + adds r0, r5, r2\n\ + strb r1, [r0]\n\ + adds r2, 0x3\n\ + adds r0, r5, r2\n\ + movs r2, 0x1\n\ + strb r2, [r0]\n\ + ldr r0, _08108340 @ =gUnknown_02024C68\n\ + strb r1, [r0]\n\ + ldr r0, _08108344 @ =gCritMultiplier\n\ + strb r2, [r0]\n\ + movs r6, 0\n\ + mov r9, r3\n\ + ldr r0, _08108328 @ =gUnknown_083F62BC\n\ + ldrh r0, [r0]\n\ + str r0, [sp, 0x10]\n\ +_08108276:\n\ + movs r3, 0\n\ + ldr r5, _08108348 @ =gBattleMons\n\ + lsls r4, r6, 1\n\ + ldr r7, _0810834C @ =gUnknown_02024C07\n\ + lsls r1, r6, 2\n\ + mov r8, r1\n\ + adds r2, r6, 0x1\n\ + mov r10, r2\n\ + ldr r0, [sp, 0x10]\n\ + cmp r0, r9\n\ + beq _081082BA\n\ + ldr r2, _08108330 @ =gBattleMoves\n\ + ldrb r1, [r7]\n\ + movs r0, 0x58\n\ + muls r0, r1\n\ + adds r0, r4, r0\n\ + adds r1, r5, 0\n\ + adds r1, 0xC\n\ + adds r0, r1\n\ + ldrh r1, [r0]\n\ + lsls r0, r1, 1\n\ + adds r0, r1\n\ + lsls r0, 2\n\ + adds r0, r2\n\ + ldrb r2, [r0]\n\ + ldr r1, _08108328 @ =gUnknown_083F62BC\n\ +_081082AA:\n\ + ldrh r0, [r1]\n\ + cmp r2, r0\n\ + beq _081082BA\n\ + adds r1, 0x2\n\ + adds r3, 0x1\n\ + ldrh r0, [r1]\n\ + cmp r0, r9\n\ + bne _081082AA\n\ +_081082BA:\n\ + ldrb r1, [r7]\n\ + movs r0, 0x58\n\ + muls r0, r1\n\ + adds r0, r4, r0\n\ + adds r1, r5, 0\n\ + adds r1, 0xC\n\ + adds r1, r0, r1\n\ + ldrh r0, [r1]\n\ + cmp r0, 0\n\ + beq _0810835C\n\ + lsls r0, r3, 1\n\ + ldr r2, _08108328 @ =gUnknown_083F62BC\n\ + adds r0, r2\n\ + ldrh r0, [r0]\n\ + cmp r0, r9\n\ + bne _0810835C\n\ + ldr r0, _08108330 @ =gBattleMoves\n\ + ldrh r2, [r1]\n\ + lsls r1, r2, 1\n\ + adds r1, r2\n\ + lsls r1, 2\n\ + adds r1, r0\n\ + ldrb r0, [r1, 0x1]\n\ + cmp r0, 0x1\n\ + bls _0810835C\n\ + ldr r5, _08108350 @ =gUnknown_02024BE6\n\ + strh r2, [r5]\n\ + ldrb r0, [r7]\n\ + ldr r4, _08108354 @ =gUnknown_02024C08\n\ + ldrb r1, [r4]\n\ + bl sub_801CAF8\n\ + ldrh r0, [r5]\n\ + ldrb r1, [r7]\n\ + ldrb r2, [r4]\n\ + bl move_effectiveness_something\n\ + mov r4, sp\n\ + add r4, r8\n\ + ldr r2, _08108358 @ =gUnknown_02024BEC\n\ + ldr r0, _08108334 @ =0x02016800\n\ + adds r0, 0x18\n\ + adds r0, r6, r0\n\ + ldrb r1, [r0]\n\ + ldr r0, [r2]\n\ + muls r0, r1\n\ + movs r1, 0x64\n\ + bl __divsi3\n\ + str r0, [r4]\n\ + cmp r0, 0\n\ + bne _08108364\n\ + movs r0, 0x1\n\ + str r0, [r4]\n\ + b _08108364\n\ + .align 2, 0\n\ +_08108328: .4byte gUnknown_083F62BC\n\ +_0810832C: .4byte 0x0000ffff\n\ +_08108330: .4byte gBattleMoves\n\ +_08108334: .4byte 0x02016800\n\ +_08108338: .4byte gUnknown_02024DEC\n\ +_0810833C: .4byte 0xfffff81c\n\ +_08108340: .4byte gUnknown_02024C68\n\ +_08108344: .4byte gCritMultiplier\n\ +_08108348: .4byte gBattleMons\n\ +_0810834C: .4byte gUnknown_02024C07\n\ +_08108350: .4byte gUnknown_02024BE6\n\ +_08108354: .4byte gUnknown_02024C08\n\ +_08108358: .4byte gUnknown_02024BEC\n\ +_0810835C:\n\ + mov r1, sp\n\ + add r1, r8\n\ + movs r0, 0\n\ + str r0, [r1]\n\ +_08108364:\n\ + mov r6, r10\n\ + cmp r6, 0x3\n\ + ble _08108276\n\ + movs r6, 0\n\ + ldr r1, _081083A4 @ =0x02016800\n\ + ldrb r0, [r1, 0x1]\n\ + lsls r0, 2\n\ + add r0, sp\n\ + ldr r2, [sp]\n\ + ldr r0, [r0]\n\ + adds r5, r1, 0\n\ + ldr r4, _081083A8 @ =gAIScriptPtr\n\ + cmp r2, r0\n\ + bgt _0810839A\n\ + adds r3, r5, 0\n\ + mov r2, sp\n\ +_08108384:\n\ + adds r2, 0x4\n\ + adds r6, 0x1\n\ + cmp r6, 0x3\n\ + bgt _0810839A\n\ + ldrb r0, [r3, 0x1]\n\ + lsls r0, 2\n\ + add r0, sp\n\ + ldr r1, [r2]\n\ + ldr r0, [r0]\n\ + cmp r1, r0\n\ + ble _08108384\n\ +_0810839A:\n\ + cmp r6, 0x4\n\ + bne _081083AC\n\ + movs r0, 0x2\n\ + str r0, [r5, 0x8]\n\ + b _081083B8\n\ + .align 2, 0\n\ +_081083A4: .4byte 0x02016800\n\ +_081083A8: .4byte gAIScriptPtr\n\ +_081083AC:\n\ + movs r0, 0x1\n\ + str r0, [r5, 0x8]\n\ + b _081083B8\n\ +_081083B2:\n\ + movs r0, 0\n\ + str r0, [r5, 0x8]\n\ + ldr r4, _081083D0 @ =gAIScriptPtr\n\ +_081083B8:\n\ + ldr r0, [r4]\n\ + adds r0, 0x1\n\ + str r0, [r4]\n\ + add sp, 0x14\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ +_081083D0: .4byte gAIScriptPtr\n\ + .syntax divided\n"); +} + +void BattleAICmd_get_move(void) +{ + if ( gAIScriptPtr[1] == 1 ) + unk_2016800.unk8 = gUnknown_02024C34[gUnknown_02024C07]; + else + unk_2016800.unk8 = gUnknown_02024C34[gUnknown_02024C08]; + + gAIScriptPtr += 2; +} + +void BattleAICmd_if_type(void) +{ + if ( gAIScriptPtr[1] == unk_2016800.unk8 ) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2); + else + gAIScriptPtr += 6; +} + +void BattleAICmd_unk_27(void) // if_not_type +{ + if ( gAIScriptPtr[1] != unk_2016800.unk8 ) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2); + else + gAIScriptPtr += 6; +} + +void BattleAICmd_if_would_go_first(void) +{ + if ( b_first_side(gUnknown_02024C07, gUnknown_02024C08, 1) == gAIScriptPtr[1] ) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2); + else + gAIScriptPtr += 6; +} + +void BattleAICmd_if_would_not_go_first(void) +{ + if ( b_first_side(gUnknown_02024C07, gUnknown_02024C08, 1) != gAIScriptPtr[1] ) + gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2); + else + gAIScriptPtr += 6; +} + +void BattleAICmd_unk_2A(void) +{} + +void BattleAICmd_unk_2B(void) +{} + +__attribute__((naked)) +void BattleAICmd_count_alive_pokemon(void) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r9\n\ + mov r6, r8\n\ + push {r6,r7}\n\ + ldr r1, _08108550 @ =0x02016800\n\ + movs r0, 0\n\ + str r0, [r1, 0x8]\n\ + ldr r0, _08108554 @ =gAIScriptPtr\n\ + ldr r0, [r0]\n\ + ldrb r0, [r0, 0x1]\n\ + cmp r0, 0x1\n\ + bne _0810855C\n\ + ldr r0, _08108558 @ =gUnknown_02024C07\n\ + b _0810855E\n\ + .align 2, 0\n\ +_08108550: .4byte 0x02016800\n\ +_08108554: .4byte gAIScriptPtr\n\ +_08108558: .4byte gUnknown_02024C07\n\ +_0810855C:\n\ + ldr r0, _081085A8 @ =gUnknown_02024C08\n\ +_0810855E:\n\ + ldrb r5, [r0]\n\ + adds r0, r5, 0\n\ + bl battle_side_get_owner\n\ + lsls r0, 24\n\ + ldr r1, _081085AC @ =gEnemyParty\n\ + mov r9, r1\n\ + cmp r0, 0\n\ + bne _08108574\n\ + ldr r0, _081085B0 @ =gPlayerParty\n\ + mov r9, r0\n\ +_08108574:\n\ + ldr r0, _081085B4 @ =gUnknown_020239F8\n\ + ldrh r1, [r0]\n\ + movs r0, 0x1\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _081085BC\n\ + ldr r4, _081085B8 @ =gUnknown_02024A6A\n\ + lsls r0, r5, 1\n\ + adds r0, r4\n\ + ldrb r0, [r0]\n\ + mov r8, r0\n\ + adds r0, r5, 0\n\ + bl battle_get_per_side_status\n\ + movs r1, 0x2\n\ + eors r0, r1\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + bl battle_get_side_with_given_state\n\ + lsls r0, 24\n\ + lsrs r0, 23\n\ + adds r0, r4\n\ + ldrb r6, [r0]\n\ + b _081085C6\n\ + .align 2, 0\n\ +_081085A8: .4byte gUnknown_02024C08\n\ +_081085AC: .4byte gEnemyParty\n\ +_081085B0: .4byte gPlayerParty\n\ +_081085B4: .4byte gUnknown_020239F8\n\ +_081085B8: .4byte gUnknown_02024A6A\n\ +_081085BC:\n\ + ldr r1, _08108624 @ =gUnknown_02024A6A\n\ + lsls r0, r5, 1\n\ + adds r0, r1\n\ + ldrb r6, [r0]\n\ + mov r8, r6\n\ +_081085C6:\n\ + movs r5, 0\n\ + ldr r7, _08108628 @ =0x02016800\n\ +_081085CA:\n\ + cmp r5, r8\n\ + beq _08108608\n\ + cmp r5, r6\n\ + beq _08108608\n\ + movs r0, 0x64\n\ + muls r0, r5\n\ + mov r1, r9\n\ + adds r4, r1, r0\n\ + adds r0, r4, 0\n\ + movs r1, 0x39\n\ + bl GetMonData\n\ + cmp r0, 0\n\ + beq _08108608\n\ + adds r0, r4, 0\n\ + movs r1, 0x41\n\ + bl GetMonData\n\ + cmp r0, 0\n\ + beq _08108608\n\ + adds r0, r4, 0\n\ + movs r1, 0x41\n\ + bl GetMonData\n\ + movs r1, 0xCE\n\ + lsls r1, 1\n\ + cmp r0, r1\n\ + beq _08108608\n\ + ldr r0, [r7, 0x8]\n\ + adds r0, 0x1\n\ + str r0, [r7, 0x8]\n\ +_08108608:\n\ + adds r5, 0x1\n\ + cmp r5, 0x5\n\ + ble _081085CA\n\ + ldr r1, _0810862C @ =gAIScriptPtr\n\ + ldr r0, [r1]\n\ + adds r0, 0x2\n\ + str r0, [r1]\n\ + pop {r3,r4}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ +_08108624: .4byte gUnknown_02024A6A\n\ +_08108628: .4byte 0x02016800\n\ +_0810862C: .4byte gAIScriptPtr\n\ + .syntax divided"); +} + +void BattleAICmd_unk_2D(void) +{ + unk_2016800.unk8 = unk_2016800.unk2; + gAIScriptPtr += 1; +} + +void BattleAICmd_unk_2E(void) +{ + unk_2016800.unk8 = gBattleMoves[unk_2016800.unk2].effect; + gAIScriptPtr += 1; +} + +void BattleAICmd_get_ability(void) +{ + u8 var; + + if(gAIScriptPtr[1] == 1) + var = gUnknown_02024C07; + else + var = gUnknown_02024C08; + if(battle_side_get_owner(var) == 0) + { + //register u8 unk asm("r1") = battle_get_per_side_status(var) & 1; + s32 unk = battle_get_per_side_status(var) & 1; + + if(unk_2016A00.unk20[unk] != 0) + { + ((struct UnknownStruct2 *)((u8 *)&unk_2016A00 - 512))->unk8 = unk_2016A00.unk20[unk]; + gAIScriptPtr += 2; + return; + } + //_081086C8 + if(gBattleMons[var].ability == 0x17 || gBattleMons[var].ability == 0x2A || gBattleMons[var].ability == 0x47) + { + //_081086E4 + unk_2016800.unk8 = gBattleMons[var].ability; + gAIScriptPtr += 2; + return; + } + //_081086FC + if(gBaseStats[gBattleMons[var].species].ability1 != 0) + { + if(gBaseStats[gBattleMons[var].species].ability2 != 0) + { + if(Random() & 1) + { + ((struct UnknownStruct2 *)((u8 *)&unk_2016A00 - 512))->unk8 = gBaseStats[gBattleMons[var].species].ability1; + gAIScriptPtr += 2; + return; + } + //_0810873C + else + { + ((struct UnknownStruct2 *)((u8 *)&unk_2016A00 - 512))->unk8 = gBaseStats[gBattleMons[var].species].ability2; + gAIScriptPtr += 2; + return; + } + } + //_08108754 + else + { + ((struct UnknownStruct2 *)((u8 *)&unk_2016A00 - 512))->unk8 = gBaseStats[gBattleMons[var].species].ability1; + gAIScriptPtr += 2; + return; + } + } + //_08108764 + else + { + ((struct UnknownStruct2 *)((u8 *)&unk_2016A00 - 512))->unk8 = gBaseStats[gBattleMons[var].species].ability2; + gAIScriptPtr += 2; + return; + } + } + //_08108774 + unk_2016800.unk8 = gBattleMons[var].ability; + gAIScriptPtr += 2; +} + +// this should probably be in battle.h after this file is fully decompiled. +extern struct +{ + u8 unknownStuff[0x16000]; + struct + { + u8 filler0[0x1C]; + u8 unk1C; + u8 filler1D[2]; + u8 unk1F; + u8 filler16020[0x7E0]; + } unk_2016000; + struct UnknownStruct2 unk_2016800; +} ewram; //0x02000000 + +#ifdef NONMATCHING +void BattleAICmd_unk_30(void) +{ + s32 loopCounter; + + gUnknown_02024DEC = 0; + ewram.unk_2016000.unk1C = 0; + ewram.unk_2016000.unk1F = 1; + gUnknown_02024C68 = 0; + gCritMultiplier = 1; + ewram.unk_2016800.unk8 = 0; + + for(loopCounter = 0; loopCounter <= 3; loopCounter++) + { + gUnknown_02024BEC = 40; + gUnknown_02024BE6 = gBattleMons[gUnknown_02024C07].moves[loopCounter]; + + if (gUnknown_02024BE6) + { + move_effectiveness_something(gUnknown_02024BE6, gUnknown_02024C07, gUnknown_02024C08); + + // reduce by 1/3. + if (gUnknown_02024BEC == 120) + gUnknown_02024BEC = 80; + if(gUnknown_02024BEC == 240) + gUnknown_02024BEC = 160; + if(gUnknown_02024BEC == 30) + gUnknown_02024BEC = 20; + if(gUnknown_02024BEC == 15) + gUnknown_02024BEC = 10; + + if(gUnknown_02024C68 & 8) + gUnknown_02024BEC = 0; + + if (ewram.unk_2016800.unk8 < gUnknown_02024BEC) + ewram.unk_2016800.unk8 = gUnknown_02024BEC; + } + } + gAIScriptPtr += 1; +} +#else +__attribute__((naked)) +void BattleAICmd_unk_30(void) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r8\n\ + push {r7}\n\ + ldr r0, _0810885C @ =gUnknown_02024DEC\n\ + movs r2, 0\n\ + strh r2, [r0]\n\ + ldr r1, _08108860 @ =0x02000000\n\ + ldr r3, _08108864 @ =0x0001601c\n\ + adds r0, r1, r3\n\ + movs r4, 0\n\ + strb r2, [r0]\n\ + adds r3, 0x3\n\ + adds r0, r1, r3\n\ + movs r3, 0x1\n\ + strb r3, [r0]\n\ + ldr r0, _08108868 @ =gUnknown_02024C68\n\ + strb r2, [r0]\n\ + ldr r0, _0810886C @ =gCritMultiplier\n\ + strb r3, [r0]\n\ + movs r0, 0xB4\n\ + lsls r0, 9\n\ + adds r1, r0\n\ + str r4, [r1, 0x8]\n\ + movs r5, 0\n\ + ldr r4, _08108870 @ =gUnknown_02024BEC\n\ + ldr r7, _08108874 @ =gUnknown_02024BE6\n\ + ldr r3, _08108878 @ =gUnknown_02024A8C\n\ + mov r8, r3\n\ + ldr r6, _0810887C @ =gUnknown_02024C07\n\ +_081087DA:\n\ + movs r0, 0x28\n\ + str r0, [r4]\n\ + lsls r1, r5, 1\n\ + ldrb r2, [r6]\n\ + movs r0, 0x58\n\ + muls r0, r2\n\ + adds r1, r0\n\ + add r1, r8\n\ + ldrh r0, [r1]\n\ + strh r0, [r7]\n\ + lsls r0, 16\n\ + cmp r0, 0\n\ + beq _08108844\n\ + ldrh r0, [r7]\n\ + ldrb r1, [r6]\n\ + ldr r2, _08108880 @ =gUnknown_02024C08\n\ + ldrb r2, [r2]\n\ + bl move_effectiveness_something\n\ + ldr r0, [r4]\n\ + cmp r0, 0x78\n\ + bne _0810880A\n\ + movs r0, 0x50\n\ + str r0, [r4]\n\ +_0810880A:\n\ + ldr r0, [r4]\n\ + cmp r0, 0xF0\n\ + bne _08108814\n\ + movs r0, 0xA0\n\ + str r0, [r4]\n\ +_08108814:\n\ + ldr r0, [r4]\n\ + cmp r0, 0x1E\n\ + bne _0810881E\n\ + movs r0, 0x14\n\ + str r0, [r4]\n\ +_0810881E:\n\ + ldr r0, [r4]\n\ + cmp r0, 0xF\n\ + bne _08108828\n\ + movs r0, 0xA\n\ + str r0, [r4]\n\ +_08108828:\n\ + ldr r0, _08108868 @ =gUnknown_02024C68\n\ + ldrb r1, [r0]\n\ + movs r0, 0x8\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08108838\n\ + movs r0, 0\n\ + str r0, [r4]\n\ +_08108838:\n\ + ldr r2, _08108884 @ =0x02016800\n\ + ldr r0, [r2, 0x8]\n\ + ldr r1, [r4]\n\ + cmp r0, r1\n\ + bcs _08108844\n\ + str r1, [r2, 0x8]\n\ +_08108844:\n\ + adds r5, 0x1\n\ + cmp r5, 0x3\n\ + ble _081087DA\n\ + ldr r1, _08108888 @ =gAIScriptPtr\n\ + ldr r0, [r1]\n\ + adds r0, 0x1\n\ + str r0, [r1]\n\ + pop {r3}\n\ + mov r8, r3\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ +_0810885C: .4byte gUnknown_02024DEC\n\ +_08108860: .4byte 0x02000000\n\ +_08108864: .4byte 0x0001601c\n\ +_08108868: .4byte gUnknown_02024C68\n\ +_0810886C: .4byte gCritMultiplier\n\ +_08108870: .4byte gUnknown_02024BEC\n\ +_08108874: .4byte gUnknown_02024BE6\n\ +_08108878: .4byte gUnknown_02024A8C\n\ +_0810887C: .4byte gUnknown_02024C07\n\ +_08108880: .4byte gUnknown_02024C08\n\ +_08108884: .4byte 0x02016800\n\ +_08108888: .4byte gAIScriptPtr\n\ + .syntax divided\n"); +} +#endif + +// same function as above but no for loop. +__attribute__((naked)) +void BattleAICmd_if_damage_bonus(void) +{ + asm(".syntax unified\n\ + push {r4,r5,lr}\n\ + ldr r0, _08108928 @ =gUnknown_02024DEC\n\ + movs r1, 0\n\ + strh r1, [r0]\n\ + ldr r2, _0810892C @ =0x02000000\n\ + ldr r3, _08108930 @ =0x0001601c\n\ + adds r0, r2, r3\n\ + strb r1, [r0]\n\ + adds r3, 0x3\n\ + adds r0, r2, r3\n\ + movs r3, 0x1\n\ + strb r3, [r0]\n\ + ldr r5, _08108934 @ =gUnknown_02024C68\n\ + strb r1, [r5]\n\ + ldr r0, _08108938 @ =gCritMultiplier\n\ + strb r3, [r0]\n\ + ldr r4, _0810893C @ =gUnknown_02024BEC\n\ + movs r0, 0x28\n\ + str r0, [r4]\n\ + ldr r1, _08108940 @ =gUnknown_02024BE6\n\ + movs r0, 0xB4\n\ + lsls r0, 9\n\ + adds r2, r0\n\ + ldrh r0, [r2, 0x2]\n\ + strh r0, [r1]\n\ + ldrh r0, [r1]\n\ + ldr r1, _08108944 @ =gUnknown_02024C07\n\ + ldrb r1, [r1]\n\ + ldr r2, _08108948 @ =gUnknown_02024C08\n\ + ldrb r2, [r2]\n\ + bl move_effectiveness_something\n\ + ldr r0, [r4]\n\ + cmp r0, 0x78\n\ + bne _081088D6\n\ + movs r0, 0x50\n\ + str r0, [r4]\n\ +_081088D6:\n\ + ldr r0, [r4]\n\ + cmp r0, 0xF0\n\ + bne _081088E0\n\ + movs r0, 0xA0\n\ + str r0, [r4]\n\ +_081088E0:\n\ + ldr r0, [r4]\n\ + cmp r0, 0x1E\n\ + bne _081088EA\n\ + movs r0, 0x14\n\ + str r0, [r4]\n\ +_081088EA:\n\ + ldr r0, [r4]\n\ + cmp r0, 0xF\n\ + bne _081088F4\n\ + movs r0, 0xA\n\ + str r0, [r4]\n\ +_081088F4:\n\ + ldrb r1, [r5]\n\ + movs r0, 0x8\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08108902\n\ + movs r0, 0\n\ + str r0, [r4]\n\ +_08108902:\n\ + ldrb r0, [r4]\n\ + ldr r3, _0810894C @ =gAIScriptPtr\n\ + ldr r2, [r3]\n\ + ldrb r1, [r2, 0x1]\n\ + cmp r0, r1\n\ + bne _08108950\n\ + ldrb r1, [r2, 0x2]\n\ + ldrb r0, [r2, 0x3]\n\ + lsls r0, 8\n\ + orrs r1, r0\n\ + ldrb r0, [r2, 0x4]\n\ + lsls r0, 16\n\ + orrs r1, r0\n\ + ldrb r0, [r2, 0x5]\n\ + lsls r0, 24\n\ + orrs r1, r0\n\ + str r1, [r3]\n\ + b _08108954\n\ + .align 2, 0\n\ +_08108928: .4byte gUnknown_02024DEC\n\ +_0810892C: .4byte 0x02000000\n\ +_08108930: .4byte 0x0001601c\n\ +_08108934: .4byte gUnknown_02024C68\n\ +_08108938: .4byte gCritMultiplier\n\ +_0810893C: .4byte gUnknown_02024BEC\n\ +_08108940: .4byte gUnknown_02024BE6\n\ +_08108944: .4byte gUnknown_02024C07\n\ +_08108948: .4byte gUnknown_02024C08\n\ +_0810894C: .4byte gAIScriptPtr\n\ +_08108950:\n\ + adds r0, r2, 0x6\n\ + str r0, [r3]\n\ +_08108954:\n\ + pop {r4,r5}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided\n"); +} + +void BattleAICmd_unk_32(void) +{} + +void BattleAICmd_unk_33(void) +{} diff --git a/sym_ewram.txt b/sym_ewram.txt index badfe3911..5bcdf1363 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -960,7 +960,7 @@ gUnknown_020391B4: @ 20391B4 gUnknown_02039234: @ 2039234 .space 0x4 -gUnknown_02039238: @ 2039238 +gAIScriptPtr: @ 2039238 .space 0x4 gUnknown_0203923C: @ 203923C |