Merge pull request #528 from red031000/master

cleanup daycare.c
This commit is contained in:
Akira Akashi 2023-07-14 21:04:49 +01:00 committed by GitHub
commit b71dfbb1ed
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 165 additions and 179 deletions

View File

@ -1516,23 +1516,23 @@
.extern sub_02023BD4
.extern sub_02023BE8
.extern sub_02023C04
.extern Save_DayCare_sizeof
.extern Save_DayCare_Init
.extern Save_DayCare_GetMonX
.extern DayCareMon_GetBoxMon
.extern DayCareMon_GetExtras
.extern DayCareMon_GetSteps
.extern DayCareMail_GetCapsule
.extern Save_DayCare_GetEggPID
.extern Save_DayCare_GetEggCycleCounter
.extern DayCareMon_SetSteps
.extern DayCareMon_AddSteps
.extern Save_DayCare_SetEggPID
.extern Save_DayCare_SetEggCycleCounter
.extern Save_DayCare_MasudaCheck
.extern DayCareMon_Copy
.extern DayCareMon_Init
.extern Save_DayCare_Get
.extern Save_Daycare_sizeof
.extern Save_Daycare_Init
.extern Save_Daycare_GetMonX
.extern DaycareMon_GetBoxMon
.extern DaycareMon_GetExtras
.extern DaycareMon_GetSteps
.extern DayCareMail_GetMailPtr
.extern Save_Daycare_GetEggPID
.extern Save_Daycare_GetEggCycleCounter
.extern DaycareMon_SetSteps
.extern DaycareMon_AddSteps
.extern Save_Daycare_SetEggPID
.extern Save_Daycare_SetEggCycleCounter
.extern Save_Daycare_MasudaCheck
.extern DaycareMon_Copy
.extern DaycareMon_Init
.extern Save_Daycare_Get
.extern Save_Pokedex_sizeof
.extern Save_Pokedex_New
.extern Save_Pokedex_Copy
@ -6771,7 +6771,7 @@
.extern ov05_021EC864
.extern ov05_021ECD64
.extern ov05_SetEggStats
.extern ov05_DayCare_GiveEggToPlayer
.extern ov05_Daycare_GiveEggToPlayer
.extern ov05_021ED378
.extern ov05_021ED49C
.extern ov05_021ED4E0

View File

