diff options
Diffstat (limited to 'include/constants')
| -rw-r--r-- | include/constants/battle.h | 284 | ||||
| -rw-r--r-- | include/constants/battle_ai.h | 10 | ||||
| -rw-r--r-- | include/constants/battle_anim.h | 2 | ||||
| -rw-r--r-- | include/constants/battle_script_commands.h | 97 | ||||
| -rw-r--r-- | include/constants/battle_string_ids.h | 386 | ||||
| -rw-r--r-- | include/constants/pokemon.h | 80 | 
6 files changed, 853 insertions, 6 deletions
| diff --git a/include/constants/battle.h b/include/constants/battle.h new file mode 100644 index 000000000..f3d7a8e0e --- /dev/null +++ b/include/constants/battle.h @@ -0,0 +1,284 @@ +#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 + * what side the battler is on, either the player's side or the opponent's side. + * The second bit determines what flank the battler is on, either the left or right. + * Note that the opponent's flanks are drawn corresponding to their perspective, so + * their right mon appears on the left, and their left mon appears on the right. + * The battler ID is usually the same as the position, except in the case of link battles. + * + *   + ------------------------- + + *   |           Opponent's side | + *   |            Right    Left  | + *   |              3       1    | + *   |                           | + *   | Player's side             | + *   |  Left   Right             | + *   |   0       2               | + *   ----------------------------+ + *   |                           | + *   |                           | + *   +---------------------------+ + */ + +#define MAX_BATTLERS_COUNT  4 + +#define B_POSITION_PLAYER_LEFT        0 +#define B_POSITION_OPPONENT_LEFT      1 +#define B_POSITION_PLAYER_RIGHT       2 +#define B_POSITION_OPPONENT_RIGHT     3 + +// These macros can be used with either battler ID or positions to get the partner or the opposite mon +#define BATTLE_OPPOSITE(id) ((id) ^ 1) +#define BATTLE_PARTNER(id) ((id) ^ 2) + +#define B_SIDE_PLAYER     0 +#define B_SIDE_OPPONENT   1 + +#define B_FLANK_LEFT 0 +#define B_FLANK_RIGHT 1 + +#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 +#define BATTLE_TYPE_TRAINER         0x0008 +#define BATTLE_TYPE_FIRST_BATTLE    0x0010 +#define BATTLE_TYPE_20              0x0020 +#define BATTLE_TYPE_MULTI           0x0040 +#define BATTLE_TYPE_SAFARI          0x0080 +#define BATTLE_TYPE_BATTLE_TOWER    0x0100 +#define BATTLE_TYPE_WALLY_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_REGI            0x4000 +#define BATTLE_TYPE_TWO_OPPONENTS   0x8000 +#define BATTLE_TYPE_DOME            0x10000 +#define BATTLE_TYPE_PALACE          0x20000 +#define BATTLE_TYPE_ARENA           0x40000 +#define BATTLE_TYPE_FACTORY         0x80000 +#define BATTLE_TYPE_PIKE            0x100000 +#define BATTLE_TYPE_PYRAMID         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_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) + +// 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 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  // 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 + +// Seems like per-battler statuses. Not quite sure how to categorize these +#define STATUS3_LEECHSEED_BANK          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_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_PURSUIT_TRAP          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_x100000               0x00100000 +#define HITMARKER_x200000               0x00200000 +#define HITMARKER_x400000               0x00400000 +#define HITMARKER_x800000               0x00800000 +#define HITMARKER_GRUDGE                0x01000000 +#define HITMARKER_OBEYS                 0x02000000 +#define HITMARKER_x4000000              0x04000000 +#define HITMARKER_x8000000              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) +#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) + +// Flags describing move's result +#define MOVE_RESULT_MISSED             (1 << 0) +#define MOVE_RESULT_SUPER_EFFECTIVE    (1 << 1) +#define MOVE_RESULT_NOT_VERY_EFFECTIVE (1 << 2) +#define MOVE_RESULT_DOESNT_AFFECT_FOE  (1 << 3) +#define MOVE_RESULT_ONE_HIT_KO         (1 << 4) +#define MOVE_RESULT_FAILED             (1 << 5) +#define MOVE_RESULT_FOE_ENDURED        (1 << 6) +#define MOVE_RESULT_FOE_HUNG_ON        (1 << 7) +#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) + +// Move Effects +#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_PARALYSIS 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 + +#endif // GUARD_CONSTANTS_BATTLE_H diff --git a/include/constants/battle_ai.h b/include/constants/battle_ai.h index 9d89d75f0..7d2c70307 100644 --- a/include/constants/battle_ai.h +++ b/include/constants/battle_ai.h @@ -1,7 +1,7 @@ -#ifndef GUARD_BATTLE_AI_H -#define GUARD_BATTLE_AI_H +#ifndef GUARD_CONSTANTS_BATTLE_AI_H +#define GUARD_CONSTANTS_BATTLE_AI_H -// banks enum +// battlers  #define AI_TARGET 0  #define AI_USER 1  #define AI_TARGET_PARTNER 2 @@ -22,7 +22,7 @@  #define AI_EFFECTIVENESS_x0_25  10  #define AI_EFFECTIVENESS_x0     0 -// ai weather enum +// ai weather  #define AI_WEATHER_SUN 0  #define AI_WEATHER_RAIN 1  #define AI_WEATHER_SANDSTORM 2 @@ -49,4 +49,4 @@  #define AI_SCRIPT_SAFARI (1 << 30)  #define AI_SCRIPT_FIRST_BATTLE (1 << 31) -#endif // GUARD_BATTLE_AI_H +#endif // GUARD_CONSTANTS_BATTLE_AI_H diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index de2fbebb1..270ac55e0 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -1,7 +1,7 @@  #ifndef GUARD_CONSTANTS_BATTLE_ANIM_H  #define GUARD_CONSTANTS_BATTLE_ANIM_H -// banks enum used in scripts +// battlers  #define ANIM_ATTACKER 0  #define ANIM_TARGET 1  #define ANIM_ATK_PARTNER 2 diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h new file mode 100644 index 000000000..0390f17f4 --- /dev/null +++ b/include/constants/battle_script_commands.h @@ -0,0 +1,97 @@ +#ifndef GUARD_CONSTANTS_BATTLE_SCRIPT_COMMANDS_H +#define GUARD_CONSTANTS_BATTLE_SCRIPT_COMMANDS_H + +// Battle Scripting and BattleCommunication addresses +#define sPAINSPLIT_HP gBattleScripting +#define sBIDE_DMG gBattleScripting + 4 +#define sMULTIHIT_STRING gBattleScripting + 8 +#define sDMG_MULTIPLIER gBattleScripting + 0xE +#define sTWOTURN_STRINGID gBattleScripting + 0xF +#define sB_ANIM_ARG1 gBattleScripting + 0x10 +#define sB_ANIM_ARG2 gBattleScripting + 0x11 +#define sTRIPLE_KICK_POWER gBattleScripting + 0x12 +#define sMOVEEND_STATE gBattleScripting + 0x14 +#define sBANK_WITH_ABILITY gBattleScripting + 0x15 +#define sMULTIHIT_EFFECT gBattleScripting + 0x16 +#define sBANK gBattleScripting + 0x17 +#define sB_ANIM_TURN gBattleScripting + 0x18 +#define sB_ANIM_TARGETS_HIT gBattleScripting + 0x19 +#define sSTATCHANGER gBattleScripting + 0x1A +#define sFIELD_1B gBattleScripting + 0x1B +#define sGIVEEXP_STATE gBattleScripting + 0x1C +#define sBATTLE_STYLE gBattleScripting + 0x1D +#define sLVLBOX_STATE gBattleScripting + 0x1E +#define sLEARNMOVE_STATE gBattleScripting + 0x1F +#define sFIELD_20 gBattleScripting + 0x20 +#define sRESHOW_MAIN_STATE gBattleScripting + 0x21 +#define sRESHOW_HELPER_STATE gBattleScripting + 0x22 +#define sFIELD_23 gBattleScripting + 0x23 +#define sFIELD_24 gBattleScripting + 0x24 +#define sMULTIPLAYER_ID gBattleScripting + 0x25 + +#define cEFFECT_CHOOSER gBattleCommunication + 3 +#define cMULTISTRING_CHOOSER gBattleCommunication + 5 + +// 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_BANK_0                   7 +#define BS_ATTACKER_WITH_PARTNER    4 // for atk98_status_icon_update +#define BS_ATTACKER_SIDE            8 // for atk1E_jumpifability +#define BS_NOT_ATTACKER_SIDE        9 // for atk1E_jumpifability +#define BS_SCRIPTING                10 +#define BS_PLAYER1                  11 +#define BS_OPPONENT1                12 +#define BS_PLAYER2                  13 +#define BS_OPPONENT2                14 + +// atk 01, accuracy calc +#define NO_ACC_CALC 0xFFFE +#define NO_ACC_CALC_CHECK_LOCK_ON 0xFFFF +#define ACC_CURR_MOVE 0 + +// compare operands +#define CMP_EQUAL               0x0 +#define CMP_NOT_EQUAL           0x1 +#define CMP_GREATER_THAN        0x2 +#define CMP_LESS_THAN           0x3 +#define CMP_COMMON_BITS         0x4 +#define CMP_NO_COMMON_BITS      0x5 + +// atk76, 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_RESET_INTIMIDATE_TRACE_BITS     5 +#define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP    6 +#define VARIOUS_EMIT_YESNOBOX                   13 +#define VARIOUS_WAIT_CRY                        18 +#define VARIOUS_RETURN_OPPONENT_MON1            19 +#define VARIOUS_RETURN_OPPONENT_MON2            20 +#define VARIOUS_SET_TELEPORT_OUTCOME            25 +#define VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC     26 + +// 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 + +// atk4F, a flag used for the jumpifcantswitch command +#define ATK4F_DONT_CHECK_STATUSES   0x80 + +// statchange defines +#define STAT_CHANGE_BS_PTR                  0x1 +#define STAT_CHANGE_NOT_PROTECT_AFFECTED    0x20 +#define STAT_CHANGE_WORKED      0 +#define STAT_CHANGE_DIDNT_WORK  1 + +// atk48 +#define ATK48_STAT_NEGATIVE         0x1 +#define ATK48_STAT_BY_TWO           0x2 +#define ATK48_BIT_x4                0x4 +#define ATK48_LOWER_FAIL_CHECK      0x8 + +#endif // GUARD_CONSTANTS_BATTLE_SCRIPT_COMMANDS_H diff --git a/include/constants/battle_string_ids.h b/include/constants/battle_string_ids.h new file mode 100644 index 000000000..db9ed59bd --- /dev/null +++ b/include/constants/battle_string_ids.h @@ -0,0 +1,386 @@ +#ifndef GUARD_CONSTANTS_BATTLE_STRING_IDS_H +#define GUARD_CONSTANTS_BATTLE_STRING_IDS_H + +#define BATTLESTRINGS_COUNT     369 + +#define BATTLESTRINGS_ID_ADDER  12 // all battlestrings have its ID + 12, because first 5 are reserved + +#define STRINGID_INTROMSG   0 +#define STRINGID_INTROSENDOUT   1 +#define STRINGID_RETURNMON  2 +#define STRINGID_SWITCHINMON    3 +#define STRINGID_USEDMOVE   4 +#define STRINGID_BATTLEEND  5 + +// todo: make some of those names less vague: attacker/target vs pkmn, etc. +#define	STRINGID_TRAINER1LOSETEXT	12 +#define	STRINGID_PKMNGAINEDEXP	13 +#define	STRINGID_PKMNGREWTOLV	14 +#define	STRINGID_PKMNLEARNEDMOVE	15 +#define	STRINGID_TRYTOLEARNMOVE1	16 +#define	STRINGID_TRYTOLEARNMOVE2	17 +#define	STRINGID_TRYTOLEARNMOVE3	18 +#define	STRINGID_PKMNFORGOTMOVE	19 +#define	STRINGID_STOPLEARNINGMOVE	20 +#define	STRINGID_DIDNOTLEARNMOVE	21 +#define	STRINGID_PKMNLEARNEDMOVE2	22 +#define	STRINGID_ATTACKMISSED	23 +#define	STRINGID_PKMNPROTECTEDITSELF	24 +#define	STRINGID_STATSWONTINCREASE2	25 +#define	STRINGID_AVOIDEDDAMAGE	26 +#define	STRINGID_ITDOESNTAFFECT	27 +#define	STRINGID_ATTACKERFAINTED	28 +#define	STRINGID_TARGETFAINTED	29 +#define	STRINGID_PLAYERGOTMONEY	30 +#define	STRINGID_PLAYERWHITEOUT	31 +#define	STRINGID_PLAYERWHITEOUT2	32 +#define	STRINGID_PREVENTSESCAPE	33 +#define	STRINGID_HITXTIMES	34 +#define	STRINGID_PKMNFELLASLEEP	35 +#define	STRINGID_PKMNMADESLEEP	36 +#define	STRINGID_PKMNALREADYASLEEP	37 +#define	STRINGID_PKMNALREADYASLEEP2	38 +#define	STRINGID_PKMNWASNTAFFECTED	39 +#define	STRINGID_PKMNWASPOISONED	40 +#define	STRINGID_PKMNPOISONEDBY	41 +#define	STRINGID_PKMNHURTBYPOISON	42 +#define	STRINGID_PKMNALREADYPOISONED	43 +#define	STRINGID_PKMNBADLYPOISONED	44 +#define	STRINGID_PKMNENERGYDRAINED	45 +#define	STRINGID_PKMNWASBURNED	46 +#define	STRINGID_PKMNBURNEDBY	47 +#define	STRINGID_PKMNHURTBYBURN	48 +#define	STRINGID_PKMNWASFROZEN	49 +#define	STRINGID_PKMNFROZENBY	50 +#define	STRINGID_PKMNISFROZEN	51 +#define	STRINGID_PKMNWASDEFROSTED	52 +#define	STRINGID_PKMNWASDEFROSTED2	53 +#define	STRINGID_PKMNWASDEFROSTEDBY	54 +#define	STRINGID_PKMNWASPARALYZED	55 +#define	STRINGID_PKMNWASPARALYZEDBY	56 +#define	STRINGID_PKMNISPARALYZED	57 +#define	STRINGID_PKMNISALREADYPARALYZED	58 +#define	STRINGID_PKMNHEALEDPARALYSIS	59 +#define	STRINGID_PKMNDREAMEATEN	60 +#define	STRINGID_STATSWONTINCREASE	61 +#define	STRINGID_STATSWONTDECREASE	62 +#define	STRINGID_TEAMSTOPPEDWORKING	63 +#define	STRINGID_FOESTOPPEDWORKING	64 +#define	STRINGID_PKMNISCONFUSED	65 +#define	STRINGID_PKMNHEALEDCONFUSION	66 +#define	STRINGID_PKMNWASCONFUSED	67 +#define	STRINGID_PKMNALREADYCONFUSED	68 +#define	STRINGID_PKMNFELLINLOVE	69 +#define	STRINGID_PKMNINLOVE	70 +#define	STRINGID_PKMNIMMOBILIZEDBYLOVE	71 +#define	STRINGID_PKMNBLOWNAWAY	72 +#define	STRINGID_PKMNCHANGEDTYPE	73 +#define	STRINGID_PKMNFLINCHED	74 +#define	STRINGID_PKMNREGAINEDHEALTH	75 +#define	STRINGID_PKMNHPFULL	76 +#define	STRINGID_PKMNRAISEDSPDEF	77 +#define	STRINGID_PKMNRAISEDDEF	78 +#define	STRINGID_PKMNCOVEREDBYVEIL	79 +#define	STRINGID_PKMNUSEDSAFEGUARD	80 +#define	STRINGID_PKMNSAFEGUARDEXPIRED	81 +#define	STRINGID_PKMNWENTTOSLEEP	82 +#define	STRINGID_PKMNSLEPTHEALTHY	83 +#define	STRINGID_PKMNWHIPPEDWHIRLWIND	84 +#define	STRINGID_PKMNTOOKSUNLIGHT	85 +#define	STRINGID_PKMNLOWEREDHEAD	86 +#define	STRINGID_PKMNISGLOWING	87 +#define	STRINGID_PKMNFLEWHIGH	88 +#define	STRINGID_PKMNDUGHOLE	89 +#define	STRINGID_PKMNSQUEEZEDBYBIND	90 +#define	STRINGID_PKMNTRAPPEDINVORTEX	91 +#define	STRINGID_PKMNWRAPPEDBY	92 +#define	STRINGID_PKMNCLAMPED	93 +#define	STRINGID_PKMNHURTBY	94 +#define	STRINGID_PKMNFREEDFROM	95 +#define	STRINGID_PKMNCRASHED	96 +#define	STRINGID_PKMNSHROUDEDINMIST	97 +#define	STRINGID_PKMNPROTECTEDBYMIST	98 +#define	STRINGID_PKMNGETTINGPUMPED	99 +#define	STRINGID_PKMNHITWITHRECOIL	100 +#define	STRINGID_PKMNPROTECTEDITSELF2	101 +#define	STRINGID_PKMNBUFFETEDBYSANDSTORM	102 +#define	STRINGID_PKMNPELTEDBYHAIL	103 +#define	STRINGID_PKMNSEEDED	104 +#define	STRINGID_PKMNEVADEDATTACK	105 +#define	STRINGID_PKMNSAPPEDBYLEECHSEED	106 +#define	STRINGID_PKMNFASTASLEEP	107 +#define	STRINGID_PKMNWOKEUP	108 +#define	STRINGID_PKMNUPROARKEPTAWAKE	109 +#define	STRINGID_PKMNWOKEUPINUPROAR	110 +#define	STRINGID_PKMNCAUSEDUPROAR	111 +#define	STRINGID_PKMNMAKINGUPROAR	112 +#define	STRINGID_PKMNCALMEDDOWN	113 +#define	STRINGID_PKMNCANTSLEEPINUPROAR	114 +#define	STRINGID_PKMNSTOCKPILED	115 +#define	STRINGID_PKMNCANTSTOCKPILE	116 +#define	STRINGID_PKMNCANTSLEEPINUPROAR2	117 +#define	STRINGID_UPROARKEPTPKMNAWAKE	118 +#define	STRINGID_PKMNSTAYEDAWAKEUSING	119 +#define	STRINGID_PKMNSTORINGENERGY	120 +#define	STRINGID_PKMNUNLEASHEDENERGY	121 +#define	STRINGID_PKMNFATIGUECONFUSION	122 +#define	STRINGID_PKMNPICKEDUPITEM	123 +#define	STRINGID_PKMNUNAFFECTED	124 +#define	STRINGID_PKMNTRANSFORMEDINTO	125 +#define	STRINGID_PKMNMADESUBSTITUTE	126 +#define	STRINGID_PKMNHASSUBSTITUTE	127 +#define	STRINGID_SUBSTITUTEDAMAGED	128 +#define	STRINGID_PKMNSUBSTITUTEFADED	129 +#define	STRINGID_PKMNMUSTRECHARGE	130 +#define	STRINGID_PKMNRAGEBUILDING	131 +#define	STRINGID_PKMNMOVEWASDISABLED	132 +#define	STRINGID_PKMNMOVEISDISABLED	133 +#define	STRINGID_PKMNMOVEDISABLEDNOMORE	134 +#define	STRINGID_PKMNGOTENCORE	135 +#define	STRINGID_PKMNENCOREENDED	136 +#define	STRINGID_PKMNTOOKAIM	137 +#define	STRINGID_PKMNSKETCHEDMOVE	138 +#define	STRINGID_PKMNTRYINGTOTAKEFOE	139 +#define	STRINGID_PKMNTOOKFOE	140 +#define	STRINGID_PKMNREDUCEDPP	141 +#define	STRINGID_PKMNSTOLEITEM	142 +#define	STRINGID_TARGETCANTESCAPENOW	143 +#define	STRINGID_PKMNFELLINTONIGHTMARE	144 +#define	STRINGID_PKMNLOCKEDINNIGHTMARE	145 +#define	STRINGID_PKMNLAIDCURSE	146 +#define	STRINGID_PKMNAFFLICTEDBYCURSE	147 +#define	STRINGID_SPIKESSCATTERED	148 +#define	STRINGID_PKMNHURTBYSPIKES	149 +#define	STRINGID_PKMNIDENTIFIED	150 +#define	STRINGID_PKMNPERISHCOUNTFELL	151 +#define	STRINGID_PKMNBRACEDITSELF	152 +#define	STRINGID_PKMNENDUREDHIT	153 +#define	STRINGID_MAGNITUDESTRENGTH	154 +#define	STRINGID_PKMNCUTHPMAXEDATTACK	155 +#define	STRINGID_PKMNCOPIEDSTATCHANGES	156 +#define	STRINGID_PKMNGOTFREE	157 +#define	STRINGID_PKMNSHEDLEECHSEED	158 +#define	STRINGID_PKMNBLEWAWAYSPIKES	159 +#define	STRINGID_PKMNFLEDFROMBATTLE	160 +#define	STRINGID_PKMNFORESAWATTACK	161 +#define	STRINGID_PKMNTOOKATTACK	162 +#define	STRINGID_PKMNATTACK	163 +#define	STRINGID_PKMNCENTERATTENTION	164 +#define	STRINGID_PKMNCHARGINGPOWER	165 +#define	STRINGID_NATUREPOWERTURNEDINTO	166 +#define	STRINGID_PKMNSTATUSNORMAL	167 +#define	STRINGID_PKMNHASNOMOVESLEFT	168 +#define	STRINGID_PKMNSUBJECTEDTOTORMENT	169 +#define	STRINGID_PKMNCANTUSEMOVETORMENT	170 +#define	STRINGID_PKMNTIGHTENINGFOCUS	171 +#define	STRINGID_PKMNFELLFORTAUNT	172 +#define	STRINGID_PKMNCANTUSEMOVETAUNT	173 +#define	STRINGID_PKMNREADYTOHELP	174 +#define	STRINGID_PKMNSWITCHEDITEMS	175 +#define	STRINGID_PKMNCOPIEDFOE	176 +#define	STRINGID_PKMNMADEWISH	177 +#define	STRINGID_PKMNWISHCAMETRUE	178 +#define	STRINGID_PKMNPLANTEDROOTS	179 +#define	STRINGID_PKMNABSORBEDNUTRIENTS	180 +#define	STRINGID_PKMNANCHOREDITSELF	181 +#define	STRINGID_PKMNWASMADEDROWSY	182 +#define	STRINGID_PKMNKNOCKEDOFF	183 +#define	STRINGID_PKMNSWAPPEDABILITIES	184 +#define	STRINGID_PKMNSEALEDOPPONENTMOVE	185 +#define	STRINGID_PKMNCANTUSEMOVESEALED	186 +#define	STRINGID_PKMNWANTSGRUDGE	187 +#define	STRINGID_PKMNLOSTPPGRUDGE	188 +#define	STRINGID_PKMNSHROUDEDITSELF	189 +#define	STRINGID_PKMNMOVEBOUNCED	190 +#define	STRINGID_PKMNWAITSFORTARGET	191 +#define	STRINGID_PKMNSNATCHEDMOVE	192 +#define	STRINGID_PKMNMADEITRAIN	193 +#define	STRINGID_PKMNRAISEDSPEED	194 +#define	STRINGID_PKMNPROTECTEDBY	195 +#define	STRINGID_PKMNPREVENTSUSAGE	196 +#define	STRINGID_PKMNRESTOREDHPUSING	197 +#define	STRINGID_PKMNCHANGEDTYPEWITH	198 +#define	STRINGID_PKMNPREVENTSPARALYSISWITH	199 +#define	STRINGID_PKMNPREVENTSROMANCEWITH	200 +#define	STRINGID_PKMNPREVENTSPOISONINGWITH	201 +#define	STRINGID_PKMNPREVENTSCONFUSIONWITH	202 +#define	STRINGID_PKMNRAISEDFIREPOWERWITH	203 +#define	STRINGID_PKMNANCHORSITSELFWITH	204 +#define	STRINGID_PKMNCUTSATTACKWITH	205 +#define	STRINGID_PKMNPREVENTSSTATLOSSWITH	206 +#define	STRINGID_PKMNHURTSWITH	207 +#define	STRINGID_PKMNTRACED	208 +#define	STRINGID_STATSHARPLY	209 +#define	STRINGID_STATROSE	210 +#define	STRINGID_STATHARSHLY	211 +#define	STRINGID_STATFELL	212 +#define	STRINGID_PKMNSSTATCHANGED	213 +#define	STRINGID_PKMNSSTATCHANGED2	214 +#define	STRINGID_PKMNSSTATCHANGED3	215 +#define	STRINGID_PKMNSSTATCHANGED4	216 +#define	STRINGID_CRITICALHIT	217 +#define	STRINGID_ONEHITKO	218 +#define	STRINGID_123POOF	219 +#define	STRINGID_ANDELLIPSIS	220 +#define	STRINGID_NOTVERYEFFECTIVE	221 +#define	STRINGID_SUPEREFFECTIVE	222 +#define	STRINGID_GOTAWAYSAFELY	223 +#define	STRINGID_WILDPKMNFLED	224 +#define	STRINGID_NORUNNINGFROMTRAINERS	225 +#define	STRINGID_CANTESCAPE	226 +#define	STRINGID_DONTLEAVEBIRCH	227 +#define	STRINGID_BUTNOTHINGHAPPENED	228 +#define	STRINGID_BUTITFAILED	229 +#define	STRINGID_ITHURTCONFUSION	230 +#define	STRINGID_MIRRORMOVEFAILED	231 +#define	STRINGID_STARTEDTORAIN	232 +#define	STRINGID_DOWNPOURSTARTED	233 +#define	STRINGID_RAINCONTINUES	234 +#define	STRINGID_DOWNPOURCONTINUES	235 +#define	STRINGID_RAINSTOPPED	236 +#define	STRINGID_SANDSTORMBREWED	237 +#define	STRINGID_SANDSTORMRAGES	238 +#define	STRINGID_SANDSTORMSUBSIDED	239 +#define	STRINGID_SUNLIGHTGOTBRIGHT	240 +#define	STRINGID_SUNLIGHTSTRONG	241 +#define	STRINGID_SUNLIGHTFADED	242 +#define	STRINGID_STARTEDHAIL	243 +#define	STRINGID_HAILCONTINUES	244 +#define	STRINGID_HAILSTOPPED	245 +#define	STRINGID_FAILEDTOSPITUP	246 +#define	STRINGID_FAILEDTOSWALLOW	247 +#define	STRINGID_WINDBECAMEHEATWAVE	248 +#define	STRINGID_STATCHANGESGONE	249 +#define	STRINGID_COINSSCATTERED	250 +#define	STRINGID_TOOWEAKFORSUBSTITUTE	251 +#define	STRINGID_SHAREDPAIN	252 +#define	STRINGID_BELLCHIMED	253 +#define	STRINGID_FAINTINTHREE	254 +#define	STRINGID_NOPPLEFT	255 +#define	STRINGID_BUTNOPPLEFT	256 +#define	STRINGID_PLAYERUSEDITEM	257 +#define	STRINGID_WALLYUSEDITEM	258 +#define	STRINGID_TRAINERBLOCKEDBALL	259 +#define	STRINGID_DONTBEATHIEF	260 +#define	STRINGID_ITDODGEDBALL	261 +#define	STRINGID_YOUMISSEDPKMN	262 +#define	STRINGID_PKMNBROKEFREE	263 +#define	STRINGID_ITAPPEAREDCAUGHT	264 +#define	STRINGID_AARGHALMOSTHADIT	265 +#define	STRINGID_SHOOTSOCLOSE	266 +#define	STRINGID_GOTCHAPKMNCAUGHT	267 +#define	STRINGID_GOTCHAPKMNCAUGHT2	268 +#define	STRINGID_GIVENICKNAMECAPTURED	269 +#define	STRINGID_PKMNSENTTOPC	270 +#define	STRINGID_PKMNDATAADDEDTODEX	271 +#define	STRINGID_ITISRAINING	272 +#define	STRINGID_SANDSTORMISRAGING	273 +#define	STRINGID_CANTESCAPE2	274 +#define	STRINGID_PKMNIGNORESASLEEP	275 +#define	STRINGID_PKMNIGNOREDORDERS	276 +#define	STRINGID_PKMNBEGANTONAP	277 +#define	STRINGID_PKMNLOAFING	278 +#define	STRINGID_PKMNWONTOBEY	279 +#define	STRINGID_PKMNTURNEDAWAY	280 +#define	STRINGID_PKMNPRETENDNOTNOTICE	281 +#define	STRINGID_ENEMYABOUTTOSWITCHPKMN	282 +#define	STRINGID_CREPTCLOSER	283 +#define	STRINGID_CANTGETCLOSER	284 +#define	STRINGID_PKMNWATCHINGCAREFULLY	285 +#define	STRINGID_PKMNCURIOUSABOUTX	286 +#define	STRINGID_PKMNENTHRALLEDBYX	287 +#define	STRINGID_PKMNIGNOREDX	288 +#define	STRINGID_THREWPOKEBLOCKATPKMN	289 +#define	STRINGID_OUTOFSAFARIBALLS	290 +#define	STRINGID_PKMNSITEMCUREDPARALYSIS	291 +#define	STRINGID_PKMNSITEMCUREDPOISON	292 +#define	STRINGID_PKMNSITEMHEALEDBURN	293 +#define	STRINGID_PKMNSITEMDEFROSTEDIT	294 +#define	STRINGID_PKMNSITEMWOKEIT	295 +#define	STRINGID_PKMNSITEMSNAPPEDOUT	296 +#define	STRINGID_PKMNSITEMCUREDPROBLEM	297 +#define	STRINGID_PKMNSITEMRESTOREDHEALTH	298 +#define	STRINGID_PKMNSITEMRESTOREDPP	299 +#define	STRINGID_PKMNSITEMRESTOREDSTATUS	300 +#define	STRINGID_PKMNSITEMRESTOREDHPALITTLE	301 +#define	STRINGID_ITEMALLOWSONLYYMOVE	302 +#define	STRINGID_PKMNHUNGONWITHX	303 +#define	STRINGID_EMPTYSTRING3	304 +#define	STRINGID_PKMNSXPREVENTSBURNS	305 +#define	STRINGID_PKMNSXBLOCKSY	306 +#define	STRINGID_PKMNSXRESTOREDHPALITTLE2	307 +#define	STRINGID_PKMNSXWHIPPEDUPSANDSTORM	308 +#define	STRINGID_PKMNSXPREVENTSYLOSS	309 +#define	STRINGID_PKMNSXINFATUATEDY	310 +#define	STRINGID_PKMNSXMADEYINEFFECTIVE	311 +#define	STRINGID_PKMNSXCUREDYPROBLEM	312 +#define	STRINGID_ITSUCKEDLIQUIDOOZE	313 +#define	STRINGID_PKMNTRANSFORMED	314 +#define	STRINGID_ELECTRICITYWEAKENED	315 +#define	STRINGID_FIREWEAKENED	316 +#define	STRINGID_PKMNHIDUNDERWATER	317 +#define	STRINGID_PKMNSPRANGUP	318 +#define	STRINGID_HMMOVESCANTBEFORGOTTEN	319 +#define	STRINGID_XFOUNDONEY	320 +#define	STRINGID_PLAYERDEFEATEDTRAINER1	321 +#define	STRINGID_SOOTHINGAROMA	322 +#define	STRINGID_ITEMSCANTBEUSEDNOW	323 +#define	STRINGID_FORXCOMMAYZ	324 +#define	STRINGID_USINGXTHEYOFZN	325 +#define	STRINGID_PKMNUSEDXTOGETPUMPED	326 +#define	STRINGID_PKMNSXMADEYUSELESS	327 +#define	STRINGID_PKMNTRAPPEDBYSANDTOMB	328 +#define	STRINGID_EMPTYSTRING4	329 +#define	STRINGID_ABOOSTED	330 +#define	STRINGID_PKMNSXINTENSIFIEDSUN	331 +#define	STRINGID_PKMNMAKESGROUNDMISS	332 +#define	STRINGID_YOUTHROWABALLNOWRIGHT	333 +#define	STRINGID_PKMNSXTOOKATTACK	334 +#define	STRINGID_PKMNCHOSEXASDESTINY	335 +#define	STRINGID_PKMNLOSTFOCUS	336 +#define	STRINGID_USENEXTPKMN	337 +#define	STRINGID_PKMNFLEDUSINGITS	338 +#define	STRINGID_PKMNFLEDUSING	339 +#define	STRINGID_PKMNWASDRAGGEDOUT	340 +#define	STRINGID_PREVENTEDFROMWORKING	341 +#define	STRINGID_PKMNSITEMNORMALIZEDSTATUS	342 +#define	STRINGID_TRAINER1USEDITEM	343 +#define	STRINGID_BOXISFULL	344 +#define	STRINGID_PKMNAVOIDEDATTACK	345 +#define	STRINGID_PKMNSXMADEITINEFFECTIVE	346 +#define	STRINGID_PKMNSXPREVENTSFLINCHING	347 +#define	STRINGID_PKMNALREADYHASBURN	348 +#define	STRINGID_STATSWONTDECREASE2	349 +#define	STRINGID_PKMNSXBLOCKSY2	350 +#define	STRINGID_PKMNSXWOREOFF	351 +#define	STRINGID_PKMNRAISEDDEFALITTLE	352 +#define	STRINGID_PKMNRAISEDSPDEFALITTLE	353 +#define	STRINGID_THEWALLSHATTERED	354 +#define	STRINGID_PKMNSXPREVENTSYSZ	355 +#define	STRINGID_PKMNSXCUREDITSYPROBLEM	356 +#define	STRINGID_ATTACKERCANTESCAPE	357 +#define	STRINGID_PKMNOBTAINEDX	358 +#define	STRINGID_PKMNOBTAINEDX2	359 +#define	STRINGID_PKMNOBTAINEDXYOBTAINEDZ	360 +#define	STRINGID_BUTNOEFFECT	361 +#define	STRINGID_PKMNSXHADNOEFFECTONY	362 +#define	STRINGID_TWOENEMIESDEFEATED	363 +#define	STRINGID_TRAINER2LOSETEXT	364 +#define	STRINGID_PKMNINCAPABLEOFPOWER	365 +#define	STRINGID_GLINTAPPEARSINEYE	366 +#define	STRINGID_PKMNGETTINGINTOPOSITION	367 +#define	STRINGID_PKMNBEGANGROWLINGDEEPLY	368 +#define	STRINGID_PKMNEAGERFORMORE	369 +#define	STRINGID_DEFEATEDOPPONENTBYREFEREE	370 +#define	STRINGID_LOSTTOOPPONENTBYREFEREE	371 +#define	STRINGID_TIEDOPPONENTBYREFEREE	372 +#define	STRINGID_QUESTIONFORFEITMATCH	373 +#define	STRINGID_FORFEITEDMATCH	374 +#define	STRINGID_PKMNTRANSFERREDSOMEONESPC	375 +#define	STRINGID_PKMNTRANSFERREDLANETTESPC	376 +#define	STRINGID_PKMNBOXSOMEONESPCFULL	377 +#define	STRINGID_PKMNBOXLANETTESPCFULL	378 +#define	STRINGID_TRAINER1WINTEXT	379 +#define	STRINGID_TRAINER2WINTEXT	380 + +#endif // GUARD_CONSTANTS_BATTLE_STRING_IDS_H diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h new file mode 100644 index 000000000..78c1583b4 --- /dev/null +++ b/include/constants/pokemon.h @@ -0,0 +1,80 @@ +#ifndef GUARD_CONSTANTS_POKEMON_H +#define GUARD_CONSTANTS_POKEMON_H + +// Pokemon types +#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 + +// Pokemon egg groups +#define EGG_GROUP_NONE 0 +#define EGG_GROUP_MONSTER 1 +#define EGG_GROUP_WATER_1 2 +#define EGG_GROUP_BUG 3 +#define EGG_GROUP_FLYING 4 +#define EGG_GROUP_FIELD 5 +#define EGG_GROUP_FAIRY 6 +#define EGG_GROUP_GRASS 7 +#define EGG_GROUP_HUMAN_LIKE 8 +#define EGG_GROUP_WATER_3 9 +#define EGG_GROUP_MINERAL 10 +#define EGG_GROUP_AMORPHOUS 11 +#define EGG_GROUP_WATER_2 12 +#define EGG_GROUP_DITTO 13 +#define EGG_GROUP_DRAGON 14 +#define EGG_GROUP_UNDISCOVERED 15 + +// 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 + +// 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 + +#endif // GUARD_CONSTANTS_POKEMON_H | 
