summaryrefslogtreecommitdiff
path: root/src/contest_link.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/contest_link.c')
-rw-r--r--src/contest_link.c331
1 files changed, 173 insertions, 158 deletions
diff --git a/src/contest_link.c b/src/contest_link.c
index 692c58603..ae6975268 100644
--- a/src/contest_link.c
+++ b/src/contest_link.c
@@ -8,10 +8,18 @@
#include "task.h"
#include "contest_link.h"
-static void sub_80FC5C0(u8);
-static void sub_80FC5DC(u8);
-
-bool32 sub_80FC4F4(void *src, u16 size)
+static void Task_LinkContest_StartInitFlags(u8);
+static void Task_LinkContest_InitFlags(u8);
+
+#define tState data[0]
+#define tDelayTimer data[1]
+#define tCategories(i) data[(i) + 1]
+#define tLeaderIds(i) data[(i) + 5]
+#define tCategory data[9]
+#define tTimer data[11]
+#define tStandbyState data[12]
+
+bool32 LinkContest_SendBlock(void *src, u16 size)
{
memcpy(gDecompressionBuffer, src, size);
if (SendBlock(bitmask_all_link_players_but_self(), gDecompressionBuffer, size))
@@ -20,21 +28,21 @@ bool32 sub_80FC4F4(void *src, u16 size)
return FALSE;
}
-bool8 sub_80FC530(u8 arg0)
+bool8 LinkContest_GetBlockReceived(u8 flag)
{
- u8 mask = (1 << arg0);
+ u8 mask = (1 << flag);
if (!(GetBlockReceivedStatus() & mask))
{
return FALSE;
}
else
{
- ResetBlockReceivedFlag(arg0);
+ ResetBlockReceivedFlag(flag);
return TRUE;
}
}
-bool8 sub_80FC55C(void)
+bool8 LinkContest_GetBlockReceivedFromAllPlayers(void)
{
if (GetBlockReceivedStatus() == GetLinkPlayerCountAsBitFlags())
{
@@ -47,23 +55,23 @@ bool8 sub_80FC55C(void)
}
}
-void sub_80FC580(u8 taskId)
+void Task_LinkContest_Init(u8 taskId)
{
u8 i;
- for (i = 0; i < 4; i++)
+ for (i = 0; i < CONTESTANT_COUNT; i++)
gBlockRecvBuffer[i][0] = 0xFF;
- gTasks[taskId].data[0] = 0;
- gTasks[taskId].func = sub_80FC5C0;
+ gTasks[taskId].tState = 0;
+ 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;
@@ -76,6 +84,7 @@ static void sub_80FC5DC(u8 taskId)
if (gWirelessCommType == 1)
gLinkContestFlags = LINK_CONTEST_FLAG_IS_LINK | LINK_CONTEST_FLAG_IS_WIRELESS;
+ // Get number of players using Emerald/FRLG
for (i = 0; i < gNumLinkContestPlayers && (u32)(gLinkPlayers[i].version & 0xFF) - 1 > VERSION_RUBY - 1; i++)
;
@@ -85,22 +94,23 @@ static void sub_80FC5DC(u8 taskId)
SwitchTaskToFollowupFunc(taskId);
}
-bool32 sub_80FC670(s16 *arg0)
+bool32 LinkContest_TryLinkStandby(s16 *state)
{
+ // Skip standby for RS cabled links
if (gLinkContestFlags & LINK_CONTEST_FLAG_HAS_RS_PLAYER)
return TRUE;
- switch (*arg0)
+ switch (*state)
{
case 0:
if (IsLinkTaskFinished())
{
- sub_800ADF8();
- (*arg0)++;
+ SetLinkStandbyCallback();
+ (*state)++;
}
return FALSE;
case 1:
- (*arg0)++;
+ (*state)++;
return FALSE;
default:
if (IsLinkTaskFinished() != TRUE)
@@ -110,438 +120,443 @@ bool32 sub_80FC670(s16 *arg0)
}
}
-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].tStandbyState))
return;
- switch (gTasks[taskId].data[0])
+ switch (gTasks[taskId].tState)
{
case 0:
+ // Send players mon
if (GetMultiplayerId() == 0)
{
if (IsLinkTaskFinished())
{
memcpy(gBlockSendBuffer, &gContestMons[gContestPlayerMonIndex], sizeof(struct ContestPokemon));
- gTasks[taskId].data[0] = 10;
+ gTasks[taskId].tState = 10;
}
}
else
{
memcpy(gBlockSendBuffer, &gContestMons[gContestPlayerMonIndex], sizeof(struct ContestPokemon));
- gTasks[taskId].data[0] = 1;
+ gTasks[taskId].tState = 1;
}
break;
case 1:
- if (sub_80FC55C())
+ // Wait for other players data
+ if (LinkContest_GetBlockReceivedFromAllPlayers())
{
for (i = 0; i < gNumLinkContestPlayers; i++)
{
memcpy(&gContestMons[i], gBlockRecvBuffer[i], sizeof(struct ContestPokemon));
- sub_80DFA08(&gContestMons[i], gLinkPlayers[i].language);
+ StripPlayerAndMonNamesForLinkContest(&gContestMons[i], gLinkPlayers[i].language);
}
- gTasks[taskId].data[0]++;
+ gTasks[taskId].tState++;
}
break;
case 10:
- if (++gTasks[taskId].data[11] > 300)
+ // Only if leader. Request other players data
+ if (++gTasks[taskId].tTimer > 300)
{
- sub_800A4D8(2);
- gTasks[taskId].data[0] = 1;
+ SendBlockRequest(2);
+ gTasks[taskId].tState = 1;
}
break;
default:
- gTasks[taskId].data[0] = 0;
- gTasks[taskId].data[11] = 0;
- gTasks[taskId].data[12] = 0;
+ gTasks[taskId].tState = 0;
+ gTasks[taskId].tTimer = 0;
+ gTasks[taskId].tStandbyState = 0;
SwitchTaskToFollowupFunc(taskId);
break;
}
}
-void sub_80FC804(u8 taskId)
+void Task_LinkContest_CommunicateRngRS(u8 taskId)
{
- switch (gTasks[taskId].data[0])
+ switch (gTasks[taskId].tState)
{
case 0:
if (GetMultiplayerId() == 0)
{
- if (IsLinkTaskFinished() && sub_80FC4F4(&gRngValue, sizeof(gRngValue)) == TRUE)
- gTasks[taskId].data[0]++;
+ if (IsLinkTaskFinished() && LinkContest_SendBlock(&gRngValue, sizeof(gRngValue)) == TRUE)
+ gTasks[taskId].tState++;
}
else
{
- gTasks[taskId].data[0]++;
+ gTasks[taskId].tState++;
}
break;
case 1:
- if (sub_80FC530(0))
+ if (LinkContest_GetBlockReceived(0))
{
memcpy(&gRngValue, gBlockRecvBuffer[0], sizeof(gRngValue));
memcpy(&gContestRngValue, gBlockRecvBuffer[0], sizeof(gContestRngValue));
- gTasks[taskId].data[0]++;
+ gTasks[taskId].tState++;
}
break;
default:
- gTasks[taskId].data[0] = 0;
+ gTasks[taskId].tState = 0;
SwitchTaskToFollowupFunc(taskId);
break;
}
}
-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].tStandbyState))
return;
- switch (gTasks[taskId].data[0])
+ switch (gTasks[taskId].tState)
{
case 0:
- gBlockSendBuffer[0] = gTasks[taskId].data[9];
+ gBlockSendBuffer[0] = gTasks[taskId].tCategory;
if (GetMultiplayerId() == 0)
{
if (IsLinkTaskFinished())
- gTasks[taskId].data[0] = 10;
+ gTasks[taskId].tState = 10;
}
else
{
- gTasks[taskId].data[0]++;
+ gTasks[taskId].tState++;
}
break;
case 1:
- if (sub_80FC55C())
+ if (LinkContest_GetBlockReceivedFromAllPlayers())
{
for (i = 0; i < gNumLinkContestPlayers; i++)
- gTasks[taskId].data[i + 1] = gBlockRecvBuffer[i][0];
+ gTasks[taskId].tCategories(i) = gBlockRecvBuffer[i][0];
- gTasks[taskId].data[0]++;
+ gTasks[taskId].tState++;
}
break;
case 10:
- if (++gTasks[taskId].data[11] > 10)
+ if (++gTasks[taskId].tTimer > 10)
{
- sub_800A4D8(2);
- gTasks[taskId].data[0] = 1;
+ SendBlockRequest(2);
+ gTasks[taskId].tState = 1;
}
break;
default:
- gTasks[taskId].data[0] = 0;
- gTasks[taskId].data[11] = 0;
- gTasks[taskId].data[12] = 0;
+ gTasks[taskId].tState = 0;
+ gTasks[taskId].tTimer = 0;
+ gTasks[taskId].tStandbyState = 0;
SwitchTaskToFollowupFunc(taskId);
break;
}
}
-void sub_80FC998(u8 taskId)
+void Task_LinkContest_CommunicateMonIdxs(u8 taskId)
{
- switch (gTasks[taskId].data[0])
+ switch (gTasks[taskId].tState)
{
case 0:
if (IsLinkTaskFinished())
{
- if (sub_80FC4F4(&gContestPlayerMonIndex, sizeof(gContestPlayerMonIndex)) == TRUE)
- gTasks[taskId].data[0]++;
+ if (LinkContest_SendBlock(&gContestPlayerMonIndex, sizeof(gContestPlayerMonIndex)) == TRUE)
+ gTasks[taskId].tState++;
}
break;
case 1:
- if (sub_80FC55C())
- gTasks[taskId].data[0]++;
+ if (LinkContest_GetBlockReceivedFromAllPlayers())
+ gTasks[taskId].tState++;
break;
default:
- gTasks[taskId].data[0] = 0;
+ gTasks[taskId].tState = 0;
SwitchTaskToFollowupFunc(taskId);
break;
}
}
-void sub_80FC9F8(u8 taskId)
+void Task_LinkContest_CommunicateMoveSelections(u8 taskId)
{
int i;
- switch (gTasks[taskId].data[0])
+ switch (gTasks[taskId].tState)
{
case 0:
if (IsLinkTaskFinished())
{
- if (sub_80FC4F4(&eContestantStatus[gContestPlayerMonIndex].currMove, sizeof(eContestantStatus[gContestPlayerMonIndex].currMove)) == TRUE)
- gTasks[taskId].data[0]++;
+ // Send player's move selection
+ if (LinkContest_SendBlock(&eContestantStatus[gContestPlayerMonIndex].currMove, sizeof(eContestantStatus[gContestPlayerMonIndex].currMove)) == TRUE)
+ gTasks[taskId].tState++;
}
break;
case 1:
- if (sub_80FC55C())
+ if (LinkContest_GetBlockReceivedFromAllPlayers())
{
+ // Receive partners' move selections
for (i = 0; i < gNumLinkContestPlayers; i++)
eContestantStatus[i].currMove = gBlockRecvBuffer[i][0];
- gTasks[taskId].data[0]++;
+ gTasks[taskId].tState++;
}
break;
default:
- gTasks[taskId].data[0] = 0;
+ gTasks[taskId].tState = 0;
SwitchTaskToFollowupFunc(taskId);
break;
}
}
-void sub_80FCACC(u8 taskId)
+void Task_LinkContest_CommunicateFinalStandings(u8 taskId)
{
- switch (gTasks[taskId].data[0])
+ switch (gTasks[taskId].tState)
{
case 0:
if (IsLinkTaskFinished())
{
- if (sub_80FC4F4(gContestMonTotalPoints, sizeof(gContestMonTotalPoints)) == 1)
- gTasks[taskId].data[0]++;
+ if (LinkContest_SendBlock(gContestMonTotalPoints, sizeof(gContestMonTotalPoints)) == 1)
+ gTasks[taskId].tState++;
}
break;
case 1:
- if (sub_80FC55C())
+ if (LinkContest_GetBlockReceivedFromAllPlayers())
{
- memcpy(gContestMonTotalPoints, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestMonTotalPoints));
- gTasks[taskId].data[0]++;
+ memcpy(gContestMonTotalPoints, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(gContestMonTotalPoints));
+ gTasks[taskId].tState++;
}
break;
case 2:
case 5:
case 8:
case 11:
- if (gTasks[taskId].data[1]++ > 10)
+ if (gTasks[taskId].tDelayTimer++ > 10)
{
- gTasks[taskId].data[1] = 0;
- gTasks[taskId].data[0]++;
+ gTasks[taskId].tDelayTimer = 0;
+ gTasks[taskId].tState++;
}
break;
case 3:
if (IsLinkTaskFinished())
{
- if (sub_80FC4F4(gUnknown_02039F10, sizeof(gUnknown_02039F10)) == 1)
- gTasks[taskId].data[0]++;
+ if (LinkContest_SendBlock(gContestMonAppealPointTotals, sizeof(gContestMonAppealPointTotals)) == 1)
+ gTasks[taskId].tState++;
}
break;
case 4:
- if (sub_80FC55C())
+ if (LinkContest_GetBlockReceivedFromAllPlayers())
{
- memcpy(gUnknown_02039F10, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gUnknown_02039F10));
- gTasks[taskId].data[0]++;
+ memcpy(gContestMonAppealPointTotals, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(gContestMonAppealPointTotals));
+ gTasks[taskId].tState++;
}
break;
case 6:
if (IsLinkTaskFinished())
{
- if (sub_80FC4F4(gContestMonRound2Points, sizeof(gContestMonRound2Points)) == 1)
- gTasks[taskId].data[0]++;
+ if (LinkContest_SendBlock(gContestMonRound2Points, sizeof(gContestMonRound2Points)) == 1)
+ gTasks[taskId].tState++;
}
break;
case 7:
- if (sub_80FC55C())
+ if (LinkContest_GetBlockReceivedFromAllPlayers())
{
- memcpy(gContestMonRound2Points, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestMonRound2Points));
- gTasks[taskId].data[0]++;
+ memcpy(gContestMonRound2Points, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(gContestMonRound2Points));
+ gTasks[taskId].tState++;
}
break;
case 9:
if (IsLinkTaskFinished())
{
- if (sub_80FC4F4(gContestFinalStandings, sizeof(gContestFinalStandings)) == 1)
- gTasks[taskId].data[0]++;
+ if (LinkContest_SendBlock(gContestFinalStandings, sizeof(gContestFinalStandings)) == 1)
+ gTasks[taskId].tState++;
}
break;
case 10:
- if (sub_80FC55C())
+ if (LinkContest_GetBlockReceivedFromAllPlayers())
{
- memcpy(gContestFinalStandings, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestFinalStandings));
- gTasks[taskId].data[0]++;
+ memcpy(gContestFinalStandings, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(gContestFinalStandings));
+ gTasks[taskId].tState++;
}
break;
default:
- gTasks[taskId].data[0] = 0;
+ gTasks[taskId].tState = 0;
SwitchTaskToFollowupFunc(taskId);
break;
}
}
-void sub_80FCC88(u8 taskId)
+void Task_LinkContest_CommunicateAppealsState(u8 taskId)
{
- switch (gTasks[taskId].data[0])
+ switch (gTasks[taskId].tState)
{
case 0:
if (IsLinkTaskFinished())
{
- if (sub_80FC4F4(eContestantStatus, 4 * sizeof(struct ContestantStatus)) == 1)
- gTasks[taskId].data[0]++;
+ if (LinkContest_SendBlock(eContestantStatus, CONTESTANT_COUNT * sizeof(struct ContestantStatus)) == 1)
+ gTasks[taskId].tState++;
}
break;
case 1:
- if (sub_80FC55C())
+ if (LinkContest_GetBlockReceivedFromAllPlayers())
{
- memcpy(eContestantStatus, gBlockRecvBuffer[gUnknown_02039F2B], 4 * sizeof(struct ContestantStatus));
- gTasks[taskId].data[0]++;
+ memcpy(eContestantStatus, gBlockRecvBuffer[gContestLinkLeaderIndex], CONTESTANT_COUNT * sizeof(struct ContestantStatus));
+ gTasks[taskId].tState++;
}
break;
case 2:
case 5:
case 8:
case 11:
- if (gTasks[taskId].data[1]++ > 10)
+ if (gTasks[taskId].tDelayTimer++ > 10)
{
- gTasks[taskId].data[1] = 0;
- gTasks[taskId].data[0]++;
+ gTasks[taskId].tDelayTimer = 0;
+ gTasks[taskId].tState++;
}
break;
case 3:
if (IsLinkTaskFinished())
{
- if (sub_80FC4F4(gContestResources->field_8, sizeof(struct UnknownContestStruct7)) == 1)
- gTasks[taskId].data[0]++;
+ if (LinkContest_SendBlock(gContestResources->appealResults, sizeof(struct ContestAppealMoveResults)) == 1)
+ gTasks[taskId].tState++;
}
break;
case 4:
- if (sub_80FC55C())
+ if (LinkContest_GetBlockReceivedFromAllPlayers())
{
- memcpy(gContestResources->field_8, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(struct UnknownContestStruct7));
- gTasks[taskId].data[0]++;
+ memcpy(gContestResources->appealResults, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(struct ContestAppealMoveResults));
+ gTasks[taskId].tState++;
}
break;
case 6:
if (IsLinkTaskFinished())
{
- if (sub_80FC4F4(gContestResources->field_10, sizeof(struct UnknownContestStruct5)) == 1)
- gTasks[taskId].data[0]++;
+ if (LinkContest_SendBlock(gContestResources->excitement, sizeof(struct ContestExcitement)) == 1)
+ gTasks[taskId].tState++;
}
break;
case 7:
- if (sub_80FC55C())
+ if (LinkContest_GetBlockReceivedFromAllPlayers())
{
- memcpy(gContestResources->field_10, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(struct UnknownContestStruct5));
- gTasks[taskId].data[0]++;
+ memcpy(gContestResources->excitement, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(struct ContestExcitement));
+ gTasks[taskId].tState++;
}
break;
case 9:
if (IsLinkTaskFinished())
{
- if (sub_80FC4F4(gContestantTurnOrder, sizeof(gContestantTurnOrder)) == 1)
- gTasks[taskId].data[0]++;
+ if (LinkContest_SendBlock(gContestantTurnOrder, sizeof(gContestantTurnOrder)) == 1)
+ gTasks[taskId].tState++;
}
break;
case 10:
- if (sub_80FC55C())
+ if (LinkContest_GetBlockReceivedFromAllPlayers())
{
- memcpy(gContestantTurnOrder, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestantTurnOrder));
- gTasks[taskId].data[0]++;
+ memcpy(gContestantTurnOrder, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(gContestantTurnOrder));
+ gTasks[taskId].tState++;
}
break;
default:
- gTasks[taskId].data[0] = 0;
+ gTasks[taskId].tState = 0;
SwitchTaskToFollowupFunc(taskId);
break;
}
}
-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].tStandbyState))
return;
- switch (gTasks[taskId].data[0])
+ switch (gTasks[taskId].tState)
{
case 0:
gBlockSendBuffer[0] = 0x6E;
if (GetMultiplayerId() == 0)
{
if (IsLinkTaskFinished())
- gTasks[taskId].data[0] = 10;
+ gTasks[taskId].tState = 10;
}
else
{
- gTasks[taskId].data[0]++;
+ gTasks[taskId].tState++;
}
break;
case 1:
- if (sub_80FC55C())
+ if (LinkContest_GetBlockReceivedFromAllPlayers())
{
- for (i = 0; i < 4; i++)
- gTasks[taskId].data[i + 5] = gBlockRecvBuffer[i][0];
+ for (i = 0; i < CONTESTANT_COUNT; i++)
+ gTasks[taskId].tLeaderIds(i) = gBlockRecvBuffer[i][0];
- gTasks[taskId].data[0]++;
+ gTasks[taskId].tState++;
}
break;
case 10:
- if (++gTasks[taskId].data[11] > 10)
+ if (++gTasks[taskId].tTimer > 10)
{
- sub_800A4D8(2);
- gTasks[taskId].data[0] = 1;
+ SendBlockRequest(2);
+ gTasks[taskId].tState = 1;
}
break;
default:
- gTasks[taskId].data[0] = 0;
- gTasks[taskId].data[11] = 0;
- gTasks[taskId].data[12] = 0;
+ gTasks[taskId].tState = 0;
+ gTasks[taskId].tTimer = 0;
+ gTasks[taskId].tStandbyState = 0;
SwitchTaskToFollowupFunc(taskId);
break;
}
}
-void sub_80FCF40(u8 taskId)
+void Task_LinkContest_CommunicateRound1Points(u8 taskId)
{
- if (!sub_80FC670(&gTasks[taskId].data[12]))
+ if (!LinkContest_TryLinkStandby(&gTasks[taskId].tStandbyState))
return;
- switch (gTasks[taskId].data[0])
+ switch (gTasks[taskId].tState)
{
case 0:
if (IsLinkTaskFinished())
{
- if (sub_80FC4F4(gContestMonConditions, sizeof(gContestMonConditions)) == 1)
- gTasks[taskId].data[0]++;
+ if (LinkContest_SendBlock(gContestMonRound1Points, sizeof(gContestMonRound1Points)) == 1)
+ gTasks[taskId].tState++;
}
break;
case 1:
- if (sub_80FC55C())
+ if (LinkContest_GetBlockReceivedFromAllPlayers())
{
- memcpy(gContestMonConditions, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestMonConditions));
- gTasks[taskId].data[0]++;
+ memcpy(gContestMonRound1Points, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(gContestMonRound1Points));
+ gTasks[taskId].tState++;
}
break;
default:
- gTasks[taskId].data[0] = 0;
- gTasks[taskId].data[12] = 0;
+ gTasks[taskId].tState = 0;
+ gTasks[taskId].tStandbyState = 0;
SwitchTaskToFollowupFunc(taskId);
break;
}
}
-void sub_80FCFD0(u8 taskId)
+void Task_LinkContest_CommunicateTurnOrder(u8 taskId)
{
- if (!sub_80FC670(&gTasks[taskId].data[12]))
+ if (!LinkContest_TryLinkStandby(&gTasks[taskId].tStandbyState))
return;
- switch (gTasks[taskId].data[0])
+ switch (gTasks[taskId].tState)
{
case 0:
if (IsLinkTaskFinished())
{
- if (sub_80FC4F4(gContestantTurnOrder, sizeof(gContestantTurnOrder)) == 1)
- gTasks[taskId].data[0]++;
+ if (LinkContest_SendBlock(gContestantTurnOrder, sizeof(gContestantTurnOrder)) == 1)
+ gTasks[taskId].tState++;
}
break;
case 1:
- if (sub_80FC55C())
+ if (LinkContest_GetBlockReceivedFromAllPlayers())
{
- memcpy(gContestantTurnOrder, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestantTurnOrder));
- gTasks[taskId].data[0]++;
+ memcpy(gContestantTurnOrder, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(gContestantTurnOrder));
+ gTasks[taskId].tState++;
}
break;
default:
- gTasks[taskId].data[0] = 0;
- gTasks[taskId].data[12] = 0;
+ gTasks[taskId].tState = 0;
+ gTasks[taskId].tStandbyState = 0;
SwitchTaskToFollowupFunc(taskId);
break;
}