Update to latest master branch + allow Reveal Glass to work with Enamorus

This commit is contained in:
Blackforest92
2022-08-24 15:00:48 +07:00
2333 changed files with 130394 additions and 34551 deletions

View File

@@ -77,9 +77,221 @@
#define ABILITY_WHITE_SMOKE 73
#define ABILITY_PURE_POWER 74
#define ABILITY_SHELL_ARMOR 75
#define ABILITY_CACOPHONY 76
#define ABILITY_AIR_LOCK 77
#define ABILITY_AIR_LOCK 76
#define ABILITIES_COUNT 78
#define ABILITIES_COUNT_GEN3 77
// Gen 4
#define ABILITY_TANGLED_FEET 77
#define ABILITY_MOTOR_DRIVE 78
#define ABILITY_RIVALRY 79
#define ABILITY_STEADFAST 80
#define ABILITY_SNOW_CLOAK 81
#define ABILITY_GLUTTONY 82
#define ABILITY_ANGER_POINT 83
#define ABILITY_UNBURDEN 84
#define ABILITY_HEATPROOF 85
#define ABILITY_SIMPLE 86
#define ABILITY_DRY_SKIN 87
#define ABILITY_DOWNLOAD 88
#define ABILITY_IRON_FIST 89
#define ABILITY_POISON_HEAL 90
#define ABILITY_ADAPTABILITY 91
#define ABILITY_SKILL_LINK 92
#define ABILITY_HYDRATION 93
#define ABILITY_SOLAR_POWER 94
#define ABILITY_QUICK_FEET 95
#define ABILITY_NORMALIZE 96
#define ABILITY_SNIPER 97
#define ABILITY_MAGIC_GUARD 98
#define ABILITY_NO_GUARD 99
#define ABILITY_STALL 100
#define ABILITY_TECHNICIAN 101
#define ABILITY_LEAF_GUARD 102
#define ABILITY_KLUTZ 103
#define ABILITY_MOLD_BREAKER 104
#define ABILITY_SUPER_LUCK 105
#define ABILITY_AFTERMATH 106
#define ABILITY_ANTICIPATION 107
#define ABILITY_FOREWARN 108
#define ABILITY_UNAWARE 109
#define ABILITY_TINTED_LENS 110
#define ABILITY_FILTER 111
#define ABILITY_SLOW_START 112
#define ABILITY_SCRAPPY 113
#define ABILITY_STORM_DRAIN 114
#define ABILITY_ICE_BODY 115
#define ABILITY_SOLID_ROCK 116
#define ABILITY_SNOW_WARNING 117
#define ABILITY_HONEY_GATHER 118
#define ABILITY_FRISK 119
#define ABILITY_RECKLESS 120
#define ABILITY_MULTITYPE 121
#define ABILITY_FLOWER_GIFT 122
#define ABILITY_BAD_DREAMS 123
#define ABILITIES_COUNT_GEN4 124
// Gen 5
#define ABILITY_PICKPOCKET 124
#define ABILITY_SHEER_FORCE 125
#define ABILITY_CONTRARY 126
#define ABILITY_UNNERVE 127
#define ABILITY_DEFIANT 128
#define ABILITY_DEFEATIST 129
#define ABILITY_CURSED_BODY 130
#define ABILITY_HEALER 131
#define ABILITY_FRIEND_GUARD 132
#define ABILITY_WEAK_ARMOR 133
#define ABILITY_HEAVY_METAL 134
#define ABILITY_LIGHT_METAL 135
#define ABILITY_MULTISCALE 136
#define ABILITY_TOXIC_BOOST 137
#define ABILITY_FLARE_BOOST 138
#define ABILITY_HARVEST 139
#define ABILITY_TELEPATHY 140
#define ABILITY_MOODY 141
#define ABILITY_OVERCOAT 142
#define ABILITY_POISON_TOUCH 143
#define ABILITY_REGENERATOR 144
#define ABILITY_BIG_PECKS 145
#define ABILITY_SAND_RUSH 146
#define ABILITY_WONDER_SKIN 147
#define ABILITY_ANALYTIC 148
#define ABILITY_ILLUSION 149
#define ABILITY_IMPOSTER 150
#define ABILITY_INFILTRATOR 151
#define ABILITY_MUMMY 152
#define ABILITY_MOXIE 153
#define ABILITY_JUSTIFIED 154
#define ABILITY_RATTLED 155
#define ABILITY_MAGIC_BOUNCE 156
#define ABILITY_SAP_SIPPER 157
#define ABILITY_PRANKSTER 158
#define ABILITY_SAND_FORCE 159
#define ABILITY_IRON_BARBS 160
#define ABILITY_ZEN_MODE 161
#define ABILITY_VICTORY_STAR 162
#define ABILITY_TURBOBLAZE 163
#define ABILITY_TERAVOLT 164
#define ABILITIES_COUNT_GEN5 165
// Gen 6
#define ABILITY_AROMA_VEIL 165
#define ABILITY_FLOWER_VEIL 166
#define ABILITY_CHEEK_POUCH 167
#define ABILITY_PROTEAN 168
#define ABILITY_FUR_COAT 169
#define ABILITY_MAGICIAN 170
#define ABILITY_BULLETPROOF 171
#define ABILITY_COMPETITIVE 172
#define ABILITY_STRONG_JAW 173
#define ABILITY_REFRIGERATE 174
#define ABILITY_SWEET_VEIL 175
#define ABILITY_STANCE_CHANGE 176
#define ABILITY_GALE_WINGS 177
#define ABILITY_MEGA_LAUNCHER 178
#define ABILITY_GRASS_PELT 179
#define ABILITY_SYMBIOSIS 180
#define ABILITY_TOUGH_CLAWS 181
#define ABILITY_PIXILATE 182
#define ABILITY_GOOEY 183
#define ABILITY_AERILATE 184
#define ABILITY_PARENTAL_BOND 185
#define ABILITY_DARK_AURA 186
#define ABILITY_FAIRY_AURA 187
#define ABILITY_AURA_BREAK 188
#define ABILITY_PRIMORDIAL_SEA 189
#define ABILITY_DESOLATE_LAND 190
#define ABILITY_DELTA_STREAM 191
#define ABILITIES_COUNT_GEN6 192
// Gen 7
#define ABILITY_STAMINA 192
#define ABILITY_WIMP_OUT 193
#define ABILITY_EMERGENCY_EXIT 194
#define ABILITY_WATER_COMPACTION 195
#define ABILITY_MERCILESS 196
#define ABILITY_SHIELDS_DOWN 197
#define ABILITY_STAKEOUT 198
#define ABILITY_WATER_BUBBLE 199
#define ABILITY_STEELWORKER 200
#define ABILITY_BERSERK 201
#define ABILITY_SLUSH_RUSH 202
#define ABILITY_LONG_REACH 203
#define ABILITY_LIQUID_VOICE 204
#define ABILITY_TRIAGE 205
#define ABILITY_GALVANIZE 206
#define ABILITY_SURGE_SURFER 207
#define ABILITY_SCHOOLING 208
#define ABILITY_DISGUISE 209
#define ABILITY_BATTLE_BOND 210
#define ABILITY_POWER_CONSTRUCT 211
#define ABILITY_CORROSION 212
#define ABILITY_COMATOSE 213
#define ABILITY_QUEENLY_MAJESTY 214
#define ABILITY_INNARDS_OUT 215
#define ABILITY_DANCER 216
#define ABILITY_BATTERY 217
#define ABILITY_FLUFFY 218
#define ABILITY_DAZZLING 219
#define ABILITY_SOUL_HEART 220
#define ABILITY_TANGLING_HAIR 221
#define ABILITY_RECEIVER 222
#define ABILITY_POWER_OF_ALCHEMY 223
#define ABILITY_BEAST_BOOST 224
#define ABILITY_RKS_SYSTEM 225
#define ABILITY_ELECTRIC_SURGE 226
#define ABILITY_PSYCHIC_SURGE 227
#define ABILITY_MISTY_SURGE 228
#define ABILITY_GRASSY_SURGE 229
#define ABILITY_FULL_METAL_BODY 230
#define ABILITY_SHADOW_SHIELD 231
#define ABILITY_PRISM_ARMOR 232
#define ABILITY_NEUROFORCE 233
#define ABILITIES_COUNT_GEN7 234
// Gen 8
#define ABILITY_INTREPID_SWORD 234
#define ABILITY_DAUNTLESS_SHIELD 235
#define ABILITY_LIBERO 236
#define ABILITY_BALL_FETCH 237
#define ABILITY_COTTON_DOWN 238
#define ABILITY_PROPELLER_TAIL 239
#define ABILITY_MIRROR_ARMOR 240
#define ABILITY_GULP_MISSILE 241
#define ABILITY_STALWART 242
#define ABILITY_STEAM_ENGINE 243
#define ABILITY_PUNK_ROCK 244
#define ABILITY_SAND_SPIT 245
#define ABILITY_ICE_SCALES 246
#define ABILITY_RIPEN 247
#define ABILITY_ICE_FACE 248
#define ABILITY_POWER_SPOT 249
#define ABILITY_MIMICRY 250
#define ABILITY_SCREEN_CLEANER 251
#define ABILITY_STEELY_SPIRIT 252
#define ABILITY_PERISH_BODY 253
#define ABILITY_WANDERING_SPIRIT 254
#define ABILITY_GORILLA_TACTICS 255
#define ABILITY_NEUTRALIZING_GAS 256
#define ABILITY_PASTEL_VEIL 257
#define ABILITY_HUNGER_SWITCH 258
#define ABILITY_QUICK_DRAW 259
#define ABILITY_UNSEEN_FIST 260
#define ABILITY_CURIOUS_MEDICINE 261
#define ABILITY_TRANSISTOR 262
#define ABILITY_DRAGONS_MAW 263
#define ABILITY_CHILLING_NEIGH 264
#define ABILITY_GRIM_NEIGH 265
#define ABILITY_AS_ONE_ICE_RIDER 266
#define ABILITY_AS_ONE_SHADOW_RIDER 267
#define ABILITIES_COUNT_GEN8 268
#define ABILITIES_COUNT ABILITIES_COUNT_GEN8
#endif // GUARD_CONSTANTS_ABILITIES_H

View File

