summaryrefslogtreecommitdiff
path: root/asm/battle_script_commands.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/battle_script_commands.s')
-rw-r--r--asm/battle_script_commands.s4174
1 files changed, 0 insertions, 4174 deletions
diff --git a/asm/battle_script_commands.s b/asm/battle_script_commands.s
index 7a0f29fb8..68bff599e 100644
--- a/asm/battle_script_commands.s
+++ b/asm/battle_script_commands.s
@@ -5,4180 +5,6 @@
.text
- thumb_func_start atk6C_drawlvlupbox
-atk6C_drawlvlupbox: @ 8026208
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08026224 @ =gBattleScripting
- ldrb r1, [r0, 0x1E]
- adds r4, r0, 0
- cmp r1, 0
- bne _0802622C
- bl IsMonGettingExpSentOut
- cmp r0, 0
- beq _08026228
- movs r0, 0x3
- b _0802622A
- .align 2, 0
-_08026224: .4byte gBattleScripting
-_08026228:
- movs r0, 0x1
-_0802622A:
- strb r0, [r4, 0x1E]
-_0802622C:
- ldrb r0, [r4, 0x1E]
- subs r0, 0x1
- cmp r0, 0x9
- bls _08026236
- b _080263F6
-_08026236:
- lsls r0, 2
- ldr r1, _08026240 @ =_08026244
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08026240: .4byte _08026244
- .align 2, 0
-_08026244:
- .4byte _0802626C
- .4byte _08026298
- .4byte _080262B0
- .4byte _08026304
- .4byte _08026318
- .4byte _08026330
- .4byte _08026318
- .4byte _08026350
- .4byte _08026380
- .4byte _080263C4
-_0802626C:
- ldr r1, _08026290 @ =gBattle_BG2_Y
- movs r0, 0x60
- strh r0, [r1]
- movs r0, 0x2
- movs r1, 0x7
- movs r2, 0
- bl SetBgAttribute
- movs r0, 0x2
- bl ShowBg
- bl sub_8026480
- ldr r1, _08026294 @ =gBattleScripting
- movs r0, 0x2
- strb r0, [r1, 0x1E]
- b _080263F6
- .align 2, 0
-_08026290: .4byte gBattle_BG2_Y
-_08026294: .4byte gBattleScripting
-_08026298:
- bl sub_80264D0
- lsls r0, 24
- cmp r0, 0
- beq _080262A4
- b _080263F6
-_080262A4:
- ldr r1, _080262AC @ =gBattleScripting
- movs r0, 0x3
- strb r0, [r1, 0x1E]
- b _080263F6
- .align 2, 0
-_080262AC: .4byte gBattleScripting
-_080262B0:
- ldr r1, _080262F8 @ =gBattle_BG1_X
- movs r0, 0
- strh r0, [r1]
- ldr r1, _080262FC @ =gBattle_BG1_Y
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0x7
- movs r2, 0x1
- bl SetBgAttribute
- movs r0, 0x1
- movs r1, 0x7
- movs r2, 0
- bl SetBgAttribute
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x80
- str r0, [sp]
- movs r0, 0x12
- movs r1, 0x7
- movs r2, 0x1D
- movs r3, 0x13
- bl HandleBattleWindow
- ldr r1, _08026300 @ =gBattleScripting
- movs r0, 0x4
- strb r0, [r1, 0x1E]
- b _080263F6
- .align 2, 0
-_080262F8: .4byte gBattle_BG1_X
-_080262FC: .4byte gBattle_BG1_Y
-_08026300: .4byte gBattleScripting
-_08026304:
- bl DrawLevelUpWindow1
- movs r0, 0xC
- bl PutWindowTilemap
- movs r0, 0xC
- movs r1, 0x3
- bl CopyWindowToVram
- b _0802636E
-_08026318:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080263F6
- ldr r0, _0802632C @ =gBattle_BG1_Y
- strh r1, [r0]
- b _0802636E
- .align 2, 0
-_0802632C: .4byte gBattle_BG1_Y
-_08026330:
- ldr r0, _0802634C @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- beq _080263F6
- movs r0, 0x5
- bl PlaySE
- bl DrawLevelUpWindow2
- movs r0, 0xC
- movs r1, 0x2
- bl CopyWindowToVram
- b _0802636E
- .align 2, 0
-_0802634C: .4byte gMain
-_08026350:
- ldr r0, _08026378 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- beq _080263F6
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x81
- str r0, [sp]
- movs r0, 0x12
- movs r1, 0x7
- movs r2, 0x1D
- movs r3, 0x13
- bl HandleBattleWindow
-_0802636E:
- ldr r1, _0802637C @ =gBattleScripting
- ldrb r0, [r1, 0x1E]
- adds r0, 0x1
- strb r0, [r1, 0x1E]
- b _080263F6
- .align 2, 0
-_08026378: .4byte gMain
-_0802637C: .4byte gBattleScripting
-_08026380:
- bl sub_8026648
- lsls r0, 24
- cmp r0, 0
- bne _080263F6
- movs r0, 0xD
- bl ClearWindowTilemap
- movs r0, 0xD
- movs r1, 0x1
- bl CopyWindowToVram
- movs r0, 0xC
- bl ClearWindowTilemap
- movs r0, 0xC
- movs r1, 0x1
- bl CopyWindowToVram
- movs r0, 0x2
- movs r1, 0x7
- movs r2, 0x2
- bl SetBgAttribute
- movs r0, 0x2
- bl ShowBg
- ldr r1, _080263C0 @ =gBattleScripting
- movs r0, 0xA
- strb r0, [r1, 0x1E]
- b _080263F6
- .align 2, 0
-_080263C0: .4byte gBattleScripting
-_080263C4:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _080263F6
- movs r0, 0
- movs r1, 0x7
- movs r2, 0
- bl SetBgAttribute
- movs r0, 0x1
- movs r1, 0x7
- movs r2, 0x1
- bl SetBgAttribute
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- ldr r1, _08026400 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_080263F6:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08026400: .4byte gBattlescriptCurrInstr
- thumb_func_end atk6C_drawlvlupbox
-
- thumb_func_start DrawLevelUpWindow1
-DrawLevelUpWindow1: @ 8026404
- push {lr}
- sub sp, 0x14
- ldr r0, _0802643C @ =gBattleStruct
- ldr r0, [r0]
- ldrb r1, [r0, 0x10]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08026440 @ =gPlayerParty
- adds r0, r1
- add r1, sp, 0x8
- bl sub_811D130
- ldr r0, _08026444 @ =gBattleResources
- ldr r0, [r0]
- ldr r1, [r0, 0x10]
- movs r0, 0xD
- str r0, [sp]
- movs r0, 0xF
- str r0, [sp, 0x4]
- movs r0, 0xC
- add r2, sp, 0x8
- movs r3, 0xE
- bl sub_811E7F0
- add sp, 0x14
- pop {r0}
- bx r0
- .align 2, 0
-_0802643C: .4byte gBattleStruct
-_08026440: .4byte gPlayerParty
-_08026444: .4byte gBattleResources
- thumb_func_end DrawLevelUpWindow1
-
- thumb_func_start DrawLevelUpWindow2
-DrawLevelUpWindow2: @ 8026448
- push {lr}
- sub sp, 0x10
- ldr r0, _08026478 @ =gBattleStruct
- ldr r0, [r0]
- ldrb r1, [r0, 0x10]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802647C @ =gPlayerParty
- adds r0, r1
- add r1, sp, 0x4
- bl sub_811D130
- movs r0, 0xF
- str r0, [sp]
- movs r0, 0xC
- add r1, sp, 0x4
- movs r2, 0xE
- movs r3, 0xD
- bl sub_811E93C
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_08026478: .4byte gBattleStruct
-_0802647C: .4byte gPlayerParty
- thumb_func_end DrawLevelUpWindow2
-
- thumb_func_start sub_8026480
-sub_8026480: @ 8026480
- push {lr}
- ldr r1, _080264C0 @ =gBattle_BG2_Y
- movs r0, 0
- strh r0, [r1]
- ldr r1, _080264C4 @ =gBattle_BG2_X
- movs r2, 0xD0
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080264C8 @ =gUnknown_82506D0
- movs r1, 0x60
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _080264CC @ =gUnknown_82506F0
- movs r0, 0xD
- movs r2, 0
- movs r3, 0
- bl CopyToWindowPixelBuffer
- movs r0, 0xD
- bl PutWindowTilemap
- movs r0, 0xD
- movs r1, 0x3
- bl CopyWindowToVram
- bl PutMonIconOnLvlUpBox
- pop {r0}
- bx r0
- .align 2, 0
-_080264C0: .4byte gBattle_BG2_Y
-_080264C4: .4byte gBattle_BG2_X
-_080264C8: .4byte gUnknown_82506D0
-_080264CC: .4byte gUnknown_82506F0
- thumb_func_end sub_8026480
-
- thumb_func_start sub_80264D0
-sub_80264D0: @ 80264D0
- push {r4,r5,lr}
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- beq _080264E0
- movs r0, 0x1
- b _0802651A
-_080264E0:
- ldr r4, _080264F0 @ =gBattle_BG2_X
- ldrh r1, [r4]
- movs r5, 0x80
- lsls r5, 2
- cmp r1, r5
- bne _080264F4
- movs r0, 0
- b _0802651A
- .align 2, 0
-_080264F0: .4byte gBattle_BG2_X
-_080264F4:
- movs r0, 0xD0
- lsls r0, 1
- cmp r1, r0
- bne _08026500
- bl PutLevelAndGenderOnLvlUpBox
-_08026500:
- ldrh r0, [r4]
- adds r0, 0x8
- strh r0, [r4]
- lsls r0, 16
- ldr r1, _08026520 @ =0x01ff0000
- cmp r0, r1
- bls _08026510
- strh r5, [r4]
-_08026510:
- ldrh r1, [r4]
- eors r1, r5
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
-_0802651A:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08026520: .4byte 0x01ff0000
- thumb_func_end sub_80264D0
-
- thumb_func_start PutLevelAndGenderOnLvlUpBox
-PutLevelAndGenderOnLvlUpBox: @ 8026524
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- ldr r6, _080265F8 @ =gBattleStruct
- ldr r0, [r6]
- ldrb r0, [r0, 0x10]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _080265FC @ =gPlayerParty
- adds r0, r4
- movs r1, 0x38
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, [r6]
- ldrb r0, [r0, 0x10]
- muls r0, r5
- adds r0, r4
- bl GetMonGender
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, [r6]
- ldrb r0, [r0, 0x10]
- muls r0, r5
- adds r0, r4
- ldr r6, _08026600 @ =gStringVar4
- adds r1, r6, 0
- bl GetMonNickname
- str r6, [sp]
- mov r1, sp
- movs r4, 0
- movs r0, 0xD
- strb r0, [r1, 0x4]
- mov r0, sp
- strb r4, [r0, 0x5]
- movs r5, 0x20
- strb r5, [r0, 0x6]
- strb r4, [r0, 0x7]
- strb r5, [r0, 0x8]
- strb r4, [r0, 0x9]
- strb r4, [r0, 0xA]
- strb r4, [r0, 0xB]
- mov r3, sp
- ldrb r2, [r3, 0xC]
- movs r1, 0x10
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3, 0xC]
- mov r2, sp
- movs r0, 0x10
- strb r0, [r2, 0xC]
- ldrb r0, [r2, 0xD]
- ands r1, r0
- strb r1, [r2, 0xD]
- mov r0, sp
- strb r5, [r0, 0xD]
- movs r1, 0xFF
- movs r2, 0
- bl AddTextPrinter
- movs r0, 0xF9
- strb r0, [r6]
- adds r6, 0x1
- movs r0, 0x5
- strb r0, [r6]
- adds r6, 0x1
- strb r4, [r6]
- adds r6, 0x1
- adds r4, r6, 0
- adds r0, r4, 0
- mov r1, r8
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r6, r0, 0
- movs r1, 0
- movs r2, 0x5
- bl StringFill
- adds r6, r4, 0x4
- cmp r7, 0xFF
- beq _08026624
- cmp r7, 0
- bne _08026604
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0xC
- bl WriteColorChangeControlCode
- adds r6, r0, 0
- movs r1, 0x1
- movs r2, 0xD
- bl WriteColorChangeControlCode
- adds r6, r0, 0
- movs r0, 0xB5
- b _0802661C
- .align 2, 0
-_080265F8: .4byte gBattleStruct
-_080265FC: .4byte gPlayerParty
-_08026600: .4byte gStringVar4
-_08026604:
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0xE
- bl WriteColorChangeControlCode
- adds r6, r0, 0
- movs r1, 0x1
- movs r2, 0xF
- bl WriteColorChangeControlCode
- adds r6, r0, 0
- movs r0, 0xB6
-_0802661C:
- strb r0, [r6]
- adds r6, 0x1
- movs r0, 0xFF
- strb r0, [r6]
-_08026624:
- mov r0, sp
- movs r1, 0xA
- strb r1, [r0, 0x7]
- strb r1, [r0, 0x9]
- movs r1, 0xFF
- movs r2, 0
- bl AddTextPrinter
- movs r0, 0xD
- movs r1, 0x2
- bl CopyWindowToVram
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end PutLevelAndGenderOnLvlUpBox
-
- thumb_func_start sub_8026648
-sub_8026648: @ 8026648
- push {lr}
- ldr r0, _0802665C @ =gBattle_BG2_X
- ldrh r1, [r0]
- movs r3, 0xD0
- lsls r3, 1
- adds r2, r0, 0
- cmp r1, r3
- bne _08026660
- movs r0, 0
- b _08026684
- .align 2, 0
-_0802665C: .4byte gBattle_BG2_X
-_08026660:
- ldrh r0, [r2]
- adds r1, r0, 0
- subs r1, 0x10
- ldr r0, _08026670 @ =0x0000019f
- cmp r1, r0
- bgt _08026674
- strh r3, [r2]
- b _08026676
- .align 2, 0
-_08026670: .4byte 0x0000019f
-_08026674:
- strh r1, [r2]
-_08026676:
- ldrh r1, [r2]
- movs r0, 0xD0
- lsls r0, 1
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
-_08026684:
- pop {r1}
- bx r1
- thumb_func_end sub_8026648
-
- thumb_func_start PutMonIconOnLvlUpBox
-PutMonIconOnLvlUpBox: @ 8026688
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x10
- ldr r0, _08026730 @ =gBattleStruct
- mov r8, r0
- ldr r0, [r0]
- ldrb r0, [r0, 0x10]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _08026734 @ =gPlayerParty
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r1, r8
- ldr r0, [r1]
- ldrb r0, [r0, 0x10]
- muls r0, r6
- adds r0, r5
- movs r1, 0
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x1
- bl GetMonIconPtr
- str r0, [sp]
- ldr r5, _08026738 @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r5
- movs r1, 0x80
- lsls r1, 2
- orrs r0, r1
- ldr r1, _0802673C @ =0x0000ffff
- ands r0, r1
- ldr r1, _08026740 @ =0xd75a0000
- orrs r0, r1
- str r0, [sp, 0x4]
- adds r0, r4, 0
- bl GetValidMonIconPalettePtr
- str r0, [sp, 0x8]
- add r4, sp, 0x8
- ldr r0, [r4, 0x4]
- ands r0, r5
- ldr r1, _08026744 @ =0x0000d75a
- orrs r0, r1
- str r0, [r4, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- adds r0, r4, 0
- bl LoadSpritePalette
- ldr r0, _08026748 @ =sSpriteTemplate_MonIconOnLvlUpBox
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0xA
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0802674C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x2E]
- ldr r0, _08026750 @ =gBattle_BG2_X
- ldrh r0, [r0]
- strh r0, [r1, 0x30]
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08026730: .4byte gBattleStruct
-_08026734: .4byte gPlayerParty
-_08026738: .4byte 0xffff0000
-_0802673C: .4byte 0x0000ffff
-_08026740: .4byte 0xd75a0000
-_08026744: .4byte 0x0000d75a
-_08026748: .4byte sSpriteTemplate_MonIconOnLvlUpBox
-_0802674C: .4byte gSprites
-_08026750: .4byte gBattle_BG2_X
- thumb_func_end PutMonIconOnLvlUpBox
-
- thumb_func_start SpriteCB_MonIconOnLvlUpBox
-SpriteCB_MonIconOnLvlUpBox: @ 8026754
- push {r4,lr}
- adds r2, r0, 0
- ldr r0, _08026770 @ =gBattle_BG2_X
- ldrh r1, [r2, 0x30]
- ldrh r0, [r0]
- subs r1, r0
- strh r1, [r2, 0x24]
- lsls r1, 16
- cmp r1, 0
- beq _08026774
- movs r0, 0x1
- strh r0, [r2, 0x2E]
- b _08026790
- .align 2, 0
-_08026770: .4byte gBattle_BG2_X
-_08026774:
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _08026790
- adds r0, r2, 0
- bl DestroySprite
- ldr r4, _08026798 @ =0x0000d75a
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
-_08026790:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08026798: .4byte 0x0000d75a
- thumb_func_end SpriteCB_MonIconOnLvlUpBox
-
- thumb_func_start IsMonGettingExpSentOut
-IsMonGettingExpSentOut: @ 802679C
- push {lr}
- ldr r3, _080267C4 @ =gBattlerPartyIndexes
- ldr r0, _080267C8 @ =gBattleStruct
- ldr r0, [r0]
- ldrh r1, [r3]
- ldrb r2, [r0, 0x10]
- cmp r1, r2
- beq _080267BE
- ldr r0, _080267CC @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080267D0
- ldrh r0, [r3, 0x4]
- cmp r0, r2
- bne _080267D0
-_080267BE:
- movs r0, 0x1
- b _080267D2
- .align 2, 0
-_080267C4: .4byte gBattlerPartyIndexes
-_080267C8: .4byte gBattleStruct
-_080267CC: .4byte gBattleTypeFlags
-_080267D0:
- movs r0, 0
-_080267D2:
- pop {r1}
- bx r1
- thumb_func_end IsMonGettingExpSentOut
-
- thumb_func_start atk6D_resetsentmonsvalue
-atk6D_resetsentmonsvalue: @ 80267D8
- push {lr}
- bl ResetSentPokesToOpponentValue
- ldr r1, _080267EC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080267EC: .4byte gBattlescriptCurrInstr
- thumb_func_end atk6D_resetsentmonsvalue
-
- thumb_func_start atk6E_setatktoplayer0
-atk6E_setatktoplayer0: @ 80267F0
- push {lr}
- movs r0, 0
- bl GetBattlerAtPosition
- ldr r1, _08026808 @ =gBattlerAttacker
- strb r0, [r1]
- ldr r1, _0802680C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08026808: .4byte gBattlerAttacker
-_0802680C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk6E_setatktoplayer0
-
- thumb_func_start atk6F_makevisible
-atk6F_makevisible: @ 8026810
- push {r4,r5,lr}
- ldr r5, _0802683C @ =gBattlescriptCurrInstr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl GetBattlerForBattleScript
- ldr r4, _08026840 @ =gActiveBattler
- strb r0, [r4]
- movs r0, 0
- movs r1, 0
- bl BtlController_EmitSpriteInvisibility
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802683C: .4byte gBattlescriptCurrInstr
-_08026840: .4byte gActiveBattler
- thumb_func_end atk6F_makevisible
-
- thumb_func_start atk70_recordlastability
-atk70_recordlastability: @ 8026844
- push {r4,lr}
- ldr r4, _0802686C @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl GetBattlerForBattleScript
- ldr r1, _08026870 @ =gActiveBattler
- strb r0, [r1]
- ldrb r0, [r1]
- ldr r1, _08026874 @ =gLastUsedAbility
- ldrb r1, [r1]
- bl RecordAbilityBattle
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802686C: .4byte gBattlescriptCurrInstr
-_08026870: .4byte gActiveBattler
-_08026874: .4byte gLastUsedAbility
- thumb_func_end atk70_recordlastability
-
- thumb_func_start BufferMoveToLearnIntoBattleTextBuff2
-BufferMoveToLearnIntoBattleTextBuff2: @ 8026878
- ldr r2, _08026898 @ =gBattleTextBuff2
- movs r0, 0xFD
- strb r0, [r2]
- movs r0, 0x2
- strb r0, [r2, 0x1]
- ldr r0, _0802689C @ =gMoveToLearn
- ldrh r1, [r0]
- strb r1, [r2, 0x2]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r2, 0x3]
- movs r0, 0xFF
- strb r0, [r2, 0x4]
- bx lr
- .align 2, 0
-_08026898: .4byte gBattleTextBuff2
-_0802689C: .4byte gMoveToLearn
- thumb_func_end BufferMoveToLearnIntoBattleTextBuff2
-
- thumb_func_start atk71_buffermovetolearn
-atk71_buffermovetolearn: @ 80268A0
- push {lr}
- bl BufferMoveToLearnIntoBattleTextBuff2
- ldr r1, _080268B4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080268B4: .4byte gBattlescriptCurrInstr
- thumb_func_end atk71_buffermovetolearn
-
- thumb_func_start atk72_jumpifplayerran
-atk72_jumpifplayerran: @ 80268B8
- push {lr}
- ldr r0, _080268E4 @ =gBattlerFainted
- ldrb r0, [r0]
- bl TryRunFromBattle
- lsls r0, 24
- cmp r0, 0
- beq _080268EC
- ldr r3, _080268E8 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _080268F4
- .align 2, 0
-_080268E4: .4byte gBattlerFainted
-_080268E8: .4byte gBattlescriptCurrInstr
-_080268EC:
- ldr r1, _080268F8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_080268F4:
- pop {r0}
- bx r0
- .align 2, 0
-_080268F8: .4byte gBattlescriptCurrInstr
- thumb_func_end atk72_jumpifplayerran
-
- thumb_func_start atk73_hpthresholds
-atk73_hpthresholds: @ 80268FC
- push {r4-r6,lr}
- ldr r0, _0802694C @ =gBattleTypeFlags
- ldr r4, [r0]
- movs r6, 0x1
- ands r4, r6
- cmp r4, 0
- bne _08026992
- ldr r0, _08026950 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl GetBattlerForBattleScript
- ldr r1, _08026954 @ =gActiveBattler
- strb r0, [r1]
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08026958 @ =gBattleMons
- movs r1, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r5, [r1, 0x28]
- movs r0, 0x64
- muls r0, r5
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- cmp r0, 0
- bne _0802693A
- movs r0, 0x1
-_0802693A:
- cmp r0, 0x45
- bgt _08026942
- cmp r5, 0
- bne _08026960
-_08026942:
- ldr r0, _0802695C @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0xAD
- strb r4, [r0]
- b _08026992
- .align 2, 0
-_0802694C: .4byte gBattleTypeFlags
-_08026950: .4byte gBattlescriptCurrInstr
-_08026954: .4byte gActiveBattler
-_08026958: .4byte gBattleMons
-_0802695C: .4byte gBattleStruct
-_08026960:
- cmp r0, 0x27
- ble _08026974
- ldr r0, _08026970 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0xAD
- strb r6, [r0]
- b _08026992
- .align 2, 0
-_08026970: .4byte gBattleStruct
-_08026974:
- cmp r0, 0x9
- ble _08026988
- ldr r0, _08026984 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0xAD
- movs r1, 0x2
- b _08026990
- .align 2, 0
-_08026984: .4byte gBattleStruct
-_08026988:
- ldr r0, _080269A0 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0xAD
- movs r1, 0x3
-_08026990:
- strb r1, [r0]
-_08026992:
- ldr r1, _080269A4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080269A0: .4byte gBattleStruct
-_080269A4: .4byte gBattlescriptCurrInstr
- thumb_func_end atk73_hpthresholds
-
- thumb_func_start atk74_hpthresholds2
-atk74_hpthresholds2: @ 80269A8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08026A0C @ =gBattleTypeFlags
- ldr r7, [r0]
- movs r0, 0x1
- mov r8, r0
- ands r7, r0
- cmp r7, 0
- bne _08026A42
- ldr r0, _08026A10 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl GetBattlerForBattleScript
- adds r4, r0, 0
- ldr r0, _08026A14 @ =gActiveBattler
- strb r4, [r0]
- movs r0, 0x1
- eors r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- ldr r1, _08026A18 @ =gBattleStruct
- ldr r6, [r1]
- lsrs r0, 23
- adds r0, r6
- adds r0, 0xA8
- ldrb r5, [r0]
- ldr r1, _08026A1C @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r4, [r0, 0x28]
- subs r1, r5, r4
- movs r0, 0x64
- muls r0, r1
- adds r1, r5, 0
- bl __divsi3
- adds r1, r0, 0
- cmp r4, r5
- bcc _08026A20
- adds r0, r6, 0
- adds r0, 0xAD
- strb r7, [r0]
- b _08026A42
- .align 2, 0
-_08026A0C: .4byte gBattleTypeFlags
-_08026A10: .4byte gBattlescriptCurrInstr
-_08026A14: .4byte gActiveBattler
-_08026A18: .4byte gBattleStruct
-_08026A1C: .4byte gBattleMons
-_08026A20:
- cmp r0, 0x1D
- bgt _08026A2E
- adds r0, r6, 0
- adds r0, 0xAD
- mov r1, r8
- strb r1, [r0]
- b _08026A42
-_08026A2E:
- cmp r1, 0x45
- bgt _08026A3A
- adds r1, r6, 0
- adds r1, 0xAD
- movs r0, 0x2
- b _08026A40
-_08026A3A:
- adds r1, r6, 0
- adds r1, 0xAD
- movs r0, 0x3
-_08026A40:
- strb r0, [r1]
-_08026A42:
- ldr r1, _08026A54 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08026A54: .4byte gBattlescriptCurrInstr
- thumb_func_end atk74_hpthresholds2
-
- thumb_func_start atk75_useitemonopponent
-atk75_useitemonopponent: @ 8026A58
- push {lr}
- sub sp, 0x4
- ldr r2, _08026A98 @ =gBattlerInMenuId
- ldr r1, _08026A9C @ =gBattlerAttacker
- ldrb r0, [r1]
- strb r0, [r2]
- ldr r2, _08026AA0 @ =gBattlerPartyIndexes
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r1, _08026AA4 @ =gEnemyParty
- adds r0, r1
- ldr r1, _08026AA8 @ =gLastUsedItem
- ldrh r1, [r1]
- lsls r2, 24
- lsrs r2, 24
- movs r3, 0x1
- str r3, [sp]
- movs r3, 0
- bl PokemonUseItemEffects
- ldr r1, _08026AAC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08026A98: .4byte gBattlerInMenuId
-_08026A9C: .4byte gBattlerAttacker
-_08026AA0: .4byte gBattlerPartyIndexes
-_08026AA4: .4byte gEnemyParty
-_08026AA8: .4byte gLastUsedItem
-_08026AAC: .4byte gBattlescriptCurrInstr
- thumb_func_end atk75_useitemonopponent
-
- thumb_func_start atk76_various
-atk76_various: @ 8026AB0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- ldr r4, _08026ADC @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl GetBattlerForBattleScript
- ldr r1, _08026AE0 @ =gActiveBattler
- strb r0, [r1]
- ldr r0, [r4]
- ldrb r0, [r0, 0x2]
- cmp r0, 0xC
- bls _08026AD2
- b _08026F4E
-_08026AD2:
- lsls r0, 2
- ldr r1, _08026AE4 @ =_08026AE8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08026ADC: .4byte gBattlescriptCurrInstr
-_08026AE0: .4byte gActiveBattler
-_08026AE4: .4byte _08026AE8
- .align 2, 0
-_08026AE8:
- .4byte _08026B1C
- .4byte _08026B2C
- .4byte _08026B8C
- .4byte _08026B9C
- .4byte _08026BB4
- .4byte _08026BF0
- .4byte _08026C28
- .4byte _08026CB4
- .4byte _08026CF4
- .4byte _08026D50
- .4byte _08026D64
- .4byte _08026DA0
- .4byte _08026F44
-_08026B1C:
- ldr r0, _08026B28 @ =gActiveBattler
- ldrb r0, [r0]
- bl CancelMultiTurnMoves
- b _08026F4E
- .align 2, 0
-_08026B28: .4byte gActiveBattler
-_08026B2C:
- ldr r1, _08026B68 @ =gBattlerAttacker
- ldr r4, _08026B6C @ =gBattlerTarget
- ldrb r0, [r4]
- strb r0, [r1]
- ldrb r0, [r1]
- bl GetBattlerSide
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08026B70 @ =gSideTimers
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r2, r1, r2
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _08026B78
- ldr r1, _08026B74 @ =gBattleMons
- ldrb r2, [r2, 0x9]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08026B78
- strb r2, [r4]
- b _08026F4E
- .align 2, 0
-_08026B68: .4byte gBattlerAttacker
-_08026B6C: .4byte gBattlerTarget
-_08026B70: .4byte gSideTimers
-_08026B74: .4byte gBattleMons
-_08026B78:
- ldr r0, _08026B84 @ =gBattlerTarget
- ldr r1, _08026B88 @ =gActiveBattler
- ldrb r1, [r1]
- strb r1, [r0]
- b _08026F4E
- .align 2, 0
-_08026B84: .4byte gBattlerTarget
-_08026B88: .4byte gActiveBattler
-_08026B8C:
- bl IsRunningFromBattleImpossible
- ldr r1, _08026B98 @ =gBattleCommunication
- strb r0, [r1]
- b _08026F4E
- .align 2, 0
-_08026B98: .4byte gBattleCommunication
-_08026B9C:
- ldr r0, _08026BAC @ =gCurrentMove
- ldrh r0, [r0]
- movs r1, 0
- bl GetMoveTarget
- ldr r1, _08026BB0 @ =gBattlerTarget
- strb r0, [r1]
- b _08026F4E
- .align 2, 0
-_08026BAC: .4byte gCurrentMove
-_08026BB0: .4byte gBattlerTarget
-_08026BB4:
- ldr r2, _08026BD4 @ =gHitMarker
- ldr r1, _08026BD8 @ =gBitTable
- ldr r0, _08026BDC @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r0, 28
- ldr r2, [r2]
- ands r2, r0
- cmp r2, 0
- beq _08026BE4
- ldr r1, _08026BE0 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1]
- b _08026F4E
- .align 2, 0
-_08026BD4: .4byte gHitMarker
-_08026BD8: .4byte gBitTable
-_08026BDC: .4byte gActiveBattler
-_08026BE0: .4byte gBattleCommunication
-_08026BE4:
- ldr r0, _08026BEC @ =gBattleCommunication
- strb r2, [r0]
- b _08026F4E
- .align 2, 0
-_08026BEC: .4byte gBattleCommunication
-_08026BF0:
- ldr r4, _08026C20 @ =gSpecialStatuses
- ldr r3, _08026C24 @ =gActiveBattler
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- b _08026F4E
- .align 2, 0
-_08026C20: .4byte gSpecialStatuses
-_08026C24: .4byte gActiveBattler
-_08026C28:
- ldr r4, _08026C4C @ =gBattlerPartyIndexes
- ldr r1, _08026C50 @ =gBattleStruct
- ldr r0, [r1]
- ldrh r3, [r4]
- ldrb r2, [r0, 0x10]
- adds r5, r1, 0
- cmp r3, r2
- beq _08026C44
- ldrh r0, [r4, 0x4]
- cmp r0, r2
- beq _08026C40
- b _08026F4E
-_08026C40:
- cmp r3, r0
- bne _08026C58
-_08026C44:
- ldr r1, _08026C54 @ =gActiveBattler
- movs r0, 0
- b _08026C5C
- .align 2, 0
-_08026C4C: .4byte gBattlerPartyIndexes
-_08026C50: .4byte gBattleStruct
-_08026C54: .4byte gActiveBattler
-_08026C58:
- ldr r1, _08026CAC @ =gActiveBattler
- movs r0, 0x2
-_08026C5C:
- strb r0, [r1]
- mov r8, r1
- mov r0, r8
- ldrb r2, [r0]
- lsls r0, r2, 1
- adds r0, 0xC8
- ldr r1, [r5]
- adds r3, r1, r0
- movs r7, 0
- ldr r1, _08026CB0 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
- ldrh r2, [r3]
- cmp r0, r2
- beq _08026C9E
- mov r5, r8
- movs r4, 0x58
- adds r2, r1, 0
-_08026C86:
- adds r7, 0x1
- cmp r7, 0x3
- bgt _08026C9E
- lsls r1, r7, 1
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0
- adds r1, r2
- ldrh r0, [r1]
- ldrh r1, [r3]
- cmp r0, r1
- bne _08026C86
-_08026C9E:
- cmp r7, 0x4
- beq _08026CA4
- b _08026F4E
-_08026CA4:
- movs r0, 0
- strh r0, [r3]
- b _08026F4E
- .align 2, 0
-_08026CAC: .4byte gActiveBattler
-_08026CB0: .4byte gBattleMons
-_08026CB4:
- ldr r0, _08026CE4 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0xB
- ands r0, r1
- cmp r0, 0x8
- beq _08026CC2
- b _08026F4E
-_08026CC2:
- ldr r1, _08026CE8 @ =gBattleMons
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- bne _08026CCC
- b _08026F4E
-_08026CCC:
- adds r0, r1, 0
- adds r0, 0x80
- ldrh r0, [r0]
- cmp r0, 0
- bne _08026CD8
- b _08026F4E
-_08026CD8:
- ldr r0, _08026CEC @ =gHitMarker
- ldr r1, [r0]
- ldr r2, _08026CF0 @ =0xffbfffff
- ands r1, r2
- str r1, [r0]
- b _08026F4E
- .align 2, 0
-_08026CE4: .4byte gBattleTypeFlags
-_08026CE8: .4byte gBattleMons
-_08026CEC: .4byte gHitMarker
-_08026CF0: .4byte 0xffbfffff
-_08026CF4:
- movs r7, 0
- ldr r2, _08026D3C @ =gBattleCommunication
- strb r7, [r2, 0x5]
- ldr r1, _08026D40 @ =gActiveBattler
- movs r0, 0x1
- strb r0, [r1]
- mov r8, r1
- ldr r0, _08026D44 @ =gBattlersCount
- mov r4, r8
- ldrb r5, [r0]
- ldr r6, _08026D48 @ =gBattleMons
- ldr r3, _08026D4C @ =gBitTable
-_08026D0C:
- ldrb r0, [r4]
- cmp r0, r5
- bcs _08026D2A
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08026D2A
- ldr r0, [r3]
- ldrb r1, [r2, 0x5]
- orrs r0, r1
- strb r0, [r2, 0x5]
-_08026D2A:
- adds r3, 0x4
- ldrb r0, [r4]
- adds r0, 0x2
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _08026D0C
- b _08026F4E
- .align 2, 0
-_08026D3C: .4byte gBattleCommunication
-_08026D40: .4byte gActiveBattler
-_08026D44: .4byte gBattlersCount
-_08026D48: .4byte gBattleMons
-_08026D4C: .4byte gBitTable
-_08026D50:
- ldr r4, _08026D5C @ =gActiveBattler
- movs r0, 0x1
- strb r0, [r4]
- ldr r0, _08026D60 @ =gBattleMons
- adds r0, 0x58
- b _08026D7C
- .align 2, 0
-_08026D5C: .4byte gActiveBattler
-_08026D60: .4byte gBattleMons
-_08026D64:
- ldr r0, _08026D94 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r0, 0x3
- bhi _08026D6E
- b _08026F4E
-_08026D6E:
- ldr r4, _08026D98 @ =gActiveBattler
- movs r0, 0x3
- strb r0, [r4]
- ldr r0, _08026D9C @ =gBattleMons
- movs r1, 0x84
- lsls r1, 1
- adds r0, r1
-_08026D7C:
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08026D84
- b _08026F4E
-_08026D84:
- movs r0, 0
- movs r1, 0
- bl BtlController_EmitReturnMonToBall
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- b _08026F4E
- .align 2, 0
-_08026D94: .4byte gBattlersCount
-_08026D98: .4byte gActiveBattler
-_08026D9C: .4byte gBattleMons
-_08026DA0:
- ldr r0, _08026F28 @ =gBattleCommunication
- movs r1, 0
- strb r1, [r0, 0x5]
- mov r8, r1
- movs r7, 0
- ldr r0, _08026F2C @ =gBattlersCount
- mov r12, r0
- ldrb r2, [r0]
- cmp r8, r2
- bge _08026DEE
- ldr r4, _08026F30 @ =gBattleMons
- adds r3, r4, 0
- adds r3, 0x50
- adds r6, r4, 0
- adds r6, 0x20
- movs r5, 0
-_08026DC0:
- ldrb r0, [r6]
- cmp r0, 0x2B
- beq _08026DDE
- adds r2, r4, 0
- adds r2, 0x4C
- adds r2, r5, r2
- ldr r0, [r2]
- movs r1, 0x8
- negs r1, r1
- ands r0, r1
- str r0, [r2]
- ldr r0, [r3]
- ldr r1, _08026F34 @ =0xf7ffffff
- ands r0, r1
- str r0, [r3]
-_08026DDE:
- adds r3, 0x58
- adds r6, 0x58
- adds r5, 0x58
- adds r7, 0x1
- mov r0, r12
- ldrb r0, [r0]
- cmp r7, r0
- blt _08026DC0
-_08026DEE:
- movs r7, 0
- movs r1, 0xCE
- lsls r1, 1
- mov r9, r1
-_08026DF6:
- movs r0, 0x64
- adds r4, r7, 0
- muls r4, r0
- ldr r0, _08026F38 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- adds r1, r0, 0
- str r1, [sp, 0x4]
- cmp r5, 0
- beq _08026E4E
- cmp r5, r9
- beq _08026E4E
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _08026E4E
- adds r0, r5, 0
- adds r1, r6, 0
- bl GetAbilityBySpecies
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2B
- beq _08026E4E
- movs r0, 0x1
- lsls r0, r7
- mov r2, r8
- orrs r2, r0
- mov r8, r2
-_08026E4E:
- adds r7, 0x1
- cmp r7, 0x5
- ble _08026DF6
- mov r0, r8
- cmp r0, 0
- beq _08026E88
- movs r0, 0
- bl GetBattlerAtPosition
- ldr r4, _08026F3C @ =gActiveBattler
- strb r0, [r4]
- movs r0, 0
- str r0, [sp, 0x4]
- mov r1, r8
- lsls r2, r1, 24
- lsrs r2, 24
- add r0, sp, 0x4
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r3, 0x4
- bl BtlController_EmitSetMonData
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- ldr r1, _08026F28 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_08026E88:
- movs r1, 0
- mov r8, r1
- movs r7, 0
- movs r2, 0xCE
- lsls r2, 1
- mov r9, r2
-_08026E94:
- movs r0, 0x64
- adds r4, r7, 0
- muls r4, r0
- ldr r0, _08026F40 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- adds r1, r0, 0
- str r1, [sp, 0x4]
- cmp r5, 0
- beq _08026EEC
- cmp r5, r9
- beq _08026EEC
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _08026EEC
- adds r0, r5, 0
- adds r1, r6, 0
- bl GetAbilityBySpecies
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2B
- beq _08026EEC
- movs r0, 0x1
- lsls r0, r7
- mov r1, r8
- orrs r1, r0
- mov r8, r1
-_08026EEC:
- adds r7, 0x1
- cmp r7, 0x5
- ble _08026E94
- mov r2, r8
- cmp r2, 0
- beq _08026F4E
- movs r0, 0x1
- bl GetBattlerAtPosition
- ldr r4, _08026F3C @ =gActiveBattler
- strb r0, [r4]
- movs r0, 0
- str r0, [sp, 0x4]
- mov r0, r8
- lsls r2, r0, 24
- lsrs r2, 24
- add r1, sp, 0x4
- str r1, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r3, 0x4
- bl BtlController_EmitSetMonData
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- ldr r1, _08026F28 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08026F4E
- .align 2, 0
-_08026F28: .4byte gBattleCommunication
-_08026F2C: .4byte gBattlersCount
-_08026F30: .4byte gBattleMons
-_08026F34: .4byte 0xf7ffffff
-_08026F38: .4byte gPlayerParty
-_08026F3C: .4byte gActiveBattler
-_08026F40: .4byte gEnemyParty
-_08026F44:
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _08026F56
-_08026F4E:
- ldr r1, _08026F64 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x3
- str r0, [r1]
-_08026F56:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08026F64: .4byte gBattlescriptCurrInstr
- thumb_func_end atk76_various
-
- thumb_func_start atk77_setprotectlike
-atk77_setprotectlike: @ 8026F68
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0x1
- ldr r2, _08027034 @ =gLastResultingMoves
- ldr r1, _08027038 @ =gBattlerAttacker
- ldrb r3, [r1]
- lsls r0, r3, 1
- adds r0, r2
- ldrh r0, [r0]
- mov r8, r1
- ldr r7, _0802703C @ =gDisableStructs
- cmp r0, 0xB6
- beq _08026F98
- cmp r0, 0xC5
- beq _08026F98
- cmp r0, 0xCB
- beq _08026F98
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r7
- movs r1, 0
- strb r1, [r0, 0x8]
-_08026F98:
- ldr r0, _08027040 @ =gCurrentTurnActionNumber
- ldrb r1, [r0]
- ldr r0, _08027044 @ =gBattlersCount
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bne _08026FA8
- movs r6, 0
-_08026FA8:
- ldr r2, _08027048 @ =sProtectSuccessRates
- mov r5, r8
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r4, [r0, 0x8]
- lsls r4, 1
- adds r4, r2
- bl Random
- ldrh r1, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bcc _0802705C
- cmp r6, 0
- beq _0802705C
- ldr r4, _0802704C @ =gBattleMoves
- ldr r3, _08027050 @ =gCurrentMove
- ldrh r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- cmp r0, 0x6F
- bne _08026FF8
- ldr r0, _08027054 @ =gProtectStructs
- ldrb r1, [r5]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x1
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _08027058 @ =gBattleCommunication
- movs r0, 0
- strb r0, [r1, 0x5]
-_08026FF8:
- ldrh r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- cmp r0, 0x74
- bne _0802701E
- ldr r0, _08027054 @ =gProtectStructs
- ldrb r1, [r5]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _08027058 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_0802701E:
- mov r1, r8
- ldrb r0, [r1]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r0, [r1, 0x8]
- adds r0, 0x1
- strb r0, [r1, 0x8]
- b _0802707E
- .align 2, 0
-_08027034: .4byte gLastResultingMoves
-_08027038: .4byte gBattlerAttacker
-_0802703C: .4byte gDisableStructs
-_08027040: .4byte gCurrentTurnActionNumber
-_08027044: .4byte gBattlersCount
-_08027048: .4byte sProtectSuccessRates
-_0802704C: .4byte gBattleMoves
-_08027050: .4byte gCurrentMove
-_08027054: .4byte gProtectStructs
-_08027058: .4byte gBattleCommunication
-_0802705C:
- ldr r2, _08027090 @ =gDisableStructs
- ldr r0, _08027094 @ =gBattlerAttacker
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x8]
- ldr r1, _08027098 @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- ldr r2, _0802709C @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_0802707E:
- ldr r1, _080270A0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08027090: .4byte gDisableStructs
-_08027094: .4byte gBattlerAttacker
-_08027098: .4byte gBattleCommunication
-_0802709C: .4byte gMoveResultFlags
-_080270A0: .4byte gBattlescriptCurrInstr
- thumb_func_end atk77_setprotectlike
-
- thumb_func_start atk78_faintifabilitynotdamp
-atk78_faintifabilitynotdamp: @ 80270A4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08027160 @ =gBattleControllerExecFlags
- ldr r2, [r0]
- cmp r2, 0
- bne _080271A8
- ldr r1, _08027164 @ =gBattlerTarget
- strb r2, [r1]
- ldr r0, _08027168 @ =gBattlersCount
- ldrb r3, [r0]
- adds r5, r1, 0
- mov r8, r0
- ldr r6, _0802716C @ =gBattleMons
- cmp r2, r3
- bcs _080270F0
- adds r0, r6, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x6
- beq _080270F0
- adds r2, r3, 0
- adds r4, r6, 0
- movs r3, 0x58
-_080270D4:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r2
- bcs _080270F0
- ldrb r0, [r5]
- muls r0, r3
- adds r0, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _080270D4
-_080270F0:
- ldrb r0, [r5]
- mov r1, r8
- ldrb r1, [r1]
- cmp r0, r1
- bne _0802718C
- ldr r4, _08027170 @ =gActiveBattler
- ldr r7, _08027174 @ =gBattlerAttacker
- ldrb r0, [r7]
- strb r0, [r4]
- ldr r2, _08027178 @ =gBattleMoveDamage
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r6
- ldrh r0, [r0, 0x28]
- str r0, [r2]
- ldr r1, _0802717C @ =0x00007fff
- movs r0, 0
- bl BtlController_EmitHealthBarUpdate
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- ldr r1, _08027180 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- movs r0, 0
- strb r0, [r5]
- mov r2, r8
- ldrb r0, [r2]
- cmp r0, 0
- beq _080271A8
- adds r3, r5, 0
- ldrb r5, [r7]
- ldr r7, _08027184 @ =gBitTable
- adds r4, r0, 0
- ldr r6, _08027188 @ =gAbsentBattlerFlags
-_0802713C:
- ldrb r2, [r3]
- cmp r2, r5
- beq _08027152
- ldrb r0, [r6]
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r7
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- beq _080271A8
-_08027152:
- adds r0, r2, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r4
- bcc _0802713C
- b _080271A8
- .align 2, 0
-_08027160: .4byte gBattleControllerExecFlags
-_08027164: .4byte gBattlerTarget
-_08027168: .4byte gBattlersCount
-_0802716C: .4byte gBattleMons
-_08027170: .4byte gActiveBattler
-_08027174: .4byte gBattlerAttacker
-_08027178: .4byte gBattleMoveDamage
-_0802717C: .4byte 0x00007fff
-_08027180: .4byte gBattlescriptCurrInstr
-_08027184: .4byte gBitTable
-_08027188: .4byte gAbsentBattlerFlags
-_0802718C:
- ldr r1, _080271B4 @ =gLastUsedAbility
- movs r0, 0x6
- strb r0, [r1]
- ldrb r0, [r5]
- movs r1, 0x58
- muls r1, r0
- adds r1, r6
- adds r1, 0x20
- ldrb r1, [r1]
- bl RecordAbilityBattle
- ldr r1, _080271B8 @ =gBattlescriptCurrInstr
- ldr r0, _080271BC @ =BattleScript_DampStopsExplosion
- str r0, [r1]
-_080271A8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080271B4: .4byte gLastUsedAbility
-_080271B8: .4byte gBattlescriptCurrInstr
-_080271BC: .4byte BattleScript_DampStopsExplosion
- thumb_func_end atk78_faintifabilitynotdamp
-
- thumb_func_start atk79_setatkhptozero
-atk79_setatkhptozero: @ 80271C0
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _0802720C @ =gBattleControllerExecFlags
- ldr r3, [r0]
- cmp r3, 0
- bne _08027204
- ldr r4, _08027210 @ =gActiveBattler
- ldr r0, _08027214 @ =gBattlerAttacker
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r1, _08027218 @ =gBattleMons
- ldrb r0, [r4]
- movs r2, 0x58
- muls r0, r2
- adds r0, r1
- strh r3, [r0, 0x28]
- ldrb r0, [r4]
- muls r0, r2
- adds r1, 0x28
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2A
- movs r2, 0
- movs r3, 0x2
- bl BtlController_EmitSetMonData
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- ldr r1, _0802721C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_08027204:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802720C: .4byte gBattleControllerExecFlags
-_08027210: .4byte gActiveBattler
-_08027214: .4byte gBattlerAttacker
-_08027218: .4byte gBattleMons
-_0802721C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk79_setatkhptozero
-
- thumb_func_start atk7A_jumpifnexttargetvalid
-atk7A_jumpifnexttargetvalid: @ 8027220
- push {r4-r7,lr}
- ldr r3, _08027298 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r4, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r4, r0
- ldr r0, _0802729C @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- adds r7, r3, 0
- cmp r0, 0
- beq _080272B8
- ldr r0, _080272A0 @ =gBattlerTarget
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r2, _080272A4 @ =gBattlerAttacker
- lsls r1, 24
- lsrs r1, 24
- adds r3, r0, 0
- ldr r6, _080272A8 @ =gAbsentBattlerFlags
- ldr r5, _080272AC @ =gBitTable
- ldr r0, _080272B0 @ =gBattlersCount
- mov r12, r0
- ldrb r0, [r2]
- cmp r1, r0
- bne _08027276
-_08027266:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r2]
- cmp r0, r1
- beq _08027266
-_08027276:
- ldrb r0, [r6]
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r5
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _08027266
- ldrb r0, [r3]
- mov r2, r12
- ldrb r2, [r2]
- cmp r0, r2
- bcc _080272B4
- ldr r0, [r7]
- adds r0, 0x5
- str r0, [r7]
- b _080272BC
- .align 2, 0
-_08027298: .4byte gBattlescriptCurrInstr
-_0802729C: .4byte gBattleTypeFlags
-_080272A0: .4byte gBattlerTarget
-_080272A4: .4byte gBattlerAttacker
-_080272A8: .4byte gAbsentBattlerFlags
-_080272AC: .4byte gBitTable
-_080272B0: .4byte gBattlersCount
-_080272B4:
- str r4, [r7]
- b _080272BC
-_080272B8:
- adds r0, r2, 0x5
- str r0, [r3]
-_080272BC:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk7A_jumpifnexttargetvalid
-
- thumb_func_start atk7B_tryhealhalfhealth
-atk7B_tryhealhalfhealth: @ 80272C4
- push {r4-r6,lr}
- ldr r4, _08027320 @ =gBattlescriptCurrInstr
- ldr r1, [r4]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r2, r0
- ldrb r0, [r1, 0x5]
- ldr r3, _08027324 @ =gBattlerTarget
- cmp r0, 0x1
- bne _080272EC
- ldr r0, _08027328 @ =gBattlerAttacker
- ldrb r0, [r0]
- strb r0, [r3]
-_080272EC:
- ldr r1, _0802732C @ =gBattleMoveDamage
- ldr r6, _08027330 @ =gBattleMons
- ldrb r0, [r3]
- movs r5, 0x58
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r1]
- cmp r0, 0
- bne _08027306
- movs r0, 0x1
- str r0, [r1]
-_08027306:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- ldrb r0, [r3]
- muls r0, r5
- adds r0, r6
- ldrh r1, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- cmp r1, r0
- bne _08027334
- str r2, [r4]
- b _0802733A
- .align 2, 0
-_08027320: .4byte gBattlescriptCurrInstr
-_08027324: .4byte gBattlerTarget
-_08027328: .4byte gBattlerAttacker
-_0802732C: .4byte gBattleMoveDamage
-_08027330: .4byte gBattleMons
-_08027334:
- ldr r0, [r4]
- adds r0, 0x6
- str r0, [r4]
-_0802733A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk7B_tryhealhalfhealth
-
- thumb_func_start atk7C_trymirrormove
-atk7C_trymirrormove: @ 8027340
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r2, _080273E0 @ =gBattlersCount
- ldr r0, _080273E4 @ =gBattleStruct
- mov r10, r0
- movs r1, 0
- add r0, sp, 0x4
-_08027356:
- strh r1, [r0]
- subs r0, 0x2
- cmp r0, sp
- bge _08027356
- movs r1, 0
- mov r8, r1
- movs r5, 0
- ldrb r1, [r2]
- cmp r5, r1
- bge _080273AC
- ldr r0, _080273E8 @ =gBattlerAttacker
- ldrb r6, [r0]
- ldr r2, _080273EC @ =0x0000ffff
- mov r9, r2
- lsls r4, r6, 3
- mov r2, sp
- ldr r0, _080273E4 @ =gBattleStruct
- mov r12, r0
- adds r7, r1, 0
-_0802737C:
- cmp r5, r6
- beq _080273A4
- mov r1, r12
- ldr r0, [r1]
- adds r0, r4, r0
- adds r1, r0, 0
- adds r1, 0xE0
- ldrb r3, [r1]
- adds r0, 0xE1
- ldrb r0, [r0]
- lsls r0, 8
- orrs r3, r0
- cmp r3, 0
- beq _080273A4
- cmp r3, r9
- beq _080273A4
- strh r3, [r2]
- adds r2, 0x2
- movs r0, 0x1
- add r8, r0
-_080273A4:
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, r7
- blt _0802737C
-_080273AC:
- ldr r1, _080273E8 @ =gBattlerAttacker
- ldrb r0, [r1]
- mov r2, r10
- ldr r1, [r2]
- lsls r0, 1
- adds r0, r1
- adds r1, r0, 0
- adds r1, 0x98
- ldrb r3, [r1]
- adds r0, 0x99
- ldrb r0, [r0]
- lsls r0, 8
- orrs r3, r0
- cmp r3, 0
- beq _080273FC
- ldr r0, _080273EC @ =0x0000ffff
- cmp r3, r0
- beq _080273FC
- ldr r2, _080273F0 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _080273F4 @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _080273F8 @ =gCurrentMove
- strh r3, [r4]
- b _08027426
- .align 2, 0
-_080273E0: .4byte gBattlersCount
-_080273E4: .4byte gBattleStruct
-_080273E8: .4byte gBattlerAttacker
-_080273EC: .4byte 0x0000ffff
-_080273F0: .4byte gHitMarker
-_080273F4: .4byte 0xfffffbff
-_080273F8: .4byte gCurrentMove
-_080273FC:
- mov r0, r8
- cmp r0, 0
- beq _0802746C
- ldr r2, _08027450 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _08027454 @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- mov r1, r8
- bl __modsi3
- adds r5, r0, 0
- ldr r4, _08027458 @ =gCurrentMove
- lsls r0, r5, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r4]
-_08027426:
- ldrh r0, [r4]
- movs r1, 0
- bl GetMoveTarget
- ldr r1, _0802745C @ =gBattlerTarget
- strb r0, [r1]
- ldr r5, _08027460 @ =gBattlescriptCurrInstr
- ldr r3, _08027464 @ =gBattleScriptsForMoveEffects
- ldr r2, _08027468 @ =gBattleMoves
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- str r0, [r5]
- b _0802748A
- .align 2, 0
-_08027450: .4byte gHitMarker
-_08027454: .4byte 0xfffffbff
-_08027458: .4byte gCurrentMove
-_0802745C: .4byte gBattlerTarget
-_08027460: .4byte gBattlescriptCurrInstr
-_08027464: .4byte gBattleScriptsForMoveEffects
-_08027468: .4byte gBattleMoves
-_0802746C:
- ldr r2, _0802749C @ =gSpecialStatuses
- ldr r0, _080274A0 @ =gBattlerAttacker
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r1, _080274A4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0802748A:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802749C: .4byte gSpecialStatuses
-_080274A0: .4byte gBattlerAttacker
-_080274A4: .4byte gBattlescriptCurrInstr
- thumb_func_end atk7C_trymirrormove
-
- thumb_func_start atk7D_setrain
-atk7D_setrain: @ 80274A8
- push {lr}
- ldr r2, _080274C8 @ =gBattleWeather
- ldrh r0, [r2]
- movs r1, 0x7
- ands r1, r0
- cmp r1, 0
- beq _080274D4
- ldr r2, _080274CC @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080274D0 @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _080274E4
- .align 2, 0
-_080274C8: .4byte gBattleWeather
-_080274CC: .4byte gMoveResultFlags
-_080274D0: .4byte gBattleCommunication
-_080274D4:
- movs r0, 0x1
- strh r0, [r2]
- ldr r0, _080274F0 @ =gBattleCommunication
- strb r1, [r0, 0x5]
- ldr r0, _080274F4 @ =gWishFutureKnock
- adds r0, 0x28
- movs r1, 0x5
- strb r1, [r0]
-_080274E4:
- ldr r1, _080274F8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080274F0: .4byte gBattleCommunication
-_080274F4: .4byte gWishFutureKnock
-_080274F8: .4byte gBattlescriptCurrInstr
- thumb_func_end atk7D_setrain
-
- thumb_func_start atk7E_setreflect
-atk7E_setreflect: @ 80274FC
- push {r4-r6,lr}
- ldr r6, _0802752C @ =gBattlerAttacker
- ldrb r0, [r6]
- bl GetBattlerPosition
- ldr r4, _08027530 @ =gSideStatuses
- movs r5, 0x1
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r1, [r1]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _0802753C
- ldr r2, _08027534 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08027538 @ =gBattleCommunication
- movs r0, 0
- b _080275B0
- .align 2, 0
-_0802752C: .4byte gBattlerAttacker
-_08027530: .4byte gSideStatuses
-_08027534: .4byte gMoveResultFlags
-_08027538: .4byte gBattleCommunication
-_0802753C:
- ldrb r0, [r6]
- bl GetBattlerPosition
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r0, [r1]
- movs r2, 0x1
- orrs r0, r2
- strh r0, [r1]
- ldrb r0, [r6]
- bl GetBattlerPosition
- ldr r4, _080275A0 @ =gSideTimers
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x5
- strb r1, [r0]
- ldrb r0, [r6]
- bl GetBattlerPosition
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r6]
- strb r1, [r0, 0x1]
- ldr r0, _080275A4 @ =gBattleTypeFlags
- ldr r0, [r0]
- ands r0, r5
- cmp r0, 0
- beq _080275AC
- movs r0, 0x1
- bl CountAliveMonsInBattle
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bne _080275AC
- ldr r0, _080275A8 @ =gBattleCommunication
- strb r1, [r0, 0x5]
- b _080275B2
- .align 2, 0
-_080275A0: .4byte gSideTimers
-_080275A4: .4byte gBattleTypeFlags
-_080275A8: .4byte gBattleCommunication
-_080275AC:
- ldr r1, _080275C0 @ =gBattleCommunication
- movs r0, 0x1
-_080275B0:
- strb r0, [r1, 0x5]
-_080275B2:
- ldr r1, _080275C4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080275C0: .4byte gBattleCommunication
-_080275C4: .4byte gBattlescriptCurrInstr
- thumb_func_end atk7E_setreflect
-
- thumb_func_start atk7F_setseeded
-atk7F_setseeded: @ 80275C8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r7, _08027608 @ =gMoveResultFlags
- ldrb r5, [r7]
- movs r0, 0x29
- ands r0, r5
- cmp r0, 0
- bne _080275FA
- ldr r0, _0802760C @ =gStatuses3
- mov r9, r0
- ldr r1, _08027610 @ =gBattlerTarget
- mov r8, r1
- ldrb r4, [r1]
- lsls r0, r4, 2
- mov r2, r9
- adds r6, r0, r2
- ldr r2, [r6]
- movs r0, 0x4
- mov r12, r0
- adds r3, r2, 0
- ands r3, r0
- cmp r3, 0
- beq _08027618
-_080275FA:
- movs r0, 0x1
- orrs r0, r5
- strb r0, [r7]
- ldr r1, _08027614 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08027668
- .align 2, 0
-_08027608: .4byte gMoveResultFlags
-_0802760C: .4byte gStatuses3
-_08027610: .4byte gBattlerTarget
-_08027614: .4byte gBattleCommunication
-_08027618:
- ldr r1, _08027644 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r1, r0, r1
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xC
- beq _08027634
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xC
- bne _0802764C
-_08027634:
- movs r0, 0x1
- orrs r0, r5
- strb r0, [r7]
- ldr r1, _08027648 @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _08027668
- .align 2, 0
-_08027644: .4byte gBattleMons
-_08027648: .4byte gBattleCommunication
-_0802764C:
- ldr r0, _0802767C @ =gBattlerAttacker
- ldrb r0, [r0]
- orrs r2, r0
- str r2, [r6]
- mov r2, r8
- ldrb r1, [r2]
- lsls r1, 2
- add r1, r9
- ldr r0, [r1]
- mov r2, r12
- orrs r0, r2
- str r0, [r1]
- ldr r0, _08027680 @ =gBattleCommunication
- strb r3, [r0, 0x5]
-_08027668:
- ldr r1, _08027684 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802767C: .4byte gBattlerAttacker
-_08027680: .4byte gBattleCommunication
-_08027684: .4byte gBattlescriptCurrInstr
- thumb_func_end atk7F_setseeded
-
- thumb_func_start atk80_manipulatedamage
-atk80_manipulatedamage: @ 8027688
- push {r4,lr}
- ldr r1, _080276A0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- ldrb r2, [r0, 0x1]
- adds r4, r1, 0
- cmp r2, 0x1
- beq _080276B8
- cmp r2, 0x1
- bgt _080276A4
- cmp r2, 0
- beq _080276AA
- b _080276F8
- .align 2, 0
-_080276A0: .4byte gBattlescriptCurrInstr
-_080276A4:
- cmp r2, 0x2
- beq _080276F0
- b _080276F8
-_080276AA:
- ldr r1, _080276B4 @ =gBattleMoveDamage
- ldr r0, [r1]
- negs r0, r0
- b _080276F6
- .align 2, 0
-_080276B4: .4byte gBattleMoveDamage
-_080276B8:
- ldr r3, _080276E4 @ =gBattleMoveDamage
- ldr r0, [r3]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- str r0, [r3]
- cmp r0, 0
- bne _080276CA
- str r2, [r3]
-_080276CA:
- ldr r2, _080276E8 @ =gBattleMons
- ldr r0, _080276EC @ =gBattlerTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2C]
- lsrs r1, r0, 1
- ldr r0, [r3]
- cmp r1, r0
- bge _080276F8
- str r1, [r3]
- b _080276F8
- .align 2, 0
-_080276E4: .4byte gBattleMoveDamage
-_080276E8: .4byte gBattleMons
-_080276EC: .4byte gBattlerTarget
-_080276F0:
- ldr r1, _08027704 @ =gBattleMoveDamage
- ldr r0, [r1]
- lsls r0, 1
-_080276F6:
- str r0, [r1]
-_080276F8:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08027704: .4byte gBattleMoveDamage
- thumb_func_end atk80_manipulatedamage
-
- thumb_func_start atk81_trysetrest
-atk81_trysetrest: @ 8027708
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r0, _08027760 @ =gBattlescriptCurrInstr
- mov r12, r0
- ldr r1, [r0]
- ldrb r6, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r6, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r6, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r6, r0
- ldr r5, _08027764 @ =gActiveBattler
- ldr r2, _08027768 @ =gBattlerTarget
- ldr r0, _0802776C @ =gBattlerAttacker
- ldrb r0, [r0]
- strb r0, [r2]
- strb r0, [r5]
- ldr r4, _08027770 @ =gBattleMoveDamage
- ldr r1, _08027774 @ =gBattleMons
- ldrb r0, [r2]
- movs r3, 0x58
- muls r0, r3
- adds r0, r1
- ldrh r0, [r0, 0x2C]
- negs r0, r0
- str r0, [r4]
- ldrb r0, [r2]
- adds r4, r0, 0
- muls r4, r3
- adds r0, r4, r1
- ldrh r3, [r0, 0x28]
- adds r7, r5, 0
- adds r5, r2, 0
- adds r2, r1, 0
- ldrh r0, [r0, 0x2C]
- cmp r3, r0
- bne _08027778
- mov r0, r12
- str r6, [r0]
- b _080277C8
- .align 2, 0
-_08027760: .4byte gBattlescriptCurrInstr
-_08027764: .4byte gActiveBattler
-_08027768: .4byte gBattlerTarget
-_0802776C: .4byte gBattlerAttacker
-_08027770: .4byte gBattleMoveDamage
-_08027774: .4byte gBattleMons
-_08027778:
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r4, r0
- ldr r1, [r0]
- movs r0, 0xF8
- ands r1, r0
- cmp r1, 0
- beq _08027794
- ldr r1, _08027790 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08027798
- .align 2, 0
-_08027790: .4byte gBattleCommunication
-_08027794:
- ldr r0, _080277D0 @ =gBattleCommunication
- strb r1, [r0, 0x5]
-_08027798:
- ldrb r0, [r5]
- movs r3, 0x58
- muls r0, r3
- adds r2, 0x4C
- adds r0, r2
- movs r1, 0x3
- str r1, [r0]
- ldrb r0, [r7]
- muls r0, r3
- adds r0, r2
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl BtlController_EmitSetMonData
- ldrb r0, [r7]
- bl MarkBattlerForControllerExec
- ldr r1, _080277D4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_080277C8:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080277D0: .4byte gBattleCommunication
-_080277D4: .4byte gBattlescriptCurrInstr
- thumb_func_end atk81_trysetrest
-
- thumb_func_start atk82_jumpifnotfirstturn
-atk82_jumpifnotfirstturn: @ 80277D8
- push {r4,r5,lr}
- ldr r5, _0802780C @ =gBattlescriptCurrInstr
- ldr r4, [r5]
- ldrb r3, [r4, 0x1]
- ldrb r0, [r4, 0x2]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r4, 0x3]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r4, 0x4]
- lsls r0, 24
- orrs r3, r0
- ldr r2, _08027810 @ =gDisableStructs
- ldr r0, _08027814 @ =gBattlerAttacker
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x16]
- cmp r0, 0
- beq _08027818
- adds r0, r4, 0x5
- str r0, [r5]
- b _0802781A
- .align 2, 0
-_0802780C: .4byte gBattlescriptCurrInstr
-_08027810: .4byte gDisableStructs
-_08027814: .4byte gBattlerAttacker
-_08027818:
- str r3, [r5]
-_0802781A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end atk82_jumpifnotfirstturn
-
- thumb_func_start atk83_nop
-atk83_nop: @ 8027820
- ldr r1, _0802782C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_0802782C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk83_nop
-
- thumb_func_start UproarWakeUpCheck
-UproarWakeUpCheck: @ 8027830
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r0, _08027888 @ =gBattlersCount
- ldrb r1, [r0]
- mov r8, r0
- cmp r2, r1
- bge _080278A4
- ldr r0, _0802788C @ =gBattleMons
- mov r12, r0
- movs r0, 0x58
- muls r0, r3
- add r0, r12
- adds r5, r0, 0
- adds r5, 0x20
- adds r4, r1, 0
- movs r3, 0
- ldr r6, _08027890 @ =gBattleScripting
- ldr r7, _08027894 @ =gBattleCommunication
-_0802785C:
- mov r0, r12
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x70
- ands r0, r1
- cmp r0, 0
- beq _0802789C
- ldrb r0, [r5]
- cmp r0, 0x2B
- beq _0802789C
- movs r3, 0
- strb r2, [r6, 0x17]
- ldr r1, _08027898 @ =gBattlerTarget
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _080278BC
- cmp r0, r2
- beq _080278B0
- movs r0, 0x1
- strb r0, [r7, 0x5]
- b _080278A4
- .align 2, 0
-_08027888: .4byte gBattlersCount
-_0802788C: .4byte gBattleMons
-_08027890: .4byte gBattleScripting
-_08027894: .4byte gBattleCommunication
-_08027898: .4byte gBattlerTarget
-_0802789C:
- adds r3, 0x58
- adds r2, 0x1
- cmp r2, r4
- blt _0802785C
-_080278A4:
- mov r1, r8
- ldrb r1, [r1]
- cmp r2, r1
- beq _080278C0
- movs r0, 0x1
- b _080278C2
-_080278B0:
- ldr r0, _080278B8 @ =gBattleCommunication
- strb r3, [r0, 0x5]
- b _080278A4
- .align 2, 0
-_080278B8: .4byte gBattleCommunication
-_080278BC:
- strb r2, [r1]
- b _080278A4
-_080278C0:
- movs r0, 0
-_080278C2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end UproarWakeUpCheck
-
- thumb_func_start atk84_jumpifcantmakeasleep
-atk84_jumpifcantmakeasleep: @ 80278CC
- push {r4-r6,lr}
- ldr r5, _080278F8 @ =gBattlescriptCurrInstr
- ldr r1, [r5]
- ldrb r4, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r4, r0
- ldr r6, _080278FC @ =gBattlerTarget
- ldrb r0, [r6]
- bl UproarWakeUpCheck
- lsls r0, 24
- cmp r0, 0
- beq _08027900
- str r4, [r5]
- b _08027942
- .align 2, 0
-_080278F8: .4byte gBattlescriptCurrInstr
-_080278FC: .4byte gBattlerTarget
-_08027900:
- ldr r1, _08027930 @ =gBattleMons
- ldrb r3, [r6]
- movs r0, 0x58
- muls r0, r3
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- adds r1, r0, 0
- cmp r1, 0xF
- beq _08027918
- cmp r1, 0x48
- bne _0802793C
-_08027918:
- ldr r2, _08027934 @ =gLastUsedAbility
- strb r0, [r2]
- ldr r1, _08027938 @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- str r4, [r5]
- ldrb r1, [r2]
- adds r0, r3, 0
- bl RecordAbilityBattle
- b _08027942
- .align 2, 0
-_08027930: .4byte gBattleMons
-_08027934: .4byte gLastUsedAbility
-_08027938: .4byte gBattleCommunication
-_0802793C:
- ldr r0, [r5]
- adds r0, 0x5
- str r0, [r5]
-_08027942:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk84_jumpifcantmakeasleep
-
- thumb_func_start atk85_stockpile
-atk85_stockpile: @ 8027948
- push {r4,r5,lr}
- ldr r5, _08027970 @ =gDisableStructs
- ldr r4, _08027974 @ =gBattlerAttacker
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1, 0x9]
- cmp r0, 0x3
- bne _08027980
- ldr r2, _08027978 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0802797C @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _080279AA
- .align 2, 0
-_08027970: .4byte gDisableStructs
-_08027974: .4byte gBattlerAttacker
-_08027978: .4byte gMoveResultFlags
-_0802797C: .4byte gBattleCommunication
-_08027980:
- adds r0, 0x1
- movs r3, 0
- strb r0, [r1, 0x9]
- ldr r2, _080279B8 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r2]
- movs r0, 0x1
- strb r0, [r2, 0x1]
- strb r0, [r2, 0x2]
- strb r0, [r2, 0x3]
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x9]
- strb r0, [r2, 0x4]
- movs r0, 0xFF
- strb r0, [r2, 0x5]
- ldr r0, _080279BC @ =gBattleCommunication
- strb r3, [r0, 0x5]
-_080279AA:
- ldr r1, _080279C0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080279B8: .4byte gBattleTextBuff1
-_080279BC: .4byte gBattleCommunication
-_080279C0: .4byte gBattlescriptCurrInstr
- thumb_func_end atk85_stockpile
-
- thumb_func_start atk86_stockpiletobasedamage
-atk86_stockpiletobasedamage: @ 80279C4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- ldr r3, _080279FC @ =gBattlescriptCurrInstr
- ldr r1, [r3]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r2, r0
- ldr r7, _08027A00 @ =gDisableStructs
- ldr r6, _08027A04 @ =gBattlerAttacker
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0, 0x9]
- cmp r0, 0
- bne _08027A08
- str r2, [r3]
- b _08027AAA
- .align 2, 0
-_080279FC: .4byte gBattlescriptCurrInstr
-_08027A00: .4byte gDisableStructs
-_08027A04: .4byte gBattlerAttacker
-_08027A08:
- ldr r0, _08027AB8 @ =gBattleCommunication
- ldrb r0, [r0, 0x6]
- cmp r0, 0x1
- beq _08027A90
- ldr r0, _08027ABC @ =gBattleMoveDamage
- mov r8, r0
- ldr r4, _08027AC0 @ =gSideStatuses
- ldr r5, _08027AC4 @ =gBattlerTarget
- ldrb r0, [r5]
- bl GetBattlerPosition
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- ldrb r0, [r6]
- movs r4, 0x58
- muls r0, r4
- ldr r2, _08027AC8 @ =gBattleMons
- adds r0, r2
- ldrb r1, [r5]
- muls r1, r4
- adds r1, r2
- ldr r2, _08027ACC @ =gCurrentMove
- ldrh r2, [r2]
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- ldrb r4, [r6]
- str r4, [sp, 0x8]
- ldrb r4, [r5]
- str r4, [sp, 0xC]
- bl CalculateBaseDamage
- ldrb r2, [r6]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r7
- ldrb r1, [r1, 0x9]
- adds r3, r0, 0
- muls r3, r1
- mov r1, r8
- str r3, [r1]
- ldr r2, _08027AD0 @ =gBattleScripting
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0, 0x9]
- strb r0, [r2, 0x18]
- ldr r1, _08027AD4 @ =gProtectStructs
- ldrb r0, [r6]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- bge _08027A90
- lsls r0, r3, 4
- subs r0, r3
- movs r1, 0xA
- bl __divsi3
- mov r1, r8
- str r0, [r1]
-_08027A90:
- ldr r2, _08027AD8 @ =gDisableStructs
- ldr r0, _08027ADC @ =gBattlerAttacker
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x9]
- ldr r1, _08027AE0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08027AAA:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08027AB8: .4byte gBattleCommunication
-_08027ABC: .4byte gBattleMoveDamage
-_08027AC0: .4byte gSideStatuses
-_08027AC4: .4byte gBattlerTarget
-_08027AC8: .4byte gBattleMons
-_08027ACC: .4byte gCurrentMove
-_08027AD0: .4byte gBattleScripting
-_08027AD4: .4byte gProtectStructs
-_08027AD8: .4byte gDisableStructs
-_08027ADC: .4byte gBattlerAttacker
-_08027AE0: .4byte gBattlescriptCurrInstr
- thumb_func_end atk86_stockpiletobasedamage
-
- thumb_func_start atk87_stockpiletohpheal
-atk87_stockpiletohpheal: @ 8027AE4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r7, _08027B24 @ =gBattlescriptCurrInstr
- ldr r1, [r7]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r2, r0
- ldr r0, _08027B28 @ =gDisableStructs
- mov r8, r0
- ldr r6, _08027B2C @ =gBattlerAttacker
- ldrb r3, [r6]
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- mov r1, r8
- adds r4, r0, r1
- ldrb r1, [r4, 0x9]
- cmp r1, 0
- bne _08027B34
- str r2, [r7]
- ldr r0, _08027B30 @ =gBattleCommunication
- strb r1, [r0, 0x5]
- b _08027BB0
- .align 2, 0
-_08027B24: .4byte gBattlescriptCurrInstr
-_08027B28: .4byte gDisableStructs
-_08027B2C: .4byte gBattlerAttacker
-_08027B30: .4byte gBattleCommunication
-_08027B34:
- ldr r1, _08027B58 @ =gBattleMons
- movs r0, 0x58
- muls r0, r3
- adds r1, r0, r1
- ldrh r0, [r1, 0x2C]
- ldrh r3, [r1, 0x28]
- cmp r0, r3
- bne _08027B64
- movs r0, 0
- strb r0, [r4, 0x9]
- str r2, [r7]
- ldr r1, _08027B5C @ =gBattlerTarget
- ldrb r0, [r6]
- strb r0, [r1]
- ldr r1, _08027B60 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08027BB0
- .align 2, 0
-_08027B58: .4byte gBattleMons
-_08027B5C: .4byte gBattlerTarget
-_08027B60: .4byte gBattleCommunication
-_08027B64:
- ldr r5, _08027BBC @ =gBattleMoveDamage
- ldrh r0, [r1, 0x2C]
- ldrb r1, [r4, 0x9]
- movs r2, 0x3
- subs r2, r1
- movs r4, 0x1
- adds r1, r4, 0
- lsls r1, r2
- bl __divsi3
- str r0, [r5]
- cmp r0, 0
- bne _08027B80
- str r4, [r5]
-_08027B80:
- ldr r0, [r5]
- negs r0, r0
- str r0, [r5]
- ldr r3, _08027BC0 @ =gBattleScripting
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0x9]
- movs r2, 0
- strb r0, [r3, 0x18]
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r8
- strb r2, [r0, 0x9]
- ldr r0, [r7]
- adds r0, 0x5
- str r0, [r7]
- ldr r1, _08027BC4 @ =gBattlerTarget
- ldrb r0, [r6]
- strb r0, [r1]
-_08027BB0:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08027BBC: .4byte gBattleMoveDamage
-_08027BC0: .4byte gBattleScripting
-_08027BC4: .4byte gBattlerTarget
- thumb_func_end atk87_stockpiletohpheal
-
- thumb_func_start atk88_negativedamage
-atk88_negativedamage: @ 8027BC8
- push {lr}
- ldr r2, _08027BF0 @ =gBattleMoveDamage
- ldr r0, _08027BF4 @ =gHpDealt
- ldr r0, [r0]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- negs r0, r0
- str r0, [r2]
- cmp r0, 0
- bne _08027BE4
- movs r0, 0x1
- negs r0, r0
- str r0, [r2]
-_08027BE4:
- ldr r1, _08027BF8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08027BF0: .4byte gBattleMoveDamage
-_08027BF4: .4byte gHpDealt
-_08027BF8: .4byte gBattlescriptCurrInstr
- thumb_func_end atk88_negativedamage
-
- thumb_func_start ChangeStatBuffs
-ChangeStatBuffs: @ 8027BFC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r3
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- movs r0, 0
- mov r9, r0
- mov r10, r0
- movs r0, 0x40
- ands r0, r5
- cmp r0, 0
- beq _08027C30
- ldr r0, _08027C28 @ =gActiveBattler
- ldr r1, _08027C2C @ =gBattlerAttacker
- b _08027C34
- .align 2, 0
-_08027C28: .4byte gActiveBattler
-_08027C2C: .4byte gBattlerAttacker
-_08027C30:
- ldr r0, _08027CD4 @ =gActiveBattler
- ldr r1, _08027CD8 @ =gBattlerTarget
-_08027C34:
- ldrb r1, [r1]
- strb r1, [r0]
- movs r0, 0xBF
- ands r5, r0
- movs r0, 0x80
- ands r0, r5
- cmp r0, 0
- beq _08027C4E
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08027C4E:
- movs r0, 0x7F
- ands r5, r0
- movs r0, 0x20
- ands r0, r5
- cmp r0, 0
- beq _08027C64
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
-_08027C64:
- movs r0, 0xDF
- ands r5, r0
- ldr r1, _08027CDC @ =gBattleTextBuff1
- movs r4, 0
- movs r2, 0xFD
- strb r2, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- strb r7, [r1, 0x2]
- movs r3, 0x1
- negs r3, r3
- mov r12, r3
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- lsls r0, r6, 24
- cmp r0, 0
- blt _08027C88
- b _08027F6C
-_08027C88:
- ldr r4, _08027CE0 @ =gSideTimers
- ldr r1, _08027CD4 @ =gActiveBattler
- ldrb r0, [r1]
- bl GetBattlerPosition
- movs r1, 0x1
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _08027D28
- mov r2, r9
- cmp r2, 0
- bne _08027D28
- ldr r0, _08027CE4 @ =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0xAE
- beq _08027D58
- cmp r5, 0x1
- bne _08027D48
- ldr r4, _08027CE8 @ =gSpecialStatuses
- ldr r3, _08027CD4 @ =gActiveBattler
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- lsls r0, 31
- cmp r0, 0
- beq _08027CF0
- ldr r0, _08027CEC @ =gBattlescriptCurrInstr
- mov r4, r8
- str r4, [r0]
- b _08027D48
- .align 2, 0
-_08027CD4: .4byte gActiveBattler
-_08027CD8: .4byte gBattlerTarget
-_08027CDC: .4byte gBattleTextBuff1
-_08027CE0: .4byte gSideTimers
-_08027CE4: .4byte gCurrentMove
-_08027CE8: .4byte gSpecialStatuses
-_08027CEC: .4byte gBattlescriptCurrInstr
-_08027CF0:
- mov r0, r8
- bl BattleScriptPush
- ldr r1, _08027D18 @ =gBattleScripting
- ldr r6, _08027D1C @ =gActiveBattler
- ldrb r0, [r6]
- strb r0, [r1, 0x17]
- ldr r1, _08027D20 @ =gBattlescriptCurrInstr
- ldr r0, _08027D24 @ =BattleScript_MistProtected
- str r0, [r1]
- ldrb r1, [r6]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _08027D48
- .align 2, 0
-_08027D18: .4byte gBattleScripting
-_08027D1C: .4byte gActiveBattler
-_08027D20: .4byte gBattlescriptCurrInstr
-_08027D24: .4byte BattleScript_MistProtected
-_08027D28:
- ldr r0, _08027D4C @ =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0xAE
- beq _08027D58
- mov r0, r10
- cmp r0, 0x1
- beq _08027D58
- movs r0, 0
- bl JumpIfMoveAffectedByProtect
- lsls r0, 24
- cmp r0, 0
- beq _08027D58
- ldr r1, _08027D50 @ =gBattlescriptCurrInstr
- ldr r0, _08027D54 @ =BattleScript_ButItFailed
- str r0, [r1]
-_08027D48:
- movs r0, 0x1
- b _08028060
- .align 2, 0
-_08027D4C: .4byte gCurrentMove
-_08027D50: .4byte gBattlescriptCurrInstr
-_08027D54: .4byte BattleScript_ButItFailed
-_08027D58:
- ldr r2, _08027DA0 @ =gBattleMons
- ldr r1, _08027DA4 @ =gActiveBattler
- ldrb r3, [r1]
- movs r4, 0x58
- adds r0, r3, 0
- muls r0, r4
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- mov r10, r2
- cmp r0, 0x1D
- beq _08027D74
- cmp r0, 0x49
- bne _08027E0C
-_08027D74:
- mov r0, r9
- cmp r0, 0
- bne _08027E0C
- ldr r0, _08027DA8 @ =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0xAE
- beq _08027E0C
- cmp r5, 0x1
- bne _08027D48
- ldr r4, _08027DAC @ =gSpecialStatuses
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _08027DB4
- ldr r0, _08027DB0 @ =gBattlescriptCurrInstr
- mov r1, r8
- str r1, [r0]
- b _08027D48
- .align 2, 0
-_08027DA0: .4byte gBattleMons
-_08027DA4: .4byte gActiveBattler
-_08027DA8: .4byte gCurrentMove
-_08027DAC: .4byte gSpecialStatuses
-_08027DB0: .4byte gBattlescriptCurrInstr
-_08027DB4:
- mov r0, r8
- bl BattleScriptPush
- ldr r1, _08027DF8 @ =gBattleScripting
- ldr r2, _08027DFC @ =gActiveBattler
- ldrb r0, [r2]
- strb r0, [r1, 0x17]
- ldr r1, _08027E00 @ =gBattlescriptCurrInstr
- ldr r0, _08027E04 @ =BattleScript_AbilityNoStatLoss
- str r0, [r1]
- ldr r1, _08027E08 @ =gLastUsedAbility
- ldrb r0, [r2]
- movs r3, 0x58
- muls r0, r3
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r2]
- ldrb r1, [r1]
- bl RecordAbilityBattle
- ldr r6, _08027DFC @ =gActiveBattler
- ldrb r1, [r6]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _08027D48
- .align 2, 0
-_08027DF8: .4byte gBattleScripting
-_08027DFC: .4byte gActiveBattler
-_08027E00: .4byte gBattlescriptCurrInstr
-_08027E04: .4byte BattleScript_AbilityNoStatLoss
-_08027E08: .4byte gLastUsedAbility
-_08027E0C:
- ldr r1, _08027E58 @ =gActiveBattler
- ldrb r0, [r1]
- movs r4, 0x58
- muls r0, r4
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x33
- bne _08027E6C
- mov r2, r9
- cmp r2, 0
- bne _08027E6C
- cmp r7, 0x6
- bne _08027E6C
- cmp r5, 0x1
- bne _08027D48
- mov r0, r8
- bl BattleScriptPush
- ldr r1, _08027E5C @ =gBattleScripting
- ldr r3, _08027E58 @ =gActiveBattler
- ldrb r0, [r3]
- strb r0, [r1, 0x17]
- ldr r1, _08027E60 @ =gBattlescriptCurrInstr
- ldr r0, _08027E64 @ =BattleScript_AbilityNoSpecificStatLoss
- str r0, [r1]
- ldr r1, _08027E68 @ =gLastUsedAbility
- ldrb r0, [r3]
- muls r0, r4
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r3]
- ldrb r1, [r1]
- bl RecordAbilityBattle
- b _08027D48
- .align 2, 0
-_08027E58: .4byte gActiveBattler
-_08027E5C: .4byte gBattleScripting
-_08027E60: .4byte gBattlescriptCurrInstr
-_08027E64: .4byte BattleScript_AbilityNoSpecificStatLoss
-_08027E68: .4byte gLastUsedAbility
-_08027E6C:
- ldr r4, _08027EBC @ =gActiveBattler
- ldrb r0, [r4]
- movs r4, 0x58
- muls r0, r4
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x34
- bne _08027ED0
- mov r0, r9
- cmp r0, 0
- bne _08027ED0
- cmp r7, 0x1
- bne _08027ED0
- cmp r5, 0x1
- beq _08027E8E
- b _08027D48
-_08027E8E:
- mov r0, r8
- bl BattleScriptPush
- ldr r1, _08027EC0 @ =gBattleScripting
- ldr r2, _08027EBC @ =gActiveBattler
- ldrb r0, [r2]
- strb r0, [r1, 0x17]
- ldr r1, _08027EC4 @ =gBattlescriptCurrInstr
- ldr r0, _08027EC8 @ =BattleScript_AbilityNoSpecificStatLoss
- str r0, [r1]
- ldr r1, _08027ECC @ =gLastUsedAbility
- ldrb r0, [r2]
- muls r0, r4
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r2]
- ldrb r1, [r1]
- bl RecordAbilityBattle
- b _08027D48
- .align 2, 0
-_08027EBC: .4byte gActiveBattler
-_08027EC0: .4byte gBattleScripting
-_08027EC4: .4byte gBattlescriptCurrInstr
-_08027EC8: .4byte BattleScript_AbilityNoSpecificStatLoss
-_08027ECC: .4byte gLastUsedAbility
-_08027ED0:
- ldr r3, _08027F5C @ =gActiveBattler
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x13
- bne _08027EE8
- cmp r5, 0
- bne _08027EE8
- b _08027D48
-_08027EE8:
- lsls r0, r6, 24
- asrs r0, 28
- movs r1, 0x7
- ands r0, r1
- negs r0, r0
- lsls r0, 24
- ldr r3, _08027F60 @ =gBattleTextBuff2
- movs r4, 0
- movs r1, 0xFD
- strb r1, [r3]
- movs r2, 0x1
- lsrs r6, r0, 24
- asrs r0, 24
- subs r1, 0xFF
- cmp r0, r1
- bne _08027F12
- strb r4, [r3, 0x1]
- movs r0, 0xD3
- strb r0, [r3, 0x2]
- strb r4, [r3, 0x3]
- movs r2, 0x4
-_08027F12:
- adds r0, r2, r3
- strb r4, [r0]
- adds r2, 0x1
- adds r1, r2, r3
- movs r0, 0xD4
- strb r0, [r1]
- adds r2, 0x1
- adds r0, r2, r3
- strb r4, [r0]
- adds r2, 0x1
- adds r1, r2, r3
- movs r0, 0xFF
- strb r0, [r1]
- ldr r4, _08027F5C @ =gActiveBattler
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r0, r7, r0
- mov r1, r10
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _08027FC2
- movs r1, 0
- ldr r0, _08027F64 @ =gBattlerTarget
- ldrb r0, [r0]
- ldr r3, _08027F68 @ =gBattleCommunication
- mov r8, r3
- cmp r0, r2
- bne _08027F56
- movs r1, 0x1
-_08027F56:
- mov r4, r8
- strb r1, [r4, 0x5]
- b _08027FF0
- .align 2, 0
-_08027F5C: .4byte gActiveBattler
-_08027F60: .4byte gBattleTextBuff2
-_08027F64: .4byte gBattlerTarget
-_08027F68: .4byte gBattleCommunication
-_08027F6C:
- asrs r6, r0, 28
- movs r0, 0x7
- ands r6, r0
- ldr r3, _08027FCC @ =gBattleTextBuff2
- strb r2, [r3]
- movs r2, 0x1
- cmp r6, 0x2
- bne _08027F86
- strb r4, [r3, 0x1]
- movs r0, 0xD1
- strb r0, [r3, 0x2]
- strb r4, [r3, 0x3]
- movs r2, 0x4
-_08027F86:
- adds r0, r2, r3
- strb r4, [r0]
- adds r2, 0x1
- adds r1, r2, r3
- movs r0, 0xD2
- strb r0, [r1]
- adds r2, 0x1
- adds r0, r2, r3
- strb r4, [r0]
- adds r2, 0x1
- adds r1, r2, r3
- ldrb r0, [r1]
- mov r2, r12
- orrs r0, r2
- strb r0, [r1]
- ldr r2, _08027FD0 @ =gBattleMons
- ldr r4, _08027FD4 @ =gActiveBattler
- ldrb r3, [r4]
- movs r0, 0x58
- muls r0, r3
- adds r0, r7, r0
- adds r1, r2, 0
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- mov r10, r2
- cmp r0, 0xC
- bne _08027FDC
-_08027FC2:
- ldr r1, _08027FD8 @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- mov r8, r1
- b _08027FF0
- .align 2, 0
-_08027FCC: .4byte gBattleTextBuff2
-_08027FD0: .4byte gBattleMons
-_08027FD4: .4byte gActiveBattler
-_08027FD8: .4byte gBattleCommunication
-_08027FDC:
- movs r1, 0
- ldr r0, _08028070 @ =gBattlerTarget
- ldrb r0, [r0]
- ldr r2, _08028074 @ =gBattleCommunication
- mov r8, r2
- cmp r0, r3
- bne _08027FEC
- movs r1, 0x1
-_08027FEC:
- mov r3, r8
- strb r1, [r3, 0x5]
-_08027FF0:
- ldr r2, _08028078 @ =gActiveBattler
- ldrb r0, [r2]
- movs r4, 0x58
- adds r1, r0, 0
- muls r1, r4
- adds r1, r7, r1
- mov r3, r10
- adds r3, 0x18
- adds r1, r3
- lsls r0, r6, 24
- asrs r0, 24
- ldrb r6, [r1]
- adds r0, r6
- strb r0, [r1]
- ldrb r0, [r2]
- muls r0, r4
- adds r0, r7, r0
- adds r1, r0, r3
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bge _08028020
- movs r0, 0
- strb r0, [r1]
-_08028020:
- ldr r1, _08028078 @ =gActiveBattler
- ldrb r0, [r1]
- muls r0, r4
- adds r0, r7, r0
- adds r1, r0, r3
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _08028036
- movs r0, 0xC
- strb r0, [r1]
-_08028036:
- mov r2, r8
- ldrb r0, [r2, 0x5]
- cmp r0, 0x2
- bne _0802805E
- movs r3, 0x1
- ands r3, r5
- cmp r3, 0
- beq _08028050
- ldr r0, _0802807C @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
-_08028050:
- mov r4, r8
- ldrb r0, [r4, 0x5]
- cmp r0, 0x2
- bne _0802805E
- cmp r3, 0
- bne _0802805E
- b _08027D48
-_0802805E:
- movs r0, 0
-_08028060:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08028070: .4byte gBattlerTarget
-_08028074: .4byte gBattleCommunication
-_08028078: .4byte gActiveBattler
-_0802807C: .4byte gMoveResultFlags
- thumb_func_end ChangeStatBuffs
-
- thumb_func_start atk89_statbuffchange
-atk89_statbuffchange: @ 8028080
- push {r4,r5,lr}
- ldr r5, _080280C4 @ =gBattlescriptCurrInstr
- ldr r2, [r5]
- ldrb r3, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r3, r0
- ldr r0, _080280C8 @ =gBattleScripting
- ldrb r4, [r0, 0x1A]
- movs r0, 0xF0
- ands r0, r4
- lsls r0, 24
- asrs r0, 24
- movs r1, 0xF
- ands r1, r4
- ldrb r2, [r2, 0x1]
- bl ChangeStatBuffs
- lsls r0, 24
- cmp r0, 0
- bne _080280BC
- ldr r0, [r5]
- adds r0, 0x6
- str r0, [r5]
-_080280BC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080280C4: .4byte gBattlescriptCurrInstr
-_080280C8: .4byte gBattleScripting
- thumb_func_end atk89_statbuffchange
-
- thumb_func_start atk8A_normalisebuffs
-atk8A_normalisebuffs: @ 80280CC
- push {r4-r7,lr}
- movs r2, 0
- ldr r0, _08028114 @ =gBattlersCount
- ldrb r1, [r0]
- ldr r0, _08028118 @ =gBattlescriptCurrInstr
- mov r12, r0
- cmp r2, r1
- bge _08028104
- ldr r0, _0802811C @ =gBattleMons
- movs r4, 0x6
- adds r5, r1, 0
- movs r7, 0x58
- adds r6, r0, 0
- adds r6, 0x18
-_080280E8:
- adds r3, r2, 0x1
- movs r1, 0x7
- adds r0, r2, 0
- muls r0, r7
- adds r0, r6
- adds r0, 0x7
-_080280F4:
- strb r4, [r0]
- subs r0, 0x1
- subs r1, 0x1
- cmp r1, 0
- bge _080280F4
- adds r2, r3, 0
- cmp r2, r5
- blt _080280E8
-_08028104:
- mov r1, r12
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028114: .4byte gBattlersCount
-_08028118: .4byte gBattlescriptCurrInstr
-_0802811C: .4byte gBattleMons
- thumb_func_end atk8A_normalisebuffs
-
- thumb_func_start atk8B_setbide
-atk8B_setbide: @ 8028120
- push {r4,r5,lr}
- ldr r4, _08028178 @ =gBattleMons
- ldr r3, _0802817C @ =gBattlerAttacker
- ldrb r0, [r3]
- movs r5, 0x58
- adds r2, r0, 0
- muls r2, r5
- adds r4, 0x50
- adds r2, r4
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 5
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08028180 @ =gLockedMoves
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- ldr r1, _08028184 @ =gCurrentMove
- ldrh r1, [r1]
- movs r2, 0
- strh r1, [r0]
- ldr r1, _08028188 @ =gTakenDmg
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- str r2, [r0]
- ldrb r0, [r3]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r4
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 2
- orrs r0, r2
- str r0, [r1]
- ldr r1, _0802818C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08028178: .4byte gBattleMons
-_0802817C: .4byte gBattlerAttacker
-_08028180: .4byte gLockedMoves
-_08028184: .4byte gCurrentMove
-_08028188: .4byte gTakenDmg
-_0802818C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk8B_setbide
-
- thumb_func_start atk8C_confuseifrepeatingattackends
-atk8C_confuseifrepeatingattackends: @ 8028190
- push {lr}
- ldr r1, _080281C0 @ =gBattleMons
- ldr r0, _080281C4 @ =gBattlerAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xC0
- lsls r1, 4
- ands r0, r1
- cmp r0, 0
- bne _080281B2
- ldr r1, _080281C8 @ =gBattleCommunication
- movs r0, 0x75
- strb r0, [r1, 0x3]
-_080281B2:
- ldr r1, _080281CC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080281C0: .4byte gBattleMons
-_080281C4: .4byte gBattlerAttacker
-_080281C8: .4byte gBattleCommunication
-_080281CC: .4byte gBattlescriptCurrInstr
- thumb_func_end atk8C_confuseifrepeatingattackends
-
- thumb_func_start atk8D_setmultihitcounter
-atk8D_setmultihitcounter: @ 80281D0
- push {r4,r5,lr}
- ldr r0, _080281E4 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r1, [r0, 0x1]
- cmp r1, 0
- beq _080281EC
- ldr r0, _080281E8 @ =gMultiHitCounter
- strb r1, [r0]
- b _08028206
- .align 2, 0
-_080281E4: .4byte gBattlescriptCurrInstr
-_080281E8: .4byte gMultiHitCounter
-_080281EC:
- ldr r4, _08028214 @ =gMultiHitCounter
- bl Random
- movs r5, 0x3
- ands r0, r5
- strb r0, [r4]
- cmp r0, 0x1
- bls _08028202
- bl Random
- ands r0, r5
-_08028202:
- adds r0, 0x2
- strb r0, [r4]
-_08028206:
- ldr r1, _08028218 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08028214: .4byte gMultiHitCounter
-_08028218: .4byte gBattlescriptCurrInstr
- thumb_func_end atk8D_setmultihitcounter
-
- thumb_func_start atk8E_initmultihitstring
-atk8E_initmultihitstring: @ 802821C
- ldr r1, _0802823C @ =gBattleScripting
- movs r2, 0
- movs r0, 0xFD
- strb r0, [r1, 0x8]
- movs r0, 0x1
- strb r0, [r1, 0x9]
- strb r0, [r1, 0xA]
- strb r0, [r1, 0xB]
- strb r2, [r1, 0xC]
- movs r0, 0xFF
- strb r0, [r1, 0xD]
- ldr r1, _08028240 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_0802823C: .4byte gBattleScripting
-_08028240: .4byte gBattlescriptCurrInstr
- thumb_func_end atk8E_initmultihitstring
-
- thumb_func_start TryDoForceSwitchOut
-TryDoForceSwitchOut: @ 8028244
- push {r4-r7,lr}
- ldr r6, _08028278 @ =gBattleMons
- ldr r7, _0802827C @ =gBattlerAttacker
- ldrb r0, [r7]
- movs r5, 0x58
- adds r1, r0, 0
- muls r1, r5
- adds r1, r6
- adds r1, 0x2A
- ldr r4, _08028280 @ =gBattlerTarget
- ldrb r3, [r4]
- adds r0, r3, 0
- muls r0, r5
- adds r0, r6
- adds r0, 0x2A
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bcc _0802828C
- ldr r0, _08028284 @ =gBattleStruct
- ldr r1, [r0]
- adds r1, r3, r1
- adds r1, 0x58
- ldr r2, _08028288 @ =gBattlerPartyIndexes
- lsls r0, r3, 1
- b _080282E8
- .align 2, 0
-_08028278: .4byte gBattleMons
-_0802827C: .4byte gBattlerAttacker
-_08028280: .4byte gBattlerTarget
-_08028284: .4byte gBattleStruct
-_08028288: .4byte gBattlerPartyIndexes
-_0802828C:
- bl Random
- movs r3, 0xFF
- ands r3, r0
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r6
- adds r0, 0x2A
- ldrb r2, [r0]
- ldrb r4, [r4]
- adds r0, r4, 0
- muls r0, r5
- adds r0, r6
- adds r0, 0x2A
- ldrb r1, [r0]
- adds r2, r1
- adds r0, r3, 0
- muls r0, r2
- asrs r0, 8
- adds r0, 0x1
- lsrs r1, 2
- cmp r0, r1
- bhi _080282DC
- ldr r3, _080282D8 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- movs r0, 0
- b _080282F6
- .align 2, 0
-_080282D8: .4byte gBattlescriptCurrInstr
-_080282DC:
- ldr r0, _080282FC @ =gBattleStruct
- ldr r1, [r0]
- adds r1, r4, r1
- adds r1, 0x58
- ldr r2, _08028300 @ =gBattlerPartyIndexes
- lsls r0, r4, 1
-_080282E8:
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r1, _08028304 @ =gBattlescriptCurrInstr
- ldr r0, _08028308 @ =BattleScript_SuccessForceOut
- str r0, [r1]
- movs r0, 0x1
-_080282F6:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080282FC: .4byte gBattleStruct
-_08028300: .4byte gBattlerPartyIndexes
-_08028304: .4byte gBattlescriptCurrInstr
-_08028308: .4byte BattleScript_SuccessForceOut
- thumb_func_end TryDoForceSwitchOut
-
thumb_func_start atk8F_forcerandomswitch
atk8F_forcerandomswitch: @ 802830C
push {r4-r7,lr}