mirror of
https://github.com/pret/pokeemerald-jp.git
synced 2026-09-26 13:32:49 -04:00
4511 lines
78 KiB
ArmAsm
4511 lines
78 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
.text
|
|
.syntax unified
|
|
|
|
thumb_func_start BeginEvolutionScene
|
|
BeginEvolutionScene: @ 0x0813DB44
|
|
push {r4, r5, r6, lr}
|
|
adds r4, r1, #0
|
|
adds r5, r2, #0
|
|
adds r6, r3, #0
|
|
lsls r4, r4, #0x10
|
|
lsrs r4, r4, #0x10
|
|
lsls r5, r5, #0x18
|
|
lsrs r5, r5, #0x18
|
|
lsls r6, r6, #0x18
|
|
lsrs r6, r6, #0x18
|
|
ldr r0, _0813DB84
|
|
movs r1, #0
|
|
bl CreateTask
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldr r2, _0813DB88
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r2
|
|
movs r0, #0
|
|
strh r0, [r1, #8]
|
|
strh r4, [r1, #0xc]
|
|
strh r5, [r1, #0xe]
|
|
strh r6, [r1, #0x1c]
|
|
ldr r0, _0813DB8C
|
|
bl SetMainCallback2
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813DB84: .4byte 0x0813DAC5
|
|
_0813DB88: .4byte 0x03005B60
|
|
_0813DB8C: .4byte 0x0813DAB5
|
|
thumb_func_end BeginEvolutionScene
|
|
|
|
thumb_func_start EvolutionScene
|
|
EvolutionScene: @ 0x0813DB90
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0x24
|
|
adds r4, r0, #0
|
|
mov sb, r1
|
|
mov r0, sb
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
mov sb, r0
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
str r2, [sp, #0x18]
|
|
lsls r3, r3, #0x18
|
|
lsrs r3, r3, #0x18
|
|
str r3, [sp, #0x1c]
|
|
movs r0, #0
|
|
bl SetHBlankCallback
|
|
movs r0, #0
|
|
bl SetVBlankCallback
|
|
movs r1, #0
|
|
str r1, [sp, #0x14]
|
|
add r0, sp, #0x14
|
|
movs r1, #0xc0
|
|
lsls r1, r1, #0x13
|
|
ldr r2, _0813DE14
|
|
bl CpuSet
|
|
movs r0, #0x4c
|
|
movs r1, #0
|
|
bl SetGpuReg
|
|
movs r0, #0x40
|
|
movs r1, #0
|
|
bl SetGpuReg
|
|
movs r0, #0x44
|
|
movs r1, #0
|
|
bl SetGpuReg
|
|
movs r0, #0x42
|
|
movs r1, #0
|
|
bl SetGpuReg
|
|
movs r0, #0x46
|
|
movs r1, #0
|
|
bl SetGpuReg
|
|
movs r0, #0x48
|
|
movs r1, #0
|
|
bl SetGpuReg
|
|
movs r0, #0x4a
|
|
movs r1, #0
|
|
bl SetGpuReg
|
|
bl ResetPaletteFade
|
|
ldr r0, _0813DE18
|
|
movs r2, #0
|
|
strh r2, [r0]
|
|
ldr r0, _0813DE1C
|
|
strh r2, [r0]
|
|
ldr r0, _0813DE20
|
|
strh r2, [r0]
|
|
ldr r0, _0813DE24
|
|
strh r2, [r0]
|
|
ldr r0, _0813DE28
|
|
strh r2, [r0]
|
|
ldr r0, _0813DE2C
|
|
strh r2, [r0]
|
|
ldr r1, _0813DE30
|
|
movs r2, #0x80
|
|
lsls r2, r2, #1
|
|
adds r0, r2, #0
|
|
strh r0, [r1]
|
|
ldr r0, _0813DE34
|
|
movs r1, #0
|
|
strh r1, [r0]
|
|
ldr r1, _0813DE38
|
|
movs r0, #9
|
|
strb r0, [r1]
|
|
bl sub_08035528
|
|
bl LoadBattleTextboxAndBackground
|
|
bl ResetSpriteData
|
|
bl ScanlineEffect_Stop
|
|
bl ResetTasks
|
|
bl FreeAllSpritePalettes
|
|
ldr r0, _0813DE3C
|
|
movs r2, #4
|
|
strb r2, [r0]
|
|
movs r0, #0x64
|
|
bl AllocZeroed
|
|
ldr r1, _0813DE40
|
|
str r0, [r1]
|
|
bl AllocateMonSpritesGfx
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
mov r2, sp
|
|
bl GetMonData
|
|
ldr r0, _0813DE44
|
|
mov r1, sp
|
|
bl StringCopy10
|
|
ldr r0, _0813DE48
|
|
mov r2, sb
|
|
lsls r1, r2, #1
|
|
add r1, sb
|
|
lsls r1, r1, #1
|
|
ldr r2, _0813DE4C
|
|
adds r1, r1, r2
|
|
bl StringCopy
|
|
adds r0, r4, #0
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
adds r5, r0, #0
|
|
lsls r5, r5, #0x10
|
|
lsrs r5, r5, #0x10
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl GetMonData
|
|
str r0, [sp, #0x20]
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl GetMonData
|
|
mov sl, r0
|
|
lsls r0, r5, #3
|
|
ldr r1, _0813DE50
|
|
adds r0, r0, r1
|
|
ldr r2, _0813DE54
|
|
ldr r1, [r2]
|
|
ldr r1, [r1, #8]
|
|
adds r2, r5, #0
|
|
bl DecompressPicFromTable_2
|
|
adds r0, r5, #0
|
|
ldr r1, [sp, #0x20]
|
|
mov r2, sl
|
|
bl GetMonSpritePalStructFromOtIdPersonality
|
|
ldr r0, [r0]
|
|
movs r1, #0x88
|
|
lsls r1, r1, #1
|
|
movs r2, #0x20
|
|
bl LoadCompressedPalette
|
|
adds r0, r5, #0
|
|
movs r1, #1
|
|
bl SetMultiuseSpriteTemplateToPokemon
|
|
ldr r0, _0813DE58
|
|
mov r8, r0
|
|
ldr r1, _0813DE5C
|
|
str r1, [r0, #0x10]
|
|
movs r1, #0x78
|
|
movs r2, #0x40
|
|
movs r3, #0x1e
|
|
bl CreateSprite
|
|
ldr r1, _0813DE40
|
|
ldr r2, [r1]
|
|
lsls r1, r0, #0x18
|
|
lsrs r3, r1, #0x18
|
|
strb r0, [r2]
|
|
ldr r7, _0813DE60
|
|
lsls r1, r3, #4
|
|
adds r1, r1, r3
|
|
lsls r1, r1, #2
|
|
adds r6, r7, #0
|
|
adds r6, #0x1c
|
|
adds r0, r1, r6
|
|
ldr r2, _0813DE64
|
|
str r2, [r0]
|
|
adds r1, r1, r7
|
|
ldrb r2, [r1, #5]
|
|
movs r4, #0xf
|
|
adds r0, r4, #0
|
|
ands r0, r2
|
|
movs r2, #0x10
|
|
orrs r0, r2
|
|
strb r0, [r1, #5]
|
|
adds r1, #0x3e
|
|
ldrb r0, [r1]
|
|
movs r2, #4
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
mov r1, sb
|
|
lsls r0, r1, #3
|
|
ldr r2, _0813DE50
|
|
adds r0, r0, r2
|
|
ldr r2, _0813DE54
|
|
ldr r1, [r2]
|
|
ldr r1, [r1, #0x10]
|
|
mov r2, sb
|
|
bl DecompressPicFromTable_2
|
|
mov r0, sb
|
|
ldr r1, [sp, #0x20]
|
|
mov r2, sl
|
|
bl GetMonSpritePalStructFromOtIdPersonality
|
|
ldr r0, [r0]
|
|
movs r1, #0x90
|
|
lsls r1, r1, #1
|
|
movs r2, #0x20
|
|
bl LoadCompressedPalette
|
|
mov r0, sb
|
|
movs r1, #3
|
|
bl SetMultiuseSpriteTemplateToPokemon
|
|
ldr r0, _0813DE5C
|
|
mov r1, r8
|
|
str r0, [r1, #0x10]
|
|
mov r0, r8
|
|
movs r1, #0x78
|
|
movs r2, #0x40
|
|
movs r3, #0x1e
|
|
bl CreateSprite
|
|
ldr r1, _0813DE40
|
|
ldr r2, [r1]
|
|
lsls r1, r0, #0x18
|
|
lsrs r3, r1, #0x18
|
|
strb r0, [r2, #1]
|
|
lsls r1, r3, #4
|
|
adds r1, r1, r3
|
|
lsls r1, r1, #2
|
|
adds r6, r1, r6
|
|
ldr r2, _0813DE64
|
|
str r2, [r6]
|
|
adds r1, r1, r7
|
|
ldrb r0, [r1, #5]
|
|
ands r4, r0
|
|
movs r0, #0x20
|
|
orrs r4, r0
|
|
strb r4, [r1, #5]
|
|
adds r1, #0x3e
|
|
ldrb r0, [r1]
|
|
movs r2, #4
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
bl LoadEvoSparkleSpriteAndPal
|
|
ldr r0, _0813DE68
|
|
movs r1, #0
|
|
bl CreateTask
|
|
ldr r1, _0813DE40
|
|
ldr r2, [r1]
|
|
lsls r1, r0, #0x18
|
|
lsrs r3, r1, #0x18
|
|
strb r0, [r2, #2]
|
|
ldr r1, _0813DE6C
|
|
lsls r0, r3, #2
|
|
adds r0, r0, r3
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
movs r2, #0
|
|
strh r2, [r0, #8]
|
|
strh r5, [r0, #0xa]
|
|
mov r1, sb
|
|
strh r1, [r0, #0xc]
|
|
mov r2, sp
|
|
ldrh r2, [r2, #0x18]
|
|
strh r2, [r0, #0xe]
|
|
movs r1, #1
|
|
strh r1, [r0, #0x10]
|
|
movs r1, #0
|
|
strh r1, [r0, #0x1a]
|
|
mov r2, sp
|
|
ldrh r2, [r2, #0x1c]
|
|
strh r2, [r0, #0x1c]
|
|
ldr r1, _0813DE40
|
|
ldr r0, [r1]
|
|
ldr r1, _0813DE70
|
|
adds r0, #4
|
|
movs r2, #0x60
|
|
bl memcpy
|
|
movs r1, #0xfa
|
|
lsls r1, r1, #5
|
|
movs r0, #0
|
|
bl SetGpuReg
|
|
ldr r0, _0813DE74
|
|
bl SetHBlankCallback
|
|
ldr r0, _0813DE78
|
|
bl SetVBlankCallback
|
|
bl m4aMPlayAllStop
|
|
ldr r0, _0813DE7C
|
|
bl SetMainCallback2
|
|
add sp, #0x24
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813DE14: .4byte 0x05006000
|
|
_0813DE18: .4byte 0x02022AC8
|
|
_0813DE1C: .4byte 0x02022ACA
|
|
_0813DE20: .4byte 0x02022ACC
|
|
_0813DE24: .4byte 0x02022ACE
|
|
_0813DE28: .4byte 0x02022AD0
|
|
_0813DE2C: .4byte 0x02022AD2
|
|
_0813DE30: .4byte 0x02022AD4
|
|
_0813DE34: .4byte 0x02022AD6
|
|
_0813DE38: .4byte 0x02022C94
|
|
_0813DE3C: .4byte 0x030030BC
|
|
_0813DE40: .4byte 0x0203A84C
|
|
_0813DE44: .4byte 0x02021C40
|
|
_0813DE48: .4byte 0x02021C54
|
|
_0813DE4C: .4byte 0x082EA31C
|
|
_0813DE50: .4byte 0x082DDA1C
|
|
_0813DE54: .4byte 0x02024178
|
|
_0813DE58: .4byte 0x02024640
|
|
_0813DE5C: .4byte 0x082BF310
|
|
_0813DE60: .4byte 0x020205AC
|
|
_0813DE64: .4byte 0x080394FD
|
|
_0813DE68: .4byte 0x0813E639
|
|
_0813DE6C: .4byte 0x03005B60
|
|
_0813DE70: .4byte 0x020373F4
|
|
_0813DE74: .4byte 0x0813FDA1
|
|
_0813DE78: .4byte 0x0813FDA5
|
|
_0813DE7C: .4byte 0x0813E4A9
|
|
thumb_func_end EvolutionScene
|
|
|
|
thumb_func_start CB2_EvolutionSceneLoadGraphics
|
|
CB2_EvolutionSceneLoadGraphics: @ 0x0813DE80
|
|
push {r4, r5, r6, lr}
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6}
|
|
sub sp, #8
|
|
ldr r2, _0813E018
|
|
ldr r0, _0813E01C
|
|
mov r8, r0
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, #2]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r2
|
|
movs r1, #0x1c
|
|
ldrsh r2, [r0, r1]
|
|
movs r1, #0x64
|
|
adds r4, r2, #0
|
|
muls r4, r1, r4
|
|
ldr r1, _0813E020
|
|
adds r4, r4, r1
|
|
ldrh r5, [r0, #0xc]
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl GetMonData
|
|
mov sb, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl GetMonData
|
|
adds r6, r0, #0
|
|
movs r0, #0
|
|
bl SetHBlankCallback
|
|
movs r0, #0
|
|
bl SetVBlankCallback
|
|
movs r4, #0
|
|
str r4, [sp, #4]
|
|
movs r1, #0xc0
|
|
lsls r1, r1, #0x13
|
|
ldr r2, _0813E024
|
|
add r0, sp, #4
|
|
bl CpuSet
|
|
movs r0, #0x4c
|
|
movs r1, #0
|
|
bl SetGpuReg
|
|
movs r0, #0x40
|
|
movs r1, #0
|
|
bl SetGpuReg
|
|
movs r0, #0x44
|
|
movs r1, #0
|
|
bl SetGpuReg
|
|
movs r0, #0x42
|
|
movs r1, #0
|
|
bl SetGpuReg
|
|
movs r0, #0x46
|
|
movs r1, #0
|
|
bl SetGpuReg
|
|
movs r0, #0x48
|
|
movs r1, #0
|
|
bl SetGpuReg
|
|
movs r0, #0x4a
|
|
movs r1, #0
|
|
bl SetGpuReg
|
|
bl ResetPaletteFade
|
|
ldr r0, _0813E028
|
|
strh r4, [r0]
|
|
ldr r0, _0813E02C
|
|
strh r4, [r0]
|
|
ldr r0, _0813E030
|
|
strh r4, [r0]
|
|
ldr r0, _0813E034
|
|
strh r4, [r0]
|
|
ldr r0, _0813E038
|
|
strh r4, [r0]
|
|
ldr r0, _0813E03C
|
|
strh r4, [r0]
|
|
ldr r1, _0813E040
|
|
movs r2, #0x80
|
|
lsls r2, r2, #1
|
|
adds r0, r2, #0
|
|
strh r0, [r1]
|
|
ldr r0, _0813E044
|
|
strh r4, [r0]
|
|
ldr r1, _0813E048
|
|
movs r0, #9
|
|
strb r0, [r1]
|
|
bl sub_08035528
|
|
bl LoadBattleTextboxAndBackground
|
|
bl ResetSpriteData
|
|
bl FreeAllSpritePalettes
|
|
ldr r1, _0813E04C
|
|
movs r0, #4
|
|
strb r0, [r1]
|
|
lsls r0, r5, #3
|
|
ldr r1, _0813E050
|
|
adds r0, r0, r1
|
|
ldr r1, _0813E054
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, #0x10]
|
|
adds r2, r5, #0
|
|
bl DecompressPicFromTable_2
|
|
adds r0, r5, #0
|
|
mov r1, sb
|
|
adds r2, r6, #0
|
|
bl GetMonSpritePalStructFromOtIdPersonality
|
|
ldr r0, [r0]
|
|
movs r1, #0x90
|
|
lsls r1, r1, #1
|
|
movs r2, #0x20
|
|
bl LoadCompressedPalette
|
|
adds r0, r5, #0
|
|
movs r1, #3
|
|
bl SetMultiuseSpriteTemplateToPokemon
|
|
ldr r0, _0813E058
|
|
ldr r1, _0813E05C
|
|
str r1, [r0, #0x10]
|
|
movs r1, #0x78
|
|
movs r2, #0x40
|
|
movs r3, #0x1e
|
|
bl CreateSprite
|
|
mov r2, r8
|
|
ldr r1, [r2]
|
|
lsls r2, r0, #0x18
|
|
lsrs r2, r2, #0x18
|
|
strb r0, [r1, #1]
|
|
ldr r3, _0813E060
|
|
lsls r1, r2, #4
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r0, r3, #0
|
|
adds r0, #0x1c
|
|
adds r0, r1, r0
|
|
ldr r2, _0813E064
|
|
str r2, [r0]
|
|
adds r1, r1, r3
|
|
ldrb r2, [r1, #5]
|
|
movs r0, #0xf
|
|
ands r0, r2
|
|
movs r2, #0x20
|
|
orrs r0, r2
|
|
strb r0, [r1, #5]
|
|
movs r1, #0xfa
|
|
lsls r1, r1, #5
|
|
movs r0, #0
|
|
bl SetGpuReg
|
|
ldr r0, _0813E068
|
|
bl SetHBlankCallback
|
|
ldr r0, _0813E06C
|
|
bl SetVBlankCallback
|
|
ldr r0, _0813E070
|
|
bl SetMainCallback2
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
str r4, [sp]
|
|
movs r1, #0
|
|
movs r2, #0x10
|
|
movs r3, #0
|
|
bl BeginNormalPaletteFade
|
|
movs r0, #0
|
|
bl ShowBg
|
|
movs r0, #1
|
|
bl ShowBg
|
|
movs r0, #2
|
|
bl ShowBg
|
|
movs r0, #3
|
|
bl ShowBg
|
|
add sp, #8
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813E018: .4byte 0x03005B60
|
|
_0813E01C: .4byte 0x0203A84C
|
|
_0813E020: .4byte 0x02024190
|
|
_0813E024: .4byte 0x05006000
|
|
_0813E028: .4byte 0x02022AC8
|
|
_0813E02C: .4byte 0x02022ACA
|
|
_0813E030: .4byte 0x02022ACC
|
|
_0813E034: .4byte 0x02022ACE
|
|
_0813E038: .4byte 0x02022AD0
|
|
_0813E03C: .4byte 0x02022AD2
|
|
_0813E040: .4byte 0x02022AD4
|
|
_0813E044: .4byte 0x02022AD6
|
|
_0813E048: .4byte 0x02022C94
|
|
_0813E04C: .4byte 0x030030BC
|
|
_0813E050: .4byte 0x082DDA1C
|
|
_0813E054: .4byte 0x02024178
|
|
_0813E058: .4byte 0x02024640
|
|
_0813E05C: .4byte 0x082BF310
|
|
_0813E060: .4byte 0x020205AC
|
|
_0813E064: .4byte 0x080394FD
|
|
_0813E068: .4byte 0x0813FDA1
|
|
_0813E06C: .4byte 0x0813FDA5
|
|
_0813E070: .4byte 0x0813E4A9
|
|
thumb_func_end CB2_EvolutionSceneLoadGraphics
|
|
|
|
thumb_func_start CB2_TradeEvolutionSceneLoadGraphics
|
|
CB2_TradeEvolutionSceneLoadGraphics: @ 0x0813E074
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #0xc
|
|
ldr r2, _0813E0B0
|
|
ldr r0, _0813E0B4
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, #2]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r2
|
|
movs r1, #0x1c
|
|
ldrsh r2, [r0, r1]
|
|
movs r1, #0x64
|
|
muls r2, r1, r2
|
|
ldr r1, _0813E0B8
|
|
adds r4, r2, r1
|
|
ldrh r6, [r0, #0xc]
|
|
ldr r0, _0813E0BC
|
|
movs r3, #0x87
|
|
lsls r3, r3, #3
|
|
adds r0, r0, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, #7
|
|
bls _0813E0A6
|
|
b _0813E2CC
|
|
_0813E0A6:
|
|
lsls r0, r0, #2
|
|
ldr r1, _0813E0C0
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0813E0B0: .4byte 0x03005B60
|
|
_0813E0B4: .4byte 0x0203A84C
|
|
_0813E0B8: .4byte 0x02024190
|
|
_0813E0BC: .4byte 0x03002360
|
|
_0813E0C0: .4byte 0x0813E0C4
|
|
_0813E0C4: @ jump table
|
|
.4byte _0813E0E4 @ case 0
|
|
.4byte _0813E154 @ case 1
|
|
.4byte _0813E17C @ case 2
|
|
.4byte _0813E182 @ case 3
|
|
.4byte _0813E1AC @ case 4
|
|
.4byte _0813E1F4 @ case 5
|
|
.4byte _0813E264 @ case 6
|
|
.4byte _0813E29C @ case 7
|
|
_0813E0E4:
|
|
movs r0, #0
|
|
movs r1, #0
|
|
bl SetGpuReg
|
|
movs r0, #0
|
|
bl SetHBlankCallback
|
|
movs r0, #0
|
|
bl SetVBlankCallback
|
|
bl ResetSpriteData
|
|
bl FreeAllSpritePalettes
|
|
ldr r1, _0813E130
|
|
movs r0, #4
|
|
strb r0, [r1]
|
|
ldr r0, _0813E134
|
|
movs r1, #0
|
|
strh r1, [r0]
|
|
ldr r0, _0813E138
|
|
strh r1, [r0]
|
|
ldr r0, _0813E13C
|
|
strh r1, [r0]
|
|
ldr r0, _0813E140
|
|
strh r1, [r0]
|
|
ldr r0, _0813E144
|
|
strh r1, [r0]
|
|
ldr r0, _0813E148
|
|
strh r1, [r0]
|
|
ldr r2, _0813E14C
|
|
movs r3, #0x80
|
|
lsls r3, r3, #1
|
|
adds r0, r3, #0
|
|
strh r0, [r2]
|
|
ldr r0, _0813E150
|
|
strh r1, [r0]
|
|
b _0813E284
|
|
.align 2, 0
|
|
_0813E130: .4byte 0x030030BC
|
|
_0813E134: .4byte 0x02022AC8
|
|
_0813E138: .4byte 0x02022ACA
|
|
_0813E13C: .4byte 0x02022ACC
|
|
_0813E140: .4byte 0x02022ACE
|
|
_0813E144: .4byte 0x02022AD0
|
|
_0813E148: .4byte 0x02022AD2
|
|
_0813E14C: .4byte 0x02022AD4
|
|
_0813E150: .4byte 0x02022AD6
|
|
_0813E154:
|
|
bl ResetPaletteFade
|
|
ldr r0, _0813E170
|
|
bl SetHBlankCallback
|
|
ldr r0, _0813E174
|
|
bl SetVBlankCallback
|
|
ldr r1, _0813E178
|
|
movs r3, #0x87
|
|
lsls r3, r3, #3
|
|
adds r1, r1, r3
|
|
b _0813E28C
|
|
.align 2, 0
|
|
_0813E170: .4byte 0x0813FDA1
|
|
_0813E174: .4byte 0x0813FE2D
|
|
_0813E178: .4byte 0x03002360
|
|
_0813E17C:
|
|
bl sub_0807EBD4
|
|
b _0813E284
|
|
_0813E182:
|
|
movs r0, #0x20
|
|
str r0, [sp]
|
|
str r0, [sp, #4]
|
|
movs r0, #0x11
|
|
str r0, [sp, #8]
|
|
movs r0, #1
|
|
movs r1, #0
|
|
movs r2, #0
|
|
movs r3, #0
|
|
bl FillBgTilemapBufferRect
|
|
movs r0, #1
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r1, _0813E1A8
|
|
movs r3, #0x87
|
|
lsls r3, r3, #3
|
|
adds r1, r1, r3
|
|
b _0813E28C
|
|
.align 2, 0
|
|
_0813E1A8: .4byte 0x03002360
|
|
_0813E1AC:
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl GetMonData
|
|
adds r5, r0, #0
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl GetMonData
|
|
adds r4, r0, #0
|
|
lsls r0, r6, #3
|
|
ldr r1, _0813E1EC
|
|
adds r0, r0, r1
|
|
ldr r1, _0813E1F0
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, #0x10]
|
|
adds r2, r6, #0
|
|
bl DecompressPicFromTable_2
|
|
adds r0, r6, #0
|
|
adds r1, r5, #0
|
|
adds r2, r4, #0
|
|
bl GetMonSpritePalStructFromOtIdPersonality
|
|
ldr r0, [r0]
|
|
movs r1, #0x90
|
|
lsls r1, r1, #1
|
|
movs r2, #0x20
|
|
bl LoadCompressedPalette
|
|
b _0813E284
|
|
.align 2, 0
|
|
_0813E1EC: .4byte 0x082DDA1C
|
|
_0813E1F0: .4byte 0x02024178
|
|
_0813E1F4:
|
|
adds r0, r6, #0
|
|
movs r1, #1
|
|
bl SetMultiuseSpriteTemplateToPokemon
|
|
ldr r0, _0813E24C
|
|
ldr r1, _0813E250
|
|
str r1, [r0, #0x10]
|
|
movs r1, #0x78
|
|
movs r2, #0x40
|
|
movs r3, #0x1e
|
|
bl CreateSprite
|
|
ldr r1, _0813E254
|
|
ldr r1, [r1]
|
|
lsls r2, r0, #0x18
|
|
lsrs r2, r2, #0x18
|
|
strb r0, [r1, #1]
|
|
ldr r3, _0813E258
|
|
lsls r1, r2, #4
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r0, r3, #0
|
|
adds r0, #0x1c
|
|
adds r0, r1, r0
|
|
ldr r2, _0813E25C
|
|
str r2, [r0]
|
|
adds r1, r1, r3
|
|
ldrb r2, [r1, #5]
|
|
movs r0, #0xf
|
|
ands r0, r2
|
|
movs r2, #0x20
|
|
orrs r0, r2
|
|
strb r0, [r1, #5]
|
|
ldr r1, _0813E260
|
|
movs r3, #0x87
|
|
lsls r3, r3, #3
|
|
adds r1, r1, r3
|
|
ldrb r0, [r1]
|
|
adds r0, #1
|
|
strb r0, [r1]
|
|
bl sub_0807ABB0
|
|
b _0813E2CC
|
|
.align 2, 0
|
|
_0813E24C: .4byte 0x02024640
|
|
_0813E250: .4byte 0x082BF310
|
|
_0813E254: .4byte 0x0203A84C
|
|
_0813E258: .4byte 0x020205AC
|
|
_0813E25C: .4byte 0x080394FD
|
|
_0813E260: .4byte 0x03002360
|
|
_0813E264:
|
|
ldr r0, _0813E294
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0813E278
|
|
bl LoadWirelessStatusIndicatorSpriteGfx
|
|
movs r0, #0
|
|
movs r1, #0
|
|
bl CreateWirelessStatusIndicatorSprite
|
|
_0813E278:
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
movs r1, #0x10
|
|
movs r2, #0
|
|
bl BlendPalettes
|
|
_0813E284:
|
|
ldr r1, _0813E298
|
|
movs r0, #0x87
|
|
lsls r0, r0, #3
|
|
adds r1, r1, r0
|
|
_0813E28C:
|
|
ldrb r0, [r1]
|
|
adds r0, #1
|
|
strb r0, [r1]
|
|
b _0813E2CC
|
|
.align 2, 0
|
|
_0813E294: .4byte 0x0300319C
|
|
_0813E298: .4byte 0x03002360
|
|
_0813E29C:
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
movs r1, #0
|
|
str r1, [sp]
|
|
movs r2, #0x10
|
|
movs r3, #0
|
|
bl BeginNormalPaletteFade
|
|
bl sub_0807AB9C
|
|
movs r0, #0
|
|
bl ShowBg
|
|
movs r0, #1
|
|
bl ShowBg
|
|
ldr r0, _0813E2D4
|
|
bl SetMainCallback2
|
|
movs r1, #0x9a
|
|
lsls r1, r1, #5
|
|
movs r0, #0
|
|
bl SetGpuReg
|
|
_0813E2CC:
|
|
add sp, #0xc
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813E2D4: .4byte 0x0813E4C5
|
|
thumb_func_end CB2_TradeEvolutionSceneLoadGraphics
|
|
|
|
thumb_func_start TradeEvolutionScene
|
|
TradeEvolutionScene: @ 0x0813E2D8
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0x18
|
|
adds r4, r0, #0
|
|
adds r5, r1, #0
|
|
adds r6, r2, #0
|
|
lsls r5, r5, #0x10
|
|
lsrs r5, r5, #0x10
|
|
lsls r6, r6, #0x18
|
|
lsrs r6, r6, #0x18
|
|
lsls r3, r3, #0x18
|
|
lsrs r3, r3, #0x18
|
|
str r3, [sp, #0x14]
|
|
movs r1, #2
|
|
mov r2, sp
|
|
bl GetMonData
|
|
ldr r0, _0813E448
|
|
mov r1, sp
|
|
bl StringCopy10
|
|
ldr r0, _0813E44C
|
|
lsls r1, r5, #1
|
|
adds r1, r1, r5
|
|
lsls r1, r1, #1
|
|
ldr r2, _0813E450
|
|
adds r1, r1, r2
|
|
bl StringCopy
|
|
ldr r1, _0813E454
|
|
movs r0, #1
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
mov r8, r0
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
mov r8, r0
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl GetMonData
|
|
adds r7, r0, #0
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl GetMonData
|
|
mov sl, r0
|
|
ldr r1, _0813E458
|
|
mov sb, r1
|
|
movs r0, #0x64
|
|
bl AllocZeroed
|
|
mov r2, sb
|
|
str r0, [r2]
|
|
movs r4, #0
|
|
strb r6, [r0]
|
|
lsls r0, r5, #3
|
|
ldr r1, _0813E45C
|
|
adds r0, r0, r1
|
|
ldr r1, _0813E460
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, #8]
|
|
adds r2, r5, #0
|
|
bl DecompressPicFromTable_2
|
|
adds r0, r5, #0
|
|
mov r1, sl
|
|
adds r2, r7, #0
|
|
bl GetMonSpritePalStructFromOtIdPersonality
|
|
ldr r0, [r0]
|
|
movs r1, #0x90
|
|
lsls r1, r1, #1
|
|
movs r2, #0x20
|
|
bl LoadCompressedPalette
|
|
adds r0, r5, #0
|
|
movs r1, #1
|
|
bl SetMultiuseSpriteTemplateToPokemon
|
|
ldr r0, _0813E464
|
|
ldr r1, _0813E468
|
|
str r1, [r0, #0x10]
|
|
movs r1, #0x78
|
|
movs r2, #0x40
|
|
movs r3, #0x1e
|
|
bl CreateSprite
|
|
mov r1, sb
|
|
ldr r2, [r1]
|
|
lsls r1, r0, #0x18
|
|
lsrs r6, r1, #0x18
|
|
strb r0, [r2, #1]
|
|
ldr r3, _0813E46C
|
|
lsls r1, r6, #4
|
|
adds r1, r1, r6
|
|
lsls r1, r1, #2
|
|
adds r0, r3, #0
|
|
adds r0, #0x1c
|
|
adds r0, r1, r0
|
|
ldr r2, _0813E470
|
|
str r2, [r0]
|
|
adds r1, r1, r3
|
|
ldrb r2, [r1, #5]
|
|
movs r0, #0xf
|
|
ands r0, r2
|
|
movs r2, #0x20
|
|
orrs r0, r2
|
|
strb r0, [r1, #5]
|
|
adds r1, #0x3e
|
|
ldrb r0, [r1]
|
|
movs r2, #4
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
bl LoadEvoSparkleSpriteAndPal
|
|
ldr r0, _0813E474
|
|
movs r1, #0
|
|
bl CreateTask
|
|
mov r1, sb
|
|
ldr r2, [r1]
|
|
lsls r1, r0, #0x18
|
|
lsrs r6, r1, #0x18
|
|
strb r0, [r2, #2]
|
|
ldr r1, _0813E478
|
|
lsls r0, r6, #2
|
|
adds r0, r0, r6
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
strh r4, [r0, #8]
|
|
mov r2, r8
|
|
strh r2, [r0, #0xa]
|
|
strh r5, [r0, #0xc]
|
|
movs r1, #1
|
|
strh r1, [r0, #0x10]
|
|
strh r4, [r0, #0x1a]
|
|
mov r1, sp
|
|
ldrh r1, [r1, #0x14]
|
|
strh r1, [r0, #0x1c]
|
|
ldr r0, _0813E47C
|
|
strh r4, [r0]
|
|
ldr r0, _0813E480
|
|
strh r4, [r0]
|
|
ldr r0, _0813E484
|
|
strh r4, [r0]
|
|
ldr r0, _0813E488
|
|
strh r4, [r0]
|
|
ldr r0, _0813E48C
|
|
strh r4, [r0]
|
|
ldr r0, _0813E490
|
|
strh r4, [r0]
|
|
ldr r1, _0813E494
|
|
movs r2, #0x80
|
|
lsls r2, r2, #1
|
|
adds r0, r2, #0
|
|
strh r0, [r1]
|
|
ldr r0, _0813E498
|
|
strh r4, [r0]
|
|
ldr r2, _0813E49C
|
|
ldrb r0, [r2]
|
|
movs r1, #2
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, _0813E4A0
|
|
bl SetVBlankCallback
|
|
ldr r0, _0813E4A4
|
|
bl SetMainCallback2
|
|
add sp, #0x18
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813E448: .4byte 0x02021C40
|
|
_0813E44C: .4byte 0x02021C54
|
|
_0813E450: .4byte 0x082EA31C
|
|
_0813E454: .4byte 0x02021C3C
|
|
_0813E458: .4byte 0x0203A84C
|
|
_0813E45C: .4byte 0x082DDA1C
|
|
_0813E460: .4byte 0x02024178
|
|
_0813E464: .4byte 0x02024640
|
|
_0813E468: .4byte 0x082BF310
|
|
_0813E46C: .4byte 0x020205AC
|
|
_0813E470: .4byte 0x080394FD
|
|
_0813E474: .4byte 0x0813F281
|
|
_0813E478: .4byte 0x03005B60
|
|
_0813E47C: .4byte 0x02022AC8
|
|
_0813E480: .4byte 0x02022ACA
|
|
_0813E484: .4byte 0x02022ACC
|
|
_0813E488: .4byte 0x02022ACE
|
|
_0813E48C: .4byte 0x02022AD0
|
|
_0813E490: .4byte 0x02022AD2
|
|
_0813E494: .4byte 0x02022AD4
|
|
_0813E498: .4byte 0x02022AD6
|
|
_0813E49C: .4byte 0x030030B4
|
|
_0813E4A0: .4byte 0x0813FE2D
|
|
_0813E4A4: .4byte 0x0813E4C5
|
|
thumb_func_end TradeEvolutionScene
|
|
|
|
thumb_func_start CB2_EvolutionSceneUpdate
|
|
CB2_EvolutionSceneUpdate: @ 0x0813E4A8
|
|
push {lr}
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl RunTextPrinters
|
|
bl UpdatePaletteFade
|
|
bl RunTasks
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end CB2_EvolutionSceneUpdate
|
|
|
|
thumb_func_start CB2_TradeEvolutionSceneUpdate
|
|
CB2_TradeEvolutionSceneUpdate: @ 0x0813E4C4
|
|
push {lr}
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl RunTextPrinters
|
|
bl UpdatePaletteFade
|
|
bl RunTasks
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end CB2_TradeEvolutionSceneUpdate
|
|
|
|
thumb_func_start CreateShedinja
|
|
CreateShedinja: @ 0x0813E4E0
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #8
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
mov sb, r0
|
|
movs r0, #0
|
|
str r0, [sp]
|
|
ldr r0, _0813E628
|
|
mov sl, r0
|
|
mov r2, sb
|
|
lsls r2, r2, #2
|
|
str r2, [sp, #4]
|
|
adds r0, r2, #0
|
|
add r0, sb
|
|
lsls r7, r0, #3
|
|
adds r0, r7, #0
|
|
add r0, sl
|
|
mov r8, r0
|
|
ldrh r0, [r0]
|
|
cmp r0, #0xd
|
|
beq _0813E514
|
|
b _0813E616
|
|
_0813E514:
|
|
ldr r6, _0813E62C
|
|
ldrb r0, [r6]
|
|
cmp r0, #5
|
|
bhi _0813E616
|
|
movs r5, #0x64
|
|
muls r0, r5, r0
|
|
ldr r4, _0813E630
|
|
adds r0, r0, r4
|
|
movs r2, #0x64
|
|
bl CopyMon
|
|
ldrb r0, [r6]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r4
|
|
mov r1, sl
|
|
adds r2, r1, r7
|
|
adds r2, #0xc
|
|
movs r1, #0xb
|
|
bl SetMonData
|
|
ldrb r0, [r6]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r4
|
|
mov r2, r8
|
|
ldrh r1, [r2, #0xc]
|
|
lsls r2, r1, #1
|
|
adds r2, r2, r1
|
|
lsls r2, r2, #1
|
|
ldr r1, _0813E634
|
|
adds r2, r2, r1
|
|
movs r1, #2
|
|
bl SetMonData
|
|
ldrb r0, [r6]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r4
|
|
movs r1, #0xc
|
|
mov r2, sp
|
|
bl SetMonData
|
|
ldrb r0, [r6]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r4
|
|
movs r1, #8
|
|
mov r2, sp
|
|
bl SetMonData
|
|
ldrb r0, [r6]
|
|
muls r0, r5, r0
|
|
adds r0, r0, r4
|
|
movs r1, #0xa
|
|
mov r2, sp
|
|
bl SetMonData
|
|
movs r4, #0x32
|
|
ldr r0, [sp, #4]
|
|
mov r8, r0
|
|
adds r5, r6, #0
|
|
_0813E588:
|
|
ldrb r1, [r5]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _0813E630
|
|
adds r0, r0, r1
|
|
adds r1, r4, #0
|
|
mov r2, sp
|
|
bl SetMonData
|
|
adds r4, #1
|
|
cmp r4, #0x36
|
|
ble _0813E588
|
|
movs r4, #0x43
|
|
ldr r7, _0813E62C
|
|
_0813E5A4:
|
|
ldrb r0, [r7]
|
|
movs r6, #0x64
|
|
muls r0, r6, r0
|
|
ldr r5, _0813E630
|
|
adds r0, r0, r5
|
|
adds r1, r4, #0
|
|
mov r2, sp
|
|
bl SetMonData
|
|
adds r4, #1
|
|
cmp r4, #0x4f
|
|
ble _0813E5A4
|
|
ldr r4, _0813E62C
|
|
ldrb r0, [r4]
|
|
muls r0, r6, r0
|
|
adds r0, r0, r5
|
|
movs r1, #0x37
|
|
mov r2, sp
|
|
bl SetMonData
|
|
movs r0, #0xff
|
|
str r0, [sp]
|
|
ldrb r0, [r4]
|
|
muls r0, r6, r0
|
|
adds r0, r0, r5
|
|
movs r1, #0x40
|
|
mov r2, sp
|
|
bl SetMonData
|
|
ldrb r0, [r4]
|
|
muls r0, r6, r0
|
|
adds r0, r0, r5
|
|
bl CalculateMonStats
|
|
bl CalculatePlayerPartyCount
|
|
ldr r0, _0813E628
|
|
mov r4, r8
|
|
add r4, sb
|
|
lsls r4, r4, #3
|
|
adds r4, r4, r0
|
|
ldrh r0, [r4, #0xc]
|
|
bl HoennToNationalOrder
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #2
|
|
bl GetSetPokedexFlag
|
|
ldrh r0, [r4, #0xc]
|
|
bl HoennToNationalOrder
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #3
|
|
bl GetSetPokedexFlag
|
|
_0813E616:
|
|
add sp, #8
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813E628: .4byte 0x082F5CA4
|
|
_0813E62C: .4byte 0x0202418D
|
|
_0813E630: .4byte 0x02024190
|
|
_0813E634: .4byte 0x082EA31C
|
|
thumb_func_end CreateShedinja
|
|
|
|
thumb_func_start Task_EvolutionScene
|
|
Task_EvolutionScene: @ 0x0813E638
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
sub sp, #0x18
|
|
lsls r0, r0, #0x18
|
|
lsrs r7, r0, #0x18
|
|
ldr r2, _0813E6A8
|
|
lsls r0, r7, #2
|
|
adds r0, r0, r7
|
|
lsls r0, r0, #3
|
|
adds r3, r0, r2
|
|
movs r0, #0x1c
|
|
ldrsh r1, [r3, r0]
|
|
movs r0, #0x64
|
|
muls r1, r0, r1
|
|
ldr r0, _0813E6AC
|
|
adds r1, r1, r0
|
|
mov sb, r1
|
|
ldr r0, _0813E6B0
|
|
ldrh r1, [r0, #0x2c]
|
|
adds r5, r2, #0
|
|
adds r6, r0, #0
|
|
cmp r1, #2
|
|
bne _0813E6B8
|
|
movs r1, #8
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, #8
|
|
bne _0813E6B8
|
|
ldr r4, _0813E6B4
|
|
ldrb r0, [r4, #2]
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r5
|
|
ldrb r0, [r1, #4]
|
|
cmp r0, #0
|
|
beq _0813E6B8
|
|
ldrh r1, [r3, #0xe]
|
|
movs r2, #1
|
|
adds r0, r2, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0813E6B8
|
|
movs r0, #0x11
|
|
strh r0, [r3, #8]
|
|
ldrb r1, [r4, #2]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r5
|
|
strh r2, [r0, #0x18]
|
|
bl sub_081401FC
|
|
bl _0813F26C
|
|
.align 2, 0
|
|
_0813E6A8: .4byte 0x03005B60
|
|
_0813E6AC: .4byte 0x02024190
|
|
_0813E6B0: .4byte 0x03002360
|
|
_0813E6B4: .4byte 0x02023FD6
|
|
_0813E6B8:
|
|
lsls r1, r7, #2
|
|
adds r0, r1, r7
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r5
|
|
movs r2, #8
|
|
ldrsh r0, [r0, r2]
|
|
mov r8, r1
|
|
cmp r0, #0x16
|
|
bls _0813E6CE
|
|
bl _0813F26C
|
|
_0813E6CE:
|
|
lsls r0, r0, #2
|
|
ldr r1, _0813E6D8
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0813E6D8: .4byte 0x0813E6DC
|
|
_0813E6DC: @ jump table
|
|
.4byte _0813E738 @ case 0
|
|
.4byte _0813E79C @ case 1
|
|
.4byte _0813E7DC @ case 2
|
|
.4byte _0813E808 @ case 3
|
|
.4byte _0813E838 @ case 4
|
|
.4byte _0813E878 @ case 5
|
|
.4byte _0813E8B0 @ case 6
|
|
.4byte _0813E8F0 @ case 7
|
|
.4byte _0813E928 @ case 8
|
|
.4byte _0813E96C @ case 9
|
|
.4byte _0813E988 @ case 10
|
|
.4byte _0813E9B4 @ case 11
|
|
.4byte _0813E9E0 @ case 12
|
|
.4byte _0813EA2C @ case 13
|
|
.4byte _0813EA58 @ case 14
|
|
.4byte _0813EAE4 @ case 15
|
|
.4byte _0813EB90 @ case 16
|
|
.4byte _0813EBFC @ case 17
|
|
.4byte _0813EC3C @ case 18
|
|
.4byte _0813EC70 @ case 19
|
|
.4byte _0813ECD8 @ case 20
|
|
.4byte _0813ED34 @ case 21
|
|
.4byte _0813ED70 @ case 22
|
|
_0813E738:
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
movs r1, #0
|
|
str r1, [sp]
|
|
movs r2, #0x10
|
|
movs r3, #0
|
|
bl BeginNormalPaletteFade
|
|
ldr r2, _0813E790
|
|
ldr r0, _0813E794
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
adds r0, #0x3e
|
|
ldrb r2, [r0]
|
|
movs r1, #5
|
|
rsbs r1, r1, #0
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
ldr r0, _0813E798
|
|
mov r3, r8
|
|
adds r1, r3, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1, #8]
|
|
adds r0, #1
|
|
strh r0, [r1, #8]
|
|
movs r0, #0
|
|
bl ShowBg
|
|
movs r0, #1
|
|
bl ShowBg
|
|
movs r0, #2
|
|
bl ShowBg
|
|
movs r0, #3
|
|
bl ShowBg
|
|
bl _0813F26C
|
|
.align 2, 0
|
|
_0813E790: .4byte 0x020205AC
|
|
_0813E794: .4byte 0x0203A84C
|
|
_0813E798: .4byte 0x03005B60
|
|
_0813E79C:
|
|
ldr r0, _0813E7CC
|
|
ldrb r1, [r0, #7]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0813E7AC
|
|
bl _0813F26C
|
|
_0813E7AC:
|
|
ldr r4, _0813E7D0
|
|
ldr r1, _0813E7D4
|
|
adds r0, r4, #0
|
|
bl StringExpandPlaceholders
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0814FA04
|
|
ldr r0, _0813E7D8
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
b _0813ED1A
|
|
.align 2, 0
|
|
_0813E7CC: .4byte 0x02037C74
|
|
_0813E7D0: .4byte 0x02021C7C
|
|
_0813E7D4: .4byte 0x085ABAFC
|
|
_0813E7D8: .4byte 0x03005B60
|
|
_0813E7DC:
|
|
movs r0, #0
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
beq _0813E7EC
|
|
bl _0813F26C
|
|
_0813E7EC:
|
|
ldr r0, _0813E800
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
ldr r1, _0813E804
|
|
mov r3, r8
|
|
adds r4, r3, r7
|
|
lsls r4, r4, #3
|
|
adds r4, r4, r1
|
|
b _0813EC58
|
|
.align 2, 0
|
|
_0813E800: .4byte 0x0203A84C
|
|
_0813E804: .4byte 0x03005B60
|
|
_0813E808:
|
|
ldr r0, _0813E830
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
bl EvoScene_IsMonAnimFinished
|
|
cmp r0, #0
|
|
bne _0813E81A
|
|
bl _0813F26C
|
|
_0813E81A:
|
|
movs r0, #0xbc
|
|
lsls r0, r0, #1
|
|
bl PlaySE
|
|
ldr r0, _0813E834
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
b _0813ED1A
|
|
.align 2, 0
|
|
_0813E830: .4byte 0x0203A84C
|
|
_0813E834: .4byte 0x03005B60
|
|
_0813E838:
|
|
bl IsSEPlaying
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #0
|
|
beq _0813E848
|
|
bl _0813F26C
|
|
_0813E848:
|
|
ldr r0, _0813E870
|
|
bl PlayNewMapMusic
|
|
ldr r0, _0813E874
|
|
mov r3, r8
|
|
adds r1, r3, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1, #8]
|
|
adds r0, #1
|
|
strh r0, [r1, #8]
|
|
str r4, [sp]
|
|
movs r0, #0x1c
|
|
movs r1, #4
|
|
movs r2, #0
|
|
movs r3, #0x10
|
|
bl BeginNormalPaletteFade
|
|
bl _0813F26C
|
|
.align 2, 0
|
|
_0813E870: .4byte 0x00000179
|
|
_0813E874: .4byte 0x03005B60
|
|
_0813E878:
|
|
ldr r0, _0813E8A4
|
|
ldrb r1, [r0, #7]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0813E888
|
|
bl _0813F26C
|
|
_0813E888:
|
|
movs r0, #0
|
|
bl InitMovingBackgroundTask
|
|
movs r0, #0x11
|
|
bl LaunchTask_PreEvoSparklesSet1
|
|
ldr r1, _0813E8A8
|
|
strb r0, [r1, #2]
|
|
ldr r0, _0813E8AC
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
b _0813ED1A
|
|
.align 2, 0
|
|
_0813E8A4: .4byte 0x02037C74
|
|
_0813E8A8: .4byte 0x02023FD6
|
|
_0813E8AC: .4byte 0x03005B60
|
|
_0813E8B0:
|
|
ldr r4, _0813E8E8
|
|
ldrb r0, [r4, #2]
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r5
|
|
ldrb r0, [r1, #4]
|
|
cmp r0, #0
|
|
beq _0813E8C6
|
|
bl _0813F26C
|
|
_0813E8C6:
|
|
mov r3, r8
|
|
adds r1, r3, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r5
|
|
ldrh r0, [r1, #8]
|
|
adds r0, #1
|
|
strh r0, [r1, #8]
|
|
ldr r0, _0813E8EC
|
|
ldr r1, [r0]
|
|
movs r0, #1
|
|
strb r0, [r1, #3]
|
|
bl LaunchTask_PostEvoSparklesSet1
|
|
strb r0, [r4, #2]
|
|
bl _0813F26C
|
|
.align 2, 0
|
|
_0813E8E8: .4byte 0x02023FD6
|
|
_0813E8EC: .4byte 0x0203A84C
|
|
_0813E8F0:
|
|
ldr r4, _0813E920
|
|
ldrb r0, [r4, #2]
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r5
|
|
ldrb r0, [r1, #4]
|
|
cmp r0, #0
|
|
beq _0813E906
|
|
bl _0813F26C
|
|
_0813E906:
|
|
ldr r0, _0813E924
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1]
|
|
ldrb r1, [r1, #1]
|
|
bl sub_0817C260
|
|
strb r0, [r4, #2]
|
|
mov r0, r8
|
|
adds r1, r0, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r5
|
|
b _0813ED1A
|
|
.align 2, 0
|
|
_0813E920: .4byte 0x02023FD6
|
|
_0813E924: .4byte 0x0203A84C
|
|
_0813E928:
|
|
ldr r2, _0813E964
|
|
ldr r1, [r2]
|
|
ldrb r0, [r1, #3]
|
|
subs r0, #1
|
|
strb r0, [r1, #3]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0813E93C
|
|
bl _0813F26C
|
|
_0813E93C:
|
|
ldr r1, [r2]
|
|
movs r0, #3
|
|
strb r0, [r1, #3]
|
|
ldr r0, _0813E968
|
|
ldrb r1, [r0, #2]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0, #4]
|
|
cmp r0, #0
|
|
beq _0813E958
|
|
bl _0813F26C
|
|
_0813E958:
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r5
|
|
b _0813ED1A
|
|
.align 2, 0
|
|
_0813E964: .4byte 0x0203A84C
|
|
_0813E968: .4byte 0x02023FD6
|
|
_0813E96C:
|
|
bl LaunchTask_PreEvoSparklesSet2
|
|
ldr r1, _0813E980
|
|
strb r0, [r1, #2]
|
|
ldr r0, _0813E984
|
|
mov r3, r8
|
|
adds r1, r3, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
b _0813ED1A
|
|
.align 2, 0
|
|
_0813E980: .4byte 0x02023FD6
|
|
_0813E984: .4byte 0x03005B60
|
|
_0813E988:
|
|
ldr r6, _0813E9B0
|
|
ldrb r0, [r6, #2]
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r5
|
|
ldrb r0, [r1, #4]
|
|
cmp r0, #0
|
|
beq _0813E99E
|
|
bl _0813F26C
|
|
_0813E99E:
|
|
mov r0, r8
|
|
adds r4, r0, r7
|
|
lsls r4, r4, #3
|
|
adds r4, r4, r5
|
|
ldrh r0, [r4, #0xc]
|
|
bl LaunchTask_PostEvoSparklesSet2AndFlash
|
|
strb r0, [r6, #2]
|
|
b _0813EC5E
|
|
.align 2, 0
|
|
_0813E9B0: .4byte 0x02023FD6
|
|
_0813E9B4:
|
|
ldr r0, _0813E9DC
|
|
ldrb r1, [r0, #2]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0, #4]
|
|
cmp r0, #0
|
|
beq _0813E9CA
|
|
bl _0813F26C
|
|
_0813E9CA:
|
|
movs r0, #0x21
|
|
bl PlaySE
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r5
|
|
b _0813ED1A
|
|
.align 2, 0
|
|
_0813E9DC: .4byte 0x02023FD6
|
|
_0813E9E0:
|
|
bl IsSEPlaying
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0813E9EE
|
|
bl _0813F26C
|
|
_0813E9EE:
|
|
bl m4aMPlayAllStop
|
|
ldr r0, _0813EA20
|
|
ldr r1, _0813EA24
|
|
ldr r1, [r1]
|
|
adds r1, #4
|
|
movs r2, #0x60
|
|
bl memcpy
|
|
bl sub_0814023C
|
|
movs r0, #0
|
|
str r0, [sp]
|
|
movs r0, #0x1c
|
|
movs r1, #0
|
|
movs r2, #0x10
|
|
movs r3, #0
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, _0813EA28
|
|
mov r3, r8
|
|
adds r1, r3, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
b _0813ED1A
|
|
.align 2, 0
|
|
_0813EA20: .4byte 0x020373F4
|
|
_0813EA24: .4byte 0x0203A84C
|
|
_0813EA28: .4byte 0x03005B60
|
|
_0813EA2C:
|
|
ldr r0, _0813EA50
|
|
ldrb r1, [r0, #7]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0813EA3C
|
|
bl _0813F26C
|
|
_0813EA3C:
|
|
ldr r0, _0813EA54
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #1]
|
|
mov r1, r8
|
|
adds r4, r1, r7
|
|
lsls r4, r4, #3
|
|
adds r4, r4, r5
|
|
ldrh r1, [r4, #0xc]
|
|
b _0813EC5A
|
|
.align 2, 0
|
|
_0813EA50: .4byte 0x02037C74
|
|
_0813EA54: .4byte 0x0203A84C
|
|
_0813EA58:
|
|
bl IsCryFinished
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0813EA66
|
|
bl _0813F26C
|
|
_0813EA66:
|
|
ldr r4, _0813EAD4
|
|
ldr r1, _0813EAD8
|
|
adds r0, r4, #0
|
|
bl StringExpandPlaceholders
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0814FA04
|
|
ldr r0, _0813EADC
|
|
bl PlayBGM
|
|
ldr r2, _0813EAE0
|
|
mov r3, r8
|
|
adds r1, r3, r7
|
|
lsls r1, r1, #3
|
|
adds r4, r1, r2
|
|
ldrh r0, [r4, #8]
|
|
adds r0, #1
|
|
strh r0, [r4, #8]
|
|
adds r2, r2, r1
|
|
adds r2, #0xc
|
|
mov r0, sb
|
|
movs r1, #0xb
|
|
bl SetMonData
|
|
mov r0, sb
|
|
bl CalculateMonStats
|
|
ldrh r1, [r4, #0xa]
|
|
ldrh r2, [r4, #0xc]
|
|
mov r0, sb
|
|
bl sub_0806D23C
|
|
ldrh r0, [r4, #0xc]
|
|
bl HoennToNationalOrder
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #2
|
|
bl GetSetPokedexFlag
|
|
ldrh r0, [r4, #0xc]
|
|
bl HoennToNationalOrder
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #3
|
|
bl GetSetPokedexFlag
|
|
movs r0, #0xe
|
|
bl IncrementGameStat
|
|
b _0813F26C
|
|
.align 2, 0
|
|
_0813EAD4: .4byte 0x02021C7C
|
|
_0813EAD8: .4byte 0x085ABB0F
|
|
_0813EADC: .4byte 0x00000173
|
|
_0813EAE0: .4byte 0x03005B60
|
|
_0813EAE4:
|
|
movs r0, #0
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
beq _0813EAF2
|
|
b _0813F26C
|
|
_0813EAF2:
|
|
ldr r1, _0813EB50
|
|
mov r2, r8
|
|
adds r0, r2, r7
|
|
lsls r0, r0, #3
|
|
adds r4, r0, r1
|
|
ldrb r1, [r4, #0x10]
|
|
mov r0, sb
|
|
bl MonTryLearningNewMove
|
|
lsls r0, r0, #0x10
|
|
lsrs r6, r0, #0x10
|
|
cmp r6, #0
|
|
beq _0813EB70
|
|
movs r3, #0x1a
|
|
ldrsh r5, [r4, r3]
|
|
cmp r5, #0
|
|
bne _0813EB70
|
|
ldrh r1, [r4, #0xe]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0813EB26
|
|
bl StopMapMusic
|
|
bl Overworld_PlaySpecialMapMusic
|
|
_0813EB26:
|
|
ldrh r0, [r4, #0xe]
|
|
movs r1, #0x80
|
|
orrs r0, r1
|
|
strh r0, [r4, #0xe]
|
|
strh r5, [r4, #0x10]
|
|
strh r5, [r4, #0x14]
|
|
mov r0, sb
|
|
movs r1, #2
|
|
add r2, sp, #4
|
|
bl GetMonData
|
|
ldr r0, _0813EB54
|
|
add r1, sp, #4
|
|
bl StringCopy10
|
|
ldr r0, _0813EB58
|
|
cmp r6, r0
|
|
bne _0813EB5C
|
|
movs r0, #0x16
|
|
strh r0, [r4, #8]
|
|
b _0813F26C
|
|
.align 2, 0
|
|
_0813EB50: .4byte 0x03005B60
|
|
_0813EB54: .4byte 0x02022C0C
|
|
_0813EB58: .4byte 0x0000FFFF
|
|
_0813EB5C:
|
|
ldr r0, _0813EB6C
|
|
cmp r6, r0
|
|
bne _0813EB64
|
|
b _0813F26C
|
|
_0813EB64:
|
|
movs r0, #0x14
|
|
strh r0, [r4, #8]
|
|
b _0813F26C
|
|
.align 2, 0
|
|
_0813EB6C: .4byte 0x0000FFFE
|
|
_0813EB70:
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
movs r1, #0
|
|
str r1, [sp]
|
|
movs r2, #0
|
|
movs r3, #0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, _0813EB8C
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
b _0813ED1A
|
|
.align 2, 0
|
|
_0813EB8C: .4byte 0x03005B60
|
|
_0813EB90:
|
|
ldr r0, _0813EBF0
|
|
ldrb r1, [r0, #7]
|
|
movs r2, #0x80
|
|
adds r0, r2, #0
|
|
ands r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
cmp r6, #0
|
|
beq _0813EBA4
|
|
b _0813F26C
|
|
_0813EBA4:
|
|
mov r3, r8
|
|
adds r0, r3, r7
|
|
lsls r0, r0, #3
|
|
adds r4, r0, r5
|
|
ldrh r1, [r4, #0xe]
|
|
adds r0, r2, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0813EBBE
|
|
bl StopMapMusic
|
|
bl Overworld_PlaySpecialMapMusic
|
|
_0813EBBE:
|
|
movs r1, #0x1a
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, #0
|
|
bne _0813EBCE
|
|
ldrh r0, [r4, #0xa]
|
|
mov r1, sb
|
|
bl CreateShedinja
|
|
_0813EBCE:
|
|
adds r0, r7, #0
|
|
bl DestroyTask
|
|
bl FreeMonSpritesGfx
|
|
ldr r4, _0813EBF4
|
|
ldr r0, [r4]
|
|
bl Free
|
|
str r6, [r4]
|
|
bl FreeAllWindowBuffers
|
|
ldr r0, _0813EBF8
|
|
ldr r0, [r0]
|
|
bl SetMainCallback2
|
|
b _0813F26C
|
|
.align 2, 0
|
|
_0813EBF0: .4byte 0x02037C74
|
|
_0813EBF4: .4byte 0x0203A84C
|
|
_0813EBF8: .4byte 0x03005F28
|
|
_0813EBFC:
|
|
ldr r0, _0813EC30
|
|
ldrb r1, [r0, #2]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0, #4]
|
|
cmp r0, #0
|
|
beq _0813EC10
|
|
b _0813F26C
|
|
_0813EC10:
|
|
bl m4aMPlayAllStop
|
|
ldr r0, _0813EC34
|
|
ldr r1, _0813EC38
|
|
str r1, [sp]
|
|
movs r1, #0
|
|
movs r2, #0x10
|
|
movs r3, #0
|
|
bl BeginNormalPaletteFade
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r5
|
|
b _0813ED1A
|
|
.align 2, 0
|
|
_0813EC30: .4byte 0x02023FD6
|
|
_0813EC34: .4byte 0x0006001C
|
|
_0813EC38: .4byte 0x00007FFF
|
|
_0813EC3C:
|
|
ldr r0, _0813EC68
|
|
ldrb r1, [r0, #7]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0813EC4A
|
|
b _0813F26C
|
|
_0813EC4A:
|
|
ldr r0, _0813EC6C
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
mov r3, r8
|
|
adds r4, r3, r7
|
|
lsls r4, r4, #3
|
|
adds r4, r4, r5
|
|
_0813EC58:
|
|
ldrh r1, [r4, #0xa]
|
|
_0813EC5A:
|
|
bl EvoScene_DoMonAnimation
|
|
_0813EC5E:
|
|
ldrh r0, [r4, #8]
|
|
adds r0, #1
|
|
strh r0, [r4, #8]
|
|
b _0813F26C
|
|
.align 2, 0
|
|
_0813EC68: .4byte 0x02037C74
|
|
_0813EC6C: .4byte 0x0203A84C
|
|
_0813EC70:
|
|
ldr r0, _0813EC9C
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
bl EvoScene_IsMonAnimFinished
|
|
cmp r0, #0
|
|
bne _0813EC80
|
|
b _0813F26C
|
|
_0813EC80:
|
|
ldr r0, _0813ECA0
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
movs r3, #0x1a
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, #0
|
|
beq _0813ECAC
|
|
ldr r0, _0813ECA4
|
|
ldr r1, _0813ECA8
|
|
bl StringExpandPlaceholders
|
|
b _0813ECB4
|
|
.align 2, 0
|
|
_0813EC9C: .4byte 0x0203A84C
|
|
_0813ECA0: .4byte 0x03005B60
|
|
_0813ECA4: .4byte 0x02021C7C
|
|
_0813ECA8: .4byte 0x085ABB3E
|
|
_0813ECAC:
|
|
ldr r0, _0813ECCC
|
|
ldr r1, _0813ECD0
|
|
bl StringExpandPlaceholders
|
|
_0813ECB4:
|
|
ldr r0, _0813ECCC
|
|
movs r1, #0
|
|
bl sub_0814FA04
|
|
ldr r1, _0813ECD4
|
|
mov r2, r8
|
|
adds r0, r2, r7
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
movs r1, #1
|
|
strh r1, [r0, #0x1a]
|
|
b _0813F236
|
|
.align 2, 0
|
|
_0813ECCC: .4byte 0x02021C7C
|
|
_0813ECD0: .4byte 0x085ABB28
|
|
_0813ECD4: .4byte 0x03005B60
|
|
_0813ECD8:
|
|
movs r0, #0
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
beq _0813ECE6
|
|
b _0813F26C
|
|
_0813ECE6:
|
|
bl IsSEPlaying
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0813ECF2
|
|
b _0813F26C
|
|
_0813ECF2:
|
|
bl BufferMoveToLearnIntoBattleTextBuff2
|
|
ldr r0, _0813ED24
|
|
bl PlayFanfare
|
|
ldr r0, _0813ED28
|
|
ldr r0, [r0, #0xc]
|
|
bl TryGetStatusString
|
|
ldr r0, _0813ED2C
|
|
movs r1, #0
|
|
bl sub_0814FA04
|
|
ldr r0, _0813ED30
|
|
mov r3, r8
|
|
adds r1, r3, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
movs r0, #0x40
|
|
strh r0, [r1, #0x10]
|
|
_0813ED1A:
|
|
ldrh r0, [r1, #8]
|
|
adds r0, #1
|
|
strh r0, [r1, #8]
|
|
b _0813F26C
|
|
.align 2, 0
|
|
_0813ED24: .4byte 0x0000016F
|
|
_0813ED28: .4byte 0x085AB3DC
|
|
_0813ED2C: .4byte 0x02022AE0
|
|
_0813ED30: .4byte 0x03005B60
|
|
_0813ED34:
|
|
movs r0, #0
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
beq _0813ED42
|
|
b _0813F26C
|
|
_0813ED42:
|
|
bl IsSEPlaying
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0813ED4E
|
|
b _0813F26C
|
|
_0813ED4E:
|
|
ldr r0, _0813ED6C
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1, #0x10]
|
|
subs r0, #1
|
|
strh r0, [r1, #0x10]
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
beq _0813ED66
|
|
b _0813F26C
|
|
_0813ED66:
|
|
movs r0, #0xf
|
|
strh r0, [r1, #8]
|
|
b _0813F26C
|
|
.align 2, 0
|
|
_0813ED6C: .4byte 0x03005B60
|
|
_0813ED70:
|
|
mov r3, r8
|
|
adds r0, r3, r7
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r5
|
|
movs r1, #0x14
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, #0xc
|
|
bls _0813ED82
|
|
b _0813F26C
|
|
_0813ED82:
|
|
lsls r0, r0, #2
|
|
ldr r1, _0813ED8C
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0813ED8C: .4byte 0x0813ED90
|
|
_0813ED90: @ jump table
|
|
.4byte _0813EDC4 @ case 0
|
|
.4byte _0813EE10 @ case 1
|
|
.4byte _0813EE58 @ case 2
|
|
.4byte _0813EE96 @ case 3
|
|
.4byte _0813EEFC @ case 4
|
|
.4byte _0813EFF8 @ case 5
|
|
.4byte _0813F050 @ case 6
|
|
.4byte _0813F124 @ case 7
|
|
.4byte _0813F158 @ case 8
|
|
.4byte _0813F1A0 @ case 9
|
|
.4byte _0813F1E8 @ case 10
|
|
.4byte _0813F21C @ case 11
|
|
.4byte _0813F248 @ case 12
|
|
_0813EDC4:
|
|
movs r0, #0
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
beq _0813EDD2
|
|
b _0813F26C
|
|
_0813EDD2:
|
|
bl IsSEPlaying
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0813EDDE
|
|
b _0813F26C
|
|
_0813EDDE:
|
|
bl BufferMoveToLearnIntoBattleTextBuff2
|
|
ldr r0, _0813EE04
|
|
ldr r0, [r0, #0x10]
|
|
bl TryGetStatusString
|
|
ldr r0, _0813EE08
|
|
movs r1, #0
|
|
bl sub_0814FA04
|
|
ldr r0, _0813EE0C
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1, #0x14]
|
|
adds r0, #1
|
|
b _0813F26A
|
|
.align 2, 0
|
|
_0813EE04: .4byte 0x085AB3DC
|
|
_0813EE08: .4byte 0x02022AE0
|
|
_0813EE0C: .4byte 0x03005B60
|
|
_0813EE10:
|
|
movs r0, #0
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
beq _0813EE1E
|
|
b _0813F26C
|
|
_0813EE1E:
|
|
bl IsSEPlaying
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0813EE2A
|
|
b _0813F26C
|
|
_0813EE2A:
|
|
ldr r0, _0813EE4C
|
|
ldr r0, [r0, #0x14]
|
|
bl TryGetStatusString
|
|
ldr r0, _0813EE50
|
|
movs r1, #0
|
|
bl sub_0814FA04
|
|
ldr r0, _0813EE54
|
|
mov r3, r8
|
|
adds r1, r3, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1, #0x14]
|
|
adds r0, #1
|
|
b _0813F26A
|
|
.align 2, 0
|
|
_0813EE4C: .4byte 0x085AB3DC
|
|
_0813EE50: .4byte 0x02022AE0
|
|
_0813EE54: .4byte 0x03005B60
|
|
_0813EE58:
|
|
movs r0, #0
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
bne _0813EE96
|
|
bl IsSEPlaying
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0813EE96
|
|
ldr r0, _0813EEE8
|
|
ldr r0, [r0, #0x18]
|
|
bl TryGetStatusString
|
|
ldr r0, _0813EEEC
|
|
movs r1, #0
|
|
bl sub_0814FA04
|
|
ldr r0, _0813EEF0
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
movs r0, #5
|
|
strh r0, [r1, #0x16]
|
|
movs r0, #0xa
|
|
strh r0, [r1, #0x18]
|
|
ldrh r0, [r1, #0x14]
|
|
adds r0, #1
|
|
strh r0, [r1, #0x14]
|
|
_0813EE96:
|
|
movs r0, #0
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
beq _0813EEA4
|
|
b _0813F26C
|
|
_0813EEA4:
|
|
bl IsSEPlaying
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0813EEB2
|
|
b _0813F26C
|
|
_0813EEB2:
|
|
str r0, [sp]
|
|
movs r0, #0x18
|
|
movs r1, #8
|
|
movs r2, #0x1d
|
|
movs r3, #0xd
|
|
bl HandleBattleWindow
|
|
ldr r0, _0813EEF4
|
|
movs r1, #0xc
|
|
bl sub_0814FA04
|
|
ldr r0, _0813EEF0
|
|
mov r3, r8
|
|
adds r1, r3, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1, #0x14]
|
|
adds r0, #1
|
|
movs r2, #0
|
|
strh r0, [r1, #0x14]
|
|
ldr r0, _0813EEF8
|
|
strb r2, [r0, #1]
|
|
movs r0, #0
|
|
bl BattleCreateYesNoCursorAt
|
|
b _0813F26C
|
|
.align 2, 0
|
|
_0813EEE8: .4byte 0x085AB3DC
|
|
_0813EEEC: .4byte 0x02022AE0
|
|
_0813EEF0: .4byte 0x03005B60
|
|
_0813EEF4: .4byte 0x085ABBC9
|
|
_0813EEF8: .4byte 0x02023FD6
|
|
_0813EEFC:
|
|
ldr r0, _0813EF88
|
|
ldrh r1, [r0, #0x2e]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0813EF24
|
|
ldr r4, _0813EF8C
|
|
ldrb r0, [r4, #1]
|
|
cmp r0, #0
|
|
beq _0813EF24
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldrb r0, [r4, #1]
|
|
bl BattleDestroyYesNoCursorAt
|
|
movs r0, #0
|
|
strb r0, [r4, #1]
|
|
bl BattleCreateYesNoCursorAt
|
|
_0813EF24:
|
|
ldr r0, _0813EF88
|
|
ldrh r1, [r0, #0x2e]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0813EF4C
|
|
ldr r4, _0813EF8C
|
|
ldrb r0, [r4, #1]
|
|
cmp r0, #0
|
|
bne _0813EF4C
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldrb r0, [r4, #1]
|
|
bl BattleDestroyYesNoCursorAt
|
|
movs r0, #1
|
|
strb r0, [r4, #1]
|
|
bl BattleCreateYesNoCursorAt
|
|
_0813EF4C:
|
|
ldr r0, _0813EF88
|
|
ldrh r1, [r0, #0x2e]
|
|
movs r2, #1
|
|
adds r0, r2, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0813EFBA
|
|
str r2, [sp]
|
|
movs r0, #0x18
|
|
movs r1, #8
|
|
movs r2, #0x1d
|
|
movs r3, #0xd
|
|
bl HandleBattleWindow
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldr r0, _0813EF8C
|
|
ldrb r2, [r0, #1]
|
|
cmp r2, #0
|
|
beq _0813EF94
|
|
ldr r0, _0813EF90
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1, #0x18]
|
|
strh r0, [r1, #0x14]
|
|
b _0813EFBA
|
|
.align 2, 0
|
|
_0813EF88: .4byte 0x03002360
|
|
_0813EF8C: .4byte 0x02023FD6
|
|
_0813EF90: .4byte 0x03005B60
|
|
_0813EF94:
|
|
ldr r0, _0813EFF0
|
|
mov r3, r8
|
|
adds r1, r3, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1, #0x16]
|
|
strh r0, [r1, #0x14]
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #0x10
|
|
cmp r0, #5
|
|
bne _0813EFBA
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
str r2, [sp]
|
|
movs r1, #0
|
|
movs r2, #0
|
|
movs r3, #0x10
|
|
bl BeginNormalPaletteFade
|
|
_0813EFBA:
|
|
ldr r0, _0813EFF4
|
|
ldrh r1, [r0, #0x2e]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0813EFC8
|
|
b _0813F26C
|
|
_0813EFC8:
|
|
movs r0, #1
|
|
str r0, [sp]
|
|
movs r0, #0x18
|
|
movs r1, #8
|
|
movs r2, #0x1d
|
|
movs r3, #0xd
|
|
bl HandleBattleWindow
|
|
movs r0, #5
|
|
bl PlaySE
|
|
ldr r1, _0813EFF0
|
|
mov r2, r8
|
|
adds r0, r2, r7
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0, #0x18]
|
|
strh r1, [r0, #0x14]
|
|
b _0813F26C
|
|
.align 2, 0
|
|
_0813EFF0: .4byte 0x03005B60
|
|
_0813EFF4: .4byte 0x03002360
|
|
_0813EFF8:
|
|
ldr r0, _0813F038
|
|
ldrb r1, [r0, #7]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0813F006
|
|
b _0813F26C
|
|
_0813F006:
|
|
bl FreeAllWindowBuffers
|
|
ldr r0, _0813F03C
|
|
ldr r1, _0813F040
|
|
mov r3, r8
|
|
adds r5, r3, r7
|
|
lsls r5, r5, #3
|
|
adds r5, r5, r1
|
|
ldrb r1, [r5, #0x1c]
|
|
ldr r2, _0813F044
|
|
ldrb r2, [r2]
|
|
subs r2, #1
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
ldr r3, _0813F048
|
|
ldr r4, _0813F04C
|
|
ldrh r4, [r4]
|
|
str r4, [sp]
|
|
bl ShowSelectMovePokemonSummaryScreen
|
|
ldrh r0, [r5, #0x14]
|
|
adds r0, #1
|
|
strh r0, [r5, #0x14]
|
|
b _0813F26C
|
|
.align 2, 0
|
|
_0813F038: .4byte 0x02037C74
|
|
_0813F03C: .4byte 0x02024190
|
|
_0813F040: .4byte 0x03005B60
|
|
_0813F044: .4byte 0x0202418D
|
|
_0813F048: .4byte 0x0813DE81
|
|
_0813F04C: .4byte 0x02024186
|
|
_0813F050:
|
|
ldr r0, _0813F084
|
|
ldrb r1, [r0, #7]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0813F05E
|
|
b _0813F26C
|
|
_0813F05E:
|
|
ldr r1, [r6, #4]
|
|
ldr r0, _0813F088
|
|
cmp r1, r0
|
|
beq _0813F068
|
|
b _0813F26C
|
|
_0813F068:
|
|
bl sub_081C14C8
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
cmp r6, #4
|
|
bne _0813F090
|
|
ldr r0, _0813F08C
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
movs r0, #0xa
|
|
b _0813F26A
|
|
.align 2, 0
|
|
_0813F084: .4byte 0x02037C74
|
|
_0813F088: .4byte 0x0813E4A9
|
|
_0813F08C: .4byte 0x03005B60
|
|
_0813F090:
|
|
adds r1, r6, #0
|
|
adds r1, #0xd
|
|
mov r0, sb
|
|
bl GetMonData
|
|
lsls r0, r0, #0x10
|
|
lsrs r4, r0, #0x10
|
|
adds r0, r4, #0
|
|
bl IsHMMove2
|
|
cmp r0, #0
|
|
beq _0813F0DC
|
|
ldr r0, _0813F0CC
|
|
ldr r3, _0813F0D0
|
|
adds r0, r0, r3
|
|
ldr r0, [r0]
|
|
bl TryGetStatusString
|
|
ldr r0, _0813F0D4
|
|
movs r1, #0
|
|
bl sub_0814FA04
|
|
ldr r1, _0813F0D8
|
|
mov r2, r8
|
|
adds r0, r2, r7
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
movs r1, #0xc
|
|
strh r1, [r0, #0x14]
|
|
b _0813F26C
|
|
.align 2, 0
|
|
_0813F0CC: .4byte 0x085AB3DC
|
|
_0813F0D0: .4byte 0x000004CC
|
|
_0813F0D4: .4byte 0x02022AE0
|
|
_0813F0D8: .4byte 0x03005B60
|
|
_0813F0DC:
|
|
ldr r1, _0813F118
|
|
movs r0, #0xfd
|
|
strb r0, [r1]
|
|
movs r0, #2
|
|
strb r0, [r1, #1]
|
|
strb r4, [r1, #2]
|
|
lsrs r0, r4, #8
|
|
strb r0, [r1, #3]
|
|
movs r0, #0xff
|
|
strb r0, [r1, #4]
|
|
lsls r4, r6, #0x18
|
|
lsrs r4, r4, #0x18
|
|
mov r0, sb
|
|
adds r1, r4, #0
|
|
bl RemoveMonPPBonus
|
|
ldr r0, _0813F11C
|
|
ldrh r1, [r0]
|
|
mov r0, sb
|
|
adds r2, r4, #0
|
|
bl SetMonMoveSlot
|
|
ldr r0, _0813F120
|
|
mov r3, r8
|
|
adds r1, r3, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1, #0x14]
|
|
adds r0, #1
|
|
b _0813F26A
|
|
.align 2, 0
|
|
_0813F118: .4byte 0x02022C1C
|
|
_0813F11C: .4byte 0x02024186
|
|
_0813F120: .4byte 0x03005B60
|
|
_0813F124:
|
|
ldr r0, _0813F14C
|
|
movs r1, #0xcf
|
|
lsls r1, r1, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
bl TryGetStatusString
|
|
ldr r0, _0813F150
|
|
movs r1, #0
|
|
bl sub_0814FA04
|
|
ldr r0, _0813F154
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1, #0x14]
|
|
adds r0, #1
|
|
b _0813F26A
|
|
.align 2, 0
|
|
_0813F14C: .4byte 0x085AB3DC
|
|
_0813F150: .4byte 0x02022AE0
|
|
_0813F154: .4byte 0x03005B60
|
|
_0813F158:
|
|
movs r0, #0
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
beq _0813F166
|
|
b _0813F26C
|
|
_0813F166:
|
|
bl IsSEPlaying
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0813F172
|
|
b _0813F26C
|
|
_0813F172:
|
|
ldr r0, _0813F194
|
|
ldr r0, [r0, #0x1c]
|
|
bl TryGetStatusString
|
|
ldr r0, _0813F198
|
|
movs r1, #0
|
|
bl sub_0814FA04
|
|
ldr r0, _0813F19C
|
|
mov r3, r8
|
|
adds r1, r3, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1, #0x14]
|
|
adds r0, #1
|
|
b _0813F26A
|
|
.align 2, 0
|
|
_0813F194: .4byte 0x085AB3DC
|
|
_0813F198: .4byte 0x02022AE0
|
|
_0813F19C: .4byte 0x03005B60
|
|
_0813F1A0:
|
|
movs r0, #0
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
bne _0813F26C
|
|
bl IsSEPlaying
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0813F26C
|
|
ldr r0, _0813F1DC
|
|
movs r1, #0xd0
|
|
lsls r1, r1, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
bl TryGetStatusString
|
|
ldr r0, _0813F1E0
|
|
movs r1, #0
|
|
bl sub_0814FA04
|
|
ldr r1, _0813F1E4
|
|
mov r2, r8
|
|
adds r0, r2, r7
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
movs r1, #0x14
|
|
strh r1, [r0, #8]
|
|
b _0813F26C
|
|
.align 2, 0
|
|
_0813F1DC: .4byte 0x085AB3DC
|
|
_0813F1E0: .4byte 0x02022AE0
|
|
_0813F1E4: .4byte 0x03005B60
|
|
_0813F1E8:
|
|
ldr r0, _0813F210
|
|
ldr r0, [r0, #0x20]
|
|
bl TryGetStatusString
|
|
ldr r0, _0813F214
|
|
movs r1, #0
|
|
bl sub_0814FA04
|
|
ldr r1, _0813F218
|
|
mov r3, r8
|
|
adds r0, r3, r7
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
movs r2, #0
|
|
movs r1, #0xb
|
|
strh r1, [r0, #0x16]
|
|
strh r2, [r0, #0x18]
|
|
movs r1, #3
|
|
strh r1, [r0, #0x14]
|
|
b _0813F26C
|
|
.align 2, 0
|
|
_0813F210: .4byte 0x085AB3DC
|
|
_0813F214: .4byte 0x02022AE0
|
|
_0813F218: .4byte 0x03005B60
|
|
_0813F21C:
|
|
ldr r0, _0813F23C
|
|
ldr r0, [r0, #0x24]
|
|
bl TryGetStatusString
|
|
ldr r0, _0813F240
|
|
movs r1, #0
|
|
bl sub_0814FA04
|
|
ldr r1, _0813F244
|
|
mov r2, r8
|
|
adds r0, r2, r7
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
_0813F236:
|
|
movs r1, #0xf
|
|
strh r1, [r0, #8]
|
|
b _0813F26C
|
|
.align 2, 0
|
|
_0813F23C: .4byte 0x085AB3DC
|
|
_0813F240: .4byte 0x02022AE0
|
|
_0813F244: .4byte 0x03005B60
|
|
_0813F248:
|
|
movs r0, #0
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
bne _0813F26C
|
|
bl IsSEPlaying
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0813F26C
|
|
ldr r0, _0813F27C
|
|
mov r3, r8
|
|
adds r1, r3, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
movs r0, #5
|
|
_0813F26A:
|
|
strh r0, [r1, #0x14]
|
|
_0813F26C:
|
|
add sp, #0x18
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813F27C: .4byte 0x03005B60
|
|
thumb_func_end Task_EvolutionScene
|
|
|
|
thumb_func_start Task_TradeEvolutionScene
|
|
Task_TradeEvolutionScene: @ 0x0813F280
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
sub sp, #0x20
|
|
lsls r0, r0, #0x18
|
|
lsrs r7, r0, #0x18
|
|
ldr r3, _0813F2C0
|
|
lsls r0, r7, #2
|
|
adds r0, r0, r7
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r3
|
|
movs r1, #0x1c
|
|
ldrsh r2, [r0, r1]
|
|
movs r1, #0x64
|
|
muls r2, r1, r2
|
|
ldr r1, _0813F2C4
|
|
adds r2, r2, r1
|
|
mov sb, r2
|
|
movs r2, #8
|
|
ldrsh r0, [r0, r2]
|
|
adds r5, r3, #0
|
|
cmp r0, #0x14
|
|
bls _0813F2B4
|
|
bl _0813FD8C
|
|
_0813F2B4:
|
|
lsls r0, r0, #2
|
|
ldr r1, _0813F2C8
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0813F2C0: .4byte 0x03005B60
|
|
_0813F2C4: .4byte 0x02024190
|
|
_0813F2C8: .4byte 0x0813F2CC
|
|
_0813F2CC: @ jump table
|
|
.4byte _0813F320 @ case 0
|
|
.4byte _0813F34C @ case 1
|
|
.4byte _0813F374 @ case 2
|
|
.4byte _0813F3A4 @ case 3
|
|
.4byte _0813F3DC @ case 4
|
|
.4byte _0813F448 @ case 5
|
|
.4byte _0813F488 @ case 6
|
|
.4byte _0813F4B8 @ case 7
|
|
.4byte _0813F4F4 @ case 8
|
|
.4byte _0813F510 @ case 9
|
|
.4byte _0813F53C @ case 10
|
|
.4byte _0813F560 @ case 11
|
|
.4byte _0813F5A0 @ case 12
|
|
.4byte _0813F62C @ case 13
|
|
.4byte _0813F6E0 @ case 14
|
|
.4byte _0813F724 @ case 15
|
|
.4byte _0813F78C @ case 16
|
|
.4byte _0813F7C0 @ case 17
|
|
.4byte _0813F804 @ case 18
|
|
.4byte _0813F860 @ case 19
|
|
.4byte _0813F8A0 @ case 20
|
|
_0813F320:
|
|
ldr r4, _0813F340
|
|
ldr r1, _0813F344
|
|
adds r0, r4, #0
|
|
bl StringExpandPlaceholders
|
|
movs r0, #0
|
|
adds r1, r4, #0
|
|
movs r2, #1
|
|
bl sub_0807EBE0
|
|
ldr r1, _0813F348
|
|
lsls r0, r7, #2
|
|
adds r0, r0, r7
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
b _0813F770
|
|
.align 2, 0
|
|
_0813F340: .4byte 0x02021C7C
|
|
_0813F344: .4byte 0x085ABAFC
|
|
_0813F348: .4byte 0x03005B60
|
|
_0813F34C:
|
|
movs r0, #0
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
beq _0813F35C
|
|
bl _0813FD8C
|
|
_0813F35C:
|
|
ldr r0, _0813F370
|
|
lsls r4, r7, #2
|
|
adds r4, r4, r7
|
|
lsls r4, r4, #3
|
|
adds r4, r4, r0
|
|
ldrh r0, [r4, #0xa]
|
|
movs r1, #0
|
|
bl PlayCry1
|
|
b _0813F7AE
|
|
.align 2, 0
|
|
_0813F370: .4byte 0x03005B60
|
|
_0813F374:
|
|
bl IsCryFinished
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0813F382
|
|
bl _0813FD8C
|
|
_0813F382:
|
|
ldr r0, _0813F39C
|
|
bl m4aSongNumStop
|
|
movs r0, #0xbc
|
|
lsls r0, r0, #1
|
|
bl PlaySE
|
|
ldr r1, _0813F3A0
|
|
lsls r0, r7, #2
|
|
adds r0, r0, r7
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
b _0813F770
|
|
.align 2, 0
|
|
_0813F39C: .4byte 0x00000179
|
|
_0813F3A0: .4byte 0x03005B60
|
|
_0813F3A4:
|
|
bl IsSEPlaying
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
cmp r5, #0
|
|
beq _0813F3B4
|
|
bl _0813FD8C
|
|
_0813F3B4:
|
|
ldr r0, _0813F3D4
|
|
bl PlayBGM
|
|
ldr r1, _0813F3D8
|
|
lsls r0, r7, #2
|
|
adds r0, r0, r7
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0, #8]
|
|
adds r1, #1
|
|
strh r1, [r0, #8]
|
|
str r5, [sp]
|
|
movs r0, #0x1c
|
|
movs r1, #4
|
|
b _0813FA90
|
|
.align 2, 0
|
|
_0813F3D4: .4byte 0x00000179
|
|
_0813F3D8: .4byte 0x03005B60
|
|
_0813F3DC:
|
|
ldr r0, _0813F430
|
|
ldrb r1, [r0, #7]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0813F3EC
|
|
bl _0813FD8C
|
|
_0813F3EC:
|
|
movs r0, #1
|
|
bl InitMovingBackgroundTask
|
|
ldr r2, _0813F434
|
|
ldr r0, _0813F438
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0, #5]
|
|
lsrs r0, r0, #4
|
|
adds r6, r0, #0
|
|
adds r6, #0x10
|
|
adds r0, r6, #0
|
|
bl LaunchTask_PreEvoSparklesSet1
|
|
ldr r1, _0813F43C
|
|
strb r0, [r1, #2]
|
|
ldr r1, _0813F440
|
|
lsls r0, r7, #2
|
|
adds r0, r0, r7
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0, #8]
|
|
adds r1, #1
|
|
strh r1, [r0, #8]
|
|
ldr r1, _0813F444
|
|
movs r0, #0xe
|
|
bl SetGpuReg
|
|
bl _0813FD8C
|
|
.align 2, 0
|
|
_0813F430: .4byte 0x02037C74
|
|
_0813F434: .4byte 0x020205AC
|
|
_0813F438: .4byte 0x0203A84C
|
|
_0813F43C: .4byte 0x02023FD6
|
|
_0813F440: .4byte 0x03005B60
|
|
_0813F444: .4byte 0x00000603
|
|
_0813F448:
|
|
ldr r4, _0813F480
|
|
ldrb r0, [r4, #2]
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r5
|
|
ldrb r0, [r1, #4]
|
|
cmp r0, #0
|
|
beq _0813F45E
|
|
bl _0813FD8C
|
|
_0813F45E:
|
|
lsls r0, r7, #2
|
|
adds r0, r0, r7
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r5
|
|
ldrh r1, [r0, #8]
|
|
adds r1, #1
|
|
strh r1, [r0, #8]
|
|
ldr r0, _0813F484
|
|
ldr r1, [r0]
|
|
movs r0, #1
|
|
strb r0, [r1, #3]
|
|
bl LaunchTask_PostEvoSparklesSet1
|
|
strb r0, [r4, #2]
|
|
bl _0813FD8C
|
|
.align 2, 0
|
|
_0813F480: .4byte 0x02023FD6
|
|
_0813F484: .4byte 0x0203A84C
|
|
_0813F488:
|
|
ldr r4, _0813F4B0
|
|
ldrb r0, [r4, #2]
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r5
|
|
ldrb r0, [r1, #4]
|
|
cmp r0, #0
|
|
beq _0813F49E
|
|
bl _0813FD8C
|
|
_0813F49E:
|
|
ldr r0, _0813F4B4
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1]
|
|
ldrb r1, [r1, #1]
|
|
bl sub_0817C260
|
|
strb r0, [r4, #2]
|
|
b _0813F768
|
|
.align 2, 0
|
|
_0813F4B0: .4byte 0x02023FD6
|
|
_0813F4B4: .4byte 0x0203A84C
|
|
_0813F4B8:
|
|
ldr r2, _0813F4EC
|
|
ldr r1, [r2]
|
|
ldrb r0, [r1, #3]
|
|
subs r0, #1
|
|
strb r0, [r1, #3]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0813F4CC
|
|
bl _0813FD8C
|
|
_0813F4CC:
|
|
ldr r1, [r2]
|
|
movs r0, #3
|
|
strb r0, [r1, #3]
|
|
ldr r0, _0813F4F0
|
|
ldrb r1, [r0, #2]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0, #4]
|
|
cmp r0, #0
|
|
beq _0813F4E8
|
|
bl _0813FD8C
|
|
_0813F4E8:
|
|
b _0813F768
|
|
.align 2, 0
|
|
_0813F4EC: .4byte 0x0203A84C
|
|
_0813F4F0: .4byte 0x02023FD6
|
|
_0813F4F4:
|
|
bl LaunchTask_PreEvoSparklesSet2
|
|
ldr r1, _0813F508
|
|
strb r0, [r1, #2]
|
|
ldr r1, _0813F50C
|
|
lsls r0, r7, #2
|
|
adds r0, r0, r7
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
b _0813F770
|
|
.align 2, 0
|
|
_0813F508: .4byte 0x02023FD6
|
|
_0813F50C: .4byte 0x03005B60
|
|
_0813F510:
|
|
ldr r6, _0813F538
|
|
ldrb r0, [r6, #2]
|
|
lsls r1, r0, #2
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r5
|
|
ldrb r0, [r1, #4]
|
|
cmp r0, #0
|
|
beq _0813F526
|
|
bl _0813FD8C
|
|
_0813F526:
|
|
lsls r4, r7, #2
|
|
adds r4, r4, r7
|
|
lsls r4, r4, #3
|
|
adds r4, r4, r5
|
|
ldrh r0, [r4, #0xc]
|
|
bl LaunchTask_PostEvoSparklesSet2AndFlash_Trade
|
|
strb r0, [r6, #2]
|
|
b _0813F7AE
|
|
.align 2, 0
|
|
_0813F538: .4byte 0x02023FD6
|
|
_0813F53C:
|
|
ldr r0, _0813F55C
|
|
ldrb r1, [r0, #2]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0, #4]
|
|
cmp r0, #0
|
|
beq _0813F552
|
|
bl _0813FD8C
|
|
_0813F552:
|
|
movs r0, #0x21
|
|
bl PlaySE
|
|
b _0813F768
|
|
.align 2, 0
|
|
_0813F55C: .4byte 0x02023FD6
|
|
_0813F560:
|
|
bl IsSEPlaying
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0813F56E
|
|
bl _0813FD8C
|
|
_0813F56E:
|
|
ldr r5, _0813F594
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, #1]
|
|
ldr r1, _0813F598
|
|
lsls r4, r7, #2
|
|
adds r4, r4, r7
|
|
lsls r4, r4, #3
|
|
adds r4, r4, r1
|
|
ldrh r1, [r4, #0xc]
|
|
bl EvoScene_DoMonAnimation
|
|
ldr r0, _0813F59C
|
|
ldr r1, [r5]
|
|
adds r1, #4
|
|
movs r2, #0x60
|
|
bl memcpy
|
|
b _0813F7AE
|
|
.align 2, 0
|
|
_0813F594: .4byte 0x0203A84C
|
|
_0813F598: .4byte 0x03005B60
|
|
_0813F59C: .4byte 0x020373F4
|
|
_0813F5A0:
|
|
bl IsCryFinished
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0813F5AE
|
|
bl _0813FD8C
|
|
_0813F5AE:
|
|
ldr r4, _0813F61C
|
|
ldr r1, _0813F620
|
|
adds r0, r4, #0
|
|
bl StringExpandPlaceholders
|
|
movs r0, #0
|
|
adds r1, r4, #0
|
|
movs r2, #1
|
|
bl sub_0807EBE0
|
|
ldr r0, _0813F624
|
|
bl PlayFanfare
|
|
ldr r2, _0813F628
|
|
lsls r1, r7, #2
|
|
adds r1, r1, r7
|
|
lsls r1, r1, #3
|
|
adds r4, r1, r2
|
|
ldrh r0, [r4, #8]
|
|
adds r0, #1
|
|
strh r0, [r4, #8]
|
|
adds r2, r2, r1
|
|
adds r2, #0xc
|
|
mov r0, sb
|
|
movs r1, #0xb
|
|
bl SetMonData
|
|
mov r0, sb
|
|
bl CalculateMonStats
|
|
ldrh r1, [r4, #0xa]
|
|
ldrh r2, [r4, #0xc]
|
|
mov r0, sb
|
|
bl sub_0806D23C
|
|
ldrh r0, [r4, #0xc]
|
|
bl HoennToNationalOrder
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #2
|
|
bl GetSetPokedexFlag
|
|
ldrh r0, [r4, #0xc]
|
|
bl HoennToNationalOrder
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #3
|
|
bl GetSetPokedexFlag
|
|
movs r0, #0xe
|
|
bl IncrementGameStat
|
|
b _0813FD8C
|
|
.align 2, 0
|
|
_0813F61C: .4byte 0x02021C7C
|
|
_0813F620: .4byte 0x085ABB0F
|
|
_0813F624: .4byte 0x00000173
|
|
_0813F628: .4byte 0x03005B60
|
|
_0813F62C:
|
|
movs r0, #0
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
beq _0813F63A
|
|
b _0813FD8C
|
|
_0813F63A:
|
|
bl IsFanfareTaskInactive
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
beq _0813F648
|
|
b _0813FD8C
|
|
_0813F648:
|
|
ldr r1, _0813F698
|
|
lsls r4, r7, #2
|
|
adds r0, r4, r7
|
|
lsls r0, r0, #3
|
|
adds r5, r0, r1
|
|
ldrb r1, [r5, #0x10]
|
|
mov r0, sb
|
|
bl MonTryLearningNewMove
|
|
lsls r0, r0, #0x10
|
|
lsrs r6, r0, #0x10
|
|
mov r8, r4
|
|
cmp r6, #0
|
|
beq _0813F6B8
|
|
movs r0, #0x1a
|
|
ldrsh r2, [r5, r0]
|
|
cmp r2, #0
|
|
bne _0813F6B8
|
|
ldrh r1, [r5, #0xe]
|
|
movs r0, #0x80
|
|
orrs r0, r1
|
|
strh r0, [r5, #0xe]
|
|
strh r2, [r5, #0x10]
|
|
strh r2, [r5, #0x14]
|
|
mov r0, sb
|
|
movs r1, #2
|
|
add r2, sp, #0xc
|
|
bl GetMonData
|
|
ldr r0, _0813F69C
|
|
add r1, sp, #0xc
|
|
bl StringCopy10
|
|
ldr r0, _0813F6A0
|
|
cmp r6, r0
|
|
bne _0813F6A4
|
|
movs r0, #0x14
|
|
strh r0, [r5, #8]
|
|
b _0813FD8C
|
|
.align 2, 0
|
|
_0813F698: .4byte 0x03005B60
|
|
_0813F69C: .4byte 0x02022C0C
|
|
_0813F6A0: .4byte 0x0000FFFF
|
|
_0813F6A4:
|
|
ldr r0, _0813F6B4
|
|
cmp r6, r0
|
|
bne _0813F6AC
|
|
b _0813FD8C
|
|
_0813F6AC:
|
|
movs r0, #0x12
|
|
strh r0, [r5, #8]
|
|
b _0813FD8C
|
|
.align 2, 0
|
|
_0813F6B4: .4byte 0x0000FFFE
|
|
_0813F6B8:
|
|
ldr r0, _0813F6D4
|
|
bl PlayBGM
|
|
ldr r1, _0813F6D8
|
|
movs r0, #0
|
|
movs r2, #1
|
|
bl sub_0807EBE0
|
|
ldr r0, _0813F6DC
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
b _0813F848
|
|
.align 2, 0
|
|
_0813F6D4: .4byte 0x00000179
|
|
_0813F6D8: .4byte 0x08595430
|
|
_0813F6DC: .4byte 0x03005B60
|
|
_0813F6E0:
|
|
movs r0, #0
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
lsrs r5, r0, #0x10
|
|
cmp r5, #0
|
|
beq _0813F6F0
|
|
b _0813FD8C
|
|
_0813F6F0:
|
|
adds r0, r7, #0
|
|
bl DestroyTask
|
|
ldr r4, _0813F718
|
|
ldr r0, [r4]
|
|
bl Free
|
|
str r5, [r4]
|
|
ldr r2, _0813F71C
|
|
ldrb r1, [r2]
|
|
movs r0, #3
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, _0813F720
|
|
ldr r0, [r0]
|
|
bl SetMainCallback2
|
|
b _0813FD8C
|
|
.align 2, 0
|
|
_0813F718: .4byte 0x0203A84C
|
|
_0813F71C: .4byte 0x030030B4
|
|
_0813F720: .4byte 0x03005F28
|
|
_0813F724:
|
|
ldr r0, _0813F778
|
|
ldrb r1, [r0, #2]
|
|
lsls r0, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r5
|
|
ldrb r0, [r0, #4]
|
|
cmp r0, #0
|
|
beq _0813F738
|
|
b _0813FD8C
|
|
_0813F738:
|
|
bl m4aMPlayAllStop
|
|
ldr r2, _0813F77C
|
|
ldr r0, _0813F780
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrb r1, [r0, #5]
|
|
lsrs r1, r1, #4
|
|
adds r1, #0x10
|
|
movs r0, #1
|
|
lsls r0, r1
|
|
ldr r1, _0813F784
|
|
orrs r0, r1
|
|
ldr r1, _0813F788
|
|
str r1, [sp]
|
|
movs r1, #0
|
|
movs r2, #0x10
|
|
movs r3, #0
|
|
bl BeginNormalPaletteFade
|
|
_0813F768:
|
|
lsls r0, r7, #2
|
|
adds r0, r0, r7
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r5
|
|
_0813F770:
|
|
ldrh r1, [r0, #8]
|
|
adds r1, #1
|
|
strh r1, [r0, #8]
|
|
b _0813FD8C
|
|
.align 2, 0
|
|
_0813F778: .4byte 0x02023FD6
|
|
_0813F77C: .4byte 0x020205AC
|
|
_0813F780: .4byte 0x0203A84C
|
|
_0813F784: .4byte 0x0004001C
|
|
_0813F788: .4byte 0x00007FFF
|
|
_0813F78C:
|
|
ldr r0, _0813F7B8
|
|
ldrb r1, [r0, #7]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0813F79A
|
|
b _0813FD8C
|
|
_0813F79A:
|
|
ldr r0, _0813F7BC
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
lsls r4, r7, #2
|
|
adds r4, r4, r7
|
|
lsls r4, r4, #3
|
|
adds r4, r4, r5
|
|
ldrh r1, [r4, #0xa]
|
|
bl EvoScene_DoMonAnimation
|
|
_0813F7AE:
|
|
ldrh r0, [r4, #8]
|
|
adds r0, #1
|
|
strh r0, [r4, #8]
|
|
b _0813FD8C
|
|
.align 2, 0
|
|
_0813F7B8: .4byte 0x02037C74
|
|
_0813F7BC: .4byte 0x0203A84C
|
|
_0813F7C0:
|
|
ldr r0, _0813F7F4
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
bl EvoScene_IsMonAnimFinished
|
|
cmp r0, #0
|
|
bne _0813F7D0
|
|
b _0813FD8C
|
|
_0813F7D0:
|
|
ldr r4, _0813F7F8
|
|
ldr r1, _0813F7FC
|
|
adds r0, r4, #0
|
|
bl StringExpandPlaceholders
|
|
movs r0, #0
|
|
adds r1, r4, #0
|
|
movs r2, #1
|
|
bl sub_0807EBE0
|
|
ldr r1, _0813F800
|
|
lsls r0, r7, #2
|
|
adds r0, r0, r7
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
movs r1, #1
|
|
strh r1, [r0, #0x1a]
|
|
b _0813FD54
|
|
.align 2, 0
|
|
_0813F7F4: .4byte 0x0203A84C
|
|
_0813F7F8: .4byte 0x02021C7C
|
|
_0813F7FC: .4byte 0x085ABB3E
|
|
_0813F800: .4byte 0x03005B60
|
|
_0813F804:
|
|
movs r0, #0
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
beq _0813F812
|
|
b _0813FD8C
|
|
_0813F812:
|
|
bl IsSEPlaying
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0813F81E
|
|
b _0813FD8C
|
|
_0813F81E:
|
|
bl BufferMoveToLearnIntoBattleTextBuff2
|
|
ldr r0, _0813F850
|
|
bl PlayFanfare
|
|
ldr r0, _0813F854
|
|
ldr r0, [r0, #0xc]
|
|
bl TryGetStatusString
|
|
ldr r1, _0813F858
|
|
movs r0, #0
|
|
movs r2, #1
|
|
bl sub_0807EBE0
|
|
ldr r0, _0813F85C
|
|
lsls r1, r7, #2
|
|
adds r1, r1, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
movs r0, #0x40
|
|
strh r0, [r1, #0x10]
|
|
_0813F848:
|
|
ldrh r0, [r1, #8]
|
|
adds r0, #1
|
|
strh r0, [r1, #8]
|
|
b _0813FD8C
|
|
.align 2, 0
|
|
_0813F850: .4byte 0x0000016F
|
|
_0813F854: .4byte 0x085AB3DC
|
|
_0813F858: .4byte 0x02022AE0
|
|
_0813F85C: .4byte 0x03005B60
|
|
_0813F860:
|
|
movs r0, #0
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
beq _0813F86E
|
|
b _0813FD8C
|
|
_0813F86E:
|
|
bl IsFanfareTaskInactive
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #1
|
|
beq _0813F87C
|
|
b _0813FD8C
|
|
_0813F87C:
|
|
ldr r0, _0813F89C
|
|
lsls r1, r7, #2
|
|
adds r1, r1, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1, #0x10]
|
|
subs r0, #1
|
|
strh r0, [r1, #0x10]
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
beq _0813F894
|
|
b _0813FD8C
|
|
_0813F894:
|
|
movs r0, #0xd
|
|
strh r0, [r1, #8]
|
|
b _0813FD8C
|
|
.align 2, 0
|
|
_0813F89C: .4byte 0x03005B60
|
|
_0813F8A0:
|
|
lsls r1, r7, #2
|
|
adds r0, r1, r7
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r5
|
|
movs r2, #0x14
|
|
ldrsh r0, [r0, r2]
|
|
mov r8, r1
|
|
cmp r0, #0xb
|
|
bls _0813F8B4
|
|
b _0813FD8C
|
|
_0813F8B4:
|
|
lsls r0, r0, #2
|
|
ldr r1, _0813F8C0
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0813F8C0: .4byte 0x0813F8C4
|
|
_0813F8C4: @ jump table
|
|
.4byte _0813F8F4 @ case 0
|
|
.4byte _0813F940 @ case 1
|
|
.4byte _0813F988 @ case 2
|
|
.4byte _0813F9C8 @ case 3
|
|
.4byte _0813FA34 @ case 4
|
|
.4byte _0813FAEC @ case 5
|
|
.4byte _0813FB70 @ case 6
|
|
.4byte _0813FC6C @ case 7
|
|
.4byte _0813FCB4 @ case 8
|
|
.4byte _0813FD00 @ case 9
|
|
.4byte _0813FD38 @ case 10
|
|
.4byte _0813FD68 @ case 11
|
|
_0813F8F4:
|
|
movs r0, #0
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
beq _0813F902
|
|
b _0813FD8C
|
|
_0813F902:
|
|
bl IsSEPlaying
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0813F90E
|
|
b _0813FD8C
|
|
_0813F90E:
|
|
bl BufferMoveToLearnIntoBattleTextBuff2
|
|
ldr r0, _0813F934
|
|
ldr r0, [r0, #0x10]
|
|
bl TryGetStatusString
|
|
ldr r1, _0813F938
|
|
movs r0, #0
|
|
movs r2, #1
|
|
bl sub_0807EBE0
|
|
ldr r0, _0813F93C
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1, #0x14]
|
|
adds r0, #1
|
|
b _0813FD8A
|
|
.align 2, 0
|
|
_0813F934: .4byte 0x085AB3DC
|
|
_0813F938: .4byte 0x02022AE0
|
|
_0813F93C: .4byte 0x03005B60
|
|
_0813F940:
|
|
movs r0, #0
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
beq _0813F94E
|
|
b _0813FD8C
|
|
_0813F94E:
|
|
bl IsSEPlaying
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0813F95A
|
|
b _0813FD8C
|
|
_0813F95A:
|
|
ldr r0, _0813F97C
|
|
ldr r0, [r0, #0x14]
|
|
bl TryGetStatusString
|
|
ldr r1, _0813F980
|
|
movs r0, #0
|
|
movs r2, #1
|
|
bl sub_0807EBE0
|
|
ldr r0, _0813F984
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1, #0x14]
|
|
adds r0, #1
|
|
b _0813FD8A
|
|
.align 2, 0
|
|
_0813F97C: .4byte 0x085AB3DC
|
|
_0813F980: .4byte 0x02022AE0
|
|
_0813F984: .4byte 0x03005B60
|
|
_0813F988:
|
|
movs r0, #0
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
bne _0813F9C8
|
|
bl IsSEPlaying
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0813F9C8
|
|
ldr r0, _0813FA20
|
|
ldr r0, [r0, #0x18]
|
|
bl TryGetStatusString
|
|
ldr r1, _0813FA24
|
|
movs r0, #0
|
|
movs r2, #1
|
|
bl sub_0807EBE0
|
|
ldr r0, _0813FA28
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
movs r0, #5
|
|
strh r0, [r1, #0x16]
|
|
movs r0, #9
|
|
strh r0, [r1, #0x18]
|
|
ldrh r0, [r1, #0x14]
|
|
adds r0, #1
|
|
strh r0, [r1, #0x14]
|
|
_0813F9C8:
|
|
movs r0, #0
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
beq _0813F9D6
|
|
b _0813FD8C
|
|
_0813F9D6:
|
|
bl IsSEPlaying
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #0
|
|
beq _0813F9E4
|
|
b _0813FD8C
|
|
_0813F9E4:
|
|
movs r0, #0
|
|
movs r1, #0xa8
|
|
movs r2, #0xe0
|
|
bl LoadUserWindowBorderGfx
|
|
ldr r0, _0813FA2C
|
|
movs r1, #0xa8
|
|
str r1, [sp]
|
|
movs r1, #0xe
|
|
str r1, [sp, #4]
|
|
str r4, [sp, #8]
|
|
movs r1, #1
|
|
movs r2, #2
|
|
movs r3, #2
|
|
bl sub_08198C08
|
|
ldr r3, _0813FA30
|
|
strb r4, [r3, #1]
|
|
ldr r0, _0813FA28
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1, #0x14]
|
|
adds r0, #1
|
|
movs r2, #0
|
|
strh r0, [r1, #0x14]
|
|
strb r2, [r3, #1]
|
|
b _0813FD8C
|
|
.align 2, 0
|
|
_0813FA20: .4byte 0x085AB3DC
|
|
_0813FA24: .4byte 0x02022AE0
|
|
_0813FA28: .4byte 0x03005B60
|
|
_0813FA2C: .4byte 0x0830D28C
|
|
_0813FA30: .4byte 0x02023FD6
|
|
_0813FA34:
|
|
bl Menu_ProcessInputNoWrapClearOnChoose
|
|
lsls r0, r0, #0x18
|
|
asrs r6, r0, #0x18
|
|
cmp r6, #0
|
|
beq _0813FA54
|
|
cmp r6, #0
|
|
bgt _0813FA4E
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
cmp r6, r0
|
|
beq _0813FAAC
|
|
b _0813FD8C
|
|
_0813FA4E:
|
|
cmp r6, #1
|
|
beq _0813FAAC
|
|
b _0813FD8C
|
|
_0813FA54:
|
|
ldr r0, _0813FA9C
|
|
strb r6, [r0, #1]
|
|
ldr r0, _0813FAA0
|
|
movs r1, #0x92
|
|
lsls r1, r1, #3
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
bl TryGetStatusString
|
|
ldr r1, _0813FAA4
|
|
movs r0, #0
|
|
movs r2, #1
|
|
bl sub_0807EBE0
|
|
ldr r1, _0813FAA8
|
|
mov r2, r8
|
|
adds r0, r2, r7
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0, #0x16]
|
|
strh r1, [r0, #0x14]
|
|
lsls r1, r1, #0x10
|
|
asrs r1, r1, #0x10
|
|
cmp r1, #5
|
|
beq _0813FA88
|
|
b _0813FD8C
|
|
_0813FA88:
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
str r6, [sp]
|
|
movs r1, #0
|
|
_0813FA90:
|
|
movs r2, #0
|
|
movs r3, #0x10
|
|
bl BeginNormalPaletteFade
|
|
b _0813FD8C
|
|
.align 2, 0
|
|
_0813FA9C: .4byte 0x02023FD6
|
|
_0813FAA0: .4byte 0x085AB3DC
|
|
_0813FAA4: .4byte 0x02022AE0
|
|
_0813FAA8: .4byte 0x03005B60
|
|
_0813FAAC:
|
|
ldr r1, _0813FADC
|
|
movs r0, #1
|
|
strb r0, [r1, #1]
|
|
ldr r0, _0813FAE0
|
|
movs r1, #0x92
|
|
lsls r1, r1, #3
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
bl TryGetStatusString
|
|
ldr r1, _0813FAE4
|
|
movs r0, #0
|
|
movs r2, #1
|
|
bl sub_0807EBE0
|
|
ldr r1, _0813FAE8
|
|
mov r2, r8
|
|
adds r0, r2, r7
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0, #0x18]
|
|
strh r1, [r0, #0x14]
|
|
b _0813FD8C
|
|
.align 2, 0
|
|
_0813FADC: .4byte 0x02023FD6
|
|
_0813FAE0: .4byte 0x085AB3DC
|
|
_0813FAE4: .4byte 0x02022AE0
|
|
_0813FAE8: .4byte 0x03005B60
|
|
_0813FAEC:
|
|
ldr r0, _0813FB54
|
|
ldrb r1, [r0, #7]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0813FAFA
|
|
b _0813FD8C
|
|
_0813FAFA:
|
|
ldr r0, _0813FB58
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0813FB06
|
|
bl DestroyWirelessStatusIndicatorSprite
|
|
_0813FB06:
|
|
movs r0, #3
|
|
bl GetBgTilemapBuffer
|
|
bl Free
|
|
movs r0, #1
|
|
bl GetBgTilemapBuffer
|
|
bl Free
|
|
movs r0, #0
|
|
bl GetBgTilemapBuffer
|
|
bl Free
|
|
bl FreeAllWindowBuffers
|
|
ldr r0, _0813FB5C
|
|
ldr r1, _0813FB60
|
|
mov r2, r8
|
|
adds r5, r2, r7
|
|
lsls r5, r5, #3
|
|
adds r5, r5, r1
|
|
ldrb r1, [r5, #0x1c]
|
|
ldr r2, _0813FB64
|
|
ldrb r2, [r2]
|
|
subs r2, #1
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
ldr r3, _0813FB68
|
|
ldr r4, _0813FB6C
|
|
ldrh r4, [r4]
|
|
str r4, [sp]
|
|
bl ShowSelectMovePokemonSummaryScreen
|
|
ldrh r0, [r5, #0x14]
|
|
adds r0, #1
|
|
strh r0, [r5, #0x14]
|
|
b _0813FD8C
|
|
.align 2, 0
|
|
_0813FB54: .4byte 0x02037C74
|
|
_0813FB58: .4byte 0x0300319C
|
|
_0813FB5C: .4byte 0x02024190
|
|
_0813FB60: .4byte 0x03005B60
|
|
_0813FB64: .4byte 0x0202418D
|
|
_0813FB68: .4byte 0x0813E075
|
|
_0813FB6C: .4byte 0x02024186
|
|
_0813FB70:
|
|
ldr r0, _0813FBA4
|
|
ldrb r1, [r0, #7]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0813FB7E
|
|
b _0813FD8C
|
|
_0813FB7E:
|
|
ldr r0, _0813FBA8
|
|
ldr r1, [r0, #4]
|
|
ldr r0, _0813FBAC
|
|
cmp r1, r0
|
|
beq _0813FB8A
|
|
b _0813FD8C
|
|
_0813FB8A:
|
|
bl sub_081C14C8
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
cmp r6, #4
|
|
bne _0813FBB4
|
|
ldr r0, _0813FBB0
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
movs r0, #9
|
|
b _0813FD8A
|
|
.align 2, 0
|
|
_0813FBA4: .4byte 0x02037C74
|
|
_0813FBA8: .4byte 0x03002360
|
|
_0813FBAC: .4byte 0x0813E4C5
|
|
_0813FBB0: .4byte 0x03005B60
|
|
_0813FBB4:
|
|
adds r1, r6, #0
|
|
adds r1, #0xd
|
|
mov r0, sb
|
|
bl GetMonData
|
|
lsls r0, r0, #0x10
|
|
lsrs r4, r0, #0x10
|
|
adds r0, r4, #0
|
|
bl IsHMMove2
|
|
cmp r0, #0
|
|
beq _0813FC04
|
|
ldr r0, _0813FBF4
|
|
ldr r1, _0813FBF8
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
bl TryGetStatusString
|
|
ldr r1, _0813FBFC
|
|
movs r0, #0
|
|
movs r2, #1
|
|
bl sub_0807EBE0
|
|
ldr r1, _0813FC00
|
|
mov r2, r8
|
|
adds r0, r2, r7
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
movs r1, #0xb
|
|
strh r1, [r0, #0x14]
|
|
b _0813FD8C
|
|
.align 2, 0
|
|
_0813FBF4: .4byte 0x085AB3DC
|
|
_0813FBF8: .4byte 0x000004CC
|
|
_0813FBFC: .4byte 0x02022AE0
|
|
_0813FC00: .4byte 0x03005B60
|
|
_0813FC04:
|
|
ldr r1, _0813FC58
|
|
movs r0, #0xfd
|
|
strb r0, [r1]
|
|
movs r0, #2
|
|
strb r0, [r1, #1]
|
|
strb r4, [r1, #2]
|
|
lsrs r0, r4, #8
|
|
strb r0, [r1, #3]
|
|
movs r0, #0xff
|
|
strb r0, [r1, #4]
|
|
lsls r4, r6, #0x18
|
|
lsrs r4, r4, #0x18
|
|
mov r0, sb
|
|
adds r1, r4, #0
|
|
bl RemoveMonPPBonus
|
|
ldr r0, _0813FC5C
|
|
ldrh r1, [r0]
|
|
mov r0, sb
|
|
adds r2, r4, #0
|
|
bl SetMonMoveSlot
|
|
ldr r0, _0813FC60
|
|
movs r1, #0xcf
|
|
lsls r1, r1, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
bl TryGetStatusString
|
|
ldr r1, _0813FC64
|
|
movs r0, #0
|
|
movs r2, #1
|
|
bl sub_0807EBE0
|
|
ldr r0, _0813FC68
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1, #0x14]
|
|
adds r0, #1
|
|
b _0813FD8A
|
|
.align 2, 0
|
|
_0813FC58: .4byte 0x02022C1C
|
|
_0813FC5C: .4byte 0x02024186
|
|
_0813FC60: .4byte 0x085AB3DC
|
|
_0813FC64: .4byte 0x02022AE0
|
|
_0813FC68: .4byte 0x03005B60
|
|
_0813FC6C:
|
|
movs r0, #0
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
beq _0813FC7A
|
|
b _0813FD8C
|
|
_0813FC7A:
|
|
bl IsSEPlaying
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0813FC86
|
|
b _0813FD8C
|
|
_0813FC86:
|
|
ldr r0, _0813FCA8
|
|
ldr r0, [r0, #0x1c]
|
|
bl TryGetStatusString
|
|
ldr r1, _0813FCAC
|
|
movs r0, #0
|
|
movs r2, #1
|
|
bl sub_0807EBE0
|
|
ldr r0, _0813FCB0
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1, #0x14]
|
|
adds r0, #1
|
|
b _0813FD8A
|
|
.align 2, 0
|
|
_0813FCA8: .4byte 0x085AB3DC
|
|
_0813FCAC: .4byte 0x02022AE0
|
|
_0813FCB0: .4byte 0x03005B60
|
|
_0813FCB4:
|
|
movs r0, #0
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
bne _0813FD8C
|
|
bl IsSEPlaying
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0813FD8C
|
|
ldr r0, _0813FCF4
|
|
movs r1, #0xd0
|
|
lsls r1, r1, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
bl TryGetStatusString
|
|
ldr r1, _0813FCF8
|
|
movs r0, #0
|
|
movs r2, #1
|
|
bl sub_0807EBE0
|
|
ldr r1, _0813FCFC
|
|
mov r2, r8
|
|
adds r0, r2, r7
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
movs r1, #0x12
|
|
strh r1, [r0, #8]
|
|
b _0813FD8C
|
|
.align 2, 0
|
|
_0813FCF4: .4byte 0x085AB3DC
|
|
_0813FCF8: .4byte 0x02022AE0
|
|
_0813FCFC: .4byte 0x03005B60
|
|
_0813FD00:
|
|
ldr r0, _0813FD2C
|
|
ldr r0, [r0, #0x20]
|
|
bl TryGetStatusString
|
|
ldr r1, _0813FD30
|
|
movs r0, #0
|
|
movs r2, #1
|
|
bl sub_0807EBE0
|
|
ldr r1, _0813FD34
|
|
mov r2, r8
|
|
adds r0, r2, r7
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
movs r2, #0
|
|
movs r1, #0xa
|
|
strh r1, [r0, #0x16]
|
|
strh r2, [r0, #0x18]
|
|
movs r1, #3
|
|
strh r1, [r0, #0x14]
|
|
b _0813FD8C
|
|
.align 2, 0
|
|
_0813FD2C: .4byte 0x085AB3DC
|
|
_0813FD30: .4byte 0x02022AE0
|
|
_0813FD34: .4byte 0x03005B60
|
|
_0813FD38:
|
|
ldr r0, _0813FD5C
|
|
ldr r0, [r0, #0x24]
|
|
bl TryGetStatusString
|
|
ldr r1, _0813FD60
|
|
movs r0, #0
|
|
movs r2, #1
|
|
bl sub_0807EBE0
|
|
ldr r1, _0813FD64
|
|
mov r2, r8
|
|
adds r0, r2, r7
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
_0813FD54:
|
|
movs r1, #0xd
|
|
strh r1, [r0, #8]
|
|
b _0813FD8C
|
|
.align 2, 0
|
|
_0813FD5C: .4byte 0x085AB3DC
|
|
_0813FD60: .4byte 0x02022AE0
|
|
_0813FD64: .4byte 0x03005B60
|
|
_0813FD68:
|
|
movs r0, #0
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
bne _0813FD8C
|
|
bl IsSEPlaying
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0813FD8C
|
|
ldr r0, _0813FD9C
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
movs r0, #5
|
|
_0813FD8A:
|
|
strh r0, [r1, #0x14]
|
|
_0813FD8C:
|
|
add sp, #0x20
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813FD9C: .4byte 0x03005B60
|
|
thumb_func_end Task_TradeEvolutionScene
|
|
|
|
thumb_func_start EvoDummyFunc
|
|
EvoDummyFunc: @ 0x0813FDA0
|
|
bx lr
|
|
.align 2, 0
|
|
thumb_func_end EvoDummyFunc
|
|
|
|
thumb_func_start VBlankCB_EvolutionScene
|
|
VBlankCB_EvolutionScene: @ 0x0813FDA4
|
|
push {lr}
|
|
ldr r0, _0813FE0C
|
|
ldrh r1, [r0]
|
|
movs r0, #0x10
|
|
bl SetGpuReg
|
|
ldr r0, _0813FE10
|
|
ldrh r1, [r0]
|
|
movs r0, #0x12
|
|
bl SetGpuReg
|
|
ldr r0, _0813FE14
|
|
ldrh r1, [r0]
|
|
movs r0, #0x14
|
|
bl SetGpuReg
|
|
ldr r0, _0813FE18
|
|
ldrh r1, [r0]
|
|
movs r0, #0x16
|
|
bl SetGpuReg
|
|
ldr r0, _0813FE1C
|
|
ldrh r1, [r0]
|
|
movs r0, #0x18
|
|
bl SetGpuReg
|
|
ldr r0, _0813FE20
|
|
ldrh r1, [r0]
|
|
movs r0, #0x1a
|
|
bl SetGpuReg
|
|
ldr r0, _0813FE24
|
|
ldrh r1, [r0]
|
|
movs r0, #0x1c
|
|
bl SetGpuReg
|
|
ldr r0, _0813FE28
|
|
ldrh r1, [r0]
|
|
movs r0, #0x1e
|
|
bl SetGpuReg
|
|
bl LoadOam
|
|
bl ProcessSpriteCopyRequests
|
|
bl TransferPlttBuffer
|
|
bl ScanlineEffect_InitHBlankDmaTransfer
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813FE0C: .4byte 0x02022AC8
|
|
_0813FE10: .4byte 0x02022ACA
|
|
_0813FE14: .4byte 0x02022ACC
|
|
_0813FE18: .4byte 0x02022ACE
|
|
_0813FE1C: .4byte 0x02022AD0
|
|
_0813FE20: .4byte 0x02022AD2
|
|
_0813FE24: .4byte 0x02022AD4
|
|
_0813FE28: .4byte 0x02022AD6
|
|
thumb_func_end VBlankCB_EvolutionScene
|
|
|
|
thumb_func_start VBlankCB_TradeEvolutionScene
|
|
VBlankCB_TradeEvolutionScene: @ 0x0813FE2C
|
|
push {lr}
|
|
ldr r0, _0813FE94
|
|
ldrh r1, [r0]
|
|
movs r0, #0x10
|
|
bl SetGpuReg
|
|
ldr r0, _0813FE98
|
|
ldrh r1, [r0]
|
|
movs r0, #0x12
|
|
bl SetGpuReg
|
|
ldr r0, _0813FE9C
|
|
ldrh r1, [r0]
|
|
movs r0, #0x14
|
|
bl SetGpuReg
|
|
ldr r0, _0813FEA0
|
|
ldrh r1, [r0]
|
|
movs r0, #0x16
|
|
bl SetGpuReg
|
|
ldr r0, _0813FEA4
|
|
ldrh r1, [r0]
|
|
movs r0, #0x18
|
|
bl SetGpuReg
|
|
ldr r0, _0813FEA8
|
|
ldrh r1, [r0]
|
|
movs r0, #0x1a
|
|
bl SetGpuReg
|
|
ldr r0, _0813FEAC
|
|
ldrh r1, [r0]
|
|
movs r0, #0x1c
|
|
bl SetGpuReg
|
|
ldr r0, _0813FEB0
|
|
ldrh r1, [r0]
|
|
movs r0, #0x1e
|
|
bl SetGpuReg
|
|
bl LoadOam
|
|
bl ProcessSpriteCopyRequests
|
|
bl TransferPlttBuffer
|
|
bl ScanlineEffect_InitHBlankDmaTransfer
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813FE94: .4byte 0x02022AC8
|
|
_0813FE98: .4byte 0x02022ACA
|
|
_0813FE9C: .4byte 0x02022ACC
|
|
_0813FEA0: .4byte 0x02022ACE
|
|
_0813FEA4: .4byte 0x02022AD0
|
|
_0813FEA8: .4byte 0x02022AD2
|
|
_0813FEAC: .4byte 0x02022AD4
|
|
_0813FEB0: .4byte 0x02022AD6
|
|
thumb_func_end VBlankCB_TradeEvolutionScene
|
|
|
|
thumb_func_start sub_0813FEB4
|
|
sub_0813FEB4: @ 0x0813FEB4
|
|
push {r4, r5, r6, lr}
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
lsls r0, r6, #2
|
|
adds r0, r0, r6
|
|
lsls r0, r0, #3
|
|
ldr r1, _0813FF34
|
|
adds r4, r0, r1
|
|
movs r0, #0xc
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, #0
|
|
bne _0813FF62
|
|
ldrh r0, [r4, #0xa]
|
|
adds r1, r0, #1
|
|
strh r1, [r4, #0xa]
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #0x10
|
|
cmp r0, #0x13
|
|
ble _0813FF62
|
|
ldrh r1, [r4]
|
|
adds r0, r1, #1
|
|
strh r0, [r4]
|
|
lsls r1, r1, #0x10
|
|
asrs r1, r1, #0x10
|
|
ldr r3, _0813FF38
|
|
movs r2, #4
|
|
ldrsh r0, [r4, r2]
|
|
lsls r2, r0, #2
|
|
adds r0, r3, #3
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
ble _0813FF54
|
|
adds r0, r3, #1
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
movs r2, #2
|
|
ldrsh r1, [r4, r2]
|
|
cmp r0, r1
|
|
bne _0813FF3C
|
|
ldrh r0, [r4, #6]
|
|
adds r0, #1
|
|
strh r0, [r4, #6]
|
|
movs r0, #6
|
|
ldrsh r2, [r4, r0]
|
|
movs r1, #4
|
|
ldrsh r0, [r4, r1]
|
|
lsls r0, r0, #2
|
|
adds r1, r3, #2
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bne _0813FF26
|
|
strh r5, [r4, #6]
|
|
ldrh r0, [r4, #4]
|
|
adds r0, #1
|
|
strh r0, [r4, #4]
|
|
_0813FF26:
|
|
movs r2, #4
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
ldrb r0, [r0]
|
|
b _0813FF52
|
|
.align 2, 0
|
|
_0813FF34: .4byte 0x03005B68
|
|
_0813FF38: .4byte 0x08595475
|
|
_0813FF3C:
|
|
ldr r0, _0813FF68
|
|
lsls r1, r1, #5
|
|
ldr r0, [r0]
|
|
adds r0, r0, r1
|
|
movs r1, #0xa0
|
|
movs r2, #0x20
|
|
bl LoadPalette
|
|
strh r5, [r4]
|
|
ldrh r0, [r4, #2]
|
|
adds r0, #1
|
|
_0813FF52:
|
|
strh r0, [r4, #2]
|
|
_0813FF54:
|
|
movs r1, #4
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, #4
|
|
bne _0813FF62
|
|
adds r0, r6, #0
|
|
bl DestroyTask
|
|
_0813FF62:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813FF68: .4byte 0x0203A850
|
|
thumb_func_end sub_0813FEB4
|
|
|
|
thumb_func_start sub_0813FF6C
|
|
sub_0813FF6C: @ 0x0813FF6C
|
|
push {r4, lr}
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
ldr r0, _0813FF90
|
|
movs r1, #7
|
|
bl CreateTask
|
|
lsls r0, r0, #0x18
|
|
lsrs r2, r0, #0x18
|
|
cmp r4, #0
|
|
bne _0813FF98
|
|
ldr r1, _0813FF94
|
|
lsls r0, r2, #2
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
strh r4, [r0, #0xc]
|
|
b _0813FFA6
|
|
.align 2, 0
|
|
_0813FF90: .4byte 0x0813FFB1
|
|
_0813FF94: .4byte 0x03005B60
|
|
_0813FF98:
|
|
ldr r0, _0813FFAC
|
|
lsls r1, r2, #2
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
movs r0, #1
|
|
strh r0, [r1, #0xc]
|
|
_0813FFA6:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0813FFAC: .4byte 0x03005B60
|
|
thumb_func_end sub_0813FF6C
|
|
|
|
thumb_func_start sub_0813FFB0
|
|
sub_0813FFB0: @ 0x0813FFB0
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
ldr r0, _0813FFDC
|
|
mov r8, r0
|
|
ldr r1, _0813FFE0
|
|
mov sb, r1
|
|
ldr r1, _0813FFE4
|
|
lsls r0, r5, #2
|
|
adds r0, r0, r5
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
movs r2, #0xc
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, #0
|
|
bne _0813FFF0
|
|
ldr r7, _0813FFE8
|
|
ldr r6, _0813FFEC
|
|
b _0813FFF4
|
|
.align 2, 0
|
|
_0813FFDC: .4byte 0x02022ACC
|
|
_0813FFE0: .4byte 0x02022ACE
|
|
_0813FFE4: .4byte 0x03005B60
|
|
_0813FFE8: .4byte 0x02022AD0
|
|
_0813FFEC: .4byte 0x02022AD2
|
|
_0813FFF0:
|
|
ldr r7, _0814007C
|
|
ldr r6, _08140080
|
|
_0813FFF4:
|
|
lsls r4, r5, #2
|
|
adds r4, r4, r5
|
|
lsls r4, r4, #3
|
|
adds r4, r4, r1
|
|
ldrh r0, [r4, #8]
|
|
adds r0, #5
|
|
movs r1, #0xff
|
|
ands r0, r1
|
|
strh r0, [r4, #8]
|
|
adds r0, #0x80
|
|
ands r0, r1
|
|
strh r0, [r4, #0xa]
|
|
movs r1, #8
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, #4
|
|
bl Cos
|
|
adds r0, #8
|
|
mov r2, r8
|
|
strh r0, [r2]
|
|
movs r1, #8
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, #4
|
|
bl Sin
|
|
adds r0, #0x10
|
|
mov r2, sb
|
|
strh r0, [r2]
|
|
movs r1, #0xa
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, #4
|
|
bl Cos
|
|
adds r0, #8
|
|
strh r0, [r7]
|
|
movs r2, #0xa
|
|
ldrsh r0, [r4, r2]
|
|
movs r1, #4
|
|
bl Sin
|
|
adds r0, #0x10
|
|
strh r0, [r6]
|
|
ldr r0, _08140084
|
|
bl FuncIsActiveTask
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #0
|
|
bne _0814006E
|
|
adds r0, r5, #0
|
|
bl DestroyTask
|
|
mov r0, r8
|
|
strh r4, [r0]
|
|
mov r1, sb
|
|
strh r4, [r1]
|
|
movs r2, #0x80
|
|
lsls r2, r2, #1
|
|
adds r0, r2, #0
|
|
strh r0, [r7]
|
|
strh r4, [r6]
|
|
_0814006E:
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0814007C: .4byte 0x02022AD4
|
|
_08140080: .4byte 0x02022AD6
|
|
_08140084: .4byte 0x0813FEB5
|
|
thumb_func_end sub_0813FFB0
|
|
|
|
thumb_func_start InitMovingBgValues
|
|
InitMovingBgValues: @ 0x08140088
|
|
push {r4, r5, r6, r7, lr}
|
|
adds r6, r0, #0
|
|
movs r1, #0
|
|
ldr r5, _081400C0
|
|
ldr r7, _081400C4
|
|
_08140092:
|
|
lsls r0, r1, #4
|
|
adds r4, r1, #1
|
|
adds r2, r0, r7
|
|
lsls r0, r1, #5
|
|
adds r1, r0, r6
|
|
movs r3, #0xf
|
|
_0814009E:
|
|
ldrb r0, [r2]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r5
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
adds r2, #1
|
|
adds r1, #2
|
|
subs r3, #1
|
|
cmp r3, #0
|
|
bge _0814009E
|
|
adds r1, r4, #0
|
|
cmp r1, #0x31
|
|
ble _08140092
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081400C0: .4byte 0x085953F0
|
|
_081400C4: .4byte 0x08595485
|
|
thumb_func_end InitMovingBgValues
|
|
|
|
thumb_func_start InitMovingBackgroundTask
|
|
InitMovingBackgroundTask: @ 0x081400C8
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #4
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
ldr r4, _081400EC
|
|
movs r0, #0xc8
|
|
lsls r0, r0, #3
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
bl InitMovingBgValues
|
|
cmp r5, #0
|
|
bne _081400F0
|
|
movs r6, #1
|
|
movs r4, #2
|
|
b _081400F4
|
|
.align 2, 0
|
|
_081400EC: .4byte 0x0203A850
|
|
_081400F0:
|
|
movs r6, #1
|
|
movs r4, #3
|
|
_081400F4:
|
|
ldr r0, _08140174
|
|
movs r1, #0xa0
|
|
movs r2, #0x20
|
|
bl LoadPalette
|
|
ldr r1, _08140178
|
|
movs r0, #0
|
|
str r0, [sp]
|
|
movs r0, #1
|
|
movs r2, #0
|
|
movs r3, #0
|
|
bl DecompressAndLoadBgGfxUsingHeap
|
|
ldr r1, _0814017C
|
|
movs r0, #1
|
|
movs r2, #0
|
|
movs r3, #0
|
|
bl CopyToBgTilemapBuffer
|
|
ldr r1, _08140180
|
|
adds r0, r4, #0
|
|
movs r2, #0
|
|
movs r3, #0
|
|
bl CopyToBgTilemapBuffer
|
|
movs r0, #1
|
|
bl CopyBgTilemapBufferToVram
|
|
adds r0, r4, #0
|
|
bl CopyBgTilemapBufferToVram
|
|
cmp r5, #0
|
|
bne _0814018C
|
|
ldr r1, _08140184
|
|
movs r0, #0x50
|
|
bl SetGpuReg
|
|
ldr r1, _08140188
|
|
movs r0, #0x52
|
|
bl SetGpuReg
|
|
movs r1, #0xba
|
|
lsls r1, r1, #5
|
|
movs r0, #0
|
|
bl SetGpuReg
|
|
adds r0, r6, #0
|
|
movs r1, #7
|
|
movs r2, #2
|
|
bl SetBgAttribute
|
|
adds r0, r4, #0
|
|
movs r1, #7
|
|
movs r2, #2
|
|
bl SetBgAttribute
|
|
movs r0, #1
|
|
bl ShowBg
|
|
movs r0, #2
|
|
bl ShowBg
|
|
b _081401A6
|
|
.align 2, 0
|
|
_08140174: .4byte 0x08594D50
|
|
_08140178: .4byte 0x08593CA0
|
|
_0814017C: .4byte 0x08594398
|
|
_08140180: .4byte 0x0859487C
|
|
_08140184: .4byte 0x00000442
|
|
_08140188: .4byte 0x00000808
|
|
_0814018C:
|
|
ldr r1, _081401BC
|
|
movs r0, #0x50
|
|
bl SetGpuReg
|
|
ldr r1, _081401C0
|
|
movs r0, #0x52
|
|
bl SetGpuReg
|
|
movs r1, #0xda
|
|
lsls r1, r1, #5
|
|
movs r0, #0
|
|
bl SetGpuReg
|
|
_081401A6:
|
|
ldr r0, _081401C4
|
|
movs r1, #5
|
|
bl CreateTask
|
|
adds r0, r5, #0
|
|
bl sub_0813FF6C
|
|
add sp, #4
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081401BC: .4byte 0x00000842
|
|
_081401C0: .4byte 0x00000808
|
|
_081401C4: .4byte 0x0813FEB5
|
|
thumb_func_end InitMovingBackgroundTask
|
|
|
|
thumb_func_start sub_081401C8
|
|
sub_081401C8: @ 0x081401C8
|
|
push {lr}
|
|
ldr r0, _081401F4
|
|
bl FindTaskIdByFunc
|
|
lsls r0, r0, #0x18
|
|
lsrs r2, r0, #0x18
|
|
cmp r2, #0xff
|
|
beq _081401E6
|
|
ldr r0, _081401F8
|
|
lsls r1, r2, #2
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r0
|
|
movs r0, #1
|
|
strh r0, [r1, #0x14]
|
|
_081401E6:
|
|
movs r0, #0
|
|
movs r1, #0xa0
|
|
movs r2, #0x20
|
|
bl FillPalette
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081401F4: .4byte 0x0813FEB5
|
|
_081401F8: .4byte 0x03005B60
|
|
thumb_func_end sub_081401C8
|
|
|
|
thumb_func_start sub_081401FC
|
|
sub_081401FC: @ 0x081401FC
|
|
push {lr}
|
|
ldr r0, _08140234
|
|
bl FindTaskIdByFunc
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0xff
|
|
beq _08140210
|
|
bl DestroyTask
|
|
_08140210:
|
|
ldr r0, _08140238
|
|
bl FindTaskIdByFunc
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0xff
|
|
beq _08140222
|
|
bl DestroyTask
|
|
_08140222:
|
|
movs r0, #0
|
|
movs r1, #0xa0
|
|
movs r2, #0x20
|
|
bl FillPalette
|
|
bl sub_0814023C
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08140234: .4byte 0x0813FEB5
|
|
_08140238: .4byte 0x0813FFB1
|
|
thumb_func_end sub_081401FC
|
|
|
|
thumb_func_start sub_0814023C
|
|
sub_0814023C: @ 0x0814023C
|
|
push {lr}
|
|
movs r0, #0x50
|
|
movs r1, #0
|
|
bl SetGpuReg
|
|
ldr r0, _08140298
|
|
movs r1, #0
|
|
strh r1, [r0]
|
|
ldr r0, _0814029C
|
|
strh r1, [r0]
|
|
ldr r0, _081402A0
|
|
strh r1, [r0]
|
|
movs r0, #1
|
|
movs r1, #5
|
|
bl sub_08038E94
|
|
adds r2, r0, #0
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
movs r0, #1
|
|
movs r1, #7
|
|
bl SetBgAttribute
|
|
movs r0, #2
|
|
movs r1, #5
|
|
bl sub_08038E94
|
|
adds r2, r0, #0
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
movs r0, #2
|
|
movs r1, #7
|
|
bl SetBgAttribute
|
|
movs r1, #0xca
|
|
lsls r1, r1, #5
|
|
movs r0, #0
|
|
bl SetGpuReg
|
|
ldr r0, _081402A4
|
|
ldr r0, [r0]
|
|
bl Free
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08140298: .4byte 0x02022ACC
|
|
_0814029C: .4byte 0x02022ACE
|
|
_081402A0: .4byte 0x02022AD0
|
|
_081402A4: .4byte 0x0203A850
|
|
thumb_func_end sub_0814023C
|
|
|
|
thumb_func_start EvoScene_DoMonAnimation
|
|
EvoScene_DoMonAnimation: @ 0x081402A8
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
lsls r2, r2, #0x18
|
|
lsrs r2, r2, #0x18
|
|
lsls r1, r1, #0x10
|
|
lsrs r1, r1, #0x10
|
|
lsls r0, r2, #4
|
|
adds r0, r0, r2
|
|
lsls r0, r0, #2
|
|
ldr r2, _081402CC
|
|
adds r0, r0, r2
|
|
movs r2, #0
|
|
movs r3, #0
|
|
bl DoMonFrontSpriteAnimation
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_081402CC: .4byte 0x020205AC
|
|
thumb_func_end EvoScene_DoMonAnimation
|
|
|
|
thumb_func_start EvoScene_IsMonAnimFinished
|
|
EvoScene_IsMonAnimFinished: @ 0x081402D0
|
|
push {lr}
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
ldr r2, _081402F0
|
|
lsls r1, r0, #4
|
|
adds r1, r1, r0
|
|
lsls r1, r1, #2
|
|
adds r2, #0x1c
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
ldr r0, _081402F4
|
|
cmp r1, r0
|
|
beq _081402F8
|
|
movs r0, #0
|
|
b _081402FA
|
|
.align 2, 0
|
|
_081402F0: .4byte 0x020205AC
|
|
_081402F4: .4byte 0x08007141
|
|
_081402F8:
|
|
movs r0, #1
|
|
_081402FA:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
thumb_func_end EvoScene_IsMonAnimFinished
|
|
|