@@ -53,17 +53,17 @@
#define BATTLE_TYPE_MULTI (1 << 6)
#define BATTLE_TYPE_SAFARI (1 << 7)
#define BATTLE_TYPE_BATTLE_TOWER (1 << 8)
#define BATTLE_TYPE_WALLY_TUTORIAL (1 << 9)
#define BATTLE_TYPE_WALLY_TUTORIAL (1 << 9) // Used in pokefirered as BATTLE_TYPE_OLD_MAN_TUTORIAL.
#define BATTLE_TYPE_ROAMER (1 << 10)
#define BATTLE_TYPE_EREADER_TRAINER (1 << 11)
#define BATTLE_TYPE_KYOGRE_GROUDON (1 << 12)
#define BATTLE_TYPE_LEGENDARY (1 << 13)
#define BATTLE_TYPE_REGI (1 << 14)
#define BATTLE_TYPE_TWO_OPPONENTS (1 << 15)
#define BATTLE_TYPE_DOME (1 << 16)
#define BATTLE_TYPE_PALACE (1 << 17)
#define BATTLE_TYPE_ARENA (1 << 18)
#define BATTLE_TYPE_FACTORY (1 << 19)
#define BATTLE_TYPE_TWO_OPPONENTS (1 << 15) // Used in pokefirered as BATTLE_TYPE_GHOST.
#define BATTLE_TYPE_DOME (1 << 16) // Used in pokefirered as BATTLE_TYPE_POKEDUDE.
#define BATTLE_TYPE_PALACE (1 << 17) // Used in pokefirered as BATTLE_TYPE_WILD_SCRIPTED.
#define BATTLE_TYPE_ARENA (1 << 18) // Used in pokefirered as BATTLE_TYPE_LEGENDARY_FRLG.
#define BATTLE_TYPE_FACTORY (1 << 19) // Used in pokefirered as BATTLE_TYPE_TRAINER_TOWER.
#define BATTLE_TYPE_PIKE (1 << 20)
#define BATTLE_TYPE_PYRAMID (1 << 21)
#define BATTLE_TYPE_INGAME_PARTNER (1 << 22)
@@ -79,6 +79,11 @@
#define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID)
#define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE)
#define WILD_DOUBLE_BATTLE ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_TRAINER))))
#define BATTLE_TWO_VS_ONE_OPPONENT ((gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && gTrainerBattleOpponent_B == 0xFFFF))
#define BATTLE_TYPE_HAS_AI (BATTLE_TYPE_TRAINER | BATTLE_TYPE_FIRST_BATTLE | BATTLE_TYPE_SAFARI | BATTLE_TYPE_ROAMER)
// Battle Outcome defines
#define B_OUTCOME_WON 1
#define B_OUTCOME_LOST 2
@@ -120,8 +125,8 @@
#define STATUS2_LOCK_CONFUSE (1 << 10 | 1 << 11) // e.g. Thrash
#define STATUS2_LOCK_CONFUSE_TURN(num)((num) << 10)
#define STATUS2_MULTIPLETURNS (1 << 12)
#define STATUS2_WRAPPED (1 << 13 | 1 << 14 | 1 << 15)
#define STATUS2_WRAPPED_TURN(num) ((num) << 13)
#define STATUS2_WRAPPED (1 << 13)
#define STATUS2_POWDER (1 << 14)
#define STATUS2_INFATUATION (1 << 16 | 1 << 17 | 1 << 18 | 1 << 19) // 4 bits, one for every battler
#define STATUS2_INFATUATED_WITH(battler) (gBitTable[battler] << 16)
#define STATUS2_FOCUS_ENERGY (1 << 20)
@@ -137,7 +142,6 @@
#define STATUS2_DEFENSE_CURL (1 << 30)
#define STATUS2_TORMENT (1 << 31)
// Seems like per-battler statuses. Not quite sure how to categorize these
#define STATUS3_LEECHSEED_BATTLER (1 << 0 | 1 << 1) // The battler to receive HP from Leech Seed
#define STATUS3_LEECHSEED (1 << 2)
#define STATUS3_ALWAYS_HITS (1 << 3 | 1 << 4)
@@ -153,14 +157,29 @@
#define STATUS3_IMPRISONED_OTHERS (1 << 13)
#define STATUS3_GRUDGE (1 << 14)
#define STATUS3_CANT_SCORE_A_CRIT (1 << 15)
#define STATUS3_MUDSPORT (1 << 16)
#define STATUS3_WATERSPORT (1 << 17)
#define STATUS3_GASTRO_ACID (1 << 16)
#define STATUS3_EMBARGO (1 << 17)
#define STATUS3_UNDERWATER (1 << 18)
#define STATUS3_INTIMIDATE_POKES (1 << 19)
#define STATUS3_TRACE (1 << 20)
#define STATUS3_SEMI_INVULNERABLE (STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER)
#define STATUS3_SMACKED_DOWN (1 << 21)
#define STATUS3_ME_FIRST (1 << 22)
#define STATUS3_TELEKINESIS (1 << 23)
#define STATUS3_PHANTOM_FORCE (1 << 24)
#define STATUS3_MIRACLE_EYED (1 << 25)
#define STATUS3_MAGNET_RISE (1 << 26)
#define STATUS3_HEAL_BLOCK (1 << 27)
#define STATUS3_AQUA_RING (1 << 28)
#define STATUS3_LASER_FOCUS (1 << 29)
#define STATUS3_POWER_TRICK (1 << 30)
#define STATUS3_SKY_DROPPED (1 << 31) // Target of Sky Drop
#define STATUS3_SEMI_INVULNERABLE (STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER | STATUS3_PHANTOM_FORCE)
#define STATUS4_ELECTRIFIED (1 << 0)
#define STATUS4_PLASMA_FISTS (1 << 1)
#define STATUS4_MUD_SPORT (1 << 2) // Only used if B_SPORT_TURNS < GEN_6
#define STATUS4_WATER_SPORT (1 << 3) // Only used if B_SPORT_TURNS < GEN_6
// Not really sure what a "hitmarker" is.
#define HITMARKER_WAKE_UP_CLEAR (1 << 4) // Cleared when waking up. Never set or checked.
#define HITMARKER_SKIP_DMG_TRACK (1 << 5)
#define HITMARKER_DESTINYBOND (1 << 6)
@@ -173,9 +192,8 @@
#define HITMARKER_IGNORE_SAFEGUARD (1 << 13)
#define HITMARKER_SYNCHRONISE_EFFECT (1 << 14)
#define HITMARKER_RUN (1 << 15)
#define HITMARKER_IGNORE_ON_AIR (1 << 16)
#define HITMARKER_IGNORE_UNDERGROUND (1 << 17)
#define HITMARKER_IGNORE_UNDERWATER (1 << 18)
#define HITMARKER_IGNORE_DISGUISE (1 << 16)
// 3 free spots because of change in handling of UNDERGROUND/UNDERWATER/ON AIR
#define HITMARKER_UNABLE_TO_USE_MOVE (1 << 19)
#define HITMARKER_PASSIVE_DAMAGE (1 << 20)
#define HITMARKER_DISOBEDIENT_MOVE (1 << 21)
@@ -187,16 +205,49 @@
#define HITMARKER_CHARGING (1 << 27)
#define HITMARKER_FAINTED(battler) (gBitTable[battler] << 28)
#define HITMARKER_FAINTED2(battler) ((1 << 28) << battler)
#define HITMARKER_STRING_PRINTED (1 << 29)
// Per-side statuses that affect an entire party
#define SIDE_STATUS_REFLECT (1 << 0)
#define SIDE_STATUS_LIGHTSCREEN (1 << 1)
#define SIDE_STATUS_X4 (1 << 2)
#define SIDE_STATUS_SPIKES (1 << 4)
#define SIDE_STATUS_SAFEGUARD (1 << 5)
#define SIDE_STATUS_FUTUREATTACK (1 << 6)
#define SIDE_STATUS_MIST (1 << 8)
#define SIDE_STATUS_SPIKES_DAMAGED (1 << 9)
#define SIDE_STATUS_REFLECT (1 << 0)
#define SIDE_STATUS_LIGHTSCREEN (1 << 1)
#define SIDE_STATUS_STICKY_WEB (1 << 2)
#define SIDE_STATUS_SPIKES (1 << 4)
#define SIDE_STATUS_SAFEGUARD (1 << 5)
#define SIDE_STATUS_FUTUREATTACK (1 << 6)
#define SIDE_STATUS_MIST (1 << 8)
#define SIDE_STATUS_SPIKES_DAMAGED (1 << 9)
#define SIDE_STATUS_TAILWIND (1 << 10)
#define SIDE_STATUS_AURORA_VEIL (1 << 11)
#define SIDE_STATUS_LUCKY_CHANT (1 << 12)
#define SIDE_STATUS_TOXIC_SPIKES (1 << 13)
#define SIDE_STATUS_STEALTH_ROCK (1 << 14)
#define SIDE_STATUS_STEALTH_ROCK_DAMAGED (1 << 15)
#define SIDE_STATUS_TOXIC_SPIKES_DAMAGED (1 << 16)
#define SIDE_STATUS_STICKY_WEB_DAMAGED (1 << 17)
#define SIDE_STATUS_QUICK_GUARD (1 << 18)
#define SIDE_STATUS_WIDE_GUARD (1 << 19)
#define SIDE_STATUS_CRAFTY_SHIELD (1 << 20)
#define SIDE_STATUS_MAT_BLOCK (1 << 21)
#define SIDE_STATUS_HAZARDS_ANY (SIDE_STATUS_SPIKES | SIDE_STATUS_STICKY_WEB | SIDE_STATUS_TOXIC_SPIKES | SIDE_STATUS_STEALTH_ROCK)
#define SIDE_STATUS_SCREEN_ANY (SIDE_STATUS_REFLECT | SIDE_STATUS_LIGHTSCREEN | SIDE_STATUS_AURORA_VEIL)
// Field affecting statuses.
#define STATUS_FIELD_MAGIC_ROOM (1 << 0)
#define STATUS_FIELD_TRICK_ROOM (1 << 1)
#define STATUS_FIELD_WONDER_ROOM (1 << 2)
#define STATUS_FIELD_MUDSPORT (1 << 3)
#define STATUS_FIELD_WATERSPORT (1 << 4)
#define STATUS_FIELD_GRAVITY (1 << 5)
#define STATUS_FIELD_GRASSY_TERRAIN (1 << 6)
#define STATUS_FIELD_MISTY_TERRAIN (1 << 7)
#define STATUS_FIELD_ELECTRIC_TERRAIN (1 << 8)
#define STATUS_FIELD_PSYCHIC_TERRAIN (1 << 9)
#define STATUS_FIELD_ION_DELUGE (1 << 10)
#define STATUS_FIELD_FAIRY_LOCK (1 << 11)
#define STATUS_FIELD_TERRAIN_PERMANENT (1 << 12) // Overworld thunderstorm generates electric terrain
#define STATUS_FIELD_TERRAIN_ANY (STATUS_FIELD_GRASSY_TERRAIN | STATUS_FIELD_MISTY_TERRAIN | STATUS_FIELD_ELECTRIC_TERRAIN | STATUS_FIELD_PSYCHIC_TERRAIN)
// Flags describing move's result
#define MOVE_RESULT_MISSED (1 << 0)
@@ -207,104 +258,155 @@
#define MOVE_RESULT_FAILED (1 << 5)
#define MOVE_RESULT_FOE_ENDURED (1 << 6)
#define MOVE_RESULT_FOE_HUNG_ON (1 << 7)
#define MOVE_RESULT_STURDIED (1 << 8)
#define MOVE_RESULT_NO_EFFECT (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED)
// Battle Weather flags
#define B_WEATHER_RAIN_TEMPORARY (1 << 0)
#define B_WEATHER_RAIN_DOWNPOUR (1 << 1) // unused
#define B_WEATHER_RAIN_PERMANENT (1 << 2)
#define B_WEATHER_RAIN (B_WEATHER_RAIN_TEMPORARY | B_WEATHER_RAIN_DOWNPOUR | B_WEATHER_RAIN_PERMANENT)
#define B_WEATHER_SANDSTORM_TEMPORARY (1 << 3)
#define B_WEATHER_SANDSTORM_PERMANENT (1 << 4)
#define B_WEATHER_RAIN_PRIMAL (1 << 3)
#define B_WEATHER_RAIN (B_WEATHER_RAIN_TEMPORARY | B_WEATHER_RAIN_DOWNPOUR | B_WEATHER_RAIN_PERMANENT | B_WEATHER_RAIN_PRIMAL)
#define B_WEATHER_SANDSTORM_TEMPORARY (1 << 4)
#define B_WEATHER_SANDSTORM_PERMANENT (1 << 5)
#define B_WEATHER_SANDSTORM (B_WEATHER_SANDSTORM_TEMPORARY | B_WEATHER_SANDSTORM_PERMANENT)
#define B_WEATHER_SUN_TEMPORARY (1 << 5)
#define B_WEATHER_SUN_PERMANENT (1 << 6)
#define B_WEATHER_SUN (B_WEATHER_SUN_TEMPORARY | B_WEATHER_SUN_PERMANENT)
#define B_WEATHER_HAIL_TEMPORARY (1 << 7)
#define B_WEATHER_HAIL (B_WEATHER_HAIL_TEMPORARY)
#define B_WEATHER_ANY (B_WEATHER_RAIN | B_WEATHER_SANDSTORM | B_WEATHER_SUN | B_WEATHER_HAIL)
#define B_WEATHER_SUN_TEMPORARY (1 << 6)
#define B_WEATHER_SUN_PERMANENT (1 << 7)
#define B_WEATHER_SUN_PRIMAL (1 << 8)
#define B_WEATHER_SUN (B_WEATHER_SUN_TEMPORARY | B_WEATHER_SUN_PERMANENT | B_WEATHER_SUN_PRIMAL)
#define B_WEATHER_HAIL_TEMPORARY (1 << 9)
#define B_WEATHER_HAIL_PERMANENT (1 << 10)
#define B_WEATHER_HAIL (B_WEATHER_HAIL_TEMPORARY | B_WEATHER_HAIL_PERMANENT)
#define B_WEATHER_STRONG_WINDS (1 << 11)
#define B_WEATHER_ANY (B_WEATHER_RAIN | B_WEATHER_SANDSTORM | B_WEATHER_SUN | B_WEATHER_HAIL | B_WEATHER_STRONG_WINDS)
#define B_WEATHER_PRIMAL_ANY (B_WEATHER_RAIN_PRIMAL | B_WEATHER_SUN_PRIMAL | B_WEATHER_STRONG_WINDS)
// Battle Weather as enum
#define ENUM_WEATHER_NONE 0
#define ENUM_WEATHER_RAIN 1
#define ENUM_WEATHER_SUN 2
#define ENUM_WEATHER_SANDSTORM 3
#define ENUM_WEATHER_HAIL 4
#define ENUM_WEATHER_SUN_PRIMAL 5
#define ENUM_WEATHER_RAIN_PRIMAL 6
#define ENUM_WEATHER_STRONG_WINDS 7
// Move Effects
#define MOVE_EFFECT_SLEEP 1
#define MOVE_EFFECT_POISON 2
#define MOVE_EFFECT_BURN 3
#define MOVE_EFFECT_FREEZE 4
#define MOVE_EFFECT_PARALYSIS 5
#define MOVE_EFFECT_TOXIC 6
#define MOVE_EFFECT_SLEEP 0x1
#define MOVE_EFFECT_POISON 0x2
#define MOVE_EFFECT_BURN 0x3
#define MOVE_EFFECT_FREEZE 0x4
#define MOVE_EFFECT_PARALYSIS 0x5
#define MOVE_EFFECT_TOXIC 0x6
#define PRIMARY_STATUS_MOVE_EFFECT MOVE_EFFECT_TOXIC // All above move effects apply primary status
#define MOVE_EFFECT_CONFUSION 7
#define MOVE_EFFECT_FLINCH 8
#define MOVE_EFFECT_TRI_ATTACK 9
#define MOVE_EFFECT_UPROAR 10
#define MOVE_EFFECT_PAYDAY 11
#define MOVE_EFFECT_CHARGING 12
#define MOVE_EFFECT_WRAP 13
#define MOVE_EFFECT_RECOIL_25 14
#define MOVE_EFFECT_ATK_PLUS_1 15
#define MOVE_EFFECT_DEF_PLUS_1 16
#define MOVE_EFFECT_SPD_PLUS_1 17
#define MOVE_EFFECT_SP_ATK_PLUS_1 18
#define MOVE_EFFECT_SP_DEF_PLUS_1 19
#define MOVE_EFFECT_ACC_PLUS_1 20
#define MOVE_EFFECT_EVS_PLUS_1 21
#define MOVE_EFFECT_ATK_MINUS_1 22
#define MOVE_EFFECT_DEF_MINUS_1 23
#define MOVE_EFFECT_SPD_MINUS_1 24
#define MOVE_EFFECT_SP_ATK_MINUS_1 25
#define MOVE_EFFECT_SP_DEF_MINUS_1 26
#define MOVE_EFFECT_ACC_MINUS_1 27
#define MOVE_EFFECT_EVS_MINUS_1 28
#define MOVE_EFFECT_RECHARGE 29
#define MOVE_EFFECT_RAGE 30
#define MOVE_EFFECT_STEAL_ITEM 31
#define MOVE_EFFECT_PREVENT_ESCAPE 32
#define MOVE_EFFECT_NIGHTMARE 33
#define MOVE_EFFECT_ALL_STATS_UP 34
#define MOVE_EFFECT_RAPIDSPIN 35
#define MOVE_EFFECT_REMOVE_PARALYSIS 36
#define MOVE_EFFECT_ATK_DEF_DOWN 37
#define MOVE_EFFECT_RECOIL_33 38
#define MOVE_EFFECT_ATK_PLUS_2 39
#define MOVE_EFFECT_DEF_PLUS_2 40
#define MOVE_EFFECT_SPD_PLUS_2 41
#define MOVE_EFFECT_SP_ATK_PLUS_2 42
#define MOVE_EFFECT_SP_DEF_PLUS_2 43
#define MOVE_EFFECT_ACC_PLUS_2 44
#define MOVE_EFFECT_EVS_PLUS_2 45
#define MOVE_EFFECT_ATK_MINUS_2 46
#define MOVE_EFFECT_DEF_MINUS_2 47
#define MOVE_EFFECT_SPD_MINUS_2 48
#define MOVE_EFFECT_SP_ATK_MINUS_2 49
#define MOVE_EFFECT_SP_DEF_MINUS_2 50
#define MOVE_EFFECT_ACC_MINUS_2 51
#define MOVE_EFFECT_EVS_MINUS_2 52
#define MOVE_EFFECT_THRASH 53
#define MOVE_EFFECT_KNOCK_OFF 54
#define MOVE_EFFECT_NOTHING_37 55
#define MOVE_EFFECT_NOTHING_38 56
#define MOVE_EFFECT_NOTHING_39 57
#define MOVE_EFFECT_NOTHING_3A 58
#define MOVE_EFFECT_SP_ATK_TWO_DOWN 59
#define NUM_MOVE_EFFECTS 60
#define MOVE_EFFECT_CONFUSION 0x7
#define MOVE_EFFECT_FLINCH 0x8
#define MOVE_EFFECT_TRI_ATTACK 0x9
#define MOVE_EFFECT_UPROAR 0xA
#define MOVE_EFFECT_PAYDAY 0xB
#define MOVE_EFFECT_CHARGING 0xC
#define MOVE_EFFECT_WRAP 0xD
#define MOVE_EFFECT_RECOIL_25 0xE
#define MOVE_EFFECT_ATK_PLUS_1 0xF
#define MOVE_EFFECT_DEF_PLUS_1 0x10
#define MOVE_EFFECT_SPD_PLUS_1 0x11
#define MOVE_EFFECT_SP_ATK_PLUS_1 0x12
#define MOVE_EFFECT_SP_DEF_PLUS_1 0x13
#define MOVE_EFFECT_ACC_PLUS_1 0x14
#define MOVE_EFFECT_EVS_PLUS_1 0x15
#define MOVE_EFFECT_ATK_MINUS_1 0x16
#define MOVE_EFFECT_DEF_MINUS_1 0x17
#define MOVE_EFFECT_SPD_MINUS_1 0x18
#define MOVE_EFFECT_SP_ATK_MINUS_1 0x19
#define MOVE_EFFECT_SP_DEF_MINUS_1 0x1A
#define MOVE_EFFECT_ACC_MINUS_1 0x1B
#define MOVE_EFFECT_EVS_MINUS_1 0x1C
#define MOVE_EFFECT_RECHARGE 0x1D
#define MOVE_EFFECT_RAGE 0x1E
#define MOVE_EFFECT_STEAL_ITEM 0x1F
#define MOVE_EFFECT_PREVENT_ESCAPE 0x20
#define MOVE_EFFECT_NIGHTMARE 0x21
#define MOVE_EFFECT_ALL_STATS_UP 0x22
#define MOVE_EFFECT_RAPIDSPIN 0x23
#define MOVE_EFFECT_REMOVE_STATUS 0x24
#define MOVE_EFFECT_ATK_DEF_DOWN 0x25
#define MOVE_EFFECT_RECOIL_33 0x26
#define MOVE_EFFECT_ATK_PLUS_2 0x27
#define MOVE_EFFECT_DEF_PLUS_2 0x28
#define MOVE_EFFECT_SPD_PLUS_2 0x29
#define MOVE_EFFECT_SP_ATK_PLUS_2 0x2A
#define MOVE_EFFECT_SP_DEF_PLUS_2 0x2B
#define MOVE_EFFECT_ACC_PLUS_2 0x2C
#define MOVE_EFFECT_EVS_PLUS_2 0x2D
#define MOVE_EFFECT_ATK_MINUS_2 0x2E
#define MOVE_EFFECT_DEF_MINUS_2 0x2F
#define MOVE_EFFECT_SPD_MINUS_2 0x30
#define MOVE_EFFECT_SP_ATK_MINUS_2 0x31
#define MOVE_EFFECT_SP_DEF_MINUS_2 0x32
#define MOVE_EFFECT_ACC_MINUS_2 0x33
#define MOVE_EFFECT_EVS_MINUS_2 0x34
#define MOVE_EFFECT_THRASH 0x35
#define MOVE_EFFECT_KNOCK_OFF 0x36
#define MOVE_EFFECT_DEF_SPDEF_DOWN 0x37
#define MOVE_EFFECT_RECOIL_33_STATUS 0x38
#define MOVE_EFFECT_RECOIL_50 0x39
#define MOVE_EFFECT_CLEAR_SMOG 0x3A
#define MOVE_EFFECT_SP_ATK_TWO_DOWN 0x3B
#define MOVE_EFFECT_SMACK_DOWN 0x3C
#define MOVE_EFFECT_FLAME_BURST 0x3D
#define MOVE_EFFECT_FEINT 0x3E
#define MOVE_EFFECT_SPECTRAL_THIEF 0x3F
#define MOVE_EFFECT_V_CREATE 0x40
#define MOVE_EFFECT_HAPPY_HOUR 0x41
#define MOVE_EFFECT_CORE_ENFORCER 0x42
#define MOVE_EFFECT_THROAT_CHOP 0x43
#define MOVE_EFFECT_INCINERATE 0x44
#define MOVE_EFFECT_BUG_BITE 0x45
#define MOVE_EFFECT_RECOIL_HP_25 0x46
#define MOVE_EFFECT_RELIC_SONG 0x47
#define MOVE_EFFECT_TRAP_BOTH 0x48
#define MOVE_EFFECT_SKY_DROP 0x49
#define MOVE_EFFECT_SCALE_SHOT 0x4A
#define MOVE_EFFECT_AFFECTS_USER (1 << 6) // 64
#define MOVE_EFFECT_CERTAIN (1 << 7) // 128
#define NUM_MOVE_EFFECTS 0x4B
#define MOVE_EFFECT_AFFECTS_USER 0x4000
#define MOVE_EFFECT_CERTAIN 0x8000
// Battle terrain defines for gBattleTerrain.
#define BATTLE_TERRAIN_GRASS 0
#define BATTLE_TERRAIN_LONG_GRASS 1
#define BATTLE_TERRAIN_SAND 2
#define BATTLE_TERRAIN_UNDERWATER 3
#define BATTLE_TERRAIN_WATER 4
#define BATTLE_TERRAIN_POND 5
#define BATTLE_TERRAIN_MOUNTAIN 6
#define BATTLE_TERRAIN_CAVE 7
#define BATTLE_TERRAIN_BUILDING 8
#define BATTLE_TERRAIN_PLAIN 9
#define BATTLE_TERRAIN_GRASS 0
#define BATTLE_TERRAIN_LONG_GRASS 1
#define BATTLE_TERRAIN_SAND 2
#define BATTLE_TERRAIN_UNDERWATER 3
#define BATTLE_TERRAIN_WATER 4
#define BATTLE_TERRAIN_POND 5
#define BATTLE_TERRAIN_MOUNTAIN 6
#define BATTLE_TERRAIN_CAVE 7
#define BATTLE_TERRAIN_BUILDING 8
#define BATTLE_TERRAIN_PLAIN 9
// New battle terrains are used for Secret Power but not fully implemented.
#define BATTLE_TERRAIN_SOARING 10
#define BATTLE_TERRAIN_SKY_PILLAR 11
#define BATTLE_TERRAIN_BURIAL_GROUND 12
#define BATTLE_TERRAIN_PUDDLE 13
#define BATTLE_TERRAIN_MARSH 14
#define BATTLE_TERRAIN_SWAMP 15
#define BATTLE_TERRAIN_SNOW 16
#define BATTLE_TERRAIN_ICE 17
#define BATTLE_TERRAIN_VOLCANO 18
#define BATTLE_TERRAIN_DISTORTION_WORLD 19
#define BATTLE_TERRAIN_SPACE 20
#define BATTLE_TERRAIN_ULTRA_SPACE 21
#define B_WAIT_TIME_LONG 64
#define B_WAIT_TIME_MED 48
#define B_WAIT_TIME_SHORT 32
#define BATTLE_TERRAIN_COUNT 22
#define B_WAIT_TIME_LONG 64
#define B_WAIT_TIME_MED 48
#define B_WAIT_TIME_SHORT 32
#define B_WAIT_TIME_SHORTEST 16
#define CHERRIM_OVERCAST 0
#define CHERRIM_SUNSHINE 1
#define CASTFORM_NORMAL 0
#define CASTFORM_FIRE 1
@@ -316,6 +418,11 @@
#define FLEE_ITEM 1
#define FLEE_ABILITY 2
// Return value for IsRunningFromBattleImpossible.
#define BATTLE_RUN_SUCCESS 0
#define BATTLE_RUN_FORBIDDEN 1
#define BATTLE_RUN_FAILURE 2
#define B_WIN_TYPE_NORMAL 0
#define B_WIN_TYPE_ARENA 1
@@ -361,4 +468,18 @@
// Indicator for the party summary bar to display an empty slot.
#define HP_EMPTY_SLOT 0xFFFF
#define MOVE_TARGET_SELECTED 0
#define MOVE_TARGET_DEPENDS (1 << 0)
#define MOVE_TARGET_USER_OR_SELECTED (1 << 1)
#define MOVE_TARGET_RANDOM (1 << 2)
#define MOVE_TARGET_BOTH (1 << 3)
#define MOVE_TARGET_USER (1 << 4)
#define MOVE_TARGET_FOES_AND_ALLY (1 << 5)
#define MOVE_TARGET_OPPONENTS_FIELD (1 << 6)
#define MOVE_TARGET_ALLY (1 << 7)
#define MOVE_TARGET_ALL_BATTLERS ((1 << 8) | MOVE_TARGET_USER)
// For the second argument of GetMoveTarget, when no target override is needed
#define NO_TARGET_OVERRIDE 0
#endif // GUARD_CONSTANTS_BATTLE_H

View File

@@ -15,38 +15,51 @@
#define AI_TYPE_MOVE 4
// type effectiveness
#define AI_EFFECTIVENESS_x4 160
#define AI_EFFECTIVENESS_x2 80
#define AI_EFFECTIVENESS_x1 40
#define AI_EFFECTIVENESS_x0_5 20
#define AI_EFFECTIVENESS_x0_25 10
#define AI_EFFECTIVENESS_x8 7
#define AI_EFFECTIVENESS_x4 6
#define AI_EFFECTIVENESS_x2 5
#define AI_EFFECTIVENESS_x1 4
#define AI_EFFECTIVENESS_x0_5 3
#define AI_EFFECTIVENESS_x0_25 2
#define AI_EFFECTIVENESS_x0_125 1
#define AI_EFFECTIVENESS_x0 0
// ai weather
#define AI_WEATHER_SUN 0
#define AI_WEATHER_RAIN 1
#define AI_WEATHER_SANDSTORM 2
#define AI_WEATHER_HAIL 3
#define AI_WEATHER_NONE 0
#define AI_WEATHER_SUN 1
#define AI_WEATHER_RAIN 2
#define AI_WEATHER_SANDSTORM 3
#define AI_WEATHER_HAIL 4
// get_how_powerful_move_is
#define MOVE_POWER_OTHER 0
#define MOVE_NOT_MOST_POWERFUL 1
#define MOVE_MOST_POWERFUL 2
#define MOVE_POWER_OTHER 0
#define MOVE_POWER_BEST 1
#define MOVE_POWER_GOOD 2 // Similar dmg range with best.
#define MOVE_POWER_WEAK 3 // Significantly lower than best and good.
// script's table id to bit
#define AI_SCRIPT_CHECK_BAD_MOVE (1 << 0)
#define AI_SCRIPT_TRY_TO_FAINT (1 << 1)
#define AI_SCRIPT_CHECK_VIABILITY (1 << 2)
#define AI_SCRIPT_SETUP_FIRST_TURN (1 << 3)
#define AI_SCRIPT_RISKY (1 << 4)
#define AI_SCRIPT_PREFER_POWER_EXTREMES (1 << 5)
#define AI_SCRIPT_PREFER_BATON_PASS (1 << 6)
#define AI_SCRIPT_DOUBLE_BATTLE (1 << 7)
#define AI_SCRIPT_HP_AWARE (1 << 8)
#define AI_SCRIPT_TRY_SUNNY_DAY_START (1 << 9)
// 10 - 28 are not used
#define AI_SCRIPT_ROAMING (1 << 29)
#define AI_SCRIPT_SAFARI (1 << 30)
#define AI_SCRIPT_FIRST_BATTLE (1 << 31)
// AI Flags. Most run specific functions to update score, new flags are used for internal logic in other scripts
#define AI_FLAG_CHECK_BAD_MOVE (1 << 0)
#define AI_FLAG_TRY_TO_FAINT (1 << 1)
#define AI_FLAG_CHECK_VIABILITY (1 << 2)
#define AI_FLAG_SETUP_FIRST_TURN (1 << 3)
#define AI_FLAG_RISKY (1 << 4)
#define AI_FLAG_PREFER_STRONGEST_MOVE (1 << 5)
#define AI_FLAG_PREFER_BATON_PASS (1 << 6)
#define AI_FLAG_DOUBLE_BATTLE (1 << 7) // removed, split between AI_FLAG_CHECK_BAD_MOVE & AI_FLAG_CHECK_GOOD_MOVE
#define AI_FLAG_HP_AWARE (1 << 8)
// New, Trainer Handicap Flags
#define AI_FLAG_NEGATE_UNAWARE (1 << 9) // AI is NOT aware of negating effects like wonder room, mold breaker, etc
#define AI_FLAG_WILL_SUICIDE (1 << 10) // AI will use explosion / self destruct / final gambit / etc
// New, Trainer Strategy Flags
#define AI_FLAG_HELP_PARTNER (1 << 11) // AI can try to help partner. If not set, will tend not to target partner
#define AI_FLAG_PREFER_STATUS_MOVES (1 << 12) // AI gets a score bonus for status moves. Should be combined with AI_FLAG_CHECK_BAD_MOVE to prevent using only status moves
#define AI_FLAG_STALL (1 << 13) // AI stalls battle and prefers secondary damage/trapping/etc. TODO not finished
#define AI_FLAG_SCREENER (1 << 14) // AI prefers screening effects like reflect, mist, etc. TODO unfinished
#define AI_FLAG_SMART_SWITCHING (1 << 15) // AI includes a lot more switching checks
// 'other' ai logic flags
#define AI_FLAG_ROAMING (1 << 29)
#define AI_FLAG_SAFARI (1 << 30)
#define AI_FLAG_FIRST_BATTLE (1 << 31)
#endif // GUARD_CONSTANTS_BATTLE_AI_H

View File

