Split PokenavMatchCallEntries from PokenavMonList

This commit is contained in:
GriffinR 2019-12-15 10:25:47 -05:00
parent 47b0d8a597
commit a04347816f
8 changed files with 54 additions and 60 deletions

View File

@ -7,14 +7,42 @@
typedef u32 (*LoopedTask)(s32 state);
// TODO: This struct is also used generally by Match Call, should probably be renamed
struct PokenavMonList
{
u8 id1;
u8 id2;
u8 boxId;
u8 monId;
u16 data;
};
struct PokenavMatchCallEntries
{
bool8 isSpecialTrainer;
u8 mapSec;
u16 headerId;
};
struct PokenavListTemplate
{
union {
struct PokenavMonList *monList;
struct PokenavMatchCallEntries *matchCallEntries;
} list;
u16 unk4;
u16 unk6;
u8 unk8;
u8 unk9;
u8 unkA;
u8 unkB;
u8 unkC;
u8 unkD;
u8 unkE;
union {
void (*unk10_1)(struct PokenavMonList *, u8 *a1);
void (*unk10_2)(struct PokenavMatchCallEntries *, u8 *a1);
} listFunc;
void (*unk14)(u16 a0, u32 a1, u32 a2);
};
struct PokenavSub18
{
u16 unk0;
@ -161,22 +189,6 @@ void SetPokenavVBlankCallback(void);
void SetVBlankCallback_(IntrCallback callback);
// pokenav_match_call_ui.c
struct MatchCallListTemplate
{
struct PokenavMonList * unk0;
u16 unk4;
u16 unk6;
u8 unk8;
u8 unk9;
u8 unkA;
u8 unkB;
u8 unkC;
u8 unkD;
u8 unkE;
void (*unk10)(struct PokenavMonList *, u8 *a1);
void (*unk14)(u16 a0, u32 a1, u32 a2);
};
u32 GetSelectedMatchCall(void);
bool32 sub_81C8224(void);
int MatchCall_MoveCursorUp(void);
@ -191,7 +203,7 @@ bool32 sub_81C8820(void);
void PrintCheckPageInfo(s16 a0);
u32 GetMatchCallListTopIndex(void);
void sub_81C87F0(void);
bool32 sub_81C81D4(const struct BgTemplate *arg0, struct MatchCallListTemplate *arg1, s32 arg2);
bool32 sub_81C81D4(const struct BgTemplate *arg0, struct PokenavListTemplate *arg1, s32 arg2);
void sub_81C8234(void);
// pokenav_match_call_data.c
@ -263,7 +275,7 @@ void sub_81CAB38(void);
int sub_81CAE28(void);
int GetNumberRegistered(void);
int sub_81CAE48(void);
struct PokenavMonList *sub_81CAE94(void);
struct PokenavMatchCallEntries *sub_81CAE94(void);
u16 GetMatchCallMapSec(int);
bool32 ShouldDrawRematchPokeballIcon(int index);
void ClearRematchPokeballIcon(u16 windowId, u32 a1);
@ -272,7 +284,7 @@ const u8 *GetMatchCallFlavorText(int index, int textType);
const u8 *GetMatchCallMessageText(int index, u8 *arg1);
u16 GetMatchCallOptionCursorPos(void);
u16 GetMatchCallOptionId(int arg0);
void BufferMatchCallNameAndDesc(struct PokenavMonList * arg0, u8 *str);
void BufferMatchCallNameAndDesc(struct PokenavMatchCallEntries * arg0, u8 *str);
u8 sub_81CB0C8(int rematchIndex);
int GetIndexDeltaOfNextCheckPageDown(int index);
int GetIndexDeltaOfNextCheckPageUp(int index);

View File

@ -46,7 +46,7 @@ struct PokenavSub17Substruct
u32 unk28;
s32 unk2C;
u32 unk30;
void (*unk34)(struct PokenavMonList *, u8*);
void (*unk34)(struct PokenavMatchCallEntries *, u8*);
void (*unk38)(u16, u32, u32);
struct Sprite *rightArrow;
struct Sprite *upArrow;
@ -67,8 +67,8 @@ struct PokenavSub17
extern void sub_81DB620(u32 windowId, u32 a1, u32 a2, u32 a3, u32 a4);
void sub_81C82E4(struct PokenavSub17 *a0);
bool32 sub_81C91AC(struct PokenavSub17Substruct *a0, const struct BgTemplate *a1, struct MatchCallListTemplate *a2, s32 a3);
void sub_81C9160(struct MatchCallWindowState *a0, struct MatchCallListTemplate *a1);
bool32 sub_81C91AC(struct PokenavSub17Substruct *a0, const struct BgTemplate *a1, struct PokenavListTemplate *a2, s32 a3);
void sub_81C9160(struct MatchCallWindowState *a0, struct PokenavListTemplate *a1);
void SpriteCB_MatchCallUpArrow(struct Sprite *sprite);
void SpriteCB_MatchCallDownArrow(struct Sprite *sprite);
void SpriteCB_MatchCallRightArrow(struct Sprite *sprite);
@ -98,7 +98,7 @@ static const u32 sMatchcallArrowSpriteSheetData[] = INCBIN_U32("graphics/pokenav
EWRAM_DATA u32 gUnknown_0203CF44 = 0;
bool32 sub_81C81D4(const struct BgTemplate *arg0, struct MatchCallListTemplate *arg1, s32 arg2)
bool32 sub_81C81D4(const struct BgTemplate *arg0, struct PokenavListTemplate *arg1, s32 arg2)
{
struct PokenavSub17 *structPtr = AllocSubstruct(17, sizeof(struct PokenavSub17));
if (structPtr == NULL)
@ -934,9 +934,9 @@ void ToggleMatchCallVerticalArrows(bool32 shouldHide)
structPtr->unk0.downArrow->data[7] = shouldHide;
}
void sub_81C9160(struct MatchCallWindowState *a0, struct MatchCallListTemplate *a1)
void sub_81C9160(struct MatchCallWindowState *a0, struct PokenavListTemplate *a1)
{
a0->unk10 = a1->unk0;
a0->unk10 = a1->list.matchCallEntries;
a0->windowTopIndex = a1->unk6;
a0->listLength = a1->unk4;
a0->unkC = a1->unk8;
@ -962,13 +962,13 @@ void sub_81C9160(struct MatchCallWindowState *a0, struct MatchCallListTemplate *
}
}
bool32 sub_81C91AC(struct PokenavSub17Substruct *a0, const struct BgTemplate *a1, struct MatchCallListTemplate *a2, s32 a3)
bool32 sub_81C91AC(struct PokenavSub17Substruct *a0, const struct BgTemplate *a1, struct PokenavListTemplate *a2, s32 a3)
{
struct WindowTemplate window;
a0->unk0.bg = a1->bg;
a0->unk0.unk6 = a3;
a0->unk34 = a2->unk10;
a0->unk34 = a2->listFunc.unk10_2;
a0->unk38 = a2->unk14;
a0->unk0.unk1 = a2->unkD;
a0->unk0.unk2 = a2->unk9;

View File

@ -13,9 +13,6 @@
#include "window.h"
#include "constants/songs.h"
#define boxId id1 // naming multi-purpose field
#define monId id2 // naming multi-purpose field
struct PokenavSub13
{
u8 filler0[0x8];

View File

@ -15,11 +15,6 @@
#include "constants/flags.h"
#include "constants/songs.h"
// naming multi-purpose fields
#define isSpecialTrainer id1 // Entries with their own match call header in pokenav_match_call_data.c
#define mapSec id2
#define headerId data
struct Pokenav3Struct
{
u16 optionCursorPos;
@ -31,7 +26,7 @@ struct Pokenav3Struct
u32 unk10;
u32 unk14;
u32 (*callback)(struct Pokenav3Struct*);
struct PokenavMonList matchCallEntries[MAX_REMATCH_ENTRIES - 1];
struct PokenavMatchCallEntries matchCallEntries[MAX_REMATCH_ENTRIES - 1];
};
static u32 CB2_HandleMatchCallInput(struct Pokenav3Struct *);
@ -304,7 +299,7 @@ int unref_sub_81CAE6C(int arg0)
return state->matchCallEntries[arg0].headerId;
}
struct PokenavMonList *sub_81CAE94(void)
struct PokenavMatchCallEntries *sub_81CAE94(void)
{
struct Pokenav3Struct *state = GetSubstructPtr(5);
return state->matchCallEntries;
@ -400,7 +395,7 @@ u16 GetMatchCallOptionId(int optionId)
return state->matchCallOptions[optionId];
}
void BufferMatchCallNameAndDesc(struct PokenavMonList *matchCallEntry, u8 *str)
void BufferMatchCallNameAndDesc(struct PokenavMatchCallEntries *matchCallEntry, u8 *str)
{
const u8 *trainerName;
const u8 *className;

View File

@ -865,8 +865,8 @@ u32 ExitMatchCall(s32 taskState)
static void sub_81CBBB8(void)
{
struct MatchCallListTemplate template;
template.unk0 = sub_81CAE94();
struct PokenavListTemplate template;
template.list.matchCallEntries = sub_81CAE94();
template.unk4 = GetNumberRegistered();
template.unk8 = 4;
template.unk6 = 0;
@ -876,7 +876,7 @@ static void sub_81CBBB8(void)
template.unkC = 8;
template.unkD = 3;
template.unkE = 7;
template.unk10 = BufferMatchCallNameAndDesc;
template.listFunc.unk10_2 = BufferMatchCallNameAndDesc;
template.unk14 = TryDrawRematchPokeballIcon;
sub_81C81D4(&gUnknown_0862278C[2], &template, 2);
CreateTask(sub_81CBC64, 7);

View File

@ -14,9 +14,6 @@
#include "constants/songs.h"
#include "constants/species.h"
#define boxId id1 // naming multi-purpose field
#define monId id2 // naming multi-purpose field
struct PokenavSub11
{
u32 monPal[3][0x20];

View File

@ -10,10 +10,6 @@
#include "international_string_util.h"
#include "constants/songs.h"
#define boxId id1 // naming multi-purpose field
#define monId id2 // naming multi-purpose field
struct PokenavSub7
{
u32 (*unk0)(struct PokenavSub7 *);
@ -655,8 +651,8 @@ static void sub_81CF7F4(struct PokenavSub8 * ptr)
static void sub_81CF88C(void)
{
struct MatchCallListTemplate template;
template.unk0 = sub_81CF0D0();
struct PokenavListTemplate template;
template.list.monList = sub_81CF0D0();
template.unk4 = sub_81CF0E0();
template.unk8 = 4;
template.unk6 = sub_81CF10C();
@ -666,7 +662,7 @@ static void sub_81CF88C(void)
template.unkC = 8;
template.unkD = 2;
template.unkE = 1;
template.unk10 = sub_81CF8E4;
template.listFunc.unk10_1 = sub_81CF8E4;
template.unk14 = NULL;
sub_81C81D4(&gUnknown_08623590[1], &template, 0);
}

View File

@ -8,9 +8,6 @@
#include "international_string_util.h"
#include "constants/songs.h"
#define boxId id1 // naming multi-purpose field
#define monId id2 // naming multi-purpose field
struct PokenavSub9
{
u32 (*unk0)(struct PokenavSub9*);
@ -668,8 +665,8 @@ static void sub_81D02B0(s32 windowId, s32 val1, s32 val2)
static void sub_81D0304(void)
{
struct MatchCallListTemplate template;
template.unk0 = sub_81CFB28();
struct PokenavListTemplate template;
template.list.monList = sub_81CFB28();
template.unk4 = sub_81CFB38();
template.unk8 = 4;
template.unk6 = sub_81CFB64();
@ -679,7 +676,7 @@ static void sub_81D0304(void)
template.unkC = 8;
template.unkD = 2;
template.unkE = 1;
template.unk10 = sub_81D035C;
template.listFunc.unk10_1 = sub_81D035C;
template.unk14 = NULL;
sub_81C81D4(&gUnknown_086237B0[1], &template, 0);
}