Some more pokenav

This commit is contained in:
DizzyEggg
2019-07-25 21:41:02 +02:00
parent fd07c608fc
commit 56b124fdec
6 changed files with 132 additions and 227 deletions

View File

@@ -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;
}

View File

@@ -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);

115
src/pokenav_unk_8.c Normal file
View File

@@ -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;
}