@@ -296,6 +296,106 @@
#define ANIM_TAG_SLASH_2 (ANIM_SPRITES_START + 286)
#define ANIM_TAG_WHIP_HIT (ANIM_SPRITES_START + 287)
#define ANIM_TAG_BLUE_RING_2 (ANIM_SPRITES_START + 288)
//new particles
#define ANIM_TAG_WHITE_STREAK (ANIM_SPRITES_START + 289)
#define ANIM_TAG_PURPLE_JAB (ANIM_SPRITES_START + 290)
#define ANIM_TAG_TOXIC_SPIKES (ANIM_SPRITES_START + 291)
#define ANIM_TAG_ENERGY_BALL (ANIM_SPRITES_START + 292)
#define ANIM_TAG_SEED_BROWN (ANIM_SPRITES_START + 293)
#define ANIM_TAG_FEINT (ANIM_SPRITES_START + 294)
#define ANIM_TAG_MEGA_STONE (ANIM_SPRITES_START + 295)
#define ANIM_TAG_MEGA_SYMBOL (ANIM_SPRITES_START + 296)
#define ANIM_TAG_MEGA_PARTICLES (ANIM_SPRITES_START + 297)
#define ANIM_TAG_TRUMP_CARD (ANIM_SPRITES_START + 298)
#define ANIM_TAG_TRUMP_CARD_PARTICLES (ANIM_SPRITES_START + 299)
#define ANIM_TAG_ACCUPRESSURE (ANIM_SPRITES_START + 300)
#define ANIM_TAG_WRING_OUT (ANIM_SPRITES_START + 301)
#define ANIM_TAG_COLORED_ORBS (ANIM_SPRITES_START + 302)
#define ANIM_TAG_WORRY_SEED (ANIM_SPRITES_START + 303)
#define ANIM_TAG_SMALL_CLOUD (ANIM_SPRITES_START + 304)
#define ANIM_TAG_ATTACK_ORDER (ANIM_SPRITES_START + 305)
#define ANIM_TAG_DRAGON_PULSE (ANIM_SPRITES_START + 306)
#define ANIM_TAG_WOOD_HAMMER (ANIM_SPRITES_START + 307)
#define ANIM_TAG_PSYCHO_CUT (ANIM_SPRITES_START + 308)
#define ANIM_TAG_POWER_GEM (ANIM_SPRITES_START + 309)
#define ANIM_TAG_STONE_EDGE (ANIM_SPRITES_START + 310)
#define ANIM_TAG_STEALTH_ROCK (ANIM_SPRITES_START + 311)
#define ANIM_TAG_POISON_JAB (ANIM_SPRITES_START + 312)
#define ANIM_TAG_GREEN_POISON_BUBBLE (ANIM_SPRITES_START + 313)
#define ANIM_TAG_FLASH_CANNON_BALL (ANIM_SPRITES_START + 314)
#define ANIM_TAG_WATER_GUN (ANIM_SPRITES_START + 315)
#define ANIM_TAG_PUNISHMENT_BLADES (ANIM_SPRITES_START + 316)
#define ANIM_TAG_QUICK_GUARD_HAND (ANIM_SPRITES_START + 317)
#define ANIM_TAG_SHELL_RIGHT (ANIM_SPRITES_START + 318)
#define ANIM_TAG_SHELL_LEFT (ANIM_SPRITES_START + 319)
#define ANIM_TAG_RAZOR_SHELL (ANIM_SPRITES_START + 320)
#define ANIM_TAG_HYDRO_PUMP (ANIM_SPRITES_START + 321)
#define ANIM_TAG_BRINE (ANIM_SPRITES_START + 322)
#define ANIM_TAG_GEAR (ANIM_SPRITES_START + 323)
#define ANIM_TAG_ASSURANCE_HAND (ANIM_SPRITES_START + 324)
#define ANIM_TAG_ACUPRESSURE_FINGER (ANIM_SPRITES_START + 325)
#define ANIM_TAG_WISHIWASHI_FISH (ANIM_SPRITES_START + 326)
#define ANIM_TAG_ZYGARDE_HEXES (ANIM_SPRITES_START + 327)
#define ANIM_TAG_AURA_SPHERE (ANIM_SPRITES_START + 328)
#define ANIM_TAG_OMEGA_STONE (ANIM_SPRITES_START + 329)
#define ANIM_TAG_ALPHA_STONE (ANIM_SPRITES_START + 330)
#define ANIM_TAG_BERRY_NORMAL (ANIM_SPRITES_START + 331)
#define ANIM_TAG_BERRY_EATEN (ANIM_SPRITES_START + 332)
#define ANIM_TAG_DRAGON_ASCENT (ANIM_SPRITES_START + 333)
#define ANIM_TAG_PINK_DIAMOND (ANIM_SPRITES_START + 334)
#define ANIM_TAG_STEAM_ERUPTION (ANIM_SPRITES_START + 335)
#define ANIM_TAG_CONFIDE (ANIM_SPRITES_START + 336)
#define ANIM_TAG_VERTICAL_HEX (ANIM_SPRITES_START + 337)
#define ANIM_TAG_UNAVAILABLE_1 (ANIM_SPRITES_START + 338) //0x2862.. supposedly used elsewhere?
#define ANIM_TAG_UNAVAILABLE_2 (ANIM_SPRITES_START + 339)
#define ANIM_TAG_POWER_TRICK (ANIM_SPRITES_START + 340)
#define ANIM_TAG_CHAIN_LINK (ANIM_SPRITES_START + 341)
#define ANIM_TAG_ANCHOR (ANIM_SPRITES_START + 342)
#define ANIM_TAG_HORSESHOE_SIDE_FIST (ANIM_SPRITES_START + 343)
#define ANIM_TAG_DRAGON_ASCENT_FOE (ANIM_SPRITES_START + 344)
#define ANIM_TAG_CRAFTY_SHIELD (ANIM_SPRITES_START + 345)
#define ANIM_TAG_BLACEPHALON_HEAD (ANIM_SPRITES_START + 346)
#define ANIM_TAG_FAIRY_LOCK_CHAINS (ANIM_SPRITES_START + 347)
#define ANIM_TAG_IONS (ANIM_SPRITES_START + 348)
#define ANIM_TAG_CHOP (ANIM_SPRITES_START + 349)
#define ANIM_TAG_HEART_STAMP (ANIM_SPRITES_START + 350)
#define ANIM_TAG_HORN_LEECH (ANIM_SPRITES_START + 351)
#define ANIM_TAG_STEAMROLLER (ANIM_SPRITES_START + 352)
#define ANIM_TAG_HOOPA_HAND (ANIM_SPRITES_START + 353)
#define ANIM_TAG_HOOPA_RING (ANIM_SPRITES_START + 354)
#define ANIM_TAG_METAL_BITS (ANIM_SPRITES_START + 355)
#define ANIM_TAG_SMALL_ROCK (ANIM_SPRITES_START + 356)
#define ANIM_TAG_SPIRIT_ARROW (ANIM_SPRITES_START + 357)
#define ANIM_TAG_ULTRA_BURST_SYMBOL (ANIM_SPRITES_START + 358)
#define ANIM_TAG_Z_MOVE_SYMBOL (ANIM_SPRITES_START + 359)
#define ANIM_TAG_REALLY_BIG_ROCK (ANIM_SPRITES_START + 360)
#define ANIM_TAG_COCOON (ANIM_SPRITES_START + 361)
#define ANIM_TAG_CORKSCREW (ANIM_SPRITES_START + 362)
#define ANIM_TAG_HAVOC_SPEAR (ANIM_SPRITES_START + 363)
#define ANIM_TAG_PURPLE_DRAKE (ANIM_SPRITES_START + 364)
#define ANIM_TAG_MUD_BOMB (ANIM_SPRITES_START + 365)
#define ANIM_TAG_BRANCH (ANIM_SPRITES_START + 366)
#define ANIM_TAG_APPLE (ANIM_SPRITES_START + 367)
#define ANIM_TAG_OBSTRUCT_CROSS (ANIM_SPRITES_START + 368)
#define ANIM_TAG_POISON_COLUMN (ANIM_SPRITES_START + 369)
#define ANIM_TAG_GARBAGE_COLUMN (ANIM_SPRITES_START + 370)
#define ANIM_TAG_LARGE_SPIKE (ANIM_SPRITES_START + 371)
#define ANIM_TAG_DRAGON_PULSE_RING (ANIM_SPRITES_START + 372)
#define ANIM_TAG_STONE_PILLAR (ANIM_SPRITES_START + 373)
#define ANIM_TAG_MUSHROOM (ANIM_SPRITES_START + 374)
#define ANIM_TAG_GOLDEN_APPLE (ANIM_SPRITES_START + 375)
#define ANIM_TAG_ICE_ROCK (ANIM_SPRITES_START + 376)
#define ANIM_TAG_TORNADO (ANIM_SPRITES_START + 377)
#define ANIM_TAG_STRAIGHT_BEAM (ANIM_SPRITES_START + 378)
#define ANIM_TAG_DREEPY (ANIM_SPRITES_START + 379)
#define ANIM_TAG_ICE_ROCK_SINGLE (ANIM_SPRITES_START + 380)
#define ANIM_TAG_STONE_PILLAR_MULTI (ANIM_SPRITES_START + 381)
#define ANIM_TAG_ALPHA_SYMBOL (ANIM_SPRITES_START + 382)
#define ANIM_TAG_OMEGA_SYMBOL (ANIM_SPRITES_START + 383)
#define ANIM_TAG_PRIMAL_PARTICLES (ANIM_SPRITES_START + 384)
#define ANIM_TAG_STEEL_BEAM (ANIM_SPRITES_START + 385)
#define ANIM_TAG_POLTERGEIST (ANIM_SPRITES_START + 386)
// battlers
#define ANIM_ATTACKER 0
@@ -345,6 +445,59 @@
#define BG_SOLAR_BEAM_OPPONENT 24
#define BG_SOLAR_BEAM_PLAYER 25
#define BG_SOLAR_BEAM_CONTESTS 26
#define BG_MAGMA_STORM 27
#define BG_GIGA_IMPACT_OPPONENT 28
#define BG_GIGA_IMPACT_PLAYER 29
#define BG_GIGA_IMPACT_CONTEST 30
#define BG_TRICK_ROOM 31
#define BG_ROCK_WRECKER 32
#define BG_SPACIAL_REND_ON_OPPONENT 33
#define BG_SPACIAL_REND_ON_PLAYER 34
#define BG_DARK_VOID 35
#define BG_WATER 36
#define BG_NIGHTMARE 37
#define BG_LEAF_STORM 38
#define BG_FIRE 39
#define BG_FIRE_2 40
#define BG_WATER_2 41
#define BG_POISON 42
#define BG_AEROBLAST 43
#define BG_HURRICANE 44
#define BG_ELECTRIC_TERRAIN 45
#define BG_GRASSY_TERRAIN 46
#define BG_MISTY_TERRAIN 47
#define BG_PSYCHIC_TERRAIN 48
#define BG_FOCUS_BLAST 49
#define BG_GUNK_SHOT 50
#define BG_HYDRO_CANNON 51
#define BG_WONDER_ROOM 52
#define BG_MAGIC_ROOM 53
#define BG_HYPERSPACE_FURY 54
#define BG_BOLT_STRIKE 55
#define BG_ZMOVE_ACTIVATE 56
#define BG_TECTONIC_RAGE 57
#define BG_BLUE_SKY_DAY 58
#define BG_BLUE_SKY_AFTERNOON 59
#define BG_BLUE_SKY_NIGHT 60
#define BG_ZMOVE_MOUNTAIN 61
#define BG_NEVERENDING_NIGHTMARE 62
#define BG_WATER_PULSE 63
#define BG_INFERNO_OVERDRIVE 64
#define BG_BLOOM_DOOM 65
#define BG_SHATTERED_PSYCHE 66
#define BG_TWINKLE_TACKLE 67
#define BG_BLACKHOLE_ECLIPSE 68
#define BG_SOULSTEALING_7STAR_STRIKE 69
#define BG_MALICIOUS_MOONSAULT 70
#define BG_CLANGOROUS_SOULBLAZE 71
#define BG_SNUGGLE_FOREVER 72
#define BG_MAX_LIGHTNING 73
#define BG_GARBAGE_FALLS 74
#define BG_HYPER_BEAM 75
#define BG_DYNAMAX_CANNON 76
#define BG_AURA_SPHERE 77
#define BG_STEEL_BEAM_OPPONENT 78
#define BG_STEEL_BEAM_PLAYER 79
// table ids for general animations (gBattleAnims_General)
#define B_ANIM_CASTFORM_CHANGE 0
@@ -356,7 +509,7 @@
#define B_ANIM_TURN_TRAP 6
#define B_ANIM_HELD_ITEM_EFFECT 7
#define B_ANIM_SMOKEBALL_ESCAPE 8
#define B_ANIM_FOCUS_BAND 9
#define B_ANIM_HANGED_ON 9
#define B_ANIM_RAIN_CONTINUES 10
#define B_ANIM_SUN_CONTINUES 11
#define B_ANIM_SANDSTORM_CONTINUES 12
@@ -370,6 +523,19 @@
#define B_ANIM_FOCUS_PUNCH_SETUP 20
#define B_ANIM_INGRAIN_HEAL 21
#define B_ANIM_WISH_HEAL 22
#define B_ANIM_MEGA_EVOLUTION 23
#define B_ANIM_ILLUSION_OFF 24
#define B_ANIM_FORM_CHANGE 25
#define B_ANIM_SLIDE_OFFSCREEN 26 // for Emergency Exit
#define B_ANIM_RESTORE_BG 27 // for Terrain Endings
#define B_ANIM_TOTEM_FLARE 28 // Totem boosts aura flare
#define B_ANIM_GULP_MISSILE 29
#define B_ANIM_STRONG_WINDS 30
#define B_ANIM_PRIMAL_REVERSION 31
#define B_ANIM_AQUA_RING_HEAL 32
#define B_ANIM_BEAK_BLAST_SETUP 33
#define B_ANIM_SHELL_TRAP_SETUP 34
#define B_ANIM_ZMOVE_ACTIVATE 35 // Using Z Moves
// special animations table (gBattleAnims_Special)
#define B_ANIM_LVL_UP 0
@@ -379,6 +545,7 @@
#define B_ANIM_BALL_THROW_WITH_TRAINER 4
#define B_ANIM_SUBSTITUTE_TO_MON 5
#define B_ANIM_MON_TO_SUBSTITUTE 6
#define B_ANIM_CRITICAL_CAPTURE_THROW 7
// status animation table (gBattleAnims_StatusConditions)
#define B_ANIM_STATUS_PSN 0
@@ -405,6 +572,9 @@
#define TRAP_ANIM_WHIRLPOOL 2
#define TRAP_ANIM_CLAMP 3
#define TRAP_ANIM_SAND_TOMB 4
#define TRAP_ANIM_MAGMA_STORM 5
#define TRAP_ANIM_INFESTATION 6
#define TRAP_ANIM_SNAP_TRAP 7
// Weather defines for battle animation scripts.
#define ANIM_WEATHER_NONE 0
@@ -413,6 +583,36 @@
#define ANIM_WEATHER_SANDSTORM 3
#define ANIM_WEATHER_HAIL 4
// mon pal blend
#define ANIM_PAL_BG 0x1
#define ANIM_PAL_ATK 0x2
#define ANIM_PAL_DEF 0x4
#define ANIM_PAL_ATK_PARTNER 0x8
#define ANIM_PAL_DEF_PARTNER 0x10
#define ANIM_PAL_ALL 0x1f
#define ANIM_PAL_BG_4 0x20
#define ANIM_PAL_BG_5 0x40
#define ANIM_PAL_ALL_BATTLERS 0x780
#define ANIM_PAL_PLAYER1 0x80
#define ANIM_PAL_PLAYER2 0x100
#define ANIM_PAL_OPPONENT1 0x200
#define ANIM_PAL_OPPONENT2 0x400
// horseshoe/fist frames
#define ANIM_RIGHT_FIST 0
#define ANIM_LEFT_FIST 2
// fist/chop frames
#define ANIM_FIST_1 0
#define ANIM_FOOT_1 1
#define ANIM_FOOT_2 2
#define ANIM_CHOP 3
// surf wave palettes
#define ANIM_SURF_PAL_SURF 0
#define ANIM_SURF_PAL_MUDDY_WATER 1
#define ANIM_SURF_PAL_SLUDGE_WAVE 2
// Flags given to various functions to indicate which palettes to consider.
// Handled by UnpackSelectedBattlePalettes
#define F_PAL_BG (1 << 0)

View File

@@ -17,4 +17,10 @@
#define ARENA_CATEGORY_SKILL 1
#define ARENA_CATEGORY_BODY 2
#define ARENA_RESULT_RUNNING 0 // For intermediate steps, when BattleArena_ShowJudgmentWindow should be called again immediately
#define ARENA_RESULT_STEP_DONE 1 // A step has been completed, the script may advance to the next instruction
#define ARENA_RESULT_PLAYER_WON 2
#define ARENA_RESULT_PLAYER_LOST 3
#define ARENA_RESULT_TIE 4
#endif //GUARD_CONSTANTS_BATTLE_ARENA_H

View File

