summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorGriffinR <griffin.g.richards@gmail.com>2020-07-24 00:14:53 -0400
committerGriffinR <griffin.g.richards@gmail.com>2020-07-24 00:14:53 -0400
commitaca50c87beaa88f66ca2a8602c23411fd20b0884 (patch)
tree7d6308e2012a2a0f13a18884e9d0301d11c84252 /include
parent52a4428ba624b19569418a9c72f60d3494fb71eb (diff)
Continue new contest documentation
Diffstat (limited to 'include')
-rw-r--r--include/constants/contest.h150
-rw-r--r--include/contest.h136
-rw-r--r--include/contest_link.h6
3 files changed, 161 insertions, 131 deletions
diff --git a/include/constants/contest.h b/include/constants/contest.h
index 5eabb5f46..a10354169 100644
--- a/include/constants/contest.h
+++ b/include/constants/contest.h
@@ -2,7 +2,8 @@
#define GUARD_CONSTANTS_CONTEST_H
#define APPLAUSE_METER_SIZE 5
-#define CONTEST_TURN_COUNT 5
+#define CONTEST_NUM_APPEALS 5
+#define CONTEST_LAST_APPEAL (CONTEST_NUM_APPEALS - 1)
#define LINK_CONTEST_FLAG_IS_LINK (1 << 0)
#define LINK_CONTEST_FLAG_IS_WIRELESS (1 << 1)
@@ -44,4 +45,151 @@
#define CANT_ENTER_CONTEST_EGG 3
#define CANT_ENTER_CONTEST_FAINTED 4
+#define CONTEST_AI_CHECK_BAD_MOVE (1 << 0)
+#define CONTEST_AI_CHECK_COMBO (1 << 1)
+#define CONTEST_AI_CHECK_BORING (1 << 2)
+#define CONTEST_AI_CHECK_EXCITEMENT (1 << 3)
+#define CONTEST_AI_CHECK_ORDER (1 << 4)
+#define CONTEST_AI_CHECK_GOOD_MOVE (1 << 5)
+#define CONTEST_AI_ERRATIC (1 << 6)
+#define CONTEST_AI_DUMMY_1 (1 << 7)
+#define CONTEST_AI_DUMMY_2 (1 << 8)
+#define CONTEST_AI_DUMMY_3 (1 << 9)
+#define CONTEST_AI_DUMMY_4 (1 << 10)
+#define CONTEST_AI_DUMMY_5 (1 << 11)
+#define CONTEST_AI_DUMMY_6 (1 << 12)
+#define CONTEST_AI_DUMMY_7 (1 << 13)
+#define CONTEST_AI_DUMMY_8 (1 << 14)
+#define CONTEST_AI_DUMMY_9 (1 << 15)
+#define CONTEST_AI_DUMMY_10 (1 << 16)
+#define CONTEST_AI_DUMMY_11 (1 << 17)
+#define CONTEST_AI_DUMMY_12 (1 << 18)
+#define CONTEST_AI_DUMMY_13 (1 << 19)
+#define CONTEST_AI_DUMMY_14 (1 << 20)
+#define CONTEST_AI_DUMMY_15 (1 << 21)
+#define CONTEST_AI_DUMMY_16 (1 << 22)
+#define CONTEST_AI_DUMMY_17 (1 << 23)
+#define CONTEST_AI_DUMMY_18 (1 << 24)
+#define CONTEST_AI_DUMMY_19 (1 << 25)
+#define CONTEST_AI_DUMMY_20 (1 << 26)
+#define CONTEST_AI_DUMMY_21 (1 << 27)
+#define CONTEST_AI_DUMMY_22 (1 << 28)
+#define CONTEST_AI_DUMMY_23 (1 << 29)
+#define CONTEST_AI_DUMMY_24 (1 << 30)
+#define CONTEST_AI_DUMMY_25 (1 << 31)
+#define CONTEST_AI_ALL (CONTEST_AI_CHECK_BAD_MOVE | CONTEST_AI_CHECK_COMBO | CONTEST_AI_CHECK_BORING | CONTEST_AI_CHECK_EXCITEMENT | CONTEST_AI_CHECK_ORDER | CONTEST_AI_CHECK_GOOD_MOVE | CONTEST_AI_ERRATIC)
+#define CONTEST_AI_DUMMIES_1 (CONTEST_AI_DUMMY_1 | CONTEST_AI_DUMMY_2 | CONTEST_AI_DUMMY_3 | CONTEST_AI_DUMMY_4 | CONTEST_AI_DUMMY_5)
+
+#define CONTEST_EFFECT_HIGHLY_APPEALING 0
+#define CONTEST_EFFECT_USER_MORE_EASILY_STARTLED 1
+#define CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES 2
+#define CONTEST_EFFECT_REPETITION_NOT_BORING 3
+#define CONTEST_EFFECT_AVOID_STARTLE_ONCE 4
+#define CONTEST_EFFECT_AVOID_STARTLE 5
+#define CONTEST_EFFECT_AVOID_STARTLE_SLIGHTLY 6
+#define CONTEST_EFFECT_USER_LESS_EASILY_STARTLED 7
+#define CONTEST_EFFECT_STARTLE_FRONT_MON 8
+#define CONTEST_EFFECT_SLIGHTLY_STARTLE_PREV_MONS 9
+#define CONTEST_EFFECT_STARTLE_PREV_MON 10
+#define CONTEST_EFFECT_STARTLE_PREV_MONS 11
+#define CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON 12
+#define CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS 13
+#define CONTEST_EFFECT_STARTLE_PREV_MON_2 14
+#define CONTEST_EFFECT_STARTLE_PREV_MONS_2 15
+#define CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION 16
+#define CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION 17
+#define CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN 18
+#define CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL 19
+#define CONTEST_EFFECT_STARTLE_MONS_COOL_APPEAL 20
+#define CONTEST_EFFECT_STARTLE_MONS_BEAUTY_APPEAL 21
+#define CONTEST_EFFECT_STARTLE_MONS_CUTE_APPEAL 22
+#define CONTEST_EFFECT_STARTLE_MONS_SMART_APPEAL 23
+#define CONTEST_EFFECT_STARTLE_MONS_TOUGH_APPEAL 24
+#define CONTEST_EFFECT_MAKE_FOLLOWING_MON_NERVOUS 25
+#define CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS 26
+#define CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS 27
+#define CONTEST_EFFECT_BADLY_STARTLES_MONS_IN_GOOD_CONDITION 28
+#define CONTEST_EFFECT_BETTER_IF_FIRST 29
+#define CONTEST_EFFECT_BETTER_IF_LAST 30
+#define CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES 31
+#define CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE 32
+#define CONTEST_EFFECT_BETTER_WHEN_LATER 33
+#define CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING 34
+#define CONTEST_EFFECT_BETTER_IF_SAME_TYPE 35
+#define CONTEST_EFFECT_BETTER_IF_DIFF_TYPE 36
+#define CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL 37
+#define CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS 38
+#define CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION 39
+#define CONTEST_EFFECT_NEXT_APPEAL_EARLIER 40
+#define CONTEST_EFFECT_NEXT_APPEAL_LATER 41
+#define CONTEST_EFFECT_MAKE_SCRAMBLING_TURN_ORDER_EASIER 42
+#define CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER 43
+#define CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST 44
+#define CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS 45
+#define CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED 46
+#define CONTEST_EFFECT_DONT_EXCITE_AUDIENCE 47
+
+#define COMBO_STARTER_RAIN_DANCE 1
+#define COMBO_STARTER_RAGE 2
+#define COMBO_STARTER_FOCUS_ENERGY 3
+#define COMBO_STARTER_HYPNOSIS 4
+#define COMBO_STARTER_ENDURE 5
+#define COMBO_STARTER_HORN_ATTACK 6
+#define COMBO_STARTER_SWORDS_DANCE 7
+#define COMBO_STARTER_STOCKPILE 8
+#define COMBO_STARTER_SUNNY_DAY 9
+#define COMBO_STARTER_REST 10
+#define COMBO_STARTER_VICE_GRIP 11
+#define COMBO_STARTER_DEFENSE_CURL 12
+#define COMBO_STARTER_CHARGE 13
+#define COMBO_STARTER_ROCK_THROW 14
+#define COMBO_STARTER_YAWN 15
+#define COMBO_STARTER_SCARY_FACE 16
+#define COMBO_STARTER_POWDER_SNOW 17
+#define COMBO_STARTER_LOCK_ON 18
+#define COMBO_STARTER_SOFT_BOILED 19
+#define COMBO_STARTER_MEAN_LOOK 20
+#define COMBO_STARTER_SCRATCH 21
+#define COMBO_STARTER_GROWTH 22
+#define COMBO_STARTER_HAIL 23
+#define COMBO_STARTER_SANDSTORM 24
+#define COMBO_STARTER_BELLY_DRUM 25
+#define COMBO_STARTER_MIND_READER 26
+#define COMBO_STARTER_DRAGON_BREATH 27
+#define COMBO_STARTER_DRAGON_RAGE 28
+#define COMBO_STARTER_DRAGON_DANCE 29
+#define COMBO_STARTER_SURF 30
+#define COMBO_STARTER_DIVE 31
+#define COMBO_STARTER_STRING_SHOT 32
+#define COMBO_STARTER_LEER 33
+#define COMBO_STARTER_TAUNT 34
+#define COMBO_STARTER_CHARM 35
+#define COMBO_STARTER_HARDEN 36
+#define COMBO_STARTER_SING 37
+#define COMBO_STARTER_EARTHQUAKE 38
+#define COMBO_STARTER_DOUBLE_TEAM 39
+#define COMBO_STARTER_CURSE 40
+#define COMBO_STARTER_SWEET_SCENT 41
+#define COMBO_STARTER_SLUDGE 42
+#define COMBO_STARTER_SLUDGE_BOMB 43
+#define COMBO_STARTER_THUNDER_PUNCH 44
+#define COMBO_STARTER_FIRE_PUNCH 45
+#define COMBO_STARTER_ICE_PUNCH 46
+#define COMBO_STARTER_PECK 47
+#define COMBO_STARTER_METAL_SOUND 48
+#define COMBO_STARTER_MUD_SPORT 49
+#define COMBO_STARTER_WATER_SPORT 50
+#define COMBO_STARTER_BONE_CLUB 51
+#define COMBO_STARTER_BONEMERANG 52
+#define COMBO_STARTER_BONE_RUSH 53
+#define COMBO_STARTER_SAND_ATTACK 54
+#define COMBO_STARTER_MUD_SLAP 55
+#define COMBO_STARTER_FAKE_OUT 56
+#define COMBO_STARTER_PSYCHIC 57
+#define COMBO_STARTER_KINESIS 58
+#define COMBO_STARTER_CONFUSION 59
+#define COMBO_STARTER_POUND 60
+#define COMBO_STARTER_SMOG 61
+#define COMBO_STARTER_CALM_MIND 62
+
#endif // GUARD_CONSTANTS_CONTEST_H
diff --git a/include/contest.h b/include/contest.h
index b6818f996..1cad71705 100644
--- a/include/contest.h
+++ b/include/contest.h
@@ -17,124 +17,6 @@ enum
enum
{
- CONTEST_EFFECT_HIGHLY_APPEALING,
- CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
- CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES,
- CONTEST_EFFECT_REPETITION_NOT_BORING,
- CONTEST_EFFECT_AVOID_STARTLE_ONCE,
- CONTEST_EFFECT_AVOID_STARTLE,
- CONTEST_EFFECT_AVOID_STARTLE_SLIGHTLY,
- CONTEST_EFFECT_USER_LESS_EASILY_STARTLED,
- CONTEST_EFFECT_STARTLE_FRONT_MON,
- CONTEST_EFFECT_SLIGHTLY_STARTLE_PREV_MONS,
- CONTEST_EFFECT_STARTLE_PREV_MON,
- CONTEST_EFFECT_STARTLE_PREV_MONS,
- CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
- CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
- CONTEST_EFFECT_STARTLE_PREV_MON_2,
- CONTEST_EFFECT_STARTLE_PREV_MONS_2,
- CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION,
- CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
- CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN,
- CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
- CONTEST_EFFECT_STARTLE_MONS_COOL_APPEAL,
- CONTEST_EFFECT_STARTLE_MONS_BEAUTY_APPEAL,
- CONTEST_EFFECT_STARTLE_MONS_CUTE_APPEAL,
- CONTEST_EFFECT_STARTLE_MONS_SMART_APPEAL,
- CONTEST_EFFECT_STARTLE_MONS_TOUGH_APPEAL,
- CONTEST_EFFECT_MAKE_FOLLOWING_MON_NERVOUS,
- CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
- CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
- CONTEST_EFFECT_BADLY_STARTLES_MONS_IN_GOOD_CONDITION,
- CONTEST_EFFECT_BETTER_IF_FIRST,
- CONTEST_EFFECT_BETTER_IF_LAST,
- CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES,
- CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE,
- CONTEST_EFFECT_BETTER_WHEN_LATER,
- CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING,
- CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
- CONTEST_EFFECT_BETTER_IF_DIFF_TYPE,
- CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL,
- CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
- CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION,
- CONTEST_EFFECT_NEXT_APPEAL_EARLIER,
- CONTEST_EFFECT_NEXT_APPEAL_LATER,
- CONTEST_EFFECT_MAKE_SCRAMBLING_TURN_ORDER_EASIER,
- CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER,
- CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST,
- CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS,
- CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED,
- CONTEST_EFFECT_DONT_EXCITE_AUDIENCE
-};
-
-enum
-{
- COMBO_STARTER_RAIN_DANCE = 1,
- COMBO_STARTER_RAGE,
- COMBO_STARTER_FOCUS_ENERGY,
- COMBO_STARTER_HYPNOSIS,
- COMBO_STARTER_ENDURE,
- COMBO_STARTER_HORN_ATTACK,
- COMBO_STARTER_SWORDS_DANCE,
- COMBO_STARTER_STOCKPILE,
- COMBO_STARTER_SUNNY_DAY,
- COMBO_STARTER_REST,
- COMBO_STARTER_VICE_GRIP,
- COMBO_STARTER_DEFENSE_CURL,
- COMBO_STARTER_CHARGE,
- COMBO_STARTER_ROCK_THROW,
- COMBO_STARTER_YAWN,
- COMBO_STARTER_SCARY_FACE,
- COMBO_STARTER_POWDER_SNOW,
- COMBO_STARTER_LOCK_ON,
- COMBO_STARTER_SOFT_BOILED,
- COMBO_STARTER_MEAN_LOOK,
- COMBO_STARTER_SCRATCH,
- COMBO_STARTER_GROWTH,
- COMBO_STARTER_HAIL,
- COMBO_STARTER_SANDSTORM,
- COMBO_STARTER_BELLY_DRUM,
- COMBO_STARTER_MIND_READER,
- COMBO_STARTER_DRAGON_BREATH,
- COMBO_STARTER_DRAGON_RAGE,
- COMBO_STARTER_DRAGON_DANCE,
- COMBO_STARTER_SURF,
- COMBO_STARTER_DIVE,
- COMBO_STARTER_STRING_SHOT,
- COMBO_STARTER_LEER,
- COMBO_STARTER_TAUNT,
- COMBO_STARTER_CHARM,
- COMBO_STARTER_HARDEN,
- COMBO_STARTER_SING,
- COMBO_STARTER_EARTHQUAKE,
- COMBO_STARTER_DOUBLE_TEAM,
- COMBO_STARTER_CURSE,
- COMBO_STARTER_SWEET_SCENT,
- COMBO_STARTER_SLUDGE,
- COMBO_STARTER_SLUDGE_BOMB,
- COMBO_STARTER_THUNDER_PUNCH,
- COMBO_STARTER_FIRE_PUNCH,
- COMBO_STARTER_ICE_PUNCH,
- COMBO_STARTER_PECK,
- COMBO_STARTER_METAL_SOUND,
- COMBO_STARTER_MUD_SPORT,
- COMBO_STARTER_WATER_SPORT,
- COMBO_STARTER_BONE_CLUB,
- COMBO_STARTER_BONEMERANG,
- COMBO_STARTER_BONE_RUSH,
- COMBO_STARTER_SAND_ATTACK,
- COMBO_STARTER_MUD_SLAP,
- COMBO_STARTER_FAKE_OUT,
- COMBO_STARTER_PSYCHIC,
- COMBO_STARTER_KINESIS,
- COMBO_STARTER_CONFUSION,
- COMBO_STARTER_POUND,
- COMBO_STARTER_SMOG,
- COMBO_STARTER_CALM_MIND
-};
-
-enum
-{
CONTEST_STRING_MORE_CONSCIOUS,
CONTEST_STRING_NO_APPEAL,
CONTEST_STRING_SETTLE_DOWN,
@@ -255,7 +137,7 @@ struct ContestStruct_field_18
struct Contest
{
u8 playerMoveChoice;
- u8 turnNumber;
+ u8 appealNumber;
u8 unused2[CONTESTANT_COUNT];
bool16 unk1920A_0:1; // Task active flags?
bool16 unk1920A_1:1;
@@ -273,14 +155,14 @@ struct Contest
u8 unk19211;
u8 unk19212;
u8 filler19213;
- u8 unk19214;
- u8 unk19215;
+ u8 turnNumber;
+ u8 currentContestant;
u8 unk19216; // sprite ID
s8 applauseLevel;
u8 prevTurnOrder[CONTESTANT_COUNT];
u32 unk1921C; // saved RNG value?
- u16 moveHistory[CONTEST_TURN_COUNT][CONTESTANT_COUNT];
- u8 excitementHistory[CONTEST_TURN_COUNT][CONTESTANT_COUNT];
+ u16 moveHistory[CONTEST_NUM_APPEALS][CONTESTANT_COUNT];
+ u8 excitementHistory[CONTEST_NUM_APPEALS][CONTESTANT_COUNT];
u8 applauseMeterSpriteId;
u8 contestSetupState;
u8 unk1925E;
@@ -431,9 +313,9 @@ struct ContestResources
#define eUnknownHeap1A004 (*(struct Shared1A004 *)(gHeap + 0x1a004))
extern struct ContestPokemon gContestMons[CONTESTANT_COUNT];
-extern s16 gContestMonConditions[CONTESTANT_COUNT];
+extern s16 gContestMonRound1Points[CONTESTANT_COUNT];
extern s16 gContestMonTotalPoints[CONTESTANT_COUNT];
-extern s16 gUnknown_02039F10[CONTESTANT_COUNT];
+extern s16 gContestMonAppealPointTotals[CONTESTANT_COUNT];
extern s16 gContestMonRound2Points[CONTESTANT_COUNT];
extern u8 gContestFinalStandings[CONTESTANT_COUNT];
extern u8 gContestMonPartyIndex;
@@ -457,8 +339,8 @@ void ResetLinkContestBoolean(void);
void LoadContestBgAfterMoveAnim(void);
void CB2_StartContest(void);
void CreateContestMonFromParty(u8 partyIndex);
-void sub_80DAB8C(u8 contestType, u8 rank);
-void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame);
+void SetContestants(u8 contestType, u8 rank);
+void SetLinkAIContestants(u8 contestType, u8 rank, bool32 isPostgame);
u8 GetContestEntryEligibility(struct Pokemon *pkmn);
void sub_80DB09C(u8 contestCategory);
bool8 IsSpeciesNotUnown(u16 species);
diff --git a/include/contest_link.h b/include/contest_link.h
index e52ebc426..52b7ee330 100644
--- a/include/contest_link.h
+++ b/include/contest_link.h
@@ -3,7 +3,7 @@
void sub_80FCC88(u8);
void sub_80FCC88(u8);
-void sub_80FCACC(u8);
+void Task_LinkContest_CommunicateFinalStandings(u8);
void sub_80FC580(u8);
void sub_80FC6BC(u8);
void sub_80FC804(u8);
@@ -11,8 +11,8 @@ void sub_80FCE48(u8);
void sub_80FC894(u8);
void Task_LinkContest_CommunicateMonIdxs(u8 taskId);
void sub_81D9DE4(u8 taskId);
-void sub_80FCF40(u8);
-void sub_80FCFD0(u8);
+void Task_LinkContest_CommunicateRound1Points(u8);
+void Task_LinkContest_CommunicateTurnOrder(u8);
void sub_80F8714(u8);
bool32 sub_80FC670(s16 *);
bool32 LinkContest_SendBlock(void *, u16);