summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm9/arm9.lsf2
-rw-r--r--arm9/asm/scrcmd_16.s408
-rw-r--r--arm9/asm/unk_02038C78.s32
-rw-r--r--arm9/global.inc32
-rw-r--r--arm9/src/scrcmd_daycare.c192
-rw-r--r--include/scrcmd.h18
6 files changed, 243 insertions, 441 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf
index 05a905ee..b0bb0a55 100644
--- a/arm9/arm9.lsf
+++ b/arm9/arm9.lsf
@@ -167,7 +167,7 @@ Static arm9
Object scrcmd_13.o
Object scrcmd_coins.o
Object scrcmd_money.o
- Object scrcmd_16.o
+ Object scrcmd_daycare.o
Object scrcmd_17.o
Object scrcmd_18_c.o
Object scrcmd_18.o
diff --git a/arm9/asm/scrcmd_16.s b/arm9/asm/scrcmd_16.s
deleted file mode 100644
index 8afbf518..00000000
--- a/arm9/asm/scrcmd_16.s
+++ /dev/null
@@ -1,408 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- thumb_func_start FUN_02043E00
-FUN_02043E00: ; 0x02043E00
- push {r3-r5, lr}
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- ldr r5, [r0, #0xc]
- bl FUN_02039438
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl Sav2_DayCare_get
- ldr r1, [r4, #0x0]
- bl MOD05_021ED4E0
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02043E20
-FUN_02043E20: ; 0x02043E20
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r1, r5, #0x0
- add r1, #0x80
- ldr r1, [r1, #0x0]
- ldr r4, [r1, #0xc]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl GetVarPointer
- add r5, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x8
- bl SavArray_get
- bl MOD05_021ED5EC
- strh r0, [r5, #0x0]
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02043E50
-FUN_02043E50: ; 0x02043E50
- push {r3, lr}
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0x8
- ldr r0, [r0, #0xc]
- bl SavArray_get
- bl MOD05_021ECD64
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02043E68
-FUN_02043E68: ; 0x02043E68
- push {r4-r6, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r5, [r0, #0x0]
- mov r1, #0x8
- ldr r0, [r5, #0xc]
- bl SavArray_get
- add r6, r0, #0x0
- ldr r0, [r5, #0xc]
- bl SavArray_PlayerParty_get
- add r4, #0x80
- add r5, r0, #0x0
- ldr r0, [r4, #0x0]
- bl ScriptEnvironment_GetSav2Ptr
- bl Sav2_PlayerData_GetProfileAddr
- add r2, r0, #0x0
- add r0, r6, #0x0
- add r1, r5, #0x0
- bl MOD05_DayCare_GiveEggToPlayer
- mov r0, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02043E9C
-FUN_02043E9C: ; 0x02043E9C
- push {r3-r7, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r5, [r0, #0x0]
- mov r1, #0xf
- add r0, r5, #0x0
- bl FUN_02039438
- add r7, r0, #0x0
- add r0, r4, #0x0
- ldr r6, [r5, #0xc]
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- str r0, [sp, #0x0]
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl VarGet
- add r4, r0, #0x0
- add r0, r6, #0x0
- mov r1, #0x8
- bl SavArray_get
- add r6, r0, #0x0
- ldr r0, [r5, #0xc]
- bl SavArray_PlayerParty_get
- lsl r3, r4, #0x18
- ldr r1, [r7, #0x0]
- add r2, r6, #0x0
- lsr r3, r3, #0x18
- bl MOD05_021EC71C
- ldr r1, [sp, #0x0]
- strh r0, [r1, #0x0]
- mov r0, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02043EFC
-FUN_02043EFC: ; 0x02043EFC
- push {r3-r7, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r5, [r0, #0x0]
- mov r1, #0xf
- add r0, r5, #0x0
- bl FUN_02039438
- add r7, r0, #0x0
- add r0, r4, #0x0
- ldr r5, [r5, #0xc]
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- add r6, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl VarGet
- add r4, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0x8
- bl SavArray_get
- lsl r1, r4, #0x18
- ldr r2, [r7, #0x0]
- lsr r1, r1, #0x18
- bl MOD05_021EC854
- strh r0, [r6, #0x0]
- mov r0, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02043F50
-FUN_02043F50: ; 0x02043F50
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- ldr r4, [r0, #0xc]
- bl FUN_02039438
- add r6, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl GetVarPointer
- add r7, r0, #0x0
- add r0, r5, #0x0
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl VarGet
- add r5, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x8
- bl SavArray_get
- ldr r2, [r6, #0x0]
- add r1, r5, #0x0
- bl MOD05_021EC864
- strh r0, [r7, #0x0]
- mov r0, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02043FA0
-FUN_02043FA0: ; 0x02043FA0
- push {r3-r7, lr}
- add r4, r0, #0x0
- add r0, #0x80
- ldr r5, [r0, #0x0]
- mov r1, #0xf
- add r0, r5, #0x0
- bl FUN_02039438
- add r6, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r7, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl GetVarPointer
- add r4, r0, #0x0
- ldr r0, [r5, #0xc]
- bl SavArray_PlayerParty_get
- ldr r2, [r6, #0x0]
- add r1, r7, #0x0
- bl MOD05_021ED5C4
- strh r0, [r4, #0x0]
- mov r0, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02043FF4
-FUN_02043FF4: ; 0x02043FF4
- push {r4-r6, lr}
- add r6, r0, #0x0
- add r1, r6, #0x0
- add r1, #0x80
- ldr r4, [r1, #0x0]
- ldr r5, [r4, #0xc]
- bl ScriptReadHalfword
- add r6, #0x80
- add r1, r0, #0x0
- ldr r0, [r6, #0x0]
- bl VarGet
- add r6, r0, #0x0
- ldr r0, [r4, #0xc]
- bl SavArray_PlayerParty_get
- add r4, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0x8
- bl SavArray_get
- lsl r1, r6, #0x18
- add r2, r0, #0x0
- add r0, r4, #0x0
- lsr r1, r1, #0x18
- add r3, r5, #0x0
- bl MOD05_021EC57C
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02044034
-FUN_02044034: ; 0x02044034
- push {r3-r7, lr}
- sub sp, #0x10
- add r4, r0, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- mov r1, #0xf
- ldr r5, [r0, #0xc]
- bl FUN_02039438
- add r6, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- add r7, r0, #0x0
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- str r0, [sp, #0x8]
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- bl VarGet
- str r0, [sp, #0xc]
- add r0, r4, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl VarGet
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl Sav2_DayCare_get
- lsl r1, r4, #0x18
- lsr r1, r1, #0x18
- str r1, [sp, #0x0]
- ldr r1, [r6, #0x0]
- ldr r2, [sp, #0x8]
- ldr r3, [sp, #0xc]
- str r1, [sp, #0x4]
- lsl r1, r7, #0x18
- lsl r2, r2, #0x18
- lsl r3, r3, #0x18
- lsr r1, r1, #0x18
- lsr r2, r2, #0x18
- lsr r3, r3, #0x18
- bl MOD05_021ED52C
- mov r0, #0x0
- add sp, #0x10
- pop {r3-r7, pc}
-
- thumb_func_start FUN_020440C0
-FUN_020440C0: ; 0x020440C0
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r1, r5, #0x0
- add r1, #0x80
- ldr r1, [r1, #0x0]
- ldr r4, [r1, #0xc]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl GetVarPointer
- add r5, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x8
- bl SavArray_get
- bl MOD05_021ED644
- strh r0, [r5, #0x0]
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_020440F0
-FUN_020440F0: ; 0x020440F0
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r1, r5, #0x0
- add r1, #0x80
- ldr r1, [r1, #0x0]
- ldr r4, [r1, #0xc]
- bl ScriptReadHalfword
- add r5, #0x80
- add r1, r0, #0x0
- ldr r0, [r5, #0x0]
- bl GetVarPointer
- add r5, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x8
- bl SavArray_get
- bl Sav2_DayCare_GetEggPID
- strh r0, [r5, #0x0]
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02044120
-FUN_02044120: ; 0x02044120
- push {r4, lr}
- add r4, r0, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl GetVarPointer
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02044138
-FUN_02044138: ; 0x02044138
- mov r0, #0x0
- bx lr
-
- thumb_func_start FUN_0204413C
-FUN_0204413C: ; 0x0204413C
- mov r0, #0x0
- bx lr
-
- thumb_func_start FUN_02044140
-FUN_02044140: ; 0x02044140
- push {r4, lr}
- add r4, r0, #0x0
- bl ScriptReadHalfword
- add r4, #0x80
- add r1, r0, #0x0
- ldr r0, [r4, #0x0]
- bl GetVarPointer
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s
index a5037d01..70b66348 100644
--- a/arm9/asm/unk_02038C78.s
+++ b/arm9/asm/unk_02038C78.s
@@ -514,8 +514,8 @@ gScriptCmdTable: ; 0x020F355C
.word FUN_0203DC70
.word FUN_0203DC88
.word FUN_0203DCA0
- .word FUN_02043E00
- .word FUN_02043E20
+ .word ScrCmd_Unk016D
+ .word ScrCmd_Unk016E
.word FUN_0203DCB8
.word FUN_0203DCC8
.word FUN_0203DCD8
@@ -569,19 +569,19 @@ gScriptCmdTable: ; 0x020F355C
.word FUN_0203DE58
.word FUN_0203DE80
.word ScrCmd_TakeMoneyAddress
- .word FUN_02043E9C
- .word FUN_02044120
- .word FUN_02044138
- .word FUN_0204413C
- .word FUN_02043E50
- .word FUN_02043E68
- .word FUN_02043EFC
+ .word ScrCmd_Unk01A4
+ .word ScrCmd_Unk01A5
+ .word ScrCmd_Unk01A6
+ .word ScrCmd_Unk01A7
+ .word ScrCmd_Unk01A8
+ .word ScrCmd_Unk01A9
+ .word ScrCmd_Unk01AA
.word ScrCmd_HasEnoughMoneyAddress
.word FUN_0203DD50
- .word FUN_02044140
- .word FUN_02043F50
- .word FUN_02043FA0
- .word FUN_02043FF4
+ .word ScrCmd_Unk01AD
+ .word ScrCmd_Unk01AE
+ .word ScrCmd_Unk01AF
+ .word ScrCmd_Unk01B0
.word FUN_0203DEC4
.word FUN_0203DEF8
.word FUN_0203DF2C
@@ -593,10 +593,10 @@ gScriptCmdTable: ; 0x020F355C
.word ScrCmd_getpartymonfriendship
.word FUN_020448D4
.word FUN_020449A4
- .word FUN_02044034
+ .word ScrCmd_Unk01BC
.word FUN_0203B618
- .word FUN_020440C0
- .word FUN_020440F0
+ .word ScrCmd_Unk01BE
+ .word ScrCmd_Unk01BF
.word FUN_02044F58
.word FUN_0203E018
.word FUN_0203E054
diff --git a/arm9/global.inc b/arm9/global.inc
index 63ab1566..2029d1c1 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -3296,22 +3296,22 @@
.extern ScrCmd_Unk0072
.extern ScrCmd_Unk0073
.extern ScrCmd_Unk0074
-.extern FUN_02043E00
-.extern FUN_02043E20
-.extern FUN_02043E50
-.extern FUN_02043E68
-.extern FUN_02043E9C
-.extern FUN_02043EFC
-.extern FUN_02043F50
-.extern FUN_02043FA0
-.extern FUN_02043FF4
-.extern FUN_02044034
-.extern FUN_020440C0
-.extern FUN_020440F0
-.extern FUN_02044120
-.extern FUN_02044138
-.extern FUN_0204413C
-.extern FUN_02044140
+.extern ScrCmd_Unk016D
+.extern ScrCmd_Unk016E
+.extern ScrCmd_Unk01A8
+.extern ScrCmd_Unk01A9
+.extern ScrCmd_Unk01A4
+.extern ScrCmd_Unk01AA
+.extern ScrCmd_Unk01AE
+.extern ScrCmd_Unk01AF
+.extern ScrCmd_Unk01B0
+.extern ScrCmd_Unk01BC
+.extern ScrCmd_Unk01BE
+.extern ScrCmd_Unk01BF
+.extern ScrCmd_Unk01A5
+.extern ScrCmd_Unk01A6
+.extern ScrCmd_Unk01A7
+.extern ScrCmd_Unk01AD
.extern FUN_02044158
.extern FUN_0204416C
.extern FUN_02044198
diff --git a/arm9/src/scrcmd_daycare.c b/arm9/src/scrcmd_daycare.c
new file mode 100644
index 00000000..4e2f925e
--- /dev/null
+++ b/arm9/src/scrcmd_daycare.c
@@ -0,0 +1,192 @@
+#include "scrcmd.h"
+#include "daycare.h"
+#include "party.h"
+#include "script_buffers.h"
+
+extern void* FUN_02039438(struct UnkSavStruct80*, int idx);
+
+extern void MOD05_021EC57C(struct PlayerParty* party, u8 idx, struct DayCare* daycare, struct SaveBlock2* sav2);
+extern u16 MOD05_021EC71C(struct PlayerParty* party, struct ScrStrBufs* mgr, struct DayCare* daycare, u8 idx);
+extern u16 MOD05_021EC854(struct DayCare* daycare, u8 idx, struct ScrStrBufs* mgr);
+extern u8 MOD05_021EC864(struct DayCare* daycare, int idx, struct ScrStrBufs* mgr);
+extern void MOD05_021ECD64(struct DayCare* daycare);
+extern void MOD05_DayCare_GiveEggToPlayer(struct DayCare* daycare, struct PlayerParty* party, struct PlayerData* player);
+extern void MOD05_021ED4E0(struct DayCare* daycare, struct ScrStrBufs* mgr);
+extern void MOD05_021ED52C(struct DayCare* daycare, u8 idx1, u8 idx2, u8 idx3, u8 idx4, struct ScrStrBufs* mgr);
+extern u16 MOD05_021ED5C4(struct PlayerParty* party, int idx, struct ScrStrBufs* mgr);
+extern u16 MOD05_021ED5EC(struct DayCare* daycare);
+extern u32 MOD05_021ED644(struct DayCare* daycare);
+
+THUMB_FUNC BOOL ScrCmd_Unk016D(struct ScriptContext* ctx)
+{
+ struct SaveBlock2* sav2 = ctx->unk80->saveBlock2;
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ struct DayCare* daycare = Sav2_DayCare_get(sav2);
+
+ MOD05_021ED4E0(daycare, *mgr);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk016E(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ struct SaveBlock2* sav2 = sav_ptr->saveBlock2;
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ struct DayCare* daycare = SavArray_get(sav2, 8);
+
+ *ret_ptr = MOD05_021ED5EC(daycare);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01A8(struct ScriptContext* ctx)
+{
+ struct DayCare* daycare = SavArray_get(ctx->unk80->saveBlock2, 8);
+ MOD05_021ECD64(daycare);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01A9(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ struct DayCare* daycare = SavArray_get(sav_ptr->saveBlock2, 8);
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct SaveBlock2* sav2 = ScriptEnvironment_GetSav2Ptr(ctx->unk80);
+ struct PlayerData* player = Sav2_PlayerData_GetProfileAddr(sav2);
+
+ MOD05_DayCare_GiveEggToPlayer(daycare, party, player);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01A4(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15);
+ struct SaveBlock2* sav2 = sav_ptr->saveBlock2;
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct DayCare* daycare = SavArray_get(sav2, 8);
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+
+ *ret_ptr = MOD05_021EC71C(party, *mgr, daycare, (u8)idx);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01AA(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15);
+ struct SaveBlock2* sav2 = sav_ptr->saveBlock2;
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct DayCare* daycare = SavArray_get(sav2, 8);
+
+ *ret_ptr = MOD05_021EC854(daycare, (u8)idx, *mgr);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01AE(struct ScriptContext* ctx)
+{
+ struct SaveBlock2* sav2 = ctx->unk80->saveBlock2;
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct DayCare* daycare = SavArray_get(sav2, 8);
+
+ *ret_ptr = MOD05_021EC864(daycare, idx, *mgr);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01AF(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u16 unused = ScriptReadHalfword(ctx);
+ u16 idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+
+ *ret_ptr = MOD05_021ED5C4(party, idx, *mgr);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01B0(struct ScriptContext* ctx)
+{
+ struct UnkSavStruct80* sav_ptr = ctx->unk80;
+ struct SaveBlock2* sav2 = sav_ptr->saveBlock2;
+ u16 idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct PlayerParty* party = SavArray_PlayerParty_get(sav_ptr->saveBlock2);
+ struct DayCare* daycare = SavArray_get(sav2, 8);
+
+ MOD05_021EC57C(party, (u8)idx, daycare, sav2);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01BC(struct ScriptContext* ctx)
+{
+ struct SaveBlock2* sav2 = ctx->unk80->saveBlock2;
+ struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15);
+ u16 idx1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 idx2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 idx3 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ u16 idx4 = VarGet(ctx->unk80, ScriptReadHalfword(ctx));
+ struct DayCare* daycare = Sav2_DayCare_get(sav2);
+
+ MOD05_021ED52C(daycare, (u8)idx1, (u8)idx2, (u8)idx3, (u8)idx4, *mgr);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01BE(struct ScriptContext* ctx)
+{
+ struct SaveBlock2* sav2 = ctx->unk80->saveBlock2;
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ struct DayCare* daycare = SavArray_get(sav2, 8);
+
+ *ret_ptr = (u16)MOD05_021ED644(daycare);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01BF(struct ScriptContext* ctx)
+{
+ struct SaveBlock2* sav2 = ctx->unk80->saveBlock2;
+ u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ struct DayCare* daycare = SavArray_get(sav2, 8);
+
+ *ret_ptr = (u16)Sav2_DayCare_GetEggPID(daycare);
+
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01A5(struct ScriptContext* ctx)
+{
+ u16* unused = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01A6(struct ScriptContext* ctx)
+{
+#pragma unused(ctx)
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01A7(struct ScriptContext* ctx)
+{
+#pragma unused(ctx)
+ return FALSE;
+}
+
+THUMB_FUNC BOOL ScrCmd_Unk01AD(struct ScriptContext* ctx)
+{
+ u16* unused = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx));
+ return FALSE;
+}
diff --git a/include/scrcmd.h b/include/scrcmd.h
index 4c155f0b..3ea5c916 100644
--- a/include/scrcmd.h
+++ b/include/scrcmd.h
@@ -134,6 +134,24 @@ BOOL ScrCmd_Unk0072(struct ScriptContext* ctx);
BOOL ScrCmd_Unk0073(struct ScriptContext* ctx);
BOOL ScrCmd_Unk0074(struct ScriptContext* ctx);
+//scrcmd_daycare.c
+BOOL ScrCmd_Unk016D(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk016E(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01A8(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01A9(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01A4(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01AA(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01AE(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01AF(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01B0(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01BC(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01BE(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01BF(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01A5(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01A6(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01A7(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01AD(struct ScriptContext* ctx);
+
//scrcmd_18.c
BOOL ScrCmd_GiveMon(struct ScriptContext* ctx);