@@ -0,0 +1,200 @@
#ifndef GUARD_CONSTANTS_BATTLE_CONFIG_H
#define GUARD_CONSTANTS_BATTLE_CONFIG_H
#include "constants/expansion_branches.h"
#ifndef GEN_3
#define GEN_3 0
#define GEN_4 1
#define GEN_5 2
#define GEN_6 3
#define GEN_7 4
#define GEN_8 5
#endif
// Calculation settings
#define B_CRIT_CHANCE GEN_7 // Chances of a critical hit landing. See CalcCritChanceStage. Gen6+ chances guarantee that Farfetch'd and Sirfetch'd always get critical hits while holding a Leek and using high-crit ratio moves.
#define B_CRIT_MULTIPLIER GEN_7 // In Gen6+, critical hits multiply damage by 1.5 instead of 2.
#define B_PARALYSIS_SPEED GEN_7 // In Gen7+, Speed is decreased by 50% instead of 75%.
#define B_CONFUSION_SELF_DMG_CHANCE GEN_7 // In Gen7+, confusion has a 33.3% of self-damage, instead of 50%.
#define B_MULTI_HIT_CHANCE GEN_7 // In Gen5+, multi-hit moves have different %. See Cmd_setmultihitcounter for values.
#define B_WHITEOUT_MONEY GEN_7 // In Gen4+, the amount of money lost by losing a battle is determined by the amount of badges earned. Previously, it would cut the current money by half. (While this change was also in FRLG, for the sake of simplicity, setting this to GEN_3 will result in RSE behavior.)
// Exp and stat settings
#define B_EXP_CATCH GEN_7 // In Gen6+, Pokémon get experience from catching.
#define B_TRAINER_EXP_MULTIPLIER GEN_7 // In Gen7+, trainer battles no longer give a 1.5 multiplier to EXP gain.
#define B_SPLIT_EXP GEN_7 // In Gen6+, all participating mon get full experience.
#define B_SCALED_EXP GEN_7 // In Gen5 and Gen7+, experience is weighted by level difference.
#define B_BADGE_BOOST GEN_7 // In Gen4+, Gym Badges no longer boost a Pokémon's stats.
#define B_MAX_LEVEL_EV_GAINS GEN_7 // In Gen5+, Lv100 Pokémon can obtain Effort Values normally.
#define B_RECALCULATE_STATS GEN_7 // In Gen5+, the stats of the Pokémon who participate in battle are recalculated at the end of each battle.
// Damage settings
#define B_BURN_DAMAGE GEN_7 // In Gen7+, burn damage is 1/16th of max HP instead of 1/8th.
#define B_BURN_FACADE_DMG GEN_7 // In Gen6+, burn's effect of lowering the Attack stat no longer applies to Facade.
#define B_BINDING_DAMAGE GEN_7 // In Gen6+, binding damage is 1/8 of max HP instead of 1/16. (With Binding Band, 1/6 and 1/8 respectively.)
#define B_PSYWAVE_DMG GEN_7 // Psywave's damage formula. See Cmd_psywavedamageeffect.
#define B_PAYBACK_SWITCH_BOOST GEN_7 // In Gen5+, if the opponent switches out, Payback's damage will no longer be doubled.
#define B_HIDDEN_POWER_DMG GEN_7 // In Gen6+, Hidden Power's base power was set to always be 60. Before, it was determined by the mon's IVs.
#define B_ROUGH_SKIN_DMG GEN_7 // In Gen4+, Rough Skin contact damage is 1/8th of max HP instead of 1/16th. This will also affect Iron Barbs.
#define B_KNOCK_OFF_DMG GEN_8 // In Gen6+, Knock Off deals 50% more damage when knocking off an item.
#define B_SPORT_DMG_REDUCTION GEN_7 // In Gen5+, Water/Mud Sport reduce Fire/Electric Damage by 67% instead of 50%.
#define B_EXPLOSION_DEFENSE GEN_7 // In Gen5+, Self-Destruct and Explosion don't halve the targets' defense.
// Type settings
#define B_GHOSTS_ESCAPE GEN_7 // In Gen6+, abilities like Shadow Tag or moves like Mean Look fail on Ghost-type Pokémon. They can also escape any Wild Battle.
#define B_PARALYZE_ELECTRIC GEN_7 // In Gen6+, Electric-type Pokémon can't be paralyzed.
#define B_POWDER_GRASS GEN_7 // In Gen6+, Grass-type Pokémon are immune to powder and spore moves.
#define B_STEEL_RESISTANCES GEN_7 // In Gen6+, Steel-type Pokémon are no longer resistant to Dark-type and Ghost-type moves.
#define B_PRANKSTER_DARK_TYPES GEN_7 // In Gen7+, Prankster-elevated status moves do not affect Dark type Pokémon.
#define B_SHEER_COLD_IMMUNITY GEN_7 // In Gen7+, Ice-types are immune to Sheer Cold
// Turn settings
#define B_BINDING_TURNS GEN_7 // In Gen5+, binding moves last for 4-5 turns instead of 2-5 turns. (With Grip Claw, 7 and 5 turns respectively.)
#define B_UPROAR_TURNS GEN_7 // In Gen5+, Uproar lasts for 3 turns instead of 2-5 turns.
#define B_DISABLE_TURNS GEN_7 // Disable's turns. See Cmd_disablelastusedattack.
#define B_TAILWIND_TURNS GEN_7 // In Gen5+, Tailwind lasts 4 turns instead of 3.
#define B_SLEEP_TURNS GEN_7 // In Gen5+, sleep lasts for 1-3 turns instead of 2-5 turns.
#define B_TAUNT_TURNS GEN_7 // In Gen5+, Taunt lasts 3 turns if the user acts before the target, or 4 turns if the target acted before the user. In Gen3, taunt lasts 2 turns and in Gen 4, 3-5 turns.
#define B_SPORT_TURNS GEN_7 // In Gen6+, Water/Mud Sport last 5 turns, even if the user switches out.
#define B_MEGA_EVO_TURN_ORDER GEN_7 // In Gen7, a Pokémon's Speed after Mega Evolution is used to determine turn order, not its Speed before.
#define B_RECALC_TURN_AFTER_ACTIONS GEN_8 // In Gen8, switching/using a move affects the current turn's order of actions.
#define B_FAINT_SWITCH_IN GEN_7 // In Gen4+, sending out a new Pokémon after the previous one fainted happens at the end of the turn. Before, it would happen after each action.
// Move data settings
#define B_UPDATED_MOVE_DATA GEN_8 // Updates move data in gBattleMoves, including Power, Accuracy, PP, stat changes, targets, chances of secondary effects, etc.
#define B_PHYSICAL_SPECIAL_SPLIT GEN_7 // In Gen3, the move's type determines if it will do physical or special damage. The split icon in the summary will reflect this.
#define B_RECOIL_IF_MISS_DMG GEN_7 // In Gen5+, Jump Kick and High Jump Kick will always do half of the user's max HP when missing.
#define B_KLUTZ_FLING_INTERACTION GEN_7 // In Gen5+, Pokémon with the Klutz ability can't use Fling.
#define B_UPDATED_CONVERSION GEN_7 // In Gen6+, Conversion changes the user's type to match their first move's. Before, it would choose a move at random.
#define B_PP_REDUCED_BY_SPITE GEN_7 // In Gen4+, Spite reduces the foe's last move's PP by 4, instead of 2 to 5.
// Move accuracy settings
#define B_TOXIC_NEVER_MISS GEN_7 // In Gen6+, if Toxic is used by a Poison-type Pokémon, it will never miss.
#define B_MINIMIZE_DMG_ACC GEN_7 // In Gen6+, moves that causes double damage to minimized Pokémon will also skip accuracy checks.
#define B_BLIZZARD_HAIL GEN_7 // In Gen4+, Blizzard bypasses accuracy checks if it's hailing.
#define B_SHEER_COLD_ACC GEN_7 // In Gen7+, Sheer Cold's base chance of hitting is reduced to 20% if the user isn't Ice-typed.
// Move stat change settings
#define B_FELL_STINGER_STAT_RAISE GEN_7 // In Gen7+, it raises Atk by 3 stages instead of 2 if it causes the target to faint.
#define B_KINGS_SHIELD_LOWER_ATK GEN_7 // In Gen7+, it lowers Atk by 1 stage instead of 2 of oponents that hit it.
#define B_SPEED_BUFFING_RAPID_SPIN GEN_8 // In Gen8, Rapid Spin raises the user's Speed by 1 stage.
#define B_CHARGE_SPDEF_RAISE GEN_7 // In Gen5+, Charge raises the user's Special Defense by 1 stage.
#define B_MINIMIZE_EVASION GEN_7 // In Gen5+, Minimize raises evasion by 2 stages instead of 1.
#define B_GROWTH_STAT_RAISE GEN_7 // In Gen5+, Growth raises Attack in addition to Special Attack by 1 stage each. Under the effects of the sun, it raises them by 2 stages each instead.
// Other move settings
#define B_SOUND_SUBSTITUTE GEN_7 // In Gen6+, sound moves bypass Substitute.
#define B_INCINERATE_GEMS GEN_7 // In Gen6+, Incinerate can destroy Gems.
#define B_CAN_SPITE_FAIL GEN_7 // In Gen4+, Spite can no longer fail if the foe's last move only has 1 remaining PP.
#define B_CRASH_IF_TARGET_IMMUNE GEN_7 // In Gen4+, The user of Jump Kick or High Jump Kick will "keep going and crash" if it attacks a target that is immune to the move.
#define B_MEMENTO_FAIL GEN_7 // In Gen4+, Memento fails if there is no target or if the target is protected or behind substitute. But not if Atk/Sp. Atk are at -6.
#define B_GLARE_GHOST GEN_7 // In Gen4+, Glare can hit Ghost-type Pokémon normally.
#define B_SKILL_SWAP GEN_7 // In Gen4+, Skill Swap triggers switch-in abilities after use.
#define B_BRICK_BREAK GEN_7 // In Gen4+, you can destroy your own side's screens. In Gen 5+, screens are not removed if the target is immune.
#define B_WISH_HP_SOURCE GEN_7 // In Gen5+, Wish heals half of the user's max HP instead of the target's.
#define B_RAMPAGE_CANCELLING GEN_7 // In Gen5+, a failed Thrash, etc, will cancel except on its last turn.
#define B_HEAL_BLOCKING GEN_7 // In Gen5+, Heal Block prevents healing by Black Sludge, Leftovers, Shell Bell. Affected Pokémon will not consume held HP-restoring Berries or Berry Juice.
// Draining abilities will not heal but will prevent damage. In Gen6+, Heal Block prevents the use of most HP-draining moves.
#define B_ROOTED_GROUNDING GEN_7 // In Gen4+, Ingrain causes the affected Pokémon to become grounded.
// Ability settings
#define B_EXPANDED_ABILITY_NAMES TRUE // If TRUE, ability names are increased from 12 characters to 16 characters.
#define B_ABILITY_WEATHER GEN_7 // In Gen6+, ability-induced weather lasts 5 turns. Before, it lasted until the battle ended or until it was changed by a move or a different weather-affecting ability.
#define B_GALE_WINGS GEN_7 // In Gen7+ requires full HP to trigger.
#define B_STANCE_CHANGE_FAIL GEN_7 // In Gen7+, Stance Change fails if the Pokémon is unable to use a move because of confusion, paralysis, etc. In Gen6, it doesn't.
#define B_SHADOW_TAG_ESCAPE GEN_7 // In Gen4+, if both sides have a Pokémon with Shadow Tag, all battlers can escape. Before, neither side could escape this situation.
#define B_MOODY_ACC_EVASION GEN_8 // In Gen8, Moody CANNOT raise Accuracy and Evasion anymore.
#define B_FLASH_FIRE_FROZEN GEN_7 // In Gen5+, Flash Fire can trigger even when frozen, when it couldn't before.
#define B_SYNCHRONIZE_NATURE GEN_8 // In Gen8, if a Pokémon with Synchronize is leading the party, it's 100% guaranteed that wild Pokémon will have the same ability, as opposed to 50% previously.
#define B_SYNCHRONIZE_TOXIC GEN_8 // In Gen5+, if a Pokémon with Synchronize is badly poisoned, the opponent will also become badly poisoned. Previously, the opponent would become regular poisoned.
#define B_UPDATED_INTIMIDATE GEN_8 // In Gen8, Intimidate doesn't work on opponents with the Inner Focus, Scrappy, Own Tempo or Oblivious abilities. It also activates Rattled.
#define B_OBLIVIOUS_TAUNT GEN_7 // In Gen6+, Pokémon with Oblivious can't be taunted.
#define B_STURDY GEN_7 // In Gen5+, Sturdy causes the Pokémon to have 1 HP remaining if another Pokémon's attack or confusion damage would have brought it from full health to 0 HP.
#define B_PLUS_MINUS_INTERACTION GEN_7 // In Gen5+, Plus and Minus can be activated with themselves and the opposite ability. Before, only the opposing ability could activate it.
// Item settings
#define B_HP_BERRIES GEN_7 // In Gen4+, berries which restore hp activate immediately after HP drops to half. In Gen3, the effect occurs at the end of the turn.
#define B_BERRIES_INSTANT GEN_7 // In Gen4+, most berries activate on battle start/switch-in if applicable. In Gen3, they only activate either at the move end or turn end.
#define B_CONFUSE_BERRIES_HEAL GEN_8 // Before Gen7, Figy and similar berries restore 1/8th of HP and trigger at half HP. In Gen7 they restore half HP, triggering at 25% HP. In Gen8 they heal 1/3rd of HP.
// Requires using Item Expansion or manually editing the holdEffectParam of Figy, Wiki, Mago, Aguav and Iapapa berries.
#define B_X_ITEMS_BUFF GEN_7 // In Gen7+, the X Items raise a stat by 2 stages instead of 1.
#define B_MENTAL_HERB GEN_5 // In Gen5+, the Mental Herb cures Infatuation, Taunt, Encore, Torment, Heal Block, and Disable
#define B_TRAINERS_KNOCK_OFF_ITEMS TRUE // If TRUE, trainers can steal/swap your items (non-berries are restored after battle). In vanilla games trainers cannot steal items.
#define B_SOUL_DEW_BOOST GEN_7 // In Gens3-6, Soul Dew boosts Lati@s' Sp. Atk and Sp. Def. In Gen7+ it boosts the power of their Psychic and Dragon type moves instead.
#define B_NET_BALL_MODIFIER GEN_7 // In Gen7+, Net Ball's catch multiplier is x5 instead of x3.
#define B_DIVE_BALL_MODIFIER GEN_7 // In Gen4+, Dive Ball's effectiveness increases by when Surfing or Fishing.
#define B_NEST_BALL_MODIFIER GEN_7 // Nest Ball's formula varies depending on the Gen. See Cmd_handleballthrow.
#define B_REPEAT_BALL_MODIFIER GEN_7 // In Gen7+, Repeat Ball's catch multiplier is x3.5 instead of x3.
#define B_TIMER_BALL_MODIFIER GEN_7 // In Gen5+, Timer Ball's effectiveness increases by x0.3 per turn instead of x0.1
#define B_DUSK_BALL_MODIFIER GEN_7 // In Gen7+, Dusk Ball's catch multiplier is x3 instead of x3.5.
#define B_QUICK_BALL_MODIFIER GEN_7 // In Gen5+, Quick Ball's catch multiplier is x5 instead of x4.
#define B_LURE_BALL_MODIFIER GEN_7 // In Gen7+, Lure Ball's catch multiplier is x5 instead of x3.
#define B_HEAVY_BALL_MODIFIER GEN_7 // In Gen7+, Heavy Ball's ranges change. See Cmd_handleballthrow.
#define B_DREAM_BALL_MODIFIER GEN_8 // In Gen8, Dream Ball's catch multiplier is x4 when the target is asleep or has the ability Comatose.
#define B_SERENE_GRACE_BOOST GEN_7 // In Gen5+, Serene Grace boosts the added flinch chance of King's Rock and Razor Fang.
// Flag settings
// To use the following features in scripting, replace the 0s with the flag ID you're assigning it to.
// Eg: Replace with FLAG_UNUSED_0x264 so you can use that flag to toggle the feature.
#define B_FLAG_INVERSE_BATTLE 0 // If this flag is set, the battle's type effectiveness are inversed. For example, fire is super effective against water.
#define B_FLAG_FORCE_DOUBLE_WILD 0 // If this flag is set, all land and surfing wild battles will be double battles.
#define B_SMART_WILD_AI_FLAG 0 // If not 0, you can set this flag in a script to enable smart wild pokemon
// Var Settings
// To use the following features in scripting, replace the 0s with the var ID you're assigning it to.
// Eg: Replace with VAR_UNUSED_0x40F7 so you can use VAR_TERRAIN for that feature.
#define VAR_TERRAIN 0 // If this var has a value, assigning a STATUS_FIELD_xx_TERRAIN to it before battle causes the battle to start with that terrain active
#define B_VAR_WILD_AI_FLAGS 0 // If not 0, you can use this var to add to default wild AI flags. NOT usable with flags above (1 << 15)
// Terrain settings
#define B_TERRAIN_BG_CHANGE TRUE // If set to TRUE, terrain moves permanently change the default battle background until the effect fades.
#define B_THUNDERSTORM_TERRAIN TRUE // If TRUE, overworld Thunderstorm generates Rain and Electric Terrain as in Gen 8.
#define B_TERRAIN_TYPE_BOOST GEN_8 // In Gen8, damage is boosted by 30% instead of 50%.
#define B_SECRET_POWER_EFFECT GEN_7 // Secret Power's effects change depending on terrain and generation. See GetSecretPowerMoveEffect.
#define B_SECRET_POWER_ANIMATION GEN_7 // Secret Power's animations change depending on terrain and generation.
#define B_NATURE_POWER_MOVES GEN_8 // Nature Power calls different moves depending on terrain and generation. See sNaturePowerMoves.
#define B_CAMOUFLAGE_TYPES GEN_7 // Camouflage changes the user to different types depending on terrain and generation. See sTerrainToType.
// Interface settings
#define B_ABILITY_POP_UP TRUE // In Gen5+, the Pokémon abilities are displayed in a pop-up, when they activate in battle.
#define B_FAST_INTRO TRUE // If set to TRUE, battle intro texts print at the same time as animation of a Pokémon, as opposing to waiting for the animation to end.
#define B_FAST_HP_DRAIN TRUE // If set to TRUE, HP bars will move faster to accomodate higher max HP amounts.
#define B_SHOW_TARGETS TRUE // If set to TRUE, all available targets, for moves hitting 2 or 3 Pokémon, will be shown before selecting a move.
#define B_SHOW_SPLIT_ICON TRUE // If set to TRUE, it will show an icon in the summary showing the move's category split.
#define B_HIDE_HEALTHBOX_IN_ANIMS TRUE // If set to TRUE, hides healthboxes during move animations.
#define B_EXPANDED_MOVE_NAMES FALSE // If set to TRUE, move names are increased from 12 characters to 16 characters.
// Catching settings
#define B_SEMI_INVULNERABLE_CATCH GEN_7 // In Gen4+, you cannot throw a ball against a Pokemon that is in a semi-invulnerable state (dig/fly/etc)
#define B_CATCHING_CHARM_BOOST 20 // % boost in Critical Capture odds if player has the Catching Charm.
#define B_CRITICAL_CAPTURE TRUE // If set to TRUE, Critical Capture will be enabled.
#define B_LAST_USED_BALL TRUE // If TRUE, the "last used ball" feature from Gen 7 will be implemented
#define B_LAST_USED_BALL_BUTTON R_BUTTON // If last used ball is implemented, this button (or button combo) will trigger throwing the last used ball.
// Other settings
#define B_DOUBLE_WILD_CHANCE 0 // % chance of encountering two Pokémon in a Wild Encounter.
#define B_MULTI_BATTLE_WHITEOUT GEN_8 // In Gen4+, multi battles end when the Player and also their Partner don't have any more Pokémon to fight.
#define B_EVOLUTION_AFTER_WHITEOUT GEN_6 // In Gen6+, Pokemon that qualify for evolution after battle will evolve even if the player loses.
#define B_WILD_NATURAL_ENEMIES TRUE // If set to TRUE, certain wild mon species will attack other species when partnered in double wild battles (eg. Zangoose vs Seviper)
// Animation Settings
#define B_NEW_SWORD_PARTICLE FALSE // If set to TRUE, it updates Swords Dance's particle.
#define B_NEW_LEECH_SEED_PARTICLE FALSE // If set to TRUE, it updates Leech Seed's animation particle.
#define B_NEW_HORN_ATTACK_PARTICLE FALSE // If set to TRUE, it updates Horn Attack's horn particle.
#define B_NEW_LEAF_PARTICLE FALSE // If set to TRUE, it updates leaf particle.
#define B_NEW_EMBER_PARTICLES FALSE // If set to TRUE, it updates Ember's fire particle.
#define B_NEW_MEAN_LOOK_PARTICLE FALSE // If set to TRUE, it updates Mean Look's eye particle.
#define B_NEW_TEETH_PARTICLE FALSE // If set to TRUE, it updates Bite/Crunch teeth particle.
#define B_NEW_HANDS_FEET_PARTICLE FALSE // If set to TRUE, it updates chop/kick/punch particles.
#define B_NEW_SPIKES_PARTICLE FALSE // If set to TRUE, it updates Spikes particle.
#define B_NEW_FLY_BUBBLE_PARTICLE FALSE // If set to TRUE, it updates Fly's 'bubble' particle.
#define B_NEW_CURSE_NAIL_PARTICLE FALSE // If set to TRUE, it updates Curse's nail.
#define B_NEW_BATON_PASS_BALL_PARTICLE FALSE // If set to TRUE, it updates Baton Pass' Poké Ball sprite.
#define B_NEW_MORNING_SUN_STAR_PARTICLE FALSE // If set to TRUE, it updates Morning Sun's star particles.
#define B_NEW_IMPACT_PALETTE FALSE // If set to TRUE, it updates the basic 'hit' palette.
#define B_NEW_SURF_PARTICLE_PALETTE FALSE // If set to TRUE, it updates Surf's wave palette.
#define B_ENABLE_DEBUG TRUE // If set to TRUE, enables a debug menu to use in battles by pressing the Select button.
#endif // GUARD_CONSTANTS_BATTLE_CONFIG_H

View File

@@ -44,6 +44,7 @@
#define SPECIAL_BATTLE_STEVEN 8
#define SPECIAL_BATTLE_PIKE_DOUBLE 9
#define SPECIAL_BATTLE_PYRAMID 10
#define SPECIAL_BATTLE_MULTI 11
#define MAX_BATTLE_FRONTIER_POINTS 9999
#define MAX_STREAK 9999
@@ -176,7 +177,7 @@
#define BATTLE_FRONTIER_ITEM_APICOT_BERRY 50
#define BATTLE_FRONTIER_ITEM_STARF_BERRY 51
#define BATTLE_FRONTIER_ITEM_LIECHI_BERRY 52
#define BATTLE_FRONTIER_ITEM_STICK 53
#define BATTLE_FRONTIER_ITEM_LEEK 53
#define BATTLE_FRONTIER_ITEM_LAX_INCENSE 54
#define BATTLE_FRONTIER_ITEM_AGUAV_BERRY 55
#define BATTLE_FRONTIER_ITEM_FIGY_BERRY 56

View File

