diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-03-29 15:50:16 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-03-29 15:50:16 -0400 |
commit | 90556b6b3eabc0a90cf7fdcf54826e362053f4c0 (patch) | |
tree | 7ccb9e9c3256a03967f3bf0a0d0eafdd14151c3b /src | |
parent | 18e6512599ad5a52ee0046f2504a7b357cc80894 (diff) |
ContestEffect_26
Diffstat (limited to 'src')
-rw-r--r-- | src/contest.c | 1 | ||||
-rw-r--r-- | src/contest_ai.c | 3 | ||||
-rw-r--r-- | src/contest_effect.c | 75 |
3 files changed, 75 insertions, 4 deletions
diff --git a/src/contest.c b/src/contest.c index 77455e882..686b01476 100644 --- a/src/contest.c +++ b/src/contest.c @@ -201,7 +201,6 @@ void sub_80AF1B8(void); void sub_80AF2A0(u8); void sub_80AF2FC(void); void sub_80AF3C0(void); -bool8 Contest_IsMonsTurnDisabled(u8); s16 sub_80AF688(u8); void DetermineFinalStandings(void); bool8 sub_80AF828(s32, s32, struct UnknownContestStruct6 *); diff --git a/src/contest_ai.c b/src/contest_ai.c index 63894635b..8fce9d15f 100644 --- a/src/contest_ai.c +++ b/src/contest_ai.c @@ -5,9 +5,6 @@ #include "contest_effect.h" #include "ewram.h" -extern bool8 sub_80B214C(u8); -extern bool8 Contest_IsMonsTurnDisabled(u8); - extern u16 gSpecialVar_ContestCategory; extern u8 *gAIScriptPtr; diff --git a/src/contest_effect.c b/src/contest_effect.c index c38cb2f96..bbd56493b 100644 --- a/src/contest_effect.c +++ b/src/contest_effect.c @@ -301,3 +301,78 @@ void ContestEffect_25(void) if (!r4) SetContestantStatusUnk14(shared192D0.unk11, 0x36); } + +void ContestEffect_26(void) +{ + u8 r9 = 0; + bool32 sp18 = FALSE; + u8 sp00[5]; + int r6; + int r4; + s16 sp08[4]; + s16 sp10[4]; + + memset(sp00, 0xFF, ARRAY_COUNT(sp00)); + for (r6 = 0, r4 = 0; r6 < 4; r6++) + { + if (shared192D0.unk0[shared192D0.unk11] < shared192D0.unk0[r6] && + !sContestantStatus[r6].unkC_0 && !Contest_IsMonsTurnDisabled(r6)) + sp00[r4++] = r6; + } + + if (r4 == 1) + { + sp10[0] = 60; + } + else if (r4 == 2) + { + sp10[0] = 30; + sp10[1] = 30; + } + else if (r4 == 3) + { + sp10[0] = 20; + sp10[1] = 20; + sp10[2] = 20; + } + else + { + for (r6 = 0; r6 < 4; r6++) + sp10[r6] = 0; + } + for (r6 = 0; r6 < 4; r6++) + { + if (sContestantStatus[r6].unk15_4 && sub_80B214C(r6)) + sp08[r6] = gComboStarterLookupTable[gContestMoves[sContestantStatus[r6].prevMove].comboStarterId] * 10; + else + sp08[r6] = 0; + sp08[r6] -= (sContestantStatus[r6].unkD / 10) * 10; + } + if (sp10[0] != 0) + { + for (r6 = 0; sp00[r6] != 0xFF; r6++) + { + if (Random() % 100 < sp10[r6] + sp08[sp00[r6]]) + { + if (sub_80B90C0(sp00[r6])) + { + sub_80B157C(sp00[r6]); + SetContestantStatusUnk13(sp00[r6], 10); + r9++; + } else + sp18 = TRUE; + } else + sp18 = TRUE; + if (sp18) + { + sp18 = FALSE; + SetContestantStatusUnk13(sp00[r6], 60); + r9++; + } + shared192D0.unkD[sp00[r6]] = 1; + } + } + SetContestantStatusUnk13(shared192D0.unk11, 11); + if (r9 == 0) + SetContestantStatusUnk14(shared192D0.unk11, 0x36); +} |