get_egg.c, 1

This commit is contained in:
PikalaxALT 2022-03-02 16:57:51 -05:00
parent 3813df9808
commit d120a4a0f8
5 changed files with 39 additions and 79 deletions

View File

@ -6,85 +6,11 @@
.include "asm/macros.inc"
.include "global.inc"
.bss
_021D4218:
.space 4
.text
thumb_func_start Daycare_GetBoxMonI
Daycare_GetBoxMonI: ; 0x0206BDB0
push {r3, lr}
bl Sav2_DayCare_GetMonX
bl DayCareMon_GetBoxMon
pop {r3, pc}
thumb_func_end Daycare_GetBoxMonI
thumb_func_start Sav2_DayCare_CountMonsInDayCare
Sav2_DayCare_CountMonsInDayCare: ; 0x0206BDBC
push {r3, r4, r5, r6, r7, lr}
mov r4, #0
add r6, r0, #0
add r5, r4, #0
mov r7, #5
_0206BDC6:
add r0, r6, #0
add r1, r5, #0
bl Sav2_DayCare_GetMonX
bl DayCareMon_GetBoxMon
add r1, r7, #0
mov r2, #0
bl GetBoxMonData
cmp r0, #0
beq _0206BDE4
add r0, r4, #1
lsl r0, r0, #0x18
lsr r4, r0, #0x18
_0206BDE4:
add r0, r5, #1
lsl r0, r0, #0x18
lsr r5, r0, #0x18
cmp r5, #2
blo _0206BDC6
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end Sav2_DayCare_CountMonsInDayCare
thumb_func_start Sav2_DayCare_GetAvailableSlot
Sav2_DayCare_GetAvailableSlot: ; 0x0206BDF4
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
ldr r0, _0206BE30 ; =_021D4218
mov r4, #0
str r5, [r0]
mov r6, #5
add r7, r4, #0
_0206BE02:
add r0, r5, #0
add r1, r4, #0
bl Sav2_DayCare_GetMonX
bl DayCareMon_GetBoxMon
add r1, r6, #0
add r2, r7, #0
bl GetBoxMonData
cmp r0, #0
bne _0206BE1E
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
_0206BE1E:
add r0, r4, #1
lsl r0, r0, #0x18
lsr r4, r0, #0x18
cmp r4, #2
blo _0206BE02
mov r0, #0
mvn r0, r0
pop {r3, r4, r5, r6, r7, pc}
nop
_0206BE30: .word _021D4218
thumb_func_end Sav2_DayCare_GetAvailableSlot
.public Daycare_GetBoxMonI
.public Sav2_DayCare_CountMonsInDayCare
.public Sav2_DayCare_GetAvailableSlot
thumb_func_start DayCareMon_CopyFromPartySlot
DayCareMon_CopyFromPartySlot: ; 0x0206BE34

View File

@ -19,5 +19,6 @@ void MapObject_SetParam(LocalMapObject *mapObject, int value, int which);
int MapObject_GetParam(LocalMapObject *mapObject, int which);
void MapObject_SetXRange(LocalMapObject *mapObject, u32 xRange);
void MapObject_SetYRange(LocalMapObject *mapObject, u32 yRange);
void sub_0205F89C(LocalMapObject* map_object, BOOL enable_bit);
#endif //POKEHEARTGOLD_FIELD_MAP_OBJECT_H

View File

@ -4,7 +4,6 @@
#include "daycare.h"
#include "msgfmt.h"
void sub_0205F89C(LocalMapObject* map_object, BOOL enable_bit);
void Sav2_DayCare_PutMonIn(PARTY* party, u8 slot, DAYCARE* daycare, SAVEDATA* savedata);
u16 Sav2_DayCare_RetrieveMon(PARTY* party, MSGFMT* msg_fmt, DAYCARE* daycare, u8 idx);
u16 Sav2_DayCare_BufferMonNickAndRetrievalPrice(DAYCARE* daycare, u8 dc_mon_idx, MSGFMT* msg_fmt);

View File

@ -235,7 +235,8 @@ Static main
Object asm/field_take_photo.o
Object asm/unk_0206B910.o
Object src/field_alph_checks.o
Object asm/get_egg.o
Object src/get_egg.o
Object asm/get_egg_s.o
Object asm/unk_0206D494.o
Object src/pokemon.o
Object src/waza.o

33
src/get_egg.c Normal file
View File

@ -0,0 +1,33 @@
#include "get_egg.h"
BOXMON *Daycare_GetBoxMonI(DAYCARE *daycare, int idx) {
return DayCareMon_GetBoxMon(Sav2_DayCare_GetMonX(daycare, idx));
}
u8 Sav2_DayCare_CountMonsInDayCare(DAYCARE *daycare) {
u8 ct, i;
ct = 0;
for (i = 0; i < 2; i++) {
if (GetBoxMonData(DayCareMon_GetBoxMon(Sav2_DayCare_GetMonX(daycare, i)), MON_DATA_SPECIES, NULL) != SPECIES_NONE) {
ct++;
}
}
return ct;
}
int Sav2_DayCare_GetAvailableSlot(DAYCARE *daycare) {
u8 i;
static DAYCARE *_021D4218;
_021D4218 = daycare;
for (i = 0; i < 2; i++) {
if (GetBoxMonData(DayCareMon_GetBoxMon(Sav2_DayCare_GetMonX(daycare, i)), MON_DATA_SPECIES, NULL) == SPECIES_NONE) {
return i;
}
}
return -1;
}