diff options
author | jiangzhengwenjz <jiangzhengwenjzw@qq.com> | 2019-08-27 12:00:08 +0800 |
---|---|---|
committer | jiangzhengwenjz <jiangzhengwenjzw@qq.com> | 2019-08-27 12:01:32 +0800 |
commit | f4b4f5dd0c698bad4e9b10b712c15f5c448a0203 (patch) | |
tree | 24dbf071bfe67bffebccf217330c30f22a455c8d /asm/battle_script_commands.s | |
parent | ca130a8aeb39d05340495766a1f33dc854f6b4a1 (diff) |
thru atkee
Diffstat (limited to 'asm/battle_script_commands.s')
-rw-r--r-- | asm/battle_script_commands.s | 3790 |
1 files changed, 0 insertions, 3790 deletions
diff --git a/asm/battle_script_commands.s b/asm/battle_script_commands.s index 5d8648ced..00d3e49c7 100644 --- a/asm/battle_script_commands.s +++ b/asm/battle_script_commands.s @@ -5,3796 +5,6 @@ .text - thumb_func_start atkC1_hiddenpowercalc -atkC1_hiddenpowercalc: @ 802B678 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r2, _0802B760 @ =gBattleMons - ldr r0, _0802B764 @ =gBattlerAttacker - ldrb r1, [r0] - movs r0, 0x58 - muls r1, r0 - adds r1, r2 - ldrb r0, [r1, 0x14] - mov r9, r0 - mov r7, r9 - lsls r7, 27 - adds r0, r7, 0 - lsrs r0, 27 - mov r9, r0 - movs r4, 0x2 - mov r2, r9 - ands r2, r4 - asrs r2, 1 - ldrh r7, [r1, 0x14] - mov r8, r7 - mov r0, r8 - lsls r0, 22 - lsrs r0, 27 - mov r8, r0 - ands r0, r4 - orrs r2, r0 - ldrb r6, [r1, 0x15] - lsls r6, 25 - lsrs r6, 27 - adds r0, r6, 0 - ands r0, r4 - lsls r0, 1 - orrs r2, r0 - ldr r5, [r1, 0x14] - lsls r5, 12 - lsrs r5, 27 - adds r0, r5, 0 - ands r0, r4 - lsls r0, 2 - orrs r2, r0 - ldrh r3, [r1, 0x16] - lsls r3, 23 - lsrs r3, 27 - adds r0, r3, 0 - ands r0, r4 - lsls r0, 3 - orrs r2, r0 - ldrb r1, [r1, 0x17] - lsls r1, 26 - lsrs r1, 27 - adds r0, r1, 0 - ands r0, r4 - lsls r0, 4 - orrs r2, r0 - movs r0, 0x1 - adds r4, r0, 0 - mov r7, r9 - ands r4, r7 - mov r7, r8 - ands r7, r0 - lsls r7, 1 - orrs r4, r7 - ands r6, r0 - lsls r6, 2 - orrs r4, r6 - ands r5, r0 - lsls r5, 3 - orrs r4, r5 - ands r3, r0 - lsls r3, 4 - orrs r4, r3 - ands r1, r0 - lsls r1, 5 - orrs r4, r1 - ldr r5, _0802B768 @ =gDynamicBasePower - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - movs r1, 0x3F - bl __divsi3 - adds r0, 0x1E - strh r0, [r5] - ldr r6, _0802B76C @ =gBattleStruct - ldr r5, [r6] - lsls r0, r4, 4 - subs r0, r4 - movs r1, 0x3F - bl __divsi3 - adds r0, 0x1 - strb r0, [r5, 0x13] - ldr r1, [r6] - ldrb r0, [r1, 0x13] - cmp r0, 0x8 - bls _0802B742 - adds r0, 0x1 - strb r0, [r1, 0x13] -_0802B742: - ldr r2, [r6] - ldrb r0, [r2, 0x13] - movs r1, 0xC0 - orrs r0, r1 - strb r0, [r2, 0x13] - ldr r1, _0802B770 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802B760: .4byte gBattleMons -_0802B764: .4byte gBattlerAttacker -_0802B768: .4byte gDynamicBasePower -_0802B76C: .4byte gBattleStruct -_0802B770: .4byte gBattlescriptCurrInstr - thumb_func_end atkC1_hiddenpowercalc - - thumb_func_start atkC2_selectfirstvalidtarget -atkC2_selectfirstvalidtarget: @ 802B774 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _0802B7D0 @ =gBattlerTarget - movs r1, 0 - strb r1, [r0] - ldr r1, _0802B7D4 @ =gBattlersCount - ldrb r1, [r1] - adds r6, r0, 0 - ldr r0, _0802B7D8 @ =gBattlescriptCurrInstr - mov r8, r0 - cmp r1, 0 - beq _0802B7BE - adds r3, r6, 0 - ldr r0, _0802B7DC @ =gBattlerAttacker - ldrb r5, [r0] - ldr r0, _0802B7E0 @ =gBitTable - mov r12, r0 - adds r4, r1, 0 - ldr r7, _0802B7E4 @ =gAbsentBattlerFlags -_0802B79C: - ldrb r2, [r3] - cmp r2, r5 - beq _0802B7B2 - ldrb r0, [r7] - ldrb r1, [r6] - lsls r1, 2 - add r1, r12 - ldr r1, [r1] - ands r0, r1 - cmp r0, 0 - beq _0802B7BE -_0802B7B2: - adds r0, r2, 0x1 - strb r0, [r3] - lsls r0, 24 - lsrs r0, 24 - cmp r0, r4 - bcc _0802B79C -_0802B7BE: - mov r1, r8 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802B7D0: .4byte gBattlerTarget -_0802B7D4: .4byte gBattlersCount -_0802B7D8: .4byte gBattlescriptCurrInstr -_0802B7DC: .4byte gBattlerAttacker -_0802B7E0: .4byte gBitTable -_0802B7E4: .4byte gAbsentBattlerFlags - thumb_func_end atkC2_selectfirstvalidtarget - - thumb_func_start atkC3_trysetfutureattack -atkC3_trysetfutureattack: @ 802B7E8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - ldr r0, _0802B820 @ =gWishFutureKnock - mov r8, r0 - ldr r7, _0802B824 @ =gBattlerTarget - ldrb r1, [r7] - adds r0, r1, r0 - ldrb r6, [r0] - cmp r6, 0 - beq _0802B82C - ldr r3, _0802B828 @ =gBattlescriptCurrInstr - 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 - str r1, [r3] - b _0802B8F6 - .align 2, 0 -_0802B820: .4byte gWishFutureKnock -_0802B824: .4byte gBattlerTarget -_0802B828: .4byte gBattlescriptCurrInstr -_0802B82C: - lsls r1, 1 - mov r0, r8 - adds r0, 0x18 - adds r1, r0 - ldr r2, _0802B8CC @ =gCurrentMove - mov r9, r2 - ldrh r0, [r2] - strh r0, [r1] - mov r0, r8 - adds r0, 0x4 - ldrb r4, [r7] - adds r0, r4 - ldr r5, _0802B8D0 @ =gBattlerAttacker - ldrb r1, [r5] - strb r1, [r0] - ldrb r0, [r7] - add r0, r8 - movs r1, 0x3 - strb r1, [r0] - ldr r4, _0802B8D4 @ =gSideStatuses - ldrb r0, [r7] - bl GetBattlerPosition - movs r1, 0x1 - mov r10, r1 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - ldrh r3, [r1] - ldrb r0, [r5] - movs r4, 0x58 - muls r0, r4 - ldr r2, _0802B8D8 @ =gBattleMons - adds r0, r2 - ldrb r1, [r7] - muls r1, r4 - adds r1, r2 - mov r4, r9 - ldrh r2, [r4] - str r6, [sp] - str r6, [sp, 0x4] - ldrb r4, [r5] - str r4, [sp, 0x8] - ldrb r4, [r7] - str r4, [sp, 0xC] - bl CalculateBaseDamage - ldrb r1, [r7] - lsls r1, 2 - mov r2, r8 - adds r2, 0x8 - adds r1, r2 - str r0, [r1] - ldr r1, _0802B8DC @ =gProtectStructs - ldrb r0, [r5] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 28 - cmp r0, 0 - bge _0802B8BA - ldrb r4, [r7] - lsls r4, 2 - adds r4, r2 - ldr r1, [r4] - lsls r0, r1, 4 - subs r0, r1 - movs r1, 0xA - bl __divsi3 - str r0, [r4] -_0802B8BA: - mov r0, r9 - ldrh r1, [r0] - ldr r0, _0802B8E0 @ =0x00000161 - cmp r1, r0 - bne _0802B8E8 - ldr r0, _0802B8E4 @ =gBattleCommunication - mov r1, r10 - strb r1, [r0, 0x5] - b _0802B8EE - .align 2, 0 -_0802B8CC: .4byte gCurrentMove -_0802B8D0: .4byte gBattlerAttacker -_0802B8D4: .4byte gSideStatuses -_0802B8D8: .4byte gBattleMons -_0802B8DC: .4byte gProtectStructs -_0802B8E0: .4byte 0x00000161 -_0802B8E4: .4byte gBattleCommunication -_0802B8E8: - ldr r1, _0802B908 @ =gBattleCommunication - movs r0, 0 - strb r0, [r1, 0x5] -_0802B8EE: - ldr r1, _0802B90C @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0802B8F6: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802B908: .4byte gBattleCommunication -_0802B90C: .4byte gBattlescriptCurrInstr - thumb_func_end atkC3_trysetfutureattack - - thumb_func_start atkC4_trydobeatup -atkC4_trydobeatup: @ 802B910 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _0802B954 @ =gBattlerAttacker - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - ldr r7, _0802B958 @ =gEnemyParty - cmp r0, 0 - bne _0802B92A - ldr r7, _0802B95C @ =gPlayerParty -_0802B92A: - ldr r2, _0802B960 @ =gBattleMons - ldr r0, _0802B964 @ =gBattlerTarget - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _0802B96C - ldr r3, _0802B968 @ =gBattlescriptCurrInstr - 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] - b _0802BB08 - .align 2, 0 -_0802B954: .4byte gBattlerAttacker -_0802B958: .4byte gEnemyParty -_0802B95C: .4byte gPlayerParty -_0802B960: .4byte gBattleMons -_0802B964: .4byte gBattlerTarget -_0802B968: .4byte gBattlescriptCurrInstr -_0802B96C: - ldr r6, _0802BAA8 @ =gBattleCommunication - ldrb r0, [r6] - mov r8, r0 - cmp r0, 0x5 - bls _0802B978 - b _0802BAD4 -_0802B978: - adds r4, r6, 0 - movs r5, 0x64 -_0802B97C: - ldrb r0, [r4] - muls r0, r5 - adds r0, r7, r0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0802B9C0 - ldrb r0, [r6] - muls r0, r5 - adds r0, r7, r0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _0802B9C0 - ldrb r0, [r4] - muls r0, r5 - adds r0, r7, r0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _0802B9C0 - ldrb r0, [r4] - muls r0, r5 - adds r0, r7, r0 - movs r1, 0x37 - bl GetMonData - cmp r0, 0 - beq _0802B9D0 -_0802B9C0: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - adds r6, r4, 0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bls _0802B97C -_0802B9D0: - ldr r1, _0802BAA8 @ =gBattleCommunication - mov r9, r1 - ldrb r2, [r1] - cmp r2, 0x5 - bhi _0802BAD4 - ldr r1, _0802BAAC @ =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x4 - strb r0, [r1, 0x1] - ldr r6, _0802BAB0 @ =gBattlerAttacker - ldrb r0, [r6] - strb r0, [r1, 0x2] - strb r2, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, _0802BAB4 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x9 - str r0, [r1] - ldr r2, _0802BAB8 @ =gBattleMoveDamage - mov r8, r2 - ldr r5, _0802BABC @ =gBaseStats - mov r1, r9 - ldrb r0, [r1] - movs r4, 0x64 - muls r0, r4 - adds r0, r7, r0 - movs r1, 0xB - bl GetMonData - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r3, [r1, 0x1] - mov r2, r8 - str r3, [r2] - ldr r2, _0802BAC0 @ =gBattleMoves - ldr r0, _0802BAC4 @ =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - muls r0, r3 - mov r1, r8 - str r0, [r1] - mov r2, r9 - ldrb r0, [r2] - muls r0, r4 - adds r0, r7, r0 - movs r1, 0x38 - bl GetMonData - lsls r0, 1 - movs r1, 0x5 - bl __udivsi3 - adds r0, 0x2 - mov r2, r8 - ldr r1, [r2] - muls r0, r1 - str r0, [r2] - ldr r3, _0802BAC8 @ =gBattleMons - ldr r1, _0802BACC @ =gBattlerTarget - ldrb r2, [r1] - movs r1, 0x58 - muls r1, r2 - adds r1, r3 - ldrh r2, [r1] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r5 - ldrb r1, [r1, 0x2] - bl __divsi3 - mov r1, r8 - str r0, [r1] - movs r1, 0x32 - bl __divsi3 - adds r2, r0, 0x2 - mov r0, r8 - str r2, [r0] - ldr r1, _0802BAD0 @ =gProtectStructs - ldrb r0, [r6] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 28 - cmp r0, 0 - bge _0802BA9C - lsls r0, r2, 4 - subs r0, r2 - movs r1, 0xA - bl __divsi3 - mov r1, r8 - str r0, [r1] -_0802BA9C: - mov r2, r9 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - b _0802BB0E - .align 2, 0 -_0802BAA8: .4byte gBattleCommunication -_0802BAAC: .4byte gBattleTextBuff1 -_0802BAB0: .4byte gBattlerAttacker -_0802BAB4: .4byte gBattlescriptCurrInstr -_0802BAB8: .4byte gBattleMoveDamage -_0802BABC: .4byte gBaseStats -_0802BAC0: .4byte gBattleMoves -_0802BAC4: .4byte gCurrentMove -_0802BAC8: .4byte gBattleMons -_0802BACC: .4byte gBattlerTarget -_0802BAD0: .4byte gProtectStructs -_0802BAD4: - mov r0, r8 - cmp r0, 0 - beq _0802BAF4 - ldr r3, _0802BAF0 @ =gBattlescriptCurrInstr - 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] - b _0802BB08 - .align 2, 0 -_0802BAF0: .4byte gBattlescriptCurrInstr -_0802BAF4: - ldr r3, _0802BB1C @ =gBattlescriptCurrInstr - ldr r2, [r3] - 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] -_0802BB08: - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_0802BB0E: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802BB1C: .4byte gBattlescriptCurrInstr - thumb_func_end atkC4_trydobeatup - - thumb_func_start atkC5_setsemiinvulnerablebit -atkC5_setsemiinvulnerablebit: @ 802BB20 - push {lr} - ldr r0, _0802BB34 @ =gCurrentMove - ldrh r1, [r0] - cmp r1, 0x5B - beq _0802BB60 - cmp r1, 0x5B - bgt _0802BB38 - cmp r1, 0x13 - beq _0802BB44 - b _0802BB8C - .align 2, 0 -_0802BB34: .4byte gCurrentMove -_0802BB38: - ldr r0, _0802BB54 @ =0x00000123 - cmp r1, r0 - beq _0802BB78 - adds r0, 0x31 - cmp r1, r0 - bne _0802BB8C -_0802BB44: - ldr r2, _0802BB58 @ =gStatuses3 - ldr r0, _0802BB5C @ =gBattlerAttacker - ldrb r1, [r0] - lsls r1, 2 - adds r1, r2 - ldr r0, [r1] - movs r2, 0x40 - b _0802BB88 - .align 2, 0 -_0802BB54: .4byte 0x00000123 -_0802BB58: .4byte gStatuses3 -_0802BB5C: .4byte gBattlerAttacker -_0802BB60: - ldr r2, _0802BB70 @ =gStatuses3 - ldr r0, _0802BB74 @ =gBattlerAttacker - ldrb r1, [r0] - lsls r1, 2 - adds r1, r2 - ldr r0, [r1] - movs r2, 0x80 - b _0802BB88 - .align 2, 0 -_0802BB70: .4byte gStatuses3 -_0802BB74: .4byte gBattlerAttacker -_0802BB78: - ldr r2, _0802BB98 @ =gStatuses3 - ldr r0, _0802BB9C @ =gBattlerAttacker - ldrb r1, [r0] - lsls r1, 2 - adds r1, r2 - ldr r0, [r1] - movs r2, 0x80 - lsls r2, 11 -_0802BB88: - orrs r0, r2 - str r0, [r1] -_0802BB8C: - ldr r1, _0802BBA0 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0802BB98: .4byte gStatuses3 -_0802BB9C: .4byte gBattlerAttacker -_0802BBA0: .4byte gBattlescriptCurrInstr - thumb_func_end atkC5_setsemiinvulnerablebit - - thumb_func_start atkC6_clearsemiinvulnerablebit -atkC6_clearsemiinvulnerablebit: @ 802BBA4 - push {lr} - ldr r0, _0802BBB8 @ =gCurrentMove - ldrh r1, [r0] - cmp r1, 0x5B - beq _0802BBE8 - cmp r1, 0x5B - bgt _0802BBBC - cmp r1, 0x13 - beq _0802BBC8 - b _0802BC16 - .align 2, 0 -_0802BBB8: .4byte gCurrentMove -_0802BBBC: - ldr r0, _0802BBDC @ =0x00000123 - cmp r1, r0 - beq _0802BC04 - adds r0, 0x31 - cmp r1, r0 - bne _0802BC16 -_0802BBC8: - ldr r2, _0802BBE0 @ =gStatuses3 - ldr r0, _0802BBE4 @ =gBattlerAttacker - ldrb r1, [r0] - lsls r1, 2 - adds r1, r2 - ldr r0, [r1] - movs r2, 0x41 - negs r2, r2 - b _0802BC12 - .align 2, 0 -_0802BBDC: .4byte 0x00000123 -_0802BBE0: .4byte gStatuses3 -_0802BBE4: .4byte gBattlerAttacker -_0802BBE8: - ldr r2, _0802BBFC @ =gStatuses3 - ldr r0, _0802BC00 @ =gBattlerAttacker - ldrb r1, [r0] - lsls r1, 2 - adds r1, r2 - ldr r0, [r1] - movs r2, 0x81 - negs r2, r2 - b _0802BC12 - .align 2, 0 -_0802BBFC: .4byte gStatuses3 -_0802BC00: .4byte gBattlerAttacker -_0802BC04: - ldr r2, _0802BC24 @ =gStatuses3 - ldr r0, _0802BC28 @ =gBattlerAttacker - ldrb r1, [r0] - lsls r1, 2 - adds r1, r2 - ldr r0, [r1] - ldr r2, _0802BC2C @ =0xfffbffff -_0802BC12: - ands r0, r2 - str r0, [r1] -_0802BC16: - ldr r1, _0802BC30 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0802BC24: .4byte gStatuses3 -_0802BC28: .4byte gBattlerAttacker -_0802BC2C: .4byte 0xfffbffff -_0802BC30: .4byte gBattlescriptCurrInstr - thumb_func_end atkC6_clearsemiinvulnerablebit - - thumb_func_start atkC7_setminimize -atkC7_setminimize: @ 802BC34 - push {lr} - ldr r0, _0802BC64 @ =gHitMarker - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 18 - ands r0, r1 - cmp r0, 0 - beq _0802BC58 - ldr r2, _0802BC68 @ =gStatuses3 - ldr r0, _0802BC6C @ =gBattlerAttacker - ldrb r1, [r0] - lsls r1, 2 - adds r1, r2 - ldr r0, [r1] - movs r2, 0x80 - lsls r2, 1 - orrs r0, r2 - str r0, [r1] -_0802BC58: - ldr r1, _0802BC70 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0802BC64: .4byte gHitMarker -_0802BC68: .4byte gStatuses3 -_0802BC6C: .4byte gBattlerAttacker -_0802BC70: .4byte gBattlescriptCurrInstr - thumb_func_end atkC7_setminimize - - thumb_func_start atkC8_sethail -atkC8_sethail: @ 802BC74 - push {lr} - ldr r3, _0802BC98 @ =gBattleWeather - ldrh r1, [r3] - movs r2, 0x80 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _0802BCA4 - ldr r2, _0802BC9C @ =gMoveResultFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, _0802BCA0 @ =gBattleCommunication - movs r0, 0x2 - strb r0, [r1, 0x5] - b _0802BCB2 - .align 2, 0 -_0802BC98: .4byte gBattleWeather -_0802BC9C: .4byte gMoveResultFlags -_0802BCA0: .4byte gBattleCommunication -_0802BCA4: - strh r2, [r3] - ldr r0, _0802BCC0 @ =gBattleCommunication - movs r1, 0x5 - strb r1, [r0, 0x5] - ldr r0, _0802BCC4 @ =gWishFutureKnock - adds r0, 0x28 - strb r1, [r0] -_0802BCB2: - ldr r1, _0802BCC8 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0802BCC0: .4byte gBattleCommunication -_0802BCC4: .4byte gWishFutureKnock -_0802BCC8: .4byte gBattlescriptCurrInstr - thumb_func_end atkC8_sethail - - thumb_func_start atkC9_jumpifattackandspecialattackcannotfall -atkC9_jumpifattackandspecialattackcannotfall: @ 802BCCC - push {r4,lr} - ldr r2, _0802BD10 @ =gBattleMons - ldr r0, _0802BD14 @ =gBattlerTarget - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r1, r0, r2 - movs r0, 0x19 - ldrsb r0, [r1, r0] - adds r3, r2, 0 - cmp r0, 0 - bne _0802BD20 - movs r0, 0x1C - ldrsb r0, [r1, r0] - cmp r0, 0 - bne _0802BD20 - ldr r0, _0802BD18 @ =gBattleCommunication - ldrb r0, [r0, 0x6] - cmp r0, 0x1 - beq _0802BD20 - ldr r3, _0802BD1C @ =gBattlescriptCurrInstr - 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 - str r1, [r3] - b _0802BD4C - .align 2, 0 -_0802BD10: .4byte gBattleMons -_0802BD14: .4byte gBattlerTarget -_0802BD18: .4byte gBattleCommunication -_0802BD1C: .4byte gBattlescriptCurrInstr -_0802BD20: - ldr r4, _0802BD54 @ =gActiveBattler - ldr r0, _0802BD58 @ =gBattlerAttacker - ldrb r0, [r0] - strb r0, [r4] - ldr r2, _0802BD5C @ =gBattleMoveDamage - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - adds r0, r3 - ldrh r0, [r0, 0x28] - str r0, [r2] - ldr r1, _0802BD60 @ =0x00007fff - movs r0, 0 - bl BtlController_EmitHealthBarUpdate - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r1, _0802BD64 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0802BD4C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802BD54: .4byte gActiveBattler -_0802BD58: .4byte gBattlerAttacker -_0802BD5C: .4byte gBattleMoveDamage -_0802BD60: .4byte 0x00007fff -_0802BD64: .4byte gBattlescriptCurrInstr - thumb_func_end atkC9_jumpifattackandspecialattackcannotfall - - thumb_func_start atkCA_setforcedtarget -atkCA_setforcedtarget: @ 802BD68 - push {r4,r5,lr} - ldr r4, _0802BDA8 @ =gBattlerAttacker - ldrb r0, [r4] - bl GetBattlerSide - ldr r5, _0802BDAC @ =gSideTimers - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - movs r0, 0x1 - strb r0, [r1, 0x8] - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r0, [r4] - strb r0, [r1, 0x9] - ldr r1, _0802BDB0 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802BDA8: .4byte gBattlerAttacker -_0802BDAC: .4byte gSideTimers -_0802BDB0: .4byte gBattlescriptCurrInstr - thumb_func_end atkCA_setforcedtarget - - thumb_func_start atkCB_setcharge -atkCB_setcharge: @ 802BDB4 - push {r4,lr} - ldr r0, _0802BE08 @ =gStatuses3 - ldr r3, _0802BE0C @ =gBattlerAttacker - ldrb r1, [r3] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - movs r2, 0x80 - lsls r2, 2 - orrs r0, r2 - str r0, [r1] - ldr r4, _0802BE10 @ =gDisableStructs - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r2, [r0, 0x12] - movs r1, 0x10 - negs r1, r1 - ands r1, r2 - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0, 0x12] - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r2, [r0, 0x12] - movs r1, 0xF - ands r1, r2 - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x12] - ldr r1, _0802BE14 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802BE08: .4byte gStatuses3 -_0802BE0C: .4byte gBattlerAttacker -_0802BE10: .4byte gDisableStructs -_0802BE14: .4byte gBattlescriptCurrInstr - thumb_func_end atkCB_setcharge - - thumb_func_start atkCC_callterrainattack -atkCC_callterrainattack: @ 802BE18 - push {r4,lr} - ldr r2, _0802BE68 @ =gHitMarker - ldr r0, [r2] - ldr r1, _0802BE6C @ =0xfffffbff - ands r0, r1 - str r0, [r2] - ldr r4, _0802BE70 @ =gCurrentMove - ldr r1, _0802BE74 @ =sNaturePowerMoves - ldr r0, _0802BE78 @ =gBattleTerrain - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r4] - ldrh r0, [r4] - movs r1, 0 - bl GetMoveTarget - ldr r1, _0802BE7C @ =gBattlerTarget - strb r0, [r1] - ldr r3, _0802BE80 @ =gBattleScriptsForMoveEffects - ldr r2, _0802BE84 @ =gBattleMoves - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - bl BattleScriptPush - ldr r1, _0802BE88 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802BE68: .4byte gHitMarker -_0802BE6C: .4byte 0xfffffbff -_0802BE70: .4byte gCurrentMove -_0802BE74: .4byte sNaturePowerMoves -_0802BE78: .4byte gBattleTerrain -_0802BE7C: .4byte gBattlerTarget -_0802BE80: .4byte gBattleScriptsForMoveEffects -_0802BE84: .4byte gBattleMoves -_0802BE88: .4byte gBattlescriptCurrInstr - thumb_func_end atkCC_callterrainattack - - thumb_func_start atkCD_cureifburnedparalysedorpoisoned -atkCD_cureifburnedparalysedorpoisoned: @ 802BE8C - push {r4-r6,lr} - sub sp, 0x4 - ldr r1, _0802BED8 @ =gBattleMons - ldr r3, _0802BEDC @ =gBattlerAttacker - ldrb r0, [r3] - movs r6, 0x58 - muls r0, r6 - adds r5, r1, 0 - adds r5, 0x4C - adds r2, r0, r5 - ldr r0, [r2] - movs r1, 0xD8 - ands r0, r1 - cmp r0, 0 - beq _0802BEE8 - movs r0, 0 - str r0, [r2] - ldr r1, _0802BEE0 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - ldr r4, _0802BEE4 @ =gActiveBattler - ldrb r0, [r3] - strb r0, [r4] - ldrb r0, [r4] - muls r0, r6 - adds r0, r5 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl BtlController_EmitSetMonData - ldrb r0, [r4] - bl MarkBattlerForControllerExec - b _0802BF02 - .align 2, 0 -_0802BED8: .4byte gBattleMons -_0802BEDC: .4byte gBattlerAttacker -_0802BEE0: .4byte gBattlescriptCurrInstr -_0802BEE4: .4byte gActiveBattler -_0802BEE8: - ldr r3, _0802BF0C @ =gBattlescriptCurrInstr - 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 - str r1, [r3] -_0802BF02: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802BF0C: .4byte gBattlescriptCurrInstr - thumb_func_end atkCD_cureifburnedparalysedorpoisoned - - thumb_func_start atkCE_settorment -atkCE_settorment: @ 802BF10 - push {lr} - ldr r1, _0802BF48 @ =gBattleMons - ldr r0, _0802BF4C @ =gBattlerTarget - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r1, [r0] - movs r2, 0x80 - lsls r2, 24 - cmp r1, 0 - bge _0802BF54 - ldr r3, _0802BF50 @ =gBattlescriptCurrInstr - 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 - str r1, [r3] - b _0802BF60 - .align 2, 0 -_0802BF48: .4byte gBattleMons -_0802BF4C: .4byte gBattlerTarget -_0802BF50: .4byte gBattlescriptCurrInstr -_0802BF54: - orrs r1, r2 - str r1, [r0] - ldr r1, _0802BF64 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0802BF60: - pop {r0} - bx r0 - .align 2, 0 -_0802BF64: .4byte gBattlescriptCurrInstr - thumb_func_end atkCE_settorment - - thumb_func_start atkCF_jumpifnodamage -atkCF_jumpifnodamage: @ 802BF68 - push {lr} - ldr r2, _0802BF94 @ =gProtectStructs - ldr r0, _0802BF98 @ =gBattlerAttacker - ldrb r0, [r0] - lsls r1, r0, 4 - adds r0, r2, 0x4 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _0802BF88 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - beq _0802BFA0 -_0802BF88: - ldr r1, _0802BF9C @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0802BFBA - .align 2, 0 -_0802BF94: .4byte gProtectStructs -_0802BF98: .4byte gBattlerAttacker -_0802BF9C: .4byte gBattlescriptCurrInstr -_0802BFA0: - ldr r3, _0802BFC0 @ =gBattlescriptCurrInstr - 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 - str r1, [r3] -_0802BFBA: - pop {r0} - bx r0 - .align 2, 0 -_0802BFC0: .4byte gBattlescriptCurrInstr - thumb_func_end atkCF_jumpifnodamage - - thumb_func_start atkD0_settaunt -atkD0_settaunt: @ 802BFC4 - push {r4,lr} - ldr r4, _0802C008 @ =gDisableStructs - ldr r3, _0802C00C @ =gBattlerTarget - ldrb r0, [r3] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r2, r1, r4 - ldrb r1, [r2, 0x13] - lsls r0, r1, 28 - cmp r0, 0 - bne _0802C014 - movs r0, 0x10 - negs r0, r0 - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2, 0x13] - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r2, [r0, 0x13] - movs r1, 0xF - ands r1, r2 - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x13] - ldr r1, _0802C010 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0802C02E - .align 2, 0 -_0802C008: .4byte gDisableStructs -_0802C00C: .4byte gBattlerTarget -_0802C010: .4byte gBattlescriptCurrInstr -_0802C014: - ldr r3, _0802C034 @ =gBattlescriptCurrInstr - 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 - str r1, [r3] -_0802C02E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802C034: .4byte gBattlescriptCurrInstr - thumb_func_end atkD0_settaunt - - thumb_func_start atkD1_trysethelpinghand -atkD1_trysethelpinghand: @ 802C038 - push {r4,lr} - ldr r4, _0802C0A0 @ =gBattlerAttacker - ldrb r0, [r4] - bl GetBattlerPosition - movs r1, 0x2 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl GetBattlerAtPosition - ldr r3, _0802C0A4 @ =gBattlerTarget - strb r0, [r3] - ldr r0, _0802C0A8 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0802C0BC - ldr r0, _0802C0AC @ =gAbsentBattlerFlags - ldrb r1, [r0] - ldr r2, _0802C0B0 @ =gBitTable - ldrb r3, [r3] - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0802C0BC - ldr r1, _0802C0B4 @ =gProtectStructs - ldrb r0, [r4] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 28 - cmp r0, 0 - blt _0802C0BC - lsls r0, r3, 4 - adds r2, r0, r1 - ldrb r1, [r2] - lsls r0, r1, 28 - cmp r0, 0 - blt _0802C0BC - movs r0, 0x8 - orrs r0, r1 - strb r0, [r2] - ldr r1, _0802C0B8 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0802C0D6 - .align 2, 0 -_0802C0A0: .4byte gBattlerAttacker -_0802C0A4: .4byte gBattlerTarget -_0802C0A8: .4byte gBattleTypeFlags -_0802C0AC: .4byte gAbsentBattlerFlags -_0802C0B0: .4byte gBitTable -_0802C0B4: .4byte gProtectStructs -_0802C0B8: .4byte gBattlescriptCurrInstr -_0802C0BC: - ldr r3, _0802C0DC @ =gBattlescriptCurrInstr - 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 - str r1, [r3] -_0802C0D6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802C0DC: .4byte gBattlescriptCurrInstr - thumb_func_end atkD1_trysethelpinghand - - thumb_func_start atkD2_tryswapitems -atkD2_tryswapitems: @ 802C0E0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r4, _0802C1FC @ =gBattleTypeFlags - ldr r0, [r4] - movs r1, 0x80 - lsls r1, 12 - ands r0, r1 - cmp r0, 0 - bne _0802C1DE - ldr r0, _0802C200 @ =gBattlerAttacker - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0802C120 - ldr r0, [r4] - ldr r1, _0802C204 @ =0x00000902 - ands r0, r1 - cmp r0, 0 - bne _0802C120 - ldr r0, _0802C208 @ =gTrainerBattleOpponent_A - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 3 - cmp r1, r0 - bne _0802C1DE -_0802C120: - ldr r6, _0802C200 @ =gBattlerAttacker - ldrb r0, [r6] - bl GetBattlerSide - lsls r0, 24 - lsrs r4, r0, 24 - ldr r7, _0802C20C @ =gBattlerTarget - ldrb r0, [r7] - bl GetBattlerSide - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0802C1FC @ =gBattleTypeFlags - ldr r0, [r0] - ldr r1, _0802C204 @ =0x00000902 - ands r0, r1 - cmp r0, 0 - bne _0802C18A - ldr r0, _0802C208 @ =gTrainerBattleOpponent_A - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 3 - cmp r1, r0 - beq _0802C18A - ldr r0, _0802C210 @ =gWishFutureKnock - adds r2, r0, 0 - adds r2, 0x29 - adds r0, r4, r2 - ldrb r1, [r0] - ldr r4, _0802C214 @ =gBitTable - ldr r3, _0802C218 @ =gBattlerPartyIndexes - ldrb r0, [r6] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0802C1DE - adds r0, r5, r2 - ldrb r1, [r0] - ldrb r0, [r7] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0802C1DE -_0802C18A: - ldr r0, _0802C21C @ =gBattleMons - mov r8, r0 - ldr r1, _0802C200 @ =gBattlerAttacker - ldrb r4, [r1] - movs r5, 0x58 - adds r0, r4, 0 - muls r0, r5 - add r0, r8 - mov r9, r0 - ldrh r3, [r0, 0x2E] - adds r1, r3, 0 - cmp r1, 0 - bne _0802C1B2 - ldr r0, _0802C20C @ =gBattlerTarget - ldrb r0, [r0] - muls r0, r5 - add r0, r8 - ldrh r0, [r0, 0x2E] - cmp r0, 0 - beq _0802C1DE -_0802C1B2: - cmp r1, 0xAF - beq _0802C1DE - ldr r7, _0802C20C @ =gBattlerTarget - ldrb r0, [r7] - muls r0, r5 - mov r2, r8 - adds r1, r0, r2 - ldrh r2, [r1, 0x2E] - cmp r2, 0xAF - beq _0802C1DE - adds r0, r3, 0 - subs r0, 0x79 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xB - bls _0802C1DE - adds r0, r2, 0 - subs r0, 0x79 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xB - bhi _0802C224 -_0802C1DE: - ldr r3, _0802C220 @ =gBattlescriptCurrInstr - 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 - str r1, [r3] - b _0802C37A - .align 2, 0 -_0802C1FC: .4byte gBattleTypeFlags -_0802C200: .4byte gBattlerAttacker -_0802C204: .4byte 0x00000902 -_0802C208: .4byte gTrainerBattleOpponent_A -_0802C20C: .4byte gBattlerTarget -_0802C210: .4byte gWishFutureKnock -_0802C214: .4byte gBitTable -_0802C218: .4byte gBattlerPartyIndexes -_0802C21C: .4byte gBattleMons -_0802C220: .4byte gBattlescriptCurrInstr -_0802C224: - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x3C - bne _0802C258 - ldr r1, _0802C24C @ =gBattlescriptCurrInstr - ldr r0, _0802C250 @ =BattleScript_StickyHoldActivates - str r0, [r1] - ldr r1, _0802C254 @ =gLastUsedAbility - ldrb r0, [r7] - muls r0, r5 - add r0, r8 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - ldrb r1, [r1] - bl RecordAbilityBattle - b _0802C37A - .align 2, 0 -_0802C24C: .4byte gBattlescriptCurrInstr -_0802C250: .4byte BattleScript_StickyHoldActivates -_0802C254: .4byte gLastUsedAbility -_0802C258: - ldr r3, _0802C344 @ =gBattleStruct - mov r10, r3 - lsls r0, r4, 1 - adds r0, 0xD0 - ldr r1, [r3] - adds r6, r1, r0 - mov r0, r9 - ldrh r0, [r0, 0x2E] - mov r9, r0 - strh r2, [r6] - ldr r1, _0802C348 @ =gBattlerAttacker - ldrb r0, [r1] - muls r0, r5 - add r0, r8 - movs r1, 0 - strh r1, [r0, 0x2E] - ldrb r0, [r7] - muls r0, r5 - add r0, r8 - mov r2, r9 - strh r2, [r0, 0x2E] - ldr r4, _0802C34C @ =gActiveBattler - ldr r3, _0802C348 @ =gBattlerAttacker - ldrb r0, [r3] - strb r0, [r4] - str r6, [sp] - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl BtlController_EmitSetMonData - ldr r1, _0802C348 @ =gBattlerAttacker - ldrb r0, [r1] - bl MarkBattlerForControllerExec - ldrb r0, [r7] - strb r0, [r4] - ldrb r0, [r7] - muls r0, r5 - mov r1, r8 - adds r1, 0x2E - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl BtlController_EmitSetMonData - ldrb r0, [r7] - bl MarkBattlerForControllerExec - ldrb r0, [r7] - mov r2, r10 - ldr r1, [r2] - lsls r0, 1 - adds r0, r1 - adds r0, 0xC8 - movs r3, 0 - strb r3, [r0] - ldrb r0, [r7] - ldr r1, [r2] - lsls r0, 1 - adds r0, r1 - adds r0, 0xC9 - strb r3, [r0] - ldr r1, _0802C348 @ =gBattlerAttacker - ldrb r0, [r1] - ldr r1, [r2] - lsls r0, 1 - adds r0, r1 - adds r0, 0xC8 - strb r3, [r0] - ldr r2, _0802C348 @ =gBattlerAttacker - ldrb r0, [r2] - mov r3, r10 - ldr r1, [r3] - lsls r0, 1 - adds r0, r1 - adds r0, 0xC9 - movs r1, 0 - strb r1, [r0] - ldr r1, _0802C350 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - ldr r1, _0802C354 @ =gBattleTextBuff1 - movs r3, 0xFD - strb r3, [r1] - movs r2, 0xA - strb r2, [r1, 0x1] - ldrh r0, [r6] - strb r0, [r1, 0x2] - ldrh r0, [r6] - lsrs r0, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, _0802C358 @ =gBattleTextBuff2 - strb r3, [r1] - strb r2, [r1, 0x1] - mov r2, r9 - strb r2, [r1, 0x2] - mov r3, r9 - lsrs r0, r3, 8 - strb r0, [r1, 0x3] - movs r0, 0x1 - negs r0, r0 - strb r0, [r1, 0x4] - cmp r3, 0 - beq _0802C360 - ldrh r0, [r6] - cmp r0, 0 - beq _0802C374 - ldr r1, _0802C35C @ =gBattleCommunication - movs r0, 0x2 - b _0802C378 - .align 2, 0 -_0802C344: .4byte gBattleStruct -_0802C348: .4byte gBattlerAttacker -_0802C34C: .4byte gActiveBattler -_0802C350: .4byte gBattlescriptCurrInstr -_0802C354: .4byte gBattleTextBuff1 -_0802C358: .4byte gBattleTextBuff2 -_0802C35C: .4byte gBattleCommunication -_0802C360: - ldrh r0, [r6] - cmp r0, 0 - beq _0802C374 - ldr r0, _0802C370 @ =gBattleCommunication - movs r1, 0 - strb r1, [r0, 0x5] - b _0802C37A - .align 2, 0 -_0802C370: .4byte gBattleCommunication -_0802C374: - ldr r1, _0802C38C @ =gBattleCommunication - movs r0, 0x1 -_0802C378: - strb r0, [r1, 0x5] -_0802C37A: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802C38C: .4byte gBattleCommunication - thumb_func_end atkD2_tryswapitems - - thumb_func_start atkD3_trycopyability -atkD3_trycopyability: @ 802C390 - push {r4,lr} - ldr r3, _0802C3D0 @ =gBattleMons - ldr r4, _0802C3D4 @ =gBattlerTarget - ldrb r0, [r4] - movs r2, 0x58 - muls r0, r2 - adds r0, r3 - adds r0, 0x20 - ldrb r1, [r0] - adds r0, r1, 0 - cmp r0, 0 - beq _0802C3E4 - cmp r0, 0x19 - beq _0802C3E4 - ldr r0, _0802C3D8 @ =gBattlerAttacker - ldrb r0, [r0] - muls r0, r2 - adds r0, r3 - adds r0, 0x20 - strb r1, [r0] - ldr r1, _0802C3DC @ =gLastUsedAbility - ldrb r0, [r4] - muls r0, r2 - adds r0, r3 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r1] - ldr r1, _0802C3E0 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0802C3FE - .align 2, 0 -_0802C3D0: .4byte gBattleMons -_0802C3D4: .4byte gBattlerTarget -_0802C3D8: .4byte gBattlerAttacker -_0802C3DC: .4byte gLastUsedAbility -_0802C3E0: .4byte gBattlescriptCurrInstr -_0802C3E4: - ldr r3, _0802C404 @ =gBattlescriptCurrInstr - 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 - str r1, [r3] -_0802C3FE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802C404: .4byte gBattlescriptCurrInstr - thumb_func_end atkD3_trycopyability - - thumb_func_start atkD4_trywish -atkD4_trywish: @ 802C408 - push {r4-r7,lr} - ldr r7, _0802C41C @ =gBattlescriptCurrInstr - ldr r2, [r7] - ldrb r3, [r2, 0x1] - cmp r3, 0 - beq _0802C420 - cmp r3, 0x1 - beq _0802C458 - b _0802C4D4 - .align 2, 0 -_0802C41C: .4byte gBattlescriptCurrInstr -_0802C420: - ldr r1, _0802C44C @ =gWishFutureKnock - ldr r4, _0802C450 @ =gBattlerAttacker - adds r0, r1, 0 - adds r0, 0x20 - ldrb r5, [r4] - adds r3, r0, r5 - ldrb r0, [r3] - cmp r0, 0 - bne _0802C4A4 - movs r0, 0x2 - strb r0, [r3] - ldrb r0, [r4] - adds r1, 0x24 - adds r1, r0, r1 - ldr r2, _0802C454 @ =gBattlerPartyIndexes - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1] - ldr r0, [r7] - adds r0, 0x6 - b _0802C4D2 - .align 2, 0 -_0802C44C: .4byte gWishFutureKnock -_0802C450: .4byte gBattlerAttacker -_0802C454: .4byte gBattlerPartyIndexes -_0802C458: - ldr r1, _0802C4BC @ =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x4 - strb r0, [r1, 0x1] - ldr r4, _0802C4C0 @ =gBattlerTarget - ldrb r0, [r4] - strb r0, [r1, 0x2] - ldr r0, _0802C4C4 @ =gWishFutureKnock - adds r0, 0x24 - ldrb r5, [r4] - adds r0, r5 - ldrb r0, [r0] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, _0802C4C8 @ =gBattleMoveDamage - ldr r6, _0802C4CC @ =gBattleMons - ldrb r0, [r4] - movs r5, 0x58 - muls r0, r5 - adds r0, r6 - ldrh r0, [r0, 0x2C] - lsrs r0, 1 - str r0, [r1] - cmp r0, 0 - bne _0802C490 - str r3, [r1] -_0802C490: - ldr r0, [r1] - negs r0, r0 - str r0, [r1] - ldrb r0, [r4] - muls r0, r5 - adds r0, r6 - ldrh r1, [r0, 0x28] - ldrh r0, [r0, 0x2C] - cmp r1, r0 - bne _0802C4D0 -_0802C4A4: - 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, [r7] - b _0802C4D4 - .align 2, 0 -_0802C4BC: .4byte gBattleTextBuff1 -_0802C4C0: .4byte gBattlerTarget -_0802C4C4: .4byte gWishFutureKnock -_0802C4C8: .4byte gBattleMoveDamage -_0802C4CC: .4byte gBattleMons -_0802C4D0: - adds r0, r2, 0x6 -_0802C4D2: - str r0, [r7] -_0802C4D4: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end atkD4_trywish - - thumb_func_start atkD5_trysetroots -atkD5_trysetroots: @ 802C4DC - push {lr} - ldr r1, _0802C514 @ =gStatuses3 - ldr r0, _0802C518 @ =gBattlerAttacker - ldrb r0, [r0] - lsls r0, 2 - adds r2, r0, r1 - ldr r1, [r2] - movs r3, 0x80 - lsls r3, 3 - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - beq _0802C520 - ldr r3, _0802C51C @ =gBattlescriptCurrInstr - 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 - str r1, [r3] - b _0802C52C - .align 2, 0 -_0802C514: .4byte gStatuses3 -_0802C518: .4byte gBattlerAttacker -_0802C51C: .4byte gBattlescriptCurrInstr -_0802C520: - orrs r1, r3 - str r1, [r2] - ldr r1, _0802C530 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0802C52C: - pop {r0} - bx r0 - .align 2, 0 -_0802C530: .4byte gBattlescriptCurrInstr - thumb_func_end atkD5_trysetroots - - thumb_func_start atkD6_doubledamagedealtifdamaged -atkD6_doubledamagedealtifdamaged: @ 802C534 - push {lr} - ldr r3, _0802C580 @ =gProtectStructs - ldr r0, _0802C584 @ =gBattlerAttacker - ldrb r0, [r0] - lsls r2, r0, 4 - adds r0, r3, 0x4 - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, 0 - beq _0802C554 - adds r0, r2, r3 - ldr r1, _0802C588 @ =gBattlerTarget - ldrb r0, [r0, 0xC] - ldrb r1, [r1] - cmp r0, r1 - beq _0802C56C -_0802C554: - adds r0, r3, 0 - adds r0, 0x8 - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, 0 - beq _0802C572 - adds r0, r2, r3 - ldr r1, _0802C588 @ =gBattlerTarget - ldrb r0, [r0, 0xD] - ldrb r1, [r1] - cmp r0, r1 - bne _0802C572 -_0802C56C: - ldr r1, _0802C58C @ =gBattleScripting - movs r0, 0x2 - strb r0, [r1, 0xE] -_0802C572: - ldr r1, _0802C590 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0802C580: .4byte gProtectStructs -_0802C584: .4byte gBattlerAttacker -_0802C588: .4byte gBattlerTarget -_0802C58C: .4byte gBattleScripting -_0802C590: .4byte gBattlescriptCurrInstr - thumb_func_end atkD6_doubledamagedealtifdamaged - - thumb_func_start atkD7_setyawn -atkD7_setyawn: @ 802C594 - push {r4,lr} - ldr r1, _0802C5D8 @ =gStatuses3 - ldr r0, _0802C5DC @ =gBattlerTarget - ldrb r3, [r0] - lsls r0, r3, 2 - adds r4, r0, r1 - ldr r2, [r4] - movs r0, 0xC0 - lsls r0, 5 - ands r0, r2 - cmp r0, 0 - bne _0802C5BC - ldr r1, _0802C5E0 @ =gBattleMons - movs r0, 0x58 - muls r0, r3 - adds r1, 0x4C - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0802C5E8 -_0802C5BC: - ldr r3, _0802C5E4 @ =gBattlescriptCurrInstr - 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 - str r1, [r3] - b _0802C5F8 - .align 2, 0 -_0802C5D8: .4byte gStatuses3 -_0802C5DC: .4byte gBattlerTarget -_0802C5E0: .4byte gBattleMons -_0802C5E4: .4byte gBattlescriptCurrInstr -_0802C5E8: - movs r0, 0x80 - lsls r0, 5 - orrs r2, r0 - str r2, [r4] - ldr r1, _0802C600 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0802C5F8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802C600: .4byte gBattlescriptCurrInstr - thumb_func_end atkD7_setyawn - - thumb_func_start atkD8_setdamagetohealthdifference -atkD8_setdamagetohealthdifference: @ 802C604 - push {lr} - ldr r2, _0802C640 @ =gBattleMons - ldr r0, _0802C644 @ =gBattlerTarget - ldrb r0, [r0] - movs r1, 0x58 - muls r0, r1 - adds r3, r0, r2 - ldr r0, _0802C648 @ =gBattlerAttacker - ldrb r0, [r0] - muls r0, r1 - adds r1, r0, r2 - ldrh r0, [r3, 0x28] - ldrh r2, [r1, 0x28] - cmp r0, r2 - bhi _0802C650 - ldr r3, _0802C64C @ =gBattlescriptCurrInstr - 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 - str r1, [r3] - b _0802C662 - .align 2, 0 -_0802C640: .4byte gBattleMons -_0802C644: .4byte gBattlerTarget -_0802C648: .4byte gBattlerAttacker -_0802C64C: .4byte gBattlescriptCurrInstr -_0802C650: - ldr r2, _0802C668 @ =gBattleMoveDamage - ldrh r0, [r3, 0x28] - ldrh r1, [r1, 0x28] - subs r0, r1 - str r0, [r2] - ldr r1, _0802C66C @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0802C662: - pop {r0} - bx r0 - .align 2, 0 -_0802C668: .4byte gBattleMoveDamage -_0802C66C: .4byte gBattlescriptCurrInstr - thumb_func_end atkD8_setdamagetohealthdifference - - thumb_func_start atkD9_scaledamagebyhealthratio -atkD9_scaledamagebyhealthratio: @ 802C670 - push {r4,lr} - ldr r4, _0802C6BC @ =gDynamicBasePower - ldrh r0, [r4] - cmp r0, 0 - bne _0802C6AC - ldr r2, _0802C6C0 @ =gBattleMoves - ldr r0, _0802C6C4 @ =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r3, [r0, 0x1] - ldr r2, _0802C6C8 @ =gBattleMons - ldr r0, _0802C6CC @ =gBattlerAttacker - ldrb r1, [r0] - movs r0, 0x58 - muls r1, r0 - adds r1, r2 - ldrh r0, [r1, 0x28] - muls r0, r3 - ldrh r1, [r1, 0x2C] - bl __divsi3 - strh r0, [r4] - lsls r0, 16 - cmp r0, 0 - bne _0802C6AC - movs r0, 0x1 - strh r0, [r4] -_0802C6AC: - ldr r1, _0802C6D0 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802C6BC: .4byte gDynamicBasePower -_0802C6C0: .4byte gBattleMoves -_0802C6C4: .4byte gCurrentMove -_0802C6C8: .4byte gBattleMons -_0802C6CC: .4byte gBattlerAttacker -_0802C6D0: .4byte gBattlescriptCurrInstr - thumb_func_end atkD9_scaledamagebyhealthratio - - thumb_func_start atkDA_tryswapabilities -atkDA_tryswapabilities: @ 802C6D4 - push {r4-r6,lr} - ldr r5, _0802C738 @ =gBattleMons - ldr r0, _0802C73C @ =gBattlerAttacker - ldrb r0, [r0] - movs r4, 0x58 - muls r0, r4 - adds r0, r5 - adds r2, r0, 0 - adds r2, 0x20 - ldrb r1, [r2] - cmp r1, 0 - bne _0802C6FC - ldr r0, _0802C740 @ =gBattlerTarget - ldrb r0, [r0] - muls r0, r4 - adds r0, r5 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - beq _0802C71C -_0802C6FC: - cmp r1, 0x19 - beq _0802C71C - ldr r6, _0802C740 @ =gBattlerTarget - ldrb r0, [r6] - muls r0, r4 - adds r0, r5 - adds r0, 0x20 - ldrb r3, [r0] - cmp r3, 0x19 - beq _0802C71C - ldr r0, _0802C744 @ =gMoveResultFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _0802C74C -_0802C71C: - ldr r3, _0802C748 @ =gBattlescriptCurrInstr - 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 - str r1, [r3] - b _0802C762 - .align 2, 0 -_0802C738: .4byte gBattleMons -_0802C73C: .4byte gBattlerAttacker -_0802C740: .4byte gBattlerTarget -_0802C744: .4byte gMoveResultFlags -_0802C748: .4byte gBattlescriptCurrInstr -_0802C74C: - ldrb r1, [r2] - strb r3, [r2] - ldrb r0, [r6] - muls r0, r4 - adds r0, r5 - adds r0, 0x20 - strb r1, [r0] - ldr r1, _0802C768 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0802C762: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802C768: .4byte gBattlescriptCurrInstr - thumb_func_end atkDA_tryswapabilities - - thumb_func_start atkDB_tryimprison -atkDB_tryimprison: @ 802C76C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r1, _0802C78C @ =gStatuses3 - ldr r4, _0802C790 @ =gBattlerAttacker - ldrb r2, [r4] - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 6 - ands r0, r1 - cmp r0, 0 - beq _0802C7BC - b _0802C83E - .align 2, 0 -_0802C78C: .4byte gStatuses3 -_0802C790: .4byte gBattlerAttacker -_0802C794: - ldr r0, _0802C7B4 @ =gStatuses3 - mov r2, r9 - ldrb r1, [r2] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - movs r2, 0x80 - lsls r2, 6 - orrs r0, r2 - str r0, [r1] - ldr r1, _0802C7B8 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0802C836 - .align 2, 0 -_0802C7B4: .4byte gStatuses3 -_0802C7B8: .4byte gBattlescriptCurrInstr -_0802C7BC: - adds r0, r2, 0 - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrb r0, [r4] - bl PressurePPLoseOnUsingImprison - movs r6, 0 - b _0802C82E -_0802C7D2: - adds r0, r6, 0 - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r8, r0 - beq _0802C828 - movs r4, 0 - ldr r7, _0802C864 @ =gBattlerAttacker - mov r9, r7 - ldr r0, _0802C868 @ =gBattleMons - mov r12, r0 - mov r1, r9 - ldrb r0, [r1] - mov r2, r12 - adds r2, 0xC - movs r1, 0x58 - muls r0, r1 - adds r3, r0, r2 - adds r5, r6, 0 - muls r5, r1 -_0802C7FC: - movs r2, 0 - ldrh r1, [r3] - mov r0, r12 - adds r0, 0xC - adds r0, r5, r0 -_0802C806: - ldrh r7, [r0] - cmp r1, r7 - bne _0802C810 - cmp r1, 0 - bne _0802C818 -_0802C810: - adds r0, 0x2 - adds r2, 0x1 - cmp r2, 0x3 - ble _0802C806 -_0802C818: - cmp r2, 0x4 - bne _0802C824 - adds r3, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - ble _0802C7FC -_0802C824: - cmp r4, 0x4 - bne _0802C794 -_0802C828: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0802C82E: - ldr r0, _0802C86C @ =gBattlersCount - ldrb r0, [r0] - cmp r6, r0 - bcc _0802C7D2 -_0802C836: - ldr r0, _0802C86C @ =gBattlersCount - ldrb r0, [r0] - cmp r6, r0 - bne _0802C858 -_0802C83E: - ldr r3, _0802C870 @ =gBattlescriptCurrInstr - 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 - str r1, [r3] -_0802C858: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802C864: .4byte gBattlerAttacker -_0802C868: .4byte gBattleMons -_0802C86C: .4byte gBattlersCount -_0802C870: .4byte gBattlescriptCurrInstr - thumb_func_end atkDB_tryimprison - - thumb_func_start atkDC_trysetgrudge -atkDC_trysetgrudge: @ 802C874 - push {lr} - ldr r1, _0802C8AC @ =gStatuses3 - ldr r0, _0802C8B0 @ =gBattlerAttacker - ldrb r0, [r0] - lsls r0, 2 - adds r2, r0, r1 - ldr r1, [r2] - movs r3, 0x80 - lsls r3, 7 - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - beq _0802C8B8 - ldr r3, _0802C8B4 @ =gBattlescriptCurrInstr - 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 - str r1, [r3] - b _0802C8C4 - .align 2, 0 -_0802C8AC: .4byte gStatuses3 -_0802C8B0: .4byte gBattlerAttacker -_0802C8B4: .4byte gBattlescriptCurrInstr -_0802C8B8: - orrs r1, r3 - str r1, [r2] - ldr r1, _0802C8C8 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0802C8C4: - pop {r0} - bx r0 - .align 2, 0 -_0802C8C8: .4byte gBattlescriptCurrInstr - thumb_func_end atkDC_trysetgrudge - - thumb_func_start atkDD_weightdamagecalculation -atkDD_weightdamagecalculation: @ 802C8CC - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r5, 0 - ldr r2, _0802C930 @ =sWeightToDamageTable - ldrh r0, [r2] - ldr r1, _0802C934 @ =0x0000ffff - cmp r0, r1 - beq _0802C944 - adds r6, r2, 0 - ldr r0, _0802C938 @ =gBattleMons - mov r8, r0 - adds r7, r1, 0 - adds r4, r6, 0 -_0802C8E8: - ldr r0, _0802C93C @ =gBattlerTarget - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - add r0, r8 - ldrh r0, [r0] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl GetPokedexHeightWeight - ldrh r1, [r4] - lsls r0, 16 - lsrs r0, 16 - cmp r1, r0 - bhi _0802C916 - adds r4, 0x4 - adds r5, 0x2 - ldrh r0, [r4] - cmp r0, r7 - bne _0802C8E8 -_0802C916: - lsls r0, r5, 1 - adds r0, r6 - ldrh r1, [r0] - ldr r0, _0802C934 @ =0x0000ffff - cmp r1, r0 - beq _0802C944 - ldr r0, _0802C940 @ =gDynamicBasePower - adds r1, r5, 0x1 - lsls r1, 1 - adds r1, r6 - ldrh r1, [r1] - strh r1, [r0] - b _0802C94A - .align 2, 0 -_0802C930: .4byte sWeightToDamageTable -_0802C934: .4byte 0x0000ffff -_0802C938: .4byte gBattleMons -_0802C93C: .4byte gBattlerTarget -_0802C940: .4byte gDynamicBasePower -_0802C944: - ldr r1, _0802C95C @ =gDynamicBasePower - movs r0, 0x78 - strh r0, [r1] -_0802C94A: - ldr r1, _0802C960 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802C95C: .4byte gDynamicBasePower -_0802C960: .4byte gBattlescriptCurrInstr - thumb_func_end atkDD_weightdamagecalculation - - thumb_func_start atkDE_assistattackselect -atkDE_assistattackselect: @ 802C964 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - movs r0, 0 - mov r10, r0 - ldr r0, _0802CA84 @ =gBattleStruct - ldr r0, [r0] - adds r0, 0x18 - str r0, [sp, 0x4] - ldr r0, _0802CA88 @ =gBattlerAttacker - ldrb r0, [r0] - bl GetBattlerPosition - movs r1, 0x1 - ands r1, r0 - ldr r0, _0802CA8C @ =gPlayerParty - str r0, [sp] - cmp r1, 0 - beq _0802C994 - ldr r1, _0802CA90 @ =gEnemyParty - str r1, [sp] -_0802C994: - movs r2, 0 -_0802C996: - ldr r1, _0802CA94 @ =gBattlerPartyIndexes - ldr r0, _0802CA88 @ =gBattlerAttacker - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - adds r1, r2, 0x1 - str r1, [sp, 0x8] - ldrh r0, [r0] - cmp r2, r0 - beq _0802CA3C - movs r0, 0x64 - adds r6, r2, 0 - muls r6, r0 - ldr r0, [sp] - adds r4, r0, r6 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _0802CA3C - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _0802CA3C - movs r5, 0 - ldr r1, _0802CA98 @ =0x0000ffff - mov r8, r1 - mov r9, r6 - mov r1, r10 - lsls r0, r1, 1 - ldr r1, [sp, 0x4] - adds r6, r0, r1 -_0802C9E0: - movs r7, 0 - adds r1, r5, 0 - adds r1, 0xD - ldr r0, [sp] - add r0, r9 - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl IsInvalidForSleepTalkOrAssist - lsls r0, 24 - adds r1, r5, 0x1 - cmp r0, 0 - bne _0802CA36 - ldr r0, _0802CA9C @ =sMovesForbiddenToCopy - ldrh r2, [r0] - adds r3, r0, 0 - cmp r2, r8 - beq _0802CA2A - cmp r4, r2 - beq _0802CA20 - ldr r5, _0802CA98 @ =0x0000ffff - adds r2, r3, 0 -_0802CA12: - adds r2, 0x2 - adds r7, 0x1 - ldrh r0, [r2] - cmp r0, r5 - beq _0802CA2A - cmp r4, r0 - bne _0802CA12 -_0802CA20: - lsls r0, r7, 1 - adds r0, r3 - ldrh r0, [r0] - cmp r0, r8 - bne _0802CA36 -_0802CA2A: - cmp r4, 0 - beq _0802CA36 - strh r4, [r6] - adds r6, 0x2 - movs r0, 0x1 - add r10, r0 -_0802CA36: - adds r5, r1, 0 - cmp r5, 0x3 - ble _0802C9E0 -_0802CA3C: - ldr r2, [sp, 0x8] - cmp r2, 0x5 - ble _0802C996 - mov r1, r10 - cmp r1, 0 - beq _0802CAB4 - ldr r2, _0802CAA0 @ =gHitMarker - ldr r0, [r2] - ldr r1, _0802CAA4 @ =0xfffffbff - ands r0, r1 - str r0, [r2] - ldr r4, _0802CAA8 @ =gCalledMove - bl Random - movs r1, 0xFF - ands r1, r0 - mov r0, r10 - muls r0, r1 - asrs r0, 8 - lsls r0, 1 - ldr r1, [sp, 0x4] - adds r0, r1 - ldrh r0, [r0] - strh r0, [r4] - ldrh r0, [r4] - movs r1, 0 - bl GetMoveTarget - ldr r1, _0802CAAC @ =gBattlerTarget - strb r0, [r1] - ldr r1, _0802CAB0 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0802CACE - .align 2, 0 -_0802CA84: .4byte gBattleStruct -_0802CA88: .4byte gBattlerAttacker -_0802CA8C: .4byte gPlayerParty -_0802CA90: .4byte gEnemyParty -_0802CA94: .4byte gBattlerPartyIndexes -_0802CA98: .4byte 0x0000ffff -_0802CA9C: .4byte sMovesForbiddenToCopy -_0802CAA0: .4byte gHitMarker -_0802CAA4: .4byte 0xfffffbff -_0802CAA8: .4byte gCalledMove -_0802CAAC: .4byte gBattlerTarget -_0802CAB0: .4byte gBattlescriptCurrInstr -_0802CAB4: - ldr r3, _0802CAE0 @ =gBattlescriptCurrInstr - 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 - str r1, [r3] -_0802CACE: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802CAE0: .4byte gBattlescriptCurrInstr - thumb_func_end atkDE_assistattackselect - - thumb_func_start atkDF_trysetmagiccoat -atkDF_trysetmagiccoat: @ 802CAE4 - push {lr} - ldr r1, _0802CB2C @ =gBattlerTarget - ldr r3, _0802CB30 @ =gBattlerAttacker - ldrb r0, [r3] - strb r0, [r1] - ldr r2, _0802CB34 @ =gSpecialStatuses - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0] - ldr r0, _0802CB38 @ =gCurrentTurnActionNumber - ldrb r1, [r0] - ldr r0, _0802CB3C @ =gBattlersCount - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - bne _0802CB44 - ldr r3, _0802CB40 @ =gBattlescriptCurrInstr - 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 - str r1, [r3] - b _0802CB5C - .align 2, 0 -_0802CB2C: .4byte gBattlerTarget -_0802CB30: .4byte gBattlerAttacker -_0802CB34: .4byte gSpecialStatuses -_0802CB38: .4byte gCurrentTurnActionNumber -_0802CB3C: .4byte gBattlersCount -_0802CB40: .4byte gBattlescriptCurrInstr -_0802CB44: - ldr r0, _0802CB60 @ =gProtectStructs - ldrb r1, [r3] - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x10 - orrs r0, r2 - strb r0, [r1] - ldr r1, _0802CB64 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0802CB5C: - pop {r0} - bx r0 - .align 2, 0 -_0802CB60: .4byte gProtectStructs -_0802CB64: .4byte gBattlescriptCurrInstr - thumb_func_end atkDF_trysetmagiccoat - - thumb_func_start atkE0_trysetsnatch -atkE0_trysetsnatch: @ 802CB68 - push {lr} - ldr r2, _0802CBAC @ =gSpecialStatuses - ldr r3, _0802CBB0 @ =gBattlerAttacker - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0] - ldr r0, _0802CBB4 @ =gCurrentTurnActionNumber - ldrb r1, [r0] - ldr r0, _0802CBB8 @ =gBattlersCount - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - bne _0802CBC0 - ldr r3, _0802CBBC @ =gBattlescriptCurrInstr - 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 - str r1, [r3] - b _0802CBD6 - .align 2, 0 -_0802CBAC: .4byte gSpecialStatuses -_0802CBB0: .4byte gBattlerAttacker -_0802CBB4: .4byte gCurrentTurnActionNumber -_0802CBB8: .4byte gBattlersCount -_0802CBBC: .4byte gBattlescriptCurrInstr -_0802CBC0: - ldr r0, _0802CBDC @ =gProtectStructs - ldrb r1, [r3] - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - ldr r1, _0802CBE0 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0802CBD6: - pop {r0} - bx r0 - .align 2, 0 -_0802CBDC: .4byte gProtectStructs -_0802CBE0: .4byte gBattlescriptCurrInstr - thumb_func_end atkE0_trysetsnatch - - thumb_func_start atkE1_trygetintimidatetarget -atkE1_trygetintimidatetarget: @ 802CBE4 - push {r4-r6,lr} - ldr r4, _0802CC88 @ =gBattleScripting - ldr r0, _0802CC8C @ =gBattleStruct - ldr r0, [r0] - adds r0, 0xD8 - ldrb r0, [r0] - strb r0, [r4, 0x17] - ldrb r0, [r4, 0x17] - bl GetBattlerSide - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, _0802CC90 @ =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r2] - movs r0, 0x9 - strb r0, [r2, 0x1] - ldr r3, _0802CC94 @ =gBattleMons - ldrb r1, [r4, 0x17] - movs r0, 0x58 - muls r0, r1 - adds r0, r3 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r2, 0x2] - movs r0, 0xFF - strb r0, [r2, 0x3] - ldr r2, _0802CC98 @ =gBattlerTarget - ldr r1, _0802CC9C @ =gBattlersCount - ldrb r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - bcs _0802CC6A - adds r4, r2, 0 - ldr r6, _0802CCA0 @ =gBitTable -_0802CC2A: - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, r5 - beq _0802CC4C - ldr r0, _0802CCA4 @ =gAbsentBattlerFlags - ldrb r1, [r0] - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - ands r1, r0 - ldr r2, _0802CC9C @ =gBattlersCount - cmp r1, 0 - beq _0802CC60 -_0802CC4C: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _0802CC9C @ =gBattlersCount - lsls r0, 24 - lsrs r0, 24 - adds r2, r1, 0 - ldrb r1, [r2] - cmp r0, r1 - bcc _0802CC2A -_0802CC60: - ldr r0, _0802CC98 @ =gBattlerTarget - ldrb r0, [r0] - ldrb r2, [r2] - cmp r0, r2 - bcc _0802CCAC -_0802CC6A: - ldr r3, _0802CCA8 @ =gBattlescriptCurrInstr - 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 - str r1, [r3] - b _0802CCB4 - .align 2, 0 -_0802CC88: .4byte gBattleScripting -_0802CC8C: .4byte gBattleStruct -_0802CC90: .4byte gBattleTextBuff1 -_0802CC94: .4byte gBattleMons -_0802CC98: .4byte gBattlerTarget -_0802CC9C: .4byte gBattlersCount -_0802CCA0: .4byte gBitTable -_0802CCA4: .4byte gAbsentBattlerFlags -_0802CCA8: .4byte gBattlescriptCurrInstr -_0802CCAC: - ldr r1, _0802CCBC @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0802CCB4: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802CCBC: .4byte gBattlescriptCurrInstr - thumb_func_end atkE1_trygetintimidatetarget - - thumb_func_start atkE2_switchoutabilities -atkE2_switchoutabilities: @ 802CCC0 - push {r4-r6,lr} - sub sp, 0x4 - ldr r5, _0802CD28 @ =gBattlescriptCurrInstr - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl GetBattlerForBattleScript - ldr r4, _0802CD2C @ =gActiveBattler - strb r0, [r4] - ldr r3, _0802CD30 @ =gBattleMons - ldrb r0, [r4] - movs r6, 0x58 - adds r1, r0, 0 - muls r1, r6 - adds r0, r1, r3 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1E - bne _0802CD1A - adds r3, 0x4C - adds r1, r3 - movs r0, 0 - str r0, [r1] - ldr r2, _0802CD34 @ =gBitTable - ldrb r1, [r4] - ldr r0, _0802CD38 @ =gBattleStruct - ldr r0, [r0] - adds r0, r1, r0 - adds r0, 0x58 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldrb r2, [r0] - adds r0, r1, 0 - muls r0, r6 - adds r0, r3 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r3, 0x4 - bl BtlController_EmitSetMonData - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_0802CD1A: - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802CD28: .4byte gBattlescriptCurrInstr -_0802CD2C: .4byte gActiveBattler -_0802CD30: .4byte gBattleMons -_0802CD34: .4byte gBitTable -_0802CD38: .4byte gBattleStruct - thumb_func_end atkE2_switchoutabilities - - thumb_func_start atkE3_jumpifhasnohp -atkE3_jumpifhasnohp: @ 802CD3C - push {r4,lr} - ldr r4, _0802CD78 @ =gBattlescriptCurrInstr - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl GetBattlerForBattleScript - ldr r1, _0802CD7C @ =gActiveBattler - strb r0, [r1] - ldr r2, _0802CD80 @ =gBattleMons - ldrb r1, [r1] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _0802CD84 - ldr r2, [r4] - 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, [r4] - b _0802CD8A - .align 2, 0 -_0802CD78: .4byte gBattlescriptCurrInstr -_0802CD7C: .4byte gActiveBattler -_0802CD80: .4byte gBattleMons -_0802CD84: - ldr r0, [r4] - adds r0, 0x6 - str r0, [r4] -_0802CD8A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end atkE3_jumpifhasnohp - - thumb_func_start atkE4_getsecretpowereffect -atkE4_getsecretpowereffect: @ 802CD90 - push {lr} - ldr r0, _0802CDA4 @ =gBattleTerrain - ldrb r0, [r0] - cmp r0, 0x7 - bhi _0802CE2C - lsls r0, 2 - ldr r1, _0802CDA8 @ =_0802CDAC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802CDA4: .4byte gBattleTerrain -_0802CDA8: .4byte _0802CDAC - .align 2, 0 -_0802CDAC: - .4byte _0802CDCC - .4byte _0802CDD8 - .4byte _0802CDE4 - .4byte _0802CDF0 - .4byte _0802CDFC - .4byte _0802CE08 - .4byte _0802CE14 - .4byte _0802CE20 -_0802CDCC: - ldr r1, _0802CDD4 @ =gBattleCommunication - movs r0, 0x2 - b _0802CE30 - .align 2, 0 -_0802CDD4: .4byte gBattleCommunication -_0802CDD8: - ldr r1, _0802CDE0 @ =gBattleCommunication - movs r0, 0x1 - b _0802CE30 - .align 2, 0 -_0802CDE0: .4byte gBattleCommunication -_0802CDE4: - ldr r1, _0802CDEC @ =gBattleCommunication - movs r0, 0x1B - b _0802CE30 - .align 2, 0 -_0802CDEC: .4byte gBattleCommunication -_0802CDF0: - ldr r1, _0802CDF8 @ =gBattleCommunication - movs r0, 0x17 - b _0802CE30 - .align 2, 0 -_0802CDF8: .4byte gBattleCommunication -_0802CDFC: - ldr r1, _0802CE04 @ =gBattleCommunication - movs r0, 0x16 - b _0802CE30 - .align 2, 0 -_0802CE04: .4byte gBattleCommunication -_0802CE08: - ldr r1, _0802CE10 @ =gBattleCommunication - movs r0, 0x18 - b _0802CE30 - .align 2, 0 -_0802CE10: .4byte gBattleCommunication -_0802CE14: - ldr r1, _0802CE1C @ =gBattleCommunication - movs r0, 0x7 - b _0802CE30 - .align 2, 0 -_0802CE1C: .4byte gBattleCommunication -_0802CE20: - ldr r1, _0802CE28 @ =gBattleCommunication - movs r0, 0x8 - b _0802CE30 - .align 2, 0 -_0802CE28: .4byte gBattleCommunication -_0802CE2C: - ldr r1, _0802CE40 @ =gBattleCommunication - movs r0, 0x5 -_0802CE30: - strb r0, [r1, 0x3] - ldr r1, _0802CE44 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0802CE40: .4byte gBattleCommunication -_0802CE44: .4byte gBattlescriptCurrInstr - thumb_func_end atkE4_getsecretpowereffect - - thumb_func_start atkE5_pickup -atkE5_pickup: @ 802CE48 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r7, 0 - ldr r0, _0802CE90 @ =gBaseStats - mov r8, r0 -_0802CE54: - movs r0, 0x64 - adds r4, r7, 0 - muls r4, r0 - ldr r0, _0802CE94 @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r4, 0 - movs r1, 0x2E - bl GetMonData - cmp r0, 0 - beq _0802CE98 - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - add r0, r8 - ldrb r0, [r0, 0x17] - b _0802CEA2 - .align 2, 0 -_0802CE90: .4byte gBaseStats -_0802CE94: .4byte gPlayerParty -_0802CE98: - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - add r0, r8 - ldrb r0, [r0, 0x16] -_0802CEA2: - adds r4, r7, 0x1 - cmp r0, 0x35 - bne _0802CF0A - cmp r5, 0 - beq _0802CF0A - movs r0, 0xCE - lsls r0, 1 - cmp r5, r0 - beq _0802CF0A - cmp r6, 0 - bne _0802CF0A - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _0802CF0A - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - ldr r1, _0802CEE4 @ =sPickupItems - b _0802CEF0 - .align 2, 0 -_0802CEE4: .4byte sPickupItems -_0802CEE8: - adds r1, 0x4 - adds r2, 0x1 - cmp r2, 0xE - bhi _0802CEF6 -_0802CEF0: - ldrb r0, [r1, 0x2] - cmp r0, r3 - ble _0802CEE8 -_0802CEF6: - movs r0, 0x64 - muls r0, r7 - ldr r1, _0802CF24 @ =gPlayerParty - adds r0, r1 - lsls r2, 2 - ldr r1, _0802CF28 @ =sPickupItems - adds r2, r1 - movs r1, 0xC - bl SetMonData -_0802CF0A: - adds r7, r4, 0 - cmp r7, 0x5 - ble _0802CE54 - ldr r1, _0802CF2C @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802CF24: .4byte gPlayerParty -_0802CF28: .4byte sPickupItems -_0802CF2C: .4byte gBattlescriptCurrInstr - thumb_func_end atkE5_pickup - - thumb_func_start atkE6_docastformchangeanimation -atkE6_docastformchangeanimation: @ 802CF30 - push {r4,lr} - ldr r4, _0802CF84 @ =gActiveBattler - ldr r0, _0802CF88 @ =gBattleScripting - ldrb r0, [r0, 0x17] - strb r0, [r4] - ldr r1, _0802CF8C @ =gBattleMons - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - ldr r3, _0802CF90 @ =gBattleStruct - cmp r0, 0 - beq _0802CF60 - ldr r0, [r3] - adds r0, 0x7F - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] -_0802CF60: - ldr r0, [r3] - adds r0, 0x7F - ldrb r2, [r0] - movs r0, 0 - movs r1, 0 - bl BtlController_EmitBattleAnimation - ldrb r0, [r4] - bl MarkBattlerForControllerExec - ldr r1, _0802CF94 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802CF84: .4byte gActiveBattler -_0802CF88: .4byte gBattleScripting -_0802CF8C: .4byte gBattleMons -_0802CF90: .4byte gBattleStruct -_0802CF94: .4byte gBattlescriptCurrInstr - thumb_func_end atkE6_docastformchangeanimation - - thumb_func_start atkE7_trycastformdatachange -atkE7_trycastformdatachange: @ 802CF98 - push {r4,lr} - ldr r1, _0802CFC8 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r0, _0802CFCC @ =gBattleScripting - ldrb r0, [r0, 0x17] - bl CastformDataTypeChange - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _0802CFC2 - ldr r0, _0802CFD0 @ =BattleScript_CastformChange - bl BattleScriptPushCursorAndCallback - ldr r0, _0802CFD4 @ =gBattleStruct - ldr r0, [r0] - adds r0, 0x7F - subs r1, r4, 0x1 - strb r1, [r0] -_0802CFC2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802CFC8: .4byte gBattlescriptCurrInstr -_0802CFCC: .4byte gBattleScripting -_0802CFD0: .4byte BattleScript_CastformChange -_0802CFD4: .4byte gBattleStruct - thumb_func_end atkE7_trycastformdatachange - - thumb_func_start atkE8_settypebasedhalvers -atkE8_settypebasedhalvers: @ 802CFD8 - push {r4,lr} - movs r4, 0 - ldr r2, _0802D014 @ =gBattleMoves - ldr r0, _0802D018 @ =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0xC9 - bne _0802D028 - ldr r1, _0802D01C @ =gStatuses3 - ldr r0, _0802D020 @ =gBattlerAttacker - ldrb r0, [r0] - lsls r0, 2 - adds r2, r0, r1 - ldr r1, [r2] - movs r3, 0x80 - lsls r3, 9 - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - bne _0802D04C - orrs r1, r3 - str r1, [r2] - ldr r0, _0802D024 @ =gBattleCommunication - strb r4, [r0, 0x5] - b _0802D050 - .align 2, 0 -_0802D014: .4byte gBattleMoves -_0802D018: .4byte gCurrentMove -_0802D01C: .4byte gStatuses3 -_0802D020: .4byte gBattlerAttacker -_0802D024: .4byte gBattleCommunication -_0802D028: - ldr r1, _0802D05C @ =gStatuses3 - ldr r0, _0802D060 @ =gBattlerAttacker - ldrb r0, [r0] - lsls r0, 2 - adds r2, r0, r1 - ldr r1, [r2] - movs r3, 0x80 - lsls r3, 10 - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - bne _0802D04C - orrs r1, r3 - str r1, [r2] - ldr r1, _0802D064 @ =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x5] - movs r4, 0x1 -_0802D04C: - cmp r4, 0 - beq _0802D06C -_0802D050: - ldr r1, _0802D068 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0802D086 - .align 2, 0 -_0802D05C: .4byte gStatuses3 -_0802D060: .4byte gBattlerAttacker -_0802D064: .4byte gBattleCommunication -_0802D068: .4byte gBattlescriptCurrInstr -_0802D06C: - ldr r3, _0802D08C @ =gBattlescriptCurrInstr - 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 - str r1, [r3] -_0802D086: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802D08C: .4byte gBattlescriptCurrInstr - thumb_func_end atkE8_settypebasedhalvers - - thumb_func_start atkE9_setweatherballtype -atkE9_setweatherballtype: @ 802D090 - push {lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0802D130 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - bne _0802D130 - ldr r2, _0802D0E0 @ =gBattleWeather - ldrb r0, [r2] - cmp r0, 0 - beq _0802D0CE - ldr r1, _0802D0E4 @ =gBattleScripting - movs r0, 0x2 - strb r0, [r1, 0xE] -_0802D0CE: - ldrh r1, [r2] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - beq _0802D0EC - ldr r0, _0802D0E8 @ =gBattleStruct - ldr r1, [r0] - movs r0, 0x8B - b _0802D12E - .align 2, 0 -_0802D0E0: .4byte gBattleWeather -_0802D0E4: .4byte gBattleScripting -_0802D0E8: .4byte gBattleStruct -_0802D0EC: - movs r0, 0x18 - ands r0, r1 - cmp r0, 0 - beq _0802D100 - ldr r0, _0802D0FC @ =gBattleStruct - ldr r1, [r0] - movs r0, 0x85 - b _0802D12E - .align 2, 0 -_0802D0FC: .4byte gBattleStruct -_0802D100: - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _0802D114 - ldr r0, _0802D110 @ =gBattleStruct - ldr r1, [r0] - movs r0, 0x8A - b _0802D12E - .align 2, 0 -_0802D110: .4byte gBattleStruct -_0802D114: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0802D128 - ldr r0, _0802D124 @ =gBattleStruct - ldr r1, [r0] - movs r0, 0x8F - b _0802D12E - .align 2, 0 -_0802D124: .4byte gBattleStruct -_0802D128: - ldr r0, _0802D140 @ =gBattleStruct - ldr r1, [r0] - movs r0, 0x80 -_0802D12E: - strb r0, [r1, 0x13] -_0802D130: - ldr r1, _0802D144 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0802D140: .4byte gBattleStruct -_0802D144: .4byte gBattlescriptCurrInstr - thumb_func_end atkE9_setweatherballtype - - thumb_func_start atkEA_tryrecycleitem -atkEA_tryrecycleitem: @ 802D148 - push {r4-r7,lr} - sub sp, 0x4 - ldr r7, _0802D1B0 @ =gActiveBattler - ldr r0, _0802D1B4 @ =gBattlerAttacker - ldrb r0, [r0] - strb r0, [r7] - ldr r1, _0802D1B8 @ =gBattleStruct - ldrb r2, [r7] - lsls r0, r2, 1 - adds r0, 0xB8 - ldr r1, [r1] - adds r6, r1, r0 - ldrh r5, [r6] - cmp r5, 0 - beq _0802D1C8 - ldr r4, _0802D1BC @ =gBattleMons - movs r3, 0x58 - adds r0, r2, 0 - muls r0, r3 - adds r0, r4 - ldrh r0, [r0, 0x2E] - cmp r0, 0 - bne _0802D1C8 - ldr r1, _0802D1C0 @ =gLastUsedItem - strh r5, [r1] - strh r0, [r6] - ldrb r0, [r7] - muls r0, r3 - adds r0, r4 - ldrh r1, [r1] - strh r1, [r0, 0x2E] - ldrb r0, [r7] - muls r0, r3 - adds r1, r4, 0 - adds r1, 0x2E - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl BtlController_EmitSetMonData - ldrb r0, [r7] - bl MarkBattlerForControllerExec - ldr r1, _0802D1C4 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0802D1E2 - .align 2, 0 -_0802D1B0: .4byte gActiveBattler -_0802D1B4: .4byte gBattlerAttacker -_0802D1B8: .4byte gBattleStruct -_0802D1BC: .4byte gBattleMons -_0802D1C0: .4byte gLastUsedItem -_0802D1C4: .4byte gBattlescriptCurrInstr -_0802D1C8: - ldr r3, _0802D1EC @ =gBattlescriptCurrInstr - 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 - str r1, [r3] -_0802D1E2: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802D1EC: .4byte gBattlescriptCurrInstr - thumb_func_end atkEA_tryrecycleitem - - thumb_func_start atkEB_settypetoterrain -atkEB_settypetoterrain: @ 802D1F0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _0802D260 @ =gBattleMons - mov r8, r0 - ldr r7, _0802D264 @ =gBattlerAttacker - ldrb r0, [r7] - movs r6, 0x58 - muls r0, r6 - mov r1, r8 - adds r3, r0, r1 - movs r0, 0x21 - adds r0, r3 - mov r12, r0 - ldr r5, _0802D268 @ =sTerrainToType - ldr r4, _0802D26C @ =gBattleTerrain - ldrb r0, [r4] - adds r0, r5 - ldrb r2, [r0] - mov r1, r12 - ldrb r0, [r1] - adds r1, r2, 0 - cmp r0, r1 - beq _0802D278 - adds r0, r3, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, r1 - beq _0802D278 - mov r0, r12 - strb r2, [r0] - ldrb r0, [r7] - adds r1, r0, 0 - muls r1, r6 - add r1, r8 - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - adds r1, 0x22 - strb r0, [r1] - ldr r1, _0802D270 @ =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x3 - strb r0, [r1, 0x1] - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r1, _0802D274 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0802D292 - .align 2, 0 -_0802D260: .4byte gBattleMons -_0802D264: .4byte gBattlerAttacker -_0802D268: .4byte sTerrainToType -_0802D26C: .4byte gBattleTerrain -_0802D270: .4byte gBattleTextBuff1 -_0802D274: .4byte gBattlescriptCurrInstr -_0802D278: - ldr r3, _0802D29C @ =gBattlescriptCurrInstr - 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 - str r1, [r3] -_0802D292: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802D29C: .4byte gBattlescriptCurrInstr - thumb_func_end atkEB_settypetoterrain - - thumb_func_start atkEC_pursuitrelated -atkEC_pursuitrelated: @ 802D2A0 - push {r4-r6,lr} - ldr r5, _0802D314 @ =gBattlerAttacker - ldrb r0, [r5] - bl GetBattlerPosition - movs r1, 0x2 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl GetBattlerAtPosition - ldr r4, _0802D318 @ =gActiveBattler - strb r0, [r4] - ldr r0, _0802D31C @ =gBattleTypeFlags - ldr r0, [r0] - movs r6, 0x1 - ands r0, r6 - cmp r0, 0 - beq _0802D340 - ldr r0, _0802D320 @ =gAbsentBattlerFlags - ldrb r1, [r0] - ldr r2, _0802D324 @ =gBitTable - ldrb r3, [r4] - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0802D340 - ldr r0, _0802D328 @ =gChosenActionByBattler - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, 0 - bne _0802D340 - ldr r1, _0802D32C @ =gChosenMoveByBattler - lsls r0, r3, 1 - adds r0, r1 - ldrh r2, [r0] - cmp r2, 0xE4 - bne _0802D340 - ldr r0, _0802D330 @ =gActionsByTurnOrder - adds r0, r3, r0 - movs r1, 0xB - strb r1, [r0] - ldr r0, _0802D334 @ =gCurrentMove - strh r2, [r0] - ldr r1, _0802D338 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - ldr r0, _0802D33C @ =gBattleScripting - strb r6, [r0, 0x18] - ldrb r1, [r5] - adds r0, 0x20 - strb r1, [r0] - ldrb r0, [r4] - strb r0, [r5] - b _0802D35A - .align 2, 0 -_0802D314: .4byte gBattlerAttacker -_0802D318: .4byte gActiveBattler -_0802D31C: .4byte gBattleTypeFlags -_0802D320: .4byte gAbsentBattlerFlags -_0802D324: .4byte gBitTable -_0802D328: .4byte gChosenActionByBattler -_0802D32C: .4byte gChosenMoveByBattler -_0802D330: .4byte gActionsByTurnOrder -_0802D334: .4byte gCurrentMove -_0802D338: .4byte gBattlescriptCurrInstr -_0802D33C: .4byte gBattleScripting -_0802D340: - ldr r3, _0802D360 @ =gBattlescriptCurrInstr - 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 - str r1, [r3] -_0802D35A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802D360: .4byte gBattlescriptCurrInstr - thumb_func_end atkEC_pursuitrelated - - thumb_func_start atkED_snatchsetbattlers -atkED_snatchsetbattlers: @ 802D364 - push {r4,lr} - ldr r1, _0802D388 @ =gEffectBattler - ldr r3, _0802D38C @ =gBattlerAttacker - ldrb r0, [r3] - strb r0, [r1] - ldr r2, _0802D390 @ =gBattlerTarget - lsls r0, 24 - lsrs r0, 24 - adds r4, r1, 0 - ldrb r1, [r2] - cmp r0, r1 - bne _0802D398 - ldr r1, _0802D394 @ =gBattleScripting - ldrb r0, [r1, 0x17] - strb r0, [r2] - strb r0, [r3] - b _0802D39E - .align 2, 0 -_0802D388: .4byte gEffectBattler -_0802D38C: .4byte gBattlerAttacker -_0802D390: .4byte gBattlerTarget -_0802D394: .4byte gBattleScripting -_0802D398: - ldr r1, _0802D3B0 @ =gBattleScripting - ldrb r0, [r1, 0x17] - strb r0, [r2] -_0802D39E: - ldrb r0, [r4] - strb r0, [r1, 0x17] - ldr r1, _0802D3B4 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802D3B0: .4byte gBattleScripting -_0802D3B4: .4byte gBattlescriptCurrInstr - thumb_func_end atkED_snatchsetbattlers - - thumb_func_start atkEE_removelightscreenreflect -atkEE_removelightscreenreflect: @ 802D3B8 - push {r4,lr} - ldr r0, _0802D400 @ =gBattlerAttacker - ldrb r0, [r0] - bl GetBattlerSide - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0802D404 @ =gSideTimers - lsls r3, r0, 1 - adds r0, r3, r0 - lsls r0, 2 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0 - bne _0802D3E0 - ldrb r1, [r4, 0x2] - cmp r1, 0 - beq _0802D418 -_0802D3E0: - ldr r2, _0802D408 @ =gSideStatuses - adds r2, r3, r2 - ldrh r1, [r2] - ldr r0, _0802D40C @ =0x0000fffe - ands r0, r1 - movs r3, 0 - ldr r1, _0802D410 @ =0x0000fffd - ands r0, r1 - strh r0, [r2] - strb r3, [r4] - strb r3, [r4, 0x2] - ldr r1, _0802D414 @ =gBattleScripting - movs r0, 0x1 - strb r0, [r1, 0x18] - strb r0, [r1, 0x19] - b _0802D41E - .align 2, 0 -_0802D400: .4byte gBattlerAttacker -_0802D404: .4byte gSideTimers -_0802D408: .4byte gSideStatuses -_0802D40C: .4byte 0x0000fffe -_0802D410: .4byte 0x0000fffd -_0802D414: .4byte gBattleScripting -_0802D418: - ldr r0, _0802D42C @ =gBattleScripting - strb r1, [r0, 0x18] - strb r1, [r0, 0x19] -_0802D41E: - ldr r1, _0802D430 @ =gBattlescriptCurrInstr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802D42C: .4byte gBattleScripting -_0802D430: .4byte gBattlescriptCurrInstr - thumb_func_end atkEE_removelightscreenreflect - thumb_func_start atkEF_handleballthrow atkEF_handleballthrow: @ 802D434 push {r4-r6,lr} |