diff options
Diffstat (limited to 'src/pokenav_menu_handler_2.c')
-rw-r--r-- | src/pokenav_menu_handler_2.c | 71 |
1 files changed, 33 insertions, 38 deletions
diff --git a/src/pokenav_menu_handler_2.c b/src/pokenav_menu_handler_2.c index 94b816b6d..1dfbf3417 100644 --- a/src/pokenav_menu_handler_2.c +++ b/src/pokenav_menu_handler_2.c @@ -17,26 +17,24 @@ #include "constants/songs.h" #include "constants/rgb.h" -// Top Menu - struct Pokenav2Struct { - bool32 (*callback)(void); + bool32 (*isTaskActiveCB)(void); u32 loopedTaskId; u16 optionDescWindowId; u8 bg3ScrollTaskId; u8 cursorPos; bool8 otherIconsInMotion; - u8 field_00d; + bool8 pokenavAlreadyOpen; bool32 iconVisible[MAX_POKENAV_MENUITEMS]; struct Sprite * field_028; struct Sprite * iconSprites[MAX_POKENAV_MENUITEMS][4]; u16 bg1TilemapBuffer[0x400]; }; -static struct Pokenav2Struct * sub_81C9958(void); -static bool32 sub_81C99FC(void); -static u32 sub_81C9A10(s32 state); +static struct Pokenav2Struct * OpenPokenavMenu(void); +static bool32 GetCurrentLoopedTaskActive(void); +static u32 LoopedTask_OpenMenu(s32 state); static u32 LoopedTask_MoveMenuCursor(s32 state); static u32 LoopedTask_OpenConditionMenu(s32 state); static u32 LoopedTask_ReturnToMainMenu(s32 state); @@ -337,59 +335,56 @@ static bool32 sub_81C98D4(void) return FALSE; } -bool32 sub_81C9924(void) +bool32 OpenPokenavMenuInitial(void) { - struct Pokenav2Struct * unk = sub_81C9958(); + struct Pokenav2Struct * state = OpenPokenavMenu(); - if (unk == NULL) + if (state == NULL) return FALSE; - unk->field_00d = 0; + state->pokenavAlreadyOpen = FALSE; return TRUE; } -bool32 sub_81C9940(void) +bool32 OpenPokenavMenuNotInitial(void) { - struct Pokenav2Struct * unk = sub_81C9958(); + struct Pokenav2Struct * state = OpenPokenavMenu(); - if (unk == NULL) + if (state == NULL) return FALSE; - unk->field_00d = 1; + state->pokenavAlreadyOpen = TRUE; return TRUE; } -static struct Pokenav2Struct * sub_81C9958(void) +static struct Pokenav2Struct * OpenPokenavMenu(void) { - struct Pokenav2Struct * unk = AllocSubstruct(2, sizeof(struct Pokenav2Struct)); + struct Pokenav2Struct * state = AllocSubstruct(2, sizeof(struct Pokenav2Struct)); - if (unk != NULL) + if (state != NULL) { - unk->otherIconsInMotion = FALSE; - unk->loopedTaskId = CreateLoopedTask(sub_81C9A10, 1); - unk->callback = sub_81C99FC; + state->otherIconsInMotion = FALSE; + state->loopedTaskId = CreateLoopedTask(LoopedTask_OpenMenu, 1); + state->isTaskActiveCB = GetCurrentLoopedTaskActive; } - return unk; + return state; } - void CreateMenuHandlerLoopedTask(s32 ltIdx) { - struct Pokenav2Struct * unk = GetSubstructPtr(2); - - unk->loopedTaskId = CreateLoopedTask(sMenuHandlerLoopTaskFuncs[ltIdx], 1); - unk->callback = sub_81C99FC; + struct Pokenav2Struct * state = GetSubstructPtr(2); + state->loopedTaskId = CreateLoopedTask(sMenuHandlerLoopTaskFuncs[ltIdx], 1); + state->isTaskActiveCB = GetCurrentLoopedTaskActive; } -bool32 sub_81C99C0(void) +bool32 IsMenuHandlerLoopedTaskActive(void) { - struct Pokenav2Struct * unk = GetSubstructPtr(2); - - return unk->callback(); + struct Pokenav2Struct * state = GetSubstructPtr(2); + return state->isTaskActiveCB(); } -void sub_81C99D4(void) +void FreeMenuHandlerSubstruct2(void) { struct Pokenav2Struct * unk = GetSubstructPtr(2); @@ -400,14 +395,14 @@ void sub_81C99D4(void) FreePokenavSubstruct(2); } -static bool32 sub_81C99FC(void) +static bool32 GetCurrentLoopedTaskActive(void) { struct Pokenav2Struct * unk = GetSubstructPtr(2); return IsLoopedTaskActive(unk->loopedTaskId); } -static u32 sub_81C9A10(s32 state) +static u32 LoopedTask_OpenMenu(s32 state) { struct Pokenav2Struct * unk = GetSubstructPtr(2); @@ -466,12 +461,12 @@ static u32 sub_81C9A10(s32 state) ShowBg(1); ShowBg(2); ShowBg(3); - if (unk->field_00d) - sub_81C7AC0(1); + if (unk->pokenavAlreadyOpen) + PokenavFadeScreen(1); else { PlaySE(SE_PN_ON); - sub_81C7AC0(3); + PokenavFadeScreen(3); } switch (GetPokenavMenuType()) { @@ -741,7 +736,7 @@ static u32 LoopedTask_OpenPokenavFeature(s32 state) return LT_PAUSE; if (sub_81C8010()) return LT_PAUSE; - sub_81C7AC0(0); + PokenavFadeScreen(0); return LT_INC_AND_PAUSE; case 3: if (IsPaletteFadeActive()) |