mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-26 03:34:15 +01:00
14904 lines
222 KiB
ArmAsm
14904 lines
222 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/gba_constants.inc"
|
|
.include "constants/misc_constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_8077170
|
|
sub_8077170: @ 8077170
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
adds r3, r1, 0
|
|
ldr r0, =gUnknown_02022C2C
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1D
|
|
beq _08077194
|
|
lsls r2, r3, 16
|
|
lsrs r2, 16
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
bl SendBlock
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _080771A2
|
|
.pool
|
|
_08077194:
|
|
ldr r0, =gUnknown_03004140
|
|
ldrb r0, [r0]
|
|
movs r1, 0x54
|
|
adds r2, r4, 0
|
|
bl rfu_NI_setSendData
|
|
movs r0, 0x1
|
|
_080771A2:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8077170
|
|
|
|
thumb_func_start sub_80771AC
|
|
sub_80771AC: @ 80771AC
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_800A4D8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80771AC
|
|
|
|
thumb_func_start sub_80771BC
|
|
sub_80771BC: @ 80771BC
|
|
push {r4,lr}
|
|
ldr r0, =gUnknown_02022C2C
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1D
|
|
bne _080771F0
|
|
ldr r4, =gUnknown_03007880
|
|
ldr r0, =gUnknown_03004140
|
|
ldrb r0, [r0]
|
|
bl sub_800E87C
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
bne _080771EC
|
|
movs r0, 0x1
|
|
b _080771F8
|
|
.pool
|
|
_080771EC:
|
|
movs r0, 0
|
|
b _080771F8
|
|
_080771F0:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_080771F8:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80771BC
|
|
|
|
thumb_func_start sub_8077200
|
|
sub_8077200: @ 8077200
|
|
push {lr}
|
|
bl GetBlockReceivedStatus
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8077200
|
|
|
|
thumb_func_start sub_8077210
|
|
sub_8077210: @ 8077210
|
|
push {lr}
|
|
bl sub_8077260
|
|
cmp r0, 0
|
|
beq _0807722C
|
|
ldr r0, =gUnknown_03004140
|
|
ldrb r1, [r0]
|
|
movs r0, 0xC
|
|
bl rfu_clearSlot
|
|
b _08077230
|
|
.pool
|
|
_0807722C:
|
|
bl ResetBlockReceivedFlags
|
|
_08077230:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8077210
|
|
|
|
thumb_func_start sub_8077234
|
|
sub_8077234: @ 8077234
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_8077260
|
|
cmp r0, 0
|
|
beq _08077250
|
|
ldr r0, =gUnknown_03004140
|
|
ldrb r1, [r0]
|
|
movs r0, 0xC
|
|
bl rfu_clearSlot
|
|
b _08077258
|
|
.pool
|
|
_08077250:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl ResetBlockReceivedFlag
|
|
_08077258:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8077234
|
|
|
|
thumb_func_start sub_8077260
|
|
sub_8077260: @ 8077260
|
|
push {lr}
|
|
ldr r0, =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08077280
|
|
ldr r0, =gUnknown_02022C2C
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1D
|
|
bne _08077280
|
|
movs r0, 0x1
|
|
b _08077282
|
|
.pool
|
|
_08077280:
|
|
movs r0, 0
|
|
_08077282:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8077260
|
|
|
|
thumb_func_start sub_8077288
|
|
sub_8077288: @ 8077288
|
|
push {lr}
|
|
bl sub_800ADF8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8077288
|
|
|
|
thumb_func_start sub_8077294
|
|
sub_8077294: @ 8077294
|
|
push {lr}
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8077294
|
|
|
|
thumb_func_start sub_80772A4
|
|
sub_80772A4: @ 80772A4
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
bl ResetSpriteData
|
|
bl FreeAllSpritePalettes
|
|
bl ResetTasks
|
|
bl ResetPaletteFade
|
|
ldr r2, =gPaletteFade
|
|
ldrb r0, [r2, 0x8]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x8]
|
|
ldr r0, =sub_807811C
|
|
bl SetVBlankCallback
|
|
ldr r4, =gUnknown_0860F074
|
|
adds r0, r4, 0
|
|
movs r1, 0xF0
|
|
movs r2, 0x14
|
|
bl LoadPalette
|
|
adds r0, r4, 0
|
|
movs r1, 0xD0
|
|
movs r2, 0x14
|
|
bl LoadPalette
|
|
movs r0, 0
|
|
bl ResetBgsAndClearDma3BusyFlags
|
|
ldr r1, =gUnknown_0832DEE4
|
|
movs r0, 0
|
|
movs r2, 0x4
|
|
bl InitBgsFromTemplates
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
movs r0, 0x8F
|
|
lsls r0, 4
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
bl SetBgTilemapBuffer
|
|
ldr r0, =gUnknown_0832DEF4
|
|
bl InitWindows
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _0807738C
|
|
bl DeactivateAllTextPrinters
|
|
movs r5, 0
|
|
_08077310:
|
|
lsls r4, r5, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
bl ClearWindowTilemap
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
adds r5, 0x1
|
|
cmp r5, 0x11
|
|
bls _08077310
|
|
movs r0, 0x1E
|
|
str r0, [sp]
|
|
movs r0, 0x14
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0xF
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect
|
|
movs r0, 0
|
|
movs r1, 0x14
|
|
movs r2, 0xC0
|
|
bl LoadUserWindowBorderGfx_
|
|
movs r0, 0x2
|
|
movs r1, 0x1
|
|
movs r2, 0xE0
|
|
bl LoadUserWindowBorderGfx
|
|
bl LoadMonIconPalettes
|
|
ldr r2, =gUnknown_0203229C
|
|
ldr r0, [r2]
|
|
adds r0, 0x69
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0x6F
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0x70
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0x74
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0x75
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0x7A
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0x7B
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0xA8
|
|
strb r1, [r0]
|
|
_0807738C:
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80772A4
|
|
|
|
thumb_func_start sub_80773AC
|
|
sub_80773AC: @ 80773AC
|
|
push {lr}
|
|
ldr r0, =sub_80773D0
|
|
bl SetMainCallback2
|
|
ldr r0, =gMain
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
ldr r0, =gEnemyPartyCount
|
|
strb r1, [r0]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80773AC
|
|
|
|
thumb_func_start sub_80773D0
|
|
sub_80773D0: @ 80773D0
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x28
|
|
ldr r1, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
adds r3, r1, 0
|
|
cmp r0, 0x16
|
|
bls _080773EA
|
|
b _08077B46
|
|
_080773EA:
|
|
lsls r0, 2
|
|
ldr r1, =_080773FC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080773FC:
|
|
.4byte _08077458
|
|
.4byte _080774A4
|
|
.4byte _08077560
|
|
.4byte _0807758C
|
|
.4byte _080775E8
|
|
.4byte _08077648
|
|
.4byte _08077688
|
|
.4byte _080776A8
|
|
.4byte _080777E8
|
|
.4byte _08077810
|
|
.4byte _08077834
|
|
.4byte _080778BC
|
|
.4byte _080778CA
|
|
.4byte _08077970
|
|
.4byte _08077A40
|
|
.4byte _08077A80
|
|
.4byte _08077A9A
|
|
.4byte _08077AA8
|
|
.4byte _08077ABC
|
|
.4byte _08077ADC
|
|
.4byte _08077AFC
|
|
.4byte _08077B10
|
|
.4byte _08077B30
|
|
_08077458:
|
|
ldr r4, =gUnknown_0203229C
|
|
ldr r0, =0x000010f0
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
bl sub_80772A4
|
|
ldr r4, =gUnknown_02032184
|
|
movs r0, 0xE0
|
|
lsls r0, 4
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
movs r6, 0
|
|
ldr r2, =gUnknown_02032188
|
|
_08077476:
|
|
lsls r1, r6, 8
|
|
ldr r0, [r4]
|
|
adds r0, r1
|
|
stm r2!, {r0}
|
|
adds r6, 0x1
|
|
cmp r6, 0xD
|
|
ble _08077476
|
|
ldr r1, =gMain
|
|
movs r3, 0x87
|
|
lsls r3, 3
|
|
adds r1, r3
|
|
b _08077B22
|
|
.pool
|
|
_080774A4:
|
|
ldr r2, =gPaletteFade
|
|
ldrb r1, [r2, 0x8]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2, 0x8]
|
|
movs r6, 0
|
|
movs r4, 0
|
|
_080774B2:
|
|
movs r0, 0x64
|
|
muls r0, r6
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
str r4, [sp, 0xC]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x20
|
|
bl CreateMon
|
|
adds r6, 0x1
|
|
cmp r6, 0x5
|
|
ble _080774B2
|
|
movs r0, 0
|
|
bl sub_807A19C
|
|
movs r0, 0
|
|
bl ShowBg
|
|
ldr r0, =gReceivedRemoteLinkPlayers
|
|
ldrb r2, [r0]
|
|
cmp r2, 0
|
|
bne _0807754C
|
|
ldr r1, =gLinkType
|
|
ldr r5, =0x00001122
|
|
adds r0, r5, 0
|
|
strh r0, [r1]
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0xA8
|
|
strb r2, [r0]
|
|
ldr r0, =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08077528
|
|
bl sub_800B488
|
|
bl OpenLink
|
|
bl sub_8011BA4
|
|
b _08077B46
|
|
.pool
|
|
_08077528:
|
|
bl OpenLink
|
|
ldr r0, =gMain
|
|
movs r7, 0x87
|
|
lsls r7, 3
|
|
adds r0, r7
|
|
ldrb r1, [r0]
|
|
adds r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, =task00_08081A90
|
|
movs r1, 0x1
|
|
bl CreateTask
|
|
b _08077B46
|
|
.pool
|
|
_0807754C:
|
|
ldr r0, =gMain
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
movs r1, 0x4
|
|
strb r1, [r0]
|
|
b _08077B46
|
|
.pool
|
|
_08077560:
|
|
ldr r2, =gUnknown_0203229C
|
|
ldr r1, [r2]
|
|
adds r1, 0xA8
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, [r2]
|
|
adds r1, r0, 0
|
|
adds r1, 0xA8
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xB
|
|
bhi _0807757A
|
|
b _08077B46
|
|
_0807757A:
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r1, r3, r2
|
|
b _08077B22
|
|
.pool
|
|
_0807758C:
|
|
bl GetLinkPlayerCount_2
|
|
adds r4, r0, 0
|
|
bl sub_800AA48
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
bcs _080775A0
|
|
b _08077B46
|
|
_080775A0:
|
|
bl IsLinkMaster
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080775D8
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
adds r1, 0xA8
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1E
|
|
bhi _080775C0
|
|
b _08077B46
|
|
_080775C0:
|
|
bl sub_800A620
|
|
ldr r1, =gMain
|
|
movs r3, 0x87
|
|
lsls r3, 3
|
|
adds r1, r3
|
|
b _08077B22
|
|
.pool
|
|
_080775D8:
|
|
ldr r1, =gMain
|
|
movs r5, 0x87
|
|
lsls r5, 3
|
|
adds r1, r5
|
|
b _08077B22
|
|
.pool
|
|
_080775E8:
|
|
ldr r0, =gReceivedRemoteLinkPlayers
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _080775F2
|
|
b _08077B46
|
|
_080775F2:
|
|
bl IsLinkPlayerDataExchangeComplete
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08077600
|
|
b _08077B46
|
|
_08077600:
|
|
bl sub_8011BD0
|
|
bl CalculatePlayerPartyCount
|
|
ldr r1, =gMain
|
|
movs r7, 0x87
|
|
lsls r7, 3
|
|
adds r1, r7
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
movs r2, 0
|
|
strb r0, [r1]
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0xA8
|
|
strb r2, [r0]
|
|
ldr r0, =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0807762A
|
|
b _08077B46
|
|
_0807762A:
|
|
movs r0, 0x1
|
|
bl sub_801048C
|
|
bl sub_800ADF8
|
|
b _08077B46
|
|
.pool
|
|
_08077648:
|
|
ldr r0, =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08077680
|
|
bl sub_8010500
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807765C
|
|
b _08077B46
|
|
_0807765C:
|
|
ldr r1, =gMain
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
bl sub_800E0E8
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl CreateWirelessStatusIndicatorSprite
|
|
b _08077B46
|
|
.pool
|
|
_08077680:
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r1, r3, r2
|
|
b _08077B22
|
|
_08077688:
|
|
bl shedinja_maker_maybe
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08077694
|
|
b _08077B46
|
|
_08077694:
|
|
bl sub_807A5B0
|
|
ldr r1, =gMain
|
|
movs r3, 0x87
|
|
lsls r3, 3
|
|
adds r1, r3
|
|
b _08077B22
|
|
.pool
|
|
_080776A8:
|
|
bl CalculateEnemyPartyCount
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldr r2, =gUnknown_0203229C
|
|
ldr r0, [r2]
|
|
ldr r1, =gPlayerPartyCount
|
|
ldrb r1, [r1]
|
|
adds r0, 0x36
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
ldr r1, =gEnemyPartyCount
|
|
ldrb r1, [r1]
|
|
adds r0, 0x37
|
|
strb r1, [r0]
|
|
movs r6, 0
|
|
ldr r0, [r2]
|
|
adds r0, 0x36
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bge _08077740
|
|
mov r8, r2
|
|
ldr r7, =gUnknown_0832DE24
|
|
_080776E2:
|
|
movs r0, 0x64
|
|
adds r4, r6, 0
|
|
muls r4, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
adds r5, r0, 0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl GetMonData
|
|
ldrb r2, [r7]
|
|
lsls r2, 19
|
|
movs r1, 0xE0
|
|
lsls r1, 12
|
|
adds r2, r1
|
|
asrs r2, 16
|
|
ldrb r3, [r7, 0x1]
|
|
lsls r3, 19
|
|
ldr r1, =0xfff40000
|
|
adds r3, r1
|
|
asrs r3, 16
|
|
movs r1, 0x1
|
|
str r1, [sp]
|
|
str r0, [sp, 0x4]
|
|
str r1, [sp, 0x8]
|
|
adds r0, r5, 0
|
|
ldr r1, =sub_80D3014
|
|
bl CreateMonIcon
|
|
mov r2, r8
|
|
ldr r1, [r2]
|
|
adds r1, 0x28
|
|
adds r1, r6
|
|
strb r0, [r1]
|
|
adds r7, 0x2
|
|
adds r6, 0x1
|
|
ldr r0, [r2]
|
|
adds r0, 0x36
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
blt _080776E2
|
|
_08077740:
|
|
movs r6, 0
|
|
ldr r1, =gUnknown_0203229C
|
|
ldr r0, [r1]
|
|
adds r0, 0x37
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bge _080777B8
|
|
ldr r0, =gUnknown_0832DE24
|
|
mov r8, r1
|
|
adds r7, r0, 0
|
|
adds r7, 0xC
|
|
_08077756:
|
|
movs r0, 0x64
|
|
adds r4, r6, 0
|
|
muls r4, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r5, r0, 0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl GetMonData
|
|
ldrb r2, [r7]
|
|
lsls r2, 19
|
|
movs r3, 0xE0
|
|
lsls r3, 12
|
|
adds r2, r3
|
|
asrs r2, 16
|
|
ldrb r3, [r7, 0x1]
|
|
lsls r3, 19
|
|
ldr r1, =0xfff40000
|
|
adds r3, r1
|
|
asrs r3, 16
|
|
movs r1, 0x1
|
|
str r1, [sp]
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
str r0, [sp, 0x8]
|
|
adds r0, r5, 0
|
|
ldr r1, =sub_80D3014
|
|
bl CreateMonIcon
|
|
mov r2, r8
|
|
ldr r1, [r2]
|
|
adds r1, 0x2E
|
|
adds r1, r6
|
|
strb r0, [r1]
|
|
adds r7, 0x2
|
|
adds r6, 0x1
|
|
ldr r0, [r2]
|
|
adds r0, 0x37
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
blt _08077756
|
|
_080777B8:
|
|
ldr r1, =gMain
|
|
movs r3, 0x87
|
|
lsls r3, 3
|
|
adds r1, r3
|
|
b _08077B22
|
|
.pool
|
|
_080777E8:
|
|
bl sub_81B5D30
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
adds r0, r1, 0
|
|
adds r0, 0x36
|
|
adds r1, 0x28
|
|
movs r2, 0
|
|
bl sub_81B5D4C
|
|
ldr r1, =gMain
|
|
movs r5, 0x87
|
|
lsls r5, 3
|
|
adds r1, r5
|
|
b _08077B22
|
|
.pool
|
|
_08077810:
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
adds r0, r1, 0
|
|
adds r0, 0x36
|
|
adds r1, 0x28
|
|
movs r2, 0x1
|
|
bl sub_81B5D4C
|
|
ldr r1, =gMain
|
|
movs r7, 0x87
|
|
lsls r7, 3
|
|
adds r1, r7
|
|
b _08077B22
|
|
.pool
|
|
_08077834:
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldr r5, =gUnknown_02032188
|
|
ldr r1, [r5]
|
|
movs r4, 0x3
|
|
str r4, [sp]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_80C6D80
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
eors r1, r0
|
|
lsrs r1, 24
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gLinkPlayers + 8
|
|
adds r0, r1
|
|
ldr r1, [r5, 0xC]
|
|
str r4, [sp]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_80C6D80
|
|
ldr r4, =gUnknown_0832DE94
|
|
ldr r0, [r4]
|
|
ldr r1, [r5, 0x18]
|
|
movs r2, 0x2
|
|
str r2, [sp]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_80C6D80
|
|
ldr r0, [r4, 0x4]
|
|
ldr r1, [r5, 0x20]
|
|
movs r2, 0x18
|
|
bl sub_807A308
|
|
ldr r1, =gMain
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
movs r2, 0
|
|
strb r0, [r1]
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0xA8
|
|
strb r2, [r0]
|
|
b _08077B46
|
|
.pool
|
|
_080778BC:
|
|
bl sub_807A1F0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080778C8
|
|
b _08077B46
|
|
_080778C8:
|
|
b _08077B1A
|
|
_080778CA:
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r1, [r0]
|
|
movs r0, 0x1
|
|
movs r2, 0x78
|
|
bl GetStringCenterAlignXOffset
|
|
movs r6, 0
|
|
add r5, sp, 0x10
|
|
adds r4, r0, 0
|
|
adds r4, 0x10
|
|
_080778DE:
|
|
add r1, sp, 0x10
|
|
ldr r0, =gSpriteTemplate_832DCAC
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldrh r0, [r5]
|
|
adds r0, r6
|
|
strh r0, [r5]
|
|
lsls r1, r4, 16
|
|
asrs r1, 16
|
|
add r0, sp, 0x10
|
|
movs r2, 0xA
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
adds r4, 0x20
|
|
adds r6, 0x1
|
|
cmp r6, 0x2
|
|
ble _080778DE
|
|
bl GetMultiplayerId
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
ldr r0, =gLinkPlayers + 8
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
movs r2, 0x78
|
|
bl GetStringCenterAlignXOffset
|
|
movs r6, 0
|
|
add r5, sp, 0x10
|
|
adds r4, r0, 0
|
|
adds r4, 0x88
|
|
_0807792C:
|
|
add r1, sp, 0x10
|
|
ldr r0, =gSpriteTemplate_832DCAC
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
adds r0, r6, 0x3
|
|
ldrh r3, [r5]
|
|
adds r0, r3
|
|
strh r0, [r5]
|
|
lsls r1, r4, 16
|
|
asrs r1, 16
|
|
add r0, sp, 0x10
|
|
movs r2, 0xA
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
adds r4, 0x20
|
|
adds r6, 0x1
|
|
cmp r6, 0x2
|
|
ble _0807792C
|
|
ldr r1, =gMain
|
|
movs r5, 0x87
|
|
lsls r5, 3
|
|
adds r1, r5
|
|
b _08077B22
|
|
.pool
|
|
_08077970:
|
|
ldr r4, =gSpriteTemplate_832DCAC
|
|
add r1, sp, 0x10
|
|
adds r0, r4, 0
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldm r0!, {r2,r5,r7}
|
|
stm r1!, {r2,r5,r7}
|
|
add r1, sp, 0x10
|
|
adds r0, r1, 0
|
|
ldrh r0, [r0]
|
|
adds r0, 0x6
|
|
strh r0, [r1]
|
|
adds r0, r1, 0
|
|
movs r1, 0xD7
|
|
movs r2, 0x98
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
add r0, sp, 0x10
|
|
ldm r4!, {r3,r5,r7}
|
|
stm r0!, {r3,r5,r7}
|
|
ldm r4!, {r1-r3}
|
|
stm r0!, {r1-r3}
|
|
add r1, sp, 0x10
|
|
adds r0, r1, 0
|
|
ldrh r0, [r0]
|
|
adds r0, 0x7
|
|
strh r0, [r1]
|
|
adds r0, r1, 0
|
|
movs r1, 0xF7
|
|
movs r2, 0x98
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
movs r6, 0
|
|
add r4, sp, 0x10
|
|
movs r5, 0xC0
|
|
lsls r5, 13
|
|
_080779BC:
|
|
add r1, sp, 0x10
|
|
ldr r0, =gSpriteTemplate_832DCAC
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
adds r0, r6, 0
|
|
adds r0, 0x8
|
|
ldrh r7, [r4]
|
|
adds r0, r7
|
|
strh r0, [r4]
|
|
asrs r1, r5, 16
|
|
add r0, sp, 0x10
|
|
movs r2, 0x96
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
movs r0, 0x80
|
|
lsls r0, 14
|
|
adds r5, r0
|
|
adds r6, 0x1
|
|
cmp r6, 0x5
|
|
ble _080779BC
|
|
ldr r0, =gSpriteTemplate_832DC94
|
|
ldr r2, =gUnknown_0832DE24
|
|
ldrb r1, [r2]
|
|
lsls r1, 19
|
|
movs r3, 0x80
|
|
lsls r3, 14
|
|
adds r1, r3
|
|
asrs r1, 16
|
|
ldrb r2, [r2, 0x1]
|
|
lsls r2, 3
|
|
movs r3, 0x2
|
|
bl CreateSprite
|
|
ldr r2, =gUnknown_0203229C
|
|
ldr r1, [r2]
|
|
adds r1, 0x34
|
|
movs r3, 0
|
|
strb r0, [r1]
|
|
ldr r0, [r2]
|
|
adds r0, 0x35
|
|
strb r3, [r0]
|
|
ldr r1, =gMain
|
|
movs r5, 0x87
|
|
lsls r5, 3
|
|
adds r1, r5
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
bl rbox_fill_rectangle
|
|
b _08077B46
|
|
.pool
|
|
_08077A40:
|
|
movs r0, 0
|
|
bl sub_807A320
|
|
movs r0, 0
|
|
bl sub_8079BE0
|
|
ldr r2, =gUnknown_0203229C
|
|
ldr r0, [r2]
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
strb r1, [r0, 0x1]
|
|
bl sub_8078388
|
|
ldr r1, =gMain
|
|
movs r7, 0x87
|
|
lsls r7, 3
|
|
adds r1, r7
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, =0x000001b3
|
|
bl PlayBGM
|
|
b _08077B46
|
|
.pool
|
|
_08077A80:
|
|
movs r0, 0x1
|
|
bl sub_807A320
|
|
movs r0, 0x1
|
|
bl sub_8079BE0
|
|
ldr r1, =gMain
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_08077A9A:
|
|
movs r0, 0
|
|
bl sub_80782B8
|
|
b _08077B1A
|
|
.pool
|
|
_08077AA8:
|
|
movs r0, 0x1
|
|
bl sub_80782B8
|
|
ldr r1, =gMain
|
|
movs r3, 0x87
|
|
lsls r3, 3
|
|
adds r1, r3
|
|
b _08077B22
|
|
.pool
|
|
_08077ABC:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
ldr r1, =gMain
|
|
movs r5, 0x87
|
|
lsls r5, 3
|
|
adds r1, r5
|
|
b _08077B22
|
|
.pool
|
|
_08077ADC:
|
|
movs r1, 0x82
|
|
lsls r1, 5
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x2
|
|
bl sub_80782B8
|
|
ldr r1, =gMain
|
|
movs r7, 0x87
|
|
lsls r7, 3
|
|
adds r1, r7
|
|
b _08077B22
|
|
.pool
|
|
_08077AFC:
|
|
movs r0, 0
|
|
bl sub_807A468
|
|
ldr r1, =gMain
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
b _08077B22
|
|
.pool
|
|
_08077B10:
|
|
movs r0, 0x1
|
|
bl sub_807A468
|
|
bl sub_807A53C
|
|
_08077B1A:
|
|
ldr r1, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r1, r2
|
|
_08077B22:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _08077B46
|
|
.pool
|
|
_08077B30:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08077B46
|
|
ldr r0, =sub_8078C34
|
|
str r0, [r3]
|
|
ldr r0, =sub_807825C
|
|
bl SetMainCallback2
|
|
_08077B46:
|
|
bl RunTextPrinters
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
add sp, 0x28
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80773D0
|
|
|
|
thumb_func_start sub_8077B74
|
|
sub_8077B74: @ 8077B74
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x24
|
|
ldr r1, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
adds r2, r1, 0
|
|
cmp r0, 0x16
|
|
bls _08077B8E
|
|
b _080780F6
|
|
_08077B8E:
|
|
lsls r0, 2
|
|
ldr r1, =_08077BA0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08077BA0:
|
|
.4byte _08077BFC
|
|
.4byte _08077C10
|
|
.4byte _08077C18
|
|
.4byte _08077C20
|
|
.4byte _08077C28
|
|
.4byte _08077C3C
|
|
.4byte _08077C64
|
|
.4byte _08077C6C
|
|
.4byte _08077DB0
|
|
.4byte _08077DD8
|
|
.4byte _08077DFC
|
|
.4byte _08077E84
|
|
.4byte _08077EA0
|
|
.4byte _08077F48
|
|
.4byte _080780F6
|
|
.4byte _080780F6
|
|
.4byte _08078038
|
|
.4byte _08078040
|
|
.4byte _08078068
|
|
.4byte _080780A4
|
|
.4byte _080780C4
|
|
.4byte _080780CC
|
|
.4byte _080780E4
|
|
_08077BFC:
|
|
bl sub_80772A4
|
|
ldr r1, =gMain
|
|
movs r3, 0x87
|
|
lsls r3, 3
|
|
adds r1, r3
|
|
b _080780D8
|
|
.pool
|
|
_08077C10:
|
|
movs r5, 0x87
|
|
lsls r5, 3
|
|
adds r1, r2, r5
|
|
b _08077E58
|
|
_08077C18:
|
|
movs r7, 0x87
|
|
lsls r7, 3
|
|
adds r1, r2, r7
|
|
b _080780D8
|
|
_08077C20:
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r2, r0
|
|
b _080780D8
|
|
_08077C28:
|
|
bl CalculatePlayerPartyCount
|
|
ldr r1, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r1, r2
|
|
b _080780D8
|
|
.pool
|
|
_08077C3C:
|
|
ldr r0, =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08077C50
|
|
bl sub_800E0E8
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl CreateWirelessStatusIndicatorSprite
|
|
_08077C50:
|
|
ldr r1, =gMain
|
|
movs r3, 0x87
|
|
lsls r3, 3
|
|
adds r1, r3
|
|
b _080780D8
|
|
.pool
|
|
_08077C64:
|
|
movs r5, 0x87
|
|
lsls r5, 3
|
|
adds r1, r2, r5
|
|
b _080780D8
|
|
_08077C6C:
|
|
bl CalculateEnemyPartyCount
|
|
ldr r4, =gUnknown_0203229C
|
|
ldr r0, [r4]
|
|
ldr r1, =gPlayerPartyCount
|
|
ldrb r1, [r1]
|
|
adds r0, 0x36
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
ldr r1, =gEnemyPartyCount
|
|
ldrb r1, [r1]
|
|
adds r0, 0x37
|
|
strb r1, [r0]
|
|
movs r0, 0
|
|
bl ClearWindowTilemap
|
|
movs r0, 0
|
|
bl sub_8079BE0
|
|
movs r0, 0x1
|
|
bl sub_8079BE0
|
|
movs r6, 0
|
|
ldr r0, [r4]
|
|
adds r0, 0x36
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bge _08077D08
|
|
mov r8, r4
|
|
ldr r7, =gUnknown_0832DE24
|
|
_08077CA8:
|
|
movs r0, 0x64
|
|
adds r4, r6, 0
|
|
muls r4, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r5, r0, 0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl GetMonData
|
|
ldrb r2, [r7]
|
|
lsls r2, 19
|
|
movs r1, 0xE0
|
|
lsls r1, 12
|
|
adds r2, r1
|
|
asrs r2, 16
|
|
ldrb r3, [r7, 0x1]
|
|
lsls r3, 19
|
|
ldr r1, =0xfff40000
|
|
adds r3, r1
|
|
asrs r3, 16
|
|
movs r1, 0x1
|
|
str r1, [sp]
|
|
str r0, [sp, 0x4]
|
|
str r1, [sp, 0x8]
|
|
adds r0, r5, 0
|
|
ldr r1, =sub_80D3014
|
|
bl CreateMonIcon
|
|
mov r2, r8
|
|
ldr r1, [r2]
|
|
adds r1, 0x28
|
|
adds r1, r6
|
|
strb r0, [r1]
|
|
adds r7, 0x2
|
|
adds r6, 0x1
|
|
ldr r0, [r2]
|
|
adds r0, 0x36
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
blt _08077CA8
|
|
_08077D08:
|
|
movs r6, 0
|
|
ldr r1, =gUnknown_0203229C
|
|
ldr r0, [r1]
|
|
adds r0, 0x37
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bge _08077D80
|
|
ldr r0, =gUnknown_0832DE24
|
|
mov r8, r1
|
|
adds r7, r0, 0
|
|
adds r7, 0xC
|
|
_08077D1E:
|
|
movs r0, 0x64
|
|
adds r4, r6, 0
|
|
muls r4, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r5, r0, 0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl GetMonData
|
|
ldrb r2, [r7]
|
|
lsls r2, 19
|
|
movs r3, 0xE0
|
|
lsls r3, 12
|
|
adds r2, r3
|
|
asrs r2, 16
|
|
ldrb r3, [r7, 0x1]
|
|
lsls r3, 19
|
|
ldr r1, =0xfff40000
|
|
adds r3, r1
|
|
asrs r3, 16
|
|
movs r1, 0x1
|
|
str r1, [sp]
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
str r0, [sp, 0x8]
|
|
adds r0, r5, 0
|
|
ldr r1, =sub_80D3014
|
|
bl CreateMonIcon
|
|
mov r2, r8
|
|
ldr r1, [r2]
|
|
adds r1, 0x2E
|
|
adds r1, r6
|
|
strb r0, [r1]
|
|
adds r7, 0x2
|
|
adds r6, 0x1
|
|
ldr r0, [r2]
|
|
adds r0, 0x37
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
blt _08077D1E
|
|
_08077D80:
|
|
ldr r1, =gMain
|
|
movs r3, 0x87
|
|
lsls r3, 3
|
|
adds r1, r3
|
|
b _080780D8
|
|
.pool
|
|
_08077DB0:
|
|
bl sub_81B5D30
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
adds r0, r1, 0
|
|
adds r0, 0x36
|
|
adds r1, 0x28
|
|
movs r2, 0
|
|
bl sub_81B5D4C
|
|
ldr r1, =gMain
|
|
movs r5, 0x87
|
|
lsls r5, 3
|
|
adds r1, r5
|
|
b _080780D8
|
|
.pool
|
|
_08077DD8:
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
adds r0, r1, 0
|
|
adds r0, 0x36
|
|
adds r1, 0x28
|
|
movs r2, 0x1
|
|
bl sub_81B5D4C
|
|
ldr r1, =gMain
|
|
movs r7, 0x87
|
|
lsls r7, 3
|
|
adds r1, r7
|
|
b _080780D8
|
|
.pool
|
|
_08077DFC:
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldr r5, =gUnknown_02032188
|
|
ldr r1, [r5]
|
|
movs r4, 0x3
|
|
str r4, [sp]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_80C6D80
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
eors r1, r0
|
|
lsrs r1, 24
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gLinkPlayers + 8
|
|
adds r0, r1
|
|
ldr r1, [r5, 0xC]
|
|
str r4, [sp]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_80C6D80
|
|
ldr r4, =gUnknown_0832DE94
|
|
ldr r0, [r4]
|
|
ldr r1, [r5, 0x18]
|
|
movs r2, 0x2
|
|
str r2, [sp]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_80C6D80
|
|
ldr r0, [r4, 0x4]
|
|
ldr r1, [r5, 0x20]
|
|
movs r2, 0x18
|
|
bl sub_807A308
|
|
ldr r1, =gMain
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
_08077E58:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
movs r2, 0
|
|
strb r0, [r1]
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0xA8
|
|
strb r2, [r0]
|
|
b _080780F6
|
|
.pool
|
|
_08077E84:
|
|
bl sub_807A1F0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08077E90
|
|
b _080780F6
|
|
_08077E90:
|
|
ldr r1, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r1, r2
|
|
b _080780D8
|
|
.pool
|
|
_08077EA0:
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r1, [r0]
|
|
movs r0, 0x1
|
|
movs r2, 0x78
|
|
bl GetStringCenterAlignXOffset
|
|
movs r6, 0
|
|
add r5, sp, 0xC
|
|
adds r4, r0, 0
|
|
adds r4, 0x10
|
|
_08077EB4:
|
|
add r1, sp, 0xC
|
|
ldr r0, =gSpriteTemplate_832DCAC
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldrh r0, [r5]
|
|
adds r0, r6
|
|
strh r0, [r5]
|
|
lsls r1, r4, 16
|
|
asrs r1, 16
|
|
add r0, sp, 0xC
|
|
movs r2, 0xA
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
adds r4, 0x20
|
|
adds r6, 0x1
|
|
cmp r6, 0x2
|
|
ble _08077EB4
|
|
bl GetMultiplayerId
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
ldr r0, =gLinkPlayers + 8
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
movs r2, 0x78
|
|
bl GetStringCenterAlignXOffset
|
|
movs r6, 0
|
|
add r5, sp, 0xC
|
|
adds r4, r0, 0
|
|
adds r4, 0x88
|
|
_08077F02:
|
|
add r1, sp, 0xC
|
|
ldr r0, =gSpriteTemplate_832DCAC
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
adds r0, r6, 0x3
|
|
ldrh r3, [r5]
|
|
adds r0, r3
|
|
strh r0, [r5]
|
|
lsls r1, r4, 16
|
|
asrs r1, 16
|
|
add r0, sp, 0xC
|
|
movs r2, 0xA
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
adds r4, 0x20
|
|
adds r6, 0x1
|
|
cmp r6, 0x2
|
|
ble _08077F02
|
|
ldr r1, =gMain
|
|
movs r5, 0x87
|
|
lsls r5, 3
|
|
adds r1, r5
|
|
b _080780D8
|
|
.pool
|
|
_08077F48:
|
|
ldr r4, =gSpriteTemplate_832DCAC
|
|
add r1, sp, 0xC
|
|
adds r0, r4, 0
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldm r0!, {r2,r5,r7}
|
|
stm r1!, {r2,r5,r7}
|
|
add r1, sp, 0xC
|
|
adds r0, r1, 0
|
|
ldrh r0, [r0]
|
|
adds r0, 0x6
|
|
strh r0, [r1]
|
|
adds r0, r1, 0
|
|
movs r1, 0xD7
|
|
movs r2, 0x98
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
add r0, sp, 0xC
|
|
ldm r4!, {r3,r5,r7}
|
|
stm r0!, {r3,r5,r7}
|
|
ldm r4!, {r1-r3}
|
|
stm r0!, {r1-r3}
|
|
add r1, sp, 0xC
|
|
adds r0, r1, 0
|
|
ldrh r0, [r0]
|
|
adds r0, 0x7
|
|
strh r0, [r1]
|
|
adds r0, r1, 0
|
|
movs r1, 0xF7
|
|
movs r2, 0x98
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
movs r6, 0
|
|
add r4, sp, 0xC
|
|
movs r5, 0xC0
|
|
lsls r5, 13
|
|
_08077F94:
|
|
add r1, sp, 0xC
|
|
ldr r0, =gSpriteTemplate_832DCAC
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
adds r0, r6, 0
|
|
adds r0, 0x8
|
|
ldrh r7, [r4]
|
|
adds r0, r7
|
|
strh r0, [r4]
|
|
asrs r1, r5, 16
|
|
add r0, sp, 0xC
|
|
movs r2, 0x96
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
movs r0, 0x80
|
|
lsls r0, 14
|
|
adds r5, r0
|
|
adds r6, 0x1
|
|
cmp r6, 0x5
|
|
ble _08077F94
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
adds r2, r1, 0
|
|
adds r2, 0x35
|
|
ldrb r1, [r2]
|
|
adds r4, r0, 0
|
|
cmp r1, 0x5
|
|
bhi _08077FE4
|
|
ldr r0, =gUnknown_0203CF20
|
|
ldrb r0, [r0]
|
|
b _08077FEA
|
|
.pool
|
|
_08077FE4:
|
|
ldr r0, =gUnknown_0203CF20
|
|
ldrb r0, [r0]
|
|
adds r0, 0x6
|
|
_08077FEA:
|
|
strb r0, [r2]
|
|
ldr r0, =gSpriteTemplate_832DC94
|
|
ldr r3, =gUnknown_0832DE24
|
|
ldr r1, [r4]
|
|
adds r1, 0x35
|
|
ldrb r2, [r1]
|
|
lsls r2, 1
|
|
adds r1, r2, r3
|
|
ldrb r1, [r1]
|
|
lsls r1, 19
|
|
movs r5, 0x80
|
|
lsls r5, 14
|
|
adds r1, r5
|
|
asrs r1, 16
|
|
adds r3, 0x1
|
|
adds r2, r3
|
|
ldrb r2, [r2]
|
|
lsls r2, 3
|
|
movs r3, 0x2
|
|
bl CreateSprite
|
|
ldr r1, [r4]
|
|
adds r1, 0x34
|
|
strb r0, [r1]
|
|
ldr r0, =gMain
|
|
movs r7, 0x87
|
|
lsls r7, 3
|
|
adds r0, r7
|
|
movs r1, 0x10
|
|
strb r1, [r0]
|
|
b _080780F6
|
|
.pool
|
|
_08078038:
|
|
movs r0, 0
|
|
bl sub_80782B8
|
|
b _080780D0
|
|
_08078040:
|
|
movs r0, 0x1
|
|
bl sub_80782B8
|
|
ldr r2, =gUnknown_0203229C
|
|
ldr r0, [r2]
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
strb r1, [r0, 0x1]
|
|
bl sub_8078388
|
|
ldr r1, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r1, r2
|
|
b _080780D8
|
|
.pool
|
|
_08078068:
|
|
ldr r2, =gPaletteFade
|
|
ldrb r1, [r2, 0x8]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2, 0x8]
|
|
movs r4, 0x1
|
|
negs r4, r4
|
|
adds r0, r4, 0
|
|
movs r1, 0x10
|
|
movs r2, 0
|
|
bl BlendPalettes
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
ldr r1, =gMain
|
|
movs r3, 0x87
|
|
lsls r3, 3
|
|
adds r1, r3
|
|
b _080780D8
|
|
.pool
|
|
_080780A4:
|
|
movs r1, 0x82
|
|
lsls r1, 5
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x2
|
|
bl sub_80782B8
|
|
ldr r1, =gMain
|
|
movs r5, 0x87
|
|
lsls r5, 3
|
|
adds r1, r5
|
|
b _080780D8
|
|
.pool
|
|
_080780C4:
|
|
movs r7, 0x87
|
|
lsls r7, 3
|
|
adds r1, r2, r7
|
|
b _080780D8
|
|
_080780CC:
|
|
bl sub_807A53C
|
|
_080780D0:
|
|
ldr r1, =gMain
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
_080780D8:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _080780F6
|
|
.pool
|
|
_080780E4:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080780F6
|
|
ldr r0, =sub_807825C
|
|
bl SetMainCallback2
|
|
_080780F6:
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
add sp, 0x24
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8077B74
|
|
|
|
thumb_func_start sub_807811C
|
|
sub_807811C: @ 807811C
|
|
push {lr}
|
|
bl LoadOam
|
|
bl ProcessSpriteCopyRequests
|
|
bl TransferPlttBuffer
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807811C
|
|
|
|
thumb_func_start sub_8078130
|
|
sub_8078130: @ 8078130
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r4, =gUnknown_0203229C
|
|
ldr r1, [r4]
|
|
adds r1, 0xA8
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xF
|
|
bls _08078160
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, [r4]
|
|
adds r0, 0x6F
|
|
movs r1, 0xA
|
|
strb r1, [r0]
|
|
_08078160:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8078130
|
|
|
|
thumb_func_start sub_807816C
|
|
sub_807816C: @ 807816C
|
|
push {r4,lr}
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080781C2
|
|
ldr r1, =gUnknown_02032298
|
|
ldr r4, =gUnknown_0203229C
|
|
ldr r2, [r4]
|
|
adds r0, r2, 0
|
|
adds r0, 0x35
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r0, r2, 0
|
|
adds r0, 0x7E
|
|
ldrb r0, [r0]
|
|
strb r0, [r1, 0x1]
|
|
ldr r0, =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080781B4
|
|
adds r1, r2, 0
|
|
adds r1, 0x6F
|
|
movs r0, 0x10
|
|
strb r0, [r1]
|
|
b _080781C2
|
|
.pool
|
|
_080781B4:
|
|
movs r0, 0x20
|
|
bl sub_800ABF4
|
|
ldr r0, [r4]
|
|
adds r0, 0x6F
|
|
movs r1, 0xD
|
|
strb r1, [r0]
|
|
_080781C2:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807816C
|
|
|
|
thumb_func_start sub_80781C8
|
|
sub_80781C8: @ 80781C8
|
|
push {r4,r5,lr}
|
|
ldr r5, =gMain
|
|
ldr r0, =sub_80773AC
|
|
str r0, [r5, 0x8]
|
|
ldr r0, =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08078220
|
|
bl sub_8010500
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08078244
|
|
ldr r0, =gUnknown_02032184
|
|
ldr r0, [r0]
|
|
bl Free
|
|
bl FreeAllWindowBuffers
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r5]
|
|
bl sub_800E084
|
|
ldr r0, =sub_807AE50
|
|
bl SetMainCallback2
|
|
b _08078244
|
|
.pool
|
|
_08078220:
|
|
ldr r0, =gReceivedRemoteLinkPlayers
|
|
ldrb r4, [r0]
|
|
cmp r4, 0
|
|
bne _08078244
|
|
ldr r0, =gUnknown_02032184
|
|
ldr r0, [r0]
|
|
bl Free
|
|
bl FreeAllWindowBuffers
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
bl Free
|
|
str r4, [r5]
|
|
ldr r0, =sub_807AE50
|
|
bl SetMainCallback2
|
|
_08078244:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80781C8
|
|
|
|
thumb_func_start sub_807825C
|
|
sub_807825C: @ 807825C
|
|
push {r4,lr}
|
|
bl sub_80795AC
|
|
bl sub_807A0C4
|
|
movs r0, 0
|
|
bl sub_80796B4
|
|
movs r0, 0x1
|
|
bl sub_80796B4
|
|
ldr r4, =gUnknown_0203229C
|
|
ldr r2, [r4]
|
|
ldrb r1, [r2]
|
|
adds r0, r1, 0x1
|
|
strb r0, [r2]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r0, 0x18
|
|
bl SetGpuReg
|
|
ldr r2, [r4]
|
|
ldrb r1, [r2, 0x1]
|
|
adds r0, r1, 0
|
|
adds r0, 0xFF
|
|
strb r0, [r2, 0x1]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r0, 0x1C
|
|
bl SetGpuReg
|
|
bl RunTextPrintersAndIsPrinter0Active
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807825C
|
|
|
|
thumb_func_start sub_80782B8
|
|
sub_80782B8: @ 80782B8
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x1
|
|
beq _08078324
|
|
cmp r4, 0x1
|
|
bgt _080782CE
|
|
cmp r4, 0
|
|
beq _080782D4
|
|
b _0807837E
|
|
_080782CE:
|
|
cmp r4, 0x2
|
|
beq _0807834C
|
|
b _0807837E
|
|
_080782D4:
|
|
ldr r0, =gUnknown_08DDB3E4
|
|
movs r1, 0
|
|
movs r2, 0x60
|
|
bl LoadPalette
|
|
ldr r1, =gUnknown_08DDB464
|
|
movs r2, 0x94
|
|
lsls r2, 5
|
|
movs r0, 0x1
|
|
movs r3, 0
|
|
bl LoadBgTiles
|
|
ldr r1, =gUnknown_08DDCF04
|
|
movs r0, 0x20
|
|
str r0, [sp]
|
|
movs r0, 0x14
|
|
str r0, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
ldr r1, =gTradeStripesBG2Tilemap
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
movs r0, 0x2
|
|
movs r3, 0
|
|
bl LoadBgTilemap
|
|
b _0807837E
|
|
.pool
|
|
_08078324:
|
|
ldr r1, =gTradeStripesBG3Tilemap
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
movs r0, 0x3
|
|
movs r3, 0
|
|
bl LoadBgTilemap
|
|
movs r0, 0
|
|
bl sub_8079E44
|
|
movs r0, 0x1
|
|
bl sub_8079E44
|
|
movs r0, 0x1
|
|
bl CopyBgTilemapBufferToVram
|
|
b _0807837E
|
|
.pool
|
|
_0807834C:
|
|
movs r5, 0x80
|
|
lsls r5, 21
|
|
movs r4, 0x3
|
|
_08078352:
|
|
lsrs r0, r5, 24
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x80
|
|
lsls r0, 18
|
|
adds r5, r0
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _08078352
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
movs r0, 0x2
|
|
bl ShowBg
|
|
movs r0, 0x3
|
|
bl ShowBg
|
|
_0807837E:
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80782B8
|
|
|
|
thumb_func_start sub_8078388
|
|
sub_8078388: @ 8078388
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
movs r3, 0
|
|
ldr r5, =gUnknown_0203229C
|
|
mov r8, r5
|
|
ldr r0, =gSprites
|
|
mov r12, r0
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
mov r9, r1
|
|
movs r4, 0x6
|
|
movs r7, 0x1
|
|
movs r6, 0
|
|
_080783A6:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r1, r0, 0
|
|
adds r1, 0x36
|
|
ldrb r1, [r1]
|
|
cmp r3, r1
|
|
bge _080783E0
|
|
adds r0, 0x28
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
add r1, r12
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
mov r0, r9
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r5]
|
|
adds r0, 0x38
|
|
adds r0, r3
|
|
strb r7, [r0]
|
|
b _080783E6
|
|
.pool
|
|
_080783E0:
|
|
adds r0, 0x38
|
|
adds r0, r3
|
|
strb r6, [r0]
|
|
_080783E6:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r1, r0, 0
|
|
adds r1, 0x37
|
|
ldrb r1, [r1]
|
|
cmp r3, r1
|
|
bge _08078416
|
|
adds r0, 0x2E
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
add r1, r12
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
mov r0, r9
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r5]
|
|
adds r0, 0x38
|
|
adds r0, r4
|
|
strb r7, [r0]
|
|
b _0807841C
|
|
_08078416:
|
|
adds r0, 0x38
|
|
adds r0, r4
|
|
strb r6, [r0]
|
|
_0807841C:
|
|
adds r4, 0x1
|
|
adds r3, 0x1
|
|
cmp r3, 0x5
|
|
ble _080783A6
|
|
ldr r0, [r5]
|
|
adds r0, 0x44
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8078388
|
|
|
|
thumb_func_start sub_8078438
|
|
sub_8078438: @ 8078438
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r3, 0
|
|
cmp r3, r2
|
|
bcs _08078452
|
|
_08078444:
|
|
adds r0, r5, r3
|
|
adds r1, r4, r3
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r3, 0x1
|
|
cmp r3, r2
|
|
bcc _08078444
|
|
_08078452:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8078438
|
|
|
|
thumb_func_start shedinja_maker_maybe
|
|
shedinja_maker_maybe: @ 8078458
|
|
push {r4-r6,lr}
|
|
sub sp, 0xC
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x69
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x15
|
|
bls _08078472
|
|
b _080787AA
|
|
_08078472:
|
|
lsls r0, 2
|
|
ldr r1, =_08078484
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08078484:
|
|
.4byte _080784DC
|
|
.4byte _08078508
|
|
.4byte _08078784
|
|
.4byte _08078534
|
|
.4byte _08078548
|
|
.4byte _0807857C
|
|
.4byte _08078784
|
|
.4byte _08078598
|
|
.4byte _080785AC
|
|
.4byte _080785E0
|
|
.4byte _08078784
|
|
.4byte _080785FC
|
|
.4byte _08078610
|
|
.4byte _08078644
|
|
.4byte _08078784
|
|
.4byte _0807866C
|
|
.4byte _08078680
|
|
.4byte _080786B4
|
|
.4byte _08078784
|
|
.4byte _080786DC
|
|
.4byte _080786F0
|
|
.4byte _08078720
|
|
_080784DC:
|
|
ldr r0, =gBlockSendBuffer
|
|
ldr r1, =gPlayerParty
|
|
movs r2, 0xC8
|
|
bl sub_8078438
|
|
ldr r3, =gUnknown_0203229C
|
|
ldr r1, [r3]
|
|
adds r1, 0x69
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
movs r2, 0
|
|
strb r0, [r1]
|
|
ldr r0, [r3]
|
|
adds r0, 0xA8
|
|
strb r2, [r0]
|
|
b _080787AA
|
|
.pool
|
|
_08078508:
|
|
bl sub_80771BC
|
|
cmp r0, 0
|
|
bne _08078512
|
|
b _080787AA
|
|
_08078512:
|
|
bl sub_8077200
|
|
cmp r0, 0
|
|
bne _08078524
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
b _080787A2
|
|
.pool
|
|
_08078524:
|
|
bl sub_8077210
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
b _080787A2
|
|
.pool
|
|
_08078534:
|
|
cmp r5, 0
|
|
bne _0807853E
|
|
movs r0, 0x1
|
|
bl sub_80771AC
|
|
_0807853E:
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
b _080787A2
|
|
.pool
|
|
_08078548:
|
|
bl sub_8077200
|
|
cmp r0, 0x3
|
|
beq _08078552
|
|
b _080787AA
|
|
_08078552:
|
|
ldr r0, =gEnemyParty
|
|
movs r2, 0x1
|
|
adds r1, r5, 0
|
|
eors r1, r2
|
|
lsls r1, 8
|
|
ldr r2, =gBlockRecvBuffer
|
|
adds r1, r2
|
|
movs r2, 0xC8
|
|
bl sub_8078438
|
|
bl sub_8077210
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
b _080787A2
|
|
.pool
|
|
_0807857C:
|
|
ldr r0, =gBlockSendBuffer
|
|
ldr r1, =gPlayerParty + 200
|
|
movs r2, 0xC8
|
|
bl sub_8078438
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
b _080787A2
|
|
.pool
|
|
_08078598:
|
|
cmp r5, 0
|
|
bne _080785A2
|
|
movs r0, 0x1
|
|
bl sub_80771AC
|
|
_080785A2:
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
b _080787A2
|
|
.pool
|
|
_080785AC:
|
|
bl sub_8077200
|
|
cmp r0, 0x3
|
|
beq _080785B6
|
|
b _080787AA
|
|
_080785B6:
|
|
ldr r0, =gEnemyParty + 200
|
|
movs r2, 0x1
|
|
adds r1, r5, 0
|
|
eors r1, r2
|
|
lsls r1, 8
|
|
ldr r2, =gBlockRecvBuffer
|
|
adds r1, r2
|
|
movs r2, 0xC8
|
|
bl sub_8078438
|
|
bl sub_8077210
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
b _080787A2
|
|
.pool
|
|
_080785E0:
|
|
ldr r0, =gBlockSendBuffer
|
|
ldr r1, =gPlayerParty + 400
|
|
movs r2, 0xC8
|
|
bl sub_8078438
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
b _080787A2
|
|
.pool
|
|
_080785FC:
|
|
cmp r5, 0
|
|
bne _08078606
|
|
movs r0, 0x1
|
|
bl sub_80771AC
|
|
_08078606:
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
b _080787A2
|
|
.pool
|
|
_08078610:
|
|
bl sub_8077200
|
|
cmp r0, 0x3
|
|
beq _0807861A
|
|
b _080787AA
|
|
_0807861A:
|
|
ldr r0, =gEnemyParty + 400
|
|
movs r2, 0x1
|
|
adds r1, r5, 0
|
|
eors r1, r2
|
|
lsls r1, 8
|
|
ldr r2, =gBlockRecvBuffer
|
|
adds r1, r2
|
|
movs r2, 0xC8
|
|
bl sub_8078438
|
|
bl sub_8077210
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
b _080787A2
|
|
.pool
|
|
_08078644:
|
|
ldr r0, =gBlockSendBuffer
|
|
ldr r1, =gSaveBlock1Ptr
|
|
ldr r1, [r1]
|
|
ldr r2, =0x00002be0
|
|
adds r1, r2
|
|
movs r2, 0xDC
|
|
bl sub_8078438
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
b _080787A2
|
|
.pool
|
|
_0807866C:
|
|
cmp r5, 0
|
|
bne _08078676
|
|
movs r0, 0x3
|
|
bl sub_80771AC
|
|
_08078676:
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
b _080787A2
|
|
.pool
|
|
_08078680:
|
|
bl sub_8077200
|
|
cmp r0, 0x3
|
|
beq _0807868A
|
|
b _080787AA
|
|
_0807868A:
|
|
ldr r0, =gUnknown_020321C0
|
|
movs r2, 0x1
|
|
adds r1, r5, 0
|
|
eors r1, r2
|
|
lsls r1, 8
|
|
ldr r2, =gBlockRecvBuffer
|
|
adds r1, r2
|
|
movs r2, 0xD8
|
|
bl sub_8078438
|
|
bl sub_8077210
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
b _080787A2
|
|
.pool
|
|
_080786B4:
|
|
ldr r0, =gBlockSendBuffer
|
|
ldr r1, =gSaveBlock1Ptr
|
|
ldr r1, [r1]
|
|
ldr r2, =0x000031a8
|
|
adds r1, r2
|
|
movs r2, 0xB
|
|
bl sub_8078438
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
b _080787A2
|
|
.pool
|
|
_080786DC:
|
|
cmp r5, 0
|
|
bne _080786E6
|
|
movs r0, 0x4
|
|
bl sub_80771AC
|
|
_080786E6:
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
b _080787A2
|
|
.pool
|
|
_080786F0:
|
|
bl sub_8077200
|
|
cmp r0, 0x3
|
|
bne _080787AA
|
|
ldr r4, =gUnknown_0203229C
|
|
ldr r0, [r4]
|
|
adds r0, 0xA9
|
|
movs r2, 0x1
|
|
adds r1, r5, 0
|
|
eors r1, r2
|
|
lsls r1, 8
|
|
ldr r2, =gBlockRecvBuffer
|
|
adds r1, r2
|
|
movs r2, 0xB
|
|
bl sub_8078438
|
|
bl sub_8077210
|
|
ldr r1, [r4]
|
|
b _080787A2
|
|
.pool
|
|
_08078720:
|
|
ldr r4, =gEnemyParty
|
|
ldr r6, =0x0000012f
|
|
movs r5, 0x5
|
|
_08078726:
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0
|
|
beq _08078766
|
|
cmp r0, r6
|
|
bne _08078766
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl GetMonData
|
|
cmp r0, 0x1
|
|
beq _08078766
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
mov r2, sp
|
|
bl GetMonData
|
|
mov r0, sp
|
|
ldr r1, =gJPText_Shedinja
|
|
bl StringCompareWithoutExtCtrlCodes
|
|
cmp r0, 0
|
|
bne _08078766
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
ldr r2, =gSpeciesNames + 303 * POKEMON_NAME_LENGTH @ SPECIES_SHEDINJA
|
|
bl SetMonData
|
|
_08078766:
|
|
adds r4, 0x64
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _08078726
|
|
movs r0, 0x1
|
|
b _080787AC
|
|
.pool
|
|
_08078784:
|
|
ldr r2, =gUnknown_0203229C
|
|
ldr r1, [r2]
|
|
adds r1, 0xA8
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, [r2]
|
|
adds r1, r0, 0
|
|
adds r1, 0xA8
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xA
|
|
bls _080787AA
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r1, [r2]
|
|
_080787A2:
|
|
adds r1, 0x69
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_080787AA:
|
|
movs r0, 0
|
|
_080787AC:
|
|
add sp, 0xC
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end shedinja_maker_maybe
|
|
|
|
thumb_func_start sub_80787B8
|
|
sub_80787B8: @ 80787B8
|
|
push {lr}
|
|
ldr r0, =gText_IsThisTradeOkay
|
|
ldr r1, =gUnknown_0203229C
|
|
ldr r1, [r1]
|
|
adds r1, 0x72
|
|
ldrh r1, [r1]
|
|
lsls r1, 5
|
|
ldr r2, =0x06010000
|
|
adds r1, r2
|
|
movs r2, 0x18
|
|
bl sub_807A308
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80787B8
|
|
|
|
thumb_func_start sub_80787E0
|
|
sub_80787E0: @ 80787E0
|
|
push {r4,lr}
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
movs r2, 0x1
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08078864
|
|
ldr r0, =gBlockRecvBuffer
|
|
ldrh r1, [r0]
|
|
ldr r0, =0x0000bbbb
|
|
cmp r1, r0
|
|
beq _08078844
|
|
cmp r1, r0
|
|
bgt _08078814
|
|
ldr r0, =0x0000aabb
|
|
cmp r1, r0
|
|
beq _08078834
|
|
b _0807885E
|
|
.pool
|
|
_08078814:
|
|
ldr r0, =0x0000bbcc
|
|
cmp r1, r0
|
|
beq _08078854
|
|
ldr r0, =0x0000eeaa
|
|
cmp r1, r0
|
|
bne _0807885E
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x78
|
|
b _0807885A
|
|
.pool
|
|
_08078834:
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x78
|
|
strb r2, [r0]
|
|
b _0807885E
|
|
.pool
|
|
_08078844:
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x7A
|
|
strb r2, [r0]
|
|
b _0807885E
|
|
.pool
|
|
_08078854:
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x7A
|
|
_0807885A:
|
|
movs r1, 0x2
|
|
strb r1, [r0]
|
|
_0807885E:
|
|
movs r0, 0
|
|
bl sub_8077234
|
|
_08078864:
|
|
movs r2, 0x2
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080788F6
|
|
ldr r3, =gBlockRecvBuffer
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r0, r3, r1
|
|
ldrh r1, [r0]
|
|
ldr r0, =0x0000bbbb
|
|
cmp r1, r0
|
|
beq _080788D8
|
|
cmp r1, r0
|
|
bgt _0807889C
|
|
ldr r0, =0x0000aabb
|
|
cmp r1, r0
|
|
beq _080788BC
|
|
b _080788F0
|
|
.pool
|
|
_0807889C:
|
|
ldr r0, =0x0000bbcc
|
|
cmp r1, r0
|
|
beq _080788E8
|
|
ldr r0, =0x0000eeaa
|
|
cmp r1, r0
|
|
bne _080788F0
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x79
|
|
b _080788EE
|
|
.pool
|
|
_080788BC:
|
|
ldr r2, =gUnknown_0203229C
|
|
ldr r1, [r2]
|
|
movs r4, 0x81
|
|
lsls r4, 1
|
|
adds r0, r3, r4
|
|
ldrb r0, [r0]
|
|
adds r0, 0x6
|
|
adds r1, 0x7E
|
|
strb r0, [r1]
|
|
ldr r0, [r2]
|
|
adds r0, 0x79
|
|
b _080788DE
|
|
.pool
|
|
_080788D8:
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x7B
|
|
_080788DE:
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
b _080788F0
|
|
.pool
|
|
_080788E8:
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x7B
|
|
_080788EE:
|
|
strb r2, [r0]
|
|
_080788F0:
|
|
movs r0, 0x1
|
|
bl sub_8077234
|
|
_080788F6:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80787E0
|
|
|
|
thumb_func_start sub_8078900
|
|
sub_8078900: @ 8078900
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
movs r0, 0x1
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _080789E2
|
|
ldr r2, =gBlockRecvBuffer
|
|
ldrh r1, [r2]
|
|
ldr r0, =0x0000ddee
|
|
cmp r1, r0
|
|
beq _080789CC
|
|
cmp r1, r0
|
|
bgt _0807893C
|
|
ldr r0, =0x0000ccdd
|
|
cmp r1, r0
|
|
beq _080789AC
|
|
ldr r0, =0x0000dddd
|
|
cmp r1, r0
|
|
beq _08078978
|
|
b _080789DC
|
|
.pool
|
|
_0807893C:
|
|
ldr r0, =0x0000eebb
|
|
cmp r1, r0
|
|
beq _08078950
|
|
adds r0, 0x11
|
|
cmp r1, r0
|
|
beq _08078974
|
|
b _080789DC
|
|
.pool
|
|
_08078950:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
movs r0, 0x4
|
|
bl sub_807A19C
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x6F
|
|
movs r1, 0xB
|
|
b _080789DA
|
|
.pool
|
|
_08078974:
|
|
movs r0, 0x5
|
|
b _080789CE
|
|
_08078978:
|
|
ldr r4, =gUnknown_0203229C
|
|
ldr r1, [r4]
|
|
ldrb r0, [r2, 0x2]
|
|
adds r0, 0x6
|
|
adds r1, 0x7E
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
bl rbox_fill_rectangle
|
|
ldr r0, [r4]
|
|
adds r0, 0x35
|
|
ldrb r0, [r0]
|
|
bl sub_807967C
|
|
ldr r0, [r4]
|
|
adds r0, 0x7E
|
|
ldrb r0, [r0]
|
|
bl sub_807967C
|
|
ldr r0, [r4]
|
|
adds r0, 0x6F
|
|
movs r1, 0x7
|
|
b _080789DA
|
|
.pool
|
|
_080789AC:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x6F
|
|
movs r1, 0xA
|
|
b _080789DA
|
|
.pool
|
|
_080789CC:
|
|
movs r0, 0x1
|
|
_080789CE:
|
|
bl sub_807A19C
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x6F
|
|
movs r1, 0x8
|
|
_080789DA:
|
|
strb r1, [r0]
|
|
_080789DC:
|
|
movs r0, 0
|
|
bl sub_8077234
|
|
_080789E2:
|
|
movs r0, 0x2
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _080789F0
|
|
movs r0, 0x1
|
|
bl sub_8077234
|
|
_080789F0:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8078900
|
|
|
|
thumb_func_start sub_80789FC
|
|
sub_80789FC: @ 80789FC
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
ldr r6, =gUnknown_0203229C
|
|
ldr r2, [r6]
|
|
adds r1, r2, 0
|
|
adds r1, 0x78
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _08078A10
|
|
b _08078B44
|
|
_08078A10:
|
|
adds r0, r2, 0
|
|
adds r0, 0x79
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08078A1C
|
|
b _08078B44
|
|
_08078A1C:
|
|
ldrh r1, [r1]
|
|
ldr r0, =0x00000101
|
|
cmp r1, r0
|
|
bne _08078A64
|
|
adds r1, r2, 0
|
|
adds r1, 0x6F
|
|
movs r0, 0x6
|
|
strb r0, [r1]
|
|
ldr r2, [r6]
|
|
adds r1, r2, 0
|
|
adds r1, 0x80
|
|
movs r4, 0
|
|
ldr r0, =0x0000dddd
|
|
strh r0, [r1]
|
|
adds r0, r2, 0
|
|
adds r0, 0x35
|
|
ldrb r1, [r0]
|
|
adds r0, 0x4D
|
|
strh r1, [r0]
|
|
movs r0, 0x5
|
|
movs r1, 0
|
|
bl sub_807A048
|
|
ldr r0, [r6]
|
|
adds r2, r0, 0
|
|
adds r2, 0x79
|
|
strb r4, [r2]
|
|
adds r0, 0x78
|
|
strb r4, [r0]
|
|
b _08078B44
|
|
.pool
|
|
_08078A64:
|
|
ldr r0, =0x00000201
|
|
cmp r1, r0
|
|
bne _08078AB4
|
|
movs r0, 0x1
|
|
bl sub_807A19C
|
|
ldr r1, [r6]
|
|
adds r2, r1, 0
|
|
adds r2, 0x80
|
|
movs r4, 0
|
|
movs r3, 0
|
|
ldr r0, =0x0000eecc
|
|
strh r0, [r2]
|
|
adds r1, 0x82
|
|
strh r3, [r1]
|
|
movs r0, 0x5
|
|
movs r1, 0
|
|
bl sub_807A048
|
|
ldr r0, [r6]
|
|
adds r1, r0, 0
|
|
adds r1, 0x7B
|
|
strb r4, [r1]
|
|
adds r0, 0x7A
|
|
strb r4, [r0]
|
|
ldr r0, [r6]
|
|
adds r1, r0, 0
|
|
adds r1, 0x79
|
|
strb r4, [r1]
|
|
adds r0, 0x78
|
|
strb r4, [r0]
|
|
ldr r0, [r6]
|
|
adds r0, 0x6F
|
|
movs r1, 0x8
|
|
b _08078B42
|
|
.pool
|
|
_08078AB4:
|
|
movs r0, 0x81
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bne _08078B00
|
|
movs r0, 0x5
|
|
bl sub_807A19C
|
|
ldr r1, [r6]
|
|
adds r2, r1, 0
|
|
adds r2, 0x80
|
|
movs r4, 0
|
|
movs r3, 0
|
|
ldr r0, =0x0000ddee
|
|
strh r0, [r2]
|
|
adds r1, 0x82
|
|
strh r3, [r1]
|
|
movs r0, 0x5
|
|
movs r1, 0
|
|
bl sub_807A048
|
|
ldr r0, [r6]
|
|
adds r1, r0, 0
|
|
adds r1, 0x7B
|
|
strb r4, [r1]
|
|
adds r0, 0x7A
|
|
strb r4, [r0]
|
|
ldr r0, [r6]
|
|
adds r1, r0, 0
|
|
adds r1, 0x79
|
|
strb r4, [r1]
|
|
adds r0, 0x78
|
|
strb r4, [r0]
|
|
ldr r0, [r6]
|
|
adds r0, 0x6F
|
|
movs r1, 0x8
|
|
b _08078B42
|
|
.pool
|
|
_08078B00:
|
|
ldr r0, =0x00000202
|
|
cmp r1, r0
|
|
bne _08078B44
|
|
adds r1, r2, 0
|
|
adds r1, 0x80
|
|
movs r5, 0
|
|
movs r4, 0
|
|
ldr r0, =0x0000eebb
|
|
strh r0, [r1]
|
|
adds r0, r2, 0
|
|
adds r0, 0x82
|
|
strh r4, [r0]
|
|
movs r0, 0x5
|
|
movs r1, 0
|
|
bl sub_807A048
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r4, [sp]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, [r6]
|
|
adds r1, r0, 0
|
|
adds r1, 0x79
|
|
strb r5, [r1]
|
|
adds r0, 0x78
|
|
strb r5, [r0]
|
|
ldr r0, [r6]
|
|
adds r0, 0x6F
|
|
movs r1, 0xB
|
|
_08078B42:
|
|
strb r1, [r0]
|
|
_08078B44:
|
|
ldr r5, =gUnknown_0203229C
|
|
ldr r3, [r5]
|
|
adds r1, r3, 0
|
|
adds r1, 0x7A
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _08078BDC
|
|
adds r0, r3, 0
|
|
adds r0, 0x7B
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08078BDC
|
|
ldrh r1, [r1]
|
|
ldr r0, =0x00000101
|
|
cmp r1, r0
|
|
bne _08078B92
|
|
adds r1, r3, 0
|
|
adds r1, 0x80
|
|
movs r4, 0
|
|
movs r2, 0
|
|
ldr r0, =0x0000ccdd
|
|
strh r0, [r1]
|
|
adds r0, r3, 0
|
|
adds r0, 0x82
|
|
strh r2, [r0]
|
|
movs r0, 0x5
|
|
movs r1, 0
|
|
bl sub_807A048
|
|
ldr r0, [r5]
|
|
adds r0, 0x7A
|
|
strb r4, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, 0x7B
|
|
strb r4, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, 0x6F
|
|
movs r1, 0x9
|
|
strb r1, [r0]
|
|
_08078B92:
|
|
ldr r1, [r5]
|
|
adds r0, r1, 0
|
|
adds r0, 0x7A
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
beq _08078BA8
|
|
adds r0, r1, 0
|
|
adds r0, 0x7B
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _08078BDC
|
|
_08078BA8:
|
|
movs r0, 0x1
|
|
bl sub_807A19C
|
|
ldr r1, [r5]
|
|
adds r2, r1, 0
|
|
adds r2, 0x80
|
|
movs r4, 0
|
|
movs r3, 0
|
|
ldr r0, =0x0000ddee
|
|
strh r0, [r2]
|
|
adds r1, 0x82
|
|
strh r3, [r1]
|
|
movs r0, 0x5
|
|
movs r1, 0
|
|
bl sub_807A048
|
|
ldr r0, [r5]
|
|
adds r0, 0x7A
|
|
strb r4, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, 0x7B
|
|
strb r4, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, 0x6F
|
|
movs r1, 0x8
|
|
strb r1, [r0]
|
|
_08078BDC:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80789FC
|
|
|
|
thumb_func_start sub_8078BFC
|
|
sub_8078BFC: @ 8078BFC
|
|
push {lr}
|
|
strh r1, [r0]
|
|
strh r2, [r0, 0x2]
|
|
movs r0, 0x5
|
|
movs r1, 0
|
|
bl sub_807A048
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8078BFC
|
|
|
|
thumb_func_start sub_8078C10
|
|
sub_8078C10: @ 8078C10
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x80
|
|
adds r1, r3, 0
|
|
bl sub_8078BFC
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8078C10
|
|
|
|
thumb_func_start sub_8078C34
|
|
sub_8078C34: @ 8078C34
|
|
push {r4,lr}
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
bl sub_8077200
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
beq _08078C5C
|
|
cmp r4, 0
|
|
bne _08078C56
|
|
movs r0, 0
|
|
bl sub_80787E0
|
|
b _08078C5C
|
|
_08078C56:
|
|
adds r0, r4, 0
|
|
bl sub_8078900
|
|
_08078C5C:
|
|
cmp r4, 0
|
|
bne _08078C64
|
|
bl sub_80789FC
|
|
_08078C64:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8078C34
|
|
|
|
thumb_func_start sub_8078C6C
|
|
sub_8078C6C: @ 8078C6C
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r6, 0
|
|
movs r5, 0
|
|
ldr r2, =gUnknown_0203229C
|
|
ldr r3, [r2]
|
|
ldr r4, =gUnknown_0832DCEC
|
|
lsls r2, r1, 1
|
|
adds r2, r1
|
|
lsls r2, 1
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r3, 0x38
|
|
adds r2, r1
|
|
adds r2, r4
|
|
_08078C92:
|
|
ldrb r1, [r2]
|
|
adds r0, r3, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _08078CA8
|
|
adds r6, r1, 0
|
|
b _08078CB0
|
|
.pool
|
|
_08078CA8:
|
|
adds r2, 0x1
|
|
adds r5, 0x1
|
|
cmp r5, 0x5
|
|
ble _08078C92
|
|
_08078CB0:
|
|
adds r0, r6, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8078C6C
|
|
|
|
thumb_func_start sub_8078CB8
|
|
sub_8078CB8: @ 8078CB8
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrb r0, [r7]
|
|
bl sub_8078C6C
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0xC
|
|
bne _08078D10
|
|
ldr r5, =gUnknown_0203229C
|
|
ldr r0, [r5]
|
|
adds r0, 0x34
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, =gSprites
|
|
adds r0, r4
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
ldr r2, [r5]
|
|
adds r2, 0x34
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0xE0
|
|
strh r1, [r0, 0x20]
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0xA0
|
|
strh r1, [r0, 0x22]
|
|
b _08078D58
|
|
.pool
|
|
_08078D10:
|
|
ldr r4, =gUnknown_0203229C
|
|
ldr r0, [r4]
|
|
adds r0, 0x34
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r5, =gSprites
|
|
adds r0, r5
|
|
movs r1, 0
|
|
bl StartSpriteAnim
|
|
ldr r4, [r4]
|
|
adds r4, 0x34
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldr r2, =gUnknown_0832DE24
|
|
lsls r3, r6, 1
|
|
adds r0, r3, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, 3
|
|
adds r0, 0x20
|
|
strh r0, [r1, 0x20]
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
adds r2, 0x1
|
|
adds r3, r2
|
|
ldrb r0, [r3]
|
|
lsls r0, 3
|
|
strh r0, [r1, 0x22]
|
|
_08078D58:
|
|
ldrb r0, [r7]
|
|
cmp r0, r6
|
|
beq _08078D64
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
_08078D64:
|
|
strb r6, [r7]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8078CB8
|
|
|
|
thumb_func_start sub_8078D78
|
|
sub_8078D78: @ 8078D78
|
|
push {r4,lr}
|
|
movs r0, 0
|
|
bl sub_807A19C
|
|
ldr r4, =gUnknown_0203229C
|
|
ldr r0, [r4]
|
|
adds r0, 0x6F
|
|
movs r1, 0x64
|
|
strb r1, [r0]
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08078DAC
|
|
ldr r0, =0x0000aabb
|
|
ldr r1, [r4]
|
|
adds r1, 0x35
|
|
ldrb r1, [r1]
|
|
bl sub_8078C10
|
|
b _08078DB4
|
|
.pool
|
|
_08078DAC:
|
|
ldr r0, [r4]
|
|
adds r0, 0x78
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
_08078DB4:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8078D78
|
|
|
|
thumb_func_start sub_8078DBC
|
|
sub_8078DBC: @ 8078DBC
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x30]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08078DE4
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x35
|
|
movs r1, 0
|
|
bl sub_8078CB8
|
|
b _08078E30
|
|
.pool
|
|
_08078DE4:
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08078E00
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x35
|
|
movs r1, 0x1
|
|
bl sub_8078CB8
|
|
b _08078E30
|
|
.pool
|
|
_08078E00:
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08078E1C
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x35
|
|
movs r1, 0x2
|
|
bl sub_8078CB8
|
|
b _08078E30
|
|
.pool
|
|
_08078E1C:
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08078E30
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x35
|
|
movs r1, 0x3
|
|
bl sub_8078CB8
|
|
_08078E30:
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08078EE4
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
ldr r4, =gUnknown_0203229C
|
|
ldr r0, [r4]
|
|
adds r0, 0x35
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x5
|
|
bhi _08078E98
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
movs r2, 0xE
|
|
bl sub_8098858
|
|
movs r0, 0x1
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r2, =gUnknown_0832DEAC
|
|
movs r0, 0x1
|
|
movs r1, 0x2
|
|
bl PrintMenuTable
|
|
movs r0, 0x1
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
|
|
movs r0, 0x1
|
|
bl PutWindowTilemap
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
ldr r0, [r4]
|
|
adds r0, 0x6F
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
b _08078EE4
|
|
.pool
|
|
_08078E98:
|
|
cmp r0, 0xB
|
|
bhi _08078EB6
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, [r4]
|
|
adds r0, 0x6F
|
|
movs r1, 0x2
|
|
strb r1, [r0]
|
|
b _08078EE4
|
|
_08078EB6:
|
|
cmp r0, 0xC
|
|
bne _08078EE4
|
|
ldr r0, =gUnknown_0832DF8C
|
|
movs r1, 0x1
|
|
movs r2, 0xE
|
|
movs r3, 0
|
|
bl CreateYesNoMenu
|
|
ldr r0, [r4]
|
|
adds r0, 0x6F
|
|
movs r1, 0x4
|
|
strb r1, [r0]
|
|
ldr r0, =gUnknown_0832DE94
|
|
ldr r0, [r0, 0x10]
|
|
ldr r1, [r4]
|
|
adds r1, 0x72
|
|
ldrh r1, [r1]
|
|
lsls r1, 5
|
|
ldr r2, =0x06010000
|
|
adds r1, r2
|
|
movs r2, 0x18
|
|
bl sub_807A308
|
|
_08078EE4:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8078DBC
|
|
|
|
thumb_func_start sub_8078EF8
|
|
sub_8078EF8: @ 8078EF8
|
|
push {lr}
|
|
bl sub_8079F74
|
|
ldr r3, =gUnknown_0203229C
|
|
ldr r0, [r3]
|
|
adds r0, 0x6F
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r2, =gSprites
|
|
ldr r0, [r3]
|
|
adds r0, 0x34
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
adds r0, 0x3E
|
|
ldrb r2, [r0]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
ldr r0, =gUnknown_0832DE94
|
|
ldr r0, [r0, 0x4]
|
|
ldr r1, [r3]
|
|
adds r1, 0x72
|
|
ldrh r1, [r1]
|
|
lsls r1, 5
|
|
ldr r2, =0x06010000
|
|
adds r1, r2
|
|
movs r2, 0x18
|
|
bl sub_807A308
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8078EF8
|
|
|
|
thumb_func_start sub_8078F50
|
|
sub_8078F50: @ 8078F50
|
|
push {lr}
|
|
sub sp, 0x4
|
|
bl Menu_ProcessInputNoWrapAround
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
beq _08078F72
|
|
cmp r0, r1
|
|
ble _0807902A
|
|
cmp r0, 0
|
|
beq _08078F7E
|
|
cmp r0, 0x1
|
|
beq _08078F9C
|
|
b _0807902A
|
|
_08078F72:
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
bl sub_8078EF8
|
|
b _0807902A
|
|
_08078F7E:
|
|
str r0, [sp]
|
|
adds r0, r1, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x6F
|
|
movs r1, 0x2
|
|
b _08079028
|
|
.pool
|
|
_08078F9C:
|
|
ldr r0, =gPlayerParty
|
|
ldr r1, =gPlayerPartyCount
|
|
ldrb r1, [r1]
|
|
ldr r2, =gUnknown_0203229C
|
|
ldr r2, [r2]
|
|
adds r2, 0x35
|
|
ldrb r2, [r2]
|
|
bl sub_807A5F4
|
|
cmp r0, 0x5
|
|
bhi _0807902A
|
|
lsls r0, 2
|
|
ldr r1, =_08078FCC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08078FCC:
|
|
.4byte _08078FE4
|
|
.4byte _0807900C
|
|
.4byte _08079012
|
|
.4byte _08079018
|
|
.4byte _08079012
|
|
.4byte _08079018
|
|
_08078FE4:
|
|
bl sub_8078D78
|
|
ldr r2, =gSprites
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x34
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
b _08079028
|
|
.pool
|
|
_0807900C:
|
|
movs r0, 0x3
|
|
movs r1, 0x3
|
|
b _0807901C
|
|
_08079012:
|
|
movs r0, 0x3
|
|
movs r1, 0x6
|
|
b _0807901C
|
|
_08079018:
|
|
movs r0, 0x3
|
|
movs r1, 0x7
|
|
_0807901C:
|
|
bl sub_807A048
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x6F
|
|
movs r1, 0x8
|
|
_08079028:
|
|
strb r1, [r0]
|
|
_0807902A:
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8078F50
|
|
|
|
thumb_func_start sub_8079034
|
|
sub_8079034: @ 8079034
|
|
push {lr}
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807904A
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08079054
|
|
_0807904A:
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
bl sub_8078EF8
|
|
_08079054:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8079034
|
|
|
|
thumb_func_start sub_807905C
|
|
sub_807905C: @ 807905C
|
|
push {lr}
|
|
sub sp, 0x4
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080790C4
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r3, r0, 0
|
|
adds r3, 0x35
|
|
ldrb r2, [r3]
|
|
cmp r2, 0x5
|
|
bhi _080790A4
|
|
ldr r1, =gPlayerParty
|
|
ldrb r2, [r3]
|
|
adds r0, 0x36
|
|
ldrb r3, [r0]
|
|
subs r3, 0x1
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
ldr r0, =sub_8077B74
|
|
str r0, [sp]
|
|
movs r0, 0x1
|
|
bl ShowPokemonSummaryScreen
|
|
b _080790C0
|
|
.pool
|
|
_080790A4:
|
|
ldr r1, =gEnemyParty
|
|
subs r2, 0x6
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, 0x37
|
|
ldrb r3, [r0]
|
|
subs r3, 0x1
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
ldr r0, =sub_8077B74
|
|
str r0, [sp]
|
|
movs r0, 0x1
|
|
bl ShowPokemonSummaryScreen
|
|
_080790C0:
|
|
bl FreeAllWindowBuffers
|
|
_080790C4:
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807905C
|
|
|
|
thumb_func_start sub_80790D4
|
|
sub_80790D4: @ 80790D4
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r3, 24
|
|
lsrs r6, r3, 24
|
|
movs r5, 0
|
|
movs r3, 0
|
|
ldr r7, =gEnemyParty
|
|
cmp r5, r1
|
|
bge _08079102
|
|
_080790EE:
|
|
cmp r2, r3
|
|
beq _080790FC
|
|
adds r0, r4, r3
|
|
ldrb r0, [r0]
|
|
adds r0, r5, r0
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
_080790FC:
|
|
adds r3, 0x1
|
|
cmp r3, r1
|
|
blt _080790EE
|
|
_08079102:
|
|
adds r0, r6, 0
|
|
movs r1, 0x6
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r0, 0x64
|
|
muls r0, r6
|
|
adds r7, r0, r7
|
|
adds r0, r7, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
movs r0, 0xCD
|
|
lsls r0, 1
|
|
cmp r4, r0
|
|
beq _0807912C
|
|
cmp r4, 0x97
|
|
bne _08079138
|
|
_0807912C:
|
|
adds r0, r7, 0
|
|
movs r1, 0x50
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _08079158
|
|
_08079138:
|
|
bl IsNationalPokedexEnabled
|
|
cmp r0, 0
|
|
bne _08079164
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x57
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08079158
|
|
adds r0, r4, 0
|
|
bl sub_806E3F8
|
|
cmp r0, 0
|
|
bne _08079164
|
|
_08079158:
|
|
movs r0, 0x2
|
|
b _0807916C
|
|
.pool
|
|
_08079164:
|
|
cmp r5, 0
|
|
beq _0807916A
|
|
movs r5, 0x1
|
|
_0807916A:
|
|
adds r0, r5, 0
|
|
_0807916C:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80790D4
|
|
|
|
thumb_func_start sub_8079174
|
|
sub_8079174: @ 8079174
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
movs r2, 0
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
adds r3, r1, 0
|
|
adds r3, 0x36
|
|
adds r5, r0, 0
|
|
ldrb r0, [r3]
|
|
cmp r2, r0
|
|
bge _080791A0
|
|
adds r4, r1, 0
|
|
adds r4, 0x45
|
|
_0807918E:
|
|
mov r1, sp
|
|
adds r0, r1, r2
|
|
adds r1, r4, r2
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
ldrb r0, [r3]
|
|
cmp r2, r0
|
|
blt _0807918E
|
|
_080791A0:
|
|
ldr r0, [r5]
|
|
adds r1, r0, 0
|
|
adds r1, 0x36
|
|
ldrb r1, [r1]
|
|
adds r2, r0, 0
|
|
adds r2, 0x35
|
|
ldrb r2, [r2]
|
|
adds r0, 0x7E
|
|
ldrb r3, [r0]
|
|
mov r0, sp
|
|
bl sub_80790D4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _080791E8
|
|
cmp r0, 0x1
|
|
bgt _080791D0
|
|
cmp r0, 0
|
|
beq _080791D6
|
|
b _0807920C
|
|
.pool
|
|
_080791D0:
|
|
cmp r0, 0x2
|
|
beq _08079200
|
|
b _0807920C
|
|
_080791D6:
|
|
movs r0, 0x3
|
|
movs r1, 0x3
|
|
bl sub_807A048
|
|
ldr r0, =0x0000bbcc
|
|
b _080791F2
|
|
.pool
|
|
_080791E8:
|
|
movs r0, 0x3
|
|
movs r1, 0x1
|
|
bl sub_807A048
|
|
ldr r0, =0x0000bbbb
|
|
_080791F2:
|
|
movs r1, 0
|
|
bl sub_8078C10
|
|
b _0807920C
|
|
.pool
|
|
_08079200:
|
|
movs r0, 0x3
|
|
movs r1, 0x8
|
|
bl sub_807A048
|
|
movs r0, 0x1
|
|
b _0807920E
|
|
_0807920C:
|
|
movs r0, 0
|
|
_0807920E:
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8079174
|
|
|
|
thumb_func_start sub_8079218
|
|
sub_8079218: @ 8079218
|
|
push {lr}
|
|
bl Menu_ProcessInputNoWrap_
|
|
lsls r0, 24
|
|
asrs r1, r0, 24
|
|
cmp r1, 0
|
|
beq _0807923A
|
|
cmp r1, 0
|
|
bgt _08079234
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _08079268
|
|
b _08079290
|
|
_08079234:
|
|
cmp r1, 0x1
|
|
beq _08079268
|
|
b _08079290
|
|
_0807923A:
|
|
bl sub_8079174
|
|
cmp r0, 0
|
|
bne _08079250
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x6F
|
|
movs r1, 0x64
|
|
b _08079258
|
|
.pool
|
|
_08079250:
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x6F
|
|
movs r1, 0x11
|
|
_08079258:
|
|
strb r1, [r0]
|
|
movs r0, 0x11
|
|
bl PutWindowTilemap
|
|
b _08079290
|
|
.pool
|
|
_08079268:
|
|
movs r0, 0x3
|
|
movs r1, 0x1
|
|
bl sub_807A048
|
|
bl sub_80771BC
|
|
cmp r0, 0
|
|
beq _08079280
|
|
ldr r0, =0x0000bbcc
|
|
movs r1, 0
|
|
bl sub_8078C10
|
|
_08079280:
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x6F
|
|
movs r1, 0x64
|
|
strb r1, [r0]
|
|
movs r0, 0x11
|
|
bl PutWindowTilemap
|
|
_08079290:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8079218
|
|
|
|
thumb_func_start sub_807929C
|
|
sub_807929C: @ 807929C
|
|
push {r4-r6,lr}
|
|
movs r5, 0
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x37
|
|
ldrb r0, [r0]
|
|
subs r0, 0x4
|
|
cmp r5, r0
|
|
bge _080792D8
|
|
movs r6, 0xC0
|
|
lsls r6, 20
|
|
_080792B2:
|
|
lsrs r4, r6, 24
|
|
adds r0, r4, 0
|
|
bl PutWindowTilemap
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl CopyWindowToVram
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
adds r6, r0
|
|
adds r5, 0x1
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x37
|
|
ldrb r0, [r0]
|
|
subs r0, 0x4
|
|
cmp r5, r0
|
|
blt _080792B2
|
|
_080792D8:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807929C
|
|
|
|
thumb_func_start sub_80792E4
|
|
sub_80792E4: @ 80792E4
|
|
push {lr}
|
|
bl Menu_ProcessInputNoWrap_
|
|
lsls r0, 24
|
|
asrs r1, r0, 24
|
|
cmp r1, 0
|
|
beq _08079306
|
|
cmp r1, 0
|
|
bgt _08079300
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _0807934C
|
|
b _08079356
|
|
_08079300:
|
|
cmp r1, 0x1
|
|
beq _0807934C
|
|
b _08079356
|
|
_08079306:
|
|
movs r0, 0x4
|
|
bl sub_807A19C
|
|
ldr r0, =0x0000eeaa
|
|
movs r1, 0
|
|
bl sub_8078C10
|
|
ldr r2, =gSprites
|
|
ldr r3, =gUnknown_0203229C
|
|
ldr r0, [r3]
|
|
adds r0, 0x34
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r0, [r3]
|
|
adds r0, 0x6F
|
|
movs r1, 0x64
|
|
strb r1, [r0]
|
|
bl sub_807929C
|
|
b _08079356
|
|
.pool
|
|
_0807934C:
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
bl sub_8078EF8
|
|
_08079356:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80792E4
|
|
|
|
thumb_func_start sub_807935C
|
|
sub_807935C: @ 807935C
|
|
push {r4,lr}
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08079384
|
|
movs r0, 0
|
|
bl rbox_fill_rectangle
|
|
ldr r4, =gUnknown_0203229C
|
|
ldr r0, [r4]
|
|
adds r0, 0x35
|
|
ldrb r0, [r0]
|
|
bl sub_807967C
|
|
ldr r0, [r4]
|
|
adds r0, 0x7E
|
|
ldrb r0, [r0]
|
|
bl sub_807967C
|
|
_08079384:
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x6F
|
|
movs r1, 0x7
|
|
strb r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807935C
|
|
|
|
thumb_func_start sub_8079398
|
|
sub_8079398: @ 8079398
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_0203229C
|
|
ldr r0, [r4]
|
|
adds r0, 0x74
|
|
ldrh r1, [r0]
|
|
ldr r0, =0x00000505
|
|
cmp r1, r0
|
|
bne _080793B4
|
|
bl sub_80787B8
|
|
ldr r0, [r4]
|
|
adds r0, 0x6F
|
|
movs r1, 0xE
|
|
strb r1, [r0]
|
|
_080793B4:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8079398
|
|
|
|
thumb_func_start sub_80793C4
|
|
sub_80793C4: @ 80793C4
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_0203229C
|
|
ldr r1, [r4]
|
|
adds r1, 0xA8
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, [r4]
|
|
adds r0, 0xA8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x78
|
|
bls _080793F8
|
|
ldr r0, =gUnknown_0832DF8C
|
|
movs r1, 0x1
|
|
movs r2, 0xE
|
|
movs r3, 0
|
|
bl CreateYesNoMenu
|
|
ldr r0, [r4]
|
|
adds r0, 0xA8
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0x6F
|
|
movs r1, 0x3
|
|
strb r1, [r0]
|
|
_080793F8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80793C4
|
|
|
|
thumb_func_start sub_8079408
|
|
sub_8079408: @ 8079408
|
|
push {r4-r6,lr}
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807947C
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
movs r0, 0
|
|
bl rbox_fill_rectangle
|
|
movs r0, 0x1
|
|
bl rbox_fill_rectangle
|
|
movs r6, 0
|
|
movs r5, 0xE0
|
|
lsls r5, 20
|
|
_0807942E:
|
|
lsrs r4, r5, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
adds r0, r4, 0
|
|
bl rbox_fill_rectangle
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
adds r5, r0
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _0807942E
|
|
movs r0, 0
|
|
bl sub_8079F88
|
|
movs r0, 0x1
|
|
bl sub_8079F88
|
|
ldr r2, =gUnknown_0203229C
|
|
ldr r0, [r2]
|
|
adds r0, 0x6F
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r3, =gSprites
|
|
ldr r0, [r2]
|
|
adds r0, 0x34
|
|
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]
|
|
_0807947C:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8079408
|
|
|
|
thumb_func_start sub_8079490
|
|
sub_8079490: @ 8079490
|
|
push {lr}
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080794C4
|
|
ldr r0, =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080794B4
|
|
bl sub_800ADF8
|
|
b _080794BA
|
|
.pool
|
|
_080794B4:
|
|
movs r0, 0xC
|
|
bl sub_800ABF4
|
|
_080794BA:
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x6F
|
|
movs r1, 0xC
|
|
strb r1, [r0]
|
|
_080794C4:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8079490
|
|
|
|
thumb_func_start sub_80794CC
|
|
sub_80794CC: @ 80794CC
|
|
push {lr}
|
|
ldr r0, =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08079518
|
|
bl sub_80771BC
|
|
cmp r0, 0
|
|
beq _0807953A
|
|
bl sub_807A09C
|
|
cmp r0, 0
|
|
bne _0807953A
|
|
ldr r0, =gUnknown_02032184
|
|
ldr r0, [r0]
|
|
bl Free
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
bl Free
|
|
bl FreeAllWindowBuffers
|
|
bl sub_800E084
|
|
ldr r0, =c2_8056854
|
|
bl SetMainCallback2
|
|
b _0807953A
|
|
.pool
|
|
_08079518:
|
|
ldr r0, =gReceivedRemoteLinkPlayers
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0807953A
|
|
ldr r0, =gUnknown_02032184
|
|
ldr r0, [r0]
|
|
bl Free
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
bl Free
|
|
bl FreeAllWindowBuffers
|
|
ldr r0, =c2_8056854
|
|
bl SetMainCallback2
|
|
_0807953A:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80794CC
|
|
|
|
thumb_func_start sub_8079550
|
|
sub_8079550: @ 8079550
|
|
push {lr}
|
|
movs r0, 0
|
|
bl sub_801048C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08079574
|
|
bl sub_807A09C
|
|
cmp r0, 0
|
|
bne _08079574
|
|
bl sub_800ADF8
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x6F
|
|
movs r1, 0xD
|
|
strb r1, [r0]
|
|
_08079574:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8079550
|
|
|
|
thumb_func_start sub_807957C
|
|
sub_807957C: @ 807957C
|
|
push {lr}
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807959C
|
|
ldr r0, =0x0000bbcc
|
|
movs r1, 0
|
|
bl sub_8078C10
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x6F
|
|
movs r1, 0x64
|
|
strb r1, [r0]
|
|
_0807959C:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807957C
|
|
|
|
thumb_func_start sub_80795AC
|
|
sub_80795AC: @ 80795AC
|
|
push {lr}
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x6F
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x11
|
|
bhi _08079678
|
|
lsls r0, 2
|
|
ldr r1, =_080795CC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_080795CC:
|
|
.4byte _08079614
|
|
.4byte _0807961A
|
|
.4byte _08079620
|
|
.4byte _08079626
|
|
.4byte _0807962C
|
|
.4byte _08079678
|
|
.4byte _08079632
|
|
.4byte _08079638
|
|
.4byte _0807963E
|
|
.4byte _08079644
|
|
.4byte _0807964A
|
|
.4byte _08079650
|
|
.4byte _08079656
|
|
.4byte _0807965C
|
|
.4byte _08079662
|
|
.4byte _08079668
|
|
.4byte _0807966E
|
|
.4byte _08079674
|
|
_08079614:
|
|
bl sub_8078DBC
|
|
b _08079678
|
|
_0807961A:
|
|
bl sub_8078F50
|
|
b _08079678
|
|
_08079620:
|
|
bl sub_807905C
|
|
b _08079678
|
|
_08079626:
|
|
bl sub_8079218
|
|
b _08079678
|
|
_0807962C:
|
|
bl sub_80792E4
|
|
b _08079678
|
|
_08079632:
|
|
bl sub_807935C
|
|
b _08079678
|
|
_08079638:
|
|
bl sub_8079398
|
|
b _08079678
|
|
_0807963E:
|
|
bl sub_8079408
|
|
b _08079678
|
|
_08079644:
|
|
bl sub_8078130
|
|
b _08079678
|
|
_0807964A:
|
|
bl sub_807816C
|
|
b _08079678
|
|
_08079650:
|
|
bl sub_8079490
|
|
b _08079678
|
|
_08079656:
|
|
bl sub_80794CC
|
|
b _08079678
|
|
_0807965C:
|
|
bl sub_80781C8
|
|
b _08079678
|
|
_08079662:
|
|
bl sub_80793C4
|
|
b _08079678
|
|
_08079668:
|
|
bl sub_8079034
|
|
b _08079678
|
|
_0807966E:
|
|
bl sub_8079550
|
|
b _08079678
|
|
_08079674:
|
|
bl sub_807957C
|
|
_08079678:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80795AC
|
|
|
|
thumb_func_start sub_807967C
|
|
sub_807967C: @ 807967C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0x6
|
|
bl __udivsi3
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r3, =gUnknown_0203229C
|
|
ldr r0, [r3]
|
|
adds r0, 0x74
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _080796A8
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, [r3]
|
|
adds r0, 0x76
|
|
adds r0, r2
|
|
strb r4, [r0]
|
|
_080796A8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807967C
|
|
|
|
thumb_func_start sub_80796B4
|
|
sub_80796B4: @ 80796B4
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x68
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r4, [r0]
|
|
adds r0, r4, 0
|
|
adds r0, 0x76
|
|
adds r0, r7
|
|
ldrb r0, [r0]
|
|
movs r1, 0x1
|
|
str r1, [sp, 0x60]
|
|
cmp r0, 0x5
|
|
bhi _080796DC
|
|
movs r2, 0
|
|
str r2, [sp, 0x60]
|
|
_080796DC:
|
|
movs r1, 0x6
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
adds r0, r4, 0
|
|
adds r0, 0x74
|
|
adds r3, r0, r7
|
|
ldrb r0, [r3]
|
|
cmp r0, 0x2
|
|
bne _080796FA
|
|
b _08079884
|
|
_080796FA:
|
|
cmp r0, 0x2
|
|
bgt _08079708
|
|
cmp r0, 0x1
|
|
beq _08079716
|
|
b _08079A24
|
|
.pool
|
|
_08079708:
|
|
cmp r0, 0x3
|
|
bne _0807970E
|
|
b _080798BC
|
|
_0807970E:
|
|
cmp r0, 0x4
|
|
bne _08079714
|
|
b _080799EC
|
|
_08079714:
|
|
b _08079A24
|
|
_08079716:
|
|
movs r5, 0
|
|
adds r0, r4, 0
|
|
adds r0, 0x36
|
|
adds r0, r7
|
|
ldr r1, [sp, 0x60]
|
|
lsls r1, 1
|
|
mov r9, r1
|
|
lsls r6, r7, 1
|
|
lsls r2, r7, 4
|
|
str r2, [sp, 0x64]
|
|
ldrb r0, [r0]
|
|
cmp r8, r0
|
|
bcs _0807976A
|
|
ldr r0, =gSprites
|
|
mov r8, r0
|
|
ldr r4, =gUnknown_0203229C
|
|
ldr r0, [sp, 0x60]
|
|
add r0, r9
|
|
lsls r2, r0, 1
|
|
movs r3, 0x4
|
|
_0807973E:
|
|
ldr r0, [r4]
|
|
adds r1, r5, r2
|
|
adds r0, 0x28
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r8
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
orrs r1, r3
|
|
strb r1, [r0]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, [r4]
|
|
adds r0, 0x36
|
|
adds r0, r7
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bcc _0807973E
|
|
_0807976A:
|
|
movs r5, 0
|
|
adds r0, r6, r7
|
|
lsls r0, 1
|
|
adds r4, r0, 0x2
|
|
_08079772:
|
|
lsls r0, r5, 24
|
|
asrs r0, 24
|
|
adds r0, r4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl ClearWindowTilemap
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x5
|
|
bls _08079772
|
|
ldr r1, =gSprites
|
|
mov r8, r1
|
|
ldr r2, =gUnknown_0203229C
|
|
ldr r0, [r2]
|
|
ldr r6, [sp, 0x60]
|
|
add r6, r9
|
|
lsls r3, r6, 1
|
|
add r10, r3
|
|
adds r0, 0x28
|
|
add r0, r10
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r8
|
|
adds r0, 0x3E
|
|
ldrb r2, [r0]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r4, [r0]
|
|
adds r4, 0x28
|
|
add r4, r10
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r8
|
|
movs r1, 0x14
|
|
strh r1, [r0, 0x2E]
|
|
ldrb r0, [r4]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
add r2, r8
|
|
ldr r5, =gUnknown_0832DE24
|
|
lsls r6, 2
|
|
adds r0, r6, r5
|
|
ldrb r0, [r0]
|
|
adds r3, 0x1
|
|
lsls r3, 1
|
|
adds r3, r5
|
|
ldrb r1, [r3]
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
lsls r0, 3
|
|
adds r0, 0xE
|
|
strh r0, [r2, 0x32]
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
add r1, r8
|
|
adds r5, 0x1
|
|
adds r6, r5
|
|
ldrb r0, [r6]
|
|
lsls r0, 3
|
|
subs r0, 0xC
|
|
strh r0, [r1, 0x36]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r8
|
|
ldr r1, =sub_80D3014
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r2, =gUnknown_0203229C
|
|
ldr r1, [r2]
|
|
adds r1, 0x74
|
|
adds r1, r7
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, [r2]
|
|
adds r0, 0x28
|
|
add r0, r10
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r8
|
|
bl sub_80A6DEC
|
|
ldr r1, =gTradePartyBoxTilemap
|
|
ldr r0, [sp, 0x64]
|
|
subs r2, r0, r7
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r0, 0xF
|
|
str r0, [sp]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
movs r0, 0x1
|
|
bl CopyBgTilemapBufferToVram
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r1, [sp, 0x60]
|
|
cmp r1, 0
|
|
beq _08079868
|
|
b _08079A24
|
|
_08079868:
|
|
bl sub_8079F74
|
|
b _08079A24
|
|
.pool
|
|
_08079884:
|
|
ldr r2, =gSprites
|
|
ldr r1, [sp, 0x60]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
add r0, r10
|
|
adds r1, r4, 0
|
|
adds r1, 0x28
|
|
adds r1, r0
|
|
ldrb r1, [r1]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, =sub_80D3014
|
|
cmp r1, r0
|
|
beq _080798AC
|
|
b _08079A24
|
|
_080798AC:
|
|
movs r0, 0x3
|
|
strb r0, [r3]
|
|
b _08079A24
|
|
.pool
|
|
_080798BC:
|
|
ldr r1, =gTradeMovesBoxTilemap
|
|
ldr r0, [sp, 0x60]
|
|
lsls r2, r0, 4
|
|
subs r2, r0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r0, 0xF
|
|
str r0, [sp]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x4]
|
|
mov r0, r8
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
movs r0, 0x1
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r6, =gSprites
|
|
ldr r1, =gUnknown_0203229C
|
|
ldr r4, [r1]
|
|
ldr r2, [sp, 0x60]
|
|
lsls r3, r2, 1
|
|
adds r3, r2
|
|
lsls r1, r3, 1
|
|
mov r2, r10
|
|
adds r0, r2, r1
|
|
adds r4, 0x28
|
|
adds r4, r0
|
|
ldrb r0, [r4]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r6
|
|
ldr r5, =gUnknown_0832DE24
|
|
lsls r3, 2
|
|
adds r0, r3, r5
|
|
ldrb r0, [r0]
|
|
adds r1, 0x1
|
|
lsls r1, 1
|
|
adds r1, r5
|
|
ldrb r1, [r1]
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
lsls r0, 3
|
|
adds r0, 0xE
|
|
strh r0, [r2, 0x20]
|
|
ldrb r0, [r4]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
adds r5, 0x1
|
|
adds r3, r5
|
|
ldrb r0, [r3]
|
|
lsls r0, 3
|
|
subs r0, 0xC
|
|
strh r0, [r1, 0x22]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
mov r1, r8
|
|
strh r1, [r0, 0x24]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
mov r2, r8
|
|
strh r2, [r0, 0x26]
|
|
add r0, sp, 0x14
|
|
ldr r1, [sp, 0x60]
|
|
mov r2, r10
|
|
bl sub_8079A3C
|
|
lsls r4, r7, 1
|
|
adds r5, r4, 0
|
|
adds r5, 0xE
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
movs r2, 0x50
|
|
subs r2, r0
|
|
lsrs r0, r2, 31
|
|
adds r2, r0
|
|
asrs r2, 1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r0, =gUnknown_0832DEE0
|
|
mov r8, r0
|
|
str r0, [sp]
|
|
movs r1, 0
|
|
str r1, [sp, 0x4]
|
|
add r0, sp, 0x14
|
|
str r0, [sp, 0x8]
|
|
adds r0, r5, 0
|
|
movs r3, 0x4
|
|
bl AddTextPrinterParameterized3
|
|
add r6, sp, 0x28
|
|
adds r0, r6, 0
|
|
ldr r1, [sp, 0x60]
|
|
mov r2, r10
|
|
bl sub_8079AA4
|
|
adds r4, 0xF
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
str r1, [sp, 0x4]
|
|
mov r2, r8
|
|
str r2, [sp, 0x8]
|
|
str r1, [sp, 0xC]
|
|
str r6, [sp, 0x10]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl AddTextPrinterParameterized4
|
|
adds r0, r5, 0
|
|
bl PutWindowTilemap
|
|
adds r0, r5, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
adds r0, r4, 0
|
|
bl PutWindowTilemap
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
b _08079A1A
|
|
.pool
|
|
_080799EC:
|
|
ldr r0, =gUnknown_0832DF99
|
|
lsls r1, r7, 1
|
|
adds r4, r1, r0
|
|
ldrb r2, [r4]
|
|
adds r2, 0x4
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, 0x1
|
|
adds r1, r0
|
|
ldrb r3, [r1]
|
|
adds r3, 0x1
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
ldrb r0, [r4]
|
|
str r0, [sp]
|
|
ldrb r0, [r1]
|
|
str r0, [sp, 0x4]
|
|
adds r0, r7, 0
|
|
mov r1, r10
|
|
bl sub_8079C4C
|
|
ldr r2, =gUnknown_0203229C
|
|
ldr r1, [r2]
|
|
_08079A1A:
|
|
adds r1, 0x74
|
|
adds r1, r7
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_08079A24:
|
|
add sp, 0x68
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_80796B4
|
|
|
|
thumb_func_start sub_8079A3C
|
|
sub_8079A3C: @ 8079A3C
|
|
push {r4,lr}
|
|
sub sp, 0xC
|
|
adds r4, r0, 0
|
|
lsls r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
cmp r1, 0
|
|
bne _08079A64
|
|
movs r0, 0x64
|
|
muls r0, r2
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x2
|
|
mov r2, sp
|
|
bl GetMonData
|
|
b _08079A74
|
|
.pool
|
|
_08079A64:
|
|
movs r0, 0x64
|
|
muls r0, r2
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x2
|
|
mov r2, sp
|
|
bl GetMonData
|
|
_08079A74:
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
bl StringCopy10
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
bl GetFontAttribute
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
bl GetStringWidth
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0xC
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8079A3C
|
|
|
|
thumb_func_start sub_8079AA4
|
|
sub_8079AA4: @ 8079AA4
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x8
|
|
adds r6, r0, 0
|
|
lsls r1, 24
|
|
lsrs r7, r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
lsls r0, r7, 1
|
|
adds r0, r7
|
|
lsls r0, 1
|
|
adds r0, r2, r0
|
|
adds r1, 0x51
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _08079B5C
|
|
movs r4, 0
|
|
movs r0, 0x64
|
|
adds r5, r2, 0
|
|
muls r5, r0
|
|
ldr r0, =gPlayerParty
|
|
mov r9, r0
|
|
ldr r2, =gEnemyParty
|
|
mov r8, r2
|
|
_08079ADE:
|
|
cmp r7, 0
|
|
bne _08079AF8
|
|
adds r1, r4, 0
|
|
adds r1, 0xD
|
|
mov r2, r9
|
|
b _08079AFE
|
|
.pool
|
|
_08079AF8:
|
|
adds r1, r4, 0
|
|
adds r1, 0xD
|
|
mov r2, r8
|
|
_08079AFE:
|
|
adds r0, r5, r2
|
|
movs r2, 0
|
|
bl GetMonData
|
|
lsls r1, r4, 1
|
|
add r1, sp
|
|
strh r0, [r1]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0x3
|
|
bls _08079ADE
|
|
ldr r1, =gText_EmptyString7
|
|
adds r0, r6, 0
|
|
bl StringCopy
|
|
movs r4, 0
|
|
_08079B20:
|
|
lsls r0, r4, 1
|
|
mov r2, sp
|
|
adds r1, r2, r0
|
|
ldrh r0, [r1]
|
|
cmp r0, 0
|
|
beq _08079B3C
|
|
adds r1, r0, 0
|
|
movs r0, 0xD
|
|
muls r1, r0
|
|
ldr r0, =gMoveNames
|
|
adds r1, r0
|
|
adds r0, r6, 0
|
|
bl StringAppend
|
|
_08079B3C:
|
|
adds r0, r6, 0
|
|
ldr r1, =gText_NewLine3
|
|
bl StringAppend
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0x3
|
|
bls _08079B20
|
|
b _08079B6C
|
|
.pool
|
|
_08079B5C:
|
|
ldr r1, =gText_EmptyString7
|
|
adds r0, r6, 0
|
|
bl StringCopy
|
|
ldr r1, =gText_FourQuestionMarks
|
|
adds r0, r6, 0
|
|
bl StringAppend
|
|
_08079B6C:
|
|
add sp, 0x8
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8079AA4
|
|
|
|
thumb_func_start sub_8079B84
|
|
sub_8079B84: @ 8079B84
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
adds r4, r1, 0
|
|
adds r5, r2, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 1
|
|
adds r1, 0x2
|
|
lsls r4, 24
|
|
asrs r4, 24
|
|
adds r4, r1
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x40
|
|
bl GetStringCenterAlignXOffset
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r0, =gUnknown_0832DEE0
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r3, 0x4
|
|
bl AddTextPrinterParameterized3
|
|
adds r0, r4, 0
|
|
bl PutWindowTilemap
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8079B84
|
|
|
|
thumb_func_start sub_8079BE0
|
|
sub_8079BE0: @ 8079BE0
|
|
push {r4-r7,lr}
|
|
sub sp, 0x34
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r7, =gEnemyParty
|
|
cmp r6, 0
|
|
bne _08079BF0
|
|
ldr r7, =gPlayerParty
|
|
_08079BF0:
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x36
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bcs _08079C36
|
|
add r5, sp, 0x14
|
|
_08079C02:
|
|
movs r0, 0x64
|
|
muls r0, r4
|
|
adds r0, r7, r0
|
|
movs r1, 0x2
|
|
mov r2, sp
|
|
bl GetMonData
|
|
adds r0, r5, 0
|
|
mov r1, sp
|
|
bl StringCopy10
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl sub_8079B84
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x36
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bcc _08079C02
|
|
_08079C36:
|
|
add sp, 0x34
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8079BE0
|
|
|
|
thumb_func_start sub_8079C4C
|
|
sub_8079C4C: @ 8079C4C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x1C
|
|
ldr r4, [sp, 0x3C]
|
|
ldr r5, [sp, 0x40]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
lsls r1, 24
|
|
lsrs r7, r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r9, r2
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r10, r3
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r1, =gUnknown_08DDD704
|
|
movs r0, 0x6
|
|
str r0, [sp]
|
|
movs r0, 0x3
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x1
|
|
adds r2, r4, 0
|
|
adds r3, r5, 0
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
movs r0, 0x1
|
|
bl CopyBgTilemapBufferToVram
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
bne _08079CB0
|
|
movs r0, 0x64
|
|
muls r0, r7
|
|
ldr r1, =gPlayerParty
|
|
b _08079CB6
|
|
.pool
|
|
_08079CB0:
|
|
movs r0, 0x64
|
|
muls r0, r7
|
|
ldr r1, =gEnemyParty
|
|
_08079CB6:
|
|
adds r0, r1
|
|
movs r1, 0x38
|
|
movs r2, 0
|
|
bl GetMonData
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r4, =gUnknown_0203229C
|
|
ldr r5, [r4]
|
|
mov r1, r8
|
|
lsls r2, r1, 1
|
|
adds r1, r2, r1
|
|
lsls r1, 1
|
|
adds r1, r7, r1
|
|
adds r0, r5, 0
|
|
adds r0, 0x51
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
str r2, [sp, 0x18]
|
|
cmp r0, 0
|
|
bne _08079D34
|
|
adds r0, r6, 0
|
|
movs r1, 0xA
|
|
bl __udivsi3
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
mov r0, r10
|
|
lsls r3, r0, 5
|
|
cmp r2, 0
|
|
beq _08079D08
|
|
mov r1, r9
|
|
adds r0, r1, r3
|
|
lsls r0, 1
|
|
movs r1, 0x8F
|
|
lsls r1, 4
|
|
adds r5, r1
|
|
adds r1, r5, r0
|
|
adds r0, r2, 0
|
|
adds r0, 0x60
|
|
strh r0, [r1]
|
|
_08079D08:
|
|
ldr r4, [r4]
|
|
mov r1, r9
|
|
adds r0, r1, r3
|
|
adds r0, 0x1
|
|
lsls r0, 1
|
|
movs r3, 0x8F
|
|
lsls r3, 4
|
|
adds r4, r3
|
|
adds r4, r0
|
|
adds r0, r6, 0
|
|
movs r1, 0xA
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x70
|
|
strh r0, [r4]
|
|
b _08079D72
|
|
.pool
|
|
_08079D34:
|
|
mov r1, r10
|
|
lsls r0, r1, 5
|
|
mov r1, r9
|
|
adds r3, r1, r0
|
|
adds r1, r3, 0
|
|
subs r1, 0x20
|
|
lsls r1, 1
|
|
movs r0, 0x8F
|
|
lsls r0, 4
|
|
adds r2, r5, r0
|
|
adds r1, r2, r1
|
|
adds r0, r3, 0
|
|
subs r0, 0x21
|
|
lsls r0, 1
|
|
adds r0, r2, r0
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
adds r1, r3, 0
|
|
subs r1, 0x1F
|
|
lsls r1, 1
|
|
adds r1, r2, r1
|
|
adds r0, r3, 0
|
|
subs r0, 0x24
|
|
lsls r0, 1
|
|
adds r2, r0
|
|
ldrh r2, [r2]
|
|
movs r3, 0x80
|
|
lsls r3, 3
|
|
adds r0, r3, 0
|
|
orrs r0, r2
|
|
strh r0, [r1]
|
|
_08079D72:
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
ldr r0, [sp, 0x18]
|
|
add r0, r8
|
|
lsls r0, 1
|
|
adds r0, r7, r0
|
|
adds r1, 0x51
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _08079D94
|
|
movs r2, 0x90
|
|
lsls r2, 3
|
|
b _08079E16
|
|
.pool
|
|
_08079D94:
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
bne _08079DC0
|
|
movs r0, 0x64
|
|
adds r4, r7, 0
|
|
muls r4, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
bl GetMonGender
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
add r2, sp, 0xC
|
|
bl GetMonData
|
|
b _08079DDE
|
|
.pool
|
|
_08079DC0:
|
|
movs r0, 0x64
|
|
adds r4, r7, 0
|
|
muls r4, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
bl GetMonGender
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
add r2, sp, 0xC
|
|
bl GetMonData
|
|
_08079DDE:
|
|
cmp r5, 0
|
|
beq _08079DF0
|
|
cmp r5, 0xFE
|
|
beq _08079E04
|
|
movs r2, 0x83
|
|
b _08079E16
|
|
.pool
|
|
_08079DF0:
|
|
add r0, sp, 0xC
|
|
movs r1, 0
|
|
bl NameHasGenderSymbol
|
|
lsls r0, 24
|
|
movs r2, 0x83
|
|
cmp r0, 0
|
|
bne _08079E16
|
|
movs r2, 0x84
|
|
b _08079E16
|
|
_08079E04:
|
|
add r0, sp, 0xC
|
|
movs r1, 0xFE
|
|
bl NameHasGenderSymbol
|
|
lsls r0, 24
|
|
movs r2, 0x83
|
|
cmp r0, 0
|
|
bne _08079E16
|
|
movs r2, 0x85
|
|
_08079E16:
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
mov r0, r10
|
|
subs r0, 0x1
|
|
lsls r0, 5
|
|
add r0, r9
|
|
adds r0, 0x1
|
|
lsls r0, 1
|
|
movs r3, 0x8F
|
|
lsls r3, 4
|
|
adds r1, r3
|
|
adds r1, r0
|
|
strh r2, [r1]
|
|
add sp, 0x1C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8079C4C
|
|
|
|
thumb_func_start sub_8079E44
|
|
sub_8079E44: @ 8079E44
|
|
push {r4-r7,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r7, 0
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x36
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r7, r0
|
|
bge _08079E94
|
|
lsls r0, r6, 1
|
|
adds r0, r6
|
|
ldr r1, =gUnknown_0832DE3E
|
|
lsls r0, 2
|
|
adds r5, r0, r1
|
|
ldr r1, =gUnknown_0832DE56
|
|
adds r4, r0, r1
|
|
_08079E6A:
|
|
lsls r1, r7, 24
|
|
lsrs r1, 24
|
|
ldrb r2, [r5]
|
|
ldrb r3, [r5, 0x1]
|
|
ldrb r0, [r4]
|
|
str r0, [sp]
|
|
ldrb r0, [r4, 0x1]
|
|
str r0, [sp, 0x4]
|
|
adds r0, r6, 0
|
|
bl sub_8079C4C
|
|
adds r5, 0x2
|
|
adds r4, 0x2
|
|
adds r7, 0x1
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x36
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r7, r0
|
|
blt _08079E6A
|
|
_08079E94:
|
|
add sp, 0x8
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8079E44
|
|
|
|
thumb_func_start sub_8079EA8
|
|
sub_8079EA8: @ 8079EA8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r12, r0
|
|
movs r7, 0
|
|
ldr r3, =gUnknown_0203229C
|
|
ldr r0, [r3]
|
|
adds r0, 0x36
|
|
add r0, r12
|
|
ldrb r0, [r0]
|
|
cmp r7, r0
|
|
bge _08079F5A
|
|
ldr r6, =gSprites
|
|
mov r9, r3
|
|
mov r1, r12
|
|
lsls r0, r1, 1
|
|
add r0, r12
|
|
lsls r2, r0, 1
|
|
mov r10, r2
|
|
ldr r1, =gUnknown_0832DE24
|
|
movs r2, 0
|
|
mov r8, r2
|
|
lsls r0, 2
|
|
adds r5, r0, r1
|
|
_08079EE0:
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
mov r2, r10
|
|
adds r4, r7, r2
|
|
adds r0, 0x28
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
mov r0, r9
|
|
ldr r3, [r0]
|
|
adds r2, r3, 0
|
|
adds r2, 0x28
|
|
adds r2, r4
|
|
ldrb r0, [r2]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrb r0, [r5]
|
|
lsls r0, 3
|
|
adds r0, 0xE
|
|
strh r0, [r1, 0x20]
|
|
ldrb r0, [r2]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrb r0, [r5, 0x1]
|
|
lsls r0, 3
|
|
subs r0, 0xC
|
|
strh r0, [r1, 0x22]
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
mov r1, r8
|
|
strh r1, [r0, 0x24]
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
mov r2, r8
|
|
strh r2, [r0, 0x26]
|
|
adds r5, 0x2
|
|
adds r7, 0x1
|
|
adds r3, 0x36
|
|
add r3, r12
|
|
ldrb r3, [r3]
|
|
cmp r7, r3
|
|
blt _08079EE0
|
|
_08079F5A:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8079EA8
|
|
|
|
thumb_func_start sub_8079F74
|
|
sub_8079F74: @ 8079F74
|
|
push {lr}
|
|
movs r0, 0x1
|
|
bl rbox_fill_rectangle
|
|
movs r0, 0x1
|
|
bl sub_8079BE0
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8079F74
|
|
|
|
thumb_func_start sub_8079F88
|
|
sub_8079F88: @ 8079F88
|
|
push {r4-r6,lr}
|
|
sub sp, 0xC
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r1, =gTradePartyBoxTilemap
|
|
lsls r2, r4, 4
|
|
subs r2, r4
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r0, 0xF
|
|
str r0, [sp]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x4]
|
|
movs r6, 0
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
movs r0, 0x1
|
|
bl CopyBgTilemapBufferToVram
|
|
adds r0, r4, 0
|
|
bl sub_8079E44
|
|
adds r0, r4, 0
|
|
bl sub_8079BE0
|
|
adds r0, r4, 0
|
|
bl sub_8079EA8
|
|
ldr r0, =gUnknown_0832DE94
|
|
ldr r0, [r0, 0x4]
|
|
ldr r5, =gUnknown_0203229C
|
|
ldr r1, [r5]
|
|
adds r1, 0x72
|
|
ldrh r1, [r1]
|
|
lsls r1, 5
|
|
ldr r2, =0x06010000
|
|
adds r1, r2
|
|
movs r2, 0x18
|
|
bl sub_807A308
|
|
ldr r0, [r5]
|
|
adds r0, 0x74
|
|
adds r0, r4
|
|
strb r6, [r0]
|
|
add sp, 0xC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8079F88
|
|
|
|
thumb_func_start sub_807A000
|
|
sub_807A000: @ 807A000
|
|
push {lr}
|
|
sub sp, 0x8
|
|
movs r0, 0x1E
|
|
str r0, [sp]
|
|
movs r0, 0x14
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
add sp, 0x8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807A000
|
|
|
|
thumb_func_start sub_807A024
|
|
sub_807A024: @ 807A024
|
|
push {lr}
|
|
sub sp, 0x8
|
|
movs r0, 0x1E
|
|
str r0, [sp]
|
|
movs r0, 0x14
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
add sp, 0x8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807A024
|
|
|
|
thumb_func_start sub_807A048
|
|
sub_807A048: @ 807A048
|
|
push {r4-r7,lr}
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
lsls r1, 24
|
|
lsrs r6, r1, 24
|
|
movs r3, 0
|
|
ldr r4, =gUnknown_0203229C
|
|
mov r12, r4
|
|
movs r7, 0x8D
|
|
lsls r7, 4
|
|
_0807A05C:
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
lsls r1, r3, 3
|
|
adds r2, r0, r1
|
|
adds r0, r2, r7
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0807A090
|
|
ldr r3, =0x000008d2
|
|
adds r0, r2, r3
|
|
strh r5, [r0]
|
|
adds r3, 0x2
|
|
adds r0, r2, r3
|
|
strb r6, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, r1
|
|
movs r1, 0x8D
|
|
lsls r1, 4
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
b _0807A096
|
|
.pool
|
|
_0807A090:
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
ble _0807A05C
|
|
_0807A096:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807A048
|
|
|
|
thumb_func_start sub_807A09C
|
|
sub_807A09C: @ 807A09C
|
|
push {lr}
|
|
movs r3, 0
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
movs r2, 0x8D
|
|
lsls r2, 4
|
|
adds r1, r0, r2
|
|
movs r2, 0x3
|
|
_0807A0AC:
|
|
ldrb r0, [r1]
|
|
adds r3, r0
|
|
adds r1, 0x8
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _0807A0AC
|
|
adds r0, r3, 0
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_807A09C
|
|
|
|
thumb_func_start sub_807A0C4
|
|
sub_807A0C4: @ 807A0C4
|
|
push {r4,r5,lr}
|
|
movs r4, 0
|
|
ldr r3, =gUnknown_0203229C
|
|
_0807A0CA:
|
|
ldr r0, [r3]
|
|
lsls r1, r4, 3
|
|
adds r2, r0, r1
|
|
movs r5, 0x8D
|
|
lsls r5, 4
|
|
adds r0, r2, r5
|
|
ldrb r0, [r0]
|
|
adds r5, r1, 0
|
|
cmp r0, 0
|
|
beq _0807A18C
|
|
ldr r0, =0x000008d2
|
|
adds r1, r2, r0
|
|
ldrh r0, [r1]
|
|
cmp r0, 0
|
|
beq _0807A0F8
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
b _0807A18C
|
|
.pool
|
|
_0807A0F8:
|
|
ldr r1, =0x000008d4
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x8
|
|
bhi _0807A17A
|
|
lsls r0, 2
|
|
ldr r1, =_0807A114
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0807A114:
|
|
.4byte _0807A138
|
|
.4byte _0807A14C
|
|
.4byte _0807A154
|
|
.4byte _0807A15C
|
|
.4byte _0807A15C
|
|
.4byte _0807A15C
|
|
.4byte _0807A164
|
|
.4byte _0807A16C
|
|
.4byte _0807A174
|
|
_0807A138:
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0x80
|
|
movs r1, 0x14
|
|
bl sub_8077170
|
|
b _0807A17A
|
|
.pool
|
|
_0807A14C:
|
|
movs r0, 0
|
|
bl sub_807A19C
|
|
b _0807A17A
|
|
_0807A154:
|
|
movs r0, 0x2
|
|
bl sub_807A19C
|
|
b _0807A17A
|
|
_0807A15C:
|
|
movs r0, 0x3
|
|
bl sub_807A19C
|
|
b _0807A17A
|
|
_0807A164:
|
|
movs r0, 0x6
|
|
bl sub_807A19C
|
|
b _0807A17A
|
|
_0807A16C:
|
|
movs r0, 0x7
|
|
bl sub_807A19C
|
|
b _0807A17A
|
|
_0807A174:
|
|
movs r0, 0x8
|
|
bl sub_807A19C
|
|
_0807A17A:
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
adds r1, r5
|
|
movs r2, 0x8D
|
|
lsls r2, 4
|
|
adds r1, r2
|
|
movs r2, 0
|
|
strb r2, [r1]
|
|
adds r3, r0, 0
|
|
_0807A18C:
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _0807A0CA
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807A0C4
|
|
|
|
thumb_func_start sub_807A19C
|
|
sub_807A19C: @ 807A19C
|
|
push {r4,lr}
|
|
sub sp, 0xC
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, =gUnknown_0832DEBC
|
|
lsls r4, 2
|
|
adds r4, r0
|
|
ldr r2, [r4]
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
movs r0, 0xFF
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
str r0, [sp, 0x8]
|
|
movs r1, 0x1
|
|
movs r3, 0
|
|
bl AddTextPrinterParameterized
|
|
movs r0, 0
|
|
movs r1, 0x14
|
|
movs r2, 0xC
|
|
bl sub_8098858
|
|
movs r0, 0
|
|
bl PutWindowTilemap
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
add sp, 0xC
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807A19C
|
|
|
|
thumb_func_start sub_807A1F0
|
|
sub_807A1F0: @ 807A1F0
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
adds r3, r1, 0
|
|
adds r3, 0xA8
|
|
ldrb r1, [r3]
|
|
adds r4, r0, 0
|
|
cmp r1, 0xD
|
|
bhi _0807A22C
|
|
ldr r1, =gUnknown_02032188
|
|
ldrb r0, [r3]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
ldr r0, =0xffff0000
|
|
ldr r2, [sp, 0x4]
|
|
ands r2, r0
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
orrs r2, r0
|
|
str r2, [sp, 0x4]
|
|
ldrb r1, [r3]
|
|
adds r1, 0xC8
|
|
lsls r1, 16
|
|
ldr r0, =0x0000ffff
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
str r0, [sp, 0x4]
|
|
_0807A22C:
|
|
ldr r0, [r4]
|
|
adds r0, 0xA8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x11
|
|
bhi _0807A2FC
|
|
lsls r0, 2
|
|
ldr r1, =_0807A254
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0807A254:
|
|
.4byte _0807A29C
|
|
.4byte _0807A29C
|
|
.4byte _0807A29C
|
|
.4byte _0807A29C
|
|
.4byte _0807A29C
|
|
.4byte _0807A29C
|
|
.4byte _0807A29C
|
|
.4byte _0807A29C
|
|
.4byte _0807A2A0
|
|
.4byte _0807A2B8
|
|
.4byte _0807A2B8
|
|
.4byte _0807A2B8
|
|
.4byte _0807A2B8
|
|
.4byte _0807A2B8
|
|
.4byte _0807A2BC
|
|
.4byte _0807A2C8
|
|
.4byte _0807A2D4
|
|
.4byte _0807A2F0
|
|
_0807A29C:
|
|
mov r0, sp
|
|
b _0807A2D6
|
|
_0807A2A0:
|
|
mov r0, sp
|
|
bl LoadSpriteSheet
|
|
ldr r1, =gUnknown_0203229C
|
|
ldr r1, [r1]
|
|
adds r2, r1, 0
|
|
adds r2, 0x72
|
|
strh r0, [r2]
|
|
b _0807A2DE
|
|
.pool
|
|
_0807A2B8:
|
|
mov r0, sp
|
|
b _0807A2D6
|
|
_0807A2BC:
|
|
ldr r0, =gSpritePalette_TradeScreenText
|
|
bl LoadSpritePalette
|
|
b _0807A2DA
|
|
.pool
|
|
_0807A2C8:
|
|
ldr r0, =gUnknown_0832DC44
|
|
bl LoadSpritePalette
|
|
b _0807A2DA
|
|
.pool
|
|
_0807A2D4:
|
|
ldr r0, =gUnknown_0832DC3C
|
|
_0807A2D6:
|
|
bl LoadSpriteSheet
|
|
_0807A2DA:
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r1, [r0]
|
|
_0807A2DE:
|
|
adds r1, 0xA8
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _0807A2FC
|
|
.pool
|
|
_0807A2F0:
|
|
ldr r0, [r4]
|
|
adds r0, 0xA8
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
movs r0, 0x1
|
|
b _0807A2FE
|
|
_0807A2FC:
|
|
movs r0, 0
|
|
_0807A2FE:
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_807A1F0
|
|
|
|
thumb_func_start sub_807A308
|
|
sub_807A308: @ 807A308
|
|
push {lr}
|
|
sub sp, 0x4
|
|
movs r2, 0x6
|
|
str r2, [sp]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_80C6D80
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807A308
|
|
|
|
thumb_func_start sub_807A320
|
|
sub_807A320: @ 807A320
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
cmp r0, 0
|
|
beq _0807A338
|
|
cmp r0, 0x1
|
|
beq _0807A3CC
|
|
b _0807A458
|
|
_0807A338:
|
|
movs r7, 0
|
|
ldr r1, =gUnknown_0203229C
|
|
ldr r0, [r1]
|
|
adds r0, 0x36
|
|
ldrb r0, [r0]
|
|
cmp r7, r0
|
|
blt _0807A348
|
|
b _0807A458
|
|
_0807A348:
|
|
adds r6, r1, 0
|
|
movs r5, 0
|
|
mov r9, r5
|
|
_0807A34E:
|
|
movs r0, 0x64
|
|
adds r1, r7, 0
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x2D
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
cmp r1, 0x1
|
|
bne _0807A380
|
|
ldr r0, [r6]
|
|
adds r0, 0x45
|
|
adds r0, r5
|
|
mov r2, r9
|
|
strb r2, [r0]
|
|
ldr r0, [r6]
|
|
adds r0, 0x51
|
|
adds r0, r5
|
|
b _0807A3B0
|
|
.pool
|
|
_0807A380:
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
bne _0807A39E
|
|
ldr r0, [r6]
|
|
adds r0, 0x45
|
|
adds r0, r5
|
|
strb r1, [r0]
|
|
ldr r0, [r6]
|
|
adds r0, 0x51
|
|
adds r0, r5
|
|
b _0807A3B0
|
|
_0807A39E:
|
|
ldr r0, [r6]
|
|
adds r0, 0x45
|
|
adds r0, r5
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, [r6]
|
|
adds r0, 0x51
|
|
adds r0, r5
|
|
mov r1, r9
|
|
_0807A3B0:
|
|
strb r1, [r0]
|
|
ldr r0, =gUnknown_0203229C
|
|
adds r5, 0x1
|
|
adds r7, 0x1
|
|
ldr r0, [r0]
|
|
adds r0, 0x36
|
|
add r0, r8
|
|
ldrb r0, [r0]
|
|
cmp r7, r0
|
|
blt _0807A34E
|
|
b _0807A458
|
|
.pool
|
|
_0807A3CC:
|
|
movs r7, 0
|
|
ldr r1, =gUnknown_0203229C
|
|
ldr r0, [r1]
|
|
adds r0, 0x37
|
|
ldrb r0, [r0]
|
|
cmp r7, r0
|
|
bge _0807A458
|
|
adds r6, r1, 0
|
|
movs r5, 0x6
|
|
movs r2, 0
|
|
mov r9, r2
|
|
_0807A3E2:
|
|
movs r0, 0x64
|
|
adds r1, r7, 0
|
|
muls r1, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x2D
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
cmp r1, 0x1
|
|
bne _0807A414
|
|
ldr r0, [r6]
|
|
adds r0, 0x45
|
|
adds r0, r5
|
|
mov r2, r9
|
|
strb r2, [r0]
|
|
ldr r0, [r6]
|
|
adds r0, 0x51
|
|
adds r0, r5
|
|
b _0807A444
|
|
.pool
|
|
_0807A414:
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
bne _0807A432
|
|
ldr r0, [r6]
|
|
adds r0, 0x45
|
|
adds r0, r5
|
|
strb r1, [r0]
|
|
ldr r0, [r6]
|
|
adds r0, 0x51
|
|
adds r0, r5
|
|
b _0807A444
|
|
_0807A432:
|
|
ldr r0, [r6]
|
|
adds r0, 0x45
|
|
adds r0, r5
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, [r6]
|
|
adds r0, 0x51
|
|
adds r0, r5
|
|
mov r1, r9
|
|
_0807A444:
|
|
strb r1, [r0]
|
|
ldr r0, =gUnknown_0203229C
|
|
adds r5, 0x1
|
|
adds r7, 0x1
|
|
ldr r0, [r0]
|
|
adds r0, 0x36
|
|
add r0, r8
|
|
ldrb r0, [r0]
|
|
cmp r7, r0
|
|
blt _0807A3E2
|
|
_0807A458:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807A320
|
|
|
|
thumb_func_start sub_807A468
|
|
sub_807A468: @ 807A468
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _0807A478
|
|
cmp r0, 0x1
|
|
beq _0807A4D8
|
|
b _0807A52C
|
|
_0807A478:
|
|
movs r6, 0
|
|
ldr r1, =gUnknown_0203229C
|
|
ldr r0, [r1]
|
|
adds r0, 0x36
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bcs _0807A52C
|
|
adds r7, r1, 0
|
|
_0807A488:
|
|
movs r0, 0x64
|
|
adds r4, r6, 0
|
|
muls r4, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x3A
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
lsls r0, r5, 16
|
|
asrs r0, 16
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
bl GetHPBarLevel
|
|
ldr r1, [r7]
|
|
adds r1, 0x5D
|
|
adds r1, r6
|
|
strb r0, [r1]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldr r0, [r7]
|
|
adds r0, 0x36
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bcc _0807A488
|
|
b _0807A52C
|
|
.pool
|
|
_0807A4D8:
|
|
movs r6, 0
|
|
ldr r1, =gUnknown_0203229C
|
|
ldr r0, [r1]
|
|
adds r0, 0x37
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bcs _0807A52C
|
|
adds r7, r1, 0
|
|
_0807A4E8:
|
|
movs r0, 0x64
|
|
adds r4, r6, 0
|
|
muls r4, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x3A
|
|
bl GetMonData
|
|
adds r1, r0, 0
|
|
lsls r0, r5, 16
|
|
asrs r0, 16
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
bl GetHPBarLevel
|
|
ldr r1, [r7]
|
|
adds r1, 0x63
|
|
adds r1, r6
|
|
strb r0, [r1]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldr r0, [r7]
|
|
adds r0, 0x37
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bcc _0807A4E8
|
|
_0807A52C:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807A468
|
|
|
|
thumb_func_start sub_807A53C
|
|
sub_807A53C: @ 807A53C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
movs r5, 0
|
|
_0807A544:
|
|
movs r4, 0
|
|
ldr r2, =gUnknown_0203229C
|
|
ldr r0, [r2]
|
|
adds r0, 0x36
|
|
adds r0, r5
|
|
adds r1, r5, 0x1
|
|
mov r8, r1
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bge _0807A596
|
|
adds r6, r2, 0
|
|
lsls r0, r5, 1
|
|
adds r0, r5
|
|
lsls r7, r0, 1
|
|
_0807A560:
|
|
ldr r2, [r6]
|
|
adds r3, r4, r7
|
|
adds r0, r2, 0
|
|
adds r0, 0x28
|
|
adds r0, r3
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gSprites
|
|
adds r0, r1
|
|
adds r2, 0x5D
|
|
adds r2, r3
|
|
ldrb r2, [r2]
|
|
movs r1, 0x4
|
|
subs r1, r2
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
bl sub_80D32C8
|
|
adds r4, 0x1
|
|
ldr r0, [r6]
|
|
adds r0, 0x36
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
blt _0807A560
|
|
_0807A596:
|
|
mov r5, r8
|
|
cmp r5, 0x1
|
|
ble _0807A544
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807A53C
|
|
|
|
thumb_func_start sub_807A5B0
|
|
sub_807A5B0: @ 807A5B0
|
|
push {r4,r5,lr}
|
|
movs r3, 0
|
|
ldr r5, =gSaveBlock1Ptr
|
|
ldr r4, =0x000031a8
|
|
_0807A5B8:
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
adds r2, r0, r3
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
bne _0807A5DA
|
|
ldr r0, =gUnknown_0203229C
|
|
ldr r0, [r0]
|
|
adds r0, 0xA9
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
beq _0807A5DA
|
|
cmp r1, 0x3F
|
|
bhi _0807A5DA
|
|
strb r0, [r2]
|
|
_0807A5DA:
|
|
adds r3, 0x1
|
|
cmp r3, 0xA
|
|
ble _0807A5B8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807A5B0
|
|
|
|
thumb_func_start sub_807A5F4
|
|
sub_807A5F4: @ 807A5F4
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x30
|
|
mov r8, r0
|
|
adds r7, r1, 0
|
|
mov r9, r2
|
|
movs r5, 0
|
|
cmp r5, r7
|
|
bge _0807A62E
|
|
mov r6, sp
|
|
_0807A60C:
|
|
movs r0, 0x64
|
|
adds r4, r5, 0
|
|
muls r4, r0
|
|
add r4, r8
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
str r0, [r6, 0x18]
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
stm r6!, {r0}
|
|
adds r5, 0x1
|
|
cmp r5, r7
|
|
blt _0807A60C
|
|
_0807A62E:
|
|
bl IsNationalPokedexEnabled
|
|
mov r1, r9
|
|
lsls r4, r1, 2
|
|
cmp r0, 0
|
|
bne _0807A65C
|
|
add r0, sp, 0x18
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bne _0807A64C
|
|
movs r0, 0x3
|
|
b _0807A718
|
|
_0807A64C:
|
|
lsls r0, r1, 16
|
|
lsrs r0, 16
|
|
bl sub_806E3F8
|
|
cmp r0, 0
|
|
bne _0807A65C
|
|
movs r0, 0x2
|
|
b _0807A718
|
|
_0807A65C:
|
|
bl GetMultiplayerId
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
ldr r0, =gLinkPlayers
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
subs r0, 0x1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bls _0807A6AC
|
|
ldrb r1, [r1, 0x12]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807A6AC
|
|
add r0, sp, 0x18
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bne _0807A6A0
|
|
movs r0, 0x5
|
|
b _0807A718
|
|
.pool
|
|
_0807A6A0:
|
|
lsls r0, r1, 16
|
|
lsrs r0, 16
|
|
bl sub_806E3F8
|
|
cmp r0, 0
|
|
beq _0807A6D2
|
|
_0807A6AC:
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldr r1, [r0]
|
|
movs r0, 0xCD
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
beq _0807A6BE
|
|
cmp r1, 0x97
|
|
bne _0807A6D6
|
|
_0807A6BE:
|
|
movs r0, 0x64
|
|
mov r1, r9
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
add r0, r8
|
|
movs r1, 0x50
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0807A6D6
|
|
_0807A6D2:
|
|
movs r0, 0x4
|
|
b _0807A718
|
|
_0807A6D6:
|
|
cmp r7, 0
|
|
ble _0807A6F4
|
|
movs r3, 0xCE
|
|
lsls r3, 1
|
|
movs r2, 0
|
|
add r1, sp, 0x18
|
|
adds r5, r7, 0
|
|
_0807A6E4:
|
|
ldr r0, [r1]
|
|
cmp r0, r3
|
|
bne _0807A6EC
|
|
str r2, [r1]
|
|
_0807A6EC:
|
|
adds r1, 0x4
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bne _0807A6E4
|
|
_0807A6F4:
|
|
movs r2, 0
|
|
movs r5, 0
|
|
cmp r2, r7
|
|
bge _0807A70E
|
|
add r1, sp, 0x18
|
|
_0807A6FE:
|
|
cmp r5, r9
|
|
beq _0807A706
|
|
ldr r0, [r1]
|
|
adds r2, r0
|
|
_0807A706:
|
|
adds r1, 0x4
|
|
adds r5, 0x1
|
|
cmp r5, r7
|
|
blt _0807A6FE
|
|
_0807A70E:
|
|
cmp r2, 0
|
|
bne _0807A716
|
|
movs r0, 0x1
|
|
b _0807A718
|
|
_0807A716:
|
|
movs r0, 0
|
|
_0807A718:
|
|
add sp, 0x30
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_807A5F4
|
|
|
|
thumb_func_start sub_807A728
|
|
sub_807A728: @ 807A728
|
|
push {r4-r7,lr}
|
|
ldr r0, =gReceivedRemoteLinkPlayers
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807A7B4
|
|
movs r4, 0
|
|
bl GetMultiplayerId
|
|
ldr r5, =gLinkPlayers
|
|
movs r7, 0x1
|
|
eors r0, r7
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldrb r1, [r1]
|
|
subs r0, r1, 0x1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x2
|
|
bls _0807A7B4
|
|
subs r0, r1, 0x4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bhi _0807A762
|
|
movs r4, 0x2
|
|
_0807A762:
|
|
cmp r4, 0
|
|
ble _0807A7B4
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldrb r1, [r1, 0x12]
|
|
movs r6, 0xF0
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807A7B0
|
|
cmp r4, 0x2
|
|
bne _0807A7B4
|
|
bl GetMultiplayerId
|
|
eors r0, r7
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldrb r1, [r1, 0x12]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807A7B4
|
|
movs r0, 0x2
|
|
b _0807A7B6
|
|
.pool
|
|
_0807A7B0:
|
|
movs r0, 0x1
|
|
b _0807A7B6
|
|
_0807A7B4:
|
|
movs r0, 0
|
|
_0807A7B6:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_807A728
|
|
|
|
thumb_func_start sub_807A7BC
|
|
sub_807A7BC: @ 807A7BC
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r0, 0xCD
|
|
lsls r0, 1
|
|
cmp r2, r0
|
|
beq _0807A7D2
|
|
cmp r2, 0x97
|
|
bne _0807A7DA
|
|
_0807A7D2:
|
|
cmp r1, 0
|
|
bne _0807A7DA
|
|
movs r0, 0x1
|
|
b _0807A7DC
|
|
_0807A7DA:
|
|
movs r0, 0
|
|
_0807A7DC:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_807A7BC
|
|
|
|
thumb_func_start sub_807A7E0
|
|
sub_807A7E0: @ 807A7E0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r4, [sp, 0x20]
|
|
ldr r5, [sp, 0x24]
|
|
ldr r6, [sp, 0x28]
|
|
lsls r2, 16
|
|
lsrs r7, r2, 16
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
mov r8, r3
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
lsls r2, r0, 23
|
|
lsrs r2, 31
|
|
mov r9, r2
|
|
lsls r0, 24
|
|
lsrs r2, r0, 31
|
|
lsls r0, r1, 23
|
|
lsrs r0, 31
|
|
mov r10, r0
|
|
lsls r0, r1, 24
|
|
lsrs r0, 31
|
|
lsls r1, 18
|
|
lsrs r1, 28
|
|
cmp r1, 0x3
|
|
beq _0807A832
|
|
cmp r2, 0
|
|
bne _0807A82A
|
|
movs r0, 0x8
|
|
b _0807A8C0
|
|
_0807A82A:
|
|
cmp r0, 0
|
|
bne _0807A832
|
|
movs r0, 0x9
|
|
b _0807A8C0
|
|
_0807A832:
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_807A7BC
|
|
cmp r0, 0
|
|
bne _0807A898
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r8, r0
|
|
bne _0807A84E
|
|
cmp r7, r8
|
|
beq _0807A86C
|
|
movs r0, 0x2
|
|
b _0807A8C0
|
|
_0807A84E:
|
|
ldr r0, =gBaseStats
|
|
lsls r1, r7, 3
|
|
subs r1, r7
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x6]
|
|
cmp r0, r4
|
|
beq _0807A86C
|
|
ldrb r0, [r1, 0x7]
|
|
cmp r0, r4
|
|
beq _0807A86C
|
|
movs r0, 0x1
|
|
b _0807A8C0
|
|
.pool
|
|
_0807A86C:
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r7, r0
|
|
bne _0807A87C
|
|
cmp r7, r8
|
|
beq _0807A87C
|
|
movs r0, 0x3
|
|
b _0807A8C0
|
|
_0807A87C:
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
bne _0807A8AA
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r7, r0
|
|
bne _0807A88E
|
|
movs r0, 0x6
|
|
b _0807A8C0
|
|
_0807A88E:
|
|
adds r0, r7, 0
|
|
bl sub_806E3F8
|
|
cmp r0, 0
|
|
bne _0807A89C
|
|
_0807A898:
|
|
movs r0, 0x4
|
|
b _0807A8C0
|
|
_0807A89C:
|
|
mov r0, r8
|
|
bl sub_806E3F8
|
|
cmp r0, 0
|
|
bne _0807A8AA
|
|
movs r0, 0x5
|
|
b _0807A8C0
|
|
_0807A8AA:
|
|
mov r0, r10
|
|
cmp r0, 0
|
|
bne _0807A8BE
|
|
adds r0, r7, 0
|
|
bl sub_806E3F8
|
|
cmp r0, 0
|
|
bne _0807A8BE
|
|
movs r0, 0x7
|
|
b _0807A8C0
|
|
_0807A8BE:
|
|
movs r0, 0
|
|
_0807A8C0:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_807A7E0
|
|
|
|
thumb_func_start sub_807A8D0
|
|
sub_807A8D0: @ 807A8D0
|
|
push {r4-r6,lr}
|
|
lsls r1, 16
|
|
lsrs r5, r1, 16
|
|
adds r6, r5, 0
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
lsls r0, 23
|
|
lsrs r4, r0, 31
|
|
adds r0, r2, 0
|
|
adds r1, r3, 0
|
|
bl sub_807A7BC
|
|
cmp r0, 0
|
|
bne _0807A90A
|
|
cmp r4, 0
|
|
bne _0807A90E
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r5, r0
|
|
bne _0807A900
|
|
movs r0, 0x2
|
|
b _0807A910
|
|
_0807A900:
|
|
adds r0, r6, 0
|
|
bl sub_806E3F8
|
|
cmp r0, 0
|
|
bne _0807A90E
|
|
_0807A90A:
|
|
movs r0, 0x1
|
|
b _0807A910
|
|
_0807A90E:
|
|
movs r0, 0
|
|
_0807A910:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_807A8D0
|
|
|
|
thumb_func_start sub_807A918
|
|
sub_807A918: @ 807A918
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x18
|
|
adds r6, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r8, r1
|
|
movs r5, 0
|
|
ldr r0, =gPlayerPartyCount
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bge _0807A95A
|
|
mov r4, sp
|
|
_0807A934:
|
|
movs r0, 0x64
|
|
muls r0, r5
|
|
adds r0, r6, r0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
str r0, [r4]
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
bne _0807A94E
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_0807A94E:
|
|
adds r4, 0x4
|
|
adds r5, 0x1
|
|
ldr r0, =gPlayerPartyCount
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
blt _0807A934
|
|
_0807A95A:
|
|
movs r7, 0
|
|
movs r6, 0x1
|
|
movs r5, 0
|
|
ldr r4, =gLinkPlayers
|
|
b _0807A980
|
|
.pool
|
|
_0807A96C:
|
|
ldrb r0, [r4]
|
|
subs r0, 0x4
|
|
cmp r0, 0x1
|
|
bhi _0807A978
|
|
movs r7, 0
|
|
b _0807A97C
|
|
_0807A978:
|
|
movs r0, 0x1
|
|
orrs r7, r0
|
|
_0807A97C:
|
|
adds r4, 0x1C
|
|
adds r5, 0x1
|
|
_0807A980:
|
|
bl GetLinkPlayerCount
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r5, r0
|
|
blt _0807A96C
|
|
movs r5, 0
|
|
movs r4, 0
|
|
b _0807A9B4
|
|
_0807A992:
|
|
ldr r0, =gLinkPlayers
|
|
adds r2, r4, r0
|
|
ldrb r1, [r2, 0x10]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807A9A2
|
|
movs r6, 0
|
|
_0807A9A2:
|
|
cmp r7, 0
|
|
beq _0807A9B0
|
|
ldrb r0, [r2, 0x10]
|
|
lsrs r0, 4
|
|
cmp r0, 0
|
|
beq _0807A9B0
|
|
movs r6, 0
|
|
_0807A9B0:
|
|
adds r4, 0x1C
|
|
adds r5, 0x1
|
|
_0807A9B4:
|
|
bl GetLinkPlayerCount
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r5, r0
|
|
blt _0807A992
|
|
cmp r6, 0
|
|
bne _0807A9EA
|
|
mov r1, r8
|
|
lsls r0, r1, 2
|
|
mov r1, sp
|
|
adds r4, r1, r0
|
|
ldrh r0, [r4]
|
|
bl sub_806E3F8
|
|
cmp r0, 0
|
|
bne _0807A9E0
|
|
movs r0, 0x2
|
|
b _0807AA1A
|
|
.pool
|
|
_0807A9E0:
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
bne _0807A9EA
|
|
movs r0, 0x3
|
|
b _0807AA1A
|
|
_0807A9EA:
|
|
movs r2, 0
|
|
movs r5, 0
|
|
ldr r0, =gPlayerPartyCount
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bge _0807AA0A
|
|
adds r3, r0, 0
|
|
mov r1, sp
|
|
_0807A9FA:
|
|
cmp r8, r5
|
|
beq _0807AA02
|
|
ldr r0, [r1]
|
|
adds r2, r0
|
|
_0807AA02:
|
|
adds r1, 0x4
|
|
adds r5, 0x1
|
|
cmp r5, r3
|
|
blt _0807A9FA
|
|
_0807AA0A:
|
|
cmp r2, 0
|
|
beq _0807AA18
|
|
movs r0, 0
|
|
b _0807AA1A
|
|
.pool
|
|
_0807AA18:
|
|
movs r0, 0x1
|
|
_0807AA1A:
|
|
add sp, 0x18
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_807A918
|
|
|
|
thumb_func_start sub_807AA28
|
|
sub_807AA28: @ 807AA28
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xA
|
|
bne _0807AA44
|
|
movs r0, 0x17
|
|
bl PlaySE
|
|
movs r0, 0
|
|
strh r0, [r4, 0x2E]
|
|
_0807AA44:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807AA28
|
|
|
|
thumb_func_start sub_807AA4C
|
|
sub_807AA4C: @ 807AA4C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0
|
|
bne _0807AA76
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xA
|
|
bne _0807AA76
|
|
movs r0, 0xC2
|
|
bl PlaySE
|
|
strh r5, [r4, 0x2E]
|
|
_0807AA76:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807AA4C
|
|
|
|
thumb_func_start sub_807AA7C
|
|
sub_807AA7C: @ 807AA7C
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
movs r0, 0x30
|
|
ldrsh r1, [r2, r0]
|
|
cmp r1, 0
|
|
bne _0807AAB2
|
|
ldrh r0, [r2, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xC
|
|
bne _0807AA98
|
|
strh r1, [r2, 0x2E]
|
|
_0807AA98:
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r2, r1]
|
|
lsls r0, 1
|
|
ldr r1, =gUnknown_08338EA4
|
|
adds r0, r1
|
|
ldrb r1, [r2, 0x5]
|
|
lsrs r1, 4
|
|
adds r1, 0x10
|
|
lsls r1, 4
|
|
adds r1, 0x4
|
|
movs r2, 0x2
|
|
bl LoadPalette
|
|
_0807AAB2:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807AA7C
|
|
|
|
thumb_func_start sub_807AABC
|
|
sub_807AABC: @ 807AABC
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r1, [r2, 0x2E]
|
|
adds r1, 0x1
|
|
strh r1, [r2, 0x2E]
|
|
ldrh r0, [r2, 0x26]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x26]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
cmp r1, 0xA
|
|
bne _0807AADA
|
|
adds r0, r2, 0
|
|
bl DestroySprite
|
|
_0807AADA:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807AABC
|
|
|
|
thumb_func_start sub_807AAE0
|
|
sub_807AAE0: @ 807AAE0
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r1, [r2, 0x2E]
|
|
adds r1, 0x1
|
|
strh r1, [r2, 0x2E]
|
|
ldrh r0, [r2, 0x26]
|
|
subs r0, 0x1
|
|
strh r0, [r2, 0x26]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
cmp r1, 0xA
|
|
bne _0807AAFE
|
|
adds r0, r2, 0
|
|
bl DestroySprite
|
|
_0807AAFE:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807AAE0
|
|
|
|
thumb_func_start sub_807AB04
|
|
sub_807AB04: @ 807AB04
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xF
|
|
bne _0807AB20
|
|
movs r0, 0xCC
|
|
bl PlaySE
|
|
movs r0, 0
|
|
strh r0, [r4, 0x2E]
|
|
_0807AB20:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807AB04
|
|
|
|
thumb_func_start sub_807AB28
|
|
sub_807AB28: @ 807AB28
|
|
push {r4,r5,lr}
|
|
sub sp, 0x20
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r0, [r0]
|
|
mov r12, r0
|
|
adds r0, 0xD4
|
|
ldrh r1, [r0]
|
|
lsls r1, 8
|
|
adds r0, 0x2
|
|
ldrh r2, [r0]
|
|
lsls r2, 8
|
|
adds r0, 0x6
|
|
movs r4, 0
|
|
ldrsh r3, [r0, r4]
|
|
adds r0, 0x2
|
|
movs r5, 0
|
|
ldrsh r0, [r0, r5]
|
|
str r0, [sp]
|
|
mov r4, r12
|
|
adds r4, 0xE8
|
|
movs r5, 0
|
|
ldrsh r0, [r4, r5]
|
|
str r0, [sp, 0x4]
|
|
movs r5, 0
|
|
ldrsh r0, [r4, r5]
|
|
str r0, [sp, 0x8]
|
|
mov r0, r12
|
|
adds r0, 0xEC
|
|
ldrh r0, [r0]
|
|
str r0, [sp, 0xC]
|
|
add r0, sp, 0x10
|
|
bl DoBgAffineSet
|
|
add r0, sp, 0x10
|
|
ldrh r1, [r0]
|
|
movs r0, 0x20
|
|
bl SetGpuReg
|
|
add r0, sp, 0x10
|
|
ldrh r1, [r0, 0x2]
|
|
movs r0, 0x22
|
|
bl SetGpuReg
|
|
add r0, sp, 0x10
|
|
ldrh r1, [r0, 0x4]
|
|
movs r0, 0x24
|
|
bl SetGpuReg
|
|
add r0, sp, 0x10
|
|
ldrh r1, [r0, 0x6]
|
|
movs r0, 0x26
|
|
bl SetGpuReg
|
|
ldr r1, [sp, 0x18]
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x28
|
|
bl SetGpuReg
|
|
ldr r1, [sp, 0x18]
|
|
lsrs r1, 16
|
|
movs r0, 0x2A
|
|
bl SetGpuReg
|
|
ldr r1, [sp, 0x1C]
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x2C
|
|
bl SetGpuReg
|
|
ldr r1, [sp, 0x1C]
|
|
lsrs r1, 16
|
|
movs r0, 0x2E
|
|
bl SetGpuReg
|
|
add sp, 0x20
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807AB28
|
|
|
|
thumb_func_start sub_807ABCC
|
|
sub_807ABCC: @ 807ABCC
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_020322A0
|
|
ldr r0, [r4]
|
|
adds r0, 0xE0
|
|
ldrh r1, [r0]
|
|
movs r0, 0x16
|
|
bl SetGpuReg
|
|
ldr r0, [r4]
|
|
adds r0, 0xE2
|
|
ldrh r1, [r0]
|
|
movs r0, 0x14
|
|
bl SetGpuReg
|
|
movs r0, 0
|
|
bl GetGpuReg
|
|
lsls r0, 16
|
|
movs r1, 0xE0
|
|
lsls r1, 11
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _0807AC18
|
|
ldr r0, [r4]
|
|
adds r0, 0xE4
|
|
ldrh r1, [r0]
|
|
movs r0, 0x1A
|
|
bl SetGpuReg
|
|
ldr r0, [r4]
|
|
adds r0, 0xE6
|
|
ldrh r1, [r0]
|
|
movs r0, 0x18
|
|
bl SetGpuReg
|
|
b _0807AC1C
|
|
.pool
|
|
_0807AC18:
|
|
bl sub_807AB28
|
|
_0807AC1C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807ABCC
|
|
|
|
thumb_func_start sub_807AC24
|
|
sub_807AC24: @ 807AC24
|
|
push {lr}
|
|
bl sub_807ABCC
|
|
bl LoadOam
|
|
bl ProcessSpriteCopyRequests
|
|
bl TransferPlttBuffer
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807AC24
|
|
|
|
thumb_func_start sub_807AC3C
|
|
sub_807AC3C: @ 807AC3C
|
|
push {r4,lr}
|
|
ldr r3, =gUnknown_020322A0
|
|
ldr r1, [r3]
|
|
movs r0, 0x8A
|
|
adds r0, r1
|
|
mov r12, r0
|
|
movs r2, 0
|
|
movs r0, 0
|
|
mov r4, r12
|
|
strh r0, [r4]
|
|
adds r1, 0x88
|
|
strb r2, [r1]
|
|
ldr r0, [r3]
|
|
adds r0, 0x89
|
|
strb r2, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807AC3C
|
|
|
|
thumb_func_start sub_807AC64
|
|
sub_807AC64: @ 807AC64
|
|
push {r4,r5,lr}
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r2, [r0]
|
|
adds r1, r2, 0
|
|
adds r1, 0x88
|
|
adds r3, r2, 0
|
|
adds r3, 0x89
|
|
ldrb r1, [r1]
|
|
adds r5, r0, 0
|
|
ldrb r3, [r3]
|
|
cmp r1, r3
|
|
bne _0807AC8C
|
|
adds r1, r2, 0
|
|
adds r1, 0x8A
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
b _0807AC92
|
|
.pool
|
|
_0807AC8C:
|
|
adds r1, r2, 0
|
|
adds r1, 0x8A
|
|
movs r0, 0
|
|
_0807AC92:
|
|
strh r0, [r1]
|
|
adds r4, r5, 0
|
|
ldr r0, [r4]
|
|
adds r0, 0x8A
|
|
ldrh r1, [r0]
|
|
movs r0, 0x96
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bls _0807ACC4
|
|
bl CloseLink
|
|
ldr r0, =CB2_LinkError
|
|
bl SetMainCallback2
|
|
ldr r1, [r4]
|
|
adds r3, r1, 0
|
|
adds r3, 0x8A
|
|
movs r2, 0
|
|
movs r0, 0
|
|
strh r0, [r3]
|
|
adds r1, 0x89
|
|
strb r2, [r1]
|
|
ldr r0, [r4]
|
|
adds r0, 0x88
|
|
strb r2, [r0]
|
|
_0807ACC4:
|
|
ldr r0, [r5]
|
|
adds r1, r0, 0
|
|
adds r1, 0x88
|
|
ldrb r1, [r1]
|
|
adds r0, 0x89
|
|
strb r1, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807AC64
|
|
|
|
thumb_func_start sub_807ACDC
|
|
sub_807ACDC: @ 807ACDC
|
|
push {lr}
|
|
ldr r0, =gReceivedRemoteLinkPlayers
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0807ACF0
|
|
movs r0, 0
|
|
b _0807ACF8
|
|
.pool
|
|
_0807ACF0:
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_0807ACF8:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_807ACDC
|
|
|
|
thumb_func_start sub_807ACFC
|
|
sub_807ACFC: @ 807ACFC
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
movs r4, 0
|
|
mov r8, r4
|
|
cmp r6, 0
|
|
bne _0807AD22
|
|
ldr r0, =gUnknown_02032298
|
|
ldrb r1, [r0]
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r1, r0
|
|
mov r8, r1
|
|
movs r4, 0x1
|
|
_0807AD22:
|
|
cmp r6, 0x1
|
|
bne _0807AD40
|
|
ldr r0, =gUnknown_02032298
|
|
ldrb r0, [r0, 0x1]
|
|
movs r1, 0x6
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r1, r0
|
|
ldr r0, =gEnemyParty
|
|
adds r1, r0
|
|
mov r8, r1
|
|
movs r4, 0x3
|
|
_0807AD40:
|
|
cmp r5, 0
|
|
beq _0807AD58
|
|
cmp r5, 0x1
|
|
beq _0807ADE0
|
|
b _0807AE36
|
|
.pool
|
|
_0807AD58:
|
|
mov r0, r8
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
mov r0, r8
|
|
movs r1, 0
|
|
bl GetMonData
|
|
adds r7, r0, 0
|
|
cmp r6, 0
|
|
bne _0807AD94
|
|
lsls r0, r5, 3
|
|
ldr r1, =gMonFrontPicTable
|
|
adds r0, r1
|
|
ldr r1, =gMonSpritesGfxPtr
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, 0x8]
|
|
adds r2, r5, 0
|
|
adds r3, r7, 0
|
|
bl HandleLoadSpecialPokePic_2
|
|
movs r4, 0
|
|
b _0807ADB2
|
|
.pool
|
|
_0807AD94:
|
|
lsls r0, r5, 3
|
|
ldr r1, =gMonFrontPicTable
|
|
adds r0, r1
|
|
ldr r1, =gMonSpritesGfxPtr
|
|
ldr r2, [r1]
|
|
lsls r4, r6, 1
|
|
adds r1, r4, 0x1
|
|
lsls r1, 2
|
|
adds r2, 0x4
|
|
adds r2, r1
|
|
ldr r1, [r2]
|
|
adds r2, r5, 0
|
|
adds r3, r7, 0
|
|
bl HandleLoadSpecialPokePic_DontHandleDeoxys
|
|
_0807ADB2:
|
|
mov r0, r8
|
|
bl GetMonSpritePalStruct
|
|
bl LoadCompressedObjectPalette
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r1, [r0]
|
|
adds r0, r1, 0
|
|
adds r0, 0xF0
|
|
adds r0, r4
|
|
strh r5, [r0]
|
|
lsls r0, r6, 2
|
|
adds r1, 0x68
|
|
adds r1, r0
|
|
str r7, [r1]
|
|
b _0807AE36
|
|
.pool
|
|
_0807ADE0:
|
|
mov r0, r8
|
|
bl GetMonSpritePalStruct
|
|
ldrh r0, [r0, 0x4]
|
|
adds r1, r4, 0
|
|
bl SetMultiuseSpriteTemplateToPokemon
|
|
ldr r0, =gMultiuseSpriteTemplate
|
|
movs r1, 0x78
|
|
movs r2, 0x3C
|
|
movs r3, 0x6
|
|
bl CreateSprite
|
|
ldr r4, =gUnknown_020322A0
|
|
ldr r1, [r4]
|
|
adds r1, 0x8E
|
|
adds r1, r6
|
|
strb r0, [r1]
|
|
ldr r3, =gSprites
|
|
ldr r0, [r4]
|
|
adds r0, 0x8E
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0x8E
|
|
adds r0, r6
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r3, 0x1C
|
|
adds r0, r3
|
|
ldr r1, =SpriteCallbackDummy
|
|
str r1, [r0]
|
|
_0807AE36:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807ACFC
|
|
|
|
thumb_func_start sub_807AE50
|
|
sub_807AE50: @ 807AE50
|
|
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 _0807AE66
|
|
b _0807B116
|
|
_0807AE66:
|
|
lsls r0, 2
|
|
ldr r1, =_0807AE78
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0807AE78:
|
|
.4byte _0807AEAC
|
|
.4byte _0807AF58
|
|
.4byte _0807AF9C
|
|
.4byte _0807AFBC
|
|
.4byte _0807B006
|
|
.4byte _0807B034
|
|
.4byte _0807B058
|
|
.4byte _0807B070
|
|
.4byte _0807B07A
|
|
.4byte _0807B094
|
|
.4byte _0807B0B0
|
|
.4byte _0807B0D4
|
|
.4byte _0807B0F0
|
|
_0807AEAC:
|
|
ldr r0, =gReceivedRemoteLinkPlayers
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0807AEC0
|
|
ldr r1, =gLinkType
|
|
ldr r2, =0x00001144
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
bl CloseLink
|
|
_0807AEC0:
|
|
ldr r4, =gUnknown_020322A0
|
|
movs r5, 0x80
|
|
lsls r5, 1
|
|
adds r0, r5, 0
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
bl AllocateMonSpritesGfx
|
|
bl ResetTasks
|
|
bl ResetSpriteData
|
|
bl FreeAllSpritePalettes
|
|
ldr r0, =sub_807AC24
|
|
bl SetVBlankCallback
|
|
bl sub_807B170
|
|
bl sub_807AC3C
|
|
ldr r1, =gMain
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
movs r2, 0
|
|
strb r0, [r1]
|
|
ldr r1, [r4]
|
|
adds r0, r1, 0
|
|
adds r0, 0x8C
|
|
strh r2, [r0]
|
|
adds r0, 0x8
|
|
strh r2, [r0]
|
|
adds r1, 0xEE
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r3, [r4]
|
|
adds r0, r3, 0
|
|
adds r0, 0xD4
|
|
movs r1, 0x40
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
strh r2, [r0]
|
|
adds r0, 0x2
|
|
strh r2, [r0]
|
|
adds r1, r3, 0
|
|
adds r1, 0xDC
|
|
movs r0, 0x78
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
movs r0, 0x50
|
|
strh r0, [r1]
|
|
adds r0, r3, 0
|
|
adds r0, 0xE8
|
|
strh r5, [r0]
|
|
adds r0, 0x4
|
|
strh r2, [r0]
|
|
b _0807B116
|
|
.pool
|
|
_0807AF58:
|
|
ldr r0, =gReceivedRemoteLinkPlayers
|
|
ldrb r5, [r0]
|
|
cmp r5, 0
|
|
bne _0807AF90
|
|
ldr r4, =gUnknown_020322A0
|
|
ldr r0, [r4]
|
|
adds r0, 0xFA
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
bl OpenLink
|
|
ldr r1, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r1, r2
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, [r4]
|
|
str r5, [r0, 0x64]
|
|
b _0807B116
|
|
.pool
|
|
_0807AF90:
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r2, r0
|
|
movs r0, 0x4
|
|
strb r0, [r1]
|
|
b _0807B116
|
|
_0807AF9C:
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r1, [r0]
|
|
ldr r0, [r1, 0x64]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x64]
|
|
cmp r0, 0x3C
|
|
bhi _0807AFAC
|
|
b _0807B116
|
|
_0807AFAC:
|
|
movs r0, 0
|
|
str r0, [r1, 0x64]
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r2, r0
|
|
b _0807B0E4
|
|
.pool
|
|
_0807AFBC:
|
|
bl IsLinkMaster
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807AFC8
|
|
b _0807B0DC
|
|
_0807AFC8:
|
|
bl GetLinkPlayerCount_2
|
|
adds r4, r0, 0
|
|
bl sub_800AA48
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
bcc _0807B000
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r1, [r0]
|
|
ldr r0, [r1, 0x64]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x64]
|
|
cmp r0, 0x1E
|
|
bhi _0807AFEA
|
|
b _0807B116
|
|
_0807AFEA:
|
|
bl sub_800A620
|
|
ldr r1, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r1, r2
|
|
b _0807B0E4
|
|
.pool
|
|
_0807B000:
|
|
bl sub_807AC64
|
|
b _0807B116
|
|
_0807B006:
|
|
bl sub_807AC64
|
|
ldr r0, =gReceivedRemoteLinkPlayers
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _0807B014
|
|
b _0807B116
|
|
_0807B014:
|
|
bl IsLinkPlayerDataExchangeComplete
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0807B022
|
|
b _0807B116
|
|
_0807B022:
|
|
ldr r1, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r1, r2
|
|
b _0807B0E4
|
|
.pool
|
|
_0807B034:
|
|
ldr r2, =gUnknown_020322A0
|
|
ldr r0, [r2]
|
|
adds r0, 0x72
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0x73
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0x93
|
|
strb r1, [r0]
|
|
movs r0, 0
|
|
bl sub_807ACFC
|
|
b _0807B0DC
|
|
.pool
|
|
_0807B058:
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl sub_807ACFC
|
|
ldr r1, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r1, r2
|
|
b _0807B0E4
|
|
.pool
|
|
_0807B070:
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl sub_807ACFC
|
|
b _0807B0DC
|
|
_0807B07A:
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
bl sub_807ACFC
|
|
bl sub_807B154
|
|
ldr r1, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r1, r2
|
|
b _0807B0E4
|
|
.pool
|
|
_0807B094:
|
|
bl sub_807BA94
|
|
ldr r0, =gUnknown_08338D18
|
|
bl LoadSpriteSheet
|
|
ldr r0, =gUnknown_08338D20
|
|
bl LoadSpritePalette
|
|
b _0807B0DC
|
|
.pool
|
|
_0807B0B0:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
movs r0, 0
|
|
bl ShowBg
|
|
ldr r1, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r1, r2
|
|
b _0807B0E4
|
|
.pool
|
|
_0807B0D4:
|
|
bl sub_807B140
|
|
bl sub_807BAD8
|
|
_0807B0DC:
|
|
ldr r1, =gMain
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
_0807B0E4:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _0807B116
|
|
.pool
|
|
_0807B0F0:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807B116
|
|
ldr r0, =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807B110
|
|
bl sub_800E0E8
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl CreateWirelessStatusIndicatorSprite
|
|
_0807B110:
|
|
ldr r0, =sub_807EA2C
|
|
bl SetMainCallback2
|
|
_0807B116:
|
|
bl RunTasks
|
|
bl RunTextPrinters
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807AE50
|
|
|
|
thumb_func_start sub_807B140
|
|
sub_807B140: @ 807B140
|
|
push {lr}
|
|
movs r0, 0x5
|
|
bl sub_807B62C
|
|
movs r0, 0
|
|
bl sub_807B62C
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807B140
|
|
|
|
thumb_func_start sub_807B154
|
|
sub_807B154: @ 807B154
|
|
push {lr}
|
|
movs r0, 0
|
|
movs r1, 0xFF
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0
|
|
bl PutWindowTilemap
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807B154
|
|
|
|
thumb_func_start sub_807B170
|
|
sub_807B170: @ 807B170
|
|
push {r4-r6,lr}
|
|
mov r6, r10
|
|
mov r5, r9
|
|
mov r4, r8
|
|
push {r4-r6}
|
|
sub sp, 0x4
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0
|
|
bl ResetBgsAndClearDma3BusyFlags
|
|
ldr r1, =gUnknown_08339014
|
|
movs r0, 0
|
|
movs r2, 0x4
|
|
bl InitBgsFromTemplates
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
movs r5, 0x80
|
|
lsls r5, 4
|
|
adds r0, r5, 0
|
|
bl Alloc
|
|
adds r1, r0, 0
|
|
movs r0, 0
|
|
bl SetBgTilemapBuffer
|
|
adds r0, r5, 0
|
|
bl Alloc
|
|
adds r1, r0, 0
|
|
movs r0, 0x1
|
|
bl SetBgTilemapBuffer
|
|
adds r0, r5, 0
|
|
bl Alloc
|
|
adds r1, r0, 0
|
|
movs r0, 0x3
|
|
bl SetBgTilemapBuffer
|
|
bl DeactivateAllTextPrinters
|
|
ldr r0, =gBattleTextboxTiles
|
|
mov r10, r0
|
|
movs r0, 0
|
|
mov r9, r0
|
|
str r0, [sp]
|
|
mov r1, r10
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl DecompressAndLoadBgGfxUsingHeap
|
|
ldr r0, =gBattleTextboxTilemap
|
|
mov r8, r0
|
|
ldr r4, =gDecompressionBuffer
|
|
adds r1, r4, 0
|
|
bl LZDecompressWram
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
ldr r6, =gBattleTextboxPalette
|
|
adds r0, r6, 0
|
|
movs r1, 0
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
ldr r0, =gUnknown_08338FFC
|
|
bl InitWindows
|
|
mov r0, r9
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
mov r1, r10
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl DecompressAndLoadBgGfxUsingHeap
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
bl LZDecompressWram
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
adds r0, r6, 0
|
|
movs r1, 0
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807B170
|
|
|
|
thumb_func_start sub_807B270
|
|
sub_807B270: @ 807B270
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0xC
|
|
ldr r0, =gMain
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xC
|
|
bls _0807B288
|
|
b _0807B43E
|
|
_0807B288:
|
|
lsls r0, 2
|
|
ldr r1, =_0807B29C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0807B29C:
|
|
.4byte _0807B2D0
|
|
.4byte _0807B43E
|
|
.4byte _0807B43E
|
|
.4byte _0807B43E
|
|
.4byte _0807B43E
|
|
.4byte _0807B3AC
|
|
.4byte _0807B3B6
|
|
.4byte _0807B3C0
|
|
.4byte _0807B3D0
|
|
.4byte _0807B3F0
|
|
.4byte _0807B40C
|
|
.4byte _0807B414
|
|
.4byte _0807B438
|
|
_0807B2D0:
|
|
ldr r1, =gUnknown_02032298
|
|
ldr r0, =gSpecialVar_0x8005
|
|
ldrh r0, [r0]
|
|
movs r6, 0
|
|
strb r0, [r1]
|
|
movs r0, 0x6
|
|
strb r0, [r1, 0x1]
|
|
ldr r4, =gLinkPlayers + 8
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r1, [r0]
|
|
adds r0, r4, 0
|
|
bl StringCopy
|
|
ldr r5, =gEnemyParty
|
|
adds r0, r5, 0
|
|
movs r1, 0x7
|
|
mov r2, sp
|
|
bl GetMonData
|
|
adds r0, r4, 0
|
|
adds r0, 0x1C
|
|
mov r1, sp
|
|
bl StringCopy
|
|
subs r4, 0x8
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x1A]
|
|
adds r0, r5, 0
|
|
movs r1, 0x3
|
|
bl GetMonData
|
|
strh r0, [r4, 0x36]
|
|
ldr r4, =gUnknown_020322A0
|
|
movs r5, 0x80
|
|
lsls r5, 1
|
|
adds r0, r5, 0
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
bl AllocateMonSpritesGfx
|
|
bl ResetTasks
|
|
bl ResetSpriteData
|
|
bl FreeAllSpritePalettes
|
|
ldr r0, =sub_807AC24
|
|
bl SetVBlankCallback
|
|
bl sub_807B170
|
|
ldr r0, [r4]
|
|
adds r0, 0xEE
|
|
mov r1, r8
|
|
strb r1, [r0]
|
|
ldr r2, [r4]
|
|
adds r0, r2, 0
|
|
adds r0, 0x8C
|
|
strh r6, [r0]
|
|
adds r0, 0x8
|
|
strh r6, [r0]
|
|
adds r0, 0x40
|
|
movs r1, 0x40
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
strh r6, [r0]
|
|
adds r0, 0x2
|
|
strh r6, [r0]
|
|
adds r1, r2, 0
|
|
adds r1, 0xDC
|
|
movs r0, 0x78
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
movs r0, 0x50
|
|
strh r0, [r1]
|
|
adds r0, r2, 0
|
|
adds r0, 0xE8
|
|
strh r5, [r0]
|
|
adds r0, 0x4
|
|
strh r6, [r0]
|
|
str r6, [r2, 0x64]
|
|
ldr r0, =gMain
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
movs r1, 0x5
|
|
strb r1, [r0]
|
|
b _0807B43E
|
|
.pool
|
|
_0807B3AC:
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_807ACFC
|
|
b _0807B424
|
|
_0807B3B6:
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl sub_807ACFC
|
|
b _0807B424
|
|
_0807B3C0:
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl sub_807ACFC
|
|
movs r0, 0
|
|
bl ShowBg
|
|
b _0807B424
|
|
_0807B3D0:
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
bl sub_807ACFC
|
|
movs r0, 0
|
|
movs r1, 0xFF
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0
|
|
bl PutWindowTilemap
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
b _0807B424
|
|
_0807B3F0:
|
|
bl sub_807BA94
|
|
ldr r0, =gUnknown_08338D18
|
|
bl LoadSpriteSheet
|
|
ldr r0, =gUnknown_08338D20
|
|
bl LoadSpritePalette
|
|
b _0807B424
|
|
.pool
|
|
_0807B40C:
|
|
movs r0, 0
|
|
bl ShowBg
|
|
b _0807B424
|
|
_0807B414:
|
|
movs r0, 0x5
|
|
bl sub_807B62C
|
|
movs r0, 0
|
|
bl sub_807B62C
|
|
bl sub_807BAD8
|
|
_0807B424:
|
|
ldr r1, =gMain
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _0807B43E
|
|
.pool
|
|
_0807B438:
|
|
ldr r0, =sub_807B60C
|
|
bl SetMainCallback2
|
|
_0807B43E:
|
|
bl RunTasks
|
|
bl RunTextPrinters
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
add sp, 0xC
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807B270
|
|
|
|
thumb_func_start sub_807B464
|
|
sub_807B464: @ 807B464
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x64
|
|
muls r1, r0
|
|
ldr r0, =gPlayerParty
|
|
adds r5, r1, r0
|
|
adds r0, r5, 0
|
|
movs r1, 0x2D
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0807B4B8
|
|
adds r0, r5, 0
|
|
movs r1, 0xB
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl GetMonData
|
|
adds r5, r0, 0
|
|
adds r0, r4, 0
|
|
bl SpeciesToNationalPokedexNum
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl GetSetPokedexFlag
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
adds r2, r5, 0
|
|
bl HandleSetPokedexFlag
|
|
_0807B4B8:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807B464
|
|
|
|
thumb_func_start sub_807B4C4
|
|
sub_807B4C4: @ 807B4C4
|
|
push {lr}
|
|
bl GetMultiplayerId
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807B4C4
|
|
|
|
thumb_func_start sub_807B4D0
|
|
sub_807B4D0: @ 807B4D0
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
adds r4, r1, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r5, 0x64
|
|
mov r1, r9
|
|
muls r1, r5
|
|
ldr r0, =gPlayerParty
|
|
adds r7, r1, r0
|
|
adds r0, r7, 0
|
|
movs r1, 0x40
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
adds r1, r4, 0
|
|
muls r1, r5
|
|
ldr r0, =gEnemyParty
|
|
adds r5, r1, r0
|
|
adds r0, r5, 0
|
|
movs r1, 0x40
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
cmp r6, 0xFF
|
|
beq _0807B52A
|
|
ldr r0, =gSaveBlock1Ptr
|
|
lsls r1, r6, 3
|
|
adds r1, r6
|
|
lsls r1, 2
|
|
ldr r2, =0x00002be0
|
|
adds r1, r2
|
|
ldr r0, [r0]
|
|
adds r0, r1
|
|
bl ClearMailStruct
|
|
_0807B52A:
|
|
ldr r4, =gUnknown_020322A0
|
|
ldr r0, [r4]
|
|
adds r1, r7, 0
|
|
movs r2, 0x64
|
|
bl memcpy
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x64
|
|
bl memcpy
|
|
ldr r1, [r4]
|
|
adds r0, r5, 0
|
|
movs r2, 0x64
|
|
bl memcpy
|
|
movs r1, 0x46
|
|
mov r0, sp
|
|
strb r1, [r0]
|
|
adds r0, r7, 0
|
|
movs r1, 0x2D
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
bne _0807B566
|
|
adds r0, r7, 0
|
|
movs r1, 0x20
|
|
mov r2, sp
|
|
bl SetMonData
|
|
_0807B566:
|
|
mov r0, r8
|
|
cmp r0, 0xFF
|
|
beq _0807B57C
|
|
lsls r1, r0, 3
|
|
add r1, r8
|
|
lsls r1, 2
|
|
ldr r0, =gUnknown_020321C0
|
|
adds r1, r0
|
|
adds r0, r7, 0
|
|
bl GiveMailToMon2
|
|
_0807B57C:
|
|
mov r0, r9
|
|
bl sub_807B464
|
|
ldr r0, =gReceivedRemoteLinkPlayers
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807B58E
|
|
bl sub_807B4C4
|
|
_0807B58E:
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807B4D0
|
|
|
|
thumb_func_start sub_807B5B8
|
|
sub_807B5B8: @ 807B5B8
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_020322A0
|
|
ldr r0, [r4]
|
|
adds r0, 0x93
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _0807B5D0
|
|
cmp r0, 0x2
|
|
beq _0807B5F6
|
|
b _0807B600
|
|
.pool
|
|
_0807B5D0:
|
|
bl sub_800A520
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807B5F6
|
|
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 r1, [r4]
|
|
adds r1, 0x93
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_0807B5F6:
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r0, [r0]
|
|
adds r0, 0x93
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
_0807B600:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807B5B8
|
|
|
|
thumb_func_start sub_807B60C
|
|
sub_807B60C: @ 807B60C
|
|
push {lr}
|
|
bl sub_807BBC8
|
|
bl RunTasks
|
|
bl RunTextPrinters
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807B60C
|
|
|
|
thumb_func_start sub_807B62C
|
|
sub_807B62C: @ 807B62C
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x7
|
|
bls _0807B638
|
|
b _0807BA68
|
|
_0807B638:
|
|
lsls r0, 2
|
|
ldr r1, =_0807B648
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0807B648:
|
|
.4byte _0807B668
|
|
.4byte _0807B6DC
|
|
.4byte _0807B784
|
|
.4byte _0807B7F8
|
|
.4byte _0807B840
|
|
.4byte _0807B90C
|
|
.4byte _0807B924
|
|
.4byte _0807B9FC
|
|
_0807B668:
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r1, [r0]
|
|
adds r2, r1, 0
|
|
adds r2, 0xE4
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
adds r1, 0xE6
|
|
movs r0, 0xB4
|
|
strh r0, [r1]
|
|
movs r1, 0xAA
|
|
lsls r1, 5
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
ldr r1, =0x00005206
|
|
movs r0, 0xC
|
|
bl SetGpuReg
|
|
ldr r0, =gTradeGba2_Pal
|
|
movs r1, 0x10
|
|
movs r2, 0x60
|
|
bl LoadPalette
|
|
ldr r3, =gTradeGba_Gfx
|
|
ldr r4, =0x06004000
|
|
movs r5, 0xA1
|
|
lsls r5, 5
|
|
ldr r1, =0x040000d4
|
|
ldr r6, =0x80000800
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
movs r7, 0x80
|
|
lsls r7, 24
|
|
_0807B6AA:
|
|
str r3, [r1]
|
|
str r4, [r1, 0x4]
|
|
str r6, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
adds r3, r2
|
|
adds r4, r2
|
|
subs r5, r2
|
|
cmp r5, r2
|
|
bhi _0807B6AA
|
|
b _0807BA4C
|
|
.pool
|
|
_0807B6DC:
|
|
ldr r4, =gUnknown_020322A0
|
|
ldr r2, [r4]
|
|
adds r1, r2, 0
|
|
adds r1, 0xE2
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
adds r2, 0xE0
|
|
movs r1, 0xAE
|
|
lsls r1, 1
|
|
strh r1, [r2]
|
|
movs r0, 0x16
|
|
bl SetGpuReg
|
|
ldr r1, =0x00008502
|
|
movs r0, 0xA
|
|
bl SetGpuReg
|
|
ldr r1, =0x00009206
|
|
movs r0, 0xC
|
|
bl SetGpuReg
|
|
ldr r0, [r4]
|
|
adds r0, 0xFA
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807B724
|
|
ldr r1, =gUnknown_083369A0
|
|
b _0807B726
|
|
.pool
|
|
_0807B724:
|
|
ldr r1, =gUnknown_083359A0
|
|
_0807B726:
|
|
ldr r2, =0x06002800
|
|
ldr r0, =0x040000d4
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
ldr r1, =0x80000800
|
|
str r1, [r0, 0x8]
|
|
ldr r0, [r0, 0x8]
|
|
ldr r3, =gTradeGba_Gfx
|
|
movs r4, 0xC0
|
|
lsls r4, 19
|
|
movs r5, 0xA1
|
|
lsls r5, 5
|
|
ldr r1, =0x040000d4
|
|
ldr r6, =0x80000800
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
movs r7, 0x80
|
|
lsls r7, 24
|
|
_0807B74A:
|
|
str r3, [r1]
|
|
str r4, [r1, 0x4]
|
|
str r6, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
adds r3, r2
|
|
adds r4, r2
|
|
subs r5, r2
|
|
cmp r5, r2
|
|
bhi _0807B74A
|
|
str r3, [r1]
|
|
str r4, [r1, 0x4]
|
|
lsrs r0, r5, 1
|
|
orrs r0, r7
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
movs r1, 0x92
|
|
lsls r1, 5
|
|
b _0807B820
|
|
.pool
|
|
_0807B784:
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r2, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0xE0
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
strh r1, [r0]
|
|
adds r0, 0x18
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0807B7C0
|
|
ldr r1, =0x00001241
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_083379A0
|
|
ldr r1, =0x06002800
|
|
bl LZ77UnCompVram
|
|
movs r0, 0x8
|
|
b _0807B7DA
|
|
.pool
|
|
_0807B7C0:
|
|
ldr r1, =0x00001241
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
ldr r1, =gUnknown_0832FFC0
|
|
ldr r2, =0x06002800
|
|
ldr r0, =0x040000d4
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
ldr r1, =0x80000400
|
|
str r1, [r0, 0x8]
|
|
ldr r0, [r0, 0x8]
|
|
movs r0, 0x1
|
|
_0807B7DA:
|
|
movs r1, 0x10
|
|
movs r2, 0
|
|
bl BlendPalettes
|
|
b _0807BA68
|
|
.pool
|
|
_0807B7F8:
|
|
ldr r0, =gUnknown_08337EA0
|
|
movs r1, 0x30
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
ldr r0, =gUnknown_08337EC0
|
|
ldr r1, =0x06004000
|
|
bl LZ77UnCompVram
|
|
ldr r0, =gUnknown_08338550
|
|
ldr r1, =0x06009000
|
|
bl LZ77UnCompVram
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r0, [r0]
|
|
adds r0, 0xE4
|
|
movs r1, 0x50
|
|
strh r1, [r0]
|
|
movs r1, 0xB2
|
|
lsls r1, 5
|
|
_0807B820:
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
b _0807BA68
|
|
.pool
|
|
_0807B840:
|
|
ldr r1, =0x00001441
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
ldr r1, =0x00001287
|
|
movs r0, 0xC
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r3, [r0]
|
|
adds r1, r3, 0
|
|
adds r1, 0xD4
|
|
movs r2, 0
|
|
movs r0, 0x40
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
movs r0, 0x5C
|
|
strh r0, [r1]
|
|
adds r1, 0x12
|
|
movs r0, 0x20
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
strh r0, [r1]
|
|
adds r0, r3, 0
|
|
adds r0, 0xEC
|
|
strh r2, [r0]
|
|
ldr r3, =gUnknown_08332F60
|
|
ldr r4, =0x06004000
|
|
movs r5, 0xA1
|
|
lsls r5, 6
|
|
ldr r1, =0x040000d4
|
|
ldr r6, =0x80000800
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
movs r7, 0x80
|
|
lsls r7, 24
|
|
_0807B88C:
|
|
str r3, [r1]
|
|
str r4, [r1, 0x4]
|
|
str r6, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
adds r3, r2
|
|
adds r4, r2
|
|
subs r5, r2
|
|
cmp r5, r2
|
|
bhi _0807B88C
|
|
str r3, [r1]
|
|
str r4, [r1, 0x4]
|
|
lsrs r0, r5, 1
|
|
orrs r0, r7
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r0, [r0]
|
|
adds r0, 0xFA
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807B8EC
|
|
ldr r1, =gUnknown_083357A0
|
|
ldr r2, =0x06009000
|
|
ldr r0, =0x040000d4
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
ldr r1, =0x80000080
|
|
b _0807BA64
|
|
.pool
|
|
_0807B8EC:
|
|
ldr r1, =gUnknown_083358A0
|
|
ldr r2, =0x06009000
|
|
ldr r0, =0x040000d4
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
ldr r1, =0x80000080
|
|
b _0807BA64
|
|
.pool
|
|
_0807B90C:
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r0, [r0]
|
|
adds r1, r0, 0
|
|
adds r1, 0xE0
|
|
movs r2, 0
|
|
strh r2, [r1]
|
|
adds r0, 0xE2
|
|
strh r2, [r0]
|
|
b _0807BA68
|
|
.pool
|
|
_0807B924:
|
|
ldr r1, =0x00001441
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
ldr r1, =0x00001287
|
|
movs r0, 0xC
|
|
bl SetGpuReg
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r3, [r0]
|
|
adds r1, r3, 0
|
|
adds r1, 0xD4
|
|
movs r2, 0
|
|
movs r0, 0x40
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
movs r0, 0x5C
|
|
strh r0, [r1]
|
|
adds r1, 0x12
|
|
adds r0, 0xA4
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
movs r0, 0x80
|
|
strh r0, [r1]
|
|
subs r1, 0xE
|
|
movs r0, 0x78
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
movs r0, 0x50
|
|
strh r0, [r1]
|
|
adds r0, r3, 0
|
|
adds r0, 0xEC
|
|
strh r2, [r0]
|
|
ldr r3, =gUnknown_08332F60
|
|
ldr r4, =0x06004000
|
|
movs r5, 0xA1
|
|
lsls r5, 6
|
|
ldr r1, =0x040000d4
|
|
ldr r6, =0x80000800
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
movs r7, 0x80
|
|
lsls r7, 24
|
|
_0807B97A:
|
|
str r3, [r1]
|
|
str r4, [r1, 0x4]
|
|
str r6, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
adds r3, r2
|
|
adds r4, r2
|
|
subs r5, r2
|
|
cmp r5, r2
|
|
bhi _0807B97A
|
|
str r3, [r1]
|
|
str r4, [r1, 0x4]
|
|
lsrs r0, r5, 1
|
|
orrs r0, r7
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r0, [r0]
|
|
adds r0, 0xFA
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807B9DC
|
|
ldr r1, =gUnknown_083357A0
|
|
ldr r2, =0x06009000
|
|
ldr r0, =0x040000d4
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
ldr r1, =0x80000080
|
|
b _0807BA64
|
|
.pool
|
|
_0807B9DC:
|
|
ldr r1, =gUnknown_083358A0
|
|
ldr r2, =0x06009000
|
|
ldr r0, =0x040000d4
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
ldr r1, =0x80000080
|
|
b _0807BA64
|
|
.pool
|
|
_0807B9FC:
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r0, [r0]
|
|
adds r1, r0, 0
|
|
adds r1, 0xE4
|
|
movs r2, 0
|
|
strh r2, [r1]
|
|
adds r0, 0xE6
|
|
strh r2, [r0]
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldr r1, =0x00005206
|
|
movs r0, 0xC
|
|
bl SetGpuReg
|
|
ldr r0, =gTradeGba2_Pal
|
|
movs r1, 0x10
|
|
movs r2, 0x60
|
|
bl LoadPalette
|
|
ldr r3, =gTradeGba_Gfx
|
|
ldr r4, =0x06004000
|
|
movs r5, 0xA1
|
|
lsls r5, 5
|
|
ldr r1, =0x040000d4
|
|
ldr r6, =0x80000800
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
movs r7, 0x80
|
|
lsls r7, 24
|
|
_0807BA3A:
|
|
str r3, [r1]
|
|
str r4, [r1, 0x4]
|
|
str r6, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
adds r3, r2
|
|
adds r4, r2
|
|
subs r5, r2
|
|
cmp r5, r2
|
|
bhi _0807BA3A
|
|
_0807BA4C:
|
|
str r3, [r1]
|
|
str r4, [r1, 0x4]
|
|
lsrs r0, r5, 1
|
|
orrs r0, r7
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
ldr r1, =gUnknown_08331F60
|
|
ldr r2, =0x06009000
|
|
ldr r0, =0x040000d4
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
ldr r1, =0x80000800
|
|
_0807BA64:
|
|
str r1, [r0, 0x8]
|
|
ldr r0, [r0, 0x8]
|
|
_0807BA68:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807B62C
|
|
|
|
thumb_func_start sub_807BA94
|
|
sub_807BA94: @ 807BA94
|
|
push {lr}
|
|
ldr r0, =gUnknown_08338D70
|
|
bl LoadSpriteSheet
|
|
ldr r0, =gUnknown_08338DC0
|
|
bl LoadSpriteSheet
|
|
ldr r0, =gUnknown_08338DF4
|
|
bl LoadSpriteSheet
|
|
ldr r0, =gUnknown_08338E6C
|
|
bl LoadSpriteSheet
|
|
ldr r0, =gUnknown_08338D78
|
|
bl LoadSpritePalette
|
|
ldr r0, =gUnknown_08338D80
|
|
bl LoadSpritePalette
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807BA94
|
|
|
|
thumb_func_start sub_807BAD8
|
|
sub_807BAD8: @ 807BAD8
|
|
push {r4,r5,lr}
|
|
sub sp, 0x14
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r0, [r0]
|
|
adds r0, 0xEE
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807BB68
|
|
bl GetMultiplayerId
|
|
lsls r0, 24
|
|
ldr r3, =gStringVar1
|
|
movs r2, 0x80
|
|
lsls r2, 17
|
|
eors r2, r0
|
|
lsrs r2, 24
|
|
lsls r1, r2, 3
|
|
subs r1, r2
|
|
lsls r1, 2
|
|
ldr r0, =gLinkPlayers + 8
|
|
adds r1, r0
|
|
adds r0, r3, 0
|
|
bl StringCopy
|
|
ldr r5, =gUnknown_02032298
|
|
ldrb r0, [r5, 0x1]
|
|
movs r1, 0x6
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r4, 0x64
|
|
muls r0, r4
|
|
ldr r1, =gEnemyParty
|
|
adds r0, r1
|
|
movs r1, 0x2
|
|
mov r2, sp
|
|
bl GetMonData
|
|
ldr r0, =gStringVar3
|
|
mov r1, sp
|
|
bl StringCopy10
|
|
ldrb r0, [r5]
|
|
muls r0, r4
|
|
ldr r1, =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0x2
|
|
mov r2, sp
|
|
bl GetMonData
|
|
ldr r0, =gStringVar2
|
|
mov r1, sp
|
|
bl StringCopy10
|
|
b _0807BBA4
|
|
.pool
|
|
_0807BB68:
|
|
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
|
|
adds r1, r4, 0
|
|
adds r1, 0x2B
|
|
bl StringCopy
|
|
ldr r0, =gStringVar3
|
|
adds r1, r4, 0
|
|
bl StringCopy10
|
|
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, =gStringVar2
|
|
mov r1, sp
|
|
bl StringCopy10
|
|
_0807BBA4:
|
|
add sp, 0x14
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_807BAD8
|
|
|
|
thumb_func_start sub_807BBC8
|
|
sub_807BBC8: @ 807BBC8
|
|
push {lr}
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r0, [r0]
|
|
adds r0, 0xFA
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0807BBE0
|
|
bl sub_807CFC8
|
|
b _0807BBE4
|
|
.pool
|
|
_0807BBE0:
|
|
bl sub_807BBEC
|
|
_0807BBE4:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_807BBC8
|
|
|
|
thumb_func_start sub_807BBEC
|
|
sub_807BBEC: @ 807BBEC
|
|
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 _0807BC04
|
|
bl _0807CFB4
|
|
_0807BC04:
|
|
lsls r0, r5, 2
|
|
ldr r1, =_0807BC1C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0807BC1C:
|
|
.4byte _0807C04C
|
|
.4byte _0807C0C4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807C120
|
|
.4byte _0807C168
|
|
.4byte _0807C1DC
|
|
.4byte _0807CFB4
|
|
.4byte _0807C248
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807C26C
|
|
.4byte _0807C29C
|
|
.4byte _0807C2AE
|
|
.4byte _0807C2D0
|
|
.4byte _0807C318
|
|
.4byte _0807C348
|
|
.4byte _0807C390
|
|
.4byte _0807C3E0
|
|
.4byte _0807C434
|
|
.4byte _0807C4B8
|
|
.4byte _0807C4DC
|
|
.4byte _0807C528
|
|
.4byte _0807C574
|
|
.4byte _0807C5D0
|
|
.4byte _0807C630
|
|
.4byte _0807C644
|
|
.4byte _0807C658
|
|
.4byte _0807C66C
|
|
.4byte _0807C794
|
|
.4byte _0807C864
|
|
.4byte _0807C8EC
|
|
.4byte _0807C964
|
|
.4byte _0807C974
|
|
.4byte _0807C994
|
|
.4byte _0807C9E4
|
|
.4byte _0807CA02
|
|
.4byte _0807CA40
|
|
.4byte _0807CA50
|
|
.4byte _0807CAC8
|
|
.4byte _0807CFB4
|
|
.4byte _0807CAF0
|
|
.4byte _0807CB30
|
|
.4byte _0807CB70
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CB90
|
|
.4byte _0807CBB8
|
|
.4byte _0807CBD4
|
|
.4byte _0807CBF4
|
|
.4byte _0807CC9C
|
|
.4byte _0807CCD0
|
|
.4byte _0807CD1C
|
|
.4byte _0807CDDC
|
|
.4byte _0807CE54
|
|
.4byte _0807CEA0
|
|
.4byte _0807CEB0
|
|
.4byte _0807CEB6
|
|
.4byte _0807CEDC
|
|
.4byte _0807CF38
|
|
.4byte _0807CF5C
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CE18
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807C460
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CFB4
|
|
.4byte _0807CE38
|
|
_0807C04C:
|
|
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 _0807CFB4
|
|
.pool
|
|
_0807C0C4:
|
|
ldr r5, [r7]
|
|
adds r6, r5, 0
|
|
adds r6, 0xE6
|
|
movs r1, 0
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
ble _0807C0F8
|
|
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 _0807CFB4
|
|
.pool
|
|
_0807C0F8:
|
|
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 _0807CFB4
|
|
.pool
|
|
_0807C120:
|
|
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 _0807C14E
|
|
adds r0, r1, 0
|
|
movs r1, 0
|
|
bl PlayCry1
|
|
_0807C14E:
|
|
ldr r3, [r4]
|
|
adds r1, r3, 0
|
|
adds r1, 0x94
|
|
movs r2, 0
|
|
movs r0, 0xB
|
|
bl _0807CE06
|
|
.pool
|
|
_0807C168:
|
|
ldr r1, [r7]
|
|
ldr r0, [r1, 0x64]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x64]
|
|
cmp r0, 0x50
|
|
beq _0807C178
|
|
bl _0807CFB4
|
|
_0807C178:
|
|
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 _0807CFB4
|
|
.pool
|
|
_0807C1DC:
|
|
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 _0807C1FC
|
|
bl _0807CFB4
|
|
_0807C1FC:
|
|
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 _0807CF4C
|
|
.pool
|
|
_0807C248:
|
|
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 _0807CFB4
|
|
.pool
|
|
_0807C26C:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807C27C
|
|
bl _0807CFB4
|
|
_0807C27C:
|
|
movs r0, 0x4
|
|
bl sub_807B62C
|
|
movs r0, 0
|
|
movs r1, 0xFF
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
bl _0807CF48
|
|
.pool
|
|
_0807C29C:
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r1, 0
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl _0807CF44
|
|
_0807C2AE:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807C2BE
|
|
bl _0807CFB4
|
|
_0807C2BE:
|
|
ldr r0, [r7]
|
|
adds r0, 0x94
|
|
movs r1, 0x17
|
|
strh r1, [r0]
|
|
bl _0807CFB4
|
|
.pool
|
|
_0807C2D0:
|
|
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 _0807C2F0
|
|
adds r0, r1, 0
|
|
subs r0, 0x34
|
|
strh r0, [r2]
|
|
b _0807C30C
|
|
.pool
|
|
_0807C2F0:
|
|
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
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
str r2, [r3, 0x64]
|
|
_0807C30C:
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r4, [r0]
|
|
bl _0807CB5C
|
|
.pool
|
|
_0807C318:
|
|
ldr r1, [r7]
|
|
ldr r0, [r1, 0x64]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x64]
|
|
cmp r0, 0x14
|
|
bhi _0807C328
|
|
bl _0807CFB4
|
|
_0807C328:
|
|
bl sub_807AB28
|
|
ldr r0, =gSpriteTemplate_8338E74
|
|
movs r1, 0x78
|
|
movs r2, 0x50
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r1, [r7]
|
|
adds r1, 0x91
|
|
strb r0, [r1]
|
|
ldr r1, [r7]
|
|
bl _0807CF4C
|
|
.pool
|
|
_0807C348:
|
|
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 _0807C368
|
|
bl _0807CFB4
|
|
_0807C368:
|
|
adds r0, r1, 0
|
|
bl DestroySprite
|
|
movs r1, 0xC8
|
|
lsls r1, 3
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
ldr r1, =0x0000040c
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
ldr r1, [r7]
|
|
bl _0807CF4C
|
|
.pool
|
|
_0807C390:
|
|
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
|
|
bne _0807C3B0
|
|
adds r1, r2, 0
|
|
adds r1, 0x94
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
_0807C3B0:
|
|
ldr r0, [r7]
|
|
adds r0, 0xE0
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0xA4
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
beq _0807C3C4
|
|
bl _0807CFB4
|
|
_0807C3C4:
|
|
ldr r0, =gSpriteTemplate_8338DFC
|
|
movs r1, 0x80
|
|
movs r2, 0x41
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r1, [r7]
|
|
adds r1, 0x92
|
|
strb r0, [r1]
|
|
bl _0807CFB4
|
|
.pool
|
|
_0807C3E0:
|
|
ldr r0, =gUnknown_08338D88
|
|
movs r1, 0x80
|
|
movs r2, 0x50
|
|
movs r3, 0x3
|
|
bl CreateSprite
|
|
ldr r4, =gUnknown_020322A0
|
|
ldr r1, [r4]
|
|
adds r1, 0x90
|
|
strb r0, [r1]
|
|
ldr r0, =gSpriteTemplate_8338DC8
|
|
movs r1, 0x80
|
|
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
|
|
ldr r1, =gSprites
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
ldr r1, [r4]
|
|
bl _0807CF4C
|
|
.pool
|
|
_0807C434:
|
|
ldr r2, [r7]
|
|
adds r1, r2, 0
|
|
adds r1, 0xE0
|
|
ldrh r0, [r1]
|
|
subs r0, 0x2
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xA6
|
|
bne _0807C44E
|
|
subs r1, 0x4C
|
|
movs r0, 0xC8
|
|
strh r0, [r1]
|
|
_0807C44E:
|
|
ldr r1, =0x00001241
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
bl _0807CFB4
|
|
.pool
|
|
_0807C460:
|
|
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 r3, 0x22
|
|
ldrsh r1, [r0, r3]
|
|
movs r0, 0x8
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
blt _0807C4A6
|
|
bl _0807CFB4
|
|
_0807C4A6:
|
|
adds r1, r4, 0
|
|
adds r1, 0x94
|
|
movs r0, 0x1D
|
|
strh r0, [r1]
|
|
bl _0807CFB4
|
|
.pool
|
|
_0807C4B8:
|
|
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 _0807CFB4
|
|
.pool
|
|
_0807C4DC:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807C4EC
|
|
bl _0807CFB4
|
|
_0807C4EC:
|
|
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 _0807CF4C
|
|
.pool
|
|
_0807C528:
|
|
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 _0807CF4C
|
|
.pool
|
|
_0807C574:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807C592
|
|
movs r0, 0x2E
|
|
bl PlaySE
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r1, [r0]
|
|
adds r1, 0x94
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
_0807C592:
|
|
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 _0807CFB4
|
|
.pool
|
|
_0807C5D0:
|
|
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 _0807C616
|
|
bl _0807CFB4
|
|
_0807C616:
|
|
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
|
|
bl _0807CF4C
|
|
.pool
|
|
_0807C630:
|
|
ldr r2, =0x0000ffff
|
|
movs r0, 0x1
|
|
movs r1, 0x10
|
|
bl BlendPalettes
|
|
bl _0807CF48
|
|
.pool
|
|
_0807C644:
|
|
ldr r2, =0x0000ffff
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl BlendPalettes
|
|
bl _0807CF48
|
|
.pool
|
|
_0807C658:
|
|
ldr r2, =0x0000ffff
|
|
movs r0, 0x1
|
|
movs r1, 0x10
|
|
bl BlendPalettes
|
|
bl _0807CF48
|
|
.pool
|
|
_0807C66C:
|
|
ldr r5, =gUnknown_020322A0
|
|
ldr r0, [r5]
|
|
adds r0, 0xF0
|
|
ldrh r0, [r0]
|
|
bl IsMonSpriteNotFlipped
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807C6E4
|
|
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 _0807C6FA
|
|
.pool
|
|
_0807C6E4:
|
|
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
|
|
_0807C6FA:
|
|
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, 0x3C
|
|
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, 0xB4
|
|
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 _0807CF4C
|
|
.pool
|
|
_0807C794:
|
|
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 _0807C7DC
|
|
movs r0, 0x2D
|
|
bl PlaySE
|
|
_0807C7DC:
|
|
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 _0807C7FC
|
|
bl _0807CFB4
|
|
_0807C7FC:
|
|
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 r2, =0x0000ffff
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl BlendPalettes
|
|
b _0807CFB4
|
|
.pool
|
|
_0807C864:
|
|
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 _0807C8A6
|
|
b _0807CFB4
|
|
_0807C8A6:
|
|
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 _0807CFB4
|
|
.pool
|
|
_0807C8EC:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807C8FA
|
|
b _0807CFB4
|
|
_0807C8FA:
|
|
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]
|
|
ldr r0, =gUnknown_08338D88
|
|
movs r4, 0x14
|
|
negs r4, r4
|
|
movs r1, 0x80
|
|
adds r2, r4, 0
|
|
movs r3, 0x3
|
|
bl CreateSprite
|
|
ldr r1, [r7]
|
|
adds r1, 0x90
|
|
strb r0, [r1]
|
|
ldr r0, =gSpriteTemplate_8338DC8
|
|
movs r1, 0x80
|
|
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
|
|
ldr r1, =gSprites
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
b _0807CFB4
|
|
.pool
|
|
_0807C964:
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r1, 0
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
b _0807CF44
|
|
_0807C974:
|
|
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 _0807C98C
|
|
b _0807CFB4
|
|
_0807C98C:
|
|
b _0807CF48
|
|
.pool
|
|
_0807C994:
|
|
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, 0x3
|
|
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, 0x3
|
|
strh r1, [r0, 0x26]
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r3, 0x26
|
|
ldrsh r1, [r0, r3]
|
|
movs r6, 0x22
|
|
ldrsh r0, [r0, r6]
|
|
adds r1, r0
|
|
cmp r1, 0x40
|
|
beq _0807C9DA
|
|
b _0807CFB4
|
|
_0807C9DA:
|
|
adds r1, r4, 0
|
|
b _0807CF4C
|
|
.pool
|
|
_0807C9E4:
|
|
ldr r1, [r7]
|
|
adds r5, r1, 0
|
|
adds r5, 0xE0
|
|
ldrh r0, [r5]
|
|
adds r0, 0x2
|
|
strh r0, [r5]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r6, 0x9E
|
|
lsls r6, 1
|
|
cmp r0, r6
|
|
bgt _0807C9FE
|
|
b _0807CFB4
|
|
_0807C9FE:
|
|
strh r6, [r5]
|
|
b _0807CF4C
|
|
_0807CA02:
|
|
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 _0807CFB4
|
|
.pool
|
|
_0807CA40:
|
|
ldr r1, [r7]
|
|
ldr r0, [r1, 0x64]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x64]
|
|
cmp r0, 0xA
|
|
beq _0807CA4E
|
|
b _0807CFB4
|
|
_0807CA4E:
|
|
b _0807CF4C
|
|
_0807CA50:
|
|
ldr r1, [r7]
|
|
adds r2, r1, 0
|
|
adds r2, 0xE0
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r3, 0xAE
|
|
lsls r3, 1
|
|
cmp r0, r3
|
|
ble _0807CA72
|
|
strh r3, [r2]
|
|
adds r1, 0x94
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
_0807CA72:
|
|
ldr r2, [r7]
|
|
adds r0, r2, 0
|
|
adds r0, 0xE0
|
|
movs r3, 0
|
|
ldrsh r1, [r0, r3]
|
|
movs r0, 0xA4
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
beq _0807CA86
|
|
b _0807CFB4
|
|
_0807CA86:
|
|
adds r0, r2, 0
|
|
adds r0, 0xFA
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0807CA92
|
|
b _0807CFB4
|
|
_0807CA92:
|
|
ldr r0, =gSpriteTemplate_8338DFC
|
|
movs r1, 0x80
|
|
movs r2, 0x41
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r1, [r7]
|
|
adds r1, 0x92
|
|
strb r0, [r1]
|
|
ldr r2, =gSprites
|
|
ldr r0, [r7]
|
|
adds r0, 0x92
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, =sub_807AAE0
|
|
str r1, [r0]
|
|
b _0807CFB4
|
|
.pool
|
|
_0807CAC8:
|
|
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 _0807CFB4
|
|
.pool
|
|
_0807CAF0:
|
|
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 _0807CB0E
|
|
b _0807CFB4
|
|
_0807CB0E:
|
|
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 _0807CFB4
|
|
.pool
|
|
_0807CB30:
|
|
ldr r1, [r7]
|
|
adds r2, r1, 0
|
|
adds r2, 0xEA
|
|
ldrh r3, [r2]
|
|
ldr r0, =0x000003ff
|
|
cmp r3, r0
|
|
bhi _0807CB4C
|
|
adds r0, r3, 0
|
|
adds r0, 0x34
|
|
strh r0, [r2]
|
|
b _0807CB5A
|
|
.pool
|
|
_0807CB4C:
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
strh r0, [r2]
|
|
adds r1, 0x94
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
_0807CB5A:
|
|
ldr r4, [r7]
|
|
_0807CB5C:
|
|
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 _0807CFB4
|
|
_0807CB70:
|
|
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 _0807CFB4
|
|
.pool
|
|
_0807CB90:
|
|
ldr r4, =gPaletteFade
|
|
ldrb r1, [r4, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807CB9E
|
|
b _0807CFB4
|
|
_0807CB9E:
|
|
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 _0807CF48
|
|
.pool
|
|
_0807CBB8:
|
|
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 _0807CF44
|
|
.pool
|
|
_0807CBD4:
|
|
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 _0807CBEC
|
|
b _0807CFB4
|
|
_0807CBEC:
|
|
b _0807CF48
|
|
.pool
|
|
_0807CBF4:
|
|
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 _0807CFB4
|
|
.pool
|
|
_0807CC9C:
|
|
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 _0807CF4C
|
|
.pool
|
|
_0807CCD0:
|
|
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 _0807CCEE
|
|
b _0807CFB4
|
|
_0807CCEE:
|
|
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 _0807CF4C
|
|
.pool
|
|
_0807CD1C:
|
|
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 _0807CF4C
|
|
.pool
|
|
_0807CDDC:
|
|
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
|
|
_0807CE06:
|
|
strh r0, [r1]
|
|
str r2, [r3, 0x64]
|
|
b _0807CFB4
|
|
.pool
|
|
_0807CE18:
|
|
ldr r3, [r7]
|
|
ldr r0, [r3, 0x64]
|
|
adds r0, 0x1
|
|
str r0, [r3, 0x64]
|
|
cmp r0, 0x3C
|
|
bhi _0807CE26
|
|
b _0807CFB4
|
|
_0807CE26:
|
|
adds r0, r3, 0
|
|
adds r0, 0x94
|
|
movs r2, 0
|
|
ldr r1, =0x0000010b
|
|
strh r1, [r0]
|
|
str r2, [r3, 0x64]
|
|
b _0807CFB4
|
|
.pool
|
|
_0807CE38:
|
|
bl IsCryFinished
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807CE44
|
|
b _0807CFB4
|
|
_0807CE44:
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r0, [r0]
|
|
adds r0, 0x94
|
|
movs r1, 0x44
|
|
strh r1, [r0]
|
|
b _0807CFB4
|
|
.pool
|
|
_0807CE54:
|
|
ldr r1, [r7]
|
|
ldr r0, [r1, 0x64]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x64]
|
|
cmp r0, 0xA
|
|
bne _0807CE66
|
|
ldr r0, =0x00000173
|
|
bl PlayFanfare
|
|
_0807CE66:
|
|
ldr r1, [r7]
|
|
ldr r0, [r1, 0x64]
|
|
cmp r0, 0xFA
|
|
beq _0807CE70
|
|
b _0807CFB4
|
|
_0807CE70:
|
|
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 _0807CFB4
|
|
.pool
|
|
_0807CEA0:
|
|
ldr r1, [r7]
|
|
ldr r0, [r1, 0x64]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x64]
|
|
cmp r0, 0x3C
|
|
beq _0807CEAE
|
|
b _0807CFB4
|
|
_0807CEAE:
|
|
b _0807CF4C
|
|
_0807CEB0:
|
|
bl sub_807F14C
|
|
b _0807CF48
|
|
_0807CEB6:
|
|
ldr r2, [r7]
|
|
adds r0, r2, 0
|
|
adds r0, 0xEE
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807CEC6
|
|
movs r0, 0x1
|
|
b _0807CFB6
|
|
_0807CEC6:
|
|
ldr r0, =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807CFB4
|
|
adds r1, r2, 0
|
|
b _0807CF4C
|
|
.pool
|
|
_0807CEDC:
|
|
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 _0807CF48
|
|
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 _0807CF48
|
|
.pool
|
|
_0807CF38:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
_0807CF44:
|
|
bl BeginNormalPaletteFade
|
|
_0807CF48:
|
|
ldr r0, =gUnknown_020322A0
|
|
ldr r1, [r0]
|
|
_0807CF4C:
|
|
adds r1, 0x94
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
b _0807CFB4
|
|
.pool
|
|
_0807CF5C:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _0807CFB4
|
|
ldr r0, [r7]
|
|
adds r0, 0xF4
|
|
ldrh r0, [r0]
|
|
bl PlayNewMapMusic
|
|
ldr r0, [r7]
|
|
cmp r0, 0
|
|
beq _0807CFAA
|
|
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]
|
|
_0807CFAA:
|
|
ldr r0, =CB2_ReturnToField
|
|
bl SetMainCallback2
|
|
bl sub_807E784
|
|
_0807CFB4:
|
|
movs r0, 0
|
|
_0807CFB6:
|
|
add sp, 0x14
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_807BBEC
|
|
|
|
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.
|