mirror of
https://github.com/pret/pokeemerald-jp.git
synced 2026-03-21 17:24:33 -05:00
1901 lines
32 KiB
ArmAsm
1901 lines
32 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
.text
|
|
.syntax unified
|
|
|
|
thumb_func_start CreatedHatchedMon
|
|
CreatedHatchedMon: @ 0x08070D68
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0x50
|
|
adds r5, r0, #0
|
|
adds r6, r1, #0
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
str r0, [sp, #0x3c]
|
|
movs r4, #0
|
|
add r7, sp, #0x18
|
|
add r0, sp, #0x30
|
|
mov sb, r0
|
|
movs r1, #0x31
|
|
add r1, sp
|
|
mov sl, r1
|
|
mov r0, sp
|
|
adds r0, #0x32
|
|
str r0, [sp, #0x40]
|
|
mov r1, sp
|
|
adds r1, #0x34
|
|
str r1, [sp, #0x48]
|
|
adds r0, #1
|
|
str r0, [sp, #0x44]
|
|
adds r1, #4
|
|
str r1, [sp, #0x4c]
|
|
_08070DA6:
|
|
adds r1, r4, #0
|
|
adds r1, #0xd
|
|
adds r0, r5, #0
|
|
bl GetMonData
|
|
lsls r1, r4, #1
|
|
add r1, sp
|
|
adds r1, #0x10
|
|
strh r0, [r1]
|
|
adds r0, r4, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #3
|
|
bls _08070DA6
|
|
adds r0, r5, #0
|
|
movs r1, #0
|
|
bl GetMonData
|
|
mov r8, r0
|
|
movs r4, #0
|
|
_08070DCE:
|
|
adds r1, r4, #0
|
|
adds r1, #0x27
|
|
adds r0, r5, #0
|
|
bl GetMonData
|
|
lsls r1, r4, #2
|
|
adds r1, r7, r1
|
|
str r0, [r1]
|
|
adds r0, r4, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #5
|
|
bls _08070DCE
|
|
adds r0, r5, #0
|
|
movs r1, #3
|
|
bl GetMonData
|
|
mov r1, sb
|
|
strb r0, [r1]
|
|
adds r0, r5, #0
|
|
movs r1, #0x25
|
|
bl GetMonData
|
|
mov r1, sl
|
|
strb r0, [r1]
|
|
adds r0, r5, #0
|
|
movs r1, #8
|
|
bl GetMonData
|
|
ldr r1, [sp, #0x40]
|
|
strb r0, [r1]
|
|
adds r0, r5, #0
|
|
movs r1, #0x22
|
|
bl GetMonData
|
|
str r0, [sp, #0x38]
|
|
adds r0, r5, #0
|
|
movs r1, #0x50
|
|
bl GetMonData
|
|
ldr r1, [sp, #0x48]
|
|
strb r0, [r1]
|
|
movs r0, #1
|
|
str r0, [sp]
|
|
mov r0, r8
|
|
str r0, [sp, #4]
|
|
movs r0, #0
|
|
str r0, [sp, #8]
|
|
str r0, [sp, #0xc]
|
|
adds r0, r6, #0
|
|
ldr r1, [sp, #0x3c]
|
|
movs r2, #5
|
|
movs r3, #0x20
|
|
bl CreateMon
|
|
movs r4, #0
|
|
_08070E3E:
|
|
adds r1, r4, #0
|
|
adds r1, #0xd
|
|
lsls r0, r4, #1
|
|
mov r2, sp
|
|
adds r2, r2, r0
|
|
adds r2, #0x10
|
|
adds r0, r6, #0
|
|
bl SetMonData
|
|
adds r0, r4, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #3
|
|
bls _08070E3E
|
|
movs r4, #0
|
|
_08070E5C:
|
|
adds r1, r4, #0
|
|
adds r1, #0x27
|
|
lsls r2, r4, #2
|
|
adds r2, r7, r2
|
|
adds r0, r6, #0
|
|
bl SetMonData
|
|
adds r0, r4, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #5
|
|
bls _08070E5C
|
|
adds r0, r6, #0
|
|
movs r1, #3
|
|
mov r2, sb
|
|
bl SetMonData
|
|
adds r0, r6, #0
|
|
movs r1, #0x25
|
|
mov r2, sl
|
|
bl SetMonData
|
|
adds r0, r6, #0
|
|
movs r1, #8
|
|
ldr r2, [sp, #0x40]
|
|
bl SetMonData
|
|
movs r0, #0x78
|
|
ldr r1, [sp, #0x44]
|
|
strb r0, [r1]
|
|
adds r0, r6, #0
|
|
movs r1, #0x20
|
|
ldr r2, [sp, #0x44]
|
|
bl SetMonData
|
|
adds r0, r6, #0
|
|
movs r1, #0x22
|
|
ldr r2, [sp, #0x4c]
|
|
bl SetMonData
|
|
adds r0, r6, #0
|
|
movs r1, #0x50
|
|
ldr r2, [sp, #0x48]
|
|
bl SetMonData
|
|
adds r0, r5, #0
|
|
adds r1, r6, #0
|
|
movs r2, #0x64
|
|
bl memcpy
|
|
add sp, #0x50
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end CreatedHatchedMon
|
|
|
|
thumb_func_start AddHatchedMonToParty
|
|
AddHatchedMonToParty: @ 0x08070ED0
|
|
push {r4, r5, lr}
|
|
sub sp, #0x14
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
add r4, sp, #0xc
|
|
movs r1, #0x46
|
|
strb r1, [r4]
|
|
movs r1, #0x64
|
|
adds r5, r0, #0
|
|
muls r5, r1, r5
|
|
ldr r0, _08070F84
|
|
adds r5, r5, r0
|
|
ldr r1, _08070F88
|
|
adds r0, r5, #0
|
|
bl CreatedHatchedMon
|
|
adds r0, r5, #0
|
|
movs r1, #0x2d
|
|
adds r2, r4, #0
|
|
bl SetMonData
|
|
adds r0, r5, #0
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x10
|
|
lsrs r4, r4, #0x10
|
|
mov r0, sp
|
|
adds r1, r4, #0
|
|
bl GetSpeciesName
|
|
adds r0, r5, #0
|
|
movs r1, #2
|
|
mov r2, sp
|
|
bl SetMonData
|
|
adds r0, r4, #0
|
|
bl HoennToNationalOrder
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x10
|
|
lsrs r4, r4, #0x10
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl GetSetPokedexFlag
|
|
adds r0, r4, #0
|
|
movs r1, #3
|
|
bl GetSetPokedexFlag
|
|
ldr r1, _08070F8C
|
|
adds r0, r5, #0
|
|
bl GetBoxMonNick
|
|
mov r2, sp
|
|
adds r2, #0xe
|
|
movs r0, #4
|
|
strh r0, [r2]
|
|
adds r0, r5, #0
|
|
movs r1, #0x26
|
|
bl SetMonData
|
|
add r2, sp, #0x10
|
|
movs r0, #0
|
|
strh r0, [r2]
|
|
adds r0, r5, #0
|
|
movs r1, #0x24
|
|
bl SetMonData
|
|
bl GetCurrentRegionMapSectionId
|
|
mov r2, sp
|
|
adds r2, #0x12
|
|
strb r0, [r2]
|
|
adds r0, r5, #0
|
|
movs r1, #0x23
|
|
bl SetMonData
|
|
adds r0, r5, #0
|
|
bl GiveMonInitialMoveset
|
|
adds r0, r5, #0
|
|
bl CalculateMonStats
|
|
add sp, #0x14
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08070F84: .4byte 0x02024190
|
|
_08070F88: .4byte 0x020243E8
|
|
_08070F8C: .4byte 0x02021C40
|
|
thumb_func_end AddHatchedMonToParty
|
|
|
|
thumb_func_start ScriptHatchMon
|
|
ScriptHatchMon: @ 0x08070F90
|
|
push {lr}
|
|
ldr r0, _08070FA0
|
|
ldrb r0, [r0]
|
|
bl AddHatchedMonToParty
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08070FA0: .4byte 0x02037280
|
|
thumb_func_end ScriptHatchMon
|
|
|
|
thumb_func_start sub_08070FA4
|
|
sub_08070FA4: @ 0x08070FA4
|
|
push {r4, r5, lr}
|
|
sub sp, #0x20
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
movs r2, #0x8c
|
|
muls r1, r2, r1
|
|
adds r4, r0, r1
|
|
adds r0, r4, #0
|
|
mov r1, sp
|
|
bl GetMonNick
|
|
adds r0, r4, #0
|
|
adds r0, #0x70
|
|
ldrh r0, [r0]
|
|
cmp r0, #0
|
|
beq _08071010
|
|
adds r5, r4, #0
|
|
adds r5, #0x7c
|
|
mov r0, sp
|
|
adds r1, r5, #0
|
|
bl StringCompare
|
|
adds r4, #0x74
|
|
cmp r0, #0
|
|
bne _08070FE4
|
|
ldr r0, _08071000
|
|
ldr r0, [r0]
|
|
adds r1, r4, #0
|
|
bl StringCompare
|
|
cmp r0, #0
|
|
beq _08071010
|
|
_08070FE4:
|
|
ldr r0, _08071004
|
|
mov r1, sp
|
|
bl StringCopy
|
|
ldr r0, _08071008
|
|
adds r1, r4, #0
|
|
bl StringCopy
|
|
ldr r0, _0807100C
|
|
adds r1, r5, #0
|
|
bl StringCopy
|
|
movs r0, #1
|
|
b _08071012
|
|
.align 2, 0
|
|
_08071000: .4byte 0x03005AF0
|
|
_08071004: .4byte 0x02021C40
|
|
_08071008: .4byte 0x02021C54
|
|
_0807100C: .4byte 0x02021C68
|
|
_08071010:
|
|
movs r0, #0
|
|
_08071012:
|
|
add sp, #0x20
|
|
pop {r4, r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
thumb_func_end sub_08070FA4
|
|
|
|
thumb_func_start sub_0807101C
|
|
sub_0807101C: @ 0x0807101C
|
|
push {lr}
|
|
ldr r0, _08071038
|
|
ldr r0, [r0]
|
|
ldr r1, _0807103C
|
|
adds r0, r0, r1
|
|
ldr r1, _08071040
|
|
ldrb r1, [r1]
|
|
bl sub_08070FA4
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08071038: .4byte 0x03005AEC
|
|
_0807103C: .4byte 0x00003030
|
|
_08071040: .4byte 0x02037280
|
|
thumb_func_end sub_0807101C
|
|
|
|
thumb_func_start EggHatchCreateMonSprite
|
|
EggHatchCreateMonSprite: @ 0x08071044
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
mov sb, r3
|
|
lsls r0, r0, #0x18
|
|
lsrs r3, r0, #0x18
|
|
mov r8, r3
|
|
lsls r1, r1, #0x18
|
|
lsrs r6, r1, #0x18
|
|
lsls r2, r2, #0x18
|
|
lsrs r1, r2, #0x18
|
|
adds r2, r1, #0
|
|
movs r4, #0
|
|
movs r7, #0
|
|
movs r5, #0
|
|
cmp r3, #0
|
|
bne _08071072
|
|
movs r0, #0x64
|
|
muls r1, r0, r1
|
|
ldr r0, _0807108C
|
|
adds r5, r1, r0
|
|
movs r4, #1
|
|
_08071072:
|
|
cmp r3, #1
|
|
bne _08071082
|
|
movs r0, #0x64
|
|
adds r1, r2, #0
|
|
muls r1, r0, r1
|
|
ldr r0, _0807108C
|
|
adds r5, r1, r0
|
|
movs r4, #3
|
|
_08071082:
|
|
cmp r6, #0
|
|
beq _08071090
|
|
cmp r6, #1
|
|
beq _080710E0
|
|
b _0807111A
|
|
.align 2, 0
|
|
_0807108C: .4byte 0x02024190
|
|
_08071090:
|
|
adds r0, r5, #0
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x10
|
|
lsrs r4, r4, #0x10
|
|
adds r0, r5, #0
|
|
movs r1, #0
|
|
bl GetMonData
|
|
adds r3, r0, #0
|
|
lsls r0, r4, #3
|
|
ldr r1, _080710D8
|
|
adds r0, r0, r1
|
|
ldr r1, _080710DC
|
|
ldr r2, [r1]
|
|
mov r6, r8
|
|
lsls r1, r6, #1
|
|
adds r1, #1
|
|
lsls r1, r1, #2
|
|
adds r2, #4
|
|
adds r2, r2, r1
|
|
ldr r1, [r2]
|
|
adds r2, r4, #0
|
|
bl HandleLoadSpecialPokePic_DontHandleDeoxys
|
|
adds r0, r5, #0
|
|
bl GetMonSpritePalStruct
|
|
bl LoadCompressedSpritePalette
|
|
mov r0, sb
|
|
strh r4, [r0]
|
|
b _0807111A
|
|
.align 2, 0
|
|
_080710D8: .4byte 0x082DDA1C
|
|
_080710DC: .4byte 0x02024178
|
|
_080710E0:
|
|
adds r0, r5, #0
|
|
bl GetMonSpritePalStruct
|
|
ldrh r0, [r0, #4]
|
|
adds r1, r4, #0
|
|
bl SetMultiuseSpriteTemplateToPokemon
|
|
ldr r0, _08071128
|
|
movs r1, #0x78
|
|
movs r2, #0x4b
|
|
movs r3, #6
|
|
bl CreateSprite
|
|
lsls r0, r0, #0x18
|
|
lsrs r7, r0, #0x18
|
|
ldr r4, _0807112C
|
|
lsls r1, r7, #4
|
|
adds r1, r1, r7
|
|
lsls r1, r1, #2
|
|
adds r2, r1, r4
|
|
adds r2, #0x3e
|
|
ldrb r0, [r2]
|
|
movs r3, #4
|
|
orrs r0, r3
|
|
strb r0, [r2]
|
|
adds r4, #0x1c
|
|
adds r1, r1, r4
|
|
ldr r0, _08071130
|
|
str r0, [r1]
|
|
_0807111A:
|
|
adds r0, r7, #0
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08071128: .4byte 0x02024640
|
|
_0807112C: .4byte 0x020205AC
|
|
_08071130: .4byte 0x08007141
|
|
thumb_func_end EggHatchCreateMonSprite
|
|
|
|
thumb_func_start VBlankCB_EggHatch
|
|
VBlankCB_EggHatch: @ 0x08071134
|
|
push {lr}
|
|
bl LoadOam
|
|
bl ProcessSpriteCopyRequests
|
|
bl TransferPlttBuffer
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end VBlankCB_EggHatch
|
|
|
|
thumb_func_start EggHatch
|
|
EggHatch: @ 0x08071148
|
|
push {lr}
|
|
bl ScriptContext2_Enable
|
|
ldr r0, _08071164
|
|
movs r1, #0xa
|
|
bl CreateTask
|
|
movs r0, #1
|
|
movs r1, #0
|
|
bl FadeScreen
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08071164: .4byte 0x08071169
|
|
thumb_func_end EggHatch
|
|
|
|
thumb_func_start Task_EggHatch
|
|
Task_EggHatch: @ 0x08071168
|
|
push {r4, lr}
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
ldr r0, _08071198
|
|
ldrb r1, [r0, #7]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08071190
|
|
bl CleanupOverworldWindowsAndTilemaps
|
|
ldr r0, _0807119C
|
|
bl SetMainCallback2
|
|
ldr r1, _080711A0
|
|
ldr r0, _080711A4
|
|
str r0, [r1]
|
|
adds r0, r4, #0
|
|
bl DestroyTask
|
|
_08071190:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08071198: .4byte 0x02037C74
|
|
_0807119C: .4byte 0x080711A9
|
|
_080711A0: .4byte 0x03005B0C
|
|
_080711A4: .4byte 0x080AEA65
|
|
thumb_func_end Task_EggHatch
|
|
|
|
thumb_func_start CB2_EggHatch_0
|
|
CB2_EggHatch_0: @ 0x080711A8
|
|
push {r4, lr}
|
|
sub sp, #4
|
|
ldr r0, _080711C8
|
|
movs r1, #0x87
|
|
lsls r1, r1, #3
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, #8
|
|
bls _080711BC
|
|
b _080713DA
|
|
_080711BC:
|
|
lsls r0, r0, #2
|
|
ldr r1, _080711CC
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080711C8: .4byte 0x03002360
|
|
_080711CC: .4byte 0x080711D0
|
|
_080711D0: @ jump table
|
|
.4byte _080711F4 @ case 0
|
|
.4byte _080712C0 @ case 1
|
|
.4byte _080712D8 @ case 2
|
|
.4byte _08071308 @ case 3
|
|
.4byte _08071328 @ case 4
|
|
.4byte _08071340 @ case 5
|
|
.4byte _08071358 @ case 6
|
|
.4byte _08071374 @ case 7
|
|
.4byte _080713CC @ case 8
|
|
_080711F4:
|
|
movs r0, #0
|
|
movs r1, #0
|
|
bl SetGpuReg
|
|
ldr r4, _080712AC
|
|
movs r0, #0x14
|
|
bl Alloc
|
|
str r0, [r4]
|
|
bl AllocateMonSpritesGfx
|
|
ldr r2, [r4]
|
|
ldr r0, _080712B0
|
|
ldrh r0, [r0]
|
|
movs r1, #0
|
|
strb r0, [r2, #4]
|
|
ldr r0, [r4]
|
|
strb r1, [r0, #7]
|
|
ldr r0, _080712B4
|
|
bl SetVBlankCallback
|
|
bl GetCurrentMapMusic
|
|
ldr r1, _080712B8
|
|
strh r0, [r1]
|
|
bl reset_temp_tile_data_buffers
|
|
movs r0, #0
|
|
bl ResetBgsAndClearDma3BusyFlags
|
|
ldr r1, _080712BC
|
|
movs r0, #0
|
|
movs r2, #2
|
|
bl InitBgsFromTemplates
|
|
movs r0, #1
|
|
movs r1, #0
|
|
movs r2, #0
|
|
bl ChangeBgX
|
|
movs r0, #1
|
|
movs r1, #0
|
|
movs r2, #0
|
|
bl ChangeBgY
|
|
movs r0, #0
|
|
movs r1, #0
|
|
movs r2, #0
|
|
bl ChangeBgX
|
|
movs r0, #0
|
|
movs r1, #0
|
|
movs r2, #0
|
|
bl ChangeBgY
|
|
movs r0, #1
|
|
movs r1, #7
|
|
movs r2, #2
|
|
bl SetBgAttribute
|
|
movs r0, #0x80
|
|
lsls r0, r0, #5
|
|
bl Alloc
|
|
adds r1, r0, #0
|
|
movs r0, #1
|
|
bl SetBgTilemapBuffer
|
|
movs r0, #0x80
|
|
lsls r0, r0, #6
|
|
bl Alloc
|
|
adds r1, r0, #0
|
|
movs r0, #0
|
|
bl SetBgTilemapBuffer
|
|
bl DeactivateAllTextPrinters
|
|
bl ResetPaletteFade
|
|
bl FreeAllSpritePalettes
|
|
bl ResetSpriteData
|
|
bl ResetTasks
|
|
bl ScanlineEffect_Stop
|
|
bl m4aSoundVSyncOn
|
|
b _080713AA
|
|
.align 2, 0
|
|
_080712AC: .4byte 0x03000DE0
|
|
_080712B0: .4byte 0x02037280
|
|
_080712B4: .4byte 0x08071135
|
|
_080712B8: .4byte 0x02037282
|
|
_080712BC: .4byte 0x082FCA5C
|
|
_080712C0:
|
|
ldr r0, _080712D0
|
|
bl InitWindows
|
|
ldr r0, _080712D4
|
|
ldr r1, [r0]
|
|
movs r0, #0
|
|
strb r0, [r1, #8]
|
|
b _080713AA
|
|
.align 2, 0
|
|
_080712D0: .4byte 0x082FCA64
|
|
_080712D4: .4byte 0x03000DE0
|
|
_080712D8:
|
|
movs r1, #0x8c
|
|
lsls r1, r1, #0x14
|
|
movs r0, #0
|
|
str r0, [sp]
|
|
movs r2, #0
|
|
movs r3, #0
|
|
bl DecompressAndLoadBgGfxUsingHeap
|
|
ldr r1, _08071300
|
|
movs r0, #0
|
|
movs r2, #0
|
|
movs r3, #0
|
|
bl CopyToBgTilemapBuffer
|
|
ldr r0, _08071304
|
|
movs r1, #0
|
|
movs r2, #0x20
|
|
bl LoadCompressedPalette
|
|
b _080713AA
|
|
.align 2, 0
|
|
_08071300: .4byte 0x08C00530
|
|
_08071304: .4byte 0x08C004EC
|
|
_08071308:
|
|
ldr r0, _0807131C
|
|
bl LoadSpriteSheet
|
|
ldr r0, _08071320
|
|
bl LoadSpriteSheet
|
|
ldr r0, _08071324
|
|
bl LoadSpritePalette
|
|
b _080713AA
|
|
.align 2, 0
|
|
_0807131C: .4byte 0x082FC9DC
|
|
_08071320: .4byte 0x082FC9E4
|
|
_08071324: .4byte 0x082FC9EC
|
|
_08071328:
|
|
movs r0, #0
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r0, _0807133C
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #4]
|
|
bl AddHatchedMonToParty
|
|
b _080713AA
|
|
.align 2, 0
|
|
_0807133C: .4byte 0x03000DE0
|
|
_08071340:
|
|
ldr r0, _08071354
|
|
ldr r3, [r0]
|
|
ldrb r2, [r3, #4]
|
|
adds r3, #0xc
|
|
movs r0, #0
|
|
movs r1, #0
|
|
bl EggHatchCreateMonSprite
|
|
b _080713AA
|
|
.align 2, 0
|
|
_08071354: .4byte 0x03000DE0
|
|
_08071358:
|
|
ldr r4, _08071370
|
|
ldr r3, [r4]
|
|
ldrb r2, [r3, #4]
|
|
adds r3, #0xc
|
|
movs r0, #0
|
|
movs r1, #1
|
|
bl EggHatchCreateMonSprite
|
|
ldr r1, [r4]
|
|
strb r0, [r1, #1]
|
|
b _080713AA
|
|
.align 2, 0
|
|
_08071370: .4byte 0x03000DE0
|
|
_08071374:
|
|
movs r1, #0x82
|
|
lsls r1, r1, #5
|
|
movs r0, #0
|
|
bl SetGpuReg
|
|
ldr r0, _080713BC
|
|
movs r1, #0x10
|
|
movs r2, #0xa0
|
|
bl LoadPalette
|
|
ldr r1, _080713C0
|
|
movs r2, #0x98
|
|
lsls r2, r2, #5
|
|
movs r0, #1
|
|
movs r3, #0
|
|
bl LoadBgTiles
|
|
ldr r1, _080713C4
|
|
movs r2, #0x80
|
|
lsls r2, r2, #5
|
|
movs r0, #1
|
|
movs r3, #0
|
|
bl CopyToBgTilemapBuffer
|
|
movs r0, #1
|
|
bl CopyBgTilemapBufferToVram
|
|
_080713AA:
|
|
ldr r1, _080713C8
|
|
movs r0, #0x87
|
|
lsls r0, r0, #3
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, #1
|
|
strb r0, [r1]
|
|
b _080713DA
|
|
.align 2, 0
|
|
_080713BC: .4byte 0x08305D24
|
|
_080713C0: .4byte 0x08305D84
|
|
_080713C4: .4byte 0x08304D04
|
|
_080713C8: .4byte 0x03002360
|
|
_080713CC:
|
|
ldr r0, _080713F8
|
|
bl SetMainCallback2
|
|
ldr r0, _080713FC
|
|
ldr r1, [r0]
|
|
movs r0, #0
|
|
strb r0, [r1, #2]
|
|
_080713DA:
|
|
bl RunTasks
|
|
bl RunTextPrinters
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
add sp, #4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080713F8: .4byte 0x08071499
|
|
_080713FC: .4byte 0x03000DE0
|
|
thumb_func_end CB2_EggHatch_0
|
|
|
|
thumb_func_start EggHatchSetMonNickname
|
|
EggHatchSetMonNickname: @ 0x08071400
|
|
push {lr}
|
|
ldr r0, _0807142C
|
|
ldrh r1, [r0]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _08071430
|
|
adds r0, r0, r1
|
|
ldr r2, _08071434
|
|
movs r1, #2
|
|
bl SetMonData
|
|
bl FreeMonSpritesGfx
|
|
ldr r0, _08071438
|
|
ldr r0, [r0]
|
|
bl Free
|
|
ldr r0, _0807143C
|
|
bl SetMainCallback2
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807142C: .4byte 0x02037280
|
|
_08071430: .4byte 0x02024190
|
|
_08071434: .4byte 0x02021C68
|
|
_08071438: .4byte 0x03000DE0
|
|
_0807143C: .4byte 0x08085A31
|
|
thumb_func_end EggHatchSetMonNickname
|
|
|
|
thumb_func_start Task_EggHatchPlayBGM
|
|
Task_EggHatchPlayBGM: @ 0x08071440
|
|
push {r4, r5, lr}
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
ldr r1, _08071490
|
|
lsls r0, r5, #2
|
|
adds r0, r0, r5
|
|
lsls r0, r0, #3
|
|
adds r4, r0, r1
|
|
movs r1, #8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, #0
|
|
bne _08071460
|
|
bl StopMapMusic
|
|
bl PlayRainStoppingSoundEffect
|
|
_08071460:
|
|
movs r1, #8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, #1
|
|
bne _08071470
|
|
movs r0, #0xbc
|
|
lsls r0, r0, #1
|
|
bl PlayBGM
|
|
_08071470:
|
|
movs r1, #8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, #0x3c
|
|
ble _08071484
|
|
ldr r0, _08071494
|
|
bl PlayBGM
|
|
adds r0, r5, #0
|
|
bl DestroyTask
|
|
_08071484:
|
|
ldrh r0, [r4, #8]
|
|
adds r0, #1
|
|
strh r0, [r4, #8]
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08071490: .4byte 0x03005B60
|
|
_08071494: .4byte 0x00000179
|
|
thumb_func_end Task_EggHatchPlayBGM
|
|
|
|
thumb_func_start CB2_EggHatch_1
|
|
CB2_EggHatch_1: @ 0x08071498
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
sub sp, #0xc
|
|
ldr r1, _080714BC
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, #2]
|
|
adds r5, r1, #0
|
|
cmp r0, #0xc
|
|
bls _080714B0
|
|
b _08071816
|
|
_080714B0:
|
|
lsls r0, r0, #2
|
|
ldr r1, _080714C0
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080714BC: .4byte 0x03000DE0
|
|
_080714C0: .4byte 0x080714C4
|
|
_080714C4: @ jump table
|
|
.4byte _080714F8 @ case 0
|
|
.4byte _08071544 @ case 1
|
|
.4byte _0807156C @ case 2
|
|
.4byte _080715A4 @ case 3
|
|
.4byte _080715FC @ case 4
|
|
.4byte _08071628 @ case 5
|
|
.4byte _0807168C @ case 6
|
|
.4byte _0807169A @ case 7
|
|
.4byte _080716A8 @ case 8
|
|
.4byte _080716EC @ case 9
|
|
.4byte _0807172C @ case 10
|
|
.4byte _080717C4 @ case 11
|
|
.4byte _080717E4 @ case 12
|
|
_080714F8:
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
movs r1, #0
|
|
str r1, [sp]
|
|
movs r2, #0x10
|
|
movs r3, #0
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, _08071538
|
|
movs r1, #0x78
|
|
movs r2, #0x4b
|
|
movs r3, #5
|
|
bl CreateSprite
|
|
ldr r4, _0807153C
|
|
ldr r1, [r4]
|
|
strb r0, [r1]
|
|
movs r0, #0
|
|
bl ShowBg
|
|
movs r0, #1
|
|
bl ShowBg
|
|
ldr r1, [r4]
|
|
ldrb r0, [r1, #2]
|
|
adds r0, #1
|
|
strb r0, [r1, #2]
|
|
ldr r0, _08071540
|
|
movs r1, #5
|
|
bl CreateTask
|
|
b _08071816
|
|
.align 2, 0
|
|
_08071538: .4byte 0x082FC9F4
|
|
_0807153C: .4byte 0x03000DE0
|
|
_08071540: .4byte 0x08071441
|
|
_08071544:
|
|
ldr r0, _08071568
|
|
ldrb r1, [r0, #7]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #0
|
|
beq _08071556
|
|
b _08071816
|
|
_08071556:
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, #8]
|
|
movs r1, #0
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, [r5]
|
|
strb r4, [r0, #3]
|
|
ldr r1, [r5]
|
|
b _080717D8
|
|
.align 2, 0
|
|
_08071568: .4byte 0x02037C74
|
|
_0807156C:
|
|
ldr r1, [r5]
|
|
ldrb r0, [r1, #3]
|
|
adds r0, #1
|
|
strb r0, [r1, #3]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0x1e
|
|
bhi _0807157E
|
|
b _08071816
|
|
_0807157E:
|
|
ldr r1, [r5]
|
|
ldrb r0, [r1, #2]
|
|
adds r0, #1
|
|
strb r0, [r1, #2]
|
|
ldr r2, _0807159C
|
|
ldr r0, [r5]
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, #0x1c
|
|
adds r0, r0, r2
|
|
ldr r1, _080715A0
|
|
str r1, [r0]
|
|
b _08071816
|
|
.align 2, 0
|
|
_0807159C: .4byte 0x020205AC
|
|
_080715A0: .4byte 0x08071845
|
|
_080715A4:
|
|
ldr r4, _080715F0
|
|
ldr r2, [r5]
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r1, r4, #0
|
|
adds r1, #0x1c
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
ldr r0, _080715F4
|
|
cmp r1, r0
|
|
beq _080715C0
|
|
b _08071816
|
|
_080715C0:
|
|
ldrb r1, [r2, #4]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _080715F8
|
|
adds r0, r0, r1
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
lsls r0, r0, #0x10
|
|
lsrs r7, r0, #0x10
|
|
ldr r0, [r5]
|
|
ldrb r1, [r0, #1]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
adds r1, r7, #0
|
|
movs r2, #0
|
|
movs r3, #1
|
|
bl DoMonFrontSpriteAnimation
|
|
ldr r1, [r5]
|
|
b _080717D8
|
|
.align 2, 0
|
|
_080715F0: .4byte 0x020205AC
|
|
_080715F4: .4byte 0x08007141
|
|
_080715F8: .4byte 0x02024190
|
|
_080715FC:
|
|
ldr r2, _08071620
|
|
ldr r3, [r5]
|
|
ldrb r1, [r3, #1]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r2, #0x1c
|
|
adds r0, r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, _08071624
|
|
cmp r1, r0
|
|
beq _08071616
|
|
b _08071816
|
|
_08071616:
|
|
ldrb r0, [r3, #2]
|
|
adds r0, #1
|
|
strb r0, [r3, #2]
|
|
b _08071816
|
|
.align 2, 0
|
|
_08071620: .4byte 0x020205AC
|
|
_08071624: .4byte 0x08007141
|
|
_08071628:
|
|
ldr r0, [r5]
|
|
ldrb r1, [r0, #4]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _08071678
|
|
adds r0, r0, r1
|
|
ldr r1, _0807167C
|
|
bl GetBoxMonNick
|
|
ldr r4, _08071680
|
|
ldr r1, _08071684
|
|
adds r0, r4, #0
|
|
bl StringExpandPlaceholders
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, #8]
|
|
movs r1, #0xff
|
|
str r1, [sp]
|
|
adds r1, r4, #0
|
|
movs r2, #0
|
|
movs r3, #3
|
|
bl EggHatchPrintMessage
|
|
ldr r0, _08071688
|
|
bl PlayFanfare
|
|
ldr r1, [r5]
|
|
ldrb r0, [r1, #2]
|
|
adds r0, #1
|
|
strb r0, [r1, #2]
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, #8]
|
|
bl PutWindowTilemap
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, #8]
|
|
movs r1, #3
|
|
bl CopyWindowToVram
|
|
b _08071816
|
|
.align 2, 0
|
|
_08071678: .4byte 0x02024190
|
|
_0807167C: .4byte 0x02021C40
|
|
_08071680: .4byte 0x02021C7C
|
|
_08071684: .4byte 0x085CC874
|
|
_08071688: .4byte 0x00000173
|
|
_0807168C:
|
|
bl IsFanfareTaskInactive
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08071698
|
|
b _08071816
|
|
_08071698:
|
|
b _080717D4
|
|
_0807169A:
|
|
bl IsFanfareTaskInactive
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _080716A6
|
|
b _08071816
|
|
_080716A6:
|
|
b _080717D4
|
|
_080716A8:
|
|
ldr r0, [r5]
|
|
ldrb r1, [r0, #4]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _080716DC
|
|
adds r0, r0, r1
|
|
ldr r1, _080716E0
|
|
bl GetBoxMonNick
|
|
ldr r4, _080716E4
|
|
ldr r1, _080716E8
|
|
adds r0, r4, #0
|
|
bl StringExpandPlaceholders
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, #8]
|
|
movs r1, #1
|
|
str r1, [sp]
|
|
adds r1, r4, #0
|
|
movs r2, #0
|
|
movs r3, #2
|
|
bl EggHatchPrintMessage
|
|
ldr r1, [r5]
|
|
b _080717D8
|
|
.align 2, 0
|
|
_080716DC: .4byte 0x02024190
|
|
_080716E0: .4byte 0x02021C40
|
|
_080716E4: .4byte 0x02021C7C
|
|
_080716E8: .4byte 0x085CC888
|
|
_080716EC:
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, #8]
|
|
bl IsTextPrinterActive
|
|
lsls r0, r0, #0x10
|
|
lsrs r6, r0, #0x10
|
|
cmp r6, #0
|
|
beq _080716FE
|
|
b _08071816
|
|
_080716FE:
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, #8]
|
|
movs r4, #0xa0
|
|
lsls r4, r4, #1
|
|
adds r1, r4, #0
|
|
movs r2, #0xe0
|
|
bl LoadUserWindowBorderGfx
|
|
ldr r0, _08071728
|
|
str r4, [sp]
|
|
movs r1, #0xe
|
|
str r1, [sp, #4]
|
|
str r6, [sp, #8]
|
|
movs r1, #1
|
|
movs r2, #2
|
|
movs r3, #2
|
|
bl sub_08198C08
|
|
ldr r1, [r5]
|
|
b _080717D8
|
|
.align 2, 0
|
|
_08071728: .4byte 0x082FCA74
|
|
_0807172C:
|
|
bl Menu_ProcessInputNoWrapClearOnChoose
|
|
lsls r0, r0, #0x18
|
|
asrs r1, r0, #0x18
|
|
cmp r1, #0
|
|
beq _0807174C
|
|
cmp r1, #0
|
|
bgt _08071746
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
cmp r1, r0
|
|
beq _080717D4
|
|
b _08071816
|
|
_08071746:
|
|
cmp r1, #1
|
|
beq _080717D4
|
|
b _08071816
|
|
_0807174C:
|
|
ldr r0, _080717B4
|
|
mov r8, r0
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #4]
|
|
movs r6, #0x64
|
|
muls r0, r6, r0
|
|
ldr r5, _080717B8
|
|
adds r0, r0, r5
|
|
ldr r1, _080717BC
|
|
mov sb, r1
|
|
bl GetBoxMonNick
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, #4]
|
|
muls r0, r6, r0
|
|
adds r0, r0, r5
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
lsls r0, r0, #0x10
|
|
lsrs r7, r0, #0x10
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, #4]
|
|
muls r0, r6, r0
|
|
adds r0, r0, r5
|
|
bl GetMonGender
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, #4]
|
|
muls r0, r6, r0
|
|
adds r0, r0, r5
|
|
movs r1, #0
|
|
movs r2, #0
|
|
bl GetMonData
|
|
str r0, [sp]
|
|
ldr r0, _080717C0
|
|
str r0, [sp, #4]
|
|
movs r0, #3
|
|
mov r1, sb
|
|
adds r2, r7, #0
|
|
adds r3, r4, #0
|
|
bl DoNamingScreen
|
|
b _08071816
|
|
.align 2, 0
|
|
_080717B4: .4byte 0x03000DE0
|
|
_080717B8: .4byte 0x02024190
|
|
_080717BC: .4byte 0x02021C68
|
|
_080717C0: .4byte 0x08071401
|
|
_080717C4:
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
movs r1, #0
|
|
str r1, [sp]
|
|
movs r2, #0
|
|
movs r3, #0x10
|
|
bl BeginNormalPaletteFade
|
|
_080717D4:
|
|
ldr r0, _080717E0
|
|
ldr r1, [r0]
|
|
_080717D8:
|
|
ldrb r0, [r1, #2]
|
|
adds r0, #1
|
|
strb r0, [r1, #2]
|
|
b _08071816
|
|
.align 2, 0
|
|
_080717E0: .4byte 0x03000DE0
|
|
_080717E4:
|
|
ldr r0, _08071838
|
|
ldrb r1, [r0, #7]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08071816
|
|
bl FreeMonSpritesGfx
|
|
ldr r4, _0807183C
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, #8]
|
|
bl RemoveWindow
|
|
movs r0, #0
|
|
bl UnsetBgTilemapBuffer
|
|
movs r0, #1
|
|
bl UnsetBgTilemapBuffer
|
|
ldr r0, [r4]
|
|
bl Free
|
|
ldr r0, _08071840
|
|
bl SetMainCallback2
|
|
_08071816:
|
|
bl RunTasks
|
|
bl RunTextPrinters
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
add sp, #0xc
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08071838: .4byte 0x02037C74
|
|
_0807183C: .4byte 0x03000DE0
|
|
_08071840: .4byte 0x08085A31
|
|
thumb_func_end CB2_EggHatch_1
|
|
|
|
thumb_func_start SpriteCB_Egg_0
|
|
SpriteCB_Egg_0: @ 0x08071844
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrh r0, [r4, #0x2e]
|
|
adds r0, #1
|
|
strh r0, [r4, #0x2e]
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #0x10
|
|
cmp r0, #0x14
|
|
ble _08071864
|
|
ldr r0, _08071860
|
|
str r0, [r4, #0x1c]
|
|
movs r0, #0
|
|
strh r0, [r4, #0x2e]
|
|
b _08071894
|
|
.align 2, 0
|
|
_08071860: .4byte 0x0807189D
|
|
_08071864:
|
|
ldrh r0, [r4, #0x30]
|
|
adds r0, #0x14
|
|
movs r1, #0xff
|
|
ands r0, r1
|
|
strh r0, [r4, #0x30]
|
|
movs r1, #0x30
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, #1
|
|
bl Sin
|
|
strh r0, [r4, #0x24]
|
|
movs r1, #0x2e
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, #0xf
|
|
bne _08071894
|
|
movs r0, #0x17
|
|
bl PlaySE
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl StartSpriteAnim
|
|
bl CreateRandomEggShardSprite
|
|
_08071894:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end SpriteCB_Egg_0
|
|
|
|
thumb_func_start SpriteCB_Egg_1
|
|
SpriteCB_Egg_1: @ 0x0807189C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrh r0, [r4, #0x32]
|
|
adds r0, #1
|
|
movs r1, #0
|
|
strh r0, [r4, #0x32]
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #0x10
|
|
cmp r0, #0x1e
|
|
ble _080718F8
|
|
ldrh r0, [r4, #0x2e]
|
|
adds r0, #1
|
|
strh r0, [r4, #0x2e]
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #0x10
|
|
cmp r0, #0x14
|
|
ble _080718CC
|
|
ldr r0, _080718C8
|
|
str r0, [r4, #0x1c]
|
|
strh r1, [r4, #0x2e]
|
|
strh r1, [r4, #0x32]
|
|
b _080718F8
|
|
.align 2, 0
|
|
_080718C8: .4byte 0x08071901
|
|
_080718CC:
|
|
ldrh r0, [r4, #0x30]
|
|
adds r0, #0x14
|
|
movs r1, #0xff
|
|
ands r0, r1
|
|
strh r0, [r4, #0x30]
|
|
movs r1, #0x30
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, #2
|
|
bl Sin
|
|
strh r0, [r4, #0x24]
|
|
movs r1, #0x2e
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, #0xf
|
|
bne _080718F8
|
|
movs r0, #0x17
|
|
bl PlaySE
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl StartSpriteAnim
|
|
_080718F8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
thumb_func_end SpriteCB_Egg_1
|
|
|
|
thumb_func_start SpriteCB_Egg_2
|
|
SpriteCB_Egg_2: @ 0x08071900
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldrh r0, [r4, #0x32]
|
|
adds r0, #1
|
|
movs r5, #0
|
|
strh r0, [r4, #0x32]
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #0x10
|
|
cmp r0, #0x1e
|
|
ble _080719AE
|
|
ldrh r0, [r4, #0x2e]
|
|
adds r0, #1
|
|
strh r0, [r4, #0x2e]
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #0x10
|
|
cmp r0, #0x26
|
|
ble _0807196C
|
|
ldr r0, _0807195C
|
|
str r0, [r4, #0x1c]
|
|
strh r5, [r4, #0x2e]
|
|
ldr r4, _08071960
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, #4]
|
|
movs r0, #0x64
|
|
muls r0, r1, r0
|
|
ldr r1, _08071964
|
|
adds r0, r0, r1
|
|
movs r1, #0xb
|
|
bl GetMonData
|
|
ldr r3, _08071968
|
|
ldr r2, [r4]
|
|
ldrb r1, [r2, #1]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
strh r5, [r0, #0x24]
|
|
ldrb r1, [r2, #1]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r3
|
|
strh r5, [r0, #0x26]
|
|
b _080719AE
|
|
.align 2, 0
|
|
_0807195C: .4byte 0x080719B5
|
|
_08071960: .4byte 0x03000DE0
|
|
_08071964: .4byte 0x02024190
|
|
_08071968: .4byte 0x020205AC
|
|
_0807196C:
|
|
ldrh r0, [r4, #0x30]
|
|
adds r0, #0x14
|
|
movs r1, #0xff
|
|
ands r0, r1
|
|
strh r0, [r4, #0x30]
|
|
movs r1, #0x30
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, #2
|
|
bl Sin
|
|
strh r0, [r4, #0x24]
|
|
movs r1, #0x2e
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, #0xf
|
|
bne _080719A0
|
|
movs r0, #0x17
|
|
bl PlaySE
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl StartSpriteAnim
|
|
bl CreateRandomEggShardSprite
|
|
bl CreateRandomEggShardSprite
|
|
_080719A0:
|
|
movs r1, #0x2e
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, #0x1e
|
|
bne _080719AE
|
|
movs r0, #0x17
|
|
bl PlaySE
|
|
_080719AE:
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end SpriteCB_Egg_2
|
|
|
|
thumb_func_start SpriteCB_Egg_3
|
|
SpriteCB_Egg_3: @ 0x080719B4
|
|
push {lr}
|
|
adds r1, r0, #0
|
|
ldrh r0, [r1, #0x2e]
|
|
adds r0, #1
|
|
strh r0, [r1, #0x2e]
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #0x10
|
|
cmp r0, #0x32
|
|
ble _080719CE
|
|
ldr r0, _080719D4
|
|
str r0, [r1, #0x1c]
|
|
movs r0, #0
|
|
strh r0, [r1, #0x2e]
|
|
_080719CE:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080719D4: .4byte 0x080719D9
|
|
thumb_func_end SpriteCB_Egg_3
|
|
|
|
thumb_func_start SpriteCB_Egg_4
|
|
SpriteCB_Egg_4: @ 0x080719D8
|
|
push {r4, r5, lr}
|
|
sub sp, #4
|
|
adds r5, r0, #0
|
|
movs r1, #0x2e
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, #0
|
|
bne _080719F8
|
|
movs r1, #1
|
|
rsbs r1, r1, #0
|
|
ldr r0, _08071A4C
|
|
str r0, [sp]
|
|
adds r0, r1, #0
|
|
movs r2, #0
|
|
movs r3, #0x10
|
|
bl BeginNormalPaletteFade
|
|
_080719F8:
|
|
ldrh r0, [r5, #0x2e]
|
|
cmp r0, #3
|
|
bhi _08071A14
|
|
movs r4, #0
|
|
_08071A00:
|
|
bl CreateRandomEggShardSprite
|
|
lsls r0, r4, #0x10
|
|
movs r1, #0x80
|
|
lsls r1, r1, #9
|
|
adds r0, r0, r1
|
|
lsrs r4, r0, #0x10
|
|
asrs r0, r0, #0x10
|
|
cmp r0, #3
|
|
ble _08071A00
|
|
_08071A14:
|
|
ldrh r0, [r5, #0x2e]
|
|
adds r0, #1
|
|
strh r0, [r5, #0x2e]
|
|
ldr r0, _08071A50
|
|
ldrb r1, [r0, #7]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #0
|
|
bne _08071A42
|
|
movs r0, #0x71
|
|
bl PlaySE
|
|
adds r2, r5, #0
|
|
adds r2, #0x3e
|
|
ldrb r0, [r2]
|
|
movs r1, #4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, _08071A54
|
|
str r0, [r5, #0x1c]
|
|
strh r4, [r5, #0x2e]
|
|
_08071A42:
|
|
add sp, #4
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08071A4C: .4byte 0x0000FFFF
|
|
_08071A50: .4byte 0x02037C74
|
|
_08071A54: .4byte 0x08071A59
|
|
thumb_func_end SpriteCB_Egg_4
|
|
|
|
thumb_func_start SpriteCB_Egg_5
|
|
SpriteCB_Egg_5: @ 0x08071A58
|
|
push {r4, r5, lr}
|
|
sub sp, #4
|
|
adds r5, r0, #0
|
|
movs r1, #0x2e
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, #0
|
|
bne _08071A94
|
|
ldr r4, _08071AE8
|
|
ldr r3, _08071AEC
|
|
ldr r0, [r3]
|
|
ldrb r1, [r0, #1]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
adds r0, #0x3e
|
|
ldrb r2, [r0]
|
|
movs r1, #5
|
|
rsbs r1, r1, #0
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
ldr r0, [r3]
|
|
ldrb r1, [r0, #1]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r4
|
|
movs r1, #1
|
|
bl StartSpriteAffineAnim
|
|
_08071A94:
|
|
movs r2, #0x2e
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, #8
|
|
bne _08071AAE
|
|
movs r1, #1
|
|
rsbs r1, r1, #0
|
|
ldr r0, _08071AF0
|
|
str r0, [sp]
|
|
adds r0, r1, #0
|
|
movs r2, #0x10
|
|
movs r3, #0
|
|
bl BeginNormalPaletteFade
|
|
_08071AAE:
|
|
movs r1, #0x2e
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, #9
|
|
bgt _08071ACC
|
|
ldr r2, _08071AE8
|
|
ldr r0, _08071AEC
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, #1]
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
ldrh r1, [r0, #0x22]
|
|
subs r1, #1
|
|
strh r1, [r0, #0x22]
|
|
_08071ACC:
|
|
ldrh r1, [r5, #0x2e]
|
|
movs r2, #0x2e
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, #0x28
|
|
ble _08071ADA
|
|
ldr r0, _08071AF4
|
|
str r0, [r5, #0x1c]
|
|
_08071ADA:
|
|
adds r0, r1, #1
|
|
strh r0, [r5, #0x2e]
|
|
add sp, #4
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08071AE8: .4byte 0x020205AC
|
|
_08071AEC: .4byte 0x03000DE0
|
|
_08071AF0: .4byte 0x0000FFFF
|
|
_08071AF4: .4byte 0x08007141
|
|
thumb_func_end SpriteCB_Egg_5
|
|
|
|
thumb_func_start SpriteCB_EggShard
|
|
SpriteCB_EggShard: @ 0x08071AF8
|
|
push {r4, lr}
|
|
adds r2, r0, #0
|
|
ldrh r0, [r2, #0x30]
|
|
ldrh r1, [r2, #0x36]
|
|
adds r0, r0, r1
|
|
strh r0, [r2, #0x36]
|
|
ldrh r1, [r2, #0x32]
|
|
ldrh r3, [r2, #0x38]
|
|
adds r0, r1, r3
|
|
strh r0, [r2, #0x38]
|
|
movs r4, #0x36
|
|
ldrsh r0, [r2, r4]
|
|
cmp r0, #0
|
|
bge _08071B16
|
|
adds r0, #0xff
|
|
_08071B16:
|
|
asrs r0, r0, #8
|
|
strh r0, [r2, #0x24]
|
|
movs r3, #0x38
|
|
ldrsh r0, [r2, r3]
|
|
cmp r0, #0
|
|
bge _08071B24
|
|
adds r0, #0xff
|
|
_08071B24:
|
|
asrs r0, r0, #8
|
|
strh r0, [r2, #0x26]
|
|
ldrh r0, [r2, #0x34]
|
|
adds r3, r1, r0
|
|
strh r3, [r2, #0x32]
|
|
movs r4, #0x22
|
|
ldrsh r1, [r2, r4]
|
|
movs r4, #0x26
|
|
ldrsh r0, [r2, r4]
|
|
adds r0, r1, r0
|
|
adds r1, #0x14
|
|
cmp r0, r1
|
|
ble _08071B4A
|
|
lsls r0, r3, #0x10
|
|
cmp r0, #0
|
|
ble _08071B4A
|
|
adds r0, r2, #0
|
|
bl DestroySprite
|
|
_08071B4A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end SpriteCB_EggShard
|
|
|
|
thumb_func_start CreateRandomEggShardSprite
|
|
CreateRandomEggShardSprite: @ 0x08071B50
|
|
push {r4, r5, r6, lr}
|
|
sub sp, #8
|
|
ldr r2, _08071B9C
|
|
ldr r0, _08071BA0
|
|
ldr r6, [r0]
|
|
ldrb r3, [r6, #7]
|
|
lsls r0, r3, #2
|
|
adds r1, r0, r2
|
|
ldrh r5, [r1]
|
|
adds r2, #2
|
|
adds r0, r0, r2
|
|
ldrh r4, [r0]
|
|
adds r3, #1
|
|
strb r3, [r6, #7]
|
|
bl Random
|
|
lsls r0, r0, #0x10
|
|
movs r1, #0xc0
|
|
lsls r1, r1, #0xa
|
|
ands r1, r0
|
|
lsls r5, r5, #0x10
|
|
asrs r5, r5, #0x10
|
|
lsls r4, r4, #0x10
|
|
asrs r4, r4, #0x10
|
|
movs r0, #0x64
|
|
str r0, [sp]
|
|
lsrs r1, r1, #0x10
|
|
str r1, [sp, #4]
|
|
movs r0, #0x78
|
|
movs r1, #0x3c
|
|
adds r2, r5, #0
|
|
adds r3, r4, #0
|
|
bl CreateEggShardSprite
|
|
add sp, #8
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08071B9C: .4byte 0x082FCA7C
|
|
_08071BA0: .4byte 0x03000DE0
|
|
thumb_func_end CreateRandomEggShardSprite
|
|
|
|
thumb_func_start CreateEggShardSprite
|
|
CreateEggShardSprite: @ 0x08071BA4
|
|
push {r4, r5, r6, lr}
|
|
mov r6, sl
|
|
mov r5, sb
|
|
mov r4, r8
|
|
push {r4, r5, r6}
|
|
adds r4, r0, #0
|
|
adds r5, r1, #0
|
|
adds r6, r2, #0
|
|
mov r8, r3
|
|
ldr r0, [sp, #0x1c]
|
|
mov sb, r0
|
|
ldr r1, [sp, #0x20]
|
|
mov sl, r1
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
lsls r5, r5, #0x18
|
|
lsrs r5, r5, #0x18
|
|
lsls r6, r6, #0x10
|
|
lsrs r6, r6, #0x10
|
|
mov r0, r8
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
mov r8, r0
|
|
mov r1, sb
|
|
lsls r1, r1, #0x10
|
|
lsrs r1, r1, #0x10
|
|
mov sb, r1
|
|
mov r0, sl
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
mov sl, r0
|
|
ldr r0, _08071C1C
|
|
adds r1, r4, #0
|
|
adds r2, r5, #0
|
|
movs r3, #4
|
|
bl CreateSprite
|
|
adds r1, r0, #0
|
|
lsls r1, r1, #0x18
|
|
lsrs r1, r1, #0x18
|
|
ldr r2, _08071C20
|
|
lsls r0, r1, #4
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r2
|
|
strh r6, [r0, #0x30]
|
|
mov r1, r8
|
|
strh r1, [r0, #0x32]
|
|
mov r1, sb
|
|
strh r1, [r0, #0x34]
|
|
mov r1, sl
|
|
bl StartSpriteAnim
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08071C1C: .4byte 0x082FCA44
|
|
_08071C20: .4byte 0x020205AC
|
|
thumb_func_end CreateEggShardSprite
|
|
|
|
thumb_func_start EggHatchPrintMessage
|
|
EggHatchPrintMessage: @ 0x08071C24
|
|
push {r4, r5, r6, lr}
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6}
|
|
sub sp, #0x14
|
|
adds r5, r0, #0
|
|
mov sb, r1
|
|
adds r6, r2, #0
|
|
mov r8, r3
|
|
ldr r4, [sp, #0x2c]
|
|
lsls r5, r5, #0x18
|
|
lsrs r5, r5, #0x18
|
|
lsls r6, r6, #0x18
|
|
lsrs r6, r6, #0x18
|
|
mov r0, r8
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
mov r8, r0
|
|
lsls r4, r4, #0x18
|
|
lsrs r4, r4, #0x18
|
|
adds r0, r5, #0
|
|
movs r1, #0xff
|
|
bl FillWindowPixelBuffer
|
|
ldr r3, _08071C98
|
|
ldr r0, [r3]
|
|
movs r2, #0
|
|
strb r2, [r0, #0xe]
|
|
ldr r1, [r3]
|
|
movs r0, #5
|
|
strb r0, [r1, #0xf]
|
|
ldr r1, [r3]
|
|
movs r0, #6
|
|
strb r0, [r1, #0x10]
|
|
str r2, [sp]
|
|
str r2, [sp, #4]
|
|
ldr r0, [r3]
|
|
adds r0, #0xe
|
|
str r0, [sp, #8]
|
|
lsls r4, r4, #0x18
|
|
asrs r4, r4, #0x18
|
|
str r4, [sp, #0xc]
|
|
mov r0, sb
|
|
str r0, [sp, #0x10]
|
|
adds r0, r5, #0
|
|
movs r1, #1
|
|
adds r2, r6, #0
|
|
mov r3, r8
|
|
bl AddTextPrinterParameterized4
|
|
add sp, #0x14
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08071C98: .4byte 0x03000DE0
|
|
thumb_func_end EggHatchPrintMessage
|
|
|
|
thumb_func_start GetEggStepsToSubtract
|
|
GetEggStepsToSubtract: @ 0x08071C9C
|
|
push {r4, r5, r6, lr}
|
|
bl CalculatePlayerPartyCount
|
|
lsls r0, r0, #0x18
|
|
lsrs r6, r0, #0x18
|
|
movs r5, #0
|
|
cmp r5, r6
|
|
bhs _08071CE6
|
|
_08071CAC:
|
|
movs r0, #0x64
|
|
adds r1, r5, #0
|
|
muls r1, r0, r1
|
|
ldr r0, _08071CD8
|
|
adds r4, r1, r0
|
|
adds r0, r4, #0
|
|
movs r1, #6
|
|
bl GetMonData
|
|
cmp r0, #0
|
|
bne _08071CDC
|
|
adds r0, r4, #0
|
|
bl GetMonAbility
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0x28
|
|
beq _08071CD4
|
|
cmp r0, #0x31
|
|
bne _08071CDC
|
|
_08071CD4:
|
|
movs r0, #2
|
|
b _08071CE8
|
|
.align 2, 0
|
|
_08071CD8: .4byte 0x02024190
|
|
_08071CDC:
|
|
adds r0, r5, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r5, r0, #0x18
|
|
cmp r5, r6
|
|
blo _08071CAC
|
|
_08071CE6:
|
|
movs r0, #1
|
|
_08071CE8:
|
|
pop {r4, r5, r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
thumb_func_end GetEggStepsToSubtract
|
|
|
|
thumb_func_start sub_08071CF0
|
|
sub_08071CF0: @ 0x08071CF0
|
|
push {r4, lr}
|
|
bl CountStorageNonEggMons
|
|
adds r4, r0, #0
|
|
lsls r4, r4, #0x10
|
|
lsrs r4, r4, #0x10
|
|
movs r0, #6
|
|
bl CountPartyAliveNonEggMonsExcept
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
adds r4, r4, r0
|
|
lsls r4, r4, #0x10
|
|
lsrs r4, r4, #0x10
|
|
adds r0, r4, #0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_08071CF0
|
|
|