diff options
author | GriffinR <griffin.richards@comcast.net> | 2019-11-10 21:54:00 -0500 |
---|---|---|
committer | huderlem <huderlem@gmail.com> | 2019-11-13 18:20:55 -0600 |
commit | ef8370566f14c22b9927db09b8ff69a98049c796 (patch) | |
tree | f0b6bc3021d2d0b5927346eff282f0f12ff16960 /src | |
parent | af83b41dd19a49121f23d188015959d8072e4d7f (diff) |
Document Contest scripts
Diffstat (limited to 'src')
-rw-r--r-- | src/battle_tower.c | 5 | ||||
-rw-r--r-- | src/cable_club.c | 8 | ||||
-rw-r--r-- | src/contest.c | 74 | ||||
-rw-r--r-- | src/contest_link_80F57C4.c | 130 | ||||
-rw-r--r-- | src/data/union_room.h | 236 | ||||
-rw-r--r-- | src/field_screen_effect.c | 2 | ||||
-rw-r--r-- | src/field_specials.c | 4 | ||||
-rw-r--r-- | src/post_battle_event_funcs.c | 5 | ||||
-rw-r--r-- | src/scrcmd.c | 8 | ||||
-rwxr-xr-x | src/script_pokemon_util_80F87D8.c | 98 | ||||
-rw-r--r-- | src/tv.c | 2 | ||||
-rw-r--r-- | src/union_room.c | 13 |
12 files changed, 314 insertions, 271 deletions
diff --git a/src/battle_tower.c b/src/battle_tower.c index 7b9842c48..a6e816b7d 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -30,6 +30,7 @@ #include "constants/moves.h" #include "constants/species.h" #include "constants/easy_chat.h" +#include "constants/tv.h" extern const u8 MossdeepCity_SpaceCenter_2F_EventScript_MaxieTrainer[]; extern const u8 MossdeepCity_SpaceCenter_2F_EventScript_TabithaTrainer[]; @@ -3026,9 +3027,9 @@ static void AwardBattleTowerRibbons(void) ribbons[i] = prevBest; } } - if (ribbons[0].count > 4) + if (ribbons[0].count > NUM_CUTIES_RIBBONS) { - sub_80EE4DC(&gSaveBlock1Ptr->playerParty[ribbons[0].partyIndex], ribbonType); + TryPutSpotTheCutiesOnAir(&gSaveBlock1Ptr->playerParty[ribbons[0].partyIndex], ribbonType); } } } diff --git a/src/cable_club.c b/src/cable_club.c index 26239eb50..ab61d65a9 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -685,16 +685,16 @@ void TryBerryBlenderLinkup(void) sub_80B236C(2, 4); } -void sub_80B3000(void) +void TryContestGModeLinkup(void) { - gLinkType = LINKTYPE_0x6601; + gLinkType = LINKTYPE_CONTEST_GMODE; gBattleTypeFlags = 0; sub_80B236C(4, 4); } -void sub_80B3028(void) +void TryContestEModeLinkup(void) { - gLinkType = LINKTYPE_0x6602; + gLinkType = LINKTYPE_CONTEST_EMODE; gBattleTypeFlags = 0; sub_80B236C(2, 4); } diff --git a/src/contest.c b/src/contest.c index b202fe71e..8191f7a39 100644 --- a/src/contest.c +++ b/src/contest.c @@ -219,15 +219,15 @@ static void sub_80DF9E0(u8 *, s32); static void SwapMoveDescAndContestTilemaps(void); // EWRAM vars. -EWRAM_DATA struct ContestPokemon gContestMons[4] = {0}; -EWRAM_DATA s16 gContestMonConditions[4] = {0}; -EWRAM_DATA s16 gUnknown_02039F08[4] = {0}; -EWRAM_DATA s16 gUnknown_02039F10[4] = {0}; -EWRAM_DATA s16 gUnknown_02039F18[4] = {0}; -EWRAM_DATA u8 gContestFinalStandings[4] = {0}; +EWRAM_DATA struct ContestPokemon gContestMons[CONTESTANT_COUNT] = {0}; +EWRAM_DATA s16 gContestMonConditions[CONTESTANT_COUNT] = {0}; +EWRAM_DATA s16 gUnknown_02039F08[CONTESTANT_COUNT] = {0}; +EWRAM_DATA s16 gUnknown_02039F10[CONTESTANT_COUNT] = {0}; +EWRAM_DATA s16 gUnknown_02039F18[CONTESTANT_COUNT] = {0}; +EWRAM_DATA u8 gContestFinalStandings[CONTESTANT_COUNT] = {0}; EWRAM_DATA u8 gContestMonPartyIndex = 0; EWRAM_DATA u8 gContestPlayerMonIndex = 0; -EWRAM_DATA u8 gContestantTurnOrder[4] = {0}; +EWRAM_DATA u8 gContestantTurnOrder[CONTESTANT_COUNT] = {0}; EWRAM_DATA u8 gLinkContestFlags = 0; // Bit 0: Is a link contest // Bit 1: Link contest uses wireless adapter @@ -1574,7 +1574,7 @@ static void sub_80D8A88(u8 taskId) { s32 i; - for (i = 0; i + gNumLinkContestPlayers < 4; i++) + for (i = 0; i + gNumLinkContestPlayers < CONTESTANT_COUNT; i++) { eContestantStatus[gNumLinkContestPlayers + i].currMove = GetChosenMove(gNumLinkContestPlayers + i); } @@ -1735,7 +1735,7 @@ static void sub_80D8B38(u8 taskId) { if (eContestantStatus[r6].effectStringId2 != CONTEST_STRING_NONE) { - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { if (i != r6 && eContestantStatus[i].effectStringId != CONTEST_STRING_NONE) break; @@ -1838,10 +1838,10 @@ static void sub_80D8B38(u8 taskId) s32 r2 = 0; r3 = 0; - for (i = gTasks[taskId].data[1]; i < 4; i++) + for (i = gTasks[taskId].data[1]; i < CONTESTANT_COUNT; i++) { r3 = 0; - for (r2 = 0; r2 < 4; r2++) + for (r2 = 0; r2 < CONTESTANT_COUNT; r2++) { if (r2 != r6 && gContestantTurnOrder[r2] == i && eContestantStatus[r2].effectStringId != CONTEST_STRING_NONE) @@ -1906,7 +1906,7 @@ static void sub_80D8B38(u8 taskId) } return; case 30: - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { if (gContestantTurnOrder[i] == gTasks[taskId].data[1]) break; @@ -2509,7 +2509,7 @@ static void sub_80DA5E8(u8 taskId) gBattle_BG0_Y = 0; gBattle_BG2_Y = 0; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) gUnknown_02039F10[i] = eContestantStatus[i].pointTotal; sub_80DBD18(); ContestClearGeneralTextWindow(); @@ -2786,9 +2786,9 @@ void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame) opponents[opponentsCount++] = i; } opponents[opponentsCount] = 0xFF; - for (i = 0; i < 4 - gNumLinkContestPlayers; i++) + for (i = 0; i < CONTESTANT_COUNT - gNumLinkContestPlayers; i++) { - u16 rnd = sub_80F903C() % opponentsCount; + u16 rnd = GetContestRand() % opponentsCount; gContestMons[gNumLinkContestPlayers + i] = gContestOpponents[opponents[rnd]]; sub_80DF9D4(gContestMons[gNumLinkContestPlayers + i].trainerName); @@ -2934,7 +2934,7 @@ void sub_80DB09C(u8 contestCategory) { s32 i; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) gContestMonConditions[i] = sub_80DAFE0(i, contestCategory); } @@ -3101,7 +3101,7 @@ static void sub_80DB584(void) { s32 i; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) sub_80DB4E0(eContestantStatus[i].currMove, i); } @@ -3212,7 +3212,7 @@ static void sub_80DB884(void) { s32 i; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) sub_80DB798(i); } @@ -3862,7 +3862,7 @@ static void sub_80DC864(void) { s32 i; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) sub_80DC87C(i); } @@ -4259,7 +4259,7 @@ static void sub_80DD080(u8 contestant) eContestResources8.jam2 = eContestResources8.jam; eContestResources8.contestant = contestant; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { eContestantStatus[i].jam = 0; eContestResources8.unnervedPokes[i] = 0; @@ -4796,7 +4796,7 @@ static void sub_80DE008(bool8 a) { s32 i; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { if (eContestantStatus[i].turnOrderMod != 0 && a) { @@ -5302,7 +5302,7 @@ void ResetContestLinkResults(void) gSaveBlock2Ptr->contestLinkResults[i][j] = 0; } -bool8 sub_80DEDA8(u8 a) +bool8 sub_80DEDA8(u8 rank) { s32 i; u8 r7 = Random() % 3; @@ -5312,7 +5312,7 @@ bool8 sub_80DEDA8(u8 a) if (gContestFinalStandings[i] == 0) break; } - if (a == 0xFF && i != gContestPlayerMonIndex) + if (rank == 0xFF && i != gContestPlayerMonIndex) return FALSE; switch (gSpecialVar_ContestCategory) { @@ -5332,9 +5332,9 @@ bool8 sub_80DEDA8(u8 a) r7 += 12; break; } - if (a != 0xFE) + if (rank != 0xFE) { - u8 r4 = sub_80DEFA8(a, 1); + u8 r4 = sub_80DEFA8(rank, 1); gSaveBlock1Ptr->contestWinners[r4].personality = gContestMons[i].personality; gSaveBlock1Ptr->contestWinners[r4].species = gContestMons[i].species; @@ -5342,11 +5342,11 @@ bool8 sub_80DEDA8(u8 a) StringCopy(gSaveBlock1Ptr->contestWinners[r4].monName, gContestMons[i].nickname); StringCopy(gSaveBlock1Ptr->contestWinners[r4].trainerName, gContestMons[i].trainerName); if(gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) - gSaveBlock1Ptr->contestWinners[r4].contestRank = 4; + gSaveBlock1Ptr->contestWinners[r4].contestRank = CONTEST_RANK_LINK; else gSaveBlock1Ptr->contestWinners[r4].contestRank = gSpecialVar_ContestRank; - if (a != 0xFF) + if (rank != 0xFF) gSaveBlock1Ptr->contestWinners[r4].contestCategory = gSpecialVar_ContestCategory; else gSaveBlock1Ptr->contestWinners[r4].contestCategory = r7; @@ -5363,23 +5363,23 @@ bool8 sub_80DEDA8(u8 a) return TRUE; } -u8 sub_80DEFA8(u8 a, u8 b) +u8 sub_80DEFA8(u8 rank, u8 b) { s32 i; - switch (a) + switch (rank) { - case 0: - case 1: - case 2: - case 3: + case CONTEST_RANK_NORMAL: + case CONTEST_RANK_SUPER: + case CONTEST_RANK_HYPER: + case CONTEST_RANK_MASTER: if (b != 0) { for (i = 5; i >= 1; i--) memcpy(&gSaveBlock1Ptr->contestWinners[i], &gSaveBlock1Ptr->contestWinners[i - 1], sizeof(struct ContestWinner)); } return 0; - default: + default: // CONTEST_RANK_LINK switch (gSpecialVar_ContestCategory) { case CONTEST_CATEGORY_COOL: @@ -5434,7 +5434,7 @@ static void sub_80DF080(u8 contestant) gContestResources->field_1c[contestant].unkC |= 8; } - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { if (i != contestant && eContestantStatus[i].jam != 0) { @@ -5481,7 +5481,7 @@ static void sub_80DF250(void) r1 = 0; var_38 = 0; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { if (gContestFinalStandings[i] == 0) var_38 = i; @@ -5508,7 +5508,7 @@ static void sub_80DF250(void) r12 = FALSE; r8 = FALSE; - for (j = 0; j < 4; j++) + for (j = 0; j < CONTESTANT_COUNT; j++) { if (gContestMonConditions[i] > gContestMonConditions[j]) r12 = TRUE; diff --git a/src/contest_link_80F57C4.c b/src/contest_link_80F57C4.c index 69332b27f..4e4b8afed 100644 --- a/src/contest_link_80F57C4.c +++ b/src/contest_link_80F57C4.c @@ -39,6 +39,7 @@ #include "constants/game_stat.h" #include "constants/rgb.h" #include "constants/songs.h" +#include "constants/tv.h" #include "constants/vars.h" #include "contest.h" @@ -265,7 +266,7 @@ void sub_80F5AE0(void) { int i; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) sub_80F5A74(i); CopyBgTilemapBufferToVram(1); @@ -360,12 +361,12 @@ static void sub_80F5CE4(u8 taskId) sub_80DEDA8(0xFE); gUnknown_02039F5C = 1; gUnknown_02039F5D = sub_80DEFA8(0xFE, 0); - var = VarGet(VAR_LINK_CONTEST_ROOM_STATE); - VarSet(VAR_LINK_CONTEST_ROOM_STATE, 0); + var = VarGet(VAR_CONTEST_HALL_STATE); + VarSet(VAR_CONTEST_HALL_STATE, 0); SetContinueGameWarpStatusToDynamicWarp(); TrySavingData(SAVE_LINK); ClearContinueGameWarpStatus2(); - VarSet(VAR_LINK_CONTEST_ROOM_STATE, var); + VarSet(VAR_CONTEST_HALL_STATE, var); gTasks[taskId].data[0]++; break; case 1: @@ -576,7 +577,7 @@ static void sub_80F6204(u8 taskId) } break; case 2: - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { newTaskId = CreateTask(sub_80F73DC, 10); gTasks[newTaskId].data[0] = gContestFinalStandings[i]; @@ -592,7 +593,7 @@ static void sub_80F6204(u8 taskId) gTasks[taskId].data[1] = 0; CreateTask(sub_80F74BC, 10); gTasks[taskId].data[0]++; - for (i = 0; i < 4 && gContestFinalStandings[i] != 0; i++) + for (i = 0; i < CONTESTANT_COUNT && gContestFinalStandings[i] != 0; i++) ; sub_80F77E0(i, 14); @@ -603,7 +604,7 @@ static void sub_80F6204(u8 taskId) if (++gTasks[taskId].data[1] == 21) { gTasks[taskId].data[1] = 0; - for (i = 0; i < 4 && gContestFinalStandings[i] != 0; i++) + for (i = 0; i < CONTESTANT_COUNT && gContestFinalStandings[i] != 0; i++) ; StringCopy(gStringVar1, gContestMons[i].trainerName); @@ -636,7 +637,7 @@ static void sub_80F6404(u8 taskId) case 0: gBattle_WIN0H = 0x00F0; gBattle_WIN0V = 0x5050; - for (i = 0; i < 4 && gContestFinalStandings[i] != 0; i++) + for (i = 0; i < CONTESTANT_COUNT && gContestFinalStandings[i] != 0; i++) ; species = gContestMons[i].species; @@ -732,7 +733,7 @@ static void sub_80F66B4(u8 taskId) { if (!(gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK)) { - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { nationalDexNum = SpeciesToNationalPokedexNum(gContestMons[i].species); GetSetPokedexFlag(nationalDexNum, FLAG_SET_SEEN); @@ -874,7 +875,7 @@ static void LoadAllContestMonIcons(u8 srcOffset, u8 useDmaNow) { int i; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) sub_80F69B8(gContestMons[i].species, i, srcOffset, useDmaNow, gContestMons[i].personality); } @@ -882,7 +883,7 @@ static void sub_80F6A9C(void) { int i, species; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { species = gContestMons[i].species; LoadPalette(gMonIconPalettes[gMonIconPaletteIndices[GetIconSpecies(species, 0)]], i * 0x10 + 0xA0, 0x20); @@ -1423,48 +1424,48 @@ static void sub_80F71C8(void) CopyToBgTilemapBufferRect(2, gUnknown_08DC6498, 5, 1, 5, 2); x = 10; } - else if (gSpecialVar_ContestRank == 0) + else if (gSpecialVar_ContestRank == CONTEST_RANK_NORMAL) { CopyToBgTilemapBufferRect(2, gUnknown_08DC63F8, 5, 1, 10, 2); x = 15; } - else if (gSpecialVar_ContestRank == 1) + else if (gSpecialVar_ContestRank == CONTEST_RANK_SUPER) { CopyToBgTilemapBufferRect(2, gUnknown_08DC6420, 5, 1, 10, 2); x = 15; } - else if (gSpecialVar_ContestRank == 2) + else if (gSpecialVar_ContestRank == CONTEST_RANK_HYPER) { CopyToBgTilemapBufferRect(2, gUnknown_08DC6448, 5, 1, 10, 2); x = 15; } - else + else // CONTEST_RANK_MASTER { CopyToBgTilemapBufferRect(2, gUnknown_08DC6470, 5, 1, 10, 2); x = 15; } - if (gSpecialVar_ContestCategory == 0) + if (gSpecialVar_ContestCategory == CONTEST_CATEGORY_COOL) { palette = 0; CopyToBgTilemapBufferRect(2, gUnknown_08DC64AC, x, y, 5, 2); } - else if (gSpecialVar_ContestCategory == 1) + else if (gSpecialVar_ContestCategory == CONTEST_CATEGORY_BEAUTY) { palette = 1; CopyToBgTilemapBufferRect(2, gUnknown_08DC64C0, x, y, 5, 2); } - else if (gSpecialVar_ContestCategory == 2) + else if (gSpecialVar_ContestCategory == CONTEST_CATEGORY_CUTE) { palette = 2; CopyToBgTilemapBufferRect(2, gUnknown_08DC64D4, x, y, 5, 2); } - else if (gSpecialVar_ContestCategory == 3) + else if (gSpecialVar_ContestCategory == CONTEST_CATEGORY_SMART) { palette = 3; CopyToBgTilemapBufferRect(2, gUnknown_08DC64E8, x, y, 5, 2); } - else + else // CONTEST_CATEGORY_TOUGH { palette = 4; CopyToBgTilemapBufferRect(2, gUnknown_08DC64FC, x, y, 5, 2); @@ -1550,7 +1551,7 @@ static void sub_80F73DC(u8 taskId) static void sub_80F74BC(u8 taskId) { int i; - for (i = 0; i < 4 && gContestFinalStandings[i] != 0; i++) + for (i = 0; i < CONTESTANT_COUNT && gContestFinalStandings[i] != 0; i++) ; CopyToBgTilemapBufferRect_ChangePalette(2, i * 0xC0 + 0x100 + gUnknown_0203A034->unkC[2], 0, i * 3 + 4, 32, 3, 9); @@ -1706,7 +1707,7 @@ static void sub_80F7880(void) } } - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { r4 = (gContestMonConditions[i] * 1000) / abs(r2); if (r4 % 10 > 4) @@ -1933,7 +1934,7 @@ static void sub_80F7ED0(int windowId, u8 *str, int arg2) PutWindowTilemap(windowId); } -void sub_80F7F30(void) +void TryEnterContestMon(void) { u8 eligibility = GetContestEntryEligibility(&gPlayerParty[gContestMonPartyIndex]); @@ -1947,38 +1948,38 @@ void sub_80F7F30(void) gSpecialVar_Result = eligibility; } -u16 sub_80F7F7C(void) +u16 HasMonWonThisContestBefore(void) { - u16 result = 0; + u16 hasRankRibbon = FALSE; struct Pokemon *mon = &gPlayerParty[gContestMonPartyIndex]; switch (gSpecialVar_ContestCategory) { case CONTEST_CATEGORY_COOL: if (GetMonData(mon, MON_DATA_COOL_RIBBON) > gSpecialVar_ContestRank) - result = 1; + hasRankRibbon = TRUE; break; case CONTEST_CATEGORY_BEAUTY: if (GetMonData(mon, MON_DATA_BEAUTY_RIBBON) > gSpecialVar_ContestRank) - result = 1; + hasRankRibbon = TRUE; break; case CONTEST_CATEGORY_CUTE: if (GetMonData(mon, MON_DATA_CUTE_RIBBON) > gSpecialVar_ContestRank) - result = 1; + hasRankRibbon = TRUE; break; case CONTEST_CATEGORY_SMART: if (GetMonData(mon, MON_DATA_SMART_RIBBON) > gSpecialVar_ContestRank) - result = 1; + hasRankRibbon = TRUE; break; case CONTEST_CATEGORY_TOUGH: if (GetMonData(mon, MON_DATA_TOUGH_RIBBON) > gSpecialVar_ContestRank) - result = 1; + hasRankRibbon = TRUE; break; } - return result; + return hasRankRibbon; } -void sub_80F7FFC(void) +void GiveMonContestRibbon(void) { u8 ribbonData; @@ -1993,8 +1994,8 @@ void sub_80F7FFC(void) { ribbonData++; SetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_COOL_RIBBON, &ribbonData); - if (GetRibbonCount(&gPlayerParty[gContestMonPartyIndex]) > 4) - sub_80EE4DC(&gPlayerParty[gContestMonPartyIndex], MON_DATA_COOL_RIBBON); + if (GetRibbonCount(&gPlayerParty[gContestMonPartyIndex]) > NUM_CUTIES_RIBBONS) + TryPutSpotTheCutiesOnAir(&gPlayerParty[gContestMonPartyIndex], MON_DATA_COOL_RIBBON); } break; case CONTEST_CATEGORY_BEAUTY: @@ -2003,8 +2004,8 @@ void sub_80F7FFC(void) { ribbonData++; SetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_BEAUTY_RIBBON, &ribbonData); - if (GetRibbonCount(&gPlayerParty[gContestMonPartyIndex]) > 4) - sub_80EE4DC(&gPlayerParty[gContestMonPartyIndex], MON_DATA_BEAUTY_RIBBON); + if (GetRibbonCount(&gPlayerParty[gContestMonPartyIndex]) > NUM_CUTIES_RIBBONS) + TryPutSpotTheCutiesOnAir(&gPlayerParty[gContestMonPartyIndex], MON_DATA_BEAUTY_RIBBON); } break; case CONTEST_CATEGORY_CUTE: @@ -2013,8 +2014,8 @@ void sub_80F7FFC(void) { ribbonData++; SetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_CUTE_RIBBON, &ribbonData); - if (GetRibbonCount(&gPlayerParty[gContestMonPartyIndex]) > 4) - sub_80EE4DC(&gPlayerParty[gContestMonPartyIndex], MON_DATA_CUTE_RIBBON); + if (GetRibbonCount(&gPlayerParty[gContestMonPartyIndex]) > NUM_CUTIES_RIBBONS) + TryPutSpotTheCutiesOnAir(&gPlayerParty[gContestMonPartyIndex], MON_DATA_CUTE_RIBBON); } break; case CONTEST_CATEGORY_SMART: @@ -2023,8 +2024,8 @@ void sub_80F7FFC(void) { ribbonData++; SetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_SMART_RIBBON, &ribbonData); - if (GetRibbonCount(&gPlayerParty[gContestMonPartyIndex]) > 4) - sub_80EE4DC(&gPlayerParty[gContestMonPartyIndex], MON_DATA_SMART_RIBBON); + if (GetRibbonCount(&gPlayerParty[gContestMonPartyIndex]) > NUM_CUTIES_RIBBONS) + TryPutSpotTheCutiesOnAir(&gPlayerParty[gContestMonPartyIndex], MON_DATA_SMART_RIBBON); } break; case CONTEST_CATEGORY_TOUGH: @@ -2033,95 +2034,96 @@ void sub_80F7FFC(void) { ribbonData++; SetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_TOUGH_RIBBON, &ribbonData); - if (GetRibbonCount(&gPlayerParty[gContestMonPartyIndex]) > 4) - sub_80EE4DC(&gPlayerParty[gContestMonPartyIndex], MON_DATA_TOUGH_RIBBON); + if (GetRibbonCount(&gPlayerParty[gContestMonPartyIndex]) > NUM_CUTIES_RIBBONS) + TryPutSpotTheCutiesOnAir(&gPlayerParty[gContestMonPartyIndex], MON_DATA_TOUGH_RIBBON); } break; } } -void sub_80F8264(void) +void BufferContestantTrainerName(void) { StringCopy(gStringVar1, gContestMons[gSpecialVar_0x8006].trainerName); sub_81DB5AC(gStringVar1); } -void sub_80F8290(void) +void BufferContestantMonNickname(void) { StringCopy(gStringVar3, gContestMons[gSpecialVar_0x8006].nickname); } -void sub_80F82B4(void) +// Unused script special +void GetContestMonConditionRanking(void) { - u8 i, count; + u8 i, rank; - for (i = 0, count = 0; i < 4; i++) + for (i = 0, rank = 0; i < CONTESTANT_COUNT; i++) { if (gContestMonConditions[gSpecialVar_0x8006] < gContestMonConditions[i]) - count++; + rank++; } - gSpecialVar_0x8004 = count; + gSpecialVar_0x8004 = rank; } -void sub_80F82FC(void) +void GetContestMonCondition(void) { gSpecialVar_0x8004 = gContestMonConditions[gSpecialVar_0x8006]; } -void sub_80F831C(void) +void GetContestWinnerId(void) { u8 i; - for (i = 0; i < 4 && gContestFinalStandings[i] != 0; i++) + for (i = 0; i < CONTESTANT_COUNT && gContestFinalStandings[i] != 0; i++) ; gSpecialVar_0x8005 = i; } -void sub_80F834C(void) +void BufferContestWinnerTrainerName(void) { u8 i; - for (i = 0; i < 4 && gContestFinalStandings[i] != 0; i++) + for (i = 0; i < CONTESTANT_COUNT && gContestFinalStandings[i] != 0; i++) ; StringCopy(gStringVar3, gContestMons[i].trainerName); sub_81DB5AC(gStringVar3); } -void sub_80F8390(void) +void BufferContestWinnerMonName(void) { u8 i; - for (i = 0; i < 4 && gContestFinalStandings[i] != 0; i++) + for (i = 0; i < CONTESTANT_COUNT && gContestFinalStandings[i] != 0; i++) ; StringCopy(gStringVar1, gContestMons[i].nickname); } -void sub_80F83D0(void) +void CB2_SetStartContestCallback(void) { SetMainCallback2(CB2_StartContest); } -static void sub_80F83E0(u8 taskId) +static void Task_StartContest(u8 taskId) { if (!gPaletteFade.active) { DestroyTask(taskId); - SetMainCallback2(sub_80F83D0); + SetMainCallback2(CB2_SetStartContestCallback); } } -void sub_80F840C(void) +void StartContest(void) { ScriptContext2_Enable(); - CreateTask(sub_80F83E0, 10); + CreateTask(Task_StartContest, 10); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); } -void sub_80F8438(void) +void BufferContestantMonSpecies(void) { gSpecialVar_0x8004 = gContestMons[gSpecialVar_0x8006].species; } @@ -2142,7 +2144,7 @@ void sub_80F8484(void) BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); } -void sub_80F84B0(void) +void GetContestPlayerId(void) { gSpecialVar_0x8004 = gContestPlayerMonIndex; } @@ -2248,7 +2250,7 @@ void sub_80F8714(u8 taskId) } else { - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) StringGetEnd10(gContestMons[i].nickname); DestroyTask(taskId); diff --git a/src/data/union_room.h b/src/data/union_room.h index abe91b010..de155aee8 100644 --- a/src/data/union_room.h +++ b/src/data/union_room.h @@ -440,7 +440,7 @@ ALIGNED(4) const u8 sText_CancelRegistrationOfMon[] = _("Cancel the registration ALIGNED(4) const u8 sText_CancelRegistrationOfEgg[] = _("Cancel the registration of your\nEGG?"); ALIGNED(4) const u8 sText_RegistrationCanceled2[] = _("The registration has been canceled.\p"); ALIGNED(4) const u8 sText_TradeTrainersWillBeListed[] = _("TRAINERS wishing to make a trade\nwill be listed."); // unused -ALIGNED(4) const u8 sText_ChooseTrainerToTradeWith[] = _("Please choose the TRAINER with whom\nyou would like to trade POKéMON."); // unused +ALIGNED(4) const u8 sText_ChooseTrainerToTradeWith2[] = _("Please choose the TRAINER with whom\nyou would like to trade POKéMON."); // unused ALIGNED(4) const u8 sText_AskTrainerToMakeTrade[] = _("Would you like to ask {STR_VAR_1} to\nmake a trade?"); ALIGNED(4) const u8 sText_AwaitingResponseFromTrainer[] = _("Awaiting a response from\nthe other TRAINER…"); // unused ALIGNED(4) const u8 sText_NotRegisteredAMonForTrade[] = _("You have not registered a POKéMON\nfor trading.\p"); // unused @@ -457,50 +457,51 @@ const u8 *const sUnionRoomTexts_CantTradeRightNow[] = { ALIGNED(4) const u8 sText_TradeOfferRejected[] = _("Your trade offer was rejected.\p"); ALIGNED(4) const u8 sText_EggTrade[] = _("EGG TRADE"); -ALIGNED(4) const u8 gUnknown_082EF7DC[] = _("{DPAD_UPDOWN}CHOOSE {A_BUTTON}JOIN {B_BUTTON}CANCEL"); -ALIGNED(4) const u8 gUnknown_082EF7F8[] = _("Please choose a TRAINER."); -ALIGNED(4) const u8 gUnknown_082EF814[] = _("Please choose a TRAINER for\na SINGLE BATTLE."); -ALIGNED(4) const u8 gUnknown_082EF844[] = _("Please choose a TRAINER for\na DOUBLE BATTLE."); -ALIGNED(4) const u8 gUnknown_082EF874[] = _("Please choose the LEADER\nfor a MULTI BATTLE."); -ALIGNED(4) const u8 gUnknown_082EF8A4[] = _("Please choose the TRAINER to\ntrade with."); -ALIGNED(4) const u8 gUnknown_082EF8D0[] = _("Please choose the TRAINER who is\nsharing WONDER CARDS."); -ALIGNED(4) const u8 gUnknown_082EF908[] = _("Please choose the TRAINER who is\nsharing WONDER NEWS."); -ALIGNED(4) const u8 gUnknown_082EF940[] = _("Jump with mini POKéMON!\nPlease choose the LEADER."); -ALIGNED(4) const u8 gUnknown_082EF974[] = _("BERRY CRUSH!\nPlease choose the LEADER."); -ALIGNED(4) const u8 gUnknown_082EF99C[] = _("DODRIO BERRY-PICKING!\nPlease choose the LEADER."); -ALIGNED(4) const u8 gUnknown_082EF9CC[] = _("BERRY BLENDER!\nPlease choose the LEADER."); -ALIGNED(4) const u8 gUnknown_082EF9F8[] = _("RECORD CORNER!\nPlease choose the LEADER."); -ALIGNED(4) const u8 gUnknown_082EFA24[] = _("COOLNESS CONTEST!\nPlease choose the LEADER."); -ALIGNED(4) const u8 gUnknown_082EFA50[] = _("BEAUTY CONTEST!\nPlease choose the LEADER."); -ALIGNED(4) const u8 gUnknown_082EFA7C[] = _("CUTENESS CONTEST!\nPlease choose the LEADER."); -ALIGNED(4) const u8 gUnknown_082EFAA8[] = _("SMARTNESS CONTEST!\nPlease choose the LEADER."); -ALIGNED(4) const u8 gUnknown_082EFAD8[] = _("TOUGHNESS CONTEST!\nPlease choose the LEADER."); -ALIGNED(4) const u8 gUnknown_082EFB08[] = _("BATTLE TOWER LEVEL 50!\nPlease choose the LEADER."); -ALIGNED(4) const u8 gUnknown_082EFB3C[] = _("BATTLE TOWER OPEN LEVEL!\nPlease choose the LEADER."); - -const u8 *const gUnknown_082EFB70[] = { - gUnknown_082EF814, - gUnknown_082EF844, - gUnknown_082EF874, - gUnknown_082EF8A4, - gUnknown_082EF940, - gUnknown_082EF974, - gUnknown_082EF99C, - gUnknown_082EF8D0, - gUnknown_082EF908, - NULL, - NULL, - NULL, - gUnknown_082EF9F8, - gUnknown_082EF9CC, - NULL, - gUnknown_082EFA24, - gUnknown_082EFA50, - gUnknown_082EFA7C, - gUnknown_082EFAA8, - gUnknown_082EFAD8, - gUnknown_082EFB08, - gUnknown_082EFB3C +ALIGNED(4) const u8 sText_ChooseJoinCancel[] = _("{DPAD_UPDOWN}CHOOSE {A_BUTTON}JOIN {B_BUTTON}CANCEL"); +ALIGNED(4) const u8 sText_ChooseTrainer[] = _("Please choose a TRAINER."); +ALIGNED(4) const u8 sText_ChooseTrainerSingleBattle[] = _("Please choose a TRAINER for\na SINGLE BATTLE."); +ALIGNED(4) const u8 sText_ChooseTrainerDoubleBattle[] = _("Please choose a TRAINER for\na DOUBLE BATTLE."); +ALIGNED(4) const u8 sText_ChooseLeaderMultiBattle[] = _("Please choose the LEADER\nfor a MULTI BATTLE."); +ALIGNED(4) const u8 sText_ChooseTrainerToTradeWith[] = _("Please choose the TRAINER to\ntrade with."); +ALIGNED(4) const u8 sText_ChooseTrainerToShareWonderCards[] = _("Please choose the TRAINER who is\nsharing WONDER CARDS."); +ALIGNED(4) const u8 sText_ChooseTrainerToShareWonderNews[] = _("Please choose the TRAINER who is\nsharing WONDER NEWS."); +ALIGNED(4) const u8 sText_ChooseLeaderPokemonJump[] = _("Jump with mini POKéMON!\nPlease choose the LEADER."); +ALIGNED(4) const u8 sText_ChooseLeaderBerryCrush[] = _("BERRY CRUSH!\nPlease choose the LEADER."); +ALIGNED(4) const u8 sText_ChooseLeaderBerryPicking[] = _("DODRIO BERRY-PICKING!\nPlease choose the LEADER."); +ALIGNED(4) const u8 sText_ChooseLeaderBerryBlender[] = _("BERRY BLENDER!\nPlease choose the LEADER."); +ALIGNED(4) const u8 sText_ChooseLeaderRecordCorner[] = _("RECORD CORNER!\nPlease choose the LEADER."); +ALIGNED(4) const u8 sText_ChooseLeaderCoolContest[] = _("COOLNESS CONTEST!\nPlease choose the LEADER."); +ALIGNED(4) const u8 sText_ChooseLeaderBeautyContest[] = _("BEAUTY CONTEST!\nPlease choose the LEADER."); +ALIGNED(4) const u8 sText_ChooseLeaderCuteContest[] = _("CUTENESS CONTEST!\nPlease choose the LEADER."); +ALIGNED(4) const u8 sText_ChooseLeaderSmartContest[] = _("SMARTNESS CONTEST!\nPlease choose the LEADER."); +ALIGNED(4) const u8 sText_ChooseLeaderToughContest[] = _("TOUGHNESS CONTEST!\nPlease choose the LEADER."); +ALIGNED(4) const u8 sText_ChooseLeaderBattleTowerLv50[] = _("BATTLE TOWER LEVEL 50!\nPlease choose the LEADER."); +ALIGNED(4) const u8 sText_ChooseLeaderBattleTowerOpenLv[] = _("BATTLE TOWER OPEN LEVEL!\nPlease choose the LEADER."); + +static const u8 *const sChooseTrainerTexts[NUM_LINK_GROUP_TYPES] = +{ + [LINK_GROUP_SINGLE_BATTLE] = sText_ChooseTrainerSingleBattle, + [LINK_GROUP_DOUBLE_BATTLE] = sText_ChooseTrainerDoubleBattle, + [LINK_GROUP_MULTI_BATTLE] = sText_ChooseLeaderMultiBattle, + [LINK_GROUP_TRADE] = sText_ChooseTrainerToTradeWith, + [LINK_GROUP_POKEMON_JUMP] = sText_ChooseLeaderPokemonJump, + [LINK_GROUP_BERRY_CRUSH] = sText_ChooseLeaderBerryCrush, + [LINK_GROUP_BERRY_PICKING] = sText_ChooseLeaderBerryPicking, + [LINK_GROUP_WONDER_CARD] = sText_ChooseTrainerToShareWonderCards, + [LINK_GROUP_WONDER_NEWS] = sText_ChooseTrainerToShareWonderNews, + [LINK_GROUP_UNK_9] = NULL, + [LINK_GROUP_UNK_10] = NULL, + [LINK_GROUP_UNK_11] = NULL, + [LINK_GROUP_RECORD_CORNER] = sText_ChooseLeaderRecordCorner, + [LINK_GROUP_BERRY_BLENDER] = sText_ChooseLeaderBerryBlender, + [LINK_GROUP_UNK_14] = NULL, + [LINK_GROUP_COOL_CONTEST] = sText_ChooseLeaderCoolContest, + [LINK_GROUP_BEAUTY_CONTEST] = sText_ChooseLeaderBeautyContest, + [LINK_GROUP_CUTE_CONTEST] = sText_ChooseLeaderCuteContest, + [LINK_GROUP_SMART_CONTEST] = sText_ChooseLeaderSmartContest, + [LINK_GROUP_TOUGH_CONTEST] = sText_ChooseLeaderToughContest, + [LINK_GROUP_BATTLE_TOWER] = sText_ChooseLeaderBattleTowerLv50, + [LINK_GROUP_BATTLE_TOWER_OPEN] = sText_ChooseLeaderBattleTowerOpenLv }; ALIGNED(4) const u8 gUnknown_082EFBC8[] = _("Searching for a WIRELESS\nCOMMUNICATION SYSTEM. Wait..."); @@ -524,39 +525,39 @@ ALIGNED(4) const u8 gUnknown_082EFD7C[] = _("EXIT"); ALIGNED(4) const u8 gUnknown_082EFD84[] = _("EXIT"); ALIGNED(4) const u8 gUnknown_082EFD8C[] = _("INFO"); ALIGNED(4) const u8 gUnknown_082EFD94[] = _("NAME{CLEAR_TO 0x3C}WANTED{CLEAR_TO 0x6E}OFFER{CLEAR_TO 0xC6}LV."); -ALIGNED(4) const u8 gUnknown_082EFDB0[] = _("SINGLE BATTLE"); -ALIGNED(4) const u8 gUnknown_082EFDC0[] = _("DOUBLE BATTLE"); -ALIGNED(4) const u8 gUnknown_082EFDD0[] = _("MULTI BATTLE"); -ALIGNED(4) const u8 gUnknown_082EFDE0[] = _("POKéMON TRADES"); -ALIGNED(4) const u8 gUnknown_082EFDF0[] = _("CHAT"); -ALIGNED(4) const u8 gUnknown_082EFDF8[] = _("CARDS"); -ALIGNED(4) const u8 gUnknown_082EFE00[] = _("WONDER CARDS"); -ALIGNED(4) const u8 gUnknown_082EFE10[] = _("WONDER NEWS"); -ALIGNED(4) const u8 gUnknown_082EFE1C[] = _("POKéMON JUMP"); -ALIGNED(4) const u8 gUnknown_082EFE2C[] = _("BERRY CRUSH"); -ALIGNED(4) const u8 gUnknown_082EFE38[] = _("BERRY-PICKING"); -ALIGNED(4) const u8 gUnknown_082EFE48[] = _("SEARCH"); -ALIGNED(4) const u8 gUnknown_082EFE50[] = _("BERRY BLENDER"); -ALIGNED(4) const u8 gUnknown_082EFE60[] = _("RECORD CORNER"); -ALIGNED(4) const u8 gUnknown_082EFE70[] = _("COOL CONTEST"); -ALIGNED(4) const u8 gUnknown_082EFE80[] = _("BEAUTY CONTEST"); -ALIGNED(4) const u8 gUnknown_082EFE90[] = _("CUTE CONTEST"); -ALIGNED(4) const u8 gUnknown_082EFEA0[] = _("SMART CONTEST"); -ALIGNED(4) const u8 gUnknown_082EFEB0[] = _("TOUGH CONTEST"); -ALIGNED(4) const u8 gUnknown_082EFEC0[] = _("BATTLE TOWER LV. 50"); -ALIGNED(4) const u8 gUnknown_082EFED4[] = _("BATTLE TOWER OPEN LEVEL"); -ALIGNED(4) const u8 gUnknown_082EFEEC[] = _("It's a NORMAL CARD."); -ALIGNED(4) const u8 gUnknown_082EFF00[] = _("It's a BRONZE CARD!"); -ALIGNED(4) const u8 gUnknown_082EFF14[] = _("It's a COPPER CARD!"); -ALIGNED(4) const u8 gUnknown_082EFF28[] = _("It's a SILVER CARD!"); -ALIGNED(4) const u8 gUnknown_082EFF3C[] = _("It's a GOLD CARD!"); - -const u8 *const gUnknown_082EFF50[] = { - gUnknown_082EFEEC, - gUnknown_082EFF00, - gUnknown_082EFF14, - gUnknown_082EFF28, - gUnknown_082EFF3C +ALIGNED(4) const u8 sText_SingleBattle[] = _("SINGLE BATTLE"); +ALIGNED(4) const u8 sText_DoubleBattle[] = _("DOUBLE BATTLE"); +ALIGNED(4) const u8 sText_MultiBattle[] = _("MULTI BATTLE"); +ALIGNED(4) const u8 sText_PokemonTrades[] = _("POKéMON TRADES"); +ALIGNED(4) const u8 sText_Chat[] = _("CHAT"); +ALIGNED(4) const u8 sText_Cards[] = _("CARDS"); +ALIGNED(4) const u8 sText_WonderCards[] = _("WONDER CARDS"); +ALIGNED(4) const u8 sText_WonderNews[] = _("WONDER NEWS"); +ALIGNED(4) const u8 sText_PokemonJump[] = _("POKéMON JUMP"); +ALIGNED(4) const u8 sText_BerryCrush[] = _("BERRY CRUSH"); +ALIGNED(4) const u8 sText_BerryPicking[] = _("BERRY-PICKING"); +ALIGNED(4) const u8 sText_Search[] = _("SEARCH"); +ALIGNED(4) const u8 sText_BerryBlender[] = _("BERRY BLENDER"); +ALIGNED(4) const u8 sText_RecordCorner[] = _("RECORD CORNER"); +ALIGNED(4) const u8 sText_CoolContest[] = _("COOL CONTEST"); +ALIGNED(4) const u8 sText_BeautyContest[] = _("BEAUTY CONTEST"); +ALIGNED(4) const u8 sText_CuteContest[] = _("CUTE CONTEST"); +ALIGNED(4) const u8 sText_SmartContest[] = _("SMART CONTEST"); +ALIGNED(4) const u8 sText_ToughContest[] = _("TOUGH CONTEST"); +ALIGNED(4) const u8 sText_BattleTowerLv50[] = _("BATTLE TOWER LV. 50"); +ALIGNED(4) const u8 sText_BattleTowerOpenLv[] = _("BATTLE TOWER OPEN LEVEL"); +ALIGNED(4) const u8 sText_ItsNormalCard[] = _("It's a NORMAL CARD."); +ALIGNED(4) const u8 sText_ItsBronzeCard[] = _("It's a BRONZE CARD!"); +ALIGNED(4) const u8 sText_ItsCopperCard[] = _("It's a COPPER CARD!"); +ALIGNED(4) const u8 sText_ItsSilverCard[] = _("It's a SILVER CARD!"); +ALIGNED(4) const u8 sText_ItsGoldCard[] = _("It's a GOLD CARD!"); + +static const u8 *const sCardColorTexts[] = { + sText_ItsNormalCard, + sText_ItsBronzeCard, + sText_ItsCopperCard, + sText_ItsSilverCard, + sText_ItsGoldCard }; ALIGNED(4) const u8 gUnknown_082EFF64[] = _("This is {SPECIAL_F7 0x00} {SPECIAL_F7 0x01}'s\nTRAINER CARD…\l{SPECIAL_F7 0x02}\pPOKéDEX: {SPECIAL_F7 0x03}\nTIME: {SPECIAL_F7 0x04}:{SPECIAL_F7 0x05}\p"); @@ -573,34 +574,34 @@ ALIGNED(4) const u8 gUnknown_082F0020[] = _("Finished checking {SPECIAL_F7 0x01} const u8 *const gUnknown_082F0048[] = { gText_EmptyString, - gUnknown_082EFDB0, - gUnknown_082EFDC0, - gUnknown_082EFDD0, - gUnknown_082EFDE0, - gUnknown_082EFDF0, - gUnknown_082EFE00, - gUnknown_082EFE10, - gUnknown_082EFDF8, - gUnknown_082EFE1C, - gUnknown_082EFE2C, - gUnknown_082EFE38, - gUnknown_082EFE48, + sText_SingleBattle, + sText_DoubleBattle, + sText_MultiBattle, + sText_PokemonTrades, + sText_Chat, + sText_WonderCards, + sText_WonderNews, + sText_Cards, + sText_PokemonJump, + sText_BerryCrush, + sText_BerryPicking, + sText_Search, gText_EmptyString, - gUnknown_082EFED4, - gUnknown_082EFE60, - gUnknown_082EFE50, + sText_BattleTowerOpenLv, + sText_RecordCorner, + sText_BerryBlender, gText_EmptyString, gText_EmptyString, gText_EmptyString, gText_EmptyString, - gUnknown_082EFE00, - gUnknown_082EFE10, - gUnknown_082EFE70, - gUnknown_082EFE80, - gUnknown_082EFE90, - gUnknown_082EFEA0, - gUnknown_082EFEB0, - gUnknown_082EFEC0 + sText_WonderCards, + sText_WonderNews, + sText_CoolContest, + sText_BeautyContest, + sText_CuteContest, + sText_SmartContest, + sText_ToughContest, + sText_BattleTowerLv50 }; const struct WindowTemplate gUnknown_082F00BC = { @@ -613,7 +614,7 @@ const struct WindowTemplate gUnknown_082F00BC = { .baseBlock = 0x0008 }; -const u32 gUnknown_082F00C4[] = { +const u32 gUnknown_082F00C4[NUM_LINK_GROUP_TYPES] = { 0x0201, 0x0202, 0x0403, @@ -1012,7 +1013,7 @@ ALIGNED(4) const u8 gUnknown_082F04CC[] = {0x1b, 0xff}; ALIGNED(4) const u8 gUnknown_082F04D0[] = {0x1c, 0xff}; ALIGNED(4) const u8 gUnknown_082F04D4[] = {0x0e, 0xff}; -const u8 *const gUnknown_082F04D8[] = { +const u8 *const gUnknown_082F04D8[NUM_LINK_GROUP_TYPES] = { gUnknown_082F0474, gUnknown_082F0478, gUnknown_082F047C, @@ -1037,8 +1038,29 @@ const u8 *const gUnknown_082F04D8[] = { gUnknown_082F04D4 }; -const u8 gUnknown_082F0530[] = { - 0x01, 0x02, 0x03, 0x04, 0x09, 0x0a, 0x0b, 0x15, - 0x16, 0x00, 0x00, 0x00, 0x0f, 0x10, 0x00, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x0e, 0x00, 0x00 +// Link group type to ID for gUnknown_02022C2C +const u8 gUnknown_082F0530[NUM_LINK_GROUP_TYPES + 2] = +{ + 0x01, + 0x02, + 0x03, + 0x04, + 0x09, + 0x0a, + 0x0b, + 0x15, + 0x16, + 0x00, + 0x00, + 0x00, + 0x0f, + 0x10, + 0x00, + 0x17, + 0x18, + 0x19, + 0x1a, + 0x1b, + 0x1c, + 0x0e }; diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index 1edb775ba..076859c28 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -752,7 +752,7 @@ static void task0A_fade_n_map_maybe(u8 taskId) } } -void sub_80AFC60(void) +void DoContestHallWarp(void) { ScriptContext2_Enable(); TryFadeOutOldMapMusic(); diff --git a/src/field_specials.c b/src/field_specials.c index 3d92f621d..0d9f495a9 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -1410,9 +1410,9 @@ void GiveLeadMonEffortRibbon(void) ribbonSet = TRUE; leadMon = &gPlayerParty[GetLeadMonIndex()]; SetMonData(leadMon, MON_DATA_EFFORT_RIBBON, &ribbonSet); - if (GetRibbonCount(leadMon) > 4) + if (GetRibbonCount(leadMon) > NUM_CUTIES_RIBBONS) { - sub_80EE4DC(leadMon, 0x47); + TryPutSpotTheCutiesOnAir(leadMon, 0x47); } } diff --git a/src/post_battle_event_funcs.c b/src/post_battle_event_funcs.c index 41ad37fbf..4fa5d1b21 100644 --- a/src/post_battle_event_funcs.c +++ b/src/post_battle_event_funcs.c @@ -9,6 +9,7 @@ #include "tv.h" #include "constants/heal_locations.h" #include "constants/flags.h" +#include "constants/tv.h" int GameClear(void) { @@ -76,9 +77,9 @@ int GameClear(void) } } - if (ribbonCounts[0].count > 4) + if (ribbonCounts[0].count > NUM_CUTIES_RIBBONS) { - sub_80EE4DC(&gPlayerParty[ribbonCounts[0].partyIndex], MON_DATA_CHAMPION_RIBBON); + TryPutSpotTheCutiesOnAir(&gPlayerParty[ribbonCounts[0].partyIndex], MON_DATA_CHAMPION_RIBBON); } } diff --git a/src/scrcmd.c b/src/scrcmd.c index 02bc026d9..a9be5c3ef 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -461,13 +461,13 @@ bool8 ScrCmd_compare_var_to_var(struct ScriptContext *ctx) return FALSE; } +// Note: addvar doesn't support adding from a variable in vanilla. If you were to +// add a VarGet() to the above, make sure you change the `addvar VAR_*, -1` +// in the contest scripts to `subvar VAR_*, 1`, else contests will break. bool8 ScrCmd_addvar(struct ScriptContext *ctx) { u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx)); *ptr += ScriptReadHalfword(ctx); - // Note: addvar doesn't support adding from a variable in vanilla. If you were to - // add a VarGet() to the above, make sure you change the `addvar VAR_0x8006, 65535` - // in the contest scripts to `subvar VAR_0x8006, 1`, else contests will break. return FALSE; } @@ -1945,7 +1945,7 @@ bool8 ScrCmd_choosecontestmon(struct ScriptContext *ctx) bool8 ScrCmd_startcontest(struct ScriptContext *ctx) { - sub_80F840C(); + StartContest(); ScriptContext1_Stop(); return TRUE; } diff --git a/src/script_pokemon_util_80F87D8.c b/src/script_pokemon_util_80F87D8.c index 16c5d477a..8c66be30f 100755 --- a/src/script_pokemon_util_80F87D8.c +++ b/src/script_pokemon_util_80F87D8.c @@ -29,6 +29,7 @@ #include "constants/event_objects.h" #include "constants/items.h" #include "constants/species.h" +#include "constants/tv.h" #include "constants/vars.h" #include "constants/battle_frontier.h" @@ -39,8 +40,8 @@ extern const u16 gEventObjectPalette34[]; static const u8 gUnknown_0858D8EC[] = { 3, 4, 5, 14 }; -static void sub_80F8EE8(u8 taskId); -static void sub_80F9088(u8 taskId); +static void Task_ShowContestEntryMonPic(u8 taskId); +static void Task_LinkContestWaitForConnection(u8 taskId); static void CB2_ReturnFromChooseHalfParty(void); static void sub_80F94B8(void); @@ -74,11 +75,11 @@ void sub_80F8814(void) gSpecialVar_0x8004 = var1; } -void sub_80F8850(void) +void BufferContestTrainerAndMonNames(void) { - sub_80F8264(); - sub_80F8290(); - sub_80F8438(); + BufferContestantTrainerName(); + BufferContestantMonNickname(); + BufferContestantMonSpecies(); } void sub_80F8864(void) @@ -110,22 +111,22 @@ void sub_80F8864(void) gSpecialVar_0x8004 = 1; } -void sub_80F88DC(void) +void SaveMuseumContestPainting(void) { sub_80DEDA8(0xFF); } -void sub_80F88E8(void) +void ShouldReadyContestArtist(void) { if (gContestFinalStandings[gContestPlayerMonIndex] == 0 - && gSpecialVar_ContestRank == 3 + && gSpecialVar_ContestRank == CONTEST_RANK_MASTER && gUnknown_02039F08[gContestPlayerMonIndex] >= 800) { - gSpecialVar_0x8004 = 1; + gSpecialVar_0x8004 = TRUE; } else { - gSpecialVar_0x8004 = 0; + gSpecialVar_0x8004 = FALSE; } } @@ -219,11 +220,22 @@ static void ShowContestWinnerCleanup(void) void ShowContestWinner(void) { + /* + if(gUnknown_0203856C) + { + sub_80AAF30(); + gBattleStruct->unk15DDF = 1; + gBattleStruct->unk15DDE = sub_80B2C4C(254, 0); + Contest_SaveWinner(3); + gUnknown_0203856C = 0; + } + */ + SetMainCallback2(CB2_ContestPainting); gMain.savedCallback = ShowContestWinnerCleanup; } -void sub_80F8AFC(void) +void SetLinkContestPlayerGfx(void) { int i; @@ -248,7 +260,7 @@ void sub_80F8AFC(void) } } -void sub_80F8B94(void) +void LoadLinkContestPlayerPalettes(void) { int i; u8 eventObjectId; @@ -287,13 +299,15 @@ u8 GiveMonArtistRibbon(void) u8 hasArtistRibbon; hasArtistRibbon = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_ARTIST_RIBBON); - if (!hasArtistRibbon && gContestFinalStandings[gContestPlayerMonIndex] == 0 && gSpecialVar_ContestRank == 3 - && gUnknown_02039F08[gContestPlayerMonIndex] >= 800) + if (!hasArtistRibbon + && gContestFinalStandings[gContestPlayerMonIndex] == 0 + && gSpecialVar_ContestRank == CONTEST_RANK_MASTER + && gUnknown_02039F08[gContestPlayerMonIndex] >= 800) { hasArtistRibbon = 1; SetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_ARTIST_RIBBON, &hasArtistRibbon); - if (GetRibbonCount(&gPlayerParty[gContestMonPartyIndex]) > 4) - sub_80EE4DC(&gPlayerParty[gContestMonPartyIndex], MON_DATA_ARTIST_RIBBON); + if (GetRibbonCount(&gPlayerParty[gContestMonPartyIndex]) > NUM_CUTIES_RIBBONS) + TryPutSpotTheCutiesOnAir(&gPlayerParty[gContestMonPartyIndex], MON_DATA_ARTIST_RIBBON); return 1; } @@ -303,9 +317,9 @@ u8 GiveMonArtistRibbon(void) } } -u8 sub_80F8D24(void) +bool8 IsContestDebugActive(void) { - return 0; + return FALSE; // gUnknown_0203856C in pokeruby } void ShowContestEntryMonPic(void) @@ -317,7 +331,7 @@ void ShowContestEntryMonPic(void) u8 taskId; u8 left, top; - if (FindTaskIdByFunc(sub_80F8EE8) == 0xFF) + if (FindTaskIdByFunc(Task_ShowContestEntryMonPic) == 0xFF) { AllocateMonSpritesGfx(); left = 10; @@ -325,7 +339,7 @@ void ShowContestEntryMonPic(void) species = gContestMons[gSpecialVar_0x8006].species; personality = gContestMons[gSpecialVar_0x8006].personality; otId = gContestMons[gSpecialVar_0x8006].otId; - taskId = CreateTask(sub_80F8EE8, 0x50); + taskId = CreateTask(Task_ShowContestEntryMonPic, 0x50); gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = species; if (gSpecialVar_0x8006 == gContestPlayerMonIndex) @@ -357,9 +371,9 @@ void ShowContestEntryMonPic(void) } } -void sub_80F8EB8(void) +void HideContestEntryMonPic(void) { - u8 taskId = FindTaskIdByFunc(sub_80F8EE8); + u8 taskId = FindTaskIdByFunc(Task_ShowContestEntryMonPic); if (taskId != 0xFF) { gTasks[taskId].data[0]++; @@ -367,7 +381,7 @@ void sub_80F8EB8(void) } } -static void sub_80F8EE8(u8 taskId) +static void Task_ShowContestEntryMonPic(u8 taskId) { struct Task *task = &gTasks[taskId]; struct Sprite *sprite; @@ -403,10 +417,12 @@ static void sub_80F8EE8(u8 taskId) void ScriptGetMultiplayerId(void) { - if ((gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) && gNumLinkContestPlayers == 4 && !(gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS)) + if ((gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) + && gNumLinkContestPlayers == CONTESTANT_COUNT + && !(gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS)) gSpecialVar_Result = GetMultiplayerId(); else - gSpecialVar_Result = 4; + gSpecialVar_Result = MAX_LINK_PLAYERS; } void ScriptRandom(void) @@ -428,26 +444,26 @@ void ScriptRandom(void) *scriptPtr = random % *scriptPtr; } -u16 sub_80F903C(void) +u16 GetContestRand(void) { gContestRngValue = 1103515245 * gContestRngValue + 24691; return gContestRngValue >> 16; } -u8 sub_80F905C(void) +bool8 LinkContestWaitForConnection(void) { if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS) { - CreateTask(sub_80F9088, 5); - return 1; + CreateTask(Task_LinkContestWaitForConnection, 5); + return TRUE; } else { - return 0; + return FALSE; } } -static void sub_80F9088(u8 taskId) +static void Task_LinkContestWaitForConnection(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -471,7 +487,7 @@ static void sub_80F9088(u8 taskId) } } -void sub_80F90DC(void) +void LinkContestTryShowWirelessIndicator(void) { if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS) { @@ -483,7 +499,7 @@ void sub_80F90DC(void) } } -void sub_80F910C(void) +void LinkContestTryHideWirelessIndicator(void) { if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS) { @@ -492,25 +508,25 @@ void sub_80F910C(void) } } -u8 sub_80F9134(void) +bool8 IsContestWithRSPlayer(void) { if (gLinkContestFlags & LINK_CONTEST_FLAG_HAS_RS_PLAYER) - return 1; + return TRUE; else - return 0; + return FALSE; } -void sub_80F9154(void) +void ClearLinkContestFlags(void) { gLinkContestFlags = 0; } -u8 sub_80F9160(void) +bool8 IsWirelessContest(void) { if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS) - return 1; + return TRUE; else - return 0; + return FALSE; } void HealPlayerParty(void) @@ -2365,7 +2365,7 @@ void sub_80EE44C(u8 nMonsCaught, u8 nPkblkUsed) } } -void sub_80EE4DC(struct Pokemon *pokemon, u8 ribbonMonDataIdx) +void TryPutSpotTheCutiesOnAir(struct Pokemon *pokemon, u8 ribbonMonDataIdx) { TVShow *show; diff --git a/src/union_room.c b/src/union_room.c index 93b64a41e..d6b712558 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -52,6 +52,7 @@ #include "constants/rgb.h" #include "constants/songs.h" #include "constants/species.h" +#include "constants/union_room.h" EWRAM_DATA u8 sUnionRoomPlayerName[12] = {}; EWRAM_DATA u8 gUnknown_02022C2C = 0; @@ -236,7 +237,7 @@ void sub_8012780(u8 taskId) switch (data->state) { case 0: - if (gSpecialVar_0x8004 == 20 && gSaveBlock2Ptr->frontier.lvlMode == FRONTIER_LVL_OPEN) + if (gSpecialVar_0x8004 == LINK_GROUP_BATTLE_TOWER && gSaveBlock2Ptr->frontier.lvlMode == FRONTIER_LVL_OPEN) gSpecialVar_0x8004++; gUnknown_02022C2C = gUnknown_082F00C4[gSpecialVar_0x8004]; gUnknown_02022C2D = gUnknown_082F00C4[gSpecialVar_0x8004] >> 8; @@ -818,7 +819,7 @@ void sub_80134E8(u8 taskId) switch (data->state) { case 0: - if (gSpecialVar_0x8004 == 20 && gSaveBlock2Ptr->frontier.lvlMode == FRONTIER_LVL_OPEN) + if (gSpecialVar_0x8004 == LINK_GROUP_BATTLE_TOWER && gSaveBlock2Ptr->frontier.lvlMode == FRONTIER_LVL_OPEN) gSpecialVar_0x8004++; gUnknown_02022C2C = gUnknown_082F0530[gSpecialVar_0x8004]; sub_8010F84(gUnknown_02022C2C, 0, 0); @@ -830,7 +831,7 @@ void sub_80134E8(u8 taskId) data->state = 1; break; case 1: - if (PrintOnTextbox(&data->textState, gUnknown_082EFB70[gSpecialVar_0x8004])) + if (PrintOnTextbox(&data->textState, sChooseTrainerTexts[gSpecialVar_0x8004])) data->state = 2; break; case 2: @@ -842,7 +843,7 @@ void sub_80134E8(u8 taskId) data->field_D = AddWindow(&gUnknown_082F017C); FillWindowPixelBuffer(data->field_C, PIXEL_FILL(2)); - sub_80173E0(data->field_C, 0, gUnknown_082EF7DC, 8, 1, 4); + sub_80173E0(data->field_C, 0, sText_ChooseJoinCancel, 8, 1, 4); PutWindowTilemap(data->field_C); CopyWindowToVram(data->field_C, 2); @@ -1898,7 +1899,7 @@ void sub_8014F48(u8 taskId) data->state = 1; break; case 1: - AddTextPrinterToWindow1(gUnknown_082EF7F8); + AddTextPrinterToWindow1(sText_ChooseTrainer); data->state = 2; break; case 2: @@ -4282,7 +4283,7 @@ void sub_8018220(u8 *unused, struct UnkStruct_URoom *arg1, bool8 arg2) DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, trainerCard->playerName); - StringCopy(arg1->field_174, gUnknown_082EFF50[trainerCard->stars]); + StringCopy(arg1->field_174, sCardColorTexts[trainerCard->stars]); DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, arg1->field_174); ConvertIntToDecimalStringN(arg1->field_C0[2], trainerCard->caughtMonsCount, STR_CONV_MODE_LEFT_ALIGN, 3); |