diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-08-29 22:57:04 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-08-29 22:57:04 -0400 |
commit | 710346afa3c90682e123ebd981fb8c8ffb30784f (patch) | |
tree | ccf37d31fad534e399af87bb9f8cb64fd15d4562 | |
parent | 36bafa9f9fad1efd7baead651c7f357f6a832023 (diff) |
sub_80416A0
-rw-r--r-- | asm/daycare.s | 37 | ||||
-rw-r--r-- | src/daycare.c | 33 |
2 files changed, 21 insertions, 49 deletions
diff --git a/asm/daycare.s b/asm/daycare.s index a0ea9124a..50f1eee69 100644 --- a/asm/daycare.s +++ b/asm/daycare.s @@ -6,43 +6,6 @@ .text - 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 Daycare_GetLevelAfterSteps - 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} diff --git a/src/daycare.c b/src/daycare.c index 2f30c1479..f067ec8ec 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -1,6 +1,7 @@ #include "global.h" #include "daycare.h" #include "pokemon.h" +#include "event_data.h" #include "species.h" #include "items.h" #include "text.h" @@ -144,37 +145,35 @@ void sub_804151C(struct Pokemon * mon) CalculateMonStats(mon); } -u16 sub_8041570(struct DayCareData * daycare_data, u8 a2) +u16 sub_8041570(struct DayCareData * daycare_data, u8 slot) { u16 species; u32 experience; struct Pokemon pokemon; - GetBoxMonNick(&daycare_data->mons[a2], gStringVar1); - species = GetBoxMonData(&daycare_data->mons[a2], MON_DATA_SPECIES); - sub_803B4B4(&daycare_data->mons[a2], &pokemon); + GetBoxMonNick(&daycare_data->mons[slot], gStringVar1); + species = GetBoxMonData(&daycare_data->mons[slot], MON_DATA_SPECIES); + sub_803B4B4(&daycare_data->mons[slot], &pokemon); if (GetMonData(&pokemon, MON_DATA_LEVEL) != MAX_LEVEL) { - experience = GetMonData(&pokemon, MON_DATA_EXP) + daycare_data->mail.extra.steps[a2]; + experience = GetMonData(&pokemon, MON_DATA_EXP) + daycare_data->mail.extra.steps[slot]; SetMonData(&pokemon, MON_DATA_EXP, (u8 *)&experience); sub_804151C(&pokemon); } gPlayerParty[PARTY_SIZE - 1] = pokemon; - if (daycare_data->mail.data[a2].mail.itemId) + if (daycare_data->mail.data[slot].mail.itemId) { - GiveMailToMon2(&gPlayerParty[PARTY_SIZE - 1], &daycare_data->mail.data[a2].mail); - sub_80417F4(&daycare_data->mail.data[a2].mail); + GiveMailToMon2(&gPlayerParty[PARTY_SIZE - 1], &daycare_data->mail.data[slot].mail); + sub_80417F4(&daycare_data->mail.data[slot].mail); } party_compaction(); - ZeroBoxMonData(&daycare_data->mons[a2]); - daycare_data->mail.extra.steps[a2] = 0; + ZeroBoxMonData(&daycare_data->mons[slot]); + daycare_data->mail.extra.steps[slot] = 0; sub_80414C0(daycare_data); CalculatePlayerPartyCount(); return species; } -extern u8 gSpecialVar_0x8004; - u16 sub_8041648() { return sub_8041570(&gSaveBlock1.daycareData, gSpecialVar_0x8004); @@ -186,3 +185,13 @@ u8 Daycare_GetLevelAfterSteps(struct BoxPokemon * mon, u32 steps){ SetBoxMonData(&temp, MON_DATA_EXP, (u8 *) &new_exp); return GetLevelFromBoxMonExp(&temp); } + +u8 sub_80416A0(struct DayCareData *daycareData, u8 slot) +{ + u8 levelBefore; + u8 levelAfter; + + levelBefore = GetLevelFromBoxMonExp(&daycareData->mons[slot]); + levelAfter = Daycare_GetLevelAfterSteps(&daycareData->mons[slot], daycareData->mail.extra.steps[slot]); + return levelAfter - levelBefore; +} |