summaryrefslogtreecommitdiff
path: root/arm9/src
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-08-12 15:19:31 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2020-08-12 15:19:31 -0400
commitdda861d78ad47a85a54c4c6a2dd3f7e301e65fa5 (patch)
tree6b521d42b21dd9f932806ca5ef6c7a83c50a0b24 /arm9/src
parentca2af0a5d0cf80c38995dde9e4d05246c11128e7 (diff)
Decompile unk_02046294.s --> event_data.c
Diffstat (limited to 'arm9/src')
-rw-r--r--arm9/src/event_data.c78
-rw-r--r--arm9/src/party.c31
2 files changed, 93 insertions, 16 deletions
diff --git a/arm9/src/event_data.c b/arm9/src/event_data.c
new file mode 100644
index 00000000..cf33b201
--- /dev/null
+++ b/arm9/src/event_data.c
@@ -0,0 +1,78 @@
+#include "global.h"
+#include "save_block_2.h"
+#include "event_data.h"
+
+#pragma thumb on
+
+u8 UNK_021C5A14[8];
+
+u8 * GetFlagAddr(struct ScriptState * state, u16 flag_id);
+
+u32 SavArray_Flags_sizeof(void)
+{
+ return sizeof(struct ScriptState);
+}
+
+void SavArray_Flags_init(struct ScriptState * state)
+{
+ memset(state, 0, sizeof(struct ScriptState));
+}
+
+struct ScriptState * SavArray_Flags_get(struct SaveBlock2 * sav2)
+{
+ return (struct ScriptState *)SavArray_get(sav2, 4);
+}
+
+BOOL CheckFlagInArray(struct ScriptState * state, u16 flag_id)
+{
+ u8 * ptr = GetFlagAddr(state, flag_id);
+ if (ptr != NULL)
+ {
+ int mask = 1 << (flag_id % 8);
+ if (*ptr & mask)
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void SetFlagInArray(struct ScriptState * state, u16 flag_id)
+{
+ u8 * ptr = GetFlagAddr(state, flag_id);
+ if (ptr != NULL)
+ {
+ int mask = 1 << (flag_id % 8);
+ *ptr |= mask;
+ }
+}
+
+void ClearFlagInArray(struct ScriptState * state, u16 flag_id)
+{
+ u8 * ptr = GetFlagAddr(state, flag_id);
+ if (ptr != NULL)
+ {
+ int mask = 1 << (flag_id % 8);
+ *ptr &= 0xFF ^ mask;
+ }
+}
+
+u8 * GetFlagAddr(struct ScriptState * state, u16 flag_id)
+{
+ if (flag_id == 0)
+ return 0;
+ if (flag_id < 0x4000)
+ {
+ GF_ASSERT((flag_id / 8) < 364);
+ return &state->flags[flag_id / 8];
+ }
+ else
+ {
+ GF_ASSERT(((flag_id - 0x4000) / 8) < 8);
+ return &UNK_021C5A14[(flag_id - 0x4000) / 8];
+ }
+}
+
+u16 * GetVarAddr(struct ScriptState * state, u16 var_id)
+{
+ GF_ASSERT((var_id - 0x4000) < 288);
+ return &state->vars[var_id - 0x4000];
+}
diff --git a/arm9/src/party.c b/arm9/src/party.c
index e0eb2a93..1b9c505f 100644
--- a/arm9/src/party.c
+++ b/arm9/src/party.c
@@ -1,42 +1,41 @@
#include "global.h"
#include "party.h"
#include "heap.h"
-#include "proto.h"
#pragma thumb on
-void FUN_0206B8C0(struct PlayerParty * party);
-void FUN_0206B8CC(struct PlayerParty * party, int count);
+void SavArray_Party_init(struct PlayerParty * party);
+void InitPartyWithMaxSize(struct PlayerParty * party, int count);
-u32 FUN_0206B8A4(void)
+u32 SavArray_Party_sizeof(void)
{
return sizeof(struct PlayerParty);
}
-struct PlayerParty * FUN_0206B8AC(u32 heap_id)
+struct PlayerParty * SavArray_Party_alloc(u32 heap_id)
{
struct PlayerParty * ret = (struct PlayerParty *)AllocFromHeap(heap_id, sizeof(struct PlayerParty));
- FUN_0206B8C0(ret);
+ SavArray_Party_init(ret);
return ret;
}
-void FUN_0206B8C0(struct PlayerParty * party)
+void SavArray_Party_init(struct PlayerParty * party)
{
- FUN_0206B8CC(party, PARTY_SIZE);
+ InitPartyWithMaxSize(party, PARTY_SIZE);
}
-void FUN_0206B8CC(struct PlayerParty * party, int count)
+void InitPartyWithMaxSize(struct PlayerParty * party, int count)
{
int i;
GF_ASSERT(count <= PARTY_SIZE);
memset(party, 0, sizeof(struct PlayerParty));
party->curCount = 0;
party->maxCount = count;
- for (i = 0; i < 6; i++)
+ for (i = 0; i < PARTY_SIZE; i++)
ZeroMonData(&party->mons[i]);
}
-BOOL FUN_0206B900(struct PlayerParty * party, struct Pokemon * pokemon)
+BOOL AddMonToParty(struct PlayerParty * party, struct Pokemon * pokemon)
{
if (party->curCount >= party->maxCount)
return FALSE;
@@ -45,7 +44,7 @@ BOOL FUN_0206B900(struct PlayerParty * party, struct Pokemon * pokemon)
return TRUE;
}
-BOOL FUN_0206B938(struct PlayerParty * party, int pos)
+BOOL RemoveMonFromParty(struct PlayerParty * party, int pos)
{
int i;
@@ -77,7 +76,7 @@ struct Pokemon * GetPartyMonByIndex(struct PlayerParty * party, int pos)
return &party->mons[pos];
}
-void FUN_0206B9DC(struct PlayerParty * party, int pos, struct Pokemon * pokemon)
+void ReplacePartySlotWithMon(struct PlayerParty * party, int pos, struct Pokemon * pokemon)
{
int r2;
GF_ASSERT(pos >= 0);
@@ -88,7 +87,7 @@ void FUN_0206B9DC(struct PlayerParty * party, int pos, struct Pokemon * pokemon)
party->curCount += r2;
}
-BOOL FUN_0206BA38(struct PlayerParty * party, int pos1, int pos2)
+BOOL SwapSlotsInParty(struct PlayerParty * party, int pos1, int pos2)
{
struct Pokemon * buffer;
GF_ASSERT(pos1 >= 0);
@@ -105,7 +104,7 @@ BOOL FUN_0206BA38(struct PlayerParty * party, int pos1, int pos2)
return FALSE;
}
-void FUN_0206BAD0(struct PlayerParty * src, struct PlayerParty * dest)
+void CopyPlayerParty(struct PlayerParty * src, struct PlayerParty * dest)
{
*dest = *src;
}
@@ -121,7 +120,7 @@ BOOL PartyHasMon(struct PlayerParty * party, u16 species)
return i != party->curCount;
}
-struct PlayerParty * FUN_0206BB1C(void * ptr)
+struct PlayerParty * SavArray_PlayerParty_get(struct SaveBlock2 * ptr)
{
return (struct PlayerParty *)SavArray_get(ptr, 2);
}