diff options
Diffstat (limited to 'src/contest_link.c')
-rw-r--r-- | src/contest_link.c | 66 |
1 files changed, 35 insertions, 31 deletions
diff --git a/src/contest_link.c b/src/contest_link.c index 172a2b2ba..aff24052a 100644 --- a/src/contest_link.c +++ b/src/contest_link.c @@ -9,8 +9,8 @@ #include "contest_link.h" #include "constants/flags.h" -static void sub_80FC5C0(u8); -static void sub_80FC5DC(u8); +static void Task_LinkContest_StartInitFlags(u8); +static void Task_LinkContest_InitFlags(u8); #define tState data[0] #define tCategory data[9] @@ -52,7 +52,7 @@ bool8 LinkContest_GetBlockReceivedFromAllPlayers(void) } } -void sub_80FC580(u8 taskId) +void Task_LinkContest_Init(u8 taskId) { u8 i; @@ -60,15 +60,15 @@ void sub_80FC580(u8 taskId) gBlockRecvBuffer[i][0] = 0xFF; gTasks[taskId].tState = 0; - gTasks[taskId].func = sub_80FC5C0; + gTasks[taskId].func = Task_LinkContest_StartInitFlags; } -static void sub_80FC5C0(u8 taskId) +static void Task_LinkContest_StartInitFlags(u8 taskId) { - gTasks[taskId].func = sub_80FC5DC; + gTasks[taskId].func = Task_LinkContest_InitFlags; } -static void sub_80FC5DC(u8 taskId) +static void Task_LinkContest_InitFlags(u8 taskId) { int i; @@ -91,8 +91,9 @@ static void sub_80FC5DC(u8 taskId) SwitchTaskToFollowupFunc(taskId); } -bool32 sub_80FC670(s16 *state) +bool32 LinkContest_TryLinkStandby(s16 *state) { + // Skip standby for RS cabled links if (gLinkContestFlags & LINK_CONTEST_FLAG_HAS_RS_PLAYER) return TRUE; @@ -101,7 +102,7 @@ bool32 sub_80FC670(s16 *state) case 0: if (IsLinkTaskFinished()) { - sub_800ADF8(); + SetLinkStandbyCallback(); (*state)++; } return FALSE; @@ -116,16 +117,17 @@ bool32 sub_80FC670(s16 *state) } } -void sub_80FC6BC(u8 taskId) +void Task_LinkContest_CommunicateMonsRS(u8 taskId) { int i; - if (!sub_80FC670(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) return; switch (gTasks[taskId].tState) { case 0: + // Send players mon if (GetMultiplayerId() == 0) { if (IsLinkTaskFinished()) @@ -141,6 +143,7 @@ void sub_80FC6BC(u8 taskId) } break; case 1: + // Wait for other players data if (LinkContest_GetBlockReceivedFromAllPlayers()) { for (i = 0; i < gNumLinkContestPlayers; i++) @@ -153,9 +156,10 @@ void sub_80FC6BC(u8 taskId) } break; case 10: + // Only if leader. Request other players data if (++gTasks[taskId].tTimer > 300) { - sub_800A4D8(2); + SendBlockRequest(2); gTasks[taskId].tState = 1; } break; @@ -168,7 +172,7 @@ void sub_80FC6BC(u8 taskId) } } -void sub_80FC804(u8 taskId) +void Task_LinkContest_CommunicateRngRS(u8 taskId) { switch (gTasks[taskId].tState) { @@ -198,11 +202,11 @@ void sub_80FC804(u8 taskId) } } -void sub_80FC894(u8 taskId) +void Task_LinkContest_CommunicateCategoryRS(u8 taskId) { int i; - if (!sub_80FC670(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) return; switch (gTasks[taskId].tState) @@ -231,7 +235,7 @@ void sub_80FC894(u8 taskId) case 10: if (++gTasks[taskId].tTimer > 10) { - sub_800A4D8(2); + SendBlockRequest(2); gTasks[taskId].tState = 1; } break; @@ -311,7 +315,7 @@ void Task_LinkContest_CommunicateFinalStandings(u8 taskId) case 1: if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestMonTotalPoints, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestMonTotalPoints)); + memcpy(gContestMonTotalPoints, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(gContestMonTotalPoints)); gTasks[taskId].tState++; } break; @@ -335,7 +339,7 @@ void Task_LinkContest_CommunicateFinalStandings(u8 taskId) case 4: if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestMonAppealPointTotals, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestMonAppealPointTotals)); + memcpy(gContestMonAppealPointTotals, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(gContestMonAppealPointTotals)); gTasks[taskId].tState++; } break; @@ -349,7 +353,7 @@ void Task_LinkContest_CommunicateFinalStandings(u8 taskId) case 7: if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestMonRound2Points, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestMonRound2Points)); + memcpy(gContestMonRound2Points, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(gContestMonRound2Points)); gTasks[taskId].tState++; } break; @@ -363,7 +367,7 @@ void Task_LinkContest_CommunicateFinalStandings(u8 taskId) case 10: if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestFinalStandings, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestFinalStandings)); + memcpy(gContestFinalStandings, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(gContestFinalStandings)); gTasks[taskId].tState++; } break; @@ -388,7 +392,7 @@ void sub_80FCC88(u8 taskId) case 1: if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(eContestantStatus, gBlockRecvBuffer[gUnknown_02039F2B], CONTESTANT_COUNT * sizeof(struct ContestantStatus)); + memcpy(eContestantStatus, gBlockRecvBuffer[gContestLinkLeaderIndex], CONTESTANT_COUNT * sizeof(struct ContestantStatus)); gTasks[taskId].tState++; } break; @@ -412,7 +416,7 @@ void sub_80FCC88(u8 taskId) case 4: if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestResources->field_8, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(struct UnknownContestStruct7)); + memcpy(gContestResources->field_8, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(struct UnknownContestStruct7)); gTasks[taskId].tState++; } break; @@ -426,7 +430,7 @@ void sub_80FCC88(u8 taskId) case 7: if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestResources->field_10, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(struct UnknownContestStruct5)); + memcpy(gContestResources->field_10, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(struct UnknownContestStruct5)); gTasks[taskId].tState++; } break; @@ -440,7 +444,7 @@ void sub_80FCC88(u8 taskId) case 10: if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestantTurnOrder, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestantTurnOrder)); + memcpy(gContestantTurnOrder, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(gContestantTurnOrder)); gTasks[taskId].tState++; } break; @@ -451,11 +455,11 @@ void sub_80FCC88(u8 taskId) } } -void sub_80FCE48(u8 taskId) +void Task_LinkContest_CommunicateLeaderIdsRS(u8 taskId) { int i; - if (!sub_80FC670(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) return; switch (gTasks[taskId].tState) @@ -484,7 +488,7 @@ void sub_80FCE48(u8 taskId) case 10: if (++gTasks[taskId].tTimer > 10) { - sub_800A4D8(2); + SendBlockRequest(2); gTasks[taskId].tState = 1; } break; @@ -499,7 +503,7 @@ void sub_80FCE48(u8 taskId) void Task_LinkContest_CommunicateRound1Points(u8 taskId) { - if (!sub_80FC670(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) return; switch (gTasks[taskId].tState) @@ -514,7 +518,7 @@ void Task_LinkContest_CommunicateRound1Points(u8 taskId) case 1: if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestMonRound1Points, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestMonRound1Points)); + memcpy(gContestMonRound1Points, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(gContestMonRound1Points)); gTasks[taskId].tState++; } break; @@ -528,7 +532,7 @@ void Task_LinkContest_CommunicateRound1Points(u8 taskId) void Task_LinkContest_CommunicateTurnOrder(u8 taskId) { - if (!sub_80FC670(&gTasks[taskId].data[12])) + if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) return; switch (gTasks[taskId].tState) @@ -543,7 +547,7 @@ void Task_LinkContest_CommunicateTurnOrder(u8 taskId) case 1: if (LinkContest_GetBlockReceivedFromAllPlayers()) { - memcpy(gContestantTurnOrder, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestantTurnOrder)); + memcpy(gContestantTurnOrder, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(gContestantTurnOrder)); gTasks[taskId].tState++; } break; |