diff options
Diffstat (limited to 'include/constants')
-rw-r--r-- | include/constants/abilities.h | 2 | ||||
-rw-r--r-- | include/constants/battle.h | 112 | ||||
-rw-r--r-- | include/constants/metatile_labels.h | 12 | ||||
-rw-r--r-- | include/constants/pokemon.h | 144 | ||||
-rw-r--r-- | include/constants/vars.h | 37 |
5 files changed, 227 insertions, 80 deletions
diff --git a/include/constants/abilities.h b/include/constants/abilities.h index 4e2c4056c..4ad54c86f 100644 --- a/include/constants/abilities.h +++ b/include/constants/abilities.h @@ -80,4 +80,6 @@ #define ABILITY_CACOPHONY 76 #define ABILITY_AIR_LOCK 77 +#define ABILITIES_COUNT 78 + #endif // GUARD_CONSTANTS_ABILITIES_H diff --git a/include/constants/battle.h b/include/constants/battle.h index c33e0abb4..5aa1772d1 100644 --- a/include/constants/battle.h +++ b/include/constants/battle.h @@ -1,5 +1,5 @@ -#ifndef GUARD_CONSTANTS_BATTLE_CONSTANTS_H -#define GUARD_CONSTANTS_BATTLE_CONSTANTS_H +#ifndef GUARD_CONSTANTS_BATTLE_H +#define GUARD_CONSTANTS_BATTLE_H /* * A battler may be in one of four positions on the field. The first bit determines @@ -43,6 +43,7 @@ #define BIT_SIDE 1 #define BIT_FLANK 2 +// Battle Type Flags #define BATTLE_TYPE_DOUBLE 0x0001 #define BATTLE_TYPE_LINK 0x0002 #define BATTLE_TYPE_WILD 0x0004 @@ -63,67 +64,68 @@ #define SECRET_BASE_OPPONENT 0x400 #define LINK_BATTLE_OPPONENT 0x800 -#define BATTLE_WON 0x1 -#define BATTLE_LOST 0x2 -#define BATTLE_DREW 0x3 -#define BATTLE_RAN 0x4 -#define BATTLE_PLAYER_TELEPORTED 0x5 -#define BATTLE_POKE_FLED 0x6 -#define BATTLE_CAUGHT 0x7 -#define BATTLE_OUT_OF_BALLS 0x8 -#define BATTLE_OPPONENT_TELEPORTED 0xA - -#define OUTCOME_LINK_BATTLE_RUN 0x80 +// 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 // Non-volatile status conditions // These persist remain outside of battle and after switching out -#define STATUS1_NONE 0x0 -#define STATUS_SLEEP 0x7 -#define STATUS_POISON 0x8 -#define STATUS_BURN 0x10 -#define STATUS_FREEZE 0x20 -#define STATUS_PARALYSIS 0x40 -#define STATUS_TOXIC_POISON 0x80 -#define STATUS_TOXIC_COUNTER 0xF00 -#define STATUS_PSN_ANY ((STATUS_POISON | STATUS_TOXIC_POISON)) -#define STATUS_ANY ((STATUS_SLEEP | STATUS_POISON | STATUS_BURN | STATUS_FREEZE | STATUS_PARALYSIS | STATUS_TOXIC_POISON)) +#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_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 +#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_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 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 // Seems like per-battler statuses. Not quite sure how to categorize these -#define STATUS3_LEECHSEED_BANK 0x3 +#define STATUS3_LEECHSEED_BATTLER 0x3 #define STATUS3_LEECHSEED 0x4 -#define STATUS3_ALWAYS_HITS 0x18 //two bits +#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_IMPRISIONED 0x2000 +#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 @@ -131,7 +133,7 @@ #define STATUS3_UNDERWATER 0x40000 #define STATUS3_INTIMIDATE_POKES 0x80000 #define STATUS3_TRACE 0x100000 -#define STATUS3_SEMI_INVULNERABLE ((STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER)) +#define STATUS3_SEMI_INVULNERABLE (STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER) // Not really sure what a "hitmarker" is. #define HITMARKER_x10 0x00000010 @@ -142,7 +144,7 @@ #define HITMARKER_NO_ATTACKSTRING 0x00000200 #define HITMARKER_ATTACKSTRING_PRINTED 0x00000400 #define HITMARKER_NO_PPDEDUCT 0x00000800 -#define HITMARKER_PURSUIT_TRAP 0x00001000 +#define HITMARKER_SWAP_ATTACKER_TARGET 0x00001000 #define HITMARKER_IGNORE_SAFEGUARD 0x00002000 #define HITMARKER_SYNCHRONISE_EFFECT 0x00004000 #define HITMARKER_RUN 0x00008000 @@ -157,9 +159,9 @@ #define HITMARKER_GRUDGE 0x01000000 #define HITMARKER_OBEYS 0x02000000 #define HITMARKER_x4000000 0x04000000 -#define HITMARKER_x8000000 0x08000000 -#define HITMARKER_FAINTED(bank) ((gBitTable[bank] << 0x1C)) -#define HITMARKER_UNK(bank) ((0x10000000 << bank)) +#define HITMARKER_CHARGING 0x08000000 +#define HITMARKER_FAINTED(battler) (gBitTable[battler] << 0x1C) +#define HITMARKER_UNK(battler) (0x10000000 << battler) // Per-side statuses that affect an entire party #define SIDE_STATUS_REFLECT (1 << 0) @@ -235,7 +237,7 @@ #define MOVE_EFFECT_RAPIDSPIN 0x23 #define MOVE_EFFECT_REMOVE_PARALYSIS 0x24 #define MOVE_EFFECT_ATK_DEF_DOWN 0x25 -#define MOVE_EFFECT_RECOIL_33_PARALYSIS 0x26 +#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 @@ -322,9 +324,7 @@ #define ABILITYEFFECT_COUNT_ON_FIELD 0x12 #define ABILITYEFFECT_CHECK_ON_FIELD 0x13 -#define WEATHER_HAS_EFFECT ((!AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_AIR_LOCK, 0, 0))) - -#define BS_GET_TARGET 0 +#define BS_TARGET 0 #define BS_GET_ATTACKER 1 #define BS_GET_EFFECT_BANK 2 #define BS_GET_gBank1 3 diff --git a/include/constants/metatile_labels.h b/include/constants/metatile_labels.h index 0995d5309..f126d222a 100644 --- a/include/constants/metatile_labels.h +++ b/include/constants/metatile_labels.h @@ -191,12 +191,12 @@ #define METATILE_MauvilleGym_PoleBottom_Off 0x243 // gTileset_MossdeepGym -#define METATILE_MossdeepGym_Obelisk_Top 0x204 -#define METATILE_MossdeepGym_Obelisk_Base 0x20C -#define METATILE_MossdeepGym_Wall_LeftCorner 0x20D -#define METATILE_MossdeepGym_OuterWall_RightCorner 0x205 -#define METATILE_MossdeepGym_Empty0 0x238 -#define METATILE_MossdeepGym_Empty1 0x239 +#define METATILE_MossdeepGym_RedArrow_Right 0x204 +#define METATILE_MossdeepGym_RedArrow_Left 0x20C +#define METATILE_MossdeepGym_RedArrow_Up 0x20D +#define METATILE_MossdeepGym_RedArrow_Down 0x205 +#define METATILE_MossdeepGym_Switch_Up 0x238 +#define METATILE_MossdeepGym_Switch_Down 0x239 // gTileset_Building #define METATILE_Building_TV_Off 0x002 diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h new file mode 100644 index 000000000..8e7c01eb5 --- /dev/null +++ b/include/constants/pokemon.h @@ -0,0 +1,144 @@ +#ifndef GUARD_CONSTANTS_POKEMON_H +#define GUARD_CONSTANTS_POKEMON_H + +#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_BIT1 4 +#define MON_DATA_SANITY_BIT2 5 +#define MON_DATA_SANITY_BIT3 6 +#define MON_DATA_OT_NAME 7 +#define MON_DATA_MARKINGS 8 +#define MON_DATA_CHECKSUM 9 +#define MON_DATA_10 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_ALT_ABILITY 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_GIFT_RIBBON_1 72 +#define MON_DATA_GIFT_RIBBON_2 73 +#define MON_DATA_GIFT_RIBBON_3 74 +#define MON_DATA_GIFT_RIBBON_4 75 +#define MON_DATA_GIFT_RIBBON_5 76 +#define MON_DATA_GIFT_RIBBON_6 77 +#define MON_DATA_GIFT_RIBBON_7 78 +#define MON_DATA_FATEFUL_ENCOUNTER 79 +#define MON_DATA_KNOWN_MOVES 80 +#define MON_DATA_RIBBON_COUNT 81 +#define MON_DATA_RIBBONS 82 +#define MON_DATA_83 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 + +#define MIN_LEVEL 1 +#define MAX_LEVEL 100 + +#define MON_MALE 0x00 +#define MON_FEMALE 0xFE +#define MON_GENDERLESS 0xFF + +#define TYPE_NORMAL 0x00 +#define TYPE_FIGHTING 0x01 +#define TYPE_FLYING 0x02 +#define TYPE_POISON 0x03 +#define TYPE_GROUND 0x04 +#define TYPE_ROCK 0x05 +#define TYPE_BUG 0x06 +#define TYPE_GHOST 0x07 +#define TYPE_STEEL 0x08 +#define TYPE_MYSTERY 0x09 +#define TYPE_FIRE 0x0a +#define TYPE_WATER 0x0b +#define TYPE_GRASS 0x0c +#define TYPE_ELECTRIC 0x0d +#define TYPE_PSYCHIC 0x0e +#define TYPE_ICE 0x0f +#define TYPE_DRAGON 0x10 +#define TYPE_DARK 0x11 +#define NUMBER_OF_MON_TYPES 0x12 + +#define FRIENDSHIP_EVENT_GROW_LEVEL 0x0 +#define FRIENDSHIP_EVENT_VITAMIN 0x1 // unused +#define FRIENDSHIP_EVENT_BATTLE_ITEM 0x2 // unused +#define FRIENDSHIP_EVENT_LEAGUE_BATTLE 0x3 +#define FRIENDSHIP_EVENT_LEARN_TMHM 0x4 +#define FRIENDSHIP_EVENT_WALKING 0x5 +#define FRIENDSHIP_EVENT_FAINT_SMALL 0x6 +#define FRIENDSHIP_EVENT_FAINT_OUTSIDE_BATTLE 0x7 +#define FRIENDSHIP_EVENT_FAINT_LARGE 0x8 + +#define STATUS_PRIMARY_NONE 0x0 +#define STATUS_PRIMARY_POISON 0x1 +#define STATUS_PRIMARY_PARALYSIS 0x2 +#define STATUS_PRIMARY_SLEEP 0x3 +#define STATUS_PRIMARY_FREEZE 0x4 +#define STATUS_PRIMARY_BURN 0x5 +#define STATUS_PRIMARY_POKERUS 0x6 +#define STATUS_PRIMARY_FAINTED 0x7 + +#define MAX_TOTAL_EVS 510 +#define NUM_STATS 6 +#define UNOWN_FORM_COUNT 28 + +#endif // GUARD_CONSTANTS_POKEMON_H diff --git a/include/constants/vars.h b/include/constants/vars.h index 856aba069..de62e4e8a 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -172,25 +172,26 @@ #define VAR_STEVENS_HOUSE_STATE 0x40C6 #define VAR_OLDALE_STATE 0x40C7 +#define SPECIAL_VARS_START 0x8000 // special vars // They are commonly used as parameters to commands, or return values from commands. -#define VAR_SPECIAL_0 0x8000 -#define VAR_SPECIAL_1 0x8001 -#define VAR_SPECIAL_2 0x8002 -#define VAR_SPECIAL_3 0x8003 -#define VAR_SPECIAL_4 0x8004 -#define VAR_SPECIAL_5 0x8005 -#define VAR_SPECIAL_6 0x8006 -#define VAR_SPECIAL_7 0x8007 -#define VAR_SPECIAL_8 0x8008 -#define VAR_SPECIAL_9 0x8009 -#define VAR_SPECIAL_A 0x800A -#define VAR_SPECIAL_B 0x800B -#define FACING 0x800C -#define RESULT 0x800D -#define ITEM_ID 0x800E -#define LAST_TALKED 0x800F -#define CONTEST_RANK 0x8010 -#define CONTEST_CATEGORY 0x8011 +#define VAR_0x8000 0x8000 +#define VAR_0x8001 0x8001 +#define VAR_0x8002 0x8002 +#define VAR_0x8003 0x8003 +#define VAR_0x8004 0x8004 +#define VAR_0x8005 0x8005 +#define VAR_0x8006 0x8006 +#define VAR_0x8007 0x8007 +#define VAR_0x8008 0x8008 +#define VAR_0x8009 0x8009 +#define VAR_0x800A 0x800A +#define VAR_0x800B 0x800B +#define VAR_FACING 0x800C +#define VAR_RESULT 0x800D +#define VAR_ITEM_ID 0x800E +#define VAR_LAST_TALKED 0x800F +#define VAR_CONTEST_RANK 0x8010 +#define VAR_CONTEST_CATEGORY 0x8011 #endif // GUARD_CONSTANTS_VARS_H |