summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcamthesaxman <cameronghall@cox.net>2017-12-22 01:57:16 -0600
committercamthesaxman <cameronghall@cox.net>2017-12-22 01:57:16 -0600
commitd108f8dbe7f5fb08557d9ea82a0a9710532cac54 (patch)
treeb70148ae34731ae917b1194c29f12b66ba0c8afe /src
parent2415720ea6760217355f286da83b9955c881bf1b (diff)
finish decompiling contest.s
Diffstat (limited to 'src')
-rw-r--r--src/contest.c53
-rw-r--r--src/scene/new_game.c4
-rw-r--r--src/script_pokemon_util_80C4BF0.c2
3 files changed, 53 insertions, 6 deletions
diff --git a/src/contest.c b/src/contest.c
index cd7efee7a..a712edf8a 100644
--- a/src/contest.c
+++ b/src/contest.c
@@ -324,6 +324,7 @@ extern const u8 gUnknownText_UnknownFormatting3[];
extern const u8 gUnknown_083CC59C[];
extern const u8 gUnknown_083CC5A2[];
extern const u16 gUnknown_083CC5A4[];
+extern const struct ContestWinner gUnknown_083CC5D0[];
extern const u8 gUnknownText_MissedTurn[];
extern const u8 gUnknownText_LinkStandbyAndWinner[];
extern void (*const gContestEffectFuncs[])(void);
@@ -5535,7 +5536,6 @@ bool8 sub_80B2A7C(u8 a)
}
if (a == 0xFF && i != gContestPlayerMonIndex)
return FALSE;
- //_080B2AD0
switch (gScriptContestCategory)
{
case 0:
@@ -5554,7 +5554,6 @@ bool8 sub_80B2A7C(u8 a)
r7 += 12;
break;
}
- //_080B2B16
if (a != 0xFE)
{
u8 r4 = sub_80B2C4C(a, 1);
@@ -5569,7 +5568,6 @@ bool8 sub_80B2A7C(u8 a)
else
gSaveBlock1.contestWinners[r4].contestCategory = r7;
}
- //_080B2BC4
else
{
shared15DE0.personality = gContestMons[i].personality;
@@ -5584,3 +5582,52 @@ bool8 sub_80B2A7C(u8 a)
}
return TRUE;
}
+
+u8 sub_80B2C4C(u8 a, u8 b)
+{
+ s32 i;
+
+ switch (a)
+ {
+ case 0:
+ case 1:
+ return a;
+ case 2:
+ if (b != 0)
+ {
+ for (i = 4; i >= 3; i--)
+ memcpy(&gSaveBlock1.contestWinners[i], &gSaveBlock1.contestWinners[i - 1], sizeof(struct ContestWinner));
+ }
+ return 2;
+ case 3:
+ if (b != 0)
+ {
+ for (i = 7; i >= 6; i--)
+ memcpy(&gSaveBlock1.contestWinners[i], &gSaveBlock1.contestWinners[i - 1], sizeof(struct ContestWinner));
+ }
+ return 5;
+ default:
+ switch (gScriptContestCategory)
+ {
+ case 0:
+ return 8;
+ case 1:
+ return 9;
+ case 2:
+ return 10;
+ case 3:
+ return 11;
+ case 4:
+ default:
+ return 12;
+ }
+ }
+}
+
+void sub_80B2D1C(void)
+{
+ s32 i;
+
+ for (i = 0; i < 8; i++)
+ gSaveBlock1.contestWinners[i] = gUnknown_083CC5D0[i];
+}
diff --git a/src/scene/new_game.c b/src/scene/new_game.c
index 98ef0853d..1a3d40e0c 100644
--- a/src/scene/new_game.c
+++ b/src/scene/new_game.c
@@ -36,7 +36,7 @@ extern u16 gSaveFileStatus;
extern u8 gUnknown_0819FA81[];
-static const struct ContestWinner sEmptyContestWinner =
+static const struct ContestWinner sEmptyMuseumPortrait =
{
.nickname = {EOS},
.trainerName = {EOS},
@@ -86,7 +86,7 @@ void sub_8052DA8(void)
sub_80B2D1C();
for (i = 0; i < 5; i++)
- gSaveBlock1.contestWinners[8 + i] = sEmptyContestWinner;
+ gSaveBlock1.museumPortraits[i] = sEmptyMuseumPortrait;
}
void ZeroBattleTowerData(void)
diff --git a/src/script_pokemon_util_80C4BF0.c b/src/script_pokemon_util_80C4BF0.c
index 1128e386d..c555a88bf 100644
--- a/src/script_pokemon_util_80C4BF0.c
+++ b/src/script_pokemon_util_80C4BF0.c
@@ -144,7 +144,7 @@ u8 sub_80C4D50(void)
int i;
for (i = 0; i < 5; i++)
- if (gSaveBlock1.contestWinners[i + 8].species != 0)
+ if (gSaveBlock1.museumPortraits[i].species != 0)
retVar++;
return retVar;