summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/daycare.s64
-rw-r--r--ld_script.txt1
-rw-r--r--src/daycare.c33
3 files changed, 34 insertions, 64 deletions
diff --git a/asm/daycare.s b/asm/daycare.s
index 80e7c46e8..d78757d8f 100644
--- a/asm/daycare.s
+++ b/asm/daycare.s
@@ -6,70 +6,6 @@
.text
- thumb_func_start pokemon_get_nick
-pokemon_get_nick: @ 80412B0
- push {r4,lr}
- sub sp, 0x14
- adds r4, r1, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- adds r0, r4, 0
- mov r1, sp
- bl StringCopy10
- add sp, 0x14
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end pokemon_get_nick
-
- thumb_func_start pokemon_get_nick_
-pokemon_get_nick_: @ 80412D0
- push {r4,lr}
- sub sp, 0x14
- adds r4, r1, 0
- movs r1, 0x2
- mov r2, sp
- bl GetBoxMonData
- adds r0, r4, 0
- mov r1, sp
- bl StringCopy10
- add sp, 0x14
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end pokemon_get_nick_
-
- thumb_func_start daycare_count_pokemon
-daycare_count_pokemon: @ 80412F0
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r5, 0
- movs r4, 0
-_080412F8:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- adds r0, r6, r0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _08041310
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_08041310:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _080412F8
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end daycare_count_pokemon
-
thumb_func_start sub_8041324
sub_8041324: @ 8041324
push {r4-r7,lr}
diff --git a/ld_script.txt b/ld_script.txt
index d2fb31c6e..2267ca956 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -61,6 +61,7 @@ SECTIONS {
src/rng.o(.text);
asm/util.o(.text);
src/blend_palette.o(.text);
+ src/daycare.o(.text);
asm/daycare.o(.text);
asm/egg_hatch.o(.text);
asm/rom_804373C.o(.text);
diff --git a/src/daycare.c b/src/daycare.c
new file mode 100644
index 000000000..23f0305d8
--- /dev/null
+++ b/src/daycare.c
@@ -0,0 +1,33 @@
+#include "global.h"
+#include "pokemon.h"
+#include "string_util.h"
+
+u8 *pokemon_get_nick(struct Pokemon *mon, u8 *dest)
+{
+ s8 nickname[POKEMON_NAME_LENGTH * 2];
+
+ GetMonData(mon, MON_DATA_NICKNAME, nickname);
+ return StringCopy10(dest, nickname);
+}
+
+u8 *pokemon_get_nick_(struct BoxPokemon *mon, u8 *dest)
+{
+ s8 nickname[POKEMON_NAME_LENGTH * 2];
+
+ GetBoxMonData(mon, MON_DATA_NICKNAME, nickname);
+ return StringCopy10(dest, nickname);
+}
+
+u8 daycare_count_pokemon(struct BoxPokemon *daycare_data)
+{
+ u8 i, count;
+ count = 0;
+
+ for(i = 0;i <= 1;i++) {
+ if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) != 0) {
+ count++;
+ }
+ }
+
+ return count;
+}