summaryrefslogtreecommitdiff
path: root/src/contest.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/contest.c')
-rw-r--r--src/contest.c4499
1 files changed, 441 insertions, 4058 deletions
diff --git a/src/contest.c b/src/contest.c
index 50824c867..150c6dbbd 100644
--- a/src/contest.c
+++ b/src/contest.c
@@ -1,15 +1,16 @@
#include "global.h"
-#include "constants/items.h"
+#include "contest.h"
+#include "battle.h"
+#include "battle_anim.h"
+#include "blend_palette.h"
#include "constants/event_objects.h"
+#include "constants/items.h"
#include "constants/moves.h"
#include "constants/songs.h"
#include "constants/species.h"
-#include "battle.h"
-#include "battle_anim.h"
-#include "blend_palette.h"
-#include "contest.h"
+#include "contest_ai.h"
#include "contest_effect.h"
-#include "contest_link_80C857C.h"
+#include "contest_link.h"
#include "data2.h"
#include "decompress.h"
#include "ewram.h"
@@ -23,6 +24,7 @@
#include "palette.h"
#include "random.h"
#include "rom_8077ABC.h"
+#include "scanline_effect.h"
#include "script.h"
#include "sound.h"
#include "sprite.h"
@@ -30,17 +32,16 @@
#include "task.h"
#include "text.h"
#include "tv.h"
-#include "scanline_effect.h"
#include "util.h"
-#include "contest_ai.h"
+
+#include "contest_internal.h"
extern u8 gUnknown_020297ED;
extern void sub_80C8A38(u8);
-extern void sub_80C8AD0(u8);
-extern void sub_80C8C80(u8);
+extern void Task_LinkContest_CommunicateFinalStandings(u8);
+extern void Task_LinkContest_CommunicateAppealsState(u8);
-extern struct MusicPlayerInfo gMPlayInfo_SE1;
extern u8 gBattleMonForms[];
extern u8 gDisplayedStringBattle[];
extern u16 gBattleTypeFlags;
@@ -48,45 +49,20 @@ 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;
-extern const struct ContestPokemon gContestOpponents[60];
-extern const u8 gUnknown_083CA308[][2];
-extern const u8 gUnknown_083CA310[][2];
-extern const u8 gUnknown_083CA318[][2];
-extern const u8 gUnknown_083CA330[][2];
-extern const u8 gUnknown_083CA338[];
-extern const u8 gUnknown_083CA33C[];
extern const u8 gUnknown_083CA340[][4];
-extern const struct SpriteSheet gUnknown_083CA350;
-extern const struct SpriteTemplate gSpriteTemplate_83CA3AC;
-extern const struct CompressedSpriteSheet gUnknown_083CA3C4[];
-extern const struct SpritePalette gUnknown_083CA3E4;
-extern const struct SpriteTemplate gSpriteTemplate_83CA3F4[];
-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 CompressedSpriteSheet gUnknown_083CC3AC;
-extern const struct CompressedSpritePalette gUnknown_083CC3B4[];
-extern const struct SpriteTemplate gSpriteTemplate_83CC454[];
extern const u8 gText_Contest_WhichMoveWillBePlayed[];
extern const u8 gText_Contest_ButItCantParticipate[];
-extern const u8 gUnknown_083CAFD7[];
-extern const u8 gUnknown_083CB00D[];
+extern const u8 gText_MonAppealedWithMove[];
+extern const u8 gText_MonWasWatchingOthers[];
extern const u8 ContestString_JudgeExpectantly2[];
extern const u8 ContestString_WentOverWell[];
extern const u8 ContestString_WentOverVeryWell[];
extern const u8 ContestString_AppealComboExcellently[];
-extern const u8 gUnknown_083CBF60[];
-extern const u8 gUnknown_083CB02C[];
+extern const u8 ContestString_TooNervous[];
+extern const u8 gText_AllOutOfAppealTime[];
extern const u8 *const gContestStandOutStrings[];
extern const u8 ContestString_DissapointedRepeat[];
extern const u8 ContestString_WentOverGreat[];
@@ -95,192 +71,27 @@ extern const u8 ContestString_GotCrowdGoing[];
extern const u8 ContestString_CantAppealNextTurn[];
extern const u8 ContestString_CrowdWatches[];
extern const u8 ContestString_Ignored2[];
-extern const u8 *const gUnknown_083CC188[];
-extern const u8 gText_Contest_Shyness[];
-extern const u8 gText_Contest_Anxiety[];
-extern const u8 gText_Contest_Laziness[];
-extern const u8 gText_Contest_Hesitancy[];
-extern const u8 gText_Contest_Fear[];
extern const u8 *const gContestCategoryStrings[];
-extern const u8 gUnknown_083CC2EC[];
-extern const u8 *const gUnknown_083CC330[];
+extern const u8 *const sInvalidContestMoveNames[];
extern const u8 gUnknownText_UnknownFormatting2[];
extern const u8 gUnknownText_UnknownFormatting3[];
-extern const u8 gUnknown_083CC59C[];
-extern const u8 gUnknown_083CC5A2[];
-extern const u16 gUnknown_083CC5A4[];
-extern const struct ContestWinner gUnknown_083CC5D0[];
-extern const u8 gUnknownText_MissedTurn[];
-extern const u8 gUnknownText_LinkStandbyAndWinner[];
-extern void (*const gContestEffectFuncs[])(void);
-extern const s8 gContestExcitementTable[][5];
-
-void sub_80AB350(void);
-void sub_80AB5D4(u8);
-void sub_80AB604(u8);
-void sub_80AB678(u8);
-void sub_80AB694(u8);
-void sub_80AB6B4(u8);
-u8 sub_80AB70C(u8 *);
-void sub_80AB960(u8);
-void sub_80AB9A0(u8);
-void ContestMainCallback2(void);
-void ContestVBlankCallback(void);
-void sub_80ABB70(u8);
-void sub_80ABC3C(u8);
-void sub_80ABC70(u8);
-void sub_80ABCDC(u8);
-void sub_80ABEA0(u8);
-void sub_80AC0AC(s8);
-void nullsub_17(s8);
-void sub_80AC0C8(u8);
-void sub_80AC15C(u8);
-void sub_80AC188(u8);
-void sub_80AC204(u8);
-void sub_80AC250(u8);
-void sub_80AC284(u8);
-void sub_80AC2CC(u8);
-void sub_80AD8DC(u8);
-void sub_80AD8FC(struct Sprite *);
-void sub_80AD92C(struct Sprite *);
-void sub_80AD960(u8);
-void sub_80ADA1C(u8);
-void sub_80ADA4C(u8);
-void sub_80ADAD8(u8);
-void sub_80ADB04(u8);
-void sub_80ADB48(u8);
-void sub_80ADB88(u8);
-void sub_80ADC10(u8);
-void sub_80ADC4C(u8);
-void sub_80ADC84(u8);
-void sub_80ADCB4(u8);
-void sub_80ADD04(u8);
-void sub_80ADD74(u8);
-void sub_80ADDA4(u8);
-void sub_80ADE54(u8);
-void sub_80ADEAC(u8);
-void sub_80ADEEC(u8);
-void sub_80ADF4C(u8);
-void sub_80ADF98(u8);
-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);
-u8 CreateJudgeSprite(void);
-u8 sub_80AE8B4(void);
-u8 sub_80AE9FC(u16, u32, u32);
-void sub_80AEB30(void);
-void sub_80AEBEC(u16);
-void sub_80AED58(void);
-bool8 sub_80AEE54(u8, u8);
-bool8 sub_80AF038(u8);
-void sub_80AF120(void);
-void sub_80AF138(void);
-u16 GetChosenMove(u8);
-void sub_80AF1B8(void);
-void sub_80AF2A0(u8);
-void sub_80AF2FC(void);
-void sub_80AF3C0(void);
-s16 sub_80AF688(u8);
-void DetermineFinalStandings(void);
-bool8 sub_80AF828(s32, s32, struct UnknownContestStruct6 *);
-void sub_80AF860(void);
-void sub_80AF94C(u8);
-void sub_80AFA5C(void);
-u16 sub_80AFB40(u8);
-s8 sub_80AFB74(s16);
-u8 sub_80AFBA0(s16, s16, u8);
-void sub_80AFC74(u8);
-void sub_80AFE30(void);
-void sub_80AFF10(void);
-bool8 sub_80AFF28(void);
-void sub_80AFF60(struct Sprite *);
-void sub_80AFFE0(bool8);
-void sub_80B0034(void);
-void CreateApplauseMeterSprite(void);
-void nullsub_18(s8);
-void sub_80B0238(struct Sprite *);
-void sub_80B0280(struct Sprite *);
-void sub_80B02A8(struct Sprite *);
-void sub_80B02F4(struct Sprite *);
-void sub_80B0324(void);
-void sub_80B03A8(u8);
-void sub_80B03D8(u8);
-void sub_80B0458(u8);
-void sub_80B0518(void);
-void sub_80B0548(u8);
-void sub_80B05A4(u8);
-void nullsub_19(int);
-void sub_80B05FC(u8);
-void sub_80B0748(u8);
-void sub_80B09B0(u8);
-u8 sub_80B09E4(u8);
-void sub_80B0BC4(u8, bool8);
-void sub_80B0C5C(struct Sprite *);
-void sub_80B0CB0(struct Sprite *);
-void sub_80B0CDC(u8, int);
-void unref_sub_80B0CF4(void);
-void sub_80B0D7C(void);
-void sub_80B1118(void);
-void sub_80B114C(u8);
-void sub_80B146C(u8, u8);
-void sub_80B159C(void);
-void sub_80B1710(u8);
-void sub_80B1928(void);
-u8 sub_80B1A2C(void);
-void c3_08130B10(u8);
-void sub_80B1B14(void);
-void sub_80B1B68(u8);
-void sub_80B1BDC(void);
-void sub_80B1C34(u8);
-void sub_80B1CBC(s8);
-void sub_80B1CFC(u8);
-void sub_80B1DDC(void);
-void sub_80B1DFC(u8);
-void sub_80B1EA8(s8, s8);
-void sub_80B1F4C(u8);
-void sub_80B1FD0(bool8);
-const u8 *GetTurnOrderNumberGfx(u8);
-void sub_80B20C4(void);
-void sub_80B2184(void);
-void sub_80B2280(void);
-void sub_80B237C(u8);
-void sub_80B23BC(u8);
-void sub_80B2400(u8);
-void sub_80B253C(u8);
-void sub_80B25A4(u8);
-void sub_80B25E4(u8);
-void sub_80B26C8(u8);
-u16 SanitizeMove(u16);
-u16 SanitizeSpecies(u16);
-void sub_80B2790(u8);
-void sub_80B28CC(int);
-void sub_80B28F0(u8);
-void sub_80B292C(void);
-void sub_80B2968(void);
-void SelectContestMoveBankTarget(u16);
EWRAM_DATA u8 gUnknown_0203856C = 0;
EWRAM_DATA struct ContestPokemon gContestMons[4] = {0};
-EWRAM_DATA s16 gContestMonConditions[4] = {0};
-EWRAM_DATA s16 gUnknown_02038678[4] = {0};
-EWRAM_DATA s16 gUnknown_02038680[4] = {0};
-EWRAM_DATA s16 gUnknown_02038688[4] = {0};
+EWRAM_DATA s16 gContestMonRound1Points[4] = {0};
+EWRAM_DATA s16 gContestMonTotalPoints[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 gUnknown_0203869B = 0;
+EWRAM_DATA u8 gContestLinkLeaderIndex = 0;
EWRAM_DATA u16 gSpecialVar_ContestCategory = 0;
EWRAM_DATA u16 gSpecialVar_ContestRank = 0;
-void nullsub_89(u8 taskId)
+void TaskDummy1(u8 taskId)
{
}
@@ -323,31 +134,32 @@ void ResetContestGpuRegs(void)
gBattle_WIN1H = 0;
gBattle_WIN1V = 0;
}
+
void LoadContestBgAfterMoveAnim(void)
{
s32 i;
LZDecompressVram(gContestMiscGfx, (void *)VRAM);
LZDecompressVram(gContestAudienceGfx, (void *)(VRAM + 0x2000));
- LZDecompressVram(gUnknown_08D1725C, (void *)(VRAM + 0xD000));
- LoadCompressedPalette(gUnknown_08D17144, 0, 0x200);
- sub_80AB350();
+ LZDecompressVram(gContestGfx, (void *)(VRAM + 0xD000));
+ LoadCompressedPalette(gContestPalette, 0, 0x200);
+ InitContestResources();
for (i = 0; i < 4; i++)
{
u32 var = 5 + i;
- LoadPalette(shared18000.unk18004[var], 16 * (5 + gUnknown_02038696[i]), 16 * sizeof(u16));
+ LoadPalette(eContestTempSave.cachedWindowPalettes[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);
}
-void sub_80AB350(void)
+void InitContestResources(void)
{
u8 i;
@@ -370,23 +182,23 @@ void ClearContestVars(void)
memset(&sContestantStatus[i], 0, sizeof(sContestantStatus[i]));
for (i = 0; i < 4; i++)
{
- sContestantStatus[i].unkB_0 = 0;
+ sContestantStatus[i].ranking = 0;
sContestantStatus[i].effectStringId = CONTEST_STRING_NONE;
sContestantStatus[i].effectStringId2 = CONTEST_STRING_NONE;
}
- memset(&shared192D0, 0, sizeof(shared192D0));
+ memset(&eContestAppealResults, 0, sizeof(eContestAppealResults));
memset(eContestAI, 0, sizeof(struct ContestAIInfo));
- memset(&shared19328, 0, sizeof(shared19328));
- memset(shared19338, 0, 4 * sizeof(*shared19338));
+ memset(&eContestExcitement, 0, sizeof(eContestExcitement));
+ memset(eContestGfxState, 0, 4 * sizeof(*eContestGfxState));
if (!(gIsLinkContest & 1))
- sub_80B0F28(0);
+ SortContestants(0);
for (i = 0; i < 4; i++)
{
sContestantStatus[i].nextTurnOrder = 0xFF;
- sContest.unk19218[i] = gUnknown_02038696[i];
+ sContest.prevTurnOrder[i] = gContestantTurnOrder[i];
}
- sub_80B159C();
+ ApplyNextTurnOrder();
}
void CB2_StartContest(void)
@@ -405,83 +217,83 @@ void CB2_StartContest(void)
ResetTasks();
FreeAllSpritePalettes();
gReservedSpritePaletteCount = 4;
- //shared18000.unk18000 = 0;
- gSharedMem[0x18000] = 0;
+ //eContestTempSave.unk18000 = 0;
+ eEnableContestDebugging = 0;
ClearBattleMonForms();
ClearContestVars();
gMain.state++;
break;
case 1:
- sub_80AB350();
+ InitContestResources();
gMain.state++;
break;
case 2:
- if (sub_80AB70C(&sContest.unk1925D) == 0)
+ if (SetupContestGraphics(&sContest.contestSetupState) == 0)
break;
- sContest.unk1925D = 0;
+ sContest.contestSetupState = 0;
gMain.state++;
break;
case 3:
- sub_80B2184();
+ SetBgForCurtainDrop();
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
BeginFastPaletteFade(2);
gPaletteFade.bufferTransferDisabled = FALSE;
SetVBlankCallback(ContestVBlankCallback);
- sContest.mainTaskId = CreateTask(sub_80AB5D4, 10);
+ sContest.mainTaskId = CreateTask(Task_StartContestWaitFade, 10);
SetMainCallback2(ContestMainCallback2);
break;
}
}
-void sub_80AB5D4(u8 taskId)
+void Task_StartContestWaitFade(u8 taskId)
{
if (!gPaletteFade.active)
- gTasks[taskId].func = sub_80AB604;
+ gTasks[taskId].func = Task_TryStartLinkContest;
}
-void sub_80AB604(u8 taskId)
+void Task_TryStartLinkContest(u8 taskId)
{
if (gIsLinkContest & 1)
{
if (!gPaletteFade.active)
{
gPaletteFade.bufferTransferDisabled = FALSE;
- sub_80AF860();
- CreateTask(sub_80AB678, 0);
- gTasks[taskId].func = nullsub_89;
+ ContestPrintLinkStandby();
+ CreateTask(Task_CommunicateMonIdxs, 0);
+ gTasks[taskId].func = TaskDummy1;
}
}
else
{
- gTasks[taskId].func = sub_80AB960;
+ gTasks[taskId].func = Task_WaitToRaiseCurtainAtStart;
}
}
-void sub_80AB678(u8 taskId)
+void Task_CommunicateMonIdxs(u8 taskId)
{
- SetTaskFuncWithFollowupFunc(taskId, sub_80C89DC, sub_80AB694);
+ SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateMonIdxs, Task_EndCommunicateMonIdxs);
}
-void sub_80AB694(u8 taskId)
+void Task_EndCommunicateMonIdxs(u8 taskId)
{
u16 one = 1;
gTasks[taskId].data[0] = one;
- gTasks[taskId].func = sub_80AB6B4;
+ gTasks[taskId].func = Task_ReadyStartLinkContest;
}
-void sub_80AB6B4(u8 taskId)
+void Task_ReadyStartLinkContest(u8 taskId)
{
if (--gTasks[taskId].data[0] > 0)
return;
GetMultiplayerId(); // unused return value
DestroyTask(taskId);
- gTasks[sContest.mainTaskId].func = sub_80AB960;
+ gTasks[sContest.mainTaskId].func = Task_WaitToRaiseCurtainAtStart;
gRngValue = gContestRngValue;
}
-u8 sub_80AB70C(u8 *a)
+u8 SetupContestGraphics(u8 *a)
{
u16 sp0[16];
u16 sp20[16];
@@ -497,34 +309,34 @@ u8 sub_80AB70C(u8 *a)
break;
case 2:
LZDecompressVram(gContestAudienceGfx, (void *)(VRAM + 0x2000));
- DmaCopyLarge32(3, (void *)(VRAM + 0x2000), shared15800, 0x2000, 0x1000);
+ DmaCopyLarge32(3, (void *)(VRAM + 0x2000), eUnzippedContestAudience_Gfx, 0x2000, 0x1000);
break;
case 3:
- LZDecompressVram(gUnknown_08D1725C, (void *)(VRAM + 0xD000));
+ LZDecompressVram(gContestGfx, (void *)(VRAM + 0xD000));
break;
case 4:
- LZDecompressVram(gUnknown_08D17424, (void *)(VRAM + 0xE000));
- DmaCopy32Defvars(3, (void *)(VRAM + 0xE000), shared18000.unk18A04, 0x800);
+ LZDecompressVram(gContestBgmap, (void *)(VRAM + 0xE000));
+ DmaCopy32Defvars(3, (void *)(VRAM + 0xE000), eContestTempSave.savedJunk, 0x800);
break;
case 5:
- LoadCompressedPalette(gUnknown_08D17144, 0, 0x200);
+ LoadCompressedPalette(gContestPalette, 0, 0x200);
CpuCopy32(gPlttBufferUnfaded + 128, sp0, 16 * sizeof(u16));
CpuCopy32(gPlttBufferUnfaded + (5 + gContestPlayerMonIndex) * 16, sp20, 16 * sizeof(u16));
CpuCopy32(sp20, gPlttBufferUnfaded + 128, 16 * sizeof(u16));
CpuCopy32(sp0, gPlttBufferUnfaded + (5 + gContestPlayerMonIndex) * 16, 16 * sizeof(u16));
- DmaCopy32Defvars(3, gPlttBufferUnfaded, shared18000.unk18004, 0x200);
- sub_80AB350();
+ DmaCopy32Defvars(3, gPlttBufferUnfaded, eContestTempSave.cachedWindowPalettes, 0x200);
+ InitContestResources();
break;
case 6:
- sub_80B1118();
- sub_80AFA5C();
- sub_80AEB30();
- sContest.unk19216 = sub_80AE8B4();
- sub_80AFE30();
- sub_80B0034();
+ DrawContestantWindows();
+ FillContestantWindowBgs();
+ SwapMoveDescAndContestTilemaps();
+ sContest.judgeSpeechBubbleSpriteId = CreateJudgeSpeechBubbleSprite();
+ CreateSliderHeartSprites();
+ CreateNextTurnSprites();
CreateApplauseMeterSprite();
- sub_80B0324();
- sub_80B0518();
+ CreateJudgeAttentionEyeTask();
+ CreateUnusedBlendTask();
gBattlerPositions[0] = 0;
gBattlerPositions[1] = 1;
gBattlerPositions[2] = 3;
@@ -533,7 +345,7 @@ u8 sub_80AB70C(u8 *a)
gBattlerAttacker = 2;
gBattlerTarget = 3;
gBattlerSpriteIds[gBattlerAttacker] = CreateJudgeSprite();
- sub_80B292C();
+ CreateInvisibleBattleTargetSprite();
break;
default:
*a = 0;
@@ -544,18 +356,18 @@ u8 sub_80AB70C(u8 *a)
return 0;
}
-void sub_80AB960(u8 taskId)
+void Task_WaitToRaiseCurtainAtStart(u8 taskId)
{
gPaletteFade.bufferTransferDisabled = FALSE;
if (!gPaletteFade.active)
{
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[1] = 0;
- gTasks[taskId].func = sub_80AB9A0;
+ gTasks[taskId].func = Task_RaiseCurtainAtStart;
}
}
-void sub_80AB9A0(u8 taskId)
+void Task_RaiseCurtainAtStart(u8 taskId)
{
switch (gTasks[taskId].data[0])
{
@@ -572,22 +384,22 @@ void sub_80AB9A0(u8 taskId)
gTasks[taskId].data[0]++;
break;
case 2:
- sub_80B2280();
+ UpdateContestantBoxOrder();
gTasks[taskId].data[0]++;
break;
case 3:
REG_BG0CNT_BITFIELD.priority = 0;
REG_BG2CNT_BITFIELD.priority = 0;
- sub_80B1B14();
+ SlideApplauseMeterIn();
gTasks[taskId].data[0]++;
break;
case 4:
default:
- if (sContest.unk1920A_6)
+ if (sContest.applauseMeterIsMoving)
break;
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[1] = 0;
- gTasks[taskId].func = sub_80ABB70;
+ gTasks[taskId].func = Task_DisplayAppealNumberText;
break;
}
}
@@ -595,8 +407,8 @@ void sub_80AB9A0(u8 taskId)
void ContestMainCallback2(void)
{
#if DEBUG
- if (gUnknown_020297ED == 1 && gMain.newKeys == 4)
- unref_sub_80B0CF4();
+ if (gUnknown_020297ED == 1 && gMain.newKeys == SELECT_BUTTON)
+ ContestDebugTogglePointTotal();
#endif
AnimateSprites();
RunTasks();
@@ -624,48 +436,48 @@ void ContestVBlankCallback(void)
ScanlineEffect_InitHBlankDmaTransfer();
}
-void sub_80ABB70(u8 taskId)
+void Task_DisplayAppealNumberText(u8 taskId)
{
gBattle_BG0_Y = 0;
gBattle_BG2_Y = 0;
- sub_80B0D7C();
- DmaCopy32Defvars(3, gPlttBufferUnfaded, shared18000.unk18204, 0x400);
+ ContestDebugDoPrint();
+ DmaCopy32Defvars(3, gPlttBufferUnfaded, eContestTempSave.cachedPlttBufferUnfaded, 0x400);
if (!Contest_IsMonsTurnDisabled(gContestPlayerMonIndex))
StringCopy(gDisplayedStringBattle, gText_Contest_WhichMoveWillBePlayed);
else
StringCopy(gDisplayedStringBattle, gText_Contest_ButItCantParticipate);
- InsertStringDigit(gDisplayedStringBattle, sContest.turnNumber + 1);
- sub_80AF138();
+ InsertStringDigit(gDisplayedStringBattle, sContest.appealNumber + 1);
+ ContestClearGeneralTextWindow();
StringExpandPlaceholders(gStringVar4, gDisplayedStringBattle);
- Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
+ Contest_StartTextPrinter(&gMenuWindow, gStringVar4, 776, 1, 15);
gTasks[taskId].func = sub_80ABC3C;
}
void sub_80ABC3C(u8 taskId)
{
- if (Text_UpdateWindowInContest(&gMenuWindow) == 1)
- gTasks[taskId].func = sub_80ABC70;
+ if (Contest_RunTextPrinter(&gMenuWindow) == 1)
+ gTasks[taskId].func = Task_TryShowMoveSelectScreen;
}
-void sub_80ABC70(u8 taskId)
+void Task_TryShowMoveSelectScreen(u8 taskId)
{
if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys == B_BUTTON))
{
PlaySE(SE_SELECT);
if (!Contest_IsMonsTurnDisabled(gContestPlayerMonIndex))
{
- sub_80AFFE0(TRUE);
- gTasks[taskId].func = sub_80ABCDC;
+ SetBottomSliderHeartsInvisibility(TRUE);
+ gTasks[taskId].func = Task_ShowMoveSelectScreen;
}
else
{
- gTasks[taskId].func = sub_80AC0C8;
+ gTasks[taskId].func = Task_SelectedMove;
}
}
}
// Print the move list
-void sub_80ABCDC(u8 taskId)
+void Task_ShowMoveSelectScreen(u8 taskId)
{
u8 i;
u8 sp8[32];
@@ -673,7 +485,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],
@@ -686,7 +498,8 @@ void sub_80ABCDC(u8 taskId)
u8 *r5 = sp8;
if (sContestantStatus[gContestPlayerMonIndex].prevMove != MOVE_NONE
- && sub_80B214C(gContestPlayerMonIndex)
+ &&
+ IsContestantAllowedToCombo(gContestPlayerMonIndex)
&& AreMovesContestCombo(sContestantStatus[gContestPlayerMonIndex].prevMove, move) != 0
&& sContestantStatus[gContestPlayerMonIndex].hasJudgesAttention)
{
@@ -702,25 +515,25 @@ 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]);
- gTasks[taskId].func = sub_80ABEA0;
+ DrawMoveSelectArrow(sContest.playerMoveChoice);
+ PrintContestMoveDescription(gContestMons[gContestPlayerMonIndex].moves[sContest.playerMoveChoice]);
+ gTasks[taskId].func = Task_HandleMoveSelectInput;
}
void debug_sub_80B9EBC(u8);
// Handle move selection input
-void sub_80ABEA0(u8 taskId)
+void Task_HandleMoveSelectInput(u8 taskId)
{
u8 numMoves = 0;
s32 i;
@@ -735,7 +548,7 @@ void sub_80ABEA0(u8 taskId)
{
DestroyMenuCursor();
PlaySE(SE_SELECT);
- gTasks[taskId].func = sub_80AC0C8;
+ gTasks[taskId].func = Task_SelectedMove;
}
else
{
@@ -744,9 +557,9 @@ void sub_80ABEA0(u8 taskId)
case B_BUTTON:
sub_814A904();
PlaySE(SE_SELECT);
- sub_80AFFE0(FALSE);
+ SetBottomSliderHeartsInvisibility(FALSE);
Text_FillWindowRectDefPalette(
- &gUnknown_03004210,
+ &gWindowTemplate_Contest_MoveDescription,
0,
gUnknown_083CA340[0][0],
gUnknown_083CA340[0][1],
@@ -756,38 +569,38 @@ void sub_80ABEA0(u8 taskId)
StringCopy(gDisplayedStringBattle, gText_Contest_WhichMoveWillBePlayed);
else
StringCopy(gDisplayedStringBattle, gText_Contest_ButItCantParticipate);
- InsertStringDigit(gDisplayedStringBattle, sContest.turnNumber + 1);
- sub_80AF138();
+ InsertStringDigit(gDisplayedStringBattle, sContest.appealNumber + 1);
+ ContestClearGeneralTextWindow();
StringExpandPlaceholders(gStringVar4, gDisplayedStringBattle);
Text_InitWindowAndPrintText(&gMenuWindow, gStringVar4, 776, 1, 15);
gBattle_BG0_Y = 0;
gBattle_BG2_Y = 0;
- gTasks[taskId].func = sub_80ABC70;
+ gTasks[taskId].func = Task_TryShowMoveSelectScreen;
break;
case DPAD_LEFT:
case DPAD_RIGHT:
break;
case DPAD_UP:
- nullsub_17(sContest.playerMoveChoice);
+ EraseMoveSelectArrow(sContest.playerMoveChoice);
if (sContest.playerMoveChoice == 0)
sContest.playerMoveChoice = numMoves - 1;
else
sContest.playerMoveChoice--;
- sub_80AC0AC(sContest.playerMoveChoice);
- sub_80AED58();
- sub_80AEBEC(gContestMons[gContestPlayerMonIndex].moves[sContest.playerMoveChoice]);
+ DrawMoveSelectArrow(sContest.playerMoveChoice);
+ Contest_ClearMoveDescriptionBox();
+ PrintContestMoveDescription(gContestMons[gContestPlayerMonIndex].moves[sContest.playerMoveChoice]);
if (numMoves > 1)
PlaySE(SE_SELECT);
break;
case DPAD_DOWN:
- nullsub_17(sContest.playerMoveChoice);
+ EraseMoveSelectArrow(sContest.playerMoveChoice);
if (sContest.playerMoveChoice == numMoves - 1)
sContest.playerMoveChoice = 0;
else
sContest.playerMoveChoice++;
- sub_80AC0AC(sContest.playerMoveChoice);
- sub_80AED58();
- sub_80AEBEC(gContestMons[gContestPlayerMonIndex].moves[sContest.playerMoveChoice]);
+ DrawMoveSelectArrow(sContest.playerMoveChoice);
+ Contest_ClearMoveDescriptionBox();
+ PrintContestMoveDescription(gContestMons[gContestPlayerMonIndex].moves[sContest.playerMoveChoice]);
if (numMoves > 1)
PlaySE(SE_SELECT);
break;
@@ -817,27 +630,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]);
+ Contest_ClearMoveDescriptionBox();
+ PrintContestMoveDescription(gTasks[taskId].data[1]);
gTasks[taskId].data[0]++;
break;
case 1:
@@ -871,7 +684,7 @@ void debug_sub_80B9EBC(u8 taskId)
case 8:
gBattle_BG0_Y = 0;
gBattle_BG2_Y = 0;
- sub_80B1BDC();
+ SlideApplauseMeterOut();
gTasks[taskId].data[0] = 0;
gTasks[taskId].func = debug_sub_80BA054;
break;
@@ -883,7 +696,7 @@ void debug_sub_80B9EBC(u8 taskId)
gTasks[taskId].data[1] = 0;
gTasks[taskId].data[2] = 0;
gTasks[taskId].data[3] = 0;
- gTasks[taskId].func = sub_80ABCDC;
+ gTasks[taskId].func = Task_ShowMoveSelectScreen;
break;
}
break;
@@ -900,27 +713,27 @@ void debug_sub_80BA054(u8 taskId)
case 0:
for (i = 0; i < 4; i++)
gBattleMonForms[i] = 0;
- memset(&shared19348, 0, sizeof(shared19348));
- sub_80B28F0(gContestPlayerMonIndex);
- r6 = sub_80AE9FC(
+ memset(&gContestResources__moveAnim, 0, sizeof(gContestResources__moveAnim));
+ SetMoveAnimAttackerData(gContestPlayerMonIndex);
+ r6 = CreateContestantSprite(
gContestMons[gContestPlayerMonIndex].species,
gContestMons[gContestPlayerMonIndex].otId,
gContestMons[gContestPlayerMonIndex].personality);
gSprites[r6].pos2.x = 120;
- gSprites[r6].callback = sub_80AD8FC;
+ gSprites[r6].callback = SpriteCB_MonSlideIn;
gTasks[taskId].data[2] = r6;
gBattlerSpriteIds[gBattlerAttacker] = r6;
gTasks[taskId].data[3] = 0;
gTasks[taskId].data[0]++;
- sContest.unk1925E = 0;
+ sContest.moveAnimTurnCount = 0;
break;
case 1:
r6 = gTasks[taskId].data[2];
if (gSprites[r6].callback == SpriteCallbackDummy)
{
sContestantStatus[gContestPlayerMonIndex].currMove = gTasks[taskId].data[1];
- sub_80B2790(gContestPlayerMonIndex);
- sub_80B28F0(gContestPlayerMonIndex);
+ SetMoveSpecificAnimData(gContestPlayerMonIndex);
+ SetMoveAnimAttackerData(gContestPlayerMonIndex);
SelectContestMoveBankTarget(gTasks[taskId].data[1]);
DoMoveAnim(gTasks[taskId].data[1]);
gTasks[taskId].data[3] = 0;
@@ -931,8 +744,8 @@ void debug_sub_80BA054(u8 taskId)
gAnimScriptCallback();
if (!gAnimScriptActive)
{
- sub_80B28CC(gContestPlayerMonIndex);
- if (sContest.unk1925E != 0)
+ ClearMoveAnimData(gContestPlayerMonIndex);
+ if (sContest.moveAnimTurnCount != 0)
{
gTasks[taskId].data[10] = 0;
gTasks[taskId].data[0] = 20;
@@ -948,8 +761,8 @@ void debug_sub_80BA054(u8 taskId)
if (gTasks[taskId].data[3] == 21)
{
r6 = gTasks[taskId].data[2];
- gSprites[r6].callback = sub_80AD92C;
- sub_80B1B14();
+ gSprites[r6].callback = SpriteCB_MonSlideOut;
+ SlideApplauseMeterIn();
gTasks[taskId].data[3] = 0;
gTasks[taskId].data[0]++;
}
@@ -978,16 +791,16 @@ void debug_sub_80BA054(u8 taskId)
#endif
-void sub_80AC0AC(s8 a)
+void DrawMoveSelectArrow(s8 a)
{
MenuCursor_SetPos814A880(4, 88 + a * 16);
}
-void nullsub_17(s8 a)
+void EraseMoveSelectArrow(s8 a)
{
}
-void sub_80AC0C8(u8 taskId)
+void Task_SelectedMove(u8 taskId)
{
if (gIsLinkContest & 1)
{
@@ -996,115 +809,116 @@ void sub_80AC0C8(u8 taskId)
sContestantStatus[gContestPlayerMonIndex].currMove = var;
taskId2 = CreateTask(sub_80C8A38, 0);
- SetTaskFuncWithFollowupFunc(taskId2, sub_80C8A38, sub_80AC15C);
- gTasks[taskId].func = nullsub_89;
- sub_80AF860();
- sub_80AFFE0(FALSE);
+ SetTaskFuncWithFollowupFunc(taskId2, sub_80C8A38, Task_EndCommunicateMoveSelections);
+ gTasks[taskId].func = TaskDummy1;
+ ContestPrintLinkStandby();
+ SetBottomSliderHeartsInvisibility(FALSE);
}
else
{
- sub_80AF1B8();
- gTasks[taskId].func = sub_80AC188;
+ GetAllChosenMoves();
+ gTasks[taskId].func = Task_HideMoveSelectScreen;
}
}
-void sub_80AC15C(u8 taskId)
+void Task_EndCommunicateMoveSelections(u8 taskId)
{
DestroyTask(taskId);
- gTasks[sContest.mainTaskId].func = sub_80AC188;
+ gTasks[sContest.mainTaskId].func = Task_HideMoveSelectScreen;
}
-void sub_80AC188(u8 taskId)
+void Task_HideMoveSelectScreen(u8 taskId)
{
- sub_80AF138();
+ ContestClearGeneralTextWindow();
gBattle_BG0_Y = 0;
gBattle_BG2_Y = 0;
- sub_80AFFE0(FALSE);
- DmaCopy32Defvars(3, gPlttBufferFaded, shared18000.unk18604, 0x400);
- LoadPalette(shared18000.unk18204, 0, 0x400);
+ SetBottomSliderHeartsInvisibility(FALSE);
+ DmaCopy32Defvars(3, gPlttBufferFaded, eContestTempSave.cachedPlttBufferFaded, 0x400);
+ LoadPalette(eContestTempSave.cachedPlttBufferUnfaded, 0, 0x400);
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[1] = 0;
- gTasks[taskId].func = sub_80AC204;
+ gTasks[taskId].func = Task_HideApplauseMeterForAppealStart;
}
-void sub_80AC204(u8 taskId)
+void Task_HideApplauseMeterForAppealStart(u8 taskId)
{
if (++gTasks[taskId].data[0] > 2)
{
gTasks[taskId].data[0] = 0;
if (++gTasks[taskId].data[1] == 2)
{
- sub_80B1BDC();
- sub_80B25E4(1);
- gTasks[taskId].func = sub_80AC250;
+ SlideApplauseMeterOut();
+ AnimateSliderHearts(1);
+ gTasks[taskId].func = Task_WaitHideApplauseMeterForAppealStart;
}
}
}
-void sub_80AC250(u8 taskId)
+void Task_WaitHideApplauseMeterForAppealStart(u8 taskId)
{
- if (!sContest.unk1920A_6 && !sContest.unk1920B_1)
- gTasks[taskId].func = sub_80AC284;
+ if (!sContest.applauseMeterIsMoving && !sContest.sliderHeartsAnimating)
+ gTasks[taskId].func = Task_AppealSetup;
}
-void sub_80AC284(u8 taskId)
+void Task_AppealSetup(u8 taskId)
{
if (++gTasks[taskId].data[0] > 19)
{
- sContest.unk19214 = 0;
- sContest.unk1921C = gRngValue;
+ sContest.turnNumber = 0;
+ sContest.unusedRng = gRngValue;
gTasks[taskId].data[0] = 0;
- gTasks[taskId].func = sub_80AC2CC;
+ gTasks[taskId].func = Task_DoAppeals;
}
}
-void sub_80AC2CC(u8 taskId)
+void Task_DoAppeals(u8 taskId)
{
u8 spriteId;
s32 i;
- u8 r7 = sContest.unk19215;
+ u8 contestant = sContest.currentContestant;
s8 r4;
switch (gTasks[taskId].data[0])
{
case 0:
- sub_80B0D7C();
- for (i = 0; sContest.unk19214 != shared192D0.turnOrder[i]; i++)
+ ContestDebugDoPrint();
+ for (i = 0; sContest.turnNumber != eContestAppealResults.turnOrder[i]; i++)
;
- sContest.unk19215 = i;
- r7 = sContest.unk19215;
+ sContest.currentContestant = i;
+ contestant = sContest.currentContestant;
if (gIsLinkContest & 1)
{
u8 taskId2;
- sContest.unk1920B_2 = 1;
- if (sub_80AE074())
- sub_80B114C(sContest.unk19215);
- taskId2 = CreateTask(sub_80C8C80, 0);
- SetTaskFuncWithFollowupFunc(taskId2, sub_80C8C80, sub_80AD8DC);
- sub_80AF860();
+ sContest.waitForLink = 1;
+ if (IsPlayerLinkLeader())
+ CalculateAppealMoveImpact(sContest.currentContestant);
+ taskId2 = CreateTask(Task_LinkContest_CommunicateAppealsState, 0);
+ SetTaskFuncWithFollowupFunc(
+ taskId2, Task_LinkContest_CommunicateAppealsState, Task_EndWaitForLink);
+ ContestPrintLinkStandby();
gTasks[taskId].data[0] = 1;
}
else
{
- sub_80B114C(sContest.unk19215);
+ CalculateAppealMoveImpact(sContest.currentContestant);
gTasks[taskId].data[0] = 2;
}
return;
case 1:
- if (!sContest.unk1920B_2)
+ if (!sContest.waitForLink)
gTasks[taskId].data[0] = 2;
return;
case 2:
- if (sContestantStatus[r7].numTurnsSkipped != 0
- || sContestantStatus[r7].noMoreTurns)
+ if (sContestantStatus[contestant].numTurnsSkipped != 0
+ || sContestantStatus[contestant].noMoreTurns)
{
gTasks[taskId].data[0] = 31;
}
else
{
- sub_80AF138();
- sub_80B0CDC(r7, 0);
+ ContestClearGeneralTextWindow();
+ Unused_EndBlinkingState(contestant, 0);
gTasks[taskId].data[10] = 0;
gTasks[taskId].data[0] = 3;
}
@@ -1112,58 +926,59 @@ void sub_80AC2CC(u8 taskId)
case 3:
for (i = 0; i < 4; i++)
gBattleMonForms[i] = 0;
- memset(&shared19348, 0, sizeof(shared19348));
- sub_80B28F0(sContest.unk19215);
- spriteId = sub_80AE9FC(
- gContestMons[sContest.unk19215].species,
- gContestMons[sContest.unk19215].otId,
- gContestMons[sContest.unk19215].personality);
+ memset(&gContestResources__moveAnim, 0, sizeof(gContestResources__moveAnim));
+ SetMoveAnimAttackerData(sContest.currentContestant);
+ spriteId = CreateContestantSprite(
+ gContestMons[sContest.currentContestant].species,
+ gContestMons[sContest.currentContestant].otId,
+ gContestMons[sContest.currentContestant].personality);
gSprites[spriteId].pos2.x = 120;
- gSprites[spriteId].callback = sub_80AD8FC;
+ gSprites[spriteId].callback = SpriteCB_MonSlideIn;
gTasks[taskId].data[2] = spriteId;
gBattlerSpriteIds[gBattlerAttacker] = spriteId;
- sub_80B0BC4(sub_80B09E4(sContest.unk19215), FALSE);
+ BlinkContestantBox(CreateContestantBoxBlinkSprites(sContest.currentContestant), FALSE);
gTasks[taskId].data[0] = 4;
return;
case 4:
spriteId = gTasks[taskId].data[2];
if (gSprites[spriteId].callback == SpriteCallbackDummy)
{
- if (!shared19338[r7].unk2_1)
+ if (!eContestGfxState[contestant].boxBlinking)
gTasks[taskId].data[0] = 5;
}
return;
case 5:
- if (sContestantStatus[r7].nervous)
+ if (sContestantStatus[contestant].nervous)
{
gTasks[taskId].data[0] = 33;
}
else
{
- sub_80AF138();
- StringCopy(gStringVar1, gContestMons[r7].nickname);
- if (sContestantStatus[r7].currMove < NUM_MOVES)
- StringCopy(gStringVar2, gMoveNames[sContestantStatus[r7].currMove]);
+ ContestClearGeneralTextWindow();
+ StringCopy(gStringVar1, gContestMons[contestant].nickname);
+ if (sContestantStatus[contestant].currMove < NUM_MOVES)
+ StringCopy(gStringVar2, gMoveNames[sContestantStatus[contestant].currMove]);
else
- StringCopy(gStringVar2, gUnknown_083CC330[sContestantStatus[r7].moveCategory]);
- StringExpandPlaceholders(gStringVar4, gUnknown_083CAFD7);
- Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
+ StringCopy(gStringVar2,
+ sInvalidContestMoveNames[sContestantStatus[contestant].moveCategory]);
+ StringExpandPlaceholders(gStringVar4, gText_MonAppealedWithMove);
+ Contest_StartTextPrinter(&gMenuWindow, gStringVar4, 776, 1, 15);
gTasks[taskId].data[0] = 6;
}
return;
case 6:
- if (Text_UpdateWindowInContest(&gMenuWindow) != 0)
+ if (Contest_RunTextPrinter(&gMenuWindow) != 0)
{
- sContest.unk1925E = 0;
+ sContest.moveAnimTurnCount = 0;
gTasks[taskId].data[0] = 7;
}
return;
case 7:
{
- u16 move = SanitizeMove(sContestantStatus[sContest.unk19215].currMove);
+ u16 move = SanitizeMove(sContestantStatus[sContest.currentContestant].currMove);
- sub_80B2790(sContest.unk19215);
- sub_80B28F0(sContest.unk19215);
+ SetMoveSpecificAnimData(sContest.currentContestant);
+ SetMoveAnimAttackerData(sContest.currentContestant);
SelectContestMoveBankTarget(move);
DoMoveAnim(move);
gTasks[taskId].data[0] = 8;
@@ -1173,17 +988,17 @@ void sub_80AC2CC(u8 taskId)
gAnimScriptCallback();
if (!gAnimScriptActive)
{
- sub_80B28CC(r7);
- if (sContest.unk1925E != 0)
+ ClearMoveAnimData(contestant);
+ if (sContest.moveAnimTurnCount != 0)
{
gTasks[taskId].data[10] = 0;
gTasks[taskId].data[0] = 9;
}
else
{
- if (!sContestantStatus[r7].hasJudgesAttention)
- sub_80B03A8(r7);
- sub_80B20C4();
+ if (!sContestantStatus[contestant].hasJudgesAttention)
+ sub_80B03A8(contestant);
+ DrawUnnervedSymbols();
gTasks[taskId].data[0] = 23;
}
}
@@ -1197,25 +1012,26 @@ void sub_80AC2CC(u8 taskId)
return;
case 23:
gTasks[taskId].data[1] = 0;
- if (sContestantStatus[r7].effectStringId != CONTEST_STRING_NONE)
+ if (sContestantStatus[contestant].effectStringId != CONTEST_STRING_NONE)
{
- sub_80B146C(r7, sContestantStatus[r7].effectStringId);
- sContestantStatus[r7].effectStringId = CONTEST_STRING_NONE;
+ PrintAppealMoveResultText(contestant, sContestantStatus[contestant].effectStringId);
+ sContestantStatus[contestant].effectStringId = CONTEST_STRING_NONE;
gTasks[taskId].data[0] = 24;
}
else
{
- if (sContestantStatus[r7].effectStringId2 != CONTEST_STRING_NONE)
+ if (sContestantStatus[contestant].effectStringId2 != CONTEST_STRING_NONE)
{
for (i = 0; i < 4; i++)
{
- if (i != r7 && sContestantStatus[i].effectStringId != CONTEST_STRING_NONE)
+ if (i != contestant && sContestantStatus[i].effectStringId != CONTEST_STRING_NONE)
break;
}
if (i == 4)
{
- sub_80B146C(r7, sContestantStatus[r7].effectStringId2);
- sContestantStatus[r7].effectStringId2 = CONTEST_STRING_NONE;
+ PrintAppealMoveResultText(
+ contestant, sContestantStatus[contestant].effectStringId2);
+ sContestantStatus[contestant].effectStringId2 = CONTEST_STRING_NONE;
gTasks[taskId].data[0] = 24;
}
else
@@ -1230,21 +1046,21 @@ void sub_80AC2CC(u8 taskId)
}
return;
case 24:
- if (Text_UpdateWindowInContest(&gMenuWindow) != 0)
+ if (Contest_RunTextPrinter(&gMenuWindow) != 0)
gTasks[taskId].data[0] = 23;
return;
case 48:
- if (sContestantStatus[r7].turnOrderModAction == 1)
+ if (sContestantStatus[contestant].turnOrderModAction == 1)
{
- sub_80B1710(5);
+ DoJudgeSpeechBubble(5);
}
- else if (sContestantStatus[r7].turnOrderModAction == 2)
+ else if (sContestantStatus[contestant].turnOrderModAction == 2)
{
- sub_80B1710(6);
+ DoJudgeSpeechBubble(6);
}
- else if (sContestantStatus[r7].turnOrderModAction == 3)
+ else if (sContestantStatus[contestant].turnOrderModAction == 3)
{
- sub_80B1710(7);
+ DoJudgeSpeechBubble(7);
}
else
{
@@ -1254,32 +1070,32 @@ void sub_80AC2CC(u8 taskId)
gTasks[taskId].data[0] = 49;
return;
case 49:
- if (!sContest.unk1920A_4)
+ if (!sContest.waitForJudgeSpeechBubble)
gTasks[taskId].data[0] = 47;
return;
case 47:
- sub_80B1FD0(TRUE);
+ ShowHideNextTurnGfx(TRUE);
gTasks[taskId].data[0] = 12;
return;
case 12:
- sub_80AFBA0(0, sContestantStatus[r7].appeal2, r7);
+ UpdateAppealHearts(0, sContestantStatus[contestant].appeal, contestant);
gTasks[taskId].data[0] = 13;
return;
case 13:
- if (!shared19338[sContest.unk19215].unk2_2)
+ if (!eContestGfxState[sContest.currentContestant].updatingAppealHearts)
gTasks[taskId].data[0] = 35;
return;
case 35:
- if (sContestantStatus[r7].conditionMod == 1)
- sub_80B1710(8);
+ if (sContestantStatus[contestant].conditionMod == 1)
+ DoJudgeSpeechBubble(8);
gTasks[taskId].data[0] = 36;
return;
case 36:
- if (!sContest.unk1920A_4)
+ if (!sContest.waitForJudgeSpeechBubble)
gTasks[taskId].data[0] = 37;
return;
case 37:
- if (sub_80AEE54(r7, 1))
+ if (UpdateConditionStars(contestant, 1))
{
gTasks[taskId].data[10] = 0;
gTasks[taskId].data[0] = 38;
@@ -1297,7 +1113,7 @@ void sub_80AC2CC(u8 taskId)
}
return;
case 50:
- if (sub_80AF038(r7))
+ if (DrawStatusSymbol(contestant))
PlaySE(SE_CONTEST_ICON_CHANGE);
gTasks[taskId].data[0] = 25;
return;
@@ -1315,7 +1131,7 @@ void sub_80AC2CC(u8 taskId)
r4 = 0;
for (r2 = 0; r2 < 4; r2++)
{
- if (r2 != r7 && gUnknown_02038696[r2] == i
+ if (r2 != contestant && gContestantTurnOrder[r2] == i
&& sContestantStatus[r2].effectStringId != CONTEST_STRING_NONE)
{
r4 = 1;
@@ -1327,8 +1143,8 @@ void sub_80AC2CC(u8 taskId)
}
if (r4)
{
- gTasks[taskId].data[1] = gUnknown_02038696[r2];
- sub_80B146C(r2, sContestantStatus[r2].effectStringId);
+ gTasks[taskId].data[1] = gContestantTurnOrder[r2];
+ PrintAppealMoveResultText(r2, sContestantStatus[r2].effectStringId);
sContestantStatus[r2].effectStringId = CONTEST_STRING_NONE;
gTasks[taskId].data[0] = 27;
}
@@ -1337,30 +1153,31 @@ void sub_80AC2CC(u8 taskId)
gTasks[taskId].data[1] = 0;
gTasks[taskId].data[10] = 0;
gTasks[taskId].data[0] = 51;
- sub_80AF120();
+ DrawStatusSymbols();
}
}
return;
case 27:
- if (Text_UpdateWindowInContest(&gMenuWindow) != 0)
+ if (Contest_RunTextPrinter(&gMenuWindow) != 0)
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);
+ UpdateAppealHearts(
+ sContestantStatus[i].appeal + 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)
+ if (!eContestGfxState[i].updatingAppealHearts)
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 +1197,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);
@@ -1399,92 +1216,92 @@ void sub_80AC2CC(u8 taskId)
if (gTasks[taskId].data[10]++ > 9)
{
gTasks[taskId].data[10] = 0;
- if (sContestantStatus[r7].numTurnsSkipped != 0
- || sContestantStatus[r7].turnSkipped)
+ if (sContestantStatus[contestant].numTurnsSkipped != 0
+ || sContestantStatus[contestant].turnSkipped)
{
- sub_80AF138();
- StringCopy(gStringVar1, gContestMons[r7].nickname);
+ ContestClearGeneralTextWindow();
+ StringCopy(gStringVar1, gContestMons[contestant].nickname);
StringExpandPlaceholders(gStringVar4, ContestString_CantAppealNextTurn);
- Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
+ Contest_StartTextPrinter(&gMenuWindow, gStringVar4, 776, 1, 15);
}
gTasks[taskId].data[0] = 52;
}
return;
case 52:
- if (Text_UpdateWindowInContest(&gMenuWindow) != 0)
+ if (Contest_RunTextPrinter(&gMenuWindow) != 0)
{
- if (!sContestantStatus[r7].unk15_6)
+ if (!sContestantStatus[contestant].usedComboMove)
gTasks[taskId].data[0] = 17;
else
gTasks[taskId].data[0] = 14;
}
return;
case 14:
- r4 = sContestantStatus[r7].unk16;
- if (sContestantStatus[r7].unk16 != 0)
+ r4 = sContestantStatus[contestant].completedCombo;
+ if (sContestantStatus[contestant].completedCombo != 0)
{
- sub_80AF138();
+ ContestClearGeneralTextWindow();
if (r4 == 1)
- Text_InitWindow8002EB0(&gMenuWindow, ContestString_WentOverWell, 776, 1, 15);
+ Contest_StartTextPrinter(&gMenuWindow, ContestString_WentOverWell, 776, 1, 15);
else if (r4 == 2)
- Text_InitWindow8002EB0(&gMenuWindow, ContestString_WentOverVeryWell, 776, 1, 15);
+ Contest_StartTextPrinter(&gMenuWindow, ContestString_WentOverVeryWell, 776, 1, 15);
else
- Text_InitWindow8002EB0(&gMenuWindow, ContestString_AppealComboExcellently, 776, 1, 15);
- sub_80B1710(3);
+ Contest_StartTextPrinter(
+ &gMenuWindow, ContestString_AppealComboExcellently, 776, 1, 15);
+ DoJudgeSpeechBubble(3);
gTasks[taskId].data[10] = 0;
gTasks[taskId].data[0] = 45;
}
else
{
- sub_80AF138();
- StringCopy(gStringVar1, gContestMons[r7].nickname);
+ ContestClearGeneralTextWindow();
+ StringCopy(gStringVar1, gContestMons[contestant].nickname);
StringExpandPlaceholders(gStringVar4, ContestString_JudgeExpectantly2);
- Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
- sub_80B1710(2);
+ Contest_StartTextPrinter(&gMenuWindow, gStringVar4, 776, 1, 15);
+ DoJudgeSpeechBubble(2);
gTasks[taskId].data[10] = 0;
gTasks[taskId].data[0] = 45;
}
return;
case 45:
- if (!sContest.unk1920A_4)
+ if (!sContest.waitForJudgeSpeechBubble)
{
- sub_80B09B0(sContest.unk19215);
+ StartStopFlashJudgeAttentionEye(sContest.currentContestant);
gTasks[taskId].data[0] = 15;
}
return;
case 15:
- if (Text_UpdateWindowInContest(&gMenuWindow) != 0)
+ if (Contest_RunTextPrinter(&gMenuWindow) != 0)
{
if (++gTasks[taskId].data[10] > 50)
{
- if (!sContestantStatus[r7].hasJudgesAttention)
+ if (!sContestantStatus[contestant].hasJudgesAttention)
{
- sub_80AFBA0(
- sContestantStatus[r7].appeal2,
- sContestantStatus[r7].unk17,
- r7);
- sContestantStatus[r7].appeal2 += sContestantStatus[r7].unk17;
+ UpdateAppealHearts(
+ sContestantStatus[contestant].appeal, sContestantStatus[contestant].comboAppealBonus,
+ contestant);
+ sContestantStatus[contestant].appeal += sContestantStatus[contestant].comboAppealBonus;
}
gTasks[taskId].data[0] = 16;
}
}
return;
case 16:
- if (!shared19338[r7].unk2_2)
+ if (!eContestGfxState[contestant].updatingAppealHearts)
{
gTasks[taskId].data[10] = 0;
gTasks[taskId].data[0] = 17;
}
return;
case 17:
- if (sContestantStatus[r7].disappointedRepeat)
+ if (sContestantStatus[contestant].repeatedMove)
{
- sub_80AF138();
- StringCopy(gStringVar1, gContestMons[r7].nickname);
+ ContestClearGeneralTextWindow();
+ StringCopy(gStringVar1, gContestMons[contestant].nickname);
StringExpandPlaceholders(gStringVar4, ContestString_DissapointedRepeat);
- Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
+ Contest_StartTextPrinter(&gMenuWindow, gStringVar4, 776, 1, 15);
gTasks[taskId].data[10] = 0;
- sub_80B1710(0);
+ DoJudgeSpeechBubble(0);
gTasks[taskId].data[0] = 46;
}
else
@@ -1493,50 +1310,52 @@ void sub_80AC2CC(u8 taskId)
}
return;
case 46:
- if (!sContest.unk1920A_4)
+ if (!sContest.waitForJudgeSpeechBubble)
gTasks[taskId].data[0] = 19;
return;
case 19:
- if (Text_UpdateWindowInContest(&gMenuWindow) != 0)
+ if (Contest_RunTextPrinter(&gMenuWindow) != 0)
{
- sub_80AFBA0(sContestantStatus[r7].appeal2, -sContestantStatus[r7].unk18, r7);
- sContestantStatus[r7].appeal2 -= sContestantStatus[r7].unk18;
+ UpdateAppealHearts(sContestantStatus[contestant].appeal, -sContestantStatus[contestant].repeatJam,
+ contestant);
+ sContestantStatus[contestant].appeal -= sContestantStatus[contestant].repeatJam;
gTasks[taskId].data[0] = 18;
}
return;
case 18:
- sub_80B0D7C();
- if (!shared19338[r7].unk2_2)
+ ContestDebugDoPrint();
+ if (!eContestGfxState[contestant].updatingAppealHearts)
{
gTasks[taskId].data[10] = 0;
- sub_80AF138();
+ ContestClearGeneralTextWindow();
gTasks[taskId].data[0] = 41;
}
return;
case 41:
- if (shared19328.excitementFrozen && r7 != shared19328.excitementFreezer)
+ if (eContestExcitement.excitementFrozen &&
+ contestant != eContestExcitement.excitementFreezer)
{
gTasks[taskId].data[0] = 57;
}
else
{
- r4 = shared19328.bits_0;
- if (sContestantStatus[r7].overrideCategoryExcitementMod)
+ r4 = eContestExcitement.moveExcitement;
+ if (sContestantStatus[contestant].overrideCategoryExcitementMod)
{
r4 = 1;
- StringCopy(gStringVar3, gMoveNames[sContestantStatus[r7].currMove]);
+ StringCopy(gStringVar3, gMoveNames[sContestantStatus[contestant].currMove]);
}
else
{
- StringCopy(gStringVar3, gContestCategoryStrings[gContestMoves[sContestantStatus[r7].currMove].contestCategory]);
+ StringCopy(gStringVar3, gContestCategoryStrings[gContestMoves[sContestantStatus[contestant].currMove].contestCategory]);
}
if (r4 > 0)
{
- if (sContestantStatus[r7].disappointedRepeat)
+ if (sContestantStatus[contestant].repeatedMove)
r4 = 0;
}
- sub_80AF138();
- StringCopy(gStringVar1, gContestMons[r7].nickname);
+ ContestClearGeneralTextWindow();
+ StringCopy(gStringVar1, gContestMons[contestant].nickname);
sContest.applauseLevel += r4;
if (sContest.applauseLevel < 0)
sContest.applauseLevel = 0;
@@ -1552,7 +1371,7 @@ void sub_80AC2CC(u8 taskId)
StringExpandPlaceholders(gStringVar4, ContestString_WentOverGreat);
else
StringExpandPlaceholders(gStringVar4, ContestString_GotCrowdGoing);
- Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
+ Contest_StartTextPrinter(&gMenuWindow, gStringVar4, 776, 1, 15);
gTasks[taskId].data[10] = 0;
gTasks[taskId].data[11] = 0;
if (r4 < 0)
@@ -1566,24 +1385,24 @@ void sub_80AC2CC(u8 taskId)
switch (gTasks[taskId].data[10])
{
case 0:
- sub_80B1EA8(-1, 1);
+ BlendAudienceBackground(-1, 1);
PlayFanfare(MUS_TOO_BAD);
gTasks[taskId].data[10]++;
break;
case 1:
- if (!sContest.unk1920B_0 && Text_UpdateWindowInContest(&gMenuWindow) != 0)
+ if (!sContest.waitForAudienceBlend && Contest_RunTextPrinter(&gMenuWindow) != 0)
{
- sub_80B1CBC(-1);
+ ShowAndUpdateApplauseMeter(-1);
gTasks[taskId].data[10]++;
}
break;
case 2:
- if (!sContest.unk1920A_5)
+ if (!sContest.isShowingApplauseMeter)
{
if (gTasks[taskId].data[11]++ > 29)
{
gTasks[taskId].data[11] = 0;
- sub_80B1EA8(-1, -1);
+ BlendAudienceBackground(-1, -1);
gTasks[taskId].data[10]++;
}
}
@@ -1602,39 +1421,41 @@ void sub_80AC2CC(u8 taskId)
switch (gTasks[taskId].data[10])
{
case 0:
- if (Text_UpdateWindowInContest(&gMenuWindow) != 0)
+ if (Contest_RunTextPrinter(&gMenuWindow) != 0)
{
- sub_80B1EA8(1, 1);
+ BlendAudienceBackground(1, 1);
gTasks[taskId].data[10]++;
}
break;
case 1:
- if (!sContest.unk1920B_0)
+ if (!sContest.waitForAudienceBlend)
{
- sub_80B1DDC();
+ AnimateAudience();
PlaySE(SE_M_ENCORE2);
- sub_80B1CBC(1);
+ ShowAndUpdateApplauseMeter(1);
gTasks[taskId].data[10]++;
}
break;
case 2:
- if (!sContest.unk1920A_5)
+ if (!sContest.isShowingApplauseMeter)
{
if (gTasks[taskId].data[11]++ > 29)
{
gTasks[taskId].data[11] = 0;
- sub_80AFBA0(sContestantStatus[r7].appeal2, shared19328.unk2, r7);
- sContestantStatus[r7].appeal2 += shared19328.unk2;
+ UpdateAppealHearts(
+ sContestantStatus[contestant].appeal, eContestExcitement.excitementAppealBonus,
+ contestant);
+ sContestantStatus[contestant].appeal += eContestExcitement.excitementAppealBonus;
gTasks[taskId].data[10]++;
}
}
break;
case 3:
- if (!shared19338[r7].unk2_2)
+ if (!eContestGfxState[contestant].updatingAppealHearts)
{
- if (!sContest.unk1920A_7)
+ if (!sContest.animatingAudience)
{
- sub_80B1EA8(1, -1);
+ BlendAudienceBackground(1, -1);
gTasks[taskId].data[10]++;
}
}
@@ -1650,69 +1471,69 @@ void sub_80AC2CC(u8 taskId)
}
return;
case 43:
- if (!shared19338[r7].unk2_2)
+ if (!eContestGfxState[contestant].updatingAppealHearts)
{
- sub_80AF138();
+ ContestClearGeneralTextWindow();
gTasks[taskId].data[0] = 55;
}
return;
case 57:
- sub_80AF138();
- StringCopy(gStringVar3, gContestMons[shared19328.excitementFreezer].nickname);
- StringCopy(gStringVar1, gContestMons[r7].nickname);
- StringCopy(gStringVar2, gMoveNames[sContestantStatus[r7].currMove]);
+ ContestClearGeneralTextWindow();
+ StringCopy(gStringVar3, gContestMons[eContestExcitement.excitementFreezer].nickname);
+ StringCopy(gStringVar1, gContestMons[contestant].nickname);
+ StringCopy(gStringVar2, gMoveNames[sContestantStatus[contestant].currMove]);
StringExpandPlaceholders(gStringVar4, ContestString_CrowdWatches);
- Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
+ Contest_StartTextPrinter(&gMenuWindow, gStringVar4, 776, 1, 15);
gTasks[taskId].data[0] = 58;
return;
case 58:
- if (Text_UpdateWindowInContest(&gMenuWindow) != 0)
+ if (Contest_RunTextPrinter(&gMenuWindow) != 0)
{
- sub_80AF138();
+ ContestClearGeneralTextWindow();
StringExpandPlaceholders(gStringVar4, ContestString_Ignored2);
- Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
+ Contest_StartTextPrinter(&gMenuWindow, gStringVar4, 776, 1, 15);
gTasks[taskId].data[0] = 59;
}
return;
case 59:
- if (Text_UpdateWindowInContest(&gMenuWindow) != 0)
+ if (Contest_RunTextPrinter(&gMenuWindow) != 0)
{
- sub_80AF138();
+ ContestClearGeneralTextWindow();
gTasks[taskId].data[0] = 55;
}
return;
case 33:
- if (sContestantStatus[r7].hasJudgesAttention)
- sContestantStatus[r7].hasJudgesAttention = 0;
- sub_80B09B0(r7);
- StringCopy(gStringVar1, gContestMons[r7].nickname);
- StringCopy(gStringVar2, gMoveNames[sContestantStatus[r7].currMove]);
- StringExpandPlaceholders(gStringVar4, gUnknown_083CBF60);
- Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
+ if (sContestantStatus[contestant].hasJudgesAttention)
+ sContestantStatus[contestant].hasJudgesAttention = 0;
+ StartStopFlashJudgeAttentionEye(contestant);
+ StringCopy(gStringVar1, gContestMons[contestant].nickname);
+ StringCopy(gStringVar2, gMoveNames[sContestantStatus[contestant].currMove]);
+ StringExpandPlaceholders(gStringVar4, ContestString_TooNervous);
+ Contest_StartTextPrinter(&gMenuWindow, gStringVar4, 776, 1, 15);
gTasks[taskId].data[0] = 34;
return;
case 34:
- if (Text_UpdateWindowInContest(&gMenuWindow) != 0)
+ if (Contest_RunTextPrinter(&gMenuWindow) != 0)
gTasks[taskId].data[0] = 55;
return;
case 55:
- sub_80B1BDC();
+ SlideApplauseMeterOut();
gTasks[taskId].data[0] = 56;
return;
case 56:
- if (!sContest.unk1920A_6)
+ if (!sContest.applauseMeterIsMoving)
{
if (sContest.applauseLevel > 4)
{
sContest.applauseLevel = 0;
- sub_80B1928();
+ UpdateApplauseMeter();
}
gTasks[taskId].data[0] = 10;
}
return;
case 10:
spriteId = gTasks[taskId].data[2];
- gSprites[spriteId].callback = sub_80AD92C;
+ gSprites[spriteId].callback = SpriteCB_MonSlideOut;
gTasks[taskId].data[0] = 11;
return;
case 11:
@@ -1726,19 +1547,19 @@ void sub_80AC2CC(u8 taskId)
return;
case 20:
for (i = 0; i < 4; i++)
- sub_80B0CDC(i, 1);
+ Unused_EndBlinkingState(i, 1);
gTasks[taskId].data[10] = 0;
gTasks[taskId].data[0] = 21;
return;
case 31:
- sub_80AF138();
- StringCopy(gStringVar1, gContestMons[r7].nickname);
- StringExpandPlaceholders(gStringVar4, gUnknown_083CB00D);
- Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
+ ContestClearGeneralTextWindow();
+ StringCopy(gStringVar1, gContestMons[contestant].nickname);
+ StringExpandPlaceholders(gStringVar4, gText_MonWasWatchingOthers);
+ Contest_StartTextPrinter(&gMenuWindow, gStringVar4, 776, 1, 15);
gTasks[taskId].data[0] = 32;
return;
case 32:
- if (Text_UpdateWindowInContest(&gMenuWindow) != 0)
+ if (Contest_RunTextPrinter(&gMenuWindow) != 0)
gTasks[taskId].data[0] = 21;
return;
case 21:
@@ -1749,12 +1570,12 @@ void sub_80AC2CC(u8 taskId)
}
return;
case 22:
- if (++sContest.unk19214 == 4)
+ if (++sContest.turnNumber == 4)
{
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[1] = 0;
gTasks[taskId].data[2] = 0;
- gTasks[taskId].func = sub_80AD960;
+ gTasks[taskId].func = Task_FinishRoundOfAppeals;
}
else
{
@@ -1765,13 +1586,13 @@ void sub_80AC2CC(u8 taskId)
}
}
-void sub_80AD8DC(u8 taskId)
+void Task_EndWaitForLink(u8 taskId)
{
- sContest.unk1920B_2 = 0;
+ sContest.waitForLink = 0;
DestroyTask(taskId);
}
-void sub_80AD8FC(struct Sprite *sprite)
+void SpriteCB_MonSlideIn(struct Sprite *sprite)
{
if (sprite->pos2.x != 0)
{
@@ -1787,7 +1608,7 @@ void sub_80AD8FC(struct Sprite *sprite)
}
}
-void sub_80AD92C(struct Sprite *sprite)
+void SpriteCB_MonSlideOut(struct Sprite *sprite)
{
sprite->pos2.x -= 6;
if (sprite->pos1.x + sprite->pos2.x < -32)
@@ -1797,7 +1618,7 @@ void sub_80AD92C(struct Sprite *sprite)
}
}
-void sub_80AD960(u8 taskId)
+void Task_FinishRoundOfAppeals(u8 taskId)
{
switch (gTasks[taskId].data[0])
{
@@ -1806,57 +1627,58 @@ void sub_80AD960(u8 taskId)
{
u8 taskId2;
- sContest.unk1920B_2 = 1;
- if (sub_80AE074())
+ sContest.waitForLink = 1;
+ if (IsPlayerLinkLeader())
{
- sub_80AF2FC();
- sub_80AF3C0();
+ RankContestants();
+ SetAttentionLevels();
}
- taskId2 = CreateTask(sub_80C8C80, 0);
- SetTaskFuncWithFollowupFunc(taskId2, sub_80C8C80, sub_80AD8DC);
- sub_80AF860();
+ taskId2 = CreateTask(Task_LinkContest_CommunicateAppealsState, 0);
+ SetTaskFuncWithFollowupFunc(
+ taskId2, Task_LinkContest_CommunicateAppealsState, Task_EndWaitForLink);
+ ContestPrintLinkStandby();
gTasks[taskId].data[0] = 1;
}
else
{
- sub_80AF2FC();
- sub_80AF3C0();
+ RankContestants();
+ SetAttentionLevels();
gTasks[taskId].data[0] = 2;
}
break;
case 1:
- if (!sContest.unk1920B_2)
+ if (!sContest.waitForLink)
gTasks[taskId].data[0] = 2;
break;
case 2:
gTasks[taskId].data[0] = 0;
- gTasks[taskId].func = sub_80ADA1C;
+ gTasks[taskId].func = Task_ReadyUpdateHeartSliders;
break;
}
}
-void sub_80ADA1C(u8 taskId)
+void Task_ReadyUpdateHeartSliders(u8 taskId)
{
- sub_80B1FD0(FALSE);
+ ShowHideNextTurnGfx(FALSE);
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[1] = 0;
- gTasks[taskId].func = sub_80ADA4C;
+ gTasks[taskId].func = Task_UpdateHeartSliders;
}
-void sub_80ADA4C(u8 taskId)
+void Task_UpdateHeartSliders(u8 taskId)
{
switch (gTasks[taskId].data[0])
{
case 0:
if (++gTasks[taskId].data[1] > 20)
{
- sub_80B25E4(2);
+ AnimateSliderHearts(2);
gTasks[taskId].data[1] = 0;
gTasks[taskId].data[0]++;
}
break;
case 1:
- if (!sContest.unk1920B_1)
+ if (!sContest.sliderHeartsAnimating)
{
if (++gTasks[taskId].data[1] > 20)
{
@@ -1866,198 +1688,199 @@ void sub_80ADA4C(u8 taskId)
}
break;
case 2:
- sub_80AFF10();
+ UpdateHeartSliders();
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[1] = 0;
- gTasks[taskId].func = sub_80ADAD8;
+ gTasks[taskId].func = Task_WaitForHeartSliders;
break;
}
}
-void sub_80ADAD8(u8 taskId)
+void Task_WaitForHeartSliders(u8 taskId)
{
- if (sub_80AFF28())
+ if (SlidersDoneUpdating())
gTasks[taskId].func = sub_80ADB04;
}
void sub_80ADB04(u8 taskId)
{
- DmaCopy32Defvars(3, shared18000.unk18204, gPlttBufferUnfaded, 0x400);
+ DmaCopy32Defvars(3, eContestTempSave.cachedPlttBufferUnfaded, gPlttBufferUnfaded, 0x400);
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[1] = 2;
- gTasks[taskId].func = sub_80ADB48;
+ gTasks[taskId].func = Task_WaitBeforePrintRoundResult;
}
-void sub_80ADB48(u8 taskId)
+void Task_WaitBeforePrintRoundResult(u8 taskId)
{
if (++gTasks[taskId].data[0] > 2)
{
gTasks[taskId].data[0] = 0;
if (--gTasks[taskId].data[1] == 0)
- gTasks[taskId].func = sub_80ADB88;
+ gTasks[taskId].func = Task_PrintRoundResultText;
}
}
-void sub_80ADB88(u8 taskId)
+void Task_PrintRoundResultText(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);
- gTasks[taskId].func = sub_80ADC10;
+ Contest_StartTextPrinter(&gMenuWindow, gStringVar4, 776, 1, 15);
+ gTasks[taskId].func = Task_WaitPrintRoundResultText;
}
-void sub_80ADC10(u8 taskId)
+void Task_WaitPrintRoundResultText(u8 taskId)
{
- if (Text_UpdateWindowInContest(&gMenuWindow) == 1)
+ if (Contest_RunTextPrinter(&gMenuWindow) == 1)
{
gTasks[taskId].data[0] = 0;
- gTasks[taskId].func = sub_80ADC4C;
- sub_80B0D7C();
+ gTasks[taskId].func = Task_ReUpdateHeartSliders;
+ ContestDebugDoPrint();
}
}
-void sub_80ADC4C(u8 taskId)
+void Task_ReUpdateHeartSliders(u8 taskId)
{
if (gTasks[taskId].data[0]++ > 29)
{
gTasks[taskId].data[0] = 0;
- sub_80AFF10();
- gTasks[taskId].func = sub_80ADC84;
+ UpdateHeartSliders();
+ gTasks[taskId].func = Task_WaitForHeartSlidersAgain;
}
}
-void sub_80ADC84(u8 taskId)
+void Task_WaitForHeartSlidersAgain(u8 taskId)
{
- if (sub_80AFF28())
+ if (SlidersDoneUpdating())
{
gTasks[taskId].data[0] = 0;
- gTasks[taskId].func = sub_80ADCB4;
+ gTasks[taskId].func = Task_DropCurtainAtRoundEnd;
}
}
-void sub_80ADCB4(u8 taskId)
+void Task_DropCurtainAtRoundEnd(u8 taskId)
{
- sub_80B2184();
- gTasks[taskId].func = sub_80B237C;
+ SetBgForCurtainDrop();
+ gTasks[taskId].func = Task_StartDropCurtainAtRoundEnd;
}
-void sub_80ADCDC(u8 taskId)
+void Task_UpdateContestantBoxOrder(u8 taskId)
{
- sub_80B2280();
- gTasks[taskId].func = sub_80ADD04;
+ UpdateContestantBoxOrder();
+ gTasks[taskId].func = Task_TryStartNextRoundOfAppeals;
}
-void sub_80ADD04(u8 taskId)
+void Task_TryStartNextRoundOfAppeals(u8 taskId)
{
REG_BG0CNT_BITFIELD.priority = 0;
REG_BG2CNT_BITFIELD.priority = 0;
- if (++sContest.turnNumber == 5)
+ if (++sContest.appealNumber == 5)
{
- gTasks[taskId].func = sub_80ADDA4;
+ gTasks[taskId].func = Task_EndAppeals;
}
else
{
- sub_80B1B14();
- gTasks[taskId].func = sub_80ADD74;
+ SlideApplauseMeterIn();
+ gTasks[taskId].func = Task_StartNewRoundOfAppeals;
}
}
-void sub_80ADD74(u8 taskId)
+void Task_StartNewRoundOfAppeals(u8 taskId)
{
- if (!sContest.unk1920A_6)
- gTasks[taskId].func = sub_80ABB70;
+ if (!sContest.applauseMeterIsMoving)
+ gTasks[taskId].func = Task_DisplayAppealNumberText;
}
-void sub_80ADDA4(u8 taskId)
+void Task_EndAppeals(u8 taskId)
{
s32 i;
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].pointTotal;
+ CalculateFinalScores();
+ ContestClearGeneralTextWindow();
sub_80BE23C(sContestantStatus[gContestPlayerMonIndex].prevMove);
gContestRngValue = gRngValue;
- StringExpandPlaceholders(gStringVar4, gUnknown_083CB02C);
- Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
+ StringExpandPlaceholders(gStringVar4, gText_AllOutOfAppealTime);
+ Contest_StartTextPrinter(&gMenuWindow, gStringVar4, 776, 1, 15);
gTasks[taskId].data[2] = 0;
- gTasks[taskId].func = sub_80ADE54;
+ gTasks[taskId].func = Task_WaitForOutOfTimeMsg;
}
-void sub_80ADE54(u8 taskId)
+void Task_WaitForOutOfTimeMsg(u8 taskId)
{
- if (Text_UpdateWindowInContest(&gMenuWindow) == 1)
+ if (Contest_RunTextPrinter(&gMenuWindow) == 1)
{
- sub_80B2184();
+ SetBgForCurtainDrop();
gBattle_BG1_X = 0;
gBattle_BG1_Y = 160;
PlaySE12WithPanning(SE_CONTEST_CURTAIN_FALL, 0);
gTasks[taskId].data[0] = 0;
- gTasks[taskId].func = sub_80ADEAC;
+ gTasks[taskId].func = Task_DropCurtainAtAppealsEnd;
}
}
-void sub_80ADEAC(u8 taskId)
+void Task_DropCurtainAtAppealsEnd(u8 taskId)
{
if ((s16)(gBattle_BG1_Y -= 7) < 0)
gBattle_BG1_Y = 0;
if (gBattle_BG1_Y == 0) // Why cast?
{
- gTasks[taskId].func = sub_80ADEEC;
+ gTasks[taskId].func = Task_TryCommunicateFinalStandings;
gTasks[taskId].data[0] = 0;
}
}
-void sub_80ADEEC(u8 taskId)
+void Task_TryCommunicateFinalStandings(u8 taskId)
{
if (gTasks[taskId].data[0]++ >= 50)
{
gTasks[taskId].data[0] = 0;
if (gIsLinkContest & 1)
{
- gTasks[taskId].func = sub_80ADF4C;
+ gTasks[taskId].func = Task_CommunicateFinalStandings;
}
else
{
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0));
- gTasks[taskId].func = sub_80ADFD8;
+ gTasks[taskId].func = Task_ContestReturnToField;
}
}
}
-void sub_80ADF4C(u8 taskId)
+void Task_CommunicateFinalStandings(u8 taskId)
{
- u8 taskId2 = CreateTask(sub_80C8AD0, 0);
+ u8 taskId2 = CreateTask(Task_LinkContest_CommunicateFinalStandings, 0);
- SetTaskFuncWithFollowupFunc(taskId2, sub_80C8AD0, sub_80ADF98);
- gTasks[taskId].func = nullsub_89;
- sub_80AF860();
- sub_80AFFE0(FALSE);
+ SetTaskFuncWithFollowupFunc(
+ taskId2, Task_LinkContest_CommunicateFinalStandings, Task_EndCommunicateFinalStandings);
+ gTasks[taskId].func = TaskDummy1;
+ ContestPrintLinkStandby();
+ SetBottomSliderHeartsInvisibility(FALSE);
}
-void sub_80ADF98(u8 taskId)
+void Task_EndCommunicateFinalStandings(u8 taskId)
{
DestroyTask(taskId);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0));
- gTasks[sContest.mainTaskId].func = sub_80ADFD8;
+ gTasks[sContest.mainTaskId].func = Task_ContestReturnToField;
}
-void sub_80ADFD8(u8 taskId)
+void Task_ContestReturnToField(u8 taskId)
{
if (!gPaletteFade.active)
{
DestroyTask(taskId);
- gFieldCallback = sub_80AE010;
+ gFieldCallback = FieldCB_ContestReturnToField;
SetMainCallback2(CB2_ReturnToField);
}
}
-void sub_80AE010(void)
+void FieldCB_ContestReturnToField(void)
{
// Why disable and re-enable again?
ScriptContext2_Disable();
@@ -2085,3444 +1908,4 @@ void InsertStringDigit(u8 *str, s32 n)
}
}
-void sub_80AE054(void)
-{
- if (!(gIsLinkContest & 1))
- gContestPlayerMonIndex = 3;
-}
-
-bool8 sub_80AE074(void)
-{
- if (gContestPlayerMonIndex == gUnknown_0203869B)
- return TRUE;
- else
- return FALSE;
-}
-
-void Contest_CreatePlayerMon(u8 partyIndex)
-{
- u8 name[20];
- u16 heldItem;
- s16 cool;
- s16 beauty;
- s16 cute;
- s16 smart;
- s16 tough;
-
- StringCopy(name, gSaveBlock2.playerName);
- Text_StripExtCtrlCodes(name);
- if (gIsLinkContest & 1)
- {
- u8 temp = name[5];
-
- name[5] = EOS;
- name[7] = temp;
- }
- memcpy(gContestMons[gContestPlayerMonIndex].trainerName, name, 8);
- if (gSaveBlock2.playerGender == MALE)
- gContestMons[gContestPlayerMonIndex].trainerGfxId = OBJ_EVENT_GFX_LINK_BRENDAN;
- else
- gContestMons[gContestPlayerMonIndex].trainerGfxId = OBJ_EVENT_GFX_LINK_MAY;
- gContestMons[gContestPlayerMonIndex].flags = 0;
- gContestMons[gContestPlayerMonIndex].unk2C[0] = 0;
- gContestMons[gContestPlayerMonIndex].species = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPECIES);
- GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, name);
- StringGetEnd10(name);
- if (gIsLinkContest & 1)
- {
- Text_StripExtCtrlCodes(name);
- if (GetMonData(&gPlayerParty[partyIndex], MON_DATA_LANGUAGE) == LANGUAGE_JAPANESE)
- {
- name[5] = EOS;
- name[10] = EXT_CTRL_CODE_BEGIN;
- }
- else
- {
- u8 temp = name[5];
-
- name[5] = EOS;
- name[10] = temp;
- }
- }
- memcpy(gContestMons[gContestPlayerMonIndex].nickname, name, 11);
- gContestMons[gContestPlayerMonIndex].cool = GetMonData(&gPlayerParty[partyIndex], MON_DATA_COOL);
- gContestMons[gContestPlayerMonIndex].beauty = GetMonData(&gPlayerParty[partyIndex], MON_DATA_BEAUTY);
- gContestMons[gContestPlayerMonIndex].cute = GetMonData(&gPlayerParty[partyIndex], MON_DATA_CUTE);
- gContestMons[gContestPlayerMonIndex].smart = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SMART);
- gContestMons[gContestPlayerMonIndex].tough = GetMonData(&gPlayerParty[partyIndex], MON_DATA_TOUGH);
- gContestMons[gContestPlayerMonIndex].sheen = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SHEEN);
- gContestMons[gContestPlayerMonIndex].moves[0] = GetMonData(&gPlayerParty[partyIndex], MON_DATA_MOVE1);
- gContestMons[gContestPlayerMonIndex].moves[1] = GetMonData(&gPlayerParty[partyIndex], MON_DATA_MOVE2);
- gContestMons[gContestPlayerMonIndex].moves[2] = GetMonData(&gPlayerParty[partyIndex], MON_DATA_MOVE3);
- gContestMons[gContestPlayerMonIndex].moves[3] = GetMonData(&gPlayerParty[partyIndex], MON_DATA_MOVE4);
- gContestMons[gContestPlayerMonIndex].personality = GetMonData(&gPlayerParty[partyIndex], MON_DATA_PERSONALITY);
- gContestMons[gContestPlayerMonIndex].otId = GetMonData(&gPlayerParty[partyIndex], MON_DATA_OT_ID);
-
- heldItem = GetMonData(&gPlayerParty[partyIndex], MON_DATA_HELD_ITEM);
- cool = gContestMons[gContestPlayerMonIndex].cool;
- beauty = gContestMons[gContestPlayerMonIndex].beauty;
- cute = gContestMons[gContestPlayerMonIndex].cute;
- smart = gContestMons[gContestPlayerMonIndex].smart;
- tough = gContestMons[gContestPlayerMonIndex].tough;
- if (heldItem == ITEM_RED_SCARF)
- cool += 20;
- else if (heldItem == ITEM_BLUE_SCARF)
- beauty += 20;
- else if (heldItem == ITEM_PINK_SCARF)
- cute += 20;
- else if (heldItem == ITEM_GREEN_SCARF)
- smart += 20;
- else if (heldItem == ITEM_YELLOW_SCARF)
- tough += 20;
- if (cool > 255)
- cool = 255;
- if (beauty > 255)
- beauty = 255;
- if (cute > 255)
- cute = 255;
- if (smart > 255)
- smart = 255;
- if (tough > 255)
- tough = 255;
- gContestMons[gContestPlayerMonIndex].cool = cool;
- gContestMons[gContestPlayerMonIndex].beauty = beauty;
- gContestMons[gContestPlayerMonIndex].cute = cute;
- gContestMons[gContestPlayerMonIndex].smart = smart;
- gContestMons[gContestPlayerMonIndex].tough = tough;
-}
-
-void Contest_InitAllPokemon(u8 contestType, u8 rank)
-{
- s32 i;
- u8 opponentsCount = 0;
- u8 opponents[64];
-
- sub_80AE054();
-
- // Find all suitable opponents
- for (i = 0; i < 60; i++)
- {
- if (rank == gContestOpponents[i].whichRank)
- {
- if (contestType == 0 && gContestOpponents[i].aiPool_Cool)
- opponents[opponentsCount++] = i;
- else if (contestType == 1 && gContestOpponents[i].aiPool_Beauty)
- opponents[opponentsCount++] = i;
- else if (contestType == 2 && gContestOpponents[i].aiPool_Cute)
- opponents[opponentsCount++] = i;
- else if (contestType == 3 && gContestOpponents[i].aiPool_Smart)
- opponents[opponentsCount++] = i;
- else if (contestType == 4 && gContestOpponents[i].aiPool_Tough)
- opponents[opponentsCount++] = i;
- }
- }
- opponents[opponentsCount] = 0xFF;
-
- // Choose three random opponents from the list
- for (i = 0; i < 3; i++)
- {
- u16 rnd = Random() % opponentsCount;
- s32 j;
-
- gContestMons[i] = gContestOpponents[opponents[rnd]];
- for (j = rnd; opponents[j] != 0xFF; j++)
- opponents[j] = opponents[j + 1];
- opponentsCount--;
- }
-
-#ifndef NONMATCHING
- // Compiler, please put i in r5. Thanks.
- asm(""::"r"(i));
- asm(""::"r"(i));
- asm(""::"r"(i));
- asm(""::"r"(i));
- asm(""::"r"(i));
-#endif
-
- Contest_CreatePlayerMon(gContestMonPartyIndex);
-}
-
-// GetContestAvailability?
-u8 CanMonParticipateInContest(struct Pokemon *pkmn)
-{
- u8 ribbon;
- u8 retVal;
-
- if (GetMonData(pkmn, MON_DATA_IS_EGG))
- return 3;
- if (GetMonData(pkmn, MON_DATA_HP) == 0)
- return 4;
- switch (gSpecialVar_ContestCategory)
- {
- case CONTEST_CATEGORY_COOL:
- ribbon = GetMonData(pkmn, MON_DATA_COOL_RIBBON);
- break;
- case CONTEST_CATEGORY_BEAUTY:
- ribbon = GetMonData(pkmn, MON_DATA_BEAUTY_RIBBON);
- break;
- case CONTEST_CATEGORY_CUTE:
- ribbon = GetMonData(pkmn, MON_DATA_CUTE_RIBBON);
- break;
- case CONTEST_CATEGORY_SMART:
- ribbon = GetMonData(pkmn, MON_DATA_SMART_RIBBON);
- break;
- case CONTEST_CATEGORY_TOUGH:
- ribbon = GetMonData(pkmn, MON_DATA_TOUGH_RIBBON);
- break;
- default:
- return 0;
- }
-
- // Couldn't get this to match any other way.
- // Returns 2, 1, or 0 respectively if ribbon's rank is above, equal, or below
- // the current contest rank.
- if (ribbon > gSpecialVar_ContestRank)
- retVal = 2;
- else if (ribbon >= gSpecialVar_ContestRank)
- retVal = 1;
- else
- retVal = 0;
- return retVal;
-}
-
-void sub_80AE514(void)
-{
- u8 i;
-
- for (i = 0; i < 4; i++)
- {
- Text_FillWindowRectDefPalette(
- &gUnknown_03004210,
- 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);
- }
-}
-
-u8 *sub_80AE598(u8 *dest, const u8 *b, u8 c)
-{
- dest = StringCopy(dest, gUnknown_083CC59C);
- *dest++ = c;
- dest = StringCopy(dest, b);
- return dest;
-}
-
-void sub_80AE5BC(u8 a)
-{
- sub_80AE5D4(a, a + 10);
-}
-
-void sub_80AE5D4(u8 p, u8 b)
-{
- u8 *str = gDisplayedStringBattle;
-
- str = sub_80AE598(str, gEmptyString_81E72B0, b);
- str[0] = EXT_CTRL_CODE_BEGIN;
- str[1] = 6;
- str[2] = 4;
- str += 3;
-
- *str++ = CHAR_SLASH;
-
- if ((gIsLinkContest & 1) && gLinkPlayers[p].language == LANGUAGE_JAPANESE)
- {
- StringCopy(str, gLinkPlayers[p].name);
- Text_InitWindow8004D04(
- &gUnknown_03004210,
- gDisplayedStringBattle,
- 592 + gUnknown_02038696[p] * 22,
- 251 + gUnknown_083CA310[gUnknown_02038696[p]][0] * 8,
- gUnknown_083CA310[gUnknown_02038696[p]][1] * 8,
- 1);
- }
- else
- {
- StringCopy(str, gContestMons[p].trainerName);
- Text_InitWindowAndPrintText(
- &gUnknown_03004210,
- gDisplayedStringBattle,
- 592 + gUnknown_02038696[p] * 22,
- gUnknown_083CA310[gUnknown_02038696[p]][0],
- gUnknown_083CA310[gUnknown_02038696[p]][1]);
- }
-}
-
-void sub_80AE6CC(u8 a)
-{
- sub_80AE6E4(a, a + 10);
-}
-
-void sub_80AE6E4(u8 a, u8 b)
-{
- u8 *str = gDisplayedStringBattle;
-
- str[0] = EXT_CTRL_CODE_BEGIN;
- str[1] = 6;
- str[2] = 4;
- str += 3;
-
- str = sub_80AE598(str, gContestMons[a].nickname, b);
- *str = EOS;
-
- Text_InitWindow8004D04(
- &gUnknown_03004210,
- gDisplayedStringBattle,
- 512 + gUnknown_02038696[a] * 20,
- 253 + gUnknown_083CA308[gUnknown_02038696[a]][0] * 8,
- gUnknown_083CA308[gUnknown_02038696[a]][1] * 8,
- 1);
-}
-
-u16 InitContestMonConditionI(u8 a, u8 b)
-{
- u8 r5;
- u8 r4;
- u8 r3;
-
- switch (b)
- {
- case CONTEST_CATEGORY_COOL:
- r5 = gContestMons[a].cool;
- r4 = gContestMons[a].tough;
- r3 = gContestMons[a].beauty;
- break;
- case CONTEST_CATEGORY_BEAUTY:
- r5 = gContestMons[a].beauty;
- r4 = gContestMons[a].cool;
- r3 = gContestMons[a].cute;
- break;
- case CONTEST_CATEGORY_CUTE:
- r5 = gContestMons[a].cute;
- r4 = gContestMons[a].beauty;
- r3 = gContestMons[a].smart;
- break;
- case CONTEST_CATEGORY_SMART:
- r5 = gContestMons[a].smart;
- r4 = gContestMons[a].cute;
- r3 = gContestMons[a].tough;
- break;
- case CONTEST_CATEGORY_TOUGH:
- default:
- r5 = gContestMons[a].tough;
- r4 = gContestMons[a].smart;
- r3 = gContestMons[a].cool;
- break;
- }
- return r5 + (r4 + r3 + gContestMons[a].sheen) / 2;
-}
-
-void InitContestMonConditions(u8 a)
-{
- u8 i;
-
- for (i = 0; i < 4; i++)
- gContestMonConditions[i] = InitContestMonConditionI(i, a);
-}
-
-u8 CreateJudgeSprite(void)
-{
- u8 spriteId;
-
- LoadCompressedObjectPic(&gUnknown_083CA4BC);
- LoadCompressedPalette(gContest2Pal, 0x110, 32);
- spriteId = CreateSprite(&gSpriteTemplate_83CA4A4, 112, 36, 30);
- gSprites[spriteId].oam.paletteNum = 1;
- gSprites[spriteId].callback = SpriteCallbackDummy;
- return spriteId;
-}
-
-u8 sub_80AE8B4(void)
-{
- u8 spriteId;
-
- LoadCompressedObjectPic(&gUnknown_083CA4C4);
- LoadCompressedObjectPalette(&gUnknown_083CA4CC);
- spriteId = CreateSprite(&gUnknown_083CA4D4, 96, 10, 29);
- gSprites[spriteId].invisible = TRUE;
- gSprites[spriteId].data[0] = gSprites[spriteId].oam.tileNum;
- return spriteId;
-}
-
-u8 unref_sub_80AE908(void)
-{
- u16 species = gContestMons[gContestPlayerMonIndex].species;
- u8 spriteId;
-
- DecompressPicFromTable_2(
- &gMonFrontPicTable[species],
- gMonFrontPicCoords[species].coords,
- gMonFrontPicCoords[species].y_offset,
- (void *)EWRAM,
- gUnknown_081FAF4C[1],
- species);
- LoadCompressedPalette(gMonPaletteTable[species].data, 0x110, 32);
- GetMonSpriteTemplate_803C56C(gContestMons[gContestPlayerMonIndex].species, 1);
- spriteId = CreateSprite(
- &gUnknown_02024E8C,
- 112, 80 + (8 - gMonFrontPicCoords[gContestMons[gContestPlayerMonIndex].species].coords) * 4,
- 30);
- gSprites[spriteId].oam.paletteNum = 1;
- gSprites[spriteId].callback = SpriteCallbackDummy;
- gSprites[spriteId].affineAnims = gSpriteAffineAnimTable_81E7C18;
- StartSpriteAffineAnim(&gSprites[spriteId], 0);
- return spriteId;
-}
-
-u8 sub_80AE9FC(u16 species, u32 otId, u32 personality)
-{
- const u8 *lzPaletteData;
- u8 spriteId;
-
- species = SanitizeSpecies(species);
- HandleLoadSpecialPokePic(
- &gMonBackPicTable[species],
- gMonBackPicCoords[species].coords,
- gMonBackPicCoords[species].y_offset,
- EWRAM,
- gUnknown_081FAF4C[0],
- species,
- personality);
- lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, otId, personality);
- LoadCompressedPalette(lzPaletteData, 0x120, 32);
- GetMonSpriteTemplate_803C56C(species, 0);
- spriteId = CreateSprite(&gUnknown_02024E8C, 112, sub_8077E44(2, species, 0), 30);
- gSprites[spriteId].oam.paletteNum = 2;
- gSprites[spriteId].oam.priority = 2;
- gSprites[spriteId].subpriority = GetBattlerSubpriority(2);
- gSprites[spriteId].callback = SpriteCallbackDummy;
- gSprites[spriteId].data[0] = gSprites[spriteId].oam.paletteNum;
- gSprites[spriteId].data[2] = species;
- if (IsSpeciesNotUnown(species))
- gSprites[spriteId].affineAnims = gSpriteAffineAnimTable_81E7C18;
- else
- gSprites[spriteId].affineAnims = gSpriteAffineAnimTable_81E7BEC;
- StartSpriteAffineAnim(&gSprites[spriteId], 0);
- return spriteId;
-}
-
-bool8 IsSpeciesNotUnown(u16 species)
-{
- if (species == SPECIES_UNOWN)
- return FALSE;
- else
- return TRUE;
-}
-
-void sub_80AEB30(void)
-{
- sub_80AEB4C((void *)(VRAM + 0xC000));
- sub_80AEB4C((void *)(VRAM + 0xE000));
-}
-
-void sub_80AEB4C(void *a)
-{
- DmaCopy16Defvars(3, a, (u8 *)a + 0x500, 0x280);
-}
-
-u16 sub_80AEB68(u16 move, u8 b)
-{
- u16 var;
-
- switch (gContestEffects[gContestMoves[move].effect].effectType)
- {
- case 0:
- case 1:
- case 8:
- var = 0x9082;
- break;
- case 2:
- case 3:
- var = 0x9088;
- break;
- default:
- var = 0x9086;
- break;
- }
- var += 0x9000 + (b << 12);
- return var;
-}
-
-void sub_80AEBEC(u16 a)
-{
- u8 category;
- u16 categoryTile;
- s32 i;
- u8 numHearts;
-
- Text_FillWindowRectDefPalette(&gUnknown_03004210, 0, 11, 31, 16, 34);
-
- category = gContestMoves[a].contestCategory;
- if (category == CONTEST_CATEGORY_COOL)
- categoryTile = 0x4040;
- else if (category == CONTEST_CATEGORY_BEAUTY)
- categoryTile = 0x4045;
- else if (category == CONTEST_CATEGORY_CUTE)
- categoryTile = 0x404A;
- else if (category == CONTEST_CATEGORY_SMART)
- categoryTile = 0x406A;
- else
- categoryTile = 0x408A;
-
- for (i = 0; i < 5; i++)
- {
- *(u16 *)(VRAM + 0xC7D6 + i * 2) = categoryTile;
- *(u16 *)(VRAM + 0xC816 + i * 2) = categoryTile + 16;
- categoryTile++;
- }
-
- if (gContestEffects[gContestMoves[a].effect].appeal == 0xFF)
- numHearts = 0;
- else
- numHearts = gContestEffects[gContestMoves[a].effect].appeal / 10;
- if (numHearts > 8)
- numHearts = 8;
- for (i = 0; i < 8; i++)
- {
- if (i < numHearts)
- *(u16 *)(VRAM + 0xC7EA + i * 2) = 0x5012;
- else
- *(u16 *)(VRAM + 0xC7EA + i * 2) = 0x5035;
- }
-
- if (gContestEffects[gContestMoves[a].effect].jam == 0xFF)
- numHearts = 0;
- else
- numHearts = gContestEffects[gContestMoves[a].effect].jam / 10;
- if (numHearts > 8)
- numHearts = 8;
- for (i = 0; i < 8; i++)
- {
- if (i < numHearts)
- *(u16 *)(VRAM + 0xC82A + i * 2) = 0x5014;
- else
- *(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);
-}
-
-void sub_80AED58(void)
-{
- Text_FillWindowRectDefPalette(&gUnknown_03004210, 0, 11, 35, 28, 40);
-}
-
-// unused
-void sub_80AED7C(u16 move, u8 b)
-{
- u8 r5 = gUnknown_02038696[b] * 5 + 2;
-
- if (!Contest_IsMonsTurnDisabled(b) && move != MOVE_NONE)
- {
- u16 tile = sub_80AEB68(move, b);
-
- *(u16 *)(VRAM + 0xC028 + r5 * 64) = tile;
- *(u16 *)(VRAM + 0xC028 + r5 * 64 + 2) = tile + 1;
-
- *(u16 *)(VRAM + 0xC068 + r5 * 64) = tile + 16;
- *(u16 *)(VRAM + 0xC068 + r5 * 64 + 2) = tile + 17;
-
- }
- else
- {
- *(u16 *)(VRAM + 0xC028 + r5 * 64) = 0;
- *(u16 *)(VRAM + 0xC028 + r5 * 64 + 2) = 0;
-
- *(u16 *)(VRAM + 0xC068 + r5 * 64) = 0;
- *(u16 *)(VRAM + 0xC068 + r5 * 64 + 2) = 0;
- }
-}
-
-void unref_sub_80AEE20(void)
-{
- u8 i;
-
- for (i = 0; i < 4; i++)
- sub_80AED7C(sContestantStatus[i].currMove, i);
-}
-
-u16 sub_80AEE4C(u8 unused)
-{
- return 0x2034;
-}
-
-bool8 sub_80AEE54(u8 a, u8 b)
-{
- u8 r9;
- u16 r8;
- s32 r4;
-
- if (sContestantStatus[a].conditionMod == 0)
- return FALSE;
- r9 = gUnknown_02038696[a] * 5 + 2;
- if (sContestantStatus[a].conditionMod == 1)
- {
- r8 = sub_80AEE4C(a);
- r4 = 0;
- while (sContestantStatus[a].condition / 10 > r4)
- {
- *(u16 *)(VRAM + 0xC026 + (r9 + r4) * 64) = r8;
- r4++;
- }
- if (b != 0)
- {
- PlaySE(SE_EXP_MAX);
- sContestantStatus[a].conditionMod = 0;
- }
- }
- else
- {
- r8 = 0;
- r4 = 3;
- while (sContestantStatus[a].condition / 10 < r4)
- {
- *(u16 *)(VRAM + 0xBFE6 + (r9 + r4) * 64) = r8;
- r4--;
- }
- if (b != 0)
- {
- PlaySE(SE_CONTEST_CONDITION_LOSE);
- sContestantStatus[a].conditionMod = 0;
- }
- }
- return TRUE;
-}
-
-void sub_80AEF50(void)
-{
- s32 i;
- s32 r4;
-
- for (i = 0; i < 4; i++)
- {
- u8 r8 = gUnknown_02038696[i] * 5 + 2;
- u16 r6 = sub_80AEE4C(i);
-
- r4 = 0;
- while (r4 < sContestantStatus[i].condition / 10)
- {
- *(u16 *)(VRAM + 0xC026 + (r8 + r4) * 64) = r6;
- r4++;
- }
- r6 = 0;
- while (r4 < 3)
- {
- *(u16 *)(VRAM + 0xC026 + (r8 + r4) * 64) = r6;
- r4++;
- }
- }
-}
-
-u16 sub_80AEFE8(u8 unused, u8 b)
-{
- u16 var = 0;
-
- switch (b)
- {
- case 0:
- var = 0x80;
- break;
- case 1:
- var = 0x84;
- break;
- case 2:
- var = 0x86;
- break;
- case 3:
- var = 0x88;
- break;
- case 4:
- var = 0x82;
- break;
- }
- var += 0x9000;
- return var;
-}
-
-bool8 sub_80AF038(u8 a)
-{
- bool8 r5 = TRUE;
- u16 r4 = 0;
- u8 r6 = gUnknown_02038696[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);
- else if (sContestantStatus[a].nervous)
- r4 = sub_80AEFE8(a, 1);
- else if (sContestantStatus[a].numTurnsSkipped != 0 || sContestantStatus[a].noMoreTurns)
- r4 = sub_80AEFE8(a, 2);
- else
- r5 = FALSE;
- if (r5)
- {
- *(u16 *)(VRAM + 0xC028 + r6 * 64) = r4;
- *(u16 *)(VRAM + 0xC028 + r6 * 64 + 2) = r4 + 1;
- *(u16 *)(VRAM + 0xC068 + r6 * 64) = r4 + 16;
- *(u16 *)(VRAM + 0xC068 + r6 * 64 + 2) = r4 + 17;
- }
- else
- {
- *(u16 *)(VRAM + 0xC028 + r6 * 64) = 0;
- *(u16 *)(VRAM + 0xC028 + r6 * 64 + 2) = 0;
- *(u16 *)(VRAM + 0xC068 + r6 * 64) = 0;
- *(u16 *)(VRAM + 0xC068 + r6 * 64 + 2) = 0;
- }
- return r5;
-}
-
-void sub_80AF120(void)
-{
- s32 i;
-
- for (i = 0; i < 4; i++)
- sub_80AF038(i);
-}
-
-void sub_80AF138(void)
-{
- Text_FillWindowRectDefPalette(&gUnknown_03004210, 0, 1, 15, 17, 18);
-}
-
-u16 GetChosenMove(u8 a)
-{
- if (Contest_IsMonsTurnDisabled(a))
- return 0;
- if (a == gContestPlayerMonIndex)
- {
- return gContestMons[a].moves[sContest.playerMoveChoice];
- }
- else
- {
- u8 moveChoice;
-
- ContestAI_ResetAI(a);
- moveChoice = ContestAI_GetActionToUse();
- return gContestMons[a].moves[moveChoice];
- }
-}
-
-void sub_80AF1B8(void)
-{
- u8 i;
-
- for (i = 0; i < 4; i++)
- sContestantStatus[i].currMove = GetChosenMove(i);
-}
-
-void sub_80AF1E4(u8 a, u8 b)
-{
- u8 r3;
-
- if (b == 0)
- r3 = a + 10;
- else
- r3 = 14;
- if (sContestantStatus[a].currMove == MOVE_NONE)
- sub_80AE598(gDisplayedStringBattle, gUnknownText_MissedTurn, r3);
- else
- sub_80AE598(gDisplayedStringBattle, gMoveNames[sContestantStatus[a].currMove], r3);
- sub_80AF2A0(a);
- Text_InitWindowAndPrintText(
- &gUnknown_03004210,
- gDisplayedStringBattle,
- 696 + a * 20,
- gUnknown_083CA318[a][0],
- gUnknown_083CA318[a][1]);
-}
-
-void unref_sub_80AF280(u8 a)
-{
- u8 i;
-
- for (i = 0; i < 4; i++)
- sub_80AF1E4(i, a);
-}
-
-void sub_80AF2A0(u8 a)
-{
- Text_FillWindowRectDefPalette(
- &gUnknown_03004210,
- 0,
- gUnknown_083CA318[a][0],
- gUnknown_083CA318[a][1],
- gUnknown_083CA318[a][0] + 7,
- gUnknown_083CA318[a][1] + 1);
-}
-
-void unref_sub_80AF2E0(void)
-{
- u8 i;
-
- for (i = 0; i < 4; i++)
- sub_80AF2A0(i);
-}
-
-void sub_80AF2FC(void)
-{
- u8 i;
- u8 j;
- s16 arr[4];
-
- for (i = 0; i < 4; i++)
- {
- sContestantStatus[i].unk4 += sContestantStatus[i].appeal2;
- arr[i] = sContestantStatus[i].unk4;
- }
- for (i = 0; i < 3; i++)
- {
- for (j = 3; j > i; j--)
- {
- if (arr[j - 1] < arr[j])
- {
- u16 temp = arr[j];
-
- arr[j] = arr[j - 1];
- arr[j - 1] = temp;
- }
- }
- }
- for (i = 0; i < 4; i++)
- {
- for (j = 0; j < 4; j++)
- {
- if (sContestantStatus[i].unk4 == arr[j])
- {
- sContestantStatus[i].unkB_0 = j;
- break;
- }
- }
- }
- sub_80B0F28(1);
- sub_80B159C();
-}
-
-void sub_80AF3C0(void)
-{
- s32 i;
-
- for (i = 0; i < 4; i++)
- {
- u8 attentionLevel;
-
- if (sContestantStatus[i].currMove == MOVE_NONE)
- attentionLevel = 5;
- else if (sContestantStatus[i].appeal2 <= 0)
- attentionLevel = 0;
- else if (sContestantStatus[i].appeal2 < 30)
- attentionLevel = 1;
- else if (sContestantStatus[i].appeal2 < 60)
- attentionLevel = 2;
- else if (sContestantStatus[i].appeal2 < 80)
- attentionLevel = 3;
- else
- attentionLevel = 4;
-
- sContestantStatus[i].attentionLevel = attentionLevel;
- }
-}
-
-bool8 sub_80AF404(u8 a)
-{
- if (sContestantStatus[a].numTurnsSkipped != 0 || sContestantStatus[a].noMoreTurns)
- return FALSE;
- else
- return TRUE;
-}
-
-void sub_80AF438(void)
-{
- u8 i;
-
- for (i = 0; i < 4; i++)
- {
- // This is bitfield hell...
- sContestantStatus[i].appeal2 = 0;
- sContestantStatus[i].appeal1 = 0;
- sContestantStatus[i].jamSafetyCount = 0;
- if (sContestantStatus[i].numTurnsSkipped > 0)
- sContestantStatus[i].numTurnsSkipped--;
- sContestantStatus[i].jam = 0;
- sContestantStatus[i].resistant = 0;
- sContestantStatus[i].jamReduction = 0;
- sContestantStatus[i].immune = 0;
- sContestantStatus[i].moreEasilyStartled = 0;
- sContestantStatus[i].usedRepeatableMove = 0;
- sContestantStatus[i].nervous = 0;
- sContestantStatus[i].effectStringId = CONTEST_STRING_NONE;
- sContestantStatus[i].effectStringId2 = CONTEST_STRING_NONE;
- sContestantStatus[i].conditionMod = 0;
- sContestantStatus[i].unk15_2 = sContestantStatus[i].disappointedRepeat;
- sContestantStatus[i].disappointedRepeat = FALSE;
- sContestantStatus[i].turnOrderModAction = 0;
- sContestantStatus[i].appealTripleCondition = 0;
- if (sContestantStatus[i].turnSkipped)
- {
- sContestantStatus[i].numTurnsSkipped = 1;
- sContestantStatus[i].turnSkipped = 0;
- }
- if (sContestantStatus[i].exploded)
- {
- sContestantStatus[i].noMoreTurns = 1;
- sContestantStatus[i].exploded = 0;
- }
- sContestantStatus[i].overrideCategoryExcitementMod = 0;
- }
- for (i = 0; i < 4; i++)
- {
- sContestantStatus[i].prevMove = sContestantStatus[i].currMove;
- sContest.unk19220[sContest.turnNumber][i] = sContestantStatus[i].prevMove;
- sContest.unk19248[sContest.turnNumber][i] = Contest_GetMoveExcitement(sContestantStatus[i].currMove);
- sContestantStatus[i].currMove = MOVE_NONE;
- }
- shared19328.excitementFrozen = 0;
-}
-
-bool8 Contest_IsMonsTurnDisabled(u8 a)
-{
- if (sContestantStatus[a].numTurnsSkipped != 0 || sContestantStatus[a].noMoreTurns)
- return TRUE;
- else
- return FALSE;
-}
-
-bool8 unref_sub_80AF5D0(u8 a, u8 b)
-{
- u8 i;
-
- if (a != gContestPlayerMonIndex)
- return TRUE;
- for (i = 0; i < 4; i++)
- {
- if (b == 3)
- {
- sContest.unk1920A_0 = 1;
- return TRUE;
- }
- if (b == 4)
- {
- sContest.unk1920A_1 = 1;
- return TRUE;
- }
- if (sContest.unk19206[i] == b)
- return TRUE;
- if (sContest.unk19206[i] == 0xFF)
- {
- sContest.unk19206[i] = b;
- return TRUE;
- }
- }
- return FALSE;
-}
-
-void sub_80AF630(u8 a)
-{
- gUnknown_02038688[a] = sub_80AF688(a);
- gUnknown_02038678[a] = gContestMonConditions[a] + gUnknown_02038688[a];
-}
-
-void sub_80AF668(void)
-{
- u8 i;
-
- for (i = 0; i < 4; i++)
- sub_80AF630(i);
- DetermineFinalStandings();
-}
-
-s16 sub_80AF688(u8 a)
-{
- return gUnknown_02038680[a] * 2;
-}
-
-// Determines standing order?
-void DetermineFinalStandings(void)
-{
- u16 sp0[4] = {0};
- struct UnknownContestStruct6 sp8[4];
- s32 i;
- s32 j;
-
- for (i = 0; i < 4; i++)
- {
- s32 r2;
-
- sp0[i] = Random();
- for (r2 = 0; r2 < i; r2++)
- {
- if (sp0[i] == sp0[r2])
- {
- i--;
- break;
- }
- }
- }
-
- for (i = 0; i < 4; i++)
- {
- sp8[i].unk0 = gUnknown_02038678[i];
- sp8[i].unk4 = gContestMonConditions[i];
- sp8[i].unk8 = sp0[i];
- sp8[i].unkC = i;
- }
-
- for (i = 0; i < 3; i++)
- {
- for (j = 3; j > i; j--)
- {
- if (sub_80AF828(j - 1, j, sp8))
- {
- 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;
- }
- }
- }
-
- for (i = 0; i < 4; i++)
- gContestFinalStandings[sp8[i].unkC] = i;
-}
-
-bool8 sub_80AF828(s32 a, s32 b, struct UnknownContestStruct6 *c)
-{
- bool8 retVal;
-
- if (c[a].unk0 < c[b].unk0)
- retVal = TRUE;
- else if (c[a].unk0 > c[b].unk0)
- retVal = FALSE;
- else if (c[a].unk4 < c[b].unk4)
- retVal = TRUE;
- else if (c[a].unk4 > c[b].unk4)
- retVal = FALSE;
- else if (c[a].unk8 < c[b].unk8)
- retVal = TRUE;
- else
- retVal = FALSE;
- return retVal;
-}
-
-void sub_80AF860(void)
-{
- gBattle_BG0_Y = 0;
- gBattle_BG2_Y = 0;
- sub_80AF138();
- Text_InitWindowAndPrintText(&gMenuWindow, gUnknownText_LinkStandbyAndWinner, 776, 1, 15);
-}
-
-u8 unref_sub_80AF89C(s16 a, s16 b, u8 c, u8 d)
-{
- u8 taskId;
- u8 r5;
- s8 r4;
- u16 r0;
-
- shared19338[d].unk2_2 = 1;
- taskId = CreateTask(sub_80AF94C, 20);
- r5 = sub_80AFB74(a);
- r4 = sub_80AFB74(a + b) - r5;
- r0 = sub_80AFB40(d);
- gTasks[taskId].data[0] = r5;
- gTasks[taskId].data[1] = r4;
- gTasks[taskId].data[2] = r0 + c;
- gTasks[taskId].data[3] = d;
- if (b < 0)
- nullsub_19(d);
- return taskId;
-}
-
-void sub_80AF94C(u8 taskId)
-{
- u8 r5 = gTasks[taskId].data[3];
-
- if (gTasks[taskId].data[1] == 0)
- {
- nullsub_19(r5);
- DestroyTask(taskId);
- shared19338[r5].unk2_2 = 0;
- }
- else if (++gTasks[taskId].data[10] > 29)
- {
- u8 r6;
-
- gTasks[taskId].data[10] = 0;
- if (gTasks[taskId].data[1] < 0)
- {
- r6 = gTasks[taskId].data[0]--;
- gTasks[taskId].data[1]++;
- PlaySE(SE_BOO);
- }
- else
- {
- r6 = ++gTasks[taskId].data[0];
- gTasks[taskId].data[1]--;
- PlaySE(SE_PIN);
- }
- if ((u16)gTasks[taskId].data[2] != 0xFFFF)
- {
- RequestSpriteCopy(
- &gTasks[taskId].data[2],
- (void *)(VRAM + 0xC000 + (147 + r6 + r5 * 160) * 2),
- 2);
- }
- else
- {
- u8 i;
-
- for (i = 0; i < 3; i++)
- {
- if (gTasks[taskId].data[i + 4] < 0)
- {
- RequestSpriteCopy(
- &gTasks[taskId].data[i + 7],
- (void *)(VRAM + 0xC000 + (147 + r6 + r5 * 160) * 2),
- 2);
- gTasks[taskId].data[i + 4]++;
- break;
- }
- }
- }
- }
-}
-
-void sub_80AFA5C(void)
-{
- u8 i;
-
- for (i = 0; i < 4; i++)
- {
- DmaClear16(3, (void *)(VRAM + 0xC000 + (86 + i * 160) * 2), 16);
- DmaClear16(3, (void *)(VRAM + 0xC000 + (118 + i * 160) * 2), 16);
- }
-}
-
-void unref_sub_80AFAB8(s16 a, u8 b)
-{
- u8 r5 = sub_80AFB74(a);
- u16 r2;
- u8 i;
- u16 arr[9];
-
- if (b == 0)
- r2 = 0x50A2;
- else if (b == 1)
- r2 = 0x60A2;
- else if (b == 2)
- r2 = 0x70A2;
- else
- r2 = 0x80A2;
-
- for (i = 0; i < 9; i++)
- {
- if (i < r5)
- arr[i] = r2;
- else
- arr[i] = 0;
- }
-
- DmaCopy16Defvars(3, arr, (void *)(VRAM + 0xC000 + (148 + b * 160) * 2), sizeof(arr));
-}
-
-u16 sub_80AFB40(u8 a)
-{
- u16 var;
-
- if (a == 0)
- var = 0x5011;
- else if (a == 1)
- var = 0x6011;
- else if (a == 2)
- var = 0x7011;
- else
- var = 0x8011;
- return var + 1;
-}
-
-s8 sub_80AFB74(s16 a)
-{
- s8 retVal = a / 10;
-
- if (retVal > 16)
- retVal = 16;
- else if (retVal < -16)
- retVal = -16;
- return retVal;
-}
-
-u8 sub_80AFBA0(s16 a, s16 b, u8 c)
-{
- u8 taskId;
- s8 r4;
- s8 r5;
-
- shared19338[c].unk2_2 = 1;
- taskId = CreateTask(sub_80AFC74, 20);
- r4 = sub_80AFB74(a);
- r5 = sub_80AFB74(a + b) - r4;
- sub_80AFB40(c); // unused return value
- gTasks[taskId].data[0] = abs(r4);
- gTasks[taskId].data[1] = r5;
- if (r4 > 0 || (r4 == 0 && r5 > 0))
- gTasks[taskId].data[2] = 1;
- else
- gTasks[taskId].data[2] = -1;
- gTasks[taskId].data[3] = c;
- if (b < 0)
- nullsub_19(c);
- return taskId;
-}
-
-void sub_80AFC74(u8 taskId)
-{
- u8 r7 = gTasks[taskId].data[3];
- s16 r3 = gTasks[taskId].data[0];
- s16 r1 = gTasks[taskId].data[1];
-
- if (++gTasks[taskId].data[10] > 14)
- {
- u16 r6;
- u8 r5;
- u8 r10;
-
- gTasks[taskId].data[10] = 0;
- if (gTasks[taskId].data[1] == 0)
- {
- nullsub_19(r7);
- DestroyTask(taskId);
- shared19338[r7].unk2_2 = 0;
- return;
- }
- else if (r3 == 0)
- {
- if (r1 < 0)
- {
- r6 = sub_80AFB40(r7) + 2;
- gTasks[taskId].data[1]++;
- }
- else
- {
- r6 = sub_80AFB40(r7);
- gTasks[taskId].data[1]--;
- }
- r5 = gTasks[taskId].data[0]++;
- }
- else
- {
- if (gTasks[taskId].data[2] < 0)
- {
- if (r1 < 0)
- {
- r5 = gTasks[taskId].data[0]++;
- gTasks[taskId].data[1]++;
- r6 = sub_80AFB40(r7) + 2;
- }
- else
- {
- r5 = --gTasks[taskId].data[0];
- r6 = 0;
- gTasks[taskId].data[1]--;
- }
- }
- else
- {
- if (r1 < 0)
- {
- r5 = --gTasks[taskId].data[0];
- r6 = 0;
- gTasks[taskId].data[1]++;
- }
- else
- {
- r5 = gTasks[taskId].data[0]++;
- gTasks[taskId].data[1]--;
- r6 = sub_80AFB40(r7);
- }
- }
- }
- r10 = r5;
- if (r5 > 7)
- r5 += 24;
- // Seriously, a 2-byte CpuFill? Why?
- CpuFill16(r6, (void *)(VRAM + 0xC000 + (0x56 + r5 + gUnknown_02038696[r7] * 160) * 2), 2);
- if (r1 > 0)
- {
- PlaySE(SE_CONTEST_HEART);
- m4aMPlayImmInit(&gMPlayInfo_SE1);
- m4aMPlayPitchControl(&gMPlayInfo_SE1, 0xFFFF, r10 * 256);
- }
- else
- {
- PlaySE(SE_BOO);
- }
- if (r5 == 0 && r6 == 0)
- gTasks[taskId].data[2] = -gTasks[taskId].data[2];
- }
-}
-
-void sub_80AFE30(void)
-{
- s32 i;
-
- LoadSpriteSheet(&gUnknown_083CA350);
- for (i = 0; i < 4; i++)
- {
- u8 y = gUnknown_083CA338[gUnknown_02038696[i]];
-
- shared19338[i].unk0 = CreateSprite(&gSpriteTemplate_83CA3AC, 180, y, 1);
- }
-}
-
-void sub_80AFE78(u8 a)
-{
- u8 spriteId;
- s16 r5;
-
- shared19338[a].unk2_0 = 1;
- spriteId = shared19338[a].unk0;
- r5 = sContestantStatus[a].unk4 / 10 * 2;
- if (r5 > 56)
- r5 = 56;
- else if (r5 < 0)
- r5 = 0;
- gSprites[spriteId].invisible = FALSE;
- gSprites[spriteId].data[0] = a;
- gSprites[spriteId].data[1] = r5;
- if (gSprites[spriteId].data[1] > gSprites[spriteId].pos2.x)
- gSprites[spriteId].data[2] = 1;
- else
- gSprites[spriteId].data[2] = -1;
- gSprites[spriteId].callback = sub_80AFF60;
-}
-
-void sub_80AFF10(void)
-{
- s32 i;
-
- for (i = 0; i < 4; i++)
- sub_80AFE78(i);
-}
-
-bool8 sub_80AFF28(void)
-{
- s32 i;
-
- for (i = 0; i < 4; i++)
- {
- if (shared19338[i].unk2_0)
- break;
- }
- if (i == 4)
- return TRUE;
- else
- return FALSE;
-}
-
-void sub_80AFF60(struct Sprite *sprite)
-{
- if (sprite->pos2.x == sprite->data[1])
- {
- shared19338[sprite->data[0]].unk2_0 = 0;
- sprite->callback = SpriteCallbackDummy;
- }
- else
- {
- sprite->pos2.x += sprite->data[2];
- }
-}
-
-void sub_80AFFA0(void)
-{
- s32 i;
-
- for (i = 0; i < 4; i++)
- gSprites[shared19338[i].unk0].pos1.y = gUnknown_083CA338[gUnknown_02038696[i]];
-}
-
-void sub_80AFFE0(bool8 a)
-{
- s32 i;
-
- for (i = 0; i < 4; i++)
- {
- if (gUnknown_02038696[i] > 1)
- {
- if (!a)
- gSprites[shared19338[i].unk0].pos1.x = 180;
- else
- gSprites[shared19338[i].unk0].pos1.x = 256;
- }
- }
-}
-
-void sub_80B0034(void)
-{
- s32 i;
-
- LoadSpritePalette(&gUnknown_083CA3E4);
- for (i = 0; i < 4; i++)
- {
- LoadCompressedObjectPic(&gUnknown_083CA3C4[i]);
- shared19338[i].unk1 = CreateSprite(
- &gSpriteTemplate_83CA3F4[i],
- 204, gUnknown_083CA33C[gUnknown_02038696[i]],
- 0);
- SetSubspriteTables(&gSprites[shared19338[i].unk1], gSubspriteTables_83CA464);
- gSprites[shared19338[i].unk1].invisible = TRUE;
- }
-}
-
-void CreateApplauseMeterSprite(void)
-{
- u8 spriteId;
-
- LoadCompressedObjectPic(&gUnknown_083CA46C);
- LoadSpritePalette(&gUnknown_083CA474);
- spriteId = CreateSprite(&gSpriteTemplate_83CA484, 30, 44, 1);
- gSprites[spriteId].invisible = TRUE;
- sContest.applauseMeterSpriteId = spriteId;
-}
-
-void nullsub_18(s8 unused)
-{
-}
-
-void unref_sub_80B011C(void)
-{
- u8 i;
-
- LoadCompressedObjectPic(&gUnknown_083CC3AC);
- for (i = 0; i < 4; i++)
- LoadCompressedObjectPalette(&gUnknown_083CC3B4[i]);
- for (i = 0; i < 4; i++)
- {
- u8 spriteId = CreateSprite(
- &gSpriteTemplate_83CC454[i],
- gUnknown_083CA330[i][0], gUnknown_083CA330[i][1],
- 5);
-
- gSprites[spriteId].invisible = TRUE;
- gSprites[spriteId].data[0] = i;
- sContest.unk1920D[i] = spriteId;
- }
-}
-
-void unref_sub_80B01B0(void)
-{
- s32 i;
-
- for (i = 0; i < 4; i++)
- gSprites[sContest.unk1920D[i]].callback = sub_80B0238;
-}
-
-bool8 unref_sub_80B01E0(void)
-{
- s32 i;
-
- for (i = 0; i < 4; i++)
- {
- if (gSprites[sContest.unk1920D[i]].callback != SpriteCallbackDummy)
- break;
- }
- if (i == 4)
- return TRUE;
- else
- return FALSE;
-}
-
-void sub_80B0238(struct Sprite *sprite)
-{
- sprite->oam.affineMode = 1;
- InitSpriteAffineAnim(sprite);
- if (sprite->invisible)
- {
- sprite->callback = sub_80B02A8;
- }
- else
- {
- StartSpriteAffineAnim(sprite, 1);
- sprite->callback = sub_80B0280;
- }
-}
-
-void sub_80B0280(struct Sprite *sprite)
-{
- if (sprite->affineAnimEnded)
- {
- sprite->invisible = TRUE;
- sprite->callback = sub_80B02A8;
- }
-}
-
-void sub_80B02A8(struct Sprite *sprite)
-{
- sprite->invisible = FALSE;
- StartSpriteAnim(sprite, sContestantStatus[sprite->data[0]].unkB_0);
- StartSpriteAffineAnim(sprite, 2);
- sprite->callback = sub_80B02F4;
- PlaySE(SE_CONTEST_PLACE);
-}
-
-void sub_80B02F4(struct Sprite *sprite)
-{
- if (sprite->affineAnimEnded)
- {
- FreeSpriteOamMatrix(sprite);
- sprite->oam.affineMode = 0;
- sprite->callback = SpriteCallbackDummy;
- }
-}
-
-void sub_80B0324(void)
-{
- u8 i;
- u8 taskId = CreateTask(sub_80B0458, 30);
-
- sContest.unk19211 = taskId;
- for (i = 0; i < 4; i++)
- gTasks[taskId].data[i * 4] = 0xFF;
-}
-
-void sub_80B0368(u8 a)
-{
- gTasks[sContest.unk19211].data[a * 4 + 0] = 0;
- gTasks[sContest.unk19211].data[a * 4 + 1] = 0;
-}
-
-void sub_80B03A8(u8 a)
-{
- u8 taskId = CreateTask(sub_80B03D8, 31);
-
- gTasks[taskId].data[0] = a;
-}
-
-void sub_80B03D8(u8 taskId)
-{
- u8 r4 = gTasks[taskId].data[0];
-
- if (gTasks[sContest.unk19211].data[r4 * 4 + 0] == 0
- || gTasks[sContest.unk19211].data[r4 * 4 + 0] == 0xFF)
- {
- gTasks[sContest.unk19211].data[r4 * 4 + 0] = 0xFF;
- gTasks[sContest.unk19211].data[r4 * 4 + 1] = 0;
- BlendPalette((sContest.unk19218[r4] + 5) * 16 + 6, 2, 0, RGB(31, 31, 18));
- DestroyTask(taskId);
- }
-}
-
-void sub_80B0458(u8 taskId)
-{
- u8 i;
-
- for (i = 0; i < 4; i++)
- {
- u8 r3 = i * 4;
-
- if (gTasks[taskId].data[r3 + 0] != 0xFF)
- {
- if (gTasks[taskId].data[r3 + 1] == 0)
- gTasks[taskId].data[r3 + 0]++;
- else
- gTasks[taskId].data[r3 + 0]--;
-
- if (gTasks[taskId].data[r3 + 0] == 16
- || gTasks[taskId].data[r3 + 0] == 0)
- gTasks[taskId].data[r3 + 1] ^= 1;
-
- BlendPalette(
- (sContest.unk19218[i] + 5) * 16 + 6,
- 2,
- gTasks[taskId].data[r3 + 0],
- RGB(31, 31, 18));
- }
- }
-}
-
-void sub_80B0518(void)
-{
- u8 i;
-
- sContest.unk19212 = CreateTask(sub_80B05FC, 30);
- for (i = 0; i < 4; i++)
- sub_80B0548(i);
-}
-
-void sub_80B0548(u8 a)
-{
- gTasks[sContest.unk19212].data[a * 4 + 0] = 0xFF;
- gTasks[sContest.unk19212].data[a * 4 + 1] = 0;
-}
-
-void sub_80B0588(void)
-{
- u8 i;
-
- for (i = 0; i < 4; i++)
- sub_80B05A4(i);
-}
-
-void sub_80B05A4(u8 a)
-{
- sub_80B0548(a);
-
- // 2-byte DMA copy? Why?
-
- DmaCopy16Defvars(
- 3,
- &gPlttBufferUnfaded[16 * (5 + a) + 10],
- &gPlttBufferFaded[16 * (5 + a) + 10],
- 2);
-
- DmaCopy16Defvars(
- 3,
- &gPlttBufferUnfaded[16 * (5 + a) + 12 + a],
- &gPlttBufferFaded[16 * (5 + a) + 12 + a],
- 2);
-}
-
-void nullsub_19(int unused)
-{
-}
-
-void sub_80B05FC(u8 taskId)
-{
- u8 i;
-
- for (i = 0; i < 4; i++)
- {
- u8 r3 = i * 4;
-
- if (gTasks[taskId].data[r3 + 0] != 0xFF)
- {
- if (++gTasks[taskId].data[r3 + 2] > 2)
- {
- gTasks[taskId].data[r3 + 2] = 0;
-
- if (gTasks[taskId].data[r3 + 1] == 0)
- gTasks[taskId].data[r3 + 0]++;
- else
- gTasks[taskId].data[r3 + 0]--;
-
- if (gTasks[taskId].data[r3 + 0] == 16
- || gTasks[taskId].data[r3 + 0] == 0)
- gTasks[taskId].data[r3 + 1] ^= 1;
-
- BlendPalette((i + 5) * 16 + 10, 1, gTasks[taskId].data[r3 + 0], RGB(31, 31, 18));
- BlendPalette((i + 5) * 16 + 12 + i, 1, gTasks[taskId].data[r3 + 0], RGB(31, 31, 18));
- }
- }
- }
-}
-
-u8 unref_sub_80B06E0(u8 *a)
-{
- u8 i;
- u8 taskId = CreateTask(sub_80B0748, 10);
-
- for (i = 0; i < 4; i++)
- {
- u8 r0 = i * 4;
-
- gTasks[taskId].data[r0] = a[i];
- if (a[i] != 0)
- shared19338[i].unk2_1 = 1;
- }
- return taskId;
-}
-
-#ifdef NONMATCHING
-void sub_80B0748(u8 taskId)
-{
- u8 i;
- u8 r4;
- u8 r4_2;
- u8 r1;
- u8 r7;
-
- for (i = 0; i < 4; i++)
- {
- //#define r4 r4_2
- r4 = gUnknown_02038696[i];
- r1 = r4 * 4;
- r7 = gTasks[taskId].data[r1 + 0];
-
- if (r7 != 0)
- {
- //_080B079C
- u8 r8 = gTasks[taskId].data[r1 + 1];
- u8 r5 = gTasks[taskId].data[r1 + 2];
- u8 r6 = gTasks[taskId].data[r1 + 3];
-
- if (r7 == 1)
- {
- r6++;
- if (r6 == 1)
- {
- //_080B07D2
- r6 = 0;
- BlendPalette((r4 + 5) * 16 + 1, 3, r5, RGB(31, 31, 31));
- if (r5 == 0 && r8 == 4)
- {
- gTasks[taskId].data[r1 + 0] = 0;
- //asm("");
- }
- //_080B0800
- else
- {
- r5 += 2;
- if (r5 > 13)
- {
- r5 = 0;
- r8++;
- }
- }
- }
- //to _080B08EA
- }
- //_080B0818
- else if (r7 == 2 || r7 == 4)
- {
- r6++;
- if (r6 == 3)
- {
- r6 = 0;
- BlendPalette((r4 + 5) * 16 + 1, 3, r5, gUnknown_083CC5A4[r4]);
- if (r5 == 0 && r8 == 2)
- {
- gTasks[taskId].data[r1 + 0] = 0;
- }
- //_080B0858
- else
- {
- r5 += 1;
- if (r5 == 14)
- {
- r5 = 0;
- r8++;
- if (r7 == 4 && r8 == 1)
- {
- BlendPalette((r4 + 9) * 16 + 2, 1, 4, RGB(0, 0, 0));
- BlendPalette((r4 + 9) * 16 + 5, 1, 4, RGB(0, 0, 0));
- }
- }
- }
- }
- //to _080B08EA
- }
- //_080B0896
- else if (r7 == 3)
- {
- r6++;
- if (r6 == 12)
- {
- r6 = 0;
- BlendPalette((r4 + 5) * 16 + 1, 3, r5, RGB(0, 0, 0));
- r5 += 1;
- if (r5 == 5)
- {
- // What the hell? These aren't pointers.
- // This code would crash if run.
- DmaCopy16Defvars(3, (void *)(u32)gPlttBufferFaded[(r4 + 5) * 16 + 1],
- (void *)(u32)gPlttBufferUnfaded[(r4 + 5) * 16 + 1], 6);
- gTasks[taskId].data[r1 + 0] = 0;
- }
- }
- }
- //_080B08EA
- gTasks[taskId].data[r1 + 1] = r8;
- gTasks[taskId].data[r1 + 2] = r5;
- gTasks[taskId].data[r1 + 3] = r6;
- }
- //_080B0910
- }
- //_080B0920
-
- #define i r4_2
- for (i = 0; i < 4; i++) // r4 is i
- {
- if (gTasks[taskId].data[i * 4 + 0] != 0)
- break;
- }
- //_080B0958
- if (i == 4)
- {
- for (i = 0; i < 4; i++)
- shared19338[i].unk2_2 = 0;
- DestroyTask(taskId);
- }
- #undef i
-}
-#else
-NAKED
-void sub_80B0748(u8 taskId)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- sub sp, 0x20\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- str r0, [sp]\n\
- movs r0, 0\n\
- str r0, [sp, 0x4]\n\
- ldr r2, _080B07F4 @ =gTasks\n\
- movs r1, 0x8\n\
- adds r1, r2\n\
- mov r10, r1\n\
- ldr r3, [sp]\n\
- lsls r3, 2\n\
- str r3, [sp, 0x1C]\n\
- ldr r1, [sp]\n\
- adds r0, r3, r1\n\
- lsls r0, 3\n\
- str r0, [sp, 0xC]\n\
-_080B0774:\n\
- ldr r0, _080B07F8 @ =gUnknown_02038696\n\
- ldr r3, [sp, 0x4]\n\
- adds r0, r3, r0\n\
- ldrb r4, [r0]\n\
- lsls r0, r4, 26\n\
- lsrs r1, r0, 24\n\
- lsls r0, r1, 1\n\
- str r0, [sp, 0x8]\n\
- ldr r3, [sp]\n\
- lsls r0, r3, 2\n\
- adds r0, r3\n\
- lsls r6, r0, 3\n\
- ldr r3, [sp, 0x8]\n\
- adds r0, r3, r6\n\
- add r0, r10\n\
- mov r9, r0\n\
- ldrb r7, [r0]\n\
- cmp r7, 0\n\
- bne _080B079C\n\
- b _080B0910\n\
-_080B079C:\n\
- adds r3, r1, 0x1\n\
- lsls r0, r3, 1\n\
- adds r0, r6\n\
- add r0, r10\n\
- ldrb r0, [r0]\n\
- mov r8, r0\n\
- adds r2, r1, 0x2\n\
- lsls r0, r2, 1\n\
- adds r0, r6\n\
- add r0, r10\n\
- ldrb r5, [r0]\n\
- adds r1, 0x3\n\
- lsls r0, r1, 1\n\
- adds r0, r6\n\
- add r0, r10\n\
- ldrb r6, [r0]\n\
- str r3, [sp, 0x10]\n\
- str r2, [sp, 0x14]\n\
- str r1, [sp, 0x18]\n\
- cmp r7, 0x1\n\
- bne _080B0818\n\
- adds r0, r6, 0x1\n\
- lsls r0, 24\n\
- lsrs r6, r0, 24\n\
- cmp r6, 0x1\n\
- beq _080B07D2\n\
- b _080B08EA\n\
-_080B07D2:\n\
- movs r6, 0\n\
- adds r0, r4, 0x5\n\
- lsls r0, 4\n\
- adds r0, 0x1\n\
- movs r1, 0x3\n\
- adds r2, r5, 0\n\
- ldr r3, _080B07FC @ =0x00007fff\n\
- bl BlendPalette\n\
- cmp r5, 0\n\
- bne _080B0800\n\
- mov r0, r8\n\
- cmp r0, 0x4\n\
- bne _080B0800\n\
- mov r1, r9\n\
- strh r6, [r1]\n\
- b _080B08EA\n\
- .align 2, 0\n\
-_080B07F4: .4byte gTasks\n\
-_080B07F8: .4byte gUnknown_02038696\n\
-_080B07FC: .4byte 0x00007fff\n\
-_080B0800:\n\
- adds r0, r5, 0x2\n\
- lsls r0, 24\n\
- lsrs r5, r0, 24\n\
- cmp r5, 0xD\n\
- bls _080B08EA\n\
- movs r5, 0\n\
- mov r0, r8\n\
- adds r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r8, r0\n\
- b _080B08EA\n\
-_080B0818:\n\
- cmp r7, 0x2\n\
- beq _080B0820\n\
- cmp r7, 0x4\n\
- bne _080B0896\n\
-_080B0820:\n\
- adds r0, r6, 0x1\n\
- lsls r0, 24\n\
- lsrs r6, r0, 24\n\
- cmp r6, 0x3\n\
- bne _080B08EA\n\
- movs r6, 0\n\
- adds r0, r4, 0x5\n\
- lsls r0, 4\n\
- adds r0, 0x1\n\
- ldr r2, _080B0854 @ =gUnknown_083CC5A4\n\
- lsls r1, r4, 1\n\
- adds r1, r2\n\
- ldrh r3, [r1]\n\
- movs r1, 0x3\n\
- adds r2, r5, 0\n\
- bl BlendPalette\n\
- cmp r5, 0\n\
- bne _080B0858\n\
- mov r2, r8\n\
- cmp r2, 0x2\n\
- bne _080B0858\n\
- mov r3, r9\n\
- strh r6, [r3]\n\
- b _080B08EA\n\
- .align 2, 0\n\
-_080B0854: .4byte gUnknown_083CC5A4\n\
-_080B0858:\n\
- adds r0, r5, 0x1\n\
- lsls r0, 24\n\
- lsrs r5, r0, 24\n\
- cmp r5, 0xE\n\
- bne _080B08EA\n\
- movs r5, 0\n\
- mov r0, r8\n\
- adds r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r8, r0\n\
- cmp r7, 0x4\n\
- bne _080B08EA\n\
- cmp r0, 0x1\n\
- bne _080B08EA\n\
- adds r4, 0x9\n\
- lsls r4, 4\n\
- adds r0, r4, 0x2\n\
- movs r1, 0x1\n\
- movs r2, 0x4\n\
- movs r3, 0\n\
- bl BlendPalette\n\
- adds r4, 0x5\n\
- adds r0, r4, 0\n\
- movs r1, 0x1\n\
- movs r2, 0x4\n\
- movs r3, 0\n\
- bl BlendPalette\n\
- b _080B08EA\n\
-_080B0896:\n\
- cmp r7, 0x3\n\
- bne _080B08EA\n\
- adds r0, r6, 0x1\n\
- lsls r0, 24\n\
- lsrs r6, r0, 24\n\
- cmp r6, 0xC\n\
- bne _080B08EA\n\
- movs r6, 0\n\
- adds r0, r4, 0x5\n\
- lsls r0, 4\n\
- adds r4, r0, 0x1\n\
- adds r0, r4, 0\n\
- movs r1, 0x3\n\
- adds r2, r5, 0\n\
- movs r3, 0\n\
- bl BlendPalette\n\
- adds r0, r5, 0x1\n\
- lsls r0, 24\n\
- lsrs r5, r0, 24\n\
- cmp r5, 0x5\n\
- bne _080B08EA\n\
- ldr r0, _080B0930 @ =gPlttBufferFaded\n\
- lsls r1, r4, 1\n\
- adds r0, r1, r0\n\
- ldrh r2, [r0]\n\
- ldr r0, _080B0934 @ =gPlttBufferUnfaded\n\
- adds r1, r0\n\
- ldrh r0, [r1]\n\
- ldr r1, _080B0938 @ =0x040000d4\n\
- str r2, [r1]\n\
- str r0, [r1, 0x4]\n\
- movs r0, 0x80\n\
- lsls r0, 24\n\
- orrs r7, r0\n\
- str r7, [r1, 0x8]\n\
- ldr r0, [r1, 0x8]\n\
- ldr r1, [sp, 0x8]\n\
- ldr r2, [sp, 0xC]\n\
- adds r0, r1, r2\n\
- add r0, r10\n\
- strh r6, [r0]\n\
-_080B08EA:\n\
- ldr r3, [sp, 0x10]\n\
- lsls r0, r3, 1\n\
- ldr r1, [sp, 0xC]\n\
- adds r0, r1\n\
- add r0, r10\n\
- mov r2, r8\n\
- strh r2, [r0]\n\
- ldr r3, [sp, 0x14]\n\
- lsls r0, r3, 1\n\
- adds r0, r1\n\
- add r0, r10\n\
- strh r5, [r0]\n\
- ldr r1, [sp, 0x18]\n\
- lsls r0, r1, 1\n\
- ldr r2, [sp, 0xC]\n\
- adds r0, r2\n\
- add r0, r10\n\
- strh r6, [r0]\n\
- ldr r2, _080B093C @ =gTasks\n\
-_080B0910:\n\
- ldr r0, [sp, 0x4]\n\
- adds r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- str r0, [sp, 0x4]\n\
- cmp r0, 0x3\n\
- bhi _080B0920\n\
- b _080B0774\n\
-_080B0920:\n\
- movs r4, 0\n\
- ldr r3, [sp, 0x1C]\n\
- ldr r1, [sp]\n\
- adds r0, r3, r1\n\
- lsls r1, r0, 3\n\
- adds r2, 0x8\n\
- adds r0, r1, r2\n\
- b _080B0950\n\
- .align 2, 0\n\
-_080B0930: .4byte gPlttBufferFaded\n\
-_080B0934: .4byte gPlttBufferUnfaded\n\
-_080B0938: .4byte 0x040000d4\n\
-_080B093C: .4byte gTasks\n\
-_080B0940:\n\
- adds r0, r4, 0x1\n\
- lsls r0, 24\n\
- lsrs r4, r0, 24\n\
- cmp r4, 0x3\n\
- bhi _080B0958\n\
- lsls r0, r4, 3\n\
- adds r0, r1\n\
- adds r0, r2\n\
-_080B0950:\n\
- movs r3, 0\n\
- ldrsh r0, [r0, r3]\n\
- cmp r0, 0\n\
- beq _080B0940\n\
-_080B0958:\n\
- cmp r4, 0x4\n\
- bne _080B0980\n\
- movs r4, 0\n\
- ldr r3, _080B0990 @ =gSharedMem + 0x19338\n\
- movs r5, 0x3\n\
- negs r5, r5\n\
-_080B0964:\n\
- lsls r1, r4, 2\n\
- adds r1, r3\n\
- ldrb r2, [r1, 0x2]\n\
- adds r0, r5, 0\n\
- ands r0, r2\n\
- strb r0, [r1, 0x2]\n\
- adds r0, r4, 0x1\n\
- lsls r0, 24\n\
- lsrs r4, r0, 24\n\
- cmp r4, 0x3\n\
- bls _080B0964\n\
- ldr r0, [sp]\n\
- bl DestroyTask\n\
-_080B0980:\n\
- add sp, 0x20\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_080B0990: .4byte gSharedMem + 0x19338\n\
- .syntax divided\n");
-}
-#endif
-
-void unref_sub_80B0994(u8 a)
-{
- if (a != 0)
- sContest.unk1920A_2 = 1;
-}
-
-void sub_80B09B0(u8 a)
-{
- if (sContestantStatus[a].hasJudgesAttention)
- sub_80B0368(a);
- else
- sub_80B03A8(a);
-}
-
-extern const struct CompressedSpriteSheet gUnknown_083CC4B4[];
-extern const struct SpritePalette gUnknown_083CC4D4[];
-extern const struct SpriteTemplate gSpriteTemplate_83CC53C[];
-
-u8 sub_80B09E4(u8 a)
-{
- u8 r5 = gUnknown_02038696[a] * 40 + 32;
- u8 r8;
- u8 r6;
- volatile u8 zero;
-
- LoadCompressedObjectPic(&gUnknown_083CC4B4[a]);
- LoadSpritePalette(&gUnknown_083CC4D4[a]);
- r8 = CreateSprite(&gSpriteTemplate_83CC53C[a], 184, r5, 29);
- 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));
-
- DmaFill32Defvars(3, 0, (void *)(VRAM + 0x10000 + (0x28 + gSprites[r8].oam.tileNum) * 32), 0x300);
-
- // What is this?
- zero = 0;
- zero = 0;
-
- DmaFill32Defvars(3, 0, (void *)(VRAM + 0x10000 + (0x28 + gSprites[r6].oam.tileNum) * 32), 0x300);
-
- gSprites[r8].data[0] = r6;
- gSprites[r6].data[0] = r8;
- gSprites[r8].data[1] = a;
- gSprites[r6].data[1] = a;
- return r8;
-}
-
-void sub_80B0B5C(u8 spriteId)
-{
- u8 spriteId2 = gSprites[spriteId].data[0];
-
- FreeSpriteOamMatrix(&gSprites[spriteId2]);
- DestroySprite(&gSprites[spriteId2]);
- DestroySpriteAndFreeResources(&gSprites[spriteId]);
-}
-
-void sub_80B0B98(void)
-{
- REG_BLDCNT = 0x3F40;
- REG_BLDALPHA = 0x0907;
-}
-
-void sub_80B0BB4(void)
-{
- REG_BLDCNT = 0;
- REG_BLDALPHA = 0;
-}
-
-void sub_80B0BC4(u8 a, bool8 b)
-{
- u8 r5;
-
- sub_80B0B98();
- shared19338[gSprites[a].data[1]].unk2_1 = 1;
- r5 = gSprites[a].data[0];
- StartSpriteAffineAnim(&gSprites[a], 1);
- StartSpriteAffineAnim(&gSprites[r5], 1);
- gSprites[a].callback = sub_80B0C5C;
- gSprites[r5].callback = SpriteCallbackDummy;
- if (b == FALSE)
- PlaySE(SE_CONTEST_MONS_TURN);
- else
- PlaySE(SE_PC_LOGIN);
-}
-
-void sub_80B0C5C(struct Sprite *sprite)
-{
- if (sprite->affineAnimEnded)
- {
- u8 r1 = sprite->data[0];
-
- if (gSprites[r1].affineAnimEnded)
- {
- sprite->invisible = TRUE;
- gSprites[r1].invisible = TRUE;
- sprite->callback = sub_80B0CB0;
- }
- }
-}
-
-void sub_80B0CB0(struct Sprite *sprite)
-{
- shared19338[sprite->data[1]].unk2_1 = 0;
- sub_80B0B5C(sprite->data[0]);
- sub_80B0BB4();
-}
-
-void sub_80B0CDC(u8 a, int unused)
-{
- shared19338[a].unk2_1 = 0;
-}
-
-void unref_sub_80B0CF4(void)
-{
- //shared18000.unk18000 ^= 1;
- gSharedMem[0x18000] ^= 1;
- //if (shared18000.unk18000 == 0)
- if (gSharedMem[0x18000] == 0)
- {
- u8 i;
-
- for (i = 0; i < 4; i++)
- {
- Text_FillWindowRectDefPalette(
- &gUnknown_03004210,
- 0,
- gUnknown_083CA308[i][0],
- gUnknown_083CA308[i][1],
- gUnknown_083CA310[i][0] + 5,
- gUnknown_083CA310[i][1] + 1);
- }
- sub_80AE514();
- sub_80AEB30();
- }
- else
- {
- sub_80B0D7C();
- }
-}
-
-void sub_80B0D7C(void)
-{
- u8 r5 = 0;
- u8 sp8[8];
-
- if (gSharedMem[0x18000] != 0)
- {
- u8 i;
- s16 r2;
-
- for (i = 0; i < 4; i++)
- {
- Text_FillWindowRectDefPalette(
- &gUnknown_03004210,
- 0,
- gUnknown_083CA308[i][0],
- gUnknown_083CA308[i][1],
- gUnknown_083CA310[i][0] + 5,
- gUnknown_083CA310[i][1] + 1);
- }
- for (i = 0; i < 4; i++)
- {
- r2 = sContestantStatus[i].unk4;
- if (r2 < 0)
- {
- r2 = -r2;
- sp8[0] = CHAR_HYPHEN;
- r5++;
- }
- ConvertIntToDecimalStringN(sp8 + r5, r2, 0, 4);
- Text_InitWindowAndPrintText(
- &gUnknown_03004210,
- sp8,
- 592 + gUnknown_02038696[i] * 22,
- gUnknown_083CA310[gUnknown_02038696[i]][0],
- gUnknown_083CA310[gUnknown_02038696[i]][1]);
- r5 = 0;
- }
- for (i = 0; i < 4; i++)
- {
- r2 = sContestantStatus[i].appeal2;
- if (r2 < 0)
- {
- r2 = -r2;
- sp8[0] = CHAR_HYPHEN;
- r5++;
- }
- ConvertIntToDecimalStringN(sp8 + r5, r2, 0, 4);
- Text_InitWindowAndPrintText(
- &gUnknown_03004210,
- sp8,
- 512 + gUnknown_02038696[i] * 20,
- gUnknown_083CA308[gUnknown_02038696[i]][0],
- gUnknown_083CA308[gUnknown_02038696[i]][1]);
- r5 = 0;
- }
- sub_80AEB30();
- }
-}
-
-void unref_sub_80B0EE8(s32 *a, s32 b)
-{
- s32 i;
- s32 j;
-
- for (i = 0; i < b - 1; i++)
- {
- for (j = b - 1; j > i; j--)
- {
- if (a[j - 1] > a[j])
- {
- s32 temp = a[j];
-
- a[j] = a[j - 1];
- a[j - 1] = temp;
- }
- }
- }
-}
-
-// something to do with contest NPC opponents, I think.
-void sub_80B0F28(u8 a)
-{
- u8 sp0[4];
- u16 sp4[4] = {0};
- s32 i;
- s32 r2;
- s32 r4;
-
- for (i = 0; i < 4; i++)
- {
- sp4[i] = Random();
- for (r2 = 0; r2 < i; r2++)
- {
- if (sp4[i] == sp4[r2])
- {
- i--;
- break;
- }
- }
- }
-
- if (a == 0)
- {
- for (i = 0; i < 4; i++)
- {
- gUnknown_02038696[i] = i;
- for (r4 = 0; r4 < i; r4++)
- {
- if (gContestMonConditions[gUnknown_02038696[r4]] < gContestMonConditions[i]
- || (gContestMonConditions[gUnknown_02038696[r4]] == gContestMonConditions[i] && sp4[gUnknown_02038696[r4]] < sp4[i]))
- {
- for (r2 = i; r2 > r4; r2--)
- gUnknown_02038696[r2] = gUnknown_02038696[r2 - 1];
- gUnknown_02038696[r4] = i;
- break;
- }
- }
- if (r4 == i)
- gUnknown_02038696[i] = i;
- }
- memcpy(sp0, gUnknown_02038696, sizeof(sp0));
- for (i = 0; i < 4; i++)
- gUnknown_02038696[sp0[i]] = i;
- }
- else
- {
- memset(sp0, 0xFF, sizeof(sp0));
- for (i = 0; i < 4; i++)
- {
- u8 r2 = sContestantStatus[i].unkB_0;
-
- while (1)
- {
- u8 *ptr = &sp0[r2];
- if (*ptr == 0xFF)
- {
- *ptr = i;
- gUnknown_02038696[i] = r2;
- break;
- }
- r2++;
- }
- }
- for (i = 0; i < 3; i++)
- {
- for (r4 = 3; r4 > i; r4--)
- {
- if (sContestantStatus[r4 - 1].unkB_0 == sContestantStatus[r4].unkB_0
- && gUnknown_02038696[r4 - 1] < gUnknown_02038696[r4]
- && sp4[r4 - 1] < sp4[r4])
- {
- u8 temp = gUnknown_02038696[r4];
-
- gUnknown_02038696[r4] = gUnknown_02038696[r4 - 1];
- gUnknown_02038696[r4 - 1] = temp;
- }
- }
- }
- }
-}
-
-void sub_80B1118(void)
-{
- s32 i;
-
- 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);
- }
- sub_80AE514();
-}
-
-void sub_80B114C(u8 contestant)
-{
- bool8 r8;
- s32 i;
-
- sContestantStatus[contestant].appeal2 = 0;
- sContestantStatus[contestant].appeal1 = 0;
- r8 = sub_80AF404(contestant);
- if (r8)
- {
- u16 move = sContestantStatus[contestant].currMove;
- u8 effect = gContestMoves[move].effect;
- u8 rnd;
-
- sContestantStatus[contestant].moveCategory = gContestMoves[sContestantStatus[contestant].currMove].contestCategory;
- if (sContestantStatus[contestant].currMove == sContestantStatus[contestant].prevMove && sContestantStatus[contestant].currMove != MOVE_NONE)
- {
- sContestantStatus[contestant].disappointedRepeat = TRUE;
- sContestantStatus[contestant].moveRepeatCount++;
- }
- else
- {
- sContestantStatus[contestant].moveRepeatCount = 0;
- }
- sContestantStatus[contestant].appeal1 = gContestEffects[effect].appeal;
- sContestantStatus[contestant].appeal2 = gContestEffects[effect].appeal;
- shared192D0.jam = gContestEffects[effect].jam;
- shared192D0.jam2 = gContestEffects[effect].jam;
- shared192D0.contestant = contestant;
- for (i = 0; i < 4; i++)
- {
- sContestantStatus[i].jam = 0;
- shared192D0.unnervedPokes[i] = 0;
- }
- if (sContestantStatus[contestant].hasJudgesAttention && AreMovesContestCombo(sContestantStatus[contestant].prevMove, sContestantStatus[contestant].currMove) == 0)
- sContestantStatus[contestant].hasJudgesAttention = 0;
- gContestEffectFuncs[effect]();
- if (sContestantStatus[contestant].conditionMod == 1)
- sContestantStatus[contestant].appeal2 += sContestantStatus[contestant].condition - 10;
- else if (sContestantStatus[contestant].appealTripleCondition)
- sContestantStatus[contestant].appeal2 += sContestantStatus[contestant].condition * 3;
- else
- sContestantStatus[contestant].appeal2 += sContestantStatus[contestant].condition;
- sContestantStatus[contestant].unk16 = 0;
- sContestantStatus[contestant].unk15_6 = 0;
- if (sub_80B214C(contestant))
- {
- u8 r2 = AreMovesContestCombo(sContestantStatus[contestant].prevMove, sContestantStatus[contestant].currMove);
-
- if (r2 != 0 && sContestantStatus[contestant].hasJudgesAttention)
- {
- sContestantStatus[contestant].unk16 = r2;
- sContestantStatus[contestant].unk15_6 = 1;
- sContestantStatus[contestant].hasJudgesAttention = 0;
- sContestantStatus[contestant].unk17 = sContestantStatus[contestant].appeal1 * sContestantStatus[contestant].unk16;
- sContestantStatus[contestant].unk15_3 = 1;
- }
- else
- {
- if (gContestMoves[sContestantStatus[contestant].currMove].comboStarterId != 0)
- {
- sContestantStatus[contestant].hasJudgesAttention = 1;
- sContestantStatus[contestant].unk15_6 = 1;
- }
- else
- {
- sContestantStatus[contestant].hasJudgesAttention = 0;
- }
- }
- }
- if (sContestantStatus[contestant].disappointedRepeat)
- sContestantStatus[contestant].unk18 = (sContestantStatus[contestant].moveRepeatCount + 1) * 10;
- if (sContestantStatus[contestant].nervous)
- {
- sContestantStatus[contestant].hasJudgesAttention = 0;
- sContestantStatus[contestant].appeal2 = 0;
- sContestantStatus[contestant].appeal1 = 0;
- }
- shared19328.bits_0 = Contest_GetMoveExcitement(sContestantStatus[contestant].currMove);
- if (sContestantStatus[contestant].overrideCategoryExcitementMod)
- shared19328.bits_0 = 1;
- if (shared19328.bits_0 > 0)
- {
- if (sContest.applauseLevel + shared19328.bits_0 > 4)
- shared19328.unk2 = 60;
- else
- shared19328.unk2 = 10;
- }
- else
- {
- shared19328.unk2 = 0;
- }
-
- rnd = Random() % 3;
- for (i = 0; i < 4; i++)
- {
- if (i != contestant)
- {
- if (rnd == 0)
- break;
- rnd--;
- }
- }
- sContestantStatus[contestant].unk1B = i;
- }
-}
-
-void SetContestantEffectStringID(u8 a, u8 b)
-{
- sContestantStatus[a].effectStringId = b;
-}
-
-void SetContestantEffectStringID2(u8 a, u8 b)
-{
- sContestantStatus[a].effectStringId2 = b;
-}
-
-void SetStartledString(u8 contestant, u8 jam)
-{
- if (jam >= 60)
- SetContestantEffectStringID(contestant, CONTEST_STRING_TRIPPED_OVER);
- else if (jam >= 40)
- SetContestantEffectStringID(contestant, CONTEST_STRING_LEAPT_UP);
- else if (jam >= 30)
- SetContestantEffectStringID(contestant, CONTEST_STRING_UTTER_CRY);
- else if (jam >= 20)
- SetContestantEffectStringID(contestant, CONTEST_STRING_TURNED_BACK);
- else if (jam >= 10)
- SetContestantEffectStringID(contestant, CONTEST_STRING_LOOKED_DOWN);
-}
-
-void sub_80B146C(u8 contestant, u8 stringId)
-{
- StringCopy(gStringVar1, gContestMons[contestant].nickname);
- StringCopy(gStringVar2, gMoveNames[sContestantStatus[contestant].currMove]);
- if (gContestMoves[sContestantStatus[shared192D0.contestant].currMove].contestCategory == CONTEST_CATEGORY_COOL)
- StringCopy(gStringVar3, gText_Contest_Shyness);
- else if (gContestMoves[sContestantStatus[shared192D0.contestant].currMove].contestCategory == CONTEST_CATEGORY_BEAUTY)
- StringCopy(gStringVar3, gText_Contest_Anxiety);
- else if (gContestMoves[sContestantStatus[shared192D0.contestant].currMove].contestCategory == CONTEST_CATEGORY_CUTE)
- StringCopy(gStringVar3, gText_Contest_Laziness);
- else if (gContestMoves[sContestantStatus[shared192D0.contestant].currMove].contestCategory == CONTEST_CATEGORY_SMART)
- StringCopy(gStringVar3, gText_Contest_Hesitancy);
- else
- StringCopy(gStringVar3, gText_Contest_Fear);
- StringExpandPlaceholders(gStringVar4, gUnknown_083CC188[stringId]);
- sub_80AF138();
- Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
-}
-
-void MakeContestantNervous(u8 p)
-{
- sContestantStatus[p].nervous = 1;
- sContestantStatus[p].currMove = MOVE_NONE;
-}
-
-// Determines turn order?
-void sub_80B159C(void)
-{
- u8 r12 = 0;
- s32 i;
- s32 j;
- u8 sp0[4];
- u8 sp4[4];
-
- for (i = 0; i < 4; i++)
- {
- sp0[i] = gUnknown_02038696[i];
- sp4[i] = 0;
- }
-
- for (i = 0; i < 4; i++)
- {
- for (j = 0; j < 4; j++)
- {
- if (sContestantStatus[j].nextTurnOrder == i)
- {
- sp0[j] = i;
- sp4[j] = 1;
- break;
- }
- }
- if (j == 4)
- {
- for (j = 0; j < 4; j++)
- {
- if (sp4[j] == 0 && sContestantStatus[j].nextTurnOrder == 0xFF)
- {
- r12 = j;
- j++;
- break;
- }
- }
- for (; j < 4; j++)
- {
- if (sp4[j] == 0 && sContestantStatus[j].nextTurnOrder == 0xFF
- && gUnknown_02038696[r12] > gUnknown_02038696[j])
- r12 = j;
- }
- sp0[r12] = i;
- sp4[r12] = 1;
- }
- }
-
- for (i = 0; i < 4; i++)
- {
- shared192D0.turnOrder[i] = sp0[i];
- sContestantStatus[i].nextTurnOrder = 0xFF;
- sContestantStatus[i].turnOrderMod = 0;
- gUnknown_02038696[i] = sp0[i];
- }
-}
-
-void sub_80B16D0(struct Sprite *sprite)
-{
- if (sprite->data[1]++ > 84)
- {
- sprite->data[1] = 0;
- sprite->invisible = TRUE;
- sprite->callback = SpriteCallbackDummy;
- sContest.unk1920A_4 = 0;
- }
-}
-
-void sub_80B1710(u8 a)
-{
- u8 spriteId = sContest.unk19216;
-
- switch (a)
- {
- case 0:
- case 1:
- gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0];
- PlaySE(SE_FAILURE);
- break;
- case 2:
- gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 4;
- PlaySE(SE_SUCCESS);
- break;
- case 3:
- gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 8;
- PlaySE(SE_SUCCESS);
- break;
- case 4:
- gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 12;
- PlaySE(SE_WARP_IN);
- break;
- case 5: // exactly the same as case 4
- gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 12;
- PlaySE(SE_WARP_IN);
- break;
- case 6:
- gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 16;
- PlaySE(SE_WARP_IN);
- break;
- case 8:
- gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 24;
- PlaySE(SE_M_HEAL_BELL);
- break;
- case 7:
- default:
- gSprites[spriteId].oam.tileNum = gSprites[spriteId].data[0] + 20;
- PlaySE(SE_WARP_IN);
- break;
- }
- gSprites[spriteId].data[1] = 0;
- gSprites[spriteId].invisible = FALSE;
- gSprites[spriteId].callback = sub_80B16D0;
- sContest.unk1920A_4 = 1;
-}
-
-void sub_80B1928(void)
-{
- s32 i;
-
- for (i = 0; i < 5; i++)
- {
- const u8 *src;
-
- if (i < sContest.applauseLevel)
- src = gContestApplauseMeterGfx + 64;
- else
- src = gContestApplauseMeterGfx;
- CpuCopy32(src, (void *)(VRAM + 0x10000 + (gSprites[sContest.applauseMeterSpriteId].oam.tileNum + 17 + i) * 32), 32);
- CpuCopy32(src + 32, (void *)(VRAM + 0x10000 + (gSprites[sContest.applauseMeterSpriteId].oam.tileNum + 25 + i) * 32), 32);
- if (sContest.applauseLevel > 4)
- sub_80B1A2C();
- }
-}
-
-void unref_sub_80B19D0(void)
-{
- u8 str[20];
- StringCopy(str, gUnknown_083CC2EC);
- Text_InitWindowAndPrintText(&gUnknown_03004210, str, 680, 0, 0);
-}
-
-s8 Contest_GetMoveExcitement(u16 move)
-{
- return gContestExcitementTable[gSpecialVar_ContestCategory][gContestMoves[move].contestCategory];
-}
-
-// Launches crowd movement task, maybe
-u8 sub_80B1A2C(void)
-{
- u8 taskId = CreateTask(c3_08130B10, 10);
-
- gTasks[taskId].data[1] = 1;
- gTasks[taskId].data[2] = IndexOfSpritePaletteTag(0x0ABE2);
- return taskId;
-}
-
-void c3_08130B10(u8 taskId)
-{
- if (++gTasks[taskId].data[0] == 1)
- {
- gTasks[taskId].data[0] = 0;
- if (gTasks[taskId].data[3] == 0)
- gTasks[taskId].data[4]++;
- else
- gTasks[taskId].data[4]--;
- BlendPalette(264 + gTasks[taskId].data[2] * 16, 1, gTasks[taskId].data[4], RGB(31, 31, 31));
- if (gTasks[taskId].data[4] == 0 || gTasks[taskId].data[4] == 16)
- {
- gTasks[taskId].data[3] ^= 1;
- if (sContest.applauseLevel < 5)
- {
- BlendPalette(264 + gTasks[taskId].data[2] * 16, 1, 0, RGB(31, 0, 0));
- DestroyTask(taskId);
- }
- }
- }
-}
-
-void sub_80B1B14(void)
-{
- CreateTask(sub_80B1B68, 10);
- gSprites[sContest.applauseMeterSpriteId].pos2.x = -70;
- gSprites[sContest.applauseMeterSpriteId].invisible = FALSE;
- sContest.unk1920A_6 = 1;
-}
-
-void sub_80B1B68(u8 taskId)
-{
- struct Sprite *sprite = &gSprites[sContest.applauseMeterSpriteId];
-
- gTasks[taskId].data[10] += 1664;
- sprite->pos2.x += gTasks[taskId].data[10] >> 8;
- gTasks[taskId].data[10] = gTasks[taskId].data[10] & 0xFF;
- if (sprite->pos2.x > 0)
- sprite->pos2.x = 0;
- if (sprite->pos2.x == 0)
- {
- sContest.unk1920A_6 = 0;
- DestroyTask(taskId);
- }
-}
-
-void sub_80B1BDC(void)
-{
- if (gSprites[sContest.applauseMeterSpriteId].invisible == TRUE)
- {
- sContest.unk1920A_6 = 0;
- }
- else
- {
- CreateTask(sub_80B1C34, 10);
- gSprites[sContest.applauseMeterSpriteId].pos2.x = 0;
- sContest.unk1920A_6 = 1;
- }
-}
-
-void sub_80B1C34(u8 taskId)
-{
- struct Sprite *sprite = &gSprites[sContest.applauseMeterSpriteId];
-
- gTasks[taskId].data[10] += 1664;
- sprite->pos2.x -= gTasks[taskId].data[10] >> 8;
- gTasks[taskId].data[10] = gTasks[taskId].data[10] & 0xFF;
- if (sprite->pos2.x < -70)
- sprite->pos2.x = -70;
- if (sprite->pos2.x == -70)
- {
- sprite->invisible = TRUE;
- sContest.unk1920A_6 = 0;
- DestroyTask(taskId);
- }
-}
-
-void sub_80B1CBC(s8 a)
-{
- u8 taskId = CreateTask(sub_80B1CFC, 5);
-
- gTasks[taskId].data[0] = a;
- sContest.unk1920A_5 = 1;
-}
-
-void sub_80B1CFC(u8 taskId)
-{
- switch (gTasks[taskId].data[10])
- {
- case 0:
- sub_80B1B14();
- gTasks[taskId].data[10]++;
- break;
- case 1:
- if (!sContest.unk1920A_6)
- {
- nullsub_18(gTasks[taskId].data[0]);
- gTasks[taskId].data[10]++;
- }
- break;
- case 2:
- if (gTasks[taskId].data[11]++ > 20)
- {
- gTasks[taskId].data[11] = 0;
- sub_80B1928();
- sContest.unk1920A_5 = 0;
- DestroyTask(taskId);
- }
- break;
- }
-}
-
-void unref_sub_80B1D84(void)
-{
- gSprites[sContest.applauseMeterSpriteId].pos2.x = 0;
- gSprites[sContest.applauseMeterSpriteId].invisible = FALSE;
-}
-
-void unref_sub_80B1DB8(void)
-{
- gSprites[sContest.applauseMeterSpriteId].invisible = TRUE;
-}
-
-void sub_80B1DDC(void)
-{
- CreateTask(sub_80B1DFC, 15);
- sContest.unk1920A_7 = 1;
-}
-
-void sub_80B1DFC(u8 taskId)
-{
- if (gTasks[taskId].data[10]++ > 6)
- {
- register struct Task *task asm("r0");
- register u32 r4 asm("r4") = taskId * 4;
-
- gTasks[taskId].data[10] = 0;
- if (gTasks[taskId].data[11] == 0)
- {
- DmaCopy32Defvars(3, shared16800, (void *)(VRAM + 0x2000), 0x1000);
- }
- else
- {
- DmaCopy32Defvars(3, shared15800, (void *)(VRAM + 0x2000), 0x1000);
- gTasks[taskId].data[12]++;
- }
-
- // Why won't this match the normal way?
- asm("add %0, %1, #0\n\t"
- "add %0, %3\n\t"
- "lsl %0, #3\n\t"
- "add %0, %2\n\t"
- : "=r"(task):"r"(r4),"r"(gTasks),"r"(taskId));
-
- //gTasks[taskId].data[11] ^= 1;
- task->data[11] ^= 1;
-
- //if (gTasks[taskId].data[12] == 9)
- if (task->data[12] == 9)
- {
- sContest.unk1920A_7 = 0;
- DestroyTask(taskId);
- }
- }
-}
-
-#define tBlendColor data[0]
-#define tBlendCoeff data[1]
-
-void sub_80B1EA8(s8 a, s8 b)
-{
- u8 taskId = CreateTask(sub_80B1F4C, 10);
- u16 blendColor;
- u8 blendCoeff;
- u8 r3;
-
- if (a > 0)
- {
- blendColor = RGB(30, 27, 8);
- if (b > 0)
- {
- blendCoeff = 0;
- r3 = sContest.applauseLevel * 3;
- }
- else
- {
- blendCoeff = sContest.applauseLevel * 3;
- r3 = 0;
- }
- }
- else
- {
- blendColor = 0;
- if (b > 0)
- {
- blendCoeff = 0;
- r3 = 12;
- }
- else
- {
- blendCoeff = 12;
- r3 = 0;
- }
- }
- gTasks[taskId].tBlendColor = blendColor;
- gTasks[taskId].tBlendCoeff = blendCoeff;
- gTasks[taskId].data[2] = b;
- gTasks[taskId].data[3] = r3;
- sContest.unk1920B_0 = 0;
-}
-
-void sub_80B1F4C(u8 taskId)
-{
- if (gTasks[taskId].data[10]++ >= 0)
- {
- gTasks[taskId].data[10] = 0;
- if (gTasks[taskId].data[2] > 0)
- gTasks[taskId].tBlendCoeff++;
- else
- gTasks[taskId].tBlendCoeff--;
- BlendPalette(17, 1, gTasks[taskId].tBlendCoeff, gTasks[taskId].tBlendColor);
- BlendPalette(26, 1, gTasks[taskId].tBlendCoeff, gTasks[taskId].tBlendColor);
- if (gTasks[taskId].tBlendCoeff == gTasks[taskId].data[3])
- {
- DestroyTask(taskId);
- sContest.unk1920B_0 = 0;
- }
- }
-}
-
-#undef tBlendColor
-#undef tBlendCoeff
-
-void sub_80B1FD0(bool8 a)
-{
- s32 i;
-
- for (i = 0; i < 4; i++)
- {
- if (sContestantStatus[i].turnOrderMod != 0 && a)
- {
- CpuCopy32(
- 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].invisible = FALSE;
- }
- else
- {
- gSprites[shared19338[i].unk1].invisible = TRUE;
- }
- }
-}
-
-const u8 *GetTurnOrderNumberGfx(u8 contestant)
-{
- if (sContestantStatus[contestant].turnOrderMod != 1)
- return gContestNextTurnRandomGfx;
- else
- return gContestNextTurnNumbersGfx + sContestantStatus[contestant].nextTurnOrder * 64;
-}
-
-void sub_80B20C4(void)
-{
- s32 i;
-
- for (i = 0; i < 4; i++)
- {
- if (shared192D0.unnervedPokes[i] != 0 && !Contest_IsMonsTurnDisabled(i))
- {
- u8 r4 = gUnknown_02038696[i] * 5 + 2;
- u16 r0 = sub_80AEFE8(i, 3);
-
- *(u16 *)(VRAM + 0xC000 + r4 * 64 + 0x28) = r0;
- *(u16 *)(VRAM + 0xC000 + r4 * 64 + 0x2A) = r0 + 1;
- *(u16 *)(VRAM + 0xC000 + (r4 + 1) * 64 + 0x28) = r0 + 16;
- *(u16 *)(VRAM + 0xC000 + (r4 + 1) * 64 + 0x2A) = r0 + 17;
- PlaySE(SE_CONTEST_ICON_CHANGE);
- }
- }
-}
-
-bool8 sub_80B214C(u8 a)
-{
- if (sContestantStatus[a].disappointedRepeat || sContestantStatus[a].nervous)
- return FALSE;
- else
- return TRUE;
-}
-
-void sub_80B2184(void)
-{
- s32 i;
-
- ((vBgCnt *)&REG_BG1CNT)->priority = 0;
- ((vBgCnt *)&REG_BG1CNT)->screenSize = 1;
- ((vBgCnt *)&REG_BG1CNT)->areaOverflowMode = 0;
-
- gBattle_BG1_X = DISPLAY_WIDTH;
- gBattle_BG1_Y = DISPLAY_HEIGHT;
- REG_BG1HOFS = DISPLAY_WIDTH;
- REG_BG1VOFS = DISPLAY_HEIGHT;
-
- DmaClear32(3, (void *)(VRAM + 0xF000), 0x1000);
- LZDecompressVram(gUnknown_08D17C3C, (void *)(VRAM + 0xF000));
-
- ((vBgCnt *)&REG_BG1CNT)->charBaseBlock = 0;
-
- for (i = 0; i < 4; i++)
- {
- gSprites[shared19338[i].unk0].oam.priority = 1;
- gSprites[shared19338[i].unk1].oam.priority = 1;
- }
-
- ((vBgCnt *)&REG_BG2CNT)->priority = 1;
- ((vBgCnt *)&REG_BG0CNT)->priority = 1;
- ((vBgCnt *)&REG_BG1CNT)->screenSize = 2;
-}
-
-void sub_80B2280(void)
-{
- s32 i;
-
- DmaClearLarge32(3, (void *)(VRAM + 0x8000), 0x2000, 0x1000);
- DmaClear32(3, (void *)(VRAM + 0xF000), 0x1000);
-
- gBattle_BG1_X = 0;
- gBattle_BG1_Y = 0;
-
- ((vBgCnt *)&REG_BG1CNT)->priority = 1;
- ((vBgCnt *)&REG_BG1CNT)->screenSize = 0;
- ((vBgCnt *)&REG_BG1CNT)->areaOverflowMode = 0;
- ((vBgCnt *)&REG_BG1CNT)->charBaseBlock = 2;
-
- for (i = 0; i < 4; i++)
- {
- gSprites[shared19338[i].unk0].oam.priority = 0;
- gSprites[shared19338[i].unk1].oam.priority = 0;
- }
-}
-
-void sub_80B237C(u8 taskId)
-{
- gBattle_BG1_X = 0;
- gBattle_BG1_Y = DISPLAY_HEIGHT;
- PlaySE12WithPanning(SE_CONTEST_CURTAIN_FALL, 0);
- gTasks[taskId].func = sub_80B23BC;
-}
-
-void sub_80B23BC(u8 taskId)
-{
- if ((s16)(gBattle_BG1_Y -= 7) < 0)
- gBattle_BG1_Y = 0;
- if (gBattle_BG1_Y == 0) // Why cast?
- {
- gTasks[taskId].data[0] = 0;
- gTasks[taskId].data[1] = 0;
- gTasks[taskId].data[2] = 0;
- gTasks[taskId].func = sub_80B2400;
- }
-}
-
-void sub_80B2400(u8 taskId)
-{
- s32 i;
-
- switch (gTasks[taskId].data[0])
- {
- case 0:
- for (i = 0; i < 4; i++)
- sContest.unk19218[i] = gUnknown_02038696[i];
- sub_80AFA5C();
- sub_80B0588();
- sub_80AEF50();
- sub_80B1118();
- sub_80B1FD0(TRUE);
- sub_80AFFA0();
- gTasks[taskId].data[0] = 1;
- break;
- case 1:
- if (gIsLinkContest & 1)
- {
- u8 taskId2;
-
- sContest.unk1920B_2 = 1;
- if (sub_80AE074())
- sub_80AF438();
- taskId2 = CreateTask(sub_80C8C80, 0);
- SetTaskFuncWithFollowupFunc(taskId2, sub_80C8C80, sub_80AD8DC);
- sub_80AF860();
- gTasks[taskId].data[0] = 2;
- }
- else
- {
- sub_80AF438();
- gTasks[taskId].data[0] = 3;
- }
- break;
- case 2:
- if (!sContest.unk1920B_2)
- gTasks[taskId].data[0] = 3;
- break;
- case 3:
- sub_80AF120();
- sub_80AEB30();
- gTasks[taskId].data[0] = 0;
- gTasks[taskId].func = sub_80B253C;
- break;
- }
-}
-
-void sub_80B2508(u8 taskId)
-{
- if ((s16)(gBattle_BG1_Y += 7) > DISPLAY_HEIGHT)
- gTasks[taskId].func = sub_80ADCDC;
-}
-
-void sub_80B253C(u8 taskId)
-{
- if (gTasks[taskId].data[2] < 10)
- {
- gTasks[taskId].data[2]++;
- }
- else
- {
- if (gTasks[taskId].data[1] == 0)
- {
- if (gTasks[taskId].data[0] == 16)
- gTasks[taskId].data[1]++;
- else
- gTasks[taskId].data[0]++;
- }
- else
- {
- if (gTasks[taskId].data[0] == 0)
- {
- gTasks[taskId].data[1] = 0;
- gTasks[taskId].data[2] = 0;
- gTasks[taskId].func = sub_80B25A4;
- }
- else
- {
- gTasks[taskId].data[0]--;
- }
- }
- }
-}
-
-void sub_80B25A4(u8 taskId)
-{
- if (gTasks[taskId].data[2] < 10)
- {
- gTasks[taskId].data[2]++;
- }
- else
- {
- gTasks[taskId].data[2] = 0;
- PlaySE12WithPanning(SE_CONTEST_CURTAIN_RISE, 0);
- gTasks[taskId].func = sub_80B2508;
- }
-}
-
-void sub_80B25E4(u8 a)
-{
- s32 i;
- u8 taskId;
-
- for (i = 0; i < 4; i++)
- {
- gSprites[shared19338[i].unk0].oam.matrixNum = AllocOamMatrix();
- gSprites[shared19338[i].unk0].oam.affineMode = 1;
- StartSpriteAffineAnim(&gSprites[shared19338[i].unk0], a);
- if (a == 2)
- {
- AnimateSprite(&gSprites[shared19338[i].unk0]);
- gSprites[shared19338[i].unk0].invisible = FALSE;
- }
- }
- taskId = CreateTask(sub_80B26C8, 5);
- gTasks[taskId].data[0] = a;
- sContest.unk1920B_1 = 1;
-}
-
-void sub_80B26C8(u8 taskId)
-{
- s32 i;
-
- if (gSprites[shared19338[0].unk0].affineAnimEnded)
- {
- if ((u8)gTasks[taskId].data[0] == 1)
- {
- for (i = 0; i < 4; i++)
- gSprites[shared19338[i].unk0].invisible = TRUE;
- }
- for (i = 0; i < 4; i++)
- FreeSpriteOamMatrix(&gSprites[shared19338[i].unk0]);
- sContest.unk1920B_1 = 0;
- DestroyTask(taskId);
- }
-}
-
-u16 SanitizeMove(u16 move)
-{
- if (move >= NUM_MOVES)
- move = MOVE_POUND;
- return move;
-}
-
-u16 SanitizeSpecies(u16 species)
-{
- if (species >= NUM_SPECIES)
- species = SPECIES_NONE;
- return species;
-}
-
-void sub_80B2790(u8 a)
-{
- s32 i;
- u16 move = SanitizeMove(sContestantStatus[a].currMove);
- u16 species = SanitizeSpecies(gContestMons[a].species);
- u8 r5_2;
-
- memset(&shared19348, 0, sizeof(shared19348));
- ClearBattleAnimationVars();
- for (i = 0; i < 4; i++)
- gBattleMonForms[i] = 0;
- switch (move)
- {
- case MOVE_CURSE:
- if (gBaseStats[species].type1 == TYPE_GHOST || gBaseStats[species].type2 == TYPE_GHOST)
- gAnimMoveTurn = 0;
- else
- gAnimMoveTurn = 1;
- break;
- case MOVE_TRANSFORM:
- case MOVE_ROLE_PLAY:
- r5_2 = sContestantStatus[a].unk1B;
- shared19348.unk2 = SanitizeSpecies(gContestMons[r5_2].species);
- shared19348.unk10 = gContestMons[r5_2].personality;
- shared19348.unk4_0 = 1;
- break;
- case MOVE_RETURN:
- gAnimFriendship = 0xFF;
- break;
- case MOVE_FRUSTRATION:
- gAnimFriendship = 0;
- break;
- case MOVE_SOLAR_BEAM:
- case MOVE_RAZOR_WIND:
- case MOVE_SKULL_BASH:
- case MOVE_SKY_ATTACK:
- if (sContest.unk1925E == 0)
- {
- sContest.unk1925E = 2;
- gAnimMoveTurn = 0;
- }
- else
- {
- gAnimMoveTurn = 1;
- }
- break;
- }
- sub_80B2968();
-}
-
-void sub_80B28CC(int unused)
-{
- memset(&shared19348, 0, sizeof(shared19348));
- if (sContest.unk1925E != 0)
- sContest.unk1925E--;
-}
-
-void sub_80B28F0(u8 a)
-{
- shared19348.unk5 = a;
- shared19348.unk0 = SanitizeSpecies(gContestMons[a].species);
- shared19348.unk8 = gContestMons[a].personality;
- shared19348.unkC = gContestMons[a].otId;
-}
-
-void sub_80B292C(void)
-{
- gBattlerSpriteIds[3] = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy);
- InitSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattlerTarget]]);
- sub_80B2968();
-}
-
-void sub_80B2968(void)
-{
- struct Sprite *sprite = &gSprites[gBattlerSpriteIds[3]];
-
- sprite->pos2.x = 0;
- sprite->pos2.y = 0;
- sprite->pos1.x = GetBattlerSpriteCoord(3, 0);
- sprite->pos1.y = GetBattlerSpriteCoord(3, 1);
- sprite->invisible = TRUE;
-}
-
-void SelectContestMoveBankTarget(u16 move)
-{
- switch (gBattleMoves[move].target)
- {
- case TARGET_UNK2:
- case TARGET_USER:
- gBattlerTarget = 2;
- break;
- case TARGET_SELECTED_POKEMON:
- case TARGET_RANDOM:
- case TARGET_BOTH_ENEMIES:
- case TARGET_ALL_EXCEPT_USER:
- default:
- gBattlerTarget = 3;
- break;
- }
-}
-
-bool8 Contest_SaveWinner(u8 a)
-{
- s32 i;
- u8 r7 = Random() % 3;
-
- for (i = 0; i < 3; i++)
- {
- if (gContestFinalStandings[i] == 0)
- break;
- }
- if (a == 0xFF && i != gContestPlayerMonIndex)
- return FALSE;
- switch (gSpecialVar_ContestCategory)
- {
- case CONTEST_CATEGORY_COOL:
- r7 += 0;
- break;
- case CONTEST_CATEGORY_BEAUTY:
- r7 += 3;
- break;
- case CONTEST_CATEGORY_CUTE:
- r7 += 6;
- break;
- case CONTEST_CATEGORY_SMART:
- r7 += 9;
- break;
- case CONTEST_CATEGORY_TOUGH:
- r7 += 12;
- break;
- }
- if (a != 0xFE)
- {
- u8 r4 = sub_80B2C4C(a, 1);
-
- gSaveBlock1.contestWinners[r4].personality = gContestMons[i].personality;
- gSaveBlock1.contestWinners[r4].species = gContestMons[i].species;
- gSaveBlock1.contestWinners[r4].otId = gContestMons[i].otId;
- StringCopy(gSaveBlock1.contestWinners[r4].nickname, gContestMons[i].nickname);
- StringCopy(gSaveBlock1.contestWinners[r4].trainerName, gContestMons[i].trainerName);
- if (a != 0xFF)
- gSaveBlock1.contestWinners[r4].contestCategory = gSpecialVar_ContestCategory;
- else
- gSaveBlock1.contestWinners[r4].contestCategory = r7;
- }
- else
- {
- shared15DE0.personality = gContestMons[i].personality;
- shared15DE0.otId = gContestMons[i].otId;
- shared15DE0.species = gContestMons[i].species;
- StringCopy(shared15DE0.nickname, gContestMons[i].nickname);
- if (gIsLinkContest & 1)
- StringCopy(shared15DE0.trainerName, gLinkPlayers[i].name);
- else
- StringCopy(shared15DE0.trainerName, gContestMons[i].trainerName);
- shared15DE0.contestCategory = r7;
- }
- return TRUE;
-}
-
-u8 sub_80B2C4C(u8 a, u8 b)
-{
- s32 i;
-
- switch (a)
- {
- case 0:
- case 1:
- return a;
- case 2:
- if (b != 0)
- {
- for (i = 4; i >= 3; i--)
- memcpy(&gSaveBlock1.contestWinners[i], &gSaveBlock1.contestWinners[i - 1], sizeof(struct ContestWinner));
- }
- return 2;
- case 3:
- if (b != 0)
- {
- for (i = 7; i >= 6; i--)
- memcpy(&gSaveBlock1.contestWinners[i], &gSaveBlock1.contestWinners[i - 1], sizeof(struct ContestWinner));
- }
- return 5;
- default:
- switch (gSpecialVar_ContestCategory)
- {
- case CONTEST_CATEGORY_COOL:
- return 8;
- case CONTEST_CATEGORY_BEAUTY:
- return 9;
- case CONTEST_CATEGORY_CUTE:
- return 10;
- case CONTEST_CATEGORY_SMART:
- return 11;
- case CONTEST_CATEGORY_TOUGH:
- default:
- return 12;
- }
- }
-}
-
-void Contest_ResetWinners(void)
-{
- s32 i;
-
- for (i = 0; i < 8; i++)
- gSaveBlock1.contestWinners[i] = gUnknown_083CC5D0[i];
-}
+// File boundary