diff options
-rw-r--r-- | Makefile | 3 | ||||
-rw-r--r-- | asm/daycare.s | 2903 | ||||
-rw-r--r-- | asm/egg_hatch.s | 1786 | ||||
-rw-r--r-- | asm/rom_804373C.s (renamed from asm/rom_80412B0.s) | 4671 | ||||
-rw-r--r-- | ld_script.txt | 4 |
5 files changed, 4694 insertions, 4673 deletions
@@ -58,7 +58,8 @@ asm/mystery_event_menu.o asm/save_failed_screen.o asm/rom_81473B8.o \ asm/berry_tag_screen.o asm/lottery_corner.o \ asm/battle_ai.o asm/trader.o asm/trainer_card.o asm/save_menu_util.o \ asm/rom_8094928.o asm/mori_debug_menu.o asm/trainer_see.o asm/rom_8080874.o \ -asm/battle_setup.o asm/cable_club.o asm/rom_80412B0.o +asm/battle_setup.o asm/cable_club.o asm/daycare.o asm/egg_hatch.o \ +asm/rom_804373C.o DATA_ASM_OBJS := data/data2.o data/graphics.o data/sound_data.o \ data/event_scripts.o data/battle_anim_scripts.o \ diff --git a/asm/daycare.s b/asm/daycare.s new file mode 100644 index 000000000..ff3fa5464 --- /dev/null +++ b/asm/daycare.s @@ -0,0 +1,2903 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start pokemon_get_nick +pokemon_get_nick: @ 80412B0 + push {r4,lr} + sub sp, 0x14 + adds r4, r1, 0 + movs r1, 0x2 + mov r2, sp + bl GetMonData + adds r0, r4, 0 + mov r1, sp + bl StringCopy10 + add sp, 0x14 + pop {r4} + pop {r1} + bx r1 + thumb_func_end pokemon_get_nick + + thumb_func_start pokemon_get_nick_ +pokemon_get_nick_: @ 80412D0 + push {r4,lr} + sub sp, 0x14 + adds r4, r1, 0 + movs r1, 0x2 + mov r2, sp + bl GetBoxMonData + adds r0, r4, 0 + mov r1, sp + bl StringCopy10 + add sp, 0x14 + pop {r4} + pop {r1} + bx r1 + thumb_func_end pokemon_get_nick_ + + thumb_func_start daycare_count_pokemon +daycare_count_pokemon: @ 80412F0 + push {r4-r6,lr} + adds r6, r0, 0 + movs r5, 0 + movs r4, 0 +_080412F8: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + adds r0, r6, r0 + movs r1, 0xB + bl GetBoxMonData + cmp r0, 0 + beq _08041310 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_08041310: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + bls _080412F8 + adds r0, r5, 0 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end daycare_count_pokemon + + thumb_func_start sub_8041324 +sub_8041324: @ 8041324 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r9, r0 + mov r10, r1 + movs r7, 0 + movs r5, 0 + mov r6, r10 + adds r6, 0x74 + movs r0, 0x1 + mov r8, r0 +_0804133E: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 4 + mov r1, r9 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetBoxMonData + cmp r0, 0 + beq _0804136E + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r4, 0 + movs r1, 0xC + bl GetBoxMonData + adds r1, r0, 0 + cmp r1, 0 + bne _0804136E + lsls r0, r5, 1 + adds r0, r6, r0 + b _08041374 +_0804136E: + lsls r0, r5, 1 + adds r0, r6, r0 + mov r1, r8 +_08041374: + strh r1, [r0] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x1 + bls _0804133E + mov r0, r10 + str r7, [r0, 0x70] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8041324 + + thumb_func_start daycare_empty_slot +daycare_empty_slot: @ 8041394 + push {r4,r5,lr} + adds r5, r0, 0 + movs r4, 0 +_0804139A: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + adds r0, r5, r0 + movs r1, 0xB + bl GetBoxMonData + cmp r0, 0 + bne _080413B2 + lsls r0, r4, 24 + asrs r0, 24 + b _080413C0 +_080413B2: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + bls _0804139A + movs r0, 0x1 + negs r0, r0 +_080413C0: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end daycare_empty_slot + + thumb_func_start sub_80413C8 +sub_80413C8: @ 80413C8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r7, r0, 0 + mov r8, r1 + mov r0, r8 + bl daycare_empty_slot + lsls r0, 24 + lsrs r4, r0, 24 + mov r9, r4 + adds r0, r7, 0 + bl sub_80A2B94 + lsls r0, 24 + cmp r0, 0 + beq _0804144A + lsls r0, r4, 24 + asrs r0, 24 + lsls r4, r0, 3 + subs r4, r0 + lsls r4, 3 + adds r5, r4, 0 + adds r5, 0xA0 + add r5, r8 + adds r6, r5, 0 + adds r6, 0x24 + ldr r1, _08041490 @ =gSaveBlock2 + adds r0, r6, 0 + bl StringCopy + adds r0, r6, 0 + movs r1, 0xFC + bl sub_814A518 + adds r6, 0x8 + adds r0, r7, 0 + adds r1, r6, 0 + bl pokemon_get_nick + adds r0, r7, 0 + movs r1, 0x40 + bl GetMonData + lsls r0, 24 + lsrs r0, 24 + add r4, r8 + ldr r2, _08041494 @ =gSaveBlock1 + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r4, 0xA0 + ldr r0, _08041498 @ =0x00002b4c + adds r1, r0 + ldm r1!, {r0,r2,r3} + stm r4!, {r0,r2,r3} + ldm r1!, {r0,r2,r3} + stm r4!, {r0,r2,r3} + ldm r1!, {r0,r2,r3} + stm r4!, {r0,r2,r3} + adds r0, r7, 0 + bl sub_80A2DF8 +_0804144A: + mov r2, r9 + lsls r4, r2, 24 + asrs r4, 24 + lsls r5, r4, 2 + adds r4, r5, r4 + lsls r4, 4 + add r4, r8 + adds r0, r4, 0 + adds r1, r7, 0 + movs r2, 0x50 + bl memcpy + adds r0, r4, 0 + bl pokemon_restore_pp + movs r0, 0x88 + lsls r0, 1 + add r0, r8 + adds r0, r5 + movs r1, 0 + str r1, [r0] + adds r0, r7, 0 + bl ZeroMonData + bl party_compaction + bl CalculatePlayerPartyCount + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08041490: .4byte gSaveBlock2 +_08041494: .4byte gSaveBlock1 +_08041498: .4byte 0x00002b4c + thumb_func_end sub_80413C8 + + thumb_func_start daycare_send +daycare_send: @ 804149C + push {lr} + ldr r0, _080414B4 @ =gUnknown_03005CE0 + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080414B8 @ =gPlayerParty + adds r0, r1 + ldr r1, _080414BC @ =gSaveBlock1 + 0x2F9C + bl sub_80413C8 + pop {r0} + bx r0 + .align 2, 0 +_080414B4: .4byte gUnknown_03005CE0 +_080414B8: .4byte gPlayerParty +_080414BC: .4byte gSaveBlock1 + 0x2F9C + thumb_func_end daycare_send + + thumb_func_start sub_80414C0 +sub_80414C0: @ 80414C0 + push {r4-r6,lr} + adds r5, r0, 0 + adds r4, r5, 0 + adds r4, 0x50 + adds r0, r4, 0 + movs r1, 0xB + bl GetBoxMonData + cmp r0, 0 + beq _08041516 + adds r0, r5, 0 + movs r1, 0xB + bl GetBoxMonData + adds r6, r0, 0 + cmp r6, 0 + bne _08041516 + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x50 + bl memcpy + adds r0, r4, 0 + bl ZeroBoxMonData + adds r0, r5, 0 + adds r0, 0xA0 + adds r4, 0x88 + adds r1, r4, 0 + movs r2, 0x38 + bl memcpy + movs r0, 0x88 + lsls r0, 1 + adds r2, r5, r0 + adds r0, 0x4 + adds r1, r5, r0 + ldr r0, [r1] + str r0, [r2] + str r6, [r1] + adds r0, r4, 0 + bl sub_80417F4 +_08041516: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80414C0 + + thumb_func_start sub_804151C +sub_804151C: @ 804151C + push {r4-r7,lr} + adds r4, r0, 0 + movs r5, 0 + ldr r7, _08041538 @ =0x0000ffff +_08041524: + adds r0, r4, 0 + bl sub_8040300 + lsls r0, 24 + cmp r0, 0 + beq _08041560 + movs r6, 0x1 + adds r5, 0x1 + b _0804154C + .align 2, 0 +_08041538: .4byte 0x0000ffff +_0804153C: + movs r6, 0 + cmp r0, r7 + bne _0804154C + ldr r0, _0804156C @ =word_2024E82 + ldrh r1, [r0] + adds r0, r4, 0 + bl DeleteFirstMoveAndGiveMoveToMon +_0804154C: + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_803B7C8 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + bne _0804153C + cmp r5, 0x63 + ble _08041524 +_08041560: + adds r0, r4, 0 + bl CalculateMonStats + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804156C: .4byte word_2024E82 + thumb_func_end sub_804151C + + thumb_func_start sub_8041570 +sub_8041570: @ 8041570 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x68 + adds r5, r0, 0 + lsls r1, 24 + lsrs r4, r1, 24 + lsls r7, r4, 2 + adds r0, r7, r4 + lsls r0, 4 + adds r6, r5, r0 + ldr r1, _08041640 @ =gStringVar1 + adds r0, r6, 0 + bl pokemon_get_nick_ + adds r0, r6, 0 + movs r1, 0xB + bl GetBoxMonData + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + adds r0, r6, 0 + mov r1, sp + bl sub_803B4B4 + mov r0, sp + movs r1, 0x38 + bl GetMonData + cmp r0, 0x64 + beq _080415D8 + mov r0, sp + movs r1, 0x19 + bl GetMonData + movs r2, 0x88 + lsls r2, 1 + adds r1, r5, r2 + adds r1, r7 + ldr r1, [r1] + adds r0, r1 + str r0, [sp, 0x64] + add r2, sp, 0x64 + mov r0, sp + movs r1, 0x19 + bl SetMonData + mov r0, sp + bl sub_804151C +_080415D8: + ldr r0, _08041644 @ =gPlayerParty + movs r1, 0xFA + lsls r1, 1 + adds r1, r0 + mov r8, r1 + mov r0, r8 + mov r1, sp + movs r2, 0x64 + bl memcpy + lsls r0, r4, 3 + subs r0, r4 + lsls r1, r0, 3 + adds r0, r5, r1 + adds r0, 0xC0 + ldrh r0, [r0] + cmp r0, 0 + beq _08041610 + adds r4, r1, 0 + adds r4, 0xA0 + adds r4, r5, r4 + mov r0, r8 + adds r1, r4, 0 + bl sub_80A2D88 + adds r0, r4, 0 + bl sub_80417F4 +_08041610: + bl party_compaction + adds r0, r6, 0 + bl ZeroBoxMonData + movs r2, 0x88 + lsls r2, 1 + adds r0, r5, r2 + adds r0, r7 + movs r1, 0 + str r1, [r0] + adds r0, r5, 0 + bl sub_80414C0 + bl CalculatePlayerPartyCount + mov r0, r9 + add sp, 0x68 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08041640: .4byte gStringVar1 +_08041644: .4byte gPlayerParty + thumb_func_end sub_8041570 + + thumb_func_start sub_8041648 +sub_8041648: @ 8041648 + push {lr} + ldr r0, _0804165C @ =gSaveBlock1 + 0x2F9C + ldr r1, _08041660 @ =gUnknown_0202E8CC + ldrb r1, [r1] + bl sub_8041570 + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + .align 2, 0 +_0804165C: .4byte gSaveBlock1 + 0x2F9C +_08041660: .4byte gUnknown_0202E8CC + thumb_func_end sub_8041648 + + thumb_func_start sub_8041664 +sub_8041664: @ 8041664 + push {r4,r5,lr} + sub sp, 0x54 + adds r4, r0, 0 + adds r5, r1, 0 + mov r0, sp + adds r1, r4, 0 + movs r2, 0x50 + bl memcpy + adds r0, r4, 0 + movs r1, 0x19 + bl GetBoxMonData + adds r0, r5 + str r0, [sp, 0x50] + add r2, sp, 0x50 + mov r0, sp + movs r1, 0x19 + bl SetBoxMonData + mov r0, sp + bl GetLevelFromBoxMonExp + lsls r0, 24 + lsrs r0, 24 + add sp, 0x54 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8041664 + + thumb_func_start sub_80416A0 +sub_80416A0: @ 80416A0 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r5, r0, 0 + lsls r4, r1, 24 + lsrs r4, 24 + lsls r0, r4, 2 + mov r8, r0 + add r4, r8 + lsls r4, 4 + adds r4, r5, r4 + adds r0, r4, 0 + bl GetLevelFromBoxMonExp + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + movs r0, 0x88 + lsls r0, 1 + adds r5, r0 + add r5, r8 + ldr r1, [r5] + adds r0, r4, 0 + bl sub_8041664 + lsls r0, 24 + lsrs r0, 24 + subs r0, r6 + lsls r0, 24 + lsrs r0, 24 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80416A0 + + thumb_func_start sub_80416E8 +sub_80416E8: @ 80416E8 + push {r4-r6,lr} + adds r6, r0, 0 + lsls r4, r1, 24 + lsrs r4, 24 + adds r1, r4, 0 + bl sub_80416A0 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + adds r6, r0 + ldr r1, _08041720 @ =gStringVar1 + adds r0, r6, 0 + bl pokemon_get_nick_ + ldr r0, _08041724 @ =gStringVar2 + adds r1, r5, 0 + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + adds r0, r5, 0 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08041720: .4byte gStringVar1 +_08041724: .4byte gStringVar2 + thumb_func_end sub_80416E8 + + thumb_func_start sub_8041728 +sub_8041728: @ 8041728 + push {r4-r6,lr} + adds r6, r0, 0 + lsls r4, r1, 24 + lsrs r4, 24 + adds r1, r4, 0 + bl sub_80416A0 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + adds r6, r0 + ldr r1, _08041768 @ =gStringVar1 + adds r0, r6, 0 + bl pokemon_get_nick_ + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + adds r4, 0x64 + ldr r0, _0804176C @ =gStringVar2 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x5 + bl ConvertIntToDecimalStringN + adds r0, r4, 0 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08041768: .4byte gStringVar1 +_0804176C: .4byte gStringVar2 + thumb_func_end sub_8041728 + + thumb_func_start sub_8041770 +sub_8041770: @ 8041770 + push {lr} + ldr r0, _08041784 @ =gSaveBlock1 + 0x2F9C + ldr r1, _08041788 @ =gUnknown_0202E8CC + ldrb r1, [r1] + bl sub_8041728 + ldr r1, _0804178C @ =gUnknown_0202E8CE + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08041784: .4byte gSaveBlock1 + 0x2F9C +_08041788: .4byte gUnknown_0202E8CC +_0804178C: .4byte gUnknown_0202E8CE + thumb_func_end sub_8041770 + + thumb_func_start sub_8041790 +sub_8041790: @ 8041790 + lsls r0, 16 + lsrs r0, 16 + ldr r2, _080417AC @ =gSaveBlock1 + ldr r1, _080417B0 @ =0x000030ac + adds r3, r2, r1 + ldr r1, [r3] + adds r1, r0 + str r1, [r3] + ldr r1, _080417B4 @ =0x000030b0 + adds r2, r1 + ldr r1, [r2] + adds r1, r0 + str r1, [r2] + bx lr + .align 2, 0 +_080417AC: .4byte gSaveBlock1 +_080417B0: .4byte 0x000030ac +_080417B4: .4byte 0x000030b0 + thumb_func_end sub_8041790 + + thumb_func_start sub_80417B8 +sub_80417B8: @ 80417B8 + push {r4,r5,lr} + ldr r5, _080417D8 @ =gUnknown_0202E8CC + ldrh r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 4 + ldr r4, _080417DC @ =gSaveBlock1 + 0x2F9C + adds r0, r4 + movs r1, 0xB + bl GetBoxMonData + cmp r0, 0 + bne _080417E0 + movs r0, 0 + b _080417EC + .align 2, 0 +_080417D8: .4byte gUnknown_0202E8CC +_080417DC: .4byte gSaveBlock1 + 0x2F9C +_080417E0: + ldrb r1, [r5] + adds r0, r4, 0 + bl sub_80416E8 + lsls r0, 24 + lsrs r0, 24 +_080417EC: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80417B8 + + thumb_func_start sub_80417F4 +sub_80417F4: @ 80417F4 + push {lr} + movs r3, 0 + movs r2, 0x7 + adds r1, r0, 0 + adds r1, 0x2B +_080417FE: + strb r3, [r1] + subs r1, 0x1 + subs r2, 0x1 + cmp r2, 0 + bge _080417FE + adds r2, r0, 0 + adds r2, 0x2C + movs r3, 0 + adds r1, r0, 0 + adds r1, 0x36 +_08041812: + strb r3, [r1] + subs r1, 0x1 + cmp r1, r2 + bge _08041812 + bl sub_80A2B40 + pop {r0} + bx r0 + thumb_func_end sub_80417F4 + + thumb_func_start unref_sub_8041824 +unref_sub_8041824: @ 8041824 + push {r4-r6,lr} + adds r6, r0, 0 + movs r5, 0 +_0804182A: + lsls r4, r5, 2 + adds r0, r4, r5 + lsls r0, 4 + adds r0, r6, r0 + bl ZeroBoxMonData + movs r1, 0x88 + lsls r1, 1 + adds r0, r6, r1 + adds r0, r4 + movs r4, 0 + str r4, [r0] + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 3 + adds r0, 0xA0 + adds r0, r6, r0 + bl sub_80417F4 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x1 + bls _0804182A + movs r2, 0x8C + lsls r2, 1 + adds r0, r6, r2 + movs r1, 0 + strh r4, [r0] + adds r2, 0x2 + adds r0, r6, r2 + strb r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end unref_sub_8041824 + + thumb_func_start sub_8041870 +sub_8041870: @ 8041870 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 16 + lsrs r2, r0, 16 + movs r0, 0 + mov r8, r0 + ldr r0, _0804189C @ =gEvolutionTable + mov r12, r0 +_08041882: + movs r7, 0 + movs r6, 0x1 + movs r4, 0x80 + lsls r4, 9 + movs r5, 0x28 + mov r3, r12 + adds r3, 0x28 +_08041890: + movs r1, 0 + ldrh r0, [r3, 0x4] + cmp r0, r2 + bne _080418A0 + lsrs r2, r4, 16 + b _080418CC + .align 2, 0 +_0804189C: .4byte gEvolutionTable +_080418A0: + adds r1, 0x1 + cmp r1, 0x4 + bgt _080418B6 + lsls r0, r1, 3 + adds r0, r5 + add r0, r12 + ldrh r0, [r0, 0x4] + cmp r0, r2 + bne _080418A0 + lsrs r2, r4, 16 + movs r7, 0x1 +_080418B6: + cmp r7, 0 + bne _080418CC + movs r0, 0x80 + lsls r0, 9 + adds r4, r0 + adds r5, 0x28 + adds r3, 0x28 + adds r6, 0x1 + ldr r0, _080418EC @ =0x0000019b + cmp r6, r0 + ble _08041890 +_080418CC: + movs r0, 0xCE + lsls r0, 1 + cmp r6, r0 + beq _080418DE + movs r0, 0x1 + add r8, r0 + mov r0, r8 + cmp r0, 0x4 + ble _08041882 +_080418DE: + adds r0, r2, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080418EC: .4byte 0x0000019b + thumb_func_end sub_8041870 + + thumb_func_start sub_80418F0 +sub_80418F0: @ 80418F0 + push {r4,lr} + adds r4, r0, 0 + bl Random + lsls r0, 16 + lsrs r0, 16 + ldr r1, _08041918 @ =0x0000fffe + bl __umodsi3 + adds r0, 0x1 + movs r1, 0x8C + lsls r1, 1 + adds r4, r1 + strh r0, [r4] + movs r0, 0x86 + bl FlagSet + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08041918: .4byte 0x0000fffe + thumb_func_end sub_80418F0 + + thumb_func_start sub_804191C +sub_804191C: @ 804191C + push {r4,lr} + adds r4, r0, 0 + bl Random + movs r2, 0x80 + lsls r2, 8 + adds r1, r2, 0 + movs r2, 0x8C + lsls r2, 1 + adds r4, r2 + orrs r1, r0 + strh r1, [r4] + movs r0, 0x86 + bl FlagSet + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_804191C + + thumb_func_start sub_8041940 +sub_8041940: @ 8041940 + push {lr} + ldr r0, _0804194C @ =gSaveBlock1 + 0x2F9C + bl sub_80418F0 + pop {r0} + bx r0 + .align 2, 0 +_0804194C: .4byte gSaveBlock1 + 0x2F9C + thumb_func_end sub_8041940 + + thumb_func_start sub_8041950 +sub_8041950: @ 8041950 + push {lr} + ldr r0, _0804195C @ =gSaveBlock1 + 0x2F9C + bl sub_804191C + pop {r0} + bx r0 + .align 2, 0 +_0804195C: .4byte gSaveBlock1 + 0x2F9C + thumb_func_end sub_8041950 + + thumb_func_start sub_8041960 +sub_8041960: @ 8041960 + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r1, r4, r1 + movs r0, 0xFF + strb r0, [r1] + movs r2, 0 +_08041972: + mov r1, sp + adds r0, r1, r2 + adds r1, r4, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0x5 + ble _08041972 + movs r3, 0 + movs r2, 0 +_08041986: + mov r1, sp + adds r0, r1, r2 + ldrb r1, [r0] + adds r0, r1, 0 + cmp r0, 0xFF + beq _08041998 + adds r0, r4, r3 + strb r1, [r0] + adds r3, 0x1 +_08041998: + adds r2, 0x1 + cmp r2, 0x5 + ble _08041986 + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8041960 + + thumb_func_start sub_80419A8 +sub_80419A8: @ 80419A8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + mov r9, r0 + mov r8, r1 + movs r5, 0 + add r1, sp, 0x4 + add r7, sp, 0xC + adds r2, r1, 0 +_080419BE: + adds r0, r2, r5 + strb r5, [r0] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _080419BE + movs r5, 0 + adds r6, r1, 0 +_080419D0: + bl Random + mov r1, sp + adds r4, r1, r5 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x6 + subs r1, r5 + bl __modsi3 + adds r0, r6, r0 + ldrb r0, [r0] + strb r0, [r4] + ldrb r1, [r4] + adds r0, r6, 0 + bl sub_8041960 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bls _080419D0 + movs r5, 0 + movs r4, 0x1 +_08041A00: + bl Random + adds r1, r7, r5 + lsls r0, 16 + lsrs r0, 16 + ands r0, r4 + strb r0, [r1] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bls _08041A00 + movs r5, 0 +_08041A1A: + mov r1, sp + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, 0x5 + bhi _08041B02 + lsls r0, 2 + ldr r1, _08041A30 @ =_08041A34 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08041A30: .4byte _08041A34 + .align 2, 0 +_08041A34: + .4byte _08041A4C + .4byte _08041A6C + .4byte _08041A88 + .4byte _08041AA4 + .4byte _08041AC0 + .4byte _08041AE2 +_08041A4C: + adds r0, r7, r5 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 4 + add r0, r8 + movs r1, 0x27 + bl GetBoxMonData + add r2, sp, 0x10 + strb r0, [r2] + mov r0, r9 + movs r1, 0x27 + bl SetMonData + b _08041B02 +_08041A6C: + add r4, sp, 0x10 + adds r0, r7, r5 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 4 + add r0, r8 + movs r1, 0x28 + bl GetBoxMonData + strb r0, [r4] + mov r0, r9 + movs r1, 0x28 + b _08041ADA +_08041A88: + add r4, sp, 0x10 + adds r0, r7, r5 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 4 + add r0, r8 + movs r1, 0x29 + bl GetBoxMonData + strb r0, [r4] + mov r0, r9 + movs r1, 0x29 + b _08041ADA +_08041AA4: + add r4, sp, 0x10 + adds r0, r7, r5 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 4 + add r0, r8 + movs r1, 0x2A + bl GetBoxMonData + strb r0, [r4] + mov r0, r9 + movs r1, 0x2A + b _08041ADA +_08041AC0: + add r4, sp, 0x10 + adds r0, r7, r5 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 4 + add r0, r8 + movs r1, 0x2B + bl GetBoxMonData + strb r0, [r4] + mov r0, r9 + movs r1, 0x2B +_08041ADA: + adds r2, r4, 0 + bl SetMonData + b _08041B02 +_08041AE2: + add r4, sp, 0x10 + adds r0, r7, r5 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 4 + add r0, r8 + movs r1, 0x2C + bl GetBoxMonData + strb r0, [r4] + mov r0, r9 + movs r1, 0x2C + adds r2, r4, 0 + bl SetMonData +_08041B02: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bls _08041A1A + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80419A8 + + thumb_func_start pokemon_get_eggmoves +pokemon_get_eggmoves: @ 8041B1C + push {r4-r7,lr} + mov r7, r8 + push {r7} + mov r8, r1 + movs r6, 0 + movs r4, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r3, r0, 16 + movs r2, 0 + ldr r5, _08041B44 @ =gEggMoves + ldrh r1, [r5] + ldr r7, _08041B48 @ =0x00004e20 + adds r0, r3, r7 + cmp r1, r0 + bne _08041B4C + movs r4, 0x1 + b _08041B6E + .align 2, 0 +_08041B44: .4byte gEggMoves +_08041B48: .4byte 0x00004e20 +_08041B4C: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldr r0, _08041BB8 @ =0x00000471 + ldr r5, _08041BBC @ =gEggMoves + cmp r2, r0 + bhi _08041B6E + lsls r0, r2, 1 + adds r0, r5 + ldrh r1, [r0] + ldr r7, _08041BC0 @ =0x00004e20 + adds r0, r3, r7 + cmp r1, r0 + bne _08041B4C + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_08041B6E: + movs r2, 0 + lsls r0, r4, 1 + adds r0, r5 + ldrh r0, [r0] + ldr r1, _08041BC0 @ =0x00004e20 + cmp r0, r1 + bhi _08041BAA + adds r7, r5, 0 + adds r3, r1, 0 +_08041B80: + lsls r1, r2, 1 + add r1, r8 + adds r0, r4, r2 + lsls r0, 1 + adds r0, r7 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x9 + bhi _08041BAA + adds r0, r4, r2 + lsls r0, 1 + adds r0, r5 + ldrh r0, [r0] + cmp r0, r3 + bls _08041B80 +_08041BAA: + lsls r0, r6, 24 + lsrs r0, 24 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08041BB8: .4byte 0x00000471 +_08041BBC: .4byte gEggMoves +_08041BC0: .4byte 0x00004e20 + thumb_func_end pokemon_get_eggmoves + + thumb_func_start daycare_build_child_moveset +daycare_build_child_moveset: @ 8041BC4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + adds r7, r0, 0 + mov r10, r1 + mov r9, r2 + movs r0, 0 + str r0, [sp] + movs r6, 0 + ldr r5, _08041CC8 @ =gUnknown_03000500 + movs r2, 0 + ldr r4, _08041CCC @ =gUnknown_030004D8 + ldr r3, _08041CD0 @ =gUnknown_030004E0 +_08041BE4: + lsls r1, r6, 1 + adds r0, r1, r5 + strh r2, [r0] + adds r0, r1, r4 + strh r2, [r0] + adds r1, r3 + strh r2, [r1] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x3 + bls _08041BE4 + movs r6, 0 + ldr r2, _08041CD4 @ =gUnknown_030004E8 + movs r1, 0 +_08041C02: + lsls r0, r6, 1 + adds r0, r2 + strh r1, [r0] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x9 + bls _08041C02 + movs r6, 0 + ldr r2, _08041CD8 @ =gUnknown_03000470 + movs r1, 0 +_08041C18: + lsls r0, r6, 1 + adds r0, r2 + strh r1, [r0] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x31 + bls _08041C18 + adds r0, r7, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + ldr r1, _08041CD8 @ =gUnknown_03000470 + bl sub_804051C + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + movs r6, 0 + ldr r1, _08041CCC @ =gUnknown_030004D8 + mov r8, r1 +_08041C46: + adds r5, r6, 0 + adds r5, 0xD + mov r0, r10 + adds r1, r5, 0 + bl GetBoxMonData + lsls r4, r6, 1 + mov r2, r8 + adds r1, r4, r2 + strh r0, [r1] + mov r0, r9 + adds r1, r5, 0 + bl GetBoxMonData + ldr r1, _08041CC8 @ =gUnknown_03000500 + adds r4, r1 + strh r0, [r4] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x3 + bls _08041C46 + ldr r1, _08041CD4 @ =gUnknown_030004E8 + adds r0, r7, 0 + bl pokemon_get_eggmoves + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r6, 0 +_08041C82: + ldr r0, _08041CCC @ =gUnknown_030004D8 + lsls r1, r6, 1 + adds r2, r1, r0 + ldrh r1, [r2] + mov r9, r0 + cmp r1, 0 + beq _08041CF8 + movs r5, 0 + cmp r5, r8 + bcs _08041CEA + adds r4, r2, 0 + ldr r2, _08041CDC @ =0x0000ffff +_08041C9A: + ldr r0, _08041CD4 @ =gUnknown_030004E8 + lsls r1, r5, 1 + adds r1, r0 + ldrh r0, [r4] + ldrh r1, [r1] + cmp r0, r1 + bne _08041CE0 + adds r1, r0, 0 + adds r0, r7, 0 + str r2, [sp, 0x8] + bl GiveMoveToMon + lsls r0, 16 + lsrs r0, 16 + ldr r2, [sp, 0x8] + cmp r0, r2 + bne _08041CEA + ldrh r1, [r4] + adds r0, r7, 0 + bl DeleteFirstMoveAndGiveMoveToMon + b _08041CEA + .align 2, 0 +_08041CC8: .4byte gUnknown_03000500 +_08041CCC: .4byte gUnknown_030004D8 +_08041CD0: .4byte gUnknown_030004E0 +_08041CD4: .4byte gUnknown_030004E8 +_08041CD8: .4byte gUnknown_03000470 +_08041CDC: .4byte 0x0000ffff +_08041CE0: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bcc _08041C9A +_08041CEA: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r3, _08041E14 @ =gUnknown_030004D8 + mov r9, r3 + cmp r6, 0x3 + bls _08041C82 +_08041CF8: + movs r6, 0 +_08041CFA: + lsls r0, r6, 1 + mov r2, r9 + adds r1, r0, r2 + ldrh r1, [r1] + adds r2, r0, 0 + adds r6, 0x1 + mov r8, r6 + cmp r1, 0 + beq _08041D5C + movs r5, 0 + ldr r0, _08041E14 @ =gUnknown_030004D8 + adds r4, r2, r0 + ldr r6, _08041E18 @ =0x0000ffff + mov r9, r0 +_08041D16: + ldr r3, _08041E1C @ =0x00000121 + adds r0, r5, r3 + lsls r0, 16 + lsrs r0, 16 + bl ItemIdToBattleMoveId + ldrh r1, [r4] + lsls r0, 16 + lsrs r0, 16 + cmp r1, r0 + bne _08041D52 + lsls r1, r5, 24 + lsrs r1, 24 + adds r0, r7, 0 + bl sub_8040374 + cmp r0, 0 + beq _08041D52 + ldrh r1, [r4] + adds r0, r7, 0 + bl GiveMoveToMon + lsls r0, 16 + lsrs r0, 16 + cmp r0, r6 + bne _08041D52 + ldrh r1, [r4] + adds r0, r7, 0 + bl DeleteFirstMoveAndGiveMoveToMon +_08041D52: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x39 + bls _08041D16 +_08041D5C: + mov r1, r8 + lsls r0, r1, 16 + lsrs r6, r0, 16 + cmp r6, 0x3 + bls _08041CFA + movs r6, 0 + mov r2, r9 + ldrh r0, [r2] + ldr r3, _08041E20 @ =gUnknown_030004E0 + mov r10, r3 + cmp r0, 0 + beq _08041DC6 + mov r4, r9 + ldr r0, _08041E24 @ =gUnknown_03000500 + mov r9, r0 + mov r12, r10 +_08041D7C: + movs r5, 0 + lsls r2, r6, 1 + adds r6, 0x1 + mov r8, r6 + adds r3, r2, r4 +_08041D86: + lsls r0, r5, 1 + add r0, r9 + ldrh r2, [r3] + adds r1, r2, 0 + ldrh r0, [r0] + cmp r1, r0 + bne _08041DA8 + cmp r1, 0 + beq _08041DA8 + ldr r1, [sp] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp] + lsls r1, 1 + add r1, r12 + strh r2, [r1] +_08041DA8: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x3 + bls _08041D86 + mov r1, r8 + lsls r0, r1, 16 + lsrs r6, r0, 16 + cmp r6, 0x3 + bhi _08041DC6 + lsls r0, r6, 1 + adds r0, r4 + ldrh r0, [r0] + cmp r0, 0 + bne _08041D7C +_08041DC6: + movs r6, 0 + mov r2, r10 + ldrh r0, [r2] + cmp r0, 0 + beq _08041E50 +_08041DD0: + movs r5, 0 + adds r3, r6, 0x1 + mov r8, r3 + ldr r0, [sp, 0x4] + cmp r5, r0 + bcs _08041E38 + ldr r2, _08041E18 @ =0x0000ffff +_08041DDE: + ldr r1, _08041E28 @ =gUnknown_03000470 + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + cmp r1, 0 + beq _08041E2C + lsls r0, r6, 1 + mov r3, r10 + adds r4, r0, r3 + ldrh r0, [r4] + cmp r0, r1 + bne _08041E2C + adds r1, r0, 0 + adds r0, r7, 0 + str r2, [sp, 0x8] + bl GiveMoveToMon + lsls r0, 16 + lsrs r0, 16 + ldr r2, [sp, 0x8] + cmp r0, r2 + bne _08041E38 + ldrh r1, [r4] + adds r0, r7, 0 + bl DeleteFirstMoveAndGiveMoveToMon + b _08041E38 + .align 2, 0 +_08041E14: .4byte gUnknown_030004D8 +_08041E18: .4byte 0x0000ffff +_08041E1C: .4byte 0x00000121 +_08041E20: .4byte gUnknown_030004E0 +_08041E24: .4byte gUnknown_03000500 +_08041E28: .4byte gUnknown_03000470 +_08041E2C: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, [sp, 0x4] + cmp r5, r0 + bcc _08041DDE +_08041E38: + mov r1, r8 + lsls r0, r1, 16 + lsrs r6, r0, 16 + cmp r6, 0x3 + bhi _08041E50 + ldr r0, _08041E60 @ =gUnknown_030004E0 + lsls r1, r6, 1 + adds r1, r0 + ldrh r1, [r1] + mov r10, r0 + cmp r1, 0 + bne _08041DD0 +_08041E50: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08041E60: .4byte gUnknown_030004E0 + thumb_func_end daycare_build_child_moveset + + thumb_func_start sub_8041E64 +sub_8041E64: @ 8041E64 + adds r3, r0, 0 + movs r1, 0x8C + lsls r1, 1 + adds r0, r3, r1 + movs r2, 0 + movs r1, 0 + strh r1, [r0] + movs r1, 0x8D + lsls r1, 1 + adds r0, r3, r1 + strb r2, [r0] + bx lr + thumb_func_end sub_8041E64 + + thumb_func_start sub_8041E7C +sub_8041E7C: @ 8041E7C + push {lr} + ldr r0, _08041E88 @ =gSaveBlock1 + 0x2F9C + bl sub_8041E64 + pop {r0} + bx r0 + .align 2, 0 +_08041E88: .4byte gSaveBlock1 + 0x2F9C + thumb_func_end sub_8041E7C + + thumb_func_start incense_effects +incense_effects: @ 8041E8C + push {r4-r7,lr} + adds r4, r0, 0 + adds r5, r1, 0 + ldrh r1, [r4] + movs r7, 0xB4 + lsls r7, 1 + cmp r1, r7 + beq _08041EA4 + movs r0, 0xAF + lsls r0, 1 + cmp r1, r0 + bne _08041EE6 +_08041EA4: + adds r0, r5, 0 + movs r1, 0xC + bl GetBoxMonData + lsls r0, 16 + lsrs r6, r0, 16 + adds r0, r5, 0 + adds r0, 0x50 + movs r1, 0xC + bl GetBoxMonData + lsls r0, 16 + lsrs r2, r0, 16 + ldrh r0, [r4] + cmp r0, r7 + bne _08041ED0 + cmp r6, 0xDD + beq _08041ED0 + cmp r2, 0xDD + beq _08041ED0 + movs r0, 0xCA + strh r0, [r4] +_08041ED0: + ldrh r1, [r4] + movs r0, 0xAF + lsls r0, 1 + cmp r1, r0 + bne _08041EE6 + cmp r6, 0xDC + beq _08041EE6 + cmp r2, 0xDC + beq _08041EE6 + movs r0, 0xB7 + strh r0, [r4] +_08041EE6: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end incense_effects + + thumb_func_start sub_8041EEC +sub_8041EEC: @ 8041EEC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + mov r8, r0 + adds r6, r1, 0 + movs r4, 0 + movs r7, 0x1 +_08041EFC: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + mov r1, r8 + adds r5, r1, r0 + adds r0, r5, 0 + movs r1, 0xB + bl GetBoxMonData + lsls r1, r4, 1 + add r1, sp + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x84 + bne _08041F26 + adds r0, r4, 0 + eors r0, r7 + strb r0, [r6] + strb r4, [r6, 0x1] + b _08041F3C +_08041F26: + adds r0, r5, 0 + bl GetBoxMonGender + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFE + bne _08041F3C + strb r4, [r6] + adds r0, r4, 0 + eors r0, r7 + strb r0, [r6, 0x1] +_08041F3C: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _08041EFC + ldrb r0, [r6] + lsls r0, 1 + add r0, sp + ldrh r0, [r0] + bl sub_8041870 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1D + bne _08041F6E + movs r0, 0x8C + lsls r0, 1 + add r0, r8 + ldrh r1, [r0] + movs r0, 0x80 + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + beq _08041F6E + movs r4, 0x20 +_08041F6E: + ldr r0, _08041FC0 @ =0x00000183 + cmp r4, r0 + bne _08041F88 + subs r0, 0x6B + add r0, r8 + ldrh r1, [r0] + movs r0, 0x80 + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + beq _08041F88 + movs r4, 0xC1 + lsls r4, 1 +_08041F88: + ldrb r0, [r6, 0x1] + lsls r0, 1 + add r0, sp + ldrh r0, [r0] + cmp r0, 0x84 + bne _08041FB2 + ldrb r1, [r6] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 4 + add r0, r8 + bl GetBoxMonGender + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFE + beq _08041FB2 + ldrb r1, [r6, 0x1] + ldrb r0, [r6] + strb r0, [r6, 0x1] + strb r1, [r6] +_08041FB2: + adds r0, r4, 0 + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08041FC0: .4byte 0x00000183 + thumb_func_end sub_8041EEC + + thumb_func_start sub_8041FC4 +sub_8041FC4: @ 8041FC4 + push {r4-r6,lr} + sub sp, 0x6C + adds r5, r0, 0 + add r6, sp, 0x64 + adds r1, r6, 0 + bl sub_8041EEC + add r4, sp, 0x68 + strh r0, [r4] + adds r0, r4, 0 + adds r1, r5, 0 + bl incense_effects + ldrh r1, [r4] + mov r0, sp + adds r2, r5, 0 + bl sub_80420FC + mov r0, sp + adds r1, r5, 0 + bl sub_80419A8 + ldrb r0, [r6, 0x1] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 4 + adds r1, r5, r1 + ldrb r0, [r6] + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 4 + adds r2, r5, r2 + mov r0, sp + bl daycare_build_child_moveset + mov r2, sp + adds r2, 0x6A + movs r0, 0x1 + strb r0, [r2] + mov r0, sp + movs r1, 0x2D + bl SetMonData + ldr r0, _08042040 @ =gPlayerParty + movs r1, 0xFA + lsls r1, 1 + adds r0, r1 + mov r1, sp + movs r2, 0x64 + bl memcpy + bl party_compaction + bl CalculatePlayerPartyCount + adds r0, r5, 0 + bl sub_8041E64 + add sp, 0x6C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08042040: .4byte gPlayerParty + thumb_func_end sub_8041FC4 + + thumb_func_start sub_8042044 +sub_8042044: @ 8042044 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x18 + adds r7, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r5, 16 + lsrs r5, 16 + lsls r6, 24 + lsrs r6, 24 + movs r4, 0 + str r4, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + adds r1, r5, 0 + movs r2, 0x5 + movs r3, 0x20 + bl CreateMon + movs r0, 0x12 + add r0, sp + mov r8, r0 + strb r4, [r0] + movs r1, 0x4 + add r0, sp, 0x10 + strh r1, [r0] + mov r4, sp + adds r4, 0x13 + movs r0, 0x1 + mov r9, r0 + mov r0, r9 + strb r0, [r4] + adds r0, r7, 0 + movs r1, 0x26 + add r2, sp, 0x10 + bl SetMonData + ldr r2, _080420F4 @ =gUnknown_08209AD4 + adds r0, r7, 0 + movs r1, 0x2 + bl SetMonData + lsls r2, r5, 3 + subs r2, r5 + lsls r2, 2 + ldr r0, _080420F8 @ =gBaseStats + 0x11 @ egg cycles offset + adds r2, r0 + adds r0, r7, 0 + movs r1, 0x20 + bl SetMonData + adds r0, r7, 0 + movs r1, 0x24 + mov r2, r8 + bl SetMonData + adds r0, r7, 0 + movs r1, 0x3 + adds r2, r4, 0 + bl SetMonData + cmp r6, 0 + beq _080420D6 + add r2, sp, 0x14 + movs r0, 0xFD + strb r0, [r2] + adds r0, r7, 0 + movs r1, 0x23 + bl SetMonData +_080420D6: + mov r2, sp + adds r2, 0x15 + mov r0, r9 + strb r0, [r2] + adds r0, r7, 0 + movs r1, 0x2D + bl SetMonData + add sp, 0x18 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080420F4: .4byte gUnknown_08209AD4 +_080420F8: .4byte gBaseStats + 0x11 @ egg cycles offset + thumb_func_end sub_8042044 + + thumb_func_start sub_80420FC +sub_80420FC: @ 80420FC + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x14 + adds r6, r0, 0 + adds r5, r1, 0 + adds r4, r2, 0 + lsls r5, 16 + lsrs r5, 16 + bl Random + movs r1, 0x8C + lsls r1, 1 + adds r4, r1 + ldrh r1, [r4] + lsls r0, 16 + orrs r1, r0 + movs r0, 0x1 + mov r8, r0 + str r0, [sp] + str r1, [sp, 0x4] + movs r4, 0 + str r4, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r6, 0 + adds r1, r5, 0 + movs r2, 0x5 + movs r3, 0x20 + bl CreateMon + movs r1, 0x12 + add r1, sp + mov r9, r1 + strb r4, [r1] + movs r1, 0x4 + add r0, sp, 0x10 + strh r1, [r0] + mov r4, sp + adds r4, 0x13 + mov r0, r8 + strb r0, [r4] + adds r0, r6, 0 + movs r1, 0x26 + add r2, sp, 0x10 + bl SetMonData + ldr r2, _08042198 @ =gUnknown_08209AD4 + adds r0, r6, 0 + movs r1, 0x2 + bl SetMonData + lsls r2, r5, 3 + subs r2, r5 + lsls r2, 2 + ldr r0, _0804219C @ =gBaseStats + 0x11 @ egg cycles offset + adds r2, r0 + adds r0, r6, 0 + movs r1, 0x20 + bl SetMonData + adds r0, r6, 0 + movs r1, 0x24 + mov r2, r9 + bl SetMonData + adds r0, r6, 0 + movs r1, 0x3 + adds r2, r4, 0 + bl SetMonData + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08042198: .4byte gUnknown_08209AD4 +_0804219C: .4byte gBaseStats + 0x11 @ egg cycles offset + thumb_func_end sub_80420FC + + thumb_func_start sp0B8_daycare +sp0B8_daycare: @ 80421A0 + push {lr} + ldr r0, _080421AC @ =gSaveBlock1 + 0x2F9C + bl sub_8041FC4 + pop {r0} + bx r0 + .align 2, 0 +_080421AC: .4byte gSaveBlock1 + 0x2F9C + thumb_func_end sp0B8_daycare + + thumb_func_start sub_80421B0 +sub_80421B0: @ 80421B0 + push {r4-r7,lr} + sub sp, 0x8 + adds r7, r0, 0 + movs r2, 0 + movs r6, 0 + adds r5, r7, 0 +_080421BC: + lsls r4, r6, 2 + adds r0, r5, 0 + movs r1, 0x5 + str r2, [sp, 0x4] + bl GetBoxMonData + ldr r2, [sp, 0x4] + cmp r0, 0 + beq _080421DE + movs r0, 0x88 + lsls r0, 1 + adds r1, r7, r0 + adds r1, r4 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + adds r2, 0x1 +_080421DE: + adds r5, 0x50 + adds r6, 0x1 + cmp r6, 0x1 + bls _080421BC + movs r1, 0x8C + lsls r1, 1 + adds r0, r7, r1 + ldrh r0, [r0] + cmp r0, 0 + bne _08042226 + cmp r2, 0x2 + bne _08042226 + subs r1, 0x4 + adds r0, r7, r1 + ldrb r0, [r0] + cmp r0, 0xFF + bne _08042226 + adds r0, r7, 0 + bl daycare_relationship_score + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + muls r0, r1 + ldr r1, _08042240 @ =0x0000ffff + bl __udivsi3 + cmp r4, r0 + bls _08042226 + bl sub_8041940 +_08042226: + movs r0, 0x8D + lsls r0, 1 + adds r1, r7, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _08042290 + movs r6, 0 + b _08042288 + .align 2, 0 +_08042240: .4byte 0x0000ffff +_08042244: + movs r0, 0x64 + adds r1, r6, 0 + muls r1, r0 + ldr r0, _08042270 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + beq _08042286 + adds r0, r4, 0 + movs r1, 0x20 + bl GetMonData + str r0, [sp] + cmp r0, 0 + bne _08042278 + ldr r0, _08042274 @ =gUnknown_0202E8CC + strh r6, [r0] + movs r0, 0x1 + b _08042292 + .align 2, 0 +_08042270: .4byte gPlayerParty +_08042274: .4byte gUnknown_0202E8CC +_08042278: + subs r0, 0x1 + str r0, [sp] + adds r0, r4, 0 + movs r1, 0x20 + mov r2, sp + bl SetMonData +_08042286: + adds r6, 0x1 +_08042288: + ldr r0, _0804229C @ =gPlayerPartyCount + ldrb r0, [r0] + cmp r6, r0 + bcc _08042244 +_08042290: + movs r0, 0 +_08042292: + add sp, 0x8 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0804229C: .4byte gPlayerPartyCount + thumb_func_end sub_80421B0 + + thumb_func_start sub_80422A0 +sub_80422A0: @ 80422A0 + push {lr} + ldr r0, _080422B0 @ =gSaveBlock1 + 0x2F9C + bl sub_80421B0 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_080422B0: .4byte gSaveBlock1 + 0x2F9C + thumb_func_end sub_80422A0 + + thumb_func_start sub_80422B4 +sub_80422B4: @ 80422B4 + movs r1, 0x8C + lsls r1, 1 + adds r0, r1 + ldrh r1, [r0] + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + bx lr + thumb_func_end sub_80422B4 + + thumb_func_start sub_80422C4 +sub_80422C4: @ 80422C4 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0xB + bl GetBoxMonData + cmp r0, 0 + beq _080422FC + ldr r1, _0804231C @ =gStringVar1 + adds r0, r6, 0 + bl pokemon_get_nick_ + adds r0, r6, 0 + movs r1, 0x3 + bl GetBoxMonData + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _08042320 @ =gStringVar3 + adds r0, r6, 0 + movs r1, 0x7 + adds r2, r5, 0 + bl GetBoxMonData + adds r0, r5, 0 + adds r1, r4, 0 + bl ConvertInternationalString +_080422FC: + adds r4, r6, 0 + adds r4, 0x50 + adds r0, r4, 0 + movs r1, 0xB + bl GetBoxMonData + cmp r0, 0 + beq _08042314 + ldr r1, _08042324 @ =gStringVar2 + adds r0, r4, 0 + bl pokemon_get_nick_ +_08042314: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804231C: .4byte gStringVar1 +_08042320: .4byte gStringVar3 +_08042324: .4byte gStringVar2 + thumb_func_end sub_80422C4 + + thumb_func_start sub_8042328 +sub_8042328: @ 8042328 + push {r4-r6,lr} + ldr r6, _08042354 @ =gUnknown_03005CE0 + ldrb r0, [r6] + movs r5, 0x64 + muls r0, r5 + ldr r4, _08042358 @ =gPlayerParty + adds r0, r4 + ldr r1, _0804235C @ =gStringVar1 + bl pokemon_get_nick_ + ldrb r0, [r6] + muls r0, r5 + adds r0, r4 + movs r1, 0xB + bl GetBoxMonData + lsls r0, 16 + lsrs r0, 16 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08042354: .4byte gUnknown_03005CE0 +_08042358: .4byte gPlayerParty +_0804235C: .4byte gStringVar1 + thumb_func_end sub_8042328 + + thumb_func_start sp0B5_daycare +sp0B5_daycare: @ 8042360 + push {lr} + ldr r0, _0804236C @ =gSaveBlock1 + 0x2F9C + bl sub_80422C4 + pop {r0} + bx r0 + .align 2, 0 +_0804236C: .4byte gSaveBlock1 + 0x2F9C + thumb_func_end sp0B5_daycare + + thumb_func_start sp0B6_daycare +sp0B6_daycare: @ 8042370 + push {r4,lr} + ldr r4, _08042384 @ =gSaveBlock1 + 0x2F9C + adds r0, r4, 0 + bl sub_80422B4 + lsls r0, 24 + cmp r0, 0 + beq _08042388 + movs r0, 0x1 + b _080423A0 + .align 2, 0 +_08042384: .4byte gSaveBlock1 + 0x2F9C +_08042388: + adds r0, r4, 0 + bl daycare_count_pokemon + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _0804239A + movs r0, 0 + b _080423A0 +_0804239A: + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 +_080423A0: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sp0B6_daycare + + thumb_func_start sub_80423A8 +sub_80423A8: @ 80423A8 + push {r4-r6,lr} + adds r5, r1, 0 + movs r4, 0 + adds r1, r0, 0 +_080423B0: + movs r3, 0 + ldrh r0, [r1] + adds r2, r5, 0 +_080423B6: + ldrh r6, [r2] + cmp r0, r6 + bne _080423C0 + movs r0, 0x1 + b _080423D2 +_080423C0: + adds r2, 0x2 + adds r3, 0x1 + cmp r3, 0x1 + ble _080423B6 + adds r1, 0x2 + adds r4, 0x1 + cmp r4, 0x1 + ble _080423B0 + movs r0, 0 +_080423D2: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80423A8 + + thumb_func_start daycare_relationship_score +daycare_relationship_score: @ 80423D8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + movs r1, 0 + mov r8, r1 + mov r2, sp + adds r2, 0x8 + str r2, [sp, 0x1C] + add r1, sp, 0xC + mov r10, r1 + adds r2, 0xC + str r2, [sp, 0x20] + mov r1, sp + adds r1, 0x2 + ldr r2, _08042488 @ =gBaseStats + mov r9, r2 + ldr r5, [sp, 0x1C] + adds r7, r1, 0 + mov r6, sp + ldr r1, [sp, 0x20] + str r1, [sp, 0x24] + mov r2, r10 + str r2, [sp, 0x28] + adds r4, r0, 0 +_0804240E: + adds r0, r4, 0 + movs r1, 0xB + bl GetBoxMonData + strh r0, [r5] + adds r0, r4, 0 + movs r1, 0x1 + bl GetBoxMonData + ldr r1, [sp, 0x28] + stm r1!, {r0} + str r1, [sp, 0x28] + adds r0, r4, 0 + movs r1, 0 + bl GetBoxMonData + adds r1, r0, 0 + ldrh r0, [r5] + bl GetGenderFromSpeciesAndPersonality + lsls r0, 24 + lsrs r0, 24 + ldr r2, [sp, 0x24] + stm r2!, {r0} + str r2, [sp, 0x24] + ldrh r1, [r5] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r9 + ldrb r0, [r0, 0x14] + strh r0, [r6] + ldrh r1, [r5] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r9 + ldrb r0, [r0, 0x15] + strh r0, [r7] + adds r5, 0x2 + adds r7, 0x4 + adds r6, 0x4 + adds r4, 0x50 + movs r0, 0x1 + add r8, r0 + mov r1, r8 + cmp r1, 0x1 + bls _0804240E + mov r0, sp + ldrh r1, [r0] + cmp r1, 0xF + beq _08042484 + ldrh r0, [r0, 0x4] + cmp r0, 0xF + beq _08042484 + cmp r1, 0xD + bne _0804248C + cmp r0, 0xD + bne _08042490 +_08042484: + movs r0, 0 + b _080424E4 + .align 2, 0 +_08042488: .4byte gBaseStats +_0804248C: + cmp r0, 0xD + bne _0804249C +_08042490: + ldr r1, [sp, 0xC] + mov r2, r10 + ldr r0, [r2, 0x4] + cmp r1, r0 + beq _080424DE + b _080424E2 +_0804249C: + ldr r0, [sp, 0x14] + ldr r2, [sp, 0x20] + ldr r1, [r2, 0x4] + cmp r0, r1 + beq _08042484 + cmp r0, 0xFF + beq _08042484 + cmp r1, 0xFF + beq _08042484 + add r1, sp, 0x4 + mov r0, sp + bl sub_80423A8 + lsls r0, 24 + cmp r0, 0 + beq _08042484 + ldr r0, [sp, 0x1C] + ldrh r1, [r0, 0x2] + ldrh r0, [r0] + cmp r0, r1 + bne _080424D4 + ldr r1, [sp, 0xC] + mov r2, r10 + ldr r0, [r2, 0x4] + cmp r1, r0 + beq _080424E2 + movs r0, 0x46 + b _080424E4 +_080424D4: + ldr r1, [sp, 0xC] + mov r2, r10 + ldr r0, [r2, 0x4] + cmp r1, r0 + bne _080424E2 +_080424DE: + movs r0, 0x14 + b _080424E4 +_080424E2: + movs r0, 0x32 +_080424E4: + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end daycare_relationship_score + + thumb_func_start daycare_relationship_score_from_savegame +daycare_relationship_score_from_savegame: @ 80424F4 + push {lr} + ldr r0, _08042504 @ =gSaveBlock1 + 0x2F9C + bl daycare_relationship_score + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_08042504: .4byte gSaveBlock1 + 0x2F9C + thumb_func_end daycare_relationship_score_from_savegame + + thumb_func_start sp0B9_daycare_relationship_comment +sp0B9_daycare_relationship_comment: @ 8042508 + push {lr} + bl daycare_relationship_score_from_savegame + lsls r0, 24 + lsrs r0, 24 + adds r2, r0, 0 + movs r1, 0 + cmp r0, 0 + bne _0804251C + movs r1, 0x3 +_0804251C: + cmp r0, 0x14 + bne _08042522 + movs r1, 0x2 +_08042522: + cmp r0, 0x32 + bne _08042528 + movs r1, 0x1 +_08042528: + cmp r2, 0x46 + bne _0804252E + movs r1, 0 +_0804252E: + ldr r0, _08042540 @ =gStringVar4 + ldr r2, _08042544 @ =gUnknown_08209AC4 + lsls r1, 2 + adds r1, r2 + ldr r1, [r1] + bl StringCopy + pop {r0} + bx r0 + .align 2, 0 +_08042540: .4byte gStringVar4 +_08042544: .4byte gUnknown_08209AC4 + thumb_func_end sp0B9_daycare_relationship_comment + + thumb_func_start NameHasGenderSymbol +NameHasGenderSymbol: @ 8042548 + push {r4,r5,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + mov r2, sp + mov r1, sp + movs r0, 0 + strb r0, [r1, 0x1] + strb r0, [r2] + movs r3, 0 + ldrb r0, [r4] + cmp r0, 0xFF + beq _0804258C +_08042564: + adds r1, r4, r3 + ldrb r0, [r1] + cmp r0, 0xB5 + bne _08042572 + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] +_08042572: + ldrb r0, [r1] + cmp r0, 0xB6 + bne _0804257E + ldrb r0, [r2, 0x1] + adds r0, 0x1 + strb r0, [r2, 0x1] +_0804257E: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + adds r0, r4, r3 + ldrb r0, [r0] + cmp r0, 0xFF + bne _08042564 +_0804258C: + cmp r5, 0 + bne _080425A0 + mov r0, sp + ldrb r0, [r0] + cmp r0, 0 + beq _080425A0 + mov r0, sp + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _080425B4 +_080425A0: + cmp r5, 0xFE + bne _080425B8 + mov r0, sp + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _080425B8 + mov r0, sp + ldrb r0, [r0] + cmp r0, 0 + bne _080425B8 +_080425B4: + movs r0, 0x1 + b _080425BA +_080425B8: + movs r0, 0 +_080425BA: + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end NameHasGenderSymbol + + thumb_func_start AppendGenderSymbol +AppendGenderSymbol: @ 80425C4 + push {r4,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0 + bne _080425E4 + movs r1, 0 + bl NameHasGenderSymbol + lsls r0, 24 + cmp r0, 0 + bne _08042600 + ldr r1, _080425E0 @ =gOtherText_MaleSymbol3 + b _08042602 + .align 2, 0 +_080425E0: .4byte gOtherText_MaleSymbol3 +_080425E4: + cmp r1, 0xFE + bne _08042600 + adds r0, r4, 0 + movs r1, 0xFE + bl NameHasGenderSymbol + lsls r0, 24 + cmp r0, 0 + bne _08042600 + ldr r1, _080425FC @ =gOtherText_FemaleSymbol3 + b _08042602 + .align 2, 0 +_080425FC: .4byte gOtherText_FemaleSymbol3 +_08042600: + ldr r1, _08042610 @ =gOtherText_GenderlessSymbol +_08042602: + adds r0, r4, 0 + bl StringAppend + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08042610: .4byte gOtherText_GenderlessSymbol + thumb_func_end AppendGenderSymbol + + thumb_func_start MonAppendGenderSymbol +MonAppendGenderSymbol: @ 8042614 + push {r4,lr} + adds r4, r0, 0 + adds r0, r1, 0 + bl GetBoxMonGender + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl AppendGenderSymbol + pop {r4} + pop {r1} + bx r1 + thumb_func_end MonAppendGenderSymbol + + thumb_func_start DaycareLevelMenuGetText +DaycareLevelMenuGetText: @ 8042630 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x28 + mov r8, r0 + adds r7, r1, 0 + movs r0, 0xFF + strb r0, [r7] + movs r6, 0 + add r0, sp, 0x14 + mov r9, r0 +_08042648: + lsls r0, r6, 2 + adds r0, r6 + lsls r4, r0, 4 + add r4, r8 + lsls r0, 2 + mov r1, sp + adds r5, r1, r0 + adds r0, r4, 0 + adds r1, r5, 0 + bl pokemon_get_nick_ + adds r0, r5, 0 + adds r1, r4, 0 + bl MonAppendGenderSymbol + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x1 + bls _08042648 + adds r0, r7, 0 + mov r1, sp + bl StringCopy + ldr r4, _080426A8 @ =gOtherText_NewLine2 + adds r0, r7, 0 + adds r1, r4, 0 + bl StringAppend + adds r0, r7, 0 + mov r1, r9 + bl StringAppend + adds r0, r7, 0 + adds r1, r4, 0 + bl StringAppend + ldr r1, _080426AC @ =gOtherText_CancelAndLv + adds r0, r7, 0 + bl StringAppend + add sp, 0x28 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080426A8: .4byte gOtherText_NewLine2 +_080426AC: .4byte gOtherText_CancelAndLv + thumb_func_end DaycareLevelMenuGetText + + thumb_func_start DaycareLevelMenuGetLevelText +DaycareLevelMenuGetLevelText: @ 80426B0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + adds r4, r1, 0 + movs r0, 0xFF + strb r0, [r4] + movs r5, 0 + movs r0, 0xFC + mov r8, r0 + movs r7, 0x14 +_080426C6: + lsls r2, r5, 2 + adds r0, r2, r5 + lsls r0, 4 + adds r0, r6, r0 + movs r3, 0x88 + lsls r3, 1 + adds r1, r6, r3 + adds r1, r2 + ldr r1, [r1] + bl sub_8041664 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x34 + strb r0, [r4] + mov r0, r8 + strb r0, [r4, 0x1] + strb r7, [r4, 0x2] + movs r0, 0x6 + strb r0, [r4, 0x3] + adds r0, r4, 0x4 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r4, r0, 0 + mov r3, r8 + strb r3, [r4] + strb r7, [r4, 0x1] + movs r0, 0 + strb r0, [r4, 0x2] + adds r0, r4, 0x3 + ldr r1, _08042728 @ =gOtherText_NewLine2 + bl StringCopy + adds r4, r0, 0 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x1 + bls _080426C6 + movs r0, 0xFF + strb r0, [r4] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08042728: .4byte gOtherText_NewLine2 + thumb_func_end DaycareLevelMenuGetLevelText + + thumb_func_start DaycareLevelMenuProcessKeyInput +DaycareLevelMenuProcessKeyInput: @ 804272C + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + ldr r0, _08042760 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08042768 + ldr r0, _08042764 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r2, [r1, 0x8] + movs r3, 0x8 + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _08042816 + subs r0, r2, 0x1 + strh r0, [r1, 0x8] + movs r0, 0x1 + negs r0, r0 + b _0804278A + .align 2, 0 +_08042760: .4byte gMain +_08042764: .4byte gTasks +_08042768: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0804279C + ldr r0, _08042798 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldrh r2, [r1, 0x8] + movs r3, 0x8 + ldrsh r0, [r1, r3] + cmp r0, 0x2 + beq _08042816 + adds r0, r2, 0x1 + strh r0, [r1, 0x8] + movs r0, 0x1 +_0804278A: + bl MoveMenuCursor + movs r0, 0x5 + bl PlaySE + b _08042816 + .align 2, 0 +_08042798: .4byte gTasks +_0804279C: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080427E8 + bl sub_8072DEC + movs r0, 0x5 + bl PlaySE + ldr r3, _080427DC @ =gUnknown_03005CE0 + ldr r2, _080427E0 @ =gScriptResult + ldr r1, _080427E4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0, 0x8] + strh r0, [r2] + strb r0, [r3] + adds r0, r4, 0 + bl DestroyTask + movs r0, 0xF + movs r1, 0x6 + movs r2, 0x1D + movs r3, 0xD + bl MenuZeroFillWindowRect + bl EnableBothScriptContexts + b _08042816 + .align 2, 0 +_080427DC: .4byte gUnknown_03005CE0 +_080427E0: .4byte gScriptResult +_080427E4: .4byte gTasks +_080427E8: + movs r4, 0x2 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _08042816 + bl sub_8072DEC + ldr r0, _0804281C @ =gUnknown_03005CE0 + ldr r1, _08042820 @ =gScriptResult + strh r4, [r1] + movs r1, 0x2 + strb r1, [r0] + adds r0, r5, 0 + bl DestroyTask + movs r0, 0xF + movs r1, 0x6 + movs r2, 0x1D + movs r3, 0xD + bl MenuZeroFillWindowRect + bl EnableBothScriptContexts +_08042816: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0804281C: .4byte gUnknown_03005CE0 +_08042820: .4byte gScriptResult + thumb_func_end DaycareLevelMenuProcessKeyInput + + thumb_func_start ShowDaycareLevelMenu +ShowDaycareLevelMenu: @ 8042824 + push {r4,lr} + sub sp, 0x6C + movs r0, 0xF + movs r1, 0x6 + movs r2, 0x1D + movs r3, 0xD + bl MenuDrawTextWindow + ldr r4, _08042880 @ =gSaveBlock1 + 0x2F9C + adds r0, r4, 0 + add r1, sp, 0x8 + bl DaycareLevelMenuGetText + add r0, sp, 0x8 + movs r1, 0x10 + movs r2, 0x7 + bl MenuPrint + adds r0, r4, 0 + add r1, sp, 0x8 + bl DaycareLevelMenuGetLevelText + add r0, sp, 0x8 + movs r1, 0xCE + movs r2, 0x38 + movs r3, 0x1 + bl MenuPrint_PixelCoords + movs r0, 0 + str r0, [sp] + movs r0, 0xD + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x10 + movs r2, 0x7 + movs r3, 0x3 + bl InitMenu + ldr r0, _08042884 @ =sub_804272C + movs r1, 0x3 + bl CreateTask + add sp, 0x6C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08042880: .4byte gSaveBlock1 + 0x2F9C +_08042884: .4byte DaycareLevelMenuProcessKeyInput + thumb_func_end ShowDaycareLevelMenu + + thumb_func_start ChooseSendDaycareMon +ChooseSendDaycareMon: @ 8042888 + push {lr} + movs r0, 0x6 + movs r1, 0 + bl OpenPartyMenu + ldr r1, _0804289C @ =gMain + ldr r0, _080428A0 @ =c2_exit_to_overworld_2_switch + str r0, [r1, 0x8] + pop {r0} + bx r0 + .align 2, 0 +_0804289C: .4byte gMain +_080428A0: .4byte c2_exit_to_overworld_2_switch + thumb_func_end ChooseSendDaycareMon + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/egg_hatch.s b/asm/egg_hatch.s new file mode 100644 index 000000000..ae27d6e31 --- /dev/null +++ b/asm/egg_hatch.s @@ -0,0 +1,1786 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start CreatedHatchedMon +CreatedHatchedMon: @ 80428A4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x48 + adds r6, r0, 0 + adds r5, r1, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + movs r4, 0 + add r7, sp, 0x18 + mov r0, sp + adds r0, 0x31 + str r0, [sp, 0x38] + mov r1, sp + adds r1, 0x32 + str r1, [sp, 0x3C] + add r0, sp, 0x30 + mov r9, r0 + adds r1, 0x1 + str r1, [sp, 0x40] + mov r0, sp + adds r0, 0x34 + str r0, [sp, 0x44] +_080428DE: + adds r1, r4, 0 + adds r1, 0xD + adds r0, r6, 0 + bl GetMonData + lsls r1, r4, 1 + add r1, sp + adds r1, 0x10 + strh r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _080428DE + adds r0, r6, 0 + movs r1, 0 + bl GetMonData + mov r8, r0 + movs r4, 0 +_08042906: + adds r1, r4, 0 + adds r1, 0x27 + adds r0, r6, 0 + bl GetMonData + lsls r1, r4, 2 + adds r1, r7, r1 + str r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _08042906 + adds r0, r6, 0 + movs r1, 0x25 + bl GetMonData + ldr r1, [sp, 0x38] + strb r0, [r1] + adds r0, r6, 0 + movs r1, 0x8 + bl GetMonData + ldr r1, [sp, 0x3C] + strb r0, [r1] + adds r0, r6, 0 + movs r1, 0x22 + bl GetMonData + str r0, [sp, 0x34] + movs r0, 0x1 + str r0, [sp] + mov r0, r8 + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + str r0, [sp, 0xC] + adds r0, r5, 0 + mov r1, r10 + movs r2, 0x5 + movs r3, 0x20 + bl CreateMon + movs r4, 0 +_0804295E: + adds r1, r4, 0 + adds r1, 0xD + lsls r0, r4, 1 + mov r2, sp + adds r2, r0 + adds r2, 0x10 + adds r0, r5, 0 + bl SetMonData + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _0804295E + movs r4, 0 +_0804297C: + adds r1, r4, 0 + adds r1, 0x27 + lsls r2, r4, 2 + adds r2, r7, r2 + adds r0, r5, 0 + bl SetMonData + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _0804297C + movs r0, 0x2 + mov r1, r9 + strb r0, [r1] + adds r0, r5, 0 + movs r1, 0x3 + mov r2, r9 + bl SetMonData + adds r0, r5, 0 + movs r1, 0x25 + ldr r2, [sp, 0x38] + bl SetMonData + adds r0, r5, 0 + movs r1, 0x8 + ldr r2, [sp, 0x3C] + bl SetMonData + movs r0, 0x78 + ldr r1, [sp, 0x40] + strb r0, [r1] + adds r0, r5, 0 + movs r1, 0x20 + ldr r2, [sp, 0x40] + bl SetMonData + adds r0, r5, 0 + movs r1, 0x22 + ldr r2, [sp, 0x44] + bl SetMonData + adds r0, r6, 0 + adds r1, r5, 0 + movs r2, 0x64 + bl memcpy + add sp, 0x48 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end CreatedHatchedMon + + thumb_func_start AddHatchedMonToParty +AddHatchedMonToParty: @ 80429EC + push {r4-r6,lr} + sub sp, 0x14 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + adds r5, r0, 0 + muls r5, r1 + ldr r0, _08042A9C @ =gPlayerParty + adds r5, r0 + ldr r1, _08042AA0 @ =gEnemyParty + adds r0, r5, 0 + bl CreatedHatchedMon + add r2, sp, 0xC + movs r6, 0 + strb r6, [r2] + adds r0, r5, 0 + movs r1, 0x2D + bl SetMonData + adds r0, r5, 0 + movs r1, 0xB + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + mov r0, sp + adds r1, r4, 0 + bl GetSpeciesName + adds r0, r5, 0 + movs r1, 0x2 + mov r2, sp + bl SetMonData + adds r0, r4, 0 + bl SpeciesToNationalPokedexNum + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r4, 0 + movs r1, 0x2 + bl sub_8090D90 + adds r0, r4, 0 + movs r1, 0x3 + bl sub_8090D90 + ldr r1, _08042AA4 @ =gStringVar1 + adds r0, r5, 0 + bl pokemon_get_nick + mov r2, sp + adds r2, 0xE + movs r0, 0x4 + strh r0, [r2] + adds r0, r5, 0 + movs r1, 0x26 + bl SetMonData + add r2, sp, 0x10 + strh r6, [r2] + adds r0, r5, 0 + movs r1, 0x24 + bl SetMonData + bl sav1_map_get_name + mov r2, sp + adds r2, 0x12 + strb r0, [r2] + adds r0, r5, 0 + movs r1, 0x23 + bl SetMonData + adds r0, r5, 0 + bl sub_8040B1C + adds r0, r5, 0 + bl CalculateMonStats + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08042A9C: .4byte gPlayerParty +_08042AA0: .4byte gEnemyParty +_08042AA4: .4byte gStringVar1 + thumb_func_end AddHatchedMonToParty + + thumb_func_start ScriptHatchMon +ScriptHatchMon: @ 8042AA8 + push {lr} + ldr r0, _08042AB8 @ =gUnknown_0202E8CC + ldrb r0, [r0] + bl AddHatchedMonToParty + pop {r0} + bx r0 + .align 2, 0 +_08042AB8: .4byte gUnknown_0202E8CC + thumb_func_end ScriptHatchMon + + thumb_func_start sub_8042ABC +sub_8042ABC: @ 8042ABC + push {r4-r6,lr} + sub sp, 0x20 + adds r5, r0, 0 + lsls r4, r1, 24 + lsrs r4, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + adds r0, r5, r0 + mov r1, sp + bl pokemon_get_nick_ + lsls r0, r4, 3 + subs r0, r4 + lsls r1, r0, 3 + adds r0, r5, r1 + adds r0, 0xC0 + ldrh r0, [r0] + cmp r0, 0 + beq _08042B40 + adds r0, r1, 0 + adds r0, 0xA0 + adds r5, r0 + adds r6, r5, 0 + adds r6, 0x2C + mov r0, sp + adds r1, r6, 0 + bl StringCompareWithoutExtCtrlCodes + cmp r0, 0 + bne _08042B08 + ldr r0, _08042B30 @ =gSaveBlock2 + adds r1, r5, 0 + adds r1, 0x24 + bl StringCompareWithoutExtCtrlCodes + cmp r0, 0 + beq _08042B40 +_08042B08: + ldr r0, _08042B34 @ =gStringVar1 + mov r1, sp + bl StringCopy + ldr r4, _08042B38 @ =gStringVar2 + adds r1, r5, 0 + adds r1, 0x24 + adds r0, r4, 0 + bl StringCopy + ldr r0, _08042B3C @ =gStringVar3 + adds r1, r6, 0 + bl StringCopy + adds r0, r4, 0 + bl sub_814A568 + movs r0, 0x1 + b _08042B42 + .align 2, 0 +_08042B30: .4byte gSaveBlock2 +_08042B34: .4byte gStringVar1 +_08042B38: .4byte gStringVar2 +_08042B3C: .4byte gStringVar3 +_08042B40: + movs r0, 0 +_08042B42: + add sp, 0x20 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8042ABC + + thumb_func_start sub_8042B4C +sub_8042B4C: @ 8042B4C + push {lr} + ldr r0, _08042B60 @ =gSaveBlock1 + 0x2F9C + ldr r1, _08042B64 @ =gUnknown_0202E8CC + ldrb r1, [r1] + bl sub_8042ABC + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_08042B60: .4byte gSaveBlock1 + 0x2F9C +_08042B64: .4byte gUnknown_0202E8CC + thumb_func_end sub_8042B4C + + thumb_func_start EggHatchCreateMonSprite +EggHatchCreateMonSprite: @ 8042B68 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0xC + lsls r0, 24 + lsrs r3, r0, 24 + adds r4, r3, 0 + lsls r1, 24 + lsrs r6, r1, 24 + lsls r2, 24 + lsrs r1, r2, 24 + adds r2, r1, 0 + movs r5, 0 + mov r9, r5 + movs r7, 0 + cmp r3, 0 + bne _08042B96 + movs r0, 0x64 + muls r1, r0 + ldr r0, _08042BB0 @ =gPlayerParty + adds r7, r1, r0 + movs r5, 0x1 +_08042B96: + cmp r3, 0x1 + bne _08042BA6 + movs r0, 0x64 + adds r1, r2, 0 + muls r1, r0 + ldr r0, _08042BB0 @ =gPlayerParty + adds r7, r1, r0 + movs r5, 0x3 +_08042BA6: + cmp r6, 0 + beq _08042BB4 + cmp r6, 0x1 + beq _08042C14 + b _08042C50 + .align 2, 0 +_08042BB0: .4byte gPlayerParty +_08042BB4: + adds r0, r7, 0 + movs r1, 0xB + bl GetMonData + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r7, 0 + movs r1, 0 + bl GetMonData + mov r8, r0 + lsls r0, r5, 3 + ldr r1, _08042C04 @ =gMonFrontPicTable + adds r0, r1 + ldr r1, _08042C08 @ =gMonFrontPicCoords + lsls r2, r5, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + ldr r3, _08042C0C @ =0x02000000 + ldr r6, _08042C10 @ =gUnknown_081FAF4C + lsls r4, 1 + adds r4, 0x1 + lsls r4, 2 + adds r4, r6 + ldr r4, [r4] + str r4, [sp] + str r5, [sp, 0x4] + mov r4, r8 + str r4, [sp, 0x8] + bl sub_800D334 + adds r0, r7, 0 + bl sub_8040990 + bl LoadCompressedObjectPalette + b _08042C50 + .align 2, 0 +_08042C04: .4byte gMonFrontPicTable +_08042C08: .4byte gMonFrontPicCoords +_08042C0C: .4byte 0x02000000 +_08042C10: .4byte gUnknown_081FAF4C +_08042C14: + adds r0, r7, 0 + bl sub_8040990 + ldrh r0, [r0, 0x4] + adds r1, r5, 0 + bl GetMonSpriteTemplate_803C56C + ldr r0, _08042C60 @ =gUnknown_02024E8C + movs r1, 0x78 + movs r2, 0x46 + movs r3, 0x6 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r4, _08042C64 @ =gSprites + lsls r1, r0, 4 + add r1, r9 + lsls r1, 2 + adds r2, r1, r4 + adds r2, 0x3E + ldrb r0, [r2] + movs r3, 0x4 + orrs r0, r3 + strb r0, [r2] + adds r4, 0x1C + adds r1, r4 + ldr r0, _08042C68 @ =SpriteCallbackDummy + str r0, [r1] +_08042C50: + mov r0, r9 + add sp, 0xC + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08042C60: .4byte gUnknown_02024E8C +_08042C64: .4byte gSprites +_08042C68: .4byte SpriteCallbackDummy + thumb_func_end EggHatchCreateMonSprite + + thumb_func_start VBlankCB_EggHatch +VBlankCB_EggHatch: @ 8042C6C + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end VBlankCB_EggHatch + + thumb_func_start EggHatch +EggHatch: @ 8042C80 + push {lr} + sub sp, 0x4 + bl ScriptContext2_Enable + ldr r0, _08042CA8 @ =sub_8042CAC + 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 + .align 2, 0 +_08042CA8: .4byte Task_EggHatch + thumb_func_end EggHatch + + thumb_func_start Task_EggHatch +Task_EggHatch: @ 8042CAC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08042CD8 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08042CD0 + ldr r0, _08042CDC @ =sub_8042CE8 + bl SetMainCallback2 + ldr r1, _08042CE0 @ =gUnknown_0300485C + ldr r0, _08042CE4 @ =sub_8080990 + str r0, [r1] + adds r0, r4, 0 + bl DestroyTask +_08042CD0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08042CD8: .4byte gPaletteFade +_08042CDC: .4byte CB2_EggHatch_0 +_08042CE0: .4byte gUnknown_0300485C +_08042CE4: .4byte sub_8080990 + thumb_func_end Task_EggHatch + + thumb_func_start CB2_EggHatch_0 +CB2_EggHatch_0: @ 8042CE8 + push {r4-r7,lr} + ldr r0, _08042D04 @ =gMain + ldr r1, _08042D08 @ =0x0000043c + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x8 + bls _08042CF8 + b _08042F6E +_08042CF8: + lsls r0, 2 + ldr r1, _08042D0C @ =_08042D10 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08042D04: .4byte gMain +_08042D08: .4byte 0x0000043c +_08042D0C: .4byte _08042D10 + .align 2, 0 +_08042D10: + .4byte _08042D34 + .4byte _08042D90 + .4byte _08042DC4 + .4byte _08042E20 + .4byte _08042E40 + .4byte _08042E74 + .4byte _08042E88 + .4byte _08042EB0 + .4byte _08042F40 +_08042D34: + movs r0, 0x80 + lsls r0, 19 + movs r2, 0 + strh r2, [r0] + ldr r1, _08042D74 @ =gUnknown_0300481C + ldr r0, _08042D78 @ =0x02018000 + str r0, [r1] + ldr r1, _08042D7C @ =gUnknown_0202E8CC + ldrh r1, [r1] + strb r1, [r0, 0x4] + adds r0, 0x3A + strb r2, [r0] + bl ResetTasks + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r0, _08042D80 @ =sub_8042C6C + bl SetVBlankCallback + ldr r1, _08042D84 @ =gMain + ldr r2, _08042D88 @ =0x0000043c + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + bl GetCurrentMapMusic + ldr r1, _08042D8C @ =gUnknown_0202E8CE + strh r0, [r1] + b _08042F6E + .align 2, 0 +_08042D74: .4byte gUnknown_0300481C +_08042D78: .4byte 0x02018000 +_08042D7C: .4byte gUnknown_0202E8CC +_08042D80: .4byte VBlankCB_EggHatch +_08042D84: .4byte gMain +_08042D88: .4byte 0x0000043c +_08042D8C: .4byte gUnknown_0202E8CE +_08042D90: + ldr r5, _08042DBC @ =gWindowConfig_81E6F84 + adds r0, r5, 0 + bl SetUpWindowConfig + ldr r4, _08042DC0 @ =gUnknown_0300481C + ldr r0, [r4] + adds r0, 0x8 + adds r1, r5, 0 + bl InitWindowFromConfig + movs r0, 0x14 + bl SetTextWindowBaseTileNum + ldr r1, [r4] + adds r1, 0x38 + strb r0, [r1] + ldr r0, [r4] + adds r0, 0x8 + bl LoadTextWindowGraphics + b _08042F04 + .align 2, 0 +_08042DBC: .4byte gWindowConfig_81E6F84 +_08042DC0: .4byte gUnknown_0300481C +_08042DC4: + ldr r0, _08042DFC @ =gUnknown_08D00000 + movs r1, 0xC0 + lsls r1, 19 + bl LZDecompressVram + ldr r0, _08042E00 @ =gUnknown_08D00524 + ldr r4, _08042E04 @ =0x02000000 + movs r2, 0x80 + lsls r2, 4 + adds r1, r4, 0 + bl CpuSet + ldr r1, _08042E08 @ =0x040000d4 + str r4, [r1] + ldr r0, _08042E0C @ =0x06002800 + str r0, [r1, 0x4] + ldr r0, _08042E10 @ =0x80000280 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r0, _08042E14 @ =gUnknown_08D004E0 + movs r1, 0 + movs r2, 0x20 + bl LoadCompressedPalette + ldr r1, _08042E18 @ =gMain + ldr r2, _08042E1C @ =0x0000043c + adds r1, r2 + b _08042F0A + .align 2, 0 +_08042DFC: .4byte gUnknown_08D00000 +_08042E00: .4byte gUnknown_08D00524 +_08042E04: .4byte 0x02000000 +_08042E08: .4byte 0x040000d4 +_08042E0C: .4byte 0x06002800 +_08042E10: .4byte 0x80000280 +_08042E14: .4byte gUnknown_08D004E0 +_08042E18: .4byte gMain +_08042E1C: .4byte 0x0000043c +_08042E20: + ldr r0, _08042E34 @ =gUnknown_0820A3B0 + bl LoadSpriteSheet + ldr r0, _08042E38 @ =gUnknown_0820A3B8 + bl LoadSpriteSheet + ldr r0, _08042E3C @ =gUnknown_0820A3C0 + bl LoadSpritePalette + b _08042F04 + .align 2, 0 +_08042E34: .4byte gUnknown_0820A3B0 +_08042E38: .4byte gUnknown_0820A3B8 +_08042E3C: .4byte gUnknown_0820A3C0 +_08042E40: + ldr r0, _08042E64 @ =gSpriteTemplate_820A3C8 + movs r1, 0x78 + movs r2, 0x4B + movs r3, 0x5 + bl CreateSprite + ldr r2, _08042E68 @ =gUnknown_0300481C + ldr r1, [r2] + strb r0, [r1] + ldr r0, [r2] + ldrb r0, [r0, 0x4] + bl AddHatchedMonToParty + ldr r1, _08042E6C @ =gMain + ldr r2, _08042E70 @ =0x0000043c + adds r1, r2 + b _08042F0A + .align 2, 0 +_08042E64: .4byte gSpriteTemplate_820A3C8 +_08042E68: .4byte gUnknown_0300481C +_08042E6C: .4byte gMain +_08042E70: .4byte 0x0000043c +_08042E74: + ldr r0, _08042E84 @ =gUnknown_0300481C + ldr r0, [r0] + ldrb r2, [r0, 0x4] + movs r0, 0 + movs r1, 0 + bl EggHatchCreateMonSprite + b _08042F04 + .align 2, 0 +_08042E84: .4byte gUnknown_0300481C +_08042E88: + ldr r4, _08042EA4 @ =gUnknown_0300481C + ldr r0, [r4] + ldrb r2, [r0, 0x4] + movs r0, 0 + movs r1, 0x1 + bl EggHatchCreateMonSprite + ldr r1, [r4] + strb r0, [r1, 0x1] + ldr r1, _08042EA8 @ =gMain + ldr r2, _08042EAC @ =0x0000043c + adds r1, r2 + b _08042F0A + .align 2, 0 +_08042EA4: .4byte gUnknown_0300481C +_08042EA8: .4byte gMain +_08042EAC: .4byte 0x0000043c +_08042EB0: + ldr r0, _08042F14 @ =REG_BG2CNT + ldr r2, _08042F18 @ =0x00004c06 + adds r1, r2, 0 + strh r1, [r0] + ldr r0, _08042F1C @ =gUnknown_0820C9F8 + movs r1, 0x10 + movs r2, 0xA0 + bl LoadPalette + ldr r3, _08042F20 @ =gUnknown_0820CA98 + ldr r4, _08042F24 @ =0x06004000 + movs r5, 0x98 + lsls r5, 5 + ldr r1, _08042F28 @ =0x040000d4 + ldr r6, _08042F2C @ =0x80000800 + movs r2, 0x80 + lsls r2, 5 + movs r7, 0x80 + lsls r7, 24 +_08042ED6: + 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 _08042ED6 + str r3, [r1] + str r4, [r1, 0x4] + lsrs r0, r5, 1 + orrs r0, r7 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r1, _08042F30 @ =gUnknown_0820F798 + ldr r2, _08042F34 @ =0x06006000 + ldr r0, _08042F28 @ =0x040000d4 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _08042F2C @ =0x80000800 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] +_08042F04: + ldr r1, _08042F38 @ =gMain + ldr r0, _08042F3C @ =0x0000043c + adds r1, r0 +_08042F0A: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08042F6E + .align 2, 0 +_08042F14: .4byte REG_BG2CNT +_08042F18: .4byte 0x00004c06 +_08042F1C: .4byte gUnknown_0820C9F8 +_08042F20: .4byte gUnknown_0820CA98 +_08042F24: .4byte 0x06004000 +_08042F28: .4byte 0x040000d4 +_08042F2C: .4byte 0x80000800 +_08042F30: .4byte gUnknown_0820F798 +_08042F34: .4byte 0x06006000 +_08042F38: .4byte gMain +_08042F3C: .4byte 0x0000043c +_08042F40: + ldr r1, _08042F74 @ =REG_BG1CNT + ldr r2, _08042F78 @ =0x00000501 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _08042F7C @ =REG_BG0HOFS + movs r4, 0 + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + ldr r0, _08042F80 @ =sub_804300C + bl SetMainCallback2 + ldr r0, _08042F84 @ =gUnknown_0300481C + ldr r0, [r0] + strb r4, [r0, 0x2] +_08042F6E: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08042F74: .4byte REG_BG1CNT +_08042F78: .4byte 0x00000501 +_08042F7C: .4byte REG_BG0HOFS +_08042F80: .4byte CB2_EggHatch_1 +_08042F84: .4byte gUnknown_0300481C + thumb_func_end CB2_EggHatch_0 + + thumb_func_start EggHatchSetMonNickname +EggHatchSetMonNickname: @ 8042F88 + push {lr} + ldr r0, _08042FA8 @ =gUnknown_0202E8CC + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08042FAC @ =gPlayerParty + adds r0, r1 + ldr r2, _08042FB0 @ =gStringVar3 + movs r1, 0x2 + bl SetMonData + ldr r0, _08042FB4 @ =c2_exit_to_overworld_2_switch + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_08042FA8: .4byte gUnknown_0202E8CC +_08042FAC: .4byte gPlayerParty +_08042FB0: .4byte gStringVar3 +_08042FB4: .4byte c2_exit_to_overworld_2_switch + thumb_func_end EggHatchSetMonNickname + + thumb_func_start Task_EggHatchPlayBGM +Task_EggHatchPlayBGM: @ 8042FB8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _08043004 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _08042FD4 + bl StopMapMusic +_08042FD4: + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _08042FE4 + movs r0, 0xBC + lsls r0, 1 + bl PlayBGM +_08042FE4: + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x3C + ble _08042FF8 + ldr r0, _08043008 @ =0x00000179 + bl PlayBGM + adds r0, r5, 0 + bl DestroyTask +_08042FF8: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08043004: .4byte gTasks +_08043008: .4byte 0x00000179 + thumb_func_end Task_EggHatchPlayBGM + + thumb_func_start CB2_EggHatch_1 +CB2_EggHatch_1: @ 804300C + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x8 + ldr r1, _08043030 @ =gUnknown_0300481C + ldr r0, [r1] + ldrb r0, [r0, 0x2] + adds r5, r1, 0 + cmp r0, 0xB + bls _08043026 + b _080432BA +_08043026: + lsls r0, 2 + ldr r1, _08043034 @ =_08043038 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08043030: .4byte gUnknown_0300481C +_08043034: .4byte _08043038 + .align 2, 0 +_08043038: + .4byte _08043068 + .4byte _080430A0 + .4byte _080430C0 + .4byte _080430F8 + .4byte _08043124 + .4byte _08043164 + .4byte _08043172 + .4byte _08043180 + .4byte _080431B8 + .4byte _080431DA + .4byte _08043288 + .4byte _080432A8 +_08043068: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xBA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _08043098 @ =gUnknown_0300481C + ldr r1, [r0] + ldrb r0, [r1, 0x2] + adds r0, 0x1 + strb r0, [r1, 0x2] + ldr r0, _0804309C @ =c3_080472E4 + movs r1, 0x5 + bl CreateTask + b _080432BA + .align 2, 0 +_08043098: .4byte gUnknown_0300481C +_0804309C: .4byte Task_EggHatchPlayBGM +_080430A0: + ldr r0, _080430BC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _080430B2 + b _080432BA +_080430B2: + ldr r0, [r5] + strb r1, [r0, 0x3] + ldr r1, [r5] + b _0804329C + .align 2, 0 +_080430BC: .4byte gPaletteFade +_080430C0: + ldr r1, [r5] + ldrb r0, [r1, 0x3] + adds r0, 0x1 + strb r0, [r1, 0x3] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1E + bhi _080430D2 + b _080432BA +_080430D2: + ldr r1, [r5] + ldrb r0, [r1, 0x2] + adds r0, 0x1 + strb r0, [r1, 0x2] + ldr r2, _080430F0 @ =gSprites + ldr r0, [r5] + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _080430F4 @ =sub_80432E4 + str r1, [r0] + b _080432BA + .align 2, 0 +_080430F0: .4byte gSprites +_080430F4: .4byte SpriteCB_Egg_0 +_080430F8: + ldr r2, _0804311C @ =gSprites + ldr r3, [r5] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, _08043120 @ =SpriteCallbackDummy + cmp r1, r0 + beq _08043112 + b _080432BA +_08043112: + ldrb r0, [r3, 0x2] + adds r0, 0x1 + strb r0, [r3, 0x2] + b _080432BA + .align 2, 0 +_0804311C: .4byte gSprites +_08043120: .4byte SpriteCallbackDummy +_08043124: + ldr r0, [r5] + ldrb r1, [r0, 0x4] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08043150 @ =gPlayerParty + adds r0, r1 + ldr r1, _08043154 @ =gStringVar1 + bl pokemon_get_nick + ldr r4, _08043158 @ =gStringVar4 + ldr r1, _0804315C @ =gOtherText_HatchedFromEgg + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + bl EggHatchPrintMessage2 + ldr r0, _08043160 @ =0x00000173 + bl PlayFanfare + ldr r1, [r5] + b _0804329C + .align 2, 0 +_08043150: .4byte gPlayerParty +_08043154: .4byte gStringVar1 +_08043158: .4byte gStringVar4 +_0804315C: .4byte gOtherText_HatchedFromEgg +_08043160: .4byte 0x00000173 +_08043164: + bl IsFanfareTaskInactive + lsls r0, 24 + cmp r0, 0 + bne _08043170 + b _080432BA +_08043170: + b _08043298 +_08043172: + bl IsFanfareTaskInactive + lsls r0, 24 + cmp r0, 0 + bne _0804317E + b _080432BA +_0804317E: + b _08043298 +_08043180: + ldr r0, [r5] + ldrb r1, [r0, 0x4] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080431A8 @ =gPlayerParty + adds r0, r1 + ldr r1, _080431AC @ =gStringVar1 + bl pokemon_get_nick + ldr r4, _080431B0 @ =gStringVar4 + ldr r1, _080431B4 @ =gOtherText_NickHatchPrompt + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + bl EggHatchPrintMessage1 + ldr r1, [r5] + b _0804329C + .align 2, 0 +_080431A8: .4byte gPlayerParty +_080431AC: .4byte gStringVar1 +_080431B0: .4byte gStringVar4 +_080431B4: .4byte gOtherText_NickHatchPrompt +_080431B8: + bl EggHatchUpdateWindowText + lsls r0, 24 + cmp r0, 0 + beq _080432BA + movs r0, 0x16 + movs r1, 0x8 + movs r2, 0x1B + movs r3, 0xD + bl MenuDrawTextWindow + movs r0, 0x16 + movs r1, 0x8 + movs r2, 0x4 + bl InitYesNoMenu + b _08043298 +_080431DA: + bl ProcessMenuInputNoWrap_ + lsls r0, 24 + lsrs r2, r0, 24 + asrs r0, 24 + movs r1, 0x2 + negs r1, r1 + cmp r0, r1 + beq _080432BA + lsls r0, r2, 24 + asrs r1, r0, 24 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08043298 + cmp r1, 0x1 + beq _08043298 + ldr r0, _08043278 @ =gUnknown_0300481C + mov r9, r0 + ldr r0, [r0] + ldrb r0, [r0, 0x4] + movs r1, 0x64 + mov r8, r1 + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + ldr r6, _0804327C @ =gPlayerParty + adds r0, r6 + ldr r1, _08043280 @ =gStringVar3 + mov r10, r1 + bl pokemon_get_nick + mov r2, r9 + ldr r0, [r2] + ldrb r0, [r0, 0x4] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r6 + movs r1, 0xB + bl GetMonData + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + mov r2, r9 + ldr r0, [r2] + ldrb r0, [r0, 0x4] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r6 + bl GetMonGender + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + mov r2, r9 + ldr r0, [r2] + ldrb r0, [r0, 0x4] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r6 + movs r1, 0 + movs r2, 0 + bl GetMonData + str r0, [sp] + ldr r0, _08043284 @ =sub_8042F88 + str r0, [sp, 0x4] + movs r0, 0x3 + mov r1, r10 + adds r2, r5, 0 + adds r3, r4, 0 + bl DoNamingScreen + b _080432BA + .align 2, 0 +_08043278: .4byte gUnknown_0300481C +_0804327C: .4byte gPlayerParty +_08043280: .4byte gStringVar3 +_08043284: .4byte EggHatchSetMonNickname +_08043288: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade +_08043298: + ldr r0, _080432A4 @ =gUnknown_0300481C + ldr r1, [r0] +_0804329C: + ldrb r0, [r1, 0x2] + adds r0, 0x1 + strb r0, [r1, 0x2] + b _080432BA + .align 2, 0 +_080432A4: .4byte gUnknown_0300481C +_080432A8: + ldr r0, _080432DC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080432BA + ldr r0, _080432E0 @ =c2_exit_to_overworld_2_switch + bl SetMainCallback2 +_080432BA: + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080432DC: .4byte gPaletteFade +_080432E0: .4byte c2_exit_to_overworld_2_switch + thumb_func_end CB2_EggHatch_1 + + thumb_func_start SpriteCB_Egg_0 +SpriteCB_Egg_0: @ 80432E4 + 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, 0x14 + ble _08043304 + ldr r0, _08043300 @ =sub_804333C + str r0, [r4, 0x1C] + movs r0, 0 + strh r0, [r4, 0x2E] + b _08043334 + .align 2, 0 +_08043300: .4byte SpriteCB_Egg_1 +_08043304: + 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, 0x1 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0xF + bne _08043334 + movs r0, 0x17 + bl PlaySE + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + bl CreateRandomEggShardSprite +_08043334: + pop {r4} + pop {r0} + bx r0 + thumb_func_end SpriteCB_Egg_0 + + thumb_func_start SpriteCB_Egg_1 +SpriteCB_Egg_1: @ 804333C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + movs r1, 0 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1E + ble _08043398 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _0804336C + ldr r0, _08043368 @ =sub_80433A0 + str r0, [r4, 0x1C] + strh r1, [r4, 0x2E] + strh r1, [r4, 0x32] + b _08043398 + .align 2, 0 +_08043368: .4byte SpriteCB_Egg_2 +_0804336C: + 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, 0x2 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0xF + bne _08043398 + movs r0, 0x17 + bl PlaySE + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAnim +_08043398: + pop {r4} + pop {r0} + bx r0 + thumb_func_end SpriteCB_Egg_1 + + thumb_func_start SpriteCB_Egg_2 +SpriteCB_Egg_2: @ 80433A0 + push {r4-r6,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x32] + adds r0, 0x1 + movs r6, 0 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1E + ble _0804345A + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x26 + ble _08043418 + ldr r0, _08043404 @ =sub_8043460 + str r0, [r4, 0x1C] + strh r6, [r4, 0x2E] + ldr r5, _08043408 @ =gUnknown_0300481C + ldr r0, [r5] + ldrb r1, [r0, 0x4] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0804340C @ =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + ldr r4, _08043410 @ =gSprites + ldr r3, [r5] + ldrb r2, [r3, 0x1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + strh r6, [r1, 0x24] + ldrb r2, [r3, 0x1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + ldr r2, _08043414 @ =gMonFrontPicCoords + lsrs r0, 14 + adds r0, r2 + ldrb r0, [r0, 0x1] + strh r0, [r1, 0x26] + b _0804345A + .align 2, 0 +_08043404: .4byte SpriteCB_Egg_3 +_08043408: .4byte gUnknown_0300481C +_0804340C: .4byte gPlayerParty +_08043410: .4byte gSprites +_08043414: .4byte gMonFrontPicCoords +_08043418: + 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, 0x2 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0xF + bne _0804344C + movs r0, 0x17 + bl PlaySE + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAnim + bl CreateRandomEggShardSprite + bl CreateRandomEggShardSprite +_0804344C: + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1E + bne _0804345A + movs r0, 0x17 + bl PlaySE +_0804345A: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end SpriteCB_Egg_2 + + thumb_func_start SpriteCB_Egg_3 +SpriteCB_Egg_3: @ 8043460 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x32 + ble _0804347A + ldr r0, _08043480 @ =sub_8043484 + str r0, [r1, 0x1C] + movs r0, 0 + strh r0, [r1, 0x2E] +_0804347A: + pop {r0} + bx r0 + .align 2, 0 +_08043480: .4byte SpriteCB_Egg_4 + thumb_func_end SpriteCB_Egg_3 + + thumb_func_start SpriteCB_Egg_4 +SpriteCB_Egg_4: @ 8043484 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080434A4 + movs r1, 0x1 + negs r1, r1 + ldr r0, _080434F8 @ =0x0000ffff + str r0, [sp] + adds r0, r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade +_080434A4: + ldrh r0, [r5, 0x2E] + cmp r0, 0x3 + bhi _080434C0 + movs r4, 0 +_080434AC: + bl CreateRandomEggShardSprite + lsls r0, r4, 16 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080434AC +_080434C0: + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + ldr r0, _080434FC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080434EE + movs r0, 0x71 + bl PlaySE + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08043500 @ =sub_8043504 + str r0, [r5, 0x1C] + strh r4, [r5, 0x2E] +_080434EE: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080434F8: .4byte 0x0000ffff +_080434FC: .4byte gPaletteFade +_08043500: .4byte SpriteCB_Egg_5 + thumb_func_end SpriteCB_Egg_4 + + thumb_func_start SpriteCB_Egg_5 +SpriteCB_Egg_5: @ 8043504 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _08043540 + ldr r4, _08043594 @ =gSprites + ldr r3, _08043598 @ =gUnknown_0300481C + ldr r0, [r3] + ldrb r1, [r0, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + ldr r0, [r3] + ldrb r1, [r0, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x1 + bl StartSpriteAffineAnim +_08043540: + movs r2, 0x2E + ldrsh r0, [r5, r2] + cmp r0, 0x8 + bne _0804355A + movs r1, 0x1 + negs r1, r1 + ldr r0, _0804359C @ =0x0000ffff + str r0, [sp] + adds r0, r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade +_0804355A: + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0x9 + bgt _08043578 + ldr r2, _08043594 @ =gSprites + ldr r0, _08043598 @ =gUnknown_0300481C + ldr r0, [r0] + ldrb r1, [r0, 0x1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x22] + subs r1, 0x1 + strh r1, [r0, 0x22] +_08043578: + ldrh r1, [r5, 0x2E] + movs r2, 0x2E + ldrsh r0, [r5, r2] + cmp r0, 0x28 + ble _08043586 + ldr r0, _080435A0 @ =SpriteCallbackDummy + str r0, [r5, 0x1C] +_08043586: + adds r0, r1, 0x1 + strh r0, [r5, 0x2E] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08043594: .4byte gSprites +_08043598: .4byte gUnknown_0300481C +_0804359C: .4byte 0x0000ffff +_080435A0: .4byte SpriteCallbackDummy + thumb_func_end SpriteCB_Egg_5 + + thumb_func_start SpriteCB_EggShard +SpriteCB_EggShard: @ 80435A4 + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x36] + adds 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 _080435C2 + adds r0, 0xFF +_080435C2: + asrs r0, 8 + strh r0, [r2, 0x24] + movs r3, 0x38 + ldrsh r0, [r2, r3] + cmp r0, 0 + bge _080435D0 + adds r0, 0xFF +_080435D0: + asrs 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 _080435F6 + lsls r0, r3, 16 + cmp r0, 0 + ble _080435F6 + adds r0, r2, 0 + bl DestroySprite +_080435F6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end SpriteCB_EggShard + + thumb_func_start CreateRandomEggShardSprite +CreateRandomEggShardSprite: @ 80435FC + push {r4-r6,lr} + sub sp, 0x8 + ldr r3, _0804364C @ =gEggShardVelocities + ldr r0, _08043650 @ =gUnknown_0300481C + ldr r4, [r0] + adds r4, 0x3A + ldrb r2, [r4] + lsls r0, r2, 2 + adds r1, r0, r3 + ldrh r6, [r1] + adds r3, 0x2 + adds r0, r3 + ldrh r5, [r0] + adds r2, 0x1 + strb r2, [r4] + bl Random + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 10 + ands r1, r0 + lsls r6, 16 + asrs r6, 16 + lsls r5, 16 + asrs r5, 16 + movs r0, 0x64 + str r0, [sp] + lsrs r1, 16 + str r1, [sp, 0x4] + movs r0, 0x78 + movs r1, 0x3C + adds r2, r6, 0 + adds r3, r5, 0 + bl CreateEggShardSprite + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804364C: .4byte gEggShardVelocities +_08043650: .4byte gUnknown_0300481C + thumb_func_end CreateRandomEggShardSprite + + thumb_func_start CreateEggShardSprite +CreateEggShardSprite: @ 8043654 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + mov r8, r3 + ldr r0, [sp, 0x1C] + mov r9, r0 + ldr r1, [sp, 0x20] + mov r10, r1 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 16 + lsrs r6, 16 + mov r0, r8 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + mov r1, r9 + lsls r1, 16 + lsrs r1, 16 + mov r9, r1 + mov r0, r10 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r0, _080436CC @ =gSpriteTemplate_820A418 + adds r1, r4, 0 + adds r2, r5, 0 + movs r3, 0x4 + bl CreateSprite + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r2, _080436D0 @ =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r6, [r0, 0x30] + mov r1, r8 + strh r1, [r0, 0x32] + mov r1, r9 + strh r1, [r0, 0x34] + mov r1, r10 + bl StartSpriteAnim + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080436CC: .4byte gSpriteTemplate_820A418 +_080436D0: .4byte gSprites + thumb_func_end CreateEggShardSprite + + thumb_func_start EggHatchPrintMessage1 +EggHatchPrintMessage1: @ 80436D4 + push {lr} + sub sp, 0x4 + adds r1, r0, 0 + ldr r0, _080436F8 @ =gUnknown_0300481C + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x8 + adds r2, 0x38 + ldrb r2, [r2] + movs r3, 0xF + str r3, [sp] + movs r3, 0x3 + bl sub_8002EB0 + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080436F8: .4byte gUnknown_0300481C + thumb_func_end EggHatchPrintMessage1 + + thumb_func_start EggHatchPrintMessage2 +EggHatchPrintMessage2: @ 80436FC + push {lr} + sub sp, 0x4 + adds r1, r0, 0 + ldr r0, _08043720 @ =gUnknown_0300481C + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x8 + adds r2, 0x38 + ldrb r2, [r2] + movs r3, 0xF + str r3, [sp] + movs r3, 0x3 + bl sub_8003460 + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_08043720: .4byte gUnknown_0300481C + thumb_func_end EggHatchPrintMessage2 + + thumb_func_start EggHatchUpdateWindowText +EggHatchUpdateWindowText: @ 8043724 + push {lr} + ldr r0, _08043738 @ =gUnknown_0300481C + ldr r0, [r0] + adds r0, 0x8 + bl sub_80035AC + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_08043738: .4byte gUnknown_0300481C + thumb_func_end EggHatchUpdateWindowText + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_80412B0.s b/asm/rom_804373C.s index 0b3087ace..bea90f6ca 100644 --- a/asm/rom_80412B0.s +++ b/asm/rom_804373C.s @@ -6,4677 +6,6 @@ .text - thumb_func_start pokemon_get_nick -pokemon_get_nick: @ 80412B0 - push {r4,lr} - sub sp, 0x14 - adds r4, r1, 0 - movs r1, 0x2 - mov r2, sp - bl GetMonData - adds r0, r4, 0 - mov r1, sp - bl StringCopy10 - add sp, 0x14 - pop {r4} - pop {r1} - bx r1 - thumb_func_end pokemon_get_nick - - thumb_func_start pokemon_get_nick_ -pokemon_get_nick_: @ 80412D0 - push {r4,lr} - sub sp, 0x14 - adds r4, r1, 0 - movs r1, 0x2 - mov r2, sp - bl GetBoxMonData - adds r0, r4, 0 - mov r1, sp - bl StringCopy10 - add sp, 0x14 - pop {r4} - pop {r1} - bx r1 - thumb_func_end pokemon_get_nick_ - - thumb_func_start daycare_count_pokemon -daycare_count_pokemon: @ 80412F0 - push {r4-r6,lr} - adds r6, r0, 0 - movs r5, 0 - movs r4, 0 -_080412F8: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - adds r0, r6, r0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _08041310 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_08041310: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _080412F8 - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end daycare_count_pokemon - - thumb_func_start sub_8041324 -sub_8041324: @ 8041324 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r9, r0 - mov r10, r1 - movs r7, 0 - movs r5, 0 - mov r6, r10 - adds r6, 0x74 - movs r0, 0x1 - mov r8, r0 -_0804133E: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 4 - mov r1, r9 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _0804136E - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r4, 0 - movs r1, 0xC - bl GetBoxMonData - adds r1, r0, 0 - cmp r1, 0 - bne _0804136E - lsls r0, r5, 1 - adds r0, r6, r0 - b _08041374 -_0804136E: - lsls r0, r5, 1 - adds r0, r6, r0 - mov r1, r8 -_08041374: - strh r1, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bls _0804133E - mov r0, r10 - str r7, [r0, 0x70] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8041324 - - thumb_func_start daycare_empty_slot -daycare_empty_slot: @ 8041394 - push {r4,r5,lr} - adds r5, r0, 0 - movs r4, 0 -_0804139A: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - adds r0, r5, r0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - bne _080413B2 - lsls r0, r4, 24 - asrs r0, 24 - b _080413C0 -_080413B2: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _0804139A - movs r0, 0x1 - negs r0, r0 -_080413C0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end daycare_empty_slot - - thumb_func_start sub_80413C8 -sub_80413C8: @ 80413C8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r0, 0 - mov r8, r1 - mov r0, r8 - bl daycare_empty_slot - lsls r0, 24 - lsrs r4, r0, 24 - mov r9, r4 - adds r0, r7, 0 - bl sub_80A2B94 - lsls r0, 24 - cmp r0, 0 - beq _0804144A - lsls r0, r4, 24 - asrs r0, 24 - lsls r4, r0, 3 - subs r4, r0 - lsls r4, 3 - adds r5, r4, 0 - adds r5, 0xA0 - add r5, r8 - adds r6, r5, 0 - adds r6, 0x24 - ldr r1, _08041490 @ =gSaveBlock2 - adds r0, r6, 0 - bl StringCopy - adds r0, r6, 0 - movs r1, 0xFC - bl sub_814A518 - adds r6, 0x8 - adds r0, r7, 0 - adds r1, r6, 0 - bl pokemon_get_nick - adds r0, r7, 0 - movs r1, 0x40 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - add r4, r8 - ldr r2, _08041494 @ =gSaveBlock1 - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r4, 0xA0 - ldr r0, _08041498 @ =0x00002b4c - adds r1, r0 - ldm r1!, {r0,r2,r3} - stm r4!, {r0,r2,r3} - ldm r1!, {r0,r2,r3} - stm r4!, {r0,r2,r3} - ldm r1!, {r0,r2,r3} - stm r4!, {r0,r2,r3} - adds r0, r7, 0 - bl sub_80A2DF8 -_0804144A: - mov r2, r9 - lsls r4, r2, 24 - asrs r4, 24 - lsls r5, r4, 2 - adds r4, r5, r4 - lsls r4, 4 - add r4, r8 - adds r0, r4, 0 - adds r1, r7, 0 - movs r2, 0x50 - bl memcpy - adds r0, r4, 0 - bl pokemon_restore_pp - movs r0, 0x88 - lsls r0, 1 - add r0, r8 - adds r0, r5 - movs r1, 0 - str r1, [r0] - adds r0, r7, 0 - bl ZeroMonData - bl party_compaction - bl CalculatePlayerPartyCount - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08041490: .4byte gSaveBlock2 -_08041494: .4byte gSaveBlock1 -_08041498: .4byte 0x00002b4c - thumb_func_end sub_80413C8 - - thumb_func_start daycare_send -daycare_send: @ 804149C - push {lr} - ldr r0, _080414B4 @ =gUnknown_03005CE0 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080414B8 @ =gPlayerParty - adds r0, r1 - ldr r1, _080414BC @ =gSaveBlock1 + 0x2F9C - bl sub_80413C8 - pop {r0} - bx r0 - .align 2, 0 -_080414B4: .4byte gUnknown_03005CE0 -_080414B8: .4byte gPlayerParty -_080414BC: .4byte gSaveBlock1 + 0x2F9C - thumb_func_end daycare_send - - thumb_func_start sub_80414C0 -sub_80414C0: @ 80414C0 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r5, 0 - adds r4, 0x50 - adds r0, r4, 0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _08041516 - adds r0, r5, 0 - movs r1, 0xB - bl GetBoxMonData - adds r6, r0, 0 - cmp r6, 0 - bne _08041516 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x50 - bl memcpy - adds r0, r4, 0 - bl ZeroBoxMonData - adds r0, r5, 0 - adds r0, 0xA0 - adds r4, 0x88 - adds r1, r4, 0 - movs r2, 0x38 - bl memcpy - movs r0, 0x88 - lsls r0, 1 - adds r2, r5, r0 - adds r0, 0x4 - adds r1, r5, r0 - ldr r0, [r1] - str r0, [r2] - str r6, [r1] - adds r0, r4, 0 - bl sub_80417F4 -_08041516: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80414C0 - - thumb_func_start sub_804151C -sub_804151C: @ 804151C - push {r4-r7,lr} - adds r4, r0, 0 - movs r5, 0 - ldr r7, _08041538 @ =0x0000ffff -_08041524: - adds r0, r4, 0 - bl sub_8040300 - lsls r0, 24 - cmp r0, 0 - beq _08041560 - movs r6, 0x1 - adds r5, 0x1 - b _0804154C - .align 2, 0 -_08041538: .4byte 0x0000ffff -_0804153C: - movs r6, 0 - cmp r0, r7 - bne _0804154C - ldr r0, _0804156C @ =word_2024E82 - ldrh r1, [r0] - adds r0, r4, 0 - bl DeleteFirstMoveAndGiveMoveToMon -_0804154C: - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_803B7C8 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _0804153C - cmp r5, 0x63 - ble _08041524 -_08041560: - adds r0, r4, 0 - bl CalculateMonStats - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804156C: .4byte word_2024E82 - thumb_func_end sub_804151C - - thumb_func_start sub_8041570 -sub_8041570: @ 8041570 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x68 - adds r5, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - lsls r7, r4, 2 - adds r0, r7, r4 - lsls r0, 4 - adds r6, r5, r0 - ldr r1, _08041640 @ =gStringVar1 - adds r0, r6, 0 - bl pokemon_get_nick_ - adds r0, r6, 0 - movs r1, 0xB - bl GetBoxMonData - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - adds r0, r6, 0 - mov r1, sp - bl sub_803B4B4 - mov r0, sp - movs r1, 0x38 - bl GetMonData - cmp r0, 0x64 - beq _080415D8 - mov r0, sp - movs r1, 0x19 - bl GetMonData - movs r2, 0x88 - lsls r2, 1 - adds r1, r5, r2 - adds r1, r7 - ldr r1, [r1] - adds r0, r1 - str r0, [sp, 0x64] - add r2, sp, 0x64 - mov r0, sp - movs r1, 0x19 - bl SetMonData - mov r0, sp - bl sub_804151C -_080415D8: - ldr r0, _08041644 @ =gPlayerParty - movs r1, 0xFA - lsls r1, 1 - adds r1, r0 - mov r8, r1 - mov r0, r8 - mov r1, sp - movs r2, 0x64 - bl memcpy - lsls r0, r4, 3 - subs r0, r4 - lsls r1, r0, 3 - adds r0, r5, r1 - adds r0, 0xC0 - ldrh r0, [r0] - cmp r0, 0 - beq _08041610 - adds r4, r1, 0 - adds r4, 0xA0 - adds r4, r5, r4 - mov r0, r8 - adds r1, r4, 0 - bl sub_80A2D88 - adds r0, r4, 0 - bl sub_80417F4 -_08041610: - bl party_compaction - adds r0, r6, 0 - bl ZeroBoxMonData - movs r2, 0x88 - lsls r2, 1 - adds r0, r5, r2 - adds r0, r7 - movs r1, 0 - str r1, [r0] - adds r0, r5, 0 - bl sub_80414C0 - bl CalculatePlayerPartyCount - mov r0, r9 - add sp, 0x68 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08041640: .4byte gStringVar1 -_08041644: .4byte gPlayerParty - thumb_func_end sub_8041570 - - thumb_func_start sub_8041648 -sub_8041648: @ 8041648 - push {lr} - ldr r0, _0804165C @ =gSaveBlock1 + 0x2F9C - ldr r1, _08041660 @ =gUnknown_0202E8CC - ldrb r1, [r1] - bl sub_8041570 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .align 2, 0 -_0804165C: .4byte gSaveBlock1 + 0x2F9C -_08041660: .4byte gUnknown_0202E8CC - thumb_func_end sub_8041648 - - thumb_func_start sub_8041664 -sub_8041664: @ 8041664 - push {r4,r5,lr} - sub sp, 0x54 - adds r4, r0, 0 - adds r5, r1, 0 - mov r0, sp - adds r1, r4, 0 - movs r2, 0x50 - bl memcpy - adds r0, r4, 0 - movs r1, 0x19 - bl GetBoxMonData - adds r0, r5 - str r0, [sp, 0x50] - add r2, sp, 0x50 - mov r0, sp - movs r1, 0x19 - bl SetBoxMonData - mov r0, sp - bl GetLevelFromBoxMonExp - lsls r0, 24 - lsrs r0, 24 - add sp, 0x54 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8041664 - - thumb_func_start sub_80416A0 -sub_80416A0: @ 80416A0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r5, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - lsls r0, r4, 2 - mov r8, r0 - add r4, r8 - lsls r4, 4 - adds r4, r5, r4 - adds r0, r4, 0 - bl GetLevelFromBoxMonExp - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - movs r0, 0x88 - lsls r0, 1 - adds r5, r0 - add r5, r8 - ldr r1, [r5] - adds r0, r4, 0 - bl sub_8041664 - lsls r0, 24 - lsrs r0, 24 - subs r0, r6 - lsls r0, 24 - lsrs r0, 24 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80416A0 - - thumb_func_start sub_80416E8 -sub_80416E8: @ 80416E8 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - adds r1, r4, 0 - bl sub_80416A0 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - adds r6, r0 - ldr r1, _08041720 @ =gStringVar1 - adds r0, r6, 0 - bl pokemon_get_nick_ - ldr r0, _08041724 @ =gStringVar2 - adds r1, r5, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08041720: .4byte gStringVar1 -_08041724: .4byte gStringVar2 - thumb_func_end sub_80416E8 - - thumb_func_start sub_8041728 -sub_8041728: @ 8041728 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - adds r1, r4, 0 - bl sub_80416A0 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - adds r6, r0 - ldr r1, _08041768 @ =gStringVar1 - adds r0, r6, 0 - bl pokemon_get_nick_ - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - adds r4, 0x64 - ldr r0, _0804176C @ =gStringVar2 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - adds r0, r4, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08041768: .4byte gStringVar1 -_0804176C: .4byte gStringVar2 - thumb_func_end sub_8041728 - - thumb_func_start sub_8041770 -sub_8041770: @ 8041770 - push {lr} - ldr r0, _08041784 @ =gSaveBlock1 + 0x2F9C - ldr r1, _08041788 @ =gUnknown_0202E8CC - ldrb r1, [r1] - bl sub_8041728 - ldr r1, _0804178C @ =gUnknown_0202E8CE - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08041784: .4byte gSaveBlock1 + 0x2F9C -_08041788: .4byte gUnknown_0202E8CC -_0804178C: .4byte gUnknown_0202E8CE - thumb_func_end sub_8041770 - - thumb_func_start sub_8041790 -sub_8041790: @ 8041790 - lsls r0, 16 - lsrs r0, 16 - ldr r2, _080417AC @ =gSaveBlock1 - ldr r1, _080417B0 @ =0x000030ac - adds r3, r2, r1 - ldr r1, [r3] - adds r1, r0 - str r1, [r3] - ldr r1, _080417B4 @ =0x000030b0 - adds r2, r1 - ldr r1, [r2] - adds r1, r0 - str r1, [r2] - bx lr - .align 2, 0 -_080417AC: .4byte gSaveBlock1 -_080417B0: .4byte 0x000030ac -_080417B4: .4byte 0x000030b0 - thumb_func_end sub_8041790 - - thumb_func_start sub_80417B8 -sub_80417B8: @ 80417B8 - push {r4,r5,lr} - ldr r5, _080417D8 @ =gUnknown_0202E8CC - ldrh r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - ldr r4, _080417DC @ =gSaveBlock1 + 0x2F9C - adds r0, r4 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - bne _080417E0 - movs r0, 0 - b _080417EC - .align 2, 0 -_080417D8: .4byte gUnknown_0202E8CC -_080417DC: .4byte gSaveBlock1 + 0x2F9C -_080417E0: - ldrb r1, [r5] - adds r0, r4, 0 - bl sub_80416E8 - lsls r0, 24 - lsrs r0, 24 -_080417EC: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80417B8 - - thumb_func_start sub_80417F4 -sub_80417F4: @ 80417F4 - push {lr} - movs r3, 0 - movs r2, 0x7 - adds r1, r0, 0 - adds r1, 0x2B -_080417FE: - strb r3, [r1] - subs r1, 0x1 - subs r2, 0x1 - cmp r2, 0 - bge _080417FE - adds r2, r0, 0 - adds r2, 0x2C - movs r3, 0 - adds r1, r0, 0 - adds r1, 0x36 -_08041812: - strb r3, [r1] - subs r1, 0x1 - cmp r1, r2 - bge _08041812 - bl sub_80A2B40 - pop {r0} - bx r0 - thumb_func_end sub_80417F4 - - thumb_func_start unref_sub_8041824 -unref_sub_8041824: @ 8041824 - push {r4-r6,lr} - adds r6, r0, 0 - movs r5, 0 -_0804182A: - lsls r4, r5, 2 - adds r0, r4, r5 - lsls r0, 4 - adds r0, r6, r0 - bl ZeroBoxMonData - movs r1, 0x88 - lsls r1, 1 - adds r0, r6, r1 - adds r0, r4 - movs r4, 0 - str r4, [r0] - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 3 - adds r0, 0xA0 - adds r0, r6, r0 - bl sub_80417F4 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bls _0804182A - movs r2, 0x8C - lsls r2, 1 - adds r0, r6, r2 - movs r1, 0 - strh r4, [r0] - adds r2, 0x2 - adds r0, r6, r2 - strb r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end unref_sub_8041824 - - thumb_func_start sub_8041870 -sub_8041870: @ 8041870 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r2, r0, 16 - movs r0, 0 - mov r8, r0 - ldr r0, _0804189C @ =gEvolutionTable - mov r12, r0 -_08041882: - movs r7, 0 - movs r6, 0x1 - movs r4, 0x80 - lsls r4, 9 - movs r5, 0x28 - mov r3, r12 - adds r3, 0x28 -_08041890: - movs r1, 0 - ldrh r0, [r3, 0x4] - cmp r0, r2 - bne _080418A0 - lsrs r2, r4, 16 - b _080418CC - .align 2, 0 -_0804189C: .4byte gEvolutionTable -_080418A0: - adds r1, 0x1 - cmp r1, 0x4 - bgt _080418B6 - lsls r0, r1, 3 - adds r0, r5 - add r0, r12 - ldrh r0, [r0, 0x4] - cmp r0, r2 - bne _080418A0 - lsrs r2, r4, 16 - movs r7, 0x1 -_080418B6: - cmp r7, 0 - bne _080418CC - movs r0, 0x80 - lsls r0, 9 - adds r4, r0 - adds r5, 0x28 - adds r3, 0x28 - adds r6, 0x1 - ldr r0, _080418EC @ =0x0000019b - cmp r6, r0 - ble _08041890 -_080418CC: - movs r0, 0xCE - lsls r0, 1 - cmp r6, r0 - beq _080418DE - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x4 - ble _08041882 -_080418DE: - adds r0, r2, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080418EC: .4byte 0x0000019b - thumb_func_end sub_8041870 - - thumb_func_start sub_80418F0 -sub_80418F0: @ 80418F0 - push {r4,lr} - adds r4, r0, 0 - bl Random - lsls r0, 16 - lsrs r0, 16 - ldr r1, _08041918 @ =0x0000fffe - bl __umodsi3 - adds r0, 0x1 - movs r1, 0x8C - lsls r1, 1 - adds r4, r1 - strh r0, [r4] - movs r0, 0x86 - bl FlagSet - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08041918: .4byte 0x0000fffe - thumb_func_end sub_80418F0 - - thumb_func_start sub_804191C -sub_804191C: @ 804191C - push {r4,lr} - adds r4, r0, 0 - bl Random - movs r2, 0x80 - lsls r2, 8 - adds r1, r2, 0 - movs r2, 0x8C - lsls r2, 1 - adds r4, r2 - orrs r1, r0 - strh r1, [r4] - movs r0, 0x86 - bl FlagSet - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_804191C - - thumb_func_start sub_8041940 -sub_8041940: @ 8041940 - push {lr} - ldr r0, _0804194C @ =gSaveBlock1 + 0x2F9C - bl sub_80418F0 - pop {r0} - bx r0 - .align 2, 0 -_0804194C: .4byte gSaveBlock1 + 0x2F9C - thumb_func_end sub_8041940 - - thumb_func_start sub_8041950 -sub_8041950: @ 8041950 - push {lr} - ldr r0, _0804195C @ =gSaveBlock1 + 0x2F9C - bl sub_804191C - pop {r0} - bx r0 - .align 2, 0 -_0804195C: .4byte gSaveBlock1 + 0x2F9C - thumb_func_end sub_8041950 - - thumb_func_start sub_8041960 -sub_8041960: @ 8041960 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r1, r4, r1 - movs r0, 0xFF - strb r0, [r1] - movs r2, 0 -_08041972: - mov r1, sp - adds r0, r1, r2 - adds r1, r4, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x5 - ble _08041972 - movs r3, 0 - movs r2, 0 -_08041986: - mov r1, sp - adds r0, r1, r2 - ldrb r1, [r0] - adds r0, r1, 0 - cmp r0, 0xFF - beq _08041998 - adds r0, r4, r3 - strb r1, [r0] - adds r3, 0x1 -_08041998: - adds r2, 0x1 - cmp r2, 0x5 - ble _08041986 - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8041960 - - thumb_func_start sub_80419A8 -sub_80419A8: @ 80419A8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - mov r9, r0 - mov r8, r1 - movs r5, 0 - add r1, sp, 0x4 - add r7, sp, 0xC - adds r2, r1, 0 -_080419BE: - adds r0, r2, r5 - strb r5, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _080419BE - movs r5, 0 - adds r6, r1, 0 -_080419D0: - bl Random - mov r1, sp - adds r4, r1, r5 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x6 - subs r1, r5 - bl __modsi3 - adds r0, r6, r0 - ldrb r0, [r0] - strb r0, [r4] - ldrb r1, [r4] - adds r0, r6, 0 - bl sub_8041960 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _080419D0 - movs r5, 0 - movs r4, 0x1 -_08041A00: - bl Random - adds r1, r7, r5 - lsls r0, 16 - lsrs r0, 16 - ands r0, r4 - strb r0, [r1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _08041A00 - movs r5, 0 -_08041A1A: - mov r1, sp - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, 0x5 - bhi _08041B02 - lsls r0, 2 - ldr r1, _08041A30 @ =_08041A34 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08041A30: .4byte _08041A34 - .align 2, 0 -_08041A34: - .4byte _08041A4C - .4byte _08041A6C - .4byte _08041A88 - .4byte _08041AA4 - .4byte _08041AC0 - .4byte _08041AE2 -_08041A4C: - adds r0, r7, r5 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - add r0, r8 - movs r1, 0x27 - bl GetBoxMonData - add r2, sp, 0x10 - strb r0, [r2] - mov r0, r9 - movs r1, 0x27 - bl SetMonData - b _08041B02 -_08041A6C: - add r4, sp, 0x10 - adds r0, r7, r5 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - add r0, r8 - movs r1, 0x28 - bl GetBoxMonData - strb r0, [r4] - mov r0, r9 - movs r1, 0x28 - b _08041ADA -_08041A88: - add r4, sp, 0x10 - adds r0, r7, r5 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - add r0, r8 - movs r1, 0x29 - bl GetBoxMonData - strb r0, [r4] - mov r0, r9 - movs r1, 0x29 - b _08041ADA -_08041AA4: - add r4, sp, 0x10 - adds r0, r7, r5 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - add r0, r8 - movs r1, 0x2A - bl GetBoxMonData - strb r0, [r4] - mov r0, r9 - movs r1, 0x2A - b _08041ADA -_08041AC0: - add r4, sp, 0x10 - adds r0, r7, r5 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - add r0, r8 - movs r1, 0x2B - bl GetBoxMonData - strb r0, [r4] - mov r0, r9 - movs r1, 0x2B -_08041ADA: - adds r2, r4, 0 - bl SetMonData - b _08041B02 -_08041AE2: - add r4, sp, 0x10 - adds r0, r7, r5 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - add r0, r8 - movs r1, 0x2C - bl GetBoxMonData - strb r0, [r4] - mov r0, r9 - movs r1, 0x2C - adds r2, r4, 0 - bl SetMonData -_08041B02: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _08041A1A - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80419A8 - - thumb_func_start pokemon_get_eggmoves -pokemon_get_eggmoves: @ 8041B1C - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r1 - movs r6, 0 - movs r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - ldr r5, _08041B44 @ =gEggMoves - ldrh r1, [r5] - ldr r7, _08041B48 @ =0x00004e20 - adds r0, r3, r7 - cmp r1, r0 - bne _08041B4C - movs r4, 0x1 - b _08041B6E - .align 2, 0 -_08041B44: .4byte gEggMoves -_08041B48: .4byte 0x00004e20 -_08041B4C: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, _08041BB8 @ =0x00000471 - ldr r5, _08041BBC @ =gEggMoves - cmp r2, r0 - bhi _08041B6E - lsls r0, r2, 1 - adds r0, r5 - ldrh r1, [r0] - ldr r7, _08041BC0 @ =0x00004e20 - adds r0, r3, r7 - cmp r1, r0 - bne _08041B4C - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_08041B6E: - movs r2, 0 - lsls r0, r4, 1 - adds r0, r5 - ldrh r0, [r0] - ldr r1, _08041BC0 @ =0x00004e20 - cmp r0, r1 - bhi _08041BAA - adds r7, r5, 0 - adds r3, r1, 0 -_08041B80: - lsls r1, r2, 1 - add r1, r8 - adds r0, r4, r2 - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x9 - bhi _08041BAA - adds r0, r4, r2 - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - cmp r0, r3 - bls _08041B80 -_08041BAA: - lsls r0, r6, 24 - lsrs r0, 24 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08041BB8: .4byte 0x00000471 -_08041BBC: .4byte gEggMoves -_08041BC0: .4byte 0x00004e20 - thumb_func_end pokemon_get_eggmoves - - thumb_func_start daycare_build_child_moveset -daycare_build_child_moveset: @ 8041BC4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - adds r7, r0, 0 - mov r10, r1 - mov r9, r2 - movs r0, 0 - str r0, [sp] - movs r6, 0 - ldr r5, _08041CC8 @ =gUnknown_03000500 - movs r2, 0 - ldr r4, _08041CCC @ =gUnknown_030004D8 - ldr r3, _08041CD0 @ =gUnknown_030004E0 -_08041BE4: - lsls r1, r6, 1 - adds r0, r1, r5 - strh r2, [r0] - adds r0, r1, r4 - strh r2, [r0] - adds r1, r3 - strh r2, [r1] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x3 - bls _08041BE4 - movs r6, 0 - ldr r2, _08041CD4 @ =gUnknown_030004E8 - movs r1, 0 -_08041C02: - lsls r0, r6, 1 - adds r0, r2 - strh r1, [r0] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x9 - bls _08041C02 - movs r6, 0 - ldr r2, _08041CD8 @ =gUnknown_03000470 - movs r1, 0 -_08041C18: - lsls r0, r6, 1 - adds r0, r2 - strh r1, [r0] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x31 - bls _08041C18 - adds r0, r7, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - ldr r1, _08041CD8 @ =gUnknown_03000470 - bl sub_804051C - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r6, 0 - ldr r1, _08041CCC @ =gUnknown_030004D8 - mov r8, r1 -_08041C46: - adds r5, r6, 0 - adds r5, 0xD - mov r0, r10 - adds r1, r5, 0 - bl GetBoxMonData - lsls r4, r6, 1 - mov r2, r8 - adds r1, r4, r2 - strh r0, [r1] - mov r0, r9 - adds r1, r5, 0 - bl GetBoxMonData - ldr r1, _08041CC8 @ =gUnknown_03000500 - adds r4, r1 - strh r0, [r4] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x3 - bls _08041C46 - ldr r1, _08041CD4 @ =gUnknown_030004E8 - adds r0, r7, 0 - bl pokemon_get_eggmoves - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r6, 0 -_08041C82: - ldr r0, _08041CCC @ =gUnknown_030004D8 - lsls r1, r6, 1 - adds r2, r1, r0 - ldrh r1, [r2] - mov r9, r0 - cmp r1, 0 - beq _08041CF8 - movs r5, 0 - cmp r5, r8 - bcs _08041CEA - adds r4, r2, 0 - ldr r2, _08041CDC @ =0x0000ffff -_08041C9A: - ldr r0, _08041CD4 @ =gUnknown_030004E8 - lsls r1, r5, 1 - adds r1, r0 - ldrh r0, [r4] - ldrh r1, [r1] - cmp r0, r1 - bne _08041CE0 - adds r1, r0, 0 - adds r0, r7, 0 - str r2, [sp, 0x8] - bl GiveMoveToMon - lsls r0, 16 - lsrs r0, 16 - ldr r2, [sp, 0x8] - cmp r0, r2 - bne _08041CEA - ldrh r1, [r4] - adds r0, r7, 0 - bl DeleteFirstMoveAndGiveMoveToMon - b _08041CEA - .align 2, 0 -_08041CC8: .4byte gUnknown_03000500 -_08041CCC: .4byte gUnknown_030004D8 -_08041CD0: .4byte gUnknown_030004E0 -_08041CD4: .4byte gUnknown_030004E8 -_08041CD8: .4byte gUnknown_03000470 -_08041CDC: .4byte 0x0000ffff -_08041CE0: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bcc _08041C9A -_08041CEA: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r3, _08041E14 @ =gUnknown_030004D8 - mov r9, r3 - cmp r6, 0x3 - bls _08041C82 -_08041CF8: - movs r6, 0 -_08041CFA: - lsls r0, r6, 1 - mov r2, r9 - adds r1, r0, r2 - ldrh r1, [r1] - adds r2, r0, 0 - adds r6, 0x1 - mov r8, r6 - cmp r1, 0 - beq _08041D5C - movs r5, 0 - ldr r0, _08041E14 @ =gUnknown_030004D8 - adds r4, r2, r0 - ldr r6, _08041E18 @ =0x0000ffff - mov r9, r0 -_08041D16: - ldr r3, _08041E1C @ =0x00000121 - adds r0, r5, r3 - lsls r0, 16 - lsrs r0, 16 - bl ItemIdToBattleMoveId - ldrh r1, [r4] - lsls r0, 16 - lsrs r0, 16 - cmp r1, r0 - bne _08041D52 - lsls r1, r5, 24 - lsrs r1, 24 - adds r0, r7, 0 - bl sub_8040374 - cmp r0, 0 - beq _08041D52 - ldrh r1, [r4] - adds r0, r7, 0 - bl GiveMoveToMon - lsls r0, 16 - lsrs r0, 16 - cmp r0, r6 - bne _08041D52 - ldrh r1, [r4] - adds r0, r7, 0 - bl DeleteFirstMoveAndGiveMoveToMon -_08041D52: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x39 - bls _08041D16 -_08041D5C: - mov r1, r8 - lsls r0, r1, 16 - lsrs r6, r0, 16 - cmp r6, 0x3 - bls _08041CFA - movs r6, 0 - mov r2, r9 - ldrh r0, [r2] - ldr r3, _08041E20 @ =gUnknown_030004E0 - mov r10, r3 - cmp r0, 0 - beq _08041DC6 - mov r4, r9 - ldr r0, _08041E24 @ =gUnknown_03000500 - mov r9, r0 - mov r12, r10 -_08041D7C: - movs r5, 0 - lsls r2, r6, 1 - adds r6, 0x1 - mov r8, r6 - adds r3, r2, r4 -_08041D86: - lsls r0, r5, 1 - add r0, r9 - ldrh r2, [r3] - adds r1, r2, 0 - ldrh r0, [r0] - cmp r1, r0 - bne _08041DA8 - cmp r1, 0 - beq _08041DA8 - ldr r1, [sp] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp] - lsls r1, 1 - add r1, r12 - strh r2, [r1] -_08041DA8: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _08041D86 - mov r1, r8 - lsls r0, r1, 16 - lsrs r6, r0, 16 - cmp r6, 0x3 - bhi _08041DC6 - lsls r0, r6, 1 - adds r0, r4 - ldrh r0, [r0] - cmp r0, 0 - bne _08041D7C -_08041DC6: - movs r6, 0 - mov r2, r10 - ldrh r0, [r2] - cmp r0, 0 - beq _08041E50 -_08041DD0: - movs r5, 0 - adds r3, r6, 0x1 - mov r8, r3 - ldr r0, [sp, 0x4] - cmp r5, r0 - bcs _08041E38 - ldr r2, _08041E18 @ =0x0000ffff -_08041DDE: - ldr r1, _08041E28 @ =gUnknown_03000470 - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - cmp r1, 0 - beq _08041E2C - lsls r0, r6, 1 - mov r3, r10 - adds r4, r0, r3 - ldrh r0, [r4] - cmp r0, r1 - bne _08041E2C - adds r1, r0, 0 - adds r0, r7, 0 - str r2, [sp, 0x8] - bl GiveMoveToMon - lsls r0, 16 - lsrs r0, 16 - ldr r2, [sp, 0x8] - cmp r0, r2 - bne _08041E38 - ldrh r1, [r4] - adds r0, r7, 0 - bl DeleteFirstMoveAndGiveMoveToMon - b _08041E38 - .align 2, 0 -_08041E14: .4byte gUnknown_030004D8 -_08041E18: .4byte 0x0000ffff -_08041E1C: .4byte 0x00000121 -_08041E20: .4byte gUnknown_030004E0 -_08041E24: .4byte gUnknown_03000500 -_08041E28: .4byte gUnknown_03000470 -_08041E2C: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, [sp, 0x4] - cmp r5, r0 - bcc _08041DDE -_08041E38: - mov r1, r8 - lsls r0, r1, 16 - lsrs r6, r0, 16 - cmp r6, 0x3 - bhi _08041E50 - ldr r0, _08041E60 @ =gUnknown_030004E0 - lsls r1, r6, 1 - adds r1, r0 - ldrh r1, [r1] - mov r10, r0 - cmp r1, 0 - bne _08041DD0 -_08041E50: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08041E60: .4byte gUnknown_030004E0 - thumb_func_end daycare_build_child_moveset - - thumb_func_start sub_8041E64 -sub_8041E64: @ 8041E64 - adds r3, r0, 0 - movs r1, 0x8C - lsls r1, 1 - adds r0, r3, r1 - movs r2, 0 - movs r1, 0 - strh r1, [r0] - movs r1, 0x8D - lsls r1, 1 - adds r0, r3, r1 - strb r2, [r0] - bx lr - thumb_func_end sub_8041E64 - - thumb_func_start sub_8041E7C -sub_8041E7C: @ 8041E7C - push {lr} - ldr r0, _08041E88 @ =gSaveBlock1 + 0x2F9C - bl sub_8041E64 - pop {r0} - bx r0 - .align 2, 0 -_08041E88: .4byte gSaveBlock1 + 0x2F9C - thumb_func_end sub_8041E7C - - thumb_func_start incense_effects -incense_effects: @ 8041E8C - push {r4-r7,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrh r1, [r4] - movs r7, 0xB4 - lsls r7, 1 - cmp r1, r7 - beq _08041EA4 - movs r0, 0xAF - lsls r0, 1 - cmp r1, r0 - bne _08041EE6 -_08041EA4: - adds r0, r5, 0 - movs r1, 0xC - bl GetBoxMonData - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r5, 0 - adds r0, 0x50 - movs r1, 0xC - bl GetBoxMonData - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r0, [r4] - cmp r0, r7 - bne _08041ED0 - cmp r6, 0xDD - beq _08041ED0 - cmp r2, 0xDD - beq _08041ED0 - movs r0, 0xCA - strh r0, [r4] -_08041ED0: - ldrh r1, [r4] - movs r0, 0xAF - lsls r0, 1 - cmp r1, r0 - bne _08041EE6 - cmp r6, 0xDC - beq _08041EE6 - cmp r2, 0xDC - beq _08041EE6 - movs r0, 0xB7 - strh r0, [r4] -_08041EE6: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end incense_effects - - thumb_func_start sub_8041EEC -sub_8041EEC: @ 8041EEC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - mov r8, r0 - adds r6, r1, 0 - movs r4, 0 - movs r7, 0x1 -_08041EFC: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - mov r1, r8 - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0xB - bl GetBoxMonData - lsls r1, r4, 1 - add r1, sp - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x84 - bne _08041F26 - adds r0, r4, 0 - eors r0, r7 - strb r0, [r6] - strb r4, [r6, 0x1] - b _08041F3C -_08041F26: - adds r0, r5, 0 - bl GetBoxMonGender - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFE - bne _08041F3C - strb r4, [r6] - adds r0, r4, 0 - eors r0, r7 - strb r0, [r6, 0x1] -_08041F3C: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _08041EFC - ldrb r0, [r6] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - bl sub_8041870 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bne _08041F6E - movs r0, 0x8C - lsls r0, 1 - add r0, r8 - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _08041F6E - movs r4, 0x20 -_08041F6E: - ldr r0, _08041FC0 @ =0x00000183 - cmp r4, r0 - bne _08041F88 - subs r0, 0x6B - add r0, r8 - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _08041F88 - movs r4, 0xC1 - lsls r4, 1 -_08041F88: - ldrb r0, [r6, 0x1] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - cmp r0, 0x84 - bne _08041FB2 - ldrb r1, [r6] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 4 - add r0, r8 - bl GetBoxMonGender - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFE - beq _08041FB2 - ldrb r1, [r6, 0x1] - ldrb r0, [r6] - strb r0, [r6, 0x1] - strb r1, [r6] -_08041FB2: - adds r0, r4, 0 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08041FC0: .4byte 0x00000183 - thumb_func_end sub_8041EEC - - thumb_func_start sub_8041FC4 -sub_8041FC4: @ 8041FC4 - push {r4-r6,lr} - sub sp, 0x6C - adds r5, r0, 0 - add r6, sp, 0x64 - adds r1, r6, 0 - bl sub_8041EEC - add r4, sp, 0x68 - strh r0, [r4] - adds r0, r4, 0 - adds r1, r5, 0 - bl incense_effects - ldrh r1, [r4] - mov r0, sp - adds r2, r5, 0 - bl sub_80420FC - mov r0, sp - adds r1, r5, 0 - bl sub_80419A8 - ldrb r0, [r6, 0x1] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 4 - adds r1, r5, r1 - ldrb r0, [r6] - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 4 - adds r2, r5, r2 - mov r0, sp - bl daycare_build_child_moveset - mov r2, sp - adds r2, 0x6A - movs r0, 0x1 - strb r0, [r2] - mov r0, sp - movs r1, 0x2D - bl SetMonData - ldr r0, _08042040 @ =gPlayerParty - movs r1, 0xFA - lsls r1, 1 - adds r0, r1 - mov r1, sp - movs r2, 0x64 - bl memcpy - bl party_compaction - bl CalculatePlayerPartyCount - adds r0, r5, 0 - bl sub_8041E64 - add sp, 0x6C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08042040: .4byte gPlayerParty - thumb_func_end sub_8041FC4 - - thumb_func_start sub_8042044 -sub_8042044: @ 8042044 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - adds r7, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 24 - lsrs r6, 24 - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - adds r1, r5, 0 - movs r2, 0x5 - movs r3, 0x20 - bl CreateMon - movs r0, 0x12 - add r0, sp - mov r8, r0 - strb r4, [r0] - movs r1, 0x4 - add r0, sp, 0x10 - strh r1, [r0] - mov r4, sp - adds r4, 0x13 - movs r0, 0x1 - mov r9, r0 - mov r0, r9 - strb r0, [r4] - adds r0, r7, 0 - movs r1, 0x26 - add r2, sp, 0x10 - bl SetMonData - ldr r2, _080420F4 @ =gUnknown_08209AD4 - adds r0, r7, 0 - movs r1, 0x2 - bl SetMonData - lsls r2, r5, 3 - subs r2, r5 - lsls r2, 2 - ldr r0, _080420F8 @ =gBaseStats + 0x11 @ egg cycles offset - adds r2, r0 - adds r0, r7, 0 - movs r1, 0x20 - bl SetMonData - adds r0, r7, 0 - movs r1, 0x24 - mov r2, r8 - bl SetMonData - adds r0, r7, 0 - movs r1, 0x3 - adds r2, r4, 0 - bl SetMonData - cmp r6, 0 - beq _080420D6 - add r2, sp, 0x14 - movs r0, 0xFD - strb r0, [r2] - adds r0, r7, 0 - movs r1, 0x23 - bl SetMonData -_080420D6: - mov r2, sp - adds r2, 0x15 - mov r0, r9 - strb r0, [r2] - adds r0, r7, 0 - movs r1, 0x2D - bl SetMonData - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080420F4: .4byte gUnknown_08209AD4 -_080420F8: .4byte gBaseStats + 0x11 @ egg cycles offset - thumb_func_end sub_8042044 - - thumb_func_start sub_80420FC -sub_80420FC: @ 80420FC - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x14 - adds r6, r0, 0 - adds r5, r1, 0 - adds r4, r2, 0 - lsls r5, 16 - lsrs r5, 16 - bl Random - movs r1, 0x8C - lsls r1, 1 - adds r4, r1 - ldrh r1, [r4] - lsls r0, 16 - orrs r1, r0 - movs r0, 0x1 - mov r8, r0 - str r0, [sp] - str r1, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r6, 0 - adds r1, r5, 0 - movs r2, 0x5 - movs r3, 0x20 - bl CreateMon - movs r1, 0x12 - add r1, sp - mov r9, r1 - strb r4, [r1] - movs r1, 0x4 - add r0, sp, 0x10 - strh r1, [r0] - mov r4, sp - adds r4, 0x13 - mov r0, r8 - strb r0, [r4] - adds r0, r6, 0 - movs r1, 0x26 - add r2, sp, 0x10 - bl SetMonData - ldr r2, _08042198 @ =gUnknown_08209AD4 - adds r0, r6, 0 - movs r1, 0x2 - bl SetMonData - lsls r2, r5, 3 - subs r2, r5 - lsls r2, 2 - ldr r0, _0804219C @ =gBaseStats + 0x11 @ egg cycles offset - adds r2, r0 - adds r0, r6, 0 - movs r1, 0x20 - bl SetMonData - adds r0, r6, 0 - movs r1, 0x24 - mov r2, r9 - bl SetMonData - adds r0, r6, 0 - movs r1, 0x3 - adds r2, r4, 0 - bl SetMonData - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08042198: .4byte gUnknown_08209AD4 -_0804219C: .4byte gBaseStats + 0x11 @ egg cycles offset - thumb_func_end sub_80420FC - - thumb_func_start sp0B8_daycare -sp0B8_daycare: @ 80421A0 - push {lr} - ldr r0, _080421AC @ =gSaveBlock1 + 0x2F9C - bl sub_8041FC4 - pop {r0} - bx r0 - .align 2, 0 -_080421AC: .4byte gSaveBlock1 + 0x2F9C - thumb_func_end sp0B8_daycare - - thumb_func_start sub_80421B0 -sub_80421B0: @ 80421B0 - push {r4-r7,lr} - sub sp, 0x8 - adds r7, r0, 0 - movs r2, 0 - movs r6, 0 - adds r5, r7, 0 -_080421BC: - lsls r4, r6, 2 - adds r0, r5, 0 - movs r1, 0x5 - str r2, [sp, 0x4] - bl GetBoxMonData - ldr r2, [sp, 0x4] - cmp r0, 0 - beq _080421DE - movs r0, 0x88 - lsls r0, 1 - adds r1, r7, r0 - adds r1, r4 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - adds r2, 0x1 -_080421DE: - adds r5, 0x50 - adds r6, 0x1 - cmp r6, 0x1 - bls _080421BC - movs r1, 0x8C - lsls r1, 1 - adds r0, r7, r1 - ldrh r0, [r0] - cmp r0, 0 - bne _08042226 - cmp r2, 0x2 - bne _08042226 - subs r1, 0x4 - adds r0, r7, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08042226 - adds r0, r7, 0 - bl daycare_relationship_score - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - muls r0, r1 - ldr r1, _08042240 @ =0x0000ffff - bl __udivsi3 - cmp r4, r0 - bls _08042226 - bl sub_8041940 -_08042226: - movs r0, 0x8D - lsls r0, 1 - adds r1, r7, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _08042290 - movs r6, 0 - b _08042288 - .align 2, 0 -_08042240: .4byte 0x0000ffff -_08042244: - movs r0, 0x64 - adds r1, r6, 0 - muls r1, r0 - ldr r0, _08042270 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - beq _08042286 - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - str r0, [sp] - cmp r0, 0 - bne _08042278 - ldr r0, _08042274 @ =gUnknown_0202E8CC - strh r6, [r0] - movs r0, 0x1 - b _08042292 - .align 2, 0 -_08042270: .4byte gPlayerParty -_08042274: .4byte gUnknown_0202E8CC -_08042278: - subs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0x20 - mov r2, sp - bl SetMonData -_08042286: - adds r6, 0x1 -_08042288: - ldr r0, _0804229C @ =gPlayerPartyCount - ldrb r0, [r0] - cmp r6, r0 - bcc _08042244 -_08042290: - movs r0, 0 -_08042292: - add sp, 0x8 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0804229C: .4byte gPlayerPartyCount - thumb_func_end sub_80421B0 - - thumb_func_start sub_80422A0 -sub_80422A0: @ 80422A0 - push {lr} - ldr r0, _080422B0 @ =gSaveBlock1 + 0x2F9C - bl sub_80421B0 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_080422B0: .4byte gSaveBlock1 + 0x2F9C - thumb_func_end sub_80422A0 - - thumb_func_start sub_80422B4 -sub_80422B4: @ 80422B4 - movs r1, 0x8C - lsls r1, 1 - adds r0, r1 - ldrh r1, [r0] - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - bx lr - thumb_func_end sub_80422B4 - - thumb_func_start sub_80422C4 -sub_80422C4: @ 80422C4 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _080422FC - ldr r1, _0804231C @ =gStringVar1 - adds r0, r6, 0 - bl pokemon_get_nick_ - adds r0, r6, 0 - movs r1, 0x3 - bl GetBoxMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _08042320 @ =gStringVar3 - adds r0, r6, 0 - movs r1, 0x7 - adds r2, r5, 0 - bl GetBoxMonData - adds r0, r5, 0 - adds r1, r4, 0 - bl ConvertInternationalString -_080422FC: - adds r4, r6, 0 - adds r4, 0x50 - adds r0, r4, 0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _08042314 - ldr r1, _08042324 @ =gStringVar2 - adds r0, r4, 0 - bl pokemon_get_nick_ -_08042314: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0804231C: .4byte gStringVar1 -_08042320: .4byte gStringVar3 -_08042324: .4byte gStringVar2 - thumb_func_end sub_80422C4 - - thumb_func_start sub_8042328 -sub_8042328: @ 8042328 - push {r4-r6,lr} - ldr r6, _08042354 @ =gUnknown_03005CE0 - ldrb r0, [r6] - movs r5, 0x64 - muls r0, r5 - ldr r4, _08042358 @ =gPlayerParty - adds r0, r4 - ldr r1, _0804235C @ =gStringVar1 - bl pokemon_get_nick_ - ldrb r0, [r6] - muls r0, r5 - adds r0, r4 - movs r1, 0xB - bl GetBoxMonData - lsls r0, 16 - lsrs r0, 16 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08042354: .4byte gUnknown_03005CE0 -_08042358: .4byte gPlayerParty -_0804235C: .4byte gStringVar1 - thumb_func_end sub_8042328 - - thumb_func_start sp0B5_daycare -sp0B5_daycare: @ 8042360 - push {lr} - ldr r0, _0804236C @ =gSaveBlock1 + 0x2F9C - bl sub_80422C4 - pop {r0} - bx r0 - .align 2, 0 -_0804236C: .4byte gSaveBlock1 + 0x2F9C - thumb_func_end sp0B5_daycare - - thumb_func_start sp0B6_daycare -sp0B6_daycare: @ 8042370 - push {r4,lr} - ldr r4, _08042384 @ =gSaveBlock1 + 0x2F9C - adds r0, r4, 0 - bl sub_80422B4 - lsls r0, 24 - cmp r0, 0 - beq _08042388 - movs r0, 0x1 - b _080423A0 - .align 2, 0 -_08042384: .4byte gSaveBlock1 + 0x2F9C -_08042388: - adds r0, r4, 0 - bl daycare_count_pokemon - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0804239A - movs r0, 0 - b _080423A0 -_0804239A: - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 -_080423A0: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sp0B6_daycare - - thumb_func_start sub_80423A8 -sub_80423A8: @ 80423A8 - push {r4-r6,lr} - adds r5, r1, 0 - movs r4, 0 - adds r1, r0, 0 -_080423B0: - movs r3, 0 - ldrh r0, [r1] - adds r2, r5, 0 -_080423B6: - ldrh r6, [r2] - cmp r0, r6 - bne _080423C0 - movs r0, 0x1 - b _080423D2 -_080423C0: - adds r2, 0x2 - adds r3, 0x1 - cmp r3, 0x1 - ble _080423B6 - adds r1, 0x2 - adds r4, 0x1 - cmp r4, 0x1 - ble _080423B0 - movs r0, 0 -_080423D2: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80423A8 - - thumb_func_start daycare_relationship_score -daycare_relationship_score: @ 80423D8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - movs r1, 0 - mov r8, r1 - mov r2, sp - adds r2, 0x8 - str r2, [sp, 0x1C] - add r1, sp, 0xC - mov r10, r1 - adds r2, 0xC - str r2, [sp, 0x20] - mov r1, sp - adds r1, 0x2 - ldr r2, _08042488 @ =gBaseStats - mov r9, r2 - ldr r5, [sp, 0x1C] - adds r7, r1, 0 - mov r6, sp - ldr r1, [sp, 0x20] - str r1, [sp, 0x24] - mov r2, r10 - str r2, [sp, 0x28] - adds r4, r0, 0 -_0804240E: - adds r0, r4, 0 - movs r1, 0xB - bl GetBoxMonData - strh r0, [r5] - adds r0, r4, 0 - movs r1, 0x1 - bl GetBoxMonData - ldr r1, [sp, 0x28] - stm r1!, {r0} - str r1, [sp, 0x28] - adds r0, r4, 0 - movs r1, 0 - bl GetBoxMonData - adds r1, r0, 0 - ldrh r0, [r5] - bl GetGenderFromSpeciesAndPersonality - lsls r0, 24 - lsrs r0, 24 - ldr r2, [sp, 0x24] - stm r2!, {r0} - str r2, [sp, 0x24] - ldrh r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r9 - ldrb r0, [r0, 0x14] - strh r0, [r6] - ldrh r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r9 - ldrb r0, [r0, 0x15] - strh r0, [r7] - adds r5, 0x2 - adds r7, 0x4 - adds r6, 0x4 - adds r4, 0x50 - movs r0, 0x1 - add r8, r0 - mov r1, r8 - cmp r1, 0x1 - bls _0804240E - mov r0, sp - ldrh r1, [r0] - cmp r1, 0xF - beq _08042484 - ldrh r0, [r0, 0x4] - cmp r0, 0xF - beq _08042484 - cmp r1, 0xD - bne _0804248C - cmp r0, 0xD - bne _08042490 -_08042484: - movs r0, 0 - b _080424E4 - .align 2, 0 -_08042488: .4byte gBaseStats -_0804248C: - cmp r0, 0xD - bne _0804249C -_08042490: - ldr r1, [sp, 0xC] - mov r2, r10 - ldr r0, [r2, 0x4] - cmp r1, r0 - beq _080424DE - b _080424E2 -_0804249C: - ldr r0, [sp, 0x14] - ldr r2, [sp, 0x20] - ldr r1, [r2, 0x4] - cmp r0, r1 - beq _08042484 - cmp r0, 0xFF - beq _08042484 - cmp r1, 0xFF - beq _08042484 - add r1, sp, 0x4 - mov r0, sp - bl sub_80423A8 - lsls r0, 24 - cmp r0, 0 - beq _08042484 - ldr r0, [sp, 0x1C] - ldrh r1, [r0, 0x2] - ldrh r0, [r0] - cmp r0, r1 - bne _080424D4 - ldr r1, [sp, 0xC] - mov r2, r10 - ldr r0, [r2, 0x4] - cmp r1, r0 - beq _080424E2 - movs r0, 0x46 - b _080424E4 -_080424D4: - ldr r1, [sp, 0xC] - mov r2, r10 - ldr r0, [r2, 0x4] - cmp r1, r0 - bne _080424E2 -_080424DE: - movs r0, 0x14 - b _080424E4 -_080424E2: - movs r0, 0x32 -_080424E4: - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end daycare_relationship_score - - thumb_func_start daycare_relationship_score_from_savegame -daycare_relationship_score_from_savegame: @ 80424F4 - push {lr} - ldr r0, _08042504 @ =gSaveBlock1 + 0x2F9C - bl daycare_relationship_score - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08042504: .4byte gSaveBlock1 + 0x2F9C - thumb_func_end daycare_relationship_score_from_savegame - - thumb_func_start sp0B9_daycare_relationship_comment -sp0B9_daycare_relationship_comment: @ 8042508 - push {lr} - bl daycare_relationship_score_from_savegame - lsls r0, 24 - lsrs r0, 24 - adds r2, r0, 0 - movs r1, 0 - cmp r0, 0 - bne _0804251C - movs r1, 0x3 -_0804251C: - cmp r0, 0x14 - bne _08042522 - movs r1, 0x2 -_08042522: - cmp r0, 0x32 - bne _08042528 - movs r1, 0x1 -_08042528: - cmp r2, 0x46 - bne _0804252E - movs r1, 0 -_0804252E: - ldr r0, _08042540 @ =gStringVar4 - ldr r2, _08042544 @ =gUnknown_08209AC4 - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - pop {r0} - bx r0 - .align 2, 0 -_08042540: .4byte gStringVar4 -_08042544: .4byte gUnknown_08209AC4 - thumb_func_end sp0B9_daycare_relationship_comment - - thumb_func_start NameHasGenderSymbol -NameHasGenderSymbol: @ 8042548 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - mov r2, sp - mov r1, sp - movs r0, 0 - strb r0, [r1, 0x1] - strb r0, [r2] - movs r3, 0 - ldrb r0, [r4] - cmp r0, 0xFF - beq _0804258C -_08042564: - adds r1, r4, r3 - ldrb r0, [r1] - cmp r0, 0xB5 - bne _08042572 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] -_08042572: - ldrb r0, [r1] - cmp r0, 0xB6 - bne _0804257E - ldrb r0, [r2, 0x1] - adds r0, 0x1 - strb r0, [r2, 0x1] -_0804257E: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r4, r3 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08042564 -_0804258C: - cmp r5, 0 - bne _080425A0 - mov r0, sp - ldrb r0, [r0] - cmp r0, 0 - beq _080425A0 - mov r0, sp - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _080425B4 -_080425A0: - cmp r5, 0xFE - bne _080425B8 - mov r0, sp - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _080425B8 - mov r0, sp - ldrb r0, [r0] - cmp r0, 0 - bne _080425B8 -_080425B4: - movs r0, 0x1 - b _080425BA -_080425B8: - movs r0, 0 -_080425BA: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end NameHasGenderSymbol - - thumb_func_start AppendGenderSymbol -AppendGenderSymbol: @ 80425C4 - push {r4,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0 - bne _080425E4 - movs r1, 0 - bl NameHasGenderSymbol - lsls r0, 24 - cmp r0, 0 - bne _08042600 - ldr r1, _080425E0 @ =gOtherText_MaleSymbol3 - b _08042602 - .align 2, 0 -_080425E0: .4byte gOtherText_MaleSymbol3 -_080425E4: - cmp r1, 0xFE - bne _08042600 - adds r0, r4, 0 - movs r1, 0xFE - bl NameHasGenderSymbol - lsls r0, 24 - cmp r0, 0 - bne _08042600 - ldr r1, _080425FC @ =gOtherText_FemaleSymbol3 - b _08042602 - .align 2, 0 -_080425FC: .4byte gOtherText_FemaleSymbol3 -_08042600: - ldr r1, _08042610 @ =gOtherText_GenderlessSymbol -_08042602: - adds r0, r4, 0 - bl StringAppend - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08042610: .4byte gOtherText_GenderlessSymbol - thumb_func_end AppendGenderSymbol - - thumb_func_start MonAppendGenderSymbol -MonAppendGenderSymbol: @ 8042614 - push {r4,lr} - adds r4, r0, 0 - adds r0, r1, 0 - bl GetBoxMonGender - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl AppendGenderSymbol - pop {r4} - pop {r1} - bx r1 - thumb_func_end MonAppendGenderSymbol - - thumb_func_start DaycareLevelMenuGetText -DaycareLevelMenuGetText: @ 8042630 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x28 - mov r8, r0 - adds r7, r1, 0 - movs r0, 0xFF - strb r0, [r7] - movs r6, 0 - add r0, sp, 0x14 - mov r9, r0 -_08042648: - lsls r0, r6, 2 - adds r0, r6 - lsls r4, r0, 4 - add r4, r8 - lsls r0, 2 - mov r1, sp - adds r5, r1, r0 - adds r0, r4, 0 - adds r1, r5, 0 - bl pokemon_get_nick_ - adds r0, r5, 0 - adds r1, r4, 0 - bl MonAppendGenderSymbol - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x1 - bls _08042648 - adds r0, r7, 0 - mov r1, sp - bl StringCopy - ldr r4, _080426A8 @ =gOtherText_NewLine2 - adds r0, r7, 0 - adds r1, r4, 0 - bl StringAppend - adds r0, r7, 0 - mov r1, r9 - bl StringAppend - adds r0, r7, 0 - adds r1, r4, 0 - bl StringAppend - ldr r1, _080426AC @ =gOtherText_CancelAndLv - adds r0, r7, 0 - bl StringAppend - add sp, 0x28 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080426A8: .4byte gOtherText_NewLine2 -_080426AC: .4byte gOtherText_CancelAndLv - thumb_func_end DaycareLevelMenuGetText - - thumb_func_start DaycareLevelMenuGetLevelText -DaycareLevelMenuGetLevelText: @ 80426B0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - adds r4, r1, 0 - movs r0, 0xFF - strb r0, [r4] - movs r5, 0 - movs r0, 0xFC - mov r8, r0 - movs r7, 0x14 -_080426C6: - lsls r2, r5, 2 - adds r0, r2, r5 - lsls r0, 4 - adds r0, r6, r0 - movs r3, 0x88 - lsls r3, 1 - adds r1, r6, r3 - adds r1, r2 - ldr r1, [r1] - bl sub_8041664 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x34 - strb r0, [r4] - mov r0, r8 - strb r0, [r4, 0x1] - strb r7, [r4, 0x2] - movs r0, 0x6 - strb r0, [r4, 0x3] - adds r0, r4, 0x4 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r4, r0, 0 - mov r3, r8 - strb r3, [r4] - strb r7, [r4, 0x1] - movs r0, 0 - strb r0, [r4, 0x2] - adds r0, r4, 0x3 - ldr r1, _08042728 @ =gOtherText_NewLine2 - bl StringCopy - adds r4, r0, 0 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bls _080426C6 - movs r0, 0xFF - strb r0, [r4] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08042728: .4byte gOtherText_NewLine2 - thumb_func_end DaycareLevelMenuGetLevelText - - thumb_func_start DaycareLevelMenuProcessKeyInput -DaycareLevelMenuProcessKeyInput: @ 804272C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - ldr r0, _08042760 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08042768 - ldr r0, _08042764 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r2, [r1, 0x8] - movs r3, 0x8 - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _08042816 - subs r0, r2, 0x1 - strh r0, [r1, 0x8] - movs r0, 0x1 - negs r0, r0 - b _0804278A - .align 2, 0 -_08042760: .4byte gMain -_08042764: .4byte gTasks -_08042768: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0804279C - ldr r0, _08042798 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r2, [r1, 0x8] - movs r3, 0x8 - ldrsh r0, [r1, r3] - cmp r0, 0x2 - beq _08042816 - adds r0, r2, 0x1 - strh r0, [r1, 0x8] - movs r0, 0x1 -_0804278A: - bl MoveMenuCursor - movs r0, 0x5 - bl PlaySE - b _08042816 - .align 2, 0 -_08042798: .4byte gTasks -_0804279C: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080427E8 - bl sub_8072DEC - movs r0, 0x5 - bl PlaySE - ldr r3, _080427DC @ =gUnknown_03005CE0 - ldr r2, _080427E0 @ =gScriptResult - ldr r1, _080427E4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x8] - strh r0, [r2] - strb r0, [r3] - adds r0, r4, 0 - bl DestroyTask - movs r0, 0xF - movs r1, 0x6 - movs r2, 0x1D - movs r3, 0xD - bl MenuZeroFillWindowRect - bl EnableBothScriptContexts - b _08042816 - .align 2, 0 -_080427DC: .4byte gUnknown_03005CE0 -_080427E0: .4byte gScriptResult -_080427E4: .4byte gTasks -_080427E8: - movs r4, 0x2 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _08042816 - bl sub_8072DEC - ldr r0, _0804281C @ =gUnknown_03005CE0 - ldr r1, _08042820 @ =gScriptResult - strh r4, [r1] - movs r1, 0x2 - strb r1, [r0] - adds r0, r5, 0 - bl DestroyTask - movs r0, 0xF - movs r1, 0x6 - movs r2, 0x1D - movs r3, 0xD - bl MenuZeroFillWindowRect - bl EnableBothScriptContexts -_08042816: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0804281C: .4byte gUnknown_03005CE0 -_08042820: .4byte gScriptResult - thumb_func_end DaycareLevelMenuProcessKeyInput - - thumb_func_start ShowDaycareLevelMenu -ShowDaycareLevelMenu: @ 8042824 - push {r4,lr} - sub sp, 0x6C - movs r0, 0xF - movs r1, 0x6 - movs r2, 0x1D - movs r3, 0xD - bl MenuDrawTextWindow - ldr r4, _08042880 @ =gSaveBlock1 + 0x2F9C - adds r0, r4, 0 - add r1, sp, 0x8 - bl DaycareLevelMenuGetText - add r0, sp, 0x8 - movs r1, 0x10 - movs r2, 0x7 - bl MenuPrint - adds r0, r4, 0 - add r1, sp, 0x8 - bl DaycareLevelMenuGetLevelText - add r0, sp, 0x8 - movs r1, 0xCE - movs r2, 0x38 - movs r3, 0x1 - bl MenuPrint_PixelCoords - movs r0, 0 - str r0, [sp] - movs r0, 0xD - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x10 - movs r2, 0x7 - movs r3, 0x3 - bl InitMenu - ldr r0, _08042884 @ =sub_804272C - movs r1, 0x3 - bl CreateTask - add sp, 0x6C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08042880: .4byte gSaveBlock1 + 0x2F9C -_08042884: .4byte DaycareLevelMenuProcessKeyInput - thumb_func_end ShowDaycareLevelMenu - - thumb_func_start ChooseSendDaycareMon -ChooseSendDaycareMon: @ 8042888 - push {lr} - movs r0, 0x6 - movs r1, 0 - bl OpenPartyMenu - ldr r1, _0804289C @ =gMain - ldr r0, _080428A0 @ =c2_exit_to_overworld_2_switch - str r0, [r1, 0x8] - pop {r0} - bx r0 - .align 2, 0 -_0804289C: .4byte gMain -_080428A0: .4byte c2_exit_to_overworld_2_switch - thumb_func_end ChooseSendDaycareMon - - thumb_func_start CreatedHatchedMon -CreatedHatchedMon: @ 80428A4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x48 - adds r6, r0, 0 - adds r5, r1, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - movs r4, 0 - add r7, sp, 0x18 - mov r0, sp - adds r0, 0x31 - str r0, [sp, 0x38] - mov r1, sp - adds r1, 0x32 - str r1, [sp, 0x3C] - add r0, sp, 0x30 - mov r9, r0 - adds r1, 0x1 - str r1, [sp, 0x40] - mov r0, sp - adds r0, 0x34 - str r0, [sp, 0x44] -_080428DE: - adds r1, r4, 0 - adds r1, 0xD - adds r0, r6, 0 - bl GetMonData - lsls r1, r4, 1 - add r1, sp - adds r1, 0x10 - strh r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080428DE - adds r0, r6, 0 - movs r1, 0 - bl GetMonData - mov r8, r0 - movs r4, 0 -_08042906: - adds r1, r4, 0 - adds r1, 0x27 - adds r0, r6, 0 - bl GetMonData - lsls r1, r4, 2 - adds r1, r7, r1 - str r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _08042906 - adds r0, r6, 0 - movs r1, 0x25 - bl GetMonData - ldr r1, [sp, 0x38] - strb r0, [r1] - adds r0, r6, 0 - movs r1, 0x8 - bl GetMonData - ldr r1, [sp, 0x3C] - strb r0, [r1] - adds r0, r6, 0 - movs r1, 0x22 - bl GetMonData - str r0, [sp, 0x34] - movs r0, 0x1 - str r0, [sp] - mov r0, r8 - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - str r0, [sp, 0xC] - adds r0, r5, 0 - mov r1, r10 - movs r2, 0x5 - movs r3, 0x20 - bl CreateMon - movs r4, 0 -_0804295E: - adds r1, r4, 0 - adds r1, 0xD - lsls r0, r4, 1 - mov r2, sp - adds r2, r0 - adds r2, 0x10 - adds r0, r5, 0 - bl SetMonData - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _0804295E - movs r4, 0 -_0804297C: - adds r1, r4, 0 - adds r1, 0x27 - lsls r2, r4, 2 - adds r2, r7, r2 - adds r0, r5, 0 - bl SetMonData - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _0804297C - movs r0, 0x2 - mov r1, r9 - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0x3 - mov r2, r9 - bl SetMonData - adds r0, r5, 0 - movs r1, 0x25 - ldr r2, [sp, 0x38] - bl SetMonData - adds r0, r5, 0 - movs r1, 0x8 - ldr r2, [sp, 0x3C] - bl SetMonData - movs r0, 0x78 - ldr r1, [sp, 0x40] - strb r0, [r1] - adds r0, r5, 0 - movs r1, 0x20 - ldr r2, [sp, 0x40] - bl SetMonData - adds r0, r5, 0 - movs r1, 0x22 - ldr r2, [sp, 0x44] - bl SetMonData - adds r0, r6, 0 - adds r1, r5, 0 - movs r2, 0x64 - bl memcpy - add sp, 0x48 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end CreatedHatchedMon - - thumb_func_start AddHatchedMonToParty -AddHatchedMonToParty: @ 80429EC - push {r4-r6,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - adds r5, r0, 0 - muls r5, r1 - ldr r0, _08042A9C @ =gPlayerParty - adds r5, r0 - ldr r1, _08042AA0 @ =gEnemyParty - adds r0, r5, 0 - bl CreatedHatchedMon - add r2, sp, 0xC - movs r6, 0 - strb r6, [r2] - adds r0, r5, 0 - movs r1, 0x2D - bl SetMonData - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, sp - adds r1, r4, 0 - bl GetSpeciesName - adds r0, r5, 0 - movs r1, 0x2 - mov r2, sp - bl SetMonData - adds r0, r4, 0 - bl SpeciesToNationalPokedexNum - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8090D90 - adds r0, r4, 0 - movs r1, 0x3 - bl sub_8090D90 - ldr r1, _08042AA4 @ =gStringVar1 - adds r0, r5, 0 - bl pokemon_get_nick - mov r2, sp - adds r2, 0xE - movs r0, 0x4 - strh r0, [r2] - adds r0, r5, 0 - movs r1, 0x26 - bl SetMonData - add r2, sp, 0x10 - strh r6, [r2] - adds r0, r5, 0 - movs r1, 0x24 - bl SetMonData - bl sav1_map_get_name - mov r2, sp - adds r2, 0x12 - strb r0, [r2] - adds r0, r5, 0 - movs r1, 0x23 - bl SetMonData - adds r0, r5, 0 - bl sub_8040B1C - adds r0, r5, 0 - bl CalculateMonStats - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08042A9C: .4byte gPlayerParty -_08042AA0: .4byte gEnemyParty -_08042AA4: .4byte gStringVar1 - thumb_func_end AddHatchedMonToParty - - thumb_func_start ScriptHatchMon -ScriptHatchMon: @ 8042AA8 - push {lr} - ldr r0, _08042AB8 @ =gUnknown_0202E8CC - ldrb r0, [r0] - bl AddHatchedMonToParty - pop {r0} - bx r0 - .align 2, 0 -_08042AB8: .4byte gUnknown_0202E8CC - thumb_func_end ScriptHatchMon - - thumb_func_start sub_8042ABC -sub_8042ABC: @ 8042ABC - push {r4-r6,lr} - sub sp, 0x20 - adds r5, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - adds r0, r5, r0 - mov r1, sp - bl pokemon_get_nick_ - lsls r0, r4, 3 - subs r0, r4 - lsls r1, r0, 3 - adds r0, r5, r1 - adds r0, 0xC0 - ldrh r0, [r0] - cmp r0, 0 - beq _08042B40 - adds r0, r1, 0 - adds r0, 0xA0 - adds r5, r0 - adds r6, r5, 0 - adds r6, 0x2C - mov r0, sp - adds r1, r6, 0 - bl StringCompareWithoutExtCtrlCodes - cmp r0, 0 - bne _08042B08 - ldr r0, _08042B30 @ =gSaveBlock2 - adds r1, r5, 0 - adds r1, 0x24 - bl StringCompareWithoutExtCtrlCodes - cmp r0, 0 - beq _08042B40 -_08042B08: - ldr r0, _08042B34 @ =gStringVar1 - mov r1, sp - bl StringCopy - ldr r4, _08042B38 @ =gStringVar2 - adds r1, r5, 0 - adds r1, 0x24 - adds r0, r4, 0 - bl StringCopy - ldr r0, _08042B3C @ =gStringVar3 - adds r1, r6, 0 - bl StringCopy - adds r0, r4, 0 - bl sub_814A568 - movs r0, 0x1 - b _08042B42 - .align 2, 0 -_08042B30: .4byte gSaveBlock2 -_08042B34: .4byte gStringVar1 -_08042B38: .4byte gStringVar2 -_08042B3C: .4byte gStringVar3 -_08042B40: - movs r0, 0 -_08042B42: - add sp, 0x20 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8042ABC - - thumb_func_start sub_8042B4C -sub_8042B4C: @ 8042B4C - push {lr} - ldr r0, _08042B60 @ =gSaveBlock1 + 0x2F9C - ldr r1, _08042B64 @ =gUnknown_0202E8CC - ldrb r1, [r1] - bl sub_8042ABC - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08042B60: .4byte gSaveBlock1 + 0x2F9C -_08042B64: .4byte gUnknown_0202E8CC - thumb_func_end sub_8042B4C - - thumb_func_start EggHatchCreateMonSprite -EggHatchCreateMonSprite: @ 8042B68 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xC - lsls r0, 24 - lsrs r3, r0, 24 - adds r4, r3, 0 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r1, r2, 24 - adds r2, r1, 0 - movs r5, 0 - mov r9, r5 - movs r7, 0 - cmp r3, 0 - bne _08042B96 - movs r0, 0x64 - muls r1, r0 - ldr r0, _08042BB0 @ =gPlayerParty - adds r7, r1, r0 - movs r5, 0x1 -_08042B96: - cmp r3, 0x1 - bne _08042BA6 - movs r0, 0x64 - adds r1, r2, 0 - muls r1, r0 - ldr r0, _08042BB0 @ =gPlayerParty - adds r7, r1, r0 - movs r5, 0x3 -_08042BA6: - cmp r6, 0 - beq _08042BB4 - cmp r6, 0x1 - beq _08042C14 - b _08042C50 - .align 2, 0 -_08042BB0: .4byte gPlayerParty -_08042BB4: - adds r0, r7, 0 - movs r1, 0xB - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r7, 0 - movs r1, 0 - bl GetMonData - mov r8, r0 - lsls r0, r5, 3 - ldr r1, _08042C04 @ =gMonFrontPicTable - adds r0, r1 - ldr r1, _08042C08 @ =gMonFrontPicCoords - lsls r2, r5, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - ldr r3, _08042C0C @ =0x02000000 - ldr r6, _08042C10 @ =gUnknown_081FAF4C - lsls r4, 1 - adds r4, 0x1 - lsls r4, 2 - adds r4, r6 - ldr r4, [r4] - str r4, [sp] - str r5, [sp, 0x4] - mov r4, r8 - str r4, [sp, 0x8] - bl sub_800D334 - adds r0, r7, 0 - bl sub_8040990 - bl LoadCompressedObjectPalette - b _08042C50 - .align 2, 0 -_08042C04: .4byte gMonFrontPicTable -_08042C08: .4byte gMonFrontPicCoords -_08042C0C: .4byte 0x02000000 -_08042C10: .4byte gUnknown_081FAF4C -_08042C14: - adds r0, r7, 0 - bl sub_8040990 - ldrh r0, [r0, 0x4] - adds r1, r5, 0 - bl GetMonSpriteTemplate_803C56C - ldr r0, _08042C60 @ =gUnknown_02024E8C - movs r1, 0x78 - movs r2, 0x46 - movs r3, 0x6 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r4, _08042C64 @ =gSprites - lsls r1, r0, 4 - add r1, r9 - lsls r1, 2 - adds r2, r1, r4 - adds r2, 0x3E - ldrb r0, [r2] - movs r3, 0x4 - orrs r0, r3 - strb r0, [r2] - adds r4, 0x1C - adds r1, r4 - ldr r0, _08042C68 @ =SpriteCallbackDummy - str r0, [r1] -_08042C50: - mov r0, r9 - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08042C60: .4byte gUnknown_02024E8C -_08042C64: .4byte gSprites -_08042C68: .4byte SpriteCallbackDummy - thumb_func_end EggHatchCreateMonSprite - - thumb_func_start VBlankCB_EggHatch -VBlankCB_EggHatch: @ 8042C6C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end VBlankCB_EggHatch - - thumb_func_start EggHatch -EggHatch: @ 8042C80 - push {lr} - sub sp, 0x4 - bl ScriptContext2_Enable - ldr r0, _08042CA8 @ =sub_8042CAC - 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 - .align 2, 0 -_08042CA8: .4byte Task_EggHatch - thumb_func_end EggHatch - - thumb_func_start Task_EggHatch -Task_EggHatch: @ 8042CAC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08042CD8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08042CD0 - ldr r0, _08042CDC @ =sub_8042CE8 - bl SetMainCallback2 - ldr r1, _08042CE0 @ =gUnknown_0300485C - ldr r0, _08042CE4 @ =sub_8080990 - str r0, [r1] - adds r0, r4, 0 - bl DestroyTask -_08042CD0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08042CD8: .4byte gPaletteFade -_08042CDC: .4byte CB2_EggHatch_0 -_08042CE0: .4byte gUnknown_0300485C -_08042CE4: .4byte sub_8080990 - thumb_func_end Task_EggHatch - - thumb_func_start CB2_EggHatch_0 -CB2_EggHatch_0: @ 8042CE8 - push {r4-r7,lr} - ldr r0, _08042D04 @ =gMain - ldr r1, _08042D08 @ =0x0000043c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x8 - bls _08042CF8 - b _08042F6E -_08042CF8: - lsls r0, 2 - ldr r1, _08042D0C @ =_08042D10 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08042D04: .4byte gMain -_08042D08: .4byte 0x0000043c -_08042D0C: .4byte _08042D10 - .align 2, 0 -_08042D10: - .4byte _08042D34 - .4byte _08042D90 - .4byte _08042DC4 - .4byte _08042E20 - .4byte _08042E40 - .4byte _08042E74 - .4byte _08042E88 - .4byte _08042EB0 - .4byte _08042F40 -_08042D34: - movs r0, 0x80 - lsls r0, 19 - movs r2, 0 - strh r2, [r0] - ldr r1, _08042D74 @ =gUnknown_0300481C - ldr r0, _08042D78 @ =0x02018000 - str r0, [r1] - ldr r1, _08042D7C @ =gUnknown_0202E8CC - ldrh r1, [r1] - strb r1, [r0, 0x4] - adds r0, 0x3A - strb r2, [r0] - bl ResetTasks - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r0, _08042D80 @ =sub_8042C6C - bl SetVBlankCallback - ldr r1, _08042D84 @ =gMain - ldr r2, _08042D88 @ =0x0000043c - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - bl GetCurrentMapMusic - ldr r1, _08042D8C @ =gUnknown_0202E8CE - strh r0, [r1] - b _08042F6E - .align 2, 0 -_08042D74: .4byte gUnknown_0300481C -_08042D78: .4byte 0x02018000 -_08042D7C: .4byte gUnknown_0202E8CC -_08042D80: .4byte VBlankCB_EggHatch -_08042D84: .4byte gMain -_08042D88: .4byte 0x0000043c -_08042D8C: .4byte gUnknown_0202E8CE -_08042D90: - ldr r5, _08042DBC @ =gWindowConfig_81E6F84 - adds r0, r5, 0 - bl SetUpWindowConfig - ldr r4, _08042DC0 @ =gUnknown_0300481C - ldr r0, [r4] - adds r0, 0x8 - adds r1, r5, 0 - bl InitWindowFromConfig - movs r0, 0x14 - bl SetTextWindowBaseTileNum - ldr r1, [r4] - adds r1, 0x38 - strb r0, [r1] - ldr r0, [r4] - adds r0, 0x8 - bl LoadTextWindowGraphics - b _08042F04 - .align 2, 0 -_08042DBC: .4byte gWindowConfig_81E6F84 -_08042DC0: .4byte gUnknown_0300481C -_08042DC4: - ldr r0, _08042DFC @ =gUnknown_08D00000 - movs r1, 0xC0 - lsls r1, 19 - bl LZDecompressVram - ldr r0, _08042E00 @ =gUnknown_08D00524 - ldr r4, _08042E04 @ =0x02000000 - movs r2, 0x80 - lsls r2, 4 - adds r1, r4, 0 - bl CpuSet - ldr r1, _08042E08 @ =0x040000d4 - str r4, [r1] - ldr r0, _08042E0C @ =0x06002800 - str r0, [r1, 0x4] - ldr r0, _08042E10 @ =0x80000280 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r0, _08042E14 @ =gUnknown_08D004E0 - movs r1, 0 - movs r2, 0x20 - bl LoadCompressedPalette - ldr r1, _08042E18 @ =gMain - ldr r2, _08042E1C @ =0x0000043c - adds r1, r2 - b _08042F0A - .align 2, 0 -_08042DFC: .4byte gUnknown_08D00000 -_08042E00: .4byte gUnknown_08D00524 -_08042E04: .4byte 0x02000000 -_08042E08: .4byte 0x040000d4 -_08042E0C: .4byte 0x06002800 -_08042E10: .4byte 0x80000280 -_08042E14: .4byte gUnknown_08D004E0 -_08042E18: .4byte gMain -_08042E1C: .4byte 0x0000043c -_08042E20: - ldr r0, _08042E34 @ =gUnknown_0820A3B0 - bl LoadSpriteSheet - ldr r0, _08042E38 @ =gUnknown_0820A3B8 - bl LoadSpriteSheet - ldr r0, _08042E3C @ =gUnknown_0820A3C0 - bl LoadSpritePalette - b _08042F04 - .align 2, 0 -_08042E34: .4byte gUnknown_0820A3B0 -_08042E38: .4byte gUnknown_0820A3B8 -_08042E3C: .4byte gUnknown_0820A3C0 -_08042E40: - ldr r0, _08042E64 @ =gSpriteTemplate_820A3C8 - movs r1, 0x78 - movs r2, 0x4B - movs r3, 0x5 - bl CreateSprite - ldr r2, _08042E68 @ =gUnknown_0300481C - ldr r1, [r2] - strb r0, [r1] - ldr r0, [r2] - ldrb r0, [r0, 0x4] - bl AddHatchedMonToParty - ldr r1, _08042E6C @ =gMain - ldr r2, _08042E70 @ =0x0000043c - adds r1, r2 - b _08042F0A - .align 2, 0 -_08042E64: .4byte gSpriteTemplate_820A3C8 -_08042E68: .4byte gUnknown_0300481C -_08042E6C: .4byte gMain -_08042E70: .4byte 0x0000043c -_08042E74: - ldr r0, _08042E84 @ =gUnknown_0300481C - ldr r0, [r0] - ldrb r2, [r0, 0x4] - movs r0, 0 - movs r1, 0 - bl EggHatchCreateMonSprite - b _08042F04 - .align 2, 0 -_08042E84: .4byte gUnknown_0300481C -_08042E88: - ldr r4, _08042EA4 @ =gUnknown_0300481C - ldr r0, [r4] - ldrb r2, [r0, 0x4] - movs r0, 0 - movs r1, 0x1 - bl EggHatchCreateMonSprite - ldr r1, [r4] - strb r0, [r1, 0x1] - ldr r1, _08042EA8 @ =gMain - ldr r2, _08042EAC @ =0x0000043c - adds r1, r2 - b _08042F0A - .align 2, 0 -_08042EA4: .4byte gUnknown_0300481C -_08042EA8: .4byte gMain -_08042EAC: .4byte 0x0000043c -_08042EB0: - ldr r0, _08042F14 @ =REG_BG2CNT - ldr r2, _08042F18 @ =0x00004c06 - adds r1, r2, 0 - strh r1, [r0] - ldr r0, _08042F1C @ =gUnknown_0820C9F8 - movs r1, 0x10 - movs r2, 0xA0 - bl LoadPalette - ldr r3, _08042F20 @ =gUnknown_0820CA98 - ldr r4, _08042F24 @ =0x06004000 - movs r5, 0x98 - lsls r5, 5 - ldr r1, _08042F28 @ =0x040000d4 - ldr r6, _08042F2C @ =0x80000800 - movs r2, 0x80 - lsls r2, 5 - movs r7, 0x80 - lsls r7, 24 -_08042ED6: - 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 _08042ED6 - str r3, [r1] - str r4, [r1, 0x4] - lsrs r0, r5, 1 - orrs r0, r7 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, _08042F30 @ =gUnknown_0820F798 - ldr r2, _08042F34 @ =0x06006000 - ldr r0, _08042F28 @ =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _08042F2C @ =0x80000800 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] -_08042F04: - ldr r1, _08042F38 @ =gMain - ldr r0, _08042F3C @ =0x0000043c - adds r1, r0 -_08042F0A: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08042F6E - .align 2, 0 -_08042F14: .4byte REG_BG2CNT -_08042F18: .4byte 0x00004c06 -_08042F1C: .4byte gUnknown_0820C9F8 -_08042F20: .4byte gUnknown_0820CA98 -_08042F24: .4byte 0x06004000 -_08042F28: .4byte 0x040000d4 -_08042F2C: .4byte 0x80000800 -_08042F30: .4byte gUnknown_0820F798 -_08042F34: .4byte 0x06006000 -_08042F38: .4byte gMain -_08042F3C: .4byte 0x0000043c -_08042F40: - ldr r1, _08042F74 @ =REG_BG1CNT - ldr r2, _08042F78 @ =0x00000501 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08042F7C @ =REG_BG0HOFS - movs r4, 0 - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - ldr r0, _08042F80 @ =sub_804300C - bl SetMainCallback2 - ldr r0, _08042F84 @ =gUnknown_0300481C - ldr r0, [r0] - strb r4, [r0, 0x2] -_08042F6E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08042F74: .4byte REG_BG1CNT -_08042F78: .4byte 0x00000501 -_08042F7C: .4byte REG_BG0HOFS -_08042F80: .4byte CB2_EggHatch_1 -_08042F84: .4byte gUnknown_0300481C - thumb_func_end CB2_EggHatch_0 - - thumb_func_start EggHatchSetMonNickname -EggHatchSetMonNickname: @ 8042F88 - push {lr} - ldr r0, _08042FA8 @ =gUnknown_0202E8CC - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08042FAC @ =gPlayerParty - adds r0, r1 - ldr r2, _08042FB0 @ =gStringVar3 - movs r1, 0x2 - bl SetMonData - ldr r0, _08042FB4 @ =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_08042FA8: .4byte gUnknown_0202E8CC -_08042FAC: .4byte gPlayerParty -_08042FB0: .4byte gStringVar3 -_08042FB4: .4byte c2_exit_to_overworld_2_switch - thumb_func_end EggHatchSetMonNickname - - thumb_func_start Task_EggHatchPlayBGM -Task_EggHatchPlayBGM: @ 8042FB8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08043004 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08042FD4 - bl StopMapMusic -_08042FD4: - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _08042FE4 - movs r0, 0xBC - lsls r0, 1 - bl PlayBGM -_08042FE4: - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x3C - ble _08042FF8 - ldr r0, _08043008 @ =0x00000179 - bl PlayBGM - adds r0, r5, 0 - bl DestroyTask -_08042FF8: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08043004: .4byte gTasks -_08043008: .4byte 0x00000179 - thumb_func_end Task_EggHatchPlayBGM - - thumb_func_start CB2_EggHatch_1 -CB2_EggHatch_1: @ 804300C - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x8 - ldr r1, _08043030 @ =gUnknown_0300481C - ldr r0, [r1] - ldrb r0, [r0, 0x2] - adds r5, r1, 0 - cmp r0, 0xB - bls _08043026 - b _080432BA -_08043026: - lsls r0, 2 - ldr r1, _08043034 @ =_08043038 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08043030: .4byte gUnknown_0300481C -_08043034: .4byte _08043038 - .align 2, 0 -_08043038: - .4byte _08043068 - .4byte _080430A0 - .4byte _080430C0 - .4byte _080430F8 - .4byte _08043124 - .4byte _08043164 - .4byte _08043172 - .4byte _08043180 - .4byte _080431B8 - .4byte _080431DA - .4byte _08043288 - .4byte _080432A8 -_08043068: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xBA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08043098 @ =gUnknown_0300481C - ldr r1, [r0] - ldrb r0, [r1, 0x2] - adds r0, 0x1 - strb r0, [r1, 0x2] - ldr r0, _0804309C @ =c3_080472E4 - movs r1, 0x5 - bl CreateTask - b _080432BA - .align 2, 0 -_08043098: .4byte gUnknown_0300481C -_0804309C: .4byte Task_EggHatchPlayBGM -_080430A0: - ldr r0, _080430BC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _080430B2 - b _080432BA -_080430B2: - ldr r0, [r5] - strb r1, [r0, 0x3] - ldr r1, [r5] - b _0804329C - .align 2, 0 -_080430BC: .4byte gPaletteFade -_080430C0: - ldr r1, [r5] - ldrb r0, [r1, 0x3] - adds r0, 0x1 - strb r0, [r1, 0x3] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1E - bhi _080430D2 - b _080432BA -_080430D2: - ldr r1, [r5] - ldrb r0, [r1, 0x2] - adds r0, 0x1 - strb r0, [r1, 0x2] - ldr r2, _080430F0 @ =gSprites - ldr r0, [r5] - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _080430F4 @ =sub_80432E4 - str r1, [r0] - b _080432BA - .align 2, 0 -_080430F0: .4byte gSprites -_080430F4: .4byte SpriteCB_Egg_0 -_080430F8: - ldr r2, _0804311C @ =gSprites - ldr r3, [r5] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _08043120 @ =SpriteCallbackDummy - cmp r1, r0 - beq _08043112 - b _080432BA -_08043112: - ldrb r0, [r3, 0x2] - adds r0, 0x1 - strb r0, [r3, 0x2] - b _080432BA - .align 2, 0 -_0804311C: .4byte gSprites -_08043120: .4byte SpriteCallbackDummy -_08043124: - ldr r0, [r5] - ldrb r1, [r0, 0x4] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08043150 @ =gPlayerParty - adds r0, r1 - ldr r1, _08043154 @ =gStringVar1 - bl pokemon_get_nick - ldr r4, _08043158 @ =gStringVar4 - ldr r1, _0804315C @ =gOtherText_HatchedFromEgg - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - bl EggHatchPrintMessage2 - ldr r0, _08043160 @ =0x00000173 - bl PlayFanfare - ldr r1, [r5] - b _0804329C - .align 2, 0 -_08043150: .4byte gPlayerParty -_08043154: .4byte gStringVar1 -_08043158: .4byte gStringVar4 -_0804315C: .4byte gOtherText_HatchedFromEgg -_08043160: .4byte 0x00000173 -_08043164: - bl IsFanfareTaskInactive - lsls r0, 24 - cmp r0, 0 - bne _08043170 - b _080432BA -_08043170: - b _08043298 -_08043172: - bl IsFanfareTaskInactive - lsls r0, 24 - cmp r0, 0 - bne _0804317E - b _080432BA -_0804317E: - b _08043298 -_08043180: - ldr r0, [r5] - ldrb r1, [r0, 0x4] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080431A8 @ =gPlayerParty - adds r0, r1 - ldr r1, _080431AC @ =gStringVar1 - bl pokemon_get_nick - ldr r4, _080431B0 @ =gStringVar4 - ldr r1, _080431B4 @ =gOtherText_NickHatchPrompt - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - bl EggHatchPrintMessage1 - ldr r1, [r5] - b _0804329C - .align 2, 0 -_080431A8: .4byte gPlayerParty -_080431AC: .4byte gStringVar1 -_080431B0: .4byte gStringVar4 -_080431B4: .4byte gOtherText_NickHatchPrompt -_080431B8: - bl EggHatchUpdateWindowText - lsls r0, 24 - cmp r0, 0 - beq _080432BA - movs r0, 0x16 - movs r1, 0x8 - movs r2, 0x1B - movs r3, 0xD - bl MenuDrawTextWindow - movs r0, 0x16 - movs r1, 0x8 - movs r2, 0x4 - bl InitYesNoMenu - b _08043298 -_080431DA: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - lsrs r2, r0, 24 - asrs r0, 24 - movs r1, 0x2 - negs r1, r1 - cmp r0, r1 - beq _080432BA - lsls r0, r2, 24 - asrs r1, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08043298 - cmp r1, 0x1 - beq _08043298 - ldr r0, _08043278 @ =gUnknown_0300481C - mov r9, r0 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - movs r1, 0x64 - mov r8, r1 - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - ldr r6, _0804327C @ =gPlayerParty - adds r0, r6 - ldr r1, _08043280 @ =gStringVar3 - mov r10, r1 - bl pokemon_get_nick - mov r2, r9 - ldr r0, [r2] - ldrb r0, [r0, 0x4] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - movs r1, 0xB - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - mov r2, r9 - ldr r0, [r2] - ldrb r0, [r0, 0x4] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - bl GetMonGender - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r2, r9 - ldr r0, [r2] - ldrb r0, [r0, 0x4] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - movs r1, 0 - movs r2, 0 - bl GetMonData - str r0, [sp] - ldr r0, _08043284 @ =sub_8042F88 - str r0, [sp, 0x4] - movs r0, 0x3 - mov r1, r10 - adds r2, r5, 0 - adds r3, r4, 0 - bl DoNamingScreen - b _080432BA - .align 2, 0 -_08043278: .4byte gUnknown_0300481C -_0804327C: .4byte gPlayerParty -_08043280: .4byte gStringVar3 -_08043284: .4byte EggHatchSetMonNickname -_08043288: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_08043298: - ldr r0, _080432A4 @ =gUnknown_0300481C - ldr r1, [r0] -_0804329C: - ldrb r0, [r1, 0x2] - adds r0, 0x1 - strb r0, [r1, 0x2] - b _080432BA - .align 2, 0 -_080432A4: .4byte gUnknown_0300481C -_080432A8: - ldr r0, _080432DC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080432BA - ldr r0, _080432E0 @ =c2_exit_to_overworld_2_switch - bl SetMainCallback2 -_080432BA: - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080432DC: .4byte gPaletteFade -_080432E0: .4byte c2_exit_to_overworld_2_switch - thumb_func_end CB2_EggHatch_1 - - thumb_func_start SpriteCB_Egg_0 -SpriteCB_Egg_0: @ 80432E4 - 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, 0x14 - ble _08043304 - ldr r0, _08043300 @ =sub_804333C - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x2E] - b _08043334 - .align 2, 0 -_08043300: .4byte SpriteCB_Egg_1 -_08043304: - 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, 0x1 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0xF - bne _08043334 - movs r0, 0x17 - bl PlaySE - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - bl CreateRandomEggShardSprite -_08043334: - pop {r4} - pop {r0} - bx r0 - thumb_func_end SpriteCB_Egg_0 - - thumb_func_start SpriteCB_Egg_1 -SpriteCB_Egg_1: @ 804333C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - ble _08043398 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _0804336C - ldr r0, _08043368 @ =sub_80433A0 - str r0, [r4, 0x1C] - strh r1, [r4, 0x2E] - strh r1, [r4, 0x32] - b _08043398 - .align 2, 0 -_08043368: .4byte SpriteCB_Egg_2 -_0804336C: - 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, 0x2 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0xF - bne _08043398 - movs r0, 0x17 - bl PlaySE - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim -_08043398: - pop {r4} - pop {r0} - bx r0 - thumb_func_end SpriteCB_Egg_1 - - thumb_func_start SpriteCB_Egg_2 -SpriteCB_Egg_2: @ 80433A0 - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x32] - adds r0, 0x1 - movs r6, 0 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - ble _0804345A - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x26 - ble _08043418 - ldr r0, _08043404 @ =sub_8043460 - str r0, [r4, 0x1C] - strh r6, [r4, 0x2E] - ldr r5, _08043408 @ =gUnknown_0300481C - ldr r0, [r5] - ldrb r1, [r0, 0x4] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0804340C @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - ldr r4, _08043410 @ =gSprites - ldr r3, [r5] - ldrb r2, [r3, 0x1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - strh r6, [r1, 0x24] - ldrb r2, [r3, 0x1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldr r2, _08043414 @ =gMonFrontPicCoords - lsrs r0, 14 - adds r0, r2 - ldrb r0, [r0, 0x1] - strh r0, [r1, 0x26] - b _0804345A - .align 2, 0 -_08043404: .4byte SpriteCB_Egg_3 -_08043408: .4byte gUnknown_0300481C -_0804340C: .4byte gPlayerParty -_08043410: .4byte gSprites -_08043414: .4byte gMonFrontPicCoords -_08043418: - 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, 0x2 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0xF - bne _0804344C - movs r0, 0x17 - bl PlaySE - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim - bl CreateRandomEggShardSprite - bl CreateRandomEggShardSprite -_0804344C: - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1E - bne _0804345A - movs r0, 0x17 - bl PlaySE -_0804345A: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end SpriteCB_Egg_2 - - thumb_func_start SpriteCB_Egg_3 -SpriteCB_Egg_3: @ 8043460 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x32 - ble _0804347A - ldr r0, _08043480 @ =sub_8043484 - str r0, [r1, 0x1C] - movs r0, 0 - strh r0, [r1, 0x2E] -_0804347A: - pop {r0} - bx r0 - .align 2, 0 -_08043480: .4byte SpriteCB_Egg_4 - thumb_func_end SpriteCB_Egg_3 - - thumb_func_start SpriteCB_Egg_4 -SpriteCB_Egg_4: @ 8043484 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080434A4 - movs r1, 0x1 - negs r1, r1 - ldr r0, _080434F8 @ =0x0000ffff - str r0, [sp] - adds r0, r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_080434A4: - ldrh r0, [r5, 0x2E] - cmp r0, 0x3 - bhi _080434C0 - movs r4, 0 -_080434AC: - bl CreateRandomEggShardSprite - lsls r0, r4, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080434AC -_080434C0: - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - ldr r0, _080434FC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080434EE - movs r0, 0x71 - bl PlaySE - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08043500 @ =sub_8043504 - str r0, [r5, 0x1C] - strh r4, [r5, 0x2E] -_080434EE: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080434F8: .4byte 0x0000ffff -_080434FC: .4byte gPaletteFade -_08043500: .4byte SpriteCB_Egg_5 - thumb_func_end SpriteCB_Egg_4 - - thumb_func_start SpriteCB_Egg_5 -SpriteCB_Egg_5: @ 8043504 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _08043540 - ldr r4, _08043594 @ =gSprites - ldr r3, _08043598 @ =gUnknown_0300481C - ldr r0, [r3] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldr r0, [r3] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x1 - bl StartSpriteAffineAnim -_08043540: - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0x8 - bne _0804355A - movs r1, 0x1 - negs r1, r1 - ldr r0, _0804359C @ =0x0000ffff - str r0, [sp] - adds r0, r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_0804355A: - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x9 - bgt _08043578 - ldr r2, _08043594 @ =gSprites - ldr r0, _08043598 @ =gUnknown_0300481C - ldr r0, [r0] - ldrb r1, [r0, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x22] - subs r1, 0x1 - strh r1, [r0, 0x22] -_08043578: - ldrh r1, [r5, 0x2E] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0x28 - ble _08043586 - ldr r0, _080435A0 @ =SpriteCallbackDummy - str r0, [r5, 0x1C] -_08043586: - adds r0, r1, 0x1 - strh r0, [r5, 0x2E] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08043594: .4byte gSprites -_08043598: .4byte gUnknown_0300481C -_0804359C: .4byte 0x0000ffff -_080435A0: .4byte SpriteCallbackDummy - thumb_func_end SpriteCB_Egg_5 - - thumb_func_start SpriteCB_EggShard -SpriteCB_EggShard: @ 80435A4 - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x36] - adds 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 _080435C2 - adds r0, 0xFF -_080435C2: - asrs r0, 8 - strh r0, [r2, 0x24] - movs r3, 0x38 - ldrsh r0, [r2, r3] - cmp r0, 0 - bge _080435D0 - adds r0, 0xFF -_080435D0: - asrs 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 _080435F6 - lsls r0, r3, 16 - cmp r0, 0 - ble _080435F6 - adds r0, r2, 0 - bl DestroySprite -_080435F6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end SpriteCB_EggShard - - thumb_func_start CreateRandomEggShardSprite -CreateRandomEggShardSprite: @ 80435FC - push {r4-r6,lr} - sub sp, 0x8 - ldr r3, _0804364C @ =gEggShardVelocities - ldr r0, _08043650 @ =gUnknown_0300481C - ldr r4, [r0] - adds r4, 0x3A - ldrb r2, [r4] - lsls r0, r2, 2 - adds r1, r0, r3 - ldrh r6, [r1] - adds r3, 0x2 - adds r0, r3 - ldrh r5, [r0] - adds r2, 0x1 - strb r2, [r4] - bl Random - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - lsls r6, 16 - asrs r6, 16 - lsls r5, 16 - asrs r5, 16 - movs r0, 0x64 - str r0, [sp] - lsrs r1, 16 - str r1, [sp, 0x4] - movs r0, 0x78 - movs r1, 0x3C - adds r2, r6, 0 - adds r3, r5, 0 - bl CreateEggShardSprite - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0804364C: .4byte gEggShardVelocities -_08043650: .4byte gUnknown_0300481C - thumb_func_end CreateRandomEggShardSprite - - thumb_func_start CreateEggShardSprite -CreateEggShardSprite: @ 8043654 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - mov r8, r3 - ldr r0, [sp, 0x1C] - mov r9, r0 - ldr r1, [sp, 0x20] - mov r10, r1 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 16 - lsrs r6, 16 - mov r0, r8 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - mov r1, r9 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - mov r0, r10 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r0, _080436CC @ =gSpriteTemplate_820A418 - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0x4 - bl CreateSprite - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080436D0 @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r6, [r0, 0x30] - mov r1, r8 - strh r1, [r0, 0x32] - mov r1, r9 - strh r1, [r0, 0x34] - mov r1, r10 - bl StartSpriteAnim - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080436CC: .4byte gSpriteTemplate_820A418 -_080436D0: .4byte gSprites - thumb_func_end CreateEggShardSprite - - thumb_func_start EggHatchPrintMessage1 -EggHatchPrintMessage1: @ 80436D4 - push {lr} - sub sp, 0x4 - adds r1, r0, 0 - ldr r0, _080436F8 @ =gUnknown_0300481C - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x8 - adds r2, 0x38 - ldrb r2, [r2] - movs r3, 0xF - str r3, [sp] - movs r3, 0x3 - bl sub_8002EB0 - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080436F8: .4byte gUnknown_0300481C - thumb_func_end EggHatchPrintMessage1 - - thumb_func_start EggHatchPrintMessage2 -EggHatchPrintMessage2: @ 80436FC - push {lr} - sub sp, 0x4 - adds r1, r0, 0 - ldr r0, _08043720 @ =gUnknown_0300481C - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x8 - adds r2, 0x38 - ldrb r2, [r2] - movs r3, 0xF - str r3, [sp] - movs r3, 0x3 - bl sub_8003460 - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_08043720: .4byte gUnknown_0300481C - thumb_func_end EggHatchPrintMessage2 - - thumb_func_start EggHatchUpdateWindowText -EggHatchUpdateWindowText: @ 8043724 - push {lr} - ldr r0, _08043738 @ =gUnknown_0300481C - ldr r0, [r0] - adds r0, 0x8 - bl sub_80035AC - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08043738: .4byte gUnknown_0300481C - thumb_func_end EggHatchUpdateWindowText - thumb_func_start sub_804373C sub_804373C: @ 804373C movs r0, 0x9 diff --git a/ld_script.txt b/ld_script.txt index 86fea4041..c5de0551e 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -55,7 +55,9 @@ SECTIONS { src/rng.o(.text); asm/rom_8040EB4.o(.text); src/blend_palette.o(.text); - asm/rom_80412B0.o(.text); + asm/daycare.o(.text); + asm/egg_hatch.o(.text); + asm/rom_804373C.o(.text); src/play_time.o(.text); src/new_game.o(.text); src/rom4.o(.text); |