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
+34 -22
View File
@@ -7,14 +7,42 @@
typedef u32 (*LoopedTask)(s32 state); typedef u32 (*LoopedTask)(s32 state);
// TODO: This struct is also used generally by Match Call, should probably be renamed
struct PokenavMonList struct PokenavMonList
{ {
u8 id1; u8 boxId;
u8 id2; u8 monId;
u16 data; 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 struct PokenavSub18
{ {
u16 unk0; u16 unk0;
@@ -161,22 +189,6 @@ void SetPokenavVBlankCallback(void);
void SetVBlankCallback_(IntrCallback callback); void SetVBlankCallback_(IntrCallback callback);
// pokenav_match_call_ui.c // 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); u32 GetSelectedMatchCall(void);
bool32 sub_81C8224(void); bool32 sub_81C8224(void);
int MatchCall_MoveCursorUp(void); int MatchCall_MoveCursorUp(void);
@@ -191,7 +203,7 @@ bool32 sub_81C8820(void);
void PrintCheckPageInfo(s16 a0); void PrintCheckPageInfo(s16 a0);
u32 GetMatchCallListTopIndex(void); u32 GetMatchCallListTopIndex(void);
void sub_81C87F0(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); void sub_81C8234(void);
// pokenav_match_call_data.c // pokenav_match_call_data.c
@@ -263,7 +275,7 @@ void sub_81CAB38(void);
int sub_81CAE28(void); int sub_81CAE28(void);
int GetNumberRegistered(void); int GetNumberRegistered(void);
int sub_81CAE48(void); int sub_81CAE48(void);
struct PokenavMonList *sub_81CAE94(void); struct PokenavMatchCallEntries *sub_81CAE94(void);
u16 GetMatchCallMapSec(int); u16 GetMatchCallMapSec(int);
bool32 ShouldDrawRematchPokeballIcon(int index); bool32 ShouldDrawRematchPokeballIcon(int index);
void ClearRematchPokeballIcon(u16 windowId, u32 a1); void ClearRematchPokeballIcon(u16 windowId, u32 a1);
@@ -272,7 +284,7 @@ const u8 *GetMatchCallFlavorText(int index, int textType);
const u8 *GetMatchCallMessageText(int index, u8 *arg1); const u8 *GetMatchCallMessageText(int index, u8 *arg1);
u16 GetMatchCallOptionCursorPos(void); u16 GetMatchCallOptionCursorPos(void);
u16 GetMatchCallOptionId(int arg0); u16 GetMatchCallOptionId(int arg0);
void BufferMatchCallNameAndDesc(struct PokenavMonList * arg0, u8 *str); void BufferMatchCallNameAndDesc(struct PokenavMatchCallEntries * arg0, u8 *str);
u8 sub_81CB0C8(int rematchIndex); u8 sub_81CB0C8(int rematchIndex);
int GetIndexDeltaOfNextCheckPageDown(int index); int GetIndexDeltaOfNextCheckPageDown(int index);
int GetIndexDeltaOfNextCheckPageUp(int index); int GetIndexDeltaOfNextCheckPageUp(int index);
+8 -8
View File
@@ -46,7 +46,7 @@ struct PokenavSub17Substruct
u32 unk28; u32 unk28;
s32 unk2C; s32 unk2C;
u32 unk30; u32 unk30;
void (*unk34)(struct PokenavMonList *, u8*); void (*unk34)(struct PokenavMatchCallEntries *, u8*);
void (*unk38)(u16, u32, u32); void (*unk38)(u16, u32, u32);
struct Sprite *rightArrow; struct Sprite *rightArrow;
struct Sprite *upArrow; struct Sprite *upArrow;
@@ -67,8 +67,8 @@ struct PokenavSub17
extern void sub_81DB620(u32 windowId, u32 a1, u32 a2, u32 a3, u32 a4); extern void sub_81DB620(u32 windowId, u32 a1, u32 a2, u32 a3, u32 a4);
void sub_81C82E4(struct PokenavSub17 *a0); void sub_81C82E4(struct PokenavSub17 *a0);
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);
void sub_81C9160(struct MatchCallWindowState *a0, struct MatchCallListTemplate *a1); void sub_81C9160(struct MatchCallWindowState *a0, struct PokenavListTemplate *a1);
void SpriteCB_MatchCallUpArrow(struct Sprite *sprite); void SpriteCB_MatchCallUpArrow(struct Sprite *sprite);
void SpriteCB_MatchCallDownArrow(struct Sprite *sprite); void SpriteCB_MatchCallDownArrow(struct Sprite *sprite);
void SpriteCB_MatchCallRightArrow(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; 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)); struct PokenavSub17 *structPtr = AllocSubstruct(17, sizeof(struct PokenavSub17));
if (structPtr == NULL) if (structPtr == NULL)
@@ -934,9 +934,9 @@ void ToggleMatchCallVerticalArrows(bool32 shouldHide)
structPtr->unk0.downArrow->data[7] = 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->windowTopIndex = a1->unk6;
a0->listLength = a1->unk4; a0->listLength = a1->unk4;
a0->unkC = a1->unk8; 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; struct WindowTemplate window;
a0->unk0.bg = a1->bg; a0->unk0.bg = a1->bg;
a0->unk0.unk6 = a3; a0->unk0.unk6 = a3;
a0->unk34 = a2->unk10; a0->unk34 = a2->listFunc.unk10_2;
a0->unk38 = a2->unk14; a0->unk38 = a2->unk14;
a0->unk0.unk1 = a2->unkD; a0->unk0.unk1 = a2->unkD;
a0->unk0.unk2 = a2->unk9; a0->unk0.unk2 = a2->unk9;
-3
View File
@@ -13,9 +13,6 @@
#include "window.h" #include "window.h"
#include "constants/songs.h" #include "constants/songs.h"
#define boxId id1 // naming multi-purpose field
#define monId id2 // naming multi-purpose field
struct PokenavSub13 struct PokenavSub13
{ {
u8 filler0[0x8]; u8 filler0[0x8];
+3 -8
View File
@@ -15,11 +15,6 @@
#include "constants/flags.h" #include "constants/flags.h"
#include "constants/songs.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 struct Pokenav3Struct
{ {
u16 optionCursorPos; u16 optionCursorPos;
@@ -31,7 +26,7 @@ struct Pokenav3Struct
u32 unk10; u32 unk10;
u32 unk14; u32 unk14;
u32 (*callback)(struct Pokenav3Struct*); u32 (*callback)(struct Pokenav3Struct*);
struct PokenavMonList matchCallEntries[MAX_REMATCH_ENTRIES - 1]; struct PokenavMatchCallEntries matchCallEntries[MAX_REMATCH_ENTRIES - 1];
}; };
static u32 CB2_HandleMatchCallInput(struct Pokenav3Struct *); static u32 CB2_HandleMatchCallInput(struct Pokenav3Struct *);
@@ -304,7 +299,7 @@ int unref_sub_81CAE6C(int arg0)
return state->matchCallEntries[arg0].headerId; return state->matchCallEntries[arg0].headerId;
} }
struct PokenavMonList *sub_81CAE94(void) struct PokenavMatchCallEntries *sub_81CAE94(void)
{ {
struct Pokenav3Struct *state = GetSubstructPtr(5); struct Pokenav3Struct *state = GetSubstructPtr(5);
return state->matchCallEntries; return state->matchCallEntries;
@@ -400,7 +395,7 @@ u16 GetMatchCallOptionId(int optionId)
return state->matchCallOptions[optionId]; return state->matchCallOptions[optionId];
} }
void BufferMatchCallNameAndDesc(struct PokenavMonList *matchCallEntry, u8 *str) void BufferMatchCallNameAndDesc(struct PokenavMatchCallEntries *matchCallEntry, u8 *str)
{ {
const u8 *trainerName; const u8 *trainerName;
const u8 *className; const u8 *className;
+3 -3
View File
@@ -865,8 +865,8 @@ u32 ExitMatchCall(s32 taskState)
static void sub_81CBBB8(void) static void sub_81CBBB8(void)
{ {
struct MatchCallListTemplate template; struct PokenavListTemplate template;
template.unk0 = sub_81CAE94(); template.list.matchCallEntries = sub_81CAE94();
template.unk4 = GetNumberRegistered(); template.unk4 = GetNumberRegistered();
template.unk8 = 4; template.unk8 = 4;
template.unk6 = 0; template.unk6 = 0;
@@ -876,7 +876,7 @@ static void sub_81CBBB8(void)
template.unkC = 8; template.unkC = 8;
template.unkD = 3; template.unkD = 3;
template.unkE = 7; template.unkE = 7;
template.unk10 = BufferMatchCallNameAndDesc; template.listFunc.unk10_2 = BufferMatchCallNameAndDesc;
template.unk14 = TryDrawRematchPokeballIcon; template.unk14 = TryDrawRematchPokeballIcon;
sub_81C81D4(&gUnknown_0862278C[2], &template, 2); sub_81C81D4(&gUnknown_0862278C[2], &template, 2);
CreateTask(sub_81CBC64, 7); CreateTask(sub_81CBC64, 7);
-3
View File
@@ -14,9 +14,6 @@
#include "constants/songs.h" #include "constants/songs.h"
#include "constants/species.h" #include "constants/species.h"
#define boxId id1 // naming multi-purpose field
#define monId id2 // naming multi-purpose field
struct PokenavSub11 struct PokenavSub11
{ {
u32 monPal[3][0x20]; u32 monPal[3][0x20];
+3 -7
View File
@@ -10,10 +10,6 @@
#include "international_string_util.h" #include "international_string_util.h"
#include "constants/songs.h" #include "constants/songs.h"
#define boxId id1 // naming multi-purpose field
#define monId id2 // naming multi-purpose field
struct PokenavSub7 struct PokenavSub7
{ {
u32 (*unk0)(struct PokenavSub7 *); u32 (*unk0)(struct PokenavSub7 *);
@@ -655,8 +651,8 @@ static void sub_81CF7F4(struct PokenavSub8 * ptr)
static void sub_81CF88C(void) static void sub_81CF88C(void)
{ {
struct MatchCallListTemplate template; struct PokenavListTemplate template;
template.unk0 = sub_81CF0D0(); template.list.monList = sub_81CF0D0();
template.unk4 = sub_81CF0E0(); template.unk4 = sub_81CF0E0();
template.unk8 = 4; template.unk8 = 4;
template.unk6 = sub_81CF10C(); template.unk6 = sub_81CF10C();
@@ -666,7 +662,7 @@ static void sub_81CF88C(void)
template.unkC = 8; template.unkC = 8;
template.unkD = 2; template.unkD = 2;
template.unkE = 1; template.unkE = 1;
template.unk10 = sub_81CF8E4; template.listFunc.unk10_1 = sub_81CF8E4;
template.unk14 = NULL; template.unk14 = NULL;
sub_81C81D4(&gUnknown_08623590[1], &template, 0); sub_81C81D4(&gUnknown_08623590[1], &template, 0);
} }
+3 -6
View File
@@ -8,9 +8,6 @@
#include "international_string_util.h" #include "international_string_util.h"
#include "constants/songs.h" #include "constants/songs.h"
#define boxId id1 // naming multi-purpose field
#define monId id2 // naming multi-purpose field
struct PokenavSub9 struct PokenavSub9
{ {
u32 (*unk0)(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) static void sub_81D0304(void)
{ {
struct MatchCallListTemplate template; struct PokenavListTemplate template;
template.unk0 = sub_81CFB28(); template.list.monList = sub_81CFB28();
template.unk4 = sub_81CFB38(); template.unk4 = sub_81CFB38();
template.unk8 = 4; template.unk8 = 4;
template.unk6 = sub_81CFB64(); template.unk6 = sub_81CFB64();
@@ -679,7 +676,7 @@ static void sub_81D0304(void)
template.unkC = 8; template.unkC = 8;
template.unkD = 2; template.unkD = 2;
template.unkE = 1; template.unkE = 1;
template.unk10 = sub_81D035C; template.listFunc.unk10_1 = sub_81D035C;
template.unk14 = NULL; template.unk14 = NULL;
sub_81C81D4(&gUnknown_086237B0[1], &template, 0); sub_81C81D4(&gUnknown_086237B0[1], &template, 0);
} }