diff options
author | camthesaxman <cameronghall@cox.net> | 2017-12-22 01:57:16 -0600 |
---|---|---|
committer | camthesaxman <cameronghall@cox.net> | 2017-12-22 01:57:16 -0600 |
commit | d108f8dbe7f5fb08557d9ea82a0a9710532cac54 (patch) | |
tree | b70148ae34731ae917b1194c29f12b66ba0c8afe /src | |
parent | 2415720ea6760217355f286da83b9955c881bf1b (diff) |
finish decompiling contest.s
Diffstat (limited to 'src')
-rw-r--r-- | src/contest.c | 53 | ||||
-rw-r--r-- | src/scene/new_game.c | 4 | ||||
-rw-r--r-- | src/script_pokemon_util_80C4BF0.c | 2 |
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; |