@@ -18,12 +18,12 @@
#define EFFECT_SPECIAL_DEFENSE_UP 14
#define EFFECT_ACCURACY_UP 15
#define EFFECT_EVASION_UP 16
#define EFFECT_ALWAYS_HIT 17
#define EFFECT_SPECIAL_ATTACK_UP_3 17
#define EFFECT_ATTACK_DOWN 18
#define EFFECT_DEFENSE_DOWN 19
#define EFFECT_SPEED_DOWN 20
#define EFFECT_SPECIAL_ATTACK_DOWN 21 // unused
#define EFFECT_SPECIAL_DEFENSE_DOWN 22 // unused
#define EFFECT_SPECIAL_ATTACK_DOWN 21
#define EFFECT_SPECIAL_DEFENSE_DOWN 22
#define EFFECT_ACCURACY_DOWN 23
#define EFFECT_EVASION_DOWN 24
#define EFFECT_HAZE 25
@@ -40,16 +40,16 @@
#define EFFECT_TRI_ATTACK 36
#define EFFECT_REST 37
#define EFFECT_OHKO 38
#define EFFECT_RAZOR_WIND 39
#define EFFECT_FUSION_COMBO 39
#define EFFECT_SUPER_FANG 40
#define EFFECT_DRAGON_RAGE 41
#define EFFECT_TRAP 42
#define EFFECT_HIGH_CRITICAL 43
#define EFFECT_HEAL_BLOCK 43
#define EFFECT_DOUBLE_HIT 44
#define EFFECT_RECOIL_IF_MISS 45
#define EFFECT_MIST 46
#define EFFECT_FOCUS_ENERGY 47
#define EFFECT_RECOIL 48
#define EFFECT_RECOIL_25 48
#define EFFECT_CONFUSE 49
#define EFFECT_ATTACK_UP_2 50
#define EFFECT_DEFENSE_UP_2 51
@@ -76,7 +76,7 @@
#define EFFECT_SPECIAL_DEFENSE_DOWN_HIT 72
#define EFFECT_ACCURACY_DOWN_HIT 73
#define EFFECT_EVASION_DOWN_HIT 74
#define EFFECT_SKY_ATTACK 75
#define EFFECT_TWO_TURNS_ATTACK 75
#define EFFECT_CONFUSE_HIT 76
#define EFFECT_TWINEEDLE 77
#define EFFECT_VITAL_THROW 78
@@ -86,7 +86,7 @@
#define EFFECT_MIMIC 82
#define EFFECT_METRONOME 83
#define EFFECT_LEECH_SEED 84
#define EFFECT_SPLASH 85
#define EFFECT_DO_NOTHING 85
#define EFFECT_DISABLE 86
#define EFFECT_LEVEL_DAMAGE 87
#define EFFECT_PSYWAVE 88
@@ -97,21 +97,21 @@
#define EFFECT_CONVERSION_2 93
#define EFFECT_LOCK_ON 94
#define EFFECT_SKETCH 95
#define EFFECT_UNUSED_60 96 // thaw
#define EFFECT_HAMMER_ARM 96
#define EFFECT_SLEEP_TALK 97
#define EFFECT_DESTINY_BOND 98
#define EFFECT_FLAIL 99
#define EFFECT_SPITE 100
#define EFFECT_FALSE_SWIPE 101
#define EFFECT_HEAL_BELL 102
#define EFFECT_QUICK_ATTACK 103
#define EFFECT_ALWAYS_CRIT 103
#define EFFECT_TRIPLE_KICK 104
#define EFFECT_THIEF 105
#define EFFECT_MEAN_LOOK 106
#define EFFECT_NIGHTMARE 107
#define EFFECT_MINIMIZE 108
#define EFFECT_CURSE 109
#define EFFECT_UNUSED_6E 110
#define EFFECT_HEALING_WISH 110
#define EFFECT_PROTECT 111
#define EFFECT_SPIKES 112
#define EFFECT_FORESIGHT 113
@@ -126,13 +126,13 @@
#define EFFECT_PRESENT 122
#define EFFECT_FRUSTRATION 123
#define EFFECT_SAFEGUARD 124
#define EFFECT_THAW_HIT 125
#define EFFECT_UNUSED_125 125
#define EFFECT_MAGNITUDE 126
#define EFFECT_BATON_PASS 127
#define EFFECT_PURSUIT 128
#define EFFECT_RAPID_SPIN 129
#define EFFECT_SONICBOOM 130
#define EFFECT_UNUSED_83 131
#define EFFECT_CAPTIVATE 131
#define EFFECT_MORNING_SUN 132
#define EFFECT_SYNTHESIS 133
#define EFFECT_MOONLIGHT 134
@@ -142,7 +142,7 @@
#define EFFECT_DEFENSE_UP_HIT 138
#define EFFECT_ATTACK_UP_HIT 139
#define EFFECT_ALL_STATS_UP_HIT 140
#define EFFECT_UNUSED_8D 141 // incomplete fake out in gen 2
#define EFFECT_FELL_STINGER 141
#define EFFECT_BELLY_DRUM 142
#define EFFECT_PSYCH_UP 143
#define EFFECT_MIRROR_COAT 144
@@ -151,7 +151,7 @@
#define EFFECT_EARTHQUAKE 147
#define EFFECT_FUTURE_SIGHT 148
#define EFFECT_GUST 149
#define EFFECT_FLINCH_MINIMIZE_HIT 150 // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM
#define EFFECT_FLINCH_MINIMIZE_HIT 150
#define EFFECT_SOLAR_BEAM 151
#define EFFECT_THUNDER 152
#define EFFECT_TELEPORT 153
@@ -164,7 +164,7 @@
#define EFFECT_STOCKPILE 160
#define EFFECT_SPIT_UP 161
#define EFFECT_SWALLOW 162
#define EFFECT_UNUSED_A3 163
#define EFFECT_WORRY_SEED 163
#define EFFECT_HAIL 164
#define EFFECT_TORMENT 165
#define EFFECT_FLATTER 166
@@ -199,9 +199,9 @@
#define EFFECT_SNATCH 195
#define EFFECT_LOW_KICK 196
#define EFFECT_SECRET_POWER 197
#define EFFECT_DOUBLE_EDGE 198
#define EFFECT_RECOIL_33 198
#define EFFECT_TEETER_DANCE 199
#define EFFECT_BLAZE_KICK 200
#define EFFECT_HIT_ESCAPE 200
#define EFFECT_MUD_SPORT 201
#define EFFECT_POISON_FANG 202
#define EFFECT_WEATHER_BALL 203
@@ -210,12 +210,193 @@
#define EFFECT_COSMIC_POWER 206
#define EFFECT_SKY_UPPERCUT 207
#define EFFECT_BULK_UP 208
#define EFFECT_POISON_TAIL 209
#define EFFECT_PLACEHOLDER 209
#define EFFECT_WATER_SPORT 210
#define EFFECT_CALM_MIND 211
#define EFFECT_DRAGON_DANCE 212
#define EFFECT_CAMOUFLAGE 213
#define NUM_BATTLE_MOVE_EFFECTS 214
// New move effects
#define EFFECT_PLEDGE 214
#define EFFECT_FLING 215
#define EFFECT_NATURAL_GIFT 216
#define EFFECT_WAKE_UP_SLAP 217
#define EFFECT_WRING_OUT 218
#define EFFECT_HEX 219
#define EFFECT_ASSURANCE 220
#define EFFECT_TRUMP_CARD 221
#define EFFECT_ACROBATICS 222
#define EFFECT_HEAT_CRASH 223
#define EFFECT_PUNISHMENT 224
#define EFFECT_STORED_POWER 225
#define EFFECT_ELECTRO_BALL 226
#define EFFECT_GYRO_BALL 227
#define EFFECT_ECHOED_VOICE 228
#define EFFECT_PAYBACK 229
#define EFFECT_ROUND 230
#define EFFECT_BRINE 231
#define EFFECT_VENOSHOCK 232
#define EFFECT_RETALIATE 233
#define EFFECT_BULLDOZE 234
#define EFFECT_FOUL_PLAY 235
#define EFFECT_PSYSHOCK 236
#define EFFECT_ROOST 237
#define EFFECT_GRAVITY 238
#define EFFECT_MIRACLE_EYE 239
#define EFFECT_TAILWIND 240
#define EFFECT_EMBARGO 241
#define EFFECT_AQUA_RING 242
#define EFFECT_TRICK_ROOM 243
#define EFFECT_WONDER_ROOM 244
#define EFFECT_MAGIC_ROOM 245
#define EFFECT_MAGNET_RISE 246
#define EFFECT_TOXIC_SPIKES 247
#define EFFECT_GASTRO_ACID 248
#define EFFECT_STEALTH_ROCK 249
#define EFFECT_TELEKINESIS 250
#define EFFECT_POWER_SWAP 251
#define EFFECT_GUARD_SWAP 252
#define EFFECT_HEART_SWAP 253
#define EFFECT_POWER_SPLIT 254
#define EFFECT_GUARD_SPLIT 255
#define EFFECT_STICKY_WEB 256
#define EFFECT_METAL_BURST 257
#define EFFECT_LUCKY_CHANT 258
#define EFFECT_SUCKER_PUNCH 259
#define EFFECT_SPECIAL_DEFENSE_DOWN_HIT_2 260
#define EFFECT_SIMPLE_BEAM 261
#define EFFECT_ENTRAINMENT 262
#define EFFECT_HEAL_PULSE 263
#define EFFECT_QUASH 264
#define EFFECT_ION_DELUGE 265
#define EFFECT_FREEZE_DRY 266
#define EFFECT_TOPSY_TURVY 267
#define EFFECT_MISTY_TERRAIN 268
#define EFFECT_GRASSY_TERRAIN 269
#define EFFECT_ELECTRIC_TERRAIN 270
#define EFFECT_PSYCHIC_TERRAIN 271
#define EFFECT_ATTACK_ACCURACY_UP 272
#define EFFECT_ATTACK_SPATK_UP 273
#define EFFECT_HURRICANE 274
#define EFFECT_TWO_TYPED_MOVE 275
#define EFFECT_ME_FIRST 276
#define EFFECT_SPEED_UP_HIT 277
#define EFFECT_QUIVER_DANCE 278
#define EFFECT_COIL 279
#define EFFECT_ELECTRIFY 280
#define EFFECT_SCALD 281
#define EFFECT_REFLECT_TYPE 282
#define EFFECT_SOAK 283
#define EFFECT_GROWTH 284
#define EFFECT_CLOSE_COMBAT 285
#define EFFECT_LAST_RESORT 286
#define EFFECT_RECOIL_33_STATUS 287
#define EFFECT_FLINCH_STATUS 288
#define EFFECT_RECOIL_50 289
#define EFFECT_SHELL_SMASH 290
#define EFFECT_SHIFT_GEAR 291
#define EFFECT_DEFENSE_UP_3 292
#define EFFECT_NOBLE_ROAR 293
#define EFFECT_VENOM_DRENCH 294
#define EFFECT_TOXIC_THREAD 295
#define EFFECT_CLEAR_SMOG 296
#define EFFECT_HIT_SWITCH_TARGET 297
#define EFFECT_FINAL_GAMBIT 298
#define EFFECT_CHANGE_TYPE_ON_ITEM 299
#define EFFECT_AUTOTOMIZE 300
#define EFFECT_COPYCAT 301
#define EFFECT_DEFOG 302
#define EFFECT_HIT_ENEMY_HEAL_ALLY 303
#define EFFECT_SMACK_DOWN 304
#define EFFECT_SYNCHRONOISE 305
#define EFFECT_PSYCHO_SHIFT 306
#define EFFECT_POWER_TRICK 307
#define EFFECT_FLAME_BURST 308
#define EFFECT_AFTER_YOU 309
#define EFFECT_BESTOW 310
#define EFFECT_ROTOTILLER 311
#define EFFECT_FLOWER_SHIELD 312
#define EFFECT_HIT_PREVENT_ESCAPE 313
#define EFFECT_SPEED_SWAP 314
#define EFFECT_DEFENSE_UP2_HIT 315
#define EFFECT_REVELATION_DANCE 316
#define EFFECT_AURORA_VEIL 317
#define EFFECT_THIRD_TYPE 318
#define EFFECT_FEINT 319
#define EFFECT_SPARKLING_ARIA 320
#define EFFECT_ACUPRESSURE 321
#define EFFECT_AROMATIC_MIST 322
#define EFFECT_POWDER 323
#define EFFECT_SP_ATTACK_UP_HIT 324
#define EFFECT_BELCH 325
#define EFFECT_PARTING_SHOT 326
#define EFFECT_SPECTRAL_THIEF 327
#define EFFECT_V_CREATE 328
#define EFFECT_MAT_BLOCK 329
#define EFFECT_STOMPING_TANTRUM 330
#define EFFECT_CORE_ENFORCER 331
#define EFFECT_INSTRUCT 332
#define EFFECT_THROAT_CHOP 333
#define EFFECT_LASER_FOCUS 334
#define EFFECT_MAGNETIC_FLUX 335
#define EFFECT_GEAR_UP 336
#define EFFECT_INCINERATE 337
#define EFFECT_BUG_BITE 338
#define EFFECT_STRENGTH_SAP 339
#define EFFECT_MIND_BLOWN 340
#define EFFECT_PURIFY 341
#define EFFECT_BURN_UP 342
#define EFFECT_SHORE_UP 343
#define EFFECT_GEOMANCY 344
#define EFFECT_FAIRY_LOCK 345
#define EFFECT_ALLY_SWITCH 346
#define EFFECT_RELIC_SONG 347
#define EFFECT_ATTACKER_DEFENSE_DOWN_HIT 348
#define EFFECT_BODY_PRESS 349
#define EFFECT_EERIE_SPELL 350
#define EFFECT_JUNGLE_HEALING 351
#define EFFECT_COACHING 352
#define EFFECT_LASH_OUT 353
#define EFFECT_GRASSY_GLIDE 354
#define EFFECT_REMOVE_TERRAIN 355
#define EFFECT_DYNAMAX_DOUBLE_DMG 356
#define EFFECT_DECORATE 357
#define EFFECT_SNIPE_SHOT 358
#define EFFECT_TRIPLE_HIT 359
#define EFFECT_RECOIL_HP_25 360
#define EFFECT_STUFF_CHEEKS 361
#define EFFECT_GRAV_APPLE 362
#define EFFECT_EVASION_UP_HIT 363
#define EFFECT_DOUBLE_IRON_BASH 364
#define EFFECT_GLITZY_GLOW 365
#define EFFECT_BADDY_BAD 366
#define EFFECT_SAPPY_SEED 367
#define EFFECT_FREEZY_FROST 368
#define EFFECT_SPARKLY_SWIRL 369
#define EFFECT_PLASMA_FISTS 370
#define EFFECT_HYPERSPACE_FURY 371
#define EFFECT_AURA_WHEEL 372
#define EFFECT_PHOTON_GEYSER 373
#define EFFECT_SHELL_SIDE_ARM 374
#define EFFECT_TERRAIN_PULSE 375
#define EFFECT_JAW_LOCK 376
#define EFFECT_NO_RETREAT 377
#define EFFECT_TAR_SHOT 378
#define EFFECT_POLTERGEIST 379
#define EFFECT_OCTOLOCK 380
#define EFFECT_CLANGOROUS_SOUL 381
#define EFFECT_BOLT_BEAK 382
#define EFFECT_SKY_DROP 383
#define EFFECT_EXPANDING_FORCE 384
#define EFFECT_SCALE_SHOT 385
#define EFFECT_METEOR_BEAM 386
#define EFFECT_RISING_VOLTAGE 387
#define EFFECT_BEAK_BLAST 388
#define EFFECT_COURT_CHANGE 389
#define EFFECT_STEEL_BEAM 390
#define EFFECT_EXTREME_EVOBOOST 391
#define EFFECT_DAMAGE_SET_TERRAIN 392 // genesis supernova
#define NUM_BATTLE_MOVE_EFFECTS 393
#endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H

View File

@@ -5,14 +5,14 @@
#define sPAINSPLIT_HP (gBattleScripting + 0x00) // painSplitHp
#define sBIDE_DMG (gBattleScripting + 0x04) // bideDmg
#define sMULTIHIT_STRING (gBattleScripting + 0x08) // multihitString
#define sDMG_MULTIPLIER (gBattleScripting + 0x0E) // dmgMultiplier
#define sEXP_CATCH (gBattleScripting + 0x0E) // expOnCatch
#define sTWOTURN_STRINGID (gBattleScripting + 0x0F) // twoTurnsMoveStringId
#define sB_ANIM_ARG1 (gBattleScripting + 0x10) // animArg1
#define sB_ANIM_ARG2 (gBattleScripting + 0x11) // animArg2
#define sTRIPLE_KICK_POWER (gBattleScripting + 0x12) // tripleKickPower
#define sMOVEEND_STATE (gBattleScripting + 0x14) // moveendState
#define sBATTLER_WITH_ABILITY (gBattleScripting + 0x15) // battlerWithAbility
#define sMULTIHIT_EFFECT (gBattleScripting + 0x16) // multihitMoveEffect
#define sSAVED_STAT_CHANGER (gBattleScripting + 0x15) // savedStatChanger
#define sSHIFT_SWITCHED (gBattleScripting + 0x16) // shiftSwitched
#define sBATTLER (gBattleScripting + 0x17) // battler
#define sB_ANIM_TURN (gBattleScripting + 0x18) // animTurn
#define sB_ANIM_TARGETS_HIT (gBattleScripting + 0x19) // animTargetsHit
@@ -22,13 +22,24 @@
#define sBATTLE_STYLE (gBattleScripting + 0x1D) // battleStyle
#define sLVLBOX_STATE (gBattleScripting + 0x1E) // drawlvlupboxState
#define sLEARNMOVE_STATE (gBattleScripting + 0x1F) // learnMoveState
#define sPURSUIT_DOUBLES_ATTACKER (gBattleScripting + 0x20) // pursuitDoublesAttacker
#define sSAVED_BATTLER (gBattleScripting + 0x20) // savedBattler
#define sRESHOW_MAIN_STATE (gBattleScripting + 0x21) // reshowMainState
#define sRESHOW_HELPER_STATE (gBattleScripting + 0x22) // reshowHelperState
#define sLVLUP_HP (gBattleScripting + 0x23) // levelUpHP
#define sWINDOWS_TYPE (gBattleScripting + 0x24) // windowsType
#define sMULTIPLAYER_ID (gBattleScripting + 0x25) // multiplayerId
#define sSPECIAL_TRAINER_BATTLE_TYPE (gBattleScripting + 0x26) // specialTrainerBattleType
#define sMON_CAUGHT (gBattleScripting + 0x27) // monCaught
#define sSAVED_DMG (gBattleScripting + 0x28) // savedDmg
#define sSAVED_MOVE_EFFECT (gBattleScripting + 0x2C) // savedMoveEffect
#define sMOVE_EFFECT (gBattleScripting + 0x2E) // moveEffect
#define sMULTIHIT_EFFECT (gBattleScripting + 0x30) // multihitMoveEffect
#define sILLUSION_NICK_HACK (gBattleScripting + 0x32) // illusionNickHack
#define sFIXED_ABILITY_POPUP (gBattleScripting + 0x33) // fixedPopup
#define sABILITY_OVERWRITE (gBattleScripting + 0x34) // abilityPopupOverwrite
#define sSWITCH_CASE (gBattleScripting + 0x36) // switchCase
#define sBERRY_OVERRIDE (gBattleScripting + 0x37) // overrideBerryRequirements
#define sSTICKY_WEB_STAT_DROP (gBattleScripting + 0x38) // stickyWebStatDrop
// Array entries for battle communication
#define MULTIUSE_STATE 0
@@ -43,7 +54,6 @@
#define MSG_DISPLAY 7
#define BATTLE_COMMUNICATION_ENTRIES_COUNT 8
#define cEFFECT_CHOOSER (gBattleCommunication + MOVE_EFFECT_BYTE)
#define cMULTISTRING_CHOOSER (gBattleCommunication + MULTISTRING_CHOOSER)
#define cMISS_TYPE (gBattleCommunication + MISS_TYPE)
@@ -53,19 +63,19 @@
#define BS_EFFECT_BATTLER 2
#define BS_FAINTED 3
#define BS_ATTACKER_WITH_PARTNER 4 // for Cmd_updatestatusicon
#define BS_FAINTED_LINK_MULTIPLE_1 5
#define BS_FAINTED_LINK_MULTIPLE_2 6
#define BS_FAINTED_LINK_MULTIPLE_1 5 // for openpartyscreen
#define BS_FAINTED_LINK_MULTIPLE_2 6 // for openpartyscreen
#define BS_BATTLER_0 7
#define BS_ATTACKER_SIDE 8 // for Cmd_jumpifability
#define BS_NOT_ATTACKER_SIDE 9 // for Cmd_jumpifability
#define BS_TARGET_SIDE 9 // for Cmd_jumpifability
#define BS_SCRIPTING 10
#define BS_PLAYER1 11
#define BS_OPPONENT1 12
#define BS_PLAYER2 13
#define BS_PLAYER2 13 // for Cmd_updatestatusicon
#define BS_OPPONENT2 14
#define BS_ABILITY_BATTLER 15
// Cmd_accuracycheck
#define NO_ACC_CALC 0xFFFE
#define NO_ACC_CALC_CHECK_LOCK_ON 0xFFFF
#define ACC_CURR_MOVE 0
@@ -78,45 +88,179 @@
#define CMP_NO_COMMON_BITS 5
// Cmd_various
#define VARIOUS_CANCEL_MULTI_TURN_MOVES 0
#define VARIOUS_SET_MAGIC_COAT_TARGET 1
#define VARIOUS_IS_RUNNING_IMPOSSIBLE 2
#define VARIOUS_GET_MOVE_TARGET 3
#define VARIOUS_GET_BATTLER_FAINTED 4
#define VARIOUS_RESET_INTIMIDATE_TRACE_BITS 5
#define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 6
#define VARIOUS_RESET_PLAYER_FAINTED 7
#define VARIOUS_PALACE_FLAVOR_TEXT 8
#define VARIOUS_ARENA_JUDGMENT_WINDOW 9
#define VARIOUS_ARENA_OPPONENT_MON_LOST 10
#define VARIOUS_ARENA_PLAYER_MON_LOST 11
#define VARIOUS_ARENA_BOTH_MONS_LOST 12
#define VARIOUS_EMIT_YESNOBOX 13
#define VARIOUS_DRAW_ARENA_REF_TEXT_BOX 14
#define VARIOUS_ERASE_ARENA_REF_TEXT_BOX 15
#define VARIOUS_ARENA_JUDGMENT_STRING 16
#define VARIOUS_ARENA_WAIT_STRING 17
#define VARIOUS_WAIT_CRY 18
#define VARIOUS_RETURN_OPPONENT_MON1 19
#define VARIOUS_RETURN_OPPONENT_MON2 20
#define VARIOUS_VOLUME_DOWN 21
#define VARIOUS_VOLUME_UP 22
#define VARIOUS_SET_ALREADY_STATUS_MOVE_ATTEMPT 23
#define VARIOUS_PALACE_TRY_ESCAPE_STATUS 24
#define VARIOUS_SET_TELEPORT_OUTCOME 25
#define VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC 26
#define VARIOUS_CANCEL_MULTI_TURN_MOVES 0
#define VARIOUS_SET_MAGIC_COAT_TARGET 1
#define VARIOUS_IS_RUNNING_IMPOSSIBLE 2
#define VARIOUS_GET_MOVE_TARGET 3
#define VARIOUS_GET_BATTLER_FAINTED 4
#define VARIOUS_RESET_INTIMIDATE_TRACE_BITS 5
#define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 6
#define VARIOUS_RESET_PLAYER_FAINTED 7
#define VARIOUS_PALACE_FLAVOR_TEXT 8
#define VARIOUS_ARENA_JUDGMENT_WINDOW 9
#define VARIOUS_ARENA_OPPONENT_MON_LOST 10
#define VARIOUS_ARENA_PLAYER_MON_LOST 11
#define VARIOUS_ARENA_BOTH_MONS_LOST 12
#define VARIOUS_EMIT_YESNOBOX 13
#define VARIOUS_DRAW_ARENA_REF_TEXT_BOX 14
#define VARIOUS_ERASE_ARENA_REF_TEXT_BOX 15
#define VARIOUS_ARENA_JUDGMENT_STRING 16
#define VARIOUS_ARENA_WAIT_STRING 17
#define VARIOUS_WAIT_CRY 18
#define VARIOUS_RETURN_OPPONENT_MON1 19
#define VARIOUS_RETURN_OPPONENT_MON2 20
#define VARIOUS_VOLUME_DOWN 21
#define VARIOUS_VOLUME_UP 22
#define VARIOUS_SET_ALREADY_STATUS_MOVE_ATTEMPT 23
#define VARIOUS_PALACE_TRY_ESCAPE_STATUS 24
#define VARIOUS_SET_TELEPORT_OUTCOME 25
#define VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC 26
#define VARIOUS_STAT_TEXT_BUFFER 27
#define VARIOUS_SWITCHIN_ABILITIES 28
#define VARIOUS_SAVE_TARGET 29
#define VARIOUS_RESTORE_TARGET 30
#define VARIOUS_INSTANT_HP_DROP 31
#define VARIOUS_CLEAR_STATUS 32
#define VARIOUS_RESTORE_PP 33
#define VARIOUS_TRY_ACTIVATE_MOXIE 34
#define VARIOUS_TRY_ACTIVATE_FELL_STINGER 35
#define VARIOUS_PLAY_MOVE_ANIMATION 36
#define VARIOUS_SET_LUCKY_CHANT 37
#define VARIOUS_SUCKER_PUNCH_CHECK 38
#define VARIOUS_SET_SIMPLE_BEAM 39
#define VARIOUS_TRY_ENTRAINMENT 40
#define VARIOUS_SET_LAST_USED_ABILITY 41
#define VARIOUS_TRY_HEAL_PULSE 42
#define VARIOUS_TRY_QUASH 43
#define VARIOUS_INVERT_STAT_STAGES 44
#define VARIOUS_SET_TERRAIN 45
#define VARIOUS_TRY_ME_FIRST 46
#define VARIOUS_JUMP_IF_BATTLE_END 47
#define VARIOUS_TRY_ELECTRIFY 48
#define VARIOUS_TRY_REFLECT_TYPE 49
#define VARIOUS_TRY_SOAK 50
#define VARIOUS_HANDLE_MEGA_EVO 51
#define VARIOUS_TRY_LAST_RESORT 52
#define VARIOUS_ARGUMENT_STATUS_EFFECT 53
#define VARIOUS_TRY_HIT_SWITCH_TARGET 54
#define VARIOUS_TRY_AUTOTOMIZE 55
#define VARIOUS_TRY_COPYCAT 56
#define VARIOUS_ABILITY_POPUP 57
#define VARIOUS_DEFOG 58
#define VARIOUS_JUMP_IF_TARGET_ALLY 59
#define VARIOUS_TRY_SYNCHRONOISE 60
#define VARIOUS_PSYCHO_SHIFT 61
#define VARIOUS_CURE_STATUS 62
#define VARIOUS_POWER_TRICK 63
#define VARIOUS_AFTER_YOU 64
#define VARIOUS_BESTOW 65
#define VARIOUS_ARGUMENT_TO_MOVE_EFFECT 66
#define VARIOUS_JUMP_IF_NOT_GROUNDED 67
#define VARIOUS_HANDLE_TRAINER_SLIDE_MSG 68
#define VARIOUS_TRY_TRAINER_SLIDE_MSG_FIRST_OFF 69
#define VARIOUS_TRY_TRAINER_SLIDE_MSG_LAST_ON 70
#define VARIOUS_SET_AURORA_VEIL 71
#define VARIOUS_TRY_THIRD_TYPE 72
#define VARIOUS_ACUPRESSURE 73
#define VARIOUS_SET_POWDER 74
#define VARIOUS_SPECTRAL_THIEF 75
#define VARIOUS_GRAVITY_ON_AIRBORNE_MONS 76
#define VARIOUS_CHECK_IF_GRASSY_TERRAIN_HEALS 77
#define VARIOUS_JUMP_IF_ROAR_FAILS 78
#define VARIOUS_TRY_INSTRUCT 79
#define VARIOUS_JUMP_IF_NOT_BERRY 80
#define VARIOUS_TRACE_ABILITY 81
#define VARIOUS_UPDATE_NICK 82
#define VARIOUS_TRY_ILLUSION_OFF 83
#define VARIOUS_SET_SPRITEIGNORE0HP 84
#define VARIOUS_HANDLE_FORM_CHANGE 85
#define VARIOUS_GET_STAT_VALUE 86
#define VARIOUS_JUMP_IF_FULL_HP 87
#define VARIOUS_LOSE_TYPE 88
#define VARIOUS_TRY_ACTIVATE_SOULHEART 89
#define VARIOUS_TRY_ACTIVATE_RECEIVER 90
#define VARIOUS_TRY_ACTIVATE_BEAST_BOOST 91
#define VARIOUS_TRY_FRISK 92
#define VARIOUS_JUMP_IF_SHIELDS_DOWN_PROTECTED 93
#define VARIOUS_TRY_FAIRY_LOCK 94
#define VARIOUS_JUMP_IF_NO_ALLY 95
#define VARIOUS_POISON_TYPE_IMMUNITY 96
#define VARIOUS_JUMP_IF_NO_HOLD_EFFECT 97
#define VARIOUS_INFATUATE_WITH_BATTLER 98
#define VARIOUS_SET_LAST_USED_ITEM 99
#define VARIOUS_PARALYZE_TYPE_IMMUNITY 100
#define VARIOUS_JUMP_IF_ABSENT 101
#define VARIOUS_DESTROY_ABILITY_POPUP 102
#define VARIOUS_TOTEM_BOOST 103
#define VARIOUS_TRY_ACTIVATE_GRIM_NEIGH 104
#define VARIOUS_MOVEEND_ITEM_EFFECTS 105
#define VARIOUS_TERRAIN_SEED 106
#define VARIOUS_MAKE_INVISIBLE 107
#define VARIOUS_ROOM_SERVICE 108
#define VARIOUS_JUMP_IF_TERRAIN_AFFECTED 109
#define VARIOUS_EERIE_SPELL_PP_REDUCE 110
#define VARIOUS_JUMP_IF_TEAM_HEALTHY 111
#define VARIOUS_TRY_HEAL_QUARTER_HP 112
#define VARIOUS_REMOVE_TERRAIN 113
#define VARIOUS_JUMP_IF_PRANKSTER_BLOCKED 114
#define VARIOUS_TRY_TO_CLEAR_PRIMAL_WEATHER 115
#define VARIOUS_GET_ROTOTILLER_TARGETS 116
#define VARIOUS_JUMP_IF_NOT_ROTOTILLER_AFFECTED 117
#define VARIOUS_TRY_ACTIVATE_BATTLE_BOND 118
#define VARIOUS_CONSUME_BERRY 119
#define VARIOUS_JUMP_IF_CANT_REVERT_TO_PRIMAL 120
#define VARIOUS_HANDLE_PRIMAL_REVERSION 121
#define VARIOUS_APPLY_PLASMA_FISTS 122
#define VARIOUS_JUMP_IF_SPECIES 123
#define VARIOUS_UPDATE_ABILITY_POPUP 124
#define VARIOUS_JUMP_IF_WEATHER_AFFECTED 125
#define VARIOUS_JUMP_IF_LEAF_GUARD_PROTECTED 126
#define VARIOUS_SET_ATTACKER_STICKY_WEB_USER 127
#define VARIOUS_TRY_TO_APPLY_MIMICRY 128
#define VARIOUS_PHOTON_GEYSER_CHECK 129
#define VARIOUS_SHELL_SIDE_ARM_CHECK 130
#define VARIOUS_TRY_NO_RETREAT 131
#define VARIOUS_TRY_TAR_SHOT 132
#define VARIOUS_CAN_TAR_SHOT_WORK 133
#define VARIOUS_CHECK_POLTERGEIST 134
#define VARIOUS_SET_OCTOLOCK 135
#define VARIOUS_CUT_1_3_HP_RAISE_STATS 136
#define VARIOUS_TRY_END_NEUTRALIZING_GAS 137
#define VARIOUS_JUMP_IF_UNDER_200 138
#define VARIOUS_SET_SKY_DROP 139
#define VARIOUS_CLEAR_SKY_DROP 140
#define VARIOUS_SKY_DROP_YAWN 141
#define VARIOUS_JUMP_IF_CANT_FLING 142
#define VARIOUS_JUMP_IF_HOLD_EFFECT 143
#define VARIOUS_CURE_CERTAIN_STATUSES 144
#define VARIOUS_TRY_RESET_NEGATIVE_STAT_STAGES 145
#define VARIOUS_JUMP_IF_LAST_USED_ITEM_BERRY 146
#define VARIOUS_JUMP_IF_LAST_USED_ITEM_HOLD_EFFECT 147
#define VARIOUS_SAVE_BATTLER_ITEM 148
#define VARIOUS_RESTORE_BATTLER_ITEM 149
#define VARIOUS_BATTLER_ITEM_TO_LAST_USED_ITEM 150
#define VARIOUS_SET_BEAK_BLAST 151
#define VARIOUS_SWAP_SIDE_STATUSES 152
#define VARIOUS_SET_Z_EFFECT 153
// Cmd_manipulatedmg
// Cmd_manipulatedamage
#define DMG_CHANGE_SIGN 0
#define DMG_RECOIL_FROM_MISS 1
#define DMG_DOUBLED 2
#define DMG_1_8_TARGET_HP 3
#define DMG_FULL_ATTACKER_HP 4
#define DMG_CURR_ATTACKER_HP 5
#define DMG_BIG_ROOT 6
#define DMG_1_2_ATTACKER_HP 7
#define DMG_RECOIL_FROM_IMMUNE 8 // Used to calculate recoil for the Gen 4 version of Jump Kick
// Cmd_jumpifcantswitch
#define SWITCH_IGNORE_ESCAPE_PREVENTION (1 << 7)
// Cmd_statbuffchange
#define STAT_BUFF_ALLOW_PTR (1 << 0) // If set, allow use of jumpptr. Set in every use of statbuffchange
#define STAT_BUFF_NOT_PROTECT_AFFECTED (1 << 5)
#define STAT_CHANGE_ALLOW_PTR (1 << 0) // If set, allow use of jumpptr. Set in every use of statbuffchange
#define STAT_CHANGE_NOT_PROTECT_AFFECTED (1 << 5)
#define STAT_CHANGE_UPDATE_MOVE_EFFECT (1 << 6)
// stat change flags for Cmd_playstatchangeanimation
#define STAT_CHANGE_NEGATIVE (1 << 0)
@@ -137,23 +281,42 @@
#define PARTY_SCREEN_OPTIONAL (1 << 7) // Flag for first argument to openpartyscreen
// cases for Cmd_moveend
#define MOVEEND_RAGE 0
#define MOVEEND_DEFROST 1
#define MOVEEND_SYNCHRONIZE_TARGET 2
#define MOVEEND_ON_DAMAGE_ABILITIES 3
#define MOVEEND_IMMUNITY_ABILITIES 4
#define MOVEEND_SYNCHRONIZE_ATTACKER 5
#define MOVEEND_CHOICE_MOVE 6
#define MOVEEND_CHANGED_ITEMS 7
#define MOVEEND_ATTACKER_INVISIBLE 8
#define MOVEEND_ATTACKER_VISIBLE 9
#define MOVEEND_TARGET_VISIBLE 10
#define MOVEEND_ITEM_EFFECTS_ALL 11
#define MOVEEND_KINGSROCK_SHELLBELL 12
#define MOVEEND_SUBSTITUTE 13
#define MOVEEND_UPDATE_LAST_MOVES 14
#define MOVEEND_MIRROR_MOVE 15
#define MOVEEND_NEXT_TARGET 16
#define MOVEEND_COUNT 17
#define MOVEEND_PROTECT_LIKE_EFFECT 0
#define MOVEEND_RAGE 1
#define MOVEEND_DEFROST 2
#define MOVEEND_SYNCHRONIZE_TARGET 3
#define MOVEEND_ABILITIES 4
#define MOVEEND_ABILITIES_ATTACKER 5
#define MOVEEND_STATUS_IMMUNITY_ABILITIES 6
#define MOVEEND_SYNCHRONIZE_ATTACKER 7
#define MOVEEND_CHOICE_MOVE 8
#define MOVEEND_CHANGED_ITEMS 9
#define MOVEEND_ATTACKER_INVISIBLE 10
#define MOVEEND_ATTACKER_VISIBLE 11
#define MOVEEND_TARGET_VISIBLE 12
#define MOVEEND_ITEM_EFFECTS_TARGET 13
#define MOVEEND_MOVE_EFFECTS2 14
#define MOVEEND_ITEM_EFFECTS_ALL 15
#define MOVEEND_KINGSROCK 16 // These item effects will occur each strike of a multi-hit move
#define MOVEEND_SUBSTITUTE 17
#define MOVEEND_SKY_DROP_CONFUSE 18
#define MOVEEND_UPDATE_LAST_MOVES 19
#define MOVEEND_MIRROR_MOVE 20
#define MOVEEND_NEXT_TARGET 21 // Everything up until here is handled for each strike of a multi-hit move
#define MOVEEND_MAGICIAN 22 // Occurs after final multi-hit strike, and after other items/abilities would activate
#define MOVEEND_EJECT_BUTTON 23
#define MOVEEND_RED_CARD 24
#define MOVEEND_EJECT_PACK 25
#define MOVEEND_LIFEORB_SHELLBELL 26 // Includes shell bell, throat spray, etc
#define MOVEEND_PICKPOCKET 27
#define MOVEEND_DANCER 28
#define MOVEEND_EMERGENCY_EXIT 29
#define MOVEEND_CLEAR_BITS 30
#define MOVEEND_COUNT 31
// switch cases
#define B_SWITCH_NORMAL 0
#define B_SWITCH_HIT 1 // dragon tail, circle throw
#define B_SWITCH_RED_CARD 2
#endif // GUARD_CONSTANTS_BATTLE_SCRIPT_COMMANDS_H

