Merge branch 'master' of https://github.com/GriffinRichards/pokefirered into clone-union

This commit is contained in:
GriffinR
2022-08-10 13:48:30 -04:00
1146 changed files with 40526 additions and 38156 deletions
+233 -196
View File
@@ -44,39 +44,27 @@
#define BIT_FLANK 2
// Battle Type Flags
#define BATTLE_TYPE_DOUBLE 0x0001
#define BATTLE_TYPE_LINK 0x0002
#define BATTLE_TYPE_IS_MASTER 0x0004 // In not-link battles, it's always set.
#define BATTLE_TYPE_TRAINER 0x0008
#define BATTLE_TYPE_FIRST_BATTLE 0x0010
#define BATTLE_TYPE_LINK_ESTABLISHED 0x0020 // Set when the link battle setup callback finishes.
#define BATTLE_TYPE_MULTI 0x0040
#define BATTLE_TYPE_SAFARI 0x0080
#define BATTLE_TYPE_BATTLE_TOWER 0x0100
#define BATTLE_TYPE_OLD_MAN_TUTORIAL 0x0200
#define BATTLE_TYPE_ROAMER 0x0400
#define BATTLE_TYPE_EREADER_TRAINER 0x0800
#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000
#define BATTLE_TYPE_LEGENDARY 0x2000
#define BATTLE_TYPE_GHOST_UNVEILED 0x2000 // Re-use of BATTLE_TYPE_LEGENDARY, when combined with BATTLE_TYPE_GHOST
#define BATTLE_TYPE_REGI 0x4000
#define BATTLE_TYPE_GHOST 0x8000
#define BATTLE_TYPE_POKEDUDE 0x10000
#define BATTLE_TYPE_WILD_SCRIPTED 0x20000
#define BATTLE_TYPE_LEGENDARY_FRLG 0x40000
#define BATTLE_TYPE_TRAINER_TOWER 0x80000
#define BATTLE_TYPE_x100000 0x100000
#define BATTLE_TYPE_x200000 0x200000
#define BATTLE_TYPE_INGAME_PARTNER 0x400000
#define BATTLE_TYPE_x800000 0x800000
#define BATTLE_TYPE_RECORDED 0x1000000
#define BATTLE_TYPE_x2000000 0x2000000
#define BATTLE_TYPE_x4000000 0x4000000
#define BATTLE_TYPE_SECRET_BASE 0x8000000
#define BATTLE_TYPE_GROUDON 0x10000000
#define BATTLE_TYPE_KYOGRE 0x20000000
#define BATTLE_TYPE_RAYQUAZA 0x40000000
#define BATTLE_TYPE_x80000000 0x80000000
#define BATTLE_TYPE_DOUBLE (1 << 0)
#define BATTLE_TYPE_LINK (1 << 1)
#define BATTLE_TYPE_IS_MASTER (1 << 2) // In not-link battles, it's always set.
#define BATTLE_TYPE_TRAINER (1 << 3)
#define BATTLE_TYPE_FIRST_BATTLE (1 << 4)
#define BATTLE_TYPE_LINK_IN_BATTLE (1 << 5) // Set on battle entry, cleared on exit. Checked rarely
#define BATTLE_TYPE_MULTI (1 << 6)
#define BATTLE_TYPE_SAFARI (1 << 7)
#define BATTLE_TYPE_BATTLE_TOWER (1 << 8)
#define BATTLE_TYPE_OLD_MAN_TUTORIAL (1 << 9) // Used in pokeemerald as BATTLE_TYPE_WALLY_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_GHOST_UNVEILED (1 << 13) // Re-use of BATTLE_TYPE_LEGENDARY, when combined with BATTLE_TYPE_GHOST
#define BATTLE_TYPE_REGI (1 << 14)
#define BATTLE_TYPE_GHOST (1 << 15) // Used in pokeemerald as BATTLE_TYPE_TWO_OPPONENTS.
#define BATTLE_TYPE_POKEDUDE (1 << 16) // Used in pokeemerald as BATTLE_TYPE_DOME.
#define BATTLE_TYPE_WILD_SCRIPTED (1 << 17) // Used in pokeemerald as BATTLE_TYPE_PALACE.
#define BATTLE_TYPE_LEGENDARY_FRLG (1 << 18) // Used in pokeemerald as BATTLE_TYPE_ARENA.
#define BATTLE_TYPE_TRAINER_TOWER (1 << 19) // Used in pokeemerald as BATTLE_TYPE_FACTORY.
#define IS_BATTLE_TYPE_GHOST_WITHOUT_SCOPE(flags) ((flags) & BATTLE_TYPE_GHOST && !((flags) & BATTLE_TYPE_GHOST_UNVEILED))
#define IS_BATTLE_TYPE_GHOST_WITH_SCOPE(flags) ((flags) & BATTLE_TYPE_GHOST && (flags) & BATTLE_TYPE_GHOST_UNVEILED)
@@ -85,103 +73,113 @@
#define RIVAL_BATTLE_TUTORIAL 3
// Battle Outcome defines
#define B_OUTCOME_WON 0x1
#define B_OUTCOME_LOST 0x2
#define B_OUTCOME_DREW 0x3
#define B_OUTCOME_RAN 0x4
#define B_OUTCOME_PLAYER_TELEPORTED 0x5
#define B_OUTCOME_MON_FLED 0x6
#define B_OUTCOME_CAUGHT 0x7
#define B_OUTCOME_NO_SAFARI_BALLS 0x8
#define B_OUTCOME_FORFEITED 0x9
#define B_OUTCOME_MON_TELEPORTED 0xA
#define B_OUTCOME_LINK_BATTLE_RAN 0x80
#define B_OUTCOME_WON 1
#define B_OUTCOME_LOST 2
#define B_OUTCOME_DREW 3
#define B_OUTCOME_RAN 4
#define B_OUTCOME_PLAYER_TELEPORTED 5
#define B_OUTCOME_MON_FLED 6
#define B_OUTCOME_CAUGHT 7
#define B_OUTCOME_NO_SAFARI_BALLS 8
#define B_OUTCOME_FORFEITED 9
#define B_OUTCOME_MON_TELEPORTED 10
#define B_OUTCOME_LINK_BATTLE_RAN (1 << 7) // 128
// Non-volatile status conditions
// These persist remain outside of battle and after switching out
#define STATUS1_NONE 0x0
#define STATUS1_SLEEP 0x7
#define STATUS1_POISON 0x8
#define STATUS1_BURN 0x10
#define STATUS1_FREEZE 0x20
#define STATUS1_PARALYSIS 0x40
#define STATUS1_TOXIC_POISON 0x80
#define STATUS1_TOXIC_COUNTER 0xF00
#define STATUS1_NONE 0
#define STATUS1_SLEEP (1 << 0 | 1 << 1 | 1 << 2) // First 3 bits (Number of turns to sleep)
#define STATUS1_SLEEP_TURN(num) ((num) << 0) // Just for readability (or if rearranging statuses)
#define STATUS1_POISON (1 << 3)
#define STATUS1_BURN (1 << 4)
#define STATUS1_FREEZE (1 << 5)
#define STATUS1_PARALYSIS (1 << 6)
#define STATUS1_TOXIC_POISON (1 << 7)
#define STATUS1_TOXIC_COUNTER (1 << 8 | 1 << 9 | 1 << 10 | 1 << 11)
#define STATUS1_TOXIC_TURN(num) ((num) << 8)
#define STATUS1_PSN_ANY (STATUS1_POISON | STATUS1_TOXIC_POISON)
#define STATUS1_ANY (STATUS1_SLEEP | STATUS1_POISON | STATUS1_BURN | STATUS1_FREEZE | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON)
// Volatile status ailments
// These are removed after exiting the battle or switching out
#define STATUS2_CONFUSION 0x00000007
#define STATUS2_FLINCHED 0x00000008
#define STATUS2_UPROAR 0x00000070
#define STATUS2_BIDE 0x00000300 // two bits 0x100, 0x200
#define STATUS2_LOCK_CONFUSE 0x00000C00
#define STATUS2_MULTIPLETURNS 0x00001000
#define STATUS2_WRAPPED 0x0000E000
#define STATUS2_INFATUATION 0x000F0000 // 4 bits, one for every battler
#define STATUS2_CONFUSION (1 << 0 | 1 << 1 | 1 << 2)
#define STATUS2_CONFUSION_TURN(num) ((num) << 0)
#define STATUS2_FLINCHED (1 << 3)
#define STATUS2_UPROAR (1 << 4 | 1 << 5 | 1 << 6)
#define STATUS2_UPROAR_TURN(num) ((num) << 4)
#define STATUS2_UNUSED (1 << 7)
#define STATUS2_BIDE (1 << 8 | 1 << 9)
#define STATUS2_BIDE_TURN(num) (((num) << 8) & STATUS2_BIDE)
#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_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 0x00100000
#define STATUS2_TRANSFORMED 0x00200000
#define STATUS2_RECHARGE 0x00400000
#define STATUS2_RAGE 0x00800000
#define STATUS2_SUBSTITUTE 0x01000000
#define STATUS2_DESTINY_BOND 0x02000000
#define STATUS2_ESCAPE_PREVENTION 0x04000000
#define STATUS2_NIGHTMARE 0x08000000
#define STATUS2_CURSED 0x10000000
#define STATUS2_FORESIGHT 0x20000000
#define STATUS2_DEFENSE_CURL 0x40000000
#define STATUS2_TORMENT 0x80000000
#define STATUS2_FOCUS_ENERGY (1 << 20)
#define STATUS2_TRANSFORMED (1 << 21)
#define STATUS2_RECHARGE (1 << 22)
#define STATUS2_RAGE (1 << 23)
#define STATUS2_SUBSTITUTE (1 << 24)
#define STATUS2_DESTINY_BOND (1 << 25)
#define STATUS2_ESCAPE_PREVENTION (1 << 26)
#define STATUS2_NIGHTMARE (1 << 27)
#define STATUS2_CURSED (1 << 28)
#define STATUS2_FORESIGHT (1 << 29)
#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 0x3
#define STATUS3_LEECHSEED 0x4
#define STATUS3_ALWAYS_HITS 0x18 // two bits
#define STATUS3_PERISH_SONG 0x20
#define STATUS3_ON_AIR 0x40
#define STATUS3_UNDERGROUND 0x80
#define STATUS3_MINIMIZED 0x100
#define STATUS3_ROOTED 0x400
#define STATUS3_CHARGED_UP 0x200
#define STATUS3_YAWN 0x1800 // two bits
#define STATUS3_IMPRISONED_OTHERS 0x2000
#define STATUS3_GRUDGE 0x4000
#define STATUS3_CANT_SCORE_A_CRIT 0x8000
#define STATUS3_MUDSPORT 0x10000
#define STATUS3_WATERSPORT 0x20000
#define STATUS3_UNDERWATER 0x40000
#define STATUS3_INTIMIDATE_POKES 0x80000
#define STATUS3_TRACE 0x100000
#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)
#define STATUS3_ALWAYS_HITS_TURN(num) (((num) << 3) & STATUS3_ALWAYS_HITS) // "Always Hits" is set as a 2 turn timer, i.e. next turn is the last turn when it's active
#define STATUS3_PERISH_SONG (1 << 5)
#define STATUS3_ON_AIR (1 << 6)
#define STATUS3_UNDERGROUND (1 << 7)
#define STATUS3_MINIMIZED (1 << 8)
#define STATUS3_CHARGED_UP (1 << 9)
#define STATUS3_ROOTED (1 << 10)
#define STATUS3_YAWN (1 << 11 | 1 << 12) // Number of turns to sleep
#define STATUS3_YAWN_TURN(num) (((num) << 11) & STATUS3_YAWN)
#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_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)
// Not really sure what a "hitmarker" is.
#define HITMARKER_x10 0x00000010
#define HITMARKER_x20 0x00000020
#define HITMARKER_DESTINYBOND 0x00000040
#define HITMARKER_NO_ANIMATIONS 0x00000080
#define HITMARKER_IGNORE_SUBSTITUTE 0x00000100
#define HITMARKER_NO_ATTACKSTRING 0x00000200
#define HITMARKER_ATTACKSTRING_PRINTED 0x00000400
#define HITMARKER_NO_PPDEDUCT 0x00000800
#define HITMARKER_SWAP_ATTACKER_TARGET 0x00001000
#define HITMARKER_IGNORE_SAFEGUARD 0x00002000
#define HITMARKER_SYNCHRONISE_EFFECT 0x00004000
#define HITMARKER_RUN 0x00008000
#define HITMARKER_IGNORE_ON_AIR 0x00010000
#define HITMARKER_IGNORE_UNDERGROUND 0x00020000
#define HITMARKER_IGNORE_UNDERWATER 0x00040000
#define HITMARKER_UNABLE_TO_USE_MOVE 0x00080000
#define HITMARKER_PASSIVE_DAMAGE 0x00100000
#define HITMARKER_x200000 0x00200000
#define HITMARKER_PLAYER_FAINTED 0x00400000
#define HITMARKER_x800000 0x00800000
#define HITMARKER_GRUDGE 0x01000000
#define HITMARKER_OBEYS 0x02000000
#define HITMARKER_x4000000 0x04000000
#define HITMARKER_CHARGING 0x08000000
#define HITMARKER_FAINTED(battler) (gBitTable[battler] << 0x1C)
#define HITMARKER_FAINTED2(battler) (0x10000000 << battler)
#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)
#define HITMARKER_NO_ANIMATIONS (1 << 7)
#define HITMARKER_IGNORE_SUBSTITUTE (1 << 8)
#define HITMARKER_NO_ATTACKSTRING (1 << 9)
#define HITMARKER_ATTACKSTRING_PRINTED (1 << 10)
#define HITMARKER_NO_PPDEDUCT (1 << 11)
#define HITMARKER_SWAP_ATTACKER_TARGET (1 << 12)
#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_UNABLE_TO_USE_MOVE (1 << 19)
#define HITMARKER_PASSIVE_DAMAGE (1 << 20)
#define HITMARKER_DISOBEDIENT_MOVE (1 << 21)
#define HITMARKER_PLAYER_FAINTED (1 << 22)
#define HITMARKER_ALLOW_NO_PP (1 << 23)
#define HITMARKER_GRUDGE (1 << 24)
#define HITMARKER_OBEYS (1 << 25)
#define HITMARKER_NEVER_SET (1 << 26) // Cleared as part of a large group. Never set or checked
#define HITMARKER_CHARGING (1 << 27)
#define HITMARKER_FAINTED(battler) (gBitTable[battler] << 28)
#define HITMARKER_FAINTED2(battler) ((1 << 28) << battler)
// Per-side statuses that affect an entire party
#define SIDE_STATUS_REFLECT (1 << 0)
@@ -205,87 +203,85 @@
#define MOVE_RESULT_NO_EFFECT (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED)
// Battle Weather flags
#define WEATHER_RAIN_TEMPORARY (1 << 0)
#define WEATHER_RAIN_DOWNPOUR (1 << 1) // unused
#define WEATHER_RAIN_PERMANENT (1 << 2)
#define WEATHER_RAIN_ANY (WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_DOWNPOUR | WEATHER_RAIN_PERMANENT)
#define WEATHER_SANDSTORM_TEMPORARY (1 << 3)
#define WEATHER_SANDSTORM_PERMANENT (1 << 4)
#define WEATHER_SANDSTORM_ANY (WEATHER_SANDSTORM_TEMPORARY | WEATHER_SANDSTORM_PERMANENT)
#define WEATHER_SUN_TEMPORARY (1 << 5)
#define WEATHER_SUN_PERMANENT (1 << 6)
#define WEATHER_SUN_ANY (WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT)
#define WEATHER_HAIL (1 << 7)
#define WEATHER_HAIL_ANY (WEATHER_HAIL)
#define WEATHER_ANY (WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_SUN_ANY | WEATHER_HAIL_ANY)
#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_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)
// Move Effects
#define MOVE_EFFECT_NOTHING_0 0x0
#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 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_PARALYSIS 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_NOTHING_37 0x37
#define MOVE_EFFECT_NOTHING_38 0x38
#define MOVE_EFFECT_NOTHING_39 0x39
#define MOVE_EFFECT_NOTHING_3A 0x3A
#define MOVE_EFFECT_SP_ATK_TWO_DOWN 0x3B
#define MOVE_EFFECT_NOTHING_3C 0x3C
#define MOVE_EFFECT_NOTHING_3D 0x3D
#define MOVE_EFFECT_NOTHING_3E 0x3E
#define MOVE_EFFECT_NOTHING_3F 0x3F
#define MOVE_EFFECT_AFFECTS_USER 0x40
#define MOVE_EFFECT_CERTAIN 0x80
#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 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_AFFECTS_USER (1 << 6) // 64
#define MOVE_EFFECT_CERTAIN (1 << 7) // 128
// Battle terrain defines for gBattleTerrain.
#define BATTLE_TERRAIN_GRASS 0
@@ -309,9 +305,50 @@
#define BATTLE_TERRAIN_LANCE 18
#define BATTLE_TERRAIN_CHAMPION 19
// Return value for IsRunningFromBattleImpossible.
#define B_WAIT_TIME_LONG 64
#define B_WAIT_TIME_MED 48
#define B_WAIT_TIME_SHORT 32
#define CASTFORM_NORMAL 0
#define CASTFORM_FIRE 1
#define CASTFORM_WATER 2
#define CASTFORM_ICE 3
#define NUM_CASTFORM_FORMS 4
#define CASTFORM_SUBSTITUTE (1 << 7)
// Return value for IsRunningFromBattleImpossible.
#define BATTLE_RUN_SUCCESS 0
#define BATTLE_RUN_FORBIDDEN 1
#define BATTLE_RUN_FAILURE 2
// Window Ids for sStandardBattleWindowTemplates
#define B_WIN_MSG 0
#define B_WIN_ACTION_PROMPT 1 // "What will {x} do?"
#define B_WIN_ACTION_MENU 2 // "Fight/Pokémon/Bag/Run" menu
#define B_WIN_MOVE_NAME_1 3 // Top left
#define B_WIN_MOVE_NAME_2 4 // Top right
#define B_WIN_MOVE_NAME_3 5 // Bottom left
#define B_WIN_MOVE_NAME_4 6 // Bottom right
#define B_WIN_PP 7
#define B_WIN_MOVE_TYPE 8
#define B_WIN_PP_REMAINING 9
#define B_WIN_DUMMY 10
#define B_WIN_SWITCH_PROMPT 11 // "Switch which?"
#define B_WIN_LEVEL_UP_BOX 12
#define B_WIN_LEVEL_UP_BANNER 13
#define B_WIN_YESNO 14
#define B_WIN_VS_PLAYER 15
#define B_WIN_VS_OPPONENT 16
#define B_WIN_VS_MULTI_PLAYER_1 17
#define B_WIN_VS_MULTI_PLAYER_2 18
#define B_WIN_VS_MULTI_PLAYER_3 19
#define B_WIN_VS_MULTI_PLAYER_4 20
#define B_WIN_VS_OUTCOME_DRAW 21
#define B_WIN_VS_OUTCOME_LEFT 22
#define B_WIN_VS_OUTCOME_RIGHT 23
#define B_WIN_OAK_OLD_MAN 24
#define B_TEXT_FLAG_NPC_CONTEXT_FONT (1 << 6)
#define B_TEXT_FLAG_WINDOW_CLEAR (1 << 7)
#endif // GUARD_CONSTANTS_BATTLE_H
+5 -5
View File
@@ -342,9 +342,9 @@
#define BG_FISSURE 21
#define BG_BUG_OPPONENT 22
#define BG_BUG_PLAYER 23
#define BG_SOLARBEAM_OPPONENT 24
#define BG_SOLARBEAM_PLAYER 25
#define BG_SOLARBEAM_CONTESTS 26
#define BG_SOLAR_BEAM_OPPONENT 24
#define BG_SOLAR_BEAM_PLAYER 25
#define BG_SOLAR_BEAM_CONTESTS 26
// table ids for general animations
#define B_ANIM_CASTFORM_CHANGE 0x0
@@ -354,9 +354,9 @@
#define B_ANIM_BAIT_THROW 0x4
#define B_ANIM_ITEM_KNOCKOFF 0x5
#define B_ANIM_TURN_TRAP 0x6
#define B_ANIM_ITEM_EFFECT 0x7
#define B_ANIM_HELD_ITEM_EFFECT 0x7
#define B_ANIM_SMOKEBALL_ESCAPE 0x8
#define B_ANIM_HANGED_ON 0x9
#define B_ANIM_FOCUS_BAND 0x9
#define B_ANIM_RAIN_CONTINUES 0xA
#define B_ANIM_SUN_CONTINUES 0xB
#define B_ANIM_SANDSTORM_CONTINUES 0xC
+1 -1
View File
@@ -152,7 +152,7 @@
#define EFFECT_FUTURE_SIGHT 148
#define EFFECT_GUST 149
#define EFFECT_FLINCH_MINIMIZE_HIT 150 // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM
#define EFFECT_SOLARBEAM 151
#define EFFECT_SOLAR_BEAM 151
#define EFFECT_THUNDER 152
#define EFFECT_TELEPORT 153
#define EFFECT_BEAT_UP 154
+68 -54
View File
@@ -30,29 +30,40 @@
#define sMULTIPLAYER_ID gBattleScripting + 0x25
#define sSPECIAL_TRAINER_BATTLE_TYPE gBattleScripting + 0x26
#define cEFFECT_CHOOSER gBattleCommunication + 3
#define cMULTISTRING_CHOOSER gBattleCommunication + 5
// Array entries for battle communication
#define MULTIUSE_STATE 0
#define CURSOR_POSITION 1
#define TASK_ID 1 // task Id and cursor position share the same field
#define SPRITES_INIT_STATE1 1 // shares the Id as well
#define SPRITES_INIT_STATE2 2
#define MOVE_EFFECT_BYTE 3
#define ACTIONS_CONFIRMED_COUNT 4
#define MULTISTRING_CHOOSER 5
#define MISS_TYPE 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)
// Battle Script defines for getting the wanted battler
#define BS_TARGET 0
#define BS_ATTACKER 1
#define BS_EFFECT_BATTLER 2
#define BS_FAINTED 3
#define BS_ATTACKER_WITH_PARTNER 4 // for atk98_updatestatusicon
#define BS_UNKNOWN_5 5 // for openpartyscreen
#define BS_UNKNOWN_6 6 // for openpartyscreen
#define BS_ATTACKER_WITH_PARTNER 4 // for Cmd_updatestatusicon
#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 atk1E_jumpifability
#define BS_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability
#define BS_ATTACKER_SIDE 8 // for Cmd_jumpifability
#define BS_NOT_ATTACKER_SIDE 9 // for Cmd_jumpifability
#define BS_SCRIPTING 10
#define BS_PLAYER1 11
#define BS_OPPONENT1 12
#define BS_PLAYER2 13 // for atk98_updatestatusicon
#define BS_PLAYER2 13 // for Cmd_updatestatusicon
#define BS_OPPONENT2 14
// used for openpartyscreen
#define OPEN_PARTY_ALLOW_CANCEL 0x80
// atk 01, accuracy calc
#define NO_ACC_CALC 0xFFFE
#define NO_ACC_CALC_CHECK_LOCK_ON 0xFFFF
@@ -72,61 +83,64 @@
#define VARIOUS_SET_MAGIC_COAT_TARGET 1
#define VARIOUS_IS_RUNNING_IMPOSSIBLE 2
#define VARIOUS_GET_MOVE_TARGET 3
#define VARIOUS_CASE_4 4
#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_FLAG 7
#define VARIOUS_RESET_PLAYER_FAINTED 7
#define VARIOUS_CASE_8 8
#define VARIOUS_RETURN_OPPONENT_MON1 9
#define VARIOUS_RETURN_OPPONENT_MON2 10
#define VARIOUS_CHECK_POKEFLUTE 11
#define VARIOUS_WAIT_FANFARE 12
// atk80, dmg manipulation
#define ATK80_DMG_CHANGE_SIGN 0
#define ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP 1
#define ATK80_DMG_DOUBLED 2
// Cmd_manipulatedmg
#define DMG_CHANGE_SIGN 0
#define DMG_RECOIL_FROM_MISS 1
#define DMG_DOUBLED 2
// atk4F, a flag used for the jumpifcantswitch command
#define ATK4F_DONT_CHECK_STATUSES 0x80
// Cmd_jumpifcantswitch
#define SWITCH_IGNORE_ESCAPE_PREVENTION (1 << 7)
// statchange defines
#define STAT_CHANGE_BS_PTR 0x1
#define STAT_CHANGE_NOT_PROTECT_AFFECTED 0x20
// Cmd_statbuffchange
#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)
// atk48
#define ATK48_STAT_NEGATIVE 0x1
#define ATK48_STAT_BY_TWO 0x2
#define ATK48_ONLY_MULTIPLE 0x4
#define ATK48_DONT_CHECK_LOWER 0x8
// stat change flags for Cmd_playstatchangeanimation
#define STAT_CHANGE_NEGATIVE (1 << 0)
#define STAT_CHANGE_BY_TWO (1 << 1)
#define STAT_CHANGE_MULTIPLE_STATS (1 << 2)
#define STAT_CHANGE_CANT_PREVENT (1 << 3)
// atk49, moveend cases
#define ATK49_RAGE 0
#define ATK49_DEFROST 1
#define ATK49_SYNCHRONIZE_TARGET 2
#define ATK49_MOVE_END_ABILITIES 3
#define ATK49_STATUS_IMMUNITY_ABILITIES 4
#define ATK49_SYNCHRONIZE_ATTACKER 5
#define ATK49_CHOICE_MOVE 6
#define ATK49_CHANGED_ITEMS 7
#define ATK49_ATTACKER_INVISIBLE 8
#define ATK49_ATTACKER_VISIBLE 9
#define ATK49_TARGET_VISIBLE 10
#define ATK49_ITEM_EFFECTS_ALL 11
#define ATK49_KINGSROCK_SHELLBELL 12
#define ATK49_SUBSTITUTE 13
#define ATK49_UPDATE_LAST_MOVES 14
#define ATK49_MIRROR_MOVE 15
#define ATK49_NEXT_TARGET 16
#define ATK49_COUNT 17
// stat flags for Cmd_playstatchangeanimation
#define BIT_HP (1 << 0)
#define BIT_ATK (1 << 1)
#define BIT_DEF (1 << 2)
#define BIT_SPEED (1 << 3)
#define BIT_SPATK (1 << 4)
#define BIT_SPDEF (1 << 5)
#define BIT_ACC (1 << 6)
#define BIT_EVASION (1 << 7)
#define BIT_HP 0x1
#define BIT_ATK 0x2
#define BIT_DEF 0x4
#define BIT_SPEED 0x8
#define BIT_SPATK 0x10
#define BIT_SPDEF 0x20
#define BIT_ACC 0x40
#define BIT_EVASION 0x80
#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
#endif // GUARD_CONSTANTS_BATTLE_SCRIPT_COMMANDS_H
+83 -1
View File
@@ -247,7 +247,7 @@
#define MOVEMENT_ACTION_WALK_SLOWEST_UP 0x9C
#define MOVEMENT_ACTION_WALK_SLOWEST_LEFT 0x9D
#define MOVEMENT_ACTION_WALK_SLOWEST_RIGHT 0x9E
#define MOVEMENT_ACTION_SHAKE_HEAD 0x9F
#define MOVEMENT_ACTION_SHAKE_HEAD_OR_WALK_IN_PLACE 0x9F
#define MOVEMENT_ACTION_0xA0 0xA0
#define MOVEMENT_ACTION_0xA1 0xA1
#define MOVEMENT_ACTION_0xA2 0xA2
@@ -261,4 +261,86 @@
#define MOVEMENT_ACTION_STEP_END 0xFE
#define ANIM_STD_FACE_SOUTH 0
#define ANIM_STD_FACE_NORTH 1
#define ANIM_STD_FACE_WEST 2
#define ANIM_STD_FACE_EAST 3
#define ANIM_STD_GO_SOUTH 4
#define ANIM_STD_GO_NORTH 5
#define ANIM_STD_GO_WEST 6
#define ANIM_STD_GO_EAST 7
#define ANIM_STD_GO_FAST_SOUTH 8
#define ANIM_STD_GO_FAST_NORTH 9
#define ANIM_STD_GO_FAST_WEST 10
#define ANIM_STD_GO_FAST_EAST 11
#define ANIM_STD_GO_FASTER_SOUTH 12
#define ANIM_STD_GO_FASTER_NORTH 13
#define ANIM_STD_GO_FASTER_WEST 14
#define ANIM_STD_GO_FASTER_EAST 15
#define ANIM_STD_GO_FASTEST_SOUTH 16
#define ANIM_STD_GO_FASTEST_NORTH 17
#define ANIM_STD_GO_FASTEST_WEST 18
#define ANIM_STD_GO_FASTEST_EAST 19
#define ANIM_STD_COUNT 20
#define ANIM_RUN_SOUTH (ANIM_STD_COUNT + 0)
#define ANIM_RUN_NORTH (ANIM_STD_COUNT + 1)
#define ANIM_RUN_WEST (ANIM_STD_COUNT + 2)
#define ANIM_RUN_EAST (ANIM_STD_COUNT + 3)
#define ANIM_SPIN_SOUTH (ANIM_STD_COUNT + 4)
#define ANIM_SPIN_NORTH (ANIM_STD_COUNT + 5)
#define ANIM_SPIN_WEST (ANIM_STD_COUNT + 6)
#define ANIM_SPIN_EAST (ANIM_STD_COUNT + 7)
#define ANIM_SHAKE_HEAD_OR_WALK_IN_PLACE (ANIM_STD_COUNT + 8)
#define ANIM_BUNNY_HOP_BACK_WHEEL_SOUTH (ANIM_STD_COUNT + 0)
#define ANIM_BUNNY_HOP_BACK_WHEEL_NORTH (ANIM_STD_COUNT + 1)
#define ANIM_BUNNY_HOP_BACK_WHEEL_WEST (ANIM_STD_COUNT + 2)
#define ANIM_BUNNY_HOP_BACK_WHEEL_EAST (ANIM_STD_COUNT + 3)
#define ANIM_BUNNY_HOP_FRONT_WHEEL_SOUTH (ANIM_STD_COUNT + 4)
#define ANIM_BUNNY_HOP_FRONT_WHEEL_NORTH (ANIM_STD_COUNT + 5)
#define ANIM_BUNNY_HOP_FRONT_WHEEL_WEST (ANIM_STD_COUNT + 6)
#define ANIM_BUNNY_HOP_FRONT_WHEEL_EAST (ANIM_STD_COUNT + 7)
#define ANIM_STANDING_WHEELIE_BACK_WHEEL_SOUTH (ANIM_STD_COUNT + 8)
#define ANIM_STANDING_WHEELIE_BACK_WHEEL_NORTH (ANIM_STD_COUNT + 9)
#define ANIM_STANDING_WHEELIE_BACK_WHEEL_WEST (ANIM_STD_COUNT + 10)
#define ANIM_STANDING_WHEELIE_BACK_WHEEL_EAST (ANIM_STD_COUNT + 11)
#define ANIM_STANDING_WHEELIE_FRONT_WHEEL_SOUTH (ANIM_STD_COUNT + 12)
#define ANIM_STANDING_WHEELIE_FRONT_WHEEL_NORTH (ANIM_STD_COUNT + 13)
#define ANIM_STANDING_WHEELIE_FRONT_WHEEL_WEST (ANIM_STD_COUNT + 14)
#define ANIM_STANDING_WHEELIE_FRONT_WHEEL_EAST (ANIM_STD_COUNT + 15)
#define ANIM_MOVING_WHEELIE_SOUTH (ANIM_STD_COUNT + 16)
#define ANIM_MOVING_WHEELIE_NORTH (ANIM_STD_COUNT + 17)
#define ANIM_MOVING_WHEELIE_WEST (ANIM_STD_COUNT + 18)
#define ANIM_MOVING_WHEELIE_EAST (ANIM_STD_COUNT + 19)
#define ANIM_GET_ON_OFF_POKEMON_SOUTH (ANIM_STD_COUNT + 0)
#define ANIM_GET_ON_OFF_POKEMON_NORTH (ANIM_STD_COUNT + 1)
#define ANIM_GET_ON_OFF_POKEMON_WEST (ANIM_STD_COUNT + 2)
#define ANIM_GET_ON_OFF_POKEMON_EAST (ANIM_STD_COUNT + 3)
#define ANIM_NURSE_BOW (ANIM_STD_COUNT + 0)
#define ANIM_RAISE_HAND (ANIM_STD_COUNT + 0)
#define ANIM_FIELD_MOVE 0
#define ANIM_VS_SEEKER 0
#define ANIM_STAY_STILL 0
#define ANIM_REMOVE_OBSTACLE 1
#define ANIM_TAKE_OUT_ROD_SOUTH 0
#define ANIM_TAKE_OUT_ROD_NORTH 1
#define ANIM_TAKE_OUT_ROD_WEST 2
#define ANIM_TAKE_OUT_ROD_EAST 3
#define ANIM_PUT_AWAY_ROD_SOUTH 4
#define ANIM_PUT_AWAY_ROD_NORTH 5
#define ANIM_PUT_AWAY_ROD_WEST 6
#define ANIM_PUT_AWAY_ROD_EAST 7
#define ANIM_HOOKED_POKEMON_SOUTH 8
#define ANIM_HOOKED_POKEMON_NORTH 9
#define ANIM_HOOKED_POKEMON_WEST 10
#define ANIM_HOOKED_POKEMON_EAST 11
#endif // GUARD_CONSTANTS_EVENT_OBJECT_MOVEMENT_H
-22
View File
@@ -1,22 +0,0 @@
#ifndef GUARD_CONSTANTS_FANFARES_H
#define GUARD_CONSTANTS_FANFARES_H
enum Fanfares
{
FANFARE_00,
FANFARE_01,
FANFARE_02,
FANFARE_03,
FANFARE_04,
FANFARE_05,
FANFARE_06,
FANFARE_07,
FANFARE_08,
FANFARE_09,
FANFARE_10,
FANFARE_POKEFLUTE,
FANFARE_KEY_ITEM,
FANFARE_DEX_EVAL
};
#endif //GUARD_CONSTANTS_FANFARES_H
+6 -6
View File
@@ -20,10 +20,10 @@
#define FLDEFF_JUMP_SMALL_SPLASH 16
#define FLDEFF_LONG_GRASS 17
#define FLDEFF_JUMP_LONG_GRASS 18
#define FLDEFF_UNKNOWN_19 19
#define FLDEFF_UNKNOWN_20 20
#define FLDEFF_UNKNOWN_21 21
#define FLDEFF_UNKNOWN_22 22
#define FLDEFF_UNUSED_GRASS 19
#define FLDEFF_UNUSED_GRASS_2 20
#define FLDEFF_UNUSED_SAND 21
#define FLDEFF_UNUSED_WATER_SURFACING 22
#define FLDEFF_BERRY_TREE_GROWTH_SPARKLE 23
#define FLDEFF_DEEP_SAND_FOOTPRINTS 24
#define FLDEFF_POKECENTER_HEAL 25
@@ -32,7 +32,7 @@
#define FLDEFF_TREE_DISGUISE 28
#define FLDEFF_MOUNTAIN_DISGUISE 29
#define FLDEFF_NPCFLY_OUT 30
#define FLDEFF_USE_FLY 31
#define FLDEFF_FLY_OUT 31
#define FLDEFF_FLY_IN 32
#define FLDEFF_QUESTION_MARK_ICON 33
#define FLDEFF_FEET_IN_FLOWING_WATER 34
@@ -70,7 +70,7 @@
#define FLDEFF_DOUBLE_EXCL_MARK_ICON 66
#define FLDEFF_MOVE_DEOXYS_ROCK 67
#define FLDEFF_DESTROY_DEOXYS_ROCK 68
#define FLDEFF_UNK_45 69 // TODO: related to fame checker photos
#define FLDEFF_PHOTO_FLASH 69
#define FLDEFF_PAL_TAG_GENERAL_0 0x1004
#define FLDEFF_PAL_TAG_GENERAL_1 0x1005
+4
View File
@@ -30,6 +30,7 @@
#define GAME_LANGUAGE (LANGUAGE_ENGLISH)
#endif
// capacities of various saveblock objects
#define DAYCARE_MON_COUNT 2
#define PC_ITEMS_COUNT 30
#define BAG_ITEMS_COUNT 42
@@ -53,6 +54,9 @@
#define POCKET_BERRY_POUCH 5
#define NUM_BAG_POCKETS 5
// Contests
#define CONTEST_CATEGORIES_COUNT 5
// string lengths
#define ITEM_NAME_LENGTH 14
#define POKEMON_NAME_LENGTH 10
+2 -1
View File
@@ -372,7 +372,7 @@
#define ITEM_TM19_GIGA_DRAIN ITEM_TM19
#define ITEM_TM20_SAFEGUARD ITEM_TM20
#define ITEM_TM21_FRUSTRATION ITEM_TM21
#define ITEM_TM22_SOLARBEAM ITEM_TM22
#define ITEM_TM22_SOLAR_BEAM ITEM_TM22
#define ITEM_TM23_IRON_TAIL ITEM_TM23
#define ITEM_TM24_THUNDERBOLT ITEM_TM24
#define ITEM_TM25_THUNDER ITEM_TM25
@@ -447,6 +447,7 @@
#define FIRST_BERRY_INDEX ITEM_CHERI_BERRY
#define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY
#define ITEM_TO_BERRY(itemId)(((itemId - FIRST_BERRY_INDEX) + 1))
#define MAIL_NONE 0xFF
#define NUM_TECHNICAL_MACHINES 50
#define NUM_HIDDEN_MACHINES 8
+2 -2
View File
@@ -252,7 +252,7 @@
#define LAYOUT_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB 263
#define LAYOUT_SEVEN_ISLAND_HOUSE_ROOM1_DOOR_OPEN 264
#define LAYOUT_SEVEN_ISLAND_HOUSE_ROOM2 265
#define LAYOUT_VIRIDIAN_CITY_HOUSE2 266
#define LAYOUT_VIRIDIAN_CITY_SCHOOL 266
#define LAYOUT_CELADON_CITY_RESTAURANT_DUPLICATE 267
#define LAYOUT_CELADON_CITY_HOTEL_DUPLICATE 268
#define LAYOUT_MT_EMBER_RUBY_PATH_B4F 269
@@ -262,7 +262,7 @@
#define LAYOUT_VERMILION_CITY_POKEMON_FAN_CLUB 273
#define LAYOUT_LAVENDER_TOWN_VOLUNTEER_POKEMON_HOUSE 274
#define LAYOUT_ROUTE5_POKEMON_DAY_CARE 275
#define LAYOUT_VIRIDIAN_CITY_HOUSE1 276
#define LAYOUT_VIRIDIAN_CITY_HOUSE 276
#define LAYOUT_FOUR_ISLAND_POKEMON_DAY_CARE 277
#define LAYOUT_SEAFOAM_ISLANDS_B3F_CURRENT_STOPPED 278
#define LAYOUT_SEAFOAM_ISLANDS_B4F_CURRENT_STOPPED 279
+2 -2
View File
@@ -274,9 +274,9 @@
#define MAP_PALLET_TOWN_PROFESSOR_OAKS_LAB (3 | (4 << 8))
// gMapGroup_IndoorViridian
#define MAP_VIRIDIAN_CITY_HOUSE1 (0 | (5 << 8))
#define MAP_VIRIDIAN_CITY_HOUSE (0 | (5 << 8))
#define MAP_VIRIDIAN_CITY_GYM (1 | (5 << 8))
#define MAP_VIRIDIAN_CITY_HOUSE2 (2 | (5 << 8))
#define MAP_VIRIDIAN_CITY_SCHOOL (2 | (5 << 8))
#define MAP_VIRIDIAN_CITY_MART (3 | (5 << 8))
#define MAP_VIRIDIAN_CITY_POKEMON_CENTER_1F (4 | (5 << 8))
#define MAP_VIRIDIAN_CITY_POKEMON_CENTER_2F (5 | (5 << 8))
+27 -12
View File
@@ -1,33 +1,41 @@
#ifndef GUARD_METATILE_BEHAVIORS
#define GUARD_METATILE_BEHAVIORS
#define METATILE_COUNT 0xF0
#define MB_NORMAL 0x00
#define MB_01 0x01
#define MB_UNUSED_01 0x01
#define MB_TALL_GRASS 0x02
//
#define MB_CAVE 0x08
//
#define MB_RUNNING_DISALLOWED 0x0A
#define MB_0B 0x0B
#define MB_0C 0x0C
#define MB_INDOOR_ENCOUNTER 0x0B
#define MB_MOUNTAIN_TOP 0x0C
//
#define MB_POND_WATER 0x10
#define MB_SEMI_DEEP_WATER 0x11
#define MB_DEEP_WATER 0x12
#define MB_WATERFALL 0x13
//
#define MB_OCEAN_WATER 0x15
#define MB_PUDDLE 0x16
#define MB_SHALLOW_WATER 0x17
//
#define MB_UNDERWATER_BLOCKED_ABOVE 0x19
#define MB_1A 0x1A
#define MB_1B 0x1B
#define MB_UNUSED_WATER 0x1A
#define MB_CYCLING_ROAD_WATER 0x1B
//
#define MB_STRENGTH_BUTTON 0x20
#define MB_SAND 0x21
#define MB_SEAWEED 0x22
#define MB_ICE 0x23
//
#define MB_THIN_ICE 0x26
#define MB_CRACKED_ICE 0x27
#define MB_HOT_SPRINGS 0x28
//
#define MB_ROCK_STAIRS 0x2A
#define MB_SAND_CAVE 0x2B
//
#define MB_IMPASSABLE_EAST 0x30
#define MB_IMPASSABLE_WEST 0x31
#define MB_IMPASSABLE_NORTH 0x32
@@ -40,8 +48,7 @@
#define MB_JUMP_WEST 0x39
#define MB_JUMP_NORTH 0x3A
#define MB_JUMP_SOUTH 0x3B
#define MB_JUMP_SOUTHEAST 0x3E
#define MB_JUMP_SOUTHWEST 0x3F
//
#define MB_WALK_EAST 0x40
#define MB_WALK_WEST 0x41
#define MB_WALK_NORTH 0x42
@@ -50,7 +57,8 @@
#define MB_SLIDE_WEST 0x45
#define MB_SLIDE_NORTH 0x46
#define MB_SLIDE_SOUTH 0x47
#define MB_UNKNOWN_MOVEMENT_48 0x48
#define MB_TRICK_HOUSE_PUZZLE_8_FLOOR 0x48
//
#define MB_EASTWARD_CURRENT 0x50
#define MB_WESTWARD_CURRENT 0x51
#define MB_NORTHWARD_CURRENT 0x52
@@ -60,6 +68,7 @@
#define MB_SPIN_UP 0x56
#define MB_SPIN_DOWN 0x57
#define MB_STOP_SPINNING 0x58
//
#define MB_CAVE_DOOR 0x60
#define MB_LADDER 0x61
#define MB_EAST_ARROW_WARP 0x62
@@ -76,7 +85,9 @@
#define MB_UP_LEFT_STAIR_WARP 0x6D
#define MB_DOWN_RIGHT_STAIR_WARP 0x6E
#define MB_DOWN_LEFT_STAIR_WARP 0x6F
//
#define MB_UNION_ROOM_WARP 0x71
//
#define MB_COUNTER 0x80
#define MB_BOOKSHELF 0x81
#define MB_POKEMART_SHELF 0x82
@@ -90,12 +101,12 @@
#define MB_KITCHEN 0x8A
#define MB_DRESSER 0x8B
#define MB_SNACKS 0x8C
#define MB_8D 0x8D
#define MB_CABLE_CLUB_WIRELESS_MONITOR 0x8D
#define MB_BATTLE_RECORDS 0x8E
#define MB_QUESTIONNAIRE 0x8F
#define MB_FOOD 0x90
#define MB_INDIGO_PLATEAU_MARK_DPAD 0x91
#define MB_INDIGO_PLATEAU_MARK_2_DPAD 0x92
#define MB_INDIGO_PLATEAU_SIGN_1 0x91
#define MB_INDIGO_PLATEAU_SIGN_2 0x92
#define MB_BLUEPRINTS 0x93
#define MB_PAINTING 0x94
#define MB_POWER_PLANT_MACHINE 0x95
@@ -106,13 +117,17 @@
#define MB_TRASH_BIN 0x9A
#define MB_CUP 0x9B
#define MB_PORTHOLE 0x9C
#define MB_WINDOW 0x9D
#define MB_BLINKING_LIGHTS 0x9E
#define MB_NEATLY_LINED_UP_TOOLS 0x9F
#define MB_IMPRESSIVE_MACHINE 0xA0
#define MB_VIDEO_GAME 0xA1
#define MB_BURGLARY 0xA2
#define MB_TRAINER_TOWER_MONITOR 0xA3
//
#define MB_CYCLING_ROAD_PULL_DOWN 0xD0
#define MB_CYCLING_ROAD_PULL_DOWN_GRASS 0xD1
//
#define NUM_METATILE_BEHAVIORS 0xF0
#endif // GUARD_METATILE_BEHAVIORS
+3
View File
@@ -361,6 +361,9 @@
#define MOVES_COUNT 355
// Used for checks for moves affected by Disable, Mimic, etc.
#define MOVE_UNAVAILABLE 0xFFFF
#define MOVETUTOR_MEGA_PUNCH 0
#define MOVETUTOR_SWORDS_DANCE 1
#define MOVETUTOR_MEGA_KICK 2
+47 -36
View File
@@ -81,7 +81,7 @@
#define MON_DATA_NATIONAL_RIBBON 76
#define MON_DATA_EARTH_RIBBON 77
#define MON_DATA_WORLD_RIBBON 78
#define MON_DATA_FILLER 79
#define MON_DATA_UNUSED_RIBBONS 79
#define MON_DATA_EVENT_LEGAL 80
#define MON_DATA_KNOWN_MOVES 81
#define MON_DATA_RIBBON_COUNT 82
@@ -134,44 +134,51 @@
#define EGG_GROUPS_PER_MON 2
// Pokemon natures
#define NATURE_HARDY 0
#define NATURE_LONELY 1
#define NATURE_BRAVE 2
#define NATURE_ADAMANT 3
#define NATURE_NAUGHTY 4
#define NATURE_BOLD 5
#define NATURE_DOCILE 6
#define NATURE_RELAXED 7
#define NATURE_IMPISH 8
#define NATURE_LAX 9
#define NATURE_TIMID 10
#define NATURE_HASTY 11
#define NATURE_SERIOUS 12
#define NATURE_JOLLY 13
#define NATURE_NAIVE 14
#define NATURE_MODEST 15
#define NATURE_MILD 16
#define NATURE_QUIET 17
#define NATURE_BASHFUL 18
#define NATURE_RASH 19
#define NATURE_CALM 20
#define NATURE_GENTLE 21
#define NATURE_SASSY 22
#define NATURE_CAREFUL 23
#define NATURE_QUIRKY 24
#define NATURE_HARDY 0
#define NATURE_LONELY 1
#define NATURE_BRAVE 2
#define NATURE_ADAMANT 3
#define NATURE_NAUGHTY 4
#define NATURE_BOLD 5
#define NATURE_DOCILE 6
#define NATURE_RELAXED 7
#define NATURE_IMPISH 8
#define NATURE_LAX 9
#define NATURE_TIMID 10
#define NATURE_HASTY 11
#define NATURE_SERIOUS 12
#define NATURE_JOLLY 13
#define NATURE_NAIVE 14
#define NATURE_MODEST 15
#define NATURE_MILD 16
#define NATURE_QUIET 17
#define NATURE_BASHFUL 18
#define NATURE_RASH 19
#define NATURE_CALM 20
#define NATURE_GENTLE 21
#define NATURE_SASSY 22
#define NATURE_CAREFUL 23
#define NATURE_QUIRKY 24
#define NUM_NATURES 25
// Pokemon Stats
#define STAT_HP 0
#define STAT_ATK 1
#define STAT_DEF 2
#define STAT_SPEED 3
#define STAT_SPATK 4
#define STAT_SPDEF 5
#define STAT_ACC 6 // only in battles
#define STAT_EVASION 7 // only in battles
#define STAT_HP 0
#define STAT_ATK 1
#define STAT_DEF 2
#define STAT_SPEED 3
#define STAT_SPATK 4
#define STAT_SPDEF 5
#define NUM_STATS 6
#define NUM_STATS 6
#define NUM_BATTLE_STATS 8
#define STAT_ACC 6 // Only in battles.
#define STAT_EVASION 7 // Only in battles.
#define NUM_NATURE_STATS (NUM_STATS - 1) // excludes HP
#define NUM_BATTLE_STATS (NUM_STATS + 2) // includes Accuracy and Evasion
#define MIN_STAT_STAGE 0
#define DEFAULT_STAT_STAGE 6
#define MAX_STAT_STAGE 12
// Shiny odds
#define SHINY_ODDS 8 // Actual probability is SHINY_ODDS/65536
@@ -225,6 +232,10 @@
#define EVO_MODE_ITEM_USE 2
#define EVO_MODE_ITEM_CHECK 3 // If an Everstone is being held, still want to show that the stone *could* be used on that Pokémon to evolve
#define MON_PIC_WIDTH 64
#define MON_PIC_HEIGHT 64
#define MON_PIC_SIZE (MON_PIC_WIDTH * MON_PIC_HEIGHT / 2)
// used by ShouldIgnoreDeoxysForm
#define DEOXYS_CHECK_BATTLE_SPRITE 1
#define DEOXYS_CHECK_TRADE_MAIN 3
+2
View File
@@ -353,4 +353,6 @@
#define MUS_SLOW_PALLET 345 // MUS_RG_SLOWMASARA
#define MUS_TEACHY_TV_MENU 346 // MUS_RG_TVNOIZE
#define MUS_NONE 0xFFFF
#endif // GUARD_CONSTANTS_SONGS_H
+44
View File
@@ -0,0 +1,44 @@
#ifndef GUARD_CONSTANTS_SOUND_H
#define GUARD_CONSTANTS_SOUND_H
#define FANFARE_LEVEL_UP 0
#define FANFARE_OBTAIN_ITEM 1
#define FANFARE_EVOLVED 2
#define FANFARE_OBTAIN_TMHM 3
#define FANFARE_HEAL 4
#define FANFARE_OBTAIN_BADGE 5
#define FANFARE_MOVE_DELETED 6
#define FANFARE_OBTAIN_BERRY 7
#define FANFARE_SLOTS_JACKPOT 8
#define FANFARE_SLOTS_WIN 9
#define FANFARE_TOO_BAD 10
#define FANFARE_POKE_FLUTE 11
#define FANFARE_KEY_ITEM 12
#define FANFARE_DEX_EVAL 13
#define CRY_MODE_NORMAL 0 // Default
#define CRY_MODE_DOUBLES 1 // Shortened cry for double battles
#define CRY_MODE_ENCOUNTER 2 // Used when starting a static encounter, or when a Pokémon is "aggressive"
#define CRY_MODE_HIGH_PITCH 3 // Highest pitch mode, used exclusively by the move Howl
#define CRY_MODE_ECHO_START 4 // For 1st half of cry used by the move Hyper Voice. Played in reverse
#define CRY_MODE_FAINT 5 // Used when a Pokémon faints
#define CRY_MODE_ECHO_END 6 // For 2nd half of cry used by the move Hyper Voice
#define CRY_MODE_ROAR_1 7 // For 1st cry used by the move Roar
#define CRY_MODE_ROAR_2 8 // For 2nd cry used by the move Roar
#define CRY_MODE_GROWL_1 9 // For 1st cry used by the move Growl. Played in reverse
#define CRY_MODE_GROWL_2 10 // For 2nd cry used by the move Growl
#define CRY_MODE_WEAK 11 // Used when a Pokémon is unhealthy
#define CRY_MODE_WEAK_DOUBLES 12 // Equivalent to CRY_MODE_DOUBLES for CRY_MODE_WEAK
// Given to SoundTask_PlayDoubleCry to determine which cry mode to use. Values are arbitrary
#define DOUBLE_CRY_ROAR 2
#define DOUBLE_CRY_GROWL 255
#define CRY_PRIORITY_NORMAL 10
#define CRY_PRIORITY_AMBIENT 1
// Cry volume was changed from 125 in R/S to 120 for FRLG/Em, but was (accidentally?) not updated outside of sound.c
#define CRY_VOLUME 120
#define CRY_VOLUME_RS 125
#endif //GUARD_CONSTANTS_SOUND_H