summaryrefslogtreecommitdiff
path: root/arm9/modules/63/src
diff options
context:
space:
mode:
authorred031000 <rubenru09@aol.com>2020-07-28 22:24:27 +0100
committerPikalaxALT <pikalaxalt@gmail.com>2020-08-03 15:58:15 -0400
commit7a6b8a8885801ffdf6b0cd15aea72a8d7e04c609 (patch)
tree7e99500eb8edce4ced68f5e1067c6ecde85b2d31 /arm9/modules/63/src
parent12d9a7af2ce22099bbac7e4aa7f63a93a5666bd9 (diff)
mod63_021DB49C
Diffstat (limited to 'arm9/modules/63/src')
-rw-r--r--arm9/modules/63/src/mod63_021DB450.c57
1 files changed, 57 insertions, 0 deletions
diff --git a/arm9/modules/63/src/mod63_021DB450.c b/arm9/modules/63/src/mod63_021DB450.c
index 127c079f..ce641d47 100644
--- a/arm9/modules/63/src/mod63_021DB450.c
+++ b/arm9/modules/63/src/mod63_021DB450.c
@@ -1,4 +1,6 @@
#include "global.h"
+#include "heap.h"
+#include "constants/species.h"
#include "mod63_021DB450.h"
//todo resolve to static code
@@ -8,6 +10,30 @@ extern u32 (*UNK_021064C0)(u32 param0, u32 param1, u32 param2);
extern void FUN_0201327C(u32 param0);
extern void FUN_020132BC(u32 param0);
+extern void * FUN_02012CDC(void *, void *, void *, u32, u32, u32);
+extern u32 FUN_020073A0(u32, struct UnkStruct63_021DB49C_2 *, u32, u32, u32, u32, u32, u32);
+
+extern u32 FUN_02006D98(u32);
+extern void FUN_02068C00(struct UnkStruct63_021DB49C_2*, u16, u32, u32, u32, u32, u32);
+extern void FUN_02012CC8(void);
+extern void FUN_02007558(u32, u32, u32);
+extern void FUN_0201EC94(u32, u32, u32);
+extern u32 FUN_0201343C(void);
+extern void FUN_02013194(void *, u32, u32, u32);
+extern u32 FUN_0201318C(u32, u32, u32);
+
+//todo funcs
+void MOD63_021DB720();
+void MOD63_021DB784();
+void MOD63_021DB7D0();
+void MOD63_021DB838();
+void MOD63_021DB884();
+void MOD63_021DB8E8();
+
+//todo data
+const u32 MOD63_021DBEC0[3] = {0x703, 0x7CE, 0x8A8};
+const struct UnkStruct63_021DBEF0 MOD63_021DBEF0[3];
+
THUMB_FUNC u32 MOD63_021DB450(u32 param0, u32 param1)
{
u32 res0 = (UNK_021064B8)(param0, param1, 0);
@@ -28,3 +54,34 @@ THUMB_FUNC u32 MOD63_021DB498(void)
{
return 32;
}
+
+THUMB_FUNC void MOD63_021DB49C(struct UnkStruct63_021DB49C * arg0)
+{
+ struct UnkStruct63_021DB49C_2 sp1C;
+ int sp10[3] = {SPECIES_TURTWIG, SPECIES_CHIMCHAR, SPECIES_PIPLUP};
+
+ arg0->field_00 = FUN_02006D98(76);
+
+ for (u8 i = 0; i < 3; i++)
+ {
+ FUN_02068C00(&sp1C, (u16)sp10[i], 0, 2, 0, 0, 0);
+ arg0->field_04[i] = FUN_020073A0(arg0->field_00, &sp1C, MOD63_021DBEF0[i].field_00, MOD63_021DBEF0[i].field_04, 0x3FF, i, 0, 0);
+ FUN_02007558(arg0->field_04[i], 6, 1);
+ }
+ FUN_02007558(arg0->field_04[1], 35, 1);
+ arg0->field_10 = 1;
+ FUN_02012CC8();
+ arg0->field_14 = AllocFromHeap(0x4C, 0x4800);
+ arg0->field_18 = FUN_02012CDC(MOD63_021DB450, MOD63_021DB474, arg0->field_14, 0x4800, 1, 0x4C);
+ FUN_0201EC94(0x1000, 0x384000, FUN_0201343C());
+ FUN_02013194(arg0->field_18, FUN_0201318C(0x3D, 4, 0x4C), 10, 1);
+}
+
+const void * const MOD63_021DBED8 = MOD63_021DB720;
+const void * const MOD63_021DBEDC[5] = { MOD63_021DB784, MOD63_021DB7D0, MOD63_021DB838, MOD63_021DB884, MOD63_021DB8E8 };
+
+const struct UnkStruct63_021DBEF0 MOD63_021DBEF0[3] = {
+ {0x080, 0xC0},
+ {0x100, 0xC0},
+ {0x050, 0xC0}
+};