diff options
Diffstat (limited to 'src/contest.c')
-rw-r--r-- | src/contest.c | 585 |
1 files changed, 294 insertions, 291 deletions
diff --git a/src/contest.c b/src/contest.c index cea968738..a282226d5 100644 --- a/src/contest.c +++ b/src/contest.c @@ -48,7 +48,7 @@ extern u8 gBattlerAttacker; extern u8 gBattlerTarget; extern u8 gBattlerPositions[]; extern u8 gBattlerSpriteIds[]; -extern struct Window gUnknown_03004210; +extern struct Window gWindowTemplate_Contest_MoveDescription; u32 gContestRngValue; extern struct SpriteTemplate gUnknown_02024E8C; @@ -69,11 +69,11 @@ extern const struct SubspriteTable gSubspriteTables_83CA464[]; extern const struct CompressedSpriteSheet gUnknown_083CA46C; extern const struct SpritePalette gUnknown_083CA474; extern const struct SpriteTemplate gSpriteTemplate_83CA484; -extern const struct SpriteTemplate gSpriteTemplate_83CA4A4; -extern const struct CompressedSpriteSheet gUnknown_083CA4BC; -extern const struct CompressedSpriteSheet gUnknown_083CA4C4; -extern const struct CompressedSpritePalette gUnknown_083CA4CC; -extern const struct SpriteTemplate gUnknown_083CA4D4; +extern const struct SpriteTemplate sSpriteTemplate_Judge; +extern const struct CompressedSpriteSheet sSpriteSheet_Judge; +extern const struct CompressedSpriteSheet sSpriteSheet_JudgeSymbols; +extern const struct CompressedSpritePalette sSpritePalette_JudgeSymbols; +extern const struct SpriteTemplate sSpriteTemplate_JudgeSpeechBubble; extern const struct CompressedSpriteSheet gUnknown_083CC3AC; extern const struct CompressedSpritePalette gUnknown_083CC3B4[]; extern const struct SpriteTemplate gSpriteTemplate_83CC454[]; @@ -107,7 +107,7 @@ extern const u8 *const gUnknown_083CC330[]; extern const u8 gUnknownText_UnknownFormatting2[]; extern const u8 gUnknownText_UnknownFormatting3[]; extern const u8 gUnknown_083CC59C[]; -extern const u8 gUnknown_083CC5A2[]; +extern const u8 gText_Slash[]; extern const u16 gUnknown_083CC5A4[]; extern const struct ContestWinner gUnknown_083CC5D0[]; extern const u8 gUnknownText_MissedTurn[]; @@ -166,30 +166,30 @@ void sub_80ADFD8(u8); void sub_80AE010(void); void InsertStringDigit(u8 *, s32); bool8 sub_80AE074(void); -void sub_80AEB4C(void *); -void sub_80AE5BC(u8); -void sub_80AE5D4(u8, u8); -void sub_80AE6CC(u8); -void sub_80AE6E4(u8, u8); +void __copy_tilemap(void *); +void PrintContestantTrainerName(u8 contestant); +void PrintContestantTrainerNameWithColor(u8 contestant, u8 color); +void PrintContestantMonName(u8 contestant); +void PrintContestantMonNameWithColor(u8 contestant, u8 color); u8 CreateJudgeSprite(void); -u8 sub_80AE8B4(void); -u8 sub_80AE9FC(u16, u32, u32); -void sub_80AEB30(void); -void sub_80AEBEC(u16); +u8 CreateJudgeSpeechBubbleSprite(void); +u8 CreateContestantSprite(u16, u32, u32); +void SwapMoveDescAndContestTilemaps(void); +void PrintContestMoveDescription(u16); void sub_80AED58(void); -bool8 sub_80AEE54(u8, u8); -bool8 sub_80AF038(u8); -void sub_80AF120(void); -void sub_80AF138(void); +bool8 UpdateConditionStars(u8, u8); +bool8 DrawStatusSymbol(u8); +void DrawStatusSymbols(void); +void ContestClearGeneralTextWindow(void); u16 GetChosenMove(u8); void sub_80AF1B8(void); void sub_80AF2A0(u8); void sub_80AF2FC(void); void sub_80AF3C0(void); -s16 sub_80AF688(u8); +s16 GetContestantRound2Points(u8 a); void DetermineFinalStandings(void); -bool8 sub_80AF828(s32, s32, struct UnknownContestStruct6 *); -void sub_80AF860(void); +bool8 DidContestantPlaceHigher(s32 a, s32 b, struct ContestFinalStandings *c); +void ContestPrintLinkStandby(void); void sub_80AF94C(u8); void sub_80AFA5C(void); u16 sub_80AFB40(u8); @@ -269,12 +269,12 @@ EWRAM_DATA u8 gUnknown_0203856C = 0; EWRAM_DATA struct ContestPokemon gContestMons[4] = {0}; EWRAM_DATA s16 gContestMonRound1Points[4] = {0}; EWRAM_DATA s16 gContestMonTotalPoints[4] = {0}; -EWRAM_DATA s16 gUnknown_02038680[4] = {0}; -EWRAM_DATA s16 gUnknown_02038688[4] = {0}; +EWRAM_DATA s16 gContestMonAppealPointTotals[4] = {0}; +EWRAM_DATA s16 gContestMonRound2Points[4] = {0}; EWRAM_DATA u8 gContestFinalStandings[4] = {0}; // What "place" each participant came in. EWRAM_DATA u8 gContestMonPartyIndex = 0; EWRAM_DATA u8 gContestPlayerMonIndex = 0; -EWRAM_DATA u8 gUnknown_02038696[4] = {0}; +EWRAM_DATA u8 gContestantTurnOrder[4] = {0}; EWRAM_DATA u8 gIsLinkContest = 0; EWRAM_DATA u8 gContestLinkLeaderIndex = 0; EWRAM_DATA u16 gSpecialVar_ContestCategory = 0; @@ -336,14 +336,14 @@ void LoadContestBgAfterMoveAnim(void) { u32 var = 5 + i; - LoadPalette(shared18000.unk18004[var], 16 * (5 + gUnknown_02038696[i]), 16 * sizeof(u16)); + LoadPalette(shared18000.unk18004[var], 16 * (5 + gContestantTurnOrder[i]), 16 * sizeof(u16)); } } void SetUpContestWindow(void) { Text_LoadWindowTemplate(&gWindowTemplate_81E6FD8); - Text_InitWindowWithTemplate(&gUnknown_03004210, &gWindowTemplate_81E6FD8); + Text_InitWindowWithTemplate(&gWindowTemplate_Contest_MoveDescription, &gWindowTemplate_81E6FD8); Text_InitWindowWithTemplate(&gMenuWindow, &gWindowTemplate_81E6FF4); } @@ -384,7 +384,7 @@ void ClearContestVars(void) for (i = 0; i < 4; i++) { sContestantStatus[i].nextTurnOrder = 0xFF; - sContest.unk19218[i] = gUnknown_02038696[i]; + sContest.unk19218[i] = gContestantTurnOrder[i]; } sub_80B159C(); } @@ -447,7 +447,7 @@ void sub_80AB604(u8 taskId) if (!gPaletteFade.active) { gPaletteFade.bufferTransferDisabled = FALSE; - sub_80AF860(); + ContestPrintLinkStandby(); CreateTask(sub_80AB678, 0); gTasks[taskId].func = nullsub_89; } @@ -518,8 +518,8 @@ u8 sub_80AB70C(u8 *a) case 6: sub_80B1118(); sub_80AFA5C(); - sub_80AEB30(); - sContest.unk19216 = sub_80AE8B4(); + SwapMoveDescAndContestTilemaps(); + sContest.unk19216 = CreateJudgeSpeechBubbleSprite(); sub_80AFE30(); sub_80B0034(); CreateApplauseMeterSprite(); @@ -635,7 +635,7 @@ void sub_80ABB70(u8 taskId) else StringCopy(gDisplayedStringBattle, gText_Contest_ButItCantParticipate); InsertStringDigit(gDisplayedStringBattle, sContest.turnNumber + 1); - sub_80AF138(); + ContestClearGeneralTextWindow(); StringExpandPlaceholders(gStringVar4, gDisplayedStringBattle); Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15); gTasks[taskId].func = sub_80ABC3C; @@ -673,7 +673,7 @@ void sub_80ABCDC(u8 taskId) gBattle_BG0_Y = 0xA0; gBattle_BG2_Y = 0xA0; Text_FillWindowRectDefPalette( - &gUnknown_03004210, + &gWindowTemplate_Contest_MoveDescription, 0, gUnknown_083CA340[0][0], gUnknown_083CA340[0][1], @@ -702,18 +702,18 @@ void sub_80ABCDC(u8 taskId) r5 = StringCopy(r5, gMoveNames[move]); Text_InitWindow8002E4C( - &gUnknown_03004210, + &gWindowTemplate_Contest_MoveDescription, sp8, 776 + i * 20, gUnknown_083CA340[i][0] * 8 + 4, gUnknown_083CA340[i][1] * 8, 1); - Text_PrintWindow8002F44(&gUnknown_03004210); + Text_PrintWindow8002F44(&gWindowTemplate_Contest_MoveDescription); } MenuCursor_Create814A5C0(0, 0xFFFF, 12, 0x2D9F, 72); sub_80AC0AC(sContest.playerMoveChoice); - sub_80AEBEC(gContestMons[gContestPlayerMonIndex].moves[sContest.playerMoveChoice]); + PrintContestMoveDescription(gContestMons[gContestPlayerMonIndex].moves[sContest.playerMoveChoice]); gTasks[taskId].func = sub_80ABEA0; } @@ -746,7 +746,7 @@ void sub_80ABEA0(u8 taskId) PlaySE(SE_SELECT); sub_80AFFE0(FALSE); Text_FillWindowRectDefPalette( - &gUnknown_03004210, + &gWindowTemplate_Contest_MoveDescription, 0, gUnknown_083CA340[0][0], gUnknown_083CA340[0][1], @@ -757,7 +757,7 @@ void sub_80ABEA0(u8 taskId) else StringCopy(gDisplayedStringBattle, gText_Contest_ButItCantParticipate); InsertStringDigit(gDisplayedStringBattle, sContest.turnNumber + 1); - sub_80AF138(); + ContestClearGeneralTextWindow(); StringExpandPlaceholders(gStringVar4, gDisplayedStringBattle); Text_InitWindowAndPrintText(&gMenuWindow, gStringVar4, 776, 1, 15); gBattle_BG0_Y = 0; @@ -775,7 +775,7 @@ void sub_80ABEA0(u8 taskId) sContest.playerMoveChoice--; sub_80AC0AC(sContest.playerMoveChoice); sub_80AED58(); - sub_80AEBEC(gContestMons[gContestPlayerMonIndex].moves[sContest.playerMoveChoice]); + PrintContestMoveDescription(gContestMons[gContestPlayerMonIndex].moves[sContest.playerMoveChoice]); if (numMoves > 1) PlaySE(SE_SELECT); break; @@ -787,7 +787,7 @@ void sub_80ABEA0(u8 taskId) sContest.playerMoveChoice++; sub_80AC0AC(sContest.playerMoveChoice); sub_80AED58(); - sub_80AEBEC(gContestMons[gContestPlayerMonIndex].moves[sContest.playerMoveChoice]); + PrintContestMoveDescription(gContestMons[gContestPlayerMonIndex].moves[sContest.playerMoveChoice]); if (numMoves > 1) PlaySE(SE_SELECT); break; @@ -817,27 +817,27 @@ void debug_sub_80B9EBC(u8 taskId) { case 0: Text_FillWindowRectDefPalette( - &gUnknown_03004210, + &gWindowTemplate_Contest_MoveDescription, 0, gUnknown_083CA340[0][0], gUnknown_083CA340[0][1], gUnknown_083CA340[0][2], gUnknown_083CA340[0][3]); Text_InitWindowAndPrintText( - &gUnknown_03004210, + &gWindowTemplate_Contest_MoveDescription, gMoveNames[gTasks[taskId].data[1]], 776, gUnknown_083CA340[0][0], gUnknown_083CA340[0][1]); ConvertIntToDecimalStringN(text, gTasks[taskId].data[1], 2, 3); Text_InitWindowAndPrintText( - &gUnknown_03004210, + &gWindowTemplate_Contest_MoveDescription, text, 796, gUnknown_083CA340[1][0], gUnknown_083CA340[1][1]); sub_80AED58(); - sub_80AEBEC(gTasks[taskId].data[1]); + PrintContestMoveDescription(gTasks[taskId].data[1]); gTasks[taskId].data[0]++; break; case 1: @@ -902,7 +902,7 @@ void debug_sub_80BA054(u8 taskId) gBattleMonForms[i] = 0; memset(&shared19348, 0, sizeof(shared19348)); sub_80B28F0(gContestPlayerMonIndex); - r6 = sub_80AE9FC( + r6 = CreateContestantSprite( gContestMons[gContestPlayerMonIndex].species, gContestMons[gContestPlayerMonIndex].otId, gContestMons[gContestPlayerMonIndex].personality); @@ -998,7 +998,7 @@ void sub_80AC0C8(u8 taskId) taskId2 = CreateTask(sub_80C8A38, 0); SetTaskFuncWithFollowupFunc(taskId2, sub_80C8A38, sub_80AC15C); gTasks[taskId].func = nullsub_89; - sub_80AF860(); + ContestPrintLinkStandby(); sub_80AFFE0(FALSE); } else @@ -1016,7 +1016,7 @@ void sub_80AC15C(u8 taskId) void sub_80AC188(u8 taskId) { - sub_80AF138(); + ContestClearGeneralTextWindow(); gBattle_BG0_Y = 0; gBattle_BG2_Y = 0; sub_80AFFE0(FALSE); @@ -1082,7 +1082,7 @@ void sub_80AC2CC(u8 taskId) sub_80B114C(sContest.unk19215); taskId2 = CreateTask(sub_80C8C80, 0); SetTaskFuncWithFollowupFunc(taskId2, sub_80C8C80, sub_80AD8DC); - sub_80AF860(); + ContestPrintLinkStandby(); gTasks[taskId].data[0] = 1; } else @@ -1103,7 +1103,7 @@ void sub_80AC2CC(u8 taskId) } else { - sub_80AF138(); + ContestClearGeneralTextWindow(); sub_80B0CDC(r7, 0); gTasks[taskId].data[10] = 0; gTasks[taskId].data[0] = 3; @@ -1114,7 +1114,7 @@ void sub_80AC2CC(u8 taskId) gBattleMonForms[i] = 0; memset(&shared19348, 0, sizeof(shared19348)); sub_80B28F0(sContest.unk19215); - spriteId = sub_80AE9FC( + spriteId = CreateContestantSprite( gContestMons[sContest.unk19215].species, gContestMons[sContest.unk19215].otId, gContestMons[sContest.unk19215].personality); @@ -1140,7 +1140,7 @@ void sub_80AC2CC(u8 taskId) } else { - sub_80AF138(); + ContestClearGeneralTextWindow(); StringCopy(gStringVar1, gContestMons[r7].nickname); if (sContestantStatus[r7].currMove < NUM_MOVES) StringCopy(gStringVar2, gMoveNames[sContestantStatus[r7].currMove]); @@ -1279,7 +1279,7 @@ void sub_80AC2CC(u8 taskId) gTasks[taskId].data[0] = 37; return; case 37: - if (sub_80AEE54(r7, 1)) + if (UpdateConditionStars(r7, 1)) { gTasks[taskId].data[10] = 0; gTasks[taskId].data[0] = 38; @@ -1297,7 +1297,7 @@ void sub_80AC2CC(u8 taskId) } return; case 50: - if (sub_80AF038(r7)) + if (DrawStatusSymbol(r7)) PlaySE(SE_CONTEST_ICON_CHANGE); gTasks[taskId].data[0] = 25; return; @@ -1315,7 +1315,7 @@ void sub_80AC2CC(u8 taskId) r4 = 0; for (r2 = 0; r2 < 4; r2++) { - if (r2 != r7 && gUnknown_02038696[r2] == i + if (r2 != r7 && gContestantTurnOrder[r2] == i && sContestantStatus[r2].effectStringId != CONTEST_STRING_NONE) { r4 = 1; @@ -1327,7 +1327,7 @@ void sub_80AC2CC(u8 taskId) } if (r4) { - gTasks[taskId].data[1] = gUnknown_02038696[r2]; + gTasks[taskId].data[1] = gContestantTurnOrder[r2]; sub_80B146C(r2, sContestantStatus[r2].effectStringId); sContestantStatus[r2].effectStringId = CONTEST_STRING_NONE; gTasks[taskId].data[0] = 27; @@ -1337,7 +1337,7 @@ void sub_80AC2CC(u8 taskId) gTasks[taskId].data[1] = 0; gTasks[taskId].data[10] = 0; gTasks[taskId].data[0] = 51; - sub_80AF120(); + DrawStatusSymbols(); } } return; @@ -1346,21 +1346,21 @@ void sub_80AC2CC(u8 taskId) gTasks[taskId].data[0] = 28; return; case 28: - for (i = 0; gTasks[taskId].data[1] != gUnknown_02038696[i]; i++) + for (i = 0; gTasks[taskId].data[1] != gContestantTurnOrder[i]; i++) ; sub_80AFBA0(sContestantStatus[i].appeal2 + sContestantStatus[i].jam, -sContestantStatus[i].jam, i); gTasks[taskId].data[0] = 29; return; case 29: - for (i = 0; gTasks[taskId].data[1] != gUnknown_02038696[i]; i++) + for (i = 0; gTasks[taskId].data[1] != gContestantTurnOrder[i]; i++) ; if (!shared19338[i].unk2_2) gTasks[taskId].data[0] = 39; return; case 39: - for (i = 0; gTasks[taskId].data[1] != gUnknown_02038696[i]; i++) + for (i = 0; gTasks[taskId].data[1] != gContestantTurnOrder[i]; i++) ; - if (sub_80AEE54(i, 1)) + if (UpdateConditionStars(i, 1)) { gTasks[taskId].data[10] = 0; gTasks[taskId].data[0] = 40; @@ -1380,10 +1380,10 @@ void sub_80AC2CC(u8 taskId) case 30: for (i = 0; i < 4; i++) { - if (gUnknown_02038696[i] == gTasks[taskId].data[1]) + if (gContestantTurnOrder[i] == gTasks[taskId].data[1]) break; } - if (sub_80AF038(i)) + if (DrawStatusSymbol(i)) PlaySE(SE_CONTEST_ICON_CHANGE); else PlaySE(SE_CONTEST_ICON_CLEAR); @@ -1402,7 +1402,7 @@ void sub_80AC2CC(u8 taskId) if (sContestantStatus[r7].numTurnsSkipped != 0 || sContestantStatus[r7].turnSkipped) { - sub_80AF138(); + ContestClearGeneralTextWindow(); StringCopy(gStringVar1, gContestMons[r7].nickname); StringExpandPlaceholders(gStringVar4, ContestString_CantAppealNextTurn); Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15); @@ -1423,7 +1423,7 @@ void sub_80AC2CC(u8 taskId) r4 = sContestantStatus[r7].unk16; if (sContestantStatus[r7].unk16 != 0) { - sub_80AF138(); + ContestClearGeneralTextWindow(); if (r4 == 1) Text_InitWindow8002EB0(&gMenuWindow, ContestString_WentOverWell, 776, 1, 15); else if (r4 == 2) @@ -1436,7 +1436,7 @@ void sub_80AC2CC(u8 taskId) } else { - sub_80AF138(); + ContestClearGeneralTextWindow(); StringCopy(gStringVar1, gContestMons[r7].nickname); StringExpandPlaceholders(gStringVar4, ContestString_JudgeExpectantly2); Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15); @@ -1479,7 +1479,7 @@ void sub_80AC2CC(u8 taskId) case 17: if (sContestantStatus[r7].disappointedRepeat) { - sub_80AF138(); + ContestClearGeneralTextWindow(); StringCopy(gStringVar1, gContestMons[r7].nickname); StringExpandPlaceholders(gStringVar4, ContestString_DissapointedRepeat); Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15); @@ -1509,7 +1509,7 @@ void sub_80AC2CC(u8 taskId) if (!shared19338[r7].unk2_2) { gTasks[taskId].data[10] = 0; - sub_80AF138(); + ContestClearGeneralTextWindow(); gTasks[taskId].data[0] = 41; } return; @@ -1535,7 +1535,7 @@ void sub_80AC2CC(u8 taskId) if (sContestantStatus[r7].disappointedRepeat) r4 = 0; } - sub_80AF138(); + ContestClearGeneralTextWindow(); StringCopy(gStringVar1, gContestMons[r7].nickname); sContest.applauseLevel += r4; if (sContest.applauseLevel < 0) @@ -1652,12 +1652,12 @@ void sub_80AC2CC(u8 taskId) case 43: if (!shared19338[r7].unk2_2) { - sub_80AF138(); + ContestClearGeneralTextWindow(); gTasks[taskId].data[0] = 55; } return; case 57: - sub_80AF138(); + ContestClearGeneralTextWindow(); StringCopy(gStringVar3, gContestMons[shared19328.excitementFreezer].nickname); StringCopy(gStringVar1, gContestMons[r7].nickname); StringCopy(gStringVar2, gMoveNames[sContestantStatus[r7].currMove]); @@ -1668,7 +1668,7 @@ void sub_80AC2CC(u8 taskId) case 58: if (Text_UpdateWindowInContest(&gMenuWindow) != 0) { - sub_80AF138(); + ContestClearGeneralTextWindow(); StringExpandPlaceholders(gStringVar4, ContestString_Ignored2); Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15); gTasks[taskId].data[0] = 59; @@ -1677,7 +1677,7 @@ void sub_80AC2CC(u8 taskId) case 59: if (Text_UpdateWindowInContest(&gMenuWindow) != 0) { - sub_80AF138(); + ContestClearGeneralTextWindow(); gTasks[taskId].data[0] = 55; } return; @@ -1731,7 +1731,7 @@ void sub_80AC2CC(u8 taskId) gTasks[taskId].data[0] = 21; return; case 31: - sub_80AF138(); + ContestClearGeneralTextWindow(); StringCopy(gStringVar1, gContestMons[r7].nickname); StringExpandPlaceholders(gStringVar4, gUnknown_083CB00D); Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15); @@ -1814,7 +1814,7 @@ void sub_80AD960(u8 taskId) } taskId2 = CreateTask(sub_80C8C80, 0); SetTaskFuncWithFollowupFunc(taskId2, sub_80C8C80, sub_80AD8DC); - sub_80AF860(); + ContestPrintLinkStandby(); gTasks[taskId].data[0] = 1; } else @@ -1902,7 +1902,7 @@ void sub_80ADB88(u8 taskId) { u8 r4 = sContestantStatus[gContestPlayerMonIndex].attentionLevel; - sub_80AF138(); + ContestClearGeneralTextWindow(); StringCopy(gStringVar1, gContestMons[gContestPlayerMonIndex].nickname); StringExpandPlaceholders(gStringVar4, gContestStandOutStrings[r4]); Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15); @@ -1978,9 +1978,9 @@ void sub_80ADDA4(u8 taskId) gBattle_BG0_Y = 0; gBattle_BG2_Y = 0; for (i = 0; i < 4; i++) - gUnknown_02038680[i] = sContestantStatus[i].unk4; - sub_80AF668(); - sub_80AF138(); + gContestMonAppealPointTotals[i] = sContestantStatus[i].unk4; + CalculateFinalScores(); + ContestClearGeneralTextWindow(); sub_80BE23C(sContestantStatus[gContestPlayerMonIndex].prevMove); gContestRngValue = gRngValue; StringExpandPlaceholders(gStringVar4, gUnknown_083CB02C); @@ -2036,7 +2036,7 @@ void sub_80ADF4C(u8 taskId) SetTaskFuncWithFollowupFunc(taskId2, sub_80C8AD0, sub_80ADF98); gTasks[taskId].func = nullsub_89; - sub_80AF860(); + ContestPrintLinkStandby(); sub_80AFFE0(FALSE); } @@ -2292,156 +2292,156 @@ void sub_80AE514(void) for (i = 0; i < 4; i++) { Text_FillWindowRectDefPalette( - &gUnknown_03004210, + &gWindowTemplate_Contest_MoveDescription, 0, - gUnknown_083CA308[gUnknown_02038696[i]][0], - gUnknown_083CA308[gUnknown_02038696[i]][1], - gUnknown_083CA310[gUnknown_02038696[i]][0] + 5, - gUnknown_083CA310[gUnknown_02038696[i]][1] + 1); - sub_80AE5BC(i); - sub_80AE6CC(i); + gUnknown_083CA308[gContestantTurnOrder[i]][0], + gUnknown_083CA308[gContestantTurnOrder[i]][1], + gUnknown_083CA310[gContestantTurnOrder[i]][0] + 5, + gUnknown_083CA310[gContestantTurnOrder[i]][1] + 1); + PrintContestantTrainerName(i); + PrintContestantMonName(i); } } -u8 *sub_80AE598(u8 *dest, const u8 *b, u8 c) +u8 *Contest_CopyStringWithColor(u8 *dest, const u8 *src, u8 color) { - dest = StringCopy(dest, gUnknown_083CC59C); - *dest++ = c; - dest = StringCopy(dest, b); + dest = StringCopy(dest, gUnknown_083CC59C); // {HIGHLIGHT TRANSPARENT}{COLOR}$ + *dest++ = color; + dest = StringCopy(dest, src); return dest; } -void sub_80AE5BC(u8 a) +void PrintContestantTrainerName(u8 contestant) { - sub_80AE5D4(a, a + 10); + PrintContestantTrainerNameWithColor(contestant, contestant + 10); } -void sub_80AE5D4(u8 p, u8 b) +void PrintContestantTrainerNameWithColor(u8 contestant, u8 color) { u8 *str = gDisplayedStringBattle; - str = sub_80AE598(str, gEmptyString_81E72B0, b); + str = Contest_CopyStringWithColor(str, gEmptyString_81E72B0, color); str[0] = EXT_CTRL_CODE_BEGIN; - str[1] = 6; + str[1] = EXT_CTRL_CODE_SIZE; str[2] = 4; str += 3; *str++ = CHAR_SLASH; - if ((gIsLinkContest & 1) && gLinkPlayers[p].language == LANGUAGE_JAPANESE) + if ((gIsLinkContest & 1) && gLinkPlayers[contestant].language == LANGUAGE_JAPANESE) { - StringCopy(str, gLinkPlayers[p].name); + StringCopy(str, gLinkPlayers[contestant].name); Text_InitWindow8004D04( - &gUnknown_03004210, + &gWindowTemplate_Contest_MoveDescription, gDisplayedStringBattle, - 592 + gUnknown_02038696[p] * 22, - 251 + gUnknown_083CA310[gUnknown_02038696[p]][0] * 8, - gUnknown_083CA310[gUnknown_02038696[p]][1] * 8, + 592 + gContestantTurnOrder[contestant] * 22, + 251 + gUnknown_083CA310[gContestantTurnOrder[contestant]][0] * 8, + gUnknown_083CA310[gContestantTurnOrder[contestant]][1] * 8, 1); } else { - StringCopy(str, gContestMons[p].trainerName); + StringCopy(str, gContestMons[contestant].trainerName); Text_InitWindowAndPrintText( - &gUnknown_03004210, + &gWindowTemplate_Contest_MoveDescription, gDisplayedStringBattle, - 592 + gUnknown_02038696[p] * 22, - gUnknown_083CA310[gUnknown_02038696[p]][0], - gUnknown_083CA310[gUnknown_02038696[p]][1]); + 592 + gContestantTurnOrder[contestant] * 22, + gUnknown_083CA310[gContestantTurnOrder[contestant]][0], + gUnknown_083CA310[gContestantTurnOrder[contestant]][1]); } } -void sub_80AE6CC(u8 a) +void PrintContestantMonName(u8 contestant) { - sub_80AE6E4(a, a + 10); + PrintContestantMonNameWithColor(contestant, contestant + 10); } -void sub_80AE6E4(u8 a, u8 b) +void PrintContestantMonNameWithColor(u8 contestant, u8 color) { u8 *str = gDisplayedStringBattle; str[0] = EXT_CTRL_CODE_BEGIN; - str[1] = 6; + str[1] = EXT_CTRL_CODE_SIZE; str[2] = 4; str += 3; - str = sub_80AE598(str, gContestMons[a].nickname, b); + str = Contest_CopyStringWithColor(str, gContestMons[contestant].nickname, color); *str = EOS; Text_InitWindow8004D04( - &gUnknown_03004210, + &gWindowTemplate_Contest_MoveDescription, gDisplayedStringBattle, - 512 + gUnknown_02038696[a] * 20, - 253 + gUnknown_083CA308[gUnknown_02038696[a]][0] * 8, - gUnknown_083CA308[gUnknown_02038696[a]][1] * 8, + 512 + gContestantTurnOrder[contestant] * 20, + 253 + gUnknown_083CA308[gContestantTurnOrder[contestant]][0] * 8, + gUnknown_083CA308[gContestantTurnOrder[contestant]][1] * 8, 1); } -u16 InitContestMonConditionI(u8 a, u8 b) +u16 CalculateContestantRound1Points(u8 who, u8 contestCategory) { - u8 r5; - u8 r4; - u8 r3; + u8 statMain; + u8 statSub1; + u8 statSub2; - switch (b) + switch (contestCategory) { case CONTEST_CATEGORY_COOL: - r5 = gContestMons[a].cool; - r4 = gContestMons[a].tough; - r3 = gContestMons[a].beauty; + statMain = gContestMons[who].cool; + statSub1 = gContestMons[who].tough; + statSub2 = gContestMons[who].beauty; break; case CONTEST_CATEGORY_BEAUTY: - r5 = gContestMons[a].beauty; - r4 = gContestMons[a].cool; - r3 = gContestMons[a].cute; + statMain = gContestMons[who].beauty; + statSub1 = gContestMons[who].cool; + statSub2 = gContestMons[who].cute; break; case CONTEST_CATEGORY_CUTE: - r5 = gContestMons[a].cute; - r4 = gContestMons[a].beauty; - r3 = gContestMons[a].smart; + statMain = gContestMons[who].cute; + statSub1 = gContestMons[who].beauty; + statSub2 = gContestMons[who].smart; break; case CONTEST_CATEGORY_SMART: - r5 = gContestMons[a].smart; - r4 = gContestMons[a].cute; - r3 = gContestMons[a].tough; + statMain = gContestMons[who].smart; + statSub1 = gContestMons[who].cute; + statSub2 = gContestMons[who].tough; break; case CONTEST_CATEGORY_TOUGH: default: - r5 = gContestMons[a].tough; - r4 = gContestMons[a].smart; - r3 = gContestMons[a].cool; + statMain = gContestMons[who].tough; + statSub1 = gContestMons[who].smart; + statSub2 = gContestMons[who].cool; break; } - return r5 + (r4 + r3 + gContestMons[a].sheen) / 2; + return statMain + (statSub1 + statSub2 + gContestMons[who].sheen) / 2; } -void InitContestMonConditions(u8 a) +void CalculateRound1Points(u8 contestCategory) { u8 i; for (i = 0; i < 4; i++) - gContestMonRound1Points[i] = InitContestMonConditionI(i, a); + gContestMonRound1Points[i] = CalculateContestantRound1Points(i, contestCategory); } u8 CreateJudgeSprite(void) { u8 spriteId; - LoadCompressedObjectPic(&gUnknown_083CA4BC); + LoadCompressedObjectPic(&sSpriteSheet_Judge); LoadCompressedPalette(gContest2Pal, 0x110, 32); - spriteId = CreateSprite(&gSpriteTemplate_83CA4A4, 112, 36, 30); + spriteId = CreateSprite(&sSpriteTemplate_Judge, 112, 36, 30); gSprites[spriteId].oam.paletteNum = 1; gSprites[spriteId].callback = SpriteCallbackDummy; return spriteId; } -u8 sub_80AE8B4(void) +u8 CreateJudgeSpeechBubbleSprite(void) { u8 spriteId; - LoadCompressedObjectPic(&gUnknown_083CA4C4); - LoadCompressedObjectPalette(&gUnknown_083CA4CC); - spriteId = CreateSprite(&gUnknown_083CA4D4, 96, 10, 29); + LoadCompressedObjectPic(&sSpriteSheet_JudgeSymbols); + LoadCompressedObjectPalette(&sSpritePalette_JudgeSymbols); + spriteId = CreateSprite(&sSpriteTemplate_JudgeSpeechBubble, 96, 10, 29); gSprites[spriteId].invisible = TRUE; gSprites[spriteId].data[0] = gSprites[spriteId].oam.tileNum; return spriteId; @@ -2472,7 +2472,7 @@ u8 unref_sub_80AE908(void) return spriteId; } -u8 sub_80AE9FC(u16 species, u32 otId, u32 personality) +u8 CreateContestantSprite(u16 species, u32 otId, u32 personality) { const u8 *lzPaletteData; u8 spriteId; @@ -2512,18 +2512,18 @@ bool8 IsSpeciesNotUnown(u16 species) return TRUE; } -void sub_80AEB30(void) +void SwapMoveDescAndContestTilemaps(void) { - sub_80AEB4C((void *)(VRAM + 0xC000)); - sub_80AEB4C((void *)(VRAM + 0xE000)); + __copy_tilemap((void *)(VRAM + 0xC000)); + __copy_tilemap((void *)(VRAM + 0xE000)); } -void sub_80AEB4C(void *a) +void __copy_tilemap(void *a) { DmaCopy16Defvars(3, a, (u8 *)a + 0x500, 0x280); } -u16 sub_80AEB68(u16 move, u8 b) +u16 GetMoveEffectSymbolTileOffset(u16 move, u8 b) { u16 var; @@ -2546,14 +2546,14 @@ u16 sub_80AEB68(u16 move, u8 b) return var; } -void sub_80AEBEC(u16 a) +void PrintContestMoveDescription(u16 a) { u8 category; u16 categoryTile; s32 i; u8 numHearts; - Text_FillWindowRectDefPalette(&gUnknown_03004210, 0, 11, 31, 16, 34); + Text_FillWindowRectDefPalette(&gWindowTemplate_Contest_MoveDescription, 0, 11, 31, 16, 34); category = gContestMoves[a].contestCategory; if (category == CONTEST_CATEGORY_COOL) @@ -2582,9 +2582,9 @@ void sub_80AEBEC(u16 a) numHearts = 8; for (i = 0; i < 8; i++) { - if (i < numHearts) + if (i < numHearts) // Empty hearts *(u16 *)(VRAM + 0xC7EA + i * 2) = 0x5012; - else + else // Filled-in hearts *(u16 *)(VRAM + 0xC7EA + i * 2) = 0x5035; } @@ -2596,29 +2596,29 @@ void sub_80AEBEC(u16 a) numHearts = 8; for (i = 0; i < 8; i++) { - if (i < numHearts) + if (i < numHearts) // Empty hearts *(u16 *)(VRAM + 0xC82A + i * 2) = 0x5014; - else + else // Filled-in hearts *(u16 *)(VRAM + 0xC82A + i * 2) = 0x5036; } - Text_InitWindowAndPrintText(&gUnknown_03004210, gContestEffectStrings[gContestMoves[a].effect], 868, 11, 35); - Text_InitWindowAndPrintText(&gUnknown_03004210, gUnknown_083CC5A2, 866, 16, 31); + Text_InitWindowAndPrintText(&gWindowTemplate_Contest_MoveDescription, gContestEffectStrings[gContestMoves[a].effect], 868, 11, 35); + Text_InitWindowAndPrintText(&gWindowTemplate_Contest_MoveDescription, gText_Slash, 866, 16, 31); } void sub_80AED58(void) { - Text_FillWindowRectDefPalette(&gUnknown_03004210, 0, 11, 35, 28, 40); + Text_FillWindowRectDefPalette(&gWindowTemplate_Contest_MoveDescription, 0, 11, 35, 28, 40); } // unused -void sub_80AED7C(u16 move, u8 b) +void DrawMoveEffectSymbol(u16 move, u8 b) { - u8 r5 = gUnknown_02038696[b] * 5 + 2; + u8 r5 = gContestantTurnOrder[b] * 5 + 2; if (!Contest_IsMonsTurnDisabled(b) && move != MOVE_NONE) { - u16 tile = sub_80AEB68(move, b); + u16 tile = GetMoveEffectSymbolTileOffset(move, b); *(u16 *)(VRAM + 0xC028 + r5 * 64) = tile; *(u16 *)(VRAM + 0xC028 + r5 * 64 + 2) = tile + 1; @@ -2637,20 +2637,20 @@ void sub_80AED7C(u16 move, u8 b) } } -void unref_sub_80AEE20(void) +void DrawMoveEffectSymbols(void) { u8 i; for (i = 0; i < 4; i++) - sub_80AED7C(sContestantStatus[i].currMove, i); + DrawMoveEffectSymbol(sContestantStatus[i].currMove, i); } -u16 sub_80AEE4C(u8 unused) +u16 GetStarTileOffset(u8 unused) { return 0x2034; } -bool8 sub_80AEE54(u8 a, u8 b) +bool8 UpdateConditionStars(u8 a, u8 b) { u8 r9; u16 r8; @@ -2658,10 +2658,10 @@ bool8 sub_80AEE54(u8 a, u8 b) if (sContestantStatus[a].conditionMod == 0) return FALSE; - r9 = gUnknown_02038696[a] * 5 + 2; + r9 = gContestantTurnOrder[a] * 5 + 2; if (sContestantStatus[a].conditionMod == 1) { - r8 = sub_80AEE4C(a); + r8 = GetStarTileOffset(a); r4 = 0; while (sContestantStatus[a].condition / 10 > r4) { @@ -2674,7 +2674,7 @@ bool8 sub_80AEE54(u8 a, u8 b) sContestantStatus[a].conditionMod = 0; } } - else + else // CONDITION_LOSE { r8 = 0; r4 = 3; @@ -2692,15 +2692,15 @@ bool8 sub_80AEE54(u8 a, u8 b) return TRUE; } -void sub_80AEF50(void) +void DrawConditionStars(void) { s32 i; s32 r4; for (i = 0; i < 4; i++) { - u8 r8 = gUnknown_02038696[i] * 5 + 2; - u16 r6 = sub_80AEE4C(i); + u8 r8 = gContestantTurnOrder[i] * 5 + 2; + u16 r6 = GetStarTileOffset(i); r4 = 0; while (r4 < sContestantStatus[i].condition / 10) @@ -2717,25 +2717,25 @@ void sub_80AEF50(void) } } -u16 sub_80AEFE8(u8 unused, u8 b) +u16 GetStatusSymbolTileOffset(u8 unused, u8 b) { u16 var = 0; switch (b) { - case 0: + case 0: // For resistant var = 0x80; break; - case 1: + case 1: // For nervous var = 0x84; break; - case 2: + case 2: // For turn skipped var = 0x86; break; - case 3: + case 3: // For jammed/unnerved var = 0x88; break; - case 4: + case 4: // Never used var = 0x82; break; } @@ -2743,18 +2743,18 @@ u16 sub_80AEFE8(u8 unused, u8 b) return var; } -bool8 sub_80AF038(u8 a) +bool8 DrawStatusSymbol(u8 a) { bool8 r5 = TRUE; u16 r4 = 0; - u8 r6 = gUnknown_02038696[a] * 5 + 2; + u8 r6 = gContestantTurnOrder[a] * 5 + 2; if (sContestantStatus[a].resistant != 0 || sContestantStatus[a].immune != 0 || sContestantStatus[a].jamSafetyCount != 0 || sContestantStatus[a].jamReduction != 0) - r4 = sub_80AEFE8(a, 0); + r4 = GetStatusSymbolTileOffset(a, 0); else if (sContestantStatus[a].nervous) - r4 = sub_80AEFE8(a, 1); + r4 = GetStatusSymbolTileOffset(a, 1); else if (sContestantStatus[a].numTurnsSkipped != 0 || sContestantStatus[a].noMoreTurns) - r4 = sub_80AEFE8(a, 2); + r4 = GetStatusSymbolTileOffset(a, 2); else r5 = FALSE; if (r5) @@ -2774,17 +2774,17 @@ bool8 sub_80AF038(u8 a) return r5; } -void sub_80AF120(void) +void DrawStatusSymbols(void) { s32 i; for (i = 0; i < 4; i++) - sub_80AF038(i); + DrawStatusSymbol(i); } -void sub_80AF138(void) +void ContestClearGeneralTextWindow(void) { - Text_FillWindowRectDefPalette(&gUnknown_03004210, 0, 1, 15, 17, 18); + Text_FillWindowRectDefPalette(&gWindowTemplate_Contest_MoveDescription, 0, 1, 15, 17, 18); } u16 GetChosenMove(u8 a) @@ -2822,12 +2822,13 @@ void sub_80AF1E4(u8 a, u8 b) else r3 = 14; if (sContestantStatus[a].currMove == MOVE_NONE) - sub_80AE598(gDisplayedStringBattle, gUnknownText_MissedTurn, r3); + Contest_CopyStringWithColor(gDisplayedStringBattle, gUnknownText_MissedTurn, r3); else - sub_80AE598(gDisplayedStringBattle, gMoveNames[sContestantStatus[a].currMove], r3); + Contest_CopyStringWithColor( + gDisplayedStringBattle, gMoveNames[sContestantStatus[a].currMove], r3); sub_80AF2A0(a); Text_InitWindowAndPrintText( - &gUnknown_03004210, + &gWindowTemplate_Contest_MoveDescription, gDisplayedStringBattle, 696 + a * 20, gUnknown_083CA318[a][0], @@ -2845,7 +2846,7 @@ void unref_sub_80AF280(u8 a) void sub_80AF2A0(u8 a) { Text_FillWindowRectDefPalette( - &gUnknown_03004210, + &gWindowTemplate_Contest_MoveDescription, 0, gUnknown_083CA318[a][0], gUnknown_083CA318[a][1], @@ -3018,42 +3019,40 @@ bool8 unref_sub_80AF5D0(u8 a, u8 b) return FALSE; } -void sub_80AF630(u8 a) +void CalculateTotalPointsForContestant(u8 a) { - gUnknown_02038688[a] = sub_80AF688(a); - gContestMonTotalPoints[a] = gContestMonRound1Points[a] + gUnknown_02038688[a]; + gContestMonRound2Points[a] = GetContestantRound2Points(a); + gContestMonTotalPoints[a] = gContestMonRound1Points[a] + gContestMonRound2Points[a]; } -void sub_80AF668(void) +void CalculateFinalScores(void) { u8 i; for (i = 0; i < 4; i++) - sub_80AF630(i); + CalculateTotalPointsForContestant(i); DetermineFinalStandings(); } -s16 sub_80AF688(u8 a) +s16 GetContestantRound2Points(u8 a) { - return gUnknown_02038680[a] * 2; + return gContestMonAppealPointTotals[a] * 2; } -// Determines standing order? void DetermineFinalStandings(void) { - u16 sp0[4] = {0}; - struct UnknownContestStruct6 sp8[4]; + u16 randomOrdering[4] = {0}; + struct ContestFinalStandings standings[4]; s32 i; - s32 j; + // Seed random order in case of ties for (i = 0; i < 4; i++) { - s32 r2; - - sp0[i] = Random(); - for (r2 = 0; r2 < i; r2++) + s32 j; + randomOrdering[i] = Random(); + for (j = 0; j < i; j++) { - if (sp0[i] == sp0[r2]) + if (randomOrdering[i] == randomOrdering[j]) { i--; break; @@ -3063,66 +3062,70 @@ void DetermineFinalStandings(void) for (i = 0; i < 4; i++) { - sp8[i].unk0 = gContestMonTotalPoints[i]; - sp8[i].unk4 = gContestMonRound1Points[i]; - sp8[i].unk8 = sp0[i]; - sp8[i].unkC = i; + standings[i].totalPoints = gContestMonTotalPoints[i]; + standings[i].round1Points = gContestMonRound1Points[i]; + standings[i].random = randomOrdering[i]; + standings[i].contestant = i; } + // Rank contestants for (i = 0; i < 3; i++) { + s32 j; for (j = 3; j > i; j--) { - if (sub_80AF828(j - 1, j, sp8)) + if (DidContestantPlaceHigher(j - 1, j, standings)) { - struct UnknownContestStruct6 temp; - - temp.unk0 = sp8[j - 1].unk0; - temp.unk4 = sp8[j - 1].unk4; - temp.unk8 = sp8[j - 1].unk8; - temp.unkC = sp8[j - 1].unkC; - - sp8[j - 1].unk0 = sp8[j].unk0; - sp8[j - 1].unk4 = sp8[j].unk4; - sp8[j - 1].unk8 = sp8[j].unk8; - sp8[j - 1].unkC = sp8[j].unkC; - - sp8[j].unk0 = temp.unk0; - sp8[j].unk4 = temp.unk4; - sp8[j].unk8 = temp.unk8; - sp8[j].unkC = temp.unkC; + // Swap contestants in array + struct ContestFinalStandings temp; + + temp.totalPoints = standings[j - 1].totalPoints; + temp.round1Points = standings[j - 1].round1Points; + temp.random = standings[j - 1].random; + temp.contestant = standings[j - 1].contestant; + + standings[j - 1].totalPoints = standings[j].totalPoints; + standings[j - 1].round1Points = standings[j].round1Points; + standings[j - 1].random = standings[j].random; + standings[j - 1].contestant = standings[j].contestant; + + standings[j].totalPoints = temp.totalPoints; + standings[j].round1Points = temp.round1Points; + standings[j].random = temp.random; + standings[j].contestant = temp.contestant; } } } + // Assign placements. i is the placing (0 is 1st, 1 is 2nd...) for (i = 0; i < 4; i++) - gContestFinalStandings[sp8[i].unkC] = i; + gContestFinalStandings[standings[i].contestant] = i; } -bool8 sub_80AF828(s32 a, s32 b, struct UnknownContestStruct6 *c) +bool8 DidContestantPlaceHigher(s32 a, s32 b, struct ContestFinalStandings *c) { bool8 retVal; - if (c[a].unk0 < c[b].unk0) + if (c[a].totalPoints < c[b].totalPoints) retVal = TRUE; - else if (c[a].unk0 > c[b].unk0) + else if (c[a].totalPoints > c[b].totalPoints) retVal = FALSE; - else if (c[a].unk4 < c[b].unk4) + else if (c[a].round1Points < c[b].round1Points) retVal = TRUE; - else if (c[a].unk4 > c[b].unk4) + else if (c[a].round1Points > c[b].round1Points) retVal = FALSE; - else if (c[a].unk8 < c[b].unk8) + else if (c[a].random < c[b].random) retVal = TRUE; else retVal = FALSE; return retVal; } -void sub_80AF860(void) +void ContestPrintLinkStandby(void) { gBattle_BG0_Y = 0; gBattle_BG2_Y = 0; - sub_80AF138(); + ContestClearGeneralTextWindow(); Text_InitWindowAndPrintText(&gMenuWindow, gUnknownText_LinkStandbyAndWinner, 776, 1, 15); } @@ -3359,7 +3362,7 @@ void sub_80AFC74(u8 taskId) if (r5 > 7) r5 += 24; // Seriously, a 2-byte CpuFill? Why? - CpuFill16(r6, (void *)(VRAM + 0xC000 + (0x56 + r5 + gUnknown_02038696[r7] * 160) * 2), 2); + CpuFill16(r6, (void *)(VRAM + 0xC000 + (0x56 + r5 + gContestantTurnOrder[r7] * 160) * 2), 2); if (r1 > 0) { PlaySE(SE_CONTEST_HEART); @@ -3382,7 +3385,7 @@ void sub_80AFE30(void) LoadSpriteSheet(&gUnknown_083CA350); for (i = 0; i < 4; i++) { - u8 y = gUnknown_083CA338[gUnknown_02038696[i]]; + u8 y = gUnknown_083CA338[gContestantTurnOrder[i]]; shared19338[i].unk0 = CreateSprite(&gSpriteTemplate_83CA3AC, 180, y, 1); } @@ -3451,7 +3454,7 @@ void sub_80AFFA0(void) s32 i; for (i = 0; i < 4; i++) - gSprites[shared19338[i].unk0].pos1.y = gUnknown_083CA338[gUnknown_02038696[i]]; + gSprites[shared19338[i].unk0].pos1.y = gUnknown_083CA338[gContestantTurnOrder[i]]; } void sub_80AFFE0(bool8 a) @@ -3460,7 +3463,7 @@ void sub_80AFFE0(bool8 a) for (i = 0; i < 4; i++) { - if (gUnknown_02038696[i] > 1) + if (gContestantTurnOrder[i] > 1) { if (!a) gSprites[shared19338[i].unk0].pos1.x = 180; @@ -3480,7 +3483,7 @@ void sub_80B0034(void) LoadCompressedObjectPic(&gUnknown_083CA3C4[i]); shared19338[i].unk1 = CreateSprite( &gSpriteTemplate_83CA3F4[i], - 204, gUnknown_083CA33C[gUnknown_02038696[i]], + 204, gUnknown_083CA33C[gContestantTurnOrder[i]], 0); SetSubspriteTables(&gSprites[shared19338[i].unk1], gSubspriteTables_83CA464); gSprites[shared19338[i].unk1].invisible = TRUE; @@ -3757,7 +3760,7 @@ void sub_80B0748(u8 taskId) for (i = 0; i < 4; i++) { //#define r4 r4_2 - r4 = gUnknown_02038696[i]; + r4 = gContestantTurnOrder[i]; r1 = r4 * 4; r7 = gTasks[taskId].data[r1 + 0]; @@ -3895,7 +3898,7 @@ void sub_80B0748(u8 taskId) lsls r0, 3\n\ str r0, [sp, 0xC]\n\ _080B0774:\n\ - ldr r0, _080B07F8 @ =gUnknown_02038696\n\ + ldr r0, _080B07F8 @ =gContestantTurnOrder\n\ ldr r3, [sp, 0x4]\n\ adds r0, r3, r0\n\ ldrb r4, [r0]\n\ @@ -3962,7 +3965,7 @@ _080B07D2:\n\ b _080B08EA\n\ .align 2, 0\n\ _080B07F4: .4byte gTasks\n\ -_080B07F8: .4byte gUnknown_02038696\n\ +_080B07F8: .4byte gContestantTurnOrder\n\ _080B07FC: .4byte 0x00007fff\n\ _080B0800:\n\ adds r0, r5, 0x2\n\ @@ -4194,7 +4197,7 @@ extern const struct SpriteTemplate gSpriteTemplate_83CC53C[]; u8 sub_80B09E4(u8 a) { - u8 r5 = gUnknown_02038696[a] * 40 + 32; + u8 r5 = gContestantTurnOrder[a] * 40 + 32; u8 r8; u8 r6; volatile u8 zero; @@ -4205,8 +4208,8 @@ u8 sub_80B09E4(u8 a) r6 = CreateSprite(&gSpriteTemplate_83CC53C[a], 248, r5, 29); gSprites[r6].oam.tileNum += 64; - CopySpriteTiles(0, 3, (void *)VRAM, (u16 *)(VRAM + 0xE000 + gUnknown_02038696[a] * 5 * 64 + 0x26), (u8 *)(VRAM + 0x10000 + gSprites[r8].oam.tileNum * 32)); - CopySpriteTiles(0, 3, (void *)VRAM, (u16 *)(VRAM + 0xE000 + gUnknown_02038696[a] * 5 * 64 + 0x36), (u8 *)(VRAM + 0x10000 + gSprites[r6].oam.tileNum * 32)); + CopySpriteTiles(0, 3, (void *)VRAM, (u16 *)(VRAM + 0xE000 + gContestantTurnOrder[a] * 5 * 64 + 0x26), (u8 *)(VRAM + 0x10000 + gSprites[r8].oam.tileNum * 32)); + CopySpriteTiles(0, 3, (void *)VRAM, (u16 *)(VRAM + 0xE000 + gContestantTurnOrder[a] * 5 * 64 + 0x36), (u8 *)(VRAM + 0x10000 + gSprites[r6].oam.tileNum * 32)); DmaFill32Defvars(3, 0, (void *)(VRAM + 0x10000 + (0x28 + gSprites[r8].oam.tileNum) * 32), 0x300); @@ -4300,7 +4303,7 @@ void unref_sub_80B0CF4(void) for (i = 0; i < 4; i++) { Text_FillWindowRectDefPalette( - &gUnknown_03004210, + &gWindowTemplate_Contest_MoveDescription, 0, gUnknown_083CA308[i][0], gUnknown_083CA308[i][1], @@ -4308,7 +4311,7 @@ void unref_sub_80B0CF4(void) gUnknown_083CA310[i][1] + 1); } sub_80AE514(); - sub_80AEB30(); + SwapMoveDescAndContestTilemaps(); } else { @@ -4329,7 +4332,7 @@ void sub_80B0D7C(void) for (i = 0; i < 4; i++) { Text_FillWindowRectDefPalette( - &gUnknown_03004210, + &gWindowTemplate_Contest_MoveDescription, 0, gUnknown_083CA308[i][0], gUnknown_083CA308[i][1], @@ -4347,11 +4350,11 @@ void sub_80B0D7C(void) } ConvertIntToDecimalStringN(sp8 + r5, r2, 0, 4); Text_InitWindowAndPrintText( - &gUnknown_03004210, + &gWindowTemplate_Contest_MoveDescription, sp8, - 592 + gUnknown_02038696[i] * 22, - gUnknown_083CA310[gUnknown_02038696[i]][0], - gUnknown_083CA310[gUnknown_02038696[i]][1]); + 592 + gContestantTurnOrder[i] * 22, + gUnknown_083CA310[gContestantTurnOrder[i]][0], + gUnknown_083CA310[gContestantTurnOrder[i]][1]); r5 = 0; } for (i = 0; i < 4; i++) @@ -4365,14 +4368,14 @@ void sub_80B0D7C(void) } ConvertIntToDecimalStringN(sp8 + r5, r2, 0, 4); Text_InitWindowAndPrintText( - &gUnknown_03004210, + &gWindowTemplate_Contest_MoveDescription, sp8, - 512 + gUnknown_02038696[i] * 20, - gUnknown_083CA308[gUnknown_02038696[i]][0], - gUnknown_083CA308[gUnknown_02038696[i]][1]); + 512 + gContestantTurnOrder[i] * 20, + gUnknown_083CA308[gContestantTurnOrder[i]][0], + gUnknown_083CA308[gContestantTurnOrder[i]][1]); r5 = 0; } - sub_80AEB30(); + SwapMoveDescAndContestTilemaps(); } } @@ -4422,24 +4425,24 @@ void SortContestants(u8 a) { for (i = 0; i < 4; i++) { - gUnknown_02038696[i] = i; + gContestantTurnOrder[i] = i; for (r4 = 0; r4 < i; r4++) { - if (gContestMonRound1Points[gUnknown_02038696[r4]] < gContestMonRound1Points[i] - || (gContestMonRound1Points[gUnknown_02038696[r4]] == gContestMonRound1Points[i] && sp4[gUnknown_02038696[r4]] < sp4[i])) + if (gContestMonRound1Points[gContestantTurnOrder[r4]] < gContestMonRound1Points[i] + || (gContestMonRound1Points[gContestantTurnOrder[r4]] == gContestMonRound1Points[i] && sp4[gContestantTurnOrder[r4]] < sp4[i])) { for (r2 = i; r2 > r4; r2--) - gUnknown_02038696[r2] = gUnknown_02038696[r2 - 1]; - gUnknown_02038696[r4] = i; + gContestantTurnOrder[r2] = gContestantTurnOrder[r2 - 1]; + gContestantTurnOrder[r4] = i; break; } } if (r4 == i) - gUnknown_02038696[i] = i; + gContestantTurnOrder[i] = i; } - memcpy(sp0, gUnknown_02038696, sizeof(sp0)); + memcpy(sp0, gContestantTurnOrder, sizeof(sp0)); for (i = 0; i < 4; i++) - gUnknown_02038696[sp0[i]] = i; + gContestantTurnOrder[sp0[i]] = i; } else { @@ -4454,7 +4457,7 @@ void SortContestants(u8 a) if (*ptr == 0xFF) { *ptr = i; - gUnknown_02038696[i] = r2; + gContestantTurnOrder[i] = r2; break; } r2++; @@ -4465,13 +4468,13 @@ void SortContestants(u8 a) for (r4 = 3; r4 > i; r4--) { if (sContestantStatus[r4 - 1].unkB_0 == sContestantStatus[r4].unkB_0 - && gUnknown_02038696[r4 - 1] < gUnknown_02038696[r4] + && gContestantTurnOrder[r4 - 1] < gContestantTurnOrder[r4] && sp4[r4 - 1] < sp4[r4]) { - u8 temp = gUnknown_02038696[r4]; + u8 temp = gContestantTurnOrder[r4]; - gUnknown_02038696[r4] = gUnknown_02038696[r4 - 1]; - gUnknown_02038696[r4 - 1] = temp; + gContestantTurnOrder[r4] = gContestantTurnOrder[r4 - 1]; + gContestantTurnOrder[r4 - 1] = temp; } } } @@ -4484,8 +4487,8 @@ void sub_80B1118(void) for (i = 0; i < 4; i++) { - //LoadPalette(shared18000.unk18004[5 + i], (gUnknown_02038696[i] + 5) * 16, 32); - LoadPalette(shared18004 + (i + 5) * 16, (gUnknown_02038696[i] + 5) * 16, 32); + //LoadPalette(shared18000.unk18004[5 + i], (gContestantTurnOrder[i] + 5) * 16, 32); + LoadPalette(shared18004 + (i + 5) * 16, (gContestantTurnOrder[i] + 5) * 16, 32); } sub_80AE514(); } @@ -4636,7 +4639,7 @@ void sub_80B146C(u8 contestant, u8 stringId) else StringCopy(gStringVar3, gText_Contest_Fear); StringExpandPlaceholders(gStringVar4, gUnknown_083CC188[stringId]); - sub_80AF138(); + ContestClearGeneralTextWindow(); Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15); } @@ -4657,7 +4660,7 @@ void sub_80B159C(void) for (i = 0; i < 4; i++) { - sp0[i] = gUnknown_02038696[i]; + sp0[i] = gContestantTurnOrder[i]; sp4[i] = 0; } @@ -4686,7 +4689,7 @@ void sub_80B159C(void) for (; j < 4; j++) { if (sp4[j] == 0 && sContestantStatus[j].nextTurnOrder == 0xFF - && gUnknown_02038696[r12] > gUnknown_02038696[j]) + && gContestantTurnOrder[r12] > gContestantTurnOrder[j]) r12 = j; } sp0[r12] = i; @@ -4699,7 +4702,7 @@ void sub_80B159C(void) shared192D0.turnOrder[i] = sp0[i]; sContestantStatus[i].nextTurnOrder = 0xFF; sContestantStatus[i].turnOrderMod = 0; - gUnknown_02038696[i] = sp0[i]; + gContestantTurnOrder[i] = sp0[i]; } } @@ -4784,7 +4787,7 @@ void unref_sub_80B19D0(void) { u8 str[20]; StringCopy(str, gUnknown_083CC2EC); - Text_InitWindowAndPrintText(&gUnknown_03004210, str, 680, 0, 0); + Text_InitWindowAndPrintText(&gWindowTemplate_Contest_MoveDescription, str, 680, 0, 0); } s8 Contest_GetMoveExcitement(u16 move) @@ -5047,7 +5050,7 @@ void sub_80B1FD0(bool8 a) GetTurnOrderNumberGfx(i), (void *)(VRAM + 0x10000 + (gSprites[shared19338[i].unk1].oam.tileNum + 5) * 32), 64); - gSprites[shared19338[i].unk1].pos1.y = gUnknown_083CA33C[gUnknown_02038696[i]]; + gSprites[shared19338[i].unk1].pos1.y = gUnknown_083CA33C[gContestantTurnOrder[i]]; gSprites[shared19338[i].unk1].invisible = FALSE; } else @@ -5073,8 +5076,8 @@ void sub_80B20C4(void) { if (shared192D0.unnervedPokes[i] != 0 && !Contest_IsMonsTurnDisabled(i)) { - u8 r4 = gUnknown_02038696[i] * 5 + 2; - u16 r0 = sub_80AEFE8(i, 3); + u8 r4 = gContestantTurnOrder[i] * 5 + 2; + u16 r0 = GetStatusSymbolTileOffset(i, 3); *(u16 *)(VRAM + 0xC000 + r4 * 64 + 0x28) = r0; *(u16 *)(VRAM + 0xC000 + r4 * 64 + 0x2A) = r0 + 1; @@ -5173,10 +5176,10 @@ void sub_80B2400(u8 taskId) { case 0: for (i = 0; i < 4; i++) - sContest.unk19218[i] = gUnknown_02038696[i]; + sContest.unk19218[i] = gContestantTurnOrder[i]; sub_80AFA5C(); sub_80B0588(); - sub_80AEF50(); + DrawConditionStars(); sub_80B1118(); sub_80B1FD0(TRUE); sub_80AFFA0(); @@ -5192,7 +5195,7 @@ void sub_80B2400(u8 taskId) sub_80AF438(); taskId2 = CreateTask(sub_80C8C80, 0); SetTaskFuncWithFollowupFunc(taskId2, sub_80C8C80, sub_80AD8DC); - sub_80AF860(); + ContestPrintLinkStandby(); gTasks[taskId].data[0] = 2; } else @@ -5206,8 +5209,8 @@ void sub_80B2400(u8 taskId) gTasks[taskId].data[0] = 3; break; case 3: - sub_80AF120(); - sub_80AEB30(); + DrawStatusSymbols(); + SwapMoveDescAndContestTilemaps(); gTasks[taskId].data[0] = 0; gTasks[taskId].func = sub_80B253C; break; @@ -5451,7 +5454,7 @@ bool8 Contest_SaveWinner(u8 a) } if (a != 0xFE) { - u8 r4 = sub_80B2C4C(a, 1); + u8 r4 = GetContestWinnerSaveIdx(a, 1); gSaveBlock1.contestWinners[r4].personality = gContestMons[i].personality; gSaveBlock1.contestWinners[r4].species = gContestMons[i].species; @@ -5478,7 +5481,7 @@ bool8 Contest_SaveWinner(u8 a) return TRUE; } -u8 sub_80B2C4C(u8 a, u8 b) +u8 GetContestWinnerSaveIdx(u8 a, u8 b) { s32 i; |