@ -1765,7 +1765,7 @@ ov05_021D8F38: ; 0x021D8F38
bl SaveArray_PlayerParty_Get
add r5, r0, #0
ldr r0, [r4, #0xc]
bl Save_DayCare_Get
bl Save_Daycare_Get
add r1, r5, #0
add r2, r4, #0
bl ov05_021ED378

View File

@ -6,8 +6,8 @@
thumb_func_start ov05_021EC458
ov05_021EC458: ; 0x021EC458
push {r3, lr}
bl Save_DayCare_GetMonX
bl DayCareMon_GetBoxMon
bl Save_Daycare_GetMonX
bl DaycareMon_GetBoxMon
pop {r3, pc}
thumb_func_start ov05_021EC464
@ -20,8 +20,8 @@ ov05_021EC464: ; 0x021EC464
_021EC46E:
add r0, r6, #0
add r1, r5, #0
bl Save_DayCare_GetMonX
bl DayCareMon_GetBoxMon
bl Save_Daycare_GetMonX
bl DaycareMon_GetBoxMon
add r1, r7, #0
mov r2, #0
bl GetBoxMonData
@ -52,8 +52,8 @@ ov05_021EC49C: ; 0x021EC49C
_021EC4AA:
add r0, r5, #0
add r1, r4, #0
bl Save_DayCare_GetMonX
bl DayCareMon_GetBoxMon
bl Save_Daycare_GetMonX
bl DaycareMon_GetBoxMon
add r1, r6, #0
add r2, r7, #0
bl GetBoxMonData
@ -95,10 +95,10 @@ ov05_021EC4F0: ; 0x021EC4F0
bl GetPartyMonByIndex
add r4, r0, #0
add r0, r5, #0
bl DayCareMon_GetExtras
bl DaycareMon_GetExtras
str r0, [sp, #8]
add r0, r5, #0
bl DayCareMon_GetBoxMon
bl DaycareMon_GetBoxMon
str r0, [sp, #4]
add r0, r7, #0
bl Save_PlayerData_GetProfileAddr
@ -113,7 +113,7 @@ ov05_021EC4F0: ; 0x021EC4F0
cmp r0, #0
beq _021EC544
ldr r0, [sp, #8]
bl DayCareMail_GetCapsule
bl DayCareMail_GetMailPtr
add r2, r0, #0
add r0, r4, #0
mov r1, #0xa9
@ -124,7 +124,7 @@ _021EC544:
bl CopyBoxPokemonToBoxPokemon
add r0, r5, #0
mov r1, #0
bl DayCareMon_SetSteps
bl DaycareMon_SetSteps
ldr r1, [sp]
add r0, r6, #0
bl RemoveMonFromParty
@ -157,7 +157,7 @@ ov05_021EC57C: ; 0x021EC57C
bl ov05_021EC49C
add r1, r0, #0
add r0, r4, #0
bl Save_DayCare_GetMonX
bl Save_Daycare_GetMonX
add r2, r0, #0
add r0, r5, #0
add r1, r6, #0
@ -171,17 +171,17 @@ ov05_021EC5B0: ; 0x021EC5B0
push {r3, r4, r5, r6, r7, lr}
add r4, r0, #0
mov r1, #0
bl Save_DayCare_GetMonX
bl Save_Daycare_GetMonX
add r5, r0, #0
add r0, r4, #0
mov r1, #1
bl Save_DayCare_GetMonX
bl Save_Daycare_GetMonX
add r4, r0, #0
add r0, r5, #0
bl DayCareMon_GetBoxMon
bl DaycareMon_GetBoxMon
add r6, r0, #0
add r0, r4, #0
bl DayCareMon_GetBoxMon
bl DaycareMon_GetBoxMon
add r7, r0, #0
add r0, r6, #0
mov r1, #5
@ -197,9 +197,9 @@ ov05_021EC5B0: ; 0x021EC5B0
beq _021EC600
add r0, r5, #0
add r1, r4, #0
bl DayCareMon_Copy
bl DaycareMon_Copy
add r0, r4, #0
bl DayCareMon_Init
bl DaycareMon_Init
_021EC600:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
@ -267,10 +267,10 @@ ov05_021EC668: ; 0x021EC668
bl AllocMonZeroed
add r4, r0, #0
add r0, r6, #0
bl DayCareMon_GetBoxMon
bl DaycareMon_GetBoxMon
add r5, r0, #0
add r0, r6, #0
bl DayCareMon_GetExtras
bl DaycareMon_GetExtras
str r0, [sp, #4]
add r0, r7, #0
mov r1, #0
@ -297,7 +297,7 @@ ov05_021EC668: ; 0x021EC668
bl GetMonData
str r0, [sp, #8]
add r0, r6, #0
bl DayCareMon_GetSteps
bl DaycareMon_GetSteps
ldr r1, [sp, #8]
add r2, sp, #8
add r0, r1, r0
@ -313,7 +313,7 @@ _021EC6E0:
cmp r0, #0
beq _021EC6FA
ldr r0, [sp, #4]
bl DayCareMail_GetCapsule
bl DayCareMail_GetMailPtr
add r2, r0, #0
add r0, r4, #0
mov r1, #0xa9
@ -326,7 +326,7 @@ _021EC6FA:
bl ZeroBoxMonData
add r0, r6, #0
mov r1, #0
bl DayCareMon_SetSteps
bl DaycareMon_SetSteps
add r0, r4, #0
bl FreeToHeap
add r0, r7, #0
@ -341,7 +341,7 @@ ov05_021EC71C: ; 0x021EC71C
add r4, r1, #0
add r0, r6, #0
add r1, r3, #0
bl Save_DayCare_GetMonX
bl Save_Daycare_GetMonX
add r1, r0, #0
add r0, r5, #0
add r2, r4, #0
@ -389,13 +389,13 @@ ov05_021EC744: ; 0x021EC744
ov05_021EC78C: ; 0x021EC78C
push {r4, r5, r6, lr}
add r5, r0, #0
bl DayCareMon_GetBoxMon
bl DaycareMon_GetBoxMon
add r6, r0, #0
bl CalcBoxMonLevel
lsl r0, r0, #0x18
lsr r4, r0, #0x18
add r0, r5, #0
bl DayCareMon_GetSteps
bl DaycareMon_GetSteps
add r1, r0, #0
add r0, r6, #0
bl ov05_021EC744
@ -408,10 +408,10 @@ ov05_021EC78C: ; 0x021EC78C
ov05_021EC7B4: ; 0x021EC7B4
push {r3, r4, r5, lr}
add r5, r0, #0
bl DayCareMon_GetBoxMon
bl DaycareMon_GetBoxMon
add r4, r0, #0
add r0, r5, #0
bl DayCareMon_GetSteps
bl DaycareMon_GetSteps
add r1, r0, #0
add r0, r4, #0
bl ov05_021EC744
@ -426,7 +426,7 @@ ov05_021EC7D4: ; 0x021EC7D4
sub sp, #8
add r4, r0, #0
add r5, r1, #0
bl DayCareMon_GetBoxMon
bl DaycareMon_GetBoxMon
add r6, r0, #0
add r0, r4, #0
bl ov05_021EC78C
@ -455,7 +455,7 @@ ov05_021EC810: ; 0x021EC810
sub sp, #8
add r4, r0, #0
add r5, r1, #0
bl DayCareMon_GetBoxMon
bl DaycareMon_GetBoxMon
add r6, r0, #0
add r0, r4, #0
bl ov05_021EC78C
@ -486,7 +486,7 @@ ov05_021EC810: ; 0x021EC810
ov05_021EC854: ; 0x021EC854
push {r4, lr}
add r4, r2, #0
bl Save_DayCare_GetMonX
bl Save_Daycare_GetMonX
add r1, r4, #0
bl ov05_021EC810
pop {r4, pc}
@ -495,9 +495,9 @@ ov05_021EC854: ; 0x021EC854
ov05_021EC864: ; 0x021EC864
push {r3, r4, r5, lr}
add r5, r2, #0
bl Save_DayCare_GetMonX
bl Save_Daycare_GetMonX
add r4, r0, #0
bl DayCareMon_GetBoxMon
bl DaycareMon_GetBoxMon
mov r1, #5
mov r2, #0
bl GetBoxMonData
@ -620,7 +620,7 @@ ov05_021EC944: ; 0x021EC944
bl MTRandom
add r1, r0, #0
ldr r0, [sp]
bl Save_DayCare_SetEggPID
bl Save_Daycare_SetEggPID
pop {r3, r4, r5, r6, r7, pc}
_021EC960:
ldr r0, [sp]
@ -647,7 +647,7 @@ _021EC98A:
_021EC990:
ldr r0, [sp]
add r1, r4, #0
bl Save_DayCare_SetEggPID
bl Save_Daycare_SetEggPID
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
@ -1152,10 +1152,10 @@ ov05_021ECD64: ; 0x021ECD64
push {r4, lr}
add r4, r0, #0
mov r1, #0
bl Save_DayCare_SetEggPID
bl Save_Daycare_SetEggPID
add r0, r4, #0
mov r1, #0
bl Save_DayCare_SetEggCycleCounter
bl Save_Daycare_SetEggCycleCounter
pop {r4, pc}
thumb_func_start ov05_021ECD78
@ -1313,7 +1313,7 @@ _021ECE8C:
cmp r4, #0x1d
bne _021ECEBC
ldr r0, [sp]
bl Save_DayCare_GetEggPID
bl Save_Daycare_GetEggPID
mov r1, #2
lsl r1, r1, #0xe
tst r0, r1
@ -1327,7 +1327,7 @@ _021ECEBC:
cmp r4, r0
bne _021ECED6
ldr r0, [sp]
bl Save_DayCare_GetEggPID
bl Save_Daycare_GetEggPID
mov r1, #2
lsl r1, r1, #0xe
tst r0, r1
@ -1479,8 +1479,8 @@ _021ECFEE:
.balign 4, 0
_021ED008: .word 0x000001EE
thumb_func_start ov05_DayCare_CreateEgg
ov05_DayCare_CreateEgg: ; 0x021ED00C
thumb_func_start ov05_Daycare_CreateEgg
ov05_Daycare_CreateEgg: ; 0x021ED00C
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
str r1, [sp, #0x10]
@ -1493,10 +1493,10 @@ ov05_DayCare_CreateEgg: ; 0x021ED00C
add r1, sp, #0x14
strb r0, [r1]
add r0, r5, #0
bl Save_DayCare_GetEggPID
bl Save_Daycare_GetEggPID
add r4, r0, #0
add r0, r5, #0
bl Save_DayCare_MasudaCheck
bl Save_Daycare_MasudaCheck
cmp r0, #0
beq _021ED05E
add r0, r6, #0
@ -1566,8 +1566,8 @@ _021ED05E:
.balign 4, 0
_021ED0C8: .word 0x000001EE
thumb_func_start ov05_DayCare_GiveEggToPlayer
ov05_DayCare_GiveEggToPlayer: ; 0x021ED0CC
thumb_func_start ov05_Daycare_GiveEggToPlayer
ov05_Daycare_GiveEggToPlayer: ; 0x021ED0CC
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r5, r0, #0
@ -1600,7 +1600,7 @@ ov05_DayCare_GiveEggToPlayer: ; 0x021ED0CC
add r0, r4, #0
add r1, r6, #0
add r2, r5, #0
bl ov05_DayCare_CreateEgg
bl ov05_Daycare_CreateEgg
add r0, r4, #0
add r1, r5, #0
bl ov05_021EC9D4
@ -1936,9 +1936,9 @@ _021ED38E:
beq _021ED3AC
ldr r0, [sp]
add r1, r4, #0
bl Save_DayCare_GetMonX
bl Save_Daycare_GetMonX
mov r1, #1
bl DayCareMon_AddSteps
bl DaycareMon_AddSteps
add r6, r6, #1
_021ED3AC:
add r4, r4, #1
@ -1946,15 +1946,15 @@ _021ED3AC:
cmp r4, #2
blo _021ED38E
ldr r0, [sp]
bl Save_DayCare_GetEggPID
bl Save_Daycare_GetEggPID
cmp r0, #0
bne _021ED3F8
cmp r6, #2
bne _021ED3F8
ldr r0, [sp]
mov r1, #1
bl Save_DayCare_GetMonX
bl DayCareMon_GetSteps
bl Save_Daycare_GetMonX
bl DaycareMon_GetSteps
lsl r0, r0, #0x18
lsr r0, r0, #0x18
cmp r0, #0xff
@ -1974,11 +1974,11 @@ _021ED3AC:
bl ov05_021EC944
_021ED3F8:
ldr r0, [sp]
bl Save_DayCare_GetEggCycleCounter
bl Save_Daycare_GetEggCycleCounter
add r4, r0, #0
ldr r0, [sp]
add r1, r4, #1
bl Save_DayCare_SetEggCycleCounter
bl Save_Daycare_SetEggCycleCounter
ldr r0, [sp, #4]
bl ov05_021ED334
add r1, r4, #1
@ -1986,7 +1986,7 @@ _021ED3F8:
bne _021ED490
ldr r0, [sp]
mov r1, #0
bl Save_DayCare_SetEggCycleCounter
bl Save_Daycare_SetEggCycleCounter
add r0, r7, #0
bl ov05_021ED190
add r6, r0, #0
@ -2133,7 +2133,7 @@ ov05_021ED52C: ; 0x021ED52C
add r7, r2, #0
add r1, r6, #0
str r3, [sp, #8]
bl Save_DayCare_GetMonX
bl Save_Daycare_GetMonX
str r0, [sp, #0xc]
add r0, r5, #0
add r1, r6, #0
@ -2144,7 +2144,7 @@ ov05_021ED52C: ; 0x021ED52C
add r2, r5, #0
bl BufferBoxMonNickname
ldr r0, [sp, #0xc]
bl DayCareMon_GetSteps
bl DaycareMon_GetSteps
add r1, r0, #0
add r0, r5, #0
bl ov05_021EC744
@ -2216,7 +2216,7 @@ ov05_021ED5C4: ; 0x021ED5C4
ov05_021ED5EC: ; 0x021ED5EC
push {r4, lr}
add r4, r0, #0
bl Save_DayCare_GetEggPID
bl Save_Daycare_GetEggPID
cmp r0, #0
beq _021ED5FC
mov r0, #1

View File

@ -48,7 +48,7 @@ ov35_0225489C: ; 0x0225489C
add r0, r4, #0
add r6, r2, #0
bl ov20_02252C40
bl Save_DayCare_Get
bl Save_Daycare_Get
str r0, [r5, #0x30]
ldr r1, [r5, #0x30]
add r0, r5, #4
@ -301,7 +301,7 @@ ov35_02254A50: ; 0x02254A50
ldr r1, [sp]
strb r0, [r1]
ldr r0, [sp, #4]
bl Save_DayCare_GetEggPID
bl Save_Daycare_GetEggPID
ldr r1, [sp]
mov r7, #0
strb r0, [r1, #1]
@ -314,9 +314,9 @@ ov35_02254A50: ; 0x02254A50
_02254A7A:
ldr r0, [sp, #4]
add r1, r7, #0
bl Save_DayCare_GetMonX
bl Save_Daycare_GetMonX
str r0, [sp, #8]
bl DayCareMon_GetBoxMon
bl DaycareMon_GetBoxMon
add r4, r0, #0
bl AcquireBoxMonLock
str r0, [sp, #0xc]

View File

@ -4,109 +4,96 @@
#include "save.h"
#include "daycare.h"
u32 Save_DayCare_sizeof(void)
{
return sizeof(struct DayCare);
u32 Save_Daycare_sizeof(void) {
return sizeof(Daycare);
}
void Save_DayCare_Init(struct DayCare * daycare)
{
memset(daycare, 0, sizeof(struct DayCare));
void Save_Daycare_Init(Daycare *daycare) {
memset(daycare, 0, sizeof(Daycare));
ZeroBoxMonData(&daycare->mons[0].mon);
ZeroBoxMonData(&daycare->mons[1].mon);
daycare->egg_pid = 0;
daycare->egg_cycles = 0;
}
struct DayCareMon * Save_DayCare_GetMonX(struct DayCare * daycare, s32 i)
{
DaycareMon *Save_Daycare_GetMonX(Daycare *daycare, s32 i) {
return &daycare->mons[i];
}
struct BoxPokemon * DayCareMon_GetBoxMon(struct DayCareMon * dcmon)
{
BoxPokemon *DaycareMon_GetBoxMon(DaycareMon *dcmon) {
return &dcmon->mon;
}
struct DayCareMail * DayCareMon_GetExtras(struct DayCareMon * dcmon)
{
DaycareMail *DaycareMon_GetExtras(DaycareMon *dcmon) {
return &dcmon->mail;
}
u32 DayCareMon_GetSteps(struct DayCareMon * dcmon)
{
u32 DaycareMon_GetSteps(DaycareMon *dcmon) {
return dcmon->steps;
}
struct Mail * DayCareMail_GetCapsule(struct DayCareMail * dcmail)
{
return &dcmail->seal;
Mail *DayCareMail_GetMailPtr(DaycareMail *dcmail) {
return &dcmail->mail;
}
u32 Save_DayCare_GetEggPID(struct DayCare * daycare)
{
u32 Save_Daycare_GetEggPID(Daycare *daycare) {
return daycare->egg_pid;
}
u8 Save_DayCare_GetEggCycleCounter(struct DayCare * daycare)
{
u8 Save_Daycare_GetEggCycleCounter(Daycare *daycare) {
return daycare->egg_cycles;
}
void DayCareMon_SetSteps(struct DayCareMon * dcmon, u32 steps)
{
void DaycareMon_SetSteps(DaycareMon *dcmon, u32 steps) {
dcmon->steps = steps;
}
void DayCareMon_AddSteps(struct DayCareMon * dcmon, u32 steps)
{
void DaycareMon_AddSteps(DaycareMon *dcmon, u32 steps) {
dcmon->steps += steps;
}
void Save_DayCare_SetEggPID(struct DayCare * daycare, u32 pid)
{
void Save_Daycare_SetEggPID(Daycare *daycare, u32 pid) {
daycare->egg_pid = pid;
}
void Save_DayCare_SetEggCycleCounter(struct DayCare * daycare, u8 count)
{
void Save_Daycare_SetEggCycleCounter(Daycare *daycare, u8 count) {
daycare->egg_cycles = count;
}
BOOL Save_DayCare_MasudaCheck(struct DayCare * daycare)
{
BOOL Save_Daycare_MasudaCheck(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);
// If true, shiny odds are increased.
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)
{
void DaycareMon_Copy(DaycareMon *dest, const DaycareMon *src) {
*dest = *src;
}
void DayCareMon_Extras_Init(struct DayCareMail * mail)
{
void DaycareMon_Extras_Init(DaycareMail *mail){
int i;
for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++)
for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++) {
mail->ot_name[i] = 0;
for (i = 0; i < POKEMON_NAME_LENGTH + 1; i++)
}
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)
{
void DaycareMon_Init(DaycareMon *mon) {
ZeroBoxMonData(&mon->mon);
mon->steps = 0;
DayCareMon_Extras_Init(&mon->mail);
DaycareMon_Extras_Init(&mon->mail);
}
struct DayCare * Save_DayCare_Get(struct SaveData * save)
{
return (struct DayCare *)SaveArray_Get(save, 8);
Daycare *Save_Daycare_Get(SaveData *savedata) {
return SaveArray_Get(savedata, SAVE_DAYCARE);
}

View File

@ -72,7 +72,7 @@ const struct SaveChunkHeader UNK_020EE700[] = {
{ 5, 0, (SAVSIZEFN)Save_Poketch_sizeof, (SAVINITFN)Save_Poketch_Init },
{ 6, 0, (SAVSIZEFN)sub_02034D7C, (SAVINITFN)sub_02034D98 },
{ 7, 0, (SAVSIZEFN)Save_Pokedex_sizeof, (SAVINITFN)Save_Pokedex_Init },
{ 8, 0, (SAVSIZEFN)Save_DayCare_sizeof, (SAVINITFN)Save_DayCare_Init },
{ 8, 0, (SAVSIZEFN)Save_Daycare_sizeof, (SAVINITFN)Save_Daycare_Init },
{ 9, 0, (SAVSIZEFN)sub_020254B8, (SAVINITFN)sub_020254CC },
{ 10, 0, (SAVSIZEFN)sub_02024E64, (SAVINITFN)sub_02024E6C },
{ 11, 0, (SAVSIZEFN)sub_02034D80, (SAVINITFN)sub_02034D88 },

View File

@ -6,23 +6,23 @@
extern void* FieldSysGetAttrAddr(struct FieldSystem*, int idx);
extern void ov05_021EC57C(struct PlayerParty* party, u8 idx, struct DayCare* daycare, struct SaveData* save);
extern u16 ov05_021EC71C(struct PlayerParty* party, MessageFormat *messageFormat, struct DayCare* daycare, u8 idx);
extern u16 ov05_021EC854(struct DayCare* daycare, u8 idx, MessageFormat *messageFormat);
extern u8 ov05_021EC864(struct DayCare* daycare, int idx, MessageFormat *messageFormat);
extern void ov05_021ECD64(struct DayCare* daycare);
extern void ov05_DayCare_GiveEggToPlayer(struct DayCare* daycare, struct PlayerParty* party, PlayerProfile* player);
extern void ov05_021ED4E0(struct DayCare* daycare, MessageFormat *messageFormat);
extern void ov05_021ED52C(struct DayCare* daycare, u8 idx1, u8 idx2, u8 idx3, u8 idx4, MessageFormat *messageFormat);
extern void ov05_021EC57C(struct PlayerParty* party, u8 idx, struct Daycare* daycare, struct SaveData* save);
extern u16 ov05_021EC71C(struct PlayerParty* party, MessageFormat *messageFormat, struct Daycare* daycare, u8 idx);
extern u16 ov05_021EC854(struct Daycare* daycare, u8 idx, MessageFormat *messageFormat);
extern u8 ov05_021EC864(struct Daycare* daycare, int idx, MessageFormat *messageFormat);
extern void ov05_021ECD64(struct Daycare* daycare);
extern void ov05_Daycare_GiveEggToPlayer(struct Daycare* daycare, struct PlayerParty* party, PlayerProfile* player);
extern void ov05_021ED4E0(struct Daycare* daycare, MessageFormat *messageFormat);
extern void ov05_021ED52C(struct Daycare* daycare, u8 idx1, u8 idx2, u8 idx3, u8 idx4, MessageFormat *messageFormat);
extern u16 ov05_021ED5C4(struct PlayerParty* party, int idx, MessageFormat *messageFormat);
extern u16 ov05_021ED5EC(struct DayCare* daycare);
extern u32 ov05_021ED644(struct DayCare* daycare);
extern u16 ov05_021ED5EC(struct Daycare* daycare);
extern u32 ov05_021ED644(struct Daycare* daycare);
BOOL ScrCmd_GetDaycarePokemonNames(struct ScriptContext* ctx) //016D
{
struct SaveData* save = ctx->fieldSystem->saveData;
MessageFormat **messageFormat = FieldSysGetAttrAddr(ctx->fieldSystem, SCRIPTENV_MESSAGE_FORMAT);
struct DayCare* daycare = Save_DayCare_Get(save);
struct Daycare* daycare = Save_Daycare_Get(save);
ov05_021ED4E0(daycare, *messageFormat);
@ -34,7 +34,7 @@ BOOL ScrCmd_GetDaycareStatus(struct ScriptContext* ctx) //016E
struct FieldSystem* fieldSystem = ctx->fieldSystem;
struct SaveData* save = fieldSystem->saveData;
u16* ret_ptr = ScriptGetVarPointer(ctx);
struct DayCare* daycare = SaveArray_Get(save, 8);
struct Daycare* daycare = SaveArray_Get(save, 8);
*ret_ptr = ov05_021ED5EC(daycare);
@ -43,7 +43,7 @@ BOOL ScrCmd_GetDaycareStatus(struct ScriptContext* ctx) //016E
BOOL ScrCmd_DeleteDaycareEgg(struct ScriptContext* ctx) //01A8
{
struct DayCare* daycare = SaveArray_Get(ctx->fieldSystem->saveData, 8);
struct Daycare* daycare = SaveArray_Get(ctx->fieldSystem->saveData, 8);
ov05_021ECD64(daycare);
return FALSE;
@ -52,12 +52,12 @@ BOOL ScrCmd_DeleteDaycareEgg(struct ScriptContext* ctx) //01A8
BOOL ScrCmd_GiveDaycareEgg(struct ScriptContext* ctx) //01A9
{
struct FieldSystem* fieldSystem = ctx->fieldSystem;
struct DayCare* daycare = SaveArray_Get(fieldSystem->saveData, 8);
struct Daycare* daycare = SaveArray_Get(fieldSystem->saveData, 8);
struct PlayerParty* party = SaveArray_PlayerParty_Get(fieldSystem->saveData);
struct SaveData* save = FieldSystem_GetSaveDataPtr(ctx->fieldSystem);
PlayerProfile* player = Save_PlayerData_GetProfileAddr(save);
ov05_DayCare_GiveEggToPlayer(daycare, party, player);
ov05_Daycare_GiveEggToPlayer(daycare, party, player);
return FALSE;
}
@ -69,7 +69,7 @@ BOOL ScrCmd_Unk01A4(struct ScriptContext* ctx) //01A4
struct SaveData* save = fieldSystem->saveData;
u16* ret_ptr = ScriptGetVarPointer(ctx);
u16 idx = ScriptGetVar(ctx);
struct DayCare* daycare = SaveArray_Get(save, 8);
struct Daycare* daycare = SaveArray_Get(save, 8);
struct PlayerParty* party = SaveArray_PlayerParty_Get(fieldSystem->saveData);
*ret_ptr = ov05_021EC71C(party, *messageFormat, daycare, (u8)idx);
@ -84,7 +84,7 @@ BOOL ScrCmd_Unk01AA(struct ScriptContext* ctx) //01AA
struct SaveData* save = fieldSystem->saveData;
u16* ret_ptr = ScriptGetVarPointer(ctx);
u16 idx = ScriptGetVar(ctx);
struct DayCare* daycare = SaveArray_Get(save, 8);
struct Daycare* daycare = SaveArray_Get(save, 8);
*ret_ptr = ov05_021EC854(daycare, (u8)idx, *messageFormat);
@ -97,7 +97,7 @@ BOOL ScrCmd_GetDaycareLevel(struct ScriptContext* ctx) //01AE
MessageFormat **messageFormat = FieldSysGetAttrAddr(ctx->fieldSystem, SCRIPTENV_MESSAGE_FORMAT);
u16* ret_ptr = ScriptGetVarPointer(ctx);
u16 idx = ScriptGetVar(ctx);
struct DayCare* daycare = SaveArray_Get(save, 8);
struct Daycare* daycare = SaveArray_Get(save, 8);
*ret_ptr = ov05_021EC864(daycare, idx, *messageFormat);
@ -124,7 +124,7 @@ BOOL ScrCmd_Unk01B0(struct ScriptContext* ctx) //01B0
struct SaveData* save = fieldSystem->saveData;
u16 idx = ScriptGetVar(ctx);
struct PlayerParty* party = SaveArray_PlayerParty_Get(fieldSystem->saveData);
struct DayCare* daycare = SaveArray_Get(save, 8);
struct Daycare* daycare = SaveArray_Get(save, 8);
ov05_021EC57C(party, (u8)idx, daycare, save);
@ -139,7 +139,7 @@ BOOL ScrCmd_Unk01BC(struct ScriptContext* ctx) //01BC
u16 idx2 = ScriptGetVar(ctx);
u16 idx3 = ScriptGetVar(ctx);
u16 idx4 = ScriptGetVar(ctx);
struct DayCare* daycare = Save_DayCare_Get(save);
struct Daycare* daycare = Save_Daycare_Get(save);
ov05_021ED52C(daycare, (u8)idx1, (u8)idx2, (u8)idx3, (u8)idx4, *messageFormat);
@ -150,7 +150,7 @@ BOOL ScrCmd_Unk01BE(struct ScriptContext* ctx) //01BE
{
struct SaveData* save = ctx->fieldSystem->saveData;
u16* ret_ptr = ScriptGetVarPointer(ctx);
struct DayCare* daycare = SaveArray_Get(save, 8);
struct Daycare* daycare = SaveArray_Get(save, 8);
*ret_ptr = (u16)ov05_021ED644(daycare);
@ -161,9 +161,9 @@ BOOL ScrCmd_Unk01BF(struct ScriptContext* ctx) //01BF - todo: SaveEggPID?
{
struct SaveData* save = ctx->fieldSystem->saveData;
u16* ret_ptr = ScriptGetVarPointer(ctx);
struct DayCare* daycare = SaveArray_Get(save, 8);
struct Daycare* daycare = SaveArray_Get(save, 8);
*ret_ptr = (u16)Save_DayCare_GetEggPID(daycare);
*ret_ptr = (u16)Save_Daycare_GetEggPID(daycare);
return FALSE;
}

View File

@ -2,6 +2,7 @@
#define POKEDIAMOND_CONSTANTS_SAVE_ARRAYS_H
#define SAVE_BAG 3
#define SAVE_DAYCARE 8
#define SAVE_SAFARI_ZONE 27
#define SAVE_BLOCK_NUM 36

View File

@ -2,47 +2,45 @@
#define POKEDIAMOND_DAYCARE_H
#include "global.h"
#include "mail.h"
struct DayCareMail
{
struct Mail seal;
typedef struct DaycareMail {
Mail mail;
u16 ot_name[PLAYER_NAME_LENGTH + 1];
u16 nickname[POKEMON_NAME_LENGTH + 1];
u8 padding_5E[2];
};
} DaycareMail;
struct DayCareMon
{
struct BoxPokemon mon;
struct DayCareMail mail;
typedef struct DaycareMon {
BoxPokemon mon;
DaycareMail mail;
u32 steps;
};
} DaycareMon;
struct DayCare
{
struct DayCareMon mons[2];
typedef struct Daycare {
DaycareMon mons[2];
u32 egg_pid;
u8 egg_cycles;
u8 padding_1DD[3];
};
} Daycare;
u32 Save_DayCare_sizeof(void);
void Save_DayCare_Init(struct DayCare * daycare);
struct DayCareMon * Save_DayCare_GetMonX(struct DayCare * daycare, s32 i);
struct BoxPokemon * DayCareMon_GetBoxMon(struct DayCareMon * dcmon);
struct DayCareMail * DayCareMon_GetExtras(struct DayCareMon * dcmon);
u32 DayCareMon_GetSteps(struct DayCareMon * dcmon);
struct Mail * DayCareMail_GetCapsule(struct DayCareMail * dcmail);
u32 Save_DayCare_GetEggPID(struct DayCare * daycare);
u8 Save_DayCare_GetEggCycleCounter(struct DayCare * daycare);
void DayCareMon_SetSteps(struct DayCareMon * dcmon, u32 steps);
void DayCareMon_AddSteps(struct DayCareMon * dcmon, u32 steps);
void Save_DayCare_SetEggPID(struct DayCare * daycare, u32 pid);
void Save_DayCare_SetEggCycleCounter(struct DayCare * daycare, u8 count);
BOOL Save_DayCare_MasudaCheck(struct DayCare * daycare);
void DayCareMon_Copy(struct DayCareMon * dest, const struct DayCareMon * src);
void DayCareMon_Extras_Init(struct DayCareMail * mail);
void DayCareMon_Init(struct DayCareMon * mon);
struct DayCare * Save_DayCare_Get(struct SaveData * save);
u32 Save_Daycare_sizeof(void);
void Save_Daycare_Init(Daycare *daycare);
DaycareMon *Save_Daycare_GetMonX(Daycare *daycare, s32 i);
BoxPokemon *DaycareMon_GetBoxMon(DaycareMon *dcmon);
DaycareMail *DaycareMon_GetExtras(DaycareMon *dcmon);
u32 DaycareMon_GetSteps(DaycareMon *dcmon);
Mail *DayCareMail_GetMailPtr(DaycareMail *dcmail);
u32 Save_Daycare_GetEggPID(Daycare *daycare);
u8 Save_Daycare_GetEggCycleCounter(Daycare *daycare);
void DaycareMon_SetSteps(DaycareMon *dcmon, u32 steps);
void DaycareMon_AddSteps(DaycareMon *dcmon, u32 steps);
void Save_Daycare_SetEggPID(Daycare *daycare, u32 pid);
void Save_Daycare_SetEggCycleCounter(Daycare *daycare, u8 count);
BOOL Save_Daycare_MasudaCheck(Daycare *daycare);
void DaycareMon_Copy(DaycareMon *dest, const DaycareMon *src);
void DaycareMon_Extras_Init(DaycareMail *mail);
void DaycareMon_Init(DaycareMon *mon);
Daycare *Save_Daycare_Get(SaveData *savedata);
#endif //POKEDIAMOND_DAYCARE_H