mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-02-05 10:52:35 +01:00
4228 lines
64 KiB
ArmAsm
4228 lines
64 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/gba_constants.inc"
|
|
.include "constants/misc_constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_807CFC8
|
|
sub_807CFC8: @ 807CFC8
|
|
push {r4-r7,lr}
|
|
sub sp, 0x14
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r1, [r0]
|
|
adds r1, 0x94
|
|
ldrh r5, [r1]
|
|
ldr r1, =0x0000010b
|
|
adds r7, r0, 0
|
|
cmp r5, r1
|
|
bls _0807CFE0
|
|
bl _0807E400
|
|
_0807CFE0:
|
|
lsls r0, r5, 2
|
|
ldr r1, =_0807CFF8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0807CFF8:
|
|
.4byte _0807D428
|
|
.4byte _0807D4A0
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807D4FC
|
|
.4byte _0807D544
|
|
.4byte _0807D5B8
|
|
.4byte _0807E400
|
|
.4byte _0807D624
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807D648
|
|
.4byte _0807D678
|
|
.4byte _0807D68A
|
|
.4byte _0807D6AC
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807D7A4
|
|
.4byte _0807D7C4
|
|
.4byte _0807D830
|
|
.4byte _0807D8B4
|
|
.4byte _0807D8D8
|
|
.4byte _0807D924
|
|
.4byte _0807D970
|
|
.4byte _0807D9CC
|
|
.4byte _0807DA38
|
|
.4byte _0807DA4C
|
|
.4byte _0807DA60
|
|
.4byte _0807DA74
|
|
.4byte _0807DB9C
|
|
.4byte _0807DC6C
|
|
.4byte _0807DCF4
|
|
.4byte _0807DD94
|
|
.4byte _0807DDA4
|
|
.4byte _0807DDC4
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807DEE8
|
|
.4byte _0807DEF8
|
|
.4byte _0807DF16
|
|
.4byte _0807E400
|
|
.4byte _0807DF3C
|
|
.4byte _0807DF7C
|
|
.4byte _0807DFBC
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807DFDC
|
|
.4byte _0807E004
|
|
.4byte _0807E020
|
|
.4byte _0807E040
|
|
.4byte _0807E0E8
|
|
.4byte _0807E11C
|
|
.4byte _0807E168
|
|
.4byte _0807E228
|
|
.4byte _0807E2A0
|
|
.4byte _0807E2EC
|
|
.4byte _0807E2FC
|
|
.4byte _0807E302
|
|
.4byte _0807E328
|
|
.4byte _0807E384
|
|
.4byte _0807E3A8
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807D6F4
|
|
.4byte _0807D728
|
|
.4byte _0807D77C
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807DE1C
|
|
.4byte _0807DE84
|
|
.4byte _0807DEC0
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E264
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807D85C
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E400
|
|
.4byte _0807E284
|
|
_0807D428:
|
|
ldr r3, =gSprites
|
|
ldr r0, [r7]
|
|
adds r0, 0x8E
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
adds r0, 0x3E
|
|
ldrb r2, [r0]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
ldr r4, [r7]
|
|
adds r2, r4, 0
|
|
adds r2, 0x8E
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r1, =0x0000ff4c
|
|
strh r1, [r0, 0x24]
|
|
ldrb r0, [r2]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
ldr r2, =gMonFrontPicCoords
|
|
adds r0, r4, 0
|
|
adds r0, 0xF0
|
|
ldrh r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
strh r0, [r1, 0x26]
|
|
adds r1, r4, 0
|
|
adds r1, 0x94
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
bl GetCurrentMapMusic
|
|
ldr r1, [r7]
|
|
adds r1, 0xF4
|
|
strh r0, [r1]
|
|
ldr r0, =0x00000179
|
|
bl PlayNewMapMusic
|
|
bl _0807E400
|
|
.pool
|
|
_0807D4A0:
|
|
ldr r5, [r7]
|
|
adds r6, r5, 0
|
|
adds r6, 0xE6
|
|
movs r1, 0
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
ble _0807D4D4
|
|
ldr r2, =gSprites
|
|
adds r0, r5, 0
|
|
adds r0, 0x8E
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x24]
|
|
adds r1, 0x3
|
|
strh r1, [r0, 0x24]
|
|
ldrh r0, [r6]
|
|
subs r0, 0x3
|
|
strh r0, [r6]
|
|
bl _0807E400
|
|
.pool
|
|
_0807D4D4:
|
|
ldr r2, =gSprites
|
|
adds r0, r5, 0
|
|
adds r0, 0x8E
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strh r1, [r0, 0x24]
|
|
strh r1, [r6]
|
|
adds r1, r5, 0
|
|
adds r1, 0x94
|
|
movs r0, 0xA
|
|
strh r0, [r1]
|
|
bl _0807E400
|
|
.pool
|
|
_0807D4FC:
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gText_XWillBeSentToY
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl sub_807F1A8
|
|
ldr r4, =gUnknown_020322A0
|
|
ldr r0, [r4]
|
|
adds r2, r0, 0
|
|
adds r2, 0xF0
|
|
ldrh r1, [r2]
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
beq _0807D52A
|
|
adds r0, r1, 0
|
|
movs r1, 0
|
|
bl PlayCry1
|
|
_0807D52A:
|
|
ldr r3, [r4]
|
|
adds r1, r3, 0
|
|
adds r1, 0x94
|
|
movs r2, 0
|
|
movs r0, 0xB
|
|
bl _0807E252
|
|
.pool
|
|
_0807D544:
|
|
ldr r1, [r7]
|
|
ldr r0, [r1, 0x64]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x64]
|
|
cmp r0, 0x50
|
|
beq _0807D554
|
|
bl _0807E400
|
|
_0807D554:
|
|
adds r0, r1, 0
|
|
adds r0, 0x8E
|
|
ldrb r0, [r0]
|
|
ldr r2, =gSprites
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r1, [r1, 0x5]
|
|
lsrs r1, 4
|
|
movs r2, 0x2
|
|
str r2, [sp]
|
|
movs r2, 0x1
|
|
str r2, [sp, 0x4]
|
|
movs r2, 0x14
|
|
str r2, [sp, 0x8]
|
|
ldr r2, =0x000fffff
|
|
str r2, [sp, 0xC]
|
|
movs r2, 0x78
|
|
movs r3, 0x20
|
|
bl sub_807671C
|
|
ldr r1, [r7]
|
|
adds r1, 0xD2
|
|
strb r0, [r1]
|
|
ldr r1, [r7]
|
|
adds r1, 0x94
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gText_ByeByeVar1
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl sub_807F1A8
|
|
bl _0807E400
|
|
.pool
|
|
_0807D5B8:
|
|
ldr r5, =gSprites
|
|
ldr r0, [r7]
|
|
adds r0, 0xD2
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r4, r5, 0
|
|
adds r4, 0x1C
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldr r0, =SpriteCallbackDummy
|
|
cmp r1, r0
|
|
beq _0807D5D8
|
|
bl _0807E400
|
|
_0807D5D8:
|
|
ldr r0, =gSpriteTemplate_8338D28
|
|
movs r1, 0x78
|
|
movs r2, 0x20
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r1, [r7]
|
|
adds r1, 0xD3
|
|
strb r0, [r1]
|
|
ldr r2, [r7]
|
|
adds r0, r2, 0
|
|
adds r0, 0xD3
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r1, =sub_807E5D8
|
|
str r1, [r0]
|
|
adds r2, 0xD2
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
bl DestroySprite
|
|
ldr r1, [r7]
|
|
bl _0807E398
|
|
.pool
|
|
_0807D624:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r0, [r0]
|
|
adds r0, 0x94
|
|
movs r1, 0x14
|
|
strh r1, [r0]
|
|
bl _0807E400
|
|
.pool
|
|
_0807D648:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807D658
|
|
bl _0807E400
|
|
_0807D658:
|
|
movs r0, 0x4
|
|
bl sub_807B62C
|
|
movs r0, 0
|
|
movs r1, 0xFF
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
bl _0807E394
|
|
.pool
|
|
_0807D678:
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r1, 0
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl _0807E390
|
|
_0807D68A:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807D69A
|
|
bl _0807E400
|
|
_0807D69A:
|
|
ldr r0, [r7]
|
|
adds r0, 0x94
|
|
movs r1, 0x17
|
|
strh r1, [r0]
|
|
bl _0807E400
|
|
.pool
|
|
_0807D6AC:
|
|
ldr r4, =gUnknown_020322A0
|
|
ldr r0, [r4]
|
|
adds r2, r0, 0
|
|
adds r2, 0xEA
|
|
ldrh r1, [r2]
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bls _0807D6CC
|
|
adds r0, r1, 0
|
|
subs r0, 0x34
|
|
strh r0, [r2]
|
|
b _0807D6E6
|
|
.pool
|
|
_0807D6CC:
|
|
movs r0, 0x1
|
|
bl sub_807B62C
|
|
ldr r3, [r4]
|
|
adds r1, r3, 0
|
|
adds r1, 0xEA
|
|
movs r2, 0
|
|
movs r0, 0x80
|
|
strh r0, [r1]
|
|
subs r1, 0x56
|
|
movs r0, 0x7C
|
|
strh r0, [r1]
|
|
str r2, [r3, 0x64]
|
|
_0807D6E6:
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r4, [r0]
|
|
bl _0807DFA8
|
|
.pool
|
|
_0807D6F4:
|
|
ldr r1, [r7]
|
|
ldr r0, [r1, 0x64]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x64]
|
|
cmp r0, 0x14
|
|
bhi _0807D704
|
|
bl _0807E400
|
|
_0807D704:
|
|
movs r0, 0x3
|
|
bl sub_807B62C
|
|
ldr r0, =gSpriteTemplate_8338E8C
|
|
movs r1, 0x78
|
|
movs r2, 0x50
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r1, [r7]
|
|
adds r1, 0x91
|
|
strb r0, [r1]
|
|
ldr r1, [r7]
|
|
bl _0807E398
|
|
.pool
|
|
_0807D728:
|
|
ldr r2, =gSprites
|
|
ldr r0, [r7]
|
|
adds r0, 0x91
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r0, r2
|
|
adds r0, r1, 0
|
|
adds r0, 0x3F
|
|
ldrb r0, [r0]
|
|
lsls r0, 27
|
|
cmp r0, 0
|
|
blt _0807D748
|
|
bl _0807E400
|
|
_0807D748:
|
|
adds r0, r1, 0
|
|
bl DestroySprite
|
|
ldr r1, =0x00000452
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r1, 0x82
|
|
lsls r1, 3
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
ldr r0, =c3_08054588
|
|
movs r1, 0x5
|
|
bl CreateTask
|
|
ldr r1, [r7]
|
|
bl _0807E398
|
|
.pool
|
|
_0807D77C:
|
|
ldr r0, =c3_08054588
|
|
bl FuncIsActiveTask
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807D78C
|
|
bl _0807E400
|
|
_0807D78C:
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r0, [r0]
|
|
adds r0, 0x94
|
|
movs r1, 0x1A
|
|
strh r1, [r0]
|
|
bl _0807E400
|
|
.pool
|
|
_0807D7A4:
|
|
ldr r2, [r7]
|
|
adds r0, r2, 0
|
|
adds r0, 0xE0
|
|
ldrh r1, [r0]
|
|
subs r1, 0x1
|
|
strh r1, [r0]
|
|
lsls r1, 16
|
|
movs r0, 0x9E
|
|
lsls r0, 17
|
|
cmp r1, r0
|
|
beq _0807D7BE
|
|
bl _0807E400
|
|
_0807D7BE:
|
|
adds r1, r2, 0
|
|
bl _0807E398
|
|
_0807D7C4:
|
|
ldr r0, =gUnknown_08338D88
|
|
movs r1, 0x78
|
|
movs r2, 0x50
|
|
movs r3, 0x3
|
|
bl CreateSprite
|
|
ldr r4, =gUnknown_020322A0
|
|
ldr r1, [r4]
|
|
adds r1, 0x90
|
|
strb r0, [r1]
|
|
ldr r5, =gSprites
|
|
ldr r0, [r4]
|
|
adds r0, 0x90
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r5, 0
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, =sub_807AA4C
|
|
str r1, [r0]
|
|
ldr r0, =gSpriteTemplate_8338DC8
|
|
movs r1, 0x78
|
|
movs r2, 0x50
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r1, [r4]
|
|
adds r1, 0x91
|
|
strb r0, [r1]
|
|
ldr r0, [r4]
|
|
adds r0, 0x91
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
ldr r1, [r4]
|
|
bl _0807E398
|
|
.pool
|
|
_0807D830:
|
|
ldr r2, [r7]
|
|
adds r1, r2, 0
|
|
adds r1, 0xE0
|
|
ldrh r0, [r1]
|
|
subs r0, 0x3
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xA6
|
|
bne _0807D84A
|
|
subs r1, 0x4C
|
|
movs r0, 0xC8
|
|
strh r0, [r1]
|
|
_0807D84A:
|
|
ldr r1, =0x00001241
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
bl _0807E400
|
|
.pool
|
|
_0807D85C:
|
|
ldr r2, =gSprites
|
|
ldr r4, [r7]
|
|
adds r3, r4, 0
|
|
adds r3, 0x90
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x22]
|
|
subs r1, 0x2
|
|
strh r1, [r0, 0x22]
|
|
adds r0, r4, 0
|
|
adds r0, 0x91
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x22]
|
|
subs r1, 0x2
|
|
strh r1, [r0, 0x22]
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r2, 0x22
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0x8
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
blt _0807D8A2
|
|
bl _0807E400
|
|
_0807D8A2:
|
|
adds r1, r4, 0
|
|
adds r1, 0x94
|
|
movs r0, 0x1D
|
|
strh r0, [r1]
|
|
bl _0807E400
|
|
.pool
|
|
_0807D8B4:
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r0, [r0]
|
|
adds r0, 0x94
|
|
movs r1, 0x1E
|
|
strh r1, [r0]
|
|
bl _0807E400
|
|
.pool
|
|
_0807D8D8:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807D8E8
|
|
bl _0807E400
|
|
_0807D8E8:
|
|
ldr r0, [r7]
|
|
adds r0, 0x90
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, =gSprites
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
ldr r0, [r7]
|
|
adds r0, 0x91
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
movs r0, 0x2
|
|
bl sub_807B62C
|
|
ldr r1, [r7]
|
|
bl _0807E398
|
|
.pool
|
|
_0807D924:
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r1, 0
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
ldr r5, =gSpriteTemplate_8338DC8
|
|
adds r0, r5, 0
|
|
movs r1, 0x6F
|
|
movs r2, 0xAA
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r4, =gUnknown_020322A0
|
|
ldr r1, [r4]
|
|
adds r1, 0x90
|
|
strb r0, [r1]
|
|
movs r2, 0xA
|
|
negs r2, r2
|
|
adds r0, r5, 0
|
|
movs r1, 0x81
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r1, [r4]
|
|
adds r1, 0x91
|
|
strb r0, [r1]
|
|
ldr r1, [r4]
|
|
bl _0807E398
|
|
.pool
|
|
_0807D970:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807D98E
|
|
movs r0, 0x2E
|
|
bl PlaySE
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r1, [r0]
|
|
adds r1, 0x94
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
_0807D98E:
|
|
ldr r3, =gSprites
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r2, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0x90
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrh r1, [r0, 0x26]
|
|
subs r1, 0x3
|
|
strh r1, [r0, 0x26]
|
|
adds r2, 0x91
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrh r1, [r0, 0x26]
|
|
adds r1, 0x3
|
|
strh r1, [r0, 0x26]
|
|
bl _0807E400
|
|
.pool
|
|
_0807D9CC:
|
|
ldr r5, =gSprites
|
|
ldr r4, [r7]
|
|
adds r2, r4, 0
|
|
adds r2, 0x90
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrh r1, [r0, 0x26]
|
|
subs r1, 0x3
|
|
strh r1, [r0, 0x26]
|
|
adds r6, r4, 0
|
|
adds r6, 0x91
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrh r1, [r0, 0x26]
|
|
adds r1, 0x3
|
|
strh r1, [r0, 0x26]
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r3, r0, r5
|
|
movs r0, 0x26
|
|
ldrsh r1, [r3, r0]
|
|
movs r0, 0x5A
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
ble _0807DA12
|
|
bl _0807E400
|
|
_0807DA12:
|
|
movs r2, 0x1
|
|
strh r2, [r3, 0x30]
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r2, [r0, 0x30]
|
|
adds r1, r4, 0
|
|
adds r1, 0x94
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
ldr r0, =c3_0805465C
|
|
b _0807DC5A
|
|
.pool
|
|
_0807DA38:
|
|
ldr r2, =0x0000ffff
|
|
movs r0, 0x8
|
|
movs r1, 0x10
|
|
bl BlendPalettes
|
|
bl _0807E394
|
|
.pool
|
|
_0807DA4C:
|
|
ldr r2, =0x0000ffff
|
|
movs r0, 0x8
|
|
movs r1, 0x10
|
|
bl BlendPalettes
|
|
bl _0807E394
|
|
.pool
|
|
_0807DA60:
|
|
ldr r2, =0x0000ffff
|
|
movs r0, 0x8
|
|
movs r1, 0x10
|
|
bl BlendPalettes
|
|
bl _0807E394
|
|
.pool
|
|
_0807DA74:
|
|
ldr r5, =gUnknown_020322A0
|
|
ldr r0, [r5]
|
|
adds r0, 0xF0
|
|
ldrh r0, [r0]
|
|
bl IsMonSpriteNotFlipped
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807DAEC
|
|
ldr r4, =gSprites
|
|
ldr r2, [r5]
|
|
adds r2, 0x8E
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r4, 0
|
|
adds r1, 0x10
|
|
adds r0, r1
|
|
ldr r1, =gSpriteAffineAnimTable_8338ECC
|
|
str r1, [r0]
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r1, [r0, 0x1]
|
|
movs r2, 0x3
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x1]
|
|
ldr r0, [r5]
|
|
adds r0, 0x8E
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0
|
|
movs r2, 0x3
|
|
movs r3, 0x3
|
|
bl CalcCenterToCornerVec
|
|
ldr r0, [r5]
|
|
adds r0, 0x8E
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0
|
|
bl StartSpriteAffineAnim
|
|
b _0807DB02
|
|
.pool
|
|
_0807DAEC:
|
|
ldr r0, [r5]
|
|
adds r0, 0x8E
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r0, r1
|
|
movs r1, 0
|
|
bl StartSpriteAffineAnim
|
|
_0807DB02:
|
|
ldr r5, =gUnknown_020322A0
|
|
ldr r0, [r5]
|
|
adds r0, 0x8F
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, =gSprites
|
|
adds r0, r4
|
|
movs r1, 0
|
|
bl StartSpriteAffineAnim
|
|
ldr r2, [r5]
|
|
adds r3, r2, 0
|
|
adds r3, 0x8E
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x28
|
|
strh r1, [r0, 0x20]
|
|
adds r2, 0x8F
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0xC8
|
|
strh r1, [r0, 0x20]
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0xC0
|
|
strh r1, [r0, 0x22]
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r1, =0x0000ffe0
|
|
strh r1, [r0, 0x22]
|
|
ldrb r0, [r3]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
adds r1, 0x3E
|
|
ldrb r3, [r1]
|
|
movs r2, 0x5
|
|
negs r2, r2
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
strb r0, [r1]
|
|
ldr r0, [r5]
|
|
adds r0, 0x8F
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
ands r2, r1
|
|
strb r2, [r0]
|
|
ldr r1, [r5]
|
|
bl _0807E398
|
|
.pool
|
|
_0807DB9C:
|
|
ldr r4, =gSprites
|
|
ldr r2, [r7]
|
|
adds r3, r2, 0
|
|
adds r3, 0x8E
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r1, [r0, 0x26]
|
|
subs r1, 0x3
|
|
movs r5, 0
|
|
strh r1, [r0, 0x26]
|
|
adds r2, 0x8F
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r1, [r0, 0x26]
|
|
adds r1, 0x3
|
|
strh r1, [r0, 0x26]
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r0, [r0, 0x26]
|
|
adds r0, 0xA3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x2
|
|
bhi _0807DBE4
|
|
movs r0, 0x2D
|
|
bl PlaySE
|
|
_0807DBE4:
|
|
ldr r2, [r7]
|
|
adds r3, r2, 0
|
|
adds r3, 0x8E
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r6, 0x26
|
|
ldrsh r1, [r0, r6]
|
|
movs r0, 0xDE
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
blt _0807DC04
|
|
bl _0807E400
|
|
_0807DC04:
|
|
adds r0, r2, 0
|
|
adds r0, 0x90
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
strh r5, [r0, 0x30]
|
|
adds r0, r2, 0
|
|
adds r0, 0x91
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
strh r5, [r0, 0x30]
|
|
adds r1, r2, 0
|
|
adds r1, 0x94
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r0, [r7]
|
|
adds r0, 0x8F
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r0, =sub_807F39C
|
|
_0807DC5A:
|
|
movs r1, 0x5
|
|
bl CreateTask
|
|
b _0807E400
|
|
.pool
|
|
_0807DC6C:
|
|
ldr r4, =gSprites
|
|
ldr r2, [r7]
|
|
adds r3, r2, 0
|
|
adds r3, 0x90
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r1, [r0, 0x26]
|
|
subs r1, 0x3
|
|
strh r1, [r0, 0x26]
|
|
adds r2, 0x91
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r1, [r0, 0x26]
|
|
adds r1, 0x3
|
|
strh r1, [r0, 0x26]
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r2, 0x26
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0xDE
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
ble _0807DCAE
|
|
b _0807E400
|
|
_0807DCAE:
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r1, [r7]
|
|
adds r2, r1, 0
|
|
adds r2, 0x94
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
adds r1, 0x90
|
|
ldrb r1, [r1]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
ldr r0, [r7]
|
|
adds r0, 0x91
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
b _0807E400
|
|
.pool
|
|
_0807DCF4:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807DD02
|
|
b _0807E400
|
|
_0807DD02:
|
|
ldr r1, [r7]
|
|
adds r1, 0x94
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
movs r0, 0x1
|
|
bl sub_807B62C
|
|
ldr r0, [r7]
|
|
adds r0, 0xE0
|
|
movs r1, 0xA6
|
|
strh r1, [r0]
|
|
movs r0, 0x3
|
|
bl sub_807B62C
|
|
ldr r0, [r7]
|
|
adds r0, 0xE4
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_08338D88
|
|
movs r4, 0x14
|
|
negs r4, r4
|
|
movs r1, 0x78
|
|
adds r2, r4, 0
|
|
movs r3, 0x3
|
|
bl CreateSprite
|
|
ldr r1, [r7]
|
|
adds r1, 0x90
|
|
strb r0, [r1]
|
|
ldr r5, =gSprites
|
|
ldr r0, [r7]
|
|
adds r0, 0x90
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r5, 0
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, =sub_807AA4C
|
|
str r1, [r0]
|
|
ldr r0, =gSpriteTemplate_8338DC8
|
|
movs r1, 0x78
|
|
adds r2, r4, 0
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r1, [r7]
|
|
adds r1, 0x91
|
|
strb r0, [r1]
|
|
ldr r0, [r7]
|
|
adds r0, 0x91
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
b _0807E400
|
|
.pool
|
|
_0807DD94:
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r1, 0
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
b _0807E390
|
|
_0807DDA4:
|
|
movs r1, 0x92
|
|
lsls r1, 5
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807DDBC
|
|
b _0807E400
|
|
_0807DDBC:
|
|
b _0807E394
|
|
.pool
|
|
_0807DDC4:
|
|
ldr r2, =gSprites
|
|
ldr r4, [r7]
|
|
adds r3, r4, 0
|
|
adds r3, 0x90
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x26]
|
|
adds r1, 0x4
|
|
strh r1, [r0, 0x26]
|
|
adds r0, r4, 0
|
|
adds r0, 0x91
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x26]
|
|
adds r1, 0x4
|
|
strh r1, [r0, 0x26]
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r6, 0x26
|
|
ldrsh r1, [r0, r6]
|
|
movs r2, 0x22
|
|
ldrsh r0, [r0, r2]
|
|
adds r1, r0
|
|
cmp r1, 0x40
|
|
beq _0807DE0A
|
|
b _0807E400
|
|
_0807DE0A:
|
|
adds r0, r4, 0
|
|
adds r0, 0x94
|
|
movs r1, 0x90
|
|
strh r1, [r0]
|
|
movs r0, 0
|
|
str r0, [r4, 0x64]
|
|
b _0807E400
|
|
.pool
|
|
_0807DE1C:
|
|
movs r1, 0xB2
|
|
lsls r1, 5
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
ldr r4, =gUnknown_020322A0
|
|
ldr r2, [r4]
|
|
adds r1, r2, 0
|
|
adds r1, 0xE0
|
|
ldrh r0, [r1]
|
|
adds r0, 0x3
|
|
strh r0, [r1]
|
|
adds r1, 0x4
|
|
ldrh r0, [r1]
|
|
adds r0, 0x3
|
|
strh r0, [r1]
|
|
ldr r0, [r2, 0x64]
|
|
adds r0, 0x1
|
|
str r0, [r2, 0x64]
|
|
cmp r0, 0xA
|
|
bne _0807DE60
|
|
ldr r0, =c3_08054588
|
|
movs r1, 0x5
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0xC]
|
|
_0807DE60:
|
|
ldr r1, [r4]
|
|
adds r3, r1, 0
|
|
adds r3, 0xE0
|
|
movs r6, 0
|
|
ldrsh r0, [r3, r6]
|
|
movs r2, 0x9E
|
|
lsls r2, 1
|
|
cmp r0, r2
|
|
bgt _0807DE74
|
|
b _0807E400
|
|
_0807DE74:
|
|
strh r2, [r3]
|
|
b _0807E398
|
|
.pool
|
|
_0807DE84:
|
|
ldr r0, [r7]
|
|
adds r0, 0x90
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, =gSprites
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
ldr r0, [r7]
|
|
adds r0, 0x91
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
ldr r3, [r7]
|
|
adds r2, r3, 0
|
|
adds r2, 0x94
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
movs r1, 0
|
|
strh r0, [r2]
|
|
str r1, [r3, 0x64]
|
|
b _0807E400
|
|
.pool
|
|
_0807DEC0:
|
|
ldr r0, =c3_08054588
|
|
bl FuncIsActiveTask
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0
|
|
beq _0807DED0
|
|
b _0807E400
|
|
_0807DED0:
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r2, [r0]
|
|
adds r1, r2, 0
|
|
adds r1, 0x94
|
|
movs r0, 0x2E
|
|
strh r0, [r1]
|
|
str r3, [r2, 0x64]
|
|
b _0807E400
|
|
.pool
|
|
_0807DEE8:
|
|
ldr r1, [r7]
|
|
ldr r0, [r1, 0x64]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x64]
|
|
cmp r0, 0xA
|
|
beq _0807DEF6
|
|
b _0807E400
|
|
_0807DEF6:
|
|
b _0807E398
|
|
_0807DEF8:
|
|
ldr r1, [r7]
|
|
adds r5, r1, 0
|
|
adds r5, 0xE0
|
|
ldrh r0, [r5]
|
|
adds r0, 0x1
|
|
strh r0, [r5]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r6, 0xAE
|
|
lsls r6, 1
|
|
cmp r0, r6
|
|
bgt _0807DF12
|
|
b _0807E400
|
|
_0807DF12:
|
|
strh r6, [r5]
|
|
b _0807E398
|
|
_0807DF16:
|
|
ldr r0, =gSpriteTemplate_8338E74
|
|
movs r1, 0x78
|
|
movs r2, 0x50
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r2, =gUnknown_020322A0
|
|
ldr r1, [r2]
|
|
adds r1, 0x91
|
|
strb r0, [r1]
|
|
ldr r0, [r2]
|
|
adds r0, 0x94
|
|
movs r1, 0x32
|
|
strh r1, [r0]
|
|
b _0807E400
|
|
.pool
|
|
_0807DF3C:
|
|
ldr r2, =gSprites
|
|
ldr r0, [r7]
|
|
adds r0, 0x91
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r0, r2
|
|
adds r0, r1, 0
|
|
adds r0, 0x3F
|
|
ldrb r0, [r0]
|
|
lsls r0, 27
|
|
cmp r0, 0
|
|
blt _0807DF5A
|
|
b _0807E400
|
|
_0807DF5A:
|
|
adds r0, r1, 0
|
|
bl DestroySprite
|
|
movs r0, 0x6
|
|
bl sub_807B62C
|
|
ldr r1, [r7]
|
|
adds r1, 0x94
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
movs r0, 0x9F
|
|
bl PlaySE
|
|
b _0807E400
|
|
.pool
|
|
_0807DF7C:
|
|
ldr r1, [r7]
|
|
adds r2, r1, 0
|
|
adds r2, 0xEA
|
|
ldrh r3, [r2]
|
|
ldr r0, =0x000003ff
|
|
cmp r3, r0
|
|
bhi _0807DF98
|
|
adds r0, r3, 0
|
|
adds r0, 0x34
|
|
strh r0, [r2]
|
|
b _0807DFA6
|
|
.pool
|
|
_0807DF98:
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
strh r0, [r2]
|
|
adds r1, 0x94
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
_0807DFA6:
|
|
ldr r4, [r7]
|
|
_0807DFA8:
|
|
adds r0, r4, 0
|
|
adds r0, 0xEA
|
|
ldrh r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
bl __divsi3
|
|
adds r4, 0xE8
|
|
strh r0, [r4]
|
|
b _0807E400
|
|
_0807DFBC:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r0, [r0]
|
|
adds r0, 0x94
|
|
movs r1, 0x3C
|
|
strh r1, [r0]
|
|
b _0807E400
|
|
.pool
|
|
_0807DFDC:
|
|
ldr r4, =gPaletteFade
|
|
ldrb r1, [r4, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807DFEA
|
|
b _0807E400
|
|
_0807DFEA:
|
|
movs r0, 0x5
|
|
bl sub_807B62C
|
|
movs r0, 0x7
|
|
bl sub_807B62C
|
|
ldrb r0, [r4, 0x8]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x8]
|
|
b _0807E394
|
|
.pool
|
|
_0807E004:
|
|
ldr r2, =gPaletteFade
|
|
ldrb r1, [r2, 0x8]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2, 0x8]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
b _0807E390
|
|
.pool
|
|
_0807E020:
|
|
movs r1, 0xA2
|
|
lsls r1, 5
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807E038
|
|
b _0807E400
|
|
_0807E038:
|
|
b _0807E394
|
|
.pool
|
|
_0807E040:
|
|
ldr r0, =gSpriteTemplate_8338D28
|
|
movs r2, 0x8
|
|
negs r2, r2
|
|
movs r1, 0x78
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r5, =gUnknown_020322A0
|
|
ldr r1, [r5]
|
|
adds r1, 0xD3
|
|
movs r6, 0
|
|
strb r0, [r1]
|
|
ldr r4, =gSprites
|
|
ldr r2, [r5]
|
|
adds r2, 0xD3
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x4A
|
|
strh r1, [r0, 0x34]
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r4, 0
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, =sub_807E6AC
|
|
str r1, [r0]
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
ldr r0, [r5]
|
|
adds r0, 0xD3
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x2
|
|
bl StartSpriteAffineAnim
|
|
ldr r0, [r5]
|
|
adds r0, 0xD3
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r1, [r0, 0x5]
|
|
lsrs r1, 4
|
|
adds r1, 0x10
|
|
movs r0, 0x1
|
|
lsls r0, r1
|
|
ldr r2, =0x0000ffff
|
|
movs r1, 0x10
|
|
bl BlendPalettes
|
|
ldr r2, [r5]
|
|
adds r1, r2, 0
|
|
adds r1, 0x94
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
str r6, [r2, 0x64]
|
|
b _0807E400
|
|
.pool
|
|
_0807E0E8:
|
|
ldr r2, =gSprites
|
|
ldr r0, [r7]
|
|
adds r0, 0xD3
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x5]
|
|
lsrs r1, 4
|
|
adds r1, 0x10
|
|
movs r0, 0x1
|
|
lsls r0, r1
|
|
ldr r1, =0x0000ffff
|
|
str r1, [sp]
|
|
movs r1, 0x1
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
ldr r1, [r7]
|
|
b _0807E398
|
|
.pool
|
|
_0807E11C:
|
|
ldr r2, =gSprites
|
|
ldr r3, [r7]
|
|
adds r0, r3, 0
|
|
adds r0, 0xD3
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, =SpriteCallbackDummy
|
|
cmp r1, r0
|
|
beq _0807E13A
|
|
b _0807E400
|
|
_0807E13A:
|
|
adds r0, r3, 0
|
|
adds r0, 0xF2
|
|
ldrh r2, [r0]
|
|
lsls r0, r2, 3
|
|
ldr r1, =gMonFrontPicTable
|
|
adds r0, r1
|
|
ldr r1, =gMonSpritesGfxPtr
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, 0x10]
|
|
ldr r3, [r3, 0x6C]
|
|
bl HandleLoadSpecialPokePic_2
|
|
ldr r1, [r7]
|
|
b _0807E398
|
|
.pool
|
|
_0807E168:
|
|
ldr r4, =gSprites
|
|
ldr r2, [r7]
|
|
adds r6, r2, 0
|
|
adds r6, 0x8F
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r5, 0
|
|
movs r1, 0x78
|
|
strh r1, [r0, 0x20]
|
|
ldrb r0, [r6]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldr r3, =gMonFrontPicCoords
|
|
adds r2, 0xF2
|
|
ldrh r0, [r2]
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r0, [r0, 0x1]
|
|
adds r0, 0x3C
|
|
strh r0, [r1, 0x22]
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
strh r5, [r0, 0x24]
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
strh r5, [r0, 0x26]
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0
|
|
bl StartSpriteAnim
|
|
ldr r3, [r7]
|
|
adds r0, r3, 0
|
|
adds r0, 0x8F
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrb r1, [r1, 0x5]
|
|
lsrs r1, 4
|
|
movs r2, 0x2
|
|
str r2, [sp]
|
|
movs r2, 0x1
|
|
str r2, [sp, 0x4]
|
|
movs r2, 0x14
|
|
str r2, [sp, 0x8]
|
|
ldr r2, =0x000fffff
|
|
str r2, [sp, 0xC]
|
|
adds r3, 0xF2
|
|
ldrh r2, [r3]
|
|
str r2, [sp, 0x10]
|
|
movs r2, 0x78
|
|
movs r3, 0x54
|
|
bl CreatePokeballSpriteToReleaseMon
|
|
ldr r0, [r7]
|
|
adds r0, 0xD3
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl FreeSpriteOamMatrix
|
|
ldr r0, [r7]
|
|
adds r0, 0xD3
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
ldr r1, [r7]
|
|
b _0807E398
|
|
.pool
|
|
_0807E228:
|
|
movs r1, 0xAA
|
|
lsls r1, 5
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gText_XSentOverY
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl sub_807F1A8
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r3, [r0]
|
|
adds r1, r3, 0
|
|
adds r1, 0x94
|
|
movs r2, 0
|
|
movs r0, 0xA7
|
|
_0807E252:
|
|
strh r0, [r1]
|
|
str r2, [r3, 0x64]
|
|
b _0807E400
|
|
.pool
|
|
_0807E264:
|
|
ldr r3, [r7]
|
|
ldr r0, [r3, 0x64]
|
|
adds r0, 0x1
|
|
str r0, [r3, 0x64]
|
|
cmp r0, 0x3C
|
|
bhi _0807E272
|
|
b _0807E400
|
|
_0807E272:
|
|
adds r0, r3, 0
|
|
adds r0, 0x94
|
|
movs r2, 0
|
|
ldr r1, =0x0000010b
|
|
strh r1, [r0]
|
|
str r2, [r3, 0x64]
|
|
b _0807E400
|
|
.pool
|
|
_0807E284:
|
|
bl IsCryFinished
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807E290
|
|
b _0807E400
|
|
_0807E290:
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r0, [r0]
|
|
adds r0, 0x94
|
|
movs r1, 0x44
|
|
strh r1, [r0]
|
|
b _0807E400
|
|
.pool
|
|
_0807E2A0:
|
|
ldr r1, [r7]
|
|
ldr r0, [r1, 0x64]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x64]
|
|
cmp r0, 0xA
|
|
bne _0807E2B2
|
|
ldr r0, =0x00000173
|
|
bl PlayFanfare
|
|
_0807E2B2:
|
|
ldr r1, [r7]
|
|
ldr r0, [r1, 0x64]
|
|
cmp r0, 0xFA
|
|
beq _0807E2BC
|
|
b _0807E400
|
|
_0807E2BC:
|
|
adds r1, 0x94
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
movs r5, 0
|
|
strh r0, [r1]
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gText_TakeGoodCareOfX
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl sub_807F1A8
|
|
ldr r0, [r7]
|
|
str r5, [r0, 0x64]
|
|
b _0807E400
|
|
.pool
|
|
_0807E2EC:
|
|
ldr r1, [r7]
|
|
ldr r0, [r1, 0x64]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x64]
|
|
cmp r0, 0x3C
|
|
beq _0807E2FA
|
|
b _0807E400
|
|
_0807E2FA:
|
|
b _0807E398
|
|
_0807E2FC:
|
|
bl sub_807F14C
|
|
b _0807E394
|
|
_0807E302:
|
|
ldr r2, [r7]
|
|
adds r0, r2, 0
|
|
adds r0, 0xEE
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807E312
|
|
movs r0, 0x1
|
|
b _0807E402
|
|
_0807E312:
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807E400
|
|
adds r1, r2, 0
|
|
b _0807E398
|
|
.pool
|
|
_0807E328:
|
|
ldr r0, =gSpecialVar_0x8005
|
|
ldrb r0, [r0]
|
|
movs r1, 0
|
|
bl sub_807B4D0
|
|
ldr r1, =gCB2_AfterEvolution
|
|
ldr r0, =sub_807B60C
|
|
str r0, [r1]
|
|
ldr r7, =gUnknown_02032298
|
|
ldrb r0, [r7]
|
|
movs r6, 0x64
|
|
muls r0, r6
|
|
ldr r5, =gPlayerParty
|
|
adds r0, r5
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl GetEvolutionTargetSpecies
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0
|
|
beq _0807E394
|
|
ldrb r3, [r7]
|
|
adds r0, r3, 0
|
|
muls r0, r6
|
|
adds r0, r5
|
|
ldr r1, =gUnknown_020322A0
|
|
ldr r1, [r1]
|
|
adds r1, 0x8F
|
|
ldrb r2, [r1]
|
|
adds r1, r4, 0
|
|
bl TradeEvolutionScene
|
|
b _0807E394
|
|
.pool
|
|
_0807E384:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
_0807E390:
|
|
bl BeginNormalPaletteFade
|
|
_0807E394:
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r1, [r0]
|
|
_0807E398:
|
|
adds r1, 0x94
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
b _0807E400
|
|
.pool
|
|
_0807E3A8:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _0807E400
|
|
ldr r0, [r7]
|
|
adds r0, 0xF4
|
|
ldrh r0, [r0]
|
|
bl PlayNewMapMusic
|
|
ldr r0, [r7]
|
|
cmp r0, 0
|
|
beq _0807E3F6
|
|
bl FreeAllWindowBuffers
|
|
movs r0, 0x3
|
|
bl GetBgTilemapBuffer
|
|
bl Free
|
|
movs r0, 0x1
|
|
bl GetBgTilemapBuffer
|
|
bl Free
|
|
movs r0, 0
|
|
bl GetBgTilemapBuffer
|
|
bl Free
|
|
bl FreeMonSpritesGfx
|
|
ldr r0, [r7]
|
|
bl Free
|
|
str r4, [r7]
|
|
_0807E3F6:
|
|
ldr r0, =CB2_ReturnToField
|
|
bl SetMainCallback2
|
|
bl sub_807E784
|
|
_0807E400:
|
|
movs r0, 0
|
|
_0807E402:
|
|
add sp, 0x14
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_807CFC8
|
|
|
|
thumb_func_start c2_08053788
|
|
c2_08053788: @ 807E414
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r0, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _0807E434
|
|
cmp r0, 0x4
|
|
beq _0807E444
|
|
b _0807E4B4
|
|
.pool
|
|
_0807E434:
|
|
movs r0, 0x4
|
|
strb r0, [r1]
|
|
ldr r1, =gSoftResetDisabled
|
|
movs r0, 0x1
|
|
b _0807E4B2
|
|
.pool
|
|
_0807E444:
|
|
ldr r0, =gCB2_AfterEvolution
|
|
ldr r1, =sub_807EB50
|
|
mov r8, r1
|
|
str r1, [r0]
|
|
ldr r7, =gUnknown_02032298
|
|
ldrb r0, [r7]
|
|
movs r6, 0x64
|
|
muls r0, r6
|
|
ldr r5, =gPlayerParty
|
|
adds r0, r5
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl GetEvolutionTargetSpecies
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0
|
|
beq _0807E494
|
|
ldrb r3, [r7]
|
|
adds r0, r3, 0
|
|
muls r0, r6
|
|
adds r0, r5
|
|
ldr r1, =gUnknown_020322A0
|
|
ldr r1, [r1]
|
|
adds r1, 0x8F
|
|
ldrb r2, [r1]
|
|
adds r1, r4, 0
|
|
bl TradeEvolutionScene
|
|
b _0807E4AE
|
|
.pool
|
|
_0807E494:
|
|
bl sub_8077260
|
|
cmp r0, 0
|
|
beq _0807E4A8
|
|
ldr r0, =sub_807F464
|
|
bl SetMainCallback2
|
|
b _0807E4AE
|
|
.pool
|
|
_0807E4A8:
|
|
mov r0, r8
|
|
bl SetMainCallback2
|
|
_0807E4AE:
|
|
ldr r1, =gUnknown_02032298
|
|
movs r0, 0xFF
|
|
_0807E4B2:
|
|
strb r0, [r1]
|
|
_0807E4B4:
|
|
bl HasLinkErrorOccurred
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807E4C2
|
|
bl RunTasks
|
|
_0807E4C2:
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end c2_08053788
|
|
|
|
thumb_func_start sub_807E4DC
|
|
sub_807E4DC: @ 807E4DC
|
|
push {r4-r6,lr}
|
|
bl sub_807ACDC
|
|
bl GetBlockReceivedStatus
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r6, 0x1
|
|
adds r0, r5, 0
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
beq _0807E51A
|
|
ldr r4, =gBlockRecvBuffer
|
|
ldrh r1, [r4]
|
|
ldr r0, =0x0000dcba
|
|
cmp r1, r0
|
|
bne _0807E504
|
|
ldr r0, =c2_08053788
|
|
bl SetMainCallback2
|
|
_0807E504:
|
|
ldrh r1, [r4]
|
|
ldr r0, =0x0000abcd
|
|
cmp r1, r0
|
|
bne _0807E514
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r0, [r0]
|
|
adds r0, 0x72
|
|
strb r6, [r0]
|
|
_0807E514:
|
|
movs r0, 0
|
|
bl ResetBlockReceivedFlag
|
|
_0807E51A:
|
|
movs r0, 0x2
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _0807E542
|
|
ldr r0, =gBlockRecvBuffer
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
ldr r0, =0x0000abcd
|
|
cmp r1, r0
|
|
bne _0807E53C
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r0, [r0]
|
|
adds r0, 0x73
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
_0807E53C:
|
|
movs r0, 0x1
|
|
bl ResetBlockReceivedFlag
|
|
_0807E542:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807E4DC
|
|
|
|
thumb_func_start sub_807E55C
|
|
sub_807E55C: @ 807E55C
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r5, r1]
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
ldrh r4, [r5, 0x22]
|
|
adds r4, r0
|
|
strh r4, [r5, 0x22]
|
|
ldrh r0, [r5, 0x30]
|
|
ldrh r2, [r5, 0x38]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x38]
|
|
movs r1, 0x38
|
|
ldrsh r0, [r5, r1]
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
strh r0, [r5, 0x20]
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
cmp r4, 0x4C
|
|
ble _0807E5AA
|
|
movs r0, 0x4C
|
|
strh r0, [r5, 0x22]
|
|
movs r2, 0x2E
|
|
ldrsh r1, [r5, r2]
|
|
movs r2, 0x32
|
|
ldrsh r0, [r5, r2]
|
|
muls r0, r1
|
|
negs r0, r0
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
strh r0, [r5, 0x2E]
|
|
ldrh r0, [r5, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x34]
|
|
_0807E5AA:
|
|
movs r1, 0x20
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x78
|
|
bne _0807E5B6
|
|
movs r0, 0
|
|
strh r0, [r5, 0x30]
|
|
_0807E5B6:
|
|
ldrh r0, [r5, 0x36]
|
|
ldrh r2, [r5, 0x2E]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x2E]
|
|
movs r1, 0x34
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x4
|
|
bne _0807E5CE
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x3C]
|
|
ldr r0, =SpriteCallbackDummy
|
|
str r0, [r5, 0x1C]
|
|
_0807E5CE:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807E55C
|
|
|
|
thumb_func_start sub_807E5D8
|
|
sub_807E5D8: @ 807E5D8
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
ldr r1, =gUnknown_08339024
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
ldrh r1, [r4, 0x26]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x26]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x16
|
|
bne _0807E600
|
|
movs r0, 0x38
|
|
bl PlaySE
|
|
_0807E600:
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x2C
|
|
bne _0807E636
|
|
movs r0, 0x8C
|
|
bl PlaySE
|
|
ldr r0, =sub_807E64C
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x2E]
|
|
ldrb r1, [r4, 0x5]
|
|
lsrs r1, 4
|
|
adds r1, 0x10
|
|
movs r0, 0x1
|
|
lsls r0, r1
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
ldr r2, =0x0000ffff
|
|
str r2, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
_0807E636:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807E5D8
|
|
|
|
thumb_func_start sub_807E64C
|
|
sub_807E64C: @ 807E64C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x14
|
|
bne _0807E660
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
_0807E660:
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x14
|
|
ble _0807E69E
|
|
ldr r1, =gUnknown_08339024
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
adds r0, r1
|
|
movs r1, 0
|
|
ldrsb r1, [r0, r1]
|
|
ldrh r0, [r4, 0x26]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x17
|
|
bne _0807E69E
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r0, [r0]
|
|
adds r0, 0x94
|
|
movs r1, 0xE
|
|
strh r1, [r0]
|
|
_0807E69E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807E64C
|
|
|
|
thumb_func_start sub_807E6AC
|
|
sub_807E6AC: @ 807E6AC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r2, [r4, 0x32]
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _0807E6DC
|
|
ldrh r0, [r4, 0x22]
|
|
adds r0, 0x4
|
|
strh r0, [r4, 0x22]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r3, 0x34
|
|
ldrsh r1, [r4, r3]
|
|
cmp r0, r1
|
|
ble _0807E72C
|
|
adds r0, r2, 0x1
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x16
|
|
strh r0, [r4, 0x2E]
|
|
movs r0, 0x38
|
|
bl PlaySE
|
|
b _0807E72C
|
|
_0807E6DC:
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x42
|
|
bne _0807E6EA
|
|
movs r0, 0x39
|
|
bl PlaySE
|
|
_0807E6EA:
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x5C
|
|
bne _0807E6F8
|
|
movs r0, 0x3A
|
|
bl PlaySE
|
|
_0807E6F8:
|
|
movs r3, 0x2E
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0x6B
|
|
bne _0807E706
|
|
movs r0, 0x3B
|
|
bl PlaySE
|
|
_0807E706:
|
|
ldr r1, =gUnknown_08339024
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
ldrh r3, [r4, 0x26]
|
|
adds r0, r3
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x6C
|
|
bne _0807E72C
|
|
ldr r0, =SpriteCallbackDummy
|
|
str r0, [r4, 0x1C]
|
|
_0807E72C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807E6AC
|
|
|
|
thumb_func_start sub_807E73C
|
|
sub_807E73C: @ 807E73C
|
|
push {r4-r6,lr}
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
lsls r4, r0, 4
|
|
subs r4, r0
|
|
lsls r4, 2
|
|
ldr r0, =gIngameTrades
|
|
adds r4, r0
|
|
ldr r0, =gStringVar1
|
|
ldrh r1, [r4, 0x38]
|
|
movs r6, 0xB
|
|
muls r1, r6
|
|
ldr r5, =gSpeciesNames
|
|
adds r1, r5
|
|
bl StringCopy
|
|
ldr r0, =gStringVar2
|
|
ldrh r1, [r4, 0xC]
|
|
muls r1, r6
|
|
adds r1, r5
|
|
bl StringCopy
|
|
ldrh r0, [r4, 0x38]
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_807E73C
|
|
|
|
thumb_func_start sub_807E784
|
|
sub_807E784: @ 807E784
|
|
push {r4,lr}
|
|
sub sp, 0x20
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
lsls r4, r0, 4
|
|
subs r4, r0
|
|
lsls r4, 2
|
|
ldr r0, =gIngameTrades
|
|
adds r4, r0
|
|
ldr r0, =gSpecialVar_0x8005
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x2
|
|
mov r2, sp
|
|
bl GetMonData
|
|
ldr r0, =gStringVar1
|
|
mov r1, sp
|
|
bl StringCopy10
|
|
ldr r0, =gStringVar2
|
|
ldrh r2, [r4, 0xC]
|
|
movs r1, 0xB
|
|
muls r1, r2
|
|
ldr r2, =gSpeciesNames
|
|
adds r1, r2
|
|
bl StringCopy
|
|
add sp, 0x20
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807E784
|
|
|
|
thumb_func_start sub_807E7E8
|
|
sub_807E7E8: @ 807E7E8
|
|
push {r4-r7,lr}
|
|
sub sp, 0x38
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, r1, 4
|
|
subs r2, r1
|
|
lsls r2, 2
|
|
ldr r1, =gIngameTrades
|
|
adds r5, r2, r1
|
|
movs r1, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x38
|
|
bl GetMonData
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
add r4, sp, 0x34
|
|
movs r0, 0xFE
|
|
strb r0, [r4]
|
|
ldr r6, =gEnemyParty
|
|
ldrh r1, [r5, 0xC]
|
|
movs r3, 0x1
|
|
str r3, [sp]
|
|
ldr r0, [r5, 0x24]
|
|
str r0, [sp, 0x4]
|
|
str r3, [sp, 0x8]
|
|
ldr r0, [r5, 0x18]
|
|
str r0, [sp, 0xC]
|
|
adds r0, r6, 0
|
|
movs r3, 0x20
|
|
bl CreateMon
|
|
adds r2, r5, 0
|
|
adds r2, 0xE
|
|
adds r0, r6, 0
|
|
movs r1, 0x27
|
|
bl SetMonData
|
|
adds r2, r5, 0
|
|
adds r2, 0xF
|
|
adds r0, r6, 0
|
|
movs r1, 0x28
|
|
bl SetMonData
|
|
adds r2, r5, 0
|
|
adds r2, 0x10
|
|
adds r0, r6, 0
|
|
movs r1, 0x29
|
|
bl SetMonData
|
|
adds r2, r5, 0
|
|
adds r2, 0x11
|
|
adds r0, r6, 0
|
|
movs r1, 0x2A
|
|
bl SetMonData
|
|
adds r2, r5, 0
|
|
adds r2, 0x12
|
|
adds r0, r6, 0
|
|
movs r1, 0x2B
|
|
bl SetMonData
|
|
adds r2, r5, 0
|
|
adds r2, 0x13
|
|
adds r0, r6, 0
|
|
movs r1, 0x2C
|
|
bl SetMonData
|
|
adds r0, r6, 0
|
|
movs r1, 0x2
|
|
adds r2, r5, 0
|
|
bl SetMonData
|
|
adds r2, r5, 0
|
|
adds r2, 0x2B
|
|
adds r0, r6, 0
|
|
movs r1, 0x7
|
|
bl SetMonData
|
|
adds r2, r5, 0
|
|
adds r2, 0x36
|
|
adds r0, r6, 0
|
|
movs r1, 0x31
|
|
bl SetMonData
|
|
adds r2, r5, 0
|
|
adds r2, 0x14
|
|
adds r0, r6, 0
|
|
movs r1, 0x2E
|
|
bl SetMonData
|
|
adds r2, r5, 0
|
|
adds r2, 0x1D
|
|
adds r0, r6, 0
|
|
movs r1, 0x17
|
|
bl SetMonData
|
|
adds r2, r5, 0
|
|
adds r2, 0x1E
|
|
adds r0, r6, 0
|
|
movs r1, 0x18
|
|
bl SetMonData
|
|
adds r2, r5, 0
|
|
adds r2, 0x1C
|
|
adds r0, r6, 0
|
|
movs r1, 0x16
|
|
bl SetMonData
|
|
adds r2, r5, 0
|
|
adds r2, 0x1F
|
|
adds r0, r6, 0
|
|
movs r1, 0x21
|
|
bl SetMonData
|
|
adds r2, r5, 0
|
|
adds r2, 0x20
|
|
adds r0, r6, 0
|
|
movs r1, 0x2F
|
|
bl SetMonData
|
|
adds r2, r5, 0
|
|
adds r2, 0x37
|
|
adds r0, r6, 0
|
|
movs r1, 0x30
|
|
bl SetMonData
|
|
adds r0, r6, 0
|
|
movs r1, 0x23
|
|
adds r2, r4, 0
|
|
bl SetMonData
|
|
mov r4, sp
|
|
adds r4, 0x35
|
|
movs r0, 0
|
|
strb r0, [r4]
|
|
ldrh r0, [r5, 0x28]
|
|
cmp r0, 0
|
|
beq _0807E960
|
|
bl ItemIsMail
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807E954
|
|
add r0, sp, 0x10
|
|
adds r1, r5, 0
|
|
bl sub_807E974
|
|
ldr r0, =gUnknown_020321C0
|
|
add r1, sp, 0x10
|
|
ldm r1!, {r2,r3,r7}
|
|
stm r0!, {r2,r3,r7}
|
|
ldm r1!, {r2,r3,r7}
|
|
stm r0!, {r2,r3,r7}
|
|
ldm r1!, {r2,r3,r7}
|
|
stm r0!, {r2,r3,r7}
|
|
adds r0, r6, 0
|
|
movs r1, 0x40
|
|
adds r2, r4, 0
|
|
bl SetMonData
|
|
adds r2, r5, 0
|
|
adds r2, 0x28
|
|
adds r0, r6, 0
|
|
movs r1, 0xC
|
|
bl SetMonData
|
|
b _0807E960
|
|
.pool
|
|
_0807E954:
|
|
adds r2, r5, 0
|
|
adds r2, 0x28
|
|
adds r0, r6, 0
|
|
movs r1, 0xC
|
|
bl SetMonData
|
|
_0807E960:
|
|
ldr r0, =gEnemyParty
|
|
bl CalculateMonStats
|
|
add sp, 0x38
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807E7E8
|
|
|
|
thumb_func_start sub_807E974
|
|
sub_807E974: @ 807E974
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
ldr r2, =gUnknown_08338FC0
|
|
adds r0, r6, 0
|
|
adds r0, 0x2A
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, r0, r2
|
|
adds r1, r5, 0
|
|
movs r3, 0x8
|
|
_0807E98E:
|
|
ldrh r0, [r2]
|
|
strh r0, [r1]
|
|
adds r2, 0x2
|
|
adds r1, 0x2
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _0807E98E
|
|
adds r4, r5, 0
|
|
adds r4, 0x12
|
|
adds r1, r6, 0
|
|
adds r1, 0x2B
|
|
adds r0, r4, 0
|
|
bl StringCopy
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl PadNameString
|
|
ldr r1, [r6, 0x18]
|
|
lsrs r0, r1, 24
|
|
strb r0, [r5, 0x1A]
|
|
lsrs r0, r1, 16
|
|
strb r0, [r5, 0x1B]
|
|
lsrs r0, r1, 8
|
|
strb r0, [r5, 0x1C]
|
|
strb r1, [r5, 0x1D]
|
|
ldrh r0, [r6, 0xC]
|
|
strh r0, [r5, 0x1E]
|
|
ldrh r0, [r6, 0x28]
|
|
strh r0, [r5, 0x20]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807E974
|
|
|
|
thumb_func_start sub_807E9D4
|
|
sub_807E9D4: @ 807E9D4
|
|
push {r4-r6,lr}
|
|
ldr r6, =gSpecialVar_0x8005
|
|
ldrh r0, [r6]
|
|
movs r5, 0x64
|
|
muls r0, r5
|
|
ldr r4, =gPlayerParty
|
|
adds r0, r4
|
|
movs r1, 0x2D
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0807EA08
|
|
ldrh r0, [r6]
|
|
muls r0, r5
|
|
adds r0, r4
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
b _0807EA0A
|
|
.pool
|
|
_0807EA08:
|
|
movs r0, 0
|
|
_0807EA0A:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_807E9D4
|
|
|
|
thumb_func_start sub_807EA10
|
|
sub_807EA10: @ 807EA10
|
|
push {lr}
|
|
ldr r0, =gSpecialVar_0x8005
|
|
ldrb r0, [r0]
|
|
ldr r1, =gSpecialVar_0x8004
|
|
ldrb r1, [r1]
|
|
bl sub_807E7E8
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807EA10
|
|
|
|
thumb_func_start sub_807EA2C
|
|
sub_807EA2C: @ 807EA2C
|
|
push {r4-r6,lr}
|
|
bl sub_807BBC8
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x1
|
|
bne _0807EA96
|
|
ldr r5, =gUnknown_020322A0
|
|
ldr r0, [r5]
|
|
adds r0, 0x8E
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, =gSprites
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
ldr r0, [r5]
|
|
adds r0, 0x8F
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl FreeSpriteOamMatrix
|
|
ldr r0, =gUnknown_02032298
|
|
ldrb r4, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
movs r1, 0x6
|
|
bl __umodsi3
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl sub_807B4D0
|
|
bl sub_8077260
|
|
cmp r0, 0
|
|
bne _0807EA90
|
|
ldr r0, [r5]
|
|
adds r2, r0, 0
|
|
adds r2, 0x74
|
|
ldr r1, =0x0000abcd
|
|
strh r1, [r2]
|
|
adds r0, 0x93
|
|
strb r6, [r0]
|
|
_0807EA90:
|
|
ldr r0, =sub_807EACC
|
|
bl SetMainCallback2
|
|
_0807EA96:
|
|
bl sub_807B5B8
|
|
bl sub_807E4DC
|
|
bl RunTasks
|
|
bl RunTextPrinters
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807EA2C
|
|
|
|
thumb_func_start sub_807EACC
|
|
sub_807EACC: @ 807EACC
|
|
push {r4,lr}
|
|
bl sub_807ACDC
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
bl sub_8077260
|
|
cmp r0, 0
|
|
beq _0807EAEC
|
|
ldr r0, =c2_08053788
|
|
bl SetMainCallback2
|
|
b _0807EB2C
|
|
.pool
|
|
_0807EAEC:
|
|
bl sub_807E4DC
|
|
cmp r4, 0
|
|
bne _0807EB2C
|
|
ldr r4, =gUnknown_020322A0
|
|
ldr r2, [r4]
|
|
adds r0, r2, 0
|
|
adds r0, 0x72
|
|
ldrh r1, [r0]
|
|
ldr r0, =0x00000101
|
|
cmp r1, r0
|
|
bne _0807EB2C
|
|
adds r1, r2, 0
|
|
adds r1, 0x74
|
|
ldr r0, =0x0000dcba
|
|
strh r0, [r1]
|
|
bl bitmask_all_link_players_but_self
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, [r4]
|
|
adds r1, 0x74
|
|
movs r2, 0x14
|
|
bl SendBlock
|
|
ldr r0, [r4]
|
|
adds r0, 0x72
|
|
movs r1, 0x2
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0x73
|
|
strb r1, [r0]
|
|
_0807EB2C:
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807EACC
|
|
|
|
thumb_func_start sub_807EB50
|
|
sub_807EB50: @ 807EB50
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r1, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
adds r2, r1, 0
|
|
cmp r0, 0x65
|
|
bls _0807EB66
|
|
b _0807F03A
|
|
_0807EB66:
|
|
lsls r0, 2
|
|
ldr r1, =_0807EB78
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0807EB78:
|
|
.4byte _0807ED10
|
|
.4byte _0807ED2C
|
|
.4byte _0807ED98
|
|
.4byte _0807F03A
|
|
.4byte _0807EE78
|
|
.4byte _0807EF3C
|
|
.4byte _0807EF64
|
|
.4byte _0807EF7E
|
|
.4byte _0807EFA4
|
|
.4byte _0807EFF0
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807EE9C
|
|
.4byte _0807EEEC
|
|
.4byte _0807EF1A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807EDC0
|
|
.4byte _0807EE1C
|
|
.4byte _0807EE38
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807F03A
|
|
.4byte _0807ED44
|
|
.4byte _0807ED7C
|
|
_0807ED10:
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r2, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gText_CommunicationStandby5
|
|
b _0807EDA6
|
|
.pool
|
|
_0807ED2C:
|
|
movs r0, 0
|
|
bl sub_8077288
|
|
ldr r0, =gMain
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
movs r2, 0
|
|
movs r1, 0x64
|
|
b _0807EE88
|
|
.pool
|
|
_0807ED44:
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r3, [r0]
|
|
ldr r0, [r3, 0x64]
|
|
adds r0, 0x1
|
|
str r0, [r3, 0x64]
|
|
cmp r0, 0xB4
|
|
bls _0807ED60
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r0, r2, r1
|
|
movs r2, 0
|
|
movs r1, 0x65
|
|
strb r1, [r0]
|
|
str r2, [r3, 0x64]
|
|
_0807ED60:
|
|
bl sub_8077294
|
|
cmp r0, 0
|
|
bne _0807ED6A
|
|
b _0807F03A
|
|
_0807ED6A:
|
|
ldr r0, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
b _0807ED8E
|
|
.pool
|
|
_0807ED7C:
|
|
bl sub_8077294
|
|
cmp r0, 0
|
|
bne _0807ED86
|
|
b _0807F03A
|
|
_0807ED86:
|
|
ldr r0, =gMain
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
_0807ED8E:
|
|
movs r1, 0x2
|
|
strb r1, [r0]
|
|
b _0807F03A
|
|
.pool
|
|
_0807ED98:
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r2, r0
|
|
movs r0, 0x32
|
|
strb r0, [r1]
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gText_SavingDontTurnOffPower
|
|
_0807EDA6:
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl sub_807F1A8
|
|
b _0807F03A
|
|
.pool
|
|
_0807EDC0:
|
|
bl InUnionRoom
|
|
cmp r0, 0
|
|
bne _0807EDCE
|
|
movs r0, 0x15
|
|
bl IncrementGameStat
|
|
_0807EDCE:
|
|
ldr r0, =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807EDF6
|
|
ldr r4, =gLinkPlayers
|
|
bl GetMultiplayerId
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r4, 0x4
|
|
adds r1, r4
|
|
ldr r1, [r1]
|
|
movs r0, 0x2
|
|
bl sub_801B990
|
|
_0807EDF6:
|
|
bl sub_8076D5C
|
|
bl sub_8153380
|
|
ldr r1, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r1, r2
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
movs r2, 0
|
|
strb r0, [r1]
|
|
b _0807EE8A
|
|
.pool
|
|
_0807EE1C:
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r1, [r0]
|
|
ldr r0, [r1, 0x64]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x64]
|
|
cmp r0, 0x5
|
|
beq _0807EE2C
|
|
b _0807F03A
|
|
_0807EE2C:
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r2, r0
|
|
b _0807EFE4
|
|
.pool
|
|
_0807EE38:
|
|
bl sub_81533AC
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
beq _0807EE5C
|
|
bl sav2_gender2_inplace_and_xFE
|
|
ldr r0, =gMain
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
movs r1, 0x4
|
|
strb r1, [r0]
|
|
b _0807F03A
|
|
.pool
|
|
_0807EE5C:
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r0, [r0]
|
|
str r1, [r0, 0x64]
|
|
ldr r0, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
movs r1, 0x33
|
|
strb r1, [r0]
|
|
b _0807F03A
|
|
.pool
|
|
_0807EE78:
|
|
bl sub_81533E0
|
|
ldr r0, =gMain
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
movs r2, 0
|
|
movs r1, 0x28
|
|
_0807EE88:
|
|
strb r1, [r0]
|
|
_0807EE8A:
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r0, [r0]
|
|
str r2, [r0, 0x64]
|
|
b _0807F03A
|
|
.pool
|
|
_0807EE9C:
|
|
ldr r4, =gUnknown_020322A0
|
|
ldr r1, [r4]
|
|
ldr r0, [r1, 0x64]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x64]
|
|
cmp r0, 0x32
|
|
bhi _0807EEAC
|
|
b _0807F03A
|
|
_0807EEAC:
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807EED4
|
|
bl Random
|
|
ldr r4, [r4]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x1E
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
str r0, [r4, 0x64]
|
|
b _0807EEDA
|
|
.pool
|
|
_0807EED4:
|
|
ldr r1, [r4]
|
|
movs r0, 0
|
|
str r0, [r1, 0x64]
|
|
_0807EEDA:
|
|
ldr r0, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
movs r1, 0x29
|
|
strb r1, [r0]
|
|
b _0807F03A
|
|
.pool
|
|
_0807EEEC:
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r1, [r0]
|
|
ldr r0, [r1, 0x64]
|
|
cmp r0, 0
|
|
bne _0807EF14
|
|
movs r0, 0x1
|
|
bl sub_8077288
|
|
ldr r0, =gMain
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
movs r1, 0x2A
|
|
strb r1, [r0]
|
|
b _0807F03A
|
|
.pool
|
|
_0807EF14:
|
|
subs r0, 0x1
|
|
str r0, [r1, 0x64]
|
|
b _0807F03A
|
|
_0807EF1A:
|
|
bl sub_8077294
|
|
cmp r0, 0
|
|
bne _0807EF24
|
|
b _0807F03A
|
|
_0807EF24:
|
|
bl sub_8153408
|
|
ldr r0, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
movs r1, 0x5
|
|
strb r1, [r0]
|
|
b _0807F03A
|
|
.pool
|
|
_0807EF3C:
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r1, [r0]
|
|
ldr r0, [r1, 0x64]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x64]
|
|
cmp r0, 0x3C
|
|
bls _0807F03A
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r2, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
movs r0, 0x2
|
|
bl sub_8077288
|
|
b _0807F03A
|
|
.pool
|
|
_0807EF64:
|
|
bl sub_8077294
|
|
cmp r0, 0
|
|
beq _0807F03A
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
b _0807EFDC
|
|
_0807EF7E:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807F03A
|
|
movs r0, 0x3
|
|
bl FadeOutBGM
|
|
ldr r1, =gMain
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
b _0807EFE4
|
|
.pool
|
|
_0807EFA4:
|
|
bl IsBGMStopped
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0807F03A
|
|
ldr r0, =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807EFD8
|
|
ldr r0, =gMain
|
|
ldr r1, [r0, 0x8]
|
|
ldr r0, =sub_80773AC
|
|
cmp r1, r0
|
|
bne _0807EFD8
|
|
movs r0, 0x3
|
|
bl sub_8077288
|
|
b _0807EFDC
|
|
.pool
|
|
_0807EFD8:
|
|
bl sub_800AC34
|
|
_0807EFDC:
|
|
ldr r1, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r1, r2
|
|
_0807EFE4:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _0807F03A
|
|
.pool
|
|
_0807EFF0:
|
|
ldr r0, =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807F028
|
|
ldr r1, [r2, 0x8]
|
|
ldr r0, =sub_80773AC
|
|
cmp r1, r0
|
|
bne _0807F028
|
|
bl sub_8077294
|
|
cmp r0, 0
|
|
beq _0807F03A
|
|
ldr r0, =gSoftResetDisabled
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, =c2_080543C4
|
|
bl SetMainCallback2
|
|
b _0807F03A
|
|
.pool
|
|
_0807F028:
|
|
ldr r0, =gReceivedRemoteLinkPlayers
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
bne _0807F03A
|
|
ldr r0, =gSoftResetDisabled
|
|
strb r1, [r0]
|
|
ldr r0, =c2_080543C4
|
|
bl SetMainCallback2
|
|
_0807F03A:
|
|
bl HasLinkErrorOccurred
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807F048
|
|
bl RunTasks
|
|
_0807F048:
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807EB50
|
|
|
|
thumb_func_start c2_080543C4
|
|
c2_080543C4: @ 807F068
|
|
push {r4,r5,lr}
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0
|
|
bne _0807F0BE
|
|
bl FreeAllWindowBuffers
|
|
movs r0, 0x3
|
|
bl GetBgTilemapBuffer
|
|
bl Free
|
|
movs r0, 0x1
|
|
bl GetBgTilemapBuffer
|
|
bl Free
|
|
movs r0, 0
|
|
bl GetBgTilemapBuffer
|
|
bl Free
|
|
bl FreeMonSpritesGfx
|
|
ldr r4, =gUnknown_020322A0
|
|
ldr r0, [r4]
|
|
bl Free
|
|
str r5, [r4]
|
|
ldr r0, =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807F0B6
|
|
bl sub_800E084
|
|
_0807F0B6:
|
|
ldr r0, =gMain
|
|
ldr r0, [r0, 0x8]
|
|
bl SetMainCallback2
|
|
_0807F0BE:
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end c2_080543C4
|
|
|
|
thumb_func_start sub_807F0E4
|
|
sub_807F0E4: @ 807F0E4
|
|
push {lr}
|
|
sub sp, 0x4
|
|
bl ScriptContext2_Enable
|
|
ldr r0, =sub_807F110
|
|
movs r1, 0xA
|
|
bl CreateTask
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807F0E4
|
|
|
|
thumb_func_start sub_807F110
|
|
sub_807F110: @ 807F110
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807F134
|
|
ldr r0, =sub_807B270
|
|
bl SetMainCallback2
|
|
ldr r1, =gFieldCallback
|
|
ldr r0, =sub_80AF168
|
|
str r0, [r1]
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_0807F134:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807F110
|
|
|
|
thumb_func_start sub_807F14C
|
|
sub_807F14C: @ 807F14C
|
|
push {r4,r5,lr}
|
|
movs r5, 0
|
|
movs r4, 0
|
|
_0807F152:
|
|
ldr r0, =gUnknown_02032298
|
|
ldrb r0, [r0, 0x1]
|
|
movs r1, 0x6
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
adds r1, r4, 0
|
|
adds r1, 0x43
|
|
bl GetMonData
|
|
adds r0, r5, r0
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0xB
|
|
bls _0807F152
|
|
cmp r5, 0
|
|
beq _0807F18A
|
|
ldr r0, =0x0000089b
|
|
bl FlagSet
|
|
_0807F18A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807F14C
|
|
|
|
thumb_func_start sub_807F19C
|
|
sub_807F19C: @ 807F19C
|
|
push {lr}
|
|
bl sub_807B170
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807F19C
|
|
|
|
thumb_func_start sub_807F1A8
|
|
sub_807F1A8: @ 807F1A8
|
|
push {r4-r6,lr}
|
|
sub sp, 0x14
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
adds r4, r2, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r5, 0
|
|
movs r1, 0xFF
|
|
bl FillWindowPixelBuffer
|
|
ldr r2, =gUnknown_020322A0
|
|
ldr r0, [r2]
|
|
adds r0, 0xF6
|
|
movs r3, 0
|
|
movs r1, 0xF
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0xF7
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0xF8
|
|
movs r1, 0x6
|
|
strb r1, [r0]
|
|
str r3, [sp]
|
|
str r3, [sp, 0x4]
|
|
ldr r0, [r2]
|
|
adds r0, 0xF6
|
|
str r0, [sp, 0x8]
|
|
lsls r4, 24
|
|
asrs r4, 24
|
|
str r4, [sp, 0xC]
|
|
str r6, [sp, 0x10]
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
movs r3, 0x2
|
|
bl AddTextPrinterParameterized4
|
|
adds r0, r5, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
add sp, 0x14
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807F1A8
|
|
|
|
thumb_func_start c3_08054588
|
|
c3_08054588: @ 807F210
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, =gTasks + 0x8
|
|
adds r4, r0, r1
|
|
ldr r1, =gUnknown_08339090
|
|
movs r2, 0
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r2, r1, 0
|
|
movs r3, 0x4
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0
|
|
bne _0807F254
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
beq _0807F25C
|
|
lsls r0, r1, 1
|
|
ldr r1, =gUnknown_08337AA0
|
|
adds r0, r1
|
|
b _0807F25E
|
|
.pool
|
|
_0807F254:
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bne _0807F26C
|
|
_0807F25C:
|
|
ldr r0, =gUnknown_08337EA0
|
|
_0807F25E:
|
|
movs r1, 0x30
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
b _0807F27A
|
|
.pool
|
|
_0807F26C:
|
|
lsls r0, r2, 1
|
|
ldr r1, =gUnknown_08337CA0
|
|
adds r0, r1
|
|
movs r1, 0x30
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
_0807F27A:
|
|
ldr r0, =gUnknown_08339090
|
|
movs r2, 0
|
|
ldrsh r1, [r4, r2]
|
|
lsls r1, 1
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _0807F298
|
|
movs r3, 0x2
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0
|
|
bne _0807F298
|
|
movs r0, 0xC3
|
|
bl PlaySE
|
|
_0807F298:
|
|
movs r0, 0x2
|
|
ldrsh r2, [r4, r0]
|
|
ldr r1, =gUnknown_08339090
|
|
movs r3, 0
|
|
ldrsh r0, [r4, r3]
|
|
lsls r0, 1
|
|
adds r1, 0x1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bne _0807F2D8
|
|
ldrh r0, [r4]
|
|
adds r0, 0x1
|
|
strh r0, [r4]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x2]
|
|
movs r2, 0
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
bne _0807F2DE
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
b _0807F2DE
|
|
.pool
|
|
_0807F2D8:
|
|
ldrh r0, [r4, 0x2]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2]
|
|
_0807F2DE:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end c3_08054588
|
|
|
|
thumb_func_start c3_0805465C
|
|
c3_0805465C: @ 807F2E4
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r6, r0, 0
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
ldr r1, =gTasks + 0x8
|
|
adds r5, r0, r1
|
|
movs r0, 0
|
|
ldrsh r4, [r5, r0]
|
|
cmp r4, 0
|
|
bne _0807F336
|
|
ldr r2, =gUnknown_020322A0
|
|
ldr r0, [r2]
|
|
adds r3, r0, 0
|
|
adds r3, 0xFD
|
|
movs r1, 0x78
|
|
strb r1, [r3]
|
|
adds r0, 0xFB
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0xFC
|
|
strb r4, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0xFE
|
|
movs r1, 0xA0
|
|
strb r1, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 6
|
|
movs r0, 0
|
|
bl SetGpuRegBits
|
|
movs r0, 0x4A
|
|
movs r1, 0x10
|
|
bl SetGpuReg
|
|
movs r0, 0x48
|
|
movs r1, 0x13
|
|
bl SetGpuReg
|
|
_0807F336:
|
|
ldr r4, =gUnknown_020322A0
|
|
ldr r0, [r4]
|
|
adds r1, r0, 0
|
|
adds r1, 0xFD
|
|
ldrb r1, [r1]
|
|
adds r0, 0xFB
|
|
ldrb r0, [r0]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
movs r0, 0x40
|
|
bl SetGpuReg
|
|
ldr r0, [r4]
|
|
adds r1, r0, 0
|
|
adds r1, 0xFE
|
|
ldrb r1, [r1]
|
|
adds r0, 0xFC
|
|
ldrb r0, [r0]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
movs r0, 0x44
|
|
bl SetGpuReg
|
|
ldrh r0, [r5]
|
|
adds r0, 0x1
|
|
strh r0, [r5]
|
|
ldr r1, [r4]
|
|
adds r1, 0xFB
|
|
ldrb r0, [r1]
|
|
subs r0, 0x5
|
|
strb r0, [r1]
|
|
ldr r1, [r4]
|
|
adds r1, 0xFD
|
|
ldrb r0, [r1]
|
|
adds r0, 0x5
|
|
strb r0, [r1]
|
|
ldr r0, [r4]
|
|
adds r0, 0xFB
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4F
|
|
bhi _0807F38E
|
|
adds r0, r6, 0
|
|
bl DestroyTask
|
|
_0807F38E:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end c3_0805465C
|
|
|
|
thumb_func_start sub_807F39C
|
|
sub_807F39C: @ 807F39C
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r6, r0, 0
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
ldr r1, =gTasks + 0x8
|
|
adds r5, r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _0807F3D8
|
|
ldr r2, =gUnknown_020322A0
|
|
ldr r0, [r2]
|
|
adds r0, 0xFB
|
|
movs r1, 0x50
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0xFD
|
|
movs r1, 0xA0
|
|
strb r1, [r0]
|
|
movs r0, 0x4A
|
|
movs r1, 0x10
|
|
bl SetGpuReg
|
|
movs r0, 0x48
|
|
movs r1, 0x13
|
|
bl SetGpuReg
|
|
_0807F3D8:
|
|
ldr r4, =gUnknown_020322A0
|
|
ldr r0, [r4]
|
|
adds r1, r0, 0
|
|
adds r1, 0xFD
|
|
ldrb r1, [r1]
|
|
adds r0, 0xFB
|
|
ldrb r0, [r0]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
movs r0, 0x40
|
|
bl SetGpuReg
|
|
ldr r0, [r4]
|
|
adds r1, r0, 0
|
|
adds r1, 0xFE
|
|
ldrb r1, [r1]
|
|
adds r0, 0xFC
|
|
ldrb r0, [r0]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
movs r0, 0x44
|
|
bl SetGpuReg
|
|
ldr r0, [r4]
|
|
adds r0, 0xFB
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x78
|
|
beq _0807F44C
|
|
ldrh r0, [r5]
|
|
adds r0, 0x1
|
|
strh r0, [r5]
|
|
ldr r1, [r4]
|
|
adds r1, 0xFB
|
|
ldrb r0, [r1]
|
|
adds r0, 0x5
|
|
strb r0, [r1]
|
|
ldr r1, [r4]
|
|
adds r1, 0xFD
|
|
ldrb r0, [r1]
|
|
subs r0, 0x5
|
|
strb r0, [r1]
|
|
ldr r0, [r4]
|
|
adds r0, 0xFB
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x73
|
|
bls _0807F45C
|
|
ldr r2, =0x0000ffff
|
|
movs r0, 0x8
|
|
movs r1, 0
|
|
bl BlendPalettes
|
|
b _0807F45C
|
|
.pool
|
|
_0807F44C:
|
|
movs r1, 0x80
|
|
lsls r1, 6
|
|
movs r0, 0
|
|
bl ClearGpuRegBits
|
|
adds r0, r6, 0
|
|
bl DestroyTask
|
|
_0807F45C:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807F39C
|
|
|
|
thumb_func_start sub_807F464
|
|
sub_807F464: @ 807F464
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
ldr r1, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
adds r2, r1, 0
|
|
cmp r0, 0xC
|
|
bls _0807F47A
|
|
b _0807F70C
|
|
_0807F47A:
|
|
lsls r0, 2
|
|
ldr r1, =_0807F48C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0807F48C:
|
|
.4byte _0807F4C0
|
|
.4byte _0807F4E8
|
|
.4byte _0807F500
|
|
.4byte _0807F550
|
|
.4byte _0807F570
|
|
.4byte _0807F5AC
|
|
.4byte _0807F5D0
|
|
.4byte _0807F620
|
|
.4byte _0807F64E
|
|
.4byte _0807F66C
|
|
.4byte _0807F694
|
|
.4byte _0807F6C4
|
|
.4byte _0807F6F8
|
|
_0807F4C0:
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r2, r0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gText_CommunicationStandby5
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl sub_807F1A8
|
|
b _0807F70C
|
|
.pool
|
|
_0807F4E8:
|
|
movs r0, 0
|
|
bl sub_8077288
|
|
ldr r0, =gMain
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
movs r2, 0
|
|
movs r1, 0x2
|
|
b _0807F5BC
|
|
.pool
|
|
_0807F500:
|
|
bl sub_8077294
|
|
cmp r0, 0
|
|
bne _0807F50A
|
|
b _0807F70C
|
|
_0807F50A:
|
|
ldr r0, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
movs r5, 0
|
|
movs r1, 0x3
|
|
strb r1, [r0]
|
|
ldr r4, =gStringVar4
|
|
ldr r1, =gText_SavingDontTurnOffPower
|
|
adds r0, r4, 0
|
|
bl StringExpandPlaceholders
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl sub_807F1A8
|
|
movs r0, 0x15
|
|
bl IncrementGameStat
|
|
bl sub_8153380
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r0, [r0]
|
|
str r5, [r0, 0x64]
|
|
b _0807F70C
|
|
.pool
|
|
_0807F550:
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r1, [r0]
|
|
ldr r0, [r1, 0x64]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x64]
|
|
cmp r0, 0x5
|
|
beq _0807F560
|
|
b _0807F70C
|
|
_0807F560:
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r2, r0
|
|
movs r0, 0x4
|
|
strb r0, [r1]
|
|
b _0807F70C
|
|
.pool
|
|
_0807F570:
|
|
bl sub_81533AC
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
beq _0807F590
|
|
ldr r0, =gMain
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
movs r1, 0x5
|
|
strb r1, [r0]
|
|
b _0807F70C
|
|
.pool
|
|
_0807F590:
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r0, [r0]
|
|
str r1, [r0, 0x64]
|
|
ldr r0, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
movs r1, 0x3
|
|
strb r1, [r0]
|
|
b _0807F70C
|
|
.pool
|
|
_0807F5AC:
|
|
bl sub_81533E0
|
|
ldr r0, =gMain
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
movs r2, 0
|
|
movs r1, 0x6
|
|
_0807F5BC:
|
|
strb r1, [r0]
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r0, [r0]
|
|
str r2, [r0, 0x64]
|
|
b _0807F70C
|
|
.pool
|
|
_0807F5D0:
|
|
ldr r4, =gUnknown_020322A0
|
|
ldr r1, [r4]
|
|
ldr r0, [r1, 0x64]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x64]
|
|
cmp r0, 0xA
|
|
bhi _0807F5E0
|
|
b _0807F70C
|
|
_0807F5E0:
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807F608
|
|
bl Random
|
|
ldr r4, [r4]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x1E
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
str r0, [r4, 0x64]
|
|
b _0807F60E
|
|
.pool
|
|
_0807F608:
|
|
ldr r1, [r4]
|
|
movs r0, 0
|
|
str r0, [r1, 0x64]
|
|
_0807F60E:
|
|
ldr r0, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
movs r1, 0x7
|
|
strb r1, [r0]
|
|
b _0807F70C
|
|
.pool
|
|
_0807F620:
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r1, [r0]
|
|
ldr r0, [r1, 0x64]
|
|
cmp r0, 0
|
|
bne _0807F648
|
|
movs r0, 0x1
|
|
bl sub_8077288
|
|
ldr r0, =gMain
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
movs r1, 0x8
|
|
strb r1, [r0]
|
|
b _0807F70C
|
|
.pool
|
|
_0807F648:
|
|
subs r0, 0x1
|
|
str r0, [r1, 0x64]
|
|
b _0807F70C
|
|
_0807F64E:
|
|
bl sub_8077294
|
|
cmp r0, 0
|
|
beq _0807F70C
|
|
bl sub_8153408
|
|
ldr r0, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
movs r1, 0x9
|
|
strb r1, [r0]
|
|
b _0807F70C
|
|
.pool
|
|
_0807F66C:
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r1, [r0]
|
|
ldr r0, [r1, 0x64]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x64]
|
|
cmp r0, 0x3C
|
|
bls _0807F70C
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r2, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
movs r0, 0x2
|
|
bl sub_8077288
|
|
b _0807F70C
|
|
.pool
|
|
_0807F694:
|
|
bl sub_8077294
|
|
cmp r0, 0
|
|
beq _0807F70C
|
|
movs r0, 0x3
|
|
bl FadeOutBGM
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, =gMain
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
strb r1, [r0]
|
|
b _0807F70C
|
|
.pool
|
|
_0807F6C4:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807F70C
|
|
bl IsBGMStopped
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0807F70C
|
|
movs r0, 0x3
|
|
bl sub_8077288
|
|
ldr r0, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
movs r1, 0xC
|
|
strb r1, [r0]
|
|
b _0807F70C
|
|
.pool
|
|
_0807F6F8:
|
|
bl sub_8077294
|
|
cmp r0, 0
|
|
beq _0807F70C
|
|
ldr r0, =gSoftResetDisabled
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, =c2_080543C4
|
|
bl SetMainCallback2
|
|
_0807F70C:
|
|
bl HasLinkErrorOccurred
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807F71A
|
|
bl RunTasks
|
|
_0807F71A:
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807F464
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|