summaryrefslogtreecommitdiff
path: root/arm9/src
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/src')
-rw-r--r--arm9/src/mail_message.c6
-rw-r--r--arm9/src/pokemon.c4
-rw-r--r--arm9/src/save_arrays.c8
-rw-r--r--arm9/src/script_buffers.c21
-rw-r--r--arm9/src/seal_case.c59
-rw-r--r--arm9/src/unk_020139D8.c106
6 files changed, 131 insertions, 73 deletions
diff --git a/arm9/src/mail_message.c b/arm9/src/mail_message.c
index 4d1b75c6..a5837d89 100644
--- a/arm9/src/mail_message.c
+++ b/arm9/src/mail_message.c
@@ -16,7 +16,7 @@ struct UnkStruct_020ED556
u16 unk_8;
};
-extern u16 FUN_02013A9C(s16 bank, u16 num);
+extern u16 GetECWordIndexByPair(s16 bank, u16 num);
const u16 UNK_020ED54C[] = {
397,
@@ -68,9 +68,9 @@ void MailMsg_init_fromTemplate(struct MailMessage * mailMsg, u32 a1)
MailMsg_init_withBank(mailMsg, UNK_020ED556[a1].unk_0);
mailMsg->msg_no = UNK_020ED556[a1].unk_1;
if (UNK_020ED556[a1].unk_2 != -1)
- mailMsg->fields[0] = FUN_02013A9C(UNK_020ED556[a1].unk_2, UNK_020ED556[a1].unk_4);
+ mailMsg->fields[0] = GetECWordIndexByPair(UNK_020ED556[a1].unk_2, UNK_020ED556[a1].unk_4);
if (UNK_020ED556[a1].unk_6 != -1)
- mailMsg->fields[1] = FUN_02013A9C(UNK_020ED556[a1].unk_6, UNK_020ED556[a1].unk_8);
+ mailMsg->fields[1] = GetECWordIndexByPair(UNK_020ED556[a1].unk_6, UNK_020ED556[a1].unk_8);
}
}
diff --git a/arm9/src/pokemon.c b/arm9/src/pokemon.c
index 7fe8191a..b3e53d1a 100644
--- a/arm9/src/pokemon.c
+++ b/arm9/src/pokemon.c
@@ -565,7 +565,7 @@ u32 GetMonDataInternal(struct Pokemon * pokemon, int attr, void * dest)
Mail_copy(&pokemon->party.mail, dest);
return 1;
case MON_DATA_SEAL_COORDS:
- FUN_02029C74(&pokemon->party.sealCoords, dest);
+ CapsuleArray_copy(&pokemon->party.sealCoords, dest);
return 1;
default:
return GetBoxMonDataInternal(&pokemon->box, attr, dest);
@@ -1053,7 +1053,7 @@ void SetMonDataInternal(struct Pokemon * pokemon, int attr, void * value)
Mail_copy((const struct Mail *)value, &pokemon->party.mail);
break;
case MON_DATA_SEAL_COORDS:
- FUN_02029C74((CapsuleArray *)value, &pokemon->party.sealCoords);
+ CapsuleArray_copy((CapsuleArray *)value, &pokemon->party.sealCoords);
break;
default:
SetBoxMonDataInternal(&pokemon->box, attr, value);
diff --git a/arm9/src/save_arrays.c b/arm9/src/save_arrays.c
index 43e83403..397f1f69 100644
--- a/arm9/src/save_arrays.c
+++ b/arm9/src/save_arrays.c
@@ -12,6 +12,8 @@
#include "unk_020254B8.h"
#include "daycare.h"
#include "pokedex.h"
+#include "seal.h"
+#include "unk_020139D8.h"
extern u32 FUN_0202AC20(void);
extern u32 FUN_02034D7C(void);
@@ -24,7 +26,6 @@ extern u32 FUN_02028054(void);
extern u32 FUN_02028980(void);
extern u32 FUN_02029A84(void);
extern u32 FUN_02029FB0(void);
-extern u32 FUN_02029C58(void);
extern u32 FUN_02029EC4(void);
extern u32 FUN_0202A89C(void);
extern u32 FUN_0202A8F4(void);
@@ -36,7 +37,6 @@ extern u32 FUN_020281E0(void);
extern u32 FUN_02029AE0(void);
extern u32 FUN_0202BE98(void);
extern u32 FUN_0202C0E0(void);
-extern u32 FUN_02013B28(void);
extern void FUN_0202AC28(void *);
extern void FUN_02034D98(void *);
extern void FUN_02024E6C(void *);
@@ -48,7 +48,6 @@ extern void FUN_0202805C(void *);
extern void FUN_02028994(void *);
extern void FUN_02029A8C(void *);
extern void FUN_02029FB8(void *);
-extern void FUN_02029C60(void *);
extern void FUN_02029ECC(void *);
extern void FUN_0202A8A4(void *);
extern void FUN_0202A8F8(void *);
@@ -60,7 +59,6 @@ extern void FUN_020281E8(void *);
extern void FUN_02029AE8(void *);
extern void FUN_0202BEA0(void *);
extern void FUN_0202C0E4(void *);
-extern void FUN_02013B2C(void *);
const struct SaveChunkHeader UNK_020EE6E0[] = {
{ 0, 32, (SAVSIZEFN)Sav2_HOF_sizeof, (SAVINITFN)Sav2_HOF_init },
@@ -89,7 +87,7 @@ const struct SaveChunkHeader UNK_020EE700[] = {
{ 18, 0, (SAVSIZEFN)FUN_02028980, (SAVINITFN)FUN_02028994 },
{ 19, 0, (SAVSIZEFN)FUN_02029A84, (SAVINITFN)FUN_02029A8C },
{ 20, 0, (SAVSIZEFN)FUN_02029FB0, (SAVINITFN)FUN_02029FB8 },
- { 21, 0, (SAVSIZEFN)FUN_02029C58, (SAVINITFN)FUN_02029C60 },
+ { 21, 0, (SAVSIZEFN)Sav2_SealCase_sizeof, (SAVINITFN)Sav2_SealCase_init },
{ 22, 0, (SAVSIZEFN)FUN_02029EC4, (SAVINITFN)FUN_02029ECC },
{ 23, 0, (SAVSIZEFN)FUN_0202A89C, (SAVINITFN)FUN_0202A8A4 },
{ 24, 0, (SAVSIZEFN)FUN_0202A8F4, (SAVINITFN)FUN_0202A8F8 },
diff --git a/arm9/src/script_buffers.c b/arm9/src/script_buffers.c
index c29feed3..10ec9094 100644
--- a/arm9/src/script_buffers.c
+++ b/arm9/src/script_buffers.c
@@ -9,6 +9,7 @@
#include "unk_020286F8.h"
#include "filesystem.h"
#include "unk_0201B8B8.h"
+#include "trainer_data.h"
#include "script_buffers.h"
#pragma thumb on
@@ -16,7 +17,7 @@
extern void * FUN_02024EC0(struct SaveBlock2 * sav2);
extern u16 * FUN_02024EE8(void *);
extern u32 GetCityNamesMsgdataIdByCountry(u32);
-extern void FUN_02013A58(u32 a0, struct String * a1);
+extern void GetECWordIntoStringByIndex(u32 a0, struct String * a1);
extern void FUN_02022048(struct String * dest, const struct String * src);
extern void StrAddChar(struct String * str, u16 val);
extern void * FUN_02006BB0(NarcId, s32, s32, struct UnkStruct_0200B870_sub **, u32);
@@ -374,7 +375,7 @@ void BufferTrainerClassName2(struct ScrStrBufs * mgr, u32 idx, struct Trainer *
}
}
-void FUN_0200B10C(struct ScrStrBufs * mgr, u32 idx, u32 msgno)
+void BufferTrainerName(struct ScrStrBufs * mgr, u32 idx, u32 msgno)
{
struct MsgData * msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 559, mgr->heap_id);
if (msgData != NULL)
@@ -385,9 +386,9 @@ void FUN_0200B10C(struct ScrStrBufs * mgr, u32 idx, u32 msgno)
}
}
-void FUN_0200B144(struct ScrStrBufs * mgr, u32 idx, void * unk_struct)
+void BufferTrainerNameFromDataStruct(struct ScrStrBufs * mgr, u32 idx, struct TrainerDataLoaded * trdata)
{
- CopyU16ArrayToString(mgr->tmpbuf, (u16 *)((char *)unk_struct + 20));
+ CopyU16ArrayToString(mgr->tmpbuf, trdata->name);
SetStringAsPlaceholder(mgr, idx, mgr->tmpbuf, NULL);
}
@@ -587,7 +588,7 @@ void BufferCityName(struct ScrStrBufs * mgr, u32 idx, u32 a2, u32 a3)
void FUN_0200B518(struct ScrStrBufs * mgr, u32 idx, u32 a2)
{
- FUN_02013A58(a2, mgr->tmpbuf);
+ GetECWordIntoStringByIndex(a2, mgr->tmpbuf);
SetStringAsPlaceholder(mgr, idx, mgr->tmpbuf, NULL);
}
@@ -684,7 +685,7 @@ void BufferContestBackgroundName(struct ScrStrBufs * mgr, u32 idx, u32 bg)
}
}
-void FUN_0200B708(struct ScrStrBufs * mgr, struct SaveBlock2 * sav2, u32 r5, u32 idx, u32 sp28)
+void BufferEasyChatWord(struct ScrStrBufs * mgr, struct SaveBlock2 * sav2, u32 r5, u32 idx, u32 sp28)
{
void * r6 = FUN_0202881C(sav2);
u8 sp10 = FUN_020287F8(r6, r5);
@@ -708,7 +709,7 @@ void BufferMonthNameAbbr(struct ScrStrBufs * mgr, u32 idx, u32 month)
}
}
-void FUN_0200B7A8(struct ScrStrBufs * mgr, u32 idx)
+void ScrStrBufs_UpperFirstChar(struct ScrStrBufs * mgr, u32 idx)
{
StrUpperFirstChar(mgr->array[idx].msg);
}
@@ -741,13 +742,13 @@ void StringExpandPlaceholders(struct ScrStrBufs * mgr, struct String * dest, str
}
}
-void FUN_0200B84C(struct ScrStrBufs * mgr)
+void ScrStrBufs_ResetBuffers(struct ScrStrBufs * mgr)
{
for (int i = 0; i < mgr->count; i++)
StringSetEmpty(mgr->array[i].msg);
}
-struct UnkStruct_0200B870 * FUN_0200B870(u32 r5, u32 r6, u32 sp4, u32 r4)
+struct UnkStruct_0200B870 * MessagePrinter_new(u32 r5, u32 r6, u32 sp4, u32 r4)
{
struct UnkStruct_0200B870 * sp8 = AllocFromHeap(r4, sizeof(struct UnkStruct_0200B870));
if (sp8 != NULL)
@@ -793,7 +794,7 @@ struct UnkStruct_0200B870 * FUN_0200B870(u32 r5, u32 r6, u32 sp4, u32 r4)
return sp8;
}
-void FUN_0200B990(struct UnkStruct_0200B870 * a0)
+void MessagePrinter_delete(struct UnkStruct_0200B870 * a0)
{
if (a0 != NULL)
{
diff --git a/arm9/src/seal_case.c b/arm9/src/seal_case.c
new file mode 100644
index 00000000..b1359a02
--- /dev/null
+++ b/arm9/src/seal_case.c
@@ -0,0 +1,59 @@
+#include "global.h"
+#include "save_block_2.h"
+#include "MI_memory.h"
+#include "seal.h"
+
+#pragma thumb on
+
+u32 Sav2_SealCase_sizeof(void)
+{
+ return sizeof(struct SealCase);
+}
+
+void Sav2_SealCase_init(struct SealCase * sealCase)
+{
+ MI_CpuClear8(sealCase, Sav2_SealCase_sizeof());
+}
+
+void CapsuleArray_copy(const CapsuleArray * a0, CapsuleArray * a1)
+{
+ MI_CpuCopy8(a0, a1, sizeof(CapsuleArray));
+}
+
+struct SealCase * Sav2_SealCase_get(struct SaveBlock2 * sav2)
+{
+ return (struct SealCase *)SavArray_get(sav2, 21);
+}
+
+CapsuleArray * SealCase_GetCapsuleI(struct SealCase * sealCase, s32 idx)
+{
+ GF_ASSERT(idx < 12);
+ return &sealCase->coords[idx];
+}
+
+void SealCase_SetCapsuleI(struct SealCase * sealCase, const CapsuleArray * src, s32 idx)
+{
+ GF_ASSERT(idx < 12);
+ CapsuleArray_copy(src, SealCase_GetCapsuleI(sealCase, idx));
+}
+
+Coords8 * Capsule_GetSealI(CapsuleArray * a0, s32 a1)
+{
+ GF_ASSERT(a1 < 8);
+ return &(*a0)[a1];
+}
+
+s32 Seal_GetId(Coords8 * a0)
+{
+ return (*a0)[0];
+}
+
+s32 Seal_GetXCoord(Coords8 * a0)
+{
+ return (*a0)[1];
+}
+
+s32 Seal_GetYCoord(Coords8 * a0)
+{
+ return (*a0)[2];
+}
diff --git a/arm9/src/unk_020139D8.c b/arm9/src/unk_020139D8.c
index 82c96ea9..796190b2 100644
--- a/arm9/src/unk_020139D8.c
+++ b/arm9/src/unk_020139D8.c
@@ -7,7 +7,7 @@
#pragma thumb on
-const u8 UNK_020ED5B4[][2] = {
+const u8 sNarcLanguages[][2] = {
{ LANGUAGE_JAPANESE, 0 },
{ LANGUAGE_ENGLISH, 1 },
{ LANGUAGE_FRENCH, 2 },
@@ -16,32 +16,32 @@ const u8 UNK_020ED5B4[][2] = {
{ LANGUAGE_SPANISH, 5 },
};
-const u16 UNK_020ED5C0[] = {
- 362,
- 589,
- 565,
- 553,
- 388,
- 389,
- 390,
- 391,
- 392,
- 393,
- 394
+const u16 sNarcMsgBanks[] = {
+ 362, // Species names
+ 589, // Move names
+ 565, // Type names
+ 553, // Ability names
+ 388, // Trainer
+ 389, // People
+ 390, // Greetings
+ 391, // Lifestyle
+ 392, // Feelings
+ 393, // Tough words
+ 394 // Union
};
-const u16 UNK_020ED5D6[] = {
- 496,
- 468,
- 18,
- 124,
- 38,
- 38,
- 107,
- 104,
- 47,
- 32,
- 23
+const u16 sNarcMsgCounts[] = {
+ 496, // Species names
+ 468, // Move names
+ 18, // Type names
+ 124, // Ability names
+ 38, // Trainer
+ 38, // People
+ 107, // Greetings
+ 104, // Lifestyle
+ 47, // Feelings
+ 32, // Tough words
+ 23 // Union
};
const u16 UNK_020ED580[] = { 0x04C0, 0x04F0 };
@@ -76,19 +76,19 @@ const struct UnkStruct_020ED5EC
{ UNK_020ED594, NELEMS(UNK_020ED594) },
};
-struct UnkStruct_020139D8 * FUN_020139D8(u32 heap_id)
+struct UnkStruct_020139D8 * EasyChatManager_new(u32 heap_id)
{
struct UnkStruct_020139D8 * ret = (struct UnkStruct_020139D8 *)AllocFromHeap(heap_id, sizeof(struct UnkStruct_020139D8));
s32 i;
for (i = 0; i < 11; i++)
{
ret->heap_id = heap_id; // inadvertently inside the loop
- ret->msgDatas[i] = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, UNK_020ED5C0[i], heap_id);
+ ret->msgDatas[i] = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, sNarcMsgBanks[i], heap_id);
}
return ret;
}
-void FUN_02013A10(struct UnkStruct_020139D8 * unk)
+void EasyChatManager_delete(struct UnkStruct_020139D8 * unk)
{
s32 i;
for (i = 0; i < 11; i++)
@@ -98,61 +98,61 @@ void FUN_02013A10(struct UnkStruct_020139D8 * unk)
FreeToHeap(unk);
}
-void FUN_02013A30(struct UnkStruct_020139D8 * unk, u16 a1, struct String * str)
+void EasyChatManager_ReadWordIntoString(struct UnkStruct_020139D8 * unk, u16 wordIdx, struct String * str)
{
- s32 sp4;
- s32 sp0;
- FUN_02013AEC(a1, &sp4, &sp0);
- ReadMsgDataIntoString(unk->msgDatas[sp4], (u32)sp0, str);
+ s32 msgBank;
+ s32 msgNo;
+ GetCategoryAndMsgNoByECWordIdx(wordIdx, &msgBank, &msgNo);
+ ReadMsgDataIntoString(unk->msgDatas[msgBank], (u32)msgNo, str);
}
-void FUN_02013A58(u16 a0, struct String * a1)
+void GetECWordIntoStringByIndex(u16 wordIdx, struct String * a1)
{
- s32 sp8;
- s32 sp4;
- if (a0 != 0xFFFF)
+ s32 msgBank;
+ s32 msgNo;
+ if (wordIdx != 0xFFFF)
{
- FUN_02013AEC(a0, &sp8, &sp4);
- sp8 = UNK_020ED5C0[sp8];
- ReadMsgData_NewNarc_ExistingString(NARC_MSGDATA_MSG, (u32)sp8, (u32)sp4, 0, a1);
+ GetCategoryAndMsgNoByECWordIdx(wordIdx, &msgBank, &msgNo);
+ msgBank = sNarcMsgBanks[msgBank];
+ ReadMsgData_NewNarc_ExistingString(NARC_MSGDATA_MSG, (u32)msgBank, (u32)msgNo, 0, a1);
}
else
StringSetEmpty(a1);
}
-u16 FUN_02013A9C(u16 a0, u16 a1)
+u16 GetECWordIndexByPair(u16 msgBank, u16 msgNo)
{
u32 i;
u16 k;
u16 j;
for (i = 0; i < 11; i++)
{
- if (a0 == UNK_020ED5C0[i])
+ if (msgBank == sNarcMsgBanks[i])
{
for (j = 0, k = 0; j < i; j++)
- k += UNK_020ED5D6[j];
- return (u16)(k + a1);
+ k += sNarcMsgCounts[j];
+ return (u16)(k + msgNo);
}
}
return 0xFFFF;
}
-void FUN_02013AEC(u32 a0, s32 * a1, s32 * a2)
+void GetCategoryAndMsgNoByECWordIdx(u32 wordIdx, s32 * msgBank_p, s32 * msgNo_p)
{
s32 i;
s32 j;
u32 r3;
- r3 = a0 & 0xFFF;
+ r3 = wordIdx & 0xFFF;
j = 0;
- for (i = 0; i < NELEMS(UNK_020ED5D6); i++)
+ for (i = 0; i < NELEMS(sNarcMsgCounts); i++)
{
- j += UNK_020ED5D6[i];
+ j += sNarcMsgCounts[i];
if (r3 < j)
{
- *a1 = i;
- *a2 = (s32)(r3 - (j - UNK_020ED5D6[i]));
+ *msgBank_p = i;
+ *msgNo_p = (s32)(r3 - (j - sNarcMsgCounts[i]));
return;
}
}
@@ -170,9 +170,9 @@ void FUN_02013B2C(struct UnkStruct_02013B28 * unk)
unk->unk_4 = 0;
for (i = 0; i < 6; i++)
{
- if (UNK_020ED5B4[i][0] == GAME_LANGUAGE)
+ if (sNarcLanguages[i][0] == GAME_LANGUAGE)
{
- FUN_02013C18(unk, UNK_020ED5B4[i][1]);
+ FUN_02013C18(unk, sNarcLanguages[i][1]);
break;
}
}
@@ -233,7 +233,7 @@ u16 FUN_02013BE4(u16 a0)
s32 i;
u16 skip = 0;
for (i = 0; i < 9; i++)
- skip += UNK_020ED5D6[i];
+ skip += sNarcMsgCounts[i];
return (u16)(skip + a0);
}