summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/pokenav.c3
-rw-r--r--src/pokenav_unk_1.c231
2 files changed, 137 insertions, 97 deletions
diff --git a/src/pokenav.c b/src/pokenav.c
index a5fb155da..e3a2d5256 100644
--- a/src/pokenav.c
+++ b/src/pokenav.c
@@ -596,7 +596,8 @@ void SetPokenavVBlankCallback(void)
void *AllocSubstruct(u32 index, u32 size)
{
- return gPokenavResources->field10[index] = Alloc(size);
+ gPokenavResources->field10[index] = Alloc(size);
+ return gPokenavResources->field10[index];
}
void *GetSubstructPtr(u32 index)
diff --git a/src/pokenav_unk_1.c b/src/pokenav_unk_1.c
index 9c8eda0a2..f88ba8f34 100644
--- a/src/pokenav_unk_1.c
+++ b/src/pokenav_unk_1.c
@@ -15,126 +15,116 @@ struct Pokenav1Struct
u32 (*unkC)(struct Pokenav1Struct*);
};
+static bool32 sub_81C9814(struct Pokenav1Struct *a0);
+static void sub_81C97F8(struct Pokenav1Struct *a0);
+static void sub_81C97C0(struct Pokenav1Struct *a0);
+static u32 sub_81C97BC(struct Pokenav1Struct *a0);
+static void sub_81C97B0(struct Pokenav1Struct *a0, u32 a1);
+static u32 sub_81C97A4(struct Pokenav1Struct *a0);
+static u32 sub_81C9798(struct Pokenav1Struct *a0);
+static u32 sub_81C96FC(struct Pokenav1Struct *a0);
+static u32 sub_81C963C(struct Pokenav1Struct *a0);
+static u32 sub_81C9600(struct Pokenav1Struct *a0);
+static u32 sub_81C9588(struct Pokenav1Struct *a0);
+static u32 sub_81C9520(struct Pokenav1Struct *a0);
+static u32 sub_81C943C(struct Pokenav1Struct *a0);
+static u32 (*sub_81C93EC(void))(struct Pokenav1Struct*);
+static void sub_81C939C(struct Pokenav1Struct *state);
+
+static const u8 sUnknown_0861FC54[] = {2, 3, 4, 2, 5};
+
+static const u8 sUnknown_0861FC59[][6] =
+{
+ { 0, 1, 4, 4, 4, 4 },
+ { 0, 1, 2, 4, 4, 4 },
+ { 0, 1, 2, 3, 4, 4 },
+ { 5, 6, 7, 4, 4, 4 },
+ { 8, 9, 10, 11, 12, 13 },
+};
-extern u32 sub_81C76AC(void);
-extern void sub_81C7694(u32 a0);
-
-u32 sub_81C9814(void);
-void sub_81C97F8(struct Pokenav1Struct *a0);
-void sub_81C97C0(struct Pokenav1Struct *a0);
-u32 sub_81C97BC(struct Pokenav1Struct *a0);
-void sub_81C97B0(struct Pokenav1Struct *a0, u32 a1);
-u32 sub_81C97A4(struct Pokenav1Struct *a0);
-u32 sub_81C9798(struct Pokenav1Struct *a0);
-u32 sub_81C96FC(struct Pokenav1Struct *a0);
-u32 sub_81C963C(struct Pokenav1Struct *a0);
-u32 sub_81C9600(struct Pokenav1Struct *a0);
-u32 sub_81C9588(struct Pokenav1Struct *a0);
-u32 sub_81C9520(struct Pokenav1Struct *a0);
-u32 sub_81C943C(struct Pokenav1Struct *a0);
-u32 (*sub_81C93EC(void))(struct Pokenav1Struct*);
-void sub_81C939C(struct Pokenav1Struct *state);
-
-extern u8 gUnknown_0861FC54[];
-extern u8 gUnknown_0861FC59[];
-
-u8 sub_81C9268(void)
+static u8 sub_81C9268(void)
{
- u32 ret = 0;
+ u8 retVal = 0;
if (FlagGet(FLAG_ADDED_MATCH_CALL_TO_POKENAV))
{
- ret = 1;
+ retVal = 1;
if (FlagGet(FLAG_SYS_RIBBON_GET))
- ret = 2;
+ retVal = 2;
}
- return ret;
+ return retVal;
}
-u32 sub_81C9298(void)
+bool32 sub_81C9298(void)
{
struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct));
-
- if (state == NULL)
- return 0;
+ if (!state)
+ return FALSE;
state->unk0 = sub_81C9268();
state->unk2 = 0;
state->unk4 = 0;
state->unk6 = 0;
sub_81C939C(state);
-
- return 1;
+ return TRUE;
}
-u32 sub_81C92CC(void)
+bool32 sub_81C92CC(void)
{
struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct));
- u8 v0;
-
- if (state == NULL)
- return 0;
+ if (!state)
+ return FALSE;
state->unk0 = sub_81C9268();
state->unk2 = 2;
state->unk4 = 2;
state->unk6 = 0;
sub_81C939C(state);
-
- return 1;
+ return TRUE;
}
-u32 sub_81C9304(void)
+bool32 sub_81C9304(void)
{
struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct));
- u8 v0;
-
- if (state == NULL)
- return 0;
+ if (!state)
+ return FALSE;
state->unk0 = sub_81C9268();
state->unk2 = 3;
state->unk4 = 3;
sub_81C939C(state);
-
- return 1;
+ return TRUE;
}
-u32 sub_81C9338(void)
+bool32 sub_81C9338(void)
{
struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct));
- u8 v0;
-
- if (state == NULL)
- return 0;
+ if (!state)
+ return FALSE;
state->unk0 = 3;
state->unk2 = 0;
state->unk4 = 5;
state->unk6 = 0;
sub_81C939C(state);
-
- return 1;
+ return TRUE;
}
-u32 sub_81C9368(void)
+bool32 sub_81C9368(void)
{
struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct));
- u8 v0;
-
- if (state == NULL)
- return 0;
+ if (!state)
+ return FALSE;
state->unk0 = 4;
state->unk2 = sub_81C76AC();
- state->unk4 = 8 + state->unk2;
+ state->unk4 = state->unk2 + 8;
state->unk6 = 0;
sub_81C939C(state);
-
- return 1;
+ return TRUE;
}
-void sub_81C939C(struct Pokenav1Struct *state)
+static void sub_81C939C(struct Pokenav1Struct *state)
{
switch (state->unk0)
{
@@ -154,7 +144,7 @@ void sub_81C939C(struct Pokenav1Struct *state)
}
}
-u32 (*sub_81C93EC(void))(struct Pokenav1Struct*)
+static u32 (*sub_81C93EC(void))(struct Pokenav1Struct*)
{
switch (GetPokenavMode())
{
@@ -179,14 +169,14 @@ void sub_81C9430(void)
FreePokenavSubstruct(1);
}
-u32 sub_81C943C(struct Pokenav1Struct *a0)
+static u32 sub_81C943C(struct Pokenav1Struct *a0)
{
- if (sub_81C9814() != 0)
+ if (sub_81C9814(a0))
return 1;
if (gMain.newKeys & A_BUTTON)
{
- switch (gUnknown_0861FC59[a0->unk2 + a0->unk0 * 6])
+ switch (sUnknown_0861FC59[a0->unk0][a0->unk2])
{
case 0:
a0->unk6 = gSaveBlock2Ptr->regionMapZoom ? 2 : 1;
@@ -195,7 +185,7 @@ u32 sub_81C943C(struct Pokenav1Struct *a0)
case 1:
a0->unk0 = 3;
a0->unk2 = 0;
- a0->unk4 = gUnknown_0861FC59[18];
+ a0->unk4 = sUnknown_0861FC59[3][0];
a0->unkC = sub_81C963C;
return 2;
case 2:
@@ -225,14 +215,14 @@ u32 sub_81C943C(struct Pokenav1Struct *a0)
return 0;
}
-u32 sub_81C9520(struct Pokenav1Struct *a0)
+static u32 sub_81C9520(struct Pokenav1Struct *a0)
{
- if (sub_81C9814() != 0)
+ if (sub_81C9814(a0))
return 1;
if (gMain.newKeys & A_BUTTON)
{
- if (gUnknown_0861FC59[a0->unk2 + a0->unk0 * 6] == 2)
+ if (sUnknown_0861FC59[a0->unk0][a0->unk2] == 2)
{
a0->unk6 = 6;
sub_81C97B0(a0, UNKNOWN_POKENAV_OFFSET + 11);
@@ -254,14 +244,14 @@ u32 sub_81C9520(struct Pokenav1Struct *a0)
return 0;
}
-u32 sub_81C9588(struct Pokenav1Struct *a0)
+static u32 sub_81C9588(struct Pokenav1Struct *a0)
{
- if (sub_81C9814() != 0)
+ if (sub_81C9814(a0))
return 1;
if (gMain.newKeys & A_BUTTON)
{
- u32 v0 = gUnknown_0861FC59[a0->unk2 + a0->unk0 * 6];
+ u32 v0 = sUnknown_0861FC59[a0->unk0][a0->unk2];
if (v0 != 2 && v0 != 4)
{
PlaySE(SE_HAZURE);
@@ -285,9 +275,9 @@ u32 sub_81C9588(struct Pokenav1Struct *a0)
return 0;
}
-u32 sub_81C9600(struct Pokenav1Struct *a0)
+static u32 sub_81C9600(struct Pokenav1Struct *a0)
{
- if (sub_81C9814() != 0)
+ if (sub_81C9814(a0))
{
a0->unkC = sub_81C93EC();
return 1;
@@ -302,20 +292,20 @@ u32 sub_81C9600(struct Pokenav1Struct *a0)
return 0;
}
-u32 sub_81C963C(struct Pokenav1Struct *a0)
+static u32 sub_81C963C(struct Pokenav1Struct *a0)
{
- u32 v0 = sub_81C9814();
+ u32 v0 = sub_81C9814(a0);
if (v0)
return 1;
if (gMain.newKeys & A_BUTTON)
{
- switch (gUnknown_0861FC59[a0->unk2 + a0->unk0 * 6])
+ switch (sUnknown_0861FC59[a0->unk0][a0->unk2])
{
case 6:
a0->unk0 = 4;
a0->unk2 = v0;
- a0->unk4 = gUnknown_0861FC59[24];
+ a0->unk4 = sUnknown_0861FC59[4][0];
a0->unkC = sub_81C96FC;
return 4;
case 5:
@@ -330,9 +320,9 @@ u32 sub_81C963C(struct Pokenav1Struct *a0)
}
if (gMain.newKeys & B_BUTTON)
{
- if (a0->unk2 != gUnknown_0861FC54[a0->unk0])
+ if (a0->unk2 != sUnknown_0861FC54[a0->unk0])
{
- a0->unk2 = gUnknown_0861FC54[a0->unk0];
+ a0->unk2 = sUnknown_0861FC54[a0->unk0];
a0->unkC = sub_81C9798;
return 1;
}
@@ -347,14 +337,14 @@ u32 sub_81C963C(struct Pokenav1Struct *a0)
return 0;
}
-u32 sub_81C96FC(struct Pokenav1Struct *a0)
+static u32 sub_81C96FC(struct Pokenav1Struct *a0)
{
- if (sub_81C9814())
+ if (sub_81C9814(a0))
return 1;
if (gMain.newKeys & A_BUTTON)
{
- u8 v0 = gUnknown_0861FC59[a0->unk2 + a0->unk0 * 6];
+ u8 v0 = sUnknown_0861FC59[a0->unk0][a0->unk2];
if (v0 != 13)
{
sub_81C7694(v0 - 8);
@@ -371,9 +361,9 @@ u32 sub_81C96FC(struct Pokenav1Struct *a0)
}
if (gMain.newKeys & B_BUTTON)
{
- if (a0->unk2 != gUnknown_0861FC54[a0->unk0])
+ if (a0->unk2 != sUnknown_0861FC54[a0->unk0])
{
- a0->unk2 = gUnknown_0861FC54[a0->unk0];
+ a0->unk2 = sUnknown_0861FC54[a0->unk0];
a0->unkC = sub_81C97A4;
return 1;
}
@@ -387,41 +377,90 @@ u32 sub_81C96FC(struct Pokenav1Struct *a0)
return 0;
}
-u32 sub_81C9798(struct Pokenav1Struct *a0)
+static u32 sub_81C9798(struct Pokenav1Struct *a0)
{
sub_81C97C0(a0);
return 3;
}
-u32 sub_81C97A4(struct Pokenav1Struct *a0)
+static u32 sub_81C97A4(struct Pokenav1Struct *a0)
{
sub_81C97F8(a0);
return 5;
}
-void sub_81C97B0(struct Pokenav1Struct *a0, u32 a1)
+static void sub_81C97B0(struct Pokenav1Struct *a0, u32 a1)
{
a0->unk8 = a1;
a0->unkC = sub_81C97BC;
}
-u32 sub_81C97BC(struct Pokenav1Struct *a0)
+static u32 sub_81C97BC(struct Pokenav1Struct *a0)
{
return a0->unk8;
}
-void sub_81C97C0(struct Pokenav1Struct *a0)
+static void sub_81C97C0(struct Pokenav1Struct *a0)
{
a0->unk0 = sub_81C9268();
a0->unk2 = 1;
- a0->unk4 = gUnknown_0861FC59[a0->unk2 + a0->unk0 * 6];
+ a0->unk4 = sUnknown_0861FC59[a0->unk0][a0->unk2];
a0->unkC = sub_81C943C;
}
-void sub_81C97F8(struct Pokenav1Struct *a0)
+static void sub_81C97F8(struct Pokenav1Struct *a0)
{
a0->unk0 = 3;
a0->unk2 = 1;
- a0->unk4 = gUnknown_0861FC59[19];
+ a0->unk4 = sUnknown_0861FC59[3][1];
a0->unkC = sub_81C963C;
-} \ No newline at end of file
+}
+
+static bool32 sub_81C9814(struct Pokenav1Struct *a0)
+{
+ if (gMain.newKeys & DPAD_UP)
+ {
+ if (--a0->unk2 < 0)
+ a0->unk2 = sUnknown_0861FC54[a0->unk0];
+
+ a0->unk4 = sUnknown_0861FC59[a0->unk0][a0->unk2];
+ return TRUE;
+ }
+ else if (gMain.newKeys & DPAD_DOWN)
+ {
+ a0->unk2++;
+ if (a0->unk2 > sUnknown_0861FC54[a0->unk0])
+ a0->unk2 = 0;
+
+ a0->unk4 = sUnknown_0861FC59[a0->unk0][a0->unk2];
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+int sub_81C9894(void)
+{
+ struct Pokenav1Struct *state = GetSubstructPtr(1);
+ return state->unk0;
+}
+
+int sub_81C98A4(void)
+{
+ struct Pokenav1Struct *state = GetSubstructPtr(1);
+ return state->unk2;
+}
+
+int sub_81C98B4(void)
+{
+ struct Pokenav1Struct *state = GetSubstructPtr(1);
+ return state->unk4;
+}
+
+int sub_81C98C4(void)
+{
+ struct Pokenav1Struct *state = GetSubstructPtr(1);
+ return state->unk6;
+}