Document misc contest

This commit is contained in:
GriffinR 2020-08-15 14:33:08 -04:00
parent c42c1ab8c1
commit 9f4525666d
6 changed files with 393 additions and 389 deletions

View File

@ -9,9 +9,9 @@ enum
CONTEST_DEBUG_MODE_OFF, CONTEST_DEBUG_MODE_OFF,
// Prints the totalPoints value for each contestant. // Prints the totalPoints value for each contestant.
CONTEST_DEBUG_MODE_PRINT_POINT_TOTAL, CONTEST_DEBUG_MODE_PRINT_POINT_TOTAL,
// Prints the ContestResourcesField1C::unk_C value as a bitstring for each contestant. // Prints the ContestTV::unk_C value as a bitstring for each contestant.
CONTEST_DEBUG_MODE_PRINT_UNK_C, CONTEST_DEBUG_MODE_PRINT_UNK_C,
// Prints the ContestResourcesField1C::unk_D value as a bitstring for each contestant. // Prints the ContestTV::unk_D value as a bitstring for each contestant.
CONTEST_DEBUG_MODE_PRINT_UNK_D CONTEST_DEBUG_MODE_PRINT_UNK_D
}; };
@ -90,29 +90,29 @@ enum {
struct ContestPokemon struct ContestPokemon
{ {
/*0x00*/ u16 species; u16 species;
/*0x02*/ u8 nickname[POKEMON_NAME_LENGTH + 1]; u8 nickname[POKEMON_NAME_LENGTH + 1];
/*0x0D*/ u8 trainerName[PLAYER_NAME_LENGTH + 1]; u8 trainerName[PLAYER_NAME_LENGTH + 1];
/*0x15*/ u8 trainerGfxId; u8 trainerGfxId;
/*0x18*/ u32 aiChecks; u32 aiChecks;
/*0x1C*/ u8 whichRank:2; // 0x1 0x2 u8 whichRank:2;
u8 aiPool_Cool:1; // 0x4 u8 aiPool_Cool:1;
u8 aiPool_Beauty:1; // 0x8 u8 aiPool_Beauty:1;
u8 aiPool_Cute:1; // 0x10 u8 aiPool_Cute:1;
u8 aiPool_Smart:1; // 0x20 u8 aiPool_Smart:1;
u8 aiPool_Tough:1; // 0x40 u8 aiPool_Tough:1;
/*0x1E*/ u16 moves[MAX_MON_MOVES]; // moves u16 moves[MAX_MON_MOVES];
/*0x26*/ u8 cool; // cool u8 cool;
/*0x27*/ u8 beauty; // beauty u8 beauty;
/*0x28*/ u8 cute; // cute u8 cute;
/*0x29*/ u8 smart; // smart u8 smart;
/*0x2A*/ u8 tough; // tough u8 tough;
/*0x2B*/ u8 sheen; // sheen u8 sheen;
u8 highestRank; u8 highestRank;
bool8 gameCleared; bool8 gameCleared;
/*0x2C*/ u8 unk2C[10]; u8 unk2C[10];
/*0x38*/ u32 personality; // personality u32 personality;
/*0x3C*/ u32 otId; // otId u32 otId;
}; };
struct Shared1A004 struct Shared1A004
@ -210,14 +210,14 @@ struct ContestantStatus
bool8 judgesAttentionWasRemoved:1; bool8 judgesAttentionWasRemoved:1;
bool8 usedComboMove:1; bool8 usedComboMove:1;
bool8 completedCombo; bool8 completedCombo;
u8 unk17; u8 comboAppealBonus;
u8 unk18; u8 unk18;
u8 nextTurnOrder; // turn position u8 nextTurnOrder; // turn position
u8 attentionLevel; // How much the Pokemon "stood out" u8 attentionLevel; // How much the Pokemon "stood out"
u8 contestantAnimTarget; u8 contestantAnimTarget;
}; };
struct UnknownContestStruct7 struct ContestAppealMoveResults
{ {
u8 turnOrder[CONTESTANT_COUNT]; u8 turnOrder[CONTESTANT_COUNT];
s16 jam; s16 jam;
@ -244,15 +244,15 @@ struct ContestAIInfo
/*0x41*/ u8 contestantId; /*0x41*/ u8 contestantId;
}; };
struct UnknownContestStruct5 struct ContestExcitement
{ {
s8 moveExcitement; s8 moveExcitement;
u8 excitementFrozen:1; u8 frozen:1;
u8 excitementFreezer:3; u8 freezer:3;
s8 unk2; s8 excitementAppealBonus;
}; };
struct UnknownContestStruct4 struct ContestGraphicsState
{ {
u8 sliderHeartSpriteId; u8 sliderHeartSpriteId;
u8 nextTurnSpriteId; u8 nextTurnSpriteId;
@ -269,7 +269,7 @@ struct ContestFinalStandings
s32 contestant; s32 contestant;
}; };
struct ContestResourcesField1C struct ContestTV
{ {
u16 unk0[5]; u16 unk0[5];
s16 unkA; s16 unkA;
@ -279,22 +279,22 @@ struct ContestResourcesField1C
u8 unkE_2:1; u8 unkE_2:1;
}; };
struct ContestResourcesField20 struct ContestUnused
{ {
u8 filler_00[0x0C]; u8 filler[12];
}; };
struct ContestResources struct ContestResources
{ {
struct Contest *contest; struct Contest *contest;
struct ContestantStatus *status; struct ContestantStatus *status;
struct UnknownContestStruct7 *field_8; struct ContestAppealMoveResults *appealResults;
struct ContestAIInfo *aiData; struct ContestAIInfo *aiData;
struct UnknownContestStruct5 *field_10; struct ContestExcitement *excitement;
struct UnknownContestStruct4 *field_14; struct ContestGraphicsState *gfxState;
struct ContestMoveAnimData *moveAnim; struct ContestMoveAnimData *moveAnim;
struct ContestResourcesField1C * field_1c; struct ContestTV *tv;
struct ContestResourcesField20 * field_20; struct ContestUnused * unused;
u8 * contestBgTilemaps[CONTESTANT_COUNT]; u8 * contestBgTilemaps[CONTESTANT_COUNT];
void * boxBlinkTiles1; void * boxBlinkTiles1;
void * boxBlinkTiles2; void * boxBlinkTiles2;
@ -303,10 +303,10 @@ struct ContestResources
#define eContest (*gContestResources->contest) #define eContest (*gContestResources->contest)
#define eContestantStatus (gContestResources->status) #define eContestantStatus (gContestResources->status)
#define eContestResources8 (*gContestResources->field_8) #define eContestAppealResults (*gContestResources->appealResults)
#define eContestAI (*gContestResources->aiData) #define eContestAI (*gContestResources->aiData)
#define eContestResources10 (*gContestResources->field_10) #define eContestExcitement (*gContestResources->excitement)
#define eContestResources14 (*gContestResources->field_14) #define eContestGfxState (gContestResources->gfxState)
#define eUnzippedContestAudience_Gfx (gHeap + 0x18000) #define eUnzippedContestAudience_Gfx (gHeap + 0x18000)
#define eContestAudienceFrame2_Gfx (gHeap + 0x19000) #define eContestAudienceFrame2_Gfx (gHeap + 0x19000)
#define eContestDebugMode (gHeap[0x1a000]) #define eContestDebugMode (gHeap[0x1a000])

View File

@ -1,7 +1,7 @@
#ifndef GUARD_CONTEST_LINK_H #ifndef GUARD_CONTEST_LINK_H
#define GUARD_CONTEST_LINK_H #define GUARD_CONTEST_LINK_H
void sub_80FCC88(u8); void Task_LinkContest_CommunicateAppealsState(u8);
void Task_LinkContest_CommunicateFinalStandings(u8); void Task_LinkContest_CommunicateFinalStandings(u8);
void Task_LinkContest_Init(u8); void Task_LinkContest_Init(u8);
void Task_LinkContest_CommunicateMonsRS(u8); void Task_LinkContest_CommunicateMonsRS(u8);

View File

@ -1027,10 +1027,10 @@ static void InitContestResources(void)
eContestantStatus[i].effectStringId = CONTEST_STRING_NONE; eContestantStatus[i].effectStringId = CONTEST_STRING_NONE;
eContestantStatus[i].effectStringId2 = CONTEST_STRING_NONE; eContestantStatus[i].effectStringId2 = CONTEST_STRING_NONE;
} }
eContestResources8 = (struct UnknownContestStruct7){}; eContestAppealResults = (struct ContestAppealMoveResults){};
eContestAI = (struct ContestAIInfo){}; eContestAI = (struct ContestAIInfo){};
*gContestResources->field_10 = (struct UnknownContestStruct5){}; *gContestResources->excitement = (struct ContestExcitement){};
memset(gContestResources->field_14, 0, CONTESTANT_COUNT * sizeof(struct UnknownContestStruct4)); memset(eContestGfxState, 0, CONTESTANT_COUNT * sizeof(struct ContestGraphicsState));
if (!(gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK)) if (!(gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK))
SortContestants(FALSE); SortContestants(FALSE);
@ -1043,7 +1043,7 @@ static void InitContestResources(void)
// Calling this here while all the nextTurnOrder values are 0xFF will actually // Calling this here while all the nextTurnOrder values are 0xFF will actually
// just reverse the turn order. // just reverse the turn order.
ApplyNextTurnOrder(); ApplyNextTurnOrder();
memset(gContestResources->field_1c, 0, sizeof(*gContestResources->field_1c) * CONTESTANT_COUNT); memset(gContestResources->tv, 0, sizeof(*gContestResources->tv) * CONTESTANT_COUNT);
} }
static void AllocContestResources(void) static void AllocContestResources(void)
@ -1051,13 +1051,13 @@ static void AllocContestResources(void)
gContestResources = AllocZeroed(sizeof(struct ContestResources)); gContestResources = AllocZeroed(sizeof(struct ContestResources));
gContestResources->contest = AllocZeroed(sizeof(struct Contest)); gContestResources->contest = AllocZeroed(sizeof(struct Contest));
gContestResources->status = AllocZeroed(sizeof(struct ContestantStatus) * CONTESTANT_COUNT); gContestResources->status = AllocZeroed(sizeof(struct ContestantStatus) * CONTESTANT_COUNT);
gContestResources->field_8 = AllocZeroed(sizeof(struct UnknownContestStruct7)); gContestResources->appealResults = AllocZeroed(sizeof(struct ContestAppealMoveResults));
gContestResources->aiData = AllocZeroed(sizeof(struct ContestAIInfo)); gContestResources->aiData = AllocZeroed(sizeof(struct ContestAIInfo));
gContestResources->field_10 = AllocZeroed(sizeof(struct UnknownContestStruct5) * CONTESTANT_COUNT); gContestResources->excitement = AllocZeroed(sizeof(struct ContestExcitement) * CONTESTANT_COUNT);
gContestResources->field_14 = AllocZeroed(sizeof(struct UnknownContestStruct4) * CONTESTANT_COUNT); gContestResources->gfxState = AllocZeroed(sizeof(struct ContestGraphicsState) * CONTESTANT_COUNT);
gContestResources->moveAnim = AllocZeroed(sizeof(struct ContestMoveAnimData)); gContestResources->moveAnim = AllocZeroed(sizeof(struct ContestMoveAnimData));
gContestResources->field_1c = AllocZeroed(sizeof(struct ContestResourcesField1C) * CONTESTANT_COUNT); gContestResources->tv = AllocZeroed(sizeof(struct ContestTV) * CONTESTANT_COUNT);
gContestResources->field_20 = AllocZeroed(sizeof(struct ContestResourcesField20)); gContestResources->unused = AllocZeroed(sizeof(struct ContestUnused));
gContestResources->contestBgTilemaps[0] = AllocZeroed(0x1000); gContestResources->contestBgTilemaps[0] = AllocZeroed(0x1000);
gContestResources->contestBgTilemaps[1] = AllocZeroed(0x1000); gContestResources->contestBgTilemaps[1] = AllocZeroed(0x1000);
gContestResources->contestBgTilemaps[2] = AllocZeroed(0x1000); gContestResources->contestBgTilemaps[2] = AllocZeroed(0x1000);
@ -1073,13 +1073,13 @@ static void FreeContestResources(void)
{ {
FREE_AND_SET_NULL(gContestResources->contest); FREE_AND_SET_NULL(gContestResources->contest);
FREE_AND_SET_NULL(gContestResources->status); FREE_AND_SET_NULL(gContestResources->status);
FREE_AND_SET_NULL(gContestResources->field_8); FREE_AND_SET_NULL(gContestResources->appealResults);
FREE_AND_SET_NULL(gContestResources->aiData); FREE_AND_SET_NULL(gContestResources->aiData);
FREE_AND_SET_NULL(gContestResources->field_10); FREE_AND_SET_NULL(gContestResources->excitement);
FREE_AND_SET_NULL(gContestResources->field_14); FREE_AND_SET_NULL(gContestResources->gfxState);
FREE_AND_SET_NULL(gContestResources->moveAnim); FREE_AND_SET_NULL(gContestResources->moveAnim);
FREE_AND_SET_NULL(gContestResources->field_1c); FREE_AND_SET_NULL(gContestResources->tv);
FREE_AND_SET_NULL(gContestResources->field_20); FREE_AND_SET_NULL(gContestResources->unused);
FREE_AND_SET_NULL(gContestResources->contestBgTilemaps[0]); FREE_AND_SET_NULL(gContestResources->contestBgTilemaps[0]);
FREE_AND_SET_NULL(gContestResources->contestBgTilemaps[1]); FREE_AND_SET_NULL(gContestResources->contestBgTilemaps[1]);
FREE_AND_SET_NULL(gContestResources->contestBgTilemaps[2]); FREE_AND_SET_NULL(gContestResources->contestBgTilemaps[2]);
@ -1724,7 +1724,7 @@ static void Task_DoAppeals(u8 taskId)
{ {
case APPEALSTATE_START_TURN: case APPEALSTATE_START_TURN:
ContestDebugDoPrint(); ContestDebugDoPrint();
for (i = 0; eContest.turnNumber != gContestResources->field_8->turnOrder[i]; i++) for (i = 0; eContest.turnNumber != eContestAppealResults.turnOrder[i]; i++)
; ;
eContest.currentContestant = i; eContest.currentContestant = i;
contestant = eContest.currentContestant; contestant = eContest.currentContestant;
@ -1735,8 +1735,8 @@ static void Task_DoAppeals(u8 taskId)
eContest.waitForLink = TRUE; eContest.waitForLink = TRUE;
if (IsPlayerLinkLeader()) if (IsPlayerLinkLeader())
CalculateAppealMoveImpact(eContest.currentContestant); CalculateAppealMoveImpact(eContest.currentContestant);
taskId2 = CreateTask(sub_80FCC88, 0); taskId2 = CreateTask(Task_LinkContest_CommunicateAppealsState, 0);
SetTaskFuncWithFollowupFunc(taskId2, sub_80FCC88, Task_EndWaitForLink); SetTaskFuncWithFollowupFunc(taskId2, Task_LinkContest_CommunicateAppealsState, Task_EndWaitForLink);
ContestPrintLinkStandby(); ContestPrintLinkStandby();
gTasks[taskId].tState = APPEALSTATE_1; gTasks[taskId].tState = APPEALSTATE_1;
} }
@ -1787,7 +1787,7 @@ static void Task_DoAppeals(u8 taskId)
if (gSprites[spriteId].callback == SpriteCallbackDummy) if (gSprites[spriteId].callback == SpriteCallbackDummy)
{ {
// Once mon has slid in, also wait for box to finish blinking // Once mon has slid in, also wait for box to finish blinking
if (!gContestResources->field_14[contestant].boxBlinking) if (!eContestGfxState[contestant].boxBlinking)
gTasks[taskId].tState = APPEALSTATE_PRINT_USED_MOVE_MSG; gTasks[taskId].tState = APPEALSTATE_PRINT_USED_MOVE_MSG;
} }
return; return;
@ -1923,7 +1923,7 @@ static void Task_DoAppeals(u8 taskId)
gTasks[taskId].tState = APPEALSTATE_WAIT_MOVE_USERS_HEARTS; gTasks[taskId].tState = APPEALSTATE_WAIT_MOVE_USERS_HEARTS;
return; return;
case APPEALSTATE_WAIT_MOVE_USERS_HEARTS: case APPEALSTATE_WAIT_MOVE_USERS_HEARTS:
if (!gContestResources->field_14[eContest.currentContestant].updatingAppealHearts) if (!eContestGfxState[eContest.currentContestant].updatingAppealHearts)
gTasks[taskId].tState = APPEALSTATE_TRY_JUDGE_STAR; gTasks[taskId].tState = APPEALSTATE_TRY_JUDGE_STAR;
return; return;
case APPEALSTATE_TRY_JUDGE_STAR: case APPEALSTATE_TRY_JUDGE_STAR:
@ -2016,7 +2016,7 @@ static void Task_DoAppeals(u8 taskId)
case APPEALSTATE_WAIT_OPPONENT_HEARTS: case APPEALSTATE_WAIT_OPPONENT_HEARTS:
for (i = 0; gTasks[taskId].data[1] != gContestantTurnOrder[i]; i++) for (i = 0; gTasks[taskId].data[1] != gContestantTurnOrder[i]; i++)
; ;
if (!gContestResources->field_14[i].updatingAppealHearts) if (!eContestGfxState[i].updatingAppealHearts)
gTasks[taskId].tState = APPEALSTATE_UPDATE_OPPONENT_STARS; gTasks[taskId].tState = APPEALSTATE_UPDATE_OPPONENT_STARS;
return; return;
case APPEALSTATE_UPDATE_OPPONENT_STARS: case APPEALSTATE_UPDATE_OPPONENT_STARS:
@ -2132,16 +2132,16 @@ static void Task_DoAppeals(u8 taskId)
{ {
UpdateAppealHearts( UpdateAppealHearts(
eContestantStatus[contestant].appeal2, eContestantStatus[contestant].appeal2,
eContestantStatus[contestant].unk17, eContestantStatus[contestant].comboAppealBonus,
contestant); contestant);
eContestantStatus[contestant].appeal2 += eContestantStatus[contestant].unk17; eContestantStatus[contestant].appeal2 += eContestantStatus[contestant].comboAppealBonus;
} }
gTasks[taskId].tState = APPEALSTATE_WAIT_HEARTS_FROM_COMBO; gTasks[taskId].tState = APPEALSTATE_WAIT_HEARTS_FROM_COMBO;
} }
} }
return; return;
case APPEALSTATE_WAIT_HEARTS_FROM_COMBO: case APPEALSTATE_WAIT_HEARTS_FROM_COMBO:
if (!gContestResources->field_14[contestant].updatingAppealHearts) if (!eContestGfxState[contestant].updatingAppealHearts)
{ {
gTasks[taskId].tCounter = 0; gTasks[taskId].tCounter = 0;
gTasks[taskId].tState = APPEALSTATE_CHECK_REPEATED_MOVE; gTasks[taskId].tState = APPEALSTATE_CHECK_REPEATED_MOVE;
@ -2177,7 +2177,7 @@ static void Task_DoAppeals(u8 taskId)
return; return;
case APPEALSTATE_WAIT_HEARTS_FROM_REPEAT: case APPEALSTATE_WAIT_HEARTS_FROM_REPEAT:
ContestDebugDoPrint(); ContestDebugDoPrint();
if (!gContestResources->field_14[contestant].updatingAppealHearts) if (!eContestGfxState[contestant].updatingAppealHearts)
{ {
gTasks[taskId].tCounter = 0; gTasks[taskId].tCounter = 0;
ContestClearGeneralTextWindow(); ContestClearGeneralTextWindow();
@ -2185,13 +2185,13 @@ static void Task_DoAppeals(u8 taskId)
} }
return; return;
case APPEALSTATE_UPDATE_CROWD: case APPEALSTATE_UPDATE_CROWD:
if (gContestResources->field_10->excitementFrozen && contestant != gContestResources->field_10->excitementFreezer) if (eContestExcitement.frozen && contestant != eContestExcitement.freezer)
{ {
gTasks[taskId].tState = APPEALSTATE_PRINT_CROWD_WATCHES_MSG; gTasks[taskId].tState = APPEALSTATE_PRINT_CROWD_WATCHES_MSG;
} }
else else
{ {
r3 = gContestResources->field_10->moveExcitement; // Can't get this to use local variable. Should be "moveExcitement" r3 = eContestExcitement.moveExcitement; // Can't get this to use local variable. Should be "moveExcitement"
if (eContestantStatus[contestant].overrideCategoryExcitementMod) if (eContestantStatus[contestant].overrideCategoryExcitementMod)
{ {
r3 = 1; r3 = 1;
@ -2293,14 +2293,14 @@ static void Task_DoAppeals(u8 taskId)
if (gTasks[taskId].data[11]++ > 29) if (gTasks[taskId].data[11]++ > 29)
{ {
gTasks[taskId].data[11] = 0; gTasks[taskId].data[11] = 0;
UpdateAppealHearts(eContestantStatus[contestant].appeal2, gContestResources->field_10->unk2, contestant); UpdateAppealHearts(eContestantStatus[contestant].appeal2, eContestExcitement.excitementAppealBonus, contestant);
eContestantStatus[contestant].appeal2 += gContestResources->field_10->unk2; eContestantStatus[contestant].appeal2 += eContestExcitement.excitementAppealBonus;
gTasks[taskId].tCounter++; gTasks[taskId].tCounter++;
} }
} }
break; break;
case 3: case 3:
if (!gContestResources->field_14[contestant].updatingAppealHearts) if (!eContestGfxState[contestant].updatingAppealHearts)
{ {
if (!eContest.animatingAudience) if (!eContest.animatingAudience)
{ {
@ -2320,7 +2320,7 @@ static void Task_DoAppeals(u8 taskId)
} }
return; return;
case APPEALSTATE_WAIT_EXCITEMENT_HEARTS: case APPEALSTATE_WAIT_EXCITEMENT_HEARTS:
if (!gContestResources->field_14[contestant].updatingAppealHearts) if (!eContestGfxState[contestant].updatingAppealHearts)
{ {
ContestClearGeneralTextWindow(); ContestClearGeneralTextWindow();
gTasks[taskId].tState = APPEALSTATE_SLIDE_APPLAUSE_OUT; gTasks[taskId].tState = APPEALSTATE_SLIDE_APPLAUSE_OUT;
@ -2328,7 +2328,7 @@ static void Task_DoAppeals(u8 taskId)
return; return;
case APPEALSTATE_PRINT_CROWD_WATCHES_MSG: case APPEALSTATE_PRINT_CROWD_WATCHES_MSG:
ContestClearGeneralTextWindow(); ContestClearGeneralTextWindow();
StringCopy(gStringVar3, gContestMons[gContestResources->field_10->excitementFreezer].nickname); StringCopy(gStringVar3, gContestMons[eContestExcitement.freezer].nickname);
StringCopy(gStringVar1, gContestMons[contestant].nickname); StringCopy(gStringVar1, gContestMons[contestant].nickname);
StringCopy(gStringVar2, gMoveNames[eContestantStatus[contestant].currMove]); StringCopy(gStringVar2, gMoveNames[eContestantStatus[contestant].currMove]);
StringExpandPlaceholders(gStringVar4, gText_CrowdContinuesToWatchMon); StringExpandPlaceholders(gStringVar4, gText_CrowdContinuesToWatchMon);
@ -2479,8 +2479,8 @@ static void Task_FinishRoundOfAppeals(u8 taskId)
RankContestants(); RankContestants();
SetAttentionLevels(); SetAttentionLevels();
} }
taskId2 = CreateTask(sub_80FCC88, 0); taskId2 = CreateTask(Task_LinkContest_CommunicateAppealsState, 0);
SetTaskFuncWithFollowupFunc(taskId2, sub_80FCC88, Task_EndWaitForLink); SetTaskFuncWithFollowupFunc(taskId2, Task_LinkContest_CommunicateAppealsState, Task_EndWaitForLink);
ContestPrintLinkStandby(); ContestPrintLinkStandby();
gTasks[taskId].data[0] = 1; gTasks[taskId].data[0] = 1;
} }
@ -3526,7 +3526,7 @@ static void ResetContestantStatuses(void)
eContest.excitementHistory[eContest.appealNumber][i] = Contest_GetMoveExcitement(eContestantStatus[i].currMove); eContest.excitementHistory[eContest.appealNumber][i] = Contest_GetMoveExcitement(eContestantStatus[i].currMove);
eContestantStatus[i].currMove = MOVE_NONE; eContestantStatus[i].currMove = MOVE_NONE;
} }
eContestResources10.excitementFrozen = 0; eContestExcitement.frozen = FALSE;
} }
bool8 Contest_IsMonsTurnDisabled(u8 contestant) bool8 Contest_IsMonsTurnDisabled(u8 contestant)
@ -3702,16 +3702,16 @@ static s8 GetNumHeartsFromAppealPoints(s16 appeal)
#define tContestant data[3] #define tContestant data[3]
#define tDelayTimer data[10] #define tDelayTimer data[10]
static u8 UpdateAppealHearts(s16 startAppeal, s16 endAppeal, u8 contestant) static u8 UpdateAppealHearts(s16 startAppeal, s16 appealDelta, u8 contestant)
{ {
u8 taskId; u8 taskId;
s8 startHearts; s8 startHearts;
s8 heartsDelta; s8 heartsDelta;
gContestResources->field_14[contestant].updatingAppealHearts = TRUE; eContestGfxState[contestant].updatingAppealHearts = TRUE;
taskId = CreateTask(Task_UpdateAppealHearts, 20); taskId = CreateTask(Task_UpdateAppealHearts, 20);
startHearts = GetNumHeartsFromAppealPoints(startAppeal); startHearts = GetNumHeartsFromAppealPoints(startAppeal);
heartsDelta = GetNumHeartsFromAppealPoints(startAppeal + endAppeal) - startHearts; heartsDelta = GetNumHeartsFromAppealPoints(startAppeal + appealDelta) - startHearts;
GetAppealHeartTileOffset(contestant); // unused return value GetAppealHeartTileOffset(contestant); // unused return value
gTasks[taskId].tNumHearts = abs(startHearts); gTasks[taskId].tNumHearts = abs(startHearts);
gTasks[taskId].tHeartsDelta = heartsDelta; gTasks[taskId].tHeartsDelta = heartsDelta;
@ -3741,7 +3741,7 @@ static void Task_UpdateAppealHearts(u8 taskId)
{ {
// No more hearts to add/remove, end // No more hearts to add/remove, end
DestroyTask(taskId); DestroyTask(taskId);
gContestResources->field_14[contestant].updatingAppealHearts = FALSE; eContestGfxState[contestant].updatingAppealHearts = FALSE;
return; return;
} }
else if (startHearts == 0) else if (startHearts == 0)
@ -3834,7 +3834,7 @@ static void CreateSliderHeartSprites(void)
{ {
u8 y = sSliderHeartYPositions[gContestantTurnOrder[i]]; u8 y = sSliderHeartYPositions[gContestantTurnOrder[i]];
gContestResources->field_14[i].sliderHeartSpriteId = CreateSprite(&sSpriteTemplate_SliderHeart, 180, y, 1); eContestGfxState[i].sliderHeartSpriteId = CreateSprite(&sSpriteTemplate_SliderHeart, 180, y, 1);
} }
} }
@ -3847,8 +3847,8 @@ static void UpdateHeartSlider(u8 contestant)
u8 spriteId; u8 spriteId;
s16 slideTarget; s16 slideTarget;
gContestResources->field_14[contestant].sliderUpdating = TRUE; eContestGfxState[contestant].sliderUpdating = TRUE;
spriteId = gContestResources->field_14[contestant].sliderHeartSpriteId; spriteId = eContestGfxState[contestant].sliderHeartSpriteId;
slideTarget = eContestantStatus[contestant].pointTotal / 10 * 2; slideTarget = eContestantStatus[contestant].pointTotal / 10 * 2;
if (slideTarget > 56) if (slideTarget > 56)
slideTarget = 56; slideTarget = 56;
@ -3878,7 +3878,7 @@ static bool8 SlidersDoneUpdating(void)
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
{ {
if (gContestResources->field_14[i].sliderUpdating) if (eContestGfxState[i].sliderUpdating)
break; break;
} }
if (i == CONTESTANT_COUNT) if (i == CONTESTANT_COUNT)
@ -3891,7 +3891,7 @@ static void SpriteCB_UpdateHeartSlider(struct Sprite *sprite)
{ {
if (sprite->pos2.x == sprite->sTargetX) if (sprite->pos2.x == sprite->sTargetX)
{ {
gContestResources->field_14[sprite->sContestant].sliderUpdating = FALSE; eContestGfxState[sprite->sContestant].sliderUpdating = FALSE;
sprite->callback = SpriteCallbackDummy; sprite->callback = SpriteCallbackDummy;
} }
else else
@ -3910,7 +3910,7 @@ static void UpdateSliderHeartSpriteYPositions(void)
s32 i; s32 i;
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
gSprites[gContestResources->field_14[i].sliderHeartSpriteId].pos1.y = sSliderHeartYPositions[gContestantTurnOrder[i]]; gSprites[eContestGfxState[i].sliderHeartSpriteId].pos1.y = sSliderHeartYPositions[gContestantTurnOrder[i]];
} }
// Used to hide (or subsequently reshow) the bottom two slider hearts that get hidden by text windows by moving them offscreen // Used to hide (or subsequently reshow) the bottom two slider hearts that get hidden by text windows by moving them offscreen
@ -3924,9 +3924,9 @@ static void SetBottomSliderHeartsInvisibility(bool8 invisible)
if (gContestantTurnOrder[i] > 1) if (gContestantTurnOrder[i] > 1)
{ {
if (!invisible) if (!invisible)
gSprites[gContestResources->field_14[i].sliderHeartSpriteId].pos1.x = 180; gSprites[eContestGfxState[i].sliderHeartSpriteId].pos1.x = 180;
else else
gSprites[gContestResources->field_14[i].sliderHeartSpriteId].pos1.x = 256; gSprites[eContestGfxState[i].sliderHeartSpriteId].pos1.x = 256;
} }
} }
} }
@ -3939,12 +3939,12 @@ static void CreateNextTurnSprites(void)
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
{ {
LoadCompressedSpriteSheet(&sSpriteSheet_NextTurn[i]); LoadCompressedSpriteSheet(&sSpriteSheet_NextTurn[i]);
gContestResources->field_14[i].nextTurnSpriteId = CreateSprite(&sSpriteTemplates_NextTurn[i], eContestGfxState[i].nextTurnSpriteId = CreateSprite(&sSpriteTemplates_NextTurn[i],
204, 204,
sNextTurnSpriteYPositions[gContestantTurnOrder[i]], sNextTurnSpriteYPositions[gContestantTurnOrder[i]],
0); 0);
SetSubspriteTables(&gSprites[gContestResources->field_14[i].nextTurnSpriteId], sSubspriteTable_NextTurn); SetSubspriteTables(&gSprites[eContestGfxState[i].nextTurnSpriteId], sSubspriteTable_NextTurn);
gSprites[gContestResources->field_14[i].nextTurnSpriteId].invisible = TRUE; gSprites[eContestGfxState[i].nextTurnSpriteId].invisible = TRUE;
} }
} }
@ -4174,7 +4174,7 @@ static void BlinkContestantBox(u8 spriteId, bool8 b)
u8 spriteId2; u8 spriteId2;
SetBlendForContestantBoxBlink(); SetBlendForContestantBoxBlink();
gContestResources->field_14[gSprites[spriteId].data[1]].boxBlinking = TRUE; eContestGfxState[gSprites[spriteId].data[1]].boxBlinking = TRUE;
spriteId2 = gSprites[spriteId].data[0]; spriteId2 = gSprites[spriteId].data[0];
StartSpriteAffineAnim(&gSprites[spriteId], 1); StartSpriteAffineAnim(&gSprites[spriteId], 1);
StartSpriteAffineAnim(&gSprites[spriteId2], 1); StartSpriteAffineAnim(&gSprites[spriteId2], 1);
@ -4203,7 +4203,7 @@ static void SpriteCB_BlinkContestantBox(struct Sprite *sprite)
static void SpriteCB_EndBlinkContestantBox(struct Sprite *sprite) static void SpriteCB_EndBlinkContestantBox(struct Sprite *sprite)
{ {
gContestResources->field_14[sprite->data[1]].boxBlinking = FALSE; eContestGfxState[sprite->data[1]].boxBlinking = FALSE;
DestroyContestantBoxBlinkSprites(sprite->data[0]); DestroyContestantBoxBlinkSprites(sprite->data[0]);
ResetBlendForContestantBoxBlink(); ResetBlendForContestantBoxBlink();
} }
@ -4435,14 +4435,14 @@ static void CalculateAppealMoveImpact(u8 contestant)
} }
eContestantStatus[contestant].appeal1 = gContestEffects[effect].appeal; eContestantStatus[contestant].appeal1 = gContestEffects[effect].appeal;
eContestantStatus[contestant].appeal2 = eContestantStatus[contestant].appeal1; eContestantStatus[contestant].appeal2 = eContestantStatus[contestant].appeal1;
eContestResources8.jam = gContestEffects[effect].jam; eContestAppealResults.jam = gContestEffects[effect].jam;
eContestResources8.jam2 = eContestResources8.jam; eContestAppealResults.jam2 = eContestAppealResults.jam;
eContestResources8.contestant = contestant; eContestAppealResults.contestant = contestant;
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
{ {
eContestantStatus[i].jam = 0; eContestantStatus[i].jam = 0;
eContestResources8.unnervedPokes[i] = 0; eContestAppealResults.unnervedPokes[i] = 0;
} }
if (eContestantStatus[contestant].hasJudgesAttention if (eContestantStatus[contestant].hasJudgesAttention
@ -4469,7 +4469,7 @@ static void CalculateAppealMoveImpact(u8 contestant)
eContestantStatus[contestant].completedCombo = completedCombo; eContestantStatus[contestant].completedCombo = completedCombo;
eContestantStatus[contestant].usedComboMove = TRUE; eContestantStatus[contestant].usedComboMove = TRUE;
eContestantStatus[contestant].hasJudgesAttention = FALSE; eContestantStatus[contestant].hasJudgesAttention = FALSE;
eContestantStatus[contestant].unk17 = eContestantStatus[contestant].appeal1 * eContestantStatus[contestant].completedCombo; eContestantStatus[contestant].comboAppealBonus = eContestantStatus[contestant].appeal1 * eContestantStatus[contestant].completedCombo;
eContestantStatus[contestant].unk15_3 = TRUE; eContestantStatus[contestant].unk15_3 = TRUE;
} }
else else
@ -4494,20 +4494,20 @@ static void CalculateAppealMoveImpact(u8 contestant)
eContestantStatus[contestant].appeal2 = 0; eContestantStatus[contestant].appeal2 = 0;
eContestantStatus[contestant].appeal1 = 0; eContestantStatus[contestant].appeal1 = 0;
} }
eContestResources10.moveExcitement = Contest_GetMoveExcitement(eContestantStatus[contestant].currMove); eContestExcitement.moveExcitement = Contest_GetMoveExcitement(eContestantStatus[contestant].currMove);
if (eContestantStatus[contestant].overrideCategoryExcitementMod) if (eContestantStatus[contestant].overrideCategoryExcitementMod)
eContestResources10.moveExcitement = 1; eContestExcitement.moveExcitement = 1;
if (eContestResources10.moveExcitement > 0) if (eContestExcitement.moveExcitement > 0)
{ {
if (eContest.applauseLevel + eContestResources10.moveExcitement > 4) if (eContest.applauseLevel + eContestExcitement.moveExcitement > 4)
eContestResources10.unk2 = 60; eContestExcitement.excitementAppealBonus = 60;
else else
eContestResources10.unk2 = 10; eContestExcitement.excitementAppealBonus = 10;
} }
else else
{ {
eContestResources10.unk2 = 0; eContestExcitement.excitementAppealBonus = 0;
} }
// Transform and Role Play require a visible target mon // Transform and Role Play require a visible target mon
@ -4554,13 +4554,13 @@ static void PrintAppealMoveResultText(u8 contestant, u8 stringId)
{ {
StringCopy(gStringVar1, gContestMons[contestant].nickname); StringCopy(gStringVar1, gContestMons[contestant].nickname);
StringCopy(gStringVar2, gMoveNames[eContestantStatus[contestant].currMove]); StringCopy(gStringVar2, gMoveNames[eContestantStatus[contestant].currMove]);
if (gContestMoves[eContestantStatus[eContestResources8.contestant].currMove].contestCategory == CONTEST_CATEGORY_COOL) if (gContestMoves[eContestantStatus[eContestAppealResults.contestant].currMove].contestCategory == CONTEST_CATEGORY_COOL)
StringCopy(gStringVar3, gText_Contest_Shyness); StringCopy(gStringVar3, gText_Contest_Shyness);
else if (gContestMoves[eContestantStatus[eContestResources8.contestant].currMove].contestCategory == CONTEST_CATEGORY_BEAUTY) else if (gContestMoves[eContestantStatus[eContestAppealResults.contestant].currMove].contestCategory == CONTEST_CATEGORY_BEAUTY)
StringCopy(gStringVar3, gText_Contest_Anxiety); StringCopy(gStringVar3, gText_Contest_Anxiety);
else if (gContestMoves[eContestantStatus[eContestResources8.contestant].currMove].contestCategory == CONTEST_CATEGORY_CUTE) else if (gContestMoves[eContestantStatus[eContestAppealResults.contestant].currMove].contestCategory == CONTEST_CATEGORY_CUTE)
StringCopy(gStringVar3, gText_Contest_Laziness); StringCopy(gStringVar3, gText_Contest_Laziness);
else if (gContestMoves[eContestantStatus[eContestResources8.contestant].currMove].contestCategory == CONTEST_CATEGORY_SMART) else if (gContestMoves[eContestantStatus[eContestAppealResults.contestant].currMove].contestCategory == CONTEST_CATEGORY_SMART)
StringCopy(gStringVar3, gText_Contest_Hesitancy); StringCopy(gStringVar3, gText_Contest_Hesitancy);
else else
StringCopy(gStringVar3, gText_Contest_Fear); StringCopy(gStringVar3, gText_Contest_Fear);
@ -4646,7 +4646,7 @@ static void ApplyNextTurnOrder(void)
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
{ {
eContestResources8.turnOrder[i] = newTurnOrder[i]; eContestAppealResults.turnOrder[i] = newTurnOrder[i];
eContestantStatus[i].nextTurnOrder = 0xFF; eContestantStatus[i].nextTurnOrder = 0xFF;
eContestantStatus[i].turnOrderMod = 0; eContestantStatus[i].turnOrderMod = 0;
gContestantTurnOrder[i] = newTurnOrder[i]; gContestantTurnOrder[i] = newTurnOrder[i];
@ -5005,13 +5005,13 @@ static void ShowHideNextTurnGfx(bool8 show)
{ {
if (eContestantStatus[i].turnOrderMod != 0 && show) if (eContestantStatus[i].turnOrderMod != 0 && show)
{ {
CpuCopy32(GetTurnOrderNumberGfx(i), (void *)(VRAM + 0x10000 + (gSprites[gContestResources->field_14[i].nextTurnSpriteId].oam.tileNum + 6) * 32), 32); CpuCopy32(GetTurnOrderNumberGfx(i), (void *)(VRAM + 0x10000 + (gSprites[eContestGfxState[i].nextTurnSpriteId].oam.tileNum + 6) * 32), 32);
gSprites[gContestResources->field_14[i].nextTurnSpriteId].pos1.y = sNextTurnSpriteYPositions[gContestantTurnOrder[i]]; gSprites[eContestGfxState[i].nextTurnSpriteId].pos1.y = sNextTurnSpriteYPositions[gContestantTurnOrder[i]];
gSprites[gContestResources->field_14[i].nextTurnSpriteId].invisible = FALSE; gSprites[eContestGfxState[i].nextTurnSpriteId].invisible = FALSE;
} }
else else
{ {
gSprites[gContestResources->field_14[i].nextTurnSpriteId].invisible = TRUE; gSprites[eContestGfxState[i].nextTurnSpriteId].invisible = TRUE;
} }
} }
} }
@ -5029,7 +5029,7 @@ static void DrawUnnervedSymbols(void)
s32 i = 0; s32 i = 0;
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
{ {
if (eContestResources8.unnervedPokes[i] != 0 && !Contest_IsMonsTurnDisabled(i)) if (eContestAppealResults.unnervedPokes[i] != 0 && !Contest_IsMonsTurnDisabled(i))
{ {
u32 contestantOffset = gContestantTurnOrder[i] * 5 + 2; u32 contestantOffset = gContestantTurnOrder[i] * 5 + 2;
u16 symbolOffset = GetStatusSymbolTileOffset(STAT_SYMBOL_SWIRL); u16 symbolOffset = GetStatusSymbolTileOffset(STAT_SYMBOL_SWIRL);
@ -5083,8 +5083,8 @@ static void SetBgForCurtainDrop(void)
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
{ {
gSprites[gContestResources->field_14[i].sliderHeartSpriteId].oam.priority = 1; gSprites[eContestGfxState[i].sliderHeartSpriteId].oam.priority = 1;
gSprites[gContestResources->field_14[i].nextTurnSpriteId].oam.priority = 1; gSprites[eContestGfxState[i].nextTurnSpriteId].oam.priority = 1;
} }
} }
@ -5109,8 +5109,8 @@ static void UpdateContestantBoxOrder(void)
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
{ {
gSprites[gContestResources->field_14[i].sliderHeartSpriteId].oam.priority = 0; gSprites[eContestGfxState[i].sliderHeartSpriteId].oam.priority = 0;
gSprites[gContestResources->field_14[i].nextTurnSpriteId].oam.priority = 0; gSprites[eContestGfxState[i].nextTurnSpriteId].oam.priority = 0;
} }
} }
@ -5160,8 +5160,8 @@ static void Task_ResetForNextRound(u8 taskId)
eContest.waitForLink = TRUE; eContest.waitForLink = TRUE;
if (IsPlayerLinkLeader()) if (IsPlayerLinkLeader())
ResetContestantStatuses(); ResetContestantStatuses();
taskId2 = CreateTask(sub_80FCC88, 0); taskId2 = CreateTask(Task_LinkContest_CommunicateAppealsState, 0);
SetTaskFuncWithFollowupFunc(taskId2, sub_80FCC88, Task_EndWaitForLink); SetTaskFuncWithFollowupFunc(taskId2, Task_LinkContest_CommunicateAppealsState, Task_EndWaitForLink);
ContestPrintLinkStandby(); ContestPrintLinkStandby();
gTasks[taskId].data[0] = 2; gTasks[taskId].data[0] = 2;
} }
@ -5244,13 +5244,13 @@ static void AnimateSliderHearts(u8 animId)
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
{ {
gSprites[gContestResources->field_14[i].sliderHeartSpriteId].oam.matrixNum = AllocOamMatrix(); gSprites[eContestGfxState[i].sliderHeartSpriteId].oam.matrixNum = AllocOamMatrix();
gSprites[gContestResources->field_14[i].sliderHeartSpriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[eContestGfxState[i].sliderHeartSpriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
StartSpriteAffineAnim(&gSprites[gContestResources->field_14[i].sliderHeartSpriteId], animId); StartSpriteAffineAnim(&gSprites[eContestGfxState[i].sliderHeartSpriteId], animId);
if (animId == SLIDER_HEART_ANIM_APPEAR) if (animId == SLIDER_HEART_ANIM_APPEAR)
{ {
AnimateSprite(&gSprites[gContestResources->field_14[i].sliderHeartSpriteId]); AnimateSprite(&gSprites[eContestGfxState[i].sliderHeartSpriteId]);
gSprites[gContestResources->field_14[i].sliderHeartSpriteId].invisible = FALSE; gSprites[eContestGfxState[i].sliderHeartSpriteId].invisible = FALSE;
} }
} }
taskId = CreateTask(Task_WaitForSliderHeartAnim, 5); taskId = CreateTask(Task_WaitForSliderHeartAnim, 5);
@ -5262,15 +5262,15 @@ static void Task_WaitForSliderHeartAnim(u8 taskId)
{ {
s32 i; s32 i;
if (gSprites[gContestResources->field_14[0].sliderHeartSpriteId].affineAnimEnded) if (gSprites[eContestGfxState[0].sliderHeartSpriteId].affineAnimEnded)
{ {
if ((u8)gTasks[taskId].tAnimId == SLIDER_HEART_ANIM_DISAPPEAR) if ((u8)gTasks[taskId].tAnimId == SLIDER_HEART_ANIM_DISAPPEAR)
{ {
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
gSprites[gContestResources->field_14[i].sliderHeartSpriteId].invisible = TRUE; gSprites[eContestGfxState[i].sliderHeartSpriteId].invisible = TRUE;
} }
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
FreeSpriteOamMatrix(&gSprites[gContestResources->field_14[i].sliderHeartSpriteId]); FreeSpriteOamMatrix(&gSprites[eContestGfxState[i].sliderHeartSpriteId]);
eContest.sliderHeartsAnimating = FALSE; eContest.sliderHeartsAnimating = FALSE;
DestroyTask(taskId); DestroyTask(taskId);
} }
@ -5615,59 +5615,59 @@ static void sub_80DF080(u8 contestant)
{ {
s32 i; s32 i;
if (!gContestResources->field_10->excitementFrozen if (!eContestExcitement.frozen
&& gContestResources->field_10->moveExcitement > 0 && eContestExcitement.moveExcitement > 0
&& !eContestantStatus[contestant].repeatedMove) && !eContestantStatus[contestant].repeatedMove)
{ {
gContestResources->field_1c[contestant].unkC |= 1; gContestResources->tv[contestant].unkC |= 1;
gContestResources->field_1c[contestant].unkE_2 = 1; gContestResources->tv[contestant].unkE_2 = 1;
} }
if (eContestantStatus[contestant].nervous) if (eContestantStatus[contestant].nervous)
gContestResources->field_1c[contestant].unkC |= 2; gContestResources->tv[contestant].unkC |= 2;
if (!gContestResources->field_10->excitementFrozen if (!eContestExcitement.frozen
&& gContestResources->field_10->moveExcitement != 0 && eContestExcitement.moveExcitement != 0
&& gContestResources->field_10->unk2 == 60) && eContestExcitement.excitementAppealBonus == 60)
{ {
gContestResources->field_1c[contestant].unkC |= 4; gContestResources->tv[contestant].unkC |= 4;
} }
if (eContestantStatus[contestant].usedComboMove if (eContestantStatus[contestant].usedComboMove
&& eContestantStatus[contestant].completedCombo) && eContestantStatus[contestant].completedCombo)
{ {
gContestResources->field_1c[contestant].unkC |= 8; gContestResources->tv[contestant].unkC |= 8;
} }
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
{ {
if (i != contestant && eContestantStatus[i].jam != 0) if (i != contestant && eContestantStatus[i].jam != 0)
{ {
gContestResources->field_1c[contestant].unkC |= 0x10; gContestResources->tv[contestant].unkC |= 0x10;
gContestResources->field_1c[i].unkC |= 0x40; gContestResources->tv[i].unkC |= 0x40;
} }
} }
if (eContestantStatus[contestant].numTurnsSkipped != 0 if (eContestantStatus[contestant].numTurnsSkipped != 0
|| eContestantStatus[contestant].noMoreTurns) || eContestantStatus[contestant].noMoreTurns)
{ {
gContestResources->field_1c[contestant].unkC |= 0x20; gContestResources->tv[contestant].unkC |= 0x20;
} }
else if (!eContestantStatus[contestant].nervous) else if (!eContestantStatus[contestant].nervous)
{ {
gContestResources->field_1c[contestant].unkC |= 0x80; gContestResources->tv[contestant].unkC |= 0x80;
gContestResources->field_1c[contestant].unkE_1 = 1; gContestResources->tv[contestant].unkE_1 = 1;
gContestResources->field_1c[contestant].unk0[eContest.appealNumber] = eContestantStatus[contestant].currMove; gContestResources->tv[contestant].unk0[eContest.appealNumber] = eContestantStatus[contestant].currMove;
} }
if (eContestantStatus[contestant].repeatedMove) if (eContestantStatus[contestant].repeatedMove)
gContestResources->field_1c[contestant].unkD |= 2; gContestResources->tv[contestant].unkD |= 2;
if (eContest.applauseLevel == 4 if (eContest.applauseLevel == 4
&& !gContestResources->field_10->excitementFrozen && !eContestExcitement.frozen
&& gContestResources->field_10->moveExcitement < 0) && eContestExcitement.moveExcitement < 0)
{ {
gContestResources->field_1c[contestant].unkD |= 0x20; gContestResources->tv[contestant].unkD |= 0x20;
} }
} }
@ -5694,14 +5694,14 @@ static void sub_80DF250(void)
r1 = i; r1 = i;
} }
gContestResources->field_1c[r1].unkD |= 1; gContestResources->tv[r1].unkD |= 1;
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
{ {
if (i != var_38 && gContestMonTotalPoints[var_38] - gContestMonTotalPoints[i] <= 50) if (i != var_38 && gContestMonTotalPoints[var_38] - gContestMonTotalPoints[i] <= 50)
gContestResources->field_1c[i].unkD |= 4; gContestResources->tv[i].unkD |= 4;
if (!gContestResources->field_1c[i].unkE_2) if (!gContestResources->tv[i].unkE_2)
gContestResources->field_1c[i].unkD |= 8; gContestResources->tv[i].unkD |= 8;
for (j = 0; j < CONTESTANT_COUNT; j++) for (j = 0; j < CONTESTANT_COUNT; j++)
{ {
@ -5709,7 +5709,7 @@ static void sub_80DF250(void)
break; break;
} }
if (j == 4 && gContestFinalStandings[i] != 0) if (j == 4 && gContestFinalStandings[i] != 0)
gContestResources->field_1c[i].unkD |= 0x10; gContestResources->tv[i].unkD |= 0x10;
r12 = FALSE; r12 = FALSE;
r8 = FALSE; r8 = FALSE;
@ -5721,10 +5721,10 @@ static void sub_80DF250(void)
r8 = TRUE; r8 = TRUE;
} }
if (!r12 && !r8) if (!r12 && !r8)
gContestResources->field_1c[i].unkD |= 0x40; gContestResources->tv[i].unkD |= 0x40;
if (!gContestResources->field_1c[i].unkE_1) if (!gContestResources->tv[i].unkE_1)
gContestResources->field_1c[i].unkD |= 0x80; gContestResources->tv[i].unkD |= 0x80;
} }
for (i = 0; i < 5; i++) for (i = 0; i < 5; i++)
@ -5737,15 +5737,15 @@ static void sub_80DF250(void)
for (i = 0; i < 5; i++) for (i = 0; i < 5; i++)
{ {
if (gContestResources->field_1c[var_38].unk0[i] != 0) if (gContestResources->tv[var_38].unk0[i] != 0)
{ {
for (j = 0; j < 5; j++) for (j = 0; j < 5; j++)
{ {
if (gContestResources->field_1c[var_38].unk0[i] != sp0[j]) if (gContestResources->tv[var_38].unk0[i] != sp0[j])
{ {
if (sp0[j] == 0) if (sp0[j] == 0)
{ {
sp0[j] = gContestResources->field_1c[var_38].unk0[i]; sp0[j] = gContestResources->tv[var_38].unk0[i];
spC[j]++; spC[j]++;
} }
} }
@ -5775,7 +5775,7 @@ static void sub_80DF250(void)
} }
} }
gContestResources->field_1c[var_38].unkA = sp14[Random() % count]; gContestResources->tv[var_38].unkA = sp14[Random() % count];
} }
static void sub_80DF4F8(void) static void sub_80DF4F8(void)
@ -5812,7 +5812,7 @@ static void sub_80DF4F8(void)
r10++; r10++;
} }
bits = gContestResources->field_1c[r7].unkC; bits = gContestResources->tv[r7].unkC;
count = 0; count = 0;
for (i = 0; i < 8; bits >>= 1, i++) for (i = 0; i < 8; bits >>= 1, i++)
{ {
@ -5821,7 +5821,7 @@ static void sub_80DF4F8(void)
} }
r5 = Random() % count; r5 = Random() % count;
bits = gContestResources->field_1c[r7].unkC; bits = gContestResources->tv[r7].unkC;
count = 0; count = 0;
r2 = 0; r2 = 0;
for (i = 0; i < 8; bits >>= 1, r2++, i++) for (i = 0; i < 8; bits >>= 1, r2++, i++)
@ -5837,13 +5837,13 @@ static void sub_80DF4F8(void)
if (r7 == 0) if (r7 == 0)
{ {
sp0[0] = 1; sp0[0] = 1;
r4 = gContestResources->field_1c[1].unkD; r4 = gContestResources->tv[1].unkD;
i = 2; i = 2;
} }
else else
{ {
sp0[0] = 0; sp0[0] = 0;
r4 = gContestResources->field_1c[0].unkD; r4 = gContestResources->tv[0].unkD;
i = 1; i = 1;
} }
@ -5852,13 +5852,13 @@ static void sub_80DF4F8(void)
{ {
if (i != r7) if (i != r7)
{ {
if (r4 < gContestResources->field_1c[i].unkD) if (r4 < gContestResources->tv[i].unkD)
{ {
sp0[0] = i; sp0[0] = i;
r4 = gContestResources->field_1c[i].unkD; r4 = gContestResources->tv[i].unkD;
r5 = 1; r5 = 1;
} }
else if (r4 == gContestResources->field_1c[i].unkD) else if (r4 == gContestResources->tv[i].unkD)
{ {
sp0[r5] = i; sp0[r5] = i;
r5++; r5++;
@ -5870,7 +5870,7 @@ static void sub_80DF4F8(void)
r2 = 0x80; r2 = 0x80;
for (i = 0; i < 8; r2 >>= 1, i++) for (i = 0; i < 8; r2 >>= 1, i++)
{ {
r4 = gContestResources->field_1c[r6].unkD & r2; r4 = gContestResources->tv[r6].unkD & r2;
if (r4) if (r4)
break; break;
} }
@ -5878,7 +5878,7 @@ static void sub_80DF4F8(void)
ContestLiveUpdates_BeforeInterview_1(r9); ContestLiveUpdates_BeforeInterview_1(r9);
ContestLiveUpdates_BeforeInterview_2(r10); ContestLiveUpdates_BeforeInterview_2(r10);
ContestLiveUpdates_BeforeInterview_3(var); ContestLiveUpdates_BeforeInterview_3(var);
ContestLiveUpdates_BeforeInterview_4(gContestResources->field_1c[r7].unkA); ContestLiveUpdates_BeforeInterview_4(gContestResources->tv[r7].unkA);
ContestLiveUpdates_BeforeInterview_5(r4, r6); ContestLiveUpdates_BeforeInterview_5(r4, r6);
} }
@ -5932,7 +5932,7 @@ static void ContestDebugPrintBitStrings(void)
{ {
txtPtr = StringCopy(text1, gText_CDot); txtPtr = StringCopy(text1, gText_CDot);
Contest_PrintTextToBg0WindowAt(gContestantTurnOrder[i], text1, 5, 1, 7); Contest_PrintTextToBg0WindowAt(gContestantTurnOrder[i], text1, 5, 1, 7);
bits = gContestResources->field_1c[i].unkC; bits = gContestResources->tv[i].unkC;
for (j = 7; j > -1; j--) // Weird loop. for (j = 7; j > -1; j--) // Weird loop.
{ {
txtPtr = ConvertIntToDecimalStringN(txtPtr, bits & 1, STR_CONV_MODE_LEFT_ALIGN, 1); txtPtr = ConvertIntToDecimalStringN(txtPtr, bits & 1, STR_CONV_MODE_LEFT_ALIGN, 1);
@ -5952,7 +5952,7 @@ static void ContestDebugPrintBitStrings(void)
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
{ {
StringCopy(text1, gText_BDot); StringCopy(text1, gText_BDot);
bits = gContestResources->field_1c[i].unkD; bits = gContestResources->tv[i].unkD;
txtPtr = &text1[2]; txtPtr = &text1[2];
for (j = 7; j > -1; j--) // Weird loop. for (j = 7; j > -1; j--) // Weird loop.
{ {

View File

@ -384,7 +384,7 @@ static u8 GetContestantIdByTurn(u8 turn)
int i; int i;
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
if (eContestResources8.turnOrder[i] == turn) if (eContestAppealResults.turnOrder[i] == turn)
break; break;
return i; return i;
@ -498,7 +498,7 @@ static void ContestAICmd_if_excitement_not_eq(void)
static void ContestAICmd_get_user_order(void) static void ContestAICmd_get_user_order(void)
{ {
eContestAI.scriptResult = eContestResources8.turnOrder[eContestAI.contestantId]; eContestAI.scriptResult = eContestAppealResults.turnOrder[eContestAI.contestantId];
gAIScriptPtr += 1; gAIScriptPtr += 1;
} }

View File

@ -82,98 +82,98 @@ static void ContestEffect_HighlyAppealing(void)
// After this move, the user is more easily startled. // After this move, the user is more easily startled.
static void ContestEffect_UserMoreEasilyStartled(void) static void ContestEffect_UserMoreEasilyStartled(void)
{ {
eContestantStatus[eContestResources8.contestant].moreEasilyStartled = TRUE; eContestantStatus[eContestAppealResults.contestant].moreEasilyStartled = TRUE;
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_MORE_CONSCIOUS); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_MORE_CONSCIOUS);
} }
// Makes a great appeal, but allows no more to the end. // Makes a great appeal, but allows no more to the end.
static void ContestEffect_GreatAppealButNoMoreMoves(void) static void ContestEffect_GreatAppealButNoMoreMoves(void)
{ {
eContestantStatus[eContestResources8.contestant].exploded = TRUE; eContestantStatus[eContestAppealResults.contestant].exploded = TRUE;
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_NO_APPEAL); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_NO_APPEAL);
} }
// Can be used repeatedly without boring the JUDGE. // Can be used repeatedly without boring the JUDGE.
static void ContestEffect_RepetitionNotBoring(void) static void ContestEffect_RepetitionNotBoring(void)
{ {
eContestantStatus[eContestResources8.contestant].usedRepeatableMove = TRUE; eContestantStatus[eContestAppealResults.contestant].usedRepeatableMove = TRUE;
eContestantStatus[eContestResources8.contestant].repeatedMove = FALSE; eContestantStatus[eContestAppealResults.contestant].repeatedMove = FALSE;
eContestantStatus[eContestResources8.contestant].moveRepeatCount = 0; eContestantStatus[eContestAppealResults.contestant].moveRepeatCount = 0;
} }
// Can avoid being startled by others once. // Can avoid being startled by others once.
static void ContestEffect_AvoidStartleOnce(void) static void ContestEffect_AvoidStartleOnce(void)
{ {
eContestantStatus[eContestResources8.contestant].jamSafetyCount = 1; eContestantStatus[eContestAppealResults.contestant].jamSafetyCount = 1;
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_SETTLE_DOWN); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_SETTLE_DOWN);
} }
// Can avoid being startled by others. // Can avoid being startled by others.
static void ContestEffect_AvoidStartle(void) static void ContestEffect_AvoidStartle(void)
{ {
eContestantStatus[eContestResources8.contestant].immune = TRUE; eContestantStatus[eContestAppealResults.contestant].immune = TRUE;
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_OBLIVIOUS_TO_OTHERS); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_OBLIVIOUS_TO_OTHERS);
} }
// Can avoid being startled by others a little. // Can avoid being startled by others a little.
static void ContestEffect_AvoidStartleSlightly(void) static void ContestEffect_AvoidStartleSlightly(void)
{ {
eContestantStatus[eContestResources8.contestant].jamReduction = 20; eContestantStatus[eContestAppealResults.contestant].jamReduction = 20;
SetContestantEffectStringID(eContestResources8.contestant,CONTEST_STRING_LESS_AWARE); SetContestantEffectStringID(eContestAppealResults.contestant,CONTEST_STRING_LESS_AWARE);
} }
// After this move, the user is less likely to be startled. // After this move, the user is less likely to be startled.
static void ContestEffect_UserLessEasilyStartled(void) static void ContestEffect_UserLessEasilyStartled(void)
{ {
eContestantStatus[eContestResources8.contestant].resistant = TRUE; eContestantStatus[eContestAppealResults.contestant].resistant = TRUE;
SetContestantEffectStringID(eContestResources8.contestant,CONTEST_STRING_STOPPED_CARING); SetContestantEffectStringID(eContestAppealResults.contestant,CONTEST_STRING_STOPPED_CARING);
} }
// Slightly startles the POKéMON in front. // Slightly startles the POKéMON in front.
static void ContestEffect_StartleFrontMon(void) static void ContestEffect_StartleFrontMon(void)
{ {
u8 idx = 0; u8 idx = 0;
u8 a = eContestResources8.contestant; u8 a = eContestAppealResults.contestant;
if (eContestResources8.turnOrder[a] != 0) { if (eContestAppealResults.turnOrder[a] != 0) {
int i; int i;
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
{ {
if (eContestResources8.turnOrder[a] - 1 == eContestResources8.turnOrder[i]) if (eContestAppealResults.turnOrder[a] - 1 == eContestAppealResults.turnOrder[i])
break; break;
} }
eContestResources8.jamQueue[0] = i; eContestAppealResults.jamQueue[0] = i;
eContestResources8.jamQueue[1] = 0xFF; eContestAppealResults.jamQueue[1] = 0xFF;
idx = WasAtLeastOneOpponentJammed(); idx = WasAtLeastOneOpponentJammed();
} }
if (idx == 0) if (idx == 0)
SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_MESSED_UP2); SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_MESSED_UP2);
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE);
} }
// Slightly startles those that have made appeals. // Slightly startles those that have made appeals.
static void ContestEffect_StartlePrevMons(void) static void ContestEffect_StartlePrevMons(void)
{ {
u8 idx = 0; u8 idx = 0;
u8 contestant = eContestResources8.contestant; u8 contestant = eContestAppealResults.contestant;
if (eContestResources8.turnOrder[contestant] != 0) if (eContestAppealResults.turnOrder[contestant] != 0)
{ {
int i, j; int i, j;
for (i = 0, j = 0; i < CONTESTANT_COUNT; i++) for (i = 0, j = 0; i < CONTESTANT_COUNT; i++)
{ {
if (eContestResources8.turnOrder[contestant] > eContestResources8.turnOrder[i]) if (eContestAppealResults.turnOrder[contestant] > eContestAppealResults.turnOrder[i])
eContestResources8.jamQueue[j++] = i; eContestAppealResults.jamQueue[j++] = i;
} }
eContestResources8.jamQueue[j] = 0xFF; eContestAppealResults.jamQueue[j] = 0xFF;
idx = WasAtLeastOneOpponentJammed(); idx = WasAtLeastOneOpponentJammed();
} }
if (idx == 0) if (idx == 0)
SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_MESSED_UP2); SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_MESSED_UP2);
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE);
} }
// Startles the POKéMON that appealed before the user. // Startles the POKéMON that appealed before the user.
@ -189,7 +189,7 @@ static void ContestEffect_StartlePrevMon2(void)
else else
jam = 60; jam = 60;
eContestResources8.jam = jam; eContestAppealResults.jam = jam;
ContestEffect_StartleFrontMon(); ContestEffect_StartleFrontMon();
} }
@ -197,8 +197,8 @@ static void ContestEffect_StartlePrevMon2(void)
static void ContestEffect_StartlePrevMons2(void) static void ContestEffect_StartlePrevMons2(void)
{ {
u8 numStartled = 0; u8 numStartled = 0;
u8 contestant = eContestResources8.contestant; u8 contestant = eContestAppealResults.contestant;
u8 turnOrder = eContestResources8.turnOrder[contestant]; u8 turnOrder = eContestAppealResults.turnOrder[contestant];
if (turnOrder != 0) if (turnOrder != 0)
{ {
@ -206,12 +206,12 @@ static void ContestEffect_StartlePrevMons2(void)
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
{ {
if (eContestResources8.turnOrder[contestant] > eContestResources8.turnOrder[i]) if (eContestAppealResults.turnOrder[contestant] > eContestAppealResults.turnOrder[i])
{ {
u8 rval, jam; u8 rval, jam;
eContestResources8.jamQueue[0] = i; eContestAppealResults.jamQueue[0] = i;
eContestResources8.jamQueue[1] = 0xFF; eContestAppealResults.jamQueue[1] = 0xFF;
rval = Random() % 10; rval = Random() % 10;
if (rval == 0) if (rval == 0)
@ -227,31 +227,31 @@ static void ContestEffect_StartlePrevMons2(void)
else else
jam = 60; jam = 60;
eContestResources8.jam = jam; eContestAppealResults.jam = jam;
if (WasAtLeastOneOpponentJammed()) if (WasAtLeastOneOpponentJammed())
numStartled++; numStartled++;
} }
} }
} }
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE);
if (numStartled == 0) if (numStartled == 0)
SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_MESSED_UP2); SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_MESSED_UP2);
} }
// Shifts the JUDGE's attention from others. // Shifts the JUDGE's attention from others.
static void ContestEffect_ShiftJudgeAttention(void) static void ContestEffect_ShiftJudgeAttention(void)
{ {
bool32 hitAny = FALSE; bool32 hitAny = FALSE;
u8 contestant = eContestResources8.contestant; u8 contestant = eContestAppealResults.contestant;
if (eContestResources8.turnOrder[eContestResources8.contestant] != 0) if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] != 0)
{ {
int i; int i;
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
{ {
if (eContestResources8.turnOrder[contestant] > eContestResources8.turnOrder[i] && if (eContestAppealResults.turnOrder[contestant] > eContestAppealResults.turnOrder[i] &&
eContestantStatus[i].hasJudgesAttention && eContestantStatus[i].hasJudgesAttention &&
CanUnnerveContestant(i)) CanUnnerveContestant(i))
{ {
@ -262,10 +262,10 @@ static void ContestEffect_ShiftJudgeAttention(void)
} }
} }
} }
SetContestantEffectStringID(eContestResources8.contestant,CONTEST_STRING_DAZZLE_ATTEMPT); SetContestantEffectStringID(eContestAppealResults.contestant,CONTEST_STRING_DAZZLE_ATTEMPT);
if (!hitAny) if (!hitAny)
{ {
SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_MESSED_UP2); SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_MESSED_UP2);
} }
} }
@ -273,81 +273,81 @@ static void ContestEffect_ShiftJudgeAttention(void)
static void ContestEffect_StartleMonWithJudgesAttention(void) static void ContestEffect_StartleMonWithJudgesAttention(void)
{ {
u8 numStartled = 0; u8 numStartled = 0;
u8 contestant = eContestResources8.contestant; u8 contestant = eContestAppealResults.contestant;
if (eContestResources8.turnOrder[eContestResources8.contestant] != 0) if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] != 0)
{ {
int i; int i;
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
{ {
if (eContestResources8.turnOrder[contestant] > eContestResources8.turnOrder[i]) if (eContestAppealResults.turnOrder[contestant] > eContestAppealResults.turnOrder[i])
{ {
if (eContestantStatus[i].hasJudgesAttention) if (eContestantStatus[i].hasJudgesAttention)
eContestResources8.jam = 50; eContestAppealResults.jam = 50;
else else
eContestResources8.jam = 10; eContestAppealResults.jam = 10;
eContestResources8.jamQueue[0] = i; eContestAppealResults.jamQueue[0] = i;
eContestResources8.jamQueue[1] = 0xFF; eContestAppealResults.jamQueue[1] = 0xFF;
if (WasAtLeastOneOpponentJammed()) if (WasAtLeastOneOpponentJammed())
numStartled++; numStartled++;
} }
} }
} }
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE);
if (numStartled == 0) if (numStartled == 0)
SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_MESSED_UP2); SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_MESSED_UP2);
} }
// Jams the others, and misses one turn of appeals. // Jams the others, and misses one turn of appeals.
static void ContestEffect_JamsOthersButMissOneTurn(void) static void ContestEffect_JamsOthersButMissOneTurn(void)
{ {
eContestantStatus[eContestResources8.contestant].turnSkipped = TRUE; eContestantStatus[eContestAppealResults.contestant].turnSkipped = TRUE;
ContestEffect_StartlePrevMons(); ContestEffect_StartlePrevMons();
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE);
} }
// Startles POKéMON that made a same-type appeal. // Startles POKéMON that made a same-type appeal.
static void ContestEffect_StartleMonsSameTypeAppeal(void) static void ContestEffect_StartleMonsSameTypeAppeal(void)
{ {
u16 move = eContestantStatus[eContestResources8.contestant].currMove; u16 move = eContestantStatus[eContestAppealResults.contestant].currMove;
JamByMoveCategory(gContestMoves[move].contestCategory); JamByMoveCategory(gContestMoves[move].contestCategory);
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE);
} }
// Badly startles POKéMON that made COOL appeals. // Badly startles POKéMON that made COOL appeals.
static void ContestEffect_StartleMonsCoolAppeal(void) static void ContestEffect_StartleMonsCoolAppeal(void)
{ {
JamByMoveCategory(CONTEST_CATEGORY_COOL); JamByMoveCategory(CONTEST_CATEGORY_COOL);
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE);
} }
// Badly startles POKéMON that made BEAUTY appeals. // Badly startles POKéMON that made BEAUTY appeals.
static void ContestEffect_StartleMonsBeautyAppeal(void) static void ContestEffect_StartleMonsBeautyAppeal(void)
{ {
JamByMoveCategory(CONTEST_CATEGORY_BEAUTY); JamByMoveCategory(CONTEST_CATEGORY_BEAUTY);
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE);
} }
// Badly startles POKéMON that made CUTE appeals. // Badly startles POKéMON that made CUTE appeals.
static void ContestEffect_StartleMonsCuteAppeal(void) static void ContestEffect_StartleMonsCuteAppeal(void)
{ {
JamByMoveCategory(CONTEST_CATEGORY_CUTE); JamByMoveCategory(CONTEST_CATEGORY_CUTE);
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE);
} }
// Badly startles POKéMON that made SMART appeals. // Badly startles POKéMON that made SMART appeals.
static void ContestEffect_StartleMonsSmartAppeal(void) static void ContestEffect_StartleMonsSmartAppeal(void)
{ {
JamByMoveCategory(CONTEST_CATEGORY_SMART); JamByMoveCategory(CONTEST_CATEGORY_SMART);
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE);
} }
// Badly startles POKéMON that made TOUGH appeals. // Badly startles POKéMON that made TOUGH appeals.
static void ContestEffect_StartleMonsToughAppeal(void) static void ContestEffect_StartleMonsToughAppeal(void)
{ {
JamByMoveCategory(CONTEST_CATEGORY_TOUGH); JamByMoveCategory(CONTEST_CATEGORY_TOUGH);
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE);
} }
// Makes one POKéMON after the user nervous. // Makes one POKéMON after the user nervous.
@ -355,13 +355,13 @@ static void ContestEffect_MakeFollowingMonNervous(void)
{ {
bool32 hitAny = FALSE; bool32 hitAny = FALSE;
if (eContestResources8.turnOrder[eContestResources8.contestant] != 3) if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] != 3)
{ {
int i; int i;
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
{ {
if (eContestResources8.turnOrder[eContestResources8.contestant] + 1 == eContestResources8.turnOrder[i]) if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] + 1 == eContestAppealResults.turnOrder[i])
{ {
if (CanUnnerveContestant(i)) if (CanUnnerveContestant(i))
{ {
@ -377,9 +377,9 @@ static void ContestEffect_MakeFollowingMonNervous(void)
} }
} }
} }
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_UNNERVE_ATTEMPT); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_UNNERVE_ATTEMPT);
if (!hitAny) if (!hitAny)
SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_MESSED_UP2); SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_MESSED_UP2);
} }
// Makes all POKéMON after the user nervous. // Makes all POKéMON after the user nervous.
@ -396,7 +396,7 @@ static void ContestEffect_MakeFollowingMonsNervous(void)
memset(contestantIds, 0xFF, ARRAY_COUNT(contestantIds)); memset(contestantIds, 0xFF, ARRAY_COUNT(contestantIds));
for (i = 0, numAfter = 0; i < CONTESTANT_COUNT; i++) for (i = 0, numAfter = 0; i < CONTESTANT_COUNT; i++)
{ {
if (eContestResources8.turnOrder[eContestResources8.contestant] < eContestResources8.turnOrder[i] && if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] < eContestAppealResults.turnOrder[i] &&
!eContestantStatus[i].nervous && !Contest_IsMonsTurnDisabled(i)) !eContestantStatus[i].nervous && !Contest_IsMonsTurnDisabled(i))
contestantIds[numAfter++] = i; contestantIds[numAfter++] = i;
} }
@ -457,12 +457,12 @@ static void ContestEffect_MakeFollowingMonsNervous(void)
SetContestantEffectStringID(contestantIds[i], CONTEST_STRING_UNAFFECTED); SetContestantEffectStringID(contestantIds[i], CONTEST_STRING_UNAFFECTED);
numUnnerved++; numUnnerved++;
} }
eContestResources8.unnervedPokes[contestantIds[i]] = 1; eContestAppealResults.unnervedPokes[contestantIds[i]] = 1;
} }
} }
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_UNNERVE_WAITING); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_UNNERVE_WAITING);
if (numUnnerved == 0) if (numUnnerved == 0)
SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_MESSED_UP2); SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_MESSED_UP2);
} }
// Worsens the condition of those that made appeals. // Worsens the condition of those that made appeals.
@ -473,7 +473,7 @@ static void ContestEffect_WorsenConditionOfPrevMons(void)
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
{ {
if (eContestResources8.turnOrder[eContestResources8.contestant] > eContestResources8.turnOrder[i] && if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] > eContestAppealResults.turnOrder[i] &&
eContestantStatus[i].condition > 0 && eContestantStatus[i].condition > 0 &&
CanUnnerveContestant(i)) CanUnnerveContestant(i))
{ {
@ -484,9 +484,9 @@ static void ContestEffect_WorsenConditionOfPrevMons(void)
} }
} }
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_TAUNT_WELL); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_TAUNT_WELL);
if (numHit == 0) if (numHit == 0)
SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_IGNORED); SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_IGNORED);
} }
// Badly startles POKéMON in good condition. // Badly startles POKéMON in good condition.
@ -497,42 +497,42 @@ static void ContestEffect_BadlyStartlesMonsInGoodCondition(void)
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
{ {
if (eContestResources8.turnOrder[eContestResources8.contestant] > eContestResources8.turnOrder[i]) if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] > eContestAppealResults.turnOrder[i])
{ {
if (eContestantStatus[i].condition > 0) if (eContestantStatus[i].condition > 0)
eContestResources8.jam = 40; eContestAppealResults.jam = 40;
else else
eContestResources8.jam = 10; eContestAppealResults.jam = 10;
eContestResources8.jamQueue[0] = i; eContestAppealResults.jamQueue[0] = i;
eContestResources8.jamQueue[1] = 0xFF; eContestAppealResults.jamQueue[1] = 0xFF;
if (WasAtLeastOneOpponentJammed()) if (WasAtLeastOneOpponentJammed())
numHit++; numHit++;
} }
} }
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_JAM_WELL); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_JAM_WELL);
if (numHit == 0) if (numHit == 0)
SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_IGNORED); SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_IGNORED);
} }
// The appeal works great if performed first. // The appeal works great if performed first.
static void ContestEffect_BetterIfFirst(void) static void ContestEffect_BetterIfFirst(void)
{ {
if (gContestantTurnOrder[eContestResources8.contestant] == 0) if (gContestantTurnOrder[eContestAppealResults.contestant] == 0)
{ {
u16 move = eContestantStatus[eContestResources8.contestant].currMove; u16 move = eContestantStatus[eContestAppealResults.contestant].currMove;
eContestantStatus[eContestResources8.contestant].appeal2 += 2 * gContestEffects[gContestMoves[move].effect].appeal; eContestantStatus[eContestAppealResults.contestant].appeal2 += 2 * gContestEffects[gContestMoves[move].effect].appeal;
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_HUSTLE_STANDOUT); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_HUSTLE_STANDOUT);
} }
} }
// The appeal works great if performed last. // The appeal works great if performed last.
static void ContestEffect_BetterIfLast(void) static void ContestEffect_BetterIfLast(void)
{ {
if (gContestantTurnOrder[eContestResources8.contestant] == 3) if (gContestantTurnOrder[eContestAppealResults.contestant] == 3)
{ {
u16 move = eContestantStatus[eContestResources8.contestant].currMove; u16 move = eContestantStatus[eContestAppealResults.contestant].currMove;
eContestantStatus[eContestResources8.contestant].appeal2 += 2 * gContestEffects[gContestMoves[move].effect].appeal; eContestantStatus[eContestAppealResults.contestant].appeal2 += 2 * gContestEffects[gContestMoves[move].effect].appeal;
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_WORK_HARD_UNNOTICED); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_WORK_HARD_UNNOTICED);
} }
} }
@ -544,22 +544,22 @@ static void ContestEffect_AppealAsGoodAsPrevOnes(void)
for (i = 0, appealSum = 0; i < CONTESTANT_COUNT; i++) for (i = 0, appealSum = 0; i < CONTESTANT_COUNT; i++)
{ {
if (eContestResources8.turnOrder[eContestResources8.contestant] > eContestResources8.turnOrder[i]) if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] > eContestAppealResults.turnOrder[i])
appealSum += eContestantStatus[i].appeal2; appealSum += eContestantStatus[i].appeal2;
} }
if (appealSum < 0) if (appealSum < 0)
appealSum = 0; appealSum = 0;
if (eContestResources8.turnOrder[eContestResources8.contestant] == 0 || appealSum == 0) if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] == 0 || appealSum == 0)
{ {
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_NOT_WELL); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_NOT_WELL);
} }
else else
{ {
eContestantStatus[eContestResources8.contestant].appeal2 += appealSum / 2; eContestantStatus[eContestAppealResults.contestant].appeal2 += appealSum / 2;
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_WORK_BEFORE); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_WORK_BEFORE);
} }
eContestantStatus[eContestResources8.contestant].appeal2 = RoundTowardsZero(eContestantStatus[eContestResources8.contestant].appeal2); eContestantStatus[eContestAppealResults.contestant].appeal2 = RoundTowardsZero(eContestantStatus[eContestAppealResults.contestant].appeal2);
} }
// Makes the appeal as good as the one before it. // Makes the appeal as good as the one before it.
@ -567,42 +567,42 @@ static void ContestEffect_AppealAsGoodAsPrevOne(void)
{ {
s16 appeal = 0; s16 appeal = 0;
if (eContestResources8.turnOrder[eContestResources8.contestant] != 0) if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] != 0)
{ {
int i; int i;
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
{ {
if (eContestResources8.turnOrder[eContestResources8.contestant] - 1 == eContestResources8.turnOrder[i]) if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] - 1 == eContestAppealResults.turnOrder[i])
appeal = eContestantStatus[i].appeal2; appeal = eContestantStatus[i].appeal2;
} }
} }
if (eContestResources8.turnOrder[eContestResources8.contestant] == 0 || appeal <= 0) if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] == 0 || appeal <= 0)
{ {
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_NOT_WELL2); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_NOT_WELL2);
} }
else else
{ {
eContestantStatus[eContestResources8.contestant].appeal2 += appeal; eContestantStatus[eContestAppealResults.contestant].appeal2 += appeal;
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_WORK_PRECEDING); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_WORK_PRECEDING);
} }
} }
// The appeal works better the later it is performed. // The appeal works better the later it is performed.
static void ContestEffect_BetterWhenLater(void) static void ContestEffect_BetterWhenLater(void)
{ {
u8 whichTurn = eContestResources8.turnOrder[eContestResources8.contestant]; u8 whichTurn = eContestAppealResults.turnOrder[eContestAppealResults.contestant];
if (whichTurn == 0) if (whichTurn == 0)
eContestantStatus[eContestResources8.contestant].appeal2 = 10; eContestantStatus[eContestAppealResults.contestant].appeal2 = 10;
else else
eContestantStatus[eContestResources8.contestant].appeal2 = 20 * whichTurn; eContestantStatus[eContestAppealResults.contestant].appeal2 = 20 * whichTurn;
if (whichTurn == 0) if (whichTurn == 0)
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_NOT_SHOWN_WELL); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_NOT_SHOWN_WELL);
else if (whichTurn == 1) else if (whichTurn == 1)
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_SLIGHTLY_WELL); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_SLIGHTLY_WELL);
else if (whichTurn == 2) else if (whichTurn == 2)
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_PRETTY_WELL); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_PRETTY_WELL);
else else
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_EXCELLENTLY); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_EXCELLENTLY);
} }
// The appeal's quality varies depending on its timing. // The appeal's quality varies depending on its timing.
@ -614,31 +614,31 @@ static void ContestEffect_QualityDependsOnTiming(void)
if (rval < 3) if (rval < 3)
{ {
appeal = 10; appeal = 10;
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_NOT_VERY_WELL); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_NOT_VERY_WELL);
} else if (rval < 6) } else if (rval < 6)
{ {
appeal = 20; appeal = 20;
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_SLIGHTLY_WELL2); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_SLIGHTLY_WELL2);
} else if (rval < 8) } else if (rval < 8)
{ {
appeal = 40; appeal = 40;
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_PRETTY_WELL2); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_PRETTY_WELL2);
} else if (rval < 9) } else if (rval < 9)
{ {
appeal = 60; appeal = 60;
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_VERY_WELL); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_VERY_WELL);
} }
else else
{ {
appeal = 80; appeal = 80;
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_EXCELLENTLY2); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_EXCELLENTLY2);
} }
eContestantStatus[eContestResources8.contestant].appeal2 = appeal; eContestantStatus[eContestAppealResults.contestant].appeal2 = appeal;
} }
static void ContestEffect_BetterIfSameType(void) static void ContestEffect_BetterIfSameType(void)
{ {
s8 turnOrder = eContestResources8.turnOrder[eContestResources8.contestant]; s8 turnOrder = eContestAppealResults.turnOrder[eContestAppealResults.contestant];
s8 i = turnOrder - 1, j; s8 i = turnOrder - 1, j;
u16 move; u16 move;
@ -649,7 +649,7 @@ static void ContestEffect_BetterIfSameType(void)
{ {
for (j = 0; j < CONTESTANT_COUNT; j++) for (j = 0; j < CONTESTANT_COUNT; j++)
{ {
if (eContestResources8.turnOrder[j] == i) if (eContestAppealResults.turnOrder[j] == i)
break; break;
} }
if (eContestantStatus[j].noMoreTurns || eContestantStatus[j].nervous || eContestantStatus[j].numTurnsSkipped) if (eContestantStatus[j].noMoreTurns || eContestantStatus[j].nervous || eContestantStatus[j].numTurnsSkipped)
@ -663,29 +663,29 @@ static void ContestEffect_BetterIfSameType(void)
} }
} }
move = eContestantStatus[eContestResources8.contestant].currMove; move = eContestantStatus[eContestAppealResults.contestant].currMove;
if (gContestMoves[move].contestCategory == gContestMoves[eContestantStatus[j].currMove].contestCategory) if (gContestMoves[move].contestCategory == gContestMoves[eContestantStatus[j].currMove].contestCategory)
{ {
eContestantStatus[eContestResources8.contestant].appeal2 += gContestEffects[gContestMoves[move].effect].appeal * 2; eContestantStatus[eContestAppealResults.contestant].appeal2 += gContestEffects[gContestMoves[move].effect].appeal * 2;
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_SAME_TYPE_GOOD); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_SAME_TYPE_GOOD);
} }
} }
// Works well if different in type than the one before. // Works well if different in type than the one before.
static void ContestEffect_BetterIfDiffType(void) static void ContestEffect_BetterIfDiffType(void)
{ {
if (eContestResources8.turnOrder[eContestResources8.contestant] != 0) if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] != 0)
{ {
u16 move = eContestantStatus[eContestResources8.contestant].currMove; u16 move = eContestantStatus[eContestAppealResults.contestant].currMove;
int i; int i;
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
{ {
if (eContestResources8.turnOrder[eContestResources8.contestant] - 1 == eContestResources8.turnOrder[i] && if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] - 1 == eContestAppealResults.turnOrder[i] &&
gContestMoves[move].contestCategory != gContestMoves[eContestantStatus[i].currMove].contestCategory) gContestMoves[move].contestCategory != gContestMoves[eContestantStatus[i].currMove].contestCategory)
{ {
eContestantStatus[eContestResources8.contestant].appeal2 += gContestEffects[gContestMoves[move].effect].appeal * 2; eContestantStatus[eContestAppealResults.contestant].appeal2 += gContestEffects[gContestMoves[move].effect].appeal * 2;
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_DIFF_TYPE_GOOD); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_DIFF_TYPE_GOOD);
break; break;
} }
} }
@ -695,23 +695,23 @@ static void ContestEffect_BetterIfDiffType(void)
// Affected by how well the appeal in front goes. // Affected by how well the appeal in front goes.
static void ContestEffect_AffectedByPrevAppeal(void) static void ContestEffect_AffectedByPrevAppeal(void)
{ {
if (eContestResources8.turnOrder[eContestResources8.contestant] != 0) if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] != 0)
{ {
int i; int i;
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
{ {
if (eContestResources8.turnOrder[eContestResources8.contestant] - 1 == eContestResources8.turnOrder[i]) if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] - 1 == eContestAppealResults.turnOrder[i])
{ {
if (eContestantStatus[eContestResources8.contestant].appeal2 > eContestantStatus[i].appeal2) if (eContestantStatus[eContestAppealResults.contestant].appeal2 > eContestantStatus[i].appeal2)
{ {
eContestantStatus[eContestResources8.contestant].appeal2 *= 2; eContestantStatus[eContestAppealResults.contestant].appeal2 *= 2;
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_STOOD_OUT_AS_MUCH); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_STOOD_OUT_AS_MUCH);
} }
else if (eContestantStatus[eContestResources8.contestant].appeal2 < eContestantStatus[i].appeal2) else if (eContestantStatus[eContestAppealResults.contestant].appeal2 < eContestantStatus[i].appeal2)
{ {
eContestantStatus[eContestResources8.contestant].appeal2 = 0; eContestantStatus[eContestAppealResults.contestant].appeal2 = 0;
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_NOT_AS_WELL); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_NOT_AS_WELL);
} }
} }
} }
@ -721,26 +721,26 @@ static void ContestEffect_AffectedByPrevAppeal(void)
// Ups the user's condition. Helps prevent nervousness. // Ups the user's condition. Helps prevent nervousness.
static void ContestEffect_ImproveConditionPreventNervousness(void) static void ContestEffect_ImproveConditionPreventNervousness(void)
{ {
if (eContestantStatus[eContestResources8.contestant].condition < 30) if (eContestantStatus[eContestAppealResults.contestant].condition < 30)
{ {
eContestantStatus[eContestResources8.contestant].condition += 10; eContestantStatus[eContestAppealResults.contestant].condition += 10;
eContestantStatus[eContestResources8.contestant].conditionMod = 1; eContestantStatus[eContestAppealResults.contestant].conditionMod = 1;
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_CONDITION_ROSE); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_CONDITION_ROSE);
} }
else else
{ {
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_NO_CONDITION_IMPROVE); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_NO_CONDITION_IMPROVE);
} }
} }
// The appeal works well if the user's condition is good. // The appeal works well if the user's condition is good.
static void ContestEffect_BetterWithGoodCondition(void) static void ContestEffect_BetterWithGoodCondition(void)
{ {
eContestantStatus[eContestResources8.contestant].appealTripleCondition = TRUE; eContestantStatus[eContestAppealResults.contestant].appealTripleCondition = TRUE;
if (eContestantStatus[eContestResources8.contestant].condition != 0) if (eContestantStatus[eContestAppealResults.contestant].condition != 0)
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_HOT_STATUS); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_HOT_STATUS);
else else
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_BAD_CONDITION_WEAK_APPEAL); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_BAD_CONDITION_WEAK_APPEAL);
} }
// The next appeal can be made earlier next turn. // The next appeal can be made earlier next turn.
@ -755,13 +755,13 @@ static void ContestEffect_NextAppealEarlier(void)
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
turnOrder[i] = eContestantStatus[i].nextTurnOrder; turnOrder[i] = eContestantStatus[i].nextTurnOrder;
turnOrder[eContestResources8.contestant] = 0xFF; turnOrder[eContestAppealResults.contestant] = 0xFF;
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
{ {
for (j = 0; j < CONTESTANT_COUNT; j++) for (j = 0; j < CONTESTANT_COUNT; j++)
{ {
if (j != eContestResources8.contestant && if (j != eContestAppealResults.contestant &&
i == turnOrder[j] && i == turnOrder[j] &&
turnOrder[j] == eContestantStatus[j].nextTurnOrder) turnOrder[j] == eContestantStatus[j].nextTurnOrder)
{ {
@ -773,15 +773,15 @@ static void ContestEffect_NextAppealEarlier(void)
break; break;
} }
turnOrder[eContestResources8.contestant] = 0; turnOrder[eContestAppealResults.contestant] = 0;
eContestantStatus[eContestResources8.contestant].turnOrderMod = 1; eContestantStatus[eContestAppealResults.contestant].turnOrderMod = 1;
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
{ {
eContestantStatus[i].nextTurnOrder = turnOrder[i]; eContestantStatus[i].nextTurnOrder = turnOrder[i];
} }
eContestantStatus[eContestResources8.contestant].turnOrderModAction = 1; eContestantStatus[eContestAppealResults.contestant].turnOrderModAction = 1;
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_MOVE_UP_LINE); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_MOVE_UP_LINE);
} }
} }
@ -797,13 +797,13 @@ static void ContestEffect_NextAppealLater(void)
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
turnOrder[i] = eContestantStatus[i].nextTurnOrder; turnOrder[i] = eContestantStatus[i].nextTurnOrder;
turnOrder[eContestResources8.contestant] = 0xFF; turnOrder[eContestAppealResults.contestant] = 0xFF;
for (i = CONTESTANT_COUNT - 1; i > -1; i--) for (i = CONTESTANT_COUNT - 1; i > -1; i--)
{ {
for (j = 0; j < CONTESTANT_COUNT; j++) for (j = 0; j < CONTESTANT_COUNT; j++)
{ {
if (j != eContestResources8.contestant && if (j != eContestAppealResults.contestant &&
i == turnOrder[j] && i == turnOrder[j] &&
turnOrder[j] == eContestantStatus[j].nextTurnOrder) turnOrder[j] == eContestantStatus[j].nextTurnOrder)
{ {
@ -815,15 +815,15 @@ static void ContestEffect_NextAppealLater(void)
break; break;
} }
turnOrder[eContestResources8.contestant] = CONTESTANT_COUNT - 1; turnOrder[eContestAppealResults.contestant] = CONTESTANT_COUNT - 1;
eContestantStatus[eContestResources8.contestant].turnOrderMod = 1; eContestantStatus[eContestAppealResults.contestant].turnOrderMod = 1;
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
{ {
eContestantStatus[i].nextTurnOrder = turnOrder[i]; eContestantStatus[i].nextTurnOrder = turnOrder[i];
} }
eContestantStatus[eContestResources8.contestant].turnOrderModAction = 2; eContestantStatus[eContestAppealResults.contestant].turnOrderModAction = 2;
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_MOVE_BACK_LINE); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_MOVE_BACK_LINE);
} }
} }
@ -874,17 +874,17 @@ static void ContestEffect_ScrambleNextTurnOrder(void)
eContestantStatus[i].nextTurnOrder = turnOrder[i]; eContestantStatus[i].nextTurnOrder = turnOrder[i];
eContestantStatus[i].turnOrderMod = 2; eContestantStatus[i].turnOrderMod = 2;
} }
eContestantStatus[eContestResources8.contestant].turnOrderModAction = 3; eContestantStatus[eContestAppealResults.contestant].turnOrderModAction = 3;
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_SCRAMBLE_ORDER); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_SCRAMBLE_ORDER);
} }
} }
// An appeal that excites the audience in any CONTEST. // An appeal that excites the audience in any CONTEST.
static void ContestEffect_ExciteAudienceInAnyContest(void) static void ContestEffect_ExciteAudienceInAnyContest(void)
{ {
if (gContestMoves[eContestantStatus[eContestResources8.contestant].currMove].contestCategory != gSpecialVar_ContestCategory) if (gContestMoves[eContestantStatus[eContestAppealResults.contestant].currMove].contestCategory != gSpecialVar_ContestCategory)
{ {
eContestantStatus[eContestResources8.contestant].overrideCategoryExcitementMod = TRUE; eContestantStatus[eContestAppealResults.contestant].overrideCategoryExcitementMod = TRUE;
} }
} }
@ -896,24 +896,24 @@ static void ContestEffect_BadlyStartleMonsWithGoodAppeals(void)
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
{ {
if (eContestResources8.turnOrder[eContestResources8.contestant] > eContestResources8.turnOrder[i]) if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] > eContestAppealResults.turnOrder[i])
{ {
if (eContestantStatus[i].appeal2 > 0) if (eContestantStatus[i].appeal2 > 0)
{ {
eContestResources8.jam = eContestantStatus[i].appeal2 / 2; eContestAppealResults.jam = eContestantStatus[i].appeal2 / 2;
eContestResources8.jam = RoundUp(eContestResources8.jam); eContestAppealResults.jam = RoundUp(eContestAppealResults.jam);
} }
else else
eContestResources8.jam = 10; eContestAppealResults.jam = 10;
eContestResources8.jamQueue[0] = i; eContestAppealResults.jamQueue[0] = i;
eContestResources8.jamQueue[1] = 0xFF; eContestAppealResults.jamQueue[1] = 0xFF;
if (WasAtLeastOneOpponentJammed()) if (WasAtLeastOneOpponentJammed())
numJammed++; numJammed++;
} }
} }
if (numJammed == 0) if (numJammed == 0)
SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_MESSED_UP2); SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_MESSED_UP2);
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTEMPT_STARTLE); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTEMPT_STARTLE);
} }
// The appeal works best the more the crowd is excited. // The appeal works best the more the crowd is excited.
@ -924,39 +924,39 @@ static void ContestEffect_BetterWhenAudienceExcited(void)
if (eContest.applauseLevel == 0) if (eContest.applauseLevel == 0)
{ {
appeal = 10; appeal = 10;
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_NOT_VERY_WELL); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_NOT_VERY_WELL);
} }
else if (eContest.applauseLevel == 1) else if (eContest.applauseLevel == 1)
{ {
appeal = 20; appeal = 20;
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_SLIGHTLY_WELL2); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_SLIGHTLY_WELL2);
} }
else if (eContest.applauseLevel == 2) else if (eContest.applauseLevel == 2)
{ {
appeal = 30; appeal = 30;
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_PRETTY_WELL2); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_PRETTY_WELL2);
} }
else if (eContest.applauseLevel == 3) else if (eContest.applauseLevel == 3)
{ {
appeal = 50; appeal = 50;
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_VERY_WELL); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_VERY_WELL);
} }
else else
{ {
appeal = 60; appeal = 60;
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_APPEAL_EXCELLENTLY2); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_EXCELLENTLY2);
} }
eContestantStatus[eContestResources8.contestant].appeal2 = appeal; eContestantStatus[eContestAppealResults.contestant].appeal2 = appeal;
} }
// Temporarily stops the crowd from growing excited. // Temporarily stops the crowd from growing excited.
static void ContestEffect_DontExciteAudience(void) static void ContestEffect_DontExciteAudience(void)
{ {
if (!eContestResources10.excitementFrozen) if (!eContestExcitement.frozen)
{ {
eContestResources10.excitementFrozen = TRUE; eContestExcitement.frozen = TRUE;
eContestResources10.excitementFreezer = eContestResources8.contestant; eContestExcitement.freezer = eContestAppealResults.contestant;
SetContestantEffectStringID(eContestResources8.contestant, CONTEST_STRING_ATTRACTED_ATTENTION); SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_ATTRACTED_ATTENTION);
} }
} }
@ -967,26 +967,26 @@ static void JamByMoveCategory(u8 category)
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
{ {
if (eContestResources8.turnOrder[eContestResources8.contestant] > eContestResources8.turnOrder[i]) if (eContestAppealResults.turnOrder[eContestAppealResults.contestant] > eContestAppealResults.turnOrder[i])
{ {
if (category == gContestMoves[eContestantStatus[i].currMove].contestCategory) if (category == gContestMoves[eContestantStatus[i].currMove].contestCategory)
eContestResources8.jam = 40; eContestAppealResults.jam = 40;
else else
eContestResources8.jam = 10; eContestAppealResults.jam = 10;
eContestResources8.jamQueue[0] = i; eContestAppealResults.jamQueue[0] = i;
eContestResources8.jamQueue[1] = 0xFF; eContestAppealResults.jamQueue[1] = 0xFF;
if (WasAtLeastOneOpponentJammed()) if (WasAtLeastOneOpponentJammed())
numJammed++; numJammed++;
} }
} }
if (numJammed == 0) if (numJammed == 0)
SetContestantEffectStringID2(eContestResources8.contestant, CONTEST_STRING_MESSED_UP2); SetContestantEffectStringID2(eContestAppealResults.contestant, CONTEST_STRING_MESSED_UP2);
} }
static bool8 CanUnnerveContestant(u8 i) static bool8 CanUnnerveContestant(u8 i)
{ {
eContestResources8.unnervedPokes[i] = 1; eContestAppealResults.unnervedPokes[i] = 1;
if (eContestantStatus[i].immune) if (eContestantStatus[i].immune)
{ {
SetContestantEffectStringID(i, CONTEST_STRING_AVOID_SEEING); SetContestantEffectStringID(i, CONTEST_STRING_AVOID_SEEING);
@ -1013,32 +1013,32 @@ static bool8 WasAtLeastOneOpponentJammed(void)
s16 jamBuffer[CONTESTANT_COUNT] = {0}; s16 jamBuffer[CONTESTANT_COUNT] = {0};
int i; int i;
for (i = 0; eContestResources8.jamQueue[i] != 0xFF; i++) for (i = 0; eContestAppealResults.jamQueue[i] != 0xFF; i++)
{ {
u8 contestant = eContestResources8.jamQueue[i]; u8 contestant = eContestAppealResults.jamQueue[i];
if (CanUnnerveContestant(contestant)) if (CanUnnerveContestant(contestant))
{ {
eContestResources8.jam2 = eContestResources8.jam; eContestAppealResults.jam2 = eContestAppealResults.jam;
if (eContestantStatus[contestant].moreEasilyStartled) if (eContestantStatus[contestant].moreEasilyStartled)
eContestResources8.jam2 *= 2; eContestAppealResults.jam2 *= 2;
if (eContestantStatus[contestant].resistant) if (eContestantStatus[contestant].resistant)
{ {
eContestResources8.jam2 = 10; eContestAppealResults.jam2 = 10;
SetContestantEffectStringID(contestant, CONTEST_STRING_LITTLE_DISTRACTED); SetContestantEffectStringID(contestant, CONTEST_STRING_LITTLE_DISTRACTED);
} }
else else
{ {
eContestResources8.jam2 -= eContestantStatus[contestant].jamReduction; eContestAppealResults.jam2 -= eContestantStatus[contestant].jamReduction;
if (eContestResources8.jam2 <= 0) if (eContestAppealResults.jam2 <= 0)
{ {
eContestResources8.jam2 = 0; eContestAppealResults.jam2 = 0;
SetContestantEffectStringID(contestant, CONTEST_STRING_NOT_FAZED); SetContestantEffectStringID(contestant, CONTEST_STRING_NOT_FAZED);
} }
else else
{ {
JamContestant(contestant, eContestResources8.jam2); JamContestant(contestant, eContestAppealResults.jam2);
SetStartledString(contestant, eContestResources8.jam2); SetStartledString(contestant, eContestAppealResults.jam2);
jamBuffer[contestant] = eContestResources8.jam2; jamBuffer[contestant] = eContestAppealResults.jam2;
} }
} }
} }

View File

@ -12,9 +12,13 @@
static void Task_LinkContest_StartInitFlags(u8); static void Task_LinkContest_StartInitFlags(u8);
static void Task_LinkContest_InitFlags(u8); static void Task_LinkContest_InitFlags(u8);
#define tState data[0] #define tState data[0]
#define tCategory data[9] #define tDelayTimer data[1]
#define tTimer data[11] #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) bool32 LinkContest_SendBlock(void *src, u16 size)
{ {
@ -121,7 +125,7 @@ void Task_LinkContest_CommunicateMonsRS(u8 taskId)
{ {
int i; int i;
if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) if (!LinkContest_TryLinkStandby(&gTasks[taskId].tStandbyState))
return; return;
switch (gTasks[taskId].tState) switch (gTasks[taskId].tState)
@ -166,7 +170,7 @@ void Task_LinkContest_CommunicateMonsRS(u8 taskId)
default: default:
gTasks[taskId].tState = 0; gTasks[taskId].tState = 0;
gTasks[taskId].tTimer = 0; gTasks[taskId].tTimer = 0;
gTasks[taskId].data[12] = 0; gTasks[taskId].tStandbyState = 0;
SwitchTaskToFollowupFunc(taskId); SwitchTaskToFollowupFunc(taskId);
break; break;
} }
@ -206,7 +210,7 @@ void Task_LinkContest_CommunicateCategoryRS(u8 taskId)
{ {
int i; int i;
if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) if (!LinkContest_TryLinkStandby(&gTasks[taskId].tStandbyState))
return; return;
switch (gTasks[taskId].tState) switch (gTasks[taskId].tState)
@ -227,7 +231,7 @@ void Task_LinkContest_CommunicateCategoryRS(u8 taskId)
if (LinkContest_GetBlockReceivedFromAllPlayers()) if (LinkContest_GetBlockReceivedFromAllPlayers())
{ {
for (i = 0; i < gNumLinkContestPlayers; i++) for (i = 0; i < gNumLinkContestPlayers; i++)
gTasks[taskId].data[i + 1] = gBlockRecvBuffer[i][0]; gTasks[taskId].tCategories(i) = gBlockRecvBuffer[i][0];
gTasks[taskId].tState++; gTasks[taskId].tState++;
} }
@ -242,7 +246,7 @@ void Task_LinkContest_CommunicateCategoryRS(u8 taskId)
default: default:
gTasks[taskId].tState = 0; gTasks[taskId].tState = 0;
gTasks[taskId].tTimer = 0; gTasks[taskId].tTimer = 0;
gTasks[taskId].data[12] = 0; gTasks[taskId].tStandbyState = 0;
SwitchTaskToFollowupFunc(taskId); SwitchTaskToFollowupFunc(taskId);
break; break;
} }
@ -323,9 +327,9 @@ void Task_LinkContest_CommunicateFinalStandings(u8 taskId)
case 5: case 5:
case 8: case 8:
case 11: case 11:
if (gTasks[taskId].data[1]++ > 10) if (gTasks[taskId].tDelayTimer++ > 10)
{ {
gTasks[taskId].data[1] = 0; gTasks[taskId].tDelayTimer = 0;
gTasks[taskId].tState++; gTasks[taskId].tState++;
} }
break; break;
@ -378,7 +382,7 @@ void Task_LinkContest_CommunicateFinalStandings(u8 taskId)
} }
} }
void sub_80FCC88(u8 taskId) void Task_LinkContest_CommunicateAppealsState(u8 taskId)
{ {
switch (gTasks[taskId].tState) switch (gTasks[taskId].tState)
{ {
@ -400,37 +404,37 @@ void sub_80FCC88(u8 taskId)
case 5: case 5:
case 8: case 8:
case 11: case 11:
if (gTasks[taskId].data[1]++ > 10) if (gTasks[taskId].tDelayTimer++ > 10)
{ {
gTasks[taskId].data[1] = 0; gTasks[taskId].tDelayTimer = 0;
gTasks[taskId].tState++; gTasks[taskId].tState++;
} }
break; break;
case 3: case 3:
if (IsLinkTaskFinished()) if (IsLinkTaskFinished())
{ {
if (LinkContest_SendBlock(gContestResources->field_8, sizeof(struct UnknownContestStruct7)) == 1) if (LinkContest_SendBlock(gContestResources->appealResults, sizeof(struct ContestAppealMoveResults)) == 1)
gTasks[taskId].tState++; gTasks[taskId].tState++;
} }
break; break;
case 4: case 4:
if (LinkContest_GetBlockReceivedFromAllPlayers()) if (LinkContest_GetBlockReceivedFromAllPlayers())
{ {
memcpy(gContestResources->field_8, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(struct UnknownContestStruct7)); memcpy(gContestResources->appealResults, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(struct ContestAppealMoveResults));
gTasks[taskId].tState++; gTasks[taskId].tState++;
} }
break; break;
case 6: case 6:
if (IsLinkTaskFinished()) if (IsLinkTaskFinished())
{ {
if (LinkContest_SendBlock(gContestResources->field_10, sizeof(struct UnknownContestStruct5)) == 1) if (LinkContest_SendBlock(gContestResources->excitement, sizeof(struct ContestExcitement)) == 1)
gTasks[taskId].tState++; gTasks[taskId].tState++;
} }
break; break;
case 7: case 7:
if (LinkContest_GetBlockReceivedFromAllPlayers()) if (LinkContest_GetBlockReceivedFromAllPlayers())
{ {
memcpy(gContestResources->field_10, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(struct UnknownContestStruct5)); memcpy(gContestResources->excitement, gBlockRecvBuffer[gContestLinkLeaderIndex], sizeof(struct ContestExcitement));
gTasks[taskId].tState++; gTasks[taskId].tState++;
} }
break; break;
@ -459,7 +463,7 @@ void Task_LinkContest_CommunicateLeaderIdsRS(u8 taskId)
{ {
int i; int i;
if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) if (!LinkContest_TryLinkStandby(&gTasks[taskId].tStandbyState))
return; return;
switch (gTasks[taskId].tState) switch (gTasks[taskId].tState)
@ -480,7 +484,7 @@ void Task_LinkContest_CommunicateLeaderIdsRS(u8 taskId)
if (LinkContest_GetBlockReceivedFromAllPlayers()) if (LinkContest_GetBlockReceivedFromAllPlayers())
{ {
for (i = 0; i < CONTESTANT_COUNT; i++) for (i = 0; i < CONTESTANT_COUNT; i++)
gTasks[taskId].data[i + 5] = gBlockRecvBuffer[i][0]; gTasks[taskId].tLeaderIds(i) = gBlockRecvBuffer[i][0];
gTasks[taskId].tState++; gTasks[taskId].tState++;
} }
@ -495,7 +499,7 @@ void Task_LinkContest_CommunicateLeaderIdsRS(u8 taskId)
default: default:
gTasks[taskId].tState = 0; gTasks[taskId].tState = 0;
gTasks[taskId].tTimer = 0; gTasks[taskId].tTimer = 0;
gTasks[taskId].data[12] = 0; gTasks[taskId].tStandbyState = 0;
SwitchTaskToFollowupFunc(taskId); SwitchTaskToFollowupFunc(taskId);
break; break;
} }
@ -503,7 +507,7 @@ void Task_LinkContest_CommunicateLeaderIdsRS(u8 taskId)
void Task_LinkContest_CommunicateRound1Points(u8 taskId) void Task_LinkContest_CommunicateRound1Points(u8 taskId)
{ {
if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) if (!LinkContest_TryLinkStandby(&gTasks[taskId].tStandbyState))
return; return;
switch (gTasks[taskId].tState) switch (gTasks[taskId].tState)
@ -524,7 +528,7 @@ void Task_LinkContest_CommunicateRound1Points(u8 taskId)
break; break;
default: default:
gTasks[taskId].tState = 0; gTasks[taskId].tState = 0;
gTasks[taskId].data[12] = 0; gTasks[taskId].tStandbyState = 0;
SwitchTaskToFollowupFunc(taskId); SwitchTaskToFollowupFunc(taskId);
break; break;
} }
@ -532,7 +536,7 @@ void Task_LinkContest_CommunicateRound1Points(u8 taskId)
void Task_LinkContest_CommunicateTurnOrder(u8 taskId) void Task_LinkContest_CommunicateTurnOrder(u8 taskId)
{ {
if (!LinkContest_TryLinkStandby(&gTasks[taskId].data[12])) if (!LinkContest_TryLinkStandby(&gTasks[taskId].tStandbyState))
return; return;
switch (gTasks[taskId].tState) switch (gTasks[taskId].tState)
@ -553,7 +557,7 @@ void Task_LinkContest_CommunicateTurnOrder(u8 taskId)
break; break;
default: default:
gTasks[taskId].tState = 0; gTasks[taskId].tState = 0;
gTasks[taskId].data[12] = 0; gTasks[taskId].tStandbyState = 0;
SwitchTaskToFollowupFunc(taskId); SwitchTaskToFollowupFunc(taskId);
break; break;
} }