summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDizzyEggg <jajkodizzy@wp.pl>2019-07-25 21:41:02 +0200
committerDizzyEggg <jajkodizzy@wp.pl>2019-07-25 21:41:02 +0200
commit56b124fdecd3fab46eca856b80a5582235eb5abe (patch)
tree21e162d808aa76ddbda0903f318d454e82a54b41 /src
parentfd07c608fc1c08294914c22833aeba2f077e6cf0 (diff)
Some more pokenav
Diffstat (limited to 'src')
-rw-r--r--src/pokenav.c4
-rw-r--r--src/pokenav_unk_6.c12
-rw-r--r--src/pokenav_unk_8.c115
3 files changed, 117 insertions, 14 deletions
diff --git a/src/pokenav.c b/src/pokenav.c
index be3826bed..132e4123b 100644
--- a/src/pokenav.c
+++ b/src/pokenav.c
@@ -318,7 +318,7 @@ void Task_RunLoopedTask_LinkMode(u8 taskId)
if (sub_8087598())
return;
-
+
task = (LoopedTask)GetWordTaskArg(taskId, 1);
state = &gTasks[taskId].data[0];
action = task(*state);
@@ -605,7 +605,7 @@ void sub_81C7694(u32 a0)
gPokenavResources->fieldA = value;
}
-u16 sub_81C76AC(void)
+u32 sub_81C76AC(void)
{
return gPokenavResources->fieldA;
}
diff --git a/src/pokenav_unk_6.c b/src/pokenav_unk_6.c
index 0fe5f7a8f..638884d3f 100644
--- a/src/pokenav_unk_6.c
+++ b/src/pokenav_unk_6.c
@@ -35,18 +35,6 @@ struct PokenavSub11
u8 unk678A;
};
-struct PokenavSub18
-{
- u16 unk0;
- u16 unk2;
- struct
- {
- u8 boxId;
- u8 monId;
- u16 unk6;
- } unk4[TOTAL_BOXES_COUNT * IN_BOX_COUNT + PARTY_SIZE];
-};
-
void sub_81CD970(void);
void sub_81CD9F8(void);
u32 sub_81CD08C(struct PokenavSub11 *structPtr);
diff --git a/src/pokenav_unk_8.c b/src/pokenav_unk_8.c
new file mode 100644
index 000000000..56ffd0f0a
--- /dev/null
+++ b/src/pokenav_unk_8.c
@@ -0,0 +1,115 @@
+#include "global.h"
+#include "pokenav.h"
+
+struct PokenavSub7
+{
+ u32 (*unk0)(struct PokenavSub7 *);
+ u32 loopedTaskId;
+ u8 fill1[12];
+ u32 unk14;
+ u32 unk18;
+ u32 unk1C;
+ struct PokenavSub18 *unkPtr;
+};
+
+extern const u32 gUnknown_086233A0[];
+
+u32 sub_81CF010(struct PokenavSub7 *structPtr);
+u32 sub_81CF030(struct PokenavSub7 *structPtr);
+u32 sub_81CF0B8(struct PokenavSub7 *structPtr);
+u32 sub_81CF0B0(struct PokenavSub7 *structPtr);
+u32 sub_81CF11C(s32 state);
+
+bool32 sub_81CEF3C(void)
+{
+ struct PokenavSub7 *structPtr = AllocSubstruct(7, sizeof(struct PokenavSub7));
+ if (structPtr == NULL)
+ return FALSE;
+
+ structPtr->unkPtr = AllocSubstruct(18, sizeof(struct PokenavSub18));
+ if (structPtr->unkPtr == NULL)
+ return FALSE;
+
+ structPtr->unk0 = sub_81CF010;
+ structPtr->loopedTaskId = CreateLoopedTask(sub_81CF11C, 1);
+ structPtr->unk18 = 0;
+ structPtr->unk14 = gUnknown_086233A0[sub_81C76AC()];
+ return TRUE;
+}
+
+bool32 sub_81CEF98(void)
+{
+ struct PokenavSub7 *structPtr = AllocSubstruct(7, sizeof(struct PokenavSub7));
+ if (structPtr == NULL)
+ return FALSE;
+
+ structPtr->unkPtr = GetSubstructPtr(18);
+ structPtr->unk0 = sub_81CF030;
+ structPtr->unk18 = 1;
+ structPtr->unk14 = gUnknown_086233A0[sub_81C76AC()];
+ return TRUE;
+}
+
+u32 sub_81CEFDC(void)
+{
+ struct PokenavSub7 *structPtr = GetSubstructPtr(7);
+ return structPtr->unk0(structPtr);
+}
+
+void sub_81CEFF0(void)
+{
+ struct PokenavSub7 *structPtr = GetSubstructPtr(7);
+ if (structPtr->unk1C == 0)
+ FreePokenavSubstruct(18);
+ FreePokenavSubstruct(7);
+}
+
+bool32 sub_81CF010(struct PokenavSub7 *structPtr)
+{
+ if (!IsLoopedTaskActive(structPtr->loopedTaskId))
+ structPtr->unk0 = sub_81CF030;
+ return FALSE;
+}
+
+u32 sub_81CF030(struct PokenavSub7 *structPtr)
+{
+ if (gMain.newAndRepeatedKeys & DPAD_UP)
+ return 1;
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ return 2;
+ else if (gMain.newKeys & DPAD_LEFT)
+ return 3;
+ else if (gMain.newKeys & DPAD_RIGHT)
+ return 4;
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ structPtr->unk1C = 0;
+ structPtr->unk0 = sub_81CF0B0;
+ return 5;
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ structPtr->unkPtr->unk2 = GetSelectedMatchCall();
+ structPtr->unk1C = 1;
+ structPtr->unk0 = sub_81CF0B8;
+ return 6;
+ }
+ else
+ return 0;
+}
+
+u32 sub_81CF0B0(struct PokenavSub7 *structPtr)
+{
+ return 0x186A3;
+}
+
+u32 sub_81CF0B8(struct PokenavSub7 *structPtr)
+{
+ return 0x186A9;
+}
+
+u32 sub_81CF0C0(void)
+{
+ struct PokenavSub7 *structPtr = GetSubstructPtr(7);
+ return structPtr->unk18;
+}