File diff suppressed because it is too large Load Diff

View File

@@ -38,4 +38,10 @@
#define BATTLE_TOWER_LINKSTAT_MEMBER_RETIRE 2
#define BATTLE_TOWER_LINKSTAT_LEADER_RETIRE 3
// Ids for special multi battle types
#define MULTI_BATTLE_2_VS_2 0
#define MULTI_BATTLE_2_VS_WILD 1
#define MULTI_BATTLE_2_VS_1 2
#define MULTI_BATTLE_CHOOSE_MONS 0x80
#endif //GUARD_CONSTANTS_BATTLE_TOWER_H

View File

@@ -154,67 +154,93 @@
#define CONTEST_EFFECT_TYPE_SPECIAL_APPEAL 5
#define CONTEST_EFFECT_TYPE_TURN_ORDER 6
#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
#define COMBO_STARTER_POUND 1
#define COMBO_STARTER_FIRE_PUNCH 2
#define COMBO_STARTER_ICE_PUNCH 3
#define COMBO_STARTER_THUNDER_PUNCH 4
#define COMBO_STARTER_SCRATCH 5
#define COMBO_STARTER_VICE_GRIP 6
#define COMBO_STARTER_SWORDS_DANCE 7
#define COMBO_STARTER_SAND_ATTACK 8
#define COMBO_STARTER_HORN_ATTACK 9
#define COMBO_STARTER_LEER 10
#define COMBO_STARTER_SING 11
#define COMBO_STARTER_SURF 12
#define COMBO_STARTER_PECK 13
#define COMBO_STARTER_LEECH_SEED 14
#define COMBO_STARTER_GROWTH 15
#define COMBO_STARTER_STRING_SHOT 16
#define COMBO_STARTER_DRAGON_RAGE 17
#define COMBO_STARTER_ROCK_THROW 18
#define COMBO_STARTER_EARTHQUAKE 19
#define COMBO_STARTER_TOXIC 20
#define COMBO_STARTER_CONFUSION 21
#define COMBO_STARTER_PSYCHIC 22
#define COMBO_STARTER_HYPNOSIS 23
#define COMBO_STARTER_RAGE 24
#define COMBO_STARTER_DOUBLE_TEAM 25
#define COMBO_STARTER_HARDEN 26
#define COMBO_STARTER_DEFENSE_CURL 27
#define COMBO_STARTER_FOCUS_ENERGY 28
#define COMBO_STARTER_SMOG 29
#define COMBO_STARTER_SLUDGE 30
#define COMBO_STARTER_BONE_CLUB 31
#define COMBO_STARTER_KINESIS 32
#define COMBO_STARTER_SOFT_BOILED 33
#define COMBO_STARTER_BONEMERANG 34
#define COMBO_STARTER_REST 35
#define COMBO_STARTER_MIND_READER 36
#define COMBO_STARTER_CURSE 37
#define COMBO_STARTER_POWDER_SNOW 38
#define COMBO_STARTER_SCARY_FACE 39
#define COMBO_STARTER_BELLY_DRUM 40
#define COMBO_STARTER_SLUDGE_BOMB 41
#define COMBO_STARTER_MUD_SLAP 42
#define COMBO_STARTER_BONE_RUSH 43
#define COMBO_STARTER_LOCK_ON 44
#define COMBO_STARTER_SANDSTORM 45
#define COMBO_STARTER_ENDURE 46
#define COMBO_STARTER_CHARM 47
#define COMBO_STARTER_MEAN_LOOK 48
#define COMBO_STARTER_HEAL_BELL 49
#define COMBO_STARTER_DRAGON_BREATH 50
#define COMBO_STARTER_SWEET_SCENT 51
#define COMBO_STARTER_RAIN_DANCE 52
#define COMBO_STARTER_SUNNY_DAY 53
#define COMBO_STARTER_FAKE_OUT 54
#define COMBO_STARTER_STOCKPILE 55
#define COMBO_STARTER_HAIL 56
#define COMBO_STARTER_CHARGE 57
#define COMBO_STARTER_TAUNT 58
#define COMBO_STARTER_REVENGE 59
#define COMBO_STARTER_YAWN 60
#define COMBO_STARTER_DIVE 61
#define COMBO_STARTER_MUD_SPORT 62
#define COMBO_STARTER_METAL_SOUND 63
#define COMBO_STARTER_WATER_SPORT 64
#define COMBO_STARTER_CALM_MIND 65
#define COMBO_STARTER_DRAGON_DANCE 66
#define COMBO_STARTER_PAYBACK 67
#define COMBO_STARTER_LUCKY_CHANT 68
#define COMBO_STARTER_WORRY_SEED 69
#define COMBO_STARTER_DRAGON_RUSH 70
#define COMBO_STARTER_BRAVE_BIRD 71
#define COMBO_STARTER_THUNDER_FANG 72
#define COMBO_STARTER_ICE_FANG 73
#define COMBO_STARTER_FIRE_FANG 74
#define COMBO_STARTER_ATTACK_ORDER 75
#define COMBO_STARTER_DEFEND_ORDER 76
#define COMBO_STARTER_HEAL_ORDER 77
#define COMBO_STARTER_SCALD 78
#define COMBO_STARTER_DRAGON_TAIL 79
#define COMBO_STARTER_HYPERSPACE_HOLE 80
#define COMBO_STARTER_THOUSAND_ARROWS 81
#define COMBO_STARTER_THOUSAND_WAVES 82
#define COMBO_STARTER_HYPERSPACE_FURY 83
#define COMBO_STARTER_SHADOW_BONE 84
#define COMBO_STARTER_ELECTRIC_TERRAIN 85
#define COMBO_STARTER_MISTY_TERRAIN 86
#define COMBO_STARTER_GRASSY_TERRAIN 87
#define COMBO_STARTER_PSYCHIC_TERRAIN 88
#endif // GUARD_CONSTANTS_CONTEST_H

View File

@@ -232,8 +232,8 @@
#define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_RIGHT 0x91
#define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_LEFT 0x92
#define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_RIGHT 0x93
#define MOVEMENT_ACTION_STORE_AND_LOCK_ANIM 0x94
#define MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM 0x95
#define MOVEMENT_ACTION_LOCK_ANIM 0x94
#define MOVEMENT_ACTION_UNLOCK_ANIM 0x95
#define MOVEMENT_ACTION_WALK_LEFT_AFFINE 0x96
#define MOVEMENT_ACTION_WALK_RIGHT_AFFINE 0x97
#define MOVEMENT_ACTION_LEVITATE 0x98

View File

@@ -5,6 +5,8 @@
// Each define must be here for each of RHH's branch you have pulled.
// e.g. If you have both the battle_engine and pokemon_expansion branch,
// then both BATTLE_ENGINE and POKEMON_EXPANSION must be defined here.
#define BATTLE_ENGINE
#define POKEMON_EXPANSION
#define ITEM_EXPANSION
#endif

View File

@@ -1,5 +1,8 @@
#ifndef GUARD_CONSTANTS_GLOBAL_H
#define GUARD_CONSTANTS_GLOBAL_H
#include "constants/battle_config.h"
// Invalid Versions show as "----------" in Gen 4 and Gen 5's summary screen.
// In Gens 6 and 7, invalid versions instead show "a distant land" in the summary screen.
// In Gen 4 only, migrated Pokemon with Diamond, Pearl, or Platinum's ID show as "----------".
@@ -94,7 +97,11 @@
#define PLAYER_NAME_LENGTH 7
#define MAIL_WORDS_COUNT 9
#define EASY_CHAT_BATTLE_WORDS_COUNT 6
#if B_EXPANDED_MOVE_NAMES == TRUE
#define MOVE_NAME_LENGTH 16
#else
#define MOVE_NAME_LENGTH 12
#endif
#define NUM_QUESTIONNAIRE_WORDS 4
#define QUIZ_QUESTION_LEN 9
#define WONDER_CARD_TEXT_LENGTH 40
@@ -102,7 +109,12 @@
#define WONDER_CARD_BODY_TEXT_LINES 4
#define WONDER_NEWS_BODY_TEXT_LINES 10
#define TYPE_NAME_LENGTH 6
#if B_EXPANDED_ABILITY_NAMES == TRUE
#define ABILITY_NAME_LENGTH 16
#else
#define ABILITY_NAME_LENGTH 12
#endif
#define TRAINER_NAME_LENGTH 10
#define MAX_STAMP_CARD_STAMPS 7

View File

@@ -29,7 +29,7 @@
#define HOLD_EFFECT_EXP_SHARE 25
#define HOLD_EFFECT_QUICK_CLAW 26
#define HOLD_EFFECT_FRIENDSHIP_UP 27
#define HOLD_EFFECT_CURE_ATTRACT 28
#define HOLD_EFFECT_MENTAL_HERB 28
#define HOLD_EFFECT_CHOICE_BAND 29
#define HOLD_EFFECT_FLINCH 30
#define HOLD_EFFECT_BUG_POWER 31
@@ -62,11 +62,102 @@
#define HOLD_EFFECT_FIRE_POWER 58
#define HOLD_EFFECT_DRAGON_POWER 59
#define HOLD_EFFECT_NORMAL_POWER 60
#define HOLD_EFFECT_UP_GRADE 61
#define HOLD_EFFECT_UPGRADE 61
#define HOLD_EFFECT_SHELL_BELL 62
#define HOLD_EFFECT_LUCKY_PUNCH 63
#define HOLD_EFFECT_METAL_POWDER 64
#define HOLD_EFFECT_THICK_CLUB 65
#define HOLD_EFFECT_STICK 66
#define HOLD_EFFECT_LEEK 66
// Gen4 hold effects.
#define HOLD_EFFECT_CHOICE_SCARF 67
#define HOLD_EFFECT_CHOICE_SPECS 68
#define HOLD_EFFECT_DAMP_ROCK 69
#define HOLD_EFFECT_GRIP_CLAW 70
#define HOLD_EFFECT_HEAT_ROCK 71
#define HOLD_EFFECT_ICY_ROCK 72
#define HOLD_EFFECT_LIGHT_CLAY 73
#define HOLD_EFFECT_SMOOTH_ROCK 74
#define HOLD_EFFECT_POWER_HERB 75
#define HOLD_EFFECT_BIG_ROOT 76
#define HOLD_EFFECT_EXPERT_BELT 77
#define HOLD_EFFECT_LIFE_ORB 78
#define HOLD_EFFECT_METRONOME 79
#define HOLD_EFFECT_MUSCLE_BAND 80
#define HOLD_EFFECT_WIDE_LENS 81
#define HOLD_EFFECT_WISE_GLASSES 82
#define HOLD_EFFECT_ZOOM_LENS 83
#define HOLD_EFFECT_LAGGING_TAIL 84
#define HOLD_EFFECT_FOCUS_SASH 85
#define HOLD_EFFECT_FLAME_ORB 86
#define HOLD_EFFECT_TOXIC_ORB 87
#define HOLD_EFFECT_STICKY_BARB 88
#define HOLD_EFFECT_IRON_BALL 89
#define HOLD_EFFECT_BLACK_SLUDGE 90
#define HOLD_EFFECT_DESTINY_KNOT 91
#define HOLD_EFFECT_SHED_SHELL 92
#define HOLD_EFFECT_QUICK_POWDER 93
#define HOLD_EFFECT_ADAMANT_ORB 94
#define HOLD_EFFECT_LUSTROUS_ORB 95
#define HOLD_EFFECT_GRISEOUS_ORB 96
#define HOLD_EFFECT_ENIGMA_BERRY 97
#define HOLD_EFFECT_RESIST_BERRY 98
#define HOLD_EFFECT_POWER_ITEM 99
#define HOLD_EFFECT_RESTORE_PCT_HP 100
#define HOLD_EFFECT_MICLE_BERRY 101
#define HOLD_EFFECT_CUSTAP_BERRY 102
#define HOLD_EFFECT_JABOCA_BERRY 103
#define HOLD_EFFECT_ROWAP_BERRY 104
#define HOLD_EFFECT_KEE_BERRY 105
#define HOLD_EFFECT_MARANGA_BERRY 106
#define HOLD_EFFECT_PLATE 107
// Gen5 hold effects
#define HOLD_EFFECT_FLOAT_STONE 117
#define HOLD_EFFECT_EVIOLITE 118
#define HOLD_EFFECT_ASSAULT_VEST 119
#define HOLD_EFFECT_DRIVE 120
#define HOLD_EFFECT_GEMS 121
#define HOLD_EFFECT_ROCKY_HELMET 122
#define HOLD_EFFECT_AIR_BALLOON 123
#define HOLD_EFFECT_RED_CARD 124
#define HOLD_EFFECT_RING_TARGET 125
#define HOLD_EFFECT_BINDING_BAND 126
#define HOLD_EFFECT_EJECT_BUTTON 127
#define HOLD_EFFECT_ABSORB_BULB 128
#define HOLD_EFFECT_CELL_BATTERY 129
// Gen6 hold effects
#define HOLD_EFFECT_FAIRY_POWER 139
#define HOLD_EFFECT_MEGA_STONE 140
#define HOLD_EFFECT_SAFETY_GOGGLES 141
#define HOLD_EFFECT_LUMINOUS_MOSS 142
#define HOLD_EFFECT_SNOWBALL 143
#define HOLD_EFFECT_WEAKNESS_POLICY 144
#define HOLD_EFFECT_PRIMAL_ORB 145
// Gen7 hold effects
#define HOLD_EFFECT_PROTECTIVE_PADS 154
#define HOLD_EFFECT_TERRAIN_EXTENDER 155
#define HOLD_EFFECT_SEEDS 156
#define HOLD_EFFECT_ADRENALINE_ORB 157
#define HOLD_EFFECT_MEMORY 158
#define HOLD_EFFECT_Z_CRYSTAL 159
// Gen8 hold effects
#define HOLD_EFFECT_UTILITY_UMBRELLA 169
#define HOLD_EFFECT_EJECT_PACK 170
#define HOLD_EFFECT_ROOM_SERVICE 171
#define HOLD_EFFECT_BLUNDER_POLICY 172
#define HOLD_EFFECT_HEAVY_DUTY_BOOTS 173
#define HOLD_EFFECT_THROAT_SPRAY 174
#define HOLD_EFFECT_CHOICE(holdEffect)((holdEffect == HOLD_EFFECT_CHOICE_BAND || holdEffect == HOLD_EFFECT_CHOICE_SCARF || holdEffect == HOLD_EFFECT_CHOICE_SPECS))
// Terrain seed params
#define HOLD_EFFECT_PARAM_ELECTRIC_TERRAIN 0
#define HOLD_EFFECT_PARAM_GRASSY_TERRAIN 1
#define HOLD_EFFECT_PARAM_MISTY_TERRAIN 2
#define HOLD_EFFECT_PARAM_PSYCHIC_TERRAIN 3
#endif // GUARD_HOLD_EFFECTS_H

