mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-11-16 19:47:35 +01:00
Cleanup some pokenav code
This commit is contained in:
parent
1268691410
commit
065c60544d
@ -1506,7 +1506,7 @@ sub_81CBE50: @ 81CBE50
|
||||
movs r0, 0x9
|
||||
bl GetGameStat
|
||||
adds r1, r0, 0
|
||||
ldr r0, =0x0001869f @ Note to decompiler: See UNKNOWN_POKENAV_OFFSET
|
||||
ldr r0, =0x0001869f
|
||||
cmp r1, r0
|
||||
ble _081CBE68
|
||||
adds r1, r0, 0
|
||||
|
@ -1,7 +1,7 @@
|
||||
#ifndef GUARD_POKENAV_H
|
||||
#define GUARD_POKENAV_H
|
||||
|
||||
typedef u32 (*LoopedTask)(s32 state);
|
||||
typedef u32 (*LoopedTask)(int state);
|
||||
|
||||
// Return values of LoopedTask functions.
|
||||
#define LT_INC_AND_PAUSE 0
|
||||
@ -11,7 +11,32 @@ typedef u32 (*LoopedTask)(s32 state);
|
||||
#define LT_FINISH 4
|
||||
#define LT_SET_STATE(newState) (newState + 5)
|
||||
|
||||
#define UNKNOWN_POKENAV_OFFSET 100000
|
||||
enum
|
||||
{
|
||||
POKENAV_MODE_NORMAL, // Chosen from Start menu.
|
||||
POKENAV_MODE_FORCE_CALL_1, // Used for the script's special. Has to choose Match Call and make a call.
|
||||
POKENAV_MODE_FORCE_CALL_2, // Set after making a call, has to exit Pokenav.
|
||||
};
|
||||
|
||||
#define POKENAV_MENU_IDS_START 100000
|
||||
enum
|
||||
{
|
||||
POKENAV_MENU_0 = POKENAV_MENU_IDS_START,
|
||||
POKENAV_MENU_1,
|
||||
POKENAV_MENU_2,
|
||||
POKENAV_MENU_3,
|
||||
POKENAV_MENU_4,
|
||||
POKENAV_MENU_5,
|
||||
POKENAV_MENU_6,
|
||||
POKENAV_MENU_7,
|
||||
POKENAV_MENU_8,
|
||||
POKENAV_MENU_9,
|
||||
POKENAV_MENU_A,
|
||||
POKENAV_MENU_B,
|
||||
POKENAV_MENU_C,
|
||||
POKENAV_MENU_D,
|
||||
POKENAV_MENU_E,
|
||||
};
|
||||
|
||||
// pokenav.c
|
||||
void sub_81C7694(u32);
|
||||
@ -31,6 +56,12 @@ bool32 CanViewRibbonsMenu(void);
|
||||
|
||||
// pokenav_match_call_ui.c
|
||||
|
||||
// pokenav_main_menu.c
|
||||
bool32 InitPokenavMainMenu(void);
|
||||
void CopyPaletteIntoBufferUnfaded(const u16 *palette, u32 bufferOffset, u32 size);
|
||||
void sub_81C7850(u32 a0);
|
||||
u32 sub_81C786C(void);
|
||||
|
||||
// pokenav_unk_1.c
|
||||
bool32 sub_81C9298(void);
|
||||
bool32 sub_81C92CC(void);
|
||||
@ -43,6 +74,7 @@ int sub_81C9894(void);
|
||||
|
||||
// pokenav_unk_2.c
|
||||
u32 sub_81C99D4(void);
|
||||
void sub_81CAADC(void);
|
||||
|
||||
|
||||
#endif //GUARD_POKENAV_H
|
||||
|
@ -4039,7 +4039,7 @@ void sub_80C0460(u16 weight, u8 left, u8 top)
|
||||
lsls r2, 24\n\
|
||||
lsrs r2, 24\n\
|
||||
str r2, [sp, 0x10]\n\
|
||||
ldr r5, =0x000186a0 @ Note to decompiler: See UNKNOWN_POKENAV_OFFSET\n\
|
||||
ldr r5, =0x000186a0\n\
|
||||
muls r0, r5\n\
|
||||
ldr r1, =0x000011b8\n\
|
||||
bl __divsi3\n\
|
||||
@ -4073,7 +4073,7 @@ _080C04C0:\n\
|
||||
mov r8, r1\n\
|
||||
movs r6, 0x1\n\
|
||||
_080C04C6:\n\
|
||||
ldr r1, =0x000186a0 @ Note to decompiler: See UNKNOWN_POKENAV_OFFSET\n\
|
||||
ldr r1, =0x000186a0\n\
|
||||
adds r0, r7, 0\n\
|
||||
bl __umodsi3\n\
|
||||
adds r7, r0, 0\n\
|
||||
|
@ -8,13 +8,6 @@
|
||||
#include "pokemon_storage_system.h"
|
||||
#include "pokenav.h"
|
||||
|
||||
enum
|
||||
{
|
||||
MODE_NORMAL, // Chosen from Start menu.
|
||||
MODE_FORCE_CALL_1, // Used for the script's special. Has to choose Match Call and make a call.
|
||||
MODE_FORCE_CALL_2, // Set after making a call, has to exit Pokenav.
|
||||
};
|
||||
|
||||
#define LOOPED_TASK_DECODE_STATE(action) (action - 5)
|
||||
|
||||
#define LOOPED_TASK_ID(primary, secondary) (((secondary) << 16) |(primary))
|
||||
@ -96,17 +89,14 @@ extern u32 sub_81D09F4(void);
|
||||
extern u32 sub_81CFA04(void);
|
||||
extern u32 sub_81CFE08(void);
|
||||
|
||||
bool32 SetActivePokenavMenu(u32 a0);
|
||||
bool32 InitPokenavMainMenu(void);
|
||||
static bool32 SetActivePokenavMenu(u32 menuId);
|
||||
static bool32 AnyMonHasRibbon(void);
|
||||
u32 sub_81C75E0(void);
|
||||
u32 sub_81C75D4(void);
|
||||
u32 PokenavMainMenuLoopedTaskIsActive(void);
|
||||
u32 sub_81C786C(void);
|
||||
bool32 WaitForPokenavShutdownFade(void);
|
||||
void sub_81C7834(void *func1, void *func2);
|
||||
static void InitPokenavResources(struct PokenavResources *a0);
|
||||
void sub_81C7850(u32 a0);
|
||||
void Task_RunLoopedTask_LinkMode(u8 a0);
|
||||
void Task_RunLoopedTask(u8 taskId);
|
||||
void sub_81C742C(u8 taskId);
|
||||
@ -117,7 +107,6 @@ static void VBlankCB_Pokenav(void);
|
||||
static void CB2_Pokenav(void);
|
||||
void sub_81C72BC(void);
|
||||
|
||||
// Const rom data.
|
||||
const struct UnknownPokenavCallbackStruct PokenavMenuCallbacks[15] =
|
||||
{
|
||||
{
|
||||
@ -291,7 +280,7 @@ bool32 IsLoopedTaskActive(u32 taskId)
|
||||
|
||||
bool32 FuncIsActiveLoopedTask(LoopedTask func)
|
||||
{
|
||||
s32 i;
|
||||
int i;
|
||||
for (i = 0; i < NUM_TASKS; i++)
|
||||
{
|
||||
if (gTasks[i].isActive
|
||||
@ -404,7 +393,7 @@ void sub_81C72BC(void)
|
||||
else
|
||||
{
|
||||
InitPokenavResources(gPokenavResources);
|
||||
gPokenavResources->mode = MODE_FORCE_CALL_1;
|
||||
gPokenavResources->mode = POKENAV_MODE_FORCE_CALL_1;
|
||||
ResetTasks();
|
||||
ResetSpriteData();
|
||||
FreeAllSpritePalettes();
|
||||
@ -417,7 +406,7 @@ void sub_81C72BC(void)
|
||||
|
||||
static void FreePokenavResources(void)
|
||||
{
|
||||
s32 i;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SUBSTRUCT_COUNT; i++)
|
||||
FreePokenavSubstruct(i);
|
||||
@ -428,12 +417,12 @@ static void FreePokenavResources(void)
|
||||
|
||||
static void InitPokenavResources(struct PokenavResources *a0)
|
||||
{
|
||||
s32 i;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SUBSTRUCT_COUNT; i++)
|
||||
a0->field10[i] = NULL;
|
||||
|
||||
a0->mode = MODE_NORMAL;
|
||||
a0->mode = POKENAV_MODE_NORMAL;
|
||||
a0->currentMenuIndex = 0;
|
||||
a0->hasAnyRibbons = AnyMonHasRibbon();
|
||||
a0->currentMenuCb1 = NULL;
|
||||
@ -441,7 +430,7 @@ static void InitPokenavResources(struct PokenavResources *a0)
|
||||
|
||||
static bool32 AnyMonHasRibbon(void)
|
||||
{
|
||||
s32 i, j;
|
||||
int i, j;
|
||||
|
||||
for (i = 0; i < PARTY_SIZE; i++)
|
||||
{
|
||||
@ -498,7 +487,7 @@ void sub_81C742C(u8 taskId)
|
||||
// Wait for LoopedTask_InitPokenavMenu to finish
|
||||
if (PokenavMainMenuLoopedTaskIsActive())
|
||||
break;
|
||||
SetActivePokenavMenu(0 + UNKNOWN_POKENAV_OFFSET);
|
||||
SetActivePokenavMenu(POKENAV_MENU_0);
|
||||
data[0] = 4;
|
||||
break;
|
||||
case 2:
|
||||
@ -512,7 +501,7 @@ void sub_81C742C(u8 taskId)
|
||||
ShutdownPokenav();
|
||||
data[0] = 5;
|
||||
}
|
||||
else if (v1 >= UNKNOWN_POKENAV_OFFSET)
|
||||
else if (v1 >= POKENAV_MENU_IDS_START)
|
||||
{
|
||||
PokenavMenuCallbacks[gPokenavResources->currentMenuIndex].unk18();
|
||||
PokenavMenuCallbacks[gPokenavResources->currentMenuIndex].unk14();
|
||||
@ -540,7 +529,7 @@ void sub_81C742C(u8 taskId)
|
||||
case 5:
|
||||
if (!WaitForPokenavShutdownFade())
|
||||
{
|
||||
bool32 calledFromScript = (gPokenavResources->mode != MODE_NORMAL);
|
||||
bool32 calledFromScript = (gPokenavResources->mode != POKENAV_MODE_NORMAL);
|
||||
|
||||
sub_81C9430();
|
||||
FreePokenavResources();
|
||||
@ -553,9 +542,9 @@ void sub_81C742C(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
bool32 SetActivePokenavMenu(u32 indexWithOffset)
|
||||
static bool32 SetActivePokenavMenu(u32 menuId)
|
||||
{
|
||||
u32 index = indexWithOffset - UNKNOWN_POKENAV_OFFSET;
|
||||
u32 index = menuId - POKENAV_MENU_IDS_START;
|
||||
|
||||
InitKeys_();
|
||||
if (!PokenavMenuCallbacks[index].unk0())
|
||||
|
@ -19,12 +19,10 @@ enum
|
||||
POKENAV_GFX_CONDITION_MENU,
|
||||
POKENAV_GFX_RIBBONS_MENU,
|
||||
POKENAV_GFX_MATCH_CALL_MENU,
|
||||
|
||||
// One of these is for the zoomed-in map, and the other is for the
|
||||
// zoomed-out map. Don't know which is which yet.
|
||||
POKENAV_GFX_MAP_MENU_UNK0,
|
||||
POKENAV_GFX_MAP_MENU_UNK1,
|
||||
|
||||
POKENAV_GFX_PARTY_MENU,
|
||||
POKENAV_GFX_SEARCH_MENU,
|
||||
POKENAV_GFX_COOL_MENU,
|
||||
@ -32,8 +30,7 @@ enum
|
||||
POKENAV_GFX_CUTE_MENU,
|
||||
POKENAV_GFX_SMART_MENU,
|
||||
POKENAV_GFX_TOUGH_MENU,
|
||||
|
||||
POKENAV_GFX_MENUS_END
|
||||
POKENAV_GFX_MENUS_END,
|
||||
};
|
||||
|
||||
#define POKENAV_GFX_SUBMENUS_START POKENAV_GFX_PARTY_MENU
|
||||
@ -60,27 +57,23 @@ struct CompressedSpriteSheetNoSize
|
||||
u32 tag;
|
||||
};
|
||||
|
||||
extern void sub_81CAADC(void);
|
||||
void CleanupPokenavMainMenuResources(void);
|
||||
void LoadLeftHeaderGfxForSubMenu(u32 arg0);
|
||||
void LoadLeftHeaderGfxForMenu(u32 arg0);
|
||||
void HideLeftHeaderSubmenuSprites(bool32 arg0);
|
||||
void HideLeftHeaderSprites(bool32 arg0);
|
||||
void ShowLeftHeaderSprites(u32 arg0, bool32 arg1);
|
||||
void ShowLeftHeaderSubmenuSprites(u32 arg0, bool32 arg1);
|
||||
void MoveLeftHeader(struct Sprite *sprite, s32 arg1, s32 arg2, s32 arg3);
|
||||
void SpriteCB_MoveLeftHeader(struct Sprite *sprite);
|
||||
void InitPokenavMainMenuResources(void);
|
||||
void InitHoennMapHeaderSprites(void);
|
||||
void sub_81C7B74(void);
|
||||
void CopyPaletteIntoBufferUnfaded(const u16 *palette, u32 a1, u32 a2);
|
||||
u32 LoopedTask_ScrollMenuHeaderDown(s32 a0);
|
||||
u32 LoopedTask_ScrollMenuHeaderUp(s32 a0);
|
||||
void sub_81C7BF8(u32 a0);
|
||||
|
||||
|
||||
void SpriteCB_SpinningPokenav(struct Sprite* sprite);
|
||||
u32 LoopedTask_InitPokenavMenu(s32 a0);
|
||||
static void CleanupPokenavMainMenuResources(void);
|
||||
static void LoadLeftHeaderGfxForSubMenu(u32 arg0);
|
||||
static void LoadLeftHeaderGfxForMenu(u32 index);
|
||||
static void HideLeftHeaderSubmenuSprites(bool32 isOnRightSide);
|
||||
static void HideLeftHeaderSprites(bool32 isOnRightSide);
|
||||
static void ShowLeftHeaderSprites(u32 startY, bool32 isOnRightSide);
|
||||
static void ShowLeftHeaderSubmenuSprites(u32 startY, bool32 isOnRightSide);
|
||||
static void MoveLeftHeader(struct Sprite *sprite, int startX, int endX, int duration);
|
||||
static void SpriteCB_MoveLeftHeader(struct Sprite *sprite);
|
||||
static void InitPokenavMainMenuResources(void);
|
||||
static void InitHoennMapHeaderSprites(void);
|
||||
static void sub_81C7B74(void);
|
||||
static u32 LoopedTask_ScrollMenuHeaderDown(int a0);
|
||||
static u32 LoopedTask_ScrollMenuHeaderUp(int a0);
|
||||
static void sub_81C7BF8(u32 a0);
|
||||
static void SpriteCB_SpinningPokenav(struct Sprite* sprite);
|
||||
static u32 LoopedTask_InitPokenavMenu(int a0);
|
||||
|
||||
const u16 gSpinningPokenavPaletteData[] = INCBIN_U16("graphics/pokenav/icon2.gbapal");
|
||||
const u32 gSpinningPokenavGfx[] = INCBIN_U32("graphics/pokenav/icon2.4bpp.lz");
|
||||
@ -121,7 +114,7 @@ const struct WindowTemplate gUnknown_0861FA08[2] =
|
||||
},
|
||||
};
|
||||
|
||||
const u8 *const sMenuButtonReminders[12] =
|
||||
const u8 *const sHelpBarTexts[12] =
|
||||
{
|
||||
gText_Pokenav_ClearButtonList,
|
||||
gText_PokenavMap_ZoomedOutButtons,
|
||||
@ -367,7 +360,7 @@ bool32 WaitForPokenavShutdownFade(void)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
u32 LoopedTask_InitPokenavMenu(s32 a0)
|
||||
static u32 LoopedTask_InitPokenavMenu(int a0)
|
||||
{
|
||||
struct PokenavMainMenuResources *structPtr;
|
||||
|
||||
@ -447,7 +440,7 @@ bool32 MainMenuLoopedTaskIsBusy(void)
|
||||
return IsLoopedTaskActive(structPtr->currentTaskId);
|
||||
}
|
||||
|
||||
u32 LoopedTask_ScrollMenuHeaderDown(s32 a0)
|
||||
static u32 LoopedTask_ScrollMenuHeaderDown(int a0)
|
||||
{
|
||||
switch (a0)
|
||||
{
|
||||
@ -468,7 +461,7 @@ u32 LoopedTask_ScrollMenuHeaderDown(s32 a0)
|
||||
}
|
||||
}
|
||||
|
||||
u32 LoopedTask_ScrollMenuHeaderUp(s32 a0)
|
||||
static u32 LoopedTask_ScrollMenuHeaderUp(int a0)
|
||||
{
|
||||
if (ChangeBgY(0, 384, 2) <= 0)
|
||||
{
|
||||
@ -508,7 +501,7 @@ void sub_81C7990(u32 a0, u16 a1)
|
||||
CpuFill16(a1, gPlttBufferFaded + 0x100 + (a0 * 16), 16 * sizeof(u16));
|
||||
}
|
||||
|
||||
__attribute__((naked))
|
||||
NAKED
|
||||
void sub_81C79BC(u16 *a0, u16 *a1, u32 a2, u32 a3, u32 a4, u32 a5)
|
||||
{
|
||||
asm(".syntax unified\n\
|
||||
@ -644,7 +637,7 @@ _081C7AAE:\n\
|
||||
.syntax divided");
|
||||
}
|
||||
|
||||
void sub_81C7AC0(s32 a0)
|
||||
void sub_81C7AC0(int a0)
|
||||
{
|
||||
struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
|
||||
|
||||
@ -675,15 +668,15 @@ void sub_81C7B40(void)
|
||||
BlendPalettes(0xFFFEFFFE, 16, RGB_BLACK);
|
||||
}
|
||||
|
||||
void InitBgTemplates(const struct BgTemplate *templates, s32 count)
|
||||
void InitBgTemplates(const struct BgTemplate *templates, int count)
|
||||
{
|
||||
s32 i;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < count; i++)
|
||||
InitBgFromTemplate(templates++);
|
||||
}
|
||||
|
||||
void sub_81C7B74(void)
|
||||
static void sub_81C7B74(void)
|
||||
{
|
||||
struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
|
||||
|
||||
@ -694,12 +687,12 @@ void sub_81C7B74(void)
|
||||
CopyWindowToVram(structPtr->unk10, 3); // TODO: Use a defined constant here.
|
||||
}
|
||||
|
||||
void sub_81C7BA4(u32 a0)
|
||||
void sub_81C7BA4(u32 helpBarIndex)
|
||||
{
|
||||
struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
|
||||
|
||||
sub_81C7BF8(structPtr->unk10);
|
||||
AddTextPrinterParameterized3(structPtr->unk10, 1, 0, 1, gMenuButtonReminderColor, 0, sMenuButtonReminders[a0]);
|
||||
AddTextPrinterParameterized3(structPtr->unk10, 1, 0, 1, gMenuButtonReminderColor, 0, sHelpBarTexts[helpBarIndex]);
|
||||
}
|
||||
|
||||
bool32 IsDma3ManagerBusyWithBgCopy_(void)
|
||||
@ -707,15 +700,15 @@ bool32 IsDma3ManagerBusyWithBgCopy_(void)
|
||||
return IsDma3ManagerBusyWithBgCopy();
|
||||
}
|
||||
|
||||
void sub_81C7BF8(u32 windowId)
|
||||
static void sub_81C7BF8(u32 windowId)
|
||||
{
|
||||
FillWindowPixelBuffer(windowId, PIXEL_FILL(4));
|
||||
FillWindowPixelRect(windowId, PIXEL_FILL(5), 0, 0, 0x80, 1);
|
||||
}
|
||||
|
||||
void InitPokenavMainMenuResources(void)
|
||||
static void InitPokenavMainMenuResources(void)
|
||||
{
|
||||
s32 i;
|
||||
int i;
|
||||
u8 spriteId;
|
||||
struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
|
||||
|
||||
@ -728,7 +721,7 @@ void InitPokenavMainMenuResources(void)
|
||||
structPtr->spinningPokenav = &gSprites[spriteId];
|
||||
}
|
||||
|
||||
void CleanupPokenavMainMenuResources(void)
|
||||
static void CleanupPokenavMainMenuResources(void)
|
||||
{
|
||||
struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
|
||||
|
||||
@ -737,7 +730,7 @@ void CleanupPokenavMainMenuResources(void)
|
||||
FreeSpritePaletteByTag(0);
|
||||
}
|
||||
|
||||
void SpriteCB_SpinningPokenav(struct Sprite *sprite)
|
||||
static void SpriteCB_SpinningPokenav(struct Sprite *sprite)
|
||||
{
|
||||
// If the background starts scrolling, follow it.
|
||||
sprite->pos2.y = (GetBgY(0) / 256u) * -1;
|
||||
@ -763,15 +756,15 @@ void ResumeSpinningPokenavSprite(void)
|
||||
structPtr->spinningPokenav->subpriority = 0;
|
||||
}
|
||||
|
||||
void InitHoennMapHeaderSprites(void)
|
||||
static void InitHoennMapHeaderSprites(void)
|
||||
{
|
||||
s32 i, spriteId;
|
||||
int i, spriteId;
|
||||
struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
|
||||
|
||||
LoadCompressedSpriteSheet(&sPokenavHoennMapLeftHeaderSpriteSheet);
|
||||
AllocSpritePalette(1);
|
||||
AllocSpritePalette(2);
|
||||
for (i = 0; i < (s32)ARRAY_COUNT(structPtr->leftHeaderSprites); i++)
|
||||
for (i = 0; i < (int)ARRAY_COUNT(structPtr->leftHeaderSprites); i++)
|
||||
{
|
||||
spriteId = CreateSprite(&sPokenavLeftHeaderHoennMapSpriteTemplate, 0, 0, 1);
|
||||
structPtr->leftHeaderSprites[i] = &gSprites[spriteId];
|
||||
@ -805,7 +798,7 @@ void sub_81C7E14(u32 arg0)
|
||||
structPtr->leftHeaderSprites[1]->oam.tileNum = GetSpriteTileStartByTag(2) + 64;
|
||||
}
|
||||
|
||||
void LoadLeftHeaderGfxForMenu(u32 index)
|
||||
static void LoadLeftHeaderGfxForMenu(u32 index)
|
||||
{
|
||||
struct PokenavMainMenuResources *structPtr;
|
||||
u32 size, tag;
|
||||
@ -827,7 +820,7 @@ void LoadLeftHeaderGfxForMenu(u32 index)
|
||||
structPtr->leftHeaderSprites[1]->pos2.x = 64;
|
||||
}
|
||||
|
||||
void LoadLeftHeaderGfxForSubMenu(u32 arg0)
|
||||
static void LoadLeftHeaderGfxForSubMenu(u32 arg0)
|
||||
{
|
||||
u32 size, tag;
|
||||
|
||||
@ -866,10 +859,10 @@ void sub_81C7FC4(u32 arg0, bool32 arg1)
|
||||
|
||||
void sub_81C7FDC(void)
|
||||
{
|
||||
s32 i;
|
||||
int i;
|
||||
struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
|
||||
|
||||
for (i = 0; i < (s32)ARRAY_COUNT(structPtr->leftHeaderSprites); i++)
|
||||
for (i = 0; i < (int)ARRAY_COUNT(structPtr->leftHeaderSprites); i++)
|
||||
{
|
||||
structPtr->leftHeaderSprites[i]->invisible = TRUE;
|
||||
structPtr->submenuLeftHeaderSprites[i]->invisible = TRUE;
|
||||
@ -886,9 +879,9 @@ bool32 sub_81C8010(void)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void ShowLeftHeaderSprites(u32 startY, bool32 isOnRightSide)
|
||||
static void ShowLeftHeaderSprites(u32 startY, bool32 isOnRightSide)
|
||||
{
|
||||
s32 start, end, i;
|
||||
int start, end, i;
|
||||
struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
|
||||
|
||||
if (!isOnRightSide)
|
||||
@ -896,16 +889,16 @@ void ShowLeftHeaderSprites(u32 startY, bool32 isOnRightSide)
|
||||
else
|
||||
start = 256, end = 160;
|
||||
|
||||
for (i = 0; i < (s32)ARRAY_COUNT(structPtr->leftHeaderSprites); i++)
|
||||
for (i = 0; i < (int)ARRAY_COUNT(structPtr->leftHeaderSprites); i++)
|
||||
{
|
||||
structPtr->leftHeaderSprites[i]->pos1.y = startY;
|
||||
MoveLeftHeader(structPtr->leftHeaderSprites[i], start, end, 12);
|
||||
}
|
||||
}
|
||||
|
||||
void ShowLeftHeaderSubmenuSprites(u32 startY, bool32 isOnRightSide)
|
||||
static void ShowLeftHeaderSubmenuSprites(u32 startY, bool32 isOnRightSide)
|
||||
{
|
||||
s32 start, end, i;
|
||||
int start, end, i;
|
||||
struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
|
||||
|
||||
if (!isOnRightSide)
|
||||
@ -913,16 +906,16 @@ void ShowLeftHeaderSubmenuSprites(u32 startY, bool32 isOnRightSide)
|
||||
else
|
||||
start = 256, end = 192;
|
||||
|
||||
for (i = 0; i < (s32)ARRAY_COUNT(structPtr->submenuLeftHeaderSprites); i++)
|
||||
for (i = 0; i < (int)ARRAY_COUNT(structPtr->submenuLeftHeaderSprites); i++)
|
||||
{
|
||||
structPtr->submenuLeftHeaderSprites[i]->pos1.y = startY;
|
||||
MoveLeftHeader(structPtr->submenuLeftHeaderSprites[i], start, end, 12);
|
||||
}
|
||||
}
|
||||
|
||||
void HideLeftHeaderSprites(bool32 isOnRightSide)
|
||||
static void HideLeftHeaderSprites(bool32 isOnRightSide)
|
||||
{
|
||||
s32 start, end, i;
|
||||
int start, end, i;
|
||||
struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
|
||||
|
||||
if (!isOnRightSide)
|
||||
@ -930,15 +923,15 @@ void HideLeftHeaderSprites(bool32 isOnRightSide)
|
||||
else
|
||||
start = 192, end = 256;
|
||||
|
||||
for (i = 0; i < (s32)ARRAY_COUNT(structPtr->leftHeaderSprites); i++)
|
||||
for (i = 0; i < (int)ARRAY_COUNT(structPtr->leftHeaderSprites); i++)
|
||||
{
|
||||
MoveLeftHeader(structPtr->leftHeaderSprites[i], start, end, 12);
|
||||
}
|
||||
}
|
||||
|
||||
void HideLeftHeaderSubmenuSprites(bool32 isOnRightSide)
|
||||
static void HideLeftHeaderSubmenuSprites(bool32 isOnRightSide)
|
||||
{
|
||||
s32 start, end, i;
|
||||
int start, end, i;
|
||||
struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
|
||||
|
||||
if (!isOnRightSide)
|
||||
@ -946,13 +939,13 @@ void HideLeftHeaderSubmenuSprites(bool32 isOnRightSide)
|
||||
else
|
||||
start = 192, end = 256;
|
||||
|
||||
for (i = 0; i < (s32)ARRAY_COUNT(structPtr->submenuLeftHeaderSprites); i++)
|
||||
for (i = 0; i < (int)ARRAY_COUNT(structPtr->submenuLeftHeaderSprites); i++)
|
||||
{
|
||||
MoveLeftHeader(structPtr->submenuLeftHeaderSprites[i], start, end, 12);
|
||||
}
|
||||
}
|
||||
|
||||
void MoveLeftHeader(struct Sprite *sprite, s32 startX, s32 endX, s32 duration)
|
||||
static void MoveLeftHeader(struct Sprite *sprite, int startX, int endX, int duration)
|
||||
{
|
||||
sprite->pos1.x = startX;
|
||||
sprite->data[0] = startX * 16;
|
||||
@ -962,7 +955,7 @@ void MoveLeftHeader(struct Sprite *sprite, s32 startX, s32 endX, s32 duration)
|
||||
sprite->callback = SpriteCB_MoveLeftHeader;
|
||||
}
|
||||
|
||||
void SpriteCB_MoveLeftHeader(struct Sprite *sprite)
|
||||
static void SpriteCB_MoveLeftHeader(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[2] != 0)
|
||||
{
|
||||
|
@ -7,12 +7,12 @@
|
||||
|
||||
struct Pokenav1Struct
|
||||
{
|
||||
u16 unk0;
|
||||
s16 unk2;
|
||||
u16 unk4;
|
||||
u16 unk6;
|
||||
u16 menuType;
|
||||
s16 cursorPos;
|
||||
u16 descriptionId;
|
||||
u16 helpBarIndex;
|
||||
u32 unk8;
|
||||
u32 (*unkC)(struct Pokenav1Struct*);
|
||||
u32 (*callback)(struct Pokenav1Struct*);
|
||||
};
|
||||
|
||||
static bool32 sub_81C9814(struct Pokenav1Struct *a0);
|
||||
@ -31,9 +31,9 @@ static u32 sub_81C943C(struct Pokenav1Struct *a0);
|
||||
static u32 (*sub_81C93EC(void))(struct Pokenav1Struct*);
|
||||
static void sub_81C939C(struct Pokenav1Struct *state);
|
||||
|
||||
static const u8 sUnknown_0861FC54[] = {2, 3, 4, 2, 5};
|
||||
static const u8 sLastCursorPositions[] = {2, 3, 4, 2, 5};
|
||||
|
||||
static const u8 sUnknown_0861FC59[][6] =
|
||||
static const u8 sDescriptionIds[][6] =
|
||||
{
|
||||
{ 0, 1, 4, 4, 4, 4 },
|
||||
{ 0, 1, 2, 4, 4, 4 },
|
||||
@ -42,7 +42,7 @@ static const u8 sUnknown_0861FC59[][6] =
|
||||
{ 8, 9, 10, 11, 12, 13 },
|
||||
};
|
||||
|
||||
static u8 sub_81C9268(void)
|
||||
static u8 GetPokenavMainMenuType(void)
|
||||
{
|
||||
u8 retVal = 0;
|
||||
if (FlagGet(FLAG_ADDED_MATCH_CALL_TO_POKENAV))
|
||||
@ -61,10 +61,10 @@ bool32 sub_81C9298(void)
|
||||
if (!state)
|
||||
return FALSE;
|
||||
|
||||
state->unk0 = sub_81C9268();
|
||||
state->unk2 = 0;
|
||||
state->unk4 = 0;
|
||||
state->unk6 = 0;
|
||||
state->menuType = GetPokenavMainMenuType();
|
||||
state->cursorPos = 0;
|
||||
state->descriptionId = 0;
|
||||
state->helpBarIndex = 0;
|
||||
sub_81C939C(state);
|
||||
return TRUE;
|
||||
}
|
||||
@ -75,10 +75,10 @@ bool32 sub_81C92CC(void)
|
||||
if (!state)
|
||||
return FALSE;
|
||||
|
||||
state->unk0 = sub_81C9268();
|
||||
state->unk2 = 2;
|
||||
state->unk4 = 2;
|
||||
state->unk6 = 0;
|
||||
state->menuType = GetPokenavMainMenuType();
|
||||
state->cursorPos = 2;
|
||||
state->descriptionId = 2;
|
||||
state->helpBarIndex = 0;
|
||||
sub_81C939C(state);
|
||||
return TRUE;
|
||||
}
|
||||
@ -89,9 +89,9 @@ bool32 sub_81C9304(void)
|
||||
if (!state)
|
||||
return FALSE;
|
||||
|
||||
state->unk0 = sub_81C9268();
|
||||
state->unk2 = 3;
|
||||
state->unk4 = 3;
|
||||
state->menuType = GetPokenavMainMenuType();
|
||||
state->cursorPos = 3;
|
||||
state->descriptionId = 3;
|
||||
sub_81C939C(state);
|
||||
return TRUE;
|
||||
}
|
||||
@ -102,10 +102,10 @@ bool32 sub_81C9338(void)
|
||||
if (!state)
|
||||
return FALSE;
|
||||
|
||||
state->unk0 = 3;
|
||||
state->unk2 = 0;
|
||||
state->unk4 = 5;
|
||||
state->unk6 = 0;
|
||||
state->menuType = 3;
|
||||
state->cursorPos = 0;
|
||||
state->descriptionId = 5;
|
||||
state->helpBarIndex = 0;
|
||||
sub_81C939C(state);
|
||||
return TRUE;
|
||||
}
|
||||
@ -116,30 +116,30 @@ bool32 sub_81C9368(void)
|
||||
if (!state)
|
||||
return FALSE;
|
||||
|
||||
state->unk0 = 4;
|
||||
state->unk2 = sub_81C76AC();
|
||||
state->unk4 = state->unk2 + 8;
|
||||
state->unk6 = 0;
|
||||
state->menuType = 4;
|
||||
state->cursorPos = sub_81C76AC();
|
||||
state->descriptionId = state->cursorPos + 8;
|
||||
state->helpBarIndex = 0;
|
||||
sub_81C939C(state);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void sub_81C939C(struct Pokenav1Struct *state)
|
||||
{
|
||||
switch (state->unk0)
|
||||
switch (state->menuType)
|
||||
{
|
||||
case 0:
|
||||
SetPokenavMode(0);
|
||||
SetPokenavMode(POKENAV_MODE_NORMAL);
|
||||
// fallthrough
|
||||
case 1:
|
||||
case 2:
|
||||
state->unkC = sub_81C93EC();
|
||||
state->callback = sub_81C93EC();
|
||||
break;
|
||||
case 3:
|
||||
state->unkC = sub_81C963C;
|
||||
state->callback = sub_81C963C;
|
||||
break;
|
||||
case 4:
|
||||
state->unkC = sub_81C96FC;
|
||||
state->callback = sub_81C96FC;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -149,11 +149,11 @@ static u32 (*sub_81C93EC(void))(struct Pokenav1Struct*)
|
||||
switch (GetPokenavMode())
|
||||
{
|
||||
default:
|
||||
case 0:
|
||||
case POKENAV_MODE_NORMAL:
|
||||
return sub_81C943C;
|
||||
case 1:
|
||||
case POKENAV_MODE_FORCE_CALL_1:
|
||||
return sub_81C9520;
|
||||
case 2:
|
||||
case POKENAV_MODE_FORCE_CALL_2:
|
||||
return sub_81C9588;
|
||||
}
|
||||
}
|
||||
@ -161,7 +161,7 @@ static u32 (*sub_81C93EC(void))(struct Pokenav1Struct*)
|
||||
u32 sub_81C941C(void)
|
||||
{
|
||||
struct Pokenav1Struct *state = GetSubstructPtr(1);
|
||||
return state->unkC(state);
|
||||
return state->callback(state);
|
||||
}
|
||||
|
||||
void sub_81C9430(void)
|
||||
@ -176,32 +176,32 @@ static u32 sub_81C943C(struct Pokenav1Struct *a0)
|
||||
|
||||
if (gMain.newKeys & A_BUTTON)
|
||||
{
|
||||
switch (sUnknown_0861FC59[a0->unk0][a0->unk2])
|
||||
switch (sDescriptionIds[a0->menuType][a0->cursorPos])
|
||||
{
|
||||
case 0:
|
||||
a0->unk6 = gSaveBlock2Ptr->regionMapZoom ? 2 : 1;
|
||||
sub_81C97B0(a0, UNKNOWN_POKENAV_OFFSET + 6);
|
||||
a0->helpBarIndex = gSaveBlock2Ptr->regionMapZoom ? 2 : 1;
|
||||
sub_81C97B0(a0, POKENAV_MENU_6);
|
||||
return 8;
|
||||
case 1:
|
||||
a0->unk0 = 3;
|
||||
a0->unk2 = 0;
|
||||
a0->unk4 = sUnknown_0861FC59[3][0];
|
||||
a0->unkC = sub_81C963C;
|
||||
a0->menuType = 3;
|
||||
a0->cursorPos = 0;
|
||||
a0->descriptionId = sDescriptionIds[3][0];
|
||||
a0->callback = sub_81C963C;
|
||||
return 2;
|
||||
case 2:
|
||||
a0->unk6 = 6;
|
||||
sub_81C97B0(a0, UNKNOWN_POKENAV_OFFSET + 11);
|
||||
a0->helpBarIndex = 6;
|
||||
sub_81C97B0(a0, POKENAV_MENU_B);
|
||||
return 8;
|
||||
case 3:
|
||||
if (CanViewRibbonsMenu())
|
||||
{
|
||||
a0->unk6 = 9;
|
||||
sub_81C97B0(a0, UNKNOWN_POKENAV_OFFSET + 12);
|
||||
a0->helpBarIndex = 9;
|
||||
sub_81C97B0(a0, POKENAV_MENU_C);
|
||||
return 8;
|
||||
}
|
||||
else
|
||||
{
|
||||
a0->unkC = sub_81C9600;
|
||||
a0->callback = sub_81C9600;
|
||||
return 6;
|
||||
}
|
||||
case 4:
|
||||
@ -222,10 +222,10 @@ static u32 sub_81C9520(struct Pokenav1Struct *a0)
|
||||
|
||||
if (gMain.newKeys & A_BUTTON)
|
||||
{
|
||||
if (sUnknown_0861FC59[a0->unk0][a0->unk2] == 2)
|
||||
if (sDescriptionIds[a0->menuType][a0->cursorPos] == 2)
|
||||
{
|
||||
a0->unk6 = 6;
|
||||
sub_81C97B0(a0, UNKNOWN_POKENAV_OFFSET + 11);
|
||||
a0->helpBarIndex = 6;
|
||||
sub_81C97B0(a0, POKENAV_MENU_B);
|
||||
return 8;
|
||||
}
|
||||
else
|
||||
@ -251,7 +251,7 @@ static u32 sub_81C9588(struct Pokenav1Struct *a0)
|
||||
|
||||
if (gMain.newKeys & A_BUTTON)
|
||||
{
|
||||
u32 v0 = sUnknown_0861FC59[a0->unk0][a0->unk2];
|
||||
u32 v0 = sDescriptionIds[a0->menuType][a0->cursorPos];
|
||||
if (v0 != 2 && v0 != 4)
|
||||
{
|
||||
PlaySE(SE_HAZURE);
|
||||
@ -259,8 +259,8 @@ static u32 sub_81C9588(struct Pokenav1Struct *a0)
|
||||
}
|
||||
else if (v0 == 2)
|
||||
{
|
||||
a0->unk6 = 6;
|
||||
sub_81C97B0(a0, UNKNOWN_POKENAV_OFFSET + 11);
|
||||
a0->helpBarIndex = 6;
|
||||
sub_81C97B0(a0, POKENAV_MENU_B);
|
||||
return 8;
|
||||
}
|
||||
else
|
||||
@ -279,13 +279,13 @@ static u32 sub_81C9600(struct Pokenav1Struct *a0)
|
||||
{
|
||||
if (sub_81C9814(a0))
|
||||
{
|
||||
a0->unkC = sub_81C93EC();
|
||||
a0->callback = sub_81C93EC();
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (gMain.newKeys & (A_BUTTON | B_BUTTON))
|
||||
{
|
||||
a0->unkC = sub_81C93EC();
|
||||
a0->callback = sub_81C93EC();
|
||||
return 7;
|
||||
}
|
||||
|
||||
@ -300,17 +300,17 @@ static u32 sub_81C963C(struct Pokenav1Struct *a0)
|
||||
|
||||
if (gMain.newKeys & A_BUTTON)
|
||||
{
|
||||
switch (sUnknown_0861FC59[a0->unk0][a0->unk2])
|
||||
switch (sDescriptionIds[a0->menuType][a0->cursorPos])
|
||||
{
|
||||
case 6:
|
||||
a0->unk0 = 4;
|
||||
a0->unk2 = v0;
|
||||
a0->unk4 = sUnknown_0861FC59[4][0];
|
||||
a0->unkC = sub_81C96FC;
|
||||
a0->menuType = 4;
|
||||
a0->cursorPos = v0;
|
||||
a0->descriptionId = sDescriptionIds[4][0];
|
||||
a0->callback = sub_81C96FC;
|
||||
return 4;
|
||||
case 5:
|
||||
a0->unk6 = v0;
|
||||
sub_81C97B0(a0, UNKNOWN_POKENAV_OFFSET + 7);
|
||||
a0->helpBarIndex = v0;
|
||||
sub_81C97B0(a0, POKENAV_MENU_7);
|
||||
return 8;
|
||||
case 7:
|
||||
PlaySE(SE_SELECT);
|
||||
@ -320,10 +320,10 @@ static u32 sub_81C963C(struct Pokenav1Struct *a0)
|
||||
}
|
||||
if (gMain.newKeys & B_BUTTON)
|
||||
{
|
||||
if (a0->unk2 != sUnknown_0861FC54[a0->unk0])
|
||||
if (a0->cursorPos != sLastCursorPositions[a0->menuType])
|
||||
{
|
||||
a0->unk2 = sUnknown_0861FC54[a0->unk0];
|
||||
a0->unkC = sub_81C9798;
|
||||
a0->cursorPos = sLastCursorPositions[a0->menuType];
|
||||
a0->callback = sub_81C9798;
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
@ -344,12 +344,12 @@ static u32 sub_81C96FC(struct Pokenav1Struct *a0)
|
||||
|
||||
if (gMain.newKeys & A_BUTTON)
|
||||
{
|
||||
u8 v0 = sUnknown_0861FC59[a0->unk0][a0->unk2];
|
||||
u8 v0 = sDescriptionIds[a0->menuType][a0->cursorPos];
|
||||
if (v0 != 13)
|
||||
{
|
||||
sub_81C7694(v0 - 8);
|
||||
sub_81C97B0(a0, UNKNOWN_POKENAV_OFFSET + 8);
|
||||
a0->unk6 = 3;
|
||||
sub_81C97B0(a0, POKENAV_MENU_8);
|
||||
a0->helpBarIndex = 3;
|
||||
return 8;
|
||||
}
|
||||
else
|
||||
@ -361,10 +361,10 @@ static u32 sub_81C96FC(struct Pokenav1Struct *a0)
|
||||
}
|
||||
if (gMain.newKeys & B_BUTTON)
|
||||
{
|
||||
if (a0->unk2 != sUnknown_0861FC54[a0->unk0])
|
||||
if (a0->cursorPos != sLastCursorPositions[a0->menuType])
|
||||
{
|
||||
a0->unk2 = sUnknown_0861FC54[a0->unk0];
|
||||
a0->unkC = sub_81C97A4;
|
||||
a0->cursorPos = sLastCursorPositions[a0->menuType];
|
||||
a0->callback = sub_81C97A4;
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
@ -392,7 +392,7 @@ static u32 sub_81C97A4(struct Pokenav1Struct *a0)
|
||||
static void sub_81C97B0(struct Pokenav1Struct *a0, u32 a1)
|
||||
{
|
||||
a0->unk8 = a1;
|
||||
a0->unkC = sub_81C97BC;
|
||||
a0->callback = sub_81C97BC;
|
||||
}
|
||||
|
||||
static u32 sub_81C97BC(struct Pokenav1Struct *a0)
|
||||
@ -402,37 +402,37 @@ static u32 sub_81C97BC(struct Pokenav1Struct *a0)
|
||||
|
||||
static void sub_81C97C0(struct Pokenav1Struct *a0)
|
||||
{
|
||||
a0->unk0 = sub_81C9268();
|
||||
a0->unk2 = 1;
|
||||
a0->unk4 = sUnknown_0861FC59[a0->unk0][a0->unk2];
|
||||
a0->unkC = sub_81C943C;
|
||||
a0->menuType = GetPokenavMainMenuType();
|
||||
a0->cursorPos = 1;
|
||||
a0->descriptionId = sDescriptionIds[a0->menuType][a0->cursorPos];
|
||||
a0->callback = sub_81C943C;
|
||||
}
|
||||
|
||||
static void sub_81C97F8(struct Pokenav1Struct *a0)
|
||||
{
|
||||
a0->unk0 = 3;
|
||||
a0->unk2 = 1;
|
||||
a0->unk4 = sUnknown_0861FC59[3][1];
|
||||
a0->unkC = sub_81C963C;
|
||||
a0->menuType = 3;
|
||||
a0->cursorPos = 1;
|
||||
a0->descriptionId = sDescriptionIds[3][1];
|
||||
a0->callback = sub_81C963C;
|
||||
}
|
||||
|
||||
static bool32 sub_81C9814(struct Pokenav1Struct *a0)
|
||||
{
|
||||
if (gMain.newKeys & DPAD_UP)
|
||||
{
|
||||
if (--a0->unk2 < 0)
|
||||
a0->unk2 = sUnknown_0861FC54[a0->unk0];
|
||||
if (--a0->cursorPos < 0)
|
||||
a0->cursorPos = sLastCursorPositions[a0->menuType];
|
||||
|
||||
a0->unk4 = sUnknown_0861FC59[a0->unk0][a0->unk2];
|
||||
a0->descriptionId = sDescriptionIds[a0->menuType][a0->cursorPos];
|
||||
return TRUE;
|
||||
}
|
||||
else if (gMain.newKeys & DPAD_DOWN)
|
||||
{
|
||||
a0->unk2++;
|
||||
if (a0->unk2 > sUnknown_0861FC54[a0->unk0])
|
||||
a0->unk2 = 0;
|
||||
a0->cursorPos++;
|
||||
if (a0->cursorPos > sLastCursorPositions[a0->menuType])
|
||||
a0->cursorPos = 0;
|
||||
|
||||
a0->unk4 = sUnknown_0861FC59[a0->unk0][a0->unk2];
|
||||
a0->descriptionId = sDescriptionIds[a0->menuType][a0->cursorPos];
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
@ -444,23 +444,23 @@ static bool32 sub_81C9814(struct Pokenav1Struct *a0)
|
||||
int sub_81C9894(void)
|
||||
{
|
||||
struct Pokenav1Struct *state = GetSubstructPtr(1);
|
||||
return state->unk0;
|
||||
return state->menuType;
|
||||
}
|
||||
|
||||
int sub_81C98A4(void)
|
||||
{
|
||||
struct Pokenav1Struct *state = GetSubstructPtr(1);
|
||||
return state->unk2;
|
||||
return state->cursorPos;
|
||||
}
|
||||
|
||||
int sub_81C98B4(void)
|
||||
{
|
||||
struct Pokenav1Struct *state = GetSubstructPtr(1);
|
||||
return state->unk4;
|
||||
return state->descriptionId;
|
||||
}
|
||||
|
||||
int sub_81C98C4(void)
|
||||
{
|
||||
struct Pokenav1Struct *state = GetSubstructPtr(1);
|
||||
return state->unk6;
|
||||
return state->helpBarIndex;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user