summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDiegoisawesome <Diegoisawesome@users.noreply.github.com>2019-01-28 12:48:39 -0600
committerGitHub <noreply@github.com>2019-01-28 12:48:39 -0600
commit5bfd802dbbeeb3af1e43fa839e0c879160343248 (patch)
tree0797a6fbd815b2ce9e6bf2d60fa96e6552743d0c /src
parent183b6857ff21c50c0902653d6ded9e4d7f306033 (diff)
parent73d919fa0f798c14ca8e4097bb1d4fe06500ac18 (diff)
Merge pull request #527 from DizzyEggg/contest
Finish up Contest.c
Diffstat (limited to 'src')
-rw-r--r--src/contest.c4800
1 files changed, 1910 insertions, 2890 deletions
diff --git a/src/contest.c b/src/contest.c
index 04c64d709..b24036f39 100644
--- a/src/contest.c
+++ b/src/contest.c
@@ -21,6 +21,7 @@
#include "overworld.h"
#include "palette.h"
#include "random.h"
+#include "new_game.h"
#include "script.h"
#include "sound.h"
#include "sprite.h"
@@ -44,161 +45,155 @@
#include "constants/rgb.h"
#include "contest_ai.h"
-extern void (*gFieldCallback)(void);
-
-void sub_80D782C(void);
-void sub_80D7C7C(u8 taskId);
-void sub_80D7CB4(u8 taskId);
-void sub_80D7DAC(u8 taskId);
-void sub_80D7DC8(u8 taskId);
-void sub_80D7DE8(u8 taskId);
-bool8 sub_80D7E44(u8 *);
-void sub_80D80C8(u8 taskId);
-void sub_80D8108(u8 taskId);
-void vblank_cb_battle(void);
-void sub_80D823C(void);
-void sub_80D833C(u8 taskId);
-void sub_80D8424(u8 taskId);
-void sub_80D8610(u8 taskId);
-void sub_80D8490(u8 taskId);
-void sub_80D880C(s8);
-void sub_80D883C(s8);
-void sub_80D8894(u8 taskId);
-void sub_80D892C(u8 taskId);
-void sub_80D895C(u8 taskId);
-void sub_80D8A04(u8 taskId);
-void sub_80D8A50(u8 taskId);
-void sub_80D8A88(u8 taskId);
-void sub_80D8B38(u8 taskId);
-void sub_80DA110(u8);
-void sub_80DA134(struct Sprite *);
-void sub_80DA164(struct Sprite *);
-void sub_80DA198(u8);
-void sub_80DA25C(u8);
-void sub_80DA28C(u8);
-void sub_80DA31C(u8);
-void sub_80DA348(u8);
-void sub_80DA38C(u8);
-void sub_80DA3CC(u8);
-void sub_80DA464(u8);
-void sub_80DA49C(u8);
-void sub_80DA4CC(u8);
-void sub_80DA51C(u8);
-void sub_80DA5B4(u8);
-void sub_80DA5E8(u8);
-void sub_80DA6B4(u8);
-void sub_80DA700(u8);
-void sub_80DA740(u8);
-void sub_80DA7A0(u8);
-void sub_80DA7EC(u8);
-void sub_80DA830(u8);
-void sub_80DA874(void);
-bool8 sub_80DA8A4(void);
-void sub_80DAF04(u8);
-void sub_80DAF1C(u8 a0, u8 a1);
-void sub_80DAF88(u8);
-void sub_80DAFA0(u8, u8);
-u8 sub_80DB0C4(void);
-u8 sub_80DB120(void);
-u8 sub_80DB174(u16, u32, u32, u32);
-void sub_80DB2BC(void);
-void prints_contest_move_description(u16);
-u16 SanitizeSpecies(u16);
-void sub_80DB89C(void);
-u16 GetChosenMove(u8);
-void sub_80DB918(void);
-bool8 Contest_IsMonsTurnDisabled(u8);
-void sub_80DBF68(void);
-void sub_80DBF90(void);
-void sub_80DC2BC(void);
-void sub_80DC490(bool8);
-void sub_80DC4F0(void);
-void CreateApplauseMeterSprite(void);
-void sub_80DC5E8(void);
-void sub_80DC7EC(void);
-void sub_80DCD48(void);
-void sub_80DCE58(u8);
-void sub_80DD04C(void);
-void sub_80DD590(void);
-void sub_80DDB0C(void);
-void sub_80DDBE8(void);
-bool8 sub_80DE1E8(u8);
-void sub_80DE224(void);
-void sub_80DE350(void);
-void sub_80DE424(u8);
-void sub_80DE69C(u8);
-void sub_80DEA20(void);
-void Contest_PrintTextToBg0WindowAt(u32, u8 *, s32, u8, u8);
-void Contest_StartTextPrinter(const u8 *, u32);
-void ContestBG_FillBoxWithIncrementingTile(u8, u16, u8, u8, u8, u8, u8, u8);
-bool32 Contest_RunTextPrinters(void);
-void Contest_SetBgCopyFlags(u32);
-void sub_80FC9F8(u8);
-bool8 AreMovesContestCombo(u16, u16);
-void sub_80DBD18(void);
-void sub_80DF250(void);
-void sub_80DF4F8(void);
-void sub_80DD080(u8);
-void sub_80DF080(u8);
-void sub_80DF750(void);
-void sub_80DE9DC(u8);
-void sub_80DCBE8(u8, u8);
-u8 sub_80DC9EC(u8);
-u16 SanitizeMove(u16);
-void sub_80DE864(u8);
-void SelectContestMoveBankTarget(u16);
-void sub_80DE9B0(u8);
-void sub_80DC674(u8);
-void sub_80DE12C(void);
-void sub_80DD45C(u8, u8);
-void sub_80DD720(u8);
-void sub_80DE008(bool8);
-u8 sub_80DC028(s16, s16, u8);
-bool8 sub_80DB5B8(u8, u8);
-bool8 sub_80DB798(u8);
-void sub_80DB884(void);
-void sub_80DC9B4(u8);
-void sub_80DDED0(s8, s8);
-void sub_80DDCDC(s8);
-void sub_80DDE0C(void);
-void sub_80DD940(void);
-void sub_80DB944(void);
-void sub_80DBA18(void);
-void sub_80DC3AC(void);
-bool8 sub_80DC3C4(void);
-void sub_80DF9D4(u8 *);
-void sub_80DF9E0(u8 *, s32);
-void ContestBG_FillBoxWithTile(u8, u16, u8, u8, u8, u8, u8);
-void Contest_PrintTextToBg0WindowStd(u32, const u8 *);
-s16 sub_80DBD34(u8);
-void DetermineFinalStandings(void);
-bool8 sub_80DBF30(s32, s32, struct UnknownContestStruct6 *);
-void sub_80DC0F4(u8);
-void sub_80DC408(struct Sprite *);
-void sub_80DC728(u8);
-void sub_80DC6A4(u8);
-void sub_80DC8D0(u8);
-void sub_80DC81C(u8);
-void sub_80DC87C(u8);
-void sub_80DCC84(struct Sprite *);
-void sub_80DCCD8(struct Sprite *sprite);
-u8 sub_80DDA20(void);
-void c3_08130B10(u8);
-void sub_80DDB6C(u8);
-void task08_080CD1CC(u8);
-void sub_80DDD20(u8);
-void sub_80DDE30(u8);
-void sub_80DDF80(u8);
-const u8 *GetTurnOrderNumberGfx(u8);
-void sub_80DE464(u8);
-void sub_80DE4A8(u8);
-void sub_80DE5F4(u8);
-void sub_80DE65C(u8);
-void sub_80DE794(u8);
-void sub_80DEA5C(void);
-u8 sub_80DEFA8(u8, u8);
-
-
+extern void sub_80FC9F8(u8); // contest_link_80FC4F4.c
+
+// This file's functions.
+static void sub_80D782C(void);
+static void sub_80D7C7C(u8 taskId);
+static void sub_80D7CB4(u8 taskId);
+static void sub_80D7DAC(u8 taskId);
+static void sub_80D7DC8(u8 taskId);
+static void sub_80D7DE8(u8 taskId);
+static bool8 sub_80D7E44(u8 *);
+static void sub_80D80C8(u8 taskId);
+static void sub_80D8108(u8 taskId);
+static void vblank_cb_battle(void);
+static void sub_80D823C(void);
+static void sub_80D833C(u8 taskId);
+static void sub_80D8424(u8 taskId);
+static void sub_80D8610(u8 taskId);
+static void sub_80D8490(u8 taskId);
+static void sub_80D880C(s8);
+static void sub_80D883C(s8);
+static void sub_80D8894(u8 taskId);
+static void sub_80D892C(u8 taskId);
+static void sub_80D895C(u8 taskId);
+static void sub_80D8A04(u8 taskId);
+static void sub_80D8A50(u8 taskId);
+static void sub_80D8A88(u8 taskId);
+static void sub_80D8B38(u8 taskId);
+static void sub_80DA110(u8);
+static void sub_80DA134(struct Sprite *);
+static void sub_80DA164(struct Sprite *);
+static void sub_80DA198(u8);
+static void sub_80DA25C(u8);
+static void sub_80DA28C(u8);
+static void sub_80DA31C(u8);
+static void sub_80DA348(u8);
+static void sub_80DA38C(u8);
+static void sub_80DA3CC(u8);
+static void sub_80DA464(u8);
+static void sub_80DA49C(u8);
+static void sub_80DA4CC(u8);
+static void sub_80DA51C(u8);
+static void sub_80DA5B4(u8);
+static void sub_80DA5E8(u8);
+static void sub_80DA6B4(u8);
+static void sub_80DA700(u8);
+static void sub_80DA740(u8);
+static void sub_80DA7A0(u8);
+static void sub_80DA7EC(u8);
+static void sub_80DA830(u8);
+static void sub_80DA874(void);
+static bool8 sub_80DA8A4(void);
+static void sub_80DAF04(u8);
+static void sub_80DAF1C(u8 a0, u8 a1);
+static void sub_80DAF88(u8);
+static void sub_80DAFA0(u8, u8);
+static u8 sub_80DB0C4(void);
+static u8 sub_80DB120(void);
+static u8 sub_80DB174(u16, u32, u32, u32);
+static void prints_contest_move_description(u16);
+static u16 SanitizeSpecies(u16);
+static void sub_80DB89C(void);
+static u16 GetChosenMove(u8);
+static void sub_80DB918(void);
+static void sub_80DBF68(void);
+static void sub_80DBF90(void);
+static void sub_80DC2BC(void);
+static void sub_80DC490(bool8);
+static void sub_80DC4F0(void);
+static void CreateApplauseMeterSprite(void);
+static void sub_80DC5E8(void);
+static void sub_80DC7EC(void);
+static void sub_80DCD48(void);
+static void sub_80DD04C(void);
+static void sub_80DD590(void);
+static void sub_80DDB0C(void);
+static void sub_80DDBE8(void);
+static void sub_80DE224(void);
+static void sub_80DE350(void);
+static void sub_80DE424(u8);
+static void sub_80DE69C(u8);
+static void sub_80DEA20(void);
+static void Contest_StartTextPrinter(const u8 *, u32);
+static void ContestBG_FillBoxWithIncrementingTile(u8, u16, u8, u8, u8, u8, u8, s16);
+static bool32 Contest_RunTextPrinters(void);
+static void Contest_SetBgCopyFlags(u32);
+static void sub_80DBD18(void);
+static void sub_80DD080(u8);
+static void sub_80DE9DC(u8);
+static void sub_80DCBE8(u8, u8);
+static u8 sub_80DC9EC(u8);
+static u16 SanitizeMove(u16);
+static void sub_80DE864(u8);
+static void SelectContestMoveBankTarget(u16);
+static void sub_80DE9B0(u8);
+static void sub_80DC674(u8);
+static void sub_80DE12C(void);
+static void sub_80DD45C(u8, u8);
+static void sub_80DD720(u8);
+static void sub_80DE008(bool8);
+static u8 sub_80DC028(s16, s16, u8);
+static bool8 sub_80DB5B8(u8, u8);
+static bool8 sub_80DB798(u8);
+static void sub_80DB884(void);
+static void sub_80DC9B4(u8);
+static void sub_80DDED0(s8, s8);
+static void sub_80DDCDC(s8);
+static void sub_80DDE0C(void);
+static void sub_80DD940(void);
+static void sub_80DB944(void);
+static void sub_80DBA18(void);
+static void sub_80DC3AC(void);
+static bool8 sub_80DC3C4(void);
+static void ContestBG_FillBoxWithTile(u8, u16, u8, u8, u8, u8, u8);
+static void Contest_PrintTextToBg0WindowStd(u32, const u8 *);
+static s16 sub_80DBD34(u8);
+static void DetermineFinalStandings(void);
+static bool8 sub_80DBF30(s32, s32, struct UnknownContestStruct6 *);
+static void sub_80DC0F4(u8);
+static void sub_80DC408(struct Sprite *);
+static void sub_80DC728(u8);
+static void sub_80DC6A4(u8);
+static void sub_80DC8D0(u8);
+static void sub_80DC81C(u8);
+static void sub_80DC87C(u8);
+static void sub_80DCC84(struct Sprite *);
+static void sub_80DCCD8(struct Sprite *sprite);
+static u8 sub_80DDA20(void);
+static void c3_08130B10(u8);
+static void sub_80DDB6C(u8);
+static void task08_080CD1CC(u8);
+static void sub_80DDD20(u8);
+static void sub_80DDE30(u8);
+static void sub_80DDF80(u8);
+static const u8 *GetTurnOrderNumberGfx(u8);
+static void sub_80DE464(u8);
+static void sub_80DE4A8(u8);
+static void sub_80DE5F4(u8);
+static void sub_80DE65C(u8);
+static void sub_80DE794(u8);
+static void sub_80DEA5C(void);
+static void sub_80DF250(void);
+static void sub_80DF4F8(void);
+static void sub_80DF080(u8);
+static void sub_80DF750(void);
+static void sub_80DF9D4(u8 *);
+static void sub_80DF9E0(u8 *, s32);
+static void sub_80DB2BC(void);
+
+// EWRAM vars.
EWRAM_DATA struct ContestPokemon gContestMons[4] = {0};
EWRAM_DATA s16 gContestMonConditions[4] = {0};
EWRAM_DATA s16 gUnknown_02039F08[4] = {0};
@@ -216,10 +211,11 @@ EWRAM_DATA u16 gSpecialVar_ContestCategory = 0;
EWRAM_DATA u16 gSpecialVar_ContestRank = 0;
EWRAM_DATA u8 gNumLinkContestPlayers = 0;
EWRAM_DATA u8 gHighestRibbonRank = 0;
-EWRAM_DATA struct ContestResources * gContestResources = NULL;
+EWRAM_DATA struct ContestResources *gContestResources = NULL;
EWRAM_DATA u8 sContestBgCopyFlags = 0;
EWRAM_DATA struct ContestWinner gUnknown_02039F3C = {0};
+// IWRAM common vars.
u32 gContestRngValue;
extern const u16 gUnknown_08587C30[];
@@ -249,6 +245,8 @@ 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 gText_BDot[];
+extern const u8 gText_CDot[];
extern const u8 *const gUnknown_08587E10[];
extern const struct ContestPokemon gContestOpponents[96];
extern const u8 gUnknown_085898A4[96];
@@ -271,12 +269,14 @@ extern const struct SubspriteTable gSubspriteTables_8587B80[];
extern const struct CompressedSpriteSheet gUnknown_08587BB0;
extern const struct SpritePalette gUnknown_08587BB8;
extern const struct SpriteTemplate gSpriteTemplate_8587BC8;
-extern bool8 gUnknown_020322D5;
extern void (*const gContestEffectFuncs[])(void);
extern const s8 gContestExcitementTable[][5];
extern const struct ContestWinner gUnknown_08587FA4[];
+extern const struct CompressedSpriteSheet gUnknown_08589904[];
+extern const struct SpritePalette gUnknown_08589924[];
+extern const struct SpriteTemplate gSpriteTemplate_858998C[];
-void TaskDummy1(u8 taskId)
+static void TaskDummy1(u8 taskId)
{
}
@@ -285,7 +285,7 @@ void ResetLinkContestBoolean(void)
gIsLinkContest = 0;
}
-void sub_80D7678(void)
+static void sub_80D7678(void)
{
u16 savedIme;
@@ -329,7 +329,7 @@ void LoadContestBgAfterMoveAnim(void)
}
}
-void sub_80D779C(void)
+static void sub_80D779C(void)
{
s32 i;
@@ -342,7 +342,7 @@ void sub_80D779C(void)
}
}
-void sub_80D77E4(void)
+static void sub_80D77E4(void)
{
InitWindows(gUnknown_08587F44);
DeactivateAllTextPrinters();
@@ -356,7 +356,7 @@ void sub_80D77E4(void)
}
}
-void sub_80D782C(void)
+static void sub_80D782C(void)
{
s32 i;
@@ -367,7 +367,7 @@ void sub_80D782C(void)
FillPalette(RGB(31, 17, 31), 0xF3, 2);
}
-void sub_80D787C(void)
+static void sub_80D787C(void)
{
s32 i;
@@ -398,10 +398,10 @@ void sub_80D787C(void)
gContestResources->field_0->unk19218[i] = gUnknown_02039F26[i];
}
sub_80DD590();
- *gContestResources->field_1c = (struct ContestResourcesField1C){};
+ memset(gContestResources->field_1c, 0, sizeof(*gContestResources->field_1c) * 4);
}
-void sub_80D7988(void)
+static void sub_80D7988(void)
{
gContestResources = AllocZeroed(sizeof(struct ContestResources));
gContestResources->field_0 = AllocZeroed(sizeof(struct Contest));
@@ -411,7 +411,7 @@ void sub_80D7988(void)
gContestResources->field_10 = AllocZeroed(sizeof(struct UnknownContestStruct5) * 4);
gContestResources->field_14 = AllocZeroed(sizeof(struct UnknownContestStruct4) * 4);
gContestResources->field_18 = AllocZeroed(sizeof(struct ContestStruct_field_18));
- gContestResources->field_1c = AllocZeroed(sizeof(struct ContestResourcesField1C));
+ gContestResources->field_1c = AllocZeroed(sizeof(struct ContestResourcesField1C) * 4);
gContestResources->field_20 = AllocZeroed(sizeof(struct ContestResourcesField20));
gContestResources->field_24[0] = AllocZeroed(0x1000);
gContestResources->field_24[1] = AllocZeroed(0x1000);
@@ -424,7 +424,7 @@ void sub_80D7988(void)
gUnknown_02023060 = gContestResources->field_24[1];
}
-void sub_80D7A5C(void)
+static void sub_80D7A5C(void)
{
FREE_AND_SET_NULL(gContestResources->field_0);
FREE_AND_SET_NULL(gContestResources->field_4);
@@ -451,58 +451,58 @@ void sub_80D7B24(void)
{
switch (gMain.state)
{
- case 0:
- sContestBgCopyFlags = 0;
- sub_80D7988();
- AllocateMonSpritesGfx();
- FREE_AND_SET_NULL(gMonSpritesGfxPtr->firstDecompressed);
- gMonSpritesGfxPtr->firstDecompressed = AllocZeroed(0x4000);
- SetVBlankCallback(NULL);
- sub_80D779C();
- sub_80D77E4();
- sub_80D7678();
- ScanlineEffect_Clear();
- ResetPaletteFade();
- gPaletteFade.bufferTransferDisabled = TRUE;
- ResetSpriteData();
- ResetTasks();
- FreeAllSpritePalettes();
- gReservedSpritePaletteCount = 4;
- //shared18000.unk18000 = 0;
- gHeap[0x1a000] = 0;
- ClearBattleMonForms();
- sub_80D787C();
- gMain.state++;
- break;
- case 1:
+ case 0:
+ sContestBgCopyFlags = 0;
+ sub_80D7988();
+ AllocateMonSpritesGfx();
+ FREE_AND_SET_NULL(gMonSpritesGfxPtr->firstDecompressed);
+ gMonSpritesGfxPtr->firstDecompressed = AllocZeroed(0x4000);
+ SetVBlankCallback(NULL);
+ sub_80D779C();
+ sub_80D77E4();
+ sub_80D7678();
+ ScanlineEffect_Clear();
+ ResetPaletteFade();
+ gPaletteFade.bufferTransferDisabled = TRUE;
+ ResetSpriteData();
+ ResetTasks();
+ FreeAllSpritePalettes();
+ gReservedSpritePaletteCount = 4;
+ //shared18000.unk18000 = 0;
+ gHeap[0x1a000] = 0;
+ ClearBattleMonForms();
+ sub_80D787C();
+ gMain.state++;
+ break;
+ case 1:
+ gMain.state++;
+ break;
+ case 2:
+ if (sub_80D7E44(&gContestResources->field_0->unk1925D))
+ {
+ gContestResources->field_0->unk1925D = 0;
gMain.state++;
- break;
- case 2:
- if (sub_80D7E44(&gContestResources->field_0->unk1925D))
- {
- gContestResources->field_0->unk1925D = 0;
- gMain.state++;
- }
- break;
- case 3:
- sub_80DE224();
- gBattle_BG1_X = 0;
- gBattle_BG1_Y = 0;
- BeginFastPaletteFade(2);
- gPaletteFade.bufferTransferDisabled = FALSE;
- SetVBlankCallback(vblank_cb_battle);
- gContestResources->field_0->mainTaskId = CreateTask(sub_80D7C7C, 10);
- SetMainCallback2(sub_80D823C);
- if (gIsLinkContest & 2)
- {
- sub_800E0E8();
- CreateWirelessStatusIndicatorSprite(8, 8);
- }
- break;
+ }
+ break;
+ case 3:
+ sub_80DE224();
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = 0;
+ BeginFastPaletteFade(2);
+ gPaletteFade.bufferTransferDisabled = FALSE;
+ SetVBlankCallback(vblank_cb_battle);
+ gContestResources->field_0->mainTaskId = CreateTask(sub_80D7C7C, 10);
+ SetMainCallback2(sub_80D823C);
+ if (gIsLinkContest & 2)
+ {
+ sub_800E0E8();
+ CreateWirelessStatusIndicatorSprite(8, 8);
+ }
+ break;
}
}
-void sub_80D7C7C(u8 taskId)
+static void sub_80D7C7C(u8 taskId)
{
if (!gPaletteFade.active)
{
@@ -511,7 +511,7 @@ void sub_80D7C7C(u8 taskId)
}
}
-void sub_80D7CB4(u8 taskId)
+static void sub_80D7CB4(u8 taskId)
{
if (gIsLinkContest & 1)
{
@@ -519,22 +519,22 @@ void sub_80D7CB4(u8 taskId)
{
switch (gTasks[taskId].data[0])
{
- case 0:
- sub_80DBF68();
+ case 0:
+ sub_80DBF68();
+ gTasks[taskId].data[0]++;
+ // fallthrough
+ case 1:
+ if (IsLinkTaskFinished())
+ {
+ sub_800ADF8();
gTasks[taskId].data[0]++;
- // fallthrough
- case 1:
- if (IsLinkTaskFinished())
- {
- sub_800ADF8();
- gTasks[taskId].data[0]++;
- }
+ }
+ return;
+ case 2:
+ if (IsLinkTaskFinished() != TRUE)
return;
- case 2:
- if (IsLinkTaskFinished() != TRUE)
- return;
- gTasks[taskId].data[0]++;
- break;
+ gTasks[taskId].data[0]++;
+ break;
}
}
@@ -554,18 +554,18 @@ void sub_80D7CB4(u8 taskId)
}
}
-void sub_80D7DAC(u8 taskId)
+static void sub_80D7DAC(u8 taskId)
{
SetTaskFuncWithFollowupFunc(taskId, sub_80FC998, sub_80D7DC8);
}
-void sub_80D7DC8(u8 taskId)
+static void sub_80D7DC8(u8 taskId)
{
gTasks[taskId].data[0] = 1;
gTasks[taskId].func = sub_80D7DE8;
}
-void sub_80D7DE8(u8 taskId)
+static void sub_80D7DE8(u8 taskId)
{
gTasks[taskId].data[0]--;
if (gTasks[taskId].data[0] <= 0)
@@ -577,81 +577,81 @@ void sub_80D7DE8(u8 taskId)
}
}
-u8 sub_80D7E44(u8 *a)
+static u8 sub_80D7E44(u8 *a)
{
u16 sp0[16];
u16 sp20[16];
switch (*a)
{
- case 0:
- gPaletteFade.bufferTransferDisabled = TRUE;
- RequestDma3Fill(0, (void *)VRAM, 0x8000, 1);
- RequestDma3Fill(0, (void *)VRAM + 0x8000, 0x8000, 1);
- RequestDma3Fill(0, (void *)VRAM + 0x10000, 0x8000, 1);
- break;
- case 1:
- LZDecompressVram(gContestMiscGfx, (void *)VRAM);
- break;
- case 2:
- LZDecompressVram(gContestAudienceGfx, (void *)(VRAM + 0x2000));
- DmaCopyLarge32(3, (void *)(VRAM + 0x2000), shared15800, 0x2000, 0x1000);
- break;
- case 3:
- CopyToBgTilemapBuffer(3, gUnknown_08C16FA8, 0, 0);
- CopyBgTilemapBufferToVram(3);
- break;
- case 4:
- CopyToBgTilemapBuffer(2, gUnknown_08C17170, 0, 0);
- CopyBgTilemapBufferToVram(2);
- DmaCopy32Defvars(3, gContestResources->field_24[2], shared18000.unk18A04, 0x800);
- break;
- case 5:
- LoadCompressedPalette(gUnknown_08C16E90, 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_80D782C();
- break;
- case 6:
- sub_80DD04C();
- sub_80DBF90();
- sub_80DB2BC();
- gContestResources->field_0->unk19216 = sub_80DB120();
- sub_80DC2BC();
- sub_80DC4F0();
- CreateApplauseMeterSprite();
- sub_80DC5E8();
- sub_80DC7EC();
- gBattlerPositions[0] = 0;
- gBattlerPositions[1] = 1;
- gBattlerPositions[2] = 3;
- gBattlerPositions[3] = 2;
- gBattleTypeFlags = 0;
- gBattlerAttacker = 2;
- gBattlerTarget = 3;
- gBattlerSpriteIds[gBattlerAttacker] = sub_80DB0C4();
- sub_80DEA20();
- CopyBgTilemapBufferToVram(3);
- CopyBgTilemapBufferToVram(2);
- CopyBgTilemapBufferToVram(1);
- ShowBg(3);
- ShowBg(2);
- ShowBg(0);
- ShowBg(1);
- break;
- default:
- *a = 0;
- return 1;
+ case 0:
+ gPaletteFade.bufferTransferDisabled = TRUE;
+ RequestDma3Fill(0, (void *)VRAM, 0x8000, 1);
+ RequestDma3Fill(0, (void *)VRAM + 0x8000, 0x8000, 1);
+ RequestDma3Fill(0, (void *)VRAM + 0x10000, 0x8000, 1);
+ break;
+ case 1:
+ LZDecompressVram(gContestMiscGfx, (void *)VRAM);
+ break;
+ case 2:
+ LZDecompressVram(gContestAudienceGfx, (void *)(VRAM + 0x2000));
+ DmaCopyLarge32(3, (void *)(VRAM + 0x2000), shared15800, 0x2000, 0x1000);
+ break;
+ case 3:
+ CopyToBgTilemapBuffer(3, gUnknown_08C16FA8, 0, 0);
+ CopyBgTilemapBufferToVram(3);
+ break;
+ case 4:
+ CopyToBgTilemapBuffer(2, gUnknown_08C17170, 0, 0);
+ CopyBgTilemapBufferToVram(2);
+ DmaCopy32Defvars(3, gContestResources->field_24[2], shared18000.unk18A04, 0x800);
+ break;
+ case 5:
+ LoadCompressedPalette(gUnknown_08C16E90, 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_80D782C();
+ break;
+ case 6:
+ sub_80DD04C();
+ sub_80DBF90();
+ sub_80DB2BC();
+ gContestResources->field_0->unk19216 = sub_80DB120();
+ sub_80DC2BC();
+ sub_80DC4F0();
+ CreateApplauseMeterSprite();
+ sub_80DC5E8();
+ sub_80DC7EC();
+ gBattlerPositions[0] = 0;
+ gBattlerPositions[1] = 1;
+ gBattlerPositions[2] = 3;
+ gBattlerPositions[3] = 2;
+ gBattleTypeFlags = 0;
+ gBattlerAttacker = 2;
+ gBattlerTarget = 3;
+ gBattlerSpriteIds[gBattlerAttacker] = sub_80DB0C4();
+ sub_80DEA20();
+ CopyBgTilemapBufferToVram(3);
+ CopyBgTilemapBufferToVram(2);
+ CopyBgTilemapBufferToVram(1);
+ ShowBg(3);
+ ShowBg(2);
+ ShowBg(0);
+ ShowBg(1);
+ break;
+ default:
+ *a = 0;
+ return 1;
}
(*a)++;
return 0;
}
-void sub_80D80C8(u8 taskId)
+static void sub_80D80C8(u8 taskId)
{
gPaletteFade.bufferTransferDisabled = FALSE;
if (!gPaletteFade.active)
@@ -662,52 +662,51 @@ void sub_80D80C8(u8 taskId)
}
}
-
-void sub_80D8108(u8 taskId)
+static void sub_80D8108(u8 taskId)
{
switch (gTasks[taskId].data[0])
{
- case 0:
- if (gTasks[taskId].data[1]++ <= 60)
- break;
- gTasks[taskId].data[1] = 0;
- PlaySE12WithPanning(SE_C_MAKU_U, 0);
- gTasks[taskId].data[0]++;
- break;
- case 1:
- (s16)gBattle_BG1_Y += 7;
- if ((s16)gBattle_BG1_Y <= 160)
- break;
- gTasks[taskId].data[0]++;
- break;
- case 2:
- sub_80DE350();
- gTasks[taskId].data[0]++;
+ case 0:
+ if (gTasks[taskId].data[1]++ <= 60)
break;
- case 3:
- {
- u16 bg0Cnt = GetGpuReg(REG_OFFSET_BG0CNT);
- u16 bg2Cnt = GetGpuReg(REG_OFFSET_BG2CNT);
- ((struct BgCnt *)&bg0Cnt)->priority = 0;
- ((struct BgCnt *)&bg2Cnt)->priority = 0;
- SetGpuReg(REG_OFFSET_BG0CNT, bg0Cnt);
- SetGpuReg(REG_OFFSET_BG2CNT, bg2Cnt);
- sub_80DDB0C();
- gTasks[taskId].data[0]++;
+ gTasks[taskId].data[1] = 0;
+ PlaySE12WithPanning(SE_C_MAKU_U, 0);
+ gTasks[taskId].data[0]++;
+ break;
+ case 1:
+ (s16)gBattle_BG1_Y += 7;
+ if ((s16)gBattle_BG1_Y <= 160)
break;
- }
- case 4:
- default:
- if (gContestResources->field_0->unk1920A_6)
- break;
- gTasks[taskId].data[0] = 0;
- gTasks[taskId].data[1] = 0;
- gTasks[taskId].func = sub_80D833C;
+ gTasks[taskId].data[0]++;
+ break;
+ case 2:
+ sub_80DE350();
+ gTasks[taskId].data[0]++;
+ break;
+ case 3:
+ {
+ u16 bg0Cnt = GetGpuReg(REG_OFFSET_BG0CNT);
+ u16 bg2Cnt = GetGpuReg(REG_OFFSET_BG2CNT);
+ ((struct BgCnt *)&bg0Cnt)->priority = 0;
+ ((struct BgCnt *)&bg2Cnt)->priority = 0;
+ SetGpuReg(REG_OFFSET_BG0CNT, bg0Cnt);
+ SetGpuReg(REG_OFFSET_BG2CNT, bg2Cnt);
+ sub_80DDB0C();
+ gTasks[taskId].data[0]++;
+ break;
+ }
+ case 4:
+ default:
+ if (gContestResources->field_0->unk1920A_6)
break;
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].func = sub_80D833C;
+ break;
}
}
-void sub_80D823C(void)
+static void sub_80D823C(void)
{
s32 i;
@@ -724,7 +723,7 @@ void sub_80D823C(void)
sContestBgCopyFlags = 0;
}
-void vblank_cb_battle(void)
+static void vblank_cb_battle(void)
{
SetGpuReg(REG_OFFSET_BG0HOFS, gBattle_BG0_X);
SetGpuReg(REG_OFFSET_BG0VOFS, gBattle_BG0_Y);
@@ -744,7 +743,7 @@ void vblank_cb_battle(void)
ScanlineEffect_InitHBlankDmaTransfer();
}
-void sub_80D833C(u8 taskId)
+static void sub_80D833C(u8 taskId)
{
if (gTasks[taskId].data[0] == 0)
{
@@ -772,7 +771,7 @@ void sub_80D833C(u8 taskId)
}
}
-void sub_80D8424(u8 taskId)
+static void sub_80D8424(u8 taskId)
{
if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys == B_BUTTON))
{
@@ -789,7 +788,7 @@ void sub_80D8424(u8 taskId)
}
}
-void sub_80D8490(u8 taskId)
+static void sub_80D8490(u8 taskId)
{
u8 i;
u8 sp8[32];
@@ -827,7 +826,7 @@ void sub_80D8490(u8 taskId)
gTasks[taskId].func = sub_80D8610;
}
-void sub_80D8610(u8 taskId)
+static void sub_80D8610(u8 taskId)
{
u8 numMoves = 0;
s32 i;
@@ -847,62 +846,62 @@ void sub_80D8610(u8 taskId)
{
switch (gMain.newAndRepeatedKeys)
{
- case B_BUTTON:
+ case B_BUTTON:
+ PlaySE(SE_SELECT);
+ sub_80DC490(FALSE);
+ ConvertIntToDecimalStringN(gStringVar1, gContestResources->field_0->turnNumber + 1, STR_CONV_MODE_LEFT_ALIGN, 1);
+ if (!Contest_IsMonsTurnDisabled(gContestPlayerMonIndex))
+ StringCopy(gDisplayedStringBattle, gText_0827D507);
+ else
+ StringCopy(gDisplayedStringBattle, gText_0827D531);
+ sub_80DB89C();
+ StringExpandPlaceholders(gStringVar4, gDisplayedStringBattle);
+ Contest_StartTextPrinter(gStringVar4, 0);
+ gBattle_BG0_Y = 0;
+ gBattle_BG2_Y = 0;
+ gTasks[taskId].func = sub_80D8424;
+ break;
+ case DPAD_LEFT:
+ case DPAD_RIGHT:
+ break;
+ case DPAD_UP:
+ sub_80D883C(gContestResources->field_0->playerMoveChoice);
+ if (gContestResources->field_0->playerMoveChoice == 0)
+ gContestResources->field_0->playerMoveChoice = numMoves - 1;
+ else
+ gContestResources->field_0->playerMoveChoice--;
+ sub_80D880C(gContestResources->field_0->playerMoveChoice);
+ prints_contest_move_description(gContestMons[gContestPlayerMonIndex].moves[gContestResources->field_0->playerMoveChoice]);
+ if (numMoves > 1)
PlaySE(SE_SELECT);
- sub_80DC490(FALSE);
- ConvertIntToDecimalStringN(gStringVar1, gContestResources->field_0->turnNumber + 1, STR_CONV_MODE_LEFT_ALIGN, 1);
- if (!Contest_IsMonsTurnDisabled(gContestPlayerMonIndex))
- StringCopy(gDisplayedStringBattle, gText_0827D507);
- else
- StringCopy(gDisplayedStringBattle, gText_0827D531);
- sub_80DB89C();
- StringExpandPlaceholders(gStringVar4, gDisplayedStringBattle);
- Contest_StartTextPrinter(gStringVar4, 0);
- gBattle_BG0_Y = 0;
- gBattle_BG2_Y = 0;
- gTasks[taskId].func = sub_80D8424;
- break;
- case DPAD_LEFT:
- case DPAD_RIGHT:
- break;
- case DPAD_UP:
- sub_80D883C(gContestResources->field_0->playerMoveChoice);
- if (gContestResources->field_0->playerMoveChoice == 0)
- gContestResources->field_0->playerMoveChoice = numMoves - 1;
- else
- gContestResources->field_0->playerMoveChoice--;
- sub_80D880C(gContestResources->field_0->playerMoveChoice);
- prints_contest_move_description(gContestMons[gContestPlayerMonIndex].moves[gContestResources->field_0->playerMoveChoice]);
- if (numMoves > 1)
- PlaySE(SE_SELECT);
- break;
- case DPAD_DOWN:
- sub_80D883C(gContestResources->field_0->playerMoveChoice);
- if (gContestResources->field_0->playerMoveChoice == numMoves - 1)
- gContestResources->field_0->playerMoveChoice = 0;
- else
- gContestResources->field_0->playerMoveChoice++;
- sub_80D880C(gContestResources->field_0->playerMoveChoice);
- prints_contest_move_description(gContestMons[gContestPlayerMonIndex].moves[gContestResources->field_0->playerMoveChoice]);
- if (numMoves > 1)
- PlaySE(SE_SELECT);
- break;
+ break;
+ case DPAD_DOWN:
+ sub_80D883C(gContestResources->field_0->playerMoveChoice);
+ if (gContestResources->field_0->playerMoveChoice == numMoves - 1)
+ gContestResources->field_0->playerMoveChoice = 0;
+ else
+ gContestResources->field_0->playerMoveChoice++;
+ sub_80D880C(gContestResources->field_0->playerMoveChoice);
+ prints_contest_move_description(gContestMons[gContestPlayerMonIndex].moves[gContestResources->field_0->playerMoveChoice]);
+ if (numMoves > 1)
+ PlaySE(SE_SELECT);
+ break;
}
}
}
-void sub_80D880C(s8 a0)
+static void sub_80D880C(s8 a0)
{
ContestBG_FillBoxWithIncrementingTile(2, 55, 0, 31 + a0 * 2, 2, 2, 17, 1);
}
-void sub_80D883C(s8 a0)
+static void sub_80D883C(s8 a0)
{
ContestBG_FillBoxWithIncrementingTile(2, 11, 0, 31 + a0 * 2, 2, 1, 17, 1);
ContestBG_FillBoxWithIncrementingTile(2, 11, 0, 32 + a0 * 2, 2, 1, 17, 1);
}
-void sub_80D8894(u8 taskId)
+static void sub_80D8894(u8 taskId)
{
if (gIsLinkContest & 1)
{
@@ -923,13 +922,13 @@ void sub_80D8894(u8 taskId)
}
}
-void sub_80D892C(u8 taskId)
+static void sub_80D892C(u8 taskId)
{
DestroyTask(taskId);
gTasks[gContestResources->field_0->mainTaskId].func = sub_80D895C;
}
-void sub_80D895C(u8 taskId)
+static void sub_80D895C(u8 taskId)
{
s32 i;
@@ -953,7 +952,7 @@ void sub_80D895C(u8 taskId)
gTasks[taskId].func = sub_80D8A04;
}
-void sub_80D8A04(u8 taskId)
+static void sub_80D8A04(u8 taskId)
{
if (++gTasks[taskId].data[0] > 2)
{
@@ -967,13 +966,13 @@ void sub_80D8A04(u8 taskId)
}
}
-void sub_80D8A50(u8 taskId)
+static void sub_80D8A50(u8 taskId)
{
if (!gContestResources->field_0->unk1920A_6 && !gContestResources->field_0->unk1920B_1)
gTasks[taskId].func = sub_80D8A88;
}
-void sub_80D8A88(u8 taskId)
+static void sub_80D8A88(u8 taskId)
{
if (++gTasks[taskId].data[0] > 19)
{
@@ -993,7 +992,7 @@ void sub_80D8A88(u8 taskId)
}
}
-void sub_80D8B38(u8 taskId)
+static void sub_80D8B38(u8 taskId)
{
u8 spriteId;
s32 i;
@@ -1002,100 +1001,100 @@ void sub_80D8B38(u8 taskId)
switch (gTasks[taskId].data[0])
{
- case 0:
- sub_80DCD48();
- for (i = 0; gContestResources->field_0->unk19214 != gContestResources->field_8->turnOrder[i]; i++)
- ;
- gContestResources->field_0->unk19215 = i;
- r6 = gContestResources->field_0->unk19215;
- if (gIsLinkContest & 1)
- {
- u8 taskId2;
+ case 0:
+ sub_80DCD48();
+ for (i = 0; gContestResources->field_0->unk19214 != gContestResources->field_8->turnOrder[i]; i++)
+ ;
+ gContestResources->field_0->unk19215 = i;
+ r6 = gContestResources->field_0->unk19215;
+ if (gIsLinkContest & 1)
+ {
+ u8 taskId2;
- gContestResources->field_0->unk1920B_2 = 1;
- if (sub_80DA8A4())
- sub_80DD080(gContestResources->field_0->unk19215);
- taskId2 = CreateTask(sub_80FCC88, 0);
- SetTaskFuncWithFollowupFunc(taskId2, sub_80FCC88, sub_80DA110);
- sub_80DBF68();
- gTasks[taskId].data[0] = 1;
- }
- else
- {
+ gContestResources->field_0->unk1920B_2 = 1;
+ if (sub_80DA8A4())
sub_80DD080(gContestResources->field_0->unk19215);
- gTasks[taskId].data[0] = 2;
- }
- return;
- case 1:
- if (!gContestResources->field_0->unk1920B_2)
- gTasks[taskId].data[0] = 2;
- return;
- case 2:
- sub_80DF080(r6);
- sub_80DF750();
- if (gContestResources->field_4[r6].numTurnsSkipped != 0
- || gContestResources->field_4[r6].noMoreTurns)
- {
- gTasks[taskId].data[0] = 31;
- }
- else
- {
- sub_80DB89C();
- gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[0] = 3;
- }
- return;
- case 3:
- for (i = 0; i < 4; i++)
- gBattleMonForms[i] = 0;
- memset(gContestResources->field_18, 0, sizeof(*gContestResources->field_18));
- sub_80DE9DC(gContestResources->field_0->unk19215);
- spriteId = sub_80DB174(
- gContestMons[gContestResources->field_0->unk19215].species,
- gContestMons[gContestResources->field_0->unk19215].otId,
- gContestMons[gContestResources->field_0->unk19215].personality,
- gContestResources->field_0->unk19215);
- gSprites[spriteId].pos2.x = 120;
- gSprites[spriteId].callback = sub_80DA134;
- gTasks[taskId].data[2] = spriteId;
- gBattlerSpriteIds[gBattlerAttacker] = spriteId;
- sub_80DCBE8(sub_80DC9EC(gContestResources->field_0->unk19215), FALSE);
- gTasks[taskId].data[0] = 4;
- return;
- case 4:
- spriteId = gTasks[taskId].data[2];
- if (gSprites[spriteId].callback == SpriteCallbackDummy)
- {
- if (!gContestResources->field_14[r6].unk2_1)
- gTasks[taskId].data[0] = 5;
- }
- return;
- case 5:
- if (gContestResources->field_4[r6].nervous)
- {
- gTasks[taskId].data[0] = 33;
- }
+ taskId2 = CreateTask(sub_80FCC88, 0);
+ SetTaskFuncWithFollowupFunc(taskId2, sub_80FCC88, sub_80DA110);
+ sub_80DBF68();
+ gTasks[taskId].data[0] = 1;
+ }
+ else
+ {
+ sub_80DD080(gContestResources->field_0->unk19215);
+ gTasks[taskId].data[0] = 2;
+ }
+ return;
+ case 1:
+ if (!gContestResources->field_0->unk1920B_2)
+ gTasks[taskId].data[0] = 2;
+ return;
+ case 2:
+ sub_80DF080(r6);
+ sub_80DF750();
+ if (gContestResources->field_4[r6].numTurnsSkipped != 0
+ || gContestResources->field_4[r6].noMoreTurns)
+ {
+ gTasks[taskId].data[0] = 31;
+ }
+ else
+ {
+ sub_80DB89C();
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[0] = 3;
+ }
+ return;
+ case 3:
+ for (i = 0; i < 4; i++)
+ gBattleMonForms[i] = 0;
+ memset(gContestResources->field_18, 0, sizeof(*gContestResources->field_18));
+ sub_80DE9DC(gContestResources->field_0->unk19215);
+ spriteId = sub_80DB174(
+ gContestMons[gContestResources->field_0->unk19215].species,
+ gContestMons[gContestResources->field_0->unk19215].otId,
+ gContestMons[gContestResources->field_0->unk19215].personality,
+ gContestResources->field_0->unk19215);
+ gSprites[spriteId].pos2.x = 120;
+ gSprites[spriteId].callback = sub_80DA134;
+ gTasks[taskId].data[2] = spriteId;
+ gBattlerSpriteIds[gBattlerAttacker] = spriteId;
+ sub_80DCBE8(sub_80DC9EC(gContestResources->field_0->unk19215), FALSE);
+ gTasks[taskId].data[0] = 4;
+ return;
+ case 4:
+ spriteId = gTasks[taskId].data[2];
+ if (gSprites[spriteId].callback == SpriteCallbackDummy)
+ {
+ if (!gContestResources->field_14[r6].unk2_1)
+ gTasks[taskId].data[0] = 5;
+ }
+ return;
+ case 5:
+ if (gContestResources->field_4[r6].nervous)
+ {
+ gTasks[taskId].data[0] = 33;
+ }
+ else
+ {
+ sub_80DB89C();
+ StringCopy(gStringVar1, gContestMons[r6].nickname);
+ if (gContestResources->field_4[r6].currMove < MOVES_COUNT)
+ StringCopy(gStringVar2, gMoveNames[gContestResources->field_4[r6].currMove]);
else
- {
- sub_80DB89C();
- StringCopy(gStringVar1, gContestMons[r6].nickname);
- if (gContestResources->field_4[r6].currMove < MOVES_COUNT)
- StringCopy(gStringVar2, gMoveNames[gContestResources->field_4[r6].currMove]);
- else
- StringCopy(gStringVar2, gUnknown_08587F1C[gContestResources->field_4[r6].moveCategory]);
- StringExpandPlaceholders(gStringVar4, gText_0827D55A);
- Contest_StartTextPrinter(gStringVar4, 1);
- gTasks[taskId].data[0] = 6;
- }
- return;
- case 6:
- if (!Contest_RunTextPrinters())
- {
- gContestResources->field_0->unk1925E = 0;
- gTasks[taskId].data[0] = 7;
- }
- return;
- case 7:
+ StringCopy(gStringVar2, gUnknown_08587F1C[gContestResources->field_4[r6].moveCategory]);
+ StringExpandPlaceholders(gStringVar4, gText_0827D55A);
+ Contest_StartTextPrinter(gStringVar4, 1);
+ gTasks[taskId].data[0] = 6;
+ }
+ return;
+ case 6:
+ if (!Contest_RunTextPrinters())
+ {
+ gContestResources->field_0->unk1925E = 0;
+ gTasks[taskId].data[0] = 7;
+ }
+ return;
+ case 7:
{
u16 move = SanitizeMove(gContestResources->field_4[gContestResources->field_0->unk19215].currMove);
@@ -1105,144 +1104,144 @@ void sub_80D8B38(u8 taskId)
DoMoveAnim(move);
gTasks[taskId].data[0] = 8;
}
- return;
- case 8:
- gAnimScriptCallback();
- if (!gAnimScriptActive)
- {
- sub_80DE9B0(r6);
- if (gContestResources->field_0->unk1925E != 0)
- {
- gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[0] = 9;
- }
- else
- {
- if (!gContestResources->field_4[r6].hasJudgesAttention)
- sub_80DC674(r6);
- sub_80DE12C();
- gTasks[taskId].data[0] = 23;
- }
- }
- return;
- case 9:
- if (gTasks[taskId].data[10]++ > 30)
+ return;
+ case 8:
+ gAnimScriptCallback();
+ if (!gAnimScriptActive)
+ {
+ sub_80DE9B0(r6);
+ if (gContestResources->field_0->unk1925E != 0)
{
gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[0] = 7;
+ gTasks[taskId].data[0] = 9;
}
- return;
- case 23:
- gTasks[taskId].data[1] = 0;
- if (gContestResources->field_4[r6].effectStringId != CONTEST_STRING_NONE)
+ else
{
- sub_80DD45C(r6, gContestResources->field_4[r6].effectStringId);
- gContestResources->field_4[r6].effectStringId = CONTEST_STRING_NONE;
- gTasks[taskId].data[0] = 24;
+ if (!gContestResources->field_4[r6].hasJudgesAttention)
+ sub_80DC674(r6);
+ sub_80DE12C();
+ gTasks[taskId].data[0] = 23;
}
- else
+ }
+ return;
+ case 9:
+ if (gTasks[taskId].data[10]++ > 30)
+ {
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[0] = 7;
+ }
+ return;
+ case 23:
+ gTasks[taskId].data[1] = 0;
+ if (gContestResources->field_4[r6].effectStringId != CONTEST_STRING_NONE)
+ {
+ sub_80DD45C(r6, gContestResources->field_4[r6].effectStringId);
+ gContestResources->field_4[r6].effectStringId = CONTEST_STRING_NONE;
+ gTasks[taskId].data[0] = 24;
+ }
+ else
+ {
+ if (gContestResources->field_4[r6].effectStringId2 != CONTEST_STRING_NONE)
{
- if (gContestResources->field_4[r6].effectStringId2 != CONTEST_STRING_NONE)
+ for (i = 0; i < 4; i++)
{
- for (i = 0; i < 4; i++)
- {
- if (i != r6 && gContestResources->field_4[i].effectStringId != CONTEST_STRING_NONE)
- break;
- }
- if (i == 4)
- {
- sub_80DD45C(r6, gContestResources->field_4[r6].effectStringId2);
- gContestResources->field_4[r6].effectStringId2 = CONTEST_STRING_NONE;
- gTasks[taskId].data[0] = 24;
- }
- else
- {
- gTasks[taskId].data[0] = 48;
- }
+ if (i != r6 && gContestResources->field_4[i].effectStringId != CONTEST_STRING_NONE)
+ break;
+ }
+ if (i == 4)
+ {
+ sub_80DD45C(r6, gContestResources->field_4[r6].effectStringId2);
+ gContestResources->field_4[r6].effectStringId2 = CONTEST_STRING_NONE;
+ gTasks[taskId].data[0] = 24;
}
else
{
gTasks[taskId].data[0] = 48;
}
}
- return;
- case 24:
- if (!Contest_RunTextPrinters())
- gTasks[taskId].data[0] = 23;
- return;
- case 48:
- if (gContestResources->field_4[r6].turnOrderModAction == 1)
- {
- sub_80DD720(5);
- }
- else if (gContestResources->field_4[r6].turnOrderModAction == 2)
- {
- sub_80DD720(6);
- }
- else if (gContestResources->field_4[r6].turnOrderModAction == 3)
- {
- sub_80DD720(7);
- }
- else
- {
- gTasks[taskId].data[0] = 47;
- return;
- }
- gTasks[taskId].data[0] = 49;
- return;
- case 49:
- if (!gContestResources->field_0->unk1920A_4)
- gTasks[taskId].data[0] = 47;
- return;
- case 47:
- sub_80DE008(TRUE);
- gTasks[taskId].data[0] = 12;
- return;
- case 12:
- sub_80DC028(0, gContestResources->field_4[r6].appeal2, r6);
- gTasks[taskId].data[0] = 13;
- return;
- case 13:
- if (!gContestResources->field_14[gContestResources->field_0->unk19215].unk2_2)
- gTasks[taskId].data[0] = 35;
- return;
- case 35:
- if (gContestResources->field_4[r6].conditionMod == 1)
- sub_80DD720(8);
- gTasks[taskId].data[0] = 36;
- return;
- case 36:
- if (!gContestResources->field_0->unk1920A_4)
- gTasks[taskId].data[0] = 37;
- return;
- case 37:
- if (sub_80DB5B8(r6, 1))
- {
- gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[0] = 38;
- }
else
{
- gTasks[taskId].data[0] = 50;
+ gTasks[taskId].data[0] = 48;
}
+ }
+ return;
+ case 24:
+ if (!Contest_RunTextPrinters())
+ gTasks[taskId].data[0] = 23;
+ return;
+ case 48:
+ if (gContestResources->field_4[r6].turnOrderModAction == 1)
+ {
+ sub_80DD720(5);
+ }
+ else if (gContestResources->field_4[r6].turnOrderModAction == 2)
+ {
+ sub_80DD720(6);
+ }
+ else if (gContestResources->field_4[r6].turnOrderModAction == 3)
+ {
+ sub_80DD720(7);
+ }
+ else
+ {
+ gTasks[taskId].data[0] = 47;
return;
- case 38:
- if (++gTasks[taskId].data[10] > 20)
- {
- gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[0] = 50;
- }
- return;
- case 50:
- if (sub_80DB798(r6))
- PlaySE(SE_C_PASI);
- gTasks[taskId].data[0] = 25;
- return;
- case 25:
- gTasks[taskId].data[1] = 0;
- gTasks[taskId].data[0] = 26;
- return;
- case 26:
+ }
+ gTasks[taskId].data[0] = 49;
+ return;
+ case 49:
+ if (!gContestResources->field_0->unk1920A_4)
+ gTasks[taskId].data[0] = 47;
+ return;
+ case 47:
+ sub_80DE008(TRUE);
+ gTasks[taskId].data[0] = 12;
+ return;
+ case 12:
+ sub_80DC028(0, gContestResources->field_4[r6].appeal2, r6);
+ gTasks[taskId].data[0] = 13;
+ return;
+ case 13:
+ if (!gContestResources->field_14[gContestResources->field_0->unk19215].unk2_2)
+ gTasks[taskId].data[0] = 35;
+ return;
+ case 35:
+ if (gContestResources->field_4[r6].conditionMod == 1)
+ sub_80DD720(8);
+ gTasks[taskId].data[0] = 36;
+ return;
+ case 36:
+ if (!gContestResources->field_0->unk1920A_4)
+ gTasks[taskId].data[0] = 37;
+ return;
+ case 37:
+ if (sub_80DB5B8(r6, 1))
+ {
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[0] = 38;
+ }
+ else
+ {
+ gTasks[taskId].data[0] = 50;
+ }
+ return;
+ case 38:
+ if (++gTasks[taskId].data[10] > 20)
+ {
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[0] = 50;
+ }
+ return;
+ case 50:
+ if (sub_80DB798(r6))
+ PlaySE(SE_C_PASI);
+ gTasks[taskId].data[0] = 25;
+ return;
+ case 25:
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].data[0] = 26;
+ return;
+ case 26:
{
s32 r2 = 0;
@@ -1277,435 +1276,435 @@ void sub_80D8B38(u8 taskId)
sub_80DB884();
}
}
- return;
- case 27:
- if (!Contest_RunTextPrinters())
- gTasks[taskId].data[0] = 28;
- return;
- case 28:
- for (i = 0; gTasks[taskId].data[1] != gUnknown_02039F26[i]; i++)
- ;
- sub_80DC028(gContestResources->field_4[i].appeal2 + gContestResources->field_4[i].jam, -gContestResources->field_4[i].jam, i);
- gTasks[taskId].data[0] = 29;
- return;
- case 29:
- for (i = 0; gTasks[taskId].data[1] != gUnknown_02039F26[i]; i++)
- ;
- if (!gContestResources->field_14[i].unk2_2)
- gTasks[taskId].data[0] = 39;
- return;
- case 39:
- for (i = 0; gTasks[taskId].data[1] != gUnknown_02039F26[i]; i++)
- ;
- if (sub_80DB5B8(i, 1))
+ return;
+ case 27:
+ if (!Contest_RunTextPrinters())
+ gTasks[taskId].data[0] = 28;
+ return;
+ case 28:
+ for (i = 0; gTasks[taskId].data[1] != gUnknown_02039F26[i]; i++)
+ ;
+ sub_80DC028(gContestResources->field_4[i].appeal2 + gContestResources->field_4[i].jam, -gContestResources->field_4[i].jam, i);
+ gTasks[taskId].data[0] = 29;
+ return;
+ case 29:
+ for (i = 0; gTasks[taskId].data[1] != gUnknown_02039F26[i]; i++)
+ ;
+ if (!gContestResources->field_14[i].unk2_2)
+ gTasks[taskId].data[0] = 39;
+ return;
+ case 39:
+ for (i = 0; gTasks[taskId].data[1] != gUnknown_02039F26[i]; i++)
+ ;
+ if (sub_80DB5B8(i, 1))
+ {
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[0] = 40;
+ }
+ else
+ {
+ gTasks[taskId].data[0] = 30;
+ }
+ return;
+ case 40:
+ if (++gTasks[taskId].data[10] > 20)
+ {
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[0] = 30;
+ }
+ return;
+ case 30:
+ for (i = 0; i < 4; i++)
+ {
+ if (gUnknown_02039F26[i] == gTasks[taskId].data[1])
+ break;
+ }
+ if (sub_80DB798(i))
+ PlaySE(SE_C_PASI);
+ else
+ PlaySE(SE_C_SYU);
+ if (gContestResources->field_4[i].judgesAttentionWasRemoved)
+ {
+ sub_80DC674(i);
+ gContestResources->field_4[i].judgesAttentionWasRemoved = 0;
+ }
+ gTasks[taskId].data[1]++;
+ gTasks[taskId].data[0] = 26;
+ return;
+ case 51:
+ if (gTasks[taskId].data[10]++ > 9)
+ {
+ gTasks[taskId].data[10] = 0;
+ if (gContestResources->field_4[r6].numTurnsSkipped != 0
+ || gContestResources->field_4[r6].turnSkipped)
{
- gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[0] = 40;
+ sub_80DB89C();
+ StringCopy(gStringVar1, gContestMons[r6].nickname);
+ StringExpandPlaceholders(gStringVar4, gText_0827E793);
+ Contest_StartTextPrinter(gStringVar4, 1);
}
+ gTasks[taskId].data[0] = 52;
+ }
+ return;
+ case 52:
+ if (!Contest_RunTextPrinters())
+ {
+ if (!gContestResources->field_4[r6].unk15_6)
+ gTasks[taskId].data[0] = 17;
else
+ gTasks[taskId].data[0] = 14;
+ }
+ return;
+ case 14:
+ r3 = gContestResources->field_4[r6].unk16;
+ if (gContestResources->field_4[r6].unk16 != 0)
+ {
+ sub_80DB89C();
+ if (r3 == 1)
+ Contest_StartTextPrinter(gText_0827E32E, 1);
+ else if (r3 == 2)
+ Contest_StartTextPrinter(gText_0827E35B, 1);
+ else
+ Contest_StartTextPrinter(gText_0827E38D, 1);
+ sub_80DD720(3);
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[0] = 45;
+ }
+ else
+ {
+ sub_80DB89C();
+ StringCopy(gStringVar1, gContestMons[r6].nickname);
+ StringExpandPlaceholders(gStringVar4, gText_0827E2FE);
+ Contest_StartTextPrinter(gStringVar4, 1);
+ sub_80DD720(2);
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[0] = 45;
+ }
+ return;
+ case 45:
+ if (!gContestResources->field_0->unk1920A_4)
+ {
+ sub_80DC9B4(gContestResources->field_0->unk19215);
+ gTasks[taskId].data[0] = 15;
+ }
+ return;
+ case 15:
+ if (!Contest_RunTextPrinters())
+ {
+ if (++gTasks[taskId].data[10] > 50)
{
- gTasks[taskId].data[0] = 30;
- }
- return;
- case 40:
- if (++gTasks[taskId].data[10] > 20)
- {
- gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[0] = 30;
+ if (!gContestResources->field_4[r6].hasJudgesAttention)
+ {
+ sub_80DC028(
+ gContestResources->field_4[r6].appeal2,
+ gContestResources->field_4[r6].unk17,
+ r6);
+ gContestResources->field_4[r6].appeal2 += gContestResources->field_4[r6].unk17;
+ }
+ gTasks[taskId].data[0] = 16;
}
- return;
- case 30:
- for (i = 0; i < 4; i++)
+ }
+ return;
+ case 16:
+ if (!gContestResources->field_14[r6].unk2_2)
+ {
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[0] = 17;
+ }
+ return;
+ case 17:
+ if (gContestResources->field_4[r6].disappointedRepeat)
+ {
+ sub_80DB89C();
+ StringCopy(gStringVar1, gContestMons[r6].nickname);
+ StringExpandPlaceholders(gStringVar4, gText_0827E6E3);
+ Contest_StartTextPrinter(gStringVar4, 1);
+ gTasks[taskId].data[10] = 0;
+ sub_80DD720(0);
+ gTasks[taskId].data[0] = 46;
+ }
+ else
+ {
+ gTasks[taskId].data[0] = 41;
+ }
+ return;
+ case 46:
+ if (!gContestResources->field_0->unk1920A_4)
+ gTasks[taskId].data[0] = 19;
+ return;
+ case 19:
+ if (!Contest_RunTextPrinters())
+ {
+ sub_80DC028(gContestResources->field_4[r6].appeal2, -gContestResources->field_4[r6].unk18, r6);
+ gContestResources->field_4[r6].appeal2 -= gContestResources->field_4[r6].unk18;
+ gTasks[taskId].data[0] = 18;
+ }
+ return;
+ case 18:
+ sub_80DCD48();
+ if (!gContestResources->field_14[r6].unk2_2)
+ {
+ gTasks[taskId].data[10] = 0;
+ sub_80DB89C();
+ gTasks[taskId].data[0] = 41;
+ }
+ return;
+ case 41:
+ if (gContestResources->field_10->excitementFrozen && r6 != gContestResources->field_10->excitementFreezer)
+ {
+ gTasks[taskId].data[0] = 57;
+ }
+ else
+ {
+ r3 = gContestResources->field_10->bits_0;
+ if (gContestResources->field_4[r6].overrideCategoryExcitementMod)
{
- if (gUnknown_02039F26[i] == gTasks[taskId].data[1])
- break;
+ r3 = 1;
+ StringCopy(gStringVar3, gMoveNames[gContestResources->field_4[r6].currMove]);
}
- if (sub_80DB798(i))
- PlaySE(SE_C_PASI);
else
- PlaySE(SE_C_SYU);
- if (gContestResources->field_4[i].judgesAttentionWasRemoved)
{
- sub_80DC674(i);
- gContestResources->field_4[i].judgesAttentionWasRemoved = 0;
+ StringCopy(gStringVar3, gUnknown_08587F08[gContestMoves[gContestResources->field_4[r6].currMove].contestCategory]);
}
- gTasks[taskId].data[1]++;
- gTasks[taskId].data[0] = 26;
- return;
- case 51:
- if (gTasks[taskId].data[10]++ > 9)
+ if (r3 > 0)
{
- gTasks[taskId].data[10] = 0;
- if (gContestResources->field_4[r6].numTurnsSkipped != 0
- || gContestResources->field_4[r6].turnSkipped)
- {
- sub_80DB89C();
- StringCopy(gStringVar1, gContestMons[r6].nickname);
- StringExpandPlaceholders(gStringVar4, gText_0827E793);
- Contest_StartTextPrinter(gStringVar4, 1);
- }
- gTasks[taskId].data[0] = 52;
+ if (gContestResources->field_4[r6].disappointedRepeat)
+ r3 = 0;
}
- return;
- case 52:
- if (!Contest_RunTextPrinters())
- {
- if (!gContestResources->field_4[r6].unk15_6)
- gTasks[taskId].data[0] = 17;
- else
- gTasks[taskId].data[0] = 14;
- }
- return;
- case 14:
- r3 = gContestResources->field_4[r6].unk16;
- if (gContestResources->field_4[r6].unk16 != 0)
+ sub_80DB89C();
+ StringCopy(gStringVar1, gContestMons[r6].nickname);
+ gContestResources->field_0->applauseLevel += r3;
+ if (gContestResources->field_0->applauseLevel < 0)
+ gContestResources->field_0->applauseLevel = 0;
+ if (r3 == 0)
{
- sub_80DB89C();
- if (r3 == 1)
- Contest_StartTextPrinter(gText_0827E32E, 1);
- else if (r3 == 2)
- Contest_StartTextPrinter(gText_0827E35B, 1);
- else
- Contest_StartTextPrinter(gText_0827E38D, 1);
- sub_80DD720(3);
- gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[0] = 45;
+ gTasks[taskId].data[0] = 55;
}
else
{
- sub_80DB89C();
- StringCopy(gStringVar1, gContestMons[r6].nickname);
- StringExpandPlaceholders(gStringVar4, gText_0827E2FE);
+ if (r3 < 0)
+ StringExpandPlaceholders(gStringVar4, gText_0827E73C);
+ else if (r3 > 0 && gContestResources->field_0->applauseLevel <= 4)
+ StringExpandPlaceholders(gStringVar4, gText_0827E717);
+ else
+ StringExpandPlaceholders(gStringVar4, gText_0827E76A);
Contest_StartTextPrinter(gStringVar4, 1);
- sub_80DD720(2);
gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[0] = 45;
+ gTasks[taskId].data[11] = 0;
+ if (r3 < 0)
+ gTasks[taskId].data[0] = 53;
+ else
+ gTasks[taskId].data[0] = 54;
}
- return;
- case 45:
- if (!gContestResources->field_0->unk1920A_4)
+ }
+ return;
+ case 53:
+ switch (gTasks[taskId].data[10])
+ {
+ case 0:
+ sub_80DDED0(-1, 1);
+ PlayFanfare(MUS_ME_ZANNEN);
+ gTasks[taskId].data[10]++;
+ break;
+ case 1:
+ if (!gContestResources->field_0->unk1920B_0 && !Contest_RunTextPrinters())
{
- sub_80DC9B4(gContestResources->field_0->unk19215);
- gTasks[taskId].data[0] = 15;
+ sub_80DDCDC(-1);
+ gTasks[taskId].data[10]++;
}
- return;
- case 15:
- if (!Contest_RunTextPrinters())
+ break;
+ case 2:
+ if (!gContestResources->field_0->unk1920A_5)
{
- if (++gTasks[taskId].data[10] > 50)
+ if (gTasks[taskId].data[11]++ > 29)
{
- if (!gContestResources->field_4[r6].hasJudgesAttention)
- {
- sub_80DC028(
- gContestResources->field_4[r6].appeal2,
- gContestResources->field_4[r6].unk17,
- r6);
- gContestResources->field_4[r6].appeal2 += gContestResources->field_4[r6].unk17;
- }
- gTasks[taskId].data[0] = 16;
+ gTasks[taskId].data[11] = 0;
+ sub_80DDED0(-1, -1);
+ gTasks[taskId].data[10]++;
}
}
- return;
- case 16:
- if (!gContestResources->field_14[r6].unk2_2)
- {
- gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[0] = 17;
- }
- return;
- case 17:
- if (gContestResources->field_4[r6].disappointedRepeat)
+ break;
+ case 3:
+ if (!gPaletteFade.active)
{
- sub_80DB89C();
- StringCopy(gStringVar1, gContestMons[r6].nickname);
- StringExpandPlaceholders(gStringVar4, gText_0827E6E3);
- Contest_StartTextPrinter(gStringVar4, 1);
gTasks[taskId].data[10] = 0;
- sub_80DD720(0);
- gTasks[taskId].data[0] = 46;
- }
- else
- {
- gTasks[taskId].data[0] = 41;
+ gTasks[taskId].data[11] = 0;
+ gTasks[taskId].data[0] = 43;
}
- return;
- case 46:
- if (!gContestResources->field_0->unk1920A_4)
- gTasks[taskId].data[0] = 19;
- return;
- case 19:
+ break;
+ }
+ return;
+ case 54:
+ switch (gTasks[taskId].data[10])
+ {
+ case 0:
if (!Contest_RunTextPrinters())
{
- sub_80DC028(gContestResources->field_4[r6].appeal2, -gContestResources->field_4[r6].unk18, r6);
- gContestResources->field_4[r6].appeal2 -= gContestResources->field_4[r6].unk18;
- gTasks[taskId].data[0] = 18;
+ sub_80DDED0(1, 1);
+ gTasks[taskId].data[10]++;
}
- return;
- case 18:
- sub_80DCD48();
- if (!gContestResources->field_14[r6].unk2_2)
- {
- gTasks[taskId].data[10] = 0;
- sub_80DB89C();
- gTasks[taskId].data[0] = 41;
- }
- return;
- case 41:
- if (gContestResources->field_10->excitementFrozen && r6 != gContestResources->field_10->excitementFreezer)
+ break;
+ case 1:
+ if (!gContestResources->field_0->unk1920B_0)
{
- gTasks[taskId].data[0] = 57;
+ sub_80DDE0C();
+ PlaySE(SE_W227B);
+ sub_80DDCDC(1);
+ gTasks[taskId].data[10]++;
}
- else
+ break;
+ case 2:
+ if (!gContestResources->field_0->unk1920A_5)
{
- r3 = gContestResources->field_10->bits_0;
- if (gContestResources->field_4[r6].overrideCategoryExcitementMod)
+ if (gTasks[taskId].data[11]++ > 29)
{
- r3 = 1;
- StringCopy(gStringVar3, gMoveNames[gContestResources->field_4[r6].currMove]);
- }
- else
- {
- StringCopy(gStringVar3, gUnknown_08587F08[gContestMoves[gContestResources->field_4[r6].currMove].contestCategory]);
- }
- if (r3 > 0)
- {
- if (gContestResources->field_4[r6].disappointedRepeat)
- r3 = 0;
- }
- sub_80DB89C();
- StringCopy(gStringVar1, gContestMons[r6].nickname);
- gContestResources->field_0->applauseLevel += r3;
- if (gContestResources->field_0->applauseLevel < 0)
- gContestResources->field_0->applauseLevel = 0;
- if (r3 == 0)
- {
- gTasks[taskId].data[0] = 55;
- }
- else
- {
- if (r3 < 0)
- StringExpandPlaceholders(gStringVar4, gText_0827E73C);
- else if (r3 > 0 && gContestResources->field_0->applauseLevel <= 4)
- StringExpandPlaceholders(gStringVar4, gText_0827E717);
- else
- StringExpandPlaceholders(gStringVar4, gText_0827E76A);
- Contest_StartTextPrinter(gStringVar4, 1);
- gTasks[taskId].data[10] = 0;
gTasks[taskId].data[11] = 0;
- if (r3 < 0)
- gTasks[taskId].data[0] = 53;
- else
- gTasks[taskId].data[0] = 54;
- }
- }
- return;
- case 53:
- switch (gTasks[taskId].data[10])
- {
- case 0:
- sub_80DDED0(-1, 1);
- PlayFanfare(MUS_ME_ZANNEN);
+ sub_80DC028(gContestResources->field_4[r6].appeal2, gContestResources->field_10->unk2, r6);
+ gContestResources->field_4[r6].appeal2 += gContestResources->field_10->unk2;
gTasks[taskId].data[10]++;
- break;
- case 1:
- if (!gContestResources->field_0->unk1920B_0 && !Contest_RunTextPrinters())
- {
- sub_80DDCDC(-1);
- gTasks[taskId].data[10]++;
- }
- break;
- case 2:
- if (!gContestResources->field_0->unk1920A_5)
- {
- if (gTasks[taskId].data[11]++ > 29)
- {
- gTasks[taskId].data[11] = 0;
- sub_80DDED0(-1, -1);
- gTasks[taskId].data[10]++;
- }
- }
- break;
- case 3:
- if (!gPaletteFade.active)
- {
- gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[11] = 0;
- gTasks[taskId].data[0] = 43;
- }
- break;
- }
- return;
- case 54:
- switch (gTasks[taskId].data[10])
- {
- case 0:
- if (!Contest_RunTextPrinters())
- {
- sub_80DDED0(1, 1);
- gTasks[taskId].data[10]++;
- }
- break;
- case 1:
- if (!gContestResources->field_0->unk1920B_0)
- {
- sub_80DDE0C();
- PlaySE(SE_W227B);
- sub_80DDCDC(1);
- gTasks[taskId].data[10]++;
- }
- break;
- case 2:
- if (!gContestResources->field_0->unk1920A_5)
- {
- if (gTasks[taskId].data[11]++ > 29)
- {
- gTasks[taskId].data[11] = 0;
- sub_80DC028(gContestResources->field_4[r6].appeal2, gContestResources->field_10->unk2, r6);
- gContestResources->field_4[r6].appeal2 += gContestResources->field_10->unk2;
- gTasks[taskId].data[10]++;
- }
- }
- break;
- case 3:
- if (!gContestResources->field_14[r6].unk2_2)
- {
- if (!gContestResources->field_0->unk1920A_7)
- {
- sub_80DDED0(1, -1);
- gTasks[taskId].data[10]++;
- }
- }
- break;
- case 4:
- if (!gPaletteFade.active)
- {
- gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[11] = 0;
- gTasks[taskId].data[0] = 43;
- }
- break;
+ }
}
- return;
- case 43:
+ break;
+ case 3:
if (!gContestResources->field_14[r6].unk2_2)
{
- sub_80DB89C();
- gTasks[taskId].data[0] = 55;
- }
- return;
- case 57:
- sub_80DB89C();
- StringCopy(gStringVar3, gContestMons[gContestResources->field_10->excitementFreezer].nickname);
- StringCopy(gStringVar1, gContestMons[r6].nickname);
- StringCopy(gStringVar2, gMoveNames[gContestResources->field_4[r6].currMove]);
- StringExpandPlaceholders(gStringVar4, gText_0827E7EA);
- Contest_StartTextPrinter(gStringVar4, 1);
- gTasks[taskId].data[0] = 58;
- return;
- case 58:
- if (!Contest_RunTextPrinters())
- {
- sub_80DB89C();
- StringExpandPlaceholders(gStringVar4, gText_0827E817);
- Contest_StartTextPrinter(gStringVar4, 1);
- gTasks[taskId].data[0] = 59;
- }
- return;
- case 59:
- if (!Contest_RunTextPrinters())
- {
- sub_80DB89C();
- gTasks[taskId].data[0] = 55;
- }
- return;
- case 33:
- if (gContestResources->field_4[r6].hasJudgesAttention)
- gContestResources->field_4[r6].hasJudgesAttention = 0;
- sub_80DC9B4(r6);
- StringCopy(gStringVar1, gContestMons[r6].nickname);
- StringCopy(gStringVar2, gMoveNames[gContestResources->field_4[r6].currMove]);
- StringExpandPlaceholders(gStringVar4, gText_0827E58A);
- Contest_StartTextPrinter(gStringVar4, 1);
- gTasks[taskId].data[0] = 34;
- return;
- case 34:
- if (!Contest_RunTextPrinters())
- gTasks[taskId].data[0] = 55;
- return;
- case 55:
- sub_80DDBE8();
- gTasks[taskId].data[0] = 56;
- return;
- case 56:
- if (!gContestResources->field_0->unk1920A_6)
- {
- if (gContestResources->field_0->applauseLevel > 4)
+ if (!gContestResources->field_0->unk1920A_7)
{
- gContestResources->field_0->applauseLevel = 0;
- sub_80DD940();
+ sub_80DDED0(1, -1);
+ gTasks[taskId].data[10]++;
}
- gTasks[taskId].data[0] = 10;
}
- return;
- case 10:
- spriteId = gTasks[taskId].data[2];
- gSprites[spriteId].callback = sub_80DA164;
- gTasks[taskId].data[0] = 11;
- return;
- case 11:
- spriteId = gTasks[taskId].data[2];
- if (gSprites[spriteId].invisible)
+ break;
+ case 4:
+ if (!gPaletteFade.active)
{
- FreeSpriteOamMatrix(&gSprites[spriteId]);
- DestroySprite(&gSprites[spriteId]);
- gTasks[taskId].data[0] = 20;
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[11] = 0;
+ gTasks[taskId].data[0] = 43;
}
- return;
- case 20:
- gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[0] = 21;
- return;
- case 31:
+ break;
+ }
+ return;
+ case 43:
+ if (!gContestResources->field_14[r6].unk2_2)
+ {
sub_80DB89C();
- StringCopy(gStringVar1, gContestMons[r6].nickname);
- StringExpandPlaceholders(gStringVar4, gText_0827D56F);
+ gTasks[taskId].data[0] = 55;
+ }
+ return;
+ case 57:
+ sub_80DB89C();
+ StringCopy(gStringVar3, gContestMons[gContestResources->field_10->excitementFreezer].nickname);
+ StringCopy(gStringVar1, gContestMons[r6].nickname);
+ StringCopy(gStringVar2, gMoveNames[gContestResources->field_4[r6].currMove]);
+ StringExpandPlaceholders(gStringVar4, gText_0827E7EA);
+ Contest_StartTextPrinter(gStringVar4, 1);
+ gTasks[taskId].data[0] = 58;
+ return;
+ case 58:
+ if (!Contest_RunTextPrinters())
+ {
+ sub_80DB89C();
+ StringExpandPlaceholders(gStringVar4, gText_0827E817);
Contest_StartTextPrinter(gStringVar4, 1);
- gTasks[taskId].data[0] = 32;
- return;
- case 32:
- if (!Contest_RunTextPrinters())
- gTasks[taskId].data[0] = 21;
- return;
- case 21:
- if (++gTasks[taskId].data[10] > 29)
- {
- gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[0] = 22;
- }
- return;
- case 22:
- if (++gContestResources->field_0->unk19214 == 4)
- {
- gTasks[taskId].data[0] = 0;
- gTasks[taskId].data[1] = 0;
- gTasks[taskId].data[2] = 0;
- gTasks[taskId].func = sub_80DA198;
- }
- else
+ gTasks[taskId].data[0] = 59;
+ }
+ return;
+ case 59:
+ if (!Contest_RunTextPrinters())
+ {
+ sub_80DB89C();
+ gTasks[taskId].data[0] = 55;
+ }
+ return;
+ case 33:
+ if (gContestResources->field_4[r6].hasJudgesAttention)
+ gContestResources->field_4[r6].hasJudgesAttention = 0;
+ sub_80DC9B4(r6);
+ StringCopy(gStringVar1, gContestMons[r6].nickname);
+ StringCopy(gStringVar2, gMoveNames[gContestResources->field_4[r6].currMove]);
+ StringExpandPlaceholders(gStringVar4, gText_0827E58A);
+ Contest_StartTextPrinter(gStringVar4, 1);
+ gTasks[taskId].data[0] = 34;
+ return;
+ case 34:
+ if (!Contest_RunTextPrinters())
+ gTasks[taskId].data[0] = 55;
+ return;
+ case 55:
+ sub_80DDBE8();
+ gTasks[taskId].data[0] = 56;
+ return;
+ case 56:
+ if (!gContestResources->field_0->unk1920A_6)
+ {
+ if (gContestResources->field_0->applauseLevel > 4)
{
- gTasks[taskId].data[0] = 0;
+ gContestResources->field_0->applauseLevel = 0;
+ sub_80DD940();
}
- return;
+ gTasks[taskId].data[0] = 10;
+ }
+ return;
+ case 10:
+ spriteId = gTasks[taskId].data[2];
+ gSprites[spriteId].callback = sub_80DA164;
+ gTasks[taskId].data[0] = 11;
+ return;
+ case 11:
+ spriteId = gTasks[taskId].data[2];
+ if (gSprites[spriteId].invisible)
+ {
+ FreeSpriteOamMatrix(&gSprites[spriteId]);
+ DestroySprite(&gSprites[spriteId]);
+ gTasks[taskId].data[0] = 20;
+ }
+ return;
+ case 20:
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[0] = 21;
+ return;
+ case 31:
+ sub_80DB89C();
+ StringCopy(gStringVar1, gContestMons[r6].nickname);
+ StringExpandPlaceholders(gStringVar4, gText_0827D56F);
+ Contest_StartTextPrinter(gStringVar4, 1);
+ gTasks[taskId].data[0] = 32;
+ return;
+ case 32:
+ if (!Contest_RunTextPrinters())
+ gTasks[taskId].data[0] = 21;
+ return;
+ case 21:
+ if (++gTasks[taskId].data[10] > 29)
+ {
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[0] = 22;
+ }
+ return;
+ case 22:
+ if (++gContestResources->field_0->unk19214 == 4)
+ {
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].func = sub_80DA198;
+ }
+ else
+ {
+ gTasks[taskId].data[0] = 0;
+ }
+ return;
}
}
-void sub_80DA110(u8 taskId)
+static void sub_80DA110(u8 taskId)
{
sContest.unk1920B_2 = 0;
DestroyTask(taskId);
}
-void sub_80DA134(struct Sprite *sprite)
+static void sub_80DA134(struct Sprite *sprite)
{
if (sprite->pos2.x != 0)
{
@@ -1721,7 +1720,7 @@ void sub_80DA134(struct Sprite *sprite)
}
}
-void sub_80DA164(struct Sprite *sprite)
+static void sub_80DA164(struct Sprite *sprite)
{
sprite->pos2.x -= 6;
if (sprite->pos1.x + sprite->pos2.x < -32)
@@ -1731,7 +1730,7 @@ void sub_80DA164(struct Sprite *sprite)
}
}
-void sub_80DA198(u8 taskId)
+static void sub_80DA198(u8 taskId)
{
switch (gTasks[taskId].data[0])
{
@@ -1769,7 +1768,7 @@ void sub_80DA198(u8 taskId)
}
}
-void sub_80DA25C(u8 taskId)
+static void sub_80DA25C(u8 taskId)
{
sub_80DE008(FALSE);
gTasks[taskId].data[0] = 0;
@@ -1777,7 +1776,7 @@ void sub_80DA25C(u8 taskId)
gTasks[taskId].func = sub_80DA28C;
}
-void sub_80DA28C(u8 taskId)
+static void sub_80DA28C(u8 taskId)
{
switch (gTasks[taskId].data[0])
{
@@ -1808,13 +1807,13 @@ void sub_80DA28C(u8 taskId)
}
}
-void sub_80DA31C(u8 taskId)
+static void sub_80DA31C(u8 taskId)
{
if (sub_80DC3C4())
gTasks[taskId].func = sub_80DA348;
}
-void sub_80DA348(u8 taskId)
+static void sub_80DA348(u8 taskId)
{
DmaCopy32Defvars(3, shared18000.unk18204, gPlttBufferUnfaded, 0x400);
gTasks[taskId].data[0] = 0;
@@ -1822,7 +1821,7 @@ void sub_80DA348(u8 taskId)
gTasks[taskId].func = sub_80DA38C;
}
-void sub_80DA38C(u8 taskId)
+static void sub_80DA38C(u8 taskId)
{
if (++gTasks[taskId].data[0] > 2)
{
@@ -1832,7 +1831,7 @@ void sub_80DA38C(u8 taskId)
}
}
-void sub_80DA3CC(u8 taskId)
+static void sub_80DA3CC(u8 taskId)
{
if (gTasks[taskId].data[0] == 0)
{
@@ -1855,7 +1854,7 @@ void sub_80DA3CC(u8 taskId)
}
}
-void sub_80DA464(u8 taskId)
+static void sub_80DA464(u8 taskId)
{
if (gTasks[taskId].data[0]++ > 29)
{
@@ -1865,7 +1864,7 @@ void sub_80DA464(u8 taskId)
}
}
-void sub_80DA49C(u8 taskId)
+static void sub_80DA49C(u8 taskId)
{
if (sub_80DC3C4())
{
@@ -1874,19 +1873,19 @@ void sub_80DA49C(u8 taskId)
}
}
-void sub_80DA4CC(u8 taskId)
+static void sub_80DA4CC(u8 taskId)
{
sub_80DE224();
gTasks[taskId].func = sub_80DE424;
}
-void sub_80DA4F4(u8 taskId)
+static void sub_80DA4F4(u8 taskId)
{
sub_80DE350();
gTasks[taskId].func = sub_80DA51C;
}
-void sub_80DA51C(u8 taskId)
+static void sub_80DA51C(u8 taskId)
{
vu16 sp0 = GetGpuReg(REG_OFFSET_BG0CNT);
vu16 sp2 = GetGpuReg(REG_OFFSET_BG2CNT);
@@ -1906,13 +1905,13 @@ void sub_80DA51C(u8 taskId)
}
}
-void sub_80DA5B4(u8 taskId)
+static void sub_80DA5B4(u8 taskId)
{
if (!sContest.unk1920A_6)
gTasks[taskId].func = sub_80D833C;
}
-void sub_80DA5E8(u8 taskId)
+static void sub_80DA5E8(u8 taskId)
{
s32 i;
@@ -1937,7 +1936,7 @@ void sub_80DA5E8(u8 taskId)
gTasks[taskId].func = sub_80DA6B4;
}
-void sub_80DA6B4(u8 taskId)
+static void sub_80DA6B4(u8 taskId)
{
if (!Contest_RunTextPrinters())
{
@@ -1950,7 +1949,7 @@ void sub_80DA6B4(u8 taskId)
}
}
-void sub_80DA700(u8 taskId)
+static void sub_80DA700(u8 taskId)
{
gBattle_BG1_Y -= 7;
if ((s16)gBattle_BG1_Y < 0)
@@ -1962,7 +1961,7 @@ void sub_80DA700(u8 taskId)
}
}
-void sub_80DA740(u8 taskId)
+static void sub_80DA740(u8 taskId)
{
if (gTasks[taskId].data[0]++ >= 50)
{
@@ -1979,7 +1978,7 @@ void sub_80DA740(u8 taskId)
}
}
-void sub_80DA7A0(u8 taskId)
+static void sub_80DA7A0(u8 taskId)
{
u8 taskId2 = CreateTask(sub_80FCACC, 0);
@@ -1989,14 +1988,14 @@ void sub_80DA7A0(u8 taskId)
sub_80DC490(FALSE);
}
-void sub_80DA7EC(u8 taskId)
+static void sub_80DA7EC(u8 taskId)
{
DestroyTask(taskId);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
gTasks[sContest.mainTaskId].func = sub_80DA830;
}
-void sub_80DA830(u8 taskId)
+static void sub_80DA830(u8 taskId)
{
if (!gPaletteFade.active)
{
@@ -2009,26 +2008,25 @@ void sub_80DA830(u8 taskId)
}
}
-void sub_80DA874(void)
+static void sub_80DA874(void)
{
ScriptContext2_Disable();
EnableBothScriptContexts();
}
-void sub_80DA884(void)
+static void sub_80DA884(void)
{
if (!(gIsLinkContest & 1))
gContestPlayerMonIndex = 3;
}
-bool8 sub_80DA8A4(void)
+static bool8 sub_80DA8A4(void)
{
if (gContestPlayerMonIndex == gUnknown_02039F2B)
return TRUE;
return FALSE;
}
-
void sub_80DA8C8(u8 partyIndex)
{
u8 name[20];
@@ -2164,48 +2162,41 @@ void sub_80DAB8C(u8 contestType, u8 rank)
sub_80DA8C8(gContestMonPartyIndex);
}
-#ifdef NONMATCHING
void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame)
{
- s32 i;
+ s32 i, j;
u8 opponentsCount = 0;
u8 opponents[100];
- const u8 * r6;
if (gNumLinkContestPlayers == 4)
return;
- r6 = gUnknown_085898A4;
for (i = 0; i < ARRAY_COUNT(gContestOpponents); i++)
{
if (rank != gContestOpponents[i].whichRank)
continue;
+
if (isPostgame == TRUE)
{
- if (r6[i] == 1)
+ if (gUnknown_085898A4[i] == 1)
continue;
}
else
{
- if (r6[i] == 2)
+ if (gUnknown_085898A4[i] == 2)
continue;
}
- if (contestType == CONTEST_CATEGORY_COOL && gContestOpponents[i].aiPool_Cool)
- opponents[opponentsCount++] = i;
- else if (contestType == CONTEST_CATEGORY_BEAUTY && gContestOpponents[i].aiPool_Beauty)
- opponents[opponentsCount++] = i;
- else if (contestType == CONTEST_CATEGORY_CUTE && gContestOpponents[i].aiPool_Cute)
- opponents[opponentsCount++] = i;
- else if (contestType == CONTEST_CATEGORY_SMART && gContestOpponents[i].aiPool_Smart)
- opponents[opponentsCount++] = i;
- else if (contestType == CONTEST_CATEGORY_TOUGH && gContestOpponents[i].aiPool_Tough)
+ if ((contestType == CONTEST_CATEGORY_COOL && gContestOpponents[i].aiPool_Cool)
+ || (contestType == CONTEST_CATEGORY_BEAUTY && gContestOpponents[i].aiPool_Beauty)
+ || (contestType == CONTEST_CATEGORY_CUTE && gContestOpponents[i].aiPool_Cute)
+ || (contestType == CONTEST_CATEGORY_SMART && gContestOpponents[i].aiPool_Smart)
+ || (contestType == CONTEST_CATEGORY_TOUGH && gContestOpponents[i].aiPool_Tough))
opponents[opponentsCount++] = i;
}
opponents[opponentsCount] = 0xFF;
for (i = 0; i < 4 - gNumLinkContestPlayers; i++)
{
u16 rnd = sub_80F903C() % opponentsCount;
- s32 j;
gContestMons[gNumLinkContestPlayers + i] = gContestOpponents[opponents[rnd]];
sub_80DF9D4(gContestMons[gNumLinkContestPlayers + i].trainerName);
@@ -2215,180 +2206,6 @@ void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame)
opponentsCount--;
}
}
-#else
-NAKED void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame)
-{
- asm_unified("\tpush {r4-r7,lr}\n"
- "\tmov r7, r9\n"
- "\tmov r6, r8\n"
- "\tpush {r6,r7}\n"
- "\tsub sp, 0x64\n"
- "\tmov r8, r2\n"
- "\tlsls r0, 24\n"
- "\tlsrs r4, r0, 24\n"
- "\tlsls r1, 24\n"
- "\tlsrs r2, r1, 24\n"
- "\tmovs r7, 0\n"
- "\tldr r0, =gNumLinkContestPlayers\n"
- "\tldrb r1, [r0]\n"
- "\tmov r9, r0\n"
- "\tcmp r1, 0x4\n"
- "\tbne _080DACDE\n"
- "\tb _080DADF6\n"
- "_080DACDE:\n"
- "\tmovs r5, 0\n"
- "\tldr r3, =gContestOpponents\n"
- "\tldr r6, =gUnknown_085898A4\n"
- "_080DACE4:\n"
- "\tldrb r0, [r3, 0x1C]\n"
- "\tlsls r0, 30\n"
- "\tlsrs r0, 30\n"
- "\tcmp r2, r0\n"
- "\tbne _080DAD56\n"
- "\tmov r0, r8\n"
- "\tcmp r0, 0x1\n"
- "\tbne _080DAD08\n"
- "\tldrb r0, [r6]\n"
- "\tcmp r0, 0x1\n"
- "\tbeq _080DAD56\n"
- "\tb _080DAD0E\n"
- "\t.pool\n"
- "_080DAD08:\n"
- "\tldrb r0, [r6]\n"
- "\tcmp r0, 0x2\n"
- "\tbeq _080DAD56\n"
- "_080DAD0E:\n"
- "\tcmp r4, 0\n"
- "\tbne _080DAD1A\n"
- "\tldrb r0, [r3, 0x1C]\n"
- "\tlsls r0, 29\n"
- "\tcmp r0, 0\n"
- "\tblt _080DAD4A\n"
- "_080DAD1A:\n"
- "\tcmp r4, 0x1\n"
- "\tbne _080DAD26\n"
- "\tldrb r0, [r3, 0x1C]\n"
- "\tlsls r0, 28\n"
- "\tcmp r0, 0\n"
- "\tblt _080DAD4A\n"
- "_080DAD26:\n"
- "\tcmp r4, 0x2\n"
- "\tbne _080DAD32\n"
- "\tldrb r0, [r3, 0x1C]\n"
- "\tlsls r0, 27\n"
- "\tcmp r0, 0\n"
- "\tblt _080DAD4A\n"
- "_080DAD32:\n"
- "\tcmp r4, 0x3\n"
- "\tbne _080DAD3E\n"
- "\tldrb r0, [r3, 0x1C]\n"
- "\tlsls r0, 26\n"
- "\tcmp r0, 0\n"
- "\tblt _080DAD4A\n"
- "_080DAD3E:\n"
- "\tcmp r4, 0x4\n"
- "\tbne _080DAD56\n"
- "\tldrb r0, [r3, 0x1C]\n"
- "\tlsls r0, 25\n"
- "\tcmp r0, 0\n"
- "\tbge _080DAD56\n"
- "_080DAD4A:\n"
- "\tadds r0, r7, 0\n"
- "\tadds r1, r0, 0x1\n"
- "\tlsls r1, 24\n"
- "\tlsrs r7, r1, 24\n"
- "\tadd r0, sp\n"
- "\tstrb r5, [r0]\n"
- "_080DAD56:\n"
- "\tadds r3, 0x40\n"
- "\tadds r6, 0x1\n"
- "\tadds r5, 0x1\n"
- "\tcmp r5, 0x5F\n"
- "\tbls _080DACE4\n"
- "\tmov r3, sp\n"
- "\tadds r1, r3, r7\n"
- "\tmovs r0, 0xFF\n"
- "\tstrb r0, [r1]\n"
- "\tmovs r5, 0\n"
- "\tmov r0, r9\n"
- "\tldrb r1, [r0]\n"
- "\tmovs r0, 0x4\n"
- "\tsubs r0, r1\n"
- "\tcmp r5, r0\n"
- "\tbge _080DADF6\n"
- "\tldr r3, =gContestMons\n"
- "\tmov r8, r3\n"
- "\tmov r6, r9\n"
- "\tmovs r0, 0x2\n"
- "\tadd r0, r8\n"
- "\tmov r9, r0\n"
- "_080DAD82:\n"
- "\tbl sub_80F903C\n"
- "\tlsls r0, 16\n"
- "\tlsrs r0, 16\n"
- "\tadds r1, r7, 0\n"
- "\tbl __modsi3\n"
- "\tadds r1, r0, 0\n"
- "\tlsls r1, 16\n"
- "\tlsrs r1, 16\n"
- "\tldrb r0, [r6]\n"
- "\tadds r0, r5\n"
- "\tlsls r0, 6\n"
- "\tadd r0, r8\n"
- "\tldr r2, =gContestOpponents\n"
- "\tmov r3, sp\n"
- "\tadds r4, r3, r1\n"
- "\tldrb r1, [r4]\n"
- "\tlsls r1, 6\n"
- "\tadds r1, r2\n"
- "\tmovs r2, 0x40\n"
- "\tbl memcpy\n"
- "\tldrb r0, [r6]\n"
- "\tadds r0, r5\n"
- "\tlsls r0, 6\n"
- "\tmov r1, r8\n"
- "\tadds r1, 0xD\n"
- "\tadds r0, r1\n"
- "\tbl sub_80DF9D4\n"
- "\tldrb r0, [r6]\n"
- "\tadds r0, r5\n"
- "\tlsls r0, 6\n"
- "\tadd r0, r9\n"
- "\tmovs r1, 0x2\n"
- "\tbl sub_80DF9E0\n"
- "\tldrb r0, [r4]\n"
- "\tadds r3, r5, 0x1\n"
- "\tsubs r1, r7, 0x1\n"
- "\tcmp r0, 0xFF\n"
- "\tbeq _080DADE6\n"
- "\tadds r2, r4, 0\n"
- "_080DADDA:\n"
- "\tldrb r0, [r2, 0x1]\n"
- "\tstrb r0, [r2]\n"
- "\tadds r2, 0x1\n"
- "\tldrb r0, [r2]\n"
- "\tcmp r0, 0xFF\n"
- "\tbne _080DADDA\n"
- "_080DADE6:\n"
- "\tlsls r0, r1, 24\n"
- "\tlsrs r7, r0, 24\n"
- "\tadds r5, r3, 0\n"
- "\tldrb r1, [r6]\n"
- "\tmovs r0, 0x4\n"
- "\tsubs r0, r1\n"
- "\tcmp r5, r0\n"
- "\tblt _080DAD82\n"
- "_080DADF6:\n"
- "\tadd sp, 0x64\n"
- "\tpop {r3,r4}\n"
- "\tmov r8, r3\n"
- "\tmov r9, r4\n"
- "\tpop {r4-r7}\n"
- "\tpop {r0}\n"
- "\tbx r0\n"
- "\t.pool");
-}
-#endif
// GetContestAvailability?
u8 sub_80DAE0C(struct Pokemon *pkmn)
@@ -2433,7 +2250,7 @@ u8 sub_80DAE0C(struct Pokemon *pkmn)
return retVal;
}
-void sub_80DAEA4(void)
+static void sub_80DAEA4(void)
{
s32 i;
@@ -2445,7 +2262,7 @@ void sub_80DAEA4(void)
}
}
-u8 * sub_80DAED4(const u8 * src, u8 color)
+static u8 *sub_80DAED4(const u8 *src, u8 color)
{
u8 * ptr = StringCopy(gDisplayedStringBattle, gText_ColorTransparent);
ptr[-1] = color;
@@ -2454,12 +2271,12 @@ u8 * sub_80DAED4(const u8 * src, u8 color)
return ptr;
}
-void sub_80DAF04(u8 a0)
+static void sub_80DAF04(u8 a0)
{
sub_80DAF1C(a0, a0 + 10);
}
-void sub_80DAF1C(u8 a0, u8 a1)
+static void sub_80DAF1C(u8 a0, u8 a1)
{
u8 buffer[32];
s32 offset;
@@ -2473,18 +2290,18 @@ void sub_80DAF1C(u8 a0, u8 a1)
Contest_PrintTextToBg0WindowAt(gUnknown_02039F26[a0], gDisplayedStringBattle, offset, 1, 7);
}
-void sub_80DAF88(u8 a0)
+static void sub_80DAF88(u8 a0)
{
sub_80DAFA0(a0, a0 + 10);
}
-void sub_80DAFA0(u8 a0, u8 a1)
+static void sub_80DAFA0(u8 a0, u8 a1)
{
sub_80DAED4(gContestMons[a0].nickname, a1);
Contest_PrintTextToBg0WindowAt(gUnknown_02039F26[a0], gDisplayedStringBattle, 5, 1, 7);
}
-u16 sub_80DAFE0(u8 who, u8 contestCategory)
+static u16 sub_80DAFE0(u8 who, u8 contestCategory)
{
u8 statMain;
u8 statSub1;
@@ -2492,32 +2309,32 @@ u16 sub_80DAFE0(u8 who, u8 contestCategory)
switch (contestCategory)
{
- case CONTEST_CATEGORY_COOL:
- statMain = gContestMons[who].cool;
- statSub1 = gContestMons[who].tough;
- statSub2 = gContestMons[who].beauty;
- break;
- case CONTEST_CATEGORY_BEAUTY:
- statMain = gContestMons[who].beauty;
- statSub1 = gContestMons[who].cool;
- statSub2 = gContestMons[who].cute;
- break;
- case CONTEST_CATEGORY_CUTE:
- statMain = gContestMons[who].cute;
- statSub1 = gContestMons[who].beauty;
- statSub2 = gContestMons[who].smart;
- break;
- case CONTEST_CATEGORY_SMART:
- statMain = gContestMons[who].smart;
- statSub1 = gContestMons[who].cute;
- statSub2 = gContestMons[who].tough;
- break;
- case CONTEST_CATEGORY_TOUGH:
- default:
- statMain = gContestMons[who].tough;
- statSub1 = gContestMons[who].smart;
- statSub2 = gContestMons[who].cool;
- break;
+ case CONTEST_CATEGORY_COOL:
+ statMain = gContestMons[who].cool;
+ statSub1 = gContestMons[who].tough;
+ statSub2 = gContestMons[who].beauty;
+ break;
+ case CONTEST_CATEGORY_BEAUTY:
+ statMain = gContestMons[who].beauty;
+ statSub1 = gContestMons[who].cool;
+ statSub2 = gContestMons[who].cute;
+ break;
+ case CONTEST_CATEGORY_CUTE:
+ statMain = gContestMons[who].cute;
+ statSub1 = gContestMons[who].beauty;
+ statSub2 = gContestMons[who].smart;
+ break;
+ case CONTEST_CATEGORY_SMART:
+ statMain = gContestMons[who].smart;
+ statSub1 = gContestMons[who].cute;
+ statSub2 = gContestMons[who].tough;
+ break;
+ case CONTEST_CATEGORY_TOUGH:
+ default:
+ statMain = gContestMons[who].tough;
+ statSub1 = gContestMons[who].smart;
+ statSub2 = gContestMons[who].cool;
+ break;
}
return statMain + (statSub1 + statSub2 + gContestMons[who].sheen) / 2;
}
@@ -2530,7 +2347,7 @@ void sub_80DB09C(u8 contestCategory)
gContestMonConditions[i] = sub_80DAFE0(i, contestCategory);
}
-u8 sub_80DB0C4(void)
+static u8 sub_80DB0C4(void)
{
u8 spriteId;
@@ -2542,7 +2359,7 @@ u8 sub_80DB0C4(void)
return spriteId;
}
-u8 sub_80DB120(void)
+static u8 sub_80DB120(void)
{
u8 spriteId;
@@ -2554,7 +2371,7 @@ u8 sub_80DB120(void)
return spriteId;
}
-u8 sub_80DB174(u16 species, u32 otId, u32 personality, u32 index)
+static u8 sub_80DB174(u16 species, u32 otId, u32 personality, u32 index)
{
u8 spriteId;
species = SanitizeSpecies(species);
@@ -2591,36 +2408,36 @@ bool8 IsSpeciesNotUnown(u16 species)
return TRUE;
}
-void sub_80DB2BC(void)
+static void sub_80DB2BC(void)
{
CpuCopy16(gContestResources->field_24[0], gContestResources->field_24[0] + 0x500, 0x280);
CpuCopy16(gContestResources->field_24[2], gContestResources->field_24[2] + 0x500, 0x280);
}
-u16 sub_80DB2EC(u16 a0, u8 a1)
+static u16 sub_80DB2EC(u16 a0, u8 a1)
{
u16 var;
switch (gContestEffects[gContestMoves[a0].effect].effectType)
{
- case 0:
- case 1:
- case 8:
- var = 0x9082;
- break;
- case 2:
- case 3:
- var = 0x9088;
- break;
- default:
- var = 0x9086;
- break;
+ case 0:
+ case 1:
+ case 8:
+ var = 0x9082;
+ break;
+ case 2:
+ case 3:
+ var = 0x9088;
+ break;
+ default:
+ var = 0x9086;
+ break;
}
var += 0x9000 + (a1 << 12);
return var;
}
-void prints_contest_move_description(u16 a)
+static void prints_contest_move_description(u16 a)
{
u8 category;
u16 categoryTile;
@@ -2664,7 +2481,7 @@ void prints_contest_move_description(u16 a)
Contest_PrintTextToBg0WindowStd(9, gText_Slash);
}
-void sub_80DB4E0(u16 move, u8 b)
+static void sub_80DB4E0(u16 move, u8 b)
{
u8 r7 = gUnknown_02039F26[b] * 5 + 2;
@@ -2681,7 +2498,7 @@ void sub_80DB4E0(u16 move, u8 b)
}
}
-void sub_80DB584(void)
+static void sub_80DB584(void)
{
s32 i;
@@ -2689,12 +2506,12 @@ void sub_80DB584(void)
sub_80DB4E0(gContestResources->field_4[i].currMove, i);
}
-u16 sub_80DB5B0(void)
+static u16 sub_80DB5B0(void)
{
return 0x2034;
}
-bool8 sub_80DB5B8(u8 contestantIdx, bool8 resetMod)
+static bool8 sub_80DB5B8(u8 contestantIdx, bool8 resetMod)
{
u8 r6;
s32 r4;
@@ -2724,7 +2541,7 @@ bool8 sub_80DB5B8(u8 contestantIdx, bool8 resetMod)
return TRUE;
}
-void sub_80DB69C(void)
+static void sub_80DB69C(void)
{
s32 i;
s32 r6;
@@ -2740,33 +2557,33 @@ void sub_80DB69C(void)
}
}
-u16 sub_80DB748(u8 status)
+static u16 sub_80DB748(u8 status)
{
u16 var = 0;
switch (status)
{
- 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;
+ 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_80DB798(u8 a)
+static bool8 sub_80DB798(u8 a)
{
bool8 r9 = TRUE;
u16 r8 = 0;
@@ -2792,7 +2609,7 @@ bool8 sub_80DB798(u8 a)
return r9;
}
-void sub_80DB884(void)
+static void sub_80DB884(void)
{
s32 i;
@@ -2800,14 +2617,14 @@ void sub_80DB884(void)
sub_80DB798(i);
}
-void sub_80DB89C(void)
+static void sub_80DB89C(void)
{
FillWindowPixelBuffer(4, 0);
CopyWindowToVram(4, 2);
Contest_SetBgCopyFlags(0);
}
-u16 GetChosenMove(u8 a)
+static u16 GetChosenMove(u8 a)
{
if (Contest_IsMonsTurnDisabled(a))
return 0;
@@ -2822,18 +2639,18 @@ u16 GetChosenMove(u8 a)
ContestAI_ResetAI(a);
moveChoice = ContestAI_GetActionToUse();
return gContestMons[a].moves[moveChoice];
- }
+ }
}
-void sub_80DB918(void)
+static void sub_80DB918(void)
{
s32 i;
for (i = 0; i < 4; i++)
- sContestantStatus[i].currMove = GetChosenMove(i);
+ sContestantStatus[i].currMove = GetChosenMove(i);
}
-void sub_80DB944(void)
+static void sub_80DB944(void)
{
s32 i;
s32 j;
@@ -2872,7 +2689,7 @@ void sub_80DB944(void)
sub_80DD590();
}
-void sub_80DBA18(void)
+static void sub_80DBA18(void)
{
s32 i;
@@ -2897,7 +2714,7 @@ void sub_80DBA18(void)
}
}
-bool8 sub_80DBA68(u8 a)
+static bool8 sub_80DBA68(u8 a)
{
if (sContestantStatus[a].numTurnsSkipped != 0 || sContestantStatus[a].noMoreTurns)
return FALSE;
@@ -2905,7 +2722,7 @@ bool8 sub_80DBA68(u8 a)
return TRUE;
}
-void sub_80DBAA0(void)
+static void sub_80DBAA0(void)
{
s32 i;
@@ -2960,13 +2777,13 @@ bool8 Contest_IsMonsTurnDisabled(u8 a)
return FALSE;
}
-void sub_80DBCE0(u8 a)
+static void sub_80DBCE0(u8 a)
{
gUnknown_02039F18[a] = sub_80DBD34(a);
gUnknown_02039F08[a] = gContestMonConditions[a] + gUnknown_02039F18[a];
}
-void sub_80DBD18(void)
+static void sub_80DBD18(void)
{
s32 i;
@@ -2975,12 +2792,12 @@ void sub_80DBD18(void)
DetermineFinalStandings();
}
-s16 sub_80DBD34(u8 a)
+static s16 sub_80DBD34(u8 a)
{
return gUnknown_02039F10[a] * 2;
}
-void DetermineFinalStandings(void)
+static void DetermineFinalStandings(void)
{
u16 sp0[4] = {0};
struct UnknownContestStruct6 sp8[4];
@@ -3044,14 +2861,14 @@ void sub_80DBED4(void)
{
if ((gIsLinkContest & 1))
{
- gSaveBlock2Ptr->contestLinkResults[gSpecialVar_ContestCategory][gContestFinalStandings[gContestPlayerMonIndex]] =
+ gSaveBlock2Ptr->contestLinkResults[gSpecialVar_ContestCategory][gContestFinalStandings[gContestPlayerMonIndex]] =
((gSaveBlock2Ptr->contestLinkResults[gSpecialVar_ContestCategory][gContestFinalStandings[gContestPlayerMonIndex]] + 1) > 9999) ? 9999 :
(gSaveBlock2Ptr->contestLinkResults[gSpecialVar_ContestCategory][gContestFinalStandings[gContestPlayerMonIndex]] + 1);
-
+
}
}
-bool8 sub_80DBF30(s32 a, s32 b, struct UnknownContestStruct6 *c)
+static bool8 sub_80DBF30(s32 a, s32 b, struct UnknownContestStruct6 *c)
{
bool8 retVal;
@@ -3070,7 +2887,7 @@ bool8 sub_80DBF30(s32 a, s32 b, struct UnknownContestStruct6 *c)
return retVal;
}
-void sub_80DBF68(void)
+static void sub_80DBF68(void)
{
gBattle_BG0_Y = 0;
gBattle_BG2_Y = 0;
@@ -3078,17 +2895,17 @@ void sub_80DBF68(void)
Contest_StartTextPrinter((u8*) &gUnknown_0827E8DA, 0);
}
-void sub_80DBF90(void)
+static void sub_80DBF90(void)
{
int i;
-
+
for(i = 0; i < 4; i++)
{
ContestBG_FillBoxWithTile(0, 0, 0x16, 2 + i * 5, 8, 2, 0x11);
}
}
-u16 sub_80DBFC8(u8 a)
+static u16 sub_80DBFC8(u8 a)
{
u16 var;
@@ -3103,7 +2920,7 @@ u16 sub_80DBFC8(u8 a)
return var + 1;
}
-s8 sub_80DBFFC(s16 a)
+static s8 sub_80DBFFC(s16 a)
{
s8 retVal = a / 10;
@@ -3114,7 +2931,7 @@ s8 sub_80DBFFC(s16 a)
return retVal;
}
-u8 sub_80DC028(s16 a, s16 b, u8 c)
+static u8 sub_80DC028(s16 a, s16 b, u8 c)
{
u8 taskId;
s8 r4;
@@ -3135,7 +2952,7 @@ u8 sub_80DC028(s16 a, s16 b, u8 c)
return taskId;
}
-void sub_80DC0F4(u8 taskId)
+static void sub_80DC0F4(u8 taskId)
{
u8 r7 = gTasks[taskId].data[3];
s16 r3 = gTasks[taskId].data[0];
@@ -3147,7 +2964,7 @@ void sub_80DC0F4(u8 taskId)
u8 r5;
u8 r10;
u8 r11;
-
+
gTasks[taskId].data[10] = 0;
if (gTasks[taskId].data[1] == 0)
{
@@ -3204,7 +3021,7 @@ void sub_80DC0F4(u8 taskId)
}
r10 = r5;
r11 = 0;
-
+
if (r5 > 7)
{
r11 = 1;
@@ -3221,13 +3038,13 @@ void sub_80DC0F4(u8 taskId)
{
PlaySE(SE_BOO);
}
-
+
if (!r11 && !r5 && !r6)
gTasks[taskId].data[2] = -gTasks[taskId].data[2];
}
}
-void sub_80DC2BC(void)
+static void sub_80DC2BC(void)
{
s32 i;
@@ -3240,7 +3057,7 @@ void sub_80DC2BC(void)
}
}
-void sub_80DC308(u8 a)
+static void sub_80DC308(u8 a)
{
u8 spriteId;
s16 r5;
@@ -3262,7 +3079,7 @@ void sub_80DC308(u8 a)
gSprites[spriteId].callback = sub_80DC408;
}
-void sub_80DC3AC(void)
+static void sub_80DC3AC(void)
{
s32 i;
@@ -3270,7 +3087,7 @@ void sub_80DC3AC(void)
sub_80DC308(i);
}
-bool8 sub_80DC3C4(void)
+static bool8 sub_80DC3C4(void)
{
s32 i;
@@ -3285,7 +3102,7 @@ bool8 sub_80DC3C4(void)
return FALSE;
}
-void sub_80DC408(struct Sprite *sprite)
+static void sub_80DC408(struct Sprite *sprite)
{
if (sprite->pos2.x == sprite->data[1])
{
@@ -3298,7 +3115,7 @@ void sub_80DC408(struct Sprite *sprite)
}
}
-void sub_80DC44C(void)
+static void sub_80DC44C(void)
{
s32 i;
@@ -3306,7 +3123,7 @@ void sub_80DC44C(void)
gSprites[gContestResources->field_14[i].unk0].pos1.y = gUnknown_08587A6C[gUnknown_02039F26[i]];
}
-void sub_80DC490(bool8 a)
+static void sub_80DC490(bool8 a)
{
s32 i;
@@ -3322,7 +3139,7 @@ void sub_80DC490(bool8 a)
}
}
-void sub_80DC4F0(void)
+static void sub_80DC4F0(void)
{
s32 i;
@@ -3330,16 +3147,16 @@ void sub_80DC4F0(void)
for (i = 0; i < 4; i++)
{
LoadCompressedSpriteSheet(&gUnknown_08587AE8[i]);
- gContestResources->field_14[i].unk1 = CreateSprite(&gSpriteTemplate_8587B18[i],
- 204,
- gUnknown_08587A70[gUnknown_02039F26[i]],
+ gContestResources->field_14[i].unk1 = CreateSprite(&gSpriteTemplate_8587B18[i],
+ 204,
+ gUnknown_08587A70[gUnknown_02039F26[i]],
0);
SetSubspriteTables(&gSprites[gContestResources->field_14[i].unk1], gSubspriteTables_8587B80);
gSprites[gContestResources->field_14[i].unk1].invisible = TRUE;
}
}
-void CreateApplauseMeterSprite(void)
+static void CreateApplauseMeterSprite(void)
{
u8 spriteId;
@@ -3350,7 +3167,7 @@ void CreateApplauseMeterSprite(void)
sContest.applauseMeterSpriteId = spriteId;
}
-void sub_80DC5E8(void)
+static void sub_80DC5E8(void)
{
u8 i;
u8 taskId = CreateTask(sub_80DC728, 30);
@@ -3360,20 +3177,20 @@ void sub_80DC5E8(void)
gTasks[taskId].data[i * 4] = 0xFF;
}
-void sub_80DC630(u8 a)
+static void sub_80DC630(u8 a)
{
gTasks[sContest.unk19211].data[a * 4 + 0] = 0;
gTasks[sContest.unk19211].data[a * 4 + 1] = 0;
}
-void sub_80DC674(u8 a)
+static void sub_80DC674(u8 a)
{
u8 taskId = CreateTask(sub_80DC6A4, 31);
gTasks[taskId].data[0] = a;
}
-void sub_80DC6A4(u8 taskId)
+static void sub_80DC6A4(u8 taskId)
{
u8 r4 = gTasks[taskId].data[0];
@@ -3387,7 +3204,7 @@ void sub_80DC6A4(u8 taskId)
}
}
-void sub_80DC728(u8 taskId)
+static void sub_80DC728(u8 taskId)
{
u8 i;
@@ -3415,7 +3232,7 @@ void sub_80DC728(u8 taskId)
}
}
-void sub_80DC7EC(void)
+static void sub_80DC7EC(void)
{
s32 i;
@@ -3424,13 +3241,13 @@ void sub_80DC7EC(void)
sub_80DC81C(i);
}
-void sub_80DC81C(u8 a)
+static void sub_80DC81C(u8 a)
{
gTasks[sContest.unk19212].data[a * 4 + 0] = 0xFF;
gTasks[sContest.unk19212].data[a * 4 + 1] = 0;
}
-void sub_80DC864(void)
+static void sub_80DC864(void)
{
s32 i;
@@ -3438,7 +3255,7 @@ void sub_80DC864(void)
sub_80DC87C(i);
}
-void sub_80DC87C(u8 a)
+static void sub_80DC87C(u8 a)
{
u32 var;
u32 r0;
@@ -3446,18 +3263,18 @@ void sub_80DC87C(u8 a)
sub_80DC81C(a);
r0 = a + 5;
- DmaCopy16Defvars(3,
- gPlttBufferUnfaded + r0 * 16 + 10,
- gPlttBufferFaded + r0 * 16 + 10,
+ DmaCopy16Defvars(3,
+ gPlttBufferUnfaded + r0 * 16 + 10,
+ gPlttBufferFaded + r0 * 16 + 10,
2);
var = (a + 5) * 16 + 12 + a;
- DmaCopy16Defvars(3,
- gPlttBufferUnfaded + var,
- gPlttBufferFaded + var,
+ DmaCopy16Defvars(3,
+ gPlttBufferUnfaded + var,
+ gPlttBufferFaded + var,
2);
}
-void sub_80DC8D0(u8 taskId)
+static void sub_80DC8D0(u8 taskId)
{
u8 i;
@@ -3487,7 +3304,7 @@ void sub_80DC8D0(u8 taskId)
}
}
-void sub_80DC9B4(u8 a)
+static void sub_80DC9B4(u8 a)
{
if (sContestantStatus[a].hasJudgesAttention)
sub_80DC630(a);
@@ -3495,218 +3312,51 @@ void sub_80DC9B4(u8 a)
sub_80DC674(a);
}
-extern const struct CompressedSpriteSheet gUnknown_08589904[];
-extern const struct SpritePalette gUnknown_08589924[];
-extern const struct SpriteTemplate gSpriteTemplate_858998C[];
-
-#ifdef NONMATCHING
-u8 sub_80DC9EC(u8 a)
+static u8 sub_80DC9EC(u8 a)
{
- u8 r5 = gUnknown_02039F26[a] * 40 + 32;
- u8 r8;
- u8 r6;
- volatile u8 zero;
-
+ u8 spriteId1, spriteId2;
+ u8 x = gUnknown_02039F26[a] * 40 + 32;
LoadCompressedSpriteSheet(&gUnknown_08589904[a]);
LoadSpritePalette(&gUnknown_08589924[a]);
- r6 = CreateSprite(&gSpriteTemplate_858998C[a], 184, r5, 29);
- gSprites[r8].oam.tileNum += 64;
- r8 = CreateSprite(&gSpriteTemplate_858998C[a], 248, r5, 29);
-
-
- CopySpriteTiles(0, 3, (void *)VRAM, (u16 *)(VRAM + 0xE000 + gUnknown_02039F26[a] * 5 * 64 + 0x26), (u8 *)(VRAM + 0x10000 + gSprites[r6].oam.tileNum * 32));
- CopySpriteTiles(0, 3, (void *)VRAM, (u16 *)(VRAM + 0xE000 + gUnknown_02039F26[a] * 5 * 64 + 0x36), (u8 *)(VRAM + 0x10000 + gSprites[r8].oam.tileNum * 32));
- CpuSet(&r8, (u16 *)(VRAM + 0xE000 + gUnknown_02039F26[a] * 5 * 64 + 0x36), 0x050000c0);
-
- RequestDma3Copy((void *)(VRAM + 0x10000 + (0x28 + gSprites[r6].oam.tileNum) * 32), (u8 *)(VRAM + 0x10000 + gSprites[r8].oam.tileNum * 32), 0x80, 1);
-
- // What is this?
- zero = 0;
- zero = 0;
-
- RequestDma3Copy((void *)(VRAM + 0x10000 + (0x28 + gSprites[r6].oam.tileNum) * 32), (u8 *)(VRAM + 0x10000 + gSprites[r6].oam.tileNum * 32), 0x80, 1);
-
-
- gSprites[r6].data[0] = r8;
- gSprites[r8].data[0] = r6;
-
- return r6;
-}
-#else
-NAKED
-u8 sub_80DC9EC(u8 a)
-{
- 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, 0x10\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- str r0, [sp, 0xC]\n\
- ldr r6, =gUnknown_02039F26\n\
- adds r6, r0, r6\n\
- ldrb r0, [r6]\n\
- lsls r5, r0, 2\n\
- adds r5, r0\n\
- lsls r5, 27\n\
- movs r0, 0x80\n\
- lsls r0, 22\n\
- adds r5, r0\n\
- lsrs r5, 24\n\
- ldr r1, [sp, 0xC]\n\
- lsls r4, r1, 3\n\
- ldr r0, =gUnknown_08589904\n\
- adds r0, r4, r0\n\
- bl LoadCompressedSpriteSheet\n\
- ldr r0, =gUnknown_08589924\n\
- adds r4, r0\n\
- adds r0, r4, 0\n\
- bl LoadSpritePalette\n\
- ldr r2, [sp, 0xC]\n\
- lsls r4, r2, 1\n\
- adds r4, r2\n\
- lsls r4, 3\n\
- ldr r0, =gSpriteTemplate_858998C\n\
- adds r4, r0\n\
- adds r0, r4, 0\n\
- movs r1, 0xB8\n\
- adds r2, r5, 0\n\
- movs r3, 0x1D\n\
- bl CreateSprite\n\
- mov r9, r0\n\
- mov r3, r9\n\
- lsls r3, 24\n\
- lsrs r3, 24\n\
- mov r9, r3\n\
- adds r0, r4, 0\n\
- movs r1, 0xF8\n\
- adds r2, r5, 0\n\
- movs r3, 0x1D\n\
- bl CreateSprite\n\
- mov r8, r0\n\
- mov r0, r8\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r8, r0\n\
- lsls r5, r0, 4\n\
- add r5, r8\n\
- lsls r5, 2\n\
- ldr r1, =gSprites\n\
- adds r5, r1\n\
- ldrh r2, [r5, 0x4]\n\
- lsls r1, r2, 22\n\
- lsrs r1, 22\n\
- adds r1, 0x40\n\
- ldr r3, =0x000003ff\n\
- adds r0, r3, 0\n\
- ands r1, r0\n\
- ldr r0, =0xfffffc00\n\
- ands r0, r2\n\
- orrs r0, r1\n\
- strh r0, [r5, 0x4]\n\
- movs r4, 0xC0\n\
- lsls r4, 19\n\
- ldrb r0, [r6]\n\
- lsls r3, r0, 2\n\
- adds r3, r0\n\
- lsls r3, 6\n\
- ldr r0, =0x0600e026\n\
- adds r3, r0\n\
- ldr r7, =gContestResources\n\
- ldr r0, [r7]\n\
- ldr r0, [r0, 0x34]\n\
- str r0, [sp]\n\
- movs r0, 0\n\
- movs r1, 0x3\n\
- adds r2, r4, 0\n\
- bl CopySpriteTiles\n\
- ldrb r0, [r6]\n\
- lsls r3, r0, 2\n\
- adds r3, r0\n\
- lsls r3, 6\n\
- ldr r1, =0x0600e036\n\
- adds r3, r1\n\
- ldr r0, [r7]\n\
- ldr r0, [r0, 0x38]\n\
- str r0, [sp]\n\
- movs r0, 0\n\
- movs r1, 0x3\n\
- adds r2, r4, 0\n\
- bl CopySpriteTiles\n\
- movs r4, 0\n\
- str r4, [sp, 0x4]\n\
- ldr r0, [r7]\n\
- ldr r1, [r0, 0x34]\n\
- movs r6, 0xA0\n\
- lsls r6, 3\n\
- adds r1, r6\n\
- ldr r2, =0x050000c0\n\
- mov r10, r2\n\
- add r0, sp, 0x4\n\
- bl CpuSet\n\
- str r4, [sp, 0x8]\n\
- add r0, sp, 0x8\n\
- ldr r1, [r7]\n\
- ldr r1, [r1, 0x38]\n\
- adds r1, r6\n\
- mov r2, r10\n\
- bl CpuSet\n\
- ldr r0, [r7]\n\
- ldr r0, [r0, 0x34]\n\
- mov r3, r9\n\
- lsls r4, r3, 4\n\
- add r4, r9\n\
- lsls r4, 2\n\
- ldr r1, =gSprites\n\
- adds r4, r1\n\
- ldrh r1, [r4, 0x4]\n\
- lsls r1, 22\n\
- lsrs r1, 17\n\
- ldr r6, =0x06010000\n\
- adds r1, r6\n\
- movs r2, 0x80\n\
- lsls r2, 4\n\
- mov r10, r2\n\
- movs r3, 0x1\n\
- bl RequestDma3Copy\n\
- ldr r0, [r7]\n\
- ldr r0, [r0, 0x38]\n\
- ldrh r1, [r5, 0x4]\n\
- lsls r1, 22\n\
- lsrs r1, 17\n\
- adds r1, r6\n\
- mov r2, r10\n\
- movs r3, 0x1\n\
- bl RequestDma3Copy\n\
- mov r3, r8\n\
- strh r3, [r4, 0x2E]\n\
- mov r0, r9\n\
- strh r0, [r5, 0x2E]\n\
- mov r1, sp\n\
- ldrh r1, [r1, 0xC]\n\
- strh r1, [r4, 0x30]\n\
- mov r2, sp\n\
- ldrh r2, [r2, 0xC]\n\
- strh r2, [r5, 0x30]\n\
- mov r0, r9\n\
- add sp, 0x10\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r1}\n\
- bx r1\n\
- .pool\n\
- .syntax divided\n");
-}
-#endif
-
-void sub_80DCB78(u8 spriteId)
+ spriteId1 = CreateSprite(&gSpriteTemplate_858998C[a], 184, x, 29);
+ spriteId2 = CreateSprite(&gSpriteTemplate_858998C[a], 248, x, 29);
+ gSprites[spriteId2].oam.tileNum += 64;
+
+ CopySpriteTiles(0,
+ 3,
+ (void *)VRAM,
+ (u16 *)(VRAM + 0xE000 + gUnknown_02039F26[a] * 5 * 64 + 0x26),
+ gContestResources->field_34);
+
+ CopySpriteTiles(0,
+ 3, (void *)VRAM,
+ (u16 *)(VRAM + 0xE000 + gUnknown_02039F26[a] * 5 * 64 + 0x36),
+ gContestResources->field_38);
+
+ CpuFill32(0, gContestResources->field_34 + 0x500, 0x300);
+ CpuFill32(0, gContestResources->field_38 + 0x500, 0x300);
+
+ RequestDma3Copy(gContestResources->field_34,
+ (u8 *)(VRAM + 0x10000 + gSprites[spriteId1].oam.tileNum * 32),
+ 0x800,
+ 1);
+
+ RequestDma3Copy(gContestResources->field_38,
+ (u8 *)(VRAM + 0x10000 + gSprites[spriteId2].oam.tileNum * 32),
+ 0x800,
+ 1);
+
+ gSprites[spriteId1].data[0] = spriteId2;
+ gSprites[spriteId2].data[0] = spriteId1;
+
+ gSprites[spriteId1].data[1] = a;
+ gSprites[spriteId2].data[1] = a;
+
+ return spriteId1;
+}
+
+static void sub_80DCB78(u8 spriteId)
{
u8 spriteId2 = gSprites[spriteId].data[0];
@@ -3715,19 +3365,19 @@ void sub_80DCB78(u8 spriteId)
DestroySpriteAndFreeResources(&gSprites[spriteId]);
}
-void sub_80DCBB4(void)
+static void sub_80DCBB4(void)
{
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND);
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(7, 9));
}
-void sub_80DCBD0(void)
+static void sub_80DCBD0(void)
{
SetGpuReg(REG_OFFSET_BLDCNT, 0);
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
}
-void sub_80DCBE8(u8 a, bool8 b)
+static void sub_80DCBE8(u8 a, bool8 b)
{
u8 r5;
@@ -3744,7 +3394,7 @@ void sub_80DCBE8(u8 a, bool8 b)
PlaySE(SE_PC_LOGIN);
}
-void sub_80DCC84(struct Sprite *sprite)
+static void sub_80DCC84(struct Sprite *sprite)
{
if (sprite->affineAnimEnded)
{
@@ -3759,20 +3409,20 @@ void sub_80DCC84(struct Sprite *sprite)
}
}
-void sub_80DCCD8(struct Sprite *sprite)
+static void sub_80DCCD8(struct Sprite *sprite)
{
gContestResources->field_14[sprite->data[1]].unk2_1 = 0;
sub_80DCB78(sprite->data[0]);
sub_80DCBD0();
}
-void sub_80DCD08(void)
+static void sub_80DCD08(void)
{
if(gHeap[0x1A000] == 1)
gHeap[0x1A000] = 0;
else
gHeap[0x1A000] = 1;
-
+
if(gHeap[0x1A000] == 0)
{
sub_80DAEA4();
@@ -3784,191 +3434,55 @@ void sub_80DCD08(void)
}
}
-#ifdef NONMATCHING
-void sub_80DCD48(void)
+static void sub_80DCD48(void)
{
- u8 r5 = 0;
- u8 sp8[8];
+ u8 i;
+ s16 value;
+ u8 *txtPtr;
+ u8 text[8];
- if (gUnknown_020322D5 != 0)
- {
- u8 i;
- s16 r2;
+ if (gUnknown_020322D5 == 0)
+ return;
-
+ switch (gHeap[0x1A000])
+ {
+ case 0:
+ break;
+ case 2:
+ case 3:
+ sub_80DF750();
+ break;
+ default:
+ for (i = 0; i < 4; i++)
+ FillWindowPixelBuffer(i, 0);
for (i = 0; i < 4; i++)
{
- r2 = sContestantStatus[i].unk4;
- if (r2 < 0)
+ value = sContestantStatus[i].unk4;
+ txtPtr = text;
+ if (sContestantStatus[i].unk4 < 0)
{
- r2 = -r2;
- sp8[0] = CHAR_HYPHEN;
- r5++;
+ value *= -1;
+ txtPtr = StringCopy(txtPtr, gText_OneDash);
}
- ConvertIntToDecimalStringN(sp8 + r5, r2, 0, 4);
- Text_InitWindowAndPrintText(
- &gUnknown_03004210,
- sp8,
- 592 + gUnknown_02039F26[i] * 22,
- gUnknown_083CA310[gUnknown_02039F26[i]][0],
- gUnknown_083CA310[gUnknown_02039F26[i]][1]);
- r5 = 0;
+ ConvertIntToDecimalStringN(txtPtr, value, STR_CONV_MODE_LEFT_ALIGN, 4);
+ Contest_PrintTextToBg0WindowAt(gUnknown_02039F26[i], text, 55, 1, 7);
}
for (i = 0; i < 4; i++)
{
- r2 = sContestantStatus[i].appeal2;
- if (r2 < 0)
+ value = sContestantStatus[i].appeal2;
+ txtPtr = text;
+ if (sContestantStatus[i].appeal2 < 0)
{
- r2 = -r2;
- sp8[0] = CHAR_HYPHEN;
- r5++;
+ value *= -1;
+ txtPtr = StringCopy(txtPtr, gText_OneDash);
}
- ConvertIntToDecimalStringN(sp8 + r5, r2, 0, 4);
- Text_InitWindowAndPrintText(
- &gUnknown_03004210,
- sp8,
- 512 + gUnknown_02039F26[i] * 20,
- gUnknown_083CA308[gUnknown_02039F26[i]][0],
- gUnknown_083CA308[gUnknown_02039F26[i]][1]);
- r5 = 0;
- }
- sub_80AEB30();
- }
-}
-#else
-NAKED
-void sub_80DCD48(void)
-{
- asm(".syntax unified\n\
- push {r4,r5,lr}\n\
- sub sp, 0xC\n\
- ldr r0, =gUnknown_020322D5\n\
- ldrb r0, [r0]\n\
- cmp r0, 0\n\
- beq _080DCE44\n\
- ldr r0, =gHeap\n\
- movs r1, 0xD0\n\
- lsls r1, 9\n\
- adds r0, r1\n\
- ldrb r0, [r0]\n\
- cmp r0, 0\n\
- beq _080DCE44\n\
- cmp r0, 0\n\
- blt _080DCD7C\n\
- cmp r0, 0x3\n\
- bgt _080DCD7C\n\
- cmp r0, 0x2\n\
- blt _080DCD7C\n\
- bl sub_80DF750\n\
- b _080DCE44\n\
- .pool\n\
-_080DCD7C:\n\
- movs r5, 0\n\
-_080DCD7E:\n\
- adds r0, r5, 0\n\
- movs r1, 0\n\
- bl FillWindowPixelBuffer\n\
- adds r0, r5, 0x1\n\
- lsls r0, 24\n\
- lsrs r5, r0, 24\n\
- cmp r5, 0x3\n\
- bls _080DCD7E\n\
- movs r5, 0\n\
-_080DCD92:\n\
- ldr r0, =gContestResources\n\
- ldr r0, [r0]\n\
- ldr r1, [r0, 0x4]\n\
- lsls r0, r5, 3\n\
- subs r0, r5\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- add r2, sp, 0x4\n\
- ldrh r4, [r0, 0x4]\n\
- movs r1, 0x4\n\
- ldrsh r0, [r0, r1]\n\
- cmp r0, 0\n\
- bge _080DCDBC\n\
- negs r0, r0\n\
- lsls r0, 16\n\
- lsrs r4, r0, 16\n\
- adds r0, r2, 0\n\
- ldr r1, =gText_OneDash\n\
- bl StringCopy\n\
- adds r2, r0, 0\n\
-_080DCDBC:\n\
- lsls r1, r4, 16\n\
- asrs r1, 16\n\
- adds r0, r2, 0\n\
- movs r2, 0\n\
- movs r3, 0x4\n\
- bl ConvertIntToDecimalStringN\n\
- ldr r0, =gUnknown_02039F26\n\
- adds r0, r5, r0\n\
- ldrb r0, [r0]\n\
- movs r1, 0x7\n\
- str r1, [sp]\n\
- add r1, sp, 0x4\n\
- movs r2, 0x37\n\
- movs r3, 0x1\n\
- bl Contest_PrintTextToBg0WindowAt\n\
- adds r0, r5, 0x1\n\
- lsls r0, 24\n\
- lsrs r5, r0, 24\n\
- cmp r5, 0x3\n\
- bls _080DCD92\n\
- movs r5, 0\n\
-_080DCDEA:\n\
- ldr r0, =gContestResources\n\
- ldr r0, [r0]\n\
- ldr r1, [r0, 0x4]\n\
- lsls r0, r5, 3\n\
- subs r0, r5\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- add r2, sp, 0x4\n\
- ldrh r4, [r0, 0x2]\n\
- movs r1, 0x2\n\
- ldrsh r0, [r0, r1]\n\
- cmp r0, 0\n\
- bge _080DCE14\n\
- negs r0, r0\n\
- lsls r0, 16\n\
- lsrs r4, r0, 16\n\
- adds r0, r2, 0\n\
- ldr r1, =gText_OneDash\n\
- bl StringCopy\n\
- adds r2, r0, 0\n\
-_080DCE14:\n\
- lsls r1, r4, 16\n\
- asrs r1, 16\n\
- adds r0, r2, 0\n\
- movs r2, 0\n\
- movs r3, 0x4\n\
- bl ConvertIntToDecimalStringN\n\
- ldr r0, =gUnknown_02039F26\n\
- adds r0, r5, r0\n\
- ldrb r0, [r0]\n\
- movs r1, 0x7\n\
- str r1, [sp]\n\
- add r1, sp, 0x4\n\
- movs r2, 0x5\n\
- movs r3, 0x1\n\
- bl Contest_PrintTextToBg0WindowAt\n\
- adds r0, r5, 0x1\n\
- lsls r0, 24\n\
- lsrs r5, r0, 24\n\
- cmp r5, 0x3\n\
- bls _080DCDEA\n\
- bl sub_80DB2BC\n\
-_080DCE44:\n\
- add sp, 0xC\n\
- pop {r4,r5}\n\
- pop {r0}\n\
- bx r0\n\
- .pool\n\
- .syntax divided\n");
-}
-#endif
+ ConvertIntToDecimalStringN(txtPtr, value, STR_CONV_MODE_LEFT_ALIGN, 4);
+ Contest_PrintTextToBg0WindowAt(gUnknown_02039F26[i], text, 5, 1, 7);
+ }
+ sub_80DB2BC();
+ break;
+ }
+}
void sub_80DCE58(u8 a)
{
@@ -4051,7 +3565,7 @@ void sub_80DCE58(u8 a)
}
}
-void sub_80DD04C(void)
+static void sub_80DD04C(void)
{
s32 i;
@@ -4062,550 +3576,122 @@ void sub_80DD04C(void)
sub_80DAEA4();
}
-#ifdef NONMATCHING
-void sub_80DD080(u8 contestant)
+static void sub_80DD080(u8 contestant)
{
+ u16 move;
+ u8 effect;
+ u8 rnd;
bool8 r8;
s32 i;
sContestantStatus[contestant].appeal2 = 0;
sContestantStatus[contestant].appeal1 = 0;
r8 = sub_80DBA68(contestant);
- if (r8)
+ if (!r8)
+ return;
+
+ move = sContestantStatus[contestant].currMove;
+ effect = gContestMoves[move].effect;
+
+ sContestantStatus[contestant].moveCategory = gContestMoves[sContestantStatus[contestant].currMove].contestCategory;
+ if (sContestantStatus[contestant].currMove == sContestantStatus[contestant].prevMove && sContestantStatus[contestant].currMove != MOVE_NONE)
{
- u16 move = sContestantStatus[contestant].currMove;
- u8 effect = gContestMoves[move].effect;
- u8 rnd;
+ sContestantStatus[contestant].disappointedRepeat = TRUE;
+ sContestantStatus[contestant].moveRepeatCount++;
+ }
+ else
+ {
+ sContestantStatus[contestant].moveRepeatCount = 0;
+ }
+ sContestantStatus[contestant].appeal1 = gContestEffects[effect].appeal;
+ sContestantStatus[contestant].appeal2 = sContestantStatus[contestant].appeal1;
+ shared192D0.jam = gContestEffects[effect].jam;
+ shared192D0.jam2 = shared192D0.jam;
- sContestantStatus[contestant].moveCategory = gContestMoves[sContestantStatus[contestant].currMove].contestCategory;
- if (sContestantStatus[contestant].currMove == sContestantStatus[contestant].prevMove && sContestantStatus[contestant].currMove != MOVE_NONE)
+ 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))
+ 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_80DE1E8(contestant))
+ {
+ u8 r2 = AreMovesContestCombo(sContestantStatus[contestant].prevMove, sContestantStatus[contestant].currMove);
+
+ if (r2 != 0 && sContestantStatus[contestant].hasJudgesAttention)
{
- sContestantStatus[contestant].disappointedRepeat = TRUE;
- sContestantStatus[contestant].moveRepeatCount++;
+ 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
{
- sContestantStatus[contestant].moveRepeatCount = 0;
- }
- sContestantStatus[contestant].appeal1 = gContestEffects[effect].appeal;
- sContestantStatus[contestant].appeal2 = gContestEffects[effect].appeal;
- shared192D0.jam = gContestEffects[effect].jam;
- shared192D0.jam2 = shared192D0.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;
- sContestantStatus[contestant].appeal2 += sContestantStatus[contestant].condition;
- 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;
-
-
- sContestantStatus[contestant].unk16 = 0;
- sContestantStatus[contestant].unk15_6 = 0;
- if (sub_80DE1E8(contestant))
- {
- u8 r2 = AreMovesContestCombo(sContestantStatus[contestant].prevMove, sContestantStatus[contestant].currMove);
-
- if (r2 != 0 && sContestantStatus[contestant].hasJudgesAttention)
+ if (gContestMoves[sContestantStatus[contestant].currMove].comboStarterId != 0)
{
- sContestantStatus[contestant].unk16 = r2;
+ sContestantStatus[contestant].hasJudgesAttention = 1;
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;
- }
+ 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;
- }
+ }
+ 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 = 0;
- }
+ shared19328.unk2 = 10;
+ }
+ else
+ {
+ shared19328.unk2 = 0;
+ }
- rnd = Random() % 3;
- for (i = 0; i < 4; i++)
+ rnd = Random() % 3;
+ for (i = 0; i < 4; i++)
+ {
+ if (i != contestant)
{
- if (i != contestant)
- {
- if (rnd == 0)
- break;
- rnd--;
- }
+ if (rnd == 0)
+ break;
+ rnd--;
}
- sContestantStatus[contestant].unk1B = i;
- }
-}
-
-#else
-NAKED
-void sub_80DD080(u8 contestant)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r9\n\
- mov r6, r8\n\
- push {r6,r7}\n\
- lsls r0, 24\n\
- lsrs r6, r0, 24\n\
- ldr r4, =gContestResources\n\
- ldr r3, [r4]\n\
- ldr r1, [r3, 0x4]\n\
- lsls r7, r6, 3\n\
- subs r0, r7, r6\n\
- lsls r5, r0, 2\n\
- adds r1, r5, r1\n\
- movs r2, 0\n\
- strh r2, [r1, 0x2]\n\
- ldr r0, [r3, 0x4]\n\
- adds r0, r5, r0\n\
- strh r2, [r0]\n\
- adds r0, r6, 0\n\
- bl sub_80DBA68\n\
- lsls r0, 24\n\
- mov r8, r4\n\
- cmp r0, 0\n\
- bne _080DD0B4\n\
- b _080DD3C4\n\
-_080DD0B4:\n\
- ldr r0, [r4]\n\
- ldr r1, [r0, 0x4]\n\
- adds r1, r5, r1\n\
- ldrh r0, [r1, 0x6]\n\
- ldr r2, =gContestMoves\n\
- lsls r0, 3\n\
- adds r0, r2\n\
- ldrb r2, [r0]\n\
- mov r9, r2\n\
- ldrb r0, [r0, 0x1]\n\
- lsls r0, 29\n\
- lsrs r0, 29\n\
- strb r0, [r1, 0xA]\n\
- ldr r0, [r4]\n\
- ldr r0, [r0, 0x4]\n\
- adds r2, r5, r0\n\
- ldrh r0, [r2, 0x6]\n\
- ldrh r1, [r2, 0x8]\n\
- cmp r0, r1\n\
- bne _080DD110\n\
- cmp r0, 0\n\
- beq _080DD110\n\
- ldrb r0, [r2, 0x15]\n\
- movs r1, 0x1\n\
- orrs r0, r1\n\
- strb r0, [r2, 0x15]\n\
- ldr r0, [r4]\n\
- ldr r2, [r0, 0x4]\n\
- adds r2, r5, r2\n\
- ldrb r3, [r2, 0xB]\n\
- lsls r1, r3, 25\n\
- lsrs r1, 29\n\
- adds r1, 0x1\n\
- movs r0, 0x7\n\
- ands r1, r0\n\
- lsls r1, 4\n\
- movs r0, 0x71\n\
- negs r0, r0\n\
- ands r0, r3\n\
- orrs r0, r1\n\
- strb r0, [r2, 0xB]\n\
- b _080DD12C\n\
- .pool\n\
-_080DD110:\n\
- ldr r4, =gContestResources\n\
- ldr r0, [r4]\n\
- ldr r0, [r0, 0x4]\n\
- lsls r3, r6, 3\n\
- subs r1, r3, r6\n\
- lsls r1, 2\n\
- adds r1, r0\n\
- ldrb r2, [r1, 0xB]\n\
- movs r0, 0x71\n\
- negs r0, r0\n\
- ands r0, r2\n\
- strb r0, [r1, 0xB]\n\
- mov r8, r4\n\
- adds r7, r3, 0\n\
-_080DD12C:\n\
- mov r2, r8\n\
- ldr r4, [r2]\n\
- ldr r2, [r4, 0x4]\n\
- subs r0, r7, r6\n\
- lsls r0, 2\n\
- adds r2, r0, r2\n\
- ldr r3, =gContestEffects\n\
- mov r1, r9\n\
- lsls r5, r1, 2\n\
- adds r3, r5, r3\n\
- ldrb r1, [r3, 0x1]\n\
- strh r1, [r2]\n\
- ldr r1, [r4, 0x4]\n\
- adds r0, r1\n\
- ldrh r1, [r0]\n\
- strh r1, [r0, 0x2]\n\
- ldr r1, [r4, 0x8]\n\
- ldrb r0, [r3, 0x2]\n\
- strh r0, [r1, 0x4]\n\
- ldr r1, [r4, 0x8]\n\
- ldrh r0, [r1, 0x4]\n\
- strh r0, [r1, 0x6]\n\
- ldr r0, [r4, 0x8]\n\
- strb r6, [r0, 0x11]\n\
- movs r2, 0\n\
- mov r9, r5\n\
- mov r4, r8\n\
- movs r3, 0\n\
- movs r1, 0\n\
-_080DD166:\n\
- ldr r0, [r4]\n\
- ldr r0, [r0, 0x4]\n\
- adds r0, r1, r0\n\
- strb r3, [r0, 0xE]\n\
- ldr r0, [r4]\n\
- ldr r0, [r0, 0x8]\n\
- adds r0, 0xD\n\
- adds r0, r2\n\
- strb r3, [r0]\n\
- adds r1, 0x1C\n\
- adds r2, 0x1\n\
- cmp r2, 0x3\n\
- ble _080DD166\n\
- ldr r5, =gContestResources\n\
- ldr r0, [r5]\n\
- ldr r1, [r0, 0x4]\n\
- subs r0, r7, r6\n\
- lsls r4, r0, 2\n\
- adds r2, r4, r1\n\
- ldrb r1, [r2, 0x15]\n\
- movs r0, 0x10\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080DD1B4\n\
- ldrh r0, [r2, 0x8]\n\
- ldrh r1, [r2, 0x6]\n\
- bl AreMovesContestCombo\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- bne _080DD1B4\n\
- ldr r0, [r5]\n\
- ldr r1, [r0, 0x4]\n\
- adds r1, r4, r1\n\
- ldrb r2, [r1, 0x15]\n\
- movs r0, 0x11\n\
- negs r0, r0\n\
- ands r0, r2\n\
- strb r0, [r1, 0x15]\n\
-_080DD1B4:\n\
- ldr r0, =gContestEffectFuncs\n\
- add r0, r9\n\
- ldr r0, [r0]\n\
- bl _call_via_r0\n\
- ldr r0, =gContestResources\n\
- ldr r0, [r0]\n\
- ldr r1, [r0, 0x4]\n\
- subs r0, r7, r6\n\
- lsls r0, 2\n\
- adds r2, r0, r1\n\
- ldrb r1, [r2, 0x10]\n\
- movs r0, 0x30\n\
- ands r0, r1\n\
- cmp r0, 0x10\n\
- bne _080DD1EC\n\
- ldrh r1, [r2, 0x2]\n\
- subs r1, 0xA\n\
- movs r0, 0xD\n\
- ldrsb r0, [r2, r0]\n\
- b _080DD206\n\
- .pool\n\
-_080DD1EC:\n\
- ldrb r1, [r2, 0x11]\n\
- movs r0, 0x20\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080DD200\n\
- movs r1, 0xD\n\
- ldrsb r1, [r2, r1]\n\
- lsls r0, r1, 1\n\
- adds r0, r1\n\
- b _080DD204\n\
-_080DD200:\n\
- movs r0, 0xD\n\
- ldrsb r0, [r2, r0]\n\
-_080DD204:\n\
- ldrh r1, [r2, 0x2]\n\
-_080DD206:\n\
- adds r0, r1\n\
- strh r0, [r2, 0x2]\n\
- ldr r5, =gContestResources\n\
- ldr r0, [r5]\n\
- ldr r1, [r0, 0x4]\n\
- subs r0, r7, r6\n\
- lsls r4, r0, 2\n\
- adds r1, r4, r1\n\
- movs r0, 0\n\
- strb r0, [r1, 0x16]\n\
- ldr r0, [r5]\n\
- ldr r1, [r0, 0x4]\n\
- adds r1, r4, r1\n\
- ldrb r2, [r1, 0x15]\n\
- movs r0, 0x41\n\
- negs r0, r0\n\
- ands r0, r2\n\
- strb r0, [r1, 0x15]\n\
- adds r0, r6, 0\n\
- bl sub_80DE1E8\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- beq _080DD2E2\n\
- ldr r0, [r5]\n\
- ldr r1, [r0, 0x4]\n\
- adds r1, r4, r1\n\
- ldrh r0, [r1, 0x8]\n\
- ldrh r1, [r1, 0x6]\n\
- bl AreMovesContestCombo\n\
- lsls r0, 24\n\
- lsrs r3, r0, 24\n\
- cmp r3, 0\n\
- beq _080DD29C\n\
- ldr r0, [r5]\n\
- ldr r0, [r0, 0x4]\n\
- adds r2, r4, r0\n\
- ldrb r1, [r2, 0x15]\n\
- movs r0, 0x10\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080DD29C\n\
- strb r3, [r2, 0x16]\n\
- ldr r0, [r5]\n\
- ldr r1, [r0, 0x4]\n\
- adds r1, r4, r1\n\
- ldrb r0, [r1, 0x15]\n\
- movs r2, 0x40\n\
- orrs r0, r2\n\
- strb r0, [r1, 0x15]\n\
- ldr r0, [r5]\n\
- ldr r1, [r0, 0x4]\n\
- adds r1, r4, r1\n\
- ldrb r2, [r1, 0x15]\n\
- movs r0, 0x11\n\
- negs r0, r0\n\
- ands r0, r2\n\
- strb r0, [r1, 0x15]\n\
- ldr r0, [r5]\n\
- ldr r0, [r0, 0x4]\n\
- adds r0, r4, r0\n\
- movs r1, 0\n\
- ldrsh r2, [r0, r1]\n\
- ldrb r1, [r0, 0x16]\n\
- muls r1, r2\n\
- strb r1, [r0, 0x17]\n\
- ldr r0, [r5]\n\
- ldr r1, [r0, 0x4]\n\
- adds r1, r4, r1\n\
- ldrb r0, [r1, 0x15]\n\
- movs r2, 0x8\n\
- b _080DD2C8\n\
- .pool\n\
-_080DD29C:\n\
- ldr r2, =gContestMoves\n\
- ldr r5, =gContestResources\n\
- ldr r0, [r5]\n\
- ldr r1, [r0, 0x4]\n\
- subs r0, r7, r6\n\
- lsls r4, r0, 2\n\
- adds r3, r4, r1\n\
- ldrh r0, [r3, 0x6]\n\
- lsls r0, 3\n\
- adds r0, r2\n\
- ldrb r0, [r0, 0x2]\n\
- cmp r0, 0\n\
- beq _080DD2D8\n\
- ldrb r0, [r3, 0x15]\n\
- movs r1, 0x10\n\
- orrs r0, r1\n\
- strb r0, [r3, 0x15]\n\
- ldr r0, [r5]\n\
- ldr r1, [r0, 0x4]\n\
- adds r1, r4, r1\n\
- ldrb r0, [r1, 0x15]\n\
- movs r2, 0x40\n\
-_080DD2C8:\n\
- orrs r0, r2\n\
- strb r0, [r1, 0x15]\n\
- b _080DD2E2\n\
- .pool\n\
-_080DD2D8:\n\
- ldrb r1, [r3, 0x15]\n\
- movs r0, 0x11\n\
- negs r0, r0\n\
- ands r0, r1\n\
- strb r0, [r3, 0x15]\n\
-_080DD2E2:\n\
- ldr r5, =gContestResources\n\
- ldr r0, [r5]\n\
- ldr r1, [r0, 0x4]\n\
- subs r0, r7, r6\n\
- lsls r4, r0, 2\n\
- adds r2, r4, r1\n\
- ldrb r1, [r2, 0x15]\n\
- movs r0, 0x1\n\
- mov r8, r0\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080DD30A\n\
- ldrb r0, [r2, 0xB]\n\
- lsls r0, 25\n\
- lsrs r0, 29\n\
- adds r0, 0x1\n\
- lsls r1, r0, 2\n\
- adds r1, r0\n\
- lsls r1, 1\n\
- strb r1, [r2, 0x18]\n\
-_080DD30A:\n\
- ldr r0, [r5]\n\
- ldr r0, [r0, 0x4]\n\
- adds r2, r4, r0\n\
- ldrb r1, [r2, 0xC]\n\
- mov r0, r8\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080DD334\n\
- ldrb r1, [r2, 0x15]\n\
- movs r0, 0x11\n\
- negs r0, r0\n\
- ands r0, r1\n\
- strb r0, [r2, 0x15]\n\
- ldr r2, [r5]\n\
- ldr r0, [r2, 0x4]\n\
- adds r0, r4, r0\n\
- movs r1, 0\n\
- strh r1, [r0, 0x2]\n\
- ldr r0, [r2, 0x4]\n\
- adds r0, r4, r0\n\
- strh r1, [r0]\n\
-_080DD334:\n\
- ldr r0, [r5]\n\
- ldr r0, [r0, 0x4]\n\
- adds r0, r4, r0\n\
- ldrh r0, [r0, 0x6]\n\
- bl Contest_GetMoveExcitement\n\
- ldr r1, [r5]\n\
- ldr r1, [r1, 0x10]\n\
- strb r0, [r1]\n\
- ldr r2, [r5]\n\
- ldr r0, [r2, 0x4]\n\
- adds r0, r4, r0\n\
- ldrb r1, [r0, 0x11]\n\
- movs r0, 0x10\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080DD35C\n\
- ldr r0, [r2, 0x10]\n\
- mov r1, r8\n\
- strb r1, [r0]\n\
-_080DD35C:\n\
- ldr r1, [r5]\n\
- ldr r3, [r1, 0x10]\n\
- movs r0, 0\n\
- ldrsb r0, [r3, r0]\n\
- cmp r0, 0\n\
- ble _080DD388\n\
- ldr r0, [r1]\n\
- ldrb r0, [r0, 0x13]\n\
- lsls r0, 24\n\
- asrs r0, 24\n\
- movs r1, 0\n\
- ldrsb r1, [r3, r1]\n\
- adds r0, r1\n\
- cmp r0, 0x4\n\
- ble _080DD384\n\
- movs r0, 0x3C\n\
- b _080DD38A\n\
- .pool\n\
-_080DD384:\n\
- movs r0, 0xA\n\
- b _080DD38A\n\
-_080DD388:\n\
- movs r0, 0\n\
-_080DD38A:\n\
- strb r0, [r3, 0x2]\n\
- bl Random\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- movs r1, 0x3\n\
- bl __umodsi3\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- movs r2, 0\n\
- b _080DD3AE\n\
-_080DD3A2:\n\
- subs r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
-_080DD3A8:\n\
- adds r2, 0x1\n\
- cmp r2, 0x3\n\
- bgt _080DD3B6\n\
-_080DD3AE:\n\
- cmp r2, r6\n\
- beq _080DD3A8\n\
- cmp r0, 0\n\
- bne _080DD3A2\n\
-_080DD3B6:\n\
- ldr r0, =gContestResources\n\
- ldr r0, [r0]\n\
- ldr r1, [r0, 0x4]\n\
- subs r0, r7, r6\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- strb r2, [r0, 0x1B]\n\
-_080DD3C4:\n\
- pop {r3,r4}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .pool\n\
- .syntax divided\n");
-}
-#endif
+ }
+ sContestantStatus[contestant].unk1B = i;
+}
void SetContestantEffectStringID(u8 a, u8 b)
{
@@ -4631,7 +3717,7 @@ void SetStartledString(u8 contestant, u8 jam)
SetContestantEffectStringID(contestant, CONTEST_STRING_LOOKED_DOWN);
}
-void sub_80DD45C(u8 contestant, u8 stringId)
+static void sub_80DD45C(u8 contestant, u8 stringId)
{
StringCopy(gStringVar1, gContestMons[contestant].nickname);
StringCopy(gStringVar2, gMoveNames[sContestantStatus[contestant].currMove]);
@@ -4656,7 +3742,7 @@ void MakeContestantNervous(u8 p)
sContestantStatus[p].currMove = MOVE_NONE;
}
-void sub_80DD590(void)
+static void sub_80DD590(void)
{
u8 r12 = 0;
s32 i;
@@ -4712,7 +3798,7 @@ void sub_80DD590(void)
}
}
-void sub_80DD6DC(struct Sprite *sprite)
+static void sub_80DD6DC(struct Sprite *sprite)
{
if (sprite->data[1]++ > 84)
{
@@ -4723,7 +3809,7 @@ void sub_80DD6DC(struct Sprite *sprite)
}
}
-void sub_80DD720(u8 a)
+static void sub_80DD720(u8 a)
{
u8 spriteId = sContest.unk19216;
@@ -4770,7 +3856,7 @@ void sub_80DD720(u8 a)
sContest.unk1920A_4 = 1;
}
-void sub_80DD940(void)
+static void sub_80DD940(void)
{
s32 i;
@@ -4782,9 +3868,9 @@ void sub_80DD940(void)
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);
-
+ 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_80DDA20();
}
@@ -4795,7 +3881,7 @@ s8 Contest_GetMoveExcitement(u16 move)
return gContestExcitementTable[gSpecialVar_ContestCategory][gContestMoves[move].contestCategory];
}
-u8 sub_80DDA20(void)
+static u8 sub_80DDA20(void)
{
u8 taskId = CreateTask(c3_08130B10, 10);
@@ -4804,7 +3890,7 @@ u8 sub_80DDA20(void)
return taskId;
}
-void c3_08130B10(u8 taskId)
+static void c3_08130B10(u8 taskId)
{
if (++gTasks[taskId].data[0] == 1)
{
@@ -4826,7 +3912,7 @@ void c3_08130B10(u8 taskId)
}
}
-void sub_80DDB0C(void)
+static void sub_80DDB0C(void)
{
CreateTask(sub_80DDB6C, 10);
gSprites[sContest.applauseMeterSpriteId].pos2.x = -70;
@@ -4834,7 +3920,7 @@ void sub_80DDB0C(void)
sContest.unk1920A_6 = 1;
}
-void sub_80DDB6C(u8 taskId)
+static void sub_80DDB6C(u8 taskId)
{
struct Sprite *sprite = &gSprites[sContest.applauseMeterSpriteId];
@@ -4850,7 +3936,7 @@ void sub_80DDB6C(u8 taskId)
}
}
-void sub_80DDBE8(void)
+static void sub_80DDBE8(void)
{
if (gSprites[sContest.applauseMeterSpriteId].invisible == TRUE)
{
@@ -4864,7 +3950,7 @@ void sub_80DDBE8(void)
}
}
-void task08_080CD1CC(u8 taskId)
+static void task08_080CD1CC(u8 taskId)
{
struct Sprite *sprite = &gSprites[sContest.applauseMeterSpriteId];
@@ -4881,7 +3967,7 @@ void task08_080CD1CC(u8 taskId)
}
}
-void sub_80DDCDC(s8 a)
+static void sub_80DDCDC(s8 a)
{
u8 taskId = CreateTask(sub_80DDD20, 5);
@@ -4889,7 +3975,7 @@ void sub_80DDCDC(s8 a)
sContest.unk1920A_5 = 1;
}
-void sub_80DDD20(u8 taskId)
+static void sub_80DDD20(u8 taskId)
{
switch (gTasks[taskId].data[10])
{
@@ -4926,13 +4012,13 @@ void unref_sub_80DDDE4(void)
gSprites[sContest.applauseMeterSpriteId].invisible = TRUE;
}
-void sub_80DDE0C(void)
+static void sub_80DDE0C(void)
{
CreateTask(sub_80DDE30, 15);
sContest.unk1920A_7 = 1;
}
-void sub_80DDE30(u8 taskId)
+static void sub_80DDE30(u8 taskId)
{
if (gTasks[taskId].data[10]++ > 6)
{
@@ -4960,7 +4046,7 @@ void sub_80DDE30(u8 taskId)
#define tBlendColor data[0]
#define tBlendCoeff data[1]
-void sub_80DDED0(s8 a, s8 b)
+static void sub_80DDED0(s8 a, s8 b)
{
u8 taskId = CreateTask(sub_80DDF80, 10);
u16 blendColor;
@@ -5002,7 +4088,7 @@ void sub_80DDED0(s8 a, s8 b)
sContest.unk1920B_0 = 0;
}
-void sub_80DDF80(u8 taskId)
+static void sub_80DDF80(u8 taskId)
{
if (gTasks[taskId].data[10]++ >= 0)
{
@@ -5024,7 +4110,7 @@ void sub_80DDF80(u8 taskId)
#undef tBlendColor
#undef tBlendCoeff
-void sub_80DE008(bool8 a)
+static void sub_80DE008(bool8 a)
{
s32 i;
@@ -5043,7 +4129,7 @@ void sub_80DE008(bool8 a)
}
}
-const u8 *GetTurnOrderNumberGfx(u8 contestant)
+static const u8 *GetTurnOrderNumberGfx(u8 contestant)
{
if (sContestantStatus[contestant].turnOrderMod != 1)
return gContestNextTurnRandomGfx;
@@ -5051,27 +4137,25 @@ const u8 *GetTurnOrderNumberGfx(u8 contestant)
return gContestNextTurnNumbersGfx + sContestantStatus[contestant].nextTurnOrder * 32;
}
-void sub_80DE12C(void)
+static void sub_80DE12C(void)
{
s32 r7 = 0;
- u32 r10 = 2;
- u32 r8 = 1;
- u32 r9 = 0x11;
-
- for(r7 = 0; r7 < 4; r7++)
- {
- u32 r6;
- u16 var;
- if(shared192D0.unnervedPokes[r7] != 0)
- if(Contest_IsMonsTurnDisabled(r7) == FALSE)
- {
- r6 = gUnknown_02039F26[r7] * 5 + 2;
- var = sub_80DB748(3);
- ContestBG_FillBoxWithIncrementingTile(0, var, 0x14, r6, r10, r8, r9, r8);
- var += 16;
- ContestBG_FillBoxWithIncrementingTile(0, var, 0x14, r6 + 1, r10, r8, r9, r8);
- PlaySE(SE_C_PASI);
- }
+ u8 r10 = 2;
+ u8 r8 = 1;
+ u8 r9 = 0x11;
+
+ for (r7 = 0; r7 < 4; r7++)
+ {
+ if (shared192D0.unnervedPokes[r7] != 0 && !Contest_IsMonsTurnDisabled(r7))
+ {
+ u32 r6 = gUnknown_02039F26[r7] * 5 + 2;
+ u16 var = sub_80DB748(3);
+
+ ContestBG_FillBoxWithIncrementingTile(0, var, 0x14, r6, r10, r8, r9, r8);
+ var += 16;
+ ContestBG_FillBoxWithIncrementingTile(0, var, 0x14, r6 + 1, r10, r8, r9, r8);
+ PlaySE(SE_C_PASI);
+ }
}
}
@@ -5083,242 +4167,58 @@ bool8 sub_80DE1E8(u8 a)
return TRUE;
}
-#ifdef NONMATCHING
-void sub_80DE224(void)
+static void sub_80DE224(void)
{
s32 i;
- u16 bg0Cnt;
- u16 bg1Cnt;
- u16 bg2Cnt;
- u16 var;
+ u16 bg0Cnt, bg1Cnt, bg2Cnt;
bg1Cnt = GetGpuReg(REG_OFFSET_BG1CNT);
- ((struct BgCnt *)&bg1Cnt)->priority = 0;
- ((struct BgCnt *)&bg1Cnt)->screenSize = 2;
- ((struct BgCnt *)&bg1Cnt)->areaOverflowMode = 0;
- ((struct BgCnt *)&bg1Cnt)->charBaseBlock = 0;
-
-
+ ((vBgCnt *)&bg1Cnt)->priority = 0;
+ ((vBgCnt *)&bg1Cnt)->screenSize = 2;
+ ((vBgCnt *)&bg1Cnt)->areaOverflowMode = 0;
+ ((vBgCnt *)&bg1Cnt)->charBaseBlock = 0;
+
SetGpuReg(REG_OFFSET_BG1CNT, bg1Cnt);
-
+
bg0Cnt = GetGpuReg(REG_OFFSET_BG0CNT);
- ((struct BgCnt *)&bg0Cnt)->priority = 0;
-
bg2Cnt = GetGpuReg(REG_OFFSET_BG2CNT);
- ((struct BgCnt *)&bg2Cnt)->priority = 0;
-
+ ((vBgCnt *)&bg0Cnt)->priority = 1;
+ ((vBgCnt *)&bg2Cnt)->priority = 1;
+
SetGpuReg(REG_OFFSET_BG0CNT, bg0Cnt);
SetGpuReg(REG_OFFSET_BG2CNT, bg2Cnt);
-
+
gBattle_BG1_X = DISPLAY_WIDTH;
gBattle_BG1_Y = DISPLAY_HEIGHT;
- SetGpuReg(REG_OFFSET_BG1HOFS, DISPLAY_WIDTH);
- SetGpuReg(REG_OFFSET_BG1VOFS, DISPLAY_HEIGHT);
- var = 0;
-
- CpuSet(&var, &sContest.unk19214, 0x05000400);
-
+ SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
+ SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
+
+ CpuFill32(0, gContestResources->field_24[1], 0x1000);
+
CopyToBgTilemapBuffer(1, gUnknown_08C17980, 0, 0);
Contest_SetBgCopyFlags(1);
-
+
for (i = 0; i < 4; i++)
{
gSprites[gContestResources->field_14[i].unk0].oam.priority = 1;
gSprites[gContestResources->field_14[i].unk1].oam.priority = 1;
}
+}
- /* ((vBgCnt *)&REG_BG1CNT)->priority = 0;
- ((vBgCnt *)&REG_BG1CNT)->screenSize = 1;
- ((vBgCnt *)&REG_BG1CNT)->areaOverflowMode = 0;
-
-
-
- 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; */
-}
-#else
-NAKED
-void sub_80DE224(void)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r8\n\
- push {r7}\n\
- sub sp, 0xC\n\
- movs r0, 0xA\n\
- bl GetGpuReg\n\
- mov r1, sp\n\
- strh r0, [r1]\n\
- mov r2, sp\n\
- ldrb r1, [r2]\n\
- movs r4, 0x4\n\
- negs r4, r4\n\
- adds r0, r4, 0\n\
- ands r0, r1\n\
- strb r0, [r2]\n\
- ldrb r1, [r2, 0x1]\n\
- movs r0, 0x3F\n\
- ands r0, r1\n\
- movs r1, 0x80\n\
- orrs r0, r1\n\
- strb r0, [r2, 0x1]\n\
- ldrb r1, [r2, 0x1]\n\
- movs r0, 0x21\n\
- negs r0, r0\n\
- ands r0, r1\n\
- strb r0, [r2, 0x1]\n\
- ldrb r1, [r2]\n\
- movs r0, 0xD\n\
- negs r0, r0\n\
- mov r8, r0\n\
- ands r0, r1\n\
- strb r0, [r2]\n\
- mov r0, sp\n\
- ldrh r1, [r0]\n\
- movs r0, 0xA\n\
- bl SetGpuReg\n\
- movs r0, 0x8\n\
- bl GetGpuReg\n\
- mov r6, sp\n\
- adds r6, 0x2\n\
- strh r0, [r6]\n\
- movs r0, 0xC\n\
- bl GetGpuReg\n\
- add r5, sp, 0x4\n\
- strh r0, [r5]\n\
- ldrb r1, [r6]\n\
- adds r0, r4, 0\n\
- ands r0, r1\n\
- movs r1, 0x1\n\
- orrs r0, r1\n\
- strb r0, [r6]\n\
- ldrb r0, [r5]\n\
- ands r4, r0\n\
- orrs r4, r1\n\
- strb r4, [r5]\n\
- ldrh r1, [r6]\n\
- movs r0, 0x8\n\
- bl SetGpuReg\n\
- ldrh r1, [r5]\n\
- movs r0, 0xC\n\
- bl SetGpuReg\n\
- ldr r1, =gBattle_BG1_X\n\
- movs r0, 0xF0\n\
- strh r0, [r1]\n\
- ldr r4, =gBattle_BG1_Y\n\
- movs r0, 0xA0\n\
- strh r0, [r4]\n\
- movs r0, 0x14\n\
- movs r1, 0xF0\n\
- bl SetGpuReg\n\
- ldrh r1, [r4]\n\
- movs r0, 0x16\n\
- bl SetGpuReg\n\
- movs r0, 0\n\
- str r0, [sp, 0x8]\n\
- add r0, sp, 0x8\n\
- ldr r4, =gContestResources\n\
- ldr r1, [r4]\n\
- ldr r1, [r1, 0x28]\n\
- ldr r2, =0x05000400\n\
- bl CpuSet\n\
- ldr r1, =gUnknown_08C17980\n\
- movs r0, 0x1\n\
- movs r2, 0\n\
- movs r3, 0\n\
- bl CopyToBgTilemapBuffer\n\
- movs r0, 0x1\n\
- bl Contest_SetBgCopyFlags\n\
- movs r5, 0\n\
- ldr r7, =gSprites\n\
- movs r6, 0x4\n\
-_080DE2F0:\n\
- ldr r0, [r4]\n\
- ldr r0, [r0, 0x14]\n\
- lsls r3, r5, 2\n\
- adds r0, r3, r0\n\
- ldrb r0, [r0]\n\
- lsls r1, r0, 4\n\
- adds r1, r0\n\
- lsls r1, 2\n\
- adds r1, r7\n\
- ldrb r2, [r1, 0x5]\n\
- mov r0, r8\n\
- ands r0, r2\n\
- orrs r0, r6\n\
- strb r0, [r1, 0x5]\n\
- ldr r0, [r4]\n\
- ldr r0, [r0, 0x14]\n\
- adds r3, r0\n\
- ldrb r0, [r3, 0x1]\n\
- lsls r1, r0, 4\n\
- adds r1, r0\n\
- lsls r1, 2\n\
- adds r1, r7\n\
- ldrb r2, [r1, 0x5]\n\
- mov r0, r8\n\
- ands r0, r2\n\
- orrs r0, r6\n\
- strb r0, [r1, 0x5]\n\
- adds r5, 0x1\n\
- cmp r5, 0x3\n\
- ble _080DE2F0\n\
- add sp, 0xC\n\
- pop {r3}\n\
- mov r8, r3\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .pool\n\
- .syntax divided\n");
-}
-#endif
-
-#ifdef NONMATCHING
-void sub_80DE350(void)
+static void sub_80DE350(void)
{
s32 i;
- s16 var;
u16 bg1Cnt;
- u8 *spriteID;
- u16 something;
RequestDma3Fill(0,(void *)(VRAM + 0x8000), 0x2000, 0x1);
- //DmaClearLarge32(3, (void *)(VRAM + 0x8000), 0x2000, 0x1000);
-
- /*bg1Cnt = 0;
- something = 0;
- var = bg1Cnt;
- spriteID = (u8 *)&gContestResources;*/
-
- var = 0;
-
-
- CpuSet(&var, &gContestResources->field_24[1], 0x05000400);
- //CpuSet(src, (void *)(VRAM + 0x10000 + (gSprites[sContest.applauseMeterSpriteId].oam.tileNum + 17 + i)
+ CpuFill32(0, gContestResources->field_24[1], 0x1000);
Contest_SetBgCopyFlags(1);
-
- //DmaClear32(3, (void *)(VRAM + 0xF000), 0x1000);
-
bg1Cnt = GetGpuReg(REG_OFFSET_BG1CNT);
- something = bg1Cnt;
- ((struct BgCnt *) &bg1Cnt)->priority = 1;
- ((struct BgCnt *) &bg1Cnt)->screenSize = 1;
- ((struct BgCnt *) &bg1Cnt)->areaOverflowMode = 0;
- ((struct BgCnt *) &bg1Cnt)->charBaseBlock = 2;
-
+ ((vBgCnt *) &bg1Cnt)->priority = 1;
+ ((vBgCnt *) &bg1Cnt)->screenSize = 0;
+ ((vBgCnt *) &bg1Cnt)->areaOverflowMode = 0;
+ ((vBgCnt *) &bg1Cnt)->charBaseBlock = 2;
+
SetGpuReg(REG_OFFSET_BG1CNT, bg1Cnt);
gBattle_BG1_X = 0;
@@ -5330,106 +4230,8 @@ void sub_80DE350(void)
gSprites[gContestResources->field_14[i].unk1].oam.priority = 0;
}
}
-#else
-NAKED
-void sub_80DE350(void)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- sub sp, 0x8\n\
- ldr r1, =0x06008000\n\
- movs r2, 0x80\n\
- lsls r2, 6\n\
- movs r0, 0\n\
- movs r3, 0x1\n\
- bl RequestDma3Fill\n\
- movs r5, 0\n\
- str r5, [sp]\n\
- ldr r6, =gContestResources\n\
- ldr r0, [r6]\n\
- ldr r1, [r0, 0x28]\n\
- ldr r2, =0x05000400\n\
- mov r0, sp\n\
- bl CpuSet\n\
- movs r0, 0x1\n\
- bl Contest_SetBgCopyFlags\n\
- movs r0, 0xA\n\
- bl GetGpuReg\n\
- add r3, sp, 0x4\n\
- strh r0, [r3]\n\
- ldrb r1, [r3]\n\
- movs r0, 0x4\n\
- negs r0, r0\n\
- ands r0, r1\n\
- movs r1, 0x1\n\
- orrs r0, r1\n\
- strb r0, [r3]\n\
- mov r1, sp\n\
- adds r1, 0x5\n\
- ldrb r2, [r1]\n\
- movs r0, 0x3F\n\
- ands r0, r2\n\
- strb r0, [r1]\n\
- ldrb r2, [r1]\n\
- movs r0, 0x21\n\
- negs r0, r0\n\
- ands r0, r2\n\
- strb r0, [r1]\n\
- ldrb r1, [r3]\n\
- movs r4, 0xD\n\
- negs r4, r4\n\
- adds r0, r4, 0\n\
- ands r0, r1\n\
- movs r1, 0x8\n\
- orrs r0, r1\n\
- strb r0, [r3]\n\
- ldrh r1, [r3]\n\
- movs r0, 0xA\n\
- bl SetGpuReg\n\
- ldr r0, =gBattle_BG1_X\n\
- strh r5, [r0]\n\
- ldr r0, =gBattle_BG1_Y\n\
- strh r5, [r0]\n\
- ldr r7, =gSprites\n\
-_080DE3CA:\n\
- ldr r0, [r6]\n\
- ldr r0, [r0, 0x14]\n\
- lsls r3, r5, 2\n\
- adds r0, r3, r0\n\
- ldrb r0, [r0]\n\
- lsls r1, r0, 4\n\
- adds r1, r0\n\
- lsls r1, 2\n\
- adds r1, r7\n\
- ldrb r2, [r1, 0x5]\n\
- adds r0, r4, 0\n\
- ands r0, r2\n\
- strb r0, [r1, 0x5]\n\
- ldr r0, [r6]\n\
- ldr r0, [r0, 0x14]\n\
- adds r3, r0\n\
- ldrb r0, [r3, 0x1]\n\
- lsls r1, r0, 4\n\
- adds r1, r0\n\
- lsls r1, 2\n\
- adds r1, r7\n\
- ldrb r2, [r1, 0x5]\n\
- adds r0, r4, 0\n\
- ands r0, r2\n\
- strb r0, [r1, 0x5]\n\
- adds r5, 0x1\n\
- cmp r5, 0x3\n\
- ble _080DE3CA\n\
- add sp, 0x8\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .pool\n\
- .syntax divided\n");
-}
-#endif
-
-void sub_80DE424(u8 taskId)
+
+static void sub_80DE424(u8 taskId)
{
gBattle_BG1_X = 0;
gBattle_BG1_Y = DISPLAY_HEIGHT;
@@ -5437,7 +4239,7 @@ void sub_80DE424(u8 taskId)
gTasks[taskId].func = sub_80DE464;
}
-void sub_80DE464(u8 taskId)
+static void sub_80DE464(u8 taskId)
{
if ((s16)(gBattle_BG1_Y -= 7) < 0)
gBattle_BG1_Y = 0;
@@ -5450,7 +4252,7 @@ void sub_80DE464(u8 taskId)
}
}
-void sub_80DE4A8(u8 taskId)
+static void sub_80DE4A8(u8 taskId)
{
s32 i;
@@ -5499,13 +4301,13 @@ void sub_80DE4A8(u8 taskId)
}
}
-void sub_80DE5C0(u8 taskId)
+static void sub_80DE5C0(u8 taskId)
{
if ((s16)(gBattle_BG1_Y += 7) > DISPLAY_HEIGHT)
gTasks[taskId].func = sub_80DA4F4;
}
-void sub_80DE5F4(u8 taskId)
+static void sub_80DE5F4(u8 taskId)
{
if (gTasks[taskId].data[2] < 10)
{
@@ -5536,7 +4338,7 @@ void sub_80DE5F4(u8 taskId)
}
}
-void sub_80DE65C(u8 taskId)
+static void sub_80DE65C(u8 taskId)
{
if (gTasks[taskId].data[2] < 10)
{
@@ -5550,7 +4352,7 @@ void sub_80DE65C(u8 taskId)
}
}
-void sub_80DE69C(u8 a)
+static void sub_80DE69C(u8 a)
{
s32 i;
u8 taskId;
@@ -5571,7 +4373,7 @@ void sub_80DE69C(u8 a)
sContest.unk1920B_1 = 1;
}
-void sub_80DE794(u8 taskId)
+static void sub_80DE794(u8 taskId)
{
s32 i;
@@ -5589,21 +4391,21 @@ void sub_80DE794(u8 taskId)
}
}
-u16 SanitizeMove(u16 move)
+static u16 SanitizeMove(u16 move)
{
if (move >= MOVES_COUNT)
move = MOVE_POUND;
return move;
}
-u16 SanitizeSpecies(u16 species)
+static u16 SanitizeSpecies(u16 species)
{
if (species >= NUM_SPECIES)
species = SPECIES_NONE;
return species;
}
-void sub_80DE864(u8 a)
+static void sub_80DE864(u8 a)
{
s32 i;
u16 move = SanitizeMove(sContestantStatus[a].currMove);
@@ -5653,14 +4455,14 @@ void sub_80DE864(u8 a)
sub_80DEA5C();
}
-void sub_80DE9B0(u8 unused)
+static void sub_80DE9B0(u8 unused)
{
memset(&gContestResources->field_18->species, 0, 0x14);
if (sContest.unk1925E != 0)
sContest.unk1925E--;
}
-void sub_80DE9DC(u8 a)
+static void sub_80DE9DC(u8 a)
{
gContestResources->field_18->unk5 = a;
gContestResources->field_18->species = SanitizeSpecies(gContestMons[a].species);
@@ -5668,14 +4470,14 @@ void sub_80DE9DC(u8 a)
gContestResources->field_18->unkC = gContestMons[a].otId;
}
-void sub_80DEA20(void)
+static void sub_80DEA20(void)
{
gBattlerSpriteIds[3] = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy);
InitSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattlerTarget]]);
sub_80DEA5C();
}
-void sub_80DEA5C(void)
+static void sub_80DEA5C(void)
{
struct Sprite *sprite = &gSprites[gBattlerSpriteIds[3]];
@@ -5686,7 +4488,7 @@ void sub_80DEA5C(void)
sprite->invisible = TRUE;
}
-void SelectContestMoveBankTarget(u16 move)
+static void SelectContestMoveBankTarget(u16 move)
{
switch (gBattleMoves[move].target)
{
@@ -5704,8 +4506,7 @@ void SelectContestMoveBankTarget(u16 move)
}
}
-#ifdef NONMATCHING
-void Contest_PrintTextToBg0WindowStd(u32 a, const u8 *b)
+static void Contest_PrintTextToBg0WindowStd(u32 a, const u8 *b)
{
struct TextPrinterTemplate printerTemplate;
@@ -5718,158 +4519,46 @@ void Contest_PrintTextToBg0WindowStd(u32 a, const u8 *b)
printerTemplate.currentY = 1;
printerTemplate.letterSpacing = 0;
printerTemplate.lineSpacing = 0;
-
- printerTemplate.unk = a & (1 - 0x11);
- printerTemplate.unk = 0xF0;
- printerTemplate.bgColor = a & (1 - 0x11) & 0x80;
-
-
-
-
+ printerTemplate.unk = 0;
+ printerTemplate.fgColor = 15;
+ printerTemplate.bgColor = 0;
+ printerTemplate.shadowColor = 8;
+
AddTextPrinter(&printerTemplate, 0, 0);
PutWindowTilemap(a);
Contest_SetBgCopyFlags(0);
}
-#else
-NAKED
-void Contest_PrintTextToBg0WindowStd(u32 a, const u8 *b)
-{
- asm(".syntax unified\n\
- push {r4,lr}\n\
- sub sp, 0x10\n\
- adds r4, r0, 0\n\
- str r1, [sp]\n\
- mov r0, sp\n\
- movs r2, 0\n\
- strb r4, [r0, 0x4]\n\
- movs r1, 0x1\n\
- strb r1, [r0, 0x5]\n\
- strb r2, [r0, 0x6]\n\
- strb r1, [r0, 0x7]\n\
- strb r2, [r0, 0x8]\n\
- strb r1, [r0, 0x9]\n\
- strb r2, [r0, 0xA]\n\
- strb r2, [r0, 0xB]\n\
- mov r3, sp\n\
- ldrb r2, [r3, 0xC]\n\
- subs r1, 0x11\n\
- adds r0, r1, 0\n\
- ands r0, r2\n\
- strb r0, [r3, 0xC]\n\
- mov r2, sp\n\
- movs r0, 0xF0\n\
- strb r0, [r2, 0xC]\n\
- ldrb r0, [r2, 0xD]\n\
- ands r1, r0\n\
- strb r1, [r2, 0xD]\n\
- mov r1, sp\n\
- movs r0, 0x80\n\
- strb r0, [r1, 0xD]\n\
- mov r0, sp\n\
- movs r1, 0\n\
- movs r2, 0\n\
- bl AddTextPrinter\n\
- lsls r4, 24\n\
- lsrs r4, 24\n\
- adds r0, r4, 0\n\
- bl PutWindowTilemap\n\
- movs r0, 0\n\
- bl Contest_SetBgCopyFlags\n\
- add sp, 0x10\n\
- pop {r4}\n\
- pop {r0}\n\
- bx r0\n\
- .syntax divided\n");
-}
-#endif
-
-#ifdef NONMATCHING
-void Contest_PrintTextToBg0WindowAt(u32 a, u8 *b, s32 c, u8 d, u8 e)
+
+void Contest_PrintTextToBg0WindowAt(u32 windowId, u8 *currChar, s32 x, s32 y, s32 fontId)
{
struct TextPrinterTemplate printerTemplate;
- printerTemplate.currentChar = b;
- printerTemplate.windowId = a;
- printerTemplate.fontId = 1;
- printerTemplate.x = c;
- printerTemplate.y = d;
- printerTemplate.currentX = c;
- printerTemplate.currentY = d;
+ printerTemplate.currentChar = currChar;
+ printerTemplate.windowId = windowId;
+ printerTemplate.fontId = fontId;
+ printerTemplate.x = x;
+ printerTemplate.y = y;
+ printerTemplate.currentX = x;
+ printerTemplate.currentY = y;
printerTemplate.letterSpacing = 0;
printerTemplate.lineSpacing = 0;
-
- printerTemplate.unk = a & (1 - 0x10);
- printerTemplate.unk = 0xF0;
- printerTemplate.bgColor = a & (1 - 0x11) & 0x80;
-
-
-
-
+ printerTemplate.unk = 0;
+ printerTemplate.fgColor = 15;
+ printerTemplate.bgColor = 0;
+ printerTemplate.shadowColor = 8;
+
AddTextPrinter(&printerTemplate, 0, 0);
- PutWindowTilemap(a);
+ PutWindowTilemap(windowId);
Contest_SetBgCopyFlags(0);
}
-#else
-NAKED
-void Contest_PrintTextToBg0WindowAt(u32 a, u8 *b, s32 c, u8 d, u8 e)
-{
- asm(".syntax unified\n\
- push {r4,r5,lr}\n\
- sub sp, 0x10\n\
- adds r5, r0, 0\n\
- ldr r4, [sp, 0x1C]\n\
- str r1, [sp]\n\
- mov r0, sp\n\
- movs r1, 0\n\
- strb r5, [r0, 0x4]\n\
- strb r4, [r0, 0x5]\n\
- strb r2, [r0, 0x6]\n\
- strb r3, [r0, 0x7]\n\
- strb r2, [r0, 0x8]\n\
- strb r3, [r0, 0x9]\n\
- strb r1, [r0, 0xA]\n\
- strb r1, [r0, 0xB]\n\
- mov r3, sp\n\
- ldrb r2, [r3, 0xC]\n\
- subs r1, 0x10\n\
- adds r0, r1, 0\n\
- ands r0, r2\n\
- strb r0, [r3, 0xC]\n\
- mov r2, sp\n\
- movs r0, 0xF0\n\
- strb r0, [r2, 0xC]\n\
- ldrb r0, [r2, 0xD]\n\
- ands r1, r0\n\
- strb r1, [r2, 0xD]\n\
- mov r1, sp\n\
- movs r0, 0x80\n\
- strb r0, [r1, 0xD]\n\
- mov r0, sp\n\
- movs r1, 0\n\
- movs r2, 0\n\
- bl AddTextPrinter\n\
- lsls r5, 24\n\
- lsrs r5, 24\n\
- adds r0, r5, 0\n\
- bl PutWindowTilemap\n\
- movs r0, 0\n\
- bl Contest_SetBgCopyFlags\n\
- add sp, 0x10\n\
- pop {r4,r5}\n\
- pop {r0}\n\
- bx r0\n\
- .syntax divided\n");
-}
-#endif
-
-#ifdef NONMATCHING
-void Contest_StartTextPrinter(const u8 *a, u32 b)
+
+static void Contest_StartTextPrinter(const u8 *currChar, bool32 b)
{
struct TextPrinterTemplate printerTemplate;
- u8 var;
+ u8 speed;
- printerTemplate.currentChar = a;
- printerTemplate.windowId = b;
+ printerTemplate.currentChar = currChar;
+ printerTemplate.windowId = 4;
printerTemplate.fontId = 1;
printerTemplate.x = 0;
printerTemplate.y = 1;
@@ -5877,179 +4566,46 @@ void Contest_StartTextPrinter(const u8 *a, u32 b)
printerTemplate.currentY = 1;
printerTemplate.letterSpacing = 0;
printerTemplate.lineSpacing = 0;
-
- printerTemplate.unk = b & -0x10;
- printerTemplate.unk = 0x10;
- printerTemplate.bgColor = b & (1 - 0x10) & 0x80;
-
- if(!b)
- {
- var = 0;
- AddTextPrinter(&printerTemplate, var, 0);
- }
- else
- {
- if(gIsLinkContest & 1)
- {
- var = 4;
- AddTextPrinter(&printerTemplate, var, 0);
- }
+ printerTemplate.unk = 0;
+ printerTemplate.fgColor = 1;
+ printerTemplate.bgColor = 0;
+ printerTemplate.shadowColor = 8;
+
+ if (!b)
+ {
+ AddTextPrinter(&printerTemplate, 0, 0);
+ }
+ else
+ {
+ if (gIsLinkContest & 1)
+ speed = 4;
else
- {
- var = GetPlayerTextSpeedDelay();
- AddTextPrinter(&printerTemplate, var, 0);
- }
+ speed = GetPlayerTextSpeedDelay();
+ AddTextPrinter(&printerTemplate, speed, 0);
}
-
+
PutWindowTilemap(4);
Contest_SetBgCopyFlags(0);
-
-}
-}
-#else
-NAKED
-void Contest_StartTextPrinter(const u8 *a, u32 b)
-{
- asm(".syntax unified\n\
- push {r4,r5,lr}\n\
- sub sp, 0x10\n\
- str r0, [sp]\n\
- mov r2, sp\n\
- movs r3, 0\n\
- movs r0, 0x4\n\
- strb r0, [r2, 0x4]\n\
- mov r0, sp\n\
- movs r5, 0x1\n\
- strb r5, [r0, 0x5]\n\
- strb r3, [r0, 0x6]\n\
- strb r5, [r0, 0x7]\n\
- strb r3, [r0, 0x8]\n\
- strb r5, [r0, 0x9]\n\
- strb r3, [r0, 0xA]\n\
- strb r3, [r0, 0xB]\n\
- mov r4, sp\n\
- ldrb r3, [r4, 0xC]\n\
- movs r2, 0x10\n\
- negs r2, r2\n\
- adds r0, r2, 0\n\
- ands r0, r3\n\
- strb r0, [r4, 0xC]\n\
- mov r3, sp\n\
- movs r0, 0x10\n\
- strb r0, [r3, 0xC]\n\
- ldrb r0, [r3, 0xD]\n\
- ands r2, r0\n\
- strb r2, [r3, 0xD]\n\
- mov r2, sp\n\
- movs r0, 0x80\n\
- strb r0, [r2, 0xD]\n\
- cmp r1, 0\n\
- bne _080DEC80\n\
- mov r0, sp\n\
- movs r1, 0\n\
- movs r2, 0\n\
- bl AddTextPrinter\n\
- b _080DECA4\n\
-_080DEC80:\n\
- ldr r0, =gIsLinkContest\n\
- ldrb r1, [r0]\n\
- adds r0, r5, 0\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080DEC94\n\
- movs r1, 0x4\n\
- b _080DEC9C\n\
- .pool\n\
-_080DEC94:\n\
- bl GetPlayerTextSpeedDelay\n\
- lsls r0, 24\n\
- lsrs r1, r0, 24\n\
-_080DEC9C:\n\
- mov r0, sp\n\
- movs r2, 0\n\
- bl AddTextPrinter\n\
-_080DECA4:\n\
- movs r0, 0x4\n\
- bl PutWindowTilemap\n\
- movs r0, 0\n\
- bl Contest_SetBgCopyFlags\n\
- add sp, 0x10\n\
- pop {r4,r5}\n\
- pop {r0}\n\
- bx r0\n\
- .syntax divided\n");
-}
-#endif
-
-#ifdef NONMATCHING
-void ContestBG_FillBoxWithIncrementingTile(u8 a, u16 b, u8 c, u8 d, u8 e, u8 f, u8 g, u8 h)
-{
- s16 var = h;
- WriteSequenceToBgTilemapBuffer(a, b, c, d, e, f, g, var);
+}
+
+static void ContestBG_FillBoxWithIncrementingTile(u8 a, u16 b, u8 c, u8 d, u8 e, u8 f, u8 g, s16 h)
+{
+ WriteSequenceToBgTilemapBuffer(a, b, c, d, e, f, g, h);
Contest_SetBgCopyFlags(a);
}
-#else
-NAKED
-void ContestBG_FillBoxWithIncrementingTile(u8 a, u16 b, u8 c, u8 d, u8 e, u8 f, u8 g, u8 h)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r8\n\
- push {r7}\n\
- sub sp, 0x10\n\
- mov r8, r0\n\
- ldr r0, [sp, 0x28]\n\
- ldr r4, [sp, 0x2C]\n\
- ldr r5, [sp, 0x30]\n\
- ldr r6, [sp, 0x34]\n\
- mov r7, r8\n\
- lsls r7, 24\n\
- lsrs r7, 24\n\
- mov r8, r7\n\
- lsls r1, 16\n\
- lsrs r1, 16\n\
- lsls r2, 24\n\
- lsrs r2, 24\n\
- lsls r3, 24\n\
- lsrs r3, 24\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- lsls r4, 24\n\
- lsrs r4, 24\n\
- lsls r5, 24\n\
- lsrs r5, 24\n\
- str r0, [sp]\n\
- str r4, [sp, 0x4]\n\
- str r5, [sp, 0x8]\n\
- lsls r6, 16\n\
- asrs r6, 16\n\
- str r6, [sp, 0xC]\n\
- mov r0, r8\n\
- bl WriteSequenceToBgTilemapBuffer\n\
- mov r0, r8\n\
- bl Contest_SetBgCopyFlags\n\
- add sp, 0x10\n\
- pop {r3}\n\
- mov r8, r3\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .syntax divided\n");
-}
-#endif
-
-void ContestBG_FillBoxWithTile(u8 a, u16 b, u8 c, u8 d, u8 e, u8 f, u8 g)
+
+static void ContestBG_FillBoxWithTile(u8 a, u16 b, u8 c, u8 d, u8 e, u8 f, u8 g)
{
ContestBG_FillBoxWithIncrementingTile(a, b, c, d, e, f, g, 0);
}
-bool32 Contest_RunTextPrinters(void)
+static bool32 Contest_RunTextPrinters(void)
{
RunTextPrinters();
return IsTextPrinterActive(4);
}
-void Contest_SetBgCopyFlags(u32 var)
+static void Contest_SetBgCopyFlags(u32 var)
{
sContestBgCopyFlags |= 1 << var;
}
@@ -6058,8 +4614,8 @@ void ResetContestLinkResults(void)
{
s32 i;
s32 j;
-
- for(i = 0; i < 5; i++)
+
+ for(i = 0; i < 5; i++)
for(j = 0; j < 4; j++)
gSaveBlock2Ptr->contestLinkResults[i][j] = 0;
}
@@ -6107,7 +4663,7 @@ bool8 sub_80DEDA8(u8 a)
gSaveBlock1Ptr->contestWinners[r4].contestRank = 4;
else
gSaveBlock1Ptr->contestWinners[r4].contestRank = gSpecialVar_ContestRank;
-
+
if (a != 0xFF)
gSaveBlock1Ptr->contestWinners[r4].contestCategory = gSpecialVar_ContestCategory;
else
@@ -6165,4 +4721,468 @@ void ClearContestWinnerPicsInContestHall(void)
for (i = 0; i < 8; i++)
gSaveBlock1Ptr->contestWinners[i] = gUnknown_08587FA4[i];
-} \ No newline at end of file
+}
+
+// The functions below are probably related to Contests in TV.
+static void sub_80DF080(u8 contestant)
+{
+ s32 i;
+
+ if (!gContestResources->field_10->excitementFrozen
+ && gContestResources->field_10->bits_0 > 0
+ && !gContestResources->field_4[contestant].disappointedRepeat)
+ {
+ gContestResources->field_1c[contestant].unkC |= 1;
+ gContestResources->field_1c[contestant].unkE_2 = 1;
+ }
+
+ if (gContestResources->field_4[contestant].nervous)
+ gContestResources->field_1c[contestant].unkC |= 2;
+
+ if (!gContestResources->field_10->excitementFrozen
+ && gContestResources->field_10->bits_0 != 0
+ && gContestResources->field_10->unk2 == 60)
+ {
+ gContestResources->field_1c[contestant].unkC |= 4;
+ }
+
+ if (gContestResources->field_4[contestant].unk15_6
+ && gContestResources->field_4[contestant].unk16 != 0)
+ {
+ gContestResources->field_1c[contestant].unkC |= 8;
+ }
+
+ for (i = 0; i < 4; i++)
+ {
+ if (i != contestant && gContestResources->field_4[i].jam != 0)
+ {
+ gContestResources->field_1c[contestant].unkC |= 0x10;
+ gContestResources->field_1c[i].unkC |= 0x40;
+ }
+ }
+
+ if (gContestResources->field_4[contestant].numTurnsSkipped != 0
+ || gContestResources->field_4[contestant].noMoreTurns)
+ {
+ gContestResources->field_1c[contestant].unkC |= 0x20;
+ }
+ else if (!gContestResources->field_4[contestant].nervous)
+ {
+ gContestResources->field_1c[contestant].unkC |= 0x80;
+ gContestResources->field_1c[contestant].unkE_1 = 1;
+ gContestResources->field_1c[contestant].unk0[gContestResources->field_0->turnNumber] = gContestResources->field_4[contestant].currMove;
+ }
+
+ if (gContestResources->field_4[contestant].disappointedRepeat)
+ gContestResources->field_1c[contestant].unkD |= 2;
+
+ if (gContestResources->field_0->applauseLevel == 4
+ && !gContestResources->field_10->excitementFrozen
+ && gContestResources->field_10->bits_0 < 0)
+ {
+ gContestResources->field_1c[contestant].unkD |= 0x20;
+ }
+}
+
+static void sub_80DF250(void)
+{
+ u8 r1;
+ s32 i, j;
+ bool32 r12, r8;
+ u16 sp0[6];
+ u8 spC[6];
+ u16 sp14[5];
+ u8 var_38;
+ u8 r3;
+ u8 count;
+
+ r1 = 0;
+ var_38 = 0;
+
+ for (i = 0; i < 4; i++)
+ {
+ if (gContestFinalStandings[i] == 0)
+ var_38 = i;
+ else if (gContestFinalStandings[i] == 3)
+ r1 = i;
+ }
+
+ gContestResources->field_1c[r1].unkD |= 1;
+ for (i = 0; i < 4; i++)
+ {
+ if (i != var_38 && gUnknown_02039F08[var_38] - gUnknown_02039F08[i] <= 50)
+ gContestResources->field_1c[i].unkD |= 4;
+
+ if (!gContestResources->field_1c[i].unkE_2)
+ gContestResources->field_1c[i].unkD |= 8;
+
+ for (j = 0; j < 4; j++)
+ {
+ if (gContestMonConditions[i] < gContestMonConditions[j])
+ break;
+ }
+ if (j == 4 && gContestFinalStandings[i] != 0)
+ gContestResources->field_1c[i].unkD |= 0x10;
+
+ r12 = FALSE;
+ r8 = FALSE;
+ for (j = 0; j < 4; j++)
+ {
+ if (gContestMonConditions[i] > gContestMonConditions[j])
+ r12 = TRUE;
+ if (gUnknown_02039F18[i] > gUnknown_02039F18[j])
+ r8 = TRUE;
+ }
+ if (!r12 && !r8)
+ gContestResources->field_1c[i].unkD |= 0x40;
+
+ if (!gContestResources->field_1c[i].unkE_1)
+ gContestResources->field_1c[i].unkD |= 0x80;
+ }
+
+ for (i = 0; i < 5; i++)
+ {
+ sp0[i] = 0;
+ spC[i] = 0;
+ }
+ sp0[5] = 0xFFFF;
+ spC[5] = 0;
+
+ for (i = 0; i < 5; i++)
+ {
+ if (gContestResources->field_1c[var_38].unk0[i] != 0)
+ {
+ for (j = 0; j < 5; j++)
+ {
+ if (gContestResources->field_1c[var_38].unk0[i] != sp0[j])
+ {
+ if (sp0[j] == 0)
+ {
+ sp0[j] = gContestResources->field_1c[var_38].unk0[i];
+ spC[j]++;
+ }
+ }
+ else
+ {
+ spC[j]++;
+ }
+ }
+ }
+ }
+
+ sp14[0] = sp0[0];
+ r3 = spC[0];
+ count = 0;
+ for (i = 1; sp0[i] != 0xFFFF; i++)
+ {
+ if (r3 < spC[i])
+ {
+ sp14[0] = sp0[i];
+ r3 = spC[i];
+ count = 1;
+ }
+ else if (r3 == spC[i])
+ {
+ sp14[count] = sp0[i];
+ count++;
+ }
+ }
+
+ gContestResources->field_1c[var_38].unkA = sp14[Random() % count];
+}
+
+static void sub_80DF4F8(void)
+{
+ s32 i;
+ u32 bits;
+ u8 r7;
+ u8 r9, r10;
+ u8 count;
+ u8 r5;
+ u8 r2;
+ u16 var;
+ u8 r4;
+ u8 r6;
+ u8 sp0[4];
+
+ if (gContestFinalStandings[gContestPlayerMonIndex] != 0)
+ return;
+
+ r7 = 0;
+ for (i = 0; i < 4; i++)
+ {
+ if (gContestFinalStandings[i] == 0)
+ r7 = i;
+ }
+
+ r9 = 0;
+ r10 = 0;
+ for (i = 0; i < 4; i++)
+ {
+ if (gContestMonConditions[r7] < gContestMonConditions[i])
+ r9++;
+ if (gUnknown_02039F18[r7] < gUnknown_02039F18[i])
+ r10++;
+ }
+
+ bits = gContestResources->field_1c[r7].unkC;
+ count = 0;
+ for (i = 0; i < 8; bits >>= 1, i++)
+ {
+ if (bits & 1)
+ count++;
+ }
+
+ r5 = Random() % count;
+ bits = gContestResources->field_1c[r7].unkC;
+ count = 0;
+ r2 = 0;
+ for (i = 0; i < 8; bits >>= 1, r2++, i++)
+ {
+ if (!(bits & 1))
+ continue;
+ if (r5 == count)
+ break;
+ count++;
+ }
+
+ var = 1 << r2;
+ if (r7 == 0)
+ {
+ sp0[0] = 1;
+ r4 = gContestResources->field_1c[1].unkD;
+ i = 2;
+ }
+ else
+ {
+ sp0[0] = 0;
+ r4 = gContestResources->field_1c[0].unkD;
+ i = 1;
+ }
+
+ r5 = 1;
+ for (; i < 4; i++)
+ {
+ if (i != r7)
+ {
+ if (r4 < gContestResources->field_1c[i].unkD)
+ {
+ sp0[0] = i;
+ r4 = gContestResources->field_1c[i].unkD;
+ r5 = 1;
+ }
+ else if (r4 == gContestResources->field_1c[i].unkD)
+ {
+ sp0[r5] = i;
+ r5++;
+ }
+ }
+ }
+
+ r6 = sp0[Random() % r5];
+ r2 = 0x80;
+ for (i = 0; i < 8; r2 >>= 1, i++)
+ {
+ r4 = gContestResources->field_1c[r6].unkD & r2;
+ if (r4)
+ break;
+ }
+
+ ContestLiveUpdates_BeforeInterview_1(r9);
+ ContestLiveUpdates_BeforeInterview_2(r10);
+ ContestLiveUpdates_BeforeInterview_3(var);
+ ContestLiveUpdates_BeforeInterview_4(gContestResources->field_1c[r7].unkA);
+ ContestLiveUpdates_BeforeInterview_5(r4, r6);
+}
+
+// Unused
+void sub_80DF704(u8 arg0)
+{
+ if (gHeap[0x1A000] == 0)
+ {
+ if (arg0 == 0)
+ gHeap[0x1A000] = 2;
+ else
+ gHeap[0x1A000] = 3;
+ }
+ else
+ {
+ gHeap[0x1A000] = 0;
+ }
+
+ if (gHeap[0x1A000] == 0)
+ {
+ sub_80DAEA4();
+ sub_80DB2BC();
+ }
+ else
+ {
+ sub_80DF750();
+ }
+}
+
+static void sub_80DF750(void)
+{
+ u8 i;
+ s8 j;
+ u8 text1[20];
+ u8 text2[20];
+ u8 *txtPtr;
+ u32 bits;
+
+ if (gUnknown_020322D5 == 0)
+ return;
+ if (gHeap[0x1A000] != 2 && gHeap[0x1A000] != 3)
+ return;
+
+ for (i = 0; i < 4; i++)
+ FillWindowPixelBuffer(i, 0);
+
+ if (gHeap[0x1A000] == 2)
+ {
+ for (i = 0; i < 4; i++)
+ {
+ txtPtr = StringCopy(text1, gText_CDot);
+ Contest_PrintTextToBg0WindowAt(gUnknown_02039F26[i], text1, 5, 1, 7);
+ bits = gContestResources->field_1c[i].unkC;
+ for (j = 7; j > -1; j--) // Weird loop.
+ {
+ txtPtr = ConvertIntToDecimalStringN(txtPtr, bits & 1, STR_CONV_MODE_LEFT_ALIGN, 1);
+ bits >>= 1;
+ }
+
+ for (j = 0; j < 5; j++)
+ text2[j] = text1[j];
+
+ text2[j] = EOS;
+ Contest_PrintTextToBg0WindowAt(gUnknown_02039F26[i], text2, 5, 1, 7);
+ Contest_PrintTextToBg0WindowAt(gUnknown_02039F26[i], text1 + j, 55, 1, 7);
+ }
+ }
+ else
+ {
+ for (i = 0; i < 4; i++)
+ {
+ StringCopy(text1, gText_BDot);
+ bits = gContestResources->field_1c[i].unkD;
+ txtPtr = &text1[2];
+ for (j = 7; j > -1; j--) // Weird loop.
+ {
+ txtPtr = ConvertIntToDecimalStringN(txtPtr, bits & 1, STR_CONV_MODE_LEFT_ALIGN, 1);
+ bits >>= 1;
+ }
+
+ for (j = 0; j < 5; j++)
+ text2[j] = text1[j];
+
+ text2[j] = EOS;
+ Contest_PrintTextToBg0WindowAt(gUnknown_02039F26[i], text2, 5, 1, 7);
+ Contest_PrintTextToBg0WindowAt(gUnknown_02039F26[i], text1 + j, 55, 1, 7);
+ }
+ }
+ sub_80DB2BC();
+}
+
+static u8 sub_80DF940(u8 *nickname)
+{
+ u8 ret = GAME_LANGUAGE;
+
+ if (nickname[0] == EXT_CTRL_CODE_BEGIN && nickname[1] == EXT_CTRL_CODE_JPN)
+ return LANGUAGE_ENGLISH;
+
+ if (StringLength(nickname) < 6)
+ {
+ while (*nickname != EOS)
+ {
+ if ((*nickname >= CHAR_A && *nickname <= CHAR_z)
+ || (*nickname >= CHAR_0 && *nickname <= CHAR_9)
+ || *nickname == CHAR_SPACE
+ || *nickname == CHAR_PERIOD
+ || *nickname == CHAR_COMMA
+ || *nickname == CHAR_EXCL_MARK
+ || *nickname == CHAR_QUESTION_MARK
+ || *nickname == CHAR_MALE
+ || *nickname == CHAR_FEMALE
+ || *nickname == CHAR_SLASH
+ || *nickname == CHAR_HYPHEN
+ || *nickname == CHAR_ELLIPSIS
+ || *nickname == CHAR_DBL_QUOT_LEFT
+ || *nickname == CHAR_DBL_QUOT_RIGHT
+ || *nickname == CHAR_SGL_QUOT_LEFT
+ || *nickname == CHAR_DBL_QUOT_LEFT) // Most likely a typo, CHAR_SGL_QUOT_RIGHT should be here instead.
+ {
+ nickname++;
+ }
+ else
+ {
+ ret = LANGUAGE_JAPANESE;
+ break;
+ }
+ }
+ }
+
+ return ret;
+}
+
+static void sub_80DF9D4(u8 *playerName)
+{
+ u8 chr = playerName[5];
+
+ playerName[5] = EOS;
+ playerName[PLAYER_NAME_LENGTH] = chr;
+}
+
+static void sub_80DF9E0(u8 *monName, s32 language)
+{
+ u8 chr;
+
+ StripExtCtrlCodes(monName);
+ if (language == LANGUAGE_JAPANESE)
+ {
+ monName[5] = EOS;
+ monName[POKEMON_NAME_LENGTH] = EXT_CTRL_CODE_BEGIN;
+ }
+ else
+ {
+ chr = monName[5];
+ monName[5] = EOS;
+ monName[POKEMON_NAME_LENGTH] = chr;
+ }
+}
+
+void sub_80DFA08(struct ContestPokemon *mon, s32 language)
+{
+ u8 *name = mon->nickname;
+
+ if (language == LANGUAGE_JAPANESE)
+ {
+ ConvertInternationalString(name, sub_80DF940(name));
+ }
+ else if (name[POKEMON_NAME_LENGTH] == EXT_CTRL_CODE_BEGIN)
+ {
+ ConvertInternationalString(name, LANGUAGE_JAPANESE);
+ }
+ else
+ {
+ name[5] = name[POKEMON_NAME_LENGTH];
+ name[POKEMON_NAME_LENGTH] = EOS;
+ }
+
+ name = mon->trainerName;
+ if (language == LANGUAGE_JAPANESE)
+ {
+ name[PLAYER_NAME_LENGTH] = EOS;
+ name[6] = name[4];
+ name[5] = name[3];
+ name[4] = name[2];
+ name[3] = name[1];
+ name[2] = mon->trainerName[0];
+ name[1] = EXT_CTRL_CODE_JPN;
+ name[0] = EXT_CTRL_CODE_BEGIN;
+ }
+ else
+ {
+ name[5] = name[PLAYER_NAME_LENGTH];
+ name[PLAYER_NAME_LENGTH] = EOS;
+ }
+}