diff options
author | jiangzhengwenjz <jiangzhengwenjzw@qq.com> | 2019-08-01 12:25:38 +0800 |
---|---|---|
committer | jiangzhengwenjz <jiangzhengwenjzw@qq.com> | 2019-08-01 12:30:36 +0800 |
commit | 3eb1f1bc783308dac445eaacc05c9f14e9b78822 (patch) | |
tree | 06d89a04aba616f770da97c73569dbfe1de96141 /asm/battle_util.s | |
parent | c88c9c6edfb7122524b319e4601c5d2b97bf06ca (diff) |
matched AbilityBattleEffects
Diffstat (limited to 'asm/battle_util.s')
-rw-r--r-- | asm/battle_util.s | 4972 |
1 files changed, 29 insertions, 4943 deletions
diff --git a/asm/battle_util.s b/asm/battle_util.s index b2ed61f7a..a6b77a6e4 100644 --- a/asm/battle_util.s +++ b/asm/battle_util.s @@ -5,4920 +5,6 @@ .text - thumb_func_start TryClearRageStatuses -TryClearRageStatuses: @ 8019284 - push {r4-r6,lr} - movs r3, 0 - ldr r0, _080192C4 @ =gBattlersCount - adds r5, r0, 0 - ldrb r0, [r5] - cmp r3, r0 - bge _080192BC - ldr r4, _080192C8 @ =gUnknown_2023DC4 - movs r6, 0x80 - lsls r6, 16 - ldr r2, _080192CC @ =gChosenMoveByBattler -_0801929A: - ldr r1, [r2] - adds r0, r1, 0 - ands r0, r6 - cmp r0, 0 - beq _080192B0 - ldrh r0, [r4] - cmp r0, 0x63 - beq _080192B0 - ldr r0, _080192D0 @ =0xff7fffff - ands r1, r0 - str r1, [r2] -_080192B0: - adds r4, 0x2 - adds r2, 0x58 - adds r3, 0x1 - ldrb r0, [r5] - cmp r3, r0 - blt _0801929A -_080192BC: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080192C4: .4byte gBattlersCount -_080192C8: .4byte gUnknown_2023DC4 -_080192CC: .4byte gChosenMoveByBattler -_080192D0: .4byte 0xff7fffff - thumb_func_end TryClearRageStatuses - - thumb_func_start AtkCanceller_UnableToUseMove -AtkCanceller_UnableToUseMove: @ 80192D4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - movs r0, 0 - mov r9, r0 - ldr r1, _080192F0 @ =gUnknown_2023FC8 - mov r10, r1 - ldr r2, _080192F4 @ =gBattleStruct - mov r8, r2 - b _08019302 - .align 2, 0 -_080192F0: .4byte gUnknown_2023FC8 -_080192F4: .4byte gBattleStruct -_080192F8: - mov r4, r9 - cmp r4, 0 - beq _08019302 - bl _08019BA8 -_08019302: - mov r7, r8 - ldr r0, [r7] - adds r0, 0xB7 - ldrb r0, [r0] - cmp r0, 0xF - bls _08019312 - bl _08019B98 -_08019312: - lsls r0, 2 - ldr r1, _0801931C @ =_08019320 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801931C: .4byte _08019320 - .align 2, 0 -_08019320: - .4byte _08019360 - .4byte _080193A4 - .4byte _080194E0 - .4byte _08019598 - .4byte _0801960C - .4byte _08019678 - .4byte _080196E0 - .4byte _08019754 - .4byte _080197B8 - .4byte _08019814 - .4byte _080198F8 - .4byte _08019974 - .4byte _080199C8 - .4byte _08019A60 - .4byte _08019B40 - .4byte _08019B98 -_08019360: - ldr r1, _08019390 @ =gBattleMons - ldr r3, _08019394 @ =gBattlerAttacker - ldrb r2, [r3] - movs r0, 0x58 - muls r2, r0 - adds r1, 0x50 - adds r2, r1 - ldr r0, [r2] - ldr r1, _08019398 @ =0xfdffffff - ands r0, r1 - str r0, [r2] - ldr r0, _0801939C @ =gStatuses3 - ldrb r2, [r3] - lsls r2, 2 - adds r2, r0 - ldr r0, [r2] - ldr r1, _080193A0 @ =0xffffbfff - ands r0, r1 - str r0, [r2] - mov r0, r8 - ldr r1, [r0] - bl _08019B90 - .align 2, 0 -_08019390: .4byte gBattleMons -_08019394: .4byte gBattlerAttacker -_08019398: .4byte 0xfdffffff -_0801939C: .4byte gStatuses3 -_080193A0: .4byte 0xffffbfff -_080193A4: - ldr r7, _0801940C @ =gBattleMons - ldr r4, _08019410 @ =gBattlerAttacker - ldrb r1, [r4] - movs r5, 0x58 - adds r0, r1, 0 - muls r0, r5 - adds r6, r7, 0 - adds r6, 0x4C - adds r0, r6 - ldr r0, [r0] - movs r2, 0x7 - mov r8, r2 - ands r0, r2 - cmp r0, 0 - bne _080193C4 - b _08019946 -_080193C4: - adds r0, r1, 0 - bl UproarWakeUpCheck - lsls r0, 24 - cmp r0, 0 - beq _08019424 - ldrb r0, [r4] - adds r2, r0, 0 - muls r2, r5 - adds r2, r6 - ldr r0, [r2] - movs r1, 0x8 - negs r1, r1 - ands r0, r1 - str r0, [r2] - ldrb r0, [r4] - adds r2, r0, 0 - muls r2, r5 - adds r0, r7, 0 - adds r0, 0x50 - adds r2, r0 - ldr r0, [r2] - ldr r1, _08019414 @ =0xf7ffffff - ands r0, r1 - str r0, [r2] - bl BattleScriptPushCursor - ldr r1, _08019418 @ =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x5] - ldr r1, _0801941C @ =gBattlescriptCurrInstr - ldr r0, _08019420 @ =BattleScript_MoveUsedWokeUp - str r0, [r1] - movs r4, 0x2 - mov r9, r4 - b _08019946 - .align 2, 0 -_0801940C: .4byte gBattleMons -_08019410: .4byte gBattlerAttacker -_08019414: .4byte 0xf7ffffff -_08019418: .4byte gBattleCommunication -_0801941C: .4byte gBattlescriptCurrInstr -_08019420: .4byte BattleScript_MoveUsedWokeUp -_08019424: - ldrb r0, [r4] - adds r1, r0, 0 - muls r1, r5 - adds r0, r1, r7 - adds r0, 0x20 - ldrb r0, [r0] - movs r3, 0x1 - cmp r0, 0x30 - bne _08019438 - movs r3, 0x2 -_08019438: - adds r2, r1, r6 - ldr r1, [r2] - adds r0, r1, 0 - mov r7, r8 - ands r0, r7 - cmp r0, r3 - bcs _08019450 - movs r0, 0x8 - negs r0, r0 - ands r1, r0 - str r1, [r2] - b _08019454 -_08019450: - subs r0, r1, r3 - str r0, [r2] -_08019454: - ldr r2, _08019498 @ =gBattleMons - ldr r0, _0801949C @ =gBattlerAttacker - ldrb r1, [r0] - movs r0, 0x58 - muls r1, r0 - adds r0, r2, 0 - adds r0, 0x4C - adds r0, r1, r0 - ldr r4, [r0] - movs r0, 0x7 - ands r4, r0 - cmp r4, 0 - beq _080194B0 - ldr r0, _080194A0 @ =gCurrentMove - ldrh r0, [r0] - cmp r0, 0xAD - bne _08019478 - b _08019946 -_08019478: - cmp r0, 0xD6 - bne _0801947E - b _08019946 -_0801947E: - ldr r1, _080194A4 @ =gBattlescriptCurrInstr - ldr r0, _080194A8 @ =BattleScript_MoveUsedIsAsleep - str r0, [r1] - ldr r2, _080194AC @ =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [r2] - movs r0, 0x2 - mov r9, r0 - b _08019946 - .align 2, 0 -_08019498: .4byte gBattleMons -_0801949C: .4byte gBattlerAttacker -_080194A0: .4byte gCurrentMove -_080194A4: .4byte gBattlescriptCurrInstr -_080194A8: .4byte BattleScript_MoveUsedIsAsleep -_080194AC: .4byte gHitMarker -_080194B0: - adds r2, 0x50 - adds r2, r1, r2 - ldr r0, [r2] - ldr r1, _080194D0 @ =0xf7ffffff - ands r0, r1 - str r0, [r2] - bl BattleScriptPushCursor - ldr r0, _080194D4 @ =gBattleCommunication - strb r4, [r0, 0x5] - ldr r1, _080194D8 @ =gBattlescriptCurrInstr - ldr r0, _080194DC @ =BattleScript_MoveUsedWokeUp - str r0, [r1] - movs r1, 0x2 - mov r9, r1 - b _08019946 - .align 2, 0 -_080194D0: .4byte 0xf7ffffff -_080194D4: .4byte gBattleCommunication -_080194D8: .4byte gBattlescriptCurrInstr -_080194DC: .4byte BattleScript_MoveUsedWokeUp -_080194E0: - ldr r1, _0801953C @ =gBattleMons - ldr r7, _08019540 @ =gBattlerAttacker - ldrb r0, [r7] - movs r6, 0x58 - muls r0, r6 - adds r5, r1, 0 - adds r5, 0x4C - adds r0, r5 - ldr r0, [r0] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08019580 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x5 - bl __umodsi3 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _08019558 - ldr r2, _08019544 @ =gBattleMoves - ldr r0, _08019548 @ =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x7D - bne _08019526 - b _08019946 -_08019526: - ldr r1, _0801954C @ =gBattlescriptCurrInstr - ldr r0, _08019550 @ =BattleScript_MoveUsedIsFrozen - str r0, [r1] - ldr r2, _08019554 @ =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 2 - orrs r0, r1 - str r0, [r2] - b _08019578 - .align 2, 0 -_0801953C: .4byte gBattleMons -_08019540: .4byte gBattlerAttacker -_08019544: .4byte gBattleMoves -_08019548: .4byte gCurrentMove -_0801954C: .4byte gBattlescriptCurrInstr -_08019550: .4byte BattleScript_MoveUsedIsFrozen -_08019554: .4byte gHitMarker -_08019558: - ldrb r0, [r7] - adds r2, r0, 0 - muls r2, r6 - adds r2, r5 - ldr r0, [r2] - movs r1, 0x21 - negs r1, r1 - ands r0, r1 - str r0, [r2] - bl BattleScriptPushCursor - ldr r1, _08019588 @ =gBattlescriptCurrInstr - ldr r0, _0801958C @ =BattleScript_MoveUsedUnfroze - str r0, [r1] - ldr r0, _08019590 @ =gBattleCommunication - strb r4, [r0, 0x5] -_08019578: - movs r2, 0x2 - mov r9, r2 - ldr r4, _08019594 @ =gBattleStruct - mov r8, r4 -_08019580: - mov r7, r8 - ldr r1, [r7] - b _08019B90 - .align 2, 0 -_08019588: .4byte gBattlescriptCurrInstr -_0801958C: .4byte BattleScript_MoveUsedUnfroze -_08019590: .4byte gBattleCommunication -_08019594: .4byte gBattleStruct -_08019598: - ldr r1, _080195EC @ =gBattleMons - ldr r0, _080195F0 @ =gBattlerAttacker - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x36 - beq _080195AE - b _08019946 -_080195AE: - ldr r0, _080195F4 @ =gDisableStructs - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x18] - lsls r0, 31 - cmp r0, 0 - bne _080195C2 - b _08019946 -_080195C2: - adds r0, r2, 0 - bl CancelMultiTurnMoves - ldr r2, _080195F8 @ =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [r2] - ldr r1, _080195FC @ =gBattleCommunication - movs r0, 0 - strb r0, [r1, 0x5] - ldr r1, _08019600 @ =gBattlescriptCurrInstr - ldr r0, _08019604 @ =BattleScript_MoveUsedLoafingAround - str r0, [r1] - ldr r2, _08019608 @ =gMoveResultFlags - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - b _080197F4 - .align 2, 0 -_080195EC: .4byte gBattleMons -_080195F0: .4byte gBattlerAttacker -_080195F4: .4byte gDisableStructs -_080195F8: .4byte gHitMarker -_080195FC: .4byte gBattleCommunication -_08019600: .4byte gBattlescriptCurrInstr -_08019604: .4byte BattleScript_MoveUsedLoafingAround -_08019608: .4byte gMoveResultFlags -_0801960C: - ldr r1, _0801965C @ =gBattleMons - ldr r3, _08019660 @ =gBattlerAttacker - ldrb r2, [r3] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r2, r0, r1 - ldr r1, [r2] - movs r0, 0x80 - lsls r0, 15 - ands r0, r1 - cmp r0, 0 - bne _08019628 - b _08019946 -_08019628: - ldr r0, _08019664 @ =0xffbfffff - ands r1, r0 - str r1, [r2] - ldr r2, _08019668 @ =gDisableStructs - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strb r1, [r0, 0x19] - ldrb r0, [r3] - bl CancelMultiTurnMoves - ldr r1, _0801966C @ =gBattlescriptCurrInstr - ldr r0, _08019670 @ =BattleScript_MoveUsedMustRecharge - str r0, [r1] - ldr r2, _08019674 @ =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [r2] - movs r1, 0x1 - mov r9, r1 - b _08019946 - .align 2, 0 -_0801965C: .4byte gBattleMons -_08019660: .4byte gBattlerAttacker -_08019664: .4byte 0xffbfffff -_08019668: .4byte gDisableStructs -_0801966C: .4byte gBattlescriptCurrInstr -_08019670: .4byte BattleScript_MoveUsedMustRecharge -_08019674: .4byte gHitMarker -_08019678: - ldr r1, _080196C8 @ =gBattleMons - ldr r3, _080196CC @ =gBattlerAttacker - ldrb r2, [r3] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r2, r0, r1 - ldr r1, [r2] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _08019692 - b _08019946 -_08019692: - movs r0, 0x9 - negs r0, r0 - ands r1, r0 - str r1, [r2] - ldr r0, _080196D0 @ =gProtectStructs - ldrb r2, [r3] - lsls r2, 4 - adds r2, r0 - ldrb r0, [r2, 0x2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x2] - ldrb r0, [r3] - bl CancelMultiTurnMoves - ldr r1, _080196D4 @ =gBattlescriptCurrInstr - ldr r0, _080196D8 @ =BattleScript_MoveUsedFlinched - str r0, [r1] - ldr r2, _080196DC @ =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [r2] - movs r2, 0x1 - mov r9, r2 - b _08019946 - .align 2, 0 -_080196C8: .4byte gBattleMons -_080196CC: .4byte gBattlerAttacker -_080196D0: .4byte gProtectStructs -_080196D4: .4byte gBattlescriptCurrInstr -_080196D8: .4byte BattleScript_MoveUsedFlinched -_080196DC: .4byte gHitMarker -_080196E0: - ldr r0, _08019734 @ =gDisableStructs - ldr r3, _08019738 @ =gBattlerAttacker - ldrb r2, [r3] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldr r0, _0801973C @ =gCurrentMove - ldrh r1, [r1, 0x4] - ldrh r0, [r0] - cmp r1, r0 - beq _080196FA - b _08019946 -_080196FA: - cmp r1, 0 - bne _08019700 - b _08019946 -_08019700: - ldr r0, _08019740 @ =gProtectStructs - lsls r2, 4 - adds r2, r0 - ldrb r0, [r2, 0x1] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x1] - ldr r1, _08019744 @ =gBattleScripting - ldrb r0, [r3] - strb r0, [r1, 0x17] - ldrb r0, [r3] - bl CancelMultiTurnMoves - ldr r1, _08019748 @ =gBattlescriptCurrInstr - ldr r0, _0801974C @ =BattleScript_MoveUsedIsDisabled - str r0, [r1] - ldr r2, _08019750 @ =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [r2] - movs r4, 0x1 - mov r9, r4 - b _08019946 - .align 2, 0 -_08019734: .4byte gDisableStructs -_08019738: .4byte gBattlerAttacker -_0801973C: .4byte gCurrentMove -_08019740: .4byte gProtectStructs -_08019744: .4byte gBattleScripting -_08019748: .4byte gBattlescriptCurrInstr -_0801974C: .4byte BattleScript_MoveUsedIsDisabled -_08019750: .4byte gHitMarker -_08019754: - ldr r0, _0801979C @ =gDisableStructs - ldr r4, _080197A0 @ =gBattlerAttacker - ldrb r3, [r4] - lsls r1, r3, 3 - subs r1, r3 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x13] - lsls r0, 28 - cmp r0, 0 - bne _0801976C - b _08019946 -_0801976C: - ldr r2, _080197A4 @ =gBattleMoves - ldr r0, _080197A8 @ =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _08019782 - b _08019946 -_08019782: - ldr r0, _080197AC @ =gProtectStructs - lsls r2, r3, 4 - adds r2, r0 - ldrb r0, [r2, 0x2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x2] - ldrb r0, [r4] - bl CancelMultiTurnMoves - ldr r1, _080197B0 @ =gBattlescriptCurrInstr - ldr r0, _080197B4 @ =BattleScript_MoveUsedIsTaunted - b _08019934 - .align 2, 0 -_0801979C: .4byte gDisableStructs -_080197A0: .4byte gBattlerAttacker -_080197A4: .4byte gBattleMoves -_080197A8: .4byte gCurrentMove -_080197AC: .4byte gProtectStructs -_080197B0: .4byte gBattlescriptCurrInstr -_080197B4: .4byte BattleScript_MoveUsedIsTaunted -_080197B8: - ldr r4, _080197FC @ =gBattlerAttacker - ldrb r0, [r4] - ldr r1, _08019800 @ =gCurrentMove - ldrh r1, [r1] - bl GetImprisonedMovesCount - lsls r0, 24 - cmp r0, 0 - bne _080197CC - b _08019946 -_080197CC: - ldr r0, _08019804 @ =gProtectStructs - ldrb r2, [r4] - lsls r2, 4 - adds r2, r0 - ldrb r0, [r2, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r2, 0x1] - ldrb r0, [r4] - bl CancelMultiTurnMoves - ldr r1, _08019808 @ =gBattlescriptCurrInstr - ldr r0, _0801980C @ =BattleScript_MoveUsedIsImprisoned - str r0, [r1] - ldr r2, _08019810 @ =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [r2] -_080197F4: - movs r0, 0x1 - mov r9, r0 - b _08019946 - .align 2, 0 -_080197FC: .4byte gBattlerAttacker -_08019800: .4byte gCurrentMove -_08019804: .4byte gProtectStructs -_08019808: .4byte gBattlescriptCurrInstr -_0801980C: .4byte BattleScript_MoveUsedIsImprisoned -_08019810: .4byte gHitMarker -_08019814: - ldr r7, _0801985C @ =gBattleMons - ldr r5, _08019860 @ =gBattlerAttacker - ldrb r0, [r5] - movs r6, 0x58 - muls r0, r6 - adds r4, r7, 0 - adds r4, 0x50 - adds r2, r0, r4 - ldr r1, [r2] - movs r3, 0x7 - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - beq _080198E6 - subs r0, r1, 0x1 - str r0, [r2] - ldrb r0, [r5] - muls r0, r6 - adds r0, r4 - ldr r0, [r0] - ands r0, r3 - cmp r0, 0 - beq _080198D4 - bl Random - movs r1, 0x1 - movs r2, 0x1 - ands r2, r0 - cmp r2, 0 - beq _08019868 - ldr r1, _08019864 @ =gBattleCommunication - movs r0, 0 - strb r0, [r1, 0x5] - bl BattleScriptPushCursor - b _080198B2 - .align 2, 0 -_0801985C: .4byte gBattleMons -_08019860: .4byte gBattlerAttacker -_08019864: .4byte gBattleCommunication -_08019868: - ldr r0, _080198B8 @ =gBattleCommunication - movs r4, 0x1 - strb r1, [r0, 0x5] - ldr r1, _080198BC @ =gBattlerTarget - ldrb r0, [r5] - strb r0, [r1] - ldrb r0, [r5] - adds r1, r0, 0 - muls r1, r6 - adds r1, r7 - movs r0, 0x28 - str r0, [sp] - str r2, [sp, 0x4] - ldrb r0, [r5] - str r0, [sp, 0x8] - ldrb r0, [r5] - str r0, [sp, 0xC] - adds r0, r1, 0 - movs r2, 0x1 - movs r3, 0 - bl CalculateBaseDamage - ldr r1, _080198C0 @ =gBattleMoveDamage - str r0, [r1] - ldr r0, _080198C4 @ =gProtectStructs - ldrb r1, [r5] - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1, 0x1] - orrs r0, r4 - strb r0, [r1, 0x1] - ldr r2, _080198C8 @ =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [r2] -_080198B2: - ldr r1, _080198CC @ =gBattlescriptCurrInstr - ldr r0, _080198D0 @ =BattleScript_MoveUsedIsConfused - b _080198DC - .align 2, 0 -_080198B8: .4byte gBattleCommunication -_080198BC: .4byte gBattlerTarget -_080198C0: .4byte gBattleMoveDamage -_080198C4: .4byte gProtectStructs -_080198C8: .4byte gHitMarker -_080198CC: .4byte gBattlescriptCurrInstr -_080198D0: .4byte BattleScript_MoveUsedIsConfused -_080198D4: - bl BattleScriptPushCursor - ldr r1, _080198EC @ =gBattlescriptCurrInstr - ldr r0, _080198F0 @ =BattleScript_MoveUsedIsConfusedNoMore -_080198DC: - str r0, [r1] - movs r1, 0x1 - mov r9, r1 - ldr r2, _080198F4 @ =gBattleStruct - mov r8, r2 -_080198E6: - mov r4, r8 - ldr r1, [r4] - b _08019B90 - .align 2, 0 -_080198EC: .4byte gBattlescriptCurrInstr -_080198F0: .4byte BattleScript_MoveUsedIsConfusedNoMore -_080198F4: .4byte gBattleStruct -_080198F8: - ldr r1, _08019958 @ =gBattleMons - ldr r4, _0801995C @ =gBattlerAttacker - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08019946 - bl Random - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - cmp r1, 0 - bne _08019946 - ldr r0, _08019960 @ =gProtectStructs - ldrb r2, [r4] - lsls r2, 4 - adds r2, r0 - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, _08019964 @ =gBattlescriptCurrInstr - ldr r0, _08019968 @ =BattleScript_MoveUsedIsParalyzed -_08019934: - str r0, [r1] - ldr r2, _0801996C @ =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [r2] - movs r7, 0x1 - mov r9, r7 -_08019946: - ldr r2, _08019970 @ =gBattleStruct - ldr r1, [r2] - adds r1, 0xB7 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - mov r8, r2 - b _08019B98 - .align 2, 0 -_08019958: .4byte gBattleMons -_0801995C: .4byte gBattlerAttacker -_08019960: .4byte gProtectStructs -_08019964: .4byte gBattlescriptCurrInstr -_08019968: .4byte BattleScript_MoveUsedIsParalyzed -_0801996C: .4byte gHitMarker -_08019970: .4byte gBattleStruct -_08019974: - ldr r0, _0801999C @ =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0xA0 - lsls r0, 8 - ands r1, r0 - movs r0, 0x80 - lsls r0, 8 - cmp r1, r0 - beq _08019988 - b _08019B8C -_08019988: - ldr r0, _080199A0 @ =gBattlerAttacker - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080199AC - ldr r1, _080199A4 @ =gBattlescriptCurrInstr - ldr r0, _080199A8 @ =gUnknown_81D9180 - b _080199B0 - .align 2, 0 -_0801999C: .4byte gBattleTypeFlags -_080199A0: .4byte gBattlerAttacker -_080199A4: .4byte gBattlescriptCurrInstr -_080199A8: .4byte gUnknown_81D9180 -_080199AC: - ldr r1, _080199BC @ =gBattlescriptCurrInstr - ldr r0, _080199C0 @ =gUnknown_81D9192 -_080199B0: - str r0, [r1] - ldr r1, _080199C4 @ =gBattleCommunication - movs r0, 0 - strb r0, [r1, 0x5] - movs r0, 0x1 - b _08019B86 - .align 2, 0 -_080199BC: .4byte gBattlescriptCurrInstr -_080199C0: .4byte gUnknown_81D9192 -_080199C4: .4byte gBattleCommunication -_080199C8: - ldr r1, _08019A00 @ =gBattleMons - ldr r4, _08019A04 @ =gBattlerAttacker - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r1, [r0] - movs r0, 0xF0 - lsls r0, 12 - ands r1, r0 - cmp r1, 0 - beq _08019A42 - lsrs r0, r1, 16 - bl CountTrailingZeroBits - ldr r1, _08019A08 @ =gBattleScripting - strb r0, [r1, 0x17] - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08019A0C - bl BattleScriptPushCursor - b _08019A34 - .align 2, 0 -_08019A00: .4byte gBattleMons -_08019A04: .4byte gBattlerAttacker -_08019A08: .4byte gBattleScripting -_08019A0C: - ldr r0, _08019A48 @ =BattleScript_MoveUsedIsInLoveCantAttack - bl BattleScriptPush - ldr r2, _08019A4C @ =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [r2] - ldr r0, _08019A50 @ =gProtectStructs - ldrb r2, [r4] - lsls r2, 4 - adds r2, r0 - ldrb r0, [r2, 0x1] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2, 0x1] - ldrb r0, [r4] - bl CancelMultiTurnMoves -_08019A34: - ldr r1, _08019A54 @ =gBattlescriptCurrInstr - ldr r0, _08019A58 @ =BattleScript_MoveUsedIsInLove - str r0, [r1] - movs r4, 0x1 - mov r9, r4 - ldr r7, _08019A5C @ =gBattleStruct - mov r8, r7 -_08019A42: - mov r0, r8 - ldr r1, [r0] - b _08019B90 - .align 2, 0 -_08019A48: .4byte BattleScript_MoveUsedIsInLoveCantAttack -_08019A4C: .4byte gHitMarker -_08019A50: .4byte gProtectStructs -_08019A54: .4byte gBattlescriptCurrInstr -_08019A58: .4byte BattleScript_MoveUsedIsInLove -_08019A5C: .4byte gBattleStruct -_08019A60: - ldr r1, _08019A98 @ =gBattleMons - ldr r6, _08019A9C @ =gBattlerAttacker - ldrb r0, [r6] - movs r5, 0x58 - muls r0, r5 - adds r1, 0x50 - adds r3, r0, r1 - ldr r2, [r3] - movs r4, 0xC0 - lsls r4, 2 - adds r0, r2, 0 - ands r0, r4 - cmp r0, 0 - beq _08019B32 - ldr r7, _08019AA0 @ =0xffffff00 - adds r0, r2, r7 - str r0, [r3] - ldrb r2, [r6] - adds r0, r2, 0 - muls r0, r5 - adds r0, r1 - ldr r0, [r0] - ands r0, r4 - cmp r0, 0 - beq _08019AAC - ldr r1, _08019AA4 @ =gBattlescriptCurrInstr - ldr r0, _08019AA8 @ =BattleScript_BideStoringEnergy - b _08019B2C - .align 2, 0 -_08019A98: .4byte gBattleMons -_08019A9C: .4byte gBattlerAttacker -_08019AA0: .4byte 0xffffff00 -_08019AA4: .4byte gBattlescriptCurrInstr -_08019AA8: .4byte BattleScript_BideStoringEnergy -_08019AAC: - ldr r3, _08019B04 @ =gTakenDmg - lsls r0, r2, 2 - adds r0, r3 - ldr r0, [r0] - cmp r0, 0 - beq _08019B28 - ldr r1, _08019B08 @ =gCurrentMove - movs r0, 0x75 - strh r0, [r1] - ldrb r0, [r6] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - lsls r0, 1 - mov r1, r10 - str r0, [r1] - ldr r4, _08019B0C @ =gBattlerTarget - ldr r1, _08019B10 @ =gTakenDmgByBattler - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r4] - ldr r0, _08019B14 @ =gAbsentBattlerFlags - ldrb r1, [r0] - ldr r2, _08019B18 @ =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08019AF6 - movs r0, 0x75 - movs r1, 0x1 - bl GetMoveTarget - strb r0, [r4] -_08019AF6: - ldr r1, _08019B1C @ =gBattlescriptCurrInstr - ldr r0, _08019B20 @ =BattleScript_BideAttack - str r0, [r1] - ldr r2, _08019B24 @ =gBattleStruct - mov r8, r2 - b _08019B2E - .align 2, 0 -_08019B04: .4byte gTakenDmg -_08019B08: .4byte gCurrentMove -_08019B0C: .4byte gBattlerTarget -_08019B10: .4byte gTakenDmgByBattler -_08019B14: .4byte gAbsentBattlerFlags -_08019B18: .4byte gBitTable -_08019B1C: .4byte gBattlescriptCurrInstr -_08019B20: .4byte BattleScript_BideAttack -_08019B24: .4byte gBattleStruct -_08019B28: - ldr r1, _08019B38 @ =gBattlescriptCurrInstr - ldr r0, _08019B3C @ =BattleScript_BideNoEnergyToAttack -_08019B2C: - str r0, [r1] -_08019B2E: - movs r4, 0x1 - mov r9, r4 -_08019B32: - mov r7, r8 - ldr r1, [r7] - b _08019B90 - .align 2, 0 -_08019B38: .4byte gBattlescriptCurrInstr -_08019B3C: .4byte BattleScript_BideNoEnergyToAttack -_08019B40: - ldr r1, _08019BE8 @ =gBattleMons - ldr r0, _08019BEC @ =gBattlerAttacker - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x4C - adds r4, r0, r1 - ldr r3, [r4] - movs r0, 0x20 - ands r0, r3 - cmp r0, 0 - beq _08019B8C - ldr r2, _08019BF0 @ =gBattleMoves - ldr r0, _08019BF4 @ =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x7D - bne _08019B84 - movs r0, 0x21 - negs r0, r0 - ands r3, r0 - str r3, [r4] - bl BattleScriptPushCursor - ldr r1, _08019BF8 @ =gBattlescriptCurrInstr - ldr r0, _08019BFC @ =BattleScript_MoveUsedUnfroze - str r0, [r1] - ldr r1, _08019C00 @ =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x5] -_08019B84: - movs r0, 0x2 -_08019B86: - mov r9, r0 - ldr r1, _08019C04 @ =gBattleStruct - mov r8, r1 -_08019B8C: - mov r2, r8 - ldr r1, [r2] -_08019B90: - adds r1, 0xB7 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08019B98: - mov r4, r8 - ldr r0, [r4] - adds r0, 0xB7 - ldrb r0, [r0] - cmp r0, 0xF - beq _08019BA8 - bl _080192F8 -_08019BA8: - mov r7, r9 - cmp r7, 0x2 - bne _08019BD4 - ldr r4, _08019C08 @ =gActiveBattler - ldr r0, _08019BEC @ =gBattlerAttacker - ldrb r0, [r0] - strb r0, [r4] - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - ldr r1, _08019C0C @ =gUnknown_2023C30 - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl BtlController_EmitSetMonData - ldrb r0, [r4] - bl MarkBattlerForControllerExec -_08019BD4: - mov r0, r9 - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08019BE8: .4byte gBattleMons -_08019BEC: .4byte gBattlerAttacker -_08019BF0: .4byte gBattleMoves -_08019BF4: .4byte gCurrentMove -_08019BF8: .4byte gBattlescriptCurrInstr -_08019BFC: .4byte BattleScript_MoveUsedUnfroze -_08019C00: .4byte gBattleCommunication -_08019C04: .4byte gBattleStruct -_08019C08: .4byte gActiveBattler -_08019C0C: .4byte gUnknown_2023C30 - thumb_func_end AtkCanceller_UnableToUseMove - - thumb_func_start HasNoMonsToSwitch -HasNoMonsToSwitch: @ 8019C10 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r4, r0, 24 - adds r3, r4, 0 - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - ldr r0, _08019C3C @ =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08019C40 - movs r0, 0 - b _08019D90 - .align 2, 0 -_08019C3C: .4byte gBattleTypeFlags -_08019C40: - movs r0, 0x40 - ands r1, r0 - cmp r1, 0 - beq _08019CCC - adds r0, r4, 0 - bl GetBankMultiplayerId - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r4, 0 - bl GetBattlerSide - lsls r0, 24 - ldr r1, _08019CC4 @ =gEnemyParty - mov r8, r1 - cmp r0, 0 - bne _08019C66 - ldr r0, _08019CC8 @ =gPlayerParty - mov r8, r0 -_08019C66: - adds r0, r7, 0 - bl GetLinkTrainerFlankId - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 1 - adds r5, r0, r6 - adds r0, r5, 0x3 - cmp r5, r0 - bge _08019CB2 - adds r7, r0, 0 -_08019C7C: - movs r0, 0x64 - muls r0, r5 - mov r1, r8 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08019CAC - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _08019CAC - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - bne _08019CB2 -_08019CAC: - adds r5, 0x1 - cmp r5, r7 - blt _08019C7C -_08019CB2: - movs r1, 0 - lsls r0, r6, 1 - adds r0, r6 - adds r0, 0x3 - cmp r5, r0 - bne _08019CC0 - movs r1, 0x1 -_08019CC0: - adds r0, r1, 0 - b _08019D90 - .align 2, 0 -_08019CC4: .4byte gEnemyParty -_08019CC8: .4byte gPlayerParty -_08019CCC: - adds r0, r3, 0 - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08019CF8 - movs r0, 0x1 - bl GetBattlerAtPosition - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0x3 - bl GetBattlerAtPosition - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _08019CF4 @ =gEnemyParty - mov r8, r0 - b _08019D10 - .align 2, 0 -_08019CF4: .4byte gEnemyParty -_08019CF8: - movs r0, 0 - bl GetBattlerAtPosition - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0x2 - bl GetBattlerAtPosition - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _08019DA0 @ =gPlayerParty - mov r8, r1 -_08019D10: - mov r0, r10 - cmp r0, 0x6 - bne _08019D20 - ldr r1, _08019DA4 @ =gBattlerPartyIndexes - lsls r0, r7, 1 - adds r0, r1 - ldrb r0, [r0] - mov r10, r0 -_08019D20: - mov r1, r9 - cmp r1, 0x6 - bne _08019D30 - ldr r1, _08019DA4 @ =gBattlerPartyIndexes - lsls r0, r6, 1 - adds r0, r1 - ldrb r0, [r0] - mov r9, r0 -_08019D30: - movs r5, 0 -_08019D32: - movs r0, 0x64 - muls r0, r5 - mov r1, r8 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08019D82 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _08019D82 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _08019D82 - cmp r5, r10 - beq _08019D82 - cmp r5, r9 - beq _08019D82 - ldr r0, _08019DA8 @ =gBattleStruct - ldr r1, [r0] - adds r0, r7, r1 - adds r0, 0x5C - ldrb r0, [r0] - cmp r5, r0 - beq _08019D82 - adds r0, r6, r1 - adds r0, 0x5C - ldrb r0, [r0] - cmp r5, r0 - bne _08019D88 -_08019D82: - adds r5, 0x1 - cmp r5, 0x5 - ble _08019D32 -_08019D88: - movs r0, 0 - cmp r5, 0x6 - bne _08019D90 - movs r0, 0x1 -_08019D90: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08019DA0: .4byte gPlayerParty -_08019DA4: .4byte gBattlerPartyIndexes -_08019DA8: .4byte gBattleStruct - thumb_func_end HasNoMonsToSwitch - - thumb_func_start CastformDataTypeChange -CastformDataTypeChange: @ 8019DAC - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - ldr r1, _08019E1C @ =gBattleMons - movs r0, 0x58 - muls r0, r6 - adds r4, r0, r1 - ldrh r1, [r4] - ldr r0, _08019E20 @ =0x00000181 - cmp r1, r0 - bne _08019E50 - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x3B - bne _08019E50 - ldrh r0, [r4, 0x28] - cmp r0, 0 - beq _08019E50 - str r5, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - bne _08019DFE - str r5, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - beq _08019E24 -_08019DFE: - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0 - beq _08019E24 - adds r1, r4, 0 - adds r1, 0x22 - ldrb r0, [r1] - cmp r0, 0 - beq _08019E24 - strb r5, [r2] - strb r5, [r1] - movs r0, 0x1 - b _08019F08 - .align 2, 0 -_08019E1C: .4byte gBattleMons -_08019E20: .4byte 0x00000181 -_08019E24: - 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 _08019E50 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - beq _08019E54 -_08019E50: - movs r0, 0 - b _08019F08 -_08019E54: - ldr r1, _08019F10 @ =gBattleWeather - ldrh r0, [r1] - movs r2, 0xE7 - ands r2, r0 - adds r4, r1, 0 - cmp r2, 0 - bne _08019E82 - ldr r1, _08019F14 @ =gBattleMons - movs r0, 0x58 - muls r0, r6 - adds r1, r0, r1 - adds r3, r1, 0 - adds r3, 0x21 - ldrb r0, [r3] - cmp r0, 0 - beq _08019E82 - adds r1, 0x22 - ldrb r0, [r1] - cmp r0, 0 - beq _08019E82 - strb r2, [r3] - strb r2, [r1] - movs r5, 0x1 -_08019E82: - ldrh r1, [r4] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _08019EAE - ldr r1, _08019F14 @ =gBattleMons - movs r0, 0x58 - muls r0, r6 - adds r1, r0, r1 - adds r2, r1, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0xA - beq _08019EAE - adds r1, 0x22 - ldrb r0, [r1] - cmp r0, 0xA - beq _08019EAE - movs r0, 0xA - strb r0, [r2] - strb r0, [r1] - movs r5, 0x2 -_08019EAE: - ldrh r1, [r4] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - beq _08019EDA - ldr r1, _08019F14 @ =gBattleMons - movs r0, 0x58 - muls r0, r6 - adds r1, r0, r1 - adds r2, r1, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0xB - beq _08019EDA - adds r1, 0x22 - ldrb r0, [r1] - cmp r0, 0xB - beq _08019EDA - movs r0, 0xB - strb r0, [r2] - strb r0, [r1] - movs r5, 0x3 -_08019EDA: - ldrh r1, [r4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08019F06 - ldr r1, _08019F14 @ =gBattleMons - movs r0, 0x58 - muls r0, r6 - adds r1, r0, r1 - adds r2, r1, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0xF - beq _08019F06 - adds r1, 0x22 - ldrb r0, [r1] - cmp r0, 0xF - beq _08019F06 - movs r0, 0xF - strb r0, [r2] - strb r0, [r1] - movs r5, 0x4 -_08019F06: - adds r0, r5, 0 -_08019F08: - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08019F10: .4byte gBattleWeather -_08019F14: .4byte gBattleMons - thumb_func_end CastformDataTypeChange - - thumb_func_start AbilityBattleEffects -AbilityBattleEffects: @ 8019F18 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x28 - ldr r4, [sp, 0x48] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0 - mov r9, r0 - ldr r5, _08019F74 @ =gBattlerAttacker - ldr r1, _08019F78 @ =gBattlersCount - ldrb r0, [r5] - ldrb r1, [r1] - cmp r0, r1 - bcc _08019F54 - mov r1, r10 - strb r1, [r5] -_08019F54: - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _08019F84 - ldr r1, _08019F7C @ =gBattlerPartyIndexes - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08019F80 @ =gPlayerParty - b _08019F94 - .align 2, 0 -_08019F74: .4byte gBattlerAttacker -_08019F78: .4byte gBattlersCount -_08019F7C: .4byte gBattlerPartyIndexes -_08019F80: .4byte gPlayerParty -_08019F84: - ldr r1, _08019FC4 @ =gBattlerPartyIndexes - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08019FC8 @ =gEnemyParty -_08019F94: - adds r6, r1, r0 - ldr r5, _08019FCC @ =gBattlerTarget - ldr r1, _08019FD0 @ =gBattlersCount - ldrb r0, [r5] - ldrb r1, [r1] - cmp r0, r1 - bcc _08019FA6 - mov r2, r10 - strb r2, [r5] -_08019FA6: - ldrb r0, [r5] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _08019FD8 - ldr r1, _08019FC4 @ =gBattlerPartyIndexes - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08019FD4 @ =gPlayerParty - b _08019FE8 - .align 2, 0 -_08019FC4: .4byte gBattlerPartyIndexes -_08019FC8: .4byte gEnemyParty -_08019FCC: .4byte gBattlerTarget -_08019FD0: .4byte gBattlersCount -_08019FD4: .4byte gPlayerParty -_08019FD8: - ldr r1, _0801A038 @ =gBattlerPartyIndexes - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _0801A03C @ =gEnemyParty -_08019FE8: - adds r5, r1, r0 - adds r0, r6, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0 - bl GetMonData - str r0, [sp, 0x10] - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0 - bl GetMonData - str r0, [sp, 0x14] - ldr r0, _0801A040 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0801A02A - bl _0801BBC6 -_0801A02A: - mov r3, r8 - cmp r3, 0 - beq _0801A048 - ldr r0, _0801A044 @ =gLastUsedAbility - strb r3, [r0] - mov r8, r0 - b _0801A05E - .align 2, 0 -_0801A038: .4byte gBattlerPartyIndexes -_0801A03C: .4byte gEnemyParty -_0801A040: .4byte gBattleTypeFlags -_0801A044: .4byte gLastUsedAbility -_0801A048: - ldr r2, _0801A078 @ =gLastUsedAbility - ldr r1, _0801A07C @ =gBattleMons - movs r0, 0x58 - mov r3, r10 - muls r3, r0 - adds r0, r3, 0 - adds r0, r1 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r2] - mov r8, r2 -_0801A05E: - cmp r4, 0 - bne _0801A066 - ldr r0, _0801A080 @ =gCurrentMove - ldrh r4, [r0] -_0801A066: - ldr r1, _0801A084 @ =gBattleStruct - ldr r0, [r1] - ldrb r0, [r0, 0x13] - adds r6, r1, 0 - cmp r0, 0 - beq _0801A088 - movs r5, 0x3F - ands r5, r0 - b _0801A094 - .align 2, 0 -_0801A078: .4byte gLastUsedAbility -_0801A07C: .4byte gBattleMons -_0801A080: .4byte gCurrentMove -_0801A084: .4byte gBattleStruct -_0801A088: - ldr r1, _0801A0D0 @ =gBattleMoves - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r5, [r0, 0x2] -_0801A094: - ldr r0, _0801A0D4 @ =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0xA0 - lsls r1, 8 - ands r0, r1 - movs r1, 0x80 - lsls r1, 8 - cmp r0, r1 - bne _0801A0BA - mov r1, r8 - ldrb r0, [r1] - cmp r0, 0x16 - bne _0801A0B2 - bl _0801BBC6 -_0801A0B2: - cmp r0, 0x24 - bne _0801A0BA - bl _0801BBC6 -_0801A0BA: - ldr r2, [sp, 0x4] - cmp r2, 0x13 - bls _0801A0C4 - bl _0801BBAA -_0801A0C4: - lsls r0, r2, 2 - ldr r1, _0801A0D8 @ =_0801A0DC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801A0D0: .4byte gBattleMoves -_0801A0D4: .4byte gBattleTypeFlags -_0801A0D8: .4byte _0801A0DC - .align 2, 0 -_0801A0DC: - .4byte _0801A12C - .4byte _0801A3E0 - .4byte _0801A600 - .4byte _0801A698 - .4byte _0801A8B8 - .4byte _0801B010 - .4byte _0801B374 - .4byte _0801B3C8 - .4byte _0801B450 - .4byte _0801B4D4 - .4byte _0801B6FC - .4byte _0801B518 - .4byte _0801B740 - .4byte _0801B79C - .4byte _0801B7F8 - .4byte _0801B90C - .4byte _0801B9A8 - .4byte _0801BA04 - .4byte _0801BB78 - .4byte _0801B8B4 -_0801A12C: - ldr r2, _0801A160 @ =gBattlerAttacker - ldr r0, _0801A164 @ =gBattlersCount - ldrb r1, [r2] - adds r3, r0, 0 - ldrb r4, [r3] - cmp r1, r4 - bcc _0801A13E - mov r0, r10 - strb r0, [r2] -_0801A13E: - mov r1, r8 - ldrb r0, [r1] - cmp r0, 0x2D - bne _0801A148 - b _0801A2AC -_0801A148: - cmp r0, 0x2D - bgt _0801A178 - cmp r0, 0xD - bne _0801A152 - b _0801A3A8 -_0801A152: - cmp r0, 0xD - bgt _0801A168 - cmp r0, 0x2 - bne _0801A15C - b _0801A27C -_0801A15C: - bl _0801BBAA - .align 2, 0 -_0801A160: .4byte gBattlerAttacker -_0801A164: .4byte gBattlersCount -_0801A168: - cmp r0, 0x16 - bne _0801A16E - b _0801A30C -_0801A16E: - cmp r0, 0x24 - bne _0801A174 - b _0801A36C -_0801A174: - bl _0801BBAA -_0801A178: - cmp r0, 0x46 - bne _0801A17E - b _0801A2DC -_0801A17E: - cmp r0, 0x46 - bgt _0801A18C - cmp r0, 0x3B - bne _0801A188 - b _0801A340 -_0801A188: - bl _0801BBAA -_0801A18C: - cmp r0, 0x4D - bne _0801A192 - b _0801A3A8 -_0801A192: - cmp r0, 0xFF - beq _0801A19A - bl _0801BBAA -_0801A19A: - bl weather_get_current - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x3 - cmp r0, 0xA - bhi _0801A250 - lsls r0, 2 - ldr r1, _0801A1B4 @ =_0801A1B8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801A1B4: .4byte _0801A1B8 - .align 2, 0 -_0801A1B8: - .4byte _0801A1E4 - .4byte _0801A250 - .4byte _0801A1E4 - .4byte _0801A250 - .4byte _0801A250 - .4byte _0801A208 - .4byte _0801A250 - .4byte _0801A250 - .4byte _0801A250 - .4byte _0801A22C - .4byte _0801A1E4 -_0801A1E4: - ldr r2, _0801A200 @ =gBattleWeather - ldrh r1, [r2] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0801A250 - movs r0, 0x5 - strh r0, [r2] - ldr r1, _0801A204 @ =gBattleScripting - movs r0, 0xA - strb r0, [r1, 0x10] - mov r2, r10 - strb r2, [r1, 0x17] - b _0801A246 - .align 2, 0 -_0801A200: .4byte gBattleWeather -_0801A204: .4byte gBattleScripting -_0801A208: - ldr r3, _0801A224 @ =gBattleWeather - ldrh r1, [r3] - movs r2, 0x18 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _0801A250 - strh r2, [r3] - ldr r1, _0801A228 @ =gBattleScripting - movs r0, 0xC - strb r0, [r1, 0x10] - mov r3, r10 - strb r3, [r1, 0x17] - b _0801A246 - .align 2, 0 -_0801A224: .4byte gBattleWeather -_0801A228: .4byte gBattleScripting -_0801A22C: - ldr r3, _0801A26C @ =gBattleWeather - ldrh r1, [r3] - movs r2, 0x60 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _0801A250 - strh r2, [r3] - ldr r1, _0801A270 @ =gBattleScripting - movs r0, 0xB - strb r0, [r1, 0x10] - mov r4, r10 - strb r4, [r1, 0x17] -_0801A246: - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_0801A250: - mov r0, r9 - cmp r0, 0 - bne _0801A25A - bl _0801BBC6 -_0801A25A: - bl weather_get_current - ldr r1, _0801A274 @ =gBattleCommunication - strb r0, [r1, 0x5] - ldr r0, _0801A278 @ =BattleScript_OverworldWeatherStarts - bl BattleScriptPushCursorAndCallback - bl _0801BBAA - .align 2, 0 -_0801A26C: .4byte gBattleWeather -_0801A270: .4byte gBattleScripting -_0801A274: .4byte gBattleCommunication -_0801A278: .4byte BattleScript_OverworldWeatherStarts -_0801A27C: - ldr r2, _0801A2A0 @ =gBattleWeather - ldrh r1, [r2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0801A28C - bl _0801BBAA -_0801A28C: - movs r0, 0x5 - strh r0, [r2] - ldr r0, _0801A2A4 @ =BattleScript_DrizzleActivates - bl BattleScriptPushCursorAndCallback - ldr r0, _0801A2A8 @ =gBattleScripting - mov r1, r10 - strb r1, [r0, 0x17] - bl _0801BB5A - .align 2, 0 -_0801A2A0: .4byte gBattleWeather -_0801A2A4: .4byte BattleScript_DrizzleActivates -_0801A2A8: .4byte gBattleScripting -_0801A2AC: - ldr r2, _0801A2D0 @ =gBattleWeather - ldrh r1, [r2] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0801A2BC - bl _0801BBAA -_0801A2BC: - movs r0, 0x18 - strh r0, [r2] - ldr r0, _0801A2D4 @ =BattleScript_SandstreamActivates - bl BattleScriptPushCursorAndCallback - ldr r0, _0801A2D8 @ =gBattleScripting - mov r2, r10 - strb r2, [r0, 0x17] - bl _0801BB5A - .align 2, 0 -_0801A2D0: .4byte gBattleWeather -_0801A2D4: .4byte BattleScript_SandstreamActivates -_0801A2D8: .4byte gBattleScripting -_0801A2DC: - ldr r2, _0801A300 @ =gBattleWeather - ldrh r1, [r2] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0801A2EC - bl _0801BBAA -_0801A2EC: - movs r0, 0x60 - strh r0, [r2] - ldr r0, _0801A304 @ =BattleScript_DroughtActivates - bl BattleScriptPushCursorAndCallback - ldr r0, _0801A308 @ =gBattleScripting - mov r3, r10 - strb r3, [r0, 0x17] - bl _0801BB5A - .align 2, 0 -_0801A300: .4byte gBattleWeather -_0801A304: .4byte BattleScript_DroughtActivates -_0801A308: .4byte gBattleScripting -_0801A30C: - ldr r0, _0801A338 @ =gSpecialStatuses - mov r4, r10 - lsls r2, r4, 2 - adds r1, r2, r4 - lsls r1, 2 - adds r3, r1, r0 - ldrb r0, [r3] - lsls r0, 28 - cmp r0, 0 - bge _0801A324 - bl _0801BBAA -_0801A324: - ldr r1, _0801A33C @ =gStatuses3 - adds r1, r2, r1 - ldr r0, [r1] - movs r2, 0x80 - lsls r2, 12 - orrs r0, r2 - str r0, [r1] - ldrb r0, [r3] - movs r1, 0x8 - b _0801A396 - .align 2, 0 -_0801A338: .4byte gSpecialStatuses -_0801A33C: .4byte gStatuses3 -_0801A340: - mov r0, r10 - bl CastformDataTypeChange - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - cmp r0, 0 - bne _0801A354 - bl _0801BBC6 -_0801A354: - ldr r0, _0801A364 @ =BattleScript_CastformChange - bl BattleScriptPushCursorAndCallback - ldr r0, _0801A368 @ =gBattleScripting - mov r1, r10 - strb r1, [r0, 0x17] - bl _0801BA6A - .align 2, 0 -_0801A364: .4byte BattleScript_CastformChange -_0801A368: .4byte gBattleScripting -_0801A36C: - ldr r0, _0801A3A0 @ =gSpecialStatuses - mov r3, r10 - lsls r2, r3, 2 - adds r1, r2, r3 - lsls r1, 2 - adds r3, r1, r0 - ldrb r0, [r3] - lsls r0, 27 - cmp r0, 0 - bge _0801A384 - bl _0801BBAA -_0801A384: - ldr r1, _0801A3A4 @ =gStatuses3 - adds r1, r2, r1 - ldr r0, [r1] - movs r2, 0x80 - lsls r2, 13 - orrs r0, r2 - str r0, [r1] - ldrb r0, [r3] - movs r1, 0x10 -_0801A396: - orrs r0, r1 - strb r0, [r3] - bl _0801BBAA - .align 2, 0 -_0801A3A0: .4byte gSpecialStatuses -_0801A3A4: .4byte gStatuses3 -_0801A3A8: - movs r4, 0 - ldrb r3, [r3] - cmp r4, r3 - bcc _0801A3B4 - bl _0801BBAA -_0801A3B4: - adds r0, r4, 0 - bl CastformDataTypeChange - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - cmp r0, 0 - beq _0801A3C8 - bl _0801BA60 -_0801A3C8: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0801A3DC @ =gBattlersCount - ldrb r0, [r0] - cmp r4, r0 - bcc _0801A3B4 - bl _0801BBAA - .align 2, 0 -_0801A3DC: .4byte gBattlersCount -_0801A3E0: - ldr r7, _0801A410 @ =gBattleMons - movs r0, 0x58 - mov r6, r10 - muls r6, r0 - adds r4, r6, r7 - ldrh r0, [r4, 0x28] - cmp r0, 0 - bne _0801A3F4 - bl _0801BBAA -_0801A3F4: - ldr r0, _0801A414 @ =gBattlerAttacker - mov r1, r10 - strb r1, [r0] - mov r2, r8 - ldrb r5, [r2] - cmp r5, 0x2C - beq _0801A426 - cmp r5, 0x2C - bgt _0801A418 - cmp r5, 0x3 - bne _0801A40C - b _0801A58C -_0801A40C: - bl _0801BBAA - .align 2, 0 -_0801A410: .4byte gBattleMons -_0801A414: .4byte gBattlerAttacker -_0801A418: - cmp r5, 0x36 - bne _0801A41E - b _0801A5D8 -_0801A41E: - cmp r5, 0x3D - beq _0801A4A8 - bl _0801BBAA -_0801A426: - 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 - beq _0801A442 - bl _0801BBAA -_0801A442: - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - beq _0801A45A - bl _0801BBAA -_0801A45A: - ldr r0, _0801A49C @ =gBattleWeather - ldrh r1, [r0] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0801A46A - bl _0801BBAA -_0801A46A: - ldrh r0, [r4, 0x2C] - ldrh r3, [r4, 0x28] - cmp r0, r3 - bhi _0801A476 - bl _0801BBAA -_0801A476: - mov r0, r8 - strb r5, [r0] - ldr r0, _0801A4A0 @ =BattleScript_RainDishActivates - bl BattleScriptPushCursorAndCallback - ldr r1, _0801A4A4 @ =gBattleMoveDamage - ldrh r0, [r4, 0x2C] - lsrs r0, 4 - str r0, [r1] - cmp r0, 0 - bne _0801A490 - movs r0, 0x1 - str r0, [r1] -_0801A490: - ldr r0, [r1] - negs r0, r0 - str r0, [r1] - bl _0801BB5A - .align 2, 0 -_0801A49C: .4byte gBattleWeather -_0801A4A0: .4byte BattleScript_RainDishActivates -_0801A4A4: .4byte gBattleMoveDamage -_0801A4A8: - adds r0, r7, 0 - adds r0, 0x4C - adds r5, r6, r0 - ldrb r0, [r5] - cmp r0, 0 - bne _0801A4B8 - bl _0801BBAA -_0801A4B8: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _0801A4D2 - bl _0801BBAA -_0801A4D2: - ldr r0, [r5] - movs r1, 0x88 - ands r0, r1 - cmp r0, 0 - beq _0801A4E4 - ldr r0, _0801A564 @ =gBattleTextBuff1 - ldr r1, _0801A568 @ =gUnknown_8250094 - bl StringCopy -_0801A4E4: - ldr r0, [r5] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - beq _0801A4F6 - ldr r0, _0801A564 @ =gBattleTextBuff1 - ldr r1, _0801A56C @ =gUnknown_825009C - bl StringCopy -_0801A4F6: - ldr r0, [r5] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0801A508 - ldr r0, _0801A564 @ =gBattleTextBuff1 - ldr r1, _0801A570 @ =gUnknown_82500A4 - bl StringCopy -_0801A508: - ldr r0, [r5] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0801A51A - ldr r0, _0801A564 @ =gBattleTextBuff1 - ldr r1, _0801A574 @ =gUnknown_82500AC - bl StringCopy -_0801A51A: - ldr r0, [r5] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0801A52C - ldr r0, _0801A564 @ =gBattleTextBuff1 - ldr r1, _0801A578 @ =gUnknown_82500B4 - bl StringCopy -_0801A52C: - str r4, [r5] - adds r1, r7, 0 - adds r1, 0x50 - adds r1, r6, r1 - ldr r0, [r1] - ldr r2, _0801A57C @ =0xf7ffffff - ands r0, r2 - str r0, [r1] - ldr r0, _0801A580 @ =gBattleScripting - ldr r4, _0801A584 @ =gActiveBattler - mov r1, r10 - strb r1, [r4] - strb r1, [r0, 0x17] - ldr r0, _0801A588 @ =BattleScript_ShedSkinActivates - bl BattleScriptPushCursorAndCallback - str r5, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl BtlController_EmitSetMonData - ldrb r0, [r4] - bl MarkBattlerForControllerExec - bl _0801BB5A - .align 2, 0 -_0801A564: .4byte gBattleTextBuff1 -_0801A568: .4byte gUnknown_8250094 -_0801A56C: .4byte gUnknown_825009C -_0801A570: .4byte gUnknown_82500A4 -_0801A574: .4byte gUnknown_82500AC -_0801A578: .4byte gUnknown_82500B4 -_0801A57C: .4byte 0xf7ffffff -_0801A580: .4byte gBattleScripting -_0801A584: .4byte gActiveBattler -_0801A588: .4byte BattleScript_ShedSkinActivates -_0801A58C: - ldrb r2, [r4, 0x1B] - movs r0, 0x1B - ldrsb r0, [r4, r0] - cmp r0, 0xB - ble _0801A59A - bl _0801BBAA -_0801A59A: - ldr r0, _0801A5CC @ =gDisableStructs - mov r3, r10 - lsls r1, r3, 3 - subs r1, r3 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x16] - cmp r0, 0x2 - bne _0801A5B0 - bl _0801BBAA -_0801A5B0: - adds r0, r2, 0x1 - movs r1, 0 - strb r0, [r4, 0x1B] - ldr r4, _0801A5D0 @ =gBattleScripting - movs r0, 0x11 - strb r0, [r4, 0x10] - strb r1, [r4, 0x11] - ldr r0, _0801A5D4 @ =BattleScript_SpeedBoostActivates - bl BattleScriptPushCursorAndCallback - mov r0, r10 - strb r0, [r4, 0x17] - bl _0801BB5A - .align 2, 0 -_0801A5CC: .4byte gDisableStructs -_0801A5D0: .4byte gBattleScripting -_0801A5D4: .4byte BattleScript_SpeedBoostActivates -_0801A5D8: - ldr r2, _0801A5FC @ =gDisableStructs - ldrb r0, [r0] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r3, [r1, 0x18] - lsls r0, r3, 31 - lsrs r0, 31 - movs r2, 0x1 - eors r2, r0 - movs r0, 0x2 - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x18] - bl _0801BBAA - .align 2, 0 -_0801A5FC: .4byte gDisableStructs -_0801A600: - mov r1, r8 - ldrb r0, [r1] - cmp r0, 0x2B - beq _0801A60C - bl _0801BBAA -_0801A60C: - movs r5, 0 - ldr r0, _0801A67C @ =sSoundMovesTable - ldrh r2, [r0] - ldr r3, _0801A680 @ =0x0000ffff - adds r1, r0, 0 - cmp r2, r3 - bne _0801A61E - bl _0801BBAA -_0801A61E: - cmp r2, r4 - beq _0801A636 - adds r2, r1, 0 -_0801A624: - adds r2, 0x2 - adds r5, 0x1 - ldrh r0, [r2] - cmp r0, r3 - bne _0801A632 - bl _0801BBAA -_0801A632: - cmp r0, r4 - bne _0801A624 -_0801A636: - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - ldr r0, _0801A680 @ =0x0000ffff - cmp r1, r0 - bne _0801A646 - bl _0801BBAA -_0801A646: - ldr r1, _0801A684 @ =gBattleMons - ldr r0, _0801A688 @ =gBattlerAttacker - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 5 - ands r0, r1 - cmp r0, 0 - beq _0801A66C - ldr r0, _0801A68C @ =gHitMarker - ldr r1, [r0] - movs r2, 0x80 - lsls r2, 4 - orrs r1, r2 - str r1, [r0] -_0801A66C: - ldr r1, _0801A690 @ =gBattlescriptCurrInstr - ldr r0, _0801A694 @ =BattleScript_SoundproofProtected - str r0, [r1] - movs r2, 0x1 - mov r9, r2 - bl _0801BBB0 - .align 2, 0 -_0801A67C: .4byte sSoundMovesTable -_0801A680: .4byte 0x0000ffff -_0801A684: .4byte gBattleMons -_0801A688: .4byte gBattlerAttacker -_0801A68C: .4byte gHitMarker -_0801A690: .4byte gBattlescriptCurrInstr -_0801A694: .4byte BattleScript_SoundproofProtected -_0801A698: - cmp r4, 0 - bne _0801A6A0 - bl _0801BBAA -_0801A6A0: - mov r3, r8 - ldrb r0, [r3] - cmp r0, 0xB - beq _0801A710 - cmp r0, 0xB - bgt _0801A6B2 - cmp r0, 0xA - beq _0801A6B8 - b _0801A832 -_0801A6B2: - cmp r0, 0x12 - beq _0801A768 - b _0801A832 -_0801A6B8: - cmp r5, 0xD - beq _0801A6BE - b _0801A832 -_0801A6BE: - ldr r0, _0801A6E8 @ =gBattleMoves - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _0801A6D0 - b _0801A832 -_0801A6D0: - ldr r1, _0801A6EC @ =gProtectStructs - ldr r0, _0801A6F0 @ =gBattlerAttacker - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x2] - lsls r0, 28 - cmp r0, 0 - bge _0801A6FC - ldr r1, _0801A6F4 @ =gBattlescriptCurrInstr - ldr r0, _0801A6F8 @ =BattleScript_MoveHPDrain - b _0801A700 - .align 2, 0 -_0801A6E8: .4byte gBattleMoves -_0801A6EC: .4byte gProtectStructs -_0801A6F0: .4byte gBattlerAttacker -_0801A6F4: .4byte gBattlescriptCurrInstr -_0801A6F8: .4byte BattleScript_MoveHPDrain -_0801A6FC: - ldr r1, _0801A708 @ =gBattlescriptCurrInstr - ldr r0, _0801A70C @ =BattleScript_MoveHPDrain_PPLoss -_0801A700: - str r0, [r1] - movs r4, 0x1 - mov r9, r4 - b _0801A832 - .align 2, 0 -_0801A708: .4byte gBattlescriptCurrInstr -_0801A70C: .4byte BattleScript_MoveHPDrain_PPLoss -_0801A710: - cmp r5, 0xB - beq _0801A716 - b _0801A832 -_0801A716: - ldr r0, _0801A740 @ =gBattleMoves - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _0801A728 - b _0801A832 -_0801A728: - ldr r1, _0801A744 @ =gProtectStructs - ldr r0, _0801A748 @ =gBattlerAttacker - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x2] - lsls r0, 28 - cmp r0, 0 - bge _0801A754 - ldr r1, _0801A74C @ =gBattlescriptCurrInstr - ldr r0, _0801A750 @ =BattleScript_MoveHPDrain - b _0801A758 - .align 2, 0 -_0801A740: .4byte gBattleMoves -_0801A744: .4byte gProtectStructs -_0801A748: .4byte gBattlerAttacker -_0801A74C: .4byte gBattlescriptCurrInstr -_0801A750: .4byte BattleScript_MoveHPDrain -_0801A754: - ldr r1, _0801A760 @ =gBattlescriptCurrInstr - ldr r0, _0801A764 @ =BattleScript_MoveHPDrain_PPLoss -_0801A758: - str r0, [r1] - movs r0, 0x1 - b _0801A830 - .align 2, 0 -_0801A760: .4byte gBattlescriptCurrInstr -_0801A764: .4byte BattleScript_MoveHPDrain_PPLoss -_0801A768: - cmp r5, 0xA - bne _0801A832 - ldr r1, _0801A7B8 @ =gBattleMons - movs r0, 0x58 - mov r2, r10 - muls r2, r0 - adds r0, r2, 0 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - bne _0801A832 - ldr r2, _0801A7BC @ =gBattleResources - ldr r0, [r2] - ldr r0, [r0, 0x4] - mov r3, r10 - lsls r1, r3, 2 - adds r0, r1 - ldr r3, [r0] - movs r4, 0x1 - ands r3, r4 - adds r5, r1, 0 - cmp r3, 0 - bne _0801A7F8 - ldr r0, _0801A7C0 @ =gBattleCommunication - strb r3, [r0, 0x5] - ldr r1, _0801A7C4 @ =gProtectStructs - ldr r0, _0801A7C8 @ =gBattlerAttacker - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x2] - lsls r0, 28 - cmp r0, 0 - bge _0801A7D4 - ldr r1, _0801A7CC @ =gBattlescriptCurrInstr - ldr r0, _0801A7D0 @ =BattleScript_FlashFireBoost - b _0801A7D8 - .align 2, 0 -_0801A7B8: .4byte gBattleMons -_0801A7BC: .4byte gBattleResources -_0801A7C0: .4byte gBattleCommunication -_0801A7C4: .4byte gProtectStructs -_0801A7C8: .4byte gBattlerAttacker -_0801A7CC: .4byte gBattlescriptCurrInstr -_0801A7D0: .4byte BattleScript_FlashFireBoost -_0801A7D4: - ldr r1, _0801A7F0 @ =gBattlescriptCurrInstr - ldr r0, _0801A7F4 @ =BattleScript_FlashFireBoost_PPLoss -_0801A7D8: - str r0, [r1] - ldr r0, [r2] - ldr r1, [r0, 0x4] - adds r1, r5 - ldr r0, [r1] - movs r2, 0x1 - orrs r0, r2 - str r0, [r1] - movs r4, 0x2 - mov r9, r4 - b _0801A832 - .align 2, 0 -_0801A7F0: .4byte gBattlescriptCurrInstr -_0801A7F4: .4byte BattleScript_FlashFireBoost_PPLoss -_0801A7F8: - ldr r0, _0801A814 @ =gBattleCommunication - strb r4, [r0, 0x5] - ldr r1, _0801A818 @ =gProtectStructs - ldr r0, _0801A81C @ =gBattlerAttacker - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x2] - lsls r0, 28 - cmp r0, 0 - bge _0801A828 - ldr r1, _0801A820 @ =gBattlescriptCurrInstr - ldr r0, _0801A824 @ =BattleScript_FlashFireBoost - b _0801A82C - .align 2, 0 -_0801A814: .4byte gBattleCommunication -_0801A818: .4byte gProtectStructs -_0801A81C: .4byte gBattlerAttacker -_0801A820: .4byte gBattlescriptCurrInstr -_0801A824: .4byte BattleScript_FlashFireBoost -_0801A828: - ldr r1, _0801A86C @ =gBattlescriptCurrInstr - ldr r0, _0801A870 @ =BattleScript_FlashFireBoost_PPLoss -_0801A82C: - str r0, [r1] - movs r0, 0x2 -_0801A830: - mov r9, r0 -_0801A832: - mov r1, r9 - cmp r1, 0x1 - beq _0801A83C - bl _0801BBAA -_0801A83C: - ldr r1, _0801A874 @ =gBattleMons - movs r0, 0x58 - mov r2, r10 - muls r2, r0 - adds r0, r2, 0 - adds r1, r0, r1 - ldrh r0, [r1, 0x2C] - ldrh r3, [r1, 0x28] - cmp r0, r3 - bne _0801A898 - ldr r1, _0801A878 @ =gProtectStructs - ldr r0, _0801A87C @ =gBattlerAttacker - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x2] - lsls r0, 28 - cmp r0, 0 - bge _0801A884 - ldr r1, _0801A86C @ =gBattlescriptCurrInstr - ldr r0, _0801A880 @ =BattleScript_MonMadeMoveUseless - str r0, [r1] - bl _0801BBAA - .align 2, 0 -_0801A86C: .4byte gBattlescriptCurrInstr -_0801A870: .4byte BattleScript_FlashFireBoost_PPLoss -_0801A874: .4byte gBattleMons -_0801A878: .4byte gProtectStructs -_0801A87C: .4byte gBattlerAttacker -_0801A880: .4byte BattleScript_MonMadeMoveUseless -_0801A884: - ldr r1, _0801A890 @ =gBattlescriptCurrInstr - ldr r0, _0801A894 @ =BattleScript_MonMadeMoveUseless_PPLoss - str r0, [r1] - bl _0801BBAA - .align 2, 0 -_0801A890: .4byte gBattlescriptCurrInstr -_0801A894: .4byte BattleScript_MonMadeMoveUseless_PPLoss -_0801A898: - ldr r2, _0801A8B4 @ =gBattleMoveDamage - ldrh r0, [r1, 0x2C] - lsrs r0, 2 - str r0, [r2] - cmp r0, 0 - bne _0801A8A8 - mov r4, r9 - str r4, [r2] -_0801A8A8: - ldr r0, [r2] - negs r0, r0 - str r0, [r2] - bl _0801BBAA - .align 2, 0 -_0801A8B4: .4byte gBattleMoveDamage -_0801A8B8: - mov r1, r8 - ldrb r0, [r1] - subs r0, 0x9 - cmp r0, 0x2F - bls _0801A8C6 - bl _0801BBAA -_0801A8C6: - lsls r0, 2 - ldr r1, _0801A8D0 @ =_0801A8D4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801A8D0: .4byte _0801A8D4 - .align 2, 0 -_0801A8D4: - .4byte _0801ACF0 - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801A994 - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801AA5C - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801AB1C - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801AC14 - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801ADCC - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801BBAA - .4byte _0801AEA8 -_0801A994: - ldr r0, _0801AA3C @ =gMoveResultFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _0801A9A4 - bl _0801BBAA -_0801A9A4: - cmp r4, 0xA5 - bne _0801A9AC - bl _0801BBAA -_0801A9AC: - ldr r0, _0801AA40 @ =gBattleMoves - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _0801A9C0 - bl _0801BBAA -_0801A9C0: - ldr r2, _0801AA44 @ =gSpecialStatuses - ldr r0, _0801AA48 @ =gBattlerTarget - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r1, r0, 2 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _0801A9E8 - adds r0, r2, 0 - adds r0, 0xC - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _0801A9E8 - bl _0801BBAA -_0801A9E8: - ldr r1, _0801AA4C @ =gBattleMons - movs r0, 0x58 - mov r2, r10 - muls r2, r0 - adds r0, r2, 0 - adds r1, r0, r1 - adds r3, r1, 0 - adds r3, 0x21 - ldrb r0, [r3] - cmp r0, r5 - bne _0801AA02 - bl _0801BBAA -_0801AA02: - adds r2, r1, 0 - adds r2, 0x22 - ldrb r0, [r2] - cmp r0, r5 - bne _0801AA10 - bl _0801BBAA -_0801AA10: - ldrh r0, [r1, 0x28] - cmp r0, 0 - bne _0801AA1A - bl _0801BBAA -_0801AA1A: - strb r5, [r3] - strb r5, [r2] - ldr r1, _0801AA50 @ =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x3 - strb r0, [r1, 0x1] - strb r5, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - bl BattleScriptPushCursor - ldr r1, _0801AA54 @ =gBattlescriptCurrInstr - ldr r0, _0801AA58 @ =BattleScript_ColorChangeActivates - str r0, [r1] - bl _0801BB5A - .align 2, 0 -_0801AA3C: .4byte gMoveResultFlags -_0801AA40: .4byte gBattleMoves -_0801AA44: .4byte gSpecialStatuses -_0801AA48: .4byte gBattlerTarget -_0801AA4C: .4byte gBattleMons -_0801AA50: .4byte gBattleTextBuff1 -_0801AA54: .4byte gBattlescriptCurrInstr -_0801AA58: .4byte BattleScript_ColorChangeActivates -_0801AA5C: - ldr r0, _0801AAF4 @ =gMoveResultFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _0801AA6C - bl _0801BBAA -_0801AA6C: - ldr r1, _0801AAF8 @ =gBattleMons - ldr r0, _0801AAFC @ =gBattlerAttacker - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r3, r0, r1 - ldrh r0, [r3, 0x28] - cmp r0, 0 - bne _0801AA82 - bl _0801BBAA -_0801AA82: - ldr r0, _0801AB00 @ =gProtectStructs - lsls r1, r2, 4 - adds r1, r0 - ldrb r0, [r1, 0x1] - lsls r0, 31 - cmp r0, 0 - beq _0801AA94 - bl _0801BBAA -_0801AA94: - ldr r2, _0801AB04 @ =gSpecialStatuses - ldr r0, _0801AB08 @ =gBattlerTarget - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r1, r0, 2 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _0801AABC - adds r0, r2, 0 - adds r0, 0xC - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _0801AABC - bl _0801BBAA -_0801AABC: - ldr r1, _0801AB0C @ =gBattleMoves - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x8] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _0801AAD6 - bl _0801BBAA -_0801AAD6: - ldr r1, _0801AB10 @ =gBattleMoveDamage - ldrh r0, [r3, 0x2C] - lsrs r0, 4 - str r0, [r1] - cmp r0, 0 - bne _0801AAE4 - str r2, [r1] -_0801AAE4: - bl BattleScriptPushCursor - ldr r1, _0801AB14 @ =gBattlescriptCurrInstr - ldr r0, _0801AB18 @ =BattleScript_RoughSkinActivates - str r0, [r1] - bl _0801BB5A - .align 2, 0 -_0801AAF4: .4byte gMoveResultFlags -_0801AAF8: .4byte gBattleMons -_0801AAFC: .4byte gBattlerAttacker -_0801AB00: .4byte gProtectStructs -_0801AB04: .4byte gSpecialStatuses -_0801AB08: .4byte gBattlerTarget -_0801AB0C: .4byte gBattleMoves -_0801AB10: .4byte gBattleMoveDamage -_0801AB14: .4byte gBattlescriptCurrInstr -_0801AB18: .4byte BattleScript_RoughSkinActivates -_0801AB1C: - ldr r0, _0801ABE8 @ =gMoveResultFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _0801AB2C - bl _0801BBAA -_0801AB2C: - ldr r1, _0801ABEC @ =gBattleMons - ldr r0, _0801ABF0 @ =gBattlerAttacker - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _0801AB42 - bl _0801BBAA -_0801AB42: - ldr r0, _0801ABF4 @ =gProtectStructs - lsls r1, r2, 4 - adds r1, r0 - ldrb r0, [r1, 0x1] - lsls r0, 31 - cmp r0, 0 - beq _0801AB54 - bl _0801BBAA -_0801AB54: - ldr r2, _0801ABF8 @ =gSpecialStatuses - ldr r0, _0801ABFC @ =gBattlerTarget - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r1, r0, 2 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _0801AB7C - adds r0, r2, 0 - adds r0, 0xC - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _0801AB7C - bl _0801BBAA -_0801AB7C: - ldr r1, _0801AC00 @ =gBattleMoves - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x8] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0801AB94 - bl _0801BBAA -_0801AB94: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - beq _0801ABAC - bl _0801BBAA -_0801ABAC: - ldr r5, _0801AC04 @ =gBattleCommunication - movs r4, 0x3 -_0801ABB0: - bl Random - ands r0, r4 - strb r0, [r5, 0x3] - cmp r0, 0 - beq _0801ABB0 - ldr r1, _0801AC04 @ =gBattleCommunication - ldrb r0, [r1, 0x3] - cmp r0, 0x3 - bne _0801ABC8 - adds r0, 0x2 - strb r0, [r1, 0x3] -_0801ABC8: - ldrb r0, [r1, 0x3] - adds r0, 0x40 - strb r0, [r1, 0x3] - bl BattleScriptPushCursor - ldr r1, _0801AC08 @ =gBattlescriptCurrInstr - ldr r0, _0801AC0C @ =BattleScript_ApplySecondaryEffect - str r0, [r1] - ldr r2, _0801AC10 @ =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 6 - orrs r0, r1 - str r0, [r2] - bl _0801BB5A - .align 2, 0 -_0801ABE8: .4byte gMoveResultFlags -_0801ABEC: .4byte gBattleMons -_0801ABF0: .4byte gBattlerAttacker -_0801ABF4: .4byte gProtectStructs -_0801ABF8: .4byte gSpecialStatuses -_0801ABFC: .4byte gBattlerTarget -_0801AC00: .4byte gBattleMoves -_0801AC04: .4byte gBattleCommunication -_0801AC08: .4byte gBattlescriptCurrInstr -_0801AC0C: .4byte BattleScript_ApplySecondaryEffect -_0801AC10: .4byte gHitMarker -_0801AC14: - ldr r0, _0801ACC4 @ =gMoveResultFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _0801AC24 - bl _0801BBAA -_0801AC24: - ldr r1, _0801ACC8 @ =gBattleMons - ldr r0, _0801ACCC @ =gBattlerAttacker - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _0801AC3A - bl _0801BBAA -_0801AC3A: - ldr r0, _0801ACD0 @ =gProtectStructs - lsls r1, r2, 4 - adds r1, r0 - ldrb r0, [r1, 0x1] - lsls r0, 31 - cmp r0, 0 - beq _0801AC4C - bl _0801BBAA -_0801AC4C: - ldr r2, _0801ACD4 @ =gSpecialStatuses - ldr r0, _0801ACD8 @ =gBattlerTarget - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r1, r0, 2 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _0801AC74 - adds r0, r2, 0 - adds r0, 0xC - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _0801AC74 - bl _0801BBAA -_0801AC74: - ldr r1, _0801ACDC @ =gBattleMoves - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x8] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0801AC8C - bl _0801BBAA -_0801AC8C: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - beq _0801ACA4 - bl _0801BBAA -_0801ACA4: - ldr r1, _0801ACE0 @ =gBattleCommunication - movs r0, 0x42 - strb r0, [r1, 0x3] - bl BattleScriptPushCursor - ldr r1, _0801ACE4 @ =gBattlescriptCurrInstr - ldr r0, _0801ACE8 @ =BattleScript_ApplySecondaryEffect - str r0, [r1] - ldr r2, _0801ACEC @ =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 6 - orrs r0, r1 - str r0, [r2] - bl _0801BB5A - .align 2, 0 -_0801ACC4: .4byte gMoveResultFlags -_0801ACC8: .4byte gBattleMons -_0801ACCC: .4byte gBattlerAttacker -_0801ACD0: .4byte gProtectStructs -_0801ACD4: .4byte gSpecialStatuses -_0801ACD8: .4byte gBattlerTarget -_0801ACDC: .4byte gBattleMoves -_0801ACE0: .4byte gBattleCommunication -_0801ACE4: .4byte gBattlescriptCurrInstr -_0801ACE8: .4byte BattleScript_ApplySecondaryEffect -_0801ACEC: .4byte gHitMarker -_0801ACF0: - ldr r0, _0801ADA0 @ =gMoveResultFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _0801AD00 - bl _0801BBAA -_0801AD00: - ldr r1, _0801ADA4 @ =gBattleMons - ldr r0, _0801ADA8 @ =gBattlerAttacker - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _0801AD16 - bl _0801BBAA -_0801AD16: - ldr r0, _0801ADAC @ =gProtectStructs - lsls r1, r2, 4 - adds r1, r0 - ldrb r0, [r1, 0x1] - lsls r0, 31 - cmp r0, 0 - beq _0801AD28 - bl _0801BBAA -_0801AD28: - ldr r2, _0801ADB0 @ =gSpecialStatuses - ldr r0, _0801ADB4 @ =gBattlerTarget - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r1, r0, 2 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _0801AD50 - adds r0, r2, 0 - adds r0, 0xC - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _0801AD50 - bl _0801BBAA -_0801AD50: - ldr r1, _0801ADB8 @ =gBattleMoves - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x8] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0801AD68 - bl _0801BBAA -_0801AD68: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - beq _0801AD80 - bl _0801BBAA -_0801AD80: - ldr r1, _0801ADBC @ =gBattleCommunication - movs r0, 0x45 - strb r0, [r1, 0x3] - bl BattleScriptPushCursor - ldr r1, _0801ADC0 @ =gBattlescriptCurrInstr - ldr r0, _0801ADC4 @ =BattleScript_ApplySecondaryEffect - str r0, [r1] - ldr r2, _0801ADC8 @ =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 6 - orrs r0, r1 - str r0, [r2] - bl _0801BB5A - .align 2, 0 -_0801ADA0: .4byte gMoveResultFlags -_0801ADA4: .4byte gBattleMons -_0801ADA8: .4byte gBattlerAttacker -_0801ADAC: .4byte gProtectStructs -_0801ADB0: .4byte gSpecialStatuses -_0801ADB4: .4byte gBattlerTarget -_0801ADB8: .4byte gBattleMoves -_0801ADBC: .4byte gBattleCommunication -_0801ADC0: .4byte gBattlescriptCurrInstr -_0801ADC4: .4byte BattleScript_ApplySecondaryEffect -_0801ADC8: .4byte gHitMarker -_0801ADCC: - ldr r0, _0801AE7C @ =gMoveResultFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _0801ADDC - bl _0801BBAA -_0801ADDC: - ldr r1, _0801AE80 @ =gBattleMons - ldr r0, _0801AE84 @ =gBattlerAttacker - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _0801ADF2 - bl _0801BBAA -_0801ADF2: - ldr r0, _0801AE88 @ =gProtectStructs - lsls r1, r2, 4 - adds r1, r0 - ldrb r0, [r1, 0x1] - lsls r0, 31 - cmp r0, 0 - beq _0801AE04 - bl _0801BBAA -_0801AE04: - ldr r1, _0801AE8C @ =gBattleMoves - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x8] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0801AE1C - bl _0801BBAA -_0801AE1C: - ldr r2, _0801AE90 @ =gSpecialStatuses - ldr r0, _0801AE94 @ =gBattlerTarget - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r1, r0, 2 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _0801AE44 - adds r0, r2, 0 - adds r0, 0xC - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _0801AE44 - bl _0801BBAA -_0801AE44: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - beq _0801AE5C - bl _0801BBAA -_0801AE5C: - ldr r1, _0801AE98 @ =gBattleCommunication - movs r0, 0x43 - strb r0, [r1, 0x3] - bl BattleScriptPushCursor - ldr r1, _0801AE9C @ =gBattlescriptCurrInstr - ldr r0, _0801AEA0 @ =BattleScript_ApplySecondaryEffect - str r0, [r1] - ldr r2, _0801AEA4 @ =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 6 - orrs r0, r1 - str r0, [r2] - bl _0801BB5A - .align 2, 0 -_0801AE7C: .4byte gMoveResultFlags -_0801AE80: .4byte gBattleMons -_0801AE84: .4byte gBattlerAttacker -_0801AE88: .4byte gProtectStructs -_0801AE8C: .4byte gBattleMoves -_0801AE90: .4byte gSpecialStatuses -_0801AE94: .4byte gBattlerTarget -_0801AE98: .4byte gBattleCommunication -_0801AE9C: .4byte gBattlescriptCurrInstr -_0801AEA0: .4byte BattleScript_ApplySecondaryEffect -_0801AEA4: .4byte gHitMarker -_0801AEA8: - ldr r0, _0801AFE8 @ =gMoveResultFlags - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _0801AEB8 - bl _0801BBAA -_0801AEB8: - ldr r5, _0801AFEC @ =gBattleMons - ldr r7, _0801AFF0 @ =gBattlerAttacker - ldrb r1, [r7] - movs r6, 0x58 - adds r0, r1, 0 - muls r0, r6 - adds r0, r5 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _0801AED0 - bl _0801BBAA -_0801AED0: - ldr r0, _0801AFF4 @ =gProtectStructs - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1, 0x1] - lsls r0, 31 - cmp r0, 0 - beq _0801AEE2 - bl _0801BBAA -_0801AEE2: - ldr r1, _0801AFF8 @ =gBattleMoves - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x8] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0801AEFA - bl _0801BBAA -_0801AEFA: - ldr r3, _0801AFFC @ =gSpecialStatuses - ldr r4, _0801B000 @ =gBattlerTarget - mov r8, r4 - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r2, r0, 2 - adds r0, r3, 0 - adds r0, 0x8 - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, 0 - bne _0801AF24 - adds r0, r3, 0 - adds r0, 0xC - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, 0 - bne _0801AF24 - bl _0801BBAA -_0801AF24: - adds r0, r1, 0 - muls r0, r6 - adds r0, r5 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _0801AF34 - bl _0801BBAA -_0801AF34: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - beq _0801AF4C - bl _0801BBAA -_0801AF4C: - ldrb r0, [r7] - muls r0, r6 - adds r0, r5 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0xC - bne _0801AF5E - bl _0801BBAA -_0801AF5E: - ldr r0, [sp, 0x8] - ldr r1, [sp, 0x10] - bl GetGenderFromSpeciesAndPersonality - adds r4, r0, 0 - ldr r0, [sp, 0xC] - ldr r1, [sp, 0x14] - bl GetGenderFromSpeciesAndPersonality - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _0801AF7C - bl _0801BBAA -_0801AF7C: - ldrb r0, [r7] - muls r0, r6 - adds r4, r5, 0 - adds r4, 0x50 - adds r0, r4 - ldr r0, [r0] - movs r1, 0xF0 - lsls r1, 12 - ands r0, r1 - cmp r0, 0 - beq _0801AF96 - bl _0801BBAA -_0801AF96: - ldr r0, [sp, 0x8] - ldr r1, [sp, 0x10] - bl GetGenderFromSpeciesAndPersonality - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _0801AFAA - bl _0801BBAA -_0801AFAA: - ldr r0, [sp, 0xC] - ldr r1, [sp, 0x14] - bl GetGenderFromSpeciesAndPersonality - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _0801AFBE - bl _0801BBAA -_0801AFBE: - ldrb r0, [r7] - adds r2, r0, 0 - muls r2, r6 - adds r2, r4 - ldr r1, _0801B004 @ =gBitTable - mov r3, r8 - ldrb r0, [r3] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - lsls r1, 16 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - bl BattleScriptPushCursor - ldr r1, _0801B008 @ =gBattlescriptCurrInstr - ldr r0, _0801B00C @ =BattleScript_CuteCharmActivates - str r0, [r1] - bl _0801BB5A - .align 2, 0 -_0801AFE8: .4byte gMoveResultFlags -_0801AFEC: .4byte gBattleMons -_0801AFF0: .4byte gBattlerAttacker -_0801AFF4: .4byte gProtectStructs -_0801AFF8: .4byte gBattleMoves -_0801AFFC: .4byte gSpecialStatuses -_0801B000: .4byte gBattlerTarget -_0801B004: .4byte gBitTable -_0801B008: .4byte gBattlescriptCurrInstr -_0801B00C: .4byte BattleScript_CuteCharmActivates -_0801B010: - movs r4, 0 - mov r10, r4 - ldr r0, _0801B044 @ =gBattlersCount - ldrb r0, [r0] - cmp r10, r0 - bcc _0801B020 - bl _0801BBAA -_0801B020: - ldr r1, _0801B048 @ =gBattleMons - movs r0, 0x58 - mov r2, r10 - muls r2, r0 - adds r0, r2, 0 - adds r0, r1 - adds r0, 0x20 - ldrb r0, [r0] - subs r0, 0x7 - adds r2, r1, 0 - cmp r0, 0x41 - bls _0801B03A - b _0801B29E -_0801B03A: - lsls r0, 2 - ldr r1, _0801B04C @ =_0801B050 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801B044: .4byte gBattlersCount -_0801B048: .4byte gBattleMons -_0801B04C: .4byte _0801B050 - .align 2, 0 -_0801B050: - .4byte _0801B1B4 - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B278 - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B1DC - .4byte _0801B29E - .4byte _0801B158 - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B184 - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B248 - .4byte _0801B218 - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B29E - .4byte _0801B1DC -_0801B158: - movs r0, 0x58 - mov r3, r10 - muls r3, r0 - adds r0, r3, 0 - adds r1, r2, 0 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - ldr r1, _0801B178 @ =0x00000f88 - ands r0, r1 - cmp r0, 0 - bne _0801B172 - b _0801B29E -_0801B172: - ldr r0, _0801B17C @ =gBattleTextBuff1 - ldr r1, _0801B180 @ =gUnknown_8250094 - b _0801B264 - .align 2, 0 -_0801B178: .4byte 0x00000f88 -_0801B17C: .4byte gBattleTextBuff1 -_0801B180: .4byte gUnknown_8250094 -_0801B184: - movs r0, 0x58 - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - adds r1, r2, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0801B19E - b _0801B29E -_0801B19E: - ldr r0, _0801B1AC @ =gBattleTextBuff1 - ldr r1, _0801B1B0 @ =gUnknown_82500BC - bl StringCopy - movs r2, 0x2 - mov r9, r2 - b _0801B2A4 - .align 2, 0 -_0801B1AC: .4byte gBattleTextBuff1 -_0801B1B0: .4byte gUnknown_82500BC -_0801B1B4: - movs r0, 0x58 - mov r3, r10 - muls r3, r0 - adds r0, r3, 0 - adds r1, r2, 0 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0801B29E - ldr r0, _0801B1D4 @ =gBattleTextBuff1 - ldr r1, _0801B1D8 @ =gUnknown_82500A4 - b _0801B264 - .align 2, 0 -_0801B1D4: .4byte gBattleTextBuff1 -_0801B1D8: .4byte gUnknown_82500A4 -_0801B1DC: - movs r0, 0x58 - mov r3, r10 - muls r3, r0 - adds r0, r2, 0 - adds r0, 0x4C - adds r0, r3, r0 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - beq _0801B29E - adds r2, 0x50 - adds r2, r3, r2 - ldr r0, [r2] - ldr r1, _0801B20C @ =0xf7ffffff - ands r0, r1 - str r0, [r2] - ldr r0, _0801B210 @ =gBattleTextBuff1 - ldr r1, _0801B214 @ =gUnknown_825009C - bl StringCopy - movs r0, 0x1 - mov r9, r0 - b _0801B2A4 - .align 2, 0 -_0801B20C: .4byte 0xf7ffffff -_0801B210: .4byte gBattleTextBuff1 -_0801B214: .4byte gUnknown_825009C -_0801B218: - movs r0, 0x58 - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - adds r1, r2, 0 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0801B29E - ldr r0, _0801B240 @ =gBattleTextBuff1 - ldr r1, _0801B244 @ =gUnknown_82500AC - bl StringCopy - movs r2, 0x1 - mov r9, r2 - b _0801B2A4 - .align 2, 0 -_0801B240: .4byte gBattleTextBuff1 -_0801B244: .4byte gUnknown_82500AC -_0801B248: - movs r0, 0x58 - mov r3, r10 - muls r3, r0 - adds r0, r3, 0 - adds r1, r2, 0 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0801B29E - ldr r0, _0801B270 @ =gBattleTextBuff1 - ldr r1, _0801B274 @ =gUnknown_82500B4 -_0801B264: - bl StringCopy - movs r4, 0x1 - mov r9, r4 - b _0801B2A4 - .align 2, 0 -_0801B270: .4byte gBattleTextBuff1 -_0801B274: .4byte gUnknown_82500B4 -_0801B278: - movs r0, 0x58 - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - adds r1, r2, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0xF0 - lsls r1, 12 - ands r0, r1 - cmp r0, 0 - beq _0801B29E - ldr r0, _0801B2B4 @ =gBattleTextBuff1 - ldr r1, _0801B2B8 @ =gUnknown_82500C4 - bl StringCopy - movs r2, 0x3 - mov r9, r2 -_0801B29E: - mov r3, r9 - cmp r3, 0 - beq _0801B358 -_0801B2A4: - mov r4, r9 - cmp r4, 0x2 - beq _0801B2D8 - cmp r4, 0x2 - bgt _0801B2BC - cmp r4, 0x1 - beq _0801B2C4 - b _0801B304 - .align 2, 0 -_0801B2B4: .4byte gBattleTextBuff1 -_0801B2B8: .4byte gUnknown_82500C4 -_0801B2BC: - mov r0, r9 - cmp r0, 0x3 - beq _0801B2F0 - b _0801B304 -_0801B2C4: - ldr r1, _0801B2D4 @ =gBattleMons - movs r0, 0x58 - mov r2, r10 - muls r2, r0 - adds r1, 0x4C - adds r2, r1 - movs r0, 0 - b _0801B302 - .align 2, 0 -_0801B2D4: .4byte gBattleMons -_0801B2D8: - ldr r1, _0801B2EC @ =gBattleMons - movs r0, 0x58 - mov r2, r10 - muls r2, r0 - adds r1, 0x50 - adds r2, r1 - ldr r0, [r2] - movs r1, 0x8 - negs r1, r1 - b _0801B300 - .align 2, 0 -_0801B2EC: .4byte gBattleMons -_0801B2F0: - ldr r1, _0801B33C @ =gBattleMons - movs r0, 0x58 - mov r2, r10 - muls r2, r0 - adds r1, 0x50 - adds r2, r1 - ldr r0, [r2] - ldr r1, _0801B340 @ =0xfff0ffff -_0801B300: - ands r0, r1 -_0801B302: - str r0, [r2] -_0801B304: - bl BattleScriptPushCursor - ldr r1, _0801B344 @ =gBattlescriptCurrInstr - ldr r0, _0801B348 @ =BattleScript_AbilityCuredStatus - str r0, [r1] - ldr r0, _0801B34C @ =gBattleScripting - mov r1, r10 - strb r1, [r0, 0x17] - ldr r4, _0801B350 @ =gActiveBattler - strb r1, [r4] - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - ldr r1, _0801B354 @ =gUnknown_2023C30 - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl BtlController_EmitSetMonData - ldrb r0, [r4] - bl MarkBattlerForControllerExec - bl _0801BBC6 - .align 2, 0 -_0801B33C: .4byte gBattleMons -_0801B340: .4byte 0xfff0ffff -_0801B344: .4byte gBattlescriptCurrInstr -_0801B348: .4byte BattleScript_AbilityCuredStatus -_0801B34C: .4byte gBattleScripting -_0801B350: .4byte gActiveBattler -_0801B354: .4byte gUnknown_2023C30 -_0801B358: - mov r0, r10 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r0, _0801B370 @ =gBattlersCount - ldrb r0, [r0] - cmp r10, r0 - bcs _0801B36C - b _0801B020 -_0801B36C: - bl _0801BBAA - .align 2, 0 -_0801B370: .4byte gBattlersCount -_0801B374: - movs r2, 0 - mov r10, r2 - ldr r0, _0801B3C0 @ =gBattlersCount - ldrb r0, [r0] - cmp r10, r0 - bcc _0801B384 - bl _0801BBAA -_0801B384: - ldr r4, _0801B3C4 @ =gBattleMons -_0801B386: - movs r0, 0x58 - mov r3, r10 - muls r3, r0 - adds r0, r3, 0 - adds r0, r4 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x3B - bne _0801B3AA - mov r0, r10 - bl CastformDataTypeChange - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - cmp r0, 0 - beq _0801B3AA - b _0801BA84 -_0801B3AA: - mov r0, r10 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r0, _0801B3C0 @ =gBattlersCount - ldrb r0, [r0] - cmp r10, r0 - bcc _0801B386 - bl _0801BBAA - .align 2, 0 -_0801B3C0: .4byte gBattlersCount -_0801B3C4: .4byte gBattleMons -_0801B3C8: - mov r4, r8 - ldrb r0, [r4] - cmp r0, 0x1C - beq _0801B3D4 - bl _0801BBAA -_0801B3D4: - ldr r4, _0801B434 @ =gHitMarker - ldr r1, [r4] - movs r0, 0x80 - lsls r0, 7 - ands r0, r1 - cmp r0, 0 - bne _0801B3E6 - bl _0801BBAA -_0801B3E6: - ldr r0, _0801B438 @ =0xffffbfff - ands r1, r0 - str r1, [r4] - ldr r1, [r6] - adds r1, 0xB4 - ldrb r2, [r1] - movs r0, 0x3F - ands r0, r2 - strb r0, [r1] - ldr r0, [r6] - adds r1, r0, 0 - adds r1, 0xB4 - ldrb r0, [r1] - cmp r0, 0x6 - bne _0801B408 - movs r0, 0x2 - strb r0, [r1] -_0801B408: - ldr r1, _0801B43C @ =gBattleCommunication - ldr r0, [r6] - adds r0, 0xB4 - ldrb r0, [r0] - adds r0, 0x40 - strb r0, [r1, 0x3] - ldr r1, _0801B440 @ =gBattleScripting - ldr r0, _0801B444 @ =gBattlerTarget - ldrb r0, [r0] - strb r0, [r1, 0x17] - bl BattleScriptPushCursor - ldr r1, _0801B448 @ =gBattlescriptCurrInstr - ldr r0, _0801B44C @ =BattleScript_SynchronizeActivates - str r0, [r1] - ldr r0, [r4] - movs r1, 0x80 - lsls r1, 6 - orrs r0, r1 - str r0, [r4] - b _0801BB5A - .align 2, 0 -_0801B434: .4byte gHitMarker -_0801B438: .4byte 0xffffbfff -_0801B43C: .4byte gBattleCommunication -_0801B440: .4byte gBattleScripting -_0801B444: .4byte gBattlerTarget -_0801B448: .4byte gBattlescriptCurrInstr -_0801B44C: .4byte BattleScript_SynchronizeActivates -_0801B450: - mov r1, r8 - ldrb r0, [r1] - cmp r0, 0x1C - beq _0801B45A - b _0801BBAA -_0801B45A: - ldr r4, _0801B4B8 @ =gHitMarker - ldr r1, [r4] - movs r0, 0x80 - lsls r0, 7 - ands r0, r1 - cmp r0, 0 - bne _0801B46A - b _0801BBAA -_0801B46A: - ldr r0, _0801B4BC @ =0xffffbfff - ands r1, r0 - str r1, [r4] - adds r3, r6, 0 - ldr r1, [r3] - adds r1, 0xB4 - ldrb r2, [r1] - movs r0, 0x3F - ands r0, r2 - strb r0, [r1] - ldr r0, [r3] - adds r1, r0, 0 - adds r1, 0xB4 - ldrb r0, [r1] - cmp r0, 0x6 - bne _0801B48E - movs r0, 0x2 - strb r0, [r1] -_0801B48E: - ldr r1, _0801B4C0 @ =gBattleCommunication - ldr r0, [r6] - adds r0, 0xB4 - ldrb r0, [r0] - strb r0, [r1, 0x3] - ldr r1, _0801B4C4 @ =gBattleScripting - ldr r0, _0801B4C8 @ =gBattlerAttacker - ldrb r0, [r0] - strb r0, [r1, 0x17] - bl BattleScriptPushCursor - ldr r1, _0801B4CC @ =gBattlescriptCurrInstr - ldr r0, _0801B4D0 @ =BattleScript_SynchronizeActivates - str r0, [r1] - ldr r0, [r4] - movs r1, 0x80 - lsls r1, 6 - orrs r0, r1 - str r0, [r4] - b _0801BB5A - .align 2, 0 -_0801B4B8: .4byte gHitMarker -_0801B4BC: .4byte 0xffffbfff -_0801B4C0: .4byte gBattleCommunication -_0801B4C4: .4byte gBattleScripting -_0801B4C8: .4byte gBattlerAttacker -_0801B4CC: .4byte gBattlescriptCurrInstr -_0801B4D0: .4byte BattleScript_SynchronizeActivates -_0801B4D4: - movs r5, 0 - ldr r0, _0801B50C @ =gBattlersCount - ldrb r1, [r0] - cmp r5, r1 - blt _0801B4E0 - b _0801BBAA -_0801B4E0: - ldr r0, _0801B510 @ =gBattleMons - adds r4, r1, 0 - ldr r2, _0801B514 @ =gStatuses3 - adds r3, r0, 0 - adds r3, 0x20 - movs r6, 0x80 - lsls r6, 12 -_0801B4EE: - ldrb r1, [r3] - cmp r1, 0x16 - bne _0801B4FE - ldr r0, [r2] - ands r0, r6 - cmp r0, 0 - beq _0801B4FE - b _0801BAAC -_0801B4FE: - adds r2, 0x4 - adds r3, 0x58 - adds r5, 0x1 - cmp r5, r4 - blt _0801B4EE - b _0801BBAA - .align 2, 0 -_0801B50C: .4byte gBattlersCount -_0801B510: .4byte gBattleMons -_0801B514: .4byte gStatuses3 -_0801B518: - movs r5, 0 - ldr r0, _0801B5F4 @ =gBattlersCount - ldrb r0, [r0] - cmp r5, r0 - blt _0801B524 - b _0801BBAA -_0801B524: - ldr r2, _0801B5F8 @ =gActiveBattler - mov r8, r2 - ldr r3, _0801B5FC @ =gBattleMons - adds r3, 0x20 - str r3, [sp, 0x1C] - movs r4, 0 - str r4, [sp, 0x20] -_0801B532: - ldr r1, [sp, 0x1C] - ldrb r0, [r1] - cmp r0, 0x24 - beq _0801B53C - b _0801B6D6 -_0801B53C: - ldr r0, _0801B600 @ =gStatuses3 - ldr r2, [sp, 0x20] - adds r0, r2, r0 - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 13 - ands r1, r0 - str r2, [sp, 0x18] - cmp r1, 0 - bne _0801B552 - b _0801B6D6 -_0801B552: - lsls r0, r5, 24 - lsrs r0, 24 - bl GetBattlerPosition - movs r1, 0x1 - adds r6, r0, 0 - eors r6, r1 - ands r6, r1 - adds r0, r6, 0 - bl GetBattlerAtPosition - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r6, 0x2 - bl GetBattlerAtPosition - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _0801B604 @ =gBattleTypeFlags - ldr r0, [r0] - movs r2, 0x1 - ands r0, r2 - cmp r0, 0 - bne _0801B584 - b _0801B69C -_0801B584: - movs r3, 0x58 - adds r0, r4, 0 - muls r0, r3 - ldr r3, _0801B5FC @ =gBattleMons - adds r1, r0, r3 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - beq _0801B658 - ldrh r0, [r1, 0x28] - cmp r0, 0 - beq _0801B60C - movs r1, 0x58 - adds r0, r7, 0 - muls r0, r1 - adds r1, r0, r3 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - beq _0801B60C - ldrh r0, [r1, 0x28] - cmp r0, 0 - beq _0801B60C - str r2, [sp, 0x24] - bl Random - ldr r2, [sp, 0x24] - adds r1, r2, 0 - ands r1, r0 - lsls r1, 1 - orrs r6, r1 - adds r0, r6, 0 - bl GetBattlerAtPosition - mov r2, r8 - strb r0, [r2] - ldrb r0, [r2] - movs r3, 0x58 - muls r0, r3 - ldr r4, _0801B5FC @ =gBattleMons - adds r0, r4 - adds r0, 0x20 - ldrb r0, [r0] - ldr r1, [sp, 0x1C] - strb r0, [r1] - ldrb r0, [r2] - muls r0, r3 - adds r0, r4 - adds r0, 0x20 - ldrb r0, [r0] - ldr r2, _0801B608 @ =gLastUsedAbility - strb r0, [r2] - b _0801B6C4 - .align 2, 0 -_0801B5F4: .4byte gBattlersCount -_0801B5F8: .4byte gActiveBattler -_0801B5FC: .4byte gBattleMons -_0801B600: .4byte gStatuses3 -_0801B604: .4byte gBattleTypeFlags -_0801B608: .4byte gLastUsedAbility -_0801B60C: - ldr r3, _0801B650 @ =gBattleMons - movs r2, 0x58 - adds r0, r4, 0 - muls r0, r2 - adds r1, r0, r3 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - beq _0801B658 - ldrh r0, [r1, 0x28] - cmp r0, 0 - beq _0801B658 - mov r0, r8 - strb r4, [r0] - adds r1, r5, 0 - muls r1, r2 - adds r1, r3 - ldrb r0, [r0] - muls r0, r2 - adds r0, r3 - adds r0, 0x20 - ldrb r0, [r0] - adds r1, 0x20 - strb r0, [r1] - mov r1, r8 - ldrb r0, [r1] - muls r0, r2 - adds r0, r3 - adds r0, 0x20 - ldrb r0, [r0] - ldr r2, _0801B654 @ =gLastUsedAbility - strb r0, [r2] - b _0801B6C4 - .align 2, 0 -_0801B650: .4byte gBattleMons -_0801B654: .4byte gLastUsedAbility -_0801B658: - ldr r3, _0801B698 @ =gBattleMons - movs r2, 0x58 - adds r0, r7, 0 - muls r0, r2 - adds r1, r0, r3 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - beq _0801B6CE - ldrh r0, [r1, 0x28] - cmp r0, 0 - beq _0801B6CE - mov r4, r8 - strb r7, [r4] - adds r1, r5, 0 - muls r1, r2 - adds r1, r3 - ldrb r0, [r4] - muls r0, r2 - adds r0, r3 - adds r0, 0x20 - ldrb r0, [r0] - adds r1, 0x20 - strb r0, [r1] - ldrb r0, [r4] - muls r0, r2 - adds r0, r3 - adds r0, 0x20 - ldrb r0, [r0] - b _0801B6C0 - .align 2, 0 -_0801B698: .4byte gBattleMons -_0801B69C: - mov r2, r8 - strb r4, [r2] - movs r3, 0x58 - adds r0, r4, 0 - muls r0, r3 - ldr r4, _0801B6F0 @ =gBattleMons - adds r0, r4 - adds r2, r0, 0 - adds r2, 0x20 - ldrb r1, [r2] - cmp r1, 0 - beq _0801B6CE - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _0801B6CE - ldr r0, [sp, 0x1C] - strb r1, [r0] - ldrb r0, [r2] -_0801B6C0: - ldr r1, _0801B6F4 @ =gLastUsedAbility - strb r0, [r1] -_0801B6C4: - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_0801B6CE: - mov r2, r9 - cmp r2, 0 - beq _0801B6D6 - b _0801BAC8 -_0801B6D6: - ldr r3, [sp, 0x1C] - adds r3, 0x58 - str r3, [sp, 0x1C] - ldr r4, [sp, 0x20] - adds r4, 0x4 - str r4, [sp, 0x20] - adds r5, 0x1 - ldr r0, _0801B6F8 @ =gBattlersCount - ldrb r0, [r0] - cmp r5, r0 - bge _0801B6EE - b _0801B532 -_0801B6EE: - b _0801BBAA - .align 2, 0 -_0801B6F0: .4byte gBattleMons -_0801B6F4: .4byte gLastUsedAbility -_0801B6F8: .4byte gBattlersCount -_0801B6FC: - movs r5, 0 - ldr r0, _0801B734 @ =gBattlersCount - ldrb r1, [r0] - cmp r5, r1 - blt _0801B708 - b _0801BBAA -_0801B708: - ldr r0, _0801B738 @ =gBattleMons - adds r4, r1, 0 - ldr r2, _0801B73C @ =gStatuses3 - adds r3, r0, 0 - adds r3, 0x20 - movs r6, 0x80 - lsls r6, 12 -_0801B716: - ldrb r1, [r3] - cmp r1, 0x16 - bne _0801B726 - ldr r0, [r2] - ands r0, r6 - cmp r0, 0 - beq _0801B726 - b _0801BB3C -_0801B726: - adds r2, 0x4 - adds r3, 0x58 - adds r5, 0x1 - cmp r5, r4 - blt _0801B716 - b _0801BBAA - .align 2, 0 -_0801B734: .4byte gBattlersCount -_0801B738: .4byte gBattleMons -_0801B73C: .4byte gStatuses3 -_0801B740: - mov r0, r10 - bl GetBattlerSide - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - ldr r0, _0801B790 @ =gBattlersCount - ldrb r0, [r0] - cmp r5, r0 - blt _0801B756 - b _0801BBAA -_0801B756: - ldr r0, _0801B794 @ =gBattleMons - mov r8, r0 -_0801B75A: - lsls r0, r5, 24 - lsrs r0, 24 - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - adds r4, r5, 0x1 - cmp r0, r6 - beq _0801B784 - movs r0, 0x58 - muls r0, r5 - add r0, r8 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, r7 - bne _0801B784 - ldr r0, _0801B798 @ =gLastUsedAbility - strb r7, [r0] - lsls r0, r4, 24 - lsrs r0, 24 - mov r9, r0 -_0801B784: - adds r5, r4, 0 - ldr r0, _0801B790 @ =gBattlersCount - ldrb r0, [r0] - cmp r5, r0 - blt _0801B75A - b _0801BBAA - .align 2, 0 -_0801B790: .4byte gBattlersCount -_0801B794: .4byte gBattleMons -_0801B798: .4byte gLastUsedAbility -_0801B79C: - mov r0, r10 - bl GetBattlerSide - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - ldr r0, _0801B7EC @ =gBattlersCount - ldrb r0, [r0] - cmp r5, r0 - blt _0801B7B2 - b _0801BBAA -_0801B7B2: - ldr r1, _0801B7F0 @ =gBattleMons - mov r8, r1 -_0801B7B6: - lsls r0, r5, 24 - lsrs r0, 24 - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - adds r4, r5, 0x1 - cmp r0, r6 - bne _0801B7E0 - movs r0, 0x58 - muls r0, r5 - add r0, r8 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, r7 - bne _0801B7E0 - ldr r0, _0801B7F4 @ =gLastUsedAbility - strb r7, [r0] - lsls r0, r4, 24 - lsrs r0, 24 - mov r9, r0 -_0801B7E0: - adds r5, r4, 0 - ldr r0, _0801B7EC @ =gBattlersCount - ldrb r0, [r0] - cmp r5, r0 - blt _0801B7B6 - b _0801BBAA - .align 2, 0 -_0801B7EC: .4byte gBattlersCount -_0801B7F0: .4byte gBattleMons -_0801B7F4: .4byte gLastUsedAbility -_0801B7F8: - mov r2, r8 - ldrb r0, [r2] - cmp r0, 0xFD - beq _0801B820 - cmp r0, 0xFE - beq _0801B858 - movs r5, 0 - ldr r0, _0801B818 @ =gBattlersCount - adds r3, r0, 0 - ldrb r4, [r3] - cmp r5, r4 - blt _0801B812 - b _0801BBAA -_0801B812: - ldr r2, _0801B81C @ =gBattleMons - b _0801B890 - .align 2, 0 -_0801B818: .4byte gBattlersCount -_0801B81C: .4byte gBattleMons -_0801B820: - movs r5, 0 - ldr r0, _0801B850 @ =gBattlersCount - ldrb r0, [r0] - cmp r5, r0 - blt _0801B82C - b _0801BBAA -_0801B82C: - ldr r3, _0801B854 @ =gStatuses3 - movs r2, 0x80 - lsls r2, 9 - adds r1, r0, 0 -_0801B834: - lsls r0, r5, 2 - adds r0, r3 - ldr r0, [r0] - ands r0, r2 - adds r4, r5, 0x1 - cmp r0, 0 - beq _0801B848 - lsls r0, r4, 24 - lsrs r0, 24 - mov r9, r0 -_0801B848: - adds r5, r4, 0 - cmp r5, r1 - blt _0801B834 - b _0801BBAA - .align 2, 0 -_0801B850: .4byte gBattlersCount -_0801B854: .4byte gStatuses3 -_0801B858: - movs r5, 0 - ldr r0, _0801B888 @ =gBattlersCount - ldrb r0, [r0] - cmp r5, r0 - blt _0801B864 - b _0801BBAA -_0801B864: - ldr r3, _0801B88C @ =gStatuses3 - movs r2, 0x80 - lsls r2, 10 - adds r1, r0, 0 -_0801B86C: - lsls r0, r5, 2 - adds r0, r3 - ldr r0, [r0] - ands r0, r2 - adds r4, r5, 0x1 - cmp r0, 0 - beq _0801B880 - lsls r0, r4, 24 - lsrs r0, 24 - mov r9, r0 -_0801B880: - adds r5, r4, 0 - cmp r5, r1 - blt _0801B86C - b _0801BBAA - .align 2, 0 -_0801B888: .4byte gBattlersCount -_0801B88C: .4byte gStatuses3 -_0801B890: - movs r0, 0x58 - muls r0, r5 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - adds r4, r5, 0x1 - cmp r0, r7 - bne _0801B8AA - mov r0, r8 - strb r7, [r0] - lsls r0, r4, 24 - lsrs r0, 24 - mov r9, r0 -_0801B8AA: - adds r5, r4, 0 - ldrb r1, [r3] - cmp r5, r1 - blt _0801B890 - b _0801BBAA -_0801B8B4: - movs r5, 0 - ldr r0, _0801B8F0 @ =gBattlersCount - ldrb r0, [r0] - cmp r5, r0 - blt _0801B8C0 - b _0801BBAA -_0801B8C0: - ldr r6, _0801B8F4 @ =gBattleMons - adds r2, r0, 0 - movs r3, 0x58 -_0801B8C6: - adds r0, r5, 0 - muls r0, r3 - adds r1, r0, r6 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - adds r4, r5, 0x1 - cmp r0, r7 - bne _0801B8E8 - ldrh r0, [r1, 0x28] - cmp r0, 0 - beq _0801B8E8 - mov r0, r8 - strb r7, [r0] - lsls r0, r4, 24 - lsrs r0, 24 - mov r9, r0 -_0801B8E8: - adds r5, r4, 0 - cmp r5, r2 - blt _0801B8C6 - b _0801BBAA - .align 2, 0 -_0801B8F0: .4byte gBattlersCount -_0801B8F4: .4byte gBattleMons -_0801B8F8: - ldr r0, _0801B908 @ =gLastUsedAbility - strb r7, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - b _0801B94A - .align 2, 0 -_0801B908: .4byte gLastUsedAbility -_0801B90C: - mov r0, r10 - bl GetBattlerSide - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - ldr r0, _0801B99C @ =gBattlersCount - ldrb r0, [r0] - cmp r5, r0 - bge _0801B94A - ldr r4, _0801B9A0 @ =gBattleMons -_0801B922: - lsls r0, r5, 24 - lsrs r0, 24 - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, r6 - beq _0801B940 - movs r0, 0x58 - muls r0, r5 - adds r0, r4 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, r7 - beq _0801B8F8 -_0801B940: - adds r5, 0x1 - ldr r0, _0801B99C @ =gBattlersCount - ldrb r0, [r0] - cmp r5, r0 - blt _0801B922 -_0801B94A: - mov r1, r9 - cmp r1, 0 - beq _0801B952 - b _0801BBB0 -_0801B952: - movs r5, 0 - ldr r0, _0801B99C @ =gBattlersCount - ldrb r0, [r0] - cmp r9, r0 - blt _0801B95E - b _0801BBAA -_0801B95E: - ldr r2, _0801B9A0 @ =gBattleMons - mov r8, r2 -_0801B962: - movs r0, 0x58 - muls r0, r5 - add r0, r8 - adds r0, 0x20 - ldrb r0, [r0] - adds r4, r5, 0x1 - cmp r0, r7 - bne _0801B990 - lsls r0, r5, 24 - lsrs r0, 24 - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, r6 - bne _0801B990 - cmp r5, r10 - beq _0801B990 - ldr r0, _0801B9A4 @ =gLastUsedAbility - strb r7, [r0] - lsls r0, r4, 24 - lsrs r0, 24 - mov r9, r0 -_0801B990: - adds r5, r4, 0 - ldr r0, _0801B99C @ =gBattlersCount - ldrb r0, [r0] - cmp r5, r0 - blt _0801B962 - b _0801BBAA - .align 2, 0 -_0801B99C: .4byte gBattlersCount -_0801B9A0: .4byte gBattleMons -_0801B9A4: .4byte gLastUsedAbility -_0801B9A8: - mov r0, r10 - bl GetBattlerSide - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - ldr r0, _0801B9F8 @ =gBattlersCount - ldrb r0, [r0] - cmp r5, r0 - blt _0801B9BE - b _0801BBAA -_0801B9BE: - ldr r4, _0801B9FC @ =gBattleMons -_0801B9C0: - lsls r0, r5, 24 - lsrs r0, 24 - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, r6 - beq _0801B9EC - movs r0, 0x58 - muls r0, r5 - adds r0, r4 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, r7 - bne _0801B9EC - ldr r0, _0801BA00 @ =gLastUsedAbility - strb r7, [r0] - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_0801B9EC: - adds r5, 0x1 - ldr r0, _0801B9F8 @ =gBattlersCount - ldrb r0, [r0] - cmp r5, r0 - blt _0801B9C0 - b _0801BBAA - .align 2, 0 -_0801B9F8: .4byte gBattlersCount -_0801B9FC: .4byte gBattleMons -_0801BA00: .4byte gLastUsedAbility -_0801BA04: - mov r0, r10 - bl GetBattlerSide - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - ldr r0, _0801BA54 @ =gBattlersCount - ldrb r0, [r0] - cmp r5, r0 - blt _0801BA1A - b _0801BBAA -_0801BA1A: - ldr r4, _0801BA58 @ =gBattleMons -_0801BA1C: - lsls r0, r5, 24 - lsrs r0, 24 - bl GetBattlerSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, r6 - bne _0801BA48 - movs r0, 0x58 - muls r0, r5 - adds r0, r4 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, r7 - bne _0801BA48 - ldr r0, _0801BA5C @ =gLastUsedAbility - strb r7, [r0] - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_0801BA48: - adds r5, 0x1 - ldr r0, _0801BA54 @ =gBattlersCount - ldrb r0, [r0] - cmp r5, r0 - blt _0801BA1C - b _0801BBAA - .align 2, 0 -_0801BA54: .4byte gBattlersCount -_0801BA58: .4byte gBattleMons -_0801BA5C: .4byte gLastUsedAbility -_0801BA60: - ldr r0, _0801BA78 @ =BattleScript_CastformChange - bl BattleScriptPushCursorAndCallback - ldr r0, _0801BA7C @ =gBattleScripting - strb r4, [r0, 0x17] -_0801BA6A: - ldr r0, _0801BA80 @ =gBattleStruct - ldr r0, [r0] - adds r0, 0x7F - mov r1, r9 - subs r1, 0x1 - strb r1, [r0] - b _0801BBAA - .align 2, 0 -_0801BA78: .4byte BattleScript_CastformChange -_0801BA7C: .4byte gBattleScripting -_0801BA80: .4byte gBattleStruct -_0801BA84: - ldr r0, _0801BAA0 @ =BattleScript_CastformChange - bl BattleScriptPushCursorAndCallback - ldr r0, _0801BAA4 @ =gBattleScripting - mov r3, r10 - strb r3, [r0, 0x17] - ldr r0, _0801BAA8 @ =gBattleStruct - ldr r0, [r0] - adds r0, 0x7F - mov r1, r9 - subs r1, 0x1 - strb r1, [r0] - b _0801BBC6 - .align 2, 0 -_0801BAA0: .4byte BattleScript_CastformChange -_0801BAA4: .4byte gBattleScripting -_0801BAA8: .4byte gBattleStruct -_0801BAAC: - mov r4, r8 - strb r1, [r4] - ldr r0, [r2] - ldr r1, _0801BAC0 @ =0xfff7ffff - ands r0, r1 - str r0, [r2] - ldr r0, _0801BAC4 @ =BattleScript_IntimidateActivatesEnd3 - bl BattleScriptPushCursorAndCallback - b _0801BB52 - .align 2, 0 -_0801BAC0: .4byte 0xfff7ffff -_0801BAC4: .4byte BattleScript_IntimidateActivatesEnd3 -_0801BAC8: - ldr r0, _0801BB18 @ =BattleScript_TraceActivates - bl BattleScriptPushCursorAndCallback - ldr r1, _0801BB1C @ =gStatuses3 - ldr r0, [sp, 0x18] - adds r1, r0, r1 - ldr r0, [r1] - ldr r2, _0801BB20 @ =0xffefffff - ands r0, r2 - str r0, [r1] - ldr r0, _0801BB24 @ =gBattleScripting - strb r5, [r0, 0x17] - ldr r1, _0801BB28 @ =gBattleTextBuff1 - movs r4, 0xFD - strb r4, [r1] - movs r0, 0x4 - strb r0, [r1, 0x1] - ldr r2, _0801BB2C @ =gActiveBattler - ldrb r0, [r2] - strb r0, [r1, 0x2] - ldr r3, _0801BB30 @ =gBattlerPartyIndexes - ldrb r0, [r2] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, _0801BB34 @ =gBattleTextBuff2 - strb r4, [r1] - movs r0, 0x9 - strb r0, [r1, 0x1] - ldr r0, _0801BB38 @ =gLastUsedAbility - ldrb r0, [r0] - strb r0, [r1, 0x2] - movs r0, 0x1 - negs r0, r0 - strb r0, [r1, 0x3] - b _0801BBAA - .align 2, 0 -_0801BB18: .4byte BattleScript_TraceActivates -_0801BB1C: .4byte gStatuses3 -_0801BB20: .4byte 0xffefffff -_0801BB24: .4byte gBattleScripting -_0801BB28: .4byte gBattleTextBuff1 -_0801BB2C: .4byte gActiveBattler -_0801BB30: .4byte gBattlerPartyIndexes -_0801BB34: .4byte gBattleTextBuff2 -_0801BB38: .4byte gLastUsedAbility -_0801BB3C: - mov r3, r8 - strb r1, [r3] - ldr r0, [r2] - ldr r1, _0801BB68 @ =0xfff7ffff - ands r0, r1 - str r0, [r2] - bl BattleScriptPushCursor - ldr r1, _0801BB6C @ =gBattlescriptCurrInstr - ldr r0, _0801BB70 @ =BattleScript_IntimidateActivates - str r0, [r1] -_0801BB52: - ldr r0, _0801BB74 @ =gBattleStruct - ldr r0, [r0] - adds r0, 0xD8 - strb r5, [r0] -_0801BB5A: - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - b _0801BBAA - .align 2, 0 -_0801BB68: .4byte 0xfff7ffff -_0801BB6C: .4byte gBattlescriptCurrInstr -_0801BB70: .4byte BattleScript_IntimidateActivates -_0801BB74: .4byte gBattleStruct -_0801BB78: - movs r5, 0 - ldr r0, _0801BBD8 @ =gBattlersCount - ldrb r1, [r0] - cmp r5, r1 - bge _0801BBAA - ldr r0, _0801BBDC @ =gBattleMons - adds r2, r1, 0 - adds r1, r0, 0 - adds r1, 0x20 - ldr r3, _0801BBE0 @ =gLastUsedAbility -_0801BB8C: - ldrb r0, [r1] - cmp r0, r7 - bne _0801BBA2 - cmp r5, r10 - beq _0801BBA2 - strb r7, [r3] - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_0801BBA2: - adds r1, 0x58 - adds r5, 0x1 - cmp r5, r2 - blt _0801BB8C -_0801BBAA: - mov r4, r9 - cmp r4, 0 - beq _0801BBC6 -_0801BBB0: - ldr r0, [sp, 0x4] - cmp r0, 0xB - bhi _0801BBC6 - ldr r1, _0801BBE0 @ =gLastUsedAbility - ldrb r0, [r1] - cmp r0, 0xFF - beq _0801BBC6 - adds r1, r0, 0 - mov r0, r10 - bl sub_80C71D0 -_0801BBC6: - mov r0, r9 - add sp, 0x28 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0801BBD8: .4byte gBattlersCount -_0801BBDC: .4byte gBattleMons -_0801BBE0: .4byte gLastUsedAbility - thumb_func_end AbilityBattleEffects - thumb_func_start BattleScriptExecute BattleScriptExecute: @ 801BBE4 ldr r1, _0801BC10 @ =gBattlescriptCurrInstr @@ -6427,7 +1513,7 @@ _0801C816: cmp r2, 0 beq _0801C82E ldr r0, _0801C8BC @ =gBattleTextBuff1 - ldr r1, _0801C8C0 @ =gUnknown_8250094 + ldr r1, _0801C8C0 @ =gStatusConditionString_PoisonJpn bl StringCopy movs r0, 0x1 mov r10, r0 @@ -6446,7 +1532,7 @@ _0801C82E: ands r0, r1 str r0, [r2] ldr r0, _0801C8BC @ =gBattleTextBuff1 - ldr r1, _0801C8C8 @ =gUnknown_825009C + ldr r1, _0801C8C8 @ =gStatusConditionString_SleepJpn bl StringCopy movs r2, 0x1 add r10, r2 @@ -6457,7 +1543,7 @@ _0801C854: cmp r0, 0 beq _0801C86A ldr r0, _0801C8BC @ =gBattleTextBuff1 - ldr r1, _0801C8CC @ =gUnknown_82500A4 + ldr r1, _0801C8CC @ =gStatusConditionString_ParalysisJpn bl StringCopy movs r3, 0x1 add r10, r3 @@ -6468,7 +1554,7 @@ _0801C86A: cmp r0, 0 beq _0801C880 ldr r0, _0801C8BC @ =gBattleTextBuff1 - ldr r1, _0801C8D0 @ =gUnknown_82500AC + ldr r1, _0801C8D0 @ =gStatusConditionString_BurnJpn bl StringCopy movs r0, 0x1 add r10, r0 @@ -6479,7 +1565,7 @@ _0801C880: cmp r0, 0 beq _0801C896 ldr r0, _0801C8BC @ =gBattleTextBuff1 - ldr r1, _0801C8D4 @ =gUnknown_82500B4 + ldr r1, _0801C8D4 @ =gStatusConditionString_IceJpn bl StringCopy movs r1, 0x1 add r10, r1 @@ -6491,7 +1577,7 @@ _0801C896: cmp r0, 0 beq _0801C8AE ldr r0, _0801C8BC @ =gBattleTextBuff1 - ldr r1, _0801C8D8 @ =gUnknown_82500BC + ldr r1, _0801C8D8 @ =gStatusConditionString_ConfusionJpn bl StringCopy movs r3, 0x1 add r10, r3 @@ -6504,13 +1590,13 @@ _0801C8AE: b _0801C8E4 .align 2, 0 _0801C8BC: .4byte gBattleTextBuff1 -_0801C8C0: .4byte gUnknown_8250094 +_0801C8C0: .4byte gStatusConditionString_PoisonJpn _0801C8C4: .4byte 0xf7ffffff -_0801C8C8: .4byte gUnknown_825009C -_0801C8CC: .4byte gUnknown_82500A4 -_0801C8D0: .4byte gUnknown_82500AC -_0801C8D4: .4byte gUnknown_82500B4 -_0801C8D8: .4byte gUnknown_82500BC +_0801C8C8: .4byte gStatusConditionString_SleepJpn +_0801C8CC: .4byte gStatusConditionString_ParalysisJpn +_0801C8D0: .4byte gStatusConditionString_BurnJpn +_0801C8D4: .4byte gStatusConditionString_IceJpn +_0801C8D8: .4byte gStatusConditionString_ConfusionJpn _0801C8DC: .4byte gBattleCommunication _0801C8E0: ldr r1, _0801C910 @ =gBattleCommunication @@ -6559,7 +1645,7 @@ _0801C91C: ands r2, r0 str r2, [r1] ldr r0, _0801C97C @ =gBattleTextBuff1 - ldr r1, _0801C980 @ =gUnknown_82500C4 + ldr r1, _0801C980 @ =gStatusConditionString_LoveJpn bl StringCopy ldr r0, _0801C984 @ =BattleScript_BerryCureChosenStatusEnd2 bl BattleScriptExecute @@ -6591,7 +1677,7 @@ _0801C95A: .align 2, 0 _0801C978: .4byte 0xfff0ffff _0801C97C: .4byte gBattleTextBuff1 -_0801C980: .4byte gUnknown_82500C4 +_0801C980: .4byte gStatusConditionString_LoveJpn _0801C984: .4byte BattleScript_BerryCureChosenStatusEnd2 _0801C988: .4byte gBattleCommunication _0801C98C: .4byte gBattleScripting @@ -6919,7 +2005,7 @@ _0801CC5C: ands r1, r0 str r1, [r2] ldr r0, _0801CC88 @ =gBattleTextBuff1 - ldr r1, _0801CC8C @ =gUnknown_82500C4 + ldr r1, _0801CC8C @ =gStatusConditionString_LoveJpn bl StringCopy bl BattleScriptPushCursor ldr r1, _0801CC90 @ =gBattleCommunication @@ -6935,7 +2021,7 @@ _0801CC5C: _0801CC80: .4byte gBattleMons _0801CC84: .4byte 0xfff0ffff _0801CC88: .4byte gBattleTextBuff1 -_0801CC8C: .4byte gUnknown_82500C4 +_0801CC8C: .4byte gStatusConditionString_LoveJpn _0801CC90: .4byte gBattleCommunication _0801CC94: .4byte gBattlescriptCurrInstr _0801CC98: .4byte BattleScript_BerryCureChosenStatusRet @@ -6966,7 +2052,7 @@ _0801CCC4: cmp r2, 0 beq _0801CCD4 ldr r0, _0801CD64 @ =gBattleTextBuff1 - ldr r1, _0801CD68 @ =gUnknown_8250094 + ldr r1, _0801CD68 @ =gStatusConditionString_PoisonJpn bl StringCopy _0801CCD4: ldr r0, [r6] @@ -6982,7 +2068,7 @@ _0801CCD4: ands r0, r1 str r0, [r2] ldr r0, _0801CD64 @ =gBattleTextBuff1 - ldr r1, _0801CD70 @ =gUnknown_825009C + ldr r1, _0801CD70 @ =gStatusConditionString_SleepJpn bl StringCopy _0801CCF4: ldr r0, [r6] @@ -6991,7 +2077,7 @@ _0801CCF4: cmp r0, 0 beq _0801CD06 ldr r0, _0801CD64 @ =gBattleTextBuff1 - ldr r1, _0801CD74 @ =gUnknown_82500A4 + ldr r1, _0801CD74 @ =gStatusConditionString_ParalysisJpn bl StringCopy _0801CD06: ldr r0, [r6] @@ -7000,7 +2086,7 @@ _0801CD06: cmp r0, 0 beq _0801CD18 ldr r0, _0801CD64 @ =gBattleTextBuff1 - ldr r1, _0801CD78 @ =gUnknown_82500AC + ldr r1, _0801CD78 @ =gStatusConditionString_BurnJpn bl StringCopy _0801CD18: ldr r0, [r6] @@ -7009,7 +2095,7 @@ _0801CD18: cmp r0, 0 beq _0801CD2A ldr r0, _0801CD64 @ =gBattleTextBuff1 - ldr r1, _0801CD7C @ =gUnknown_82500B4 + ldr r1, _0801CD7C @ =gStatusConditionString_IceJpn bl StringCopy _0801CD2A: adds r5, r4 @@ -7019,7 +2105,7 @@ _0801CD2A: cmp r0, 0 beq _0801CD3E ldr r0, _0801CD64 @ =gBattleTextBuff1 - ldr r1, _0801CD80 @ =gUnknown_82500BC + ldr r1, _0801CD80 @ =gStatusConditionString_ConfusionJpn bl StringCopy _0801CD3E: movs r4, 0 @@ -7042,13 +2128,13 @@ _0801CD58: .align 2, 0 _0801CD60: .4byte gBattleMons _0801CD64: .4byte gBattleTextBuff1 -_0801CD68: .4byte gUnknown_8250094 +_0801CD68: .4byte gStatusConditionString_PoisonJpn _0801CD6C: .4byte 0xf7ffffff -_0801CD70: .4byte gUnknown_825009C -_0801CD74: .4byte gUnknown_82500A4 -_0801CD78: .4byte gUnknown_82500AC -_0801CD7C: .4byte gUnknown_82500B4 -_0801CD80: .4byte gUnknown_82500BC +_0801CD70: .4byte gStatusConditionString_SleepJpn +_0801CD74: .4byte gStatusConditionString_ParalysisJpn +_0801CD78: .4byte gStatusConditionString_BurnJpn +_0801CD7C: .4byte gStatusConditionString_IceJpn +_0801CD80: .4byte gStatusConditionString_ConfusionJpn _0801CD84: .4byte gBattleCommunication _0801CD88: .4byte gBattlescriptCurrInstr _0801CD8C: .4byte BattleScript_BerryCureChosenStatusRet @@ -7597,7 +2683,7 @@ _0801D25E: adds r0, 0x20 ldrb r1, [r0] adds r0, r5, 0 - bl sub_80C71D0 + bl RecordAbilityBattle ldr r1, _0801D2A0 @ =gSpecialStatuses lsls r0, r5, 2 adds r0, r5 |