View File

@@ -0,0 +1,23 @@
#ifndef GUARD_CONSTANTS_ITEM_CONFIG_H
#define GUARD_CONSTANTS_ITEM_CONFIG_H
#include "constants/expansion_branches.h"
#ifndef GEN_3
#define GEN_3 0
#define GEN_4 1
#define GEN_5 2
#define GEN_6 3
#define GEN_7 4
#define GEN_8 5
#endif
// Item config
#define I_SHINY_CHARM_REROLLS 3 // Amount of re-rolls if the player has the Shiny Charm. Set to 0 to disable Shiny Charm's effects.
#define I_KEY_FOSSILS GEN_7 // In Gen4+, all Gen 3 fossils became regular items.
#define I_KEY_ESCAPE_ROPE GEN_7 // In Gen8, Escape Rope became a Key Item. Keep in mind, this will make it free to buy in marts.
#define I_HEALTH_RECOVERY GEN_7 // In Gen7+, certain healing items recover a different amount of HP than they used to.
#define I_SITRUS_BERRY_HEAL GEN_7 // In Gen4+, Sitrus Berry was changed from healing 30 HP to healing 25% of Max HP.
#define I_VITAMIN_EV_CAP GEN_8 // In Gen8, the Vitamins no longer have a cap of 100 EV per stat.
#endif // GUARD_CONSTANTS_ITEM_CONFIG_H

View File

