diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2020-08-27 08:31:38 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2020-08-27 08:32:50 -0400 |
commit | 04c7c3de6a47c9952d0fd66f97a19ad10569c0f6 (patch) | |
tree | 1a741b38efa1c26f3f6676c60a86276338299e5a /arm9/src | |
parent | 5d7b65886813e92ddd538cf8da6a43038a7cda0a (diff) |
Decompile daycare
Diffstat (limited to 'arm9/src')
-rw-r--r-- | arm9/src/daycare.c | 114 | ||||
-rw-r--r-- | arm9/src/save_arrays.c | 5 |
2 files changed, 116 insertions, 3 deletions
diff --git a/arm9/src/daycare.c b/arm9/src/daycare.c new file mode 100644 index 00000000..eff25151 --- /dev/null +++ b/arm9/src/daycare.c @@ -0,0 +1,114 @@ +#include "global.h" +#include "pokemon.h" +#include "seals.h" +#include "save_block_2.h" +#include "daycare.h" + +#pragma thumb on + +u32 Sav2_DayCare_sizeof(void) +{ + return sizeof(struct DayCare); +} + +void Sav2_DayCare_init(struct DayCare * daycare) +{ + memset(daycare, 0, sizeof(struct DayCare)); + ZeroBoxMonData(&daycare->mons[0].mon); + ZeroBoxMonData(&daycare->mons[1].mon); + daycare->egg_pid = 0; + daycare->egg_cycles = 0; +} + +struct DayCareMon * Sav2_DayCare_GetMonX(struct DayCare * daycare, s32 i) +{ + return &daycare->mons[i]; +} + +struct BoxPokemon * DayCareMon_GetBoxMon(struct DayCareMon * dcmon) +{ + return &dcmon->mon; +} + +struct DayCareMail * DayCareMon_GetExtras(struct DayCareMon * dcmon) +{ + return &dcmon->mail; +} + +u32 DayCareMon_GetSteps(struct DayCareMon * dcmon) +{ + return dcmon->steps; +} + +struct SealStruct * DayCareMail_GetCapsule(struct DayCareMail * dcmail) +{ + return &dcmail->seal; +} + +u32 Sav2_DayCare_GetEggPID(struct DayCare * daycare) +{ + return daycare->egg_pid; +} + +u8 Sav2_DayCare_GetEggCycleCounter(struct DayCare * daycare) +{ + return daycare->egg_cycles; +} + +void DayCareMon_SetSteps(struct DayCareMon * dcmon, u32 steps) +{ + dcmon->steps = steps; +} + +void DayCareMon_AddSteps(struct DayCareMon * dcmon, u32 steps) +{ + dcmon->steps += steps; +} + +void Sav2_DayCare_SetEggPID(struct DayCare * daycare, u32 pid) +{ + daycare->egg_pid = pid; +} + +void Sav2_DayCare_SetEggCycleCounter(struct DayCare * daycare, u8 count) +{ + daycare->egg_cycles = count; +} + +BOOL Sav2_DayCare_MasudaCheck(struct DayCare * daycare) +{ + // Checks if the pokemon come from different countries. + // Uses language as a proxy for country, even though it + // only accounts for European languages and Japanese. + // If true, shiny odds are increased (see overlay 05). + return GetBoxMonData(&daycare->mons[0].mon, MON_DATA_GAME_LANGUAGE, NULL) != GetBoxMonData(&daycare->mons[1].mon, MON_DATA_GAME_LANGUAGE, NULL); +} + +void DayCareMon_Copy(struct DayCareMon * dest, const struct DayCareMon * src) +{ + *dest = *src; +} + +void DayCareMon_Extras_init(struct DayCareMail * mail) +{ + int i; + + for (i = 0; i < OT_NAME_LENGTH + 1; i++) + mail->ot_name[i] = 0; + for (i = 0; i < POKEMON_NAME_LENGTH + 1; i++) + mail->nickname[i] = 0; + mail->ot_name[0] = EOS; + mail->nickname[0] = EOS; +} + +void DayCareMon_Init(struct DayCareMon * mon) +{ + ZeroBoxMonData(&mon->mon); + mon->steps = 0; + DayCareMon_Extras_init(&mon->mail); +} + +struct DayCare * Sav2_DayCare_get(struct SaveBlock2 * sav2) +{ + return (struct DayCare *)SavArray_get(sav2, 8); +} diff --git a/arm9/src/save_arrays.c b/arm9/src/save_arrays.c index 201a313a..96808ba6 100644 --- a/arm9/src/save_arrays.c +++ b/arm9/src/save_arrays.c @@ -9,11 +9,11 @@ #include "poketch.h" #include "hall_of_fame.h" #include "unk_020286F8.h" +#include "daycare.h" extern u32 FUN_0202AC20(void); extern u32 FUN_02034D7C(void); extern u32 Sav2_Pokedex_sizeof(void); -extern u32 Sav2_Daycare_sizeof(void); extern u32 FUN_020254B8(void); extern u32 FUN_02024E64(void); extern u32 FUN_02034D80(void); @@ -41,7 +41,6 @@ extern u32 FUN_02013B28(void); extern void FUN_0202AC28(void *); extern void FUN_02034D98(void *); extern void Sav2_Pokedex_init(void *); -extern void Sav2_Daycare_init(void *); extern void FUN_020254CC(void *); extern void FUN_02024E6C(void *); extern void FUN_02034D88(void *); @@ -81,7 +80,7 @@ const struct SaveChunkHeader UNK_020EE700[] = { { 5, 0, (SAVSIZEFN)Sav2_Poketch_sizeof, (SAVINITFN)Sav2_Poketch_init }, { 6, 0, (SAVSIZEFN)FUN_02034D7C, (SAVINITFN)FUN_02034D98 }, { 7, 0, (SAVSIZEFN)Sav2_Pokedex_sizeof, (SAVINITFN)Sav2_Pokedex_init }, - { 8, 0, (SAVSIZEFN)Sav2_Daycare_sizeof, (SAVINITFN)Sav2_Daycare_init }, + { 8, 0, (SAVSIZEFN)Sav2_DayCare_sizeof, (SAVINITFN)Sav2_DayCare_init }, { 9, 0, (SAVSIZEFN)FUN_020254B8, (SAVINITFN)FUN_020254CC }, { 10, 0, (SAVSIZEFN)FUN_02024E64, (SAVINITFN)FUN_02024E6C }, { 11, 0, (SAVSIZEFN)FUN_02034D80, (SAVINITFN)FUN_02034D88 }, |