summaryrefslogtreecommitdiff
path: root/arm9/src
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/src')
-rw-r--r--arm9/src/save_arrays.c3
-rw-r--r--arm9/src/script_buffers.c5
-rw-r--r--arm9/src/trainer_data.c5
-rw-r--r--arm9/src/unk_02024E64.c62
-rw-r--r--arm9/src/unk_0204AEA8.c43
5 files changed, 110 insertions, 8 deletions
diff --git a/arm9/src/save_arrays.c b/arm9/src/save_arrays.c
index 397f1f69..8520f2c1 100644
--- a/arm9/src/save_arrays.c
+++ b/arm9/src/save_arrays.c
@@ -14,10 +14,10 @@
#include "pokedex.h"
#include "seal.h"
#include "unk_020139D8.h"
+#include "unk_02024E64.h"
extern u32 FUN_0202AC20(void);
extern u32 FUN_02034D7C(void);
-extern u32 FUN_02024E64(void);
extern u32 FUN_02034D80(void);
extern u32 FUN_02025954(void);
extern u32 FUN_02023AC8(void);
@@ -39,7 +39,6 @@ extern u32 FUN_0202BE98(void);
extern u32 FUN_0202C0E0(void);
extern void FUN_0202AC28(void *);
extern void FUN_02034D98(void *);
-extern void FUN_02024E6C(void *);
extern void FUN_02034D88(void *);
extern void FUN_0202597C(void *);
extern void FUN_02023AD8(void *);
diff --git a/arm9/src/script_buffers.c b/arm9/src/script_buffers.c
index 431f63b4..e9a55051 100644
--- a/arm9/src/script_buffers.c
+++ b/arm9/src/script_buffers.c
@@ -11,11 +11,10 @@
#include "unk_0201B8B8.h"
#include "trainer_data.h"
#include "script_buffers.h"
+#include "unk_02024E64.h"
#pragma thumb on
-extern void * FUN_02024EC0(struct SaveBlock2 * sav2);
-extern u16 * FUN_02024EE8(void *);
extern u32 GetCityNamesMsgdataIdByCountry(u32);
extern void GetECWordIntoStringByIndex(u32 a0, struct String * a1);
extern void StringCat_HandleTrainerName(struct String * dest, const struct String * src);
@@ -131,7 +130,7 @@ void BufferPlayersName(struct ScrStrBufs * mgr, u32 idx, struct PlayerData * dat
void BufferRivalsName(struct ScrStrBufs * mgr, u32 idx, struct SaveBlock2 * sav2)
{
- u16 * name = FUN_02024EE8(FUN_02024EC0(sav2));
+ u16 * name = GetRivalNamePtr(FUN_02024EC0(sav2));
CopyU16ArrayToString(mgr->tmpbuf, name);
SetStringAsPlaceholder(mgr, idx, mgr->tmpbuf, NULL);
}
diff --git a/arm9/src/trainer_data.c b/arm9/src/trainer_data.c
index 7af4b2ce..f161b302 100644
--- a/arm9/src/trainer_data.c
+++ b/arm9/src/trainer_data.c
@@ -6,11 +6,10 @@
#include "proto.h"
#include "msgdata.h"
#include "constants/trainer_classes.h"
+#include "unk_02024E64.h"
#pragma thumb on
-extern void * FUN_02024EC0(struct SaveBlock2 *);
-extern u16 * FUN_02024EE8(void *);
// Loads all battle opponents, including multi-battle partner if exists.
void EnemyTrainerSet_Init(struct BattleSetupStruct * enemies, struct SaveBlock2 * sav2, u32 heap_id)
@@ -23,7 +22,7 @@ void EnemyTrainerSet_Init(struct BattleSetupStruct * enemies, struct SaveBlock2
// FIXME: String formatting in files/msgdata/msg/narc_0559.txt is abnormal.
msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 559, heap_id);
- rivalName = FUN_02024EE8(FUN_02024EC0(sav2));
+ rivalName = GetRivalNamePtr(FUN_02024EC0(sav2));
for (i = 0; i < 4; i++)
{
if (enemies->trainer_idxs[i] != 0)
diff --git a/arm9/src/unk_02024E64.c b/arm9/src/unk_02024E64.c
new file mode 100644
index 00000000..d8682531
--- /dev/null
+++ b/arm9/src/unk_02024E64.c
@@ -0,0 +1,62 @@
+#include "unk_02024E64.h"
+
+extern void FUN_020250A4(void *param0);
+extern void FUN_02025484(void *param0);
+
+THUMB_FUNC u32 FUN_02024E64()
+{
+ return sizeof(struct UnkStruct_02024E64);
+}
+
+THUMB_FUNC void FUN_02024E6C(struct UnkStruct_02024E64 *param0)
+{
+ MIi_CpuClearFast(0, param0, sizeof(struct UnkStruct_02024E64));
+
+ FUN_020250A4(param0->unk0);
+
+ FUN_02025484(param0->unk700);
+
+ MIi_CpuClear16(0xFFFF, param0->rival_name_buf, sizeof(param0->rival_name_buf) / sizeof(u16));
+ MIi_CpuClear16(0xFFFF, param0->unk734, sizeof(param0->unk734) / sizeof(u16));
+}
+
+THUMB_FUNC struct UnkStruct_02024E64 *FUN_02024EB4(struct SaveBlock2 *sav2)
+{
+ return SavArray_get(sav2, 0xa);
+}
+
+THUMB_FUNC void *FUN_02024EC0(struct SaveBlock2 *sav2)
+{
+ return FUN_02022634(sav2, 0xa);
+}
+
+THUMB_FUNC struct UnkStruct_02024E64 *FUN_02024ECC(struct SaveBlock2 *sav2)
+{
+ return SavArray_get(sav2, 0xa);
+}
+
+THUMB_FUNC void *FUN_02024ED8(struct SaveBlock2 *sav2)
+{
+ struct UnkStruct_02024E64 *res = SavArray_get(sav2, 0xa);
+ return res->unk700;
+}
+
+THUMB_FUNC u16 *GetRivalNamePtr(struct UnkStruct_02024E64 *unk)
+{
+ return unk->rival_name_buf;
+}
+
+THUMB_FUNC void RivalsNameToU16Array(struct UnkStruct_02024E64 *unk, struct String *str)
+{
+ CopyStringToU16Array(str, unk->rival_name_buf, sizeof(unk->rival_name_buf) / sizeof(u16));
+}
+
+THUMB_FUNC u16 *FUN_02024F0C(struct UnkStruct_02024E64 *unk)
+{
+ return unk->unk734;
+}
+
+THUMB_FUNC void FUN_02024F18(struct UnkStruct_02024E64 *unk, struct String *str)
+{
+ CopyStringToU16Array(str, unk->unk734, sizeof(unk->unk734) / sizeof(u16));
+}
diff --git a/arm9/src/unk_0204AEA8.c b/arm9/src/unk_0204AEA8.c
new file mode 100644
index 00000000..9c572a8e
--- /dev/null
+++ b/arm9/src/unk_0204AEA8.c
@@ -0,0 +1,43 @@
+#include "global.h"
+#include "heap.h"
+#include "unk_0204639C.h"
+#include "unk_0204AEA8.h"
+
+extern void MOD05_021E3444(u32, struct UnkStruct_0204639C *, u32);
+extern void FUN_0200433C(u32, u16, u32);
+
+THUMB_FUNC BOOL FUN_0204AEA8(struct UnkStruct_0204639C *a0)
+{
+ struct UnkStruct_0204639C *v0 = FUN_02046528(a0);
+ u32 *v1 = FUN_0204652C(a0);
+
+ switch (v1[0])
+ {
+ case 0:
+ MOD05_021E3444(v1[2], v0, (u32)v1 + 4);
+ FUN_0200433C(5, (u16)v1[3], 1);
+ v1[0]++;
+ break;
+ case 1:
+ if (v1[1] == 1)
+ {
+ FreeToHeap(v1);
+ return TRUE;
+ }
+ break;
+ }
+
+ return FALSE;
+}
+
+THUMB_FUNC void FUN_0204AEF8(struct UnkStruct_0204639C *a0, u32 a1, u32 a2)
+{
+ u32 *v0 = AllocFromHeapAtEnd(11, 4 * sizeof(u32));
+
+ v0[0] = 0;
+ v0[1] = 0;
+ v0[2] = a1;
+ v0[3] = a2;
+
+ FUN_0204640C(a0, FUN_0204AEA8, v0);
+}