diff options
author | GriffinR <griffin.richards@comcast.net> | 2019-12-05 15:33:36 -0500 |
---|---|---|
committer | GriffinR <griffin.richards@comcast.net> | 2019-12-05 15:33:36 -0500 |
commit | 548af3c0f1a2807e791fe7bbfe1fc57ddb726c5e (patch) | |
tree | e4ef44282b7599b1bdefb729ba33e74d15ba0d86 /src/pokenav_unk_3.c | |
parent | 70d1f54ab96235b0e0d07d40526f16449e7cb1e7 (diff) |
Document a bit of Match Call
Diffstat (limited to 'src/pokenav_unk_3.c')
-rwxr-xr-x | src/pokenav_unk_3.c | 168 |
1 files changed, 91 insertions, 77 deletions
diff --git a/src/pokenav_unk_3.c b/src/pokenav_unk_3.c index c66434192..09aef6a0c 100755 --- a/src/pokenav_unk_3.c +++ b/src/pokenav_unk_3.c @@ -15,21 +15,25 @@ #include "constants/flags.h" #include "constants/songs.h" +//#define ?? id1 +#define mapSec id2 // naming multi-purpose field +#define headerId data // naming multi-purpose field + struct Pokenav3Struct { u16 unk0; u16 unk2; - const u8 *unk4; - u16 unk8; + const u8 *matchCallOptions; + u16 headerId; u16 unkA; u16 unkC; u32 unk10; u32 unk14; u32 (*callback)(struct Pokenav3Struct*); - struct PokenavMonList unk1C[99]; + struct PokenavMonList matchCallEntries[MAX_REMATCH_ENTRIES - 1]; }; -static u32 sub_81CAB44(struct Pokenav3Struct *); +static u32 CB2_HandleMatchCallInput(struct Pokenav3Struct *); static u32 sub_81CABFC(struct Pokenav3Struct *); static u32 sub_81CAC04(struct Pokenav3Struct *); static u32 sub_81CACB8(struct Pokenav3Struct *); @@ -39,8 +43,18 @@ static bool32 sub_81CB1D0(void); #include "data/text/match_call_messages.h" -const u8 gUnknown_08622508[] = {0, 2}; -const u8 gUnknown_0862250A[] = {0, 1, 2}; +static const u8 sMatchCallOptionsNoCheckPage[] = +{ + MATCH_CALL_OPTION_CALL, + MATCH_CALL_OPTION_CANCEL +}; + +static const u8 sMatchCallOptionsHasCheckPage[] = +{ + MATCH_CALL_OPTION_CALL, + MATCH_CALL_OPTION_CHECK, + MATCH_CALL_OPTION_CANCEL +}; bool32 PokenavCallback_Init_11(void) { @@ -48,8 +62,8 @@ bool32 PokenavCallback_Init_11(void) if (!state) return FALSE; - state->callback = sub_81CAB44; - state->unk8 = 0; + state->callback = CB2_HandleMatchCallInput; + state->headerId = 0; state->unk10 = 0; state->unk14 = CreateLoopedTask(sub_81CAD20, 1); return TRUE; @@ -66,9 +80,9 @@ void sub_81CAB38(void) FreePokenavSubstruct(5); } -static u32 sub_81CAB44(struct Pokenav3Struct *state) +static u32 CB2_HandleMatchCallInput(struct Pokenav3Struct *state) { - int selectedMatchCall; + int selection; if (gMain.newAndRepeatedKeys & DPAD_UP) return 2; @@ -83,15 +97,15 @@ static u32 sub_81CAB44(struct Pokenav3Struct *state) { state->callback = sub_81CAC04; state->unk0 = 0; - selectedMatchCall = GetSelectedMatchCall(); - if (!state->unk1C[selectedMatchCall].boxId || MatchCall_HasCheckPage(state->unk1C[selectedMatchCall].unk6)) + selection = GetSelectedMatchCall(); + if (!state->matchCallEntries[selection].id1 || MatchCall_HasCheckPage(state->matchCallEntries[selection].headerId)) { - state->unk4 = gUnknown_0862250A; + state->matchCallOptions = sMatchCallOptionsHasCheckPage; state->unk2 = 2; } else { - state->unk4 = gUnknown_08622508; + state->matchCallOptions = sMatchCallOptionsNoCheckPage; state->unk2 = 1; } @@ -100,7 +114,7 @@ static u32 sub_81CAB44(struct Pokenav3Struct *state) if (gMain.newKeys & B_BUTTON) { - if (GetPokenavMode() != POKENAV_MODE_FORCE_CALL_1) + if (GetPokenavMode() != POKENAV_MODE_FORCE_CALL_READY) { state->callback = sub_81CABFC; return 15; @@ -135,21 +149,21 @@ static u32 sub_81CAC04(struct Pokenav3Struct *state) if (gMain.newKeys & A_BUTTON) { - switch (state->unk4[state->unk0]) + switch (state->matchCallOptions[state->unk0]) { - case 2: - state->callback = sub_81CAB44; + case MATCH_CALL_OPTION_CANCEL: + state->callback = CB2_HandleMatchCallInput; return 7; - case 0: - if (GetPokenavMode() == POKENAV_MODE_FORCE_CALL_1) - SetPokenavMode(POKENAV_MODE_FORCE_CALL_2); + case MATCH_CALL_OPTION_CALL: + if (GetPokenavMode() == POKENAV_MODE_FORCE_CALL_READY) + SetPokenavMode(POKENAV_MODE_FORCE_CALL_EXIT); state->callback = sub_81CACF8; if (sub_81CB1D0()) return 9; return 8; - case 1: + case MATCH_CALL_OPTION_CHECK: state->callback = sub_81CACB8; return 11; } @@ -157,7 +171,7 @@ static u32 sub_81CAC04(struct Pokenav3Struct *state) if (gMain.newKeys & B_BUTTON) { - state->callback = sub_81CAB44; + state->callback = CB2_HandleMatchCallInput; return 7; } @@ -173,7 +187,7 @@ static u32 sub_81CACB8(struct Pokenav3Struct *state) if (gMain.newKeys & B_BUTTON) { - state->callback = sub_81CAB44; + state->callback = CB2_HandleMatchCallInput; return 14; } @@ -184,7 +198,7 @@ static u32 sub_81CACF8(struct Pokenav3Struct *state) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { - state->callback = sub_81CAB44; + state->callback = CB2_HandleMatchCallInput; return 10; } @@ -198,41 +212,41 @@ static u32 sub_81CAD20(s32 taskState) switch (taskState) { case 0: - state->unk8 = 0; + state->headerId = 0; state->unkA = 0; return LT_INC_AND_CONTINUE; case 1: - for (i = 0, j = state->unk8; i < 30; i++, j++) + for (i = 0, j = state->headerId; i < 30; i++, j++) { if (MatchCallFlagGetByIndex(j)) { - state->unk1C[state->unkA].unk6 = j; - state->unk1C[state->unkA].boxId = 1; - state->unk1C[state->unkA].monId = MatchCallMapSecGetByIndex(j); + state->matchCallEntries[state->unkA].headerId = j; + state->matchCallEntries[state->unkA].id1 = TRUE; + state->matchCallEntries[state->unkA].mapSec = MatchCallMapSecGetByIndex(j); state->unkA++; } - if (++state->unk8 >= MC_HEADER_COUNT) + if (++state->headerId >= MC_HEADER_COUNT) { - state->unkC = state->unk8; - state->unk8 = 0; + state->unkC = state->headerId; + state->headerId = 0; return LT_INC_AND_CONTINUE; } } return LT_CONTINUE; case 2: - for (i = 0, j = state->unk8; i < 30; i++, j++) + for (i = 0, j = state->headerId; i < 30; i++, j++) { - if (!sub_81D1BF8(state->unk8) && sub_81CAE08(state->unk8)) + if (!sub_81D1BF8(state->headerId) && IsRematchEntryRegistered(state->headerId)) { - state->unk1C[state->unkA].unk6 = state->unk8; - state->unk1C[state->unkA].boxId = 0; - state->unk1C[state->unkA].monId = sub_81CB0C8(j); + state->matchCallEntries[state->unkA].headerId = state->headerId; + state->matchCallEntries[state->unkA].id1 = FALSE; + state->matchCallEntries[state->unkA].mapSec = sub_81CB0C8(j); state->unkA++; } - if (++state->unk8 > REMATCH_TABLE_ENTRIES - 1) + if (++state->headerId > REMATCH_TABLE_ENTRIES - 1) return LT_INC_AND_CONTINUE; } @@ -245,7 +259,7 @@ static u32 sub_81CAD20(s32 taskState) return LT_FINISH; } -bool32 sub_81CAE08(int rematchIndex) +bool32 IsRematchEntryRegistered(int rematchIndex) { if (rematchIndex < REMATCH_TABLE_ENTRIES) return FlagGet(FLAG_MATCH_CALL_REGISTERED + rematchIndex); @@ -284,28 +298,28 @@ int unref_sub_81CAE6C(int arg0) if (arg0 >= state->unkA) return REMATCH_TABLE_ENTRIES; - return state->unk1C[arg0].unk6; + return state->matchCallEntries[arg0].headerId; } struct PokenavMonList *sub_81CAE94(void) { struct Pokenav3Struct *state = GetSubstructPtr(5); - return state->unk1C; + return state->matchCallEntries; } u16 sub_81CAEA4(int index) { struct Pokenav3Struct *state = GetSubstructPtr(5); - return state->unk1C[index].monId; + return state->matchCallEntries[index].mapSec; } bool32 sub_81CAEBC(int index) { struct Pokenav3Struct *state = GetSubstructPtr(5); - if (!state->unk1C[index].boxId) - index = state->unk1C[index].unk6; + if (!state->matchCallEntries[index].id1) + index = state->matchCallEntries[index].headerId; else - index = MatchCall_GetRematchTableIdx(state->unk1C[index].unk6); + index = MatchCall_GetRematchTableIdx(state->matchCallEntries[index].headerId); if (index == REMATCH_TABLE_ENTRIES) return FALSE; @@ -313,17 +327,17 @@ bool32 sub_81CAEBC(int index) return gSaveBlock1Ptr->trainerRematches[index] != 0; } -int sub_81CAF04(int index) +int GetMatchCallTrainerPic(int index) { int var0; struct Pokenav3Struct *state = GetSubstructPtr(5); - if (!state->unk1C[index].boxId) + if (!state->matchCallEntries[index].id1) { - index = GetTrainerIdxByRematchIdx(state->unk1C[index].unk6); + index = GetTrainerIdxByRematchIdx(state->matchCallEntries[index].headerId); return gTrainers[index].trainerPic; } - var0 = state->unk1C[index].unk6; + var0 = state->matchCallEntries[index].headerId; index = MatchCall_GetRematchTableIdx(var0); if (index != REMATCH_TABLE_ENTRIES) { @@ -342,30 +356,30 @@ const u8 *sub_81CAF78(int index, u8 *arg1) if (!Overworld_MapTypeAllowsTeleportAndFly(gMapHeader.mapType)) return gText_CallCantBeMadeHere; - if (!state->unk1C[index].boxId) - *arg1 = SelectMatchCallMessage(GetTrainerIdxByRematchIdx(state->unk1C[index].unk6), gStringVar4); + if (!state->matchCallEntries[index].id1) + *arg1 = SelectMatchCallMessage(GetTrainerIdxByRematchIdx(state->matchCallEntries[index].headerId), gStringVar4); else - MatchCall_GetMessage(state->unk1C[index].unk6, gStringVar4); + MatchCall_GetMessage(state->matchCallEntries[index].headerId, gStringVar4); return gStringVar4; } -const u8 *sub_81CAFD8(int index, int textType) +const u8 *GetMatchCallFlavorText(int index, int checkPageEntry) { - int var0; + int rematchId; struct Pokenav3Struct *state = GetSubstructPtr(5); - if (state->unk1C[index].boxId) + if (state->matchCallEntries[index].id1) { - var0 = MatchCall_GetRematchTableIdx(state->unk1C[index].unk6); - if (var0 == REMATCH_TABLE_ENTRIES) - return MatchCall_GetOverrideFlavorText(state->unk1C[index].unk6, textType); + rematchId = MatchCall_GetRematchTableIdx(state->matchCallEntries[index].headerId); + if (rematchId == REMATCH_TABLE_ENTRIES) + return MatchCall_GetOverrideFlavorText(state->matchCallEntries[index].headerId, checkPageEntry); } else { - var0 = state->unk1C[index].unk6; + rematchId = state->matchCallEntries[index].headerId; } - return gMatchCallMessages[var0][textType]; + return gMatchCallFlavorTexts[rematchId][checkPageEntry]; } u16 sub_81CB01C(void) @@ -378,18 +392,18 @@ u16 sub_81CB02C(int arg0) { struct Pokenav3Struct *state = GetSubstructPtr(5); if (state->unk2 < arg0) - return 3; + return MATCH_CALL_OPTION_COUNT; - return state->unk4[arg0]; + return state->matchCallOptions[arg0]; } void sub_81CB050(struct PokenavMonList * arg0, u8 *str) { const u8 *trainerName; const u8 *className; - if (!arg0->boxId) + if (!arg0->id1) { - int index = GetTrainerIdxByRematchIdx(arg0->unk6); + int index = GetTrainerIdxByRematchIdx(arg0->headerId); const struct Trainer *trainer = &gTrainers[index]; int class = trainer->trainerClass; className = gTrainerClassNames[class]; @@ -397,7 +411,7 @@ void sub_81CB050(struct PokenavMonList * arg0, u8 *str) } else { - sub_81D1A78(arg0->unk6, &className, &trainerName); + sub_81D1A78(arg0->headerId, &className, &trainerName); } if (className && trainerName) @@ -424,9 +438,9 @@ int sub_81CB0E4(int index) int count = 1; while (++index < state->unkA) { - if (!state->unk1C[index].boxId) + if (!state->matchCallEntries[index].id1) return count; - if (MatchCall_HasCheckPage(state->unk1C[index].unk6)) + if (MatchCall_HasCheckPage(state->matchCallEntries[index].headerId)) return count; count++; @@ -441,9 +455,9 @@ int sub_81CB128(int index) int count = -1; while (--index >= 0) { - if (!state->unk1C[index].boxId) + if (!state->matchCallEntries[index].id1) return count; - if (MatchCall_HasCheckPage(state->unk1C[index].unk6)) + if (MatchCall_HasCheckPage(state->matchCallEntries[index].headerId)) return count; count--; @@ -458,7 +472,7 @@ bool32 unref_sub_81CB16C(void) for (i = 0; i < REMATCH_TABLE_ENTRIES; i++) { - if (sub_81CAE08(i) && gSaveBlock1Ptr->trainerRematches[i]) + if (IsRematchEntryRegistered(i) && gSaveBlock1Ptr->trainerRematches[i]) return TRUE; } @@ -478,20 +492,20 @@ bool32 unref_sub_81CB16C(void) static bool32 sub_81CB1D0(void) { struct Pokenav3Struct *state = GetSubstructPtr(5); - int index = GetSelectedMatchCall(); - if (!state->unk1C[index].boxId) + int selection = GetSelectedMatchCall(); + if (!state->matchCallEntries[selection].id1) { - if (sub_81CAEA4(index) == gMapHeader.regionMapSectionId) + if (sub_81CAEA4(selection) == gMapHeader.regionMapSectionId) { - if (!gSaveBlock1Ptr->trainerRematches[state->unk1C[index].unk6]) + if (!gSaveBlock1Ptr->trainerRematches[state->matchCallEntries[selection].headerId]) return TRUE; } } else { - if (state->unk1C[index].unk6 == 11) + if (state->matchCallEntries[selection].headerId == MC_HEADER_WATTSON) { - if (sub_81CAEA4(index) == gMapHeader.regionMapSectionId + if (sub_81CAEA4(selection) == gMapHeader.regionMapSectionId && FlagGet(FLAG_BADGE05_GET) == TRUE) { if (!FlagGet(FLAG_WATTSON_REMATCH_AVAILABLE)) |