diff options
-rw-r--r-- | asm/daycare.s | 205 | ||||
-rw-r--r-- | src/daycare.c | 73 |
2 files changed, 13 insertions, 265 deletions
diff --git a/asm/daycare.s b/asm/daycare.s index 7307e8365..cd1b7091f 100644 --- a/asm/daycare.s +++ b/asm/daycare.s @@ -6,211 +6,6 @@ .text - 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 MonHasMail - 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 PadNameString - 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 TakeMailFromMon -_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 BoxMonRestorePP - 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 @ =gLastFieldPokeMenuOpened - 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 gLastFieldPokeMenuOpened -_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 TryIncrementMonLevel - 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} diff --git a/src/daycare.c b/src/daycare.c index 9bc51a025..e1ce7fb77 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -27,9 +27,9 @@ u8 daycare_count_pokemon(struct BoxPokemon *daycare_data) count = 0; for(i = 0;i <= 1;i++) { - if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) != 0) { - count++; - } + if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) != 0) { + count++; + } } return count; @@ -103,9 +103,9 @@ s8 daycare_empty_slot(struct BoxPokemon * daycare_data) u8 i; for(i = 0;i <= 1;i++){ - if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) == 0){ - return i; - } + if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) == 0){ + return i; + } } return -1; @@ -131,7 +131,7 @@ void sub_80413C8() { // strange stack usage - happens because THUMB ARM only allows R0-R7 to be pushed/popped: // all registers in reglist must be Lo registers, except that PUSH can include the LR, and POP can include the PC - // the ldm/stm section probably copies some struct, but I'm not sure how the code would look + // the ldm/stm section probably copies some struct, but I'm not sure how the code would look asm(".syntax unified\n\ push {r4-r7,lr}\n\ mov r7, r9\n\ @@ -253,70 +253,23 @@ extern u16 word_2024E82; void sub_804151C(struct Pokemon * mon) { - u32 i; + s32 i; u8 r6; u16 temp; - u16 minus1; - i = 0; - minus1 = 0xffff; - while(i <= 100){ - if(TryIncrementMonLevel(mon) == 0) goto end; + for(i = 0; i < 100; i++){ + if(TryIncrementMonLevel(mon) == FALSE) goto end; + r6 = 1; - i++; while((temp = sub_803B7C8(mon, r6)) != 0){ r6 = 0; - if(temp == minus1){ + if(temp == 0xffff){ DeleteFirstMoveAndGiveMoveToMon(mon, word_2024E82); } } } + end: CalculateMonStats(mon); } - -#ifdef NEVERDEFINED -sub_804151C: @ 804151C - push {r4-r7,lr} - adds r4, r0, 0 - movs r5, 0 - ldr r7, _08041538 @ =0x0000ffff -_08041524: <-----------------------------------+ - adds r0, r4, 0 | - bl TryIncrementMonLevel | - lsls r0, 24 | - cmp r0, 0 | - beq _08041560 break ----------------+ | - 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 -#endif |