diff options
Diffstat (limited to 'include/constants')
| -rw-r--r-- | include/constants/battle.h | 64 | ||||
| -rw-r--r-- | include/constants/battle_anim.h | 86 | ||||
| -rw-r--r-- | include/constants/battle_move_effects.h | 2 | ||||
| -rw-r--r-- | include/constants/battle_string_ids.h | 2 | ||||
| -rw-r--r-- | include/constants/items.h | 30 | ||||
| -rw-r--r-- | include/constants/pokemon.h | 3 | ||||
| -rw-r--r-- | include/constants/rgb.h | 23 | 
7 files changed, 120 insertions, 90 deletions
| diff --git a/include/constants/battle.h b/include/constants/battle.h index fa8f422c4..e6ebc85e4 100644 --- a/include/constants/battle.h +++ b/include/constants/battle.h @@ -44,38 +44,38 @@  #define BIT_FLANK       2  // Battle Type Flags -#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_20              (1 << 5) -#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_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_PIKE            (1 << 20) -#define BATTLE_TYPE_PYRAMID         (1 << 21) -#define BATTLE_TYPE_INGAME_PARTNER  (1 << 22) -#define BATTLE_TYPE_x800000         (1 << 23) -#define BATTLE_TYPE_RECORDED        (1 << 24) -#define BATTLE_TYPE_x2000000        (1 << 25) -#define BATTLE_TYPE_TRAINER_HILL    (1 << 26) -#define BATTLE_TYPE_SECRET_BASE     (1 << 27) -#define BATTLE_TYPE_GROUDON         (1 << 28) -#define BATTLE_TYPE_KYOGRE          (1 << 29) -#define BATTLE_TYPE_RAYQUAZA        (1 << 30) -#define BATTLE_TYPE_x80000000       (1 << 31) +#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_WALLY_TUTORIAL     (1 << 9) +#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_PIKE               (1 << 20) +#define BATTLE_TYPE_PYRAMID            (1 << 21) +#define BATTLE_TYPE_INGAME_PARTNER     (1 << 22) +#define BATTLE_TYPE_TOWER_LINK_MULTI   (1 << 23) +#define BATTLE_TYPE_RECORDED           (1 << 24) +#define BATTLE_TYPE_RECORDED_LINK      (1 << 25) +#define BATTLE_TYPE_TRAINER_HILL       (1 << 26) +#define BATTLE_TYPE_SECRET_BASE        (1 << 27) +#define BATTLE_TYPE_GROUDON            (1 << 28) +#define BATTLE_TYPE_KYOGRE             (1 << 29) +#define BATTLE_TYPE_RAYQUAZA           (1 << 30) +#define BATTLE_TYPE_RECORDED_IS_MASTER (1 << 31)  #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) diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index ebc422b18..5f8900bf6 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -346,51 +346,51 @@  #define BG_SOLARBEAM_PLAYER 25  #define BG_SOLARBEAM_CONTESTS 26 -// table ids for general animations -#define B_ANIM_CASTFORM_CHANGE          0x0 -#define B_ANIM_STATS_CHANGE             0x1 -#define B_ANIM_SUBSTITUTE_FADE          0x2 -#define B_ANIM_SUBSTITUTE_APPEAR        0x3 -#define B_ANIM_POKEBLOCK_THROW          0x4 -#define B_ANIM_ITEM_KNOCKOFF            0x5 -#define B_ANIM_TURN_TRAP                0x6 -#define B_ANIM_HELD_ITEM_EFFECT         0x7 -#define B_ANIM_SMOKEBALL_ESCAPE         0x8 -#define B_ANIM_FOCUS_BAND               0x9 -#define B_ANIM_RAIN_CONTINUES           0xA -#define B_ANIM_SUN_CONTINUES            0xB -#define B_ANIM_SANDSTORM_CONTINUES      0xC -#define B_ANIM_HAIL_CONTINUES           0xD -#define B_ANIM_LEECH_SEED_DRAIN         0xE -#define B_ANIM_MON_HIT                  0xF -#define B_ANIM_ITEM_STEAL               0x10 -#define B_ANIM_SNATCH_MOVE              0x11 -#define B_ANIM_FUTURE_SIGHT_HIT         0x12 -#define B_ANIM_DOOM_DESIRE_HIT          0x13 -#define B_ANIM_FOCUS_PUNCH_SETUP        0x14 -#define B_ANIM_INGRAIN_HEAL             0x15 -#define B_ANIM_WISH_HEAL                0x16 +// table ids for general animations (gBattleAnims_General) +#define B_ANIM_CASTFORM_CHANGE          0 +#define B_ANIM_STATS_CHANGE             1 +#define B_ANIM_SUBSTITUTE_FADE          2 +#define B_ANIM_SUBSTITUTE_APPEAR        3 +#define B_ANIM_POKEBLOCK_THROW          4 +#define B_ANIM_ITEM_KNOCKOFF            5 +#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_RAIN_CONTINUES           10 +#define B_ANIM_SUN_CONTINUES            11 +#define B_ANIM_SANDSTORM_CONTINUES      12 +#define B_ANIM_HAIL_CONTINUES           13 +#define B_ANIM_LEECH_SEED_DRAIN         14 +#define B_ANIM_MON_HIT                  15 +#define B_ANIM_ITEM_STEAL               16 +#define B_ANIM_SNATCH_MOVE              17 +#define B_ANIM_FUTURE_SIGHT_HIT         18 +#define B_ANIM_DOOM_DESIRE_HIT          19 +#define B_ANIM_FOCUS_PUNCH_SETUP        20 +#define B_ANIM_INGRAIN_HEAL             21 +#define B_ANIM_WISH_HEAL                22 -// special animations table -#define B_ANIM_LVL_UP                   0x0 -#define B_ANIM_SWITCH_OUT_PLAYER_MON    0x1 -#define B_ANIM_SWITCH_OUT_OPPONENT_MON  0x2 -#define B_ANIM_BALL_THROW               0x3 -#define B_ANIM_BALL_THROW_WITH_TRAINER  0x4 -#define B_ANIM_SUBSTITUTE_TO_MON        0x5 -#define B_ANIM_MON_TO_SUBSTITUTE        0x6 +// special animations table (gBattleAnims_Special) +#define B_ANIM_LVL_UP                   0 +#define B_ANIM_SWITCH_OUT_PLAYER_MON    1 +#define B_ANIM_SWITCH_OUT_OPPONENT_MON  2 +#define B_ANIM_BALL_THROW               3 +#define B_ANIM_BALL_THROW_WITH_TRAINER  4 +#define B_ANIM_SUBSTITUTE_TO_MON        5 +#define B_ANIM_MON_TO_SUBSTITUTE        6 -// status animation table -#define B_ANIM_STATUS_PSN               0x0 -#define B_ANIM_STATUS_CONFUSION         0x1 -#define B_ANIM_STATUS_BRN               0x2 -#define B_ANIM_STATUS_INFATUATION       0x3 -#define B_ANIM_STATUS_SLP               0x4 -#define B_ANIM_STATUS_PRZ               0x5 -#define B_ANIM_STATUS_FRZ               0x6 -#define B_ANIM_STATUS_CURSED            0x7 -#define B_ANIM_STATUS_NIGHTMARE         0x8 -#define B_ANIM_STATUS_WRAPPED           0x9 // does not actually exist +// status animation table (gBattleAnims_StatusConditions) +#define B_ANIM_STATUS_PSN               0 +#define B_ANIM_STATUS_CONFUSION         1 +#define B_ANIM_STATUS_BRN               2 +#define B_ANIM_STATUS_INFATUATION       3 +#define B_ANIM_STATUS_SLP               4 +#define B_ANIM_STATUS_PRZ               5 +#define B_ANIM_STATUS_FRZ               6 +#define B_ANIM_STATUS_CURSED            7 +#define B_ANIM_STATUS_NIGHTMARE         8 +#define B_ANIM_STATUS_WRAPPED           9 // does not actually exist  // Tasks with return values often assign them to gBattleAnimArgs[7].  #define ARG_RET_ID 7 diff --git a/include/constants/battle_move_effects.h b/include/constants/battle_move_effects.h index b54f01353..cc62208fa 100644 --- a/include/constants/battle_move_effects.h +++ b/include/constants/battle_move_effects.h @@ -216,4 +216,6 @@  #define EFFECT_DRAGON_DANCE 212  #define EFFECT_CAMOUFLAGE 213 +#define NUM_BATTLE_MOVE_EFFECTS 214 +  #endif  // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H diff --git a/include/constants/battle_string_ids.h b/include/constants/battle_string_ids.h index 9e0d8e0be..1886043f1 100644 --- a/include/constants/battle_string_ids.h +++ b/include/constants/battle_string_ids.h @@ -124,7 +124,7 @@  #define STRINGID_PKMNSTORINGENERGY          120  #define STRINGID_PKMNUNLEASHEDENERGY        121  #define STRINGID_PKMNFATIGUECONFUSION       122 -#define STRINGID_PKMNPICKEDUPITEM           123 +#define STRINGID_PLAYERPICKEDUPMONEY        123  #define STRINGID_PKMNUNAFFECTED             124  #define STRINGID_PKMNTRANSFORMEDINTO        125  #define STRINGID_PKMNMADESUBSTITUTE         126 diff --git a/include/constants/items.h b/include/constants/items.h index 95c6aacfe..71338da8e 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -17,7 +17,11 @@  #define ITEM_LUXURY_BALL 11  #define ITEM_PREMIER_BALL 12 -#define LAST_BALL ITEM_PREMIER_BALL +// Note: If moving ball IDs around, updating FIRST_BALL/LAST_BALL is not sufficient +//       Several places expect the ball IDs to be first and contiguous (e.g. gBattlescriptsForBallThrow and MON_DATA_POKEBALL) +//       If adding new balls, it's easiest to insert them after the last ball and increment the below IDs (and removing ITEM_034 for example) +#define FIRST_BALL ITEM_MASTER_BALL +#define LAST_BALL  ITEM_PREMIER_BALL  // Pokemon Items  #define ITEM_POTION 13 @@ -145,6 +149,8 @@  #define ITEM_FAB_MAIL 131  #define ITEM_RETRO_MAIL 132 +#define FIRST_MAIL_INDEX ITEM_ORANGE_MAIL +  // Berries  #define ITEM_CHERI_BERRY 133  #define ITEM_CHESTO_BERRY 134 @@ -189,6 +195,10 @@  #define ITEM_LANSAT_BERRY 173  #define ITEM_STARF_BERRY 174  #define ITEM_ENIGMA_BERRY 175 + +#define FIRST_BERRY_INDEX ITEM_CHERI_BERRY +#define LAST_BERRY_INDEX  ITEM_ENIGMA_BERRY +  #define ITEM_0B0 176  #define ITEM_0B1 177  #define ITEM_0B2 178 @@ -467,9 +477,6 @@  #define ITEMS_COUNT 377  #define ITEM_FIELD_ARROW ITEMS_COUNT -#define FIRST_BERRY_INDEX             ITEM_CHERI_BERRY -#define LAST_BERRY_INDEX              ITEM_ENIGMA_BERRY -  // Range of berries given out by various NPCS  #define FIRST_BERRY_MASTER_BERRY      ITEM_POMEG_BERRY  #define LAST_BERRY_MASTER_BERRY       ITEM_NOMEL_BERRY @@ -506,6 +513,21 @@  #define GOOD_ROD  1  #define SUPER_ROD 2 +// Secondary IDs for bikes +#define MACH_BIKE 0 +#define ACRO_BIKE 1 + +// Item type IDs (used to determine the exit callback) +#define ITEM_USE_MAIL        0 +#define ITEM_USE_PARTY_MENU  1 +#define ITEM_USE_FIELD       2 +#define ITEM_USE_PBLOCK_CASE 3 +#define ITEM_USE_BAG_MENU    4 // No exit callback, stays in bag menu + +// Item battle usage IDs (only checked to see if nonzero) +#define ITEM_B_USE_MEDICINE 1 +#define ITEM_B_USE_OTHER    2 +  // Check if the item is one that can be used on a Pokemon.  #define ITEM_HAS_EFFECT(item) ((item) >= ITEM_POTION && (item) <= ITEM_0B2) diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index bac914fec..d4f6e5684 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -232,6 +232,9 @@  #define STATUS_PRIMARY_POKERUS   6  #define STATUS_PRIMARY_FAINTED   7 +#define MAX_PER_STAT_IVS 31 +#define MAX_IV_MASK 31 +#define USE_RANDOM_IVS (MAX_PER_STAT_IVS + 1)  #define MAX_PER_STAT_EVS 255  #define MAX_TOTAL_EVS 510  #define EV_ITEM_RAISE_LIMIT 100 diff --git a/include/constants/rgb.h b/include/constants/rgb.h index 1896250d2..be3049d3c 100644 --- a/include/constants/rgb.h +++ b/include/constants/rgb.h @@ -5,18 +5,21 @@  #define GET_G(color) (((color) >> 5) & 0x1F)  #define GET_B(color) (((color) >> 10) & 0x1F) -#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10)) +#define RGB(r, g, b)  ((r) | ((g) << 5) | ((b) << 10))  #define RGB2(r, g, b) (((b) << 10) | ((g) << 5) | (r))  #define _RGB(r, g, b) ((((b) & 0x1F) << 10) + (((g) & 0x1F) << 5) + ((r) & 0x1F)) -#define RGB_BLACK RGB(0, 0, 0) -#define RGB_WHITE RGB(31, 31, 31) -#define RGB_RED RGB(31, 0, 0) -#define RGB_GREEN RGB(0, 31, 0) -#define RGB_BLUE RGB(0, 0, 31) -#define RGB_YELLOW RGB(31, 31, 0) -#define RGB_MAGENTA RGB(31, 0, 31) -#define RGB_CYAN RGB(0, 31, 31) -#define RGB_WHITEALPHA (RGB_WHITE | 0x8000) +#define RGB_ALPHA       (1 << 15) +#define IS_ALPHA(color) ((color) & RGB_ALPHA) + +#define RGB_BLACK      RGB(0, 0, 0) +#define RGB_WHITE      RGB(31, 31, 31) +#define RGB_RED        RGB(31, 0, 0) +#define RGB_GREEN      RGB(0, 31, 0) +#define RGB_BLUE       RGB(0, 0, 31) +#define RGB_YELLOW     RGB(31, 31, 0) +#define RGB_MAGENTA    RGB(31, 0, 31) +#define RGB_CYAN       RGB(0, 31, 31) +#define RGB_WHITEALPHA (RGB_WHITE | RGB_ALPHA)  #endif // GUARD_RGB_H | 
