mirror of
https://github.com/pret/pokeemerald.git
synced 2024-11-27 07:10:30 +00:00
Continue new contest documentation
This commit is contained in:
parent
52a4428ba6
commit
aca50c87be
@ -5,36 +5,42 @@
|
||||
.byte \score
|
||||
.endm
|
||||
|
||||
@ turn (AKA "Appeal No.")
|
||||
|
||||
.macro get_turn
|
||||
.macro get_appeal_num
|
||||
.byte 0x01
|
||||
.endm
|
||||
|
||||
.macro if_turn_less_than param, addr
|
||||
.macro if_appeal_num_less_than param, addr
|
||||
.byte 0x02
|
||||
.byte \param
|
||||
.4byte \addr
|
||||
.endm
|
||||
|
||||
.macro if_turn_more_than param, addr
|
||||
.macro if_appeal_num_more_than param, addr
|
||||
.byte 0x03
|
||||
.byte \param
|
||||
.4byte \addr
|
||||
.endm
|
||||
|
||||
.macro if_turn_eq param, addr
|
||||
.macro if_appeal_num_eq param, addr
|
||||
.byte 0x04
|
||||
.byte \param
|
||||
.4byte \addr
|
||||
.endm
|
||||
|
||||
.macro if_turn_not_eq param, addr
|
||||
.macro if_appeal_num_not_eq param, addr
|
||||
.byte 0x05
|
||||
.byte \param
|
||||
.4byte \addr
|
||||
.endm
|
||||
|
||||
.macro if_last_appeal addr:req
|
||||
if_appeal_num_eq CONTEST_LAST_APPEAL, \addr
|
||||
.endm
|
||||
|
||||
.macro if_not_last_appeal addr:req
|
||||
if_appeal_num_not_eq CONTEST_LAST_APPEAL, \addr
|
||||
.endm
|
||||
|
||||
@ audience excitement
|
||||
|
||||
.macro get_excitement
|
||||
@ -65,7 +71,7 @@
|
||||
.4byte \addr
|
||||
.endm
|
||||
|
||||
@ the order that the user goes in the current turn
|
||||
@ the order that the user goes in the current appeal
|
||||
|
||||
.macro get_user_order
|
||||
.byte 0x0B
|
||||
|
@ -1,4 +1,2 @@
|
||||
.include "constants/gba_constants.inc"
|
||||
.include "constants/global.inc"
|
||||
.include "constants/contest_constants.inc"
|
||||
.include "constants/contest_move_effects.inc"
|
||||
|
@ -1,68 +0,0 @@
|
||||
.set CONTEST_COOL, 0x00
|
||||
.set CONTEST_BEAUTY, 0x01
|
||||
.set CONTEST_CUTE, 0x02
|
||||
.set CONTEST_SMART, 0x03
|
||||
.set CONTEST_TOUGH, 0x04
|
||||
|
||||
.set COMBO_STARTER_RAIN_DANCE, 0x01
|
||||
.set COMBO_STARTER_RAGE, 0x02
|
||||
.set COMBO_STARTER_FOCUS_ENERGY, 0x03
|
||||
.set COMBO_STARTER_HYPNOSIS, 0x04
|
||||
.set COMBO_STARTER_ENDURE, 0x05
|
||||
.set COMBO_STARTER_HORN_ATTACK, 0x06
|
||||
.set COMBO_STARTER_SWORDS_DANCE, 0x07
|
||||
.set COMBO_STARTER_STOCKPILE, 0x08
|
||||
.set COMBO_STARTER_SUNNY_DAY, 0x09
|
||||
.set COMBO_STARTER_REST, 0x0A
|
||||
.set COMBO_STARTER_VICE_GRIP, 0x0B
|
||||
.set COMBO_STARTER_DEFENSE_CURL, 0x0C
|
||||
.set COMBO_STARTER_CHARGE, 0x0D
|
||||
.set COMBO_STARTER_ROCK_THROW, 0x0E
|
||||
.set COMBO_STARTER_YAWN, 0x0F
|
||||
.set COMBO_STARTER_SCARY_FACE, 0x10
|
||||
.set COMBO_STARTER_POWDER_SNOW, 0x11
|
||||
.set COMBO_STARTER_LOCK_ON, 0x12
|
||||
.set COMBO_STARTER_SOFT_BOILED, 0x13
|
||||
.set COMBO_STARTER_MEAN_LOOK, 0x14
|
||||
.set COMBO_STARTER_SCRATCH, 0x15
|
||||
.set COMBO_STARTER_GROWTH, 0x16
|
||||
.set COMBO_STARTER_HAIL, 0x17
|
||||
.set COMBO_STARTER_SANDSTORM, 0x18
|
||||
.set COMBO_STARTER_BELLY_DRUM, 0x19
|
||||
.set COMBO_STARTER_MIND_READER, 0x1A
|
||||
.set COMBO_STARTER_DRAGON_BREATH, 0x1B
|
||||
.set COMBO_STARTER_DRAGON_RAGE, 0x1C
|
||||
.set COMBO_STARTER_DRAGON_DANCE, 0x1D
|
||||
.set COMBO_STARTER_SURF, 0x1E
|
||||
.set COMBO_STARTER_DIVE, 0x1F
|
||||
.set COMBO_STARTER_STRING_SHOT, 0x20
|
||||
.set COMBO_STARTER_LEER, 0x21
|
||||
.set COMBO_STARTER_TAUNT, 0x22
|
||||
.set COMBO_STARTER_CHARM, 0x23
|
||||
.set COMBO_STARTER_HARDEN, 0x24
|
||||
.set COMBO_STARTER_SING, 0x25
|
||||
.set COMBO_STARTER_EARTHQUAKE, 0x26
|
||||
.set COMBO_STARTER_DOUBLE_TEAM, 0x27
|
||||
.set COMBO_STARTER_CURSE, 0x28
|
||||
.set COMBO_STARTER_SWEET_SCENT, 0x29
|
||||
.set COMBO_STARTER_SLUDGE, 0x2A
|
||||
.set COMBO_STARTER_SLUDGE_BOMB, 0x2B
|
||||
.set COMBO_STARTER_THUNDER_PUNCH, 0x2C
|
||||
.set COMBO_STARTER_FIRE_PUNCH, 0x2D
|
||||
.set COMBO_STARTER_ICE_PUNCH, 0x2E
|
||||
.set COMBO_STARTER_PECK, 0x2F
|
||||
.set COMBO_STARTER_METAL_SOUND, 0x30
|
||||
.set COMBO_STARTER_MUD_SPORT, 0x31
|
||||
.set COMBO_STARTER_WATER_SPORT, 0x32
|
||||
.set COMBO_STARTER_BONE_CLUB, 0x33
|
||||
.set COMBO_STARTER_BONEMERANG, 0x34
|
||||
.set COMBO_STARTER_BONE_RUSH, 0x35
|
||||
.set COMBO_STARTER_SAND_ATTACK, 0x36
|
||||
.set COMBO_STARTER_MUD_SLAP, 0x37
|
||||
.set COMBO_STARTER_FAKE_OUT, 0x38
|
||||
.set COMBO_STARTER_PSYCHIC, 0x39
|
||||
.set COMBO_STARTER_KINESIS, 0x3A
|
||||
.set COMBO_STARTER_CONFUSION, 0x3B
|
||||
.set COMBO_STARTER_POUND, 0x3C
|
||||
.set COMBO_STARTER_SMOG, 0x3D
|
||||
.set COMBO_STARTER_CALM_MIND, 0x3E
|
@ -1,49 +0,0 @@
|
||||
enum_start
|
||||
enum CONTEST_EFFECT_HIGHLY_APPEALING @ 0
|
||||
enum CONTEST_EFFECT_USER_MORE_EASILY_STARTLED @ 1
|
||||
enum CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES @ 2
|
||||
enum CONTEST_EFFECT_REPETITION_NOT_BORING @ 3
|
||||
enum CONTEST_EFFECT_AVOID_STARTLE_ONCE @ 4
|
||||
enum CONTEST_EFFECT_AVOID_STARTLE @ 5
|
||||
enum CONTEST_EFFECT_AVOID_STARTLE_SLIGHTLY @ 6
|
||||
enum CONTEST_EFFECT_USER_LESS_EASILY_STARTLED @ 7
|
||||
enum CONTEST_EFFECT_STARTLE_FRONT_MON @ 8
|
||||
enum CONTEST_EFFECT_SLIGHTLY_STARTLE_PREV_MONS @ 9
|
||||
enum CONTEST_EFFECT_STARTLE_PREV_MON @ 10
|
||||
enum CONTEST_EFFECT_STARTLE_PREV_MONS @ 11
|
||||
enum CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON @ 12
|
||||
enum CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS @ 13
|
||||
enum CONTEST_EFFECT_STARTLE_PREV_MON_2 @ 14
|
||||
enum CONTEST_EFFECT_STARTLE_PREV_MONS_2 @ 15
|
||||
enum CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION @ 16
|
||||
enum CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION @ 17
|
||||
enum CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN @ 18
|
||||
enum CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL @ 19
|
||||
enum CONTEST_EFFECT_STARTLE_MONS_COOL_APPEAL @ 20
|
||||
enum CONTEST_EFFECT_STARTLE_MONS_BEAUTY_APPEAL @ 21
|
||||
enum CONTEST_EFFECT_STARTLE_MONS_CUTE_APPEAL @ 22
|
||||
enum CONTEST_EFFECT_STARTLE_MONS_SMART_APPEAL @ 23
|
||||
enum CONTEST_EFFECT_STARTLE_MONS_TOUGH_APPEAL @ 24
|
||||
enum CONTEST_EFFECT_MAKE_FOLLOWING_MON_NERVOUS @ 25
|
||||
enum CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS @ 26
|
||||
enum CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS @ 27
|
||||
enum CONTEST_EFFECT_BADLY_STARTLES_MONS_IN_GOOD_CONDITION @ 28
|
||||
enum CONTEST_EFFECT_BETTER_IF_FIRST @ 29
|
||||
enum CONTEST_EFFECT_BETTER_IF_LAST @ 30
|
||||
enum CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES @ 31
|
||||
enum CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE @ 32
|
||||
enum CONTEST_EFFECT_BETTER_WHEN_LATER @ 33
|
||||
enum CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING @ 34
|
||||
enum CONTEST_EFFECT_BETTER_IF_SAME_TYPE @ 35
|
||||
enum CONTEST_EFFECT_BETTER_IF_DIFF_TYPE @ 36
|
||||
enum CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL @ 37
|
||||
enum CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS @ 38
|
||||
enum CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION @ 39
|
||||
enum CONTEST_EFFECT_NEXT_APPEAL_EARLIER @ 40
|
||||
enum CONTEST_EFFECT_NEXT_APPEAL_LATER @ 41
|
||||
enum CONTEST_EFFECT_MAKE_SCRAMBLING_TURN_ORDER_EASIER @ 42
|
||||
enum CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER @ 43
|
||||
enum CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST @ 44
|
||||
enum CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS @ 45
|
||||
enum CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED @ 46
|
||||
enum CONTEST_EFFECT_DONT_EXCITE_AUDIENCE @ 47
|
@ -1,9 +1,13 @@
|
||||
#include "constants/global.h"
|
||||
#include "constants/contest.h"
|
||||
.include "asm/macros.inc"
|
||||
.include "asm/macros/contest_ai_script.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section script_data, "aw", %progbits
|
||||
|
||||
@ TODO
|
||||
|
||||
enum_start
|
||||
enum MON_1
|
||||
enum MON_2
|
||||
@ -12,13 +16,13 @@
|
||||
|
||||
.align 2
|
||||
gContestAIChecks:: @ 82DE350
|
||||
.4byte AI_CheckForBadMove // 0x00000001
|
||||
.4byte AI_CheckForCombo // 0x00000002
|
||||
.4byte AI_CheckBoring // 0x00000004
|
||||
.4byte AI_CheckExcitement // 0x00000008
|
||||
.4byte AI_CheckOrder // 0x00000010
|
||||
.4byte AI_CheckForGoodMove // 0x00000020
|
||||
.4byte AI_Erratic // 0x00000040
|
||||
.4byte AI_CheckForBadMove @ CONTEST_AI_CHECK_BAD_MOVE
|
||||
.4byte AI_CheckForCombo @ CONTEST_AI_CHECK_COMBO
|
||||
.4byte AI_CheckBoring @ CONTEST_AI_CHECK_BORING
|
||||
.4byte AI_CheckExcitement @ CONTEST_AI_CHECK_EXCITEMENT
|
||||
.4byte AI_CheckOrder @ CONTEST_AI_CHECK_ORDER
|
||||
.4byte AI_CheckForGoodMove @ CONTEST_AI_CHECK_GOOD_MOVE
|
||||
.4byte AI_Erratic @ CONTEST_AI_ERRATIC
|
||||
.4byte AI_Nothing // 0x00000080
|
||||
.4byte AI_Nothing // 0x00000100
|
||||
.4byte AI_Nothing // 0x00000200
|
||||
@ -47,9 +51,9 @@ gContestAIChecks:: @ 82DE350
|
||||
|
||||
|
||||
@ Unreferenced AI routine to encourage moves that improve condition on the first
|
||||
@ turn. Additionally, it checks the appeal order of the user and the effect
|
||||
@ appeal. Additionally, it checks the turn order of the user and the effect
|
||||
@ type, but the code is buggy and doesnt affect the score.
|
||||
if_turn_not_eq 0, ContestUnreferenced_80
|
||||
if_appeal_num_not_eq 0, ContestUnreferenced_80
|
||||
if_effect_not_eq CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS, ContestUnreferenced_80
|
||||
score +10
|
||||
ContestUnreferenced_80:
|
||||
@ -64,11 +68,11 @@ ContestUnreferenced_end:
|
||||
end
|
||||
|
||||
@ Unreferenced AI routine that doesnt make much sense.
|
||||
if_turn_eq 0, ContestUnreferenced_0F_1
|
||||
if_turn_eq 1, ContestUnreferenced_0F_2
|
||||
if_turn_eq 2, ContestUnreferenced_0F_3
|
||||
if_turn_eq 3, ContestUnreferenced_0F_4
|
||||
if_turn_eq 4, ContestUnreferenced_0F_5
|
||||
if_appeal_num_eq 0, ContestUnreferenced_0F_1
|
||||
if_appeal_num_eq 1, ContestUnreferenced_0F_2
|
||||
if_appeal_num_eq 2, ContestUnreferenced_0F_3
|
||||
if_appeal_num_eq 3, ContestUnreferenced_0F_4
|
||||
if_last_appeal ContestUnreferenced_0F_5
|
||||
end
|
||||
ContestUnreferenced_0F_1:
|
||||
if_user_order_not_eq MON_1, ContestUnreferenced_2B_1
|
||||
@ -166,7 +170,7 @@ AI_contest7D_1_081DC2AB:
|
||||
end
|
||||
AI_contest0F_2_081DC2AB:
|
||||
if_user_order_not_eq MON_1, AI_contest7D_3_081DC2AB
|
||||
if_turn_eq 4, AI_score_081DC2AB
|
||||
if_last_appeal AI_score_081DC2AB
|
||||
AI_contest7D_2_081DC2AB:
|
||||
if_random 51, AI_end_081DC2AB
|
||||
score +10
|
||||
@ -222,22 +226,22 @@ AI_score_081DC348:
|
||||
score +25
|
||||
end
|
||||
AI_contest04_1_081DC348:
|
||||
if_turn_eq 4, AI_contest7D_081DC348
|
||||
if_last_appeal AI_contest7D_081DC348
|
||||
if_random 150, AI_end_081DC348
|
||||
score +10
|
||||
end
|
||||
AI_contest04_2_081DC348:
|
||||
if_turn_eq 4, AI_contest7D_081DC348
|
||||
if_last_appeal AI_contest7D_081DC348
|
||||
if_random 125, AI_end_081DC348
|
||||
score +10
|
||||
end
|
||||
AI_contest04_3_081DC348:
|
||||
if_turn_eq 4, AI_contest7D_081DC348
|
||||
if_last_appeal AI_contest7D_081DC348
|
||||
if_random 50, AI_end_081DC348
|
||||
score +10
|
||||
end
|
||||
AI_contest04_4_081DC348:
|
||||
if_turn_eq 4, AI_contest7D_081DC348
|
||||
if_last_appeal AI_contest7D_081DC348
|
||||
score +10
|
||||
end
|
||||
AI_contest7D_081DC348:
|
||||
@ -302,7 +306,7 @@ ContestEffect3:
|
||||
if_random 50, ContestEffectEnd
|
||||
score +15
|
||||
end
|
||||
if_turn_eq 4, ContestEffect3_7D
|
||||
if_last_appeal ContestEffect3_7D
|
||||
if_random 220, ContestEffect3_score
|
||||
score +10
|
||||
end
|
||||
@ -324,8 +328,8 @@ ContestEffect38_score1:
|
||||
score -10
|
||||
end
|
||||
ContestEffect38_contest04:
|
||||
if_turn_eq 4, ContestEffect38_score2
|
||||
if_turn_eq 0, ContestEffect38_random
|
||||
if_last_appeal ContestEffect38_score2
|
||||
if_appeal_num_eq 0, ContestEffect38_random
|
||||
if_move_used_count_eq 1, ContestEffectEnd
|
||||
if_random 125, ContestEffectEnd
|
||||
score +10
|
||||
@ -342,7 +346,7 @@ ContestEffect47:
|
||||
if_move_used_count_eq 1, ContestEffectEnd
|
||||
if_user_order_eq MON_1, ContestEffect47_random
|
||||
if_user_order_eq MON_2, ContestEffect47_random
|
||||
if_turn_not_eq 4, ContestEffectEnd
|
||||
if_not_last_appeal ContestEffectEnd
|
||||
if_user_has_exciting_move ContestEffectEnd
|
||||
if_excitement_less_than 1, ContestEffectEnd
|
||||
score +10
|
||||
@ -409,7 +413,7 @@ ContestEffect46:
|
||||
if_user_order_more_than MON_1, ContestEffect46_score4
|
||||
end
|
||||
ContestEffect46_05:
|
||||
if_turn_not_eq 0, ContestEffect46_score1
|
||||
if_appeal_num_not_eq 0, ContestEffect46_score1
|
||||
if_excitement_eq 4, ContestEffect46_score2
|
||||
if_excitement_eq 3, ContestEffect46_score3
|
||||
end
|
||||
@ -566,7 +570,7 @@ ContestEffect_FollowingMonsNervous_CheckMon2:
|
||||
end
|
||||
|
||||
ContestEffect18:
|
||||
if_turn_eq 4, ContestEffect18_score1
|
||||
if_last_appeal ContestEffect18_score1
|
||||
jump ContestEffect18_0E
|
||||
end
|
||||
ContestEffect18_score1:
|
||||
@ -600,9 +604,9 @@ ContestEffectEnd:
|
||||
|
||||
@ Randomly encourage moves in Cute, Smart, and Tough contests.
|
||||
AI_Erratic:
|
||||
if_contest_type_eq CONTEST_CUTE, Erratic_CuteSmartTough
|
||||
if_contest_type_eq CONTEST_SMART, Erratic_CuteSmartTough
|
||||
if_contest_type_eq CONTEST_TOUGH, Erratic_CuteSmartTough
|
||||
if_contest_type_eq CONTEST_CATEGORY_CUTE, Erratic_CuteSmartTough
|
||||
if_contest_type_eq CONTEST_CATEGORY_SMART, Erratic_CuteSmartTough
|
||||
if_contest_type_eq CONTEST_CATEGORY_TOUGH, Erratic_CuteSmartTough
|
||||
end
|
||||
Erratic_CuteSmartTough:
|
||||
if_random 125, Erratic_NoScoreIncrease
|
||||
@ -763,11 +767,11 @@ ContestEffect2_4_score3:
|
||||
end
|
||||
|
||||
ContestEffect2_2:
|
||||
if_turn_eq 0, ContestEffect2_2_score1
|
||||
if_turn_eq 1, ContestEffect2_2_score2
|
||||
if_turn_eq 2, ContestEffect2_2_score3
|
||||
if_turn_eq 3, ContestEffect2_2_score4
|
||||
if_turn_eq 4, ContestEffect2_2_score5
|
||||
if_appeal_num_eq 0, ContestEffect2_2_score1
|
||||
if_appeal_num_eq 1, ContestEffect2_2_score2
|
||||
if_appeal_num_eq 2, ContestEffect2_2_score3
|
||||
if_appeal_num_eq 3, ContestEffect2_2_score4
|
||||
if_last_appeal ContestEffect2_2_score5
|
||||
end
|
||||
ContestEffect2_2_score1:
|
||||
if_random 20, ContestEffectEnd2
|
||||
|
@ -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
|
||||
|
@ -15,124 +15,6 @@ enum
|
||||
CONTEST_DEBUG_MODE_PRINT_UNK_D
|
||||
};
|
||||
|
||||
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,
|
||||
@ -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);
|
||||
|
@ -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);
|
||||
|
376
src/contest.c
376
src/contest.c
File diff suppressed because it is too large
Load Diff
@ -10,11 +10,11 @@ extern const u8 *gAIScriptPtr;
|
||||
extern const u8 *gContestAIChecks[];
|
||||
|
||||
static void ContestAICmd_score(void);
|
||||
static void ContestAICmd_get_turn(void);
|
||||
static void ContestAICmd_if_turn_less_than(void);
|
||||
static void ContestAICmd_if_turn_more_than(void);
|
||||
static void ContestAICmd_if_turn_eq(void);
|
||||
static void ContestAICmd_if_turn_not_eq(void);
|
||||
static void ContestAICmd_get_appeal_num(void);
|
||||
static void ContestAICmd_if_appeal_num_less_than(void);
|
||||
static void ContestAICmd_if_appeal_num_more_than(void);
|
||||
static void ContestAICmd_if_appeal_num_eq(void);
|
||||
static void ContestAICmd_if_appeal_num_not_eq(void);
|
||||
static void ContestAICmd_get_excitement(void);
|
||||
static void ContestAICmd_if_excitement_less_than(void);
|
||||
static void ContestAICmd_if_excitement_more_than(void);
|
||||
@ -151,11 +151,11 @@ typedef void (* ContestAICmdFunc)(void);
|
||||
static const ContestAICmdFunc sContestAICmdTable[] =
|
||||
{
|
||||
ContestAICmd_score, // 0x00
|
||||
ContestAICmd_get_turn, // 0x01
|
||||
ContestAICmd_if_turn_less_than, // 0x02
|
||||
ContestAICmd_if_turn_more_than, // 0x03
|
||||
ContestAICmd_if_turn_eq, // 0x04
|
||||
ContestAICmd_if_turn_not_eq, // 0x05
|
||||
ContestAICmd_get_appeal_num, // 0x01
|
||||
ContestAICmd_if_appeal_num_less_than, // 0x02
|
||||
ContestAICmd_if_appeal_num_more_than, // 0x03
|
||||
ContestAICmd_if_appeal_num_eq, // 0x04
|
||||
ContestAICmd_if_appeal_num_not_eq, // 0x05
|
||||
ContestAICmd_get_excitement, // 0x06
|
||||
ContestAICmd_if_excitement_less_than, // 0x07
|
||||
ContestAICmd_if_excitement_more_than, // 0x08
|
||||
@ -324,7 +324,7 @@ u8 ContestAI_GetActionToUse(void)
|
||||
{
|
||||
// Randomly choose a move index. If it's the move
|
||||
// with the highest (or tied highest) score, return
|
||||
u8 moveIdx = Random() & (MAX_MON_MOVES - 1); // % 4 doesn't match
|
||||
u8 moveIdx = Random() & (MAX_MON_MOVES - 1); // % MAX_MON_MOVES doesn't match
|
||||
u8 score = eContestAI.moveScores[moveIdx];
|
||||
int i;
|
||||
for (i = 0; i < MAX_MON_MOVES; i++)
|
||||
@ -404,15 +404,15 @@ static void ContestAICmd_score(void)
|
||||
gAIScriptPtr += 2;
|
||||
}
|
||||
|
||||
static void ContestAICmd_get_turn(void)
|
||||
static void ContestAICmd_get_appeal_num(void)
|
||||
{
|
||||
eContestAI.scriptResult = eContest.turnNumber;
|
||||
eContestAI.scriptResult = eContest.appealNumber;
|
||||
gAIScriptPtr += 1;
|
||||
}
|
||||
|
||||
static void ContestAICmd_if_turn_less_than(void)
|
||||
static void ContestAICmd_if_appeal_num_less_than(void)
|
||||
{
|
||||
ContestAICmd_get_turn();
|
||||
ContestAICmd_get_appeal_num();
|
||||
|
||||
if (eContestAI.scriptResult < gAIScriptPtr[0])
|
||||
gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
|
||||
@ -420,9 +420,9 @@ static void ContestAICmd_if_turn_less_than(void)
|
||||
gAIScriptPtr += 5;
|
||||
}
|
||||
|
||||
static void ContestAICmd_if_turn_more_than(void)
|
||||
static void ContestAICmd_if_appeal_num_more_than(void)
|
||||
{
|
||||
ContestAICmd_get_turn();
|
||||
ContestAICmd_get_appeal_num();
|
||||
|
||||
if (eContestAI.scriptResult > gAIScriptPtr[0])
|
||||
gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
|
||||
@ -430,9 +430,9 @@ static void ContestAICmd_if_turn_more_than(void)
|
||||
gAIScriptPtr += 5;
|
||||
}
|
||||
|
||||
static void ContestAICmd_if_turn_eq(void)
|
||||
static void ContestAICmd_if_appeal_num_eq(void)
|
||||
{
|
||||
ContestAICmd_get_turn();
|
||||
ContestAICmd_get_appeal_num();
|
||||
|
||||
if (eContestAI.scriptResult == gAIScriptPtr[0])
|
||||
gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
|
||||
@ -440,9 +440,9 @@ static void ContestAICmd_if_turn_eq(void)
|
||||
gAIScriptPtr += 5;
|
||||
}
|
||||
|
||||
static void ContestAICmd_if_turn_not_eq(void)
|
||||
static void ContestAICmd_if_appeal_num_not_eq(void)
|
||||
{
|
||||
ContestAICmd_get_turn();
|
||||
ContestAICmd_get_appeal_num();
|
||||
|
||||
if (eContestAI.scriptResult != gAIScriptPtr[0])
|
||||
gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
|
||||
@ -636,7 +636,7 @@ static void ContestAICmd_unk_19(void)
|
||||
|
||||
static void ContestAICmd_unk_1A(void)
|
||||
{
|
||||
eContestAI.scriptResult = gContestMonConditions[eContestAI.contestantId];
|
||||
eContestAI.scriptResult = gContestMonRound1Points[eContestAI.contestantId];
|
||||
gAIScriptPtr += 1;
|
||||
}
|
||||
|
||||
@ -1357,7 +1357,7 @@ static void ContestAICmd_unk_5E(void)
|
||||
{
|
||||
u8 contestant = GetContestantIdByTurn(gAIScriptPtr[1]);
|
||||
|
||||
eContestAI.scriptResult = gContestMonConditions[contestant] - gContestMonConditions[eContestAI.contestantId];
|
||||
eContestAI.scriptResult = gContestMonRound1Points[contestant] - gContestMonRound1Points[eContestAI.contestantId];
|
||||
gAIScriptPtr += 2;
|
||||
}
|
||||
|
||||
|
@ -750,7 +750,7 @@ static void ContestEffect_NextAppealEarlier(void)
|
||||
s8 j;
|
||||
u8 turnOrder[CONTESTANT_COUNT];
|
||||
|
||||
if (eContest.turnNumber != 4)
|
||||
if (eContest.appealNumber != CONTEST_LAST_APPEAL)
|
||||
{
|
||||
for (i = 0; i < CONTESTANT_COUNT; i++)
|
||||
turnOrder[i] = eContestantStatus[i].nextTurnOrder;
|
||||
@ -792,7 +792,7 @@ static void ContestEffect_NextAppealLater(void)
|
||||
s8 j;
|
||||
u8 turnOrder[CONTESTANT_COUNT];
|
||||
|
||||
if (eContest.turnNumber != 4)
|
||||
if (eContest.appealNumber != CONTEST_LAST_APPEAL)
|
||||
{
|
||||
for (i = 0; i < CONTESTANT_COUNT; i++)
|
||||
turnOrder[i] = eContestantStatus[i].nextTurnOrder;
|
||||
@ -841,7 +841,7 @@ static void ContestEffect_ScrambleNextTurnOrder(void)
|
||||
u8 turnOrder[CONTESTANT_COUNT];
|
||||
u8 unselectedContestants[CONTESTANT_COUNT];
|
||||
|
||||
if (eContest.turnNumber != 4)
|
||||
if (eContest.appealNumber != CONTEST_LAST_APPEAL)
|
||||
{
|
||||
for (i = 0; i < CONTESTANT_COUNT; i++)
|
||||
{
|
||||
|
@ -297,7 +297,7 @@ void Task_LinkContest_CommunicateMoveSelections(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80FCACC(u8 taskId)
|
||||
void Task_LinkContest_CommunicateFinalStandings(u8 taskId)
|
||||
{
|
||||
switch (gTasks[taskId].tState)
|
||||
{
|
||||
@ -328,14 +328,14 @@ void sub_80FCACC(u8 taskId)
|
||||
case 3:
|
||||
if (IsLinkTaskFinished())
|
||||
{
|
||||
if (LinkContest_SendBlock(gUnknown_02039F10, sizeof(gUnknown_02039F10)) == 1)
|
||||
if (LinkContest_SendBlock(gContestMonAppealPointTotals, sizeof(gContestMonAppealPointTotals)) == 1)
|
||||
gTasks[taskId].tState++;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (LinkContest_GetBlockReceivedFromAllPlayers())
|
||||
{
|
||||
memcpy(gUnknown_02039F10, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gUnknown_02039F10));
|
||||
memcpy(gContestMonAppealPointTotals, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestMonAppealPointTotals));
|
||||
gTasks[taskId].tState++;
|
||||
}
|
||||
break;
|
||||
@ -381,14 +381,14 @@ void sub_80FCC88(u8 taskId)
|
||||
case 0:
|
||||
if (IsLinkTaskFinished())
|
||||
{
|
||||
if (LinkContest_SendBlock(eContestantStatus, 4 * sizeof(struct ContestantStatus)) == 1)
|
||||
if (LinkContest_SendBlock(eContestantStatus, CONTESTANT_COUNT * sizeof(struct ContestantStatus)) == 1)
|
||||
gTasks[taskId].tState++;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (LinkContest_GetBlockReceivedFromAllPlayers())
|
||||
{
|
||||
memcpy(eContestantStatus, gBlockRecvBuffer[gUnknown_02039F2B], 4 * sizeof(struct ContestantStatus));
|
||||
memcpy(eContestantStatus, gBlockRecvBuffer[gUnknown_02039F2B], CONTESTANT_COUNT * sizeof(struct ContestantStatus));
|
||||
gTasks[taskId].tState++;
|
||||
}
|
||||
break;
|
||||
@ -497,7 +497,7 @@ void sub_80FCE48(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80FCF40(u8 taskId)
|
||||
void Task_LinkContest_CommunicateRound1Points(u8 taskId)
|
||||
{
|
||||
if (!sub_80FC670(&gTasks[taskId].data[12]))
|
||||
return;
|
||||
@ -507,14 +507,14 @@ void sub_80FCF40(u8 taskId)
|
||||
case 0:
|
||||
if (IsLinkTaskFinished())
|
||||
{
|
||||
if (LinkContest_SendBlock(gContestMonConditions, sizeof(gContestMonConditions)) == 1)
|
||||
if (LinkContest_SendBlock(gContestMonRound1Points, sizeof(gContestMonRound1Points)) == 1)
|
||||
gTasks[taskId].tState++;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (LinkContest_GetBlockReceivedFromAllPlayers())
|
||||
{
|
||||
memcpy(gContestMonConditions, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestMonConditions));
|
||||
memcpy(gContestMonRound1Points, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestMonRound1Points));
|
||||
gTasks[taskId].tState++;
|
||||
}
|
||||
break;
|
||||
@ -526,7 +526,7 @@ void sub_80FCF40(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80FCFD0(u8 taskId)
|
||||
void Task_LinkContest_CommunicateTurnOrder(u8 taskId)
|
||||
{
|
||||
if (!sub_80FC670(&gTasks[taskId].data[12]))
|
||||
return;
|
||||
|
@ -70,29 +70,30 @@ static void sub_81D9F68(u8 taskId)
|
||||
u8 i;
|
||||
u8 rank;
|
||||
int gameCleared;
|
||||
u8 data1[4];
|
||||
u8 data2[4];
|
||||
u8 contestCategories[CONTESTANT_COUNT];
|
||||
u8 data2[CONTESTANT_COUNT];
|
||||
|
||||
memset(data1, 0, sizeof(data1));
|
||||
memset(contestCategories, 0, sizeof(contestCategories));
|
||||
memset(data2, 0, sizeof(data2));
|
||||
|
||||
for (i = 0; i < gNumLinkContestPlayers; i++)
|
||||
data1[i] = gTasks[taskId].data[i + 1];
|
||||
contestCategories[i] = gTasks[taskId].data[i + 1];
|
||||
|
||||
// Ensure all players are doing the same category
|
||||
i = 0;
|
||||
if (i < gNumLinkContestPlayers)
|
||||
{
|
||||
while (++i < gNumLinkContestPlayers)
|
||||
{
|
||||
if (data1[0] != data1[i])
|
||||
if (contestCategories[0] != contestCategories[i])
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (i == gNumLinkContestPlayers)
|
||||
gSpecialVar_0x8004 = 0;
|
||||
gSpecialVar_0x8004 = FALSE;
|
||||
else
|
||||
gSpecialVar_0x8004 = 1;
|
||||
gSpecialVar_0x8004 = TRUE;
|
||||
|
||||
for (i = 0; i < gNumLinkContestPlayers; i++)
|
||||
data2[i] = gTasks[taskId].data[i + 5];
|
||||
@ -119,7 +120,7 @@ static void sub_81D9F68(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
sub_80DACBC(data1[0], rank, gameCleared);
|
||||
SetLinkAIContestants(contestCategories[0], rank, gameCleared);
|
||||
}
|
||||
|
||||
gUnknown_02039F2B = sub_80F86E0(data2);
|
||||
@ -132,13 +133,13 @@ static void sub_81D9F68(u8 taskId)
|
||||
static void sub_81DA10C(u8 taskId)
|
||||
{
|
||||
sub_80DB09C(gSpecialVar_ContestCategory);
|
||||
SetTaskFuncWithFollowupFunc(taskId, sub_80FCF40, sub_81DA138);
|
||||
SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateRound1Points, sub_81DA138);
|
||||
}
|
||||
|
||||
static void sub_81DA138(u8 taskId)
|
||||
{
|
||||
SortContestants(FALSE);
|
||||
SetTaskFuncWithFollowupFunc(taskId, sub_80FCFD0, sub_80F8714);
|
||||
SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateTurnOrder, sub_80F8714);
|
||||
}
|
||||
|
||||
static void sub_81DA160(u8 taskId)
|
||||
|
@ -1718,7 +1718,7 @@ static void LoadContestResultsTilemaps(void)
|
||||
// Represented on results board as stars
|
||||
static u8 GetNumPreliminaryPoints(u8 monIndex, bool8 capPoints)
|
||||
{
|
||||
u32 condition = gContestMonConditions[monIndex] << 16;
|
||||
u32 condition = gContestMonRound1Points[monIndex] << 16;
|
||||
u32 numStars = condition / 0x3F;
|
||||
|
||||
if (numStars & 0xFFFF)
|
||||
@ -1966,7 +1966,7 @@ static void CalculateContestantsResultData(void)
|
||||
|
||||
for (i = 0; i < CONTESTANT_COUNT; i++)
|
||||
{
|
||||
relativePoints = (gContestMonConditions[i] * 1000) / abs(highestPoints);
|
||||
relativePoints = (gContestMonRound1Points[i] * 1000) / abs(highestPoints);
|
||||
if (relativePoints % 10 > 4)
|
||||
relativePoints += 10;
|
||||
(*sContestResults->monResults)[i].relativePreliminaryPoints = relativePoints / 10;
|
||||
@ -2206,7 +2206,7 @@ void TryEnterContestMon(void)
|
||||
// Nonzero eligibility can still be non-eligibile, if mon is fainted or egg
|
||||
if (eligibility)
|
||||
{
|
||||
sub_80DAB8C(gSpecialVar_ContestCategory, gSpecialVar_ContestRank);
|
||||
SetContestants(gSpecialVar_ContestCategory, gSpecialVar_ContestRank);
|
||||
sub_80DB09C(gSpecialVar_ContestCategory);
|
||||
}
|
||||
|
||||
@ -2324,7 +2324,7 @@ void GetContestMonConditionRanking(void)
|
||||
|
||||
for (i = 0, rank = 0; i < CONTESTANT_COUNT; i++)
|
||||
{
|
||||
if (gContestMonConditions[gSpecialVar_0x8006] < gContestMonConditions[i])
|
||||
if (gContestMonRound1Points[gSpecialVar_0x8006] < gContestMonRound1Points[i])
|
||||
rank++;
|
||||
}
|
||||
|
||||
@ -2333,7 +2333,7 @@ void GetContestMonConditionRanking(void)
|
||||
|
||||
void GetContestMonCondition(void)
|
||||
{
|
||||
gSpecialVar_0x8004 = gContestMonConditions[gSpecialVar_0x8006];
|
||||
gSpecialVar_0x8004 = gContestMonRound1Points[gSpecialVar_0x8006];
|
||||
}
|
||||
|
||||
void GetContestWinnerId(void)
|
||||
@ -2472,13 +2472,13 @@ static void sub_80F85BC(u8 taskId)
|
||||
|
||||
gUnknown_02039F2B = sub_80F86E0(sp4);
|
||||
sub_80DB09C(gSpecialVar_ContestCategory);
|
||||
SetTaskFuncWithFollowupFunc(taskId, sub_80FCF40, sub_80F86B8);
|
||||
SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateRound1Points, sub_80F86B8);
|
||||
}
|
||||
|
||||
static void sub_80F86B8(u8 taskId)
|
||||
{
|
||||
SortContestants(FALSE);
|
||||
SetTaskFuncWithFollowupFunc(taskId, sub_80FCFD0, sub_80F8714);
|
||||
SetTaskFuncWithFollowupFunc(taskId, Task_LinkContest_CommunicateTurnOrder, sub_80F8714);
|
||||
}
|
||||
|
||||
u8 sub_80F86E0(u8 *arg0)
|
||||
|
@ -183,7 +183,7 @@ const struct ContestPokemon gContestOpponents[] =
|
||||
.nickname = _("POOCHY"),
|
||||
.trainerName = _("JIMMY"),
|
||||
.trainerGfxId = OBJ_EVENT_GFX_BOY_1,
|
||||
.aiChecks = 0xC000FFF,
|
||||
.aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_20 | CONTEST_AI_DUMMY_21,
|
||||
.whichRank = CONTEST_RANK_NORMAL,
|
||||
.aiPool_Cool = TRUE,
|
||||
.aiPool_Beauty = FALSE,
|
||||
@ -211,7 +211,7 @@ const struct ContestPokemon gContestOpponents[] =
|
||||
.nickname = _("MUSILLE"),
|
||||
.trainerName = _("EDITH"),
|
||||
.trainerGfxId = OBJ_EVENT_GFX_GIRL_1,
|
||||
.aiChecks = 0x82000FFF,
|
||||
.aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_19 | CONTEST_AI_DUMMY_25,
|
||||
.whichRank = CONTEST_RANK_NORMAL,
|
||||
.aiPool_Cool = FALSE,
|
||||
.aiPool_Beauty = FALSE,
|
||||
@ -239,7 +239,7 @@ const struct ContestPokemon gContestOpponents[] =
|
||||
.nickname = _("DUSTER"),
|
||||
.trainerName = _("EVAN"),
|
||||
.trainerGfxId = OBJ_EVENT_GFX_LITTLE_BOY,
|
||||
.aiChecks = 0x21000FFF,
|
||||
.aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_18 | CONTEST_AI_DUMMY_23,
|
||||
.whichRank = CONTEST_RANK_NORMAL,
|
||||
.aiPool_Cool = FALSE,
|
||||
.aiPool_Beauty = TRUE,
|
||||
@ -603,7 +603,7 @@ const struct ContestPokemon gContestOpponents[] =
|
||||
.nickname = _("BULBY"),
|
||||
.trainerName = _("AGATHA"),
|
||||
.trainerGfxId = OBJ_EVENT_GFX_WOMAN_2,
|
||||
.aiChecks = 0xC000FFF,
|
||||
.aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMY_1 | CONTEST_AI_DUMMY_2 | CONTEST_AI_DUMMY_3 | CONTEST_AI_DUMMY_4 | CONTEST_AI_DUMMY_5 | CONTEST_AI_DUMMY_20 | CONTEST_AI_DUMMY_21,
|
||||
.whichRank = CONTEST_RANK_NORMAL,
|
||||
.aiPool_Cool = FALSE,
|
||||
.aiPool_Beauty = FALSE,
|
||||
@ -631,7 +631,7 @@ const struct ContestPokemon gContestOpponents[] =
|
||||
.nickname = _("FUTTERBE"),
|
||||
.trainerName = _("BEAU"),
|
||||
.trainerGfxId = OBJ_EVENT_GFX_HEX_MANIAC,
|
||||
.aiChecks = 0x82000FFF,
|
||||
.aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_19 | CONTEST_AI_DUMMY_25,
|
||||
.whichRank = CONTEST_RANK_NORMAL,
|
||||
.aiPool_Cool = FALSE,
|
||||
.aiPool_Beauty = TRUE,
|
||||
@ -659,7 +659,7 @@ const struct ContestPokemon gContestOpponents[] =
|
||||
.nickname = _("PIDEOT"),
|
||||
.trainerName = _("KAY"),
|
||||
.trainerGfxId = OBJ_EVENT_GFX_WOMAN_5,
|
||||
.aiChecks = 0x21000FFF,
|
||||
.aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_18 | CONTEST_AI_DUMMY_23,
|
||||
.whichRank = CONTEST_RANK_NORMAL,
|
||||
.aiPool_Cool = TRUE,
|
||||
.aiPool_Beauty = TRUE,
|
||||
@ -883,7 +883,7 @@ const struct ContestPokemon gContestOpponents[] =
|
||||
.nickname = _("DUODO"),
|
||||
.trainerName = _("BOBBY"),
|
||||
.trainerGfxId = OBJ_EVENT_GFX_RUNNING_TRIATHLETE_M,
|
||||
.aiChecks = 0x82000FFF,
|
||||
.aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_19 | CONTEST_AI_DUMMY_25,
|
||||
.whichRank = CONTEST_RANK_SUPER,
|
||||
.aiPool_Cool = TRUE,
|
||||
.aiPool_Beauty = TRUE,
|
||||
@ -1275,7 +1275,7 @@ const struct ContestPokemon gContestOpponents[] =
|
||||
.nickname = _("BROWLO"),
|
||||
.trainerName = _("LUKE"),
|
||||
.trainerGfxId = OBJ_EVENT_GFX_FAT_MAN,
|
||||
.aiChecks = 0xC000FFF,
|
||||
.aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMY_1 | CONTEST_AI_DUMMY_2 | CONTEST_AI_DUMMY_3 | CONTEST_AI_DUMMY_4 | CONTEST_AI_DUMMY_5 | CONTEST_AI_DUMMY_20 | CONTEST_AI_DUMMY_21,
|
||||
.whichRank = CONTEST_RANK_SUPER,
|
||||
.aiPool_Cool = FALSE,
|
||||
.aiPool_Beauty = FALSE,
|
||||
@ -1303,7 +1303,7 @@ const struct ContestPokemon gContestOpponents[] =
|
||||
.nickname = _("FETCHIN"),
|
||||
.trainerName = _("RAUL"),
|
||||
.trainerGfxId = OBJ_EVENT_GFX_MAN_5,
|
||||
.aiChecks = 0x82000FFF,
|
||||
.aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_19 | CONTEST_AI_DUMMY_25,
|
||||
.whichRank = CONTEST_RANK_SUPER,
|
||||
.aiPool_Cool = TRUE,
|
||||
.aiPool_Beauty = FALSE,
|
||||
@ -1331,7 +1331,7 @@ const struct ContestPokemon gContestOpponents[] =
|
||||
.nickname = _("SEELEY"),
|
||||
.trainerName = _("JADA"),
|
||||
.trainerGfxId = OBJ_EVENT_GFX_WOMAN_2,
|
||||
.aiChecks = 0x21000FFF,
|
||||
.aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_18 | CONTEST_AI_DUMMY_23,
|
||||
.whichRank = CONTEST_RANK_SUPER,
|
||||
.aiPool_Cool = FALSE,
|
||||
.aiPool_Beauty = TRUE,
|
||||
@ -1555,7 +1555,7 @@ const struct ContestPokemon gContestOpponents[] =
|
||||
.nickname = _("SHIFTY"),
|
||||
.trainerName = _("CLAUDIA"),
|
||||
.trainerGfxId = OBJ_EVENT_GFX_GIRL_1,
|
||||
.aiChecks = 0x82000FFF,
|
||||
.aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_19 | CONTEST_AI_DUMMY_25,
|
||||
.whichRank = CONTEST_RANK_HYPER,
|
||||
.aiPool_Cool = TRUE,
|
||||
.aiPool_Beauty = TRUE,
|
||||
@ -1947,7 +1947,7 @@ const struct ContestPokemon gContestOpponents[] =
|
||||
.nickname = _("EGGSOR"),
|
||||
.trainerName = _("GRACIE"),
|
||||
.trainerGfxId = OBJ_EVENT_GFX_PICNICKER,
|
||||
.aiChecks = 0xC000FFF,
|
||||
.aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMY_1 | CONTEST_AI_DUMMY_2 | CONTEST_AI_DUMMY_3 | CONTEST_AI_DUMMY_4 | CONTEST_AI_DUMMY_5 | CONTEST_AI_DUMMY_20 | CONTEST_AI_DUMMY_21,
|
||||
.whichRank = CONTEST_RANK_HYPER,
|
||||
.aiPool_Cool = FALSE,
|
||||
.aiPool_Beauty = FALSE,
|
||||
@ -1975,7 +1975,7 @@ const struct ContestPokemon gContestOpponents[] =
|
||||
.nickname = _("CUBIN"),
|
||||
.trainerName = _("COLTIN"),
|
||||
.trainerGfxId = OBJ_EVENT_GFX_MAN_4,
|
||||
.aiChecks = 0x82000FFF,
|
||||
.aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_19 | CONTEST_AI_DUMMY_25,
|
||||
.whichRank = CONTEST_RANK_HYPER,
|
||||
.aiPool_Cool = FALSE,
|
||||
.aiPool_Beauty = FALSE,
|
||||
@ -2003,7 +2003,7 @@ const struct ContestPokemon gContestOpponents[] =
|
||||
.nickname = _("HITMON"),
|
||||
.trainerName = _("ELLIE"),
|
||||
.trainerGfxId = OBJ_EVENT_GFX_EXPERT_F,
|
||||
.aiChecks = 0x21000FFF,
|
||||
.aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_18 | CONTEST_AI_DUMMY_23,
|
||||
.whichRank = CONTEST_RANK_HYPER,
|
||||
.aiPool_Cool = TRUE,
|
||||
.aiPool_Beauty = FALSE,
|
||||
@ -2227,7 +2227,7 @@ const struct ContestPokemon gContestOpponents[] =
|
||||
.nickname = _("LOUDERD"),
|
||||
.trainerName = _("RALPH"),
|
||||
.trainerGfxId = OBJ_EVENT_GFX_EXPERT_M,
|
||||
.aiChecks = 0x82000FFF,
|
||||
.aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_19 | CONTEST_AI_DUMMY_25,
|
||||
.whichRank = CONTEST_RANK_MASTER,
|
||||
.aiPool_Cool = TRUE,
|
||||
.aiPool_Beauty = FALSE,
|
||||
@ -2619,7 +2619,7 @@ const struct ContestPokemon gContestOpponents[] =
|
||||
.nickname = _("GAREN"),
|
||||
.trainerName = _("CAMILE"),
|
||||
.trainerGfxId = OBJ_EVENT_GFX_HEX_MANIAC,
|
||||
.aiChecks = 0xC000FFF,
|
||||
.aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMY_1 | CONTEST_AI_DUMMY_2 | CONTEST_AI_DUMMY_3 | CONTEST_AI_DUMMY_4 | CONTEST_AI_DUMMY_5 | CONTEST_AI_DUMMY_20 | CONTEST_AI_DUMMY_21,
|
||||
.whichRank = CONTEST_RANK_MASTER,
|
||||
.aiPool_Cool = TRUE,
|
||||
.aiPool_Beauty = FALSE,
|
||||
@ -2647,7 +2647,7 @@ const struct ContestPokemon gContestOpponents[] =
|
||||
.nickname = _("GONPOR"),
|
||||
.trainerName = _("MARTIN"),
|
||||
.trainerGfxId = OBJ_EVENT_GFX_SCIENTIST_1,
|
||||
.aiChecks = 0x82000FFF,
|
||||
.aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_19 | CONTEST_AI_DUMMY_25,
|
||||
.whichRank = CONTEST_RANK_MASTER,
|
||||
.aiPool_Cool = TRUE,
|
||||
.aiPool_Beauty = TRUE,
|
||||
@ -2675,7 +2675,7 @@ const struct ContestPokemon gContestOpponents[] =
|
||||
.nickname = _("DRITE"),
|
||||
.trainerName = _("SERGIO"),
|
||||
.trainerGfxId = OBJ_EVENT_GFX_BOY_1,
|
||||
.aiChecks = 0x21000FFF,
|
||||
.aiChecks = CONTEST_AI_ALL | CONTEST_AI_DUMMIES_1 | CONTEST_AI_DUMMY_18 | CONTEST_AI_DUMMY_23,
|
||||
.whichRank = CONTEST_RANK_MASTER,
|
||||
.aiPool_Cool = TRUE,
|
||||
.aiPool_Beauty = FALSE,
|
||||
|
@ -158,7 +158,7 @@ void sub_80F8970(void)
|
||||
u8 r7;
|
||||
|
||||
for (i = 0; i < CONTESTANT_COUNT; i++)
|
||||
conditions[i] = gContestMonConditions[i];
|
||||
conditions[i] = gContestMonRound1Points[i];
|
||||
|
||||
for (i = 0; i < CONTESTANT_COUNT - 1; i++)
|
||||
{
|
||||
@ -195,7 +195,7 @@ void sub_80F8970(void)
|
||||
var2 = r8;
|
||||
for (i = 0; i < CONTESTANT_COUNT; i++)
|
||||
{
|
||||
if (condition == gContestMonConditions[i])
|
||||
if (condition == gContestMonRound1Points[i])
|
||||
{
|
||||
if (var2 == 1)
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user