diff options
Diffstat (limited to 'src/pokenav_ribbons_1.c')
-rw-r--r-- | src/pokenav_ribbons_1.c | 414 |
1 files changed, 214 insertions, 200 deletions
diff --git a/src/pokenav_ribbons_1.c b/src/pokenav_ribbons_1.c index fd47b27ad..9c171dd45 100644 --- a/src/pokenav_ribbons_1.c +++ b/src/pokenav_ribbons_1.c @@ -8,16 +8,28 @@ #include "international_string_util.h" #include "constants/songs.h" +enum +{ + RIBBONS_MON_LIST_FUNC_NONE, + RIBBONS_MON_LIST_FUNC_MOVE_UP, + RIBBONS_MON_LIST_FUNC_MOVE_DOWN, + RIBBONS_MON_LIST_FUNC_PAGE_UP, + RIBBONS_MON_LIST_FUNC_PAGE_DOWN, + RIBBONS_MON_LIST_FUNC_EXIT, + RIBBONS_MON_LIST_FUNC_OPEN_RIBBONS_SUMMARY +}; + + struct PokenavSub9 { - u32 (*unk0)(struct PokenavSub9*); + u32 (*callback)(struct PokenavSub9*); u32 loopedTaskId; u16 winid; - s32 unkC; - s32 unk10; - u32 unk14; - u32 unk18; - struct PokenavSub18 *unk1C; + s32 boxId; + s32 monId; + u32 changeBgs; + u32 saveMonList; + struct PokenavSub18 *monList; }; struct PokenavSub10 @@ -25,46 +37,46 @@ struct PokenavSub10 bool32 (*callback)(void); u32 ltid; u16 winid; - bool32 unkC; + bool32 fromSummary; u8 buff[BG_SCREEN_SIZE]; }; -static u32 sub_81CFA68(struct PokenavSub9 *structPtr); -static u32 sub_81CFA88(struct PokenavSub9 *structPtr); -static u32 sub_81CFB08(struct PokenavSub9 *structPtr); +static u32 HandleRibbonsMonListInput_WaitListInit(struct PokenavSub9 *structPtr); +static u32 HandleRibbonsMonListInput(struct PokenavSub9 *structPtr); +static u32 RibbonsMonMenu_ReturnToMainMenu(struct PokenavSub9 *structPtr); static u32 sub_81CFB10(struct PokenavSub9 *structPtr); -static u32 sub_81CFB8C(s32 state); -static u32 sub_81CFC2C(s32 state); -static u32 sub_81CFC40(s32 state); -static u32 sub_81CFB74(s32 state); +static u32 BuildPartyMonRibbonList(s32 state); +static u32 InitBoxMonRibbonList(s32 state); +static u32 BuildBoxMonRibbonList(s32 state); +static u32 GetMonRibbonListLoopTaskFunc(s32 state); static void sub_81CFCEC(struct PokenavSub9 *structPtr, struct PokenavMonList *item); -static u32 sub_81CFEB8(s32 state); -static bool32 sub_81CFE84(void); -static u32 sub_81CFFFC(s32 state); -static u32 sub_81D0074(s32 state); -static u32 sub_81D00EC(s32 state); -static u32 sub_81D0164(s32 state); -static u32 sub_81D01DC(s32 state); -static u32 sub_81D021C(s32 state); +static u32 LoopedTask_OpenRibbonsMonList(s32 state); +static bool32 GetRibbonsMonCurrentLoopedTaskActive(void); +static u32 LoopedTask_RibbonsListMoveCursorUp(s32 state); +static u32 LoopedTask_RibbonsListMoveCursorDown(s32 state); +static u32 LoopedTask_RibbonsListMovePageUp(s32 state); +static u32 LoopedTask_RibbonsListMovePageDown(s32 state); +static u32 LoopedTask_RibbonsListReturnToMainMenu(s32 state); +static u32 LoopedTask_RibbonsListOpenSummary(s32 state); static void sub_81D02B0(s32 windowId, s32 val1, s32 val2); -static void sub_81D024C(struct PokenavSub10 *ptr); +static void AddRibbonsMonListWindow(struct PokenavSub10 *ptr); static void sub_81D0288(struct PokenavSub10 *ptr); -static void sub_81D0304(void); +static void InitMonRibbonPokenavListMenuTemplate(void); static void BufferRibbonMonInfoText(struct PokenavMonList *, u8 *); -static const LoopedTask gUnknown_086235D8[] = +static const LoopedTask sMonRibbonListLoopTaskFuncs[] = { - sub_81CFB8C, - sub_81CFC2C, - sub_81CFC40 + BuildPartyMonRibbonList, + InitBoxMonRibbonList, + BuildBoxMonRibbonList }; -static const u16 gUnknown_086235E4[] = INCBIN_U16("graphics/pokenav/ui_ribbons.gbapal"); -static const u32 gUnknown_08623604[] = INCBIN_U32("graphics/pokenav/ui_ribbons.4bpp.lz"); -static const u32 gUnknown_086236CC[] = INCBIN_U32("graphics/pokenav/ui_ribbons.bin.lz"); +static const u16 sMonRibbonListFramePal[] = INCBIN_U16("graphics/pokenav/ui_ribbons.gbapal"); +static const u32 sMonRibbonListFrameTiles[] = INCBIN_U32("graphics/pokenav/ui_ribbons.4bpp.lz"); +static const u32 sMonRibbonListFrameTilemap[] = INCBIN_U32("graphics/pokenav/ui_ribbons.bin.lz"); static const u16 gUnknown_08623790[] = INCBIN_U16("graphics/pokenav/8623790.gbapal"); -static const struct BgTemplate gUnknown_086237B0[] = +static const struct BgTemplate sMonRibbonListBgTemplates[] = { { .bg = 1, @@ -85,18 +97,18 @@ static const struct BgTemplate gUnknown_086237B0[] = } }; -static const LoopedTask gUnknown_086237B8[] = +static const LoopedTask sRibbonsMonMenuLoopTaskFuncs[] = { - NULL, - sub_81CFFFC, - sub_81D0074, - sub_81D00EC, - sub_81D0164, - sub_81D01DC, - sub_81D021C + [RIBBONS_MON_LIST_FUNC_NONE] = NULL, + [RIBBONS_MON_LIST_FUNC_MOVE_UP] = LoopedTask_RibbonsListMoveCursorUp, + [RIBBONS_MON_LIST_FUNC_MOVE_DOWN] = LoopedTask_RibbonsListMoveCursorDown, + [RIBBONS_MON_LIST_FUNC_PAGE_UP] = LoopedTask_RibbonsListMovePageUp, + [RIBBONS_MON_LIST_FUNC_PAGE_DOWN] = LoopedTask_RibbonsListMovePageDown, + [RIBBONS_MON_LIST_FUNC_EXIT] = LoopedTask_RibbonsListReturnToMainMenu, + [RIBBONS_MON_LIST_FUNC_OPEN_RIBBONS_SUMMARY] = LoopedTask_RibbonsListOpenSummary }; -static const struct WindowTemplate gUnknown_086237D4 = +static const struct WindowTemplate sRibbonsMonListWindowTemplate = { .bg = 1, .tilemapLeft = 1, @@ -111,135 +123,136 @@ static const u8 sText_MaleSymbol[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHIT static const u8 sText_FemaleSymbol[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}"); static const u8 sText_NoGenderSymbol[] = _("{UNK_SPACER}"); -bool32 PokenavCallback_Init_12(void) +bool32 PokenavCallback_Init_MonRibbonList(void) { - struct PokenavSub9 *structPtr = AllocSubstruct(9, sizeof(struct PokenavSub9)); + struct PokenavSub9 *structPtr = AllocSubstruct(POKENAV_SUBSTRUCT_RIBBONS_MON_LIST, sizeof(struct PokenavSub9)); if (structPtr == NULL) return FALSE; - structPtr->unk1C = AllocSubstruct(18, sizeof(struct PokenavSub18)); - if (structPtr->unk1C == NULL) + structPtr->monList = AllocSubstruct(POKENAV_SUBSTRUCT_MON_LIST, sizeof(struct PokenavSub18)); + if (structPtr->monList == NULL) return FALSE; - structPtr->unk0 = sub_81CFA68; - structPtr->loopedTaskId = CreateLoopedTask(sub_81CFB74, 1); - structPtr->unk14 = 0; + structPtr->callback = HandleRibbonsMonListInput_WaitListInit; + structPtr->loopedTaskId = CreateLoopedTask(GetMonRibbonListLoopTaskFunc, 1); + structPtr->changeBgs = 0; return TRUE; } -bool32 PokenavCallback_Init_14(void) +bool32 PokenavCallback_Init_RibbonsMonListFromSummary(void) { - struct PokenavSub9 *structPtr = AllocSubstruct(9, sizeof(struct PokenavSub9)); + struct PokenavSub9 *structPtr = AllocSubstruct(POKENAV_SUBSTRUCT_RIBBONS_MON_LIST, sizeof(struct PokenavSub9)); if (structPtr == NULL) return FALSE; - structPtr->unk1C = GetSubstructPtr(18); - structPtr->unk0 = sub_81CFA88; - structPtr->unk14 = 1; + structPtr->monList = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_LIST); + structPtr->callback = HandleRibbonsMonListInput; + structPtr->changeBgs = 1; return TRUE; } -u32 sub_81CFA34(void) +u32 GetRibbonsMonListCallback(void) { - struct PokenavSub9 *structPtr = GetSubstructPtr(9); - return structPtr->unk0(structPtr); + struct PokenavSub9 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_LIST); + return structPtr->callback(structPtr); } -void sub_81CFA48(void) +void FreeRibbonsMonList1(void) { - struct PokenavSub9 *structPtr = GetSubstructPtr(9); - if (!structPtr->unk18) - FreePokenavSubstruct(18); - FreePokenavSubstruct(9); + struct PokenavSub9 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_LIST); + if (!structPtr->saveMonList) + FreePokenavSubstruct(POKENAV_SUBSTRUCT_MON_LIST); + FreePokenavSubstruct(POKENAV_SUBSTRUCT_RIBBONS_MON_LIST); } -static u32 sub_81CFA68(struct PokenavSub9 *structPtr) +static u32 HandleRibbonsMonListInput_WaitListInit(struct PokenavSub9 *structPtr) { if (!IsLoopedTaskActive(structPtr->loopedTaskId)) - structPtr->unk0 = sub_81CFA88; + structPtr->callback = HandleRibbonsMonListInput; return 0; } -static u32 sub_81CFA88(struct PokenavSub9 *structPtr) +static u32 HandleRibbonsMonListInput(struct PokenavSub9 *structPtr) { if (JOY_REPEAT(DPAD_UP)) - return 1; + return RIBBONS_MON_LIST_FUNC_MOVE_UP; if (JOY_REPEAT(DPAD_DOWN)) - return 2; + return RIBBONS_MON_LIST_FUNC_MOVE_DOWN; if (JOY_NEW(DPAD_LEFT)) - return 3; + return RIBBONS_MON_LIST_FUNC_PAGE_UP; if (JOY_NEW(DPAD_RIGHT)) - return 4; + return RIBBONS_MON_LIST_FUNC_PAGE_DOWN; if (JOY_NEW(B_BUTTON)) { - structPtr->unk18 = 0; - structPtr->unk0 = sub_81CFB08; - return 5; + structPtr->saveMonList = 0; + structPtr->callback = RibbonsMonMenu_ReturnToMainMenu; + return RIBBONS_MON_LIST_FUNC_EXIT; } if (JOY_NEW(A_BUTTON)) { - structPtr->unk1C->unk2 = GetSelectedMatchCall(); - structPtr->unk18 = 1; - structPtr->unk0 = sub_81CFB10; - return 6; + structPtr->monList->currIndex = GetSelectedPokenavListIndex(); + structPtr->saveMonList = 1; + structPtr->callback = sub_81CFB10; + return RIBBONS_MON_LIST_FUNC_OPEN_RIBBONS_SUMMARY; } - return 0; + return RIBBONS_MON_LIST_FUNC_NONE; } -static u32 sub_81CFB08(struct PokenavSub9 *structPtr) +static u32 RibbonsMonMenu_ReturnToMainMenu(struct PokenavSub9 *structPtr) { return POKENAV_MAIN_MENU_CURSOR_ON_RIBBONS; } static u32 sub_81CFB10(struct PokenavSub9 *structPtr) { - return POKENAV_MENU_D; + return POKENAV_RIBBONS_SUMMARY_SCREEN; } -static u32 sub_81CFB18(void) +static u32 UpdateMonListBgs(void) { - struct PokenavSub9 *structPtr = GetSubstructPtr(9); - return structPtr->unk14; + struct PokenavSub9 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_LIST); + return structPtr->changeBgs; } -static struct PokenavMonList * sub_81CFB28(void) +static struct PokenavMonList *GetMonRibbonMonListData(void) { - struct PokenavSub9 * ptr = GetSubstructPtr(9); - return ptr->unk1C->unk4; + struct PokenavSub9 * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_LIST); + return ptr->monList->monData; } -static s32 sub_81CFB38(void) +static s32 GetRibbonsMonListCount(void) { - struct PokenavSub9 * ptr = GetSubstructPtr(9); - return ptr->unk1C->unk0; + struct PokenavSub9 * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_LIST); + return ptr->monList->listCount; } -static s32 sub_81CFB48(void) +//unused +static s32 GetMonRibbonSelectedMonData(void) { - struct PokenavSub9 * ptr = GetSubstructPtr(9); - s32 idx = GetSelectedMatchCall(); - return ptr->unk1C->unk4[idx].data; + struct PokenavSub9 * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_LIST); + s32 idx = GetSelectedPokenavListIndex(); + return ptr->monList->monData[idx].data; } -static s32 sub_81CFB64(void) +static s32 GetRibbonListMenuCurrIndex(void) { - struct PokenavSub9 * ptr = GetSubstructPtr(9); - return ptr->unk1C->unk2; + struct PokenavSub9 * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_LIST); + return ptr->monList->currIndex; } -static u32 sub_81CFB74(s32 state) +static u32 GetMonRibbonListLoopTaskFunc(s32 state) { - return gUnknown_086235D8[state](state); + return sMonRibbonListLoopTaskFuncs[state](state); } -static u32 sub_81CFB8C(s32 state) +static u32 BuildPartyMonRibbonList(s32 state) { s32 i; struct PokenavMonList item; - struct PokenavSub9 * ptr = GetSubstructPtr(9); + struct PokenavSub9 * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_LIST); - ptr->unk1C->unk0 = 0; - ptr->unk1C->unk2 = 0; + ptr->monList->listCount = 0; + ptr->monList->currIndex = 0; item.boxId = TOTAL_BOXES_COUNT; for (i = 0; i < PARTY_SIZE; i++) { @@ -261,19 +274,19 @@ static u32 sub_81CFB8C(s32 state) return LT_INC_AND_CONTINUE; } -static u32 sub_81CFC2C(s32 state) +static u32 InitBoxMonRibbonList(s32 state) { - struct PokenavSub9 * ptr = GetSubstructPtr(9); - ptr->unk10 = 0; - ptr->unkC = 0; + struct PokenavSub9 *ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_LIST); + ptr->monId = 0; + ptr->boxId = 0; return LT_INC_AND_CONTINUE; } -static u32 sub_81CFC40(s32 state) +static u32 BuildBoxMonRibbonList(s32 state) { - struct PokenavSub9 * ptr = GetSubstructPtr(9); - s32 boxId = ptr->unkC; - s32 monId = ptr->unk10; + struct PokenavSub9 * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_LIST); + s32 boxId = ptr->boxId; + s32 monId = ptr->monId; s32 boxCount = 0; struct PokenavMonList item; @@ -296,8 +309,8 @@ static u32 sub_81CFC40(s32 state) monId++; if (boxCount > TOTAL_BOXES_COUNT) { - ptr->unkC = boxId; - ptr->unk10 = monId; + ptr->boxId = boxId; + ptr->monId = monId; return LT_CONTINUE; } } @@ -305,37 +318,38 @@ static u32 sub_81CFC40(s32 state) boxId++; } - ptr->unk14 = 1; + ptr->changeBgs = 1; return LT_FINISH; } static void sub_81CFCEC(struct PokenavSub9 *structPtr, struct PokenavMonList *item) { u32 left = 0; - u32 right = structPtr->unk1C->unk0; + u32 right = structPtr->monList->listCount; u32 insertionIdx = left + (right - left) / 2; while (right != insertionIdx) { - if (item->data > structPtr->unk1C->unk4[insertionIdx].data) + if (item->data > structPtr->monList->monData[insertionIdx].data) right = insertionIdx; else left = insertionIdx + 1; insertionIdx = left + (right - left) / 2; } - for (right = structPtr->unk1C->unk0; right > insertionIdx; right--) - structPtr->unk1C->unk4[right] = structPtr->unk1C->unk4[right - 1]; - structPtr->unk1C->unk4[insertionIdx] = *item; - structPtr->unk1C->unk0++; + for (right = structPtr->monList->listCount; right > insertionIdx; right--) + structPtr->monList->monData[right] = structPtr->monList->monData[right - 1]; + structPtr->monList->monData[insertionIdx] = *item; + structPtr->monList->listCount++; } -static bool32 sub_81CFD58(void) +//unused +static bool32 Unused_PlayerHasRibbonsMon(void) { s32 i, j; for (i = 0; i < PARTY_SIZE; i++) { - struct Pokemon * mon = &gPlayerParty[i]; + struct Pokemon *mon = &gPlayerParty[i]; if (!GetMonData(mon, MON_DATA_SANITY_HAS_SPECIES)) continue; if (GetMonData(mon, MON_DATA_SANITY_IS_EGG)) @@ -358,72 +372,72 @@ static bool32 sub_81CFD58(void) return FALSE; } -bool32 sub_81CFDD0(void) +bool32 OpenRibbonsMonList(void) { - struct PokenavSub10 * ptr = AllocSubstruct(10, sizeof(struct PokenavSub10)); + struct PokenavSub10 *ptr = AllocSubstruct(POKENAV_SUBSTRUCT_RIBBONS_MON_MENU, sizeof(struct PokenavSub10)); if (ptr == NULL) return FALSE; - ptr->ltid = CreateLoopedTask(sub_81CFEB8, 1); - ptr->callback = sub_81CFE84; - ptr->unkC = FALSE; + ptr->ltid = CreateLoopedTask(LoopedTask_OpenRibbonsMonList, 1); + ptr->callback = GetRibbonsMonCurrentLoopedTaskActive; + ptr->fromSummary = FALSE; return TRUE; } -bool32 sub_81CFE08(void) +bool32 OpenRibbonsMonListFromRibbonsSummary(void) { - struct PokenavSub10 * ptr = AllocSubstruct(10, sizeof(struct PokenavSub10)); - if (ptr == NULL) + struct PokenavSub10 *monMenu = AllocSubstruct(POKENAV_SUBSTRUCT_RIBBONS_MON_MENU, sizeof(struct PokenavSub10)); + if (monMenu == NULL) return FALSE; - ptr->ltid = CreateLoopedTask(sub_81CFEB8, 1); - ptr->callback = sub_81CFE84; - ptr->unkC = TRUE; + monMenu->ltid = CreateLoopedTask(LoopedTask_OpenRibbonsMonList, 1); + monMenu->callback = GetRibbonsMonCurrentLoopedTaskActive; + monMenu->fromSummary = TRUE; return TRUE; } -void sub_81CFE40(s32 idx) +void CreateRibbonsMonListLoopedTask(s32 idx) { - struct PokenavSub10 * ptr = GetSubstructPtr(10); - ptr->ltid = CreateLoopedTask(gUnknown_086237B8[idx], 1); - ptr->callback = sub_81CFE84; + struct PokenavSub10 *monMenu = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_MENU); + monMenu->ltid = CreateLoopedTask(sRibbonsMonMenuLoopTaskFuncs[idx], 1); + monMenu->callback = GetRibbonsMonCurrentLoopedTaskActive; } -bool32 sub_81CFE70(void) +bool32 IsRibbonsMonListLoopedTaskActive(void) { - struct PokenavSub10 * ptr = GetSubstructPtr(10); - return ptr->callback(); + struct PokenavSub10 *monMenu = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_MENU); + return monMenu->callback(); } -bool32 sub_81CFE84(void) +bool32 GetRibbonsMonCurrentLoopedTaskActive(void) { - struct PokenavSub10 * ptr = GetSubstructPtr(10); + struct PokenavSub10 * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_MENU); return IsLoopedTaskActive(ptr->ltid); } -void sub_81CFE98(void) +void FreeRibbonsMonList2(void) { - struct PokenavSub10 * ptr = GetSubstructPtr(10); + struct PokenavSub10 * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_MENU); sub_81C8234(); RemoveWindow(ptr->winid); - FreePokenavSubstruct(10); + FreePokenavSubstruct(POKENAV_SUBSTRUCT_RIBBONS_MON_MENU); } -static u32 sub_81CFEB8(s32 state) +static u32 LoopedTask_OpenRibbonsMonList(s32 state) { - struct PokenavSub10 * unk = GetSubstructPtr(10); + struct PokenavSub10 *monMenu = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_MENU); switch (state) { case 0: - InitBgTemplates(gUnknown_086237B0, NELEMS(gUnknown_086237B0)); - DecompressAndCopyTileDataToVram(1, gUnknown_08623604, 0, 0, 0); - SetBgTilemapBuffer(1, unk->buff); - CopyToBgTilemapBuffer(1, gUnknown_086236CC, 0, 0); - CopyPaletteIntoBufferUnfaded(gUnknown_086235E4, 0x10, 0x20); + InitBgTemplates(sMonRibbonListBgTemplates, NELEMS(sMonRibbonListBgTemplates)); + DecompressAndCopyTileDataToVram(1, sMonRibbonListFrameTiles, 0, 0, 0); + SetBgTilemapBuffer(1, monMenu->buff); + CopyToBgTilemapBuffer(1, sMonRibbonListFrameTilemap, 0, 0); + CopyPaletteIntoBufferUnfaded(sMonRibbonListFramePal, 0x10, 0x20); CopyBgTilemapBufferToVram(1); return LT_INC_AND_PAUSE; case 1: if (FreeTempTileDataBuffersIfPossible()) return LT_PAUSE; - if (!sub_81CFB18()) + if (!UpdateMonListBgs()) return LT_PAUSE; ChangeBgX(1, 0, 0); ChangeBgY(1, 0, 0); @@ -433,12 +447,12 @@ static u32 sub_81CFEB8(s32 state) if (FreeTempTileDataBuffersIfPossible()) return LT_PAUSE; CopyPaletteIntoBufferUnfaded(gUnknown_08623790, 0x20, 0x20); - sub_81D0304(); + InitMonRibbonPokenavListMenuTemplate(); return LT_INC_AND_PAUSE; case 3: if (sub_81C8224()) return LT_PAUSE; - sub_81D024C(unk); + AddRibbonsMonListWindow(monMenu); return LT_INC_AND_PAUSE; case 4: if (FreeTempTileDataBuffersIfPossible()) @@ -447,25 +461,25 @@ static u32 sub_81CFEB8(s32 state) HideBg(3); PrintHelpBarText(HELPBAR_RIBBONS_MON_LIST); PokenavFadeScreen(1); - if (!unk->unkC) + if (!monMenu->fromSummary) { - LoadLeftHeaderGfxForIndex(2); - sub_81C7FA0(2, 1, 0); + LoadLeftHeaderGfxForIndex(POKENAV_GFX_RIBBONS_MENU); + ShowLeftHeaderGfx(POKENAV_GFX_RIBBONS_MENU, 1, 0); } return LT_INC_AND_PAUSE; case 5: if (IsPaletteFadeActive()) return LT_PAUSE; - if (sub_81C8010()) + if (AreLeftHeaderSpritesMoving()) return LT_PAUSE; break; } return LT_FINISH; } -static u32 sub_81CFFFC(s32 state) +static u32 LoopedTask_RibbonsListMoveCursorUp(s32 state) { - struct PokenavSub10 * unk = GetSubstructPtr(10); + struct PokenavSub10 *monMenu = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_MENU); switch (state) { case 0: @@ -482,11 +496,11 @@ static u32 sub_81CFFFC(s32 state) } return LT_INC_AND_PAUSE; case 1: - if (sub_81C8630()) + if (IsMonListLoopedTaskActive()) return LT_PAUSE; // fallthrough case 2: - sub_81D0288(unk); + sub_81D0288(monMenu); return LT_INC_AND_PAUSE; case 3: if (IsDma3ManagerBusyWithBgCopy()) @@ -496,9 +510,9 @@ static u32 sub_81CFFFC(s32 state) return LT_FINISH; } -static u32 sub_81D0074(s32 state) +static u32 LoopedTask_RibbonsListMoveCursorDown(s32 state) { - struct PokenavSub10 * unk = GetSubstructPtr(10); + struct PokenavSub10 *monMenu = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_MENU); switch (state) { case 0: @@ -515,11 +529,11 @@ static u32 sub_81D0074(s32 state) } return LT_INC_AND_PAUSE; case 1: - if (sub_81C8630()) + if (IsMonListLoopedTaskActive()) return LT_PAUSE; // fallthrough case 2: - sub_81D0288(unk); + sub_81D0288(monMenu); return LT_INC_AND_PAUSE; case 3: if (IsDma3ManagerBusyWithBgCopy()) @@ -529,9 +543,9 @@ static u32 sub_81D0074(s32 state) return LT_FINISH; } -static u32 sub_81D00EC(s32 state) +static u32 LoopedTask_RibbonsListMovePageUp(s32 state) { - struct PokenavSub10 * unk = GetSubstructPtr(10); + struct PokenavSub10 *monMenu = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_MENU); switch (state) { case 0: @@ -548,11 +562,11 @@ static u32 sub_81D00EC(s32 state) } return LT_INC_AND_PAUSE; case 1: - if (sub_81C8630()) + if (IsMonListLoopedTaskActive()) return LT_PAUSE; // fallthrough case 2: - sub_81D0288(unk); + sub_81D0288(monMenu); return LT_INC_AND_PAUSE; case 3: if (IsDma3ManagerBusyWithBgCopy()) @@ -562,9 +576,9 @@ static u32 sub_81D00EC(s32 state) return LT_FINISH; } -static u32 sub_81D0164(s32 state) +static u32 LoopedTask_RibbonsListMovePageDown(s32 state) { - struct PokenavSub10 * unk = GetSubstructPtr(10); + struct PokenavSub10 *monMenu = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_MENU); switch (state) { case 0: @@ -581,11 +595,11 @@ static u32 sub_81D0164(s32 state) } return LT_INC_AND_PAUSE; case 1: - if (sub_81C8630()) + if (IsMonListLoopedTaskActive()) return LT_PAUSE; // fallthrough case 2: - sub_81D0288(unk); + sub_81D0288(monMenu); return LT_INC_AND_PAUSE; case 3: if (IsDma3ManagerBusyWithBgCopy()) @@ -595,27 +609,27 @@ static u32 sub_81D0164(s32 state) return LT_FINISH; } -static u32 sub_81D01DC(s32 state) +static u32 LoopedTask_RibbonsListReturnToMainMenu(s32 state) { switch (state) { case 0: PlaySE(SE_SELECT); PokenavFadeScreen(0); - sub_81C78A0(); + SlideMenuHeaderDown(); return LT_INC_AND_PAUSE; case 1: if (IsPaletteFadeActive()) return LT_PAUSE; if (MainMenuLoopedTaskIsBusy()) return LT_PAUSE; - sub_81C7FDC(); + SetLeftHeaderSpritesInvisibility(); break; } return LT_FINISH; } -static u32 sub_81D021C(s32 state) +static u32 LoopedTask_RibbonsListOpenSummary(s32 state) { switch (state) { @@ -631,23 +645,23 @@ static u32 sub_81D021C(s32 state) return LT_FINISH; } -static void sub_81D024C(struct PokenavSub10 * ptr) +static void AddRibbonsMonListWindow(struct PokenavSub10 *monMenu) { s32 r2; - ptr->winid = AddWindow(&gUnknown_086237D4); - PutWindowTilemap(ptr->winid); - r2 = sub_81CFB38(); - sub_81D02B0(ptr->winid, 0, r2); - CopyWindowToVram(ptr->winid, 1); - sub_81D0288(ptr); + monMenu->winid = AddWindow(&sRibbonsMonListWindowTemplate); + PutWindowTilemap(monMenu->winid); + r2 = GetRibbonsMonListCount(); + sub_81D02B0(monMenu->winid, 0, r2); + CopyWindowToVram(monMenu->winid, 1); + sub_81D0288(monMenu); } -static void sub_81D0288(struct PokenavSub10 * ptr) +static void sub_81D0288(struct PokenavSub10 *monMenu) { - s32 r4 = GetSelectedMatchCall(); - s32 r2 = sub_81CFB38(); - sub_81D02B0(ptr->winid, r4 + 1, r2); - CopyWindowToVram(ptr->winid, 2); + s32 r4 = GetSelectedPokenavListIndex(); + s32 r2 = GetRibbonsMonListCount(); + sub_81D02B0(monMenu->winid, r4 + 1, r2); + CopyWindowToVram(monMenu->winid, 2); } static void sub_81D02B0(s32 windowId, s32 val1, s32 val2) @@ -663,22 +677,22 @@ static void sub_81D02B0(s32 windowId, s32 val1, s32 val2) AddTextPrinterParameterized(windowId, 1, strbuf, x, 1, 0xFF, NULL); } -static void sub_81D0304(void) +static void InitMonRibbonPokenavListMenuTemplate(void) { struct PokenavListTemplate template; - template.list.monList = sub_81CFB28(); - template.unk4 = sub_81CFB38(); + template.list.monList = GetMonRibbonMonListData(); + template.count = GetRibbonsMonListCount(); template.unk8 = 4; - template.unk6 = sub_81CFB64(); - template.unk9 = 13; - template.unkA = 17; - template.unkB = 1; - template.unkC = 8; - template.unkD = 2; - template.unkE = 1; - template.listFunc.unk10_1 = BufferRibbonMonInfoText; + template.unk6 = GetRibbonListMenuCurrIndex(); + template.item_X = 13; + template.windowWidth = 17; + template.listTop = 1; + template.maxShowed = 8; + template.fillValue = 2; + template.fontId = 1; + template.listFunc.printMonFunc = BufferRibbonMonInfoText; template.unk14 = NULL; - sub_81C81D4(&gUnknown_086237B0[1], &template, 0); + sub_81C81D4(&sMonRibbonListBgTemplates[1], &template, 0); } // Buffers the "Nickname gender/level" text for the ribbon mon list |