mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-26 03:34:15 +01:00
Finish match call menu doc
This commit is contained in:
parent
c779d03b3e
commit
14d78d7633
@ -407,10 +407,9 @@ void ResetBldCnt_(void);
|
|||||||
bool32 PokenavCallback_Init_MatchCall(void);
|
bool32 PokenavCallback_Init_MatchCall(void);
|
||||||
u32 GetMatchCallCallback(void);
|
u32 GetMatchCallCallback(void);
|
||||||
void FreeMatchCallSubstruct1(void);
|
void FreeMatchCallSubstruct1(void);
|
||||||
int sub_81CAE28(void);
|
int IsMatchCallListInitFinished(void);
|
||||||
int GetNumberRegistered(void);
|
int GetNumberRegistered(void);
|
||||||
int sub_81CAE48(void);
|
struct PokenavMatchCallEntry *GetMatchCallList(void);
|
||||||
struct PokenavMatchCallEntry *sub_81CAE94(void);
|
|
||||||
u16 GetMatchCallMapSec(int);
|
u16 GetMatchCallMapSec(int);
|
||||||
bool32 ShouldDrawRematchPokeballIcon(int index);
|
bool32 ShouldDrawRematchPokeballIcon(int index);
|
||||||
void ClearRematchPokeballIcon(u16 windowId, u32 a1);
|
void ClearRematchPokeballIcon(u16 windowId, u32 a1);
|
||||||
|
@ -14,26 +14,26 @@
|
|||||||
#include "strings.h"
|
#include "strings.h"
|
||||||
#include "constants/songs.h"
|
#include "constants/songs.h"
|
||||||
|
|
||||||
struct Pokenav3Struct
|
struct Pokenav_MatchCallMenu
|
||||||
{
|
{
|
||||||
u16 optionCursorPos;
|
u16 optionCursorPos;
|
||||||
u16 maxOptionId;
|
u16 maxOptionId;
|
||||||
const u8 *matchCallOptions;
|
const u8 *matchCallOptions;
|
||||||
u16 headerId;
|
u16 headerId;
|
||||||
u16 numRegistered;
|
u16 numRegistered;
|
||||||
u16 unkC;
|
u16 numSpecialTrainers;
|
||||||
u32 unk10;
|
bool32 initFinished;
|
||||||
u32 unk14;
|
u32 loopedTaskId;
|
||||||
u32 (*callback)(struct Pokenav3Struct*);
|
u32 (*callback)(struct Pokenav_MatchCallMenu*);
|
||||||
struct PokenavMatchCallEntry matchCallEntries[MAX_REMATCH_ENTRIES - 1];
|
struct PokenavMatchCallEntry matchCallEntries[MAX_REMATCH_ENTRIES - 1];
|
||||||
};
|
};
|
||||||
|
|
||||||
static u32 CB2_HandleMatchCallInput(struct Pokenav3Struct *);
|
static u32 CB2_HandleMatchCallInput(struct Pokenav_MatchCallMenu *);
|
||||||
static u32 GetExitMatchCallMenuId(struct Pokenav3Struct *);
|
static u32 GetExitMatchCallMenuId(struct Pokenav_MatchCallMenu *);
|
||||||
static u32 CB2_HandleMatchCallOptionsInput(struct Pokenav3Struct *);
|
static u32 CB2_HandleMatchCallOptionsInput(struct Pokenav_MatchCallMenu *);
|
||||||
static u32 CB2_HandleCheckPageInput(struct Pokenav3Struct *);
|
static u32 CB2_HandleCheckPageInput(struct Pokenav_MatchCallMenu *);
|
||||||
static u32 CB2_HandleCallExitInput(struct Pokenav3Struct *);
|
static u32 CB2_HandleCallExitInput(struct Pokenav_MatchCallMenu *);
|
||||||
static u32 sub_81CAD20(s32);
|
static u32 LoopedTask_BuildMatchCallList(s32);
|
||||||
static bool32 ShouldDoNearbyMessage(void);
|
static bool32 ShouldDoNearbyMessage(void);
|
||||||
|
|
||||||
#include "data/text/match_call_messages.h"
|
#include "data/text/match_call_messages.h"
|
||||||
@ -53,20 +53,20 @@ static const u8 sMatchCallOptionsHasCheckPage[] =
|
|||||||
|
|
||||||
bool32 PokenavCallback_Init_MatchCall(void)
|
bool32 PokenavCallback_Init_MatchCall(void)
|
||||||
{
|
{
|
||||||
struct Pokenav3Struct *state = AllocSubstruct(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN, sizeof(struct Pokenav3Struct));
|
struct Pokenav_MatchCallMenu *state = AllocSubstruct(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN, sizeof(struct Pokenav_MatchCallMenu));
|
||||||
if (!state)
|
if (!state)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
state->callback = CB2_HandleMatchCallInput;
|
state->callback = CB2_HandleMatchCallInput;
|
||||||
state->headerId = 0;
|
state->headerId = 0;
|
||||||
state->unk10 = 0;
|
state->initFinished = FALSE;
|
||||||
state->unk14 = CreateLoopedTask(sub_81CAD20, 1);
|
state->loopedTaskId = CreateLoopedTask(LoopedTask_BuildMatchCallList, 1);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 GetMatchCallCallback(void)
|
u32 GetMatchCallCallback(void)
|
||||||
{
|
{
|
||||||
struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
struct Pokenav_MatchCallMenu *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
||||||
return state->callback(state);
|
return state->callback(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -75,7 +75,7 @@ void FreeMatchCallSubstruct1(void)
|
|||||||
FreePokenavSubstruct(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
FreePokenavSubstruct(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
static u32 CB2_HandleMatchCallInput(struct Pokenav3Struct *state)
|
static u32 CB2_HandleMatchCallInput(struct Pokenav_MatchCallMenu *state)
|
||||||
{
|
{
|
||||||
int selection;
|
int selection;
|
||||||
|
|
||||||
@ -125,20 +125,20 @@ static u32 CB2_HandleMatchCallInput(struct Pokenav3Struct *state)
|
|||||||
return POKENAV_MC_FUNC_NONE;
|
return POKENAV_MC_FUNC_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u32 GetExitMatchCallMenuId(struct Pokenav3Struct *state)
|
static u32 GetExitMatchCallMenuId(struct Pokenav_MatchCallMenu *state)
|
||||||
{
|
{
|
||||||
return POKENAV_MAIN_MENU_CURSOR_ON_MATCH_CALL;
|
return POKENAV_MAIN_MENU_CURSOR_ON_MATCH_CALL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u32 CB2_HandleMatchCallOptionsInput(struct Pokenav3Struct *state)
|
static u32 CB2_HandleMatchCallOptionsInput(struct Pokenav_MatchCallMenu *state)
|
||||||
{
|
{
|
||||||
if ((JOY_NEW(DPAD_UP)) && state->optionCursorPos)
|
if (JOY_NEW(DPAD_UP) && state->optionCursorPos)
|
||||||
{
|
{
|
||||||
state->optionCursorPos--;
|
state->optionCursorPos--;
|
||||||
return POKENAV_MC_FUNC_MOVE_OPTIONS_CURSOR;
|
return POKENAV_MC_FUNC_MOVE_OPTIONS_CURSOR;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((JOY_NEW(DPAD_DOWN)) && state->optionCursorPos < state->maxOptionId)
|
if (JOY_NEW(DPAD_DOWN) && state->optionCursorPos < state->maxOptionId)
|
||||||
{
|
{
|
||||||
state->optionCursorPos++;
|
state->optionCursorPos++;
|
||||||
return POKENAV_MC_FUNC_MOVE_OPTIONS_CURSOR;
|
return POKENAV_MC_FUNC_MOVE_OPTIONS_CURSOR;
|
||||||
@ -175,7 +175,7 @@ static u32 CB2_HandleMatchCallOptionsInput(struct Pokenav3Struct *state)
|
|||||||
return POKENAV_MC_FUNC_NONE;
|
return POKENAV_MC_FUNC_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u32 CB2_HandleCheckPageInput(struct Pokenav3Struct *state)
|
static u32 CB2_HandleCheckPageInput(struct Pokenav_MatchCallMenu *state)
|
||||||
{
|
{
|
||||||
if (JOY_REPEAT(DPAD_UP))
|
if (JOY_REPEAT(DPAD_UP))
|
||||||
return POKENAV_MC_FUNC_CHECK_PAGE_UP;
|
return POKENAV_MC_FUNC_CHECK_PAGE_UP;
|
||||||
@ -191,7 +191,7 @@ static u32 CB2_HandleCheckPageInput(struct Pokenav3Struct *state)
|
|||||||
return POKENAV_MC_FUNC_NONE;
|
return POKENAV_MC_FUNC_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u32 CB2_HandleCallExitInput(struct Pokenav3Struct *state)
|
static u32 CB2_HandleCallExitInput(struct Pokenav_MatchCallMenu *state)
|
||||||
{
|
{
|
||||||
if (JOY_NEW(A_BUTTON | B_BUTTON))
|
if (JOY_NEW(A_BUTTON | B_BUTTON))
|
||||||
{
|
{
|
||||||
@ -202,10 +202,10 @@ static u32 CB2_HandleCallExitInput(struct Pokenav3Struct *state)
|
|||||||
return POKENAV_MC_FUNC_NONE;
|
return POKENAV_MC_FUNC_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u32 sub_81CAD20(s32 taskState)
|
static u32 LoopedTask_BuildMatchCallList(s32 taskState)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
struct Pokenav_MatchCallMenu *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
||||||
switch (taskState)
|
switch (taskState)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
@ -213,6 +213,7 @@ static u32 sub_81CAD20(s32 taskState)
|
|||||||
state->numRegistered = 0;
|
state->numRegistered = 0;
|
||||||
return LT_INC_AND_CONTINUE;
|
return LT_INC_AND_CONTINUE;
|
||||||
case 1:
|
case 1:
|
||||||
|
// Load special trainers (e.g. Rival, gym leaders)
|
||||||
for (i = 0, j = state->headerId; i < 30; i++, j++)
|
for (i = 0, j = state->headerId; i < 30; i++, j++)
|
||||||
{
|
{
|
||||||
if (MatchCall_GetEnabled(j))
|
if (MatchCall_GetEnabled(j))
|
||||||
@ -225,7 +226,7 @@ static u32 sub_81CAD20(s32 taskState)
|
|||||||
|
|
||||||
if (++state->headerId >= MC_HEADER_COUNT)
|
if (++state->headerId >= MC_HEADER_COUNT)
|
||||||
{
|
{
|
||||||
state->unkC = state->headerId;
|
state->numSpecialTrainers = state->headerId;
|
||||||
state->headerId = 0;
|
state->headerId = 0;
|
||||||
return LT_INC_AND_CONTINUE;
|
return LT_INC_AND_CONTINUE;
|
||||||
}
|
}
|
||||||
@ -233,6 +234,7 @@ static u32 sub_81CAD20(s32 taskState)
|
|||||||
|
|
||||||
return LT_CONTINUE;
|
return LT_CONTINUE;
|
||||||
case 2:
|
case 2:
|
||||||
|
// Load normal trainers
|
||||||
for (i = 0, j = state->headerId; i < 30; i++, j++)
|
for (i = 0, j = state->headerId; i < 30; i++, j++)
|
||||||
{
|
{
|
||||||
if (!MatchCall_HasRematchId(state->headerId) && IsRematchEntryRegistered(state->headerId))
|
if (!MatchCall_HasRematchId(state->headerId) && IsRematchEntryRegistered(state->headerId))
|
||||||
@ -249,7 +251,7 @@ static u32 sub_81CAD20(s32 taskState)
|
|||||||
|
|
||||||
return LT_CONTINUE;
|
return LT_CONTINUE;
|
||||||
case 3:
|
case 3:
|
||||||
state->unk10 = 1;
|
state->initFinished = TRUE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -264,55 +266,58 @@ bool32 IsRematchEntryRegistered(int rematchIndex)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
int sub_81CAE28(void)
|
int IsMatchCallListInitFinished(void)
|
||||||
{
|
{
|
||||||
struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
struct Pokenav_MatchCallMenu *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
||||||
return state->unk10;
|
return state->initFinished;
|
||||||
}
|
}
|
||||||
|
|
||||||
int GetNumberRegistered(void)
|
int GetNumberRegistered(void)
|
||||||
{
|
{
|
||||||
struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
struct Pokenav_MatchCallMenu *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
||||||
return state->numRegistered;
|
return state->numRegistered;
|
||||||
}
|
}
|
||||||
|
|
||||||
int sub_81CAE48(void)
|
// Unused
|
||||||
|
static int GetNumSpecialTrainers(void)
|
||||||
{
|
{
|
||||||
struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
struct Pokenav_MatchCallMenu *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
||||||
return state->unkC;
|
return state->numSpecialTrainers;
|
||||||
}
|
}
|
||||||
|
|
||||||
int unref_sub_81CAE58(void)
|
// Unused
|
||||||
|
static int GetNumNormalTrainers(void)
|
||||||
{
|
{
|
||||||
struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
struct Pokenav_MatchCallMenu *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
||||||
return state->numRegistered - state->unkC;
|
return state->numRegistered - state->numSpecialTrainers;
|
||||||
}
|
}
|
||||||
|
|
||||||
int unref_sub_81CAE6C(int arg0)
|
// Unused
|
||||||
|
static int GetNormalTrainerHeaderId(int index)
|
||||||
{
|
{
|
||||||
struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
struct Pokenav_MatchCallMenu *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
||||||
arg0 += state->unkC;
|
index += state->numSpecialTrainers;
|
||||||
if (arg0 >= state->numRegistered)
|
if (index >= state->numRegistered)
|
||||||
return REMATCH_TABLE_ENTRIES;
|
return REMATCH_TABLE_ENTRIES;
|
||||||
|
|
||||||
return state->matchCallEntries[arg0].headerId;
|
return state->matchCallEntries[index].headerId;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct PokenavMatchCallEntry *sub_81CAE94(void)
|
struct PokenavMatchCallEntry *GetMatchCallList(void)
|
||||||
{
|
{
|
||||||
struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
struct Pokenav_MatchCallMenu *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
||||||
return state->matchCallEntries;
|
return state->matchCallEntries;
|
||||||
}
|
}
|
||||||
|
|
||||||
u16 GetMatchCallMapSec(int index)
|
u16 GetMatchCallMapSec(int index)
|
||||||
{
|
{
|
||||||
struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
struct Pokenav_MatchCallMenu *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
||||||
return state->matchCallEntries[index].mapSec;
|
return state->matchCallEntries[index].mapSec;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool32 ShouldDrawRematchPokeballIcon(int index)
|
bool32 ShouldDrawRematchPokeballIcon(int index)
|
||||||
{
|
{
|
||||||
struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
struct Pokenav_MatchCallMenu *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
||||||
if (!state->matchCallEntries[index].isSpecialTrainer)
|
if (!state->matchCallEntries[index].isSpecialTrainer)
|
||||||
index = state->matchCallEntries[index].headerId;
|
index = state->matchCallEntries[index].headerId;
|
||||||
else
|
else
|
||||||
@ -327,7 +332,7 @@ bool32 ShouldDrawRematchPokeballIcon(int index)
|
|||||||
int GetMatchCallTrainerPic(int index)
|
int GetMatchCallTrainerPic(int index)
|
||||||
{
|
{
|
||||||
int headerId;
|
int headerId;
|
||||||
struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
struct Pokenav_MatchCallMenu *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
||||||
if (!state->matchCallEntries[index].isSpecialTrainer)
|
if (!state->matchCallEntries[index].isSpecialTrainer)
|
||||||
{
|
{
|
||||||
index = GetTrainerIdxByRematchIdx(state->matchCallEntries[index].headerId);
|
index = GetTrainerIdxByRematchIdx(state->matchCallEntries[index].headerId);
|
||||||
@ -348,7 +353,7 @@ int GetMatchCallTrainerPic(int index)
|
|||||||
|
|
||||||
const u8 *GetMatchCallMessageText(int index, bool8 *newRematchRequest)
|
const u8 *GetMatchCallMessageText(int index, bool8 *newRematchRequest)
|
||||||
{
|
{
|
||||||
struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
struct Pokenav_MatchCallMenu *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
||||||
*newRematchRequest = FALSE;
|
*newRematchRequest = FALSE;
|
||||||
if (!Overworld_MapTypeAllowsTeleportAndFly(gMapHeader.mapType))
|
if (!Overworld_MapTypeAllowsTeleportAndFly(gMapHeader.mapType))
|
||||||
return gText_CallCantBeMadeHere;
|
return gText_CallCantBeMadeHere;
|
||||||
@ -364,7 +369,7 @@ const u8 *GetMatchCallMessageText(int index, bool8 *newRematchRequest)
|
|||||||
const u8 *GetMatchCallFlavorText(int index, int checkPageEntry)
|
const u8 *GetMatchCallFlavorText(int index, int checkPageEntry)
|
||||||
{
|
{
|
||||||
int rematchId;
|
int rematchId;
|
||||||
struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
struct Pokenav_MatchCallMenu *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
||||||
if (state->matchCallEntries[index].isSpecialTrainer)
|
if (state->matchCallEntries[index].isSpecialTrainer)
|
||||||
{
|
{
|
||||||
rematchId = MatchCall_GetRematchTableIdx(state->matchCallEntries[index].headerId);
|
rematchId = MatchCall_GetRematchTableIdx(state->matchCallEntries[index].headerId);
|
||||||
@ -381,13 +386,13 @@ const u8 *GetMatchCallFlavorText(int index, int checkPageEntry)
|
|||||||
|
|
||||||
u16 GetMatchCallOptionCursorPos(void)
|
u16 GetMatchCallOptionCursorPos(void)
|
||||||
{
|
{
|
||||||
struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
struct Pokenav_MatchCallMenu *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
||||||
return state->optionCursorPos;
|
return state->optionCursorPos;
|
||||||
}
|
}
|
||||||
|
|
||||||
u16 GetMatchCallOptionId(int optionId)
|
u16 GetMatchCallOptionId(int optionId)
|
||||||
{
|
{
|
||||||
struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
struct Pokenav_MatchCallMenu *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
||||||
if (state->maxOptionId < optionId)
|
if (state->maxOptionId < optionId)
|
||||||
return MATCH_CALL_OPTION_COUNT;
|
return MATCH_CALL_OPTION_COUNT;
|
||||||
|
|
||||||
@ -431,7 +436,7 @@ u8 GetMatchTableMapSectionId(int rematchIndex)
|
|||||||
|
|
||||||
int GetIndexDeltaOfNextCheckPageDown(int index)
|
int GetIndexDeltaOfNextCheckPageDown(int index)
|
||||||
{
|
{
|
||||||
struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
struct Pokenav_MatchCallMenu *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
||||||
int count = 1;
|
int count = 1;
|
||||||
while (++index < state->numRegistered)
|
while (++index < state->numRegistered)
|
||||||
{
|
{
|
||||||
@ -448,7 +453,7 @@ int GetIndexDeltaOfNextCheckPageDown(int index)
|
|||||||
|
|
||||||
int GetIndexDeltaOfNextCheckPageUp(int index)
|
int GetIndexDeltaOfNextCheckPageUp(int index)
|
||||||
{
|
{
|
||||||
struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
struct Pokenav_MatchCallMenu *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
||||||
int count = -1;
|
int count = -1;
|
||||||
while (--index >= 0)
|
while (--index >= 0)
|
||||||
{
|
{
|
||||||
@ -463,7 +468,8 @@ int GetIndexDeltaOfNextCheckPageUp(int index)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool32 unref_sub_81CB16C(void)
|
// Unused
|
||||||
|
static bool32 HasRematchEntry(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@ -488,7 +494,7 @@ bool32 unref_sub_81CB16C(void)
|
|||||||
|
|
||||||
static bool32 ShouldDoNearbyMessage(void)
|
static bool32 ShouldDoNearbyMessage(void)
|
||||||
{
|
{
|
||||||
struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
struct Pokenav_MatchCallMenu *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
|
||||||
int selection = PokenavList_GetSelectedIndex();
|
int selection = PokenavList_GetSelectedIndex();
|
||||||
if (!state->matchCallEntries[selection].isSpecialTrainer)
|
if (!state->matchCallEntries[selection].isSpecialTrainer)
|
||||||
{
|
{
|
||||||
|
@ -56,7 +56,7 @@ struct Pokenav_MatchCallGfx
|
|||||||
static bool32 GetCurrentLoopedTaskActive(void);
|
static bool32 GetCurrentLoopedTaskActive(void);
|
||||||
static u32 LoopedTask_OpenMatchCall(s32);
|
static u32 LoopedTask_OpenMatchCall(s32);
|
||||||
static void CreateMatchCallList(void);
|
static void CreateMatchCallList(void);
|
||||||
static void sub_81CBC1C(void);
|
static void DestroyMatchCallList(void);
|
||||||
static void FreeMatchCallSprites(void);
|
static void FreeMatchCallSprites(void);
|
||||||
static void LoadCallWindowAndFade(struct Pokenav_MatchCallGfx *);
|
static void LoadCallWindowAndFade(struct Pokenav_MatchCallGfx *);
|
||||||
static void DrawMatchCallLeftColumnWindows(struct Pokenav_MatchCallGfx *);
|
static void DrawMatchCallLeftColumnWindows(struct Pokenav_MatchCallGfx *);
|
||||||
@ -119,12 +119,12 @@ static const u32 sMatchCallUI_Gfx[] = INCBIN_U32("graphics/pokenav/match_call/ui
|
|||||||
static const u32 sMatchCallUI_Tilemap[] = INCBIN_U32("graphics/pokenav/match_call/ui.bin.lz");
|
static const u32 sMatchCallUI_Tilemap[] = INCBIN_U32("graphics/pokenav/match_call/ui.bin.lz");
|
||||||
static const u16 sOptionsCursor_Pal[] = INCBIN_U16("graphics/pokenav/match_call/options_cursor.gbapal");
|
static const u16 sOptionsCursor_Pal[] = INCBIN_U16("graphics/pokenav/match_call/options_cursor.gbapal");
|
||||||
static const u32 sOptionsCursor_Gfx[] = INCBIN_U32("graphics/pokenav/match_call/options_cursor.4bpp.lz");
|
static const u32 sOptionsCursor_Gfx[] = INCBIN_U32("graphics/pokenav/match_call/options_cursor.4bpp.lz");
|
||||||
static const u16 gUnknown_086226E0[] = INCBIN_U16("graphics/pokenav/match_call/86226E0.gbapal");
|
static const u16 sCallWindow_Pal[] = INCBIN_U16("graphics/pokenav/match_call/call_window.gbapal");
|
||||||
static const u16 gUnknown_08622700[] = INCBIN_U16("graphics/pokenav/match_call/8622700.gbapal");
|
static const u16 sListWindow_Pal[] = INCBIN_U16("graphics/pokenav/match_call/list_window.gbapal");
|
||||||
static const u16 sPokeball_Pal[] = INCBIN_U16("graphics/pokenav/match_call/pokeball.gbapal");
|
static const u16 sPokeball_Pal[] = INCBIN_U16("graphics/pokenav/match_call/pokeball.gbapal");
|
||||||
static const u32 sPokeball_Gfx[] = INCBIN_U32("graphics/pokenav/match_call/pokeball.4bpp.lz");
|
static const u32 sPokeball_Gfx[] = INCBIN_U32("graphics/pokenav/match_call/pokeball.4bpp.lz");
|
||||||
|
|
||||||
const struct BgTemplate sMatchCallBgTemplates[3] =
|
static const struct BgTemplate sMatchCallBgTemplates[3] =
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
.bg = 1,
|
.bg = 1,
|
||||||
@ -223,7 +223,7 @@ static const struct CompressedSpriteSheet sOptionsCursorSpriteSheets[1] =
|
|||||||
{sOptionsCursor_Gfx, 0x40, GFXTAG_CURSOR}
|
{sOptionsCursor_Gfx, 0x40, GFXTAG_CURSOR}
|
||||||
};
|
};
|
||||||
|
|
||||||
const struct SpritePalette sOptionsCursorSpritePalettes[2] =
|
static const struct SpritePalette sOptionsCursorSpritePalettes[2] =
|
||||||
{
|
{
|
||||||
{sOptionsCursor_Pal, PALTAG_CURSOR}
|
{sOptionsCursor_Pal, PALTAG_CURSOR}
|
||||||
};
|
};
|
||||||
@ -307,7 +307,7 @@ void FreeMatchCallSubstruct2(void)
|
|||||||
{
|
{
|
||||||
struct Pokenav_MatchCallGfx *gfx = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_OPEN);
|
struct Pokenav_MatchCallGfx *gfx = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_OPEN);
|
||||||
FreeMatchCallSprites();
|
FreeMatchCallSprites();
|
||||||
sub_81CBC1C();
|
DestroyMatchCallList();
|
||||||
RemoveWindow(gfx->infoBoxWindowId);
|
RemoveWindow(gfx->infoBoxWindowId);
|
||||||
RemoveWindow(gfx->locWindowId);
|
RemoveWindow(gfx->locWindowId);
|
||||||
RemoveWindow(gfx->msgBoxWindowId);
|
RemoveWindow(gfx->msgBoxWindowId);
|
||||||
@ -343,7 +343,7 @@ static u32 LoopedTask_OpenMatchCall(s32 state)
|
|||||||
BgDmaFill(1, 0, 0, 1);
|
BgDmaFill(1, 0, 0, 1);
|
||||||
SetBgTilemapBuffer(1, gfx->bgTilemapBuffer1);
|
SetBgTilemapBuffer(1, gfx->bgTilemapBuffer1);
|
||||||
FillBgTilemapBufferRect_Palette0(1, 0x1000, 0, 0, 32, 20);
|
FillBgTilemapBufferRect_Palette0(1, 0x1000, 0, 0, 32, 20);
|
||||||
CopyPaletteIntoBufferUnfaded(gUnknown_086226E0, 0x10, 0x20);
|
CopyPaletteIntoBufferUnfaded(sCallWindow_Pal, 0x10, 0x20);
|
||||||
CopyBgTilemapBufferToVram(1);
|
CopyBgTilemapBufferToVram(1);
|
||||||
return LT_INC_AND_PAUSE;
|
return LT_INC_AND_PAUSE;
|
||||||
case 2:
|
case 2:
|
||||||
@ -352,11 +352,11 @@ static u32 LoopedTask_OpenMatchCall(s32 state)
|
|||||||
|
|
||||||
LoadCallWindowAndFade(gfx);
|
LoadCallWindowAndFade(gfx);
|
||||||
DecompressAndCopyTileDataToVram(3, sPokeball_Gfx, 0, 0, 0);
|
DecompressAndCopyTileDataToVram(3, sPokeball_Gfx, 0, 0, 0);
|
||||||
CopyPaletteIntoBufferUnfaded(gUnknown_08622700, 0x30, 0x20);
|
CopyPaletteIntoBufferUnfaded(sListWindow_Pal, 0x30, 0x20);
|
||||||
CopyPaletteIntoBufferUnfaded(sPokeball_Pal, 0x50, 0x20);
|
CopyPaletteIntoBufferUnfaded(sPokeball_Pal, 0x50, 0x20);
|
||||||
return LT_INC_AND_PAUSE;
|
return LT_INC_AND_PAUSE;
|
||||||
case 3:
|
case 3:
|
||||||
if (FreeTempTileDataBuffersIfPossible() || !sub_81CAE28())
|
if (FreeTempTileDataBuffersIfPossible() || !IsMatchCallListInitFinished())
|
||||||
return LT_PAUSE;
|
return LT_PAUSE;
|
||||||
|
|
||||||
CreateMatchCallList();
|
CreateMatchCallList();
|
||||||
@ -872,7 +872,7 @@ static u32 ExitMatchCall(s32 state)
|
|||||||
static void CreateMatchCallList(void)
|
static void CreateMatchCallList(void)
|
||||||
{
|
{
|
||||||
struct PokenavListTemplate template;
|
struct PokenavListTemplate template;
|
||||||
template.list = (struct PokenavListItem *)sub_81CAE94();
|
template.list = (struct PokenavListItem *)GetMatchCallList();
|
||||||
template.count = GetNumberRegistered();
|
template.count = GetNumberRegistered();
|
||||||
template.itemSize = sizeof(struct PokenavListItem);
|
template.itemSize = sizeof(struct PokenavListItem);
|
||||||
template.startIndex = 0;
|
template.startIndex = 0;
|
||||||
@ -888,7 +888,7 @@ static void CreateMatchCallList(void)
|
|||||||
CreateTask(Task_FlashPokeballIcons, 7);
|
CreateTask(Task_FlashPokeballIcons, 7);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_81CBC1C(void)
|
static void DestroyMatchCallList(void)
|
||||||
{
|
{
|
||||||
DestroyPokenavList();
|
DestroyPokenavList();
|
||||||
DestroyTask(FindTaskIdByFunc(Task_FlashPokeballIcons));
|
DestroyTask(FindTaskIdByFunc(Task_FlashPokeballIcons));
|
||||||
|
Loading…
Reference in New Issue
Block a user