summaryrefslogtreecommitdiff
path: root/src/pokenav_match_call_ui.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pokenav_match_call_ui.c')
-rw-r--r--src/pokenav_match_call_ui.c432
1 files changed, 216 insertions, 216 deletions
diff --git a/src/pokenav_match_call_ui.c b/src/pokenav_match_call_ui.c
index 01740fcce..2d89f9c39 100644
--- a/src/pokenav_match_call_ui.c
+++ b/src/pokenav_match_call_ui.c
@@ -9,7 +9,7 @@
// TODO: This UI isnt just for match call, seems to be the general pokenav list UI
-struct UnknownSubSubStruct_0203CF40 {
+struct PokenavListMenuWindow {
u8 bg;
u8 unk1;
u8 unk2;
@@ -38,14 +38,14 @@ struct MatchCallWindowState {
struct PokenavSub17Substruct
{
- struct UnknownSubSubStruct_0203CF40 unk0;
+ struct PokenavListMenuWindow listWindow;
u32 unk10;
u32 unk14;
u32 unk18;
void * unk1C;
s32 unk20;
s32 unk24;
- u32 unk28;
+ u32 loopedTaskId;
s32 unk2C;
u32 unk30;
void (*unk34)(struct PokenavMatchCallEntries *, u8*);
@@ -59,34 +59,34 @@ struct PokenavSub17Substruct
// Generally at index 0x11 (17)
struct PokenavSub17
{
- struct PokenavSub17Substruct unk0;
+ struct PokenavSub17Substruct list;
u8 tilemapBuffer[0x800];
struct MatchCallWindowState unk888;
s32 unk89C;
- u32 unk8A0;
+ u32 loopedTaskId;
};
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 PokenavListTemplate *a2, s32 a3);
-void sub_81C9160(struct MatchCallWindowState *a0, struct PokenavListTemplate *a1);
+void sub_81C82E4(struct PokenavSub17 *matchCall);
+bool32 CopyPokenavListMenuTemplate(struct PokenavSub17Substruct *a0, const struct BgTemplate *a1, struct PokenavListTemplate *a2, s32 a3);
+void InitMatchCallWindowState(struct MatchCallWindowState *a0, struct PokenavListTemplate *a1);
void SpriteCB_MatchCallUpArrow(struct Sprite *sprite);
void SpriteCB_MatchCallDownArrow(struct Sprite *sprite);
void SpriteCB_MatchCallRightArrow(struct Sprite *sprite);
void ToggleMatchCallArrows(struct PokenavSub17Substruct *a0, u32 a1);
-void sub_81C8FE0(struct PokenavSub17Substruct *a0);
-void sub_81C8EF8(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1);
+void DestroyMatchCallListArrows(struct PokenavSub17Substruct *a0);
+void CreateMatchCallArrowSprites(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1);
void sub_81C8ED0(void);
static void PrintMatchCallFlavorText(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1, u32 a2);
void PrintMatchCallFieldNames(struct PokenavSub17Substruct *a0, u32 a1);
void sub_81C8D4C(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1);
void sub_81C8CB4(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1);
-void sub_81C8B70(struct UnknownSubSubStruct_0203CF40 *a0, s32 a1, s32 a2);
+void sub_81C8B70(struct PokenavListMenuWindow *a0, s32 a1, s32 a2);
void sub_81C8568(s32 a0, struct PokenavSub17Substruct *a1);
void sub_81C83AC(void * a0, u32 a1, u32 a2, u32 a3, u32 a4, struct PokenavSub17Substruct *a5);
void sub_81C837C(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1);
-void sub_81C835C(struct UnknownSubSubStruct_0203CF40 *a0);
+void sub_81C835C(struct PokenavListMenuWindow *a0);
u32 LoopedTask_sub_81C8254(s32 state);
bool32 sub_81C83E0(void);
u32 LoopedTask_sub_81C83F0(s32 state);
@@ -102,12 +102,12 @@ EWRAM_DATA u32 gUnknown_0203CF44 = 0;
bool32 sub_81C81D4(const struct BgTemplate *arg0, struct PokenavListTemplate *arg1, s32 arg2)
{
- struct PokenavSub17 *structPtr = AllocSubstruct(17, sizeof(struct PokenavSub17));
+ struct PokenavSub17 *structPtr = AllocSubstruct(POKENAV_SUBSTRUCT_MATCH_CALL_LIST, sizeof(struct PokenavSub17));
if (structPtr == NULL)
return FALSE;
- sub_81C9160(&structPtr->unk888, arg1);
- if (!sub_81C91AC(&structPtr->unk0, arg0, arg1, arg2))
+ InitMatchCallWindowState(&structPtr->unk888, arg1);
+ if (!CopyPokenavListMenuTemplate(&structPtr->list, arg0, arg1, arg2))
return FALSE;
CreateLoopedTask(LoopedTask_sub_81C8254, 6);
@@ -123,10 +123,10 @@ void sub_81C8234(void)
{
struct PokenavSub17 *structPtr;
- structPtr = GetSubstructPtr(17);
- sub_81C8FE0(&structPtr->unk0);
- RemoveWindow(structPtr->unk0.unk0.windowId);
- FreePokenavSubstruct(17);
+ structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
+ DestroyMatchCallListArrows(&structPtr->list);
+ RemoveWindow(structPtr->list.listWindow.windowId);
+ FreePokenavSubstruct(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
}
u32 LoopedTask_sub_81C8254(s32 state)
@@ -134,9 +134,9 @@ u32 LoopedTask_sub_81C8254(s32 state)
struct PokenavSub17 *structPtr;
if (IsDma3ManagerBusyWithBgCopy())
- return 2;
+ return LT_PAUSE;
- structPtr = GetSubstructPtr(17);
+ structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
switch (state)
{
@@ -144,10 +144,10 @@ u32 LoopedTask_sub_81C8254(s32 state)
sub_81C82E4(structPtr);
return LT_INC_AND_PAUSE;
case 1:
- sub_81C835C(&structPtr->unk0.unk0);
+ sub_81C835C(&structPtr->list.listWindow);
return LT_INC_AND_PAUSE;
case 2:
- sub_81C837C(&structPtr->unk888, &structPtr->unk0);
+ sub_81C837C(&structPtr->unk888, &structPtr->list);
return LT_INC_AND_PAUSE;
case 3:
if (sub_81C83E0())
@@ -160,53 +160,53 @@ u32 LoopedTask_sub_81C8254(s32 state)
return LT_INC_AND_CONTINUE;
}
case 4:
- sub_81C8EF8(&structPtr->unk888, &structPtr->unk0);
+ CreateMatchCallArrowSprites(&structPtr->unk888, &structPtr->list);
return LT_FINISH;
default:
return LT_FINISH;
}
}
-void sub_81C82E4(struct PokenavSub17 *a0)
+void sub_81C82E4(struct PokenavSub17 *matchCall)
{
- u16 tileNum = (a0->unk0.unk0.unk1 << 12) | a0->unk0.unk0.unk6;
- sub_8199DF0(a0->unk0.unk0.bg, PIXEL_FILL(1), a0->unk0.unk0.unk6, 1);
- sub_8199DF0(a0->unk0.unk0.bg, PIXEL_FILL(4), a0->unk0.unk0.unk6 + 1, 1);
- SetBgTilemapBuffer(a0->unk0.unk0.bg, a0->tilemapBuffer);
- FillBgTilemapBufferRect_Palette0(a0->unk0.unk0.bg, tileNum, 0, 0, 32, 32);
- ChangeBgY(a0->unk0.unk0.bg, 0, 0);
- ChangeBgX(a0->unk0.unk0.bg, 0, 0);
- ChangeBgY(a0->unk0.unk0.bg, a0->unk0.unk0.unk3 << 11, 2);
- CopyBgTilemapBufferToVram(a0->unk0.unk0.bg);
+ u16 tileNum = (matchCall->list.listWindow.unk1 << 12) | matchCall->list.listWindow.unk6;
+ sub_8199DF0(matchCall->list.listWindow.bg, PIXEL_FILL(1), matchCall->list.listWindow.unk6, 1);
+ sub_8199DF0(matchCall->list.listWindow.bg, PIXEL_FILL(4), matchCall->list.listWindow.unk6 + 1, 1);
+ SetBgTilemapBuffer(matchCall->list.listWindow.bg, matchCall->tilemapBuffer);
+ FillBgTilemapBufferRect_Palette0(matchCall->list.listWindow.bg, tileNum, 0, 0, 32, 32);
+ ChangeBgY(matchCall->list.listWindow.bg, 0, 0);
+ ChangeBgX(matchCall->list.listWindow.bg, 0, 0);
+ ChangeBgY(matchCall->list.listWindow.bg, matchCall->list.listWindow.unk3 << 11, 2);
+ CopyBgTilemapBufferToVram(matchCall->list.listWindow.bg);
}
-void sub_81C835C(struct UnknownSubSubStruct_0203CF40 *a0)
+void sub_81C835C(struct PokenavListMenuWindow *listWindow)
{
- FillWindowPixelBuffer(a0->windowId, PIXEL_FILL(1));
- PutWindowTilemap(a0->windowId);
- CopyWindowToVram(a0->windowId, 1);
+ FillWindowPixelBuffer(listWindow->windowId, PIXEL_FILL(1));
+ PutWindowTilemap(listWindow->windowId);
+ CopyWindowToVram(listWindow->windowId, 1);
}
-void sub_81C837C(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1)
+void sub_81C837C(struct MatchCallWindowState *state, struct PokenavSub17Substruct *a1)
{
- s32 arg2 = a0->listLength - a0->windowTopIndex;
- if (arg2 > a0->visibleEntries)
- arg2 = a0->visibleEntries;
+ s32 arg2 = state->listLength - state->windowTopIndex;
+ if (arg2 > state->visibleEntries)
+ arg2 = state->visibleEntries;
- sub_81C83AC(a0->unk10, a0->windowTopIndex, arg2, a0->unkC, 0, a1);
+ sub_81C83AC(state->unk10, state->windowTopIndex, arg2, state->unkC, 0, a1);
}
-void sub_81C83AC(void * a0, u32 a1, u32 a2, u32 a3, u32 a4, struct PokenavSub17Substruct *a5)
+void sub_81C83AC(void * a0, u32 a1, u32 a2, u32 a3, u32 a4, struct PokenavSub17Substruct *list)
{
if (a2 == 0)
return;
- a5->unk1C = a0 + a1 * a3;
- a5->unk18 = a3;
- a5->unk0.unkC = 0;
- a5->unk0.unkE = a2;
- a5->unk14 = a1;
- a5->unk10 = a4;
+ list->unk1C = a0 + a1 * a3;
+ list->unk18 = a3;
+ list->listWindow.unkC = 0;
+ list->listWindow.unkE = a2;
+ list->unk14 = a1;
+ list->unk10 = a4;
CreateLoopedTask(LoopedTask_sub_81C83F0, 5);
}
@@ -218,23 +218,23 @@ bool32 sub_81C83E0(void)
u32 LoopedTask_sub_81C83F0(s32 state)
{
u32 v1;
- struct PokenavSub17Substruct *structPtr = GetSubstructPtr(17);
+ struct PokenavSub17Substruct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
switch (state)
{
case 0:
- v1 = (structPtr->unk0.unkA + structPtr->unk0.unkC + structPtr->unk10) & 0xF;
+ v1 = (structPtr->listWindow.unkA + structPtr->listWindow.unkC + structPtr->unk10) & 0xF;
structPtr->unk34(structPtr->unk1C, structPtr->unkTextBuffer);
if (structPtr->unk38 != NULL)
- structPtr->unk38(structPtr->unk0.windowId, structPtr->unk14, v1);
+ structPtr->unk38(structPtr->listWindow.windowId, structPtr->unk14, v1);
- AddTextPrinterParameterized(structPtr->unk0.windowId, structPtr->unk0.fontId, structPtr->unkTextBuffer, 8, (v1 << 4) + 1, 255, NULL);
- if (++structPtr->unk0.unkC >= structPtr->unk0.unkE)
+ AddTextPrinterParameterized(structPtr->listWindow.windowId, structPtr->listWindow.fontId, structPtr->unkTextBuffer, 8, (v1 << 4) + 1, 255, NULL);
+ if (++structPtr->listWindow.unkC >= structPtr->listWindow.unkE)
{
if (structPtr->unk38 != NULL)
- CopyWindowToVram(structPtr->unk0.windowId, 3);
+ CopyWindowToVram(structPtr->listWindow.windowId, 3);
else
- CopyWindowToVram(structPtr->unk0.windowId, 2);
+ CopyWindowToVram(structPtr->listWindow.windowId, 2);
return LT_INC_AND_PAUSE;
}
else
@@ -253,14 +253,14 @@ u32 LoopedTask_sub_81C83F0(s32 state)
bool32 ShouldShowUpArrow(void)
{
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
return (structPtr->unk888.windowTopIndex != 0);
}
bool32 ShouldShowDownArrow(void)
{
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
struct MatchCallWindowState *subPtr = &structPtr->unk888;
return (subPtr->windowTopIndex + subPtr->visibleEntries < subPtr->listLength);
@@ -268,7 +268,7 @@ bool32 ShouldShowDownArrow(void)
void MatchCall_MoveWindow(s32 a0, bool32 a1)
{
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
struct MatchCallWindowState *subPtr = &structPtr->unk888;
if (a0 < 0)
@@ -276,7 +276,7 @@ void MatchCall_MoveWindow(s32 a0, bool32 a1)
if (subPtr->windowTopIndex + a0 < 0)
a0 = -1 * subPtr->windowTopIndex;
if (a1)
- sub_81C83AC(subPtr->unk10, subPtr->windowTopIndex + a0, a0 * -1, subPtr->unkC, a0, &structPtr->unk0);
+ sub_81C83AC(subPtr->unk10, subPtr->windowTopIndex + a0, a0 * -1, subPtr->unkC, a0, &structPtr->list);
}
else if (a1)
{
@@ -284,31 +284,31 @@ void MatchCall_MoveWindow(s32 a0, bool32 a1)
if (temp + a0 >= subPtr->listLength)
a0 = subPtr->listLength - temp;
- sub_81C83AC(subPtr->unk10, gUnknown_0203CF44, a0, subPtr->unkC, subPtr->visibleEntries, &structPtr->unk0);
+ sub_81C83AC(subPtr->unk10, gUnknown_0203CF44, a0, subPtr->unkC, subPtr->visibleEntries, &structPtr->list);
}
- sub_81C8568(a0, &structPtr->unk0);
+ sub_81C8568(a0, &structPtr->list);
subPtr->windowTopIndex += a0;
}
-void sub_81C8568(s32 a0, struct PokenavSub17Substruct *a1)
+void sub_81C8568(s32 a0, struct PokenavSub17Substruct *list)
{
- a1->unk20 = GetBgY(a1->unk0.bg);
- a1->unk24 = a1->unk20 + (a0 << 12);
+ list->unk20 = GetBgY(list->listWindow.bg);
+ list->unk24 = list->unk20 + (a0 << 12);
if (a0 > 0)
- a1->unk30 = 1;
+ list->unk30 = 1;
else
- a1->unk30 = 2;
- a1->unk2C = a0;
- a1->unk28 = CreateLoopedTask(LoopedTask_sub_81C85A0, 6);
+ list->unk30 = 2;
+ list->unk2C = a0;
+ list->loopedTaskId = CreateLoopedTask(LoopedTask_sub_81C85A0, 6);
}
u32 LoopedTask_sub_81C85A0(s32 state)
{
s32 y, v1;
bool32 flag;
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
- struct PokenavSub17Substruct *subPtr = &structPtr->unk0;
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
+ struct PokenavSub17Substruct *subPtr = &structPtr->list;
switch (state)
{
@@ -318,8 +318,8 @@ u32 LoopedTask_sub_81C85A0(s32 state)
return LT_PAUSE;
case 1:
flag = FALSE;
- y = GetBgY(subPtr->unk0.bg);
- v1 = ChangeBgY(subPtr->unk0.bg, 0x1000, subPtr->unk30);
+ y = GetBgY(subPtr->listWindow.bg);
+ v1 = ChangeBgY(subPtr->listWindow.bg, 0x1000, subPtr->unk30);
if (subPtr->unk30 == 2)
{
if ((y > subPtr->unk24 || y <= subPtr->unk20) && v1 <= subPtr->unk24)
@@ -333,8 +333,8 @@ u32 LoopedTask_sub_81C85A0(s32 state)
if (flag)
{
- subPtr->unk0.unkA = (subPtr->unk0.unkA + subPtr->unk2C) & 0xF;
- ChangeBgY(subPtr->unk0.bg, subPtr->unk24, 0);
+ subPtr->listWindow.unkA = (subPtr->listWindow.unkA + subPtr->unk2C) & 0xF;
+ ChangeBgY(subPtr->listWindow.bg, subPtr->unk24, 0);
return LT_FINISH;
}
return LT_PAUSE;
@@ -342,15 +342,15 @@ u32 LoopedTask_sub_81C85A0(s32 state)
return LT_FINISH;
}
-bool32 sub_81C8630(void)
+bool32 IsMonListLoopedTaskActive(void)
{
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
- return IsLoopedTaskActive(structPtr->unk0.unk28);
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
+ return IsLoopedTaskActive(structPtr->list.loopedTaskId);
}
struct MatchCallWindowState *GetMatchCallWindowStruct(void)
{
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
return &structPtr->unk888;
}
@@ -448,7 +448,7 @@ int MatchCall_PageDown(void)
}
}
-u32 GetSelectedMatchCall(void)
+u32 GetSelectedPokenavListIndex(void)
{
struct MatchCallWindowState *structPtr = GetMatchCallWindowStruct();
@@ -464,53 +464,53 @@ u32 GetMatchCallListTopIndex(void)
void sub_81C877C(void)
{
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
structPtr->unk89C = 0;
- structPtr->unk8A0 = CreateLoopedTask(LoopedTask_sub_81C8870, 6);
+ structPtr->loopedTaskId = CreateLoopedTask(LoopedTask_sub_81C8870, 6);
}
void PrintCheckPageInfo(s16 a0)
{
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
structPtr->unk888.windowTopIndex += a0;
structPtr->unk89C = 0;
- structPtr->unk8A0 = CreateLoopedTask(LoopedTask_PrintCheckPageInfo, 6);
+ structPtr->loopedTaskId = CreateLoopedTask(LoopedTask_PrintCheckPageInfo, 6);
}
void sub_81C87F0(void)
{
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
structPtr->unk89C = 0;
- structPtr->unk8A0 = CreateLoopedTask(LoopedTask_sub_81C8A28, 6);
+ structPtr->loopedTaskId = CreateLoopedTask(LoopedTask_sub_81C8A28, 6);
}
-bool32 sub_81C8820(void)
+bool32 IsMatchCallListTaskActive(void)
{
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
- return IsLoopedTaskActive(structPtr->unk8A0);
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
+ return IsLoopedTaskActive(structPtr->loopedTaskId);
}
void sub_81C8838(void)
{
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
struct MatchCallWindowState *subPtr = &structPtr->unk888;
- structPtr->unk0.unk38(structPtr->unk0.unk0.windowId, subPtr->windowTopIndex + subPtr->selectedIndexOffset, (structPtr->unk0.unk0.unkA + subPtr->selectedIndexOffset) & 0xF);
- CopyWindowToVram(structPtr->unk0.unk0.windowId, 1);
+ structPtr->list.unk38(structPtr->list.listWindow.windowId, subPtr->windowTopIndex + subPtr->selectedIndexOffset, (structPtr->list.listWindow.unkA + subPtr->selectedIndexOffset) & 0xF);
+ CopyWindowToVram(structPtr->list.listWindow.windowId, 1);
}
// TODO:
u32 LoopedTask_sub_81C8870(s32 state)
{
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
switch (state)
{
case 0:
- ToggleMatchCallArrows(&structPtr->unk0, 1);
+ ToggleMatchCallArrows(&structPtr->list, 1);
// fall-through
case 1:
if (structPtr->unk89C != structPtr->unk888.selectedIndexOffset)
- sub_81C8B70(&structPtr->unk0.unk0, structPtr->unk89C, 1);
+ sub_81C8B70(&structPtr->list.listWindow, structPtr->unk89C, 1);
structPtr->unk89C++;
return LT_INC_AND_PAUSE;
@@ -520,7 +520,7 @@ u32 LoopedTask_sub_81C8870(s32 state)
if (structPtr->unk89C != structPtr->unk888.visibleEntries)
return 6;
if (structPtr->unk888.selectedIndexOffset != 0)
- sub_81C8B70(&structPtr->unk0.unk0, structPtr->unk89C, structPtr->unk888.selectedIndexOffset);
+ sub_81C8B70(&structPtr->list.listWindow, structPtr->unk89C, structPtr->unk888.selectedIndexOffset);
return LT_INC_AND_PAUSE;
}
@@ -537,7 +537,7 @@ u32 LoopedTask_sub_81C8870(s32 state)
}
return LT_PAUSE;
case 4:
- if (sub_81C8630())
+ if (IsMonListLoopedTaskActive())
return LT_PAUSE;
structPtr->unk888.selectedIndexOffset = 0;
@@ -548,35 +548,35 @@ u32 LoopedTask_sub_81C8870(s32 state)
u32 LoopedTask_PrintCheckPageInfo(s32 state)
{
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
if (IsDma3ManagerBusyWithBgCopy())
return LT_PAUSE;
switch (state)
{
case 0:
- sub_81C8CB4(&structPtr->unk888, &structPtr->unk0);
+ sub_81C8CB4(&structPtr->unk888, &structPtr->list);
break;
case 1:
- PrintMatchCallFieldNames(&structPtr->unk0, 0);
+ PrintMatchCallFieldNames(&structPtr->list, 0);
break;
case 2:
- PrintMatchCallFlavorText(&structPtr->unk888, &structPtr->unk0, CHECK_PAGE_STRATEGY);
+ PrintMatchCallFlavorText(&structPtr->unk888, &structPtr->list, CHECK_PAGE_STRATEGY);
break;
case 3:
- PrintMatchCallFieldNames(&structPtr->unk0, 1);
+ PrintMatchCallFieldNames(&structPtr->list, 1);
break;
case 4:
- PrintMatchCallFlavorText(&structPtr->unk888, &structPtr->unk0, CHECK_PAGE_POKEMON);
+ PrintMatchCallFlavorText(&structPtr->unk888, &structPtr->list, CHECK_PAGE_POKEMON);
break;
case 5:
- PrintMatchCallFieldNames(&structPtr->unk0, 2);
+ PrintMatchCallFieldNames(&structPtr->list, 2);
break;
case 6:
- PrintMatchCallFlavorText(&structPtr->unk888, &structPtr->unk0, CHECK_PAGE_INTRO_1);
+ PrintMatchCallFlavorText(&structPtr->unk888, &structPtr->list, CHECK_PAGE_INTRO_1);
break;
case 7:
- PrintMatchCallFlavorText(&structPtr->unk888, &structPtr->unk0, CHECK_PAGE_INTRO_2);
+ PrintMatchCallFlavorText(&structPtr->unk888, &structPtr->list, CHECK_PAGE_INTRO_2);
break;
default:
return LT_FINISH;
@@ -594,9 +594,9 @@ u32 LoopedTask_sub_81C8A28(s32 state)
if (IsDma3ManagerBusyWithBgCopy())
return LT_PAUSE;
- structPtr = GetSubstructPtr(17);
+ structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
subPtr888 = &structPtr->unk888;
- subPtr0 = &structPtr->unk0;
+ subPtr0 = &structPtr->list;
switch (state)
{
@@ -607,7 +607,7 @@ u32 LoopedTask_sub_81C8A28(s32 state)
ptr = &structPtr->unk89C;
if (++(*ptr) < structPtr->unk888.visibleEntries)
{
- sub_81C8B70(&subPtr0->unk0, *ptr, 1);
+ sub_81C8B70(&subPtr0->listWindow, *ptr, 1);
return LT_PAUSE;
}
@@ -618,7 +618,7 @@ u32 LoopedTask_sub_81C8A28(s32 state)
{
s32 r4 = subPtr888->windowTopIndex;
r5 = -r4;
- sub_81C8B70(&subPtr0->unk0, r5, r4);
+ sub_81C8B70(&subPtr0->listWindow, r5, r4);
subPtr888->selectedIndexOffset = r4;
*ptr = r5;
return LT_INC_AND_PAUSE;
@@ -630,7 +630,7 @@ u32 LoopedTask_sub_81C8A28(s32 state)
{
s32 r4 = subPtr888->windowTopIndex + subPtr888->visibleEntries - subPtr888->listLength;
r5 = -r4;
- sub_81C8B70(&subPtr0->unk0, r5, r4);
+ sub_81C8B70(&subPtr0->listWindow, r5, r4);
subPtr888->selectedIndexOffset = r4;
*ptr = r5;
return LT_INC_AND_PAUSE;
@@ -641,14 +641,14 @@ u32 LoopedTask_sub_81C8A28(s32 state)
MatchCall_MoveWindow(structPtr->unk89C, FALSE);
return LT_INC_AND_PAUSE;
case 3:
- if (!sub_81C8630())
+ if (!IsMonListLoopedTaskActive())
{
structPtr->unk89C = 0;
return 1;
}
return 2;
case 4:
- sub_81C83AC(subPtr888->unk10, subPtr888->windowTopIndex + structPtr->unk89C, 1, subPtr888->unkC, structPtr->unk89C, &structPtr->unk0);
+ sub_81C83AC(subPtr888->unk10, subPtr888->windowTopIndex + structPtr->unk89C, 1, subPtr888->unkC, structPtr->unk89C, &structPtr->list);
return LT_INC_AND_PAUSE;
case 5:
if (sub_81C83E0())
@@ -664,16 +664,16 @@ u32 LoopedTask_sub_81C8A28(s32 state)
return LT_FINISH;
}
-void sub_81C8B70(struct UnknownSubSubStruct_0203CF40 *a0, s32 a1, s32 a2)
+void sub_81C8B70(struct PokenavListMenuWindow *listWindow, s32 a1, s32 a2)
{
- u8 *v1 = (u8*)GetWindowAttribute(a0->windowId, WINDOW_TILE_DATA);
- u32 v2 = a0->unk4 * 64;
+ u8 *v1 = (u8*)GetWindowAttribute(listWindow->windowId, WINDOW_TILE_DATA);
+ u32 v2 = listWindow->unk4 * 64;
- a1 = (a0->unkA + a1) & 0xF;
+ a1 = (listWindow->unkA + a1) & 0xF;
if (a1 + a2 <= 16)
{
CpuFastFill8(PIXEL_FILL(1), v1 + a1 * v2, a2 * v2);
- CopyWindowToVram(a0->windowId, 2);
+ CopyWindowToVram(listWindow->windowId, 2);
}
else
{
@@ -682,63 +682,63 @@ void sub_81C8B70(struct UnknownSubSubStruct_0203CF40 *a0, s32 a1, s32 a2)
CpuFastFill8(PIXEL_FILL(1), v1 + a1 * v2, v3 * v2);
CpuFastFill8(PIXEL_FILL(1), v1, v4 * v2);
- CopyWindowToVram(a0->windowId, 2);
+ CopyWindowToVram(listWindow->windowId, 2);
}
for (a2--; a2 != -1; a1 = (a1 + 1) & 0xF, a2--)
- ClearRematchPokeballIcon(a0->windowId, a1);
+ ClearRematchPokeballIcon(listWindow->windowId, a1);
- CopyWindowToVram(a0->windowId, 1);
+ CopyWindowToVram(listWindow->windowId, 1);
}
-void sub_81C8C64(struct UnknownSubSubStruct_0203CF40 *a0, u32 a1)
+void sub_81C8C64(struct PokenavListMenuWindow *listWindow, u32 a1)
{
u16 var;
- u16 *v1 = (u16*)GetBgTilemapBuffer(GetWindowAttribute(a0->windowId, WINDOW_BG));
- v1 += ((a0->unkA << 6) + a0->unk2) - 1;
+ u16 *v1 = (u16*)GetBgTilemapBuffer(GetWindowAttribute(listWindow->windowId, WINDOW_BG));
+ v1 += ((listWindow->unkA << 6) + listWindow->unk2) - 1;
if (a1 != 0)
- var = (a0->unk1 << 12) | (a0->unk6 + 1);
+ var = (listWindow->unk1 << 12) | (listWindow->unk6 + 1);
else
- var = (a0->unk1 << 12) | (a0->unk6);
+ var = (listWindow->unk1 << 12) | (listWindow->unk6);
v1[0] = var;
v1[0x20] = var;
}
-void sub_81C8CB4(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1)
+void sub_81C8CB4(struct MatchCallWindowState *state, struct PokenavSub17Substruct *list)
{
u8 colors[3] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_RED};
- a1->unk34(a0->unk10 + a0->unkC * a0->windowTopIndex, a1->unkTextBuffer);
- a1->unk38(a1->unk0.windowId, a0->windowTopIndex, a1->unk0.unkA);
- FillWindowPixelRect(a1->unk0.windowId, PIXEL_FILL(4), 0, a1->unk0.unkA * 16, a1->unk0.unk4 * 8, 16);
- AddTextPrinterParameterized3(a1->unk0.windowId, a1->unk0.fontId, 8, (a1->unk0.unkA * 16) + 1, colors, TEXT_SPEED_FF, a1->unkTextBuffer);
- sub_81C8C64(&a1->unk0, 1);
- CopyWindowRectToVram(a1->unk0.windowId, 3, 0, a1->unk0.unkA * 2, a1->unk0.unk4, 2);
+ list->unk34(state->unk10 + state->unkC * state->windowTopIndex, list->unkTextBuffer);
+ list->unk38(list->listWindow.windowId, state->windowTopIndex, list->listWindow.unkA);
+ FillWindowPixelRect(list->listWindow.windowId, PIXEL_FILL(4), 0, list->listWindow.unkA * 16, list->listWindow.unk4 * 8, 16);
+ AddTextPrinterParameterized3(list->listWindow.windowId, list->listWindow.fontId, 8, (list->listWindow.unkA * 16) + 1, colors, TEXT_SPEED_FF, list->unkTextBuffer);
+ sub_81C8C64(&list->listWindow, 1);
+ CopyWindowRectToVram(list->listWindow.windowId, 3, 0, list->listWindow.unkA * 2, list->listWindow.unk4, 2);
}
-void sub_81C8D4C(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1)
+void sub_81C8D4C(struct MatchCallWindowState *state, struct PokenavSub17Substruct *list)
{
- a1->unk34(a0->unk10 + a0->unkC * a0->windowTopIndex, a1->unkTextBuffer);
- FillWindowPixelRect(a1->unk0.windowId, PIXEL_FILL(1), 0, a1->unk0.unkA * 16, a1->unk0.unk4 * 8, 16);
- AddTextPrinterParameterized(a1->unk0.windowId, a1->unk0.fontId, a1->unkTextBuffer, 8, a1->unk0.unkA * 16 + 1, TEXT_SPEED_FF, NULL);
- sub_81C8C64(&a1->unk0, 0);
- CopyWindowToVram(a1->unk0.windowId, 3);
+ list->unk34(state->unk10 + state->unkC * state->windowTopIndex, list->unkTextBuffer);
+ FillWindowPixelRect(list->listWindow.windowId, PIXEL_FILL(1), 0, list->listWindow.unkA * 16, list->listWindow.unk4 * 8, 16);
+ AddTextPrinterParameterized(list->listWindow.windowId, list->listWindow.fontId, list->unkTextBuffer, 8, list->listWindow.unkA * 16 + 1, TEXT_SPEED_FF, NULL);
+ sub_81C8C64(&list->listWindow, 0);
+ CopyWindowToVram(list->listWindow.windowId, 3);
}
-void PrintMatchCallFieldNames(struct PokenavSub17Substruct *a0, u32 fieldId)
+void PrintMatchCallFieldNames(struct PokenavSub17Substruct *list, u32 fieldId)
{
const u8 *fieldNames[] = {gText_PokenavMatchCall_Strategy, gText_PokenavMatchCall_TrainerPokemon, gText_PokenavMatchCall_SelfIntroduction};
u8 colors[3] = {TEXT_COLOR_WHITE, TEXT_COLOR_RED, TEXT_COLOR_LIGHT_RED};
- u32 top = (a0->unk0.unkA + 1 + (fieldId * 2)) & 0xF;
+ u32 top = (list->listWindow.unkA + 1 + (fieldId * 2)) & 0xF;
- FillWindowPixelRect(a0->unk0.windowId, PIXEL_FILL(1), 0, top << 4, a0->unk0.unk4, 16);
- AddTextPrinterParameterized3(a0->unk0.windowId, 7, 2, (top << 4) + 1, colors, -1, fieldNames[fieldId]);
- CopyWindowRectToVram(a0->unk0.windowId, 2, 0, top << 1, a0->unk0.unk4, 2);
+ FillWindowPixelRect(list->listWindow.windowId, PIXEL_FILL(1), 0, top << 4, list->listWindow.unk4, 16);
+ AddTextPrinterParameterized3(list->listWindow.windowId, 7, 2, (top << 4) + 1, colors, -1, fieldNames[fieldId]);
+ CopyWindowRectToVram(list->listWindow.windowId, 2, 0, top << 1, list->listWindow.unk4, 2);
}
-static void PrintMatchCallFlavorText(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1, u32 checkPageEntry)
+static void PrintMatchCallFlavorText(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *list, u32 checkPageEntry)
{
// lines 1, 3, and 5 are the field names printed by PrintMatchCallFieldNames
static const u8 lineOffsets[CHECK_PAGE_ENTRY_COUNT] =
@@ -749,14 +749,14 @@ static void PrintMatchCallFlavorText(struct MatchCallWindowState *a0, struct Pok
[CHECK_PAGE_INTRO_2] = 7
};
- u32 r6 = (a1->unk0.unkA + lineOffsets[checkPageEntry]) & 0xF;
+ u32 r6 = (list->listWindow.unkA + lineOffsets[checkPageEntry]) & 0xF;
const u8 *str = GetMatchCallFlavorText(a0->windowTopIndex, checkPageEntry);
if (str != NULL)
{
- sub_81DB620(a1->unk0.windowId, 1, r6 * 2, a1->unk0.unk4 - 1, 2);
- AddTextPrinterParameterized(a1->unk0.windowId, 7, str, 2, (r6 << 4) + 1, TEXT_SPEED_FF, NULL);
- CopyWindowRectToVram(a1->unk0.windowId, 2, 0, r6 * 2, a1->unk0.unk4, 2);
+ sub_81DB620(list->listWindow.windowId, 1, r6 * 2, list->listWindow.unk4 - 1, 2);
+ AddTextPrinterParameterized(list->listWindow.windowId, 7, str, 2, (r6 << 4) + 1, TEXT_SPEED_FF, NULL);
+ CopyWindowRectToVram(list->listWindow.windowId, 2, 0, r6 * 2, list->listWindow.unk4, 2);
}
}
@@ -839,57 +839,57 @@ void sub_81C8ED0(void)
Pokenav_AllocAndLoadPalettes(sMatchcallArrowPalettes);
}
-void sub_81C8EF8(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1)
+void CreateMatchCallArrowSprites(struct MatchCallWindowState *windowState, struct PokenavSub17Substruct *list)
{
u32 spriteId;
s16 x;
- spriteId = CreateSprite(&sMatchCallRightArrowSprite, a1->unk0.unk2 * 8 + 3, (a1->unk0.unk3 + 1) * 8, 7);
- a1->rightArrow = &gSprites[spriteId];
+ spriteId = CreateSprite(&sMatchCallRightArrowSprite, list->listWindow.unk2 * 8 + 3, (list->listWindow.unk3 + 1) * 8, 7);
+ list->rightArrow = &gSprites[spriteId];
- x = a1->unk0.unk2 * 8 + (a1->unk0.unk4 - 1) * 4;
- spriteId = CreateSprite(&sMatchCallUpDownArrowSprite, x, a1->unk0.unk3 * 8 + a0->visibleEntries * 16, 7);
- a1->downArrow = &gSprites[spriteId];
- a1->downArrow->oam.tileNum += 2;
- a1->downArrow->callback = SpriteCB_MatchCallDownArrow;
+ x = list->listWindow.unk2 * 8 + (list->listWindow.unk4 - 1) * 4;
+ spriteId = CreateSprite(&sMatchCallUpDownArrowSprite, x, list->listWindow.unk3 * 8 + windowState->visibleEntries * 16, 7);
+ list->downArrow = &gSprites[spriteId];
+ list->downArrow->oam.tileNum += 2;
+ list->downArrow->callback = SpriteCB_MatchCallDownArrow;
- spriteId = CreateSprite(&sMatchCallUpDownArrowSprite, x, a1->unk0.unk3 * 8, 7);
- a1->upArrow = &gSprites[spriteId];
- a1->upArrow->oam.tileNum += 4;
- a1->upArrow->callback = SpriteCB_MatchCallUpArrow;
+ spriteId = CreateSprite(&sMatchCallUpDownArrowSprite, x, list->listWindow.unk3 * 8, 7);
+ list->upArrow = &gSprites[spriteId];
+ list->upArrow->oam.tileNum += 4;
+ list->upArrow->callback = SpriteCB_MatchCallUpArrow;
}
-void sub_81C8FE0(struct PokenavSub17Substruct *a0)
+void DestroyMatchCallListArrows(struct PokenavSub17Substruct *list)
{
- DestroySprite(a0->rightArrow);
- DestroySprite(a0->upArrow);
- DestroySprite(a0->downArrow);
+ DestroySprite(list->rightArrow);
+ DestroySprite(list->upArrow);
+ DestroySprite(list->downArrow);
FreeSpriteTilesByTag(0xA);
FreeSpritePaletteByTag(0x14);
}
-void ToggleMatchCallArrows(struct PokenavSub17Substruct *a0, bool32 shouldHide)
+void ToggleMatchCallArrows(struct PokenavSub17Substruct *list, bool32 shouldHide)
{
if (shouldHide)
{
- a0->rightArrow->callback = SpriteCallbackDummy;
- a0->upArrow->callback = SpriteCallbackDummy;
- a0->downArrow->callback = SpriteCallbackDummy;
+ list->rightArrow->callback = SpriteCallbackDummy;
+ list->upArrow->callback = SpriteCallbackDummy;
+ list->downArrow->callback = SpriteCallbackDummy;
}
else
{
- a0->rightArrow->callback = SpriteCB_MatchCallRightArrow;
- a0->upArrow->callback = SpriteCB_MatchCallUpArrow;
- a0->downArrow->callback = SpriteCB_MatchCallDownArrow;
+ list->rightArrow->callback = SpriteCB_MatchCallRightArrow;
+ list->upArrow->callback = SpriteCB_MatchCallUpArrow;
+ list->downArrow->callback = SpriteCB_MatchCallDownArrow;
}
- a0->rightArrow->invisible = shouldHide;
- a0->upArrow->invisible = shouldHide;
- a0->downArrow->invisible = shouldHide;
+ list->rightArrow->invisible = shouldHide;
+ list->upArrow->invisible = shouldHide;
+ list->downArrow->invisible = shouldHide;
}
void SpriteCB_MatchCallRightArrow(struct Sprite *sprite)
{
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
sprite->pos2.y = structPtr->unk888.selectedIndexOffset << 4;
}
@@ -931,68 +931,68 @@ void SpriteCB_MatchCallUpArrow(struct Sprite *sprite)
void ToggleMatchCallVerticalArrows(bool32 shouldHide)
{
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
- structPtr->unk0.upArrow->data[7] = shouldHide;
- structPtr->unk0.downArrow->data[7] = shouldHide;
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
+ structPtr->list.upArrow->data[7] = shouldHide;
+ structPtr->list.downArrow->data[7] = shouldHide;
}
-void sub_81C9160(struct MatchCallWindowState *a0, struct PokenavListTemplate *a1)
+void InitMatchCallWindowState(struct MatchCallWindowState *dst, struct PokenavListTemplate *template)
{
- a0->unk10 = a1->list.matchCallEntries;
- a0->windowTopIndex = a1->unk6;
- a0->listLength = a1->unk4;
- a0->unkC = a1->unk8;
- a0->visibleEntries = a1->unkC;
- if (a0->visibleEntries >= a0->listLength)
+ dst->unk10 = template->list.matchCallEntries;
+ dst->windowTopIndex = template->unk6;
+ dst->listLength = template->count;
+ dst->unkC = template->unk8;
+ dst->visibleEntries = template->maxShowed;
+ if (dst->visibleEntries >= dst->listLength)
{
- a0->windowTopIndex = 0;
- a0->unk4 = 0;
- a0->selectedIndexOffset = a1->unk6;
+ dst->windowTopIndex = 0;
+ dst->unk4 = 0;
+ dst->selectedIndexOffset = template->unk6;
}
else
{
- a0->unk4 = a0->listLength - a0->visibleEntries;
- if (a0->windowTopIndex + a0->visibleEntries > a0->listLength)
+ dst->unk4 = dst->listLength - dst->visibleEntries;
+ if (dst->windowTopIndex + dst->visibleEntries > dst->listLength)
{
- a0->selectedIndexOffset = a0->windowTopIndex + a0->visibleEntries - a0->listLength;
- a0->windowTopIndex = a1->unk6 - a0->selectedIndexOffset;
+ dst->selectedIndexOffset = dst->windowTopIndex + dst->visibleEntries - dst->listLength;
+ dst->windowTopIndex = template->unk6 - dst->selectedIndexOffset;
}
else
{
- a0->selectedIndexOffset = 0;
+ dst->selectedIndexOffset = 0;
}
}
}
-bool32 sub_81C91AC(struct PokenavSub17Substruct *a0, const struct BgTemplate *a1, struct PokenavListTemplate *a2, s32 a3)
+bool32 CopyPokenavListMenuTemplate(struct PokenavSub17Substruct *dest, const struct BgTemplate *bgTemplate, struct PokenavListTemplate *template, s32 a3)
{
struct WindowTemplate window;
- a0->unk0.bg = a1->bg;
- a0->unk0.unk6 = a3;
- a0->unk34 = a2->listFunc.unk10_2;
- a0->unk38 = a2->unk14;
- a0->unk0.unk1 = a2->unkD;
- a0->unk0.unk2 = a2->unk9;
- a0->unk0.unk3 = a2->unkB;
- a0->unk0.unk4 = a2->unkA;
- a0->unk0.fontId = a2->unkE;
-
- window.bg = a1->bg;
- window.tilemapLeft = a2->unk9;
+ dest->listWindow.bg = bgTemplate->bg;
+ dest->listWindow.unk6 = a3;
+ dest->unk34 = template->listFunc.unk10_2;
+ dest->unk38 = template->unk14;
+ dest->listWindow.unk1 = template->fillValue;
+ dest->listWindow.unk2 = template->item_X;
+ dest->listWindow.unk3 = template->listTop;
+ dest->listWindow.unk4 = template->windowWidth;
+ dest->listWindow.fontId = template->fontId;
+
+ window.bg = bgTemplate->bg;
+ window.tilemapLeft = template->item_X;
window.tilemapTop = 0;
- window.width = a2->unkA;
+ window.width = template->windowWidth;
window.height = 32;
- window.paletteNum = a2->unkD;
+ window.paletteNum = template->fillValue;
window.baseBlock = a3 + 2;
- a0->unk0.windowId = AddWindow(&window);
- if (a0->unk0.windowId == 0xFF)
+ dest->listWindow.windowId = AddWindow(&window);
+ if (dest->listWindow.windowId == 0xFF)
return FALSE;
- a0->unk0.unkA = 0;
- a0->rightArrow = NULL;
- a0->upArrow = NULL;
- a0->downArrow = NULL;
+ dest->listWindow.unkA = 0;
+ dest->rightArrow = NULL;
+ dest->upArrow = NULL;
+ dest->downArrow = NULL;
return 1;
}