@@ -2,18 +2,17 @@
#define GUARD_CONSTANTS_ITEM_EFFECTS_H
// field 0 masks
#define ITEM0_X_ATTACK 0x0F
#define ITEM0_DIRE_HIT 0x30 // Works the same way as the move Focus Energy.
#define ITEM0_SACRED_ASH 0x40
#define ITEM0_INFATUATION 0x80
// field 1 masks
#define ITEM1_X_SPEED 0x0F
#define ITEM1_X_DEFEND 0xF0
// field 2 masks
#define ITEM2_X_SPATK 0x0F
#define ITEM2_X_ACCURACY 0xF0
// new field 1 masks
#define ITEM1_X_ATTACK 0x1
#define ITEM1_X_DEFENSE 0x2
#define ITEM1_X_SPEED 0x4
#define ITEM1_X_SPATK 0x8
#define ITEM1_X_SPDEF 0x10
#define ITEM1_X_ACCURACY 0x20
// field 3 masks
#define ITEM3_CONFUSION 0x1
@@ -49,13 +48,16 @@
#define ITEM5_FRIENDSHIP_ALL (ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID | ITEM5_FRIENDSHIP_HIGH)
// fields 6 and onwards are item-specific arguments
#define ITEM10_IS_VITAMIN 0x1
// fields 6 and onwards (except field 10) are item-specific arguments
#define ITEM_EFFECT_ARG_START 6
// Special HP recovery amounts for ITEM4_HEAL_HP
#define ITEM6_HEAL_HP_FULL ((u8) -1)
#define ITEM6_HEAL_HP_HALF ((u8) -2)
#define ITEM6_HEAL_HP_LVL_UP ((u8) -3)
#define ITEM6_HEAL_HP_FULL ((u8) -1)
#define ITEM6_HEAL_HP_HALF ((u8) -2)
#define ITEM6_HEAL_HP_LVL_UP ((u8) -3)
#define ITEM6_HEAL_HP_QUARTER ((u8) -4)
// Special PP recovery amounts for ITEM4_HEAL_PP
#define ITEM6_HEAL_PP_FULL 0x7F
@@ -63,6 +65,7 @@
// Amount of EV modified by ITEM4_EV_HP, ITEM4_EV_ATK, ITEM5_EV_DEF, ITEM5_EV_SPEED, ITEM5_EV_SPDEF and ITEM5_EV_SPATK
#define ITEM6_ADD_EV 10
#define ITEM6_SUBTRACT_EV -10
#define ITEM6_ADD_ONE_EV 1
// Used for GetItemEffectType.
#define ITEM_EFFECT_X_ITEM 0

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,8 @@
#ifndef GUARD_CONSTANTS_POKEDEX_H
#define GUARD_CONSTANTS_POKEDEX_H
// National Pokedex order
#include "constants/pokemon_config.h"
// National Pokedex order. Gen 4+ mons and forms are not disabled by P_NEW_POKEMON to keep pokedex_orders.h clean.
enum {
NATIONAL_DEX_NONE,
// Kanto
@@ -922,7 +923,11 @@ enum {
#define KANTO_DEX_COUNT NATIONAL_DEX_MEW
#define JOHTO_DEX_COUNT NATIONAL_DEX_CELEBI
#if P_NEW_POKEMON == TRUE
#define NATIONAL_DEX_COUNT NATIONAL_DEX_ENAMORUS
#else
#define NATIONAL_DEX_COUNT NATIONAL_DEX_DEOXYS
#endif
#define POKEMON_SLOTS_NUMBER (NATIONAL_DEX_COUNT + 1)
// Hoenn Pokedex order
@@ -959,7 +964,9 @@ enum {
HOENN_DEX_RALTS,
HOENN_DEX_KIRLIA,
HOENN_DEX_GARDEVOIR,
#if P_NEW_POKEMON == TRUE
HOENN_DEX_GALLADE,
#endif
HOENN_DEX_SURSKIT,
HOENN_DEX_MASQUERAIN,
HOENN_DEX_SHROOMISH,
@@ -989,7 +996,9 @@ enum {
HOENN_DEX_GRAVELER,
HOENN_DEX_GOLEM,
HOENN_DEX_NOSEPASS,
#if P_NEW_POKEMON == TRUE
HOENN_DEX_PROBOPASS,
#endif
HOENN_DEX_SKITTY,
HOENN_DEX_DELCATTY,
HOENN_DEX_ZUBAT,
@@ -1013,7 +1022,9 @@ enum {
HOENN_DEX_MINUN,
HOENN_DEX_MAGNEMITE,
HOENN_DEX_MAGNETON,
#if P_NEW_POKEMON == TRUE
HOENN_DEX_MAGNEZONE,
#endif
HOENN_DEX_VOLTORB,
HOENN_DEX_ELECTRODE,
HOENN_DEX_VOLBEAT,
@@ -1024,9 +1035,13 @@ enum {
HOENN_DEX_BELLOSSOM,
HOENN_DEX_DODUO,
HOENN_DEX_DODRIO,
#if P_NEW_POKEMON == TRUE
HOENN_DEX_BUDEW,
HOENN_DEX_ROSELIA,
HOENN_DEX_ROSERADE,
#else
HOENN_DEX_ROSELIA,
#endif
HOENN_DEX_GULPIN,
HOENN_DEX_SWALOT,
HOENN_DEX_CARVANHA,
@@ -1082,9 +1097,13 @@ enum {
HOENN_DEX_BANETTE,
HOENN_DEX_DUSKULL,
HOENN_DEX_DUSCLOPS,
#if P_NEW_POKEMON == TRUE
HOENN_DEX_DUSKNOIR,
HOENN_DEX_TROPIUS,
HOENN_DEX_CHINGLING,
#else
HOENN_DEX_TROPIUS,
#endif
HOENN_DEX_CHIMECHO,
HOENN_DEX_ABSOL,
HOENN_DEX_VULPIX,
@@ -1105,10 +1124,14 @@ enum {
HOENN_DEX_HERACROSS,
HOENN_DEX_RHYHORN,
HOENN_DEX_RHYDON,
#if P_NEW_POKEMON == TRUE
HOENN_DEX_RHYPERIOR,
#endif
HOENN_DEX_SNORUNT,
HOENN_DEX_GLALIE,
#if P_NEW_POKEMON == TRUE
HOENN_DEX_FROSLASS,
#endif
HOENN_DEX_SPHEAL,
HOENN_DEX_SEALEO,
HOENN_DEX_WALREIN,

View File

@@ -94,97 +94,6 @@
// Shiny odds
#define SHINY_ODDS 8 // Actual probability is SHINY_ODDS/65536
// Flags for Get(Box)MonData / Set(Box)MonData
#define MON_DATA_PERSONALITY 0
#define MON_DATA_OT_ID 1
#define MON_DATA_NICKNAME 2
#define MON_DATA_LANGUAGE 3
#define MON_DATA_SANITY_IS_BAD_EGG 4
#define MON_DATA_SANITY_HAS_SPECIES 5
#define MON_DATA_SANITY_IS_EGG 6
#define MON_DATA_OT_NAME 7
#define MON_DATA_MARKINGS 8
#define MON_DATA_CHECKSUM 9
#define MON_DATA_ENCRYPT_SEPARATOR 10
#define MON_DATA_SPECIES 11
#define MON_DATA_HELD_ITEM 12
#define MON_DATA_MOVE1 13
#define MON_DATA_MOVE2 14
#define MON_DATA_MOVE3 15
#define MON_DATA_MOVE4 16
#define MON_DATA_PP1 17
#define MON_DATA_PP2 18
#define MON_DATA_PP3 19
#define MON_DATA_PP4 20
#define MON_DATA_PP_BONUSES 21
#define MON_DATA_COOL 22
#define MON_DATA_BEAUTY 23
#define MON_DATA_CUTE 24
#define MON_DATA_EXP 25
#define MON_DATA_HP_EV 26
#define MON_DATA_ATK_EV 27
#define MON_DATA_DEF_EV 28
#define MON_DATA_SPEED_EV 29
#define MON_DATA_SPATK_EV 30
#define MON_DATA_SPDEF_EV 31
#define MON_DATA_FRIENDSHIP 32
#define MON_DATA_SMART 33
#define MON_DATA_POKERUS 34
#define MON_DATA_MET_LOCATION 35
#define MON_DATA_MET_LEVEL 36
#define MON_DATA_MET_GAME 37
#define MON_DATA_POKEBALL 38
#define MON_DATA_HP_IV 39
#define MON_DATA_ATK_IV 40
#define MON_DATA_DEF_IV 41
#define MON_DATA_SPEED_IV 42
#define MON_DATA_SPATK_IV 43
#define MON_DATA_SPDEF_IV 44
#define MON_DATA_IS_EGG 45
#define MON_DATA_ABILITY_NUM 46
#define MON_DATA_TOUGH 47
#define MON_DATA_SHEEN 48
#define MON_DATA_OT_GENDER 49
#define MON_DATA_COOL_RIBBON 50
#define MON_DATA_BEAUTY_RIBBON 51
#define MON_DATA_CUTE_RIBBON 52
#define MON_DATA_SMART_RIBBON 53
#define MON_DATA_TOUGH_RIBBON 54
#define MON_DATA_STATUS 55
#define MON_DATA_LEVEL 56
#define MON_DATA_HP 57
#define MON_DATA_MAX_HP 58
#define MON_DATA_ATK 59
#define MON_DATA_DEF 60
#define MON_DATA_SPEED 61
#define MON_DATA_SPATK 62
#define MON_DATA_SPDEF 63
#define MON_DATA_MAIL 64
#define MON_DATA_SPECIES2 65
#define MON_DATA_IVS 66
#define MON_DATA_CHAMPION_RIBBON 67
#define MON_DATA_WINNING_RIBBON 68
#define MON_DATA_VICTORY_RIBBON 69
#define MON_DATA_ARTIST_RIBBON 70
#define MON_DATA_EFFORT_RIBBON 71
#define MON_DATA_MARINE_RIBBON 72
#define MON_DATA_LAND_RIBBON 73
#define MON_DATA_SKY_RIBBON 74
#define MON_DATA_COUNTRY_RIBBON 75
#define MON_DATA_NATIONAL_RIBBON 76
#define MON_DATA_EARTH_RIBBON 77
#define MON_DATA_WORLD_RIBBON 78
#define MON_DATA_UNUSED_RIBBONS 79
#define MON_DATA_EVENT_LEGAL 80
#define MON_DATA_KNOWN_MOVES 81
#define MON_DATA_RIBBON_COUNT 82
#define MON_DATA_RIBBONS 83
#define MON_DATA_ATK2 84
#define MON_DATA_DEF2 85
#define MON_DATA_SPEED2 86
#define MON_DATA_SPATK2 87
#define MON_DATA_SPDEF2 88
// Ribbon IDs used by TV and Pokénav
#define CHAMPION_RIBBON 0
#define COOL_RIBBON_NORMAL 1
@@ -282,15 +191,46 @@
#define USE_RANDOM_IVS (MAX_PER_STAT_IVS + 1)
#define MAX_PER_STAT_EVS 255
#define MAX_TOTAL_EVS 510
#if I_VITAMIN_EV_CAP >= GEN_8
#define EV_ITEM_RAISE_LIMIT MAX_PER_STAT_EVS
#else
#define EV_ITEM_RAISE_LIMIT 100
#endif
// Battle move flags
#define FLAG_MAKES_CONTACT (1 << 0)
#define FLAG_PROTECT_AFFECTED (1 << 1)
#define FLAG_MAGIC_COAT_AFFECTED (1 << 2)
#define FLAG_SNATCH_AFFECTED (1 << 3)
#define FLAG_MIRROR_MOVE_AFFECTED (1 << 4)
#define FLAG_KINGS_ROCK_AFFECTED (1 << 5)
#define FLAG_MAKES_CONTACT (1 << 0)
#define FLAG_PROTECT_AFFECTED (1 << 1)
#define FLAG_MAGIC_COAT_AFFECTED (1 << 2)
#define FLAG_SNATCH_AFFECTED (1 << 3)
#define FLAG_MIRROR_MOVE_AFFECTED (1 << 4)
#define FLAG_KINGS_ROCK_AFFECTED (1 << 5)
#define FLAG_HIGH_CRIT (1 << 6)
#define FLAG_RECKLESS_BOOST (1 << 7)
#define FLAG_IRON_FIST_BOOST (1 << 8)
#define FLAG_SHEER_FORCE_BOOST (1 << 9)
#define FLAG_STRONG_JAW_BOOST (1 << 10)
#define FLAG_MEGA_LAUNCHER_BOOST (1 << 11)
#define FLAG_STAT_STAGES_IGNORED (1 << 12)
#define FLAG_DMG_MINIMIZE (1 << 13)
#define FLAG_DMG_UNDERGROUND (1 << 14)
#define FLAG_DMG_UNDERWATER (1 << 15)
#define FLAG_SOUND (1 << 16)
#define FLAG_BALLISTIC (1 << 17)
#define FLAG_PROTECTION_MOVE (1 << 18)
#define FLAG_POWDER (1 << 19)
#define FLAG_TARGET_ABILITY_IGNORED (1 << 20)
#define FLAG_DANCE (1 << 21)
#define FLAG_DMG_2X_IN_AIR (1 << 22) // If target is in the air, can hit and deal double damage.
#define FLAG_DMG_IN_AIR (1 << 23) // If target is in the air, can hit.
#define FLAG_DMG_UNGROUNDED_IGNORE_TYPE_IF_FLYING (1 << 24) // Makes a Ground type move do 1x damage to flying and levitating targets
#define FLAG_THAW_USER (1 << 25)
#define FLAG_HIT_IN_SUBSTITUTE (1 << 26) // Hyperspace Fury
#define FLAG_TWO_STRIKES (1 << 27) // A move with this flag will strike twice, and may apply its effect on each hit
// Split defines.
#define SPLIT_PHYSICAL 0x0
#define SPLIT_SPECIAL 0x1
#define SPLIT_STATUS 0x2
// Growth rates
#define GROWTH_MEDIUM_FAST 0

View File

@@ -21,355 +21,8 @@
#define P_KADABRA_EVERSTONE GEN_8 // Since Gen 4, Kadabra can evolve even when holding an Everstone.
#define P_NIDORAN_M_DITTO_BREED GEN_8 // Since Gen 5, when Nidoran♂ breeds with Ditto it can produce Nidoran♀ offspring. Before, it would only yield male offspring. This change also applies to Volbeat.
#define P_NEW_POKEMON TRUE // Turning this to FALSE will remove all newly added Pokémon and Forms. Only Unown, Castform and Deoxys forms will remain.
#define P_ENABLE_DEBUG TRUE // Enables a debug menu for pokemon sprites and icons, accessed by pressing SELECT in the summary screen.
#ifndef ITEM_EXPANSION
//Item Definitions for gEvolutionTable
//EVO_MEGA_EVOLUTION
#define ITEM_VENUSAURITE 10001
#define ITEM_CHARIZARDITE_X 10002
#define ITEM_CHARIZARDITE_Y 10003
#define ITEM_BLASTOISINITE 10004
#define ITEM_BEEDRILLITE 10005
#define ITEM_PIDGEOTITE 10006
#define ITEM_ALAKAZITE 10007
#define ITEM_SLOWBRONITE 10008
#define ITEM_GENGARITE 10009
#define ITEM_KANGASKHANITE 10010
#define ITEM_PINSIRITE 10011
#define ITEM_GYARADOSITE 10012
#define ITEM_AERODACTYLITE 10013
#define ITEM_MEWTWONITE_X 10014
#define ITEM_MEWTWONITE_Y 10015
#define ITEM_AMPHAROSITE 10016
#define ITEM_STEELIXITE 10017
#define ITEM_SCIZORITE 10018
#define ITEM_HERACRONITE 10019
#define ITEM_HOUNDOOMINITE 10020
#define ITEM_TYRANITARITE 10021
#define ITEM_SCEPTILITE 10022
#define ITEM_BLAZIKENITE 10023
#define ITEM_SWAMPERTITE 10024
#define ITEM_SABLENITE 10025
#define ITEM_SHARPEDONITE 10026
#define ITEM_MANECTITE 10027
#define ITEM_CAMERUPTITE 10028
#define ITEM_GLALITITE 10029
#define ITEM_MAWILITE 10030
#define ITEM_MEDICHAMITE 10031
#define ITEM_ALTARIANITE 10032
#define ITEM_ABSOLITE 10033
#define ITEM_BANETTITE 10034
#define ITEM_AGGRONITE 10035
#define ITEM_GARDEVOIRITE 10036
#define ITEM_SALAMENCITE 10037
#define ITEM_METAGROSSITE 10038
#define ITEM_LATIASITE 10039
#define ITEM_LATIOSITE 10040
#define ITEM_LOPUNNITE 10041
#define ITEM_GARCHOMPITE 10042
#define ITEM_LUCARIONITE 10043
#define ITEM_ABOMASITE 10044
#define ITEM_GALLADITE 10045
#define ITEM_AUDINITE 10046
#define ITEM_DIANCITE 10047
//EVO_TRADE_ITEM
#define ITEM_PROTECTOR 10048
#define ITEM_ELECTIRIZER 10049
#define ITEM_MAGMARIZER 10050
#define ITEM_DUBIOUS_DISC 10051
#define ITEM_PRISM_SCALE 10052
#define ITEM_REAPER_CLOTH 10053
#define ITEM_SACHET 10054
#define ITEM_WHIPPED_DREAM 10055
//EVO_ITEM
#define ITEM_ICE_STONE 10056
#define ITEM_SHINY_STONE 10057
#define ITEM_DUSK_STONE 10058
#define ITEM_DAWN_STONE 10059
#define ITEM_TART_APPLE 10060
#define ITEM_SWEET_APPLE 10061
#define ITEM_CRACKED_POT 10062
#define ITEM_GALARICA_CUFF 10063
#define ITEM_GALARICA_WREATH 10064
#define ITEM_CHIPPED_POT 10065
//EVO_ITEM_HOLD
#define ITEM_RAZOR_FANG 10066
#define ITEM_RAZOR_CLAW 10067
#define ITEM_OVAL_STONE 10068
//FORM_ITEM_HOLD
#define ITEM_GRISEOUS_ORB 10069
#define ITEM_DRACO_PLATE 10070
#define ITEM_DREAD_PLATE 10071
#define ITEM_EARTH_PLATE 10072
#define ITEM_FIST_PLATE 10073
#define ITEM_FLAME_PLATE 10074
#define ITEM_ICICLE_PLATE 10075
#define ITEM_INSECT_PLATE 10076
#define ITEM_IRON_PLATE 10077
#define ITEM_MEADOW_PLATE 10078
#define ITEM_MIND_PLATE 10079
#define ITEM_PIXIE_PLATE 10080
#define ITEM_SKY_PLATE 10081
#define ITEM_SPLASH_PLATE 10082
#define ITEM_SPOOKY_PLATE 10083
#define ITEM_STONE_PLATE 10084
#define ITEM_TOXIC_PLATE 10085
#define ITEM_ZAP_PLATE 10086
#define ITEM_FIGHTINIUM_Z 10087
#define ITEM_FLYINIUM_Z 10088
#define ITEM_POISONIUM_Z 10089
#define ITEM_GROUNDIUM_Z 10090
#define ITEM_ROCKIUM_Z 10091
#define ITEM_BUGINIUM_Z 10092
#define ITEM_GHOSTIUM_Z 10093
#define ITEM_STEELIUM_Z 10094
#define ITEM_FIRIUM_Z 10095
#define ITEM_WATERIUM_Z 10096
#define ITEM_GRASSIUM_Z 10097
#define ITEM_ELECTRIUM_Z 10098
#define ITEM_PSYCHIUM_Z 10099
#define ITEM_ICIUM_Z 10100
#define ITEM_DRAGONIUM_Z 10101
#define ITEM_DARKINIUM_Z 10102
#define ITEM_FAIRIUM_Z 10103
#define ITEM_DOUSE_DRIVE 10104
#define ITEM_SHOCK_DRIVE 10105
#define ITEM_BURN_DRIVE 10106
#define ITEM_CHILL_DRIVE 10107
#define ITEM_BUG_MEMORY 10108
#define ITEM_DARK_MEMORY 10109
#define ITEM_DRAGON_MEMORY 10110
#define ITEM_ELECTRIC_MEMORY 10111
#define ITEM_FAIRY_MEMORY 10112
#define ITEM_FIGHTING_MEMORY 10113
#define ITEM_FIRE_MEMORY 10114
#define ITEM_FLYING_MEMORY 10115
#define ITEM_GHOST_MEMORY 10116
#define ITEM_GRASS_MEMORY 10117
#define ITEM_GROUND_MEMORY 10118
#define ITEM_ICE_MEMORY 10119
#define ITEM_POISON_MEMORY 10120
#define ITEM_PSYCHIC_MEMORY 10121
#define ITEM_ROCK_MEMORY 10122
#define ITEM_STEEL_MEMORY 10123
#define ITEM_WATER_MEMORY 10124
//FORM_ITEM_USE
#define ITEM_GRACIDEA 10125
#define ITEM_REVEAL_GLASS 10126
#define ITEM_PRISON_BOTTLE 10127
#define ITEM_RED_NECTAR 10128
#define ITEM_YELLOW_NECTAR 10129
#define ITEM_PINK_NECTAR 10130
#define ITEM_PURPLE_NECTAR 10131
// Held Items
#define ITEM_HONEY ITEM_NONE
#endif // ITEM_EXPANSION
#ifndef BATTLE_ENGINE
// Gen 4
#define ABILITY_TANGLED_FEET ABILITY_NONE
#define ABILITY_MOTOR_DRIVE ABILITY_NONE
#define ABILITY_RIVALRY ABILITY_NONE
#define ABILITY_STEADFAST ABILITY_NONE
#define ABILITY_SNOW_CLOAK ABILITY_NONE
#define ABILITY_GLUTTONY ABILITY_NONE
#define ABILITY_ANGER_POINT ABILITY_NONE
#define ABILITY_UNBURDEN ABILITY_NONE
#define ABILITY_HEATPROOF ABILITY_NONE
#define ABILITY_SIMPLE ABILITY_NONE
#define ABILITY_DRY_SKIN ABILITY_NONE
#define ABILITY_DOWNLOAD ABILITY_NONE
#define ABILITY_IRON_FIST ABILITY_NONE
#define ABILITY_POISON_HEAL ABILITY_NONE
#define ABILITY_ADAPTABILITY ABILITY_NONE
#define ABILITY_SKILL_LINK ABILITY_NONE
#define ABILITY_HYDRATION ABILITY_NONE
#define ABILITY_SOLAR_POWER ABILITY_NONE
#define ABILITY_QUICK_FEET ABILITY_NONE
#define ABILITY_NORMALIZE ABILITY_NONE
#define ABILITY_SNIPER ABILITY_NONE
#define ABILITY_MAGIC_GUARD ABILITY_NONE
#define ABILITY_NO_GUARD ABILITY_NONE
#define ABILITY_STALL ABILITY_NONE
#define ABILITY_TECHNICIAN ABILITY_NONE
#define ABILITY_LEAF_GUARD ABILITY_NONE
#define ABILITY_KLUTZ ABILITY_NONE
#define ABILITY_MOLD_BREAKER ABILITY_NONE
#define ABILITY_SUPER_LUCK ABILITY_NONE
#define ABILITY_AFTERMATH ABILITY_NONE
#define ABILITY_ANTICIPATION ABILITY_NONE
#define ABILITY_FOREWARN ABILITY_NONE
#define ABILITY_UNAWARE ABILITY_NONE
#define ABILITY_TINTED_LENS ABILITY_NONE
#define ABILITY_FILTER ABILITY_NONE
#define ABILITY_SLOW_START ABILITY_NONE
#define ABILITY_SCRAPPY ABILITY_NONE
#define ABILITY_STORM_DRAIN ABILITY_NONE
#define ABILITY_ICE_BODY ABILITY_NONE
#define ABILITY_SOLID_ROCK ABILITY_NONE
#define ABILITY_SNOW_WARNING ABILITY_NONE
#define ABILITY_HONEY_GATHER ABILITY_NONE
#define ABILITY_FRISK ABILITY_NONE
#define ABILITY_RECKLESS ABILITY_NONE
#define ABILITY_MULTITYPE ABILITY_NONE
#define ABILITY_FLOWER_GIFT ABILITY_NONE
#define ABILITY_BAD_DREAMS ABILITY_NONE
// Gen 5
#define ABILITY_PICKPOCKET ABILITY_NONE
#define ABILITY_SHEER_FORCE ABILITY_NONE
#define ABILITY_CONTRARY ABILITY_NONE
#define ABILITY_UNNERVE ABILITY_NONE
#define ABILITY_DEFIANT ABILITY_NONE
#define ABILITY_DEFEATIST ABILITY_NONE
#define ABILITY_CURSED_BODY ABILITY_NONE
#define ABILITY_HEALER ABILITY_NONE
#define ABILITY_FRIEND_GUARD ABILITY_NONE
#define ABILITY_WEAK_ARMOR ABILITY_NONE
#define ABILITY_HEAVY_METAL ABILITY_NONE
#define ABILITY_LIGHT_METAL ABILITY_NONE
#define ABILITY_MULTISCALE ABILITY_NONE
#define ABILITY_TOXIC_BOOST ABILITY_NONE
#define ABILITY_FLARE_BOOST ABILITY_NONE
#define ABILITY_HARVEST ABILITY_NONE
#define ABILITY_TELEPATHY ABILITY_NONE
#define ABILITY_MOODY ABILITY_NONE
#define ABILITY_OVERCOAT ABILITY_NONE
#define ABILITY_POISON_TOUCH ABILITY_NONE
#define ABILITY_REGENERATOR ABILITY_NONE
#define ABILITY_BIG_PECKS ABILITY_NONE
#define ABILITY_SAND_RUSH ABILITY_NONE
#define ABILITY_WONDER_SKIN ABILITY_NONE
#define ABILITY_ANALYTIC ABILITY_NONE
#define ABILITY_ILLUSION ABILITY_NONE
#define ABILITY_IMPOSTER ABILITY_NONE
#define ABILITY_INFILTRATOR ABILITY_NONE
#define ABILITY_MUMMY ABILITY_NONE
#define ABILITY_MOXIE ABILITY_NONE
#define ABILITY_JUSTIFIED ABILITY_NONE
#define ABILITY_RATTLED ABILITY_NONE
#define ABILITY_MAGIC_BOUNCE ABILITY_NONE
#define ABILITY_SAP_SIPPER ABILITY_NONE
#define ABILITY_PRANKSTER ABILITY_NONE
#define ABILITY_SAND_FORCE ABILITY_NONE
#define ABILITY_IRON_BARBS ABILITY_NONE
#define ABILITY_ZEN_MODE ABILITY_NONE
#define ABILITY_VICTORY_STAR ABILITY_NONE
#define ABILITY_TURBOBLAZE ABILITY_NONE
#define ABILITY_TERAVOLT ABILITY_NONE
// Gen 6
#define ABILITY_AROMA_VEIL ABILITY_NONE
#define ABILITY_FLOWER_VEIL ABILITY_NONE
#define ABILITY_CHEEK_POUCH ABILITY_NONE
#define ABILITY_PROTEAN ABILITY_NONE
#define ABILITY_FUR_COAT ABILITY_NONE
#define ABILITY_MAGICIAN ABILITY_NONE
#define ABILITY_BULLETPROOF ABILITY_NONE
#define ABILITY_COMPETITIVE ABILITY_NONE
#define ABILITY_STRONG_JAW ABILITY_NONE
#define ABILITY_REFRIGERATE ABILITY_NONE
#define ABILITY_SWEET_VEIL ABILITY_NONE
#define ABILITY_STANCE_CHANGE ABILITY_NONE
#define ABILITY_GALE_WINGS ABILITY_NONE
#define ABILITY_MEGA_LAUNCHER ABILITY_NONE
#define ABILITY_GRASS_PELT ABILITY_NONE
#define ABILITY_SYMBIOSIS ABILITY_NONE
#define ABILITY_TOUGH_CLAWS ABILITY_NONE
#define ABILITY_PIXILATE ABILITY_NONE
#define ABILITY_GOOEY ABILITY_NONE
#define ABILITY_AERILATE ABILITY_NONE
#define ABILITY_PARENTAL_BOND ABILITY_NONE
#define ABILITY_DARK_AURA ABILITY_NONE
#define ABILITY_FAIRY_AURA ABILITY_NONE
#define ABILITY_AURA_BREAK ABILITY_NONE
#define ABILITY_PRIMORDIAL_SEA ABILITY_NONE
#define ABILITY_DESOLATE_LAND ABILITY_NONE
#define ABILITY_DELTA_STREAM ABILITY_NONE
// Gen 7
#define ABILITY_STAMINA ABILITY_NONE
#define ABILITY_WIMP_OUT ABILITY_NONE
#define ABILITY_EMERGENCY_EXIT ABILITY_NONE
#define ABILITY_WATER_COMPACTION ABILITY_NONE
#define ABILITY_MERCILESS ABILITY_NONE
#define ABILITY_SHIELDS_DOWN ABILITY_NONE
#define ABILITY_STAKEOUT ABILITY_NONE
#define ABILITY_WATER_BUBBLE ABILITY_NONE
#define ABILITY_STEELWORKER ABILITY_NONE
#define ABILITY_BERSERK ABILITY_NONE
#define ABILITY_SLUSH_RUSH ABILITY_NONE
#define ABILITY_LONG_REACH ABILITY_NONE
#define ABILITY_LIQUID_VOICE ABILITY_NONE
#define ABILITY_TRIAGE ABILITY_NONE
#define ABILITY_GALVANIZE ABILITY_NONE
#define ABILITY_SURGE_SURFER ABILITY_NONE
#define ABILITY_SCHOOLING ABILITY_NONE
#define ABILITY_DISGUISE ABILITY_NONE
#define ABILITY_BATTLE_BOND ABILITY_NONE
#define ABILITY_POWER_CONSTRUCT ABILITY_NONE
#define ABILITY_CORROSION ABILITY_NONE
#define ABILITY_COMATOSE ABILITY_NONE
#define ABILITY_QUEENLY_MAJESTY ABILITY_NONE
#define ABILITY_INNARDS_OUT ABILITY_NONE
#define ABILITY_DANCER ABILITY_NONE
#define ABILITY_BATTERY ABILITY_NONE
#define ABILITY_FLUFFY ABILITY_NONE
#define ABILITY_DAZZLING ABILITY_NONE
#define ABILITY_SOUL_HEART ABILITY_NONE
#define ABILITY_TANGLING_HAIR ABILITY_NONE
#define ABILITY_RECEIVER ABILITY_NONE
#define ABILITY_POWER_OF_ALCHEMY ABILITY_NONE
#define ABILITY_BEAST_BOOST ABILITY_NONE
#define ABILITY_RKS_SYSTEM ABILITY_NONE
#define ABILITY_ELECTRIC_SURGE ABILITY_NONE
#define ABILITY_PSYCHIC_SURGE ABILITY_NONE
#define ABILITY_MISTY_SURGE ABILITY_NONE
#define ABILITY_GRASSY_SURGE ABILITY_NONE
#define ABILITY_FULL_METAL_BODY ABILITY_NONE
#define ABILITY_SHADOW_SHIELD ABILITY_NONE
#define ABILITY_PRISM_ARMOR ABILITY_NONE
#define ABILITY_NEUROFORCE ABILITY_NONE
// Gen 8
#define ABILITY_INTREPID_SWORD ABILITY_NONE
#define ABILITY_DAUNTLESS_SHIELD ABILITY_NONE
#define ABILITY_LIBERO ABILITY_NONE
#define ABILITY_BALL_FETCH ABILITY_NONE
#define ABILITY_COTTON_DOWN ABILITY_NONE
#define ABILITY_PROPELLER_TAIL ABILITY_NONE
#define ABILITY_MIRROR_ARMOR ABILITY_NONE
#define ABILITY_GULP_MISSILE ABILITY_NONE
#define ABILITY_STALWART ABILITY_NONE
#define ABILITY_STEAM_ENGINE ABILITY_NONE
#define ABILITY_PUNK_ROCK ABILITY_NONE
#define ABILITY_SAND_SPIT ABILITY_NONE
#define ABILITY_ICE_SCALES ABILITY_NONE
#define ABILITY_RIPEN ABILITY_NONE
#define ABILITY_ICE_FACE ABILITY_NONE
#define ABILITY_POWER_SPOT ABILITY_NONE
#define ABILITY_MIMICRY ABILITY_NONE
#define ABILITY_SCREEN_CLEANER ABILITY_NONE
#define ABILITY_STEELY_SPIRIT ABILITY_NONE
#define ABILITY_PERISH_BODY ABILITY_NONE
#define ABILITY_WANDERING_SPIRIT ABILITY_NONE
#define ABILITY_GORILLA_TACTICS ABILITY_NONE
#define ABILITY_NEUTRALIZING_GAS ABILITY_NONE
#define ABILITY_PASTEL_VEIL ABILITY_NONE
#define ABILITY_HUNGER_SWITCH ABILITY_NONE
#define ABILITY_QUICK_DRAW ABILITY_NONE
#define ABILITY_UNSEEN_FIST ABILITY_NONE
#define ABILITY_CURIOUS_MEDICINE ABILITY_NONE
#define ABILITY_TRANSISTOR ABILITY_NONE
#define ABILITY_DRAGONS_MAW ABILITY_NONE
#define ABILITY_CHILLING_NEIGH ABILITY_NONE
#define ABILITY_GRIM_NEIGH ABILITY_NONE
#define ABILITY_AS_ONE_ICE_RIDER ABILITY_NONE
#define ABILITY_AS_ONE_SHADOW_RIDER ABILITY_NONE
#endif // BATTLE_ENGINE
#endif // GUARD_CONSTANTS_POKEMON_CONFIG_H

View File

@@ -100,8 +100,8 @@
#define MAPSEC_CINNABAR_ISLAND 0x60
#define MAPSEC_INDIGO_PLATEAU 0x61
#define MAPSEC_SAFFRON_CITY 0x62
#define MAPSEC_ROUTE_4_FLYDUP 0x63
#define MAPSEC_ROUTE_10_FLYDUP 0x64
#define MAPSEC_ROUTE_4_POKECENTER 0x63
#define MAPSEC_ROUTE_10_POKECENTER 0x64
#define MAPSEC_ROUTE_1 0x65
#define MAPSEC_ROUTE_2 0x66
#define MAPSEC_ROUTE_3 0x67

View File

@@ -1,6 +1,8 @@
#ifndef GUARD_CONSTANTS_SPECIES_H
#define GUARD_CONSTANTS_SPECIES_H
#include "constants/pokemon_config.h"
#define SPECIES_NONE 0
#define SPECIES_BULBASAUR 1
#define SPECIES_IVYSAUR 2
@@ -908,8 +910,6 @@
#define SPECIES_OVERQWIL 904
#define SPECIES_ENAMORUS 905
#define FORMS_START SPECIES_ENAMORUS
// Megas
#define SPECIES_VENUSAUR_MEGA FORMS_START + 1
#define SPECIES_CHARIZARD_MEGA_X FORMS_START + 2
@@ -1046,6 +1046,7 @@
// Pichu
#define SPECIES_PICHU_SPIKY_EARED FORMS_START + 118
#if P_NEW_POKEMON == TRUE
// Unown
#define SPECIES_UNOWN_B FORMS_START + 119
#define SPECIES_UNOWN_C FORMS_START + 120
@@ -1085,6 +1086,47 @@
#define SPECIES_DEOXYS_DEFENSE FORMS_START + 150
#define SPECIES_DEOXYS_SPEED FORMS_START + 151
#else
// Unown
#define SPECIES_UNOWN_B FORMS_START + 1
#define SPECIES_UNOWN_C FORMS_START + 2
#define SPECIES_UNOWN_D FORMS_START + 3
#define SPECIES_UNOWN_E FORMS_START + 4
#define SPECIES_UNOWN_F FORMS_START + 5
#define SPECIES_UNOWN_G FORMS_START + 6
#define SPECIES_UNOWN_H FORMS_START + 7
#define SPECIES_UNOWN_I FORMS_START + 8
#define SPECIES_UNOWN_J FORMS_START + 9
#define SPECIES_UNOWN_K FORMS_START + 10
#define SPECIES_UNOWN_L FORMS_START + 11
#define SPECIES_UNOWN_M FORMS_START + 12
#define SPECIES_UNOWN_N FORMS_START + 13
#define SPECIES_UNOWN_O FORMS_START + 14
#define SPECIES_UNOWN_P FORMS_START + 15
#define SPECIES_UNOWN_Q FORMS_START + 16
#define SPECIES_UNOWN_R FORMS_START + 17
#define SPECIES_UNOWN_S FORMS_START + 18
#define SPECIES_UNOWN_T FORMS_START + 19
#define SPECIES_UNOWN_U FORMS_START + 20
#define SPECIES_UNOWN_V FORMS_START + 21
#define SPECIES_UNOWN_W FORMS_START + 22
#define SPECIES_UNOWN_X FORMS_START + 23
#define SPECIES_UNOWN_Y FORMS_START + 24
#define SPECIES_UNOWN_Z FORMS_START + 25
#define SPECIES_UNOWN_EMARK FORMS_START + 26
#define SPECIES_UNOWN_QMARK FORMS_START + 27
// Castform
#define SPECIES_CASTFORM_SUNNY FORMS_START + 28
#define SPECIES_CASTFORM_RAINY FORMS_START + 29
#define SPECIES_CASTFORM_SNOWY FORMS_START + 30
// Deoxys
#define SPECIES_DEOXYS_ATTACK FORMS_START + 31
#define SPECIES_DEOXYS_DEFENSE FORMS_START + 32
#define SPECIES_DEOXYS_SPEED FORMS_START + 33
#endif
// Burmy
#define SPECIES_BURMY_SANDY_CLOAK FORMS_START + 152
#define SPECIES_BURMY_TRASH_CLOAK FORMS_START + 153
@@ -1370,7 +1412,14 @@
#define SPECIES_CALYREX_ICE_RIDER FORMS_START + 327
#define SPECIES_CALYREX_SHADOW_RIDER FORMS_START + 328
#if P_NEW_POKEMON == TRUE
#define FORMS_START SPECIES_ENAMORUS
#define SPECIES_EGG SPECIES_CALYREX_SHADOW_RIDER + 1
#else
#define FORMS_START SPECIES_DEOXYS
#define SPECIES_EGG SPECIES_DEOXYS_SPEED + 1
#endif
#define NUM_SPECIES SPECIES_EGG
#endif // GUARD_CONSTANTS_SPECIES_H

View File

@@ -52,8 +52,6 @@
#define TRAINER_HILL_PLAYER_STATUS_ECARD_SCANNED 1
#define TRAINER_HILL_PLAYER_STATUS_NORMAL 2
#define HILL_TRAINER_NAME_LENGTH 11
#define TRAINER_HILL_OTID 0x10000000
// The full map of each Trainer Hill floor is 16x21.

View File

@@ -15,6 +15,7 @@
#define TRAINER_LINK_OPPONENT 2048
#define TRAINER_UNION_ROOM 3072
#define TRAINER_STEVEN_PARTNER 3075
#define TRAINER_CUSTOM_PARTNER 3076
#define TRAINER_PIC_HIKER 0
#define TRAINER_PIC_AQUA_GRUNT_M 1

View File

@@ -0,0 +1,38 @@
#ifndef GUARD_Z_MOVE_EFFECTS_H
#define GUARD_Z_MOVE_EFFECTS_H
#define Z_EFFECT_NONE 0
#define Z_EFFECT_RESET_STATS 1
#define Z_EFFECT_ALL_STATS_UP_1 2
#define Z_EFFECT_BOOST_CRITS 3
#define Z_EFFECT_FOLLOW_ME 4
#define Z_EFFECT_CURSE 5
#define Z_EFFECT_RECOVER_HP 6
#define Z_EFFECT_RESTORE_REPLACEMENT_HP 7
#define Z_EFFECT_ATK_UP_1 8
#define Z_EFFECT_DEF_UP_1 9
#define Z_EFFECT_SPD_UP_1 10
#define Z_EFFECT_SPATK_UP_1 11
#define Z_EFFECT_SPDEF_UP_1 12
#define Z_EFFECT_ACC_UP_1 13
#define Z_EFFECT_EVSN_UP_1 14
#define Z_EFFECT_ATK_UP_2 15
#define Z_EFFECT_DEF_UP_2 16
#define Z_EFFECT_SPD_UP_2 17
#define Z_EFFECT_SPATK_UP_2 18
#define Z_EFFECT_SPDEF_UP_2 19
#define Z_EFFECT_ACC_UP_2 20
#define Z_EFFECT_EVSN_UP_2 21
#define Z_EFFECT_ATK_UP_3 22
#define Z_EFFECT_DEF_UP_3 23
#define Z_EFFECT_SPD_UP_3 24
#define Z_EFFECT_SPATK_UP_3 25
#define Z_EFFECT_SPDEF_UP_3 26
#define Z_EFFECT_ACC_UP_3 27
#define Z_EFFECT_EVSN_UP_3 28
#endif // GUARD_Z_MOVE_EFFECTS_H