diff options
Diffstat (limited to 'asm/battle_ai.s')
-rw-r--r-- | asm/battle_ai.s | 583 |
1 files changed, 0 insertions, 583 deletions
diff --git a/asm/battle_ai.s b/asm/battle_ai.s index d8eafc314..3efe87815 100644 --- a/asm/battle_ai.s +++ b/asm/battle_ai.s @@ -6,589 +6,6 @@ .text - thumb_func_start sub_81070D4 -sub_81070D4: @ 81070D4 - push {r4-r7,lr} - ldr r2, _08107144 @ =0x02016a00 - movs r3, 0 - ldr r4, _08107148 @ =gUnknown_020239F8 - movs r1, 0 -_081070DE: - adds r0, r2, r3 - strb r1, [r0] - adds r3, 0x1 - cmp r3, 0x2F - bls _081070DE - ldrh r2, [r4] - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _08107138 - ldr r5, _0810714C @ =gTrainerBattleOpponent - ldrh r1, [r5] - movs r0, 0x80 - lsls r0, 3 - cmp r1, r0 - beq _08107138 - ldr r0, _08107150 @ =0x00000982 - ands r0, r2 - cmp r0, 0 - bne _08107138 - movs r3, 0 - ldr r7, _08107154 @ =gTrainers + 0x10 - ldr r4, _08107158 @ =0x02016a2c - adds r6, r4, 0 - subs r6, 0x8 -_08107110: - lsls r2, r3, 1 - ldrh r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r2, r0 - adds r2, r7 - ldrh r2, [r2] - cmp r2, 0 - beq _08107132 - ldrb r0, [r4] - lsls r0, 1 - adds r0, r6 - strh r2, [r0] - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] -_08107132: - adds r3, 0x1 - cmp r3, 0x3 - ble _08107110 -_08107138: - bl sub_810715C - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08107144: .4byte 0x02016a00 -_08107148: .4byte gUnknown_020239F8 -_0810714C: .4byte gTrainerBattleOpponent -_08107150: .4byte 0x00000982 -_08107154: .4byte gTrainers + 0x10 -_08107158: .4byte 0x02016a2c - thumb_func_end sub_81070D4 - - thumb_func_start sub_810715C -sub_810715C: @ 810715C - push {r4-r7,lr} - ldr r2, _08107204 @ =0x02016800 - movs r4, 0 - ldr r3, _08107208 @ =gUnknown_02024A60 - movs r1, 0 -_08107166: - adds r0, r2, r4 - strb r1, [r0] - adds r4, 0x1 - cmp r4, 0x1B - bls _08107166 - ldr r0, _08107204 @ =0x02016800 - movs r1, 0x64 - movs r4, 0x3 - adds r0, 0x7 -_08107178: - strb r1, [r0] - subs r0, 0x1 - subs r4, 0x1 - cmp r4, 0 - bge _08107178 - ldrb r0, [r3] - movs r1, 0 - movs r2, 0xFF - bl sub_8015A98 - lsls r0, 24 - lsrs r7, r0, 24 - movs r4, 0 - ldr r0, _08107204 @ =0x02016800 - adds r5, r0, 0x4 - ldr r6, _0810720C @ =gBitTable -_08107198: - ldr r0, [r6] - ands r0, r7 - cmp r0, 0 - beq _081071A4 - movs r0, 0 - strb r0, [r5] -_081071A4: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF - ands r0, r1 - movs r1, 0x64 - subs r1, r0 - strb r1, [r5, 0x14] - adds r5, 0x1 - adds r6, 0x4 - adds r4, 0x1 - cmp r4, 0x3 - ble _08107198 - ldr r0, _08107210 @ =0x02016c00 - adds r0, 0x20 - movs r1, 0 - strb r1, [r0] - ldr r1, _08107214 @ =gUnknown_02024C07 - ldr r0, _08107208 @ =gUnknown_02024A60 - ldrb r2, [r0] - strb r2, [r1] - ldr r0, _08107218 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08107224 - ldr r4, _0810721C @ =gUnknown_02024C08 - bl Random - movs r5, 0x2 - ands r0, r5 - strb r0, [r4] - ldr r0, _08107220 @ =gUnknown_02024C0C - ldrb r1, [r0] - ldr r2, _0810720C @ =gBitTable - ldrb r3, [r4] - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _0810722C - eors r3, r5 - strb r3, [r4] - b _0810722C - .align 2, 0 -_08107204: .4byte 0x02016800 -_08107208: .4byte gUnknown_02024A60 -_0810720C: .4byte gBitTable -_08107210: .4byte 0x02016c00 -_08107214: .4byte gUnknown_02024C07 -_08107218: .4byte gUnknown_020239F8 -_0810721C: .4byte gUnknown_02024C08 -_08107220: .4byte gUnknown_02024C0C -_08107224: - ldr r0, _08107244 @ =gUnknown_02024C08 - movs r1, 0x1 - eors r1, r2 - strb r1, [r0] -_0810722C: - ldr r0, _08107248 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08107250 - ldr r1, _0810724C @ =0x02016800 - movs r0, 0x80 - lsls r0, 23 - str r0, [r1, 0xC] - b _08107296 - .align 2, 0 -_08107244: .4byte gUnknown_02024C08 -_08107248: .4byte gUnknown_020239F8 -_0810724C: .4byte 0x02016800 -_08107250: - movs r0, 0x80 - lsls r0, 3 - ands r0, r1 - cmp r0, 0 - beq _08107268 - ldr r1, _08107264 @ =0x02016800 - movs r0, 0x80 - lsls r0, 22 - str r0, [r1, 0xC] - b _08107296 - .align 2, 0 -_08107264: .4byte 0x02016800 -_08107268: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08107280 - ldr r1, _0810727C @ =0x02016800 - movs r0, 0x80 - lsls r0, 24 - str r0, [r1, 0xC] - b _08107296 - .align 2, 0 -_0810727C: .4byte 0x02016800 -_08107280: - ldr r3, _0810729C @ =0x02016800 - ldr r2, _081072A0 @ =gTrainers - ldr r0, _081072A4 @ =gTrainerBattleOpponent - ldrh r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r2, 0x1C - adds r0, r2 - ldr r0, [r0] - str r0, [r3, 0xC] -_08107296: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810729C: .4byte 0x02016800 -_081072A0: .4byte gTrainers -_081072A4: .4byte gTrainerBattleOpponent - thumb_func_end sub_810715C - - thumb_func_start sub_81072A8 -sub_81072A8: @ 81072A8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - bl sub_810745C - ldr r1, _081072F4 @ =0x02016800 - ldr r0, [r1, 0xC] - cmp r0, 0 - beq _081072E2 - adds r4, r1, 0 - movs r5, 0 -_081072C0: - ldr r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081072D0 - strb r5, [r4] - bl sub_8107374 -_081072D0: - ldr r1, [r4, 0xC] - lsrs r1, 1 - str r1, [r4, 0xC] - ldrb r0, [r4, 0x11] - adds r0, 0x1 - strb r0, [r4, 0x11] - strb r5, [r4, 0x1] - cmp r1, 0 - bne _081072C0 -_081072E2: - ldr r7, _081072F4 @ =0x02016800 - ldrb r1, [r7, 0x10] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081072F8 - movs r0, 0x4 - b _08107368 - .align 2, 0 -_081072F4: .4byte 0x02016800 -_081072F8: - movs r0, 0x4 - ands r0, r1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _08107308 - movs r0, 0x5 - b _08107368 -_08107308: - movs r5, 0x1 - mov r0, sp - ldrb r1, [r7, 0x4] - strb r1, [r0] - add r0, sp, 0x4 - strb r2, [r0] - movs r3, 0x1 - mov r8, r0 - mov r4, sp - mov r6, r8 - adds r2, r7, 0x5 -_0810731E: - ldrb r1, [r4] - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r1, r0 - bge _08107330 - movs r5, 0x1 - ldrb r0, [r2] - strb r0, [r4] - strb r3, [r6] -_08107330: - ldrb r1, [r4] - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r1, r0 - bne _0810734E - mov r0, sp - adds r1, r0, r5 - ldrb r0, [r2] - strb r0, [r1] - adds r1, r5, 0 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r1, r6, r1 - strb r3, [r1] -_0810734E: - adds r2, 0x1 - adds r3, 0x1 - cmp r3, 0x3 - ble _0810731E - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r5, 0 - bl __modsi3 - add r0, r8 - ldrb r0, [r0] -_08107368: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81072A8 - - thumb_func_start sub_8107374 -sub_8107374: @ 8107374 - push {r4-r7,lr} - ldr r1, _081073D0 @ =0x02016800 - ldrb r0, [r1] - adds r6, r1, 0 - cmp r0, 0x2 - beq _08107456 - adds r4, r1, 0 - ldr r7, _081073D4 @ =gUnknown_02039238 -_08107384: - ldrb r0, [r4] - cmp r0, 0x1 - beq _081073E4 - cmp r0, 0x1 - bgt _0810744E - cmp r0, 0 - bne _0810744E - ldr r1, _081073D8 @ =BattleAIs - ldrb r0, [r4, 0x11] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [r7] - ldr r5, _081073DC @ =gBattleMons - ldrb r3, [r4, 0x1] - ldr r0, _081073E0 @ =gUnknown_02024C07 - ldrb r1, [r0] - movs r0, 0x58 - adds r2, r1, 0 - muls r2, r0 - adds r0, r3, r2 - adds r1, r5, 0 - adds r1, 0x24 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _081073C6 - lsls r0, r3, 1 - adds r0, r2 - adds r1, r5, 0 - adds r1, 0xC - adds r0, r1 - ldrh r0, [r0] -_081073C6: - strh r0, [r4, 0x2] - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _0810744E - .align 2, 0 -_081073D0: .4byte 0x02016800 -_081073D4: .4byte gUnknown_02039238 -_081073D8: .4byte BattleAIs -_081073DC: .4byte gBattleMons -_081073E0: .4byte gUnknown_02024C07 -_081073E4: - ldrh r1, [r1, 0x2] - cmp r1, 0 - beq _08107400 - ldr r1, _081073FC @ =gBattleAICmdTable - ldr r0, [r7] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - b _08107410 - .align 2, 0 -_081073FC: .4byte gBattleAICmdTable -_08107400: - adds r0, r4, 0x4 - ldrb r2, [r4, 0x1] - adds r0, r2 - strb r1, [r0] - ldrb r1, [r4, 0x10] - movs r0, 0x1 - orrs r0, r1 - strb r0, [r4, 0x10] -_08107410: - ldr r1, _0810743C @ =0x02016800 - ldrb r2, [r1, 0x10] - movs r0, 0x1 - ands r0, r2 - adds r6, r1, 0 - cmp r0, 0 - beq _0810744E - ldrb r0, [r6, 0x1] - adds r0, 0x1 - strb r0, [r6, 0x1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bhi _08107440 - movs r0, 0x8 - ands r0, r2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _08107440 - strb r0, [r6] - b _08107446 - .align 2, 0 -_0810743C: .4byte 0x02016800 -_08107440: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] -_08107446: - ldrb r1, [r4, 0x10] - movs r0, 0xFE - ands r0, r1 - strb r0, [r4, 0x10] -_0810744E: - adds r1, r6, 0 - ldrb r0, [r1] - cmp r0, 0x2 - bne _08107384 -_08107456: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8107374 - - thumb_func_start sub_810745C -sub_810745C: @ 810745C - push {r4-r6,lr} - movs r2, 0 - ldr r3, _08107488 @ =gUnknown_02024C08 - ldr r5, _0810748C @ =0x02016a00 - ldr r6, _08107490 @ =gUnknown_02024C34 - adds r4, r3, 0 -_08107468: - lsls r0, r2, 1 - ldrb r1, [r4] - lsrs r1, 1 - lsls r1, 4 - adds r0, r1 - adds r1, r0, r5 - ldrh r0, [r1] - cmp r0, 0 - bne _08107494 - ldrb r0, [r3] - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - strh r0, [r1] - b _0810749A - .align 2, 0 -_08107488: .4byte gUnknown_02024C08 -_0810748C: .4byte 0x02016a00 -_08107490: .4byte gUnknown_02024C34 -_08107494: - adds r2, 0x1 - cmp r2, 0x7 - ble _08107468 -_0810749A: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_810745C - - thumb_func_start unref_sub_81074A0 -unref_sub_81074A0: @ 81074A0 - push {lr} - lsls r0, 24 - ldr r1, _081074C0 @ =0x02016a00 - lsrs r0, 25 - movs r2, 0x7 - lsls r0, 4 - adds r0, r1 - adds r0, 0xE - movs r1, 0 -_081074B2: - strh r1, [r0] - subs r0, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _081074B2 - pop {r0} - bx r0 - .align 2, 0 -_081074C0: .4byte 0x02016a00 - thumb_func_end unref_sub_81074A0 - - thumb_func_start sub_81074C4 -sub_81074C4: @ 81074C4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _081074EC - adds r0, r4, 0 - bl battle_get_per_side_status - ldr r2, _081074F4 @ =0x02016a00 - movs r1, 0x1 - ands r1, r0 - adds r2, 0x20 - adds r1, r2 - strb r5, [r1] -_081074EC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081074F4: .4byte 0x02016a00 - thumb_func_end sub_81074C4 - - thumb_func_start sub_81074F8 -sub_81074F8: @ 81074F8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08107520 - adds r0, r4, 0 - bl battle_get_per_side_status - ldr r2, _08107528 @ =0x02016a00 - movs r1, 0x1 - ands r1, r0 - adds r2, 0x22 - adds r1, r2 - strb r5, [r1] -_08107520: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08107528: .4byte 0x02016a00 - thumb_func_end sub_81074F8 - thumb_func_start BattleAICmd_if_random BattleAICmd_if_random: @ 810752C push {lr} |