import from github

This commit is contained in:
2022-05-19 17:14:13 +00:00
parent 5247c34f50
commit ab32b30591
12612 changed files with 1905035 additions and 83 deletions

View File

@ -0,0 +1,85 @@
#ifndef GUARD_CONSTANTS_ABILITIES_H
#define GUARD_CONSTANTS_ABILITIES_H
#define ABILITY_NONE 0
#define ABILITY_STENCH 1
#define ABILITY_DRIZZLE 2
#define ABILITY_SPEED_BOOST 3
#define ABILITY_BATTLE_ARMOR 4
#define ABILITY_STURDY 5
#define ABILITY_DAMP 6
#define ABILITY_LIMBER 7
#define ABILITY_SAND_VEIL 8
#define ABILITY_STATIC 9
#define ABILITY_VOLT_ABSORB 10
#define ABILITY_WATER_ABSORB 11
#define ABILITY_OBLIVIOUS 12
#define ABILITY_CLOUD_NINE 13
#define ABILITY_COMPOUND_EYES 14
#define ABILITY_INSOMNIA 15
#define ABILITY_COLOR_CHANGE 16
#define ABILITY_IMMUNITY 17
#define ABILITY_FLASH_FIRE 18
#define ABILITY_SHIELD_DUST 19
#define ABILITY_OWN_TEMPO 20
#define ABILITY_SUCTION_CUPS 21
#define ABILITY_INTIMIDATE 22
#define ABILITY_SHADOW_TAG 23
#define ABILITY_ROUGH_SKIN 24
#define ABILITY_WONDER_GUARD 25
#define ABILITY_LEVITATE 26
#define ABILITY_EFFECT_SPORE 27
#define ABILITY_SYNCHRONIZE 28
#define ABILITY_CLEAR_BODY 29
#define ABILITY_NATURAL_CURE 30
#define ABILITY_LIGHTNING_ROD 31
#define ABILITY_SERENE_GRACE 32
#define ABILITY_SWIFT_SWIM 33
#define ABILITY_CHLOROPHYLL 34
#define ABILITY_ILLUMINATE 35
#define ABILITY_TRACE 36
#define ABILITY_HUGE_POWER 37
#define ABILITY_POISON_POINT 38
#define ABILITY_INNER_FOCUS 39
#define ABILITY_MAGMA_ARMOR 40
#define ABILITY_WATER_VEIL 41
#define ABILITY_MAGNET_PULL 42
#define ABILITY_SOUNDPROOF 43
#define ABILITY_RAIN_DISH 44
#define ABILITY_SAND_STREAM 45
#define ABILITY_PRESSURE 46
#define ABILITY_THICK_FAT 47
#define ABILITY_EARLY_BIRD 48
#define ABILITY_FLAME_BODY 49
#define ABILITY_RUN_AWAY 50
#define ABILITY_KEEN_EYE 51
#define ABILITY_HYPER_CUTTER 52
#define ABILITY_PICKUP 53
#define ABILITY_TRUANT 54
#define ABILITY_HUSTLE 55
#define ABILITY_CUTE_CHARM 56
#define ABILITY_PLUS 57
#define ABILITY_MINUS 58
#define ABILITY_FORECAST 59
#define ABILITY_STICKY_HOLD 60
#define ABILITY_SHED_SKIN 61
#define ABILITY_GUTS 62
#define ABILITY_MARVEL_SCALE 63
#define ABILITY_LIQUID_OOZE 64
#define ABILITY_OVERGROW 65
#define ABILITY_BLAZE 66
#define ABILITY_TORRENT 67
#define ABILITY_SWARM 68
#define ABILITY_ROCK_HEAD 69
#define ABILITY_DROUGHT 70
#define ABILITY_ARENA_TRAP 71
#define ABILITY_VITAL_SPIRIT 72
#define ABILITY_WHITE_SMOKE 73
#define ABILITY_PURE_POWER 74
#define ABILITY_SHELL_ARMOR 75
#define ABILITY_CACOPHONY 76
#define ABILITY_AIR_LOCK 77
#define ABILITIES_COUNT 78
#endif // GUARD_CONSTANTS_ABILITIES_H

View File

@ -0,0 +1,90 @@
#ifndef GUARD_CONSTANTS_APPRENTICE_H
#define GUARD_CONSTANTS_APPRENTICE_H
#define NUM_APPRENTICES 16
#define APPRENTICE_SPECIES_COUNT 10
#define NUM_WHICH_MON_QUESTIONS MULTI_PARTY_SIZE
#define NUM_WHICH_MOVE_QUESTIONS 5
// + 2 below is 1 each for the lead mon question and the win speech question
#define MAX_APPRENTICE_QUESTIONS NUM_WHICH_MON_QUESTIONS + NUM_WHICH_MOVE_QUESTIONS + 2
#define APPRENTICE_LVL_MODE_50 (FRONTIER_LVL_50 + 1)
#define APPRENTICE_LVL_MODE_OPEN (FRONTIER_LVL_OPEN + 1)
#define APPRENTICE_FUNC_GAVE_LVLMODE 0
#define APPRENTICE_FUNC_SET_LVLMODE 1
#define APPRENTICE_FUNC_SET_ID 2
#define APPRENTICE_FUNC_SHUFFLE_SPECIES 3
#define APPRENTICE_FUNC_RANDOMIZE_QUESTIONS 4
#define APPRENTICE_FUNC_ANSWERED_QUESTION 5
#define APPRENTICE_FUNC_IS_FINAL_QUESTION 6
#define APPRENTICE_FUNC_MENU 7
#define APPRENTICE_FUNC_PRINT_MSG 8
#define APPRENTICE_FUNC_RESET 9
#define APPRENTICE_FUNC_CHECK_GONE 10
#define APPRENTICE_FUNC_GET_QUESTION 11
#define APPRENTICE_FUNC_GET_NUM_PARTY_MONS 12
#define APPRENTICE_FUNC_SET_PARTY_MON 13
#define APPRENTICE_FUNC_INIT_QUESTION_DATA 14
#define APPRENTICE_FUNC_FREE_QUESTION_DATA 15
#define APPRENTICE_FUNC_BUFFER_STRING 16
#define APPRENTICE_FUNC_SET_MOVE 17
#define APPRENTICE_FUNC_SET_LEAD_MON 18
#define APPRENTICE_FUNC_OPEN_BAG 19
#define APPRENTICE_FUNC_TRY_SET_HELD_ITEM 20
#define APPRENTICE_FUNC_SAVE 21
#define APPRENTICE_FUNC_SET_GFX_SAVED 22
#define APPRENTICE_FUNC_SET_GFX 23
#define APPRENTICE_FUNC_SHOULD_LEAVE 24
#define APPRENTICE_FUNC_SHIFT_SAVED 25
#define APPRENTICE_MSG_PLEASE_TEACH 0
#define APPRENTICE_MSG_REJECT 1
#define APPRENTICE_MSG_WHICH_LVL_MODE 2
#define APPRENTICE_MSG_THANKS_LVL_MODE 3
#define APPRENTICE_MSG_WHICH_MON_FIRST 4
#define APPRENTICE_MSG_THANKS_MON_FIRST 5
#define APPRENTICE_MSG_WHICH_MON 6
#define APPRENTICE_MSG_THANKS_MON 7
#define APPRENTICE_MSG_WHICH_MOVE 8
#define APPRENTICE_MSG_THANKS_MOVE 9
#define APPRENTICE_MSG_WHAT_HELD_ITEM 10
#define APPRENTICE_MSG_PICK_WIN_SPEECH 11
#define APPRENTICE_MSG_THANKS_HELD_ITEM 12
#define APPRENTICE_MSG_HOLD_NOTHING 13
#define APPRENTICE_MSG_THANKS_NO_HELD_ITEM 14
#define APPRENTICE_MSG_THANKS_WIN_SPEECH 15
#define APPRENTICE_MSG_ITEM_ALREADY_SUGGESTED 16
#define APPRENTICE_QUESTION_WHICH_FIRST 1
#define APPRENTICE_QUESTION_WHICH_MON 2
#define APPRENTICE_QUESTION_WHICH_MOVE 3
#define APPRENTICE_QUESTION_WHAT_ITEM 4
#define APPRENTICE_QUESTION_WIN_SPEECH 5
// Would be redundant with the above set if they used the same values
#define QUESTION_ID_WIN_SPEECH 0
#define QUESTION_ID_WHAT_ITEM 1
#define QUESTION_ID_WHICH_MOVE 2
#define QUESTION_ID_WHICH_FIRST 3
#define APPRENTICE_ASK_WHICH_LEVEL 0
#define APPRENTICE_ASK_3SPECIES 1
#define APPRENTICE_ASK_2SPECIES 2
#define APPRENTICE_ASK_MOVES 3
#define APPRENTICE_ASK_GIVE 4
#define APPRENTICE_ASK_YES_NO 6
#define APPRENTICE_BUFF_SPECIES1 0
#define APPRENTICE_BUFF_SPECIES2 1
#define APPRENTICE_BUFF_SPECIES3 2
#define APPRENTICE_BUFF_MOVE1 3
#define APPRENTICE_BUFF_MOVE2 4
#define APPRENTICE_BUFF_ITEM 5
#define APPRENTICE_BUFF_NAME 6
#define APPRENTICE_BUFF_WIN_SPEECH 7
#define APPRENTICE_BUFF_LEVEL 8
#define APPRENTICE_BUFF_LEAD_MON_SPECIES 9
#endif // GUARD_CONSTANTS_APPRENTICE_H

364
include/constants/battle.h Normal file
View File

@ -0,0 +1,364 @@
#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 (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)
// Battle Outcome defines
#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 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 (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 (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 (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_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)
#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 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_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
#define BATTLE_TERRAIN_LONG_GRASS 1
#define BATTLE_TERRAIN_SAND 2
#define BATTLE_TERRAIN_UNDERWATER 3
#define BATTLE_TERRAIN_WATER 4
#define BATTLE_TERRAIN_POND 5
#define BATTLE_TERRAIN_MOUNTAIN 6
#define BATTLE_TERRAIN_CAVE 7
#define BATTLE_TERRAIN_BUILDING 8
#define BATTLE_TERRAIN_PLAIN 9
#define 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)
#define FLEE_ITEM 1
#define FLEE_ABILITY 2
#define B_WIN_TYPE_NORMAL 0
#define B_WIN_TYPE_ARENA 1
// Window Ids for gStandardBattleWindowTemplates / gBattleArenaWindowTemplates
#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_DUMMY 8
#define B_WIN_PP_REMAINING 9
#define B_WIN_MOVE_TYPE 10
#define B_WIN_SWITCH_PROMPT 11 // "Switch which?"
#define B_WIN_YESNO 12
#define B_WIN_LEVEL_UP_BOX 13
#define B_WIN_LEVEL_UP_BANNER 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
// The following are duplicate id values for windows that Battle Arena uses differently.
#define ARENA_WIN_PLAYER_NAME 15
#define ARENA_WIN_VS 16
#define ARENA_WIN_OPPONENT_NAME 17
#define ARENA_WIN_MIND 18
#define ARENA_WIN_SKILL 19
#define ARENA_WIN_BODY 20
#define ARENA_WIN_JUDGEMENT_TITLE 21
#define ARENA_WIN_JUDGEMENT_TEXT 22
// Flag for BattlePutTextOnWindow. Never set
#define B_WIN_COPYTOVRAM (1 << 7)
// Indicator for the party summary bar to display an empty slot.
#define HP_EMPTY_SLOT 0xFFFF
#endif // GUARD_CONSTANTS_BATTLE_H

View File

@ -0,0 +1,52 @@
#ifndef GUARD_CONSTANTS_BATTLE_AI_H
#define GUARD_CONSTANTS_BATTLE_AI_H
// battlers
#define AI_TARGET 0
#define AI_USER 1
#define AI_TARGET_PARTNER 2
#define AI_USER_PARTNER 3
// get_type command
#define AI_TYPE1_TARGET 0
#define AI_TYPE1_USER 1
#define AI_TYPE2_TARGET 2
#define AI_TYPE2_USER 3
#define AI_TYPE_MOVE 4
// type effectiveness
#define AI_EFFECTIVENESS_x4 160
#define AI_EFFECTIVENESS_x2 80
#define AI_EFFECTIVENESS_x1 40
#define AI_EFFECTIVENESS_x0_5 20
#define AI_EFFECTIVENESS_x0_25 10
#define AI_EFFECTIVENESS_x0 0
// ai weather
#define AI_WEATHER_SUN 0
#define AI_WEATHER_RAIN 1
#define AI_WEATHER_SANDSTORM 2
#define AI_WEATHER_HAIL 3
// get_how_powerful_move_is
#define MOVE_POWER_OTHER 0
#define MOVE_NOT_MOST_POWERFUL 1
#define MOVE_MOST_POWERFUL 2
// script's table id to bit
#define AI_SCRIPT_CHECK_BAD_MOVE (1 << 0)
#define AI_SCRIPT_TRY_TO_FAINT (1 << 1)
#define AI_SCRIPT_CHECK_VIABILITY (1 << 2)
#define AI_SCRIPT_SETUP_FIRST_TURN (1 << 3)
#define AI_SCRIPT_RISKY (1 << 4)
#define AI_SCRIPT_PREFER_POWER_EXTREMES (1 << 5)
#define AI_SCRIPT_PREFER_BATON_PASS (1 << 6)
#define AI_SCRIPT_DOUBLE_BATTLE (1 << 7)
#define AI_SCRIPT_HP_AWARE (1 << 8)
#define AI_SCRIPT_TRY_SUNNY_DAY_START (1 << 9)
// 10 - 28 are not used
#define AI_SCRIPT_ROAMING (1 << 29)
#define AI_SCRIPT_SAFARI (1 << 30)
#define AI_SCRIPT_FIRST_BATTLE (1 << 31)
#endif // GUARD_CONSTANTS_BATTLE_AI_H

View File

@ -0,0 +1,416 @@
#ifndef GUARD_CONSTANTS_BATTLE_ANIM_H
#define GUARD_CONSTANTS_BATTLE_ANIM_H
// Sprites start at 10000 and thus must be subtracted of 10000 to account for the true index.
#define GET_TRUE_SPRITE_INDEX(i) ((i - ANIM_SPRITES_START))
// Particle ids.
#define ANIM_SPRITES_START 10000
#define ANIM_TAG_BONE (ANIM_SPRITES_START + 0)
#define ANIM_TAG_SPARK (ANIM_SPRITES_START + 1)
#define ANIM_TAG_PENCIL (ANIM_SPRITES_START + 2)
#define ANIM_TAG_AIR_WAVE (ANIM_SPRITES_START + 3)
#define ANIM_TAG_ORB (ANIM_SPRITES_START + 4)
#define ANIM_TAG_SWORD (ANIM_SPRITES_START + 5)
#define ANIM_TAG_SEED (ANIM_SPRITES_START + 6)
#define ANIM_TAG_EXPLOSION_6 (ANIM_SPRITES_START + 7)
#define ANIM_TAG_PINK_ORB (ANIM_SPRITES_START + 8) // unused
#define ANIM_TAG_GUST (ANIM_SPRITES_START + 9)
#define ANIM_TAG_ICE_CUBE (ANIM_SPRITES_START + 10)
#define ANIM_TAG_SPARK_2 (ANIM_SPRITES_START + 11)
#define ANIM_TAG_ORANGE (ANIM_SPRITES_START + 12) // unused
#define ANIM_TAG_YELLOW_BALL (ANIM_SPRITES_START + 13)
#define ANIM_TAG_LOCK_ON (ANIM_SPRITES_START + 14)
#define ANIM_TAG_TIED_BAG (ANIM_SPRITES_START + 15)
#define ANIM_TAG_BLACK_SMOKE (ANIM_SPRITES_START + 16)
#define ANIM_TAG_BLACK_BALL (ANIM_SPRITES_START + 17)
#define ANIM_TAG_CONVERSION (ANIM_SPRITES_START + 18)
#define ANIM_TAG_GLASS (ANIM_SPRITES_START + 19) // unused
#define ANIM_TAG_HORN_HIT (ANIM_SPRITES_START + 20)
#define ANIM_TAG_HIT (ANIM_SPRITES_START + 21)
#define ANIM_TAG_HIT_2 (ANIM_SPRITES_START + 22)
#define ANIM_TAG_BLUE_SHARDS (ANIM_SPRITES_START + 23) // unused
#define ANIM_TAG_CLOSING_EYE (ANIM_SPRITES_START + 24) // unused
#define ANIM_TAG_WAVING_HAND (ANIM_SPRITES_START + 25) // unused
#define ANIM_TAG_HIT_DUPLICATE (ANIM_SPRITES_START + 26) // unused
#define ANIM_TAG_LEER (ANIM_SPRITES_START + 27)
#define ANIM_TAG_BLUE_BURST (ANIM_SPRITES_START + 28) // unused
#define ANIM_TAG_SMALL_EMBER (ANIM_SPRITES_START + 29)
#define ANIM_TAG_GRAY_SMOKE (ANIM_SPRITES_START + 30)
#define ANIM_TAG_BLUE_STAR (ANIM_SPRITES_START + 31)
#define ANIM_TAG_BUBBLE_BURST (ANIM_SPRITES_START + 32)
#define ANIM_TAG_FIRE (ANIM_SPRITES_START + 33)
#define ANIM_TAG_SPINNING_FIRE (ANIM_SPRITES_START + 34) // unused
#define ANIM_TAG_FIRE_PLUME (ANIM_SPRITES_START + 35)
#define ANIM_TAG_LIGHTNING_2 (ANIM_SPRITES_START + 36) // unused
#define ANIM_TAG_LIGHTNING (ANIM_SPRITES_START + 37)
#define ANIM_TAG_CLAW_SLASH_2 (ANIM_SPRITES_START + 38) // unused
#define ANIM_TAG_CLAW_SLASH (ANIM_SPRITES_START + 39)
#define ANIM_TAG_SCRATCH_3 (ANIM_SPRITES_START + 40) // unused
#define ANIM_TAG_SCRATCH_2 (ANIM_SPRITES_START + 41) // unused
#define ANIM_TAG_BUBBLE_BURST_2 (ANIM_SPRITES_START + 42) // unused
#define ANIM_TAG_ICE_CHUNK (ANIM_SPRITES_START + 43)
#define ANIM_TAG_GLASS_2 (ANIM_SPRITES_START + 44) // unused
#define ANIM_TAG_PINK_HEART_2 (ANIM_SPRITES_START + 45) // unused
#define ANIM_TAG_SAP_DRIP (ANIM_SPRITES_START + 46) // unused
#define ANIM_TAG_SAP_DRIP_2 (ANIM_SPRITES_START + 47) // unused
#define ANIM_TAG_SPARKLE_1 (ANIM_SPRITES_START + 48)
#define ANIM_TAG_SPARKLE_2 (ANIM_SPRITES_START + 49)
#define ANIM_TAG_HUMANOID_FOOT (ANIM_SPRITES_START + 50)
#define ANIM_TAG_MONSTER_FOOT (ANIM_SPRITES_START + 51)
#define ANIM_TAG_HUMANOID_HAND (ANIM_SPRITES_START + 52) // unused
#define ANIM_TAG_NOISE_LINE (ANIM_SPRITES_START + 53)
#define ANIM_TAG_YELLOW_UNK (ANIM_SPRITES_START + 54) // unused
#define ANIM_TAG_RED_FIST (ANIM_SPRITES_START + 55) // unused
#define ANIM_TAG_SLAM_HIT (ANIM_SPRITES_START + 56)
#define ANIM_TAG_RING (ANIM_SPRITES_START + 57) // unused
#define ANIM_TAG_ROCKS (ANIM_SPRITES_START + 58)
#define ANIM_TAG_Z (ANIM_SPRITES_START + 59) // unused
#define ANIM_TAG_YELLOW_UNK_2 (ANIM_SPRITES_START + 60) // unused
#define ANIM_TAG_AIR_SLASH (ANIM_SPRITES_START + 61) // unused
#define ANIM_TAG_SPINNING_GREEN_ORBS (ANIM_SPRITES_START + 62) // unused
#define ANIM_TAG_LEAF (ANIM_SPRITES_START + 63)
#define ANIM_TAG_FINGER (ANIM_SPRITES_START + 64)
#define ANIM_TAG_POISON_POWDER (ANIM_SPRITES_START + 65)
#define ANIM_TAG_BROWN_TRIANGLE (ANIM_SPRITES_START + 66) // unused
#define ANIM_TAG_SLEEP_POWDER (ANIM_SPRITES_START + 67)
#define ANIM_TAG_STUN_SPORE (ANIM_SPRITES_START + 68)
#define ANIM_TAG_POWDER (ANIM_SPRITES_START + 69) // unused
#define ANIM_TAG_SPARKLE_3 (ANIM_SPRITES_START + 70)
#define ANIM_TAG_SPARKLE_4 (ANIM_SPRITES_START + 71)
#define ANIM_TAG_MUSIC_NOTES (ANIM_SPRITES_START + 72)
#define ANIM_TAG_DUCK (ANIM_SPRITES_START + 73)
#define ANIM_TAG_MUD_SAND (ANIM_SPRITES_START + 74)
#define ANIM_TAG_ALERT (ANIM_SPRITES_START + 75)
#define ANIM_TAG_BLUE_FLAMES (ANIM_SPRITES_START + 76) // unused
#define ANIM_TAG_BLUE_FLAMES_2 (ANIM_SPRITES_START + 77) // unused
#define ANIM_TAG_SHOCK_4 (ANIM_SPRITES_START + 78) // unused
#define ANIM_TAG_SHOCK (ANIM_SPRITES_START + 79)
#define ANIM_TAG_BELL_2 (ANIM_SPRITES_START + 80) // unused
#define ANIM_TAG_PINK_GLOVE (ANIM_SPRITES_START + 81) // unused
#define ANIM_TAG_BLUE_LINES (ANIM_SPRITES_START + 82) // unused
#define ANIM_TAG_IMPACT_3 (ANIM_SPRITES_START + 83) // unused
#define ANIM_TAG_IMPACT_2 (ANIM_SPRITES_START + 84) // unused
#define ANIM_TAG_RETICLE (ANIM_SPRITES_START + 85) // unused
#define ANIM_TAG_BREATH (ANIM_SPRITES_START + 86)
#define ANIM_TAG_ANGER (ANIM_SPRITES_START + 87)
#define ANIM_TAG_SNOWBALL (ANIM_SPRITES_START + 88) // unused
#define ANIM_TAG_VINE (ANIM_SPRITES_START + 89) // unused
#define ANIM_TAG_SWORD_2 (ANIM_SPRITES_START + 90) // unused
#define ANIM_TAG_CLAPPING (ANIM_SPRITES_START + 91) // unused
#define ANIM_TAG_RED_TUBE (ANIM_SPRITES_START + 92) // unused
#define ANIM_TAG_AMNESIA (ANIM_SPRITES_START + 93)
#define ANIM_TAG_STRING_2 (ANIM_SPRITES_START + 94) // unused
#define ANIM_TAG_PENCIL_2 (ANIM_SPRITES_START + 95) // unused
#define ANIM_TAG_PETAL (ANIM_SPRITES_START + 96) // unused
#define ANIM_TAG_BENT_SPOON (ANIM_SPRITES_START + 97)
#define ANIM_TAG_WEB (ANIM_SPRITES_START + 98) // unused
#define ANIM_TAG_MILK_BOTTLE (ANIM_SPRITES_START + 99)
#define ANIM_TAG_COIN (ANIM_SPRITES_START + 100)
#define ANIM_TAG_CRACKED_EGG (ANIM_SPRITES_START + 101) // unused
#define ANIM_TAG_HATCHED_EGG (ANIM_SPRITES_START + 102) // unused
#define ANIM_TAG_FRESH_EGG (ANIM_SPRITES_START + 103) // unused
#define ANIM_TAG_FANGS (ANIM_SPRITES_START + 104) // unused
#define ANIM_TAG_EXPLOSION_2 (ANIM_SPRITES_START + 105) // unused
#define ANIM_TAG_EXPLOSION_3 (ANIM_SPRITES_START + 106) // unused
#define ANIM_TAG_WATER_DROPLET (ANIM_SPRITES_START + 107) // unused
#define ANIM_TAG_WATER_DROPLET_2 (ANIM_SPRITES_START + 108) // unused
#define ANIM_TAG_SEED_2 (ANIM_SPRITES_START + 109) // unused
#define ANIM_TAG_SPROUT (ANIM_SPRITES_START + 110) // unused
#define ANIM_TAG_RED_WAND (ANIM_SPRITES_START + 111) // unused
#define ANIM_TAG_PURPLE_GREEN_UNK (ANIM_SPRITES_START + 112) // unused
#define ANIM_TAG_WATER_COLUMN (ANIM_SPRITES_START + 113) // unused
#define ANIM_TAG_MUD_UNK (ANIM_SPRITES_START + 114) // unused
#define ANIM_TAG_RAIN_DROPS (ANIM_SPRITES_START + 115)
#define ANIM_TAG_FURY_SWIPES (ANIM_SPRITES_START + 116) // unused
#define ANIM_TAG_VINE_2 (ANIM_SPRITES_START + 117) // unused
#define ANIM_TAG_TEETH (ANIM_SPRITES_START + 118) // unused
#define ANIM_TAG_BONE_2 (ANIM_SPRITES_START + 119) // unused
#define ANIM_TAG_WHITE_BAG (ANIM_SPRITES_START + 120) // unused
#define ANIM_TAG_UNKNOWN (ANIM_SPRITES_START + 121) // unused
#define ANIM_TAG_PURPLE_CORAL (ANIM_SPRITES_START + 122) // unused
#define ANIM_TAG_PURPLE_DROPLET (ANIM_SPRITES_START + 123) // unused
#define ANIM_TAG_SHOCK_2 (ANIM_SPRITES_START + 124) // unused
#define ANIM_TAG_CLOSING_EYE_2 (ANIM_SPRITES_START + 125) // unused
#define ANIM_TAG_METAL_BALL (ANIM_SPRITES_START + 126) // unused
#define ANIM_TAG_MONSTER_DOLL (ANIM_SPRITES_START + 127) // unused
#define ANIM_TAG_WHIRLWIND (ANIM_SPRITES_START + 128) // unused
#define ANIM_TAG_WHIRLWIND_2 (ANIM_SPRITES_START + 129) // unused
#define ANIM_TAG_EXPLOSION_4 (ANIM_SPRITES_START + 130) // unused
#define ANIM_TAG_EXPLOSION_5 (ANIM_SPRITES_START + 131) // unused
#define ANIM_TAG_TONGUE (ANIM_SPRITES_START + 132) // unused
#define ANIM_TAG_SMOKE (ANIM_SPRITES_START + 133) // unused
#define ANIM_TAG_SMOKE_2 (ANIM_SPRITES_START + 134) // unused
#define ANIM_TAG_IMPACT (ANIM_SPRITES_START + 135)
#define ANIM_TAG_CIRCLE_IMPACT (ANIM_SPRITES_START + 136)
#define ANIM_TAG_SCRATCH (ANIM_SPRITES_START + 137)
#define ANIM_TAG_CUT (ANIM_SPRITES_START + 138)
#define ANIM_TAG_SHARP_TEETH (ANIM_SPRITES_START + 139)
#define ANIM_TAG_RAINBOW_RINGS (ANIM_SPRITES_START + 140)
#define ANIM_TAG_ICE_CRYSTALS (ANIM_SPRITES_START + 141)
#define ANIM_TAG_ICE_SPIKES (ANIM_SPRITES_START + 142)
#define ANIM_TAG_HANDS_AND_FEET (ANIM_SPRITES_START + 143)
#define ANIM_TAG_MIST_CLOUD (ANIM_SPRITES_START + 144)
#define ANIM_TAG_CLAMP (ANIM_SPRITES_START + 145)
#define ANIM_TAG_BUBBLE (ANIM_SPRITES_START + 146)
#define ANIM_TAG_ORBS (ANIM_SPRITES_START + 147)
#define ANIM_TAG_WATER_IMPACT (ANIM_SPRITES_START + 148)
#define ANIM_TAG_WATER_ORB (ANIM_SPRITES_START + 149)
#define ANIM_TAG_POISON_BUBBLE (ANIM_SPRITES_START + 150)
#define ANIM_TAG_TOXIC_BUBBLE (ANIM_SPRITES_START + 151)
#define ANIM_TAG_SPIKES (ANIM_SPRITES_START + 152)
#define ANIM_TAG_HORN_HIT_2 (ANIM_SPRITES_START + 153)
#define ANIM_TAG_AIR_WAVE_2 (ANIM_SPRITES_START + 154)
#define ANIM_TAG_SMALL_BUBBLES (ANIM_SPRITES_START + 155)
#define ANIM_TAG_ROUND_SHADOW (ANIM_SPRITES_START + 156)
#define ANIM_TAG_SUNLIGHT (ANIM_SPRITES_START + 157)
#define ANIM_TAG_SPORE (ANIM_SPRITES_START + 158)
#define ANIM_TAG_FLOWER (ANIM_SPRITES_START + 159)
#define ANIM_TAG_RAZOR_LEAF (ANIM_SPRITES_START + 160)
#define ANIM_TAG_NEEDLE (ANIM_SPRITES_START + 161)
#define ANIM_TAG_WHIRLWIND_LINES (ANIM_SPRITES_START + 162)
#define ANIM_TAG_GOLD_RING (ANIM_SPRITES_START + 163)
#define ANIM_TAG_PURPLE_RING (ANIM_SPRITES_START + 164)
#define ANIM_TAG_BLUE_RING (ANIM_SPRITES_START + 165)
#define ANIM_TAG_GREEN_LIGHT_WALL (ANIM_SPRITES_START + 166)
#define ANIM_TAG_BLUE_LIGHT_WALL (ANIM_SPRITES_START + 167)
#define ANIM_TAG_RED_LIGHT_WALL (ANIM_SPRITES_START + 168)
#define ANIM_TAG_GRAY_LIGHT_WALL (ANIM_SPRITES_START + 169)
#define ANIM_TAG_ORANGE_LIGHT_WALL (ANIM_SPRITES_START + 170)
#define ANIM_TAG_BLACK_BALL_2 (ANIM_SPRITES_START + 171)
#define ANIM_TAG_PURPLE_GAS_CLOUD (ANIM_SPRITES_START + 172)
#define ANIM_TAG_SPARK_H (ANIM_SPRITES_START + 173)
#define ANIM_TAG_YELLOW_STAR (ANIM_SPRITES_START + 174)
#define ANIM_TAG_LARGE_FRESH_EGG (ANIM_SPRITES_START + 175)
#define ANIM_TAG_SHADOW_BALL (ANIM_SPRITES_START + 176)
#define ANIM_TAG_LICK (ANIM_SPRITES_START + 177)
#define ANIM_TAG_VOID_LINES (ANIM_SPRITES_START + 178)
#define ANIM_TAG_STRING (ANIM_SPRITES_START + 179)
#define ANIM_TAG_WEB_THREAD (ANIM_SPRITES_START + 180)
#define ANIM_TAG_SPIDER_WEB (ANIM_SPRITES_START + 181)
#define ANIM_TAG_LIGHTBULB (ANIM_SPRITES_START + 182) // unused
#define ANIM_TAG_SLASH (ANIM_SPRITES_START + 183)
#define ANIM_TAG_FOCUS_ENERGY (ANIM_SPRITES_START + 184)
#define ANIM_TAG_SPHERE_TO_CUBE (ANIM_SPRITES_START + 185)
#define ANIM_TAG_TENDRILS (ANIM_SPRITES_START + 186)
#define ANIM_TAG_EYE (ANIM_SPRITES_START + 187)
#define ANIM_TAG_WHITE_SHADOW (ANIM_SPRITES_START + 188)
#define ANIM_TAG_TEAL_ALERT (ANIM_SPRITES_START + 189)
#define ANIM_TAG_OPENING_EYE (ANIM_SPRITES_START + 190)
#define ANIM_TAG_ROUND_WHITE_HALO (ANIM_SPRITES_START + 191)
#define ANIM_TAG_FANG_ATTACK (ANIM_SPRITES_START + 192)
#define ANIM_TAG_PURPLE_HAND_OUTLINE (ANIM_SPRITES_START + 193)
#define ANIM_TAG_MOON (ANIM_SPRITES_START + 194)
#define ANIM_TAG_GREEN_SPARKLE (ANIM_SPRITES_START + 195)
#define ANIM_TAG_SPIRAL (ANIM_SPRITES_START + 196)
#define ANIM_TAG_SNORE_Z (ANIM_SPRITES_START + 197)
#define ANIM_TAG_EXPLOSION (ANIM_SPRITES_START + 198)
#define ANIM_TAG_NAIL (ANIM_SPRITES_START + 199)
#define ANIM_TAG_GHOSTLY_SPIRIT (ANIM_SPRITES_START + 200)
#define ANIM_TAG_WARM_ROCK (ANIM_SPRITES_START + 201)
#define ANIM_TAG_BREAKING_EGG (ANIM_SPRITES_START + 202)
#define ANIM_TAG_THIN_RING (ANIM_SPRITES_START + 203)
#define ANIM_TAG_PUNCH_IMPACT (ANIM_SPRITES_START + 204) // unused
#define ANIM_TAG_BELL (ANIM_SPRITES_START + 205)
#define ANIM_TAG_MUSIC_NOTES_2 (ANIM_SPRITES_START + 206)
#define ANIM_TAG_SPEED_DUST (ANIM_SPRITES_START + 207)
#define ANIM_TAG_TORN_METAL (ANIM_SPRITES_START + 208)
#define ANIM_TAG_THOUGHT_BUBBLE (ANIM_SPRITES_START + 209)
#define ANIM_TAG_MAGENTA_HEART (ANIM_SPRITES_START + 210)
#define ANIM_TAG_ELECTRIC_ORBS (ANIM_SPRITES_START + 211)
#define ANIM_TAG_CIRCLE_OF_LIGHT (ANIM_SPRITES_START + 212)
#define ANIM_TAG_ELECTRICITY (ANIM_SPRITES_START + 213)
#define ANIM_TAG_FINGER_2 (ANIM_SPRITES_START + 214)
#define ANIM_TAG_MOVEMENT_WAVES (ANIM_SPRITES_START + 215)
#define ANIM_TAG_RED_HEART (ANIM_SPRITES_START + 216)
#define ANIM_TAG_RED_ORB (ANIM_SPRITES_START + 217)
#define ANIM_TAG_EYE_SPARKLE (ANIM_SPRITES_START + 218)
#define ANIM_TAG_PINK_HEART (ANIM_SPRITES_START + 219)
#define ANIM_TAG_ANGEL (ANIM_SPRITES_START + 220)
#define ANIM_TAG_DEVIL (ANIM_SPRITES_START + 221)
#define ANIM_TAG_SWIPE (ANIM_SPRITES_START + 222)
#define ANIM_TAG_ROOTS (ANIM_SPRITES_START + 223)
#define ANIM_TAG_ITEM_BAG (ANIM_SPRITES_START + 224)
#define ANIM_TAG_JAGGED_MUSIC_NOTE (ANIM_SPRITES_START + 225)
#define ANIM_TAG_POKEBALL (ANIM_SPRITES_START + 226)
#define ANIM_TAG_SPOTLIGHT (ANIM_SPRITES_START + 227)
#define ANIM_TAG_LETTER_Z (ANIM_SPRITES_START + 228)
#define ANIM_TAG_RAPID_SPIN (ANIM_SPRITES_START + 229)
#define ANIM_TAG_TRI_ATTACK_TRIANGLE (ANIM_SPRITES_START + 230)
#define ANIM_TAG_WISP_ORB (ANIM_SPRITES_START + 231)
#define ANIM_TAG_WISP_FIRE (ANIM_SPRITES_START + 232)
#define ANIM_TAG_GOLD_STARS (ANIM_SPRITES_START + 233)
#define ANIM_TAG_ECLIPSING_ORB (ANIM_SPRITES_START + 234)
#define ANIM_TAG_GRAY_ORB (ANIM_SPRITES_START + 235)
#define ANIM_TAG_BLUE_ORB (ANIM_SPRITES_START + 236)
#define ANIM_TAG_RED_ORB_2 (ANIM_SPRITES_START + 237)
#define ANIM_TAG_PINK_PETAL (ANIM_SPRITES_START + 238)
#define ANIM_TAG_PAIN_SPLIT (ANIM_SPRITES_START + 239)
#define ANIM_TAG_CONFETTI (ANIM_SPRITES_START + 240)
#define ANIM_TAG_GREEN_STAR (ANIM_SPRITES_START + 241)
#define ANIM_TAG_PINK_CLOUD (ANIM_SPRITES_START + 242)
#define ANIM_TAG_SWEAT_DROP (ANIM_SPRITES_START + 243)
#define ANIM_TAG_GUARD_RING (ANIM_SPRITES_START + 244)
#define ANIM_TAG_PURPLE_SCRATCH (ANIM_SPRITES_START + 245)
#define ANIM_TAG_PURPLE_SWIPE (ANIM_SPRITES_START + 246)
#define ANIM_TAG_TAG_HAND (ANIM_SPRITES_START + 247)
#define ANIM_TAG_SMALL_RED_EYE (ANIM_SPRITES_START + 248)
#define ANIM_TAG_HOLLOW_ORB (ANIM_SPRITES_START + 249)
#define ANIM_TAG_X_SIGN (ANIM_SPRITES_START + 250)
#define ANIM_TAG_BLUEGREEN_ORB (ANIM_SPRITES_START + 251)
#define ANIM_TAG_PAW_PRINT (ANIM_SPRITES_START + 252)
#define ANIM_TAG_PURPLE_FLAME (ANIM_SPRITES_START + 253)
#define ANIM_TAG_RED_BALL (ANIM_SPRITES_START + 254)
#define ANIM_TAG_SMELLINGSALT_EFFECT (ANIM_SPRITES_START + 255)
#define ANIM_TAG_METEOR (ANIM_SPRITES_START + 256)
#define ANIM_TAG_FLAT_ROCK (ANIM_SPRITES_START + 257)
#define ANIM_TAG_MAGNIFYING_GLASS (ANIM_SPRITES_START + 258)
#define ANIM_TAG_BROWN_ORB (ANIM_SPRITES_START + 259)
#define ANIM_TAG_METAL_SOUND_WAVES (ANIM_SPRITES_START + 260)
#define ANIM_TAG_FLYING_DIRT (ANIM_SPRITES_START + 261)
#define ANIM_TAG_ICICLE_SPEAR (ANIM_SPRITES_START + 262)
#define ANIM_TAG_HAIL (ANIM_SPRITES_START + 263)
#define ANIM_TAG_GLOWY_RED_ORB (ANIM_SPRITES_START + 264)
#define ANIM_TAG_GLOWY_GREEN_ORB (ANIM_SPRITES_START + 265)
#define ANIM_TAG_GREEN_SPIKE (ANIM_SPRITES_START + 266)
#define ANIM_TAG_WHITE_CIRCLE_OF_LIGHT (ANIM_SPRITES_START + 267)
#define ANIM_TAG_GLOWY_BLUE_ORB (ANIM_SPRITES_START + 268)
#define ANIM_TAG_POKEBLOCK (ANIM_SPRITES_START + 269)
#define ANIM_TAG_WHITE_FEATHER (ANIM_SPRITES_START + 270)
#define ANIM_TAG_SPARKLE_6 (ANIM_SPRITES_START + 271)
#define ANIM_TAG_SPLASH (ANIM_SPRITES_START + 272)
#define ANIM_TAG_SWEAT_BEAD (ANIM_SPRITES_START + 273)
#define ANIM_TAG_GEM_1 (ANIM_SPRITES_START + 274) // unused
#define ANIM_TAG_GEM_2 (ANIM_SPRITES_START + 275) // unused
#define ANIM_TAG_GEM_3 (ANIM_SPRITES_START + 276) // unused
#define ANIM_TAG_SLAM_HIT_2 (ANIM_SPRITES_START + 277)
#define ANIM_TAG_RECYCLE (ANIM_SPRITES_START + 278)
#define ANIM_TAG_RED_PARTICLES (ANIM_SPRITES_START + 279) // unused
#define ANIM_TAG_PROTECT (ANIM_SPRITES_START + 280)
#define ANIM_TAG_DIRT_MOUND (ANIM_SPRITES_START + 281)
#define ANIM_TAG_SHOCK_3 (ANIM_SPRITES_START + 282)
#define ANIM_TAG_WEATHER_BALL (ANIM_SPRITES_START + 283)
#define ANIM_TAG_BIRD (ANIM_SPRITES_START + 284)
#define ANIM_TAG_CROSS_IMPACT (ANIM_SPRITES_START + 285)
#define ANIM_TAG_SLASH_2 (ANIM_SPRITES_START + 286)
#define ANIM_TAG_WHIP_HIT (ANIM_SPRITES_START + 287)
#define ANIM_TAG_BLUE_RING_2 (ANIM_SPRITES_START + 288)
// battlers
#define ANIM_ATTACKER 0
#define ANIM_TARGET 1
#define ANIM_ATK_PARTNER 2
#define ANIM_DEF_PARTNER 3
// stereo panning constants [0-255]
//
// 0
// . .
// . .
// 192 . . 63
// . .
// . .
// . .
// 127
//
#define SOUND_PAN_ATTACKER -64
#define SOUND_PAN_TARGET 63
// move background ids
#define BG_NONE 0 // the same as BG_DARK but is unused
#define BG_DARK 1
#define BG_GHOST 2
#define BG_PSYCHIC 3
#define BG_IMPACT_OPPONENT 4
#define BG_IMPACT_PLAYER 5
#define BG_IMPACT_CONTESTS 6
#define BG_DRILL 7
#define BG_DRILL_CONTESTS 8
#define BG_HIGHSPEED_OPPONENT 9
#define BG_HIGHSPEED_PLAYER 10
#define BG_THUNDER 11
#define BG_GUILLOTINE_OPPONENT 12
#define BG_GUILLOTINE_PLAYER 13
#define BG_GUILLOTINE_CONTESTS 14
#define BG_ICE 15
#define BG_COSMIC 16
#define BG_IN_AIR 17
#define BG_SKY 18
#define BG_SKY_CONTESTS 19
#define BG_AURORA 20
#define BG_FISSURE 21
#define BG_BUG_OPPONENT 22
#define BG_BUG_PLAYER 23
#define BG_SOLAR_BEAM_OPPONENT 24
#define BG_SOLAR_BEAM_PLAYER 25
#define BG_SOLAR_BEAM_CONTESTS 26
// 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 (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 (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
// For createsprite macro to use internally
#define ANIMSPRITE_IS_TARGET (1 << 7)
// Trapping Wrap-like moves end turn animation.
#define TRAP_ANIM_BIND 0
#define TRAP_ANIM_WRAP 0
#define TRAP_ANIM_FIRE_SPIN 1
#define TRAP_ANIM_WHIRLPOOL 2
#define TRAP_ANIM_CLAMP 3
#define TRAP_ANIM_SAND_TOMB 4
// Weather defines for battle animation scripts.
#define ANIM_WEATHER_NONE 0
#define ANIM_WEATHER_SUN 1
#define ANIM_WEATHER_RAIN 2
#define ANIM_WEATHER_SANDSTORM 3
#define ANIM_WEATHER_HAIL 4
#endif // GUARD_CONSTANTS_BATTLE_ANIM_H

View File

@ -0,0 +1,20 @@
#ifndef GUARD_CONSTANTS_BATTLE_ARENA_H
#define GUARD_CONSTANTS_BATTLE_ARENA_H
#define BATTLE_ARENA_FUNC_INIT 0
#define BATTLE_ARENA_FUNC_GET_DATA 1
#define BATTLE_ARENA_FUNC_SET_DATA 2
#define BATTLE_ARENA_FUNC_SAVE 3
#define BATTLE_ARENA_FUNC_SET_PRIZE 4
#define BATTLE_ARENA_FUNC_GIVE_PRIZE 5
#define BATTLE_ARENA_FUNC_GET_TRAINER_NAME 6
#define ARENA_DATA_PRIZE 0
#define ARENA_DATA_WIN_STREAK 1
#define ARENA_DATA_WIN_STREAK_ACTIVE 2
#define ARENA_CATEGORY_MIND 0
#define ARENA_CATEGORY_SKILL 1
#define ARENA_CATEGORY_BODY 2
#endif //GUARD_CONSTANTS_BATTLE_ARENA_H

View File

@ -0,0 +1,163 @@
#ifndef GUARD_CONSTANTS_BATTLE_DOME_H
#define GUARD_CONSTANTS_BATTLE_DOME_H
#define DOME_ROUND1 0
#define DOME_ROUND2 1
#define DOME_SEMIFINAL 2
#define DOME_FINAL 3
#define DOME_ROUNDS_COUNT 4
//#define DOME_TOURNAMENT_TRAINERS_COUNT 16 -- defined in global
#define DOME_TOURNAMENT_MATCHES_COUNT DOME_TOURNAMENT_TRAINERS_COUNT - 1
#define DOME_BATTLE_PARTY_SIZE 2
#define DOME_PLAYER_WON_MATCH 1
#define DOME_PLAYER_LOST_MATCH 2
#define DOME_PLAYER_RETIRED 9
#define BATTLE_DOME_FUNC_INIT 0
#define BATTLE_DOME_FUNC_GET_DATA 1
#define BATTLE_DOME_FUNC_SET_DATA 2
#define BATTLE_DOME_FUNC_GET_ROUND_TEXT 3
#define BATTLE_DOME_FUNC_GET_OPPONENT_NAME 4
#define BATTLE_DOME_FUNC_INIT_OPPONENT_PARTY 5
#define BATTLE_DOME_FUNC_SHOW_OPPONENT_INFO 6
#define BATTLE_DOME_FUNC_SHOW_TOURNEY_TREE 7
#define BATTLE_DOME_FUNC_SHOW_PREV_TOURNEY_TREE 8
#define BATTLE_DOME_FUNC_SET_OPPONENT_ID 9
#define BATTLE_DOME_FUNC_SET_OPPONENT_GFX 10
#define BATTLE_DOME_FUNC_SHOW_STATIC_TOURNEY_TREE 11
#define BATTLE_DOME_FUNC_RESOLVE_WINNERS 12
#define BATTLE_DOME_FUNC_SAVE 13
#define BATTLE_DOME_FUNC_INCREMENT_STREAK 14
#define BATTLE_DOME_FUNC_SET_TRAINERS 15
#define BATTLE_DOME_FUNC_RESET_SKETCH 16
#define BATTLE_DOME_FUNC_RESTORE_HELD_ITEMS 17
#define BATTLE_DOME_FUNC_REDUCE_PARTY 18
#define BATTLE_DOME_FUNC_COMPARE_SEEDS 19
#define BATTLE_DOME_FUNC_GET_WINNER_NAME 20
#define BATTLE_DOME_FUNC_INIT_RESULTS_TREE 21
#define BATTLE_DOME_FUNC_INIT_TRAINERS 22
#define DOME_DATA_WIN_STREAK 0
#define DOME_DATA_WIN_STREAK_ACTIVE 1
#define DOME_DATA_ATTEMPTED_SINGLES_50 2
#define DOME_DATA_ATTEMPTED_SINGLES_OPEN 3
#define DOME_DATA_HAS_WON_SINGLES_50 4
#define DOME_DATA_HAS_WON_SINGLES_OPEN 5
#define DOME_DATA_ATTEMPTED_CHALLENGE 6
#define DOME_DATA_HAS_WON_CHALLENGE 7
#define DOME_DATA_SELECTED_MONS 8
#define DOME_DATA_PREV_TOURNEY_TYPE 9
// ID for Exit/Cancel on the tourney tree
#define TOURNEY_TREE_CLOSE_BUTTON 31
// Input IDs on the tourney tree
#define TOURNEY_TREE_SELECTED_CLOSE 0
#define TOURNEY_TREE_NO_SELECTION 1
#define TOURNEY_TREE_SELECTED_TRAINER 2
#define TOURNEY_TREE_SELECTED_MATCH 3
// Modes for showing the tourney tree info card
#define INFOCARD_NEXT_OPPONENT 0
#define INFOCARD_TRAINER 1
#define INFOCARD_MATCH 2
// Input IDs for the info cards
#define INFOCARD_INPUT_NONE 0
#define TRAINERCARD_INPUT_UP 1
#define TRAINERCARD_INPUT_DOWN 2
#define TRAINERCARD_INPUT_LEFT 3
#define TRAINERCARD_INPUT_RIGHT 4
#define MATCHCARD_INPUT_UP 5
#define MATCHCARD_INPUT_DOWN 6
#define MATCHCARD_INPUT_LEFT 7
#define MATCHCARD_INPUT_RIGHT 8
#define INFOCARD_INPUT_AB 9
#define CARD_ALTERNATE_SLOT (1 << 0) // When set, uses an alternate slot to store the incoming card sprites
#define MOVE_CARD_RIGHT (1 << 1)
#define MOVE_CARD_DOWN (1 << 2)
#define MOVE_CARD_LEFT (1 << 3)
#define MOVE_CARD_UP (1 << 4)
#define MOVE_CARD (MOVE_CARD_RIGHT | MOVE_CARD_DOWN | MOVE_CARD_LEFT | MOVE_CARD_UP)
// Text IDs for sBattleDomeWinTexts
#define DOME_TEXT_NO_WINNER_YET 0
#define DOME_TEXT_WON_USING_MOVE 1
#define DOME_TEXT_CHAMP_USING_MOVE 2
#define DOME_TEXT_WON_ON_FORFEIT 3
#define DOME_TEXT_CHAMP_ON_FORFEIT 4
#define DOME_TEXT_WON_NO_MOVES 5
#define DOME_TEXT_CHAMP_NO_MOVES 6
// Offsets/start positions within sBattleDomeOpponentStatsTexts
#define DOME_TEXT_TWO_GOOD_STATS 0
#define DOME_TEXT_ONE_GOOD_STAT 15
#define DOME_TEXT_TWO_BAD_STATS 21
#define DOME_TEXT_ONE_BAD_STAT 36
#define DOME_TEXT_WELL_BALANCED 42
#define DOME_TEXT_HP 0
#define DOME_TEXT_ATK 5
#define DOME_TEXT_DEF 9
#define DOME_TEXT_SPEED 12
#define DOME_TEXT_SPATK 14
// Move point indexes for sBattleStyleMovePoints[][], to determine Battle Dome trainers battle styles
#define MOVE_POINTS_COMBO 0 // Moves that work well in combination (e.g. Rain Dance + Hydro Pump)
#define MOVE_POINTS_STAT_RAISE 1
#define MOVE_POINTS_STAT_LOWER 2
#define MOVE_POINTS_RARE 3 // Uncommon moves. Mostly arbitrary
#define MOVE_POINTS_HEAL 4
#define MOVE_POINTS_RISKY 5
#define MOVE_POINTS_STATUS 6
#define MOVE_POINTS_DMG 7
#define MOVE_POINTS_DEF 8 // Defensive moves, like Amnesia, Light Screen, or accuracy-lowers
#define MOVE_POINTS_ACCURATE 9
#define MOVE_POINTS_POWERFUL 10 // Most of the moves that are >= 100 power
#define MOVE_POINTS_POPULAR 11 // Group seems arbitrary. All using it are TM/HMs, but its only 11/58
#define MOVE_POINTS_LUCK 12
#define MOVE_POINTS_STRONG 13 // Most of the moves that are >= 90 power
#define MOVE_POINTS_LOW_PP 14
#define MOVE_POINTS_EFFECT 15 // Moves with additional effects
#define NUM_MOVE_POINT_TYPES 16
// Battle style IDs for sBattleDomeOpponentStyleTexts
#define DOME_BATTLE_STYLE_RISKY 0
#define DOME_BATTLE_STYLE_STALL 1
#define DOME_BATTLE_STYLE_VARIED 2
#define DOME_BATTLE_STYLE_COMBO_HIGH 3
#define DOME_BATTLE_STYLE_RARE_MOVES 4
#define DOME_BATTLE_STYLE_RARE_MOVE 5
#define DOME_BATTLE_STYLE_HP 6
#define DOME_BATTLE_STYLE_STORE_POWER 7
#define DOME_BATTLE_STYLE_ENFEEBLE_LOW 8
#define DOME_BATTLE_STYLE_LUCK 9
#define DOME_BATTLE_STYLE_REGAL 10
#define DOME_BATTLE_STYLE_LOW_PP 11
#define DOME_BATTLE_STYLE_STATUS_ATK 12
#define DOME_BATTLE_STYLE_ENDURE 13
#define DOME_BATTLE_STYLE_STATUS 14
#define DOME_BATTLE_STYLE_STRAIGHTFORWARD 15
#define DOME_BATTLE_STYLE_AGGRESSIVE 16
#define DOME_BATTLE_STYLE_DEF 17
#define DOME_BATTLE_STYLE_ENFEEBLE_HIGH 18
#define DOME_BATTLE_STYLE_POPULAR_POWER 19
#define DOME_BATTLE_STYLE_COMBO_LOW 20
#define DOME_BATTLE_STYLE_ACCURATE 21
#define DOME_BATTLE_STYLE_POWERFUL 22
#define DOME_BATTLE_STYLE_ATK_OVER_DEF 23
#define DOME_BATTLE_STYLE_DEF_OVER_ATK 24
#define DOME_BATTLE_STYLE_POPULAR_STRONG 25
#define DOME_BATTLE_STYLE_EFFECTS 26
#define DOME_BATTLE_STYLE_BALANCED 27
#define DOME_BATTLE_STYLE_UNUSED1 28
#define DOME_BATTLE_STYLE_UNUSED2 29
#define DOME_BATTLE_STYLE_UNUSED3 30
#define DOME_BATTLE_STYLE_UNUSED4 31
#define NUM_BATTLE_STYLES 32
#endif //GUARD_CONSTANTS_BATTLE_DOME_H

View File

@ -0,0 +1,37 @@
#ifndef GUARD_CONSTANTS_BATTLE_FACTORY_H
#define GUARD_CONSTANTS_BATTLE_FACTORY_H
#define FACTORY_STYLE_NONE 0
#define FACTORY_STYLE_PREPARATION 1
#define FACTORY_STYLE_SLOW_STEADY 2
#define FACTORY_STYLE_ENDURANCE 3
#define FACTORY_STYLE_HIGH_RISK 4
#define FACTORY_STYLE_WEAKENING 5
#define FACTORY_STYLE_UNPREDICTABLE 6
#define FACTORY_STYLE_WEATHER 7
#define FACTORY_NUM_STYLES 8
#define BATTLE_FACTORY_FUNC_INIT 0
#define BATTLE_FACTORY_FUNC_GET_DATA 1
#define BATTLE_FACTORY_FUNC_SET_DATA 2
#define BATTLE_FACTORY_FUNC_SAVE 3
#define BATTLE_FACTORY_FUNC_NULL 4
#define BATTLE_FACTORY_FUNC_NULL2 5
#define BATTLE_FACTORY_FUNC_SELECT_RENT_MONS 6
#define BATTLE_FACTORY_FUNC_SWAP_RENT_MONS 7
#define BATTLE_FACTORY_FUNC_SET_SWAPPED 8
#define BATTLE_FACTORY_FUNC_SET_OPPONENT_MONS 9
#define BATTLE_FACTORY_FUNC_SET_PARTIES 10
#define BATTLE_FACTORY_FUNC_SET_OPPONENT_GFX 11
#define BATTLE_FACTORY_FUNC_GENERATE_OPPONENT_MONS 12
#define BATTLE_FACTORY_FUNC_GENERATE_RENTAL_MONS 13
#define BATTLE_FACTORY_FUNC_GET_OPPONENT_MON_TYPE 14
#define BATTLE_FACTORY_FUNC_GET_OPPONENT_STYLE 15
#define BATTLE_FACTORY_FUNC_RESET_HELD_ITEMS 16
#define FACTORY_DATA_WIN_STREAK 1
#define FACTORY_DATA_WIN_STREAK_ACTIVE 2
#define FACTORY_DATA_WIN_STREAK_SWAPS 3
#endif // GUARD_CONSTANTS_BATTLE_FACTORY_H

View File

@ -0,0 +1,180 @@
#ifndef GUARD_CONSTANTS_BATTLE_FRONTIER_H
#define GUARD_CONSTANTS_BATTLE_FRONTIER_H
#define FRONTIER_CHALLENGE(facility, mode) ((facility << 8) + mode)
// Battle Frontier facility ids.
#define FRONTIER_FACILITY_TOWER 0
#define FRONTIER_FACILITY_DOME 1
#define FRONTIER_FACILITY_PALACE 2 // also Verdanturf Tent
#define FRONTIER_FACILITY_ARENA 3 // also Fallarbor Tent
#define FRONTIER_FACILITY_FACTORY 4 // also Slateport Tent
#define FRONTIER_FACILITY_PIKE 5
#define FRONTIER_FACILITY_PYRAMID 6
#define NUM_FRONTIER_FACILITIES 7
// VAR_FRONTIER_FACILITY is re-used for the below facilities as well
#define FACILITY_LINK_CONTEST 7
#define FACILITY_UNION_ROOM 8
#define FACILITY_MULTI_OR_EREADER 9 // Direct Corner multi battles, multi battle with Steven, and e-Reader battles
// Battle Frontier battle modes.
#define FRONTIER_MODE_SINGLES 0
#define FRONTIER_MODE_DOUBLES 1
#define FRONTIER_MODE_MULTIS 2
#define FRONTIER_MODE_LINK_MULTIS 3
#define FRONTIER_MODE_COUNT 4
// Challenge Statuses
#define CHALLENGE_STATUS_SAVING 1
#define CHALLENGE_STATUS_PAUSED 2
#define CHALLENGE_STATUS_WON 3
#define CHALLENGE_STATUS_LOST 4
// Special trainer battles.
#define SPECIAL_BATTLE_TOWER 0
#define SPECIAL_BATTLE_SECRET_BASE 1
#define SPECIAL_BATTLE_EREADER 2
#define SPECIAL_BATTLE_DOME 3
#define SPECIAL_BATTLE_PALACE 4
#define SPECIAL_BATTLE_ARENA 5
#define SPECIAL_BATTLE_FACTORY 6
#define SPECIAL_BATTLE_PIKE_SINGLE 7
#define SPECIAL_BATTLE_STEVEN 8
#define SPECIAL_BATTLE_PIKE_DOUBLE 9
#define SPECIAL_BATTLE_PYRAMID 10
#define MAX_BATTLE_FRONTIER_POINTS 9999
#define MAX_STREAK 9999
// These sets of facility ids would be redundant if the order was consistent
// The order is important for this set so that all the non-link records can be continuous
#define RANKING_HALL_TOWER_SINGLES 0
#define RANKING_HALL_TOWER_DOUBLES 1
#define RANKING_HALL_TOWER_MULTIS 2
#define RANKING_HALL_DOME 3
#define RANKING_HALL_PALACE 4
#define RANKING_HALL_ARENA 5
#define RANKING_HALL_FACTORY 6
#define RANKING_HALL_PIKE 7
#define RANKING_HALL_PYRAMID 8
#define RANKING_HALL_TOWER_LINK 9
#define FRONTIER_MANIAC_TOWER_SINGLES 0
#define FRONTIER_MANIAC_TOWER_DOUBLES 1
#define FRONTIER_MANIAC_TOWER_MULTIS 2
#define FRONTIER_MANIAC_TOWER_LINK 3
#define FRONTIER_MANIAC_DOME 4
#define FRONTIER_MANIAC_FACTORY 5
#define FRONTIER_MANIAC_PALACE 6
#define FRONTIER_MANIAC_ARENA 7
#define FRONTIER_MANIAC_PIKE 8
#define FRONTIER_MANIAC_PYRAMID 9
#define FRONTIER_MANIAC_FACILITY_COUNT 10
#define FRONTIER_MANIAC_MESSAGE_COUNT 3
// Frontier TV Show
#define FRONTIER_SHOW_TOWER_SINGLES 1
#define FRONTIER_SHOW_TOWER_DOUBLES 2
#define FRONTIER_SHOW_TOWER_MULTIS 3
#define FRONTIER_SHOW_TOWER_LINK_MULTIS 4
#define FRONTIER_SHOW_DOME_SINGLES 5
#define FRONTIER_SHOW_DOME_DOUBLES 6
#define FRONTIER_SHOW_FACTORY_SINGLES 7
#define FRONTIER_SHOW_FACTORY_DOUBLES 8
#define FRONTIER_SHOW_PIKE 9
#define FRONTIER_SHOW_ARENA 10
#define FRONTIER_SHOW_PALACE_SINGLES 11
#define FRONTIER_SHOW_PALACE_DOUBLES 12
#define FRONTIER_SHOW_PYRAMID 13
// Frontier Gambler
#define FRONTIER_GAMBLER_WAITING 0
#define FRONTIER_GAMBLER_PLACED_BET 1
#define FRONTIER_GAMBLER_WON 2
#define FRONTIER_GAMBLER_LOST 3
#define FRONTIER_GAMBLER_BET_5 0
#define FRONTIER_GAMBLER_BET_10 1
#define FRONTIER_GAMBLER_BET_15 2
#define FRONTIER_GAMBLER_BET_CANCEL 3
#define FRONTIER_GAMBLER_CHALLENGE_COUNT 12
#define EXCHANGE_CORNER_DECOR1_CLERK 0
#define EXCHANGE_CORNER_DECOR2_CLERK 1
#define EXCHANGE_CORNER_VITAMIN_CLERK 2
#define EXCHANGE_CORNER_HOLD_ITEM_CLERK 3
#define F_EV_SPREAD_HP (1 << 0)
#define F_EV_SPREAD_ATTACK (1 << 1)
#define F_EV_SPREAD_DEFENSE (1 << 2)
#define F_EV_SPREAD_SPEED (1 << 3)
#define F_EV_SPREAD_SP_ATTACK (1 << 4)
#define F_EV_SPREAD_SP_DEFENSE (1 << 5)
#define BATTLE_FRONTIER_ITEM_NONE 0
#define BATTLE_FRONTIER_ITEM_KINGS_ROCK 1
#define BATTLE_FRONTIER_ITEM_SITRUS_BERRY 2
#define BATTLE_FRONTIER_ITEM_ORAN_BERRY 3
#define BATTLE_FRONTIER_ITEM_CHESTO_BERRY 4
#define BATTLE_FRONTIER_ITEM_HARD_STONE 5
#define BATTLE_FRONTIER_ITEM_FOCUS_BAND 6
#define BATTLE_FRONTIER_ITEM_PERSIM_BERRY 7
#define BATTLE_FRONTIER_ITEM_MIRACLE_SEED 8
#define BATTLE_FRONTIER_ITEM_BERRY_JUICE 9
#define BATTLE_FRONTIER_ITEM_MACHO_BRACE 10
#define BATTLE_FRONTIER_ITEM_SILVER_POWDER 11
#define BATTLE_FRONTIER_ITEM_CHERI_BERRY 12
#define BATTLE_FRONTIER_ITEM_BLACK_GLASSES 13
#define BATTLE_FRONTIER_ITEM_BLACK_BELT 14
#define BATTLE_FRONTIER_ITEM_SOUL_DEW 15
#define BATTLE_FRONTIER_ITEM_CHOICE_BAND 16
#define BATTLE_FRONTIER_ITEM_MAGNET 17
#define BATTLE_FRONTIER_ITEM_SILK_SCARF 18
#define BATTLE_FRONTIER_ITEM_WHITE_HERB 19
#define BATTLE_FRONTIER_ITEM_DEEP_SEA_SCALE 20
#define BATTLE_FRONTIER_ITEM_DEEP_SEA_TOOTH 21
#define BATTLE_FRONTIER_ITEM_MYSTIC_WATER 22
#define BATTLE_FRONTIER_ITEM_SHARP_BEAK 23
#define BATTLE_FRONTIER_ITEM_QUICK_CLAW 24
#define BATTLE_FRONTIER_ITEM_LEFTOVERS 25
#define BATTLE_FRONTIER_ITEM_RAWST_BERRY 26
#define BATTLE_FRONTIER_ITEM_LIGHT_BALL 27
#define BATTLE_FRONTIER_ITEM_POISON_BARB 28
#define BATTLE_FRONTIER_ITEM_NEVER_MELT_ICE 29
#define BATTLE_FRONTIER_ITEM_ASPEAR_BERRY 30
#define BATTLE_FRONTIER_ITEM_SPELL_TAG 31
#define BATTLE_FRONTIER_ITEM_BRIGHT_POWDER 32
#define BATTLE_FRONTIER_ITEM_LEPPA_BERRY 33
#define BATTLE_FRONTIER_ITEM_SCOPE_LENS 34
#define BATTLE_FRONTIER_ITEM_TWISTED_SPOON 35
#define BATTLE_FRONTIER_ITEM_METAL_COAT 36
#define BATTLE_FRONTIER_ITEM_MENTAL_HERB 37
#define BATTLE_FRONTIER_ITEM_CHARCOAL 38
#define BATTLE_FRONTIER_ITEM_PECHA_BERRY 39
#define BATTLE_FRONTIER_ITEM_SOFT_SAND 40
#define BATTLE_FRONTIER_ITEM_LUM_BERRY 41
#define BATTLE_FRONTIER_ITEM_DRAGON_SCALE 42
#define BATTLE_FRONTIER_ITEM_DRAGON_FANG 43
#define BATTLE_FRONTIER_ITEM_IAPAPA_BERRY 44
#define BATTLE_FRONTIER_ITEM_WIKI_BERRY 45
#define BATTLE_FRONTIER_ITEM_SEA_INCENSE 46
#define BATTLE_FRONTIER_ITEM_SHELL_BELL 47
#define BATTLE_FRONTIER_ITEM_SALAC_BERRY 48
#define BATTLE_FRONTIER_ITEM_LANSAT_BERRY 49
#define BATTLE_FRONTIER_ITEM_APICOT_BERRY 50
#define BATTLE_FRONTIER_ITEM_STARF_BERRY 51
#define BATTLE_FRONTIER_ITEM_LIECHI_BERRY 52
#define BATTLE_FRONTIER_ITEM_STICK 53
#define BATTLE_FRONTIER_ITEM_LAX_INCENSE 54
#define BATTLE_FRONTIER_ITEM_AGUAV_BERRY 55
#define BATTLE_FRONTIER_ITEM_FIGY_BERRY 56
#define BATTLE_FRONTIER_ITEM_THICK_CLUB 57
#define BATTLE_FRONTIER_ITEM_MAGO_BERRY 58
#define BATTLE_FRONTIER_ITEM_METAL_POWDER 59
#define BATTLE_FRONTIER_ITEM_PETAYA_BERRY 60
#define BATTLE_FRONTIER_ITEM_LUCKY_PUNCH 61
#define BATTLE_FRONTIER_ITEM_GANLON_BERRY 62
#endif // GUARD_CONSTANTS_BATTLE_FRONTIER_H

View File

@ -0,0 +1,899 @@
#ifndef GUARD_CONSTANTS_BATTLE_FRONTIER_MONS_H
#define GUARD_CONSTANTS_BATTLE_FRONTIER_MONS_H
#define FRONTIER_MON_SUNKERN 0
#define FRONTIER_MON_AZURILL 1
#define FRONTIER_MON_CATERPIE 2
#define FRONTIER_MON_WEEDLE 3
#define FRONTIER_MON_WURMPLE 4
#define FRONTIER_MON_RALTS 5
#define FRONTIER_MON_MAGIKARP 6
#define FRONTIER_MON_FEEBAS 7
#define FRONTIER_MON_METAPOD 8
#define FRONTIER_MON_KAKUNA 9
#define FRONTIER_MON_PICHU 10
#define FRONTIER_MON_SILCOON 11
#define FRONTIER_MON_CASCOON 12
#define FRONTIER_MON_IGGLYBUFF 13
#define FRONTIER_MON_WOOPER 14
#define FRONTIER_MON_TYROGUE 15
#define FRONTIER_MON_SENTRET 16
#define FRONTIER_MON_CLEFFA 17
#define FRONTIER_MON_SEEDOT 18
#define FRONTIER_MON_LOTAD 19
#define FRONTIER_MON_POOCHYENA 20
#define FRONTIER_MON_SHEDINJA 21
#define FRONTIER_MON_MAKUHITA 22
#define FRONTIER_MON_WHISMUR 23
#define FRONTIER_MON_ZIGZAGOON 24
#define FRONTIER_MON_ZUBAT 25
#define FRONTIER_MON_TOGEPI 26
#define FRONTIER_MON_SPINARAK 27
#define FRONTIER_MON_MARILL 28
#define FRONTIER_MON_HOPPIP 29
#define FRONTIER_MON_SLUGMA 30
#define FRONTIER_MON_SWINUB 31
#define FRONTIER_MON_SMEARGLE 32
#define FRONTIER_MON_PIDGEY 33
#define FRONTIER_MON_RATTATA 34
#define FRONTIER_MON_WYNAUT 35
#define FRONTIER_MON_SKITTY 36
#define FRONTIER_MON_SPEAROW 37
#define FRONTIER_MON_HOOTHOOT 38
#define FRONTIER_MON_DIGLETT 39
#define FRONTIER_MON_LEDYBA 40
#define FRONTIER_MON_NINCADA 41
#define FRONTIER_MON_SURSKIT 42
#define FRONTIER_MON_JIGGLYPUFF 43
#define FRONTIER_MON_TAILLOW 44
#define FRONTIER_MON_WINGULL 45
#define FRONTIER_MON_NIDORAN_M 46
#define FRONTIER_MON_NIDORAN_F 47
#define FRONTIER_MON_KIRLIA 48
#define FRONTIER_MON_MAREEP 49
#define FRONTIER_MON_MEDITITE 50
#define FRONTIER_MON_SLAKOTH 51
#define FRONTIER_MON_PARAS 52
#define FRONTIER_MON_EKANS 53
#define FRONTIER_MON_DITTO 54
#define FRONTIER_MON_BARBOACH 55
#define FRONTIER_MON_MEOWTH 56
#define FRONTIER_MON_PINECO 57
#define FRONTIER_MON_TRAPINCH 58
#define FRONTIER_MON_SPHEAL 59
#define FRONTIER_MON_HORSEA 60
#define FRONTIER_MON_SHROOMISH 61
#define FRONTIER_MON_SHUPPET 62
#define FRONTIER_MON_DUSKULL 63
#define FRONTIER_MON_ELECTRIKE 64
#define FRONTIER_MON_VULPIX 65
#define FRONTIER_MON_PIKACHU 66
#define FRONTIER_MON_SANDSHREW 67
#define FRONTIER_MON_POLIWAG 68
#define FRONTIER_MON_BELLSPROUT 69
#define FRONTIER_MON_GEODUDE 70
#define FRONTIER_MON_DRATINI 71
#define FRONTIER_MON_SNUBBULL 72
#define FRONTIER_MON_REMORAID 73
#define FRONTIER_MON_LARVITAR 74
#define FRONTIER_MON_BALTOY 75
#define FRONTIER_MON_SNORUNT 76
#define FRONTIER_MON_BAGON 77
#define FRONTIER_MON_BELDUM 78
#define FRONTIER_MON_GULPIN 79
#define FRONTIER_MON_VENONAT 80
#define FRONTIER_MON_MANKEY 81
#define FRONTIER_MON_MACHOP 82
#define FRONTIER_MON_SHELLDER 83
#define FRONTIER_MON_SMOOCHUM 84
#define FRONTIER_MON_NUMEL 85
#define FRONTIER_MON_CARVANHA 86
#define FRONTIER_MON_CORPHISH 87
#define FRONTIER_MON_CHARMANDER 88
#define FRONTIER_MON_CYNDAQUIL 89
#define FRONTIER_MON_ABRA 90
#define FRONTIER_MON_DODUO 91
#define FRONTIER_MON_GASTLY 92
#define FRONTIER_MON_SWABLU 93
#define FRONTIER_MON_TREECKO 94
#define FRONTIER_MON_TORCHIC 95
#define FRONTIER_MON_MUDKIP 96
#define FRONTIER_MON_SQUIRTLE 97
#define FRONTIER_MON_TOTODILE 98
#define FRONTIER_MON_SLOWPOKE 99
#define FRONTIER_MON_BULBASAUR 100
#define FRONTIER_MON_CHIKORITA 101
#define FRONTIER_MON_ODDISH 102
#define FRONTIER_MON_PSYDUCK 103
#define FRONTIER_MON_CUBONE 104
#define FRONTIER_MON_GOLDEEN 105
#define FRONTIER_MON_NATU 106
#define FRONTIER_MON_CLEFAIRY 107
#define FRONTIER_MON_MAGNEMITE 108
#define FRONTIER_MON_SEEL 109
#define FRONTIER_MON_GRIMER 110
#define FRONTIER_MON_KRABBY 111
#define FRONTIER_MON_EXEGGCUTE 112
#define FRONTIER_MON_EEVEE 113
#define FRONTIER_MON_DROWZEE 114
#define FRONTIER_MON_VOLTORB 115
#define FRONTIER_MON_CHINCHOU 116
#define FRONTIER_MON_TEDDIURSA 117
#define FRONTIER_MON_DELIBIRD 118
#define FRONTIER_MON_HOUNDOUR 119
#define FRONTIER_MON_PHANPY 120
#define FRONTIER_MON_SPOINK 121
#define FRONTIER_MON_ARON 122
#define FRONTIER_MON_LUVDISC 123
#define FRONTIER_MON_TENTACOOL 124
#define FRONTIER_MON_CACNEA 125
#define FRONTIER_MON_UNOWN 126
#define FRONTIER_MON_KOFFING 127
#define FRONTIER_MON_STARYU 128
#define FRONTIER_MON_SKIPLOOM 129
#define FRONTIER_MON_NUZLEAF 130
#define FRONTIER_MON_LOMBRE 131
#define FRONTIER_MON_VIBRAVA 132
#define FRONTIER_MON_RHYHORN 133
#define FRONTIER_MON_CLAMPERL 134
#define FRONTIER_MON_PIDGEOTTO 135
#define FRONTIER_MON_GROWLITHE 136
#define FRONTIER_MON_FARFETCHD 137
#define FRONTIER_MON_OMANYTE 138
#define FRONTIER_MON_KABUTO 139
#define FRONTIER_MON_LILEEP 140
#define FRONTIER_MON_ANORITH 141
#define FRONTIER_MON_AIPOM 142
#define FRONTIER_MON_ELEKID 143
#define FRONTIER_MON_LOUDRED 144
#define FRONTIER_MON_SPINDA 145
#define FRONTIER_MON_NIDORINA 146
#define FRONTIER_MON_NIDORINO 147
#define FRONTIER_MON_FLAAFFY 148
#define FRONTIER_MON_MAGBY 149
#define FRONTIER_MON_NOSEPASS 150
#define FRONTIER_MON_CORSOLA 151
#define FRONTIER_MON_MAWILE 152
#define FRONTIER_MON_BUTTERFREE 153
#define FRONTIER_MON_BEEDRILL 154
#define FRONTIER_MON_POLIWHIRL 155
#define FRONTIER_MON_ONIX 156
#define FRONTIER_MON_BEAUTIFLY 157
#define FRONTIER_MON_DUSTOX 158
#define FRONTIER_MON_LEDIAN 159
#define FRONTIER_MON_ARIADOS 160
#define FRONTIER_MON_YANMA 161
#define FRONTIER_MON_DELCATTY_1 162
#define FRONTIER_MON_SABLEYE_1 163
#define FRONTIER_MON_LICKITUNG_1 164
#define FRONTIER_MON_WEEPINBELL_1 165
#define FRONTIER_MON_GRAVELER_1 166
#define FRONTIER_MON_GLOOM_1 167
#define FRONTIER_MON_PORYGON_1 168
#define FRONTIER_MON_KADABRA_1 169
#define FRONTIER_MON_WAILMER_1 170
#define FRONTIER_MON_ROSELIA_1 171
#define FRONTIER_MON_VOLBEAT_1 172
#define FRONTIER_MON_ILLUMISE_1 173
#define FRONTIER_MON_IVYSAUR_1 174
#define FRONTIER_MON_CHARMELEON_1 175
#define FRONTIER_MON_WARTORTLE_1 176
#define FRONTIER_MON_PARASECT_1 177
#define FRONTIER_MON_MACHOKE_1 178
#define FRONTIER_MON_HAUNTER_1 179
#define FRONTIER_MON_BAYLEEF_1 180
#define FRONTIER_MON_QUILAVA_1 181
#define FRONTIER_MON_CROCONAW_1 182
#define FRONTIER_MON_TOGETIC_1 183
#define FRONTIER_MON_MURKROW_1 184
#define FRONTIER_MON_WOBBUFFET_1 185
#define FRONTIER_MON_PLUSLE_1 186
#define FRONTIER_MON_MINUN_1 187
#define FRONTIER_MON_GROVYLE_1 188
#define FRONTIER_MON_COMBUSKEN_1 189
#define FRONTIER_MON_MARSHTOMP_1 190
#define FRONTIER_MON_PONYTA_1 191
#define FRONTIER_MON_AZUMARILL_1 192
#define FRONTIER_MON_SUDOWOODO_1 193
#define FRONTIER_MON_MAGCARGO_1 194
#define FRONTIER_MON_PUPITAR_1 195
#define FRONTIER_MON_SEALEO_1 196
#define FRONTIER_MON_RATICATE_1 197
#define FRONTIER_MON_MASQUERAIN_1 198
#define FRONTIER_MON_FURRET_1 199
#define FRONTIER_MON_DUNSPARCE_1 200
#define FRONTIER_MON_DRAGONAIR_1 201
#define FRONTIER_MON_MIGHTYENA_1 202
#define FRONTIER_MON_LINOONE_1 203
#define FRONTIER_MON_CASTFORM_1 204
#define FRONTIER_MON_SHELGON_1 205
#define FRONTIER_MON_METANG_1 206
#define FRONTIER_MON_WIGGLYTUFF_1 207
#define FRONTIER_MON_SUNFLORA_1 208
#define FRONTIER_MON_CHIMECHO_1 209
#define FRONTIER_MON_GLIGAR_1 210
#define FRONTIER_MON_QWILFISH_1 211
#define FRONTIER_MON_SNEASEL_1 212
#define FRONTIER_MON_PELIPPER_1 213
#define FRONTIER_MON_SWELLOW_1 214
#define FRONTIER_MON_LAIRON_1 215
#define FRONTIER_MON_TANGELA_1 216
#define FRONTIER_MON_ARBOK_1 217
#define FRONTIER_MON_PERSIAN_1 218
#define FRONTIER_MON_SEADRA_1 219
#define FRONTIER_MON_KECLEON_1 220
#define FRONTIER_MON_VIGOROTH_1 221
#define FRONTIER_MON_LUNATONE_1 222
#define FRONTIER_MON_SOLROCK_1 223
#define FRONTIER_MON_NOCTOWL_1 224
#define FRONTIER_MON_SANDSLASH_1 225
#define FRONTIER_MON_VENOMOTH_1 226
#define FRONTIER_MON_CHANSEY_1 227
#define FRONTIER_MON_SEAKING_1 228
#define FRONTIER_MON_JUMPLUFF_1 229
#define FRONTIER_MON_PILOSWINE_1 230
#define FRONTIER_MON_GOLBAT_1 231
#define FRONTIER_MON_PRIMEAPE_1 232
#define FRONTIER_MON_HITMONLEE_1 233
#define FRONTIER_MON_HITMONCHAN_1 234
#define FRONTIER_MON_GIRAFARIG_1 235
#define FRONTIER_MON_HITMONTOP_1 236
#define FRONTIER_MON_BANETTE_1 237
#define FRONTIER_MON_NINJASK_1 238
#define FRONTIER_MON_SEVIPER_1 239
#define FRONTIER_MON_ZANGOOSE_1 240
#define FRONTIER_MON_CAMERUPT_1 241
#define FRONTIER_MON_SHARPEDO_1 242
#define FRONTIER_MON_TROPIUS_1 243
#define FRONTIER_MON_MAGNETON_1 244
#define FRONTIER_MON_MANTINE_1 245
#define FRONTIER_MON_STANTLER_1 246
#define FRONTIER_MON_ABSOL_1 247
#define FRONTIER_MON_SWALOT_1 248
#define FRONTIER_MON_CRAWDAUNT_1 249
#define FRONTIER_MON_PIDGEOT_1 250
#define FRONTIER_MON_GRUMPIG_1 251
#define FRONTIER_MON_TORKOAL_1 252
#define FRONTIER_MON_KINGLER_1 253
#define FRONTIER_MON_CACTURNE_1 254
#define FRONTIER_MON_BELLOSSOM_1 255
#define FRONTIER_MON_OCTILLERY_1 256
#define FRONTIER_MON_HUNTAIL_1 257
#define FRONTIER_MON_GOREBYSS_1 258
#define FRONTIER_MON_RELICANTH_1 259
#define FRONTIER_MON_OMASTAR_1 260
#define FRONTIER_MON_KABUTOPS_1 261
#define FRONTIER_MON_POLIWRATH_1 262
#define FRONTIER_MON_SCYTHER_1 263
#define FRONTIER_MON_PINSIR_1 264
#define FRONTIER_MON_POLITOED_1 265
#define FRONTIER_MON_CLOYSTER_1 266
#define FRONTIER_MON_DELCATTY_2 267
#define FRONTIER_MON_SABLEYE_2 268
#define FRONTIER_MON_LICKITUNG_2 269
#define FRONTIER_MON_WEEPINBELL_2 270
#define FRONTIER_MON_GRAVELER_2 271
#define FRONTIER_MON_GLOOM_2 272
#define FRONTIER_MON_PORYGON_2 273
#define FRONTIER_MON_KADABRA_2 274
#define FRONTIER_MON_WAILMER_2 275
#define FRONTIER_MON_ROSELIA_2 276
#define FRONTIER_MON_VOLBEAT_2 277
#define FRONTIER_MON_ILLUMISE_2 278
#define FRONTIER_MON_IVYSAUR_2 279
#define FRONTIER_MON_CHARMELEON_2 280
#define FRONTIER_MON_WARTORTLE_2 281
#define FRONTIER_MON_PARASECT_2 282
#define FRONTIER_MON_MACHOKE_2 283
#define FRONTIER_MON_HAUNTER_2 284
#define FRONTIER_MON_BAYLEEF_2 285
#define FRONTIER_MON_QUILAVA_2 286
#define FRONTIER_MON_CROCONAW_2 287
#define FRONTIER_MON_TOGETIC_2 288
#define FRONTIER_MON_MURKROW_2 289
#define FRONTIER_MON_WOBBUFFET_2 290
#define FRONTIER_MON_PLUSLE_2 291
#define FRONTIER_MON_MINUN_2 292
#define FRONTIER_MON_GROVYLE_2 293
#define FRONTIER_MON_COMBUSKEN_2 294
#define FRONTIER_MON_MARSHTOMP_2 295
#define FRONTIER_MON_PONYTA_2 296
#define FRONTIER_MON_AZUMARILL_2 297
#define FRONTIER_MON_SUDOWOODO_2 298
#define FRONTIER_MON_MAGCARGO_2 299
#define FRONTIER_MON_PUPITAR_2 300
#define FRONTIER_MON_SEALEO_2 301
#define FRONTIER_MON_RATICATE_2 302
#define FRONTIER_MON_MASQUERAIN_2 303
#define FRONTIER_MON_FURRET_2 304
#define FRONTIER_MON_DUNSPARCE_2 305
#define FRONTIER_MON_DRAGONAIR_2 306
#define FRONTIER_MON_MIGHTYENA_2 307
#define FRONTIER_MON_LINOONE_2 308
#define FRONTIER_MON_CASTFORM_2 309
#define FRONTIER_MON_SHELGON_2 310
#define FRONTIER_MON_METANG_2 311
#define FRONTIER_MON_WIGGLYTUFF_2 312
#define FRONTIER_MON_SUNFLORA_2 313
#define FRONTIER_MON_CHIMECHO_2 314
#define FRONTIER_MON_GLIGAR_2 315
#define FRONTIER_MON_QWILFISH_2 316
#define FRONTIER_MON_SNEASEL_2 317
#define FRONTIER_MON_PELIPPER_2 318
#define FRONTIER_MON_SWELLOW_2 319
#define FRONTIER_MON_LAIRON_2 320
#define FRONTIER_MON_TANGELA_2 321
#define FRONTIER_MON_ARBOK_2 322
#define FRONTIER_MON_PERSIAN_2 323
#define FRONTIER_MON_SEADRA_2 324
#define FRONTIER_MON_KECLEON_2 325
#define FRONTIER_MON_VIGOROTH_2 326
#define FRONTIER_MON_LUNATONE_2 327
#define FRONTIER_MON_SOLROCK_2 328
#define FRONTIER_MON_NOCTOWL_2 329
#define FRONTIER_MON_SANDSLASH_2 330
#define FRONTIER_MON_VENOMOTH_2 331
#define FRONTIER_MON_CHANSEY_2 332
#define FRONTIER_MON_SEAKING_2 333
#define FRONTIER_MON_JUMPLUFF_2 334
#define FRONTIER_MON_PILOSWINE_2 335
#define FRONTIER_MON_GOLBAT_2 336
#define FRONTIER_MON_PRIMEAPE_2 337
#define FRONTIER_MON_HITMONLEE_2 338
#define FRONTIER_MON_HITMONCHAN_2 339
#define FRONTIER_MON_GIRAFARIG_2 340
#define FRONTIER_MON_HITMONTOP_2 341
#define FRONTIER_MON_BANETTE_2 342
#define FRONTIER_MON_NINJASK_2 343
#define FRONTIER_MON_SEVIPER_2 344
#define FRONTIER_MON_ZANGOOSE_2 345
#define FRONTIER_MON_CAMERUPT_2 346
#define FRONTIER_MON_SHARPEDO_2 347
#define FRONTIER_MON_TROPIUS_2 348
#define FRONTIER_MON_MAGNETON_2 349
#define FRONTIER_MON_MANTINE_2 350
#define FRONTIER_MON_STANTLER_2 351
#define FRONTIER_MON_ABSOL_2 352
#define FRONTIER_MON_SWALOT_2 353
#define FRONTIER_MON_CRAWDAUNT_2 354
#define FRONTIER_MON_PIDGEOT_2 355
#define FRONTIER_MON_GRUMPIG_2 356
#define FRONTIER_MON_TORKOAL_2 357
#define FRONTIER_MON_KINGLER_2 358
#define FRONTIER_MON_CACTURNE_2 359
#define FRONTIER_MON_BELLOSSOM_2 360
#define FRONTIER_MON_OCTILLERY_2 361
#define FRONTIER_MON_HUNTAIL_2 362
#define FRONTIER_MON_GOREBYSS_2 363
#define FRONTIER_MON_RELICANTH_2 364
#define FRONTIER_MON_OMASTAR_2 365
#define FRONTIER_MON_KABUTOPS_2 366
#define FRONTIER_MON_POLIWRATH_2 367
#define FRONTIER_MON_SCYTHER_2 368
#define FRONTIER_MON_PINSIR_2 369
#define FRONTIER_MON_POLITOED_2 370
#define FRONTIER_MON_CLOYSTER_2 371
#define FRONTIER_MON_DUGTRIO_1 372
#define FRONTIER_MON_MEDICHAM_1 373
#define FRONTIER_MON_MISDREAVUS_1 374
#define FRONTIER_MON_FEAROW_1 375
#define FRONTIER_MON_GRANBULL_1 376
#define FRONTIER_MON_JYNX_1 377
#define FRONTIER_MON_DUSCLOPS_1 378
#define FRONTIER_MON_DODRIO_1 379
#define FRONTIER_MON_MR_MIME_1 380
#define FRONTIER_MON_LANTURN_1 381
#define FRONTIER_MON_BRELOOM_1 382
#define FRONTIER_MON_FORRETRESS_1 383
#define FRONTIER_MON_WHISCASH_1 384
#define FRONTIER_MON_XATU_1 385
#define FRONTIER_MON_SKARMORY_1 386
#define FRONTIER_MON_MAROWAK_1 387
#define FRONTIER_MON_QUAGSIRE_1 388
#define FRONTIER_MON_CLEFABLE_1 389
#define FRONTIER_MON_HARIYAMA_1 390
#define FRONTIER_MON_RAICHU_1 391
#define FRONTIER_MON_DEWGONG_1 392
#define FRONTIER_MON_MANECTRIC_1 393
#define FRONTIER_MON_VILEPLUME_1 394
#define FRONTIER_MON_VICTREEBEL_1 395
#define FRONTIER_MON_ELECTRODE_1 396
#define FRONTIER_MON_EXPLOUD_1 397
#define FRONTIER_MON_SHIFTRY_1 398
#define FRONTIER_MON_GLALIE_1 399
#define FRONTIER_MON_LUDICOLO_1 400
#define FRONTIER_MON_HYPNO_1 401
#define FRONTIER_MON_GOLEM_1 402
#define FRONTIER_MON_RHYDON_1 403
#define FRONTIER_MON_ALAKAZAM_1 404
#define FRONTIER_MON_WEEZING_1 405
#define FRONTIER_MON_KANGASKHAN_1 406
#define FRONTIER_MON_ELECTABUZZ_1 407
#define FRONTIER_MON_TAUROS_1 408
#define FRONTIER_MON_SLOWBRO_1 409
#define FRONTIER_MON_SLOWKING_1 410
#define FRONTIER_MON_MILTANK_1 411
#define FRONTIER_MON_ALTARIA_1 412
#define FRONTIER_MON_NIDOQUEEN_1 413
#define FRONTIER_MON_NIDOKING_1 414
#define FRONTIER_MON_MAGMAR_1 415
#define FRONTIER_MON_CRADILY_1 416
#define FRONTIER_MON_ARMALDO_1 417
#define FRONTIER_MON_GOLDUCK_1 418
#define FRONTIER_MON_RAPIDASH_1 419
#define FRONTIER_MON_MUK_1 420
#define FRONTIER_MON_GENGAR_1 421
#define FRONTIER_MON_AMPHAROS_1 422
#define FRONTIER_MON_SCIZOR_1 423
#define FRONTIER_MON_HERACROSS_1 424
#define FRONTIER_MON_URSARING_1 425
#define FRONTIER_MON_HOUNDOOM_1 426
#define FRONTIER_MON_DONPHAN_1 427
#define FRONTIER_MON_CLAYDOL_1 428
#define FRONTIER_MON_WAILORD_1 429
#define FRONTIER_MON_NINETALES_1 430
#define FRONTIER_MON_MACHAMP_1 431
#define FRONTIER_MON_SHUCKLE_1 432
#define FRONTIER_MON_STEELIX_1 433
#define FRONTIER_MON_TENTACRUEL_1 434
#define FRONTIER_MON_AERODACTYL_1 435
#define FRONTIER_MON_PORYGON2_1 436
#define FRONTIER_MON_GARDEVOIR_1 437
#define FRONTIER_MON_EXEGGUTOR_1 438
#define FRONTIER_MON_STARMIE_1 439
#define FRONTIER_MON_FLYGON_1 440
#define FRONTIER_MON_VENUSAUR_1 441
#define FRONTIER_MON_VAPOREON_1 442
#define FRONTIER_MON_JOLTEON_1 443
#define FRONTIER_MON_FLAREON_1 444
#define FRONTIER_MON_MEGANIUM_1 445
#define FRONTIER_MON_ESPEON_1 446
#define FRONTIER_MON_UMBREON_1 447
#define FRONTIER_MON_BLASTOISE_1 448
#define FRONTIER_MON_FERALIGATR_1 449
#define FRONTIER_MON_AGGRON_1 450
#define FRONTIER_MON_BLAZIKEN_1 451
#define FRONTIER_MON_WALREIN_1 452
#define FRONTIER_MON_SCEPTILE_1 453
#define FRONTIER_MON_CHARIZARD_1 454
#define FRONTIER_MON_TYPHLOSION_1 455
#define FRONTIER_MON_LAPRAS_1 456
#define FRONTIER_MON_CROBAT_1 457
#define FRONTIER_MON_SWAMPERT_1 458
#define FRONTIER_MON_GYARADOS_1 459
#define FRONTIER_MON_SNORLAX_1 460
#define FRONTIER_MON_KINGDRA_1 461
#define FRONTIER_MON_BLISSEY_1 462
#define FRONTIER_MON_MILOTIC_1 463
#define FRONTIER_MON_ARCANINE_1 464
#define FRONTIER_MON_SALAMENCE_1 465
#define FRONTIER_MON_METAGROSS_1 466
#define FRONTIER_MON_SLAKING_1 467
#define FRONTIER_MON_DUGTRIO_2 468
#define FRONTIER_MON_MEDICHAM_2 469
#define FRONTIER_MON_MAROWAK_2 470
#define FRONTIER_MON_QUAGSIRE_2 471
#define FRONTIER_MON_MISDREAVUS_2 472
#define FRONTIER_MON_FEAROW_2 473
#define FRONTIER_MON_GRANBULL_2 474
#define FRONTIER_MON_JYNX_2 475
#define FRONTIER_MON_DUSCLOPS_2 476
#define FRONTIER_MON_DODRIO_2 477
#define FRONTIER_MON_MR_MIME_2 478
#define FRONTIER_MON_LANTURN_2 479
#define FRONTIER_MON_BRELOOM_2 480
#define FRONTIER_MON_FORRETRESS_2 481
#define FRONTIER_MON_SKARMORY_2 482
#define FRONTIER_MON_WHISCASH_2 483
#define FRONTIER_MON_XATU_2 484
#define FRONTIER_MON_CLEFABLE_2 485
#define FRONTIER_MON_HARIYAMA_2 486
#define FRONTIER_MON_RAICHU_2 487
#define FRONTIER_MON_DEWGONG_2 488
#define FRONTIER_MON_MANECTRIC_2 489
#define FRONTIER_MON_VILEPLUME_2 490
#define FRONTIER_MON_VICTREEBEL_2 491
#define FRONTIER_MON_ELECTRODE_2 492
#define FRONTIER_MON_EXPLOUD_2 493
#define FRONTIER_MON_SHIFTRY_2 494
#define FRONTIER_MON_GLALIE_2 495
#define FRONTIER_MON_LUDICOLO_2 496
#define FRONTIER_MON_HYPNO_2 497
#define FRONTIER_MON_GOLEM_2 498
#define FRONTIER_MON_RHYDON_2 499
#define FRONTIER_MON_ALAKAZAM_2 500
#define FRONTIER_MON_WEEZING_2 501
#define FRONTIER_MON_KANGASKHAN_2 502
#define FRONTIER_MON_ELECTABUZZ_2 503
#define FRONTIER_MON_TAUROS_2 504
#define FRONTIER_MON_SLOWBRO_2 505
#define FRONTIER_MON_SLOWKING_2 506
#define FRONTIER_MON_MILTANK_2 507
#define FRONTIER_MON_ALTARIA_2 508
#define FRONTIER_MON_NIDOQUEEN_2 509
#define FRONTIER_MON_NIDOKING_2 510
#define FRONTIER_MON_MAGMAR_2 511
#define FRONTIER_MON_CRADILY_2 512
#define FRONTIER_MON_ARMALDO_2 513
#define FRONTIER_MON_GOLDUCK_2 514
#define FRONTIER_MON_RAPIDASH_2 515
#define FRONTIER_MON_MUK_2 516
#define FRONTIER_MON_GENGAR_2 517
#define FRONTIER_MON_AMPHAROS_2 518
#define FRONTIER_MON_SCIZOR_2 519
#define FRONTIER_MON_HERACROSS_2 520
#define FRONTIER_MON_URSARING_2 521
#define FRONTIER_MON_HOUNDOOM_2 522
#define FRONTIER_MON_DONPHAN_2 523
#define FRONTIER_MON_CLAYDOL_2 524
#define FRONTIER_MON_WAILORD_2 525
#define FRONTIER_MON_NINETALES_2 526
#define FRONTIER_MON_MACHAMP_2 527
#define FRONTIER_MON_SHUCKLE_2 528
#define FRONTIER_MON_STEELIX_2 529
#define FRONTIER_MON_TENTACRUEL_2 530
#define FRONTIER_MON_AERODACTYL_2 531
#define FRONTIER_MON_PORYGON2_2 532
#define FRONTIER_MON_GARDEVOIR_2 533
#define FRONTIER_MON_EXEGGUTOR_2 534
#define FRONTIER_MON_STARMIE_2 535
#define FRONTIER_MON_FLYGON_2 536
#define FRONTIER_MON_VENUSAUR_2 537
#define FRONTIER_MON_VAPOREON_2 538
#define FRONTIER_MON_JOLTEON_2 539
#define FRONTIER_MON_FLAREON_2 540
#define FRONTIER_MON_MEGANIUM_2 541
#define FRONTIER_MON_ESPEON_2 542
#define FRONTIER_MON_UMBREON_2 543
#define FRONTIER_MON_BLASTOISE_2 544
#define FRONTIER_MON_FERALIGATR_2 545
#define FRONTIER_MON_AGGRON_2 546
#define FRONTIER_MON_BLAZIKEN_2 547
#define FRONTIER_MON_WALREIN_2 548
#define FRONTIER_MON_SCEPTILE_2 549
#define FRONTIER_MON_CHARIZARD_2 550
#define FRONTIER_MON_TYPHLOSION_2 551
#define FRONTIER_MON_LAPRAS_2 552
#define FRONTIER_MON_CROBAT_2 553
#define FRONTIER_MON_SWAMPERT_2 554
#define FRONTIER_MON_GYARADOS_2 555
#define FRONTIER_MON_SNORLAX_2 556
#define FRONTIER_MON_KINGDRA_2 557
#define FRONTIER_MON_BLISSEY_2 558
#define FRONTIER_MON_MILOTIC_2 559
#define FRONTIER_MON_ARCANINE_2 560
#define FRONTIER_MON_SALAMENCE_2 561
#define FRONTIER_MON_METAGROSS_2 562
#define FRONTIER_MON_SLAKING_2 563
#define FRONTIER_MON_DUGTRIO_3 564
#define FRONTIER_MON_MEDICHAM_3 565
#define FRONTIER_MON_MISDREAVUS_3 566
#define FRONTIER_MON_FEAROW_3 567
#define FRONTIER_MON_GRANBULL_3 568
#define FRONTIER_MON_JYNX_3 569
#define FRONTIER_MON_DUSCLOPS_3 570
#define FRONTIER_MON_DODRIO_3 571
#define FRONTIER_MON_MR_MIME_3 572
#define FRONTIER_MON_LANTURN_3 573
#define FRONTIER_MON_BRELOOM_3 574
#define FRONTIER_MON_FORRETRESS_3 575
#define FRONTIER_MON_WHISCASH_3 576
#define FRONTIER_MON_XATU_3 577
#define FRONTIER_MON_SKARMORY_3 578
#define FRONTIER_MON_MAROWAK_3 579
#define FRONTIER_MON_QUAGSIRE_3 580
#define FRONTIER_MON_CLEFABLE_3 581
#define FRONTIER_MON_HARIYAMA_3 582
#define FRONTIER_MON_RAICHU_3 583
#define FRONTIER_MON_DEWGONG_3 584
#define FRONTIER_MON_MANECTRIC_3 585
#define FRONTIER_MON_VILEPLUME_3 586
#define FRONTIER_MON_VICTREEBEL_3 587
#define FRONTIER_MON_ELECTRODE_3 588
#define FRONTIER_MON_EXPLOUD_3 589
#define FRONTIER_MON_SHIFTRY_3 590
#define FRONTIER_MON_GLALIE_3 591
#define FRONTIER_MON_LUDICOLO_3 592
#define FRONTIER_MON_HYPNO_3 593
#define FRONTIER_MON_GOLEM_3 594
#define FRONTIER_MON_RHYDON_3 595
#define FRONTIER_MON_ALAKAZAM_3 596
#define FRONTIER_MON_WEEZING_3 597
#define FRONTIER_MON_KANGASKHAN_3 598
#define FRONTIER_MON_ELECTABUZZ_3 599
#define FRONTIER_MON_TAUROS_3 600
#define FRONTIER_MON_SLOWBRO_3 601
#define FRONTIER_MON_SLOWKING_3 602
#define FRONTIER_MON_MILTANK_3 603
#define FRONTIER_MON_ALTARIA_3 604
#define FRONTIER_MON_NIDOQUEEN_3 605
#define FRONTIER_MON_NIDOKING_3 606
#define FRONTIER_MON_MAGMAR_3 607
#define FRONTIER_MON_CRADILY_3 608
#define FRONTIER_MON_ARMALDO_3 609
#define FRONTIER_MON_GOLDUCK_3 610
#define FRONTIER_MON_RAPIDASH_3 611
#define FRONTIER_MON_MUK_3 612
#define FRONTIER_MON_GENGAR_3 613
#define FRONTIER_MON_AMPHAROS_3 614
#define FRONTIER_MON_SCIZOR_3 615
#define FRONTIER_MON_HERACROSS_3 616
#define FRONTIER_MON_URSARING_3 617
#define FRONTIER_MON_HOUNDOOM_3 618
#define FRONTIER_MON_DONPHAN_3 619
#define FRONTIER_MON_CLAYDOL_3 620
#define FRONTIER_MON_WAILORD_3 621
#define FRONTIER_MON_NINETALES_3 622
#define FRONTIER_MON_MACHAMP_3 623
#define FRONTIER_MON_SHUCKLE_3 624
#define FRONTIER_MON_STEELIX_3 625
#define FRONTIER_MON_TENTACRUEL_3 626
#define FRONTIER_MON_AERODACTYL_3 627
#define FRONTIER_MON_PORYGON2_3 628
#define FRONTIER_MON_GARDEVOIR_3 629
#define FRONTIER_MON_EXEGGUTOR_3 630
#define FRONTIER_MON_STARMIE_3 631
#define FRONTIER_MON_FLYGON_3 632
#define FRONTIER_MON_VENUSAUR_3 633
#define FRONTIER_MON_VAPOREON_3 634
#define FRONTIER_MON_JOLTEON_3 635
#define FRONTIER_MON_FLAREON_3 636
#define FRONTIER_MON_MEGANIUM_3 637
#define FRONTIER_MON_ESPEON_3 638
#define FRONTIER_MON_UMBREON_3 639
#define FRONTIER_MON_BLASTOISE_3 640
#define FRONTIER_MON_FERALIGATR_3 641
#define FRONTIER_MON_AGGRON_3 642
#define FRONTIER_MON_BLAZIKEN_3 643
#define FRONTIER_MON_WALREIN_3 644
#define FRONTIER_MON_SCEPTILE_3 645
#define FRONTIER_MON_CHARIZARD_3 646
#define FRONTIER_MON_TYPHLOSION_3 647
#define FRONTIER_MON_LAPRAS_3 648
#define FRONTIER_MON_CROBAT_3 649
#define FRONTIER_MON_SWAMPERT_3 650
#define FRONTIER_MON_GYARADOS_3 651
#define FRONTIER_MON_SNORLAX_3 652
#define FRONTIER_MON_KINGDRA_3 653
#define FRONTIER_MON_BLISSEY_3 654
#define FRONTIER_MON_MILOTIC_3 655
#define FRONTIER_MON_ARCANINE_3 656
#define FRONTIER_MON_SALAMENCE_3 657
#define FRONTIER_MON_METAGROSS_3 658
#define FRONTIER_MON_SLAKING_3 659
#define FRONTIER_MON_DUGTRIO_4 660
#define FRONTIER_MON_MEDICHAM_4 661
#define FRONTIER_MON_MISDREAVUS_4 662
#define FRONTIER_MON_FEAROW_4 663
#define FRONTIER_MON_GRANBULL_4 664
#define FRONTIER_MON_JYNX_4 665
#define FRONTIER_MON_DUSCLOPS_4 666
#define FRONTIER_MON_DODRIO_4 667
#define FRONTIER_MON_MR_MIME_4 668
#define FRONTIER_MON_LANTURN_4 669
#define FRONTIER_MON_BRELOOM_4 670
#define FRONTIER_MON_FORRETRESS_4 671
#define FRONTIER_MON_WHISCASH_4 672
#define FRONTIER_MON_XATU_4 673
#define FRONTIER_MON_SKARMORY_4 674
#define FRONTIER_MON_MAROWAK_4 675
#define FRONTIER_MON_QUAGSIRE_4 676
#define FRONTIER_MON_CLEFABLE_4 677
#define FRONTIER_MON_HARIYAMA_4 678
#define FRONTIER_MON_RAICHU_4 679
#define FRONTIER_MON_DEWGONG_4 680
#define FRONTIER_MON_MANECTRIC_4 681
#define FRONTIER_MON_VILEPLUME_4 682
#define FRONTIER_MON_VICTREEBEL_4 683
#define FRONTIER_MON_ELECTRODE_4 684
#define FRONTIER_MON_EXPLOUD_4 685
#define FRONTIER_MON_SHIFTRY_4 686
#define FRONTIER_MON_GLALIE_4 687
#define FRONTIER_MON_LUDICOLO_4 688
#define FRONTIER_MON_HYPNO_4 689
#define FRONTIER_MON_GOLEM_4 690
#define FRONTIER_MON_RHYDON_4 691
#define FRONTIER_MON_ALAKAZAM_4 692
#define FRONTIER_MON_WEEZING_4 693
#define FRONTIER_MON_KANGASKHAN_4 694
#define FRONTIER_MON_ELECTABUZZ_4 695
#define FRONTIER_MON_TAUROS_4 696
#define FRONTIER_MON_SLOWBRO_4 697
#define FRONTIER_MON_SLOWKING_4 698
#define FRONTIER_MON_MILTANK_4 699
#define FRONTIER_MON_ALTARIA_4 700
#define FRONTIER_MON_NIDOQUEEN_4 701
#define FRONTIER_MON_NIDOKING_4 702
#define FRONTIER_MON_MAGMAR_4 703
#define FRONTIER_MON_CRADILY_4 704
#define FRONTIER_MON_ARMALDO_4 705
#define FRONTIER_MON_GOLDUCK_4 706
#define FRONTIER_MON_RAPIDASH_4 707
#define FRONTIER_MON_MUK_4 708
#define FRONTIER_MON_GENGAR_4 709
#define FRONTIER_MON_AMPHAROS_4 710
#define FRONTIER_MON_SCIZOR_4 711
#define FRONTIER_MON_HERACROSS_4 712
#define FRONTIER_MON_URSARING_4 713
#define FRONTIER_MON_HOUNDOOM_4 714
#define FRONTIER_MON_DONPHAN_4 715
#define FRONTIER_MON_CLAYDOL_4 716
#define FRONTIER_MON_WAILORD_4 717
#define FRONTIER_MON_NINETALES_4 718
#define FRONTIER_MON_MACHAMP_4 719
#define FRONTIER_MON_SHUCKLE_4 720
#define FRONTIER_MON_STEELIX_4 721
#define FRONTIER_MON_TENTACRUEL_4 722
#define FRONTIER_MON_AERODACTYL_4 723
#define FRONTIER_MON_PORYGON2_4 724
#define FRONTIER_MON_GARDEVOIR_4 725
#define FRONTIER_MON_EXEGGUTOR_4 726
#define FRONTIER_MON_STARMIE_4 727
#define FRONTIER_MON_FLYGON_4 728
#define FRONTIER_MON_VENUSAUR_4 729
#define FRONTIER_MON_VAPOREON_4 730
#define FRONTIER_MON_JOLTEON_4 731
#define FRONTIER_MON_FLAREON_4 732
#define FRONTIER_MON_MEGANIUM_4 733
#define FRONTIER_MON_ESPEON_4 734
#define FRONTIER_MON_UMBREON_4 735
#define FRONTIER_MON_BLASTOISE_4 736
#define FRONTIER_MON_FERALIGATR_4 737
#define FRONTIER_MON_AGGRON_4 738
#define FRONTIER_MON_BLAZIKEN_4 739
#define FRONTIER_MON_WALREIN_4 740
#define FRONTIER_MON_SCEPTILE_4 741
#define FRONTIER_MON_CHARIZARD_4 742
#define FRONTIER_MON_TYPHLOSION_4 743
#define FRONTIER_MON_LAPRAS_4 744
#define FRONTIER_MON_CROBAT_4 745
#define FRONTIER_MON_SWAMPERT_4 746
#define FRONTIER_MON_GYARADOS_4 747
#define FRONTIER_MON_SNORLAX_4 748
#define FRONTIER_MON_KINGDRA_4 749
#define FRONTIER_MON_BLISSEY_4 750
#define FRONTIER_MON_MILOTIC_4 751
#define FRONTIER_MON_ARCANINE_4 752
#define FRONTIER_MON_SALAMENCE_4 753
#define FRONTIER_MON_METAGROSS_4 754
#define FRONTIER_MON_SLAKING_4 755
#define FRONTIER_MON_ARTICUNO_1 756
#define FRONTIER_MON_ZAPDOS_1 757
#define FRONTIER_MON_MOLTRES_1 758
#define FRONTIER_MON_RAIKOU_1 759
#define FRONTIER_MON_ENTEI_1 760
#define FRONTIER_MON_SUICUNE_1 761
#define FRONTIER_MON_REGIROCK_1 762
#define FRONTIER_MON_REGICE_1 763
#define FRONTIER_MON_REGISTEEL_1 764
#define FRONTIER_MON_LATIAS_1 765
#define FRONTIER_MON_LATIOS_1 766
#define FRONTIER_MON_ARTICUNO_2 767
#define FRONTIER_MON_ZAPDOS_2 768
#define FRONTIER_MON_MOLTRES_2 769
#define FRONTIER_MON_RAIKOU_2 770
#define FRONTIER_MON_ENTEI_2 771
#define FRONTIER_MON_SUICUNE_2 772
#define FRONTIER_MON_REGIROCK_2 773
#define FRONTIER_MON_REGICE_2 774
#define FRONTIER_MON_REGISTEEL_2 775
#define FRONTIER_MON_LATIAS_2 776
#define FRONTIER_MON_LATIOS_2 777
#define FRONTIER_MON_ARTICUNO_3 778
#define FRONTIER_MON_ZAPDOS_3 779
#define FRONTIER_MON_MOLTRES_3 780
#define FRONTIER_MON_RAIKOU_3 781
#define FRONTIER_MON_ENTEI_3 782
#define FRONTIER_MON_SUICUNE_3 783
#define FRONTIER_MON_REGIROCK_3 784
#define FRONTIER_MON_REGICE_3 785
#define FRONTIER_MON_REGISTEEL_3 786
#define FRONTIER_MON_LATIAS_3 787
#define FRONTIER_MON_LATIOS_3 788
#define FRONTIER_MON_ARTICUNO_4 789
#define FRONTIER_MON_ZAPDOS_4 790
#define FRONTIER_MON_MOLTRES_4 791
#define FRONTIER_MON_RAIKOU_4 792
#define FRONTIER_MON_ENTEI_4 793
#define FRONTIER_MON_SUICUNE_4 794
#define FRONTIER_MON_REGIROCK_4 795
#define FRONTIER_MON_REGICE_4 796
#define FRONTIER_MON_REGISTEEL_4 797
#define FRONTIER_MON_LATIAS_4 798
#define FRONTIER_MON_LATIOS_4 799
#define FRONTIER_MON_GENGAR_5 800
#define FRONTIER_MON_GENGAR_6 801
#define FRONTIER_MON_GENGAR_7 802
#define FRONTIER_MON_GENGAR_8 803
#define FRONTIER_MON_URSARING_5 804
#define FRONTIER_MON_URSARING_6 805
#define FRONTIER_MON_URSARING_7 806
#define FRONTIER_MON_URSARING_8 807
#define FRONTIER_MON_MACHAMP_5 808
#define FRONTIER_MON_MACHAMP_6 809
#define FRONTIER_MON_MACHAMP_7 810
#define FRONTIER_MON_MACHAMP_8 811
#define FRONTIER_MON_GARDEVOIR_5 812
#define FRONTIER_MON_GARDEVOIR_6 813
#define FRONTIER_MON_GARDEVOIR_7 814
#define FRONTIER_MON_GARDEVOIR_8 815
#define FRONTIER_MON_STARMIE_5 816
#define FRONTIER_MON_STARMIE_6 817
#define FRONTIER_MON_STARMIE_7 818
#define FRONTIER_MON_STARMIE_8 819
#define FRONTIER_MON_LAPRAS_5 820
#define FRONTIER_MON_LAPRAS_6 821
#define FRONTIER_MON_LAPRAS_7 822
#define FRONTIER_MON_LAPRAS_8 823
#define FRONTIER_MON_SNORLAX_5 824
#define FRONTIER_MON_SNORLAX_6 825
#define FRONTIER_MON_SNORLAX_7 826
#define FRONTIER_MON_SNORLAX_8 827
#define FRONTIER_MON_SALAMENCE_5 828
#define FRONTIER_MON_SALAMENCE_6 829
#define FRONTIER_MON_SALAMENCE_7 830
#define FRONTIER_MON_SALAMENCE_8 831
#define FRONTIER_MON_METAGROSS_5 832
#define FRONTIER_MON_METAGROSS_6 833
#define FRONTIER_MON_METAGROSS_7 834
#define FRONTIER_MON_METAGROSS_8 835
#define FRONTIER_MON_REGIROCK_5 836
#define FRONTIER_MON_REGIROCK_6 837
#define FRONTIER_MON_REGICE_5 838
#define FRONTIER_MON_REGICE_6 839
#define FRONTIER_MON_REGISTEEL_5 840
#define FRONTIER_MON_REGISTEEL_6 841
#define FRONTIER_MON_LATIAS_5 842
#define FRONTIER_MON_LATIAS_6 843
#define FRONTIER_MON_LATIAS_7 844
#define FRONTIER_MON_LATIAS_8 845
#define FRONTIER_MON_LATIOS_5 846
#define FRONTIER_MON_LATIOS_6 847
#define FRONTIER_MON_LATIOS_7 848
#define FRONTIER_MON_LATIOS_8 849
#define FRONTIER_MONS_HIGH_TIER 849 // Mons above this point can only appear > level 50
#define FRONTIER_MON_DRAGONITE_1 850
#define FRONTIER_MON_DRAGONITE_2 851
#define FRONTIER_MON_DRAGONITE_3 852
#define FRONTIER_MON_DRAGONITE_4 853
#define FRONTIER_MON_DRAGONITE_5 854
#define FRONTIER_MON_DRAGONITE_6 855
#define FRONTIER_MON_DRAGONITE_7 856
#define FRONTIER_MON_DRAGONITE_8 857
#define FRONTIER_MON_DRAGONITE_9 858
#define FRONTIER_MON_DRAGONITE_10 859
#define FRONTIER_MON_TYRANITAR_1 860
#define FRONTIER_MON_TYRANITAR_2 861
#define FRONTIER_MON_TYRANITAR_3 862
#define FRONTIER_MON_TYRANITAR_4 863
#define FRONTIER_MON_TYRANITAR_5 864
#define FRONTIER_MON_TYRANITAR_6 865
#define FRONTIER_MON_TYRANITAR_7 866
#define FRONTIER_MON_TYRANITAR_8 867
#define FRONTIER_MON_TYRANITAR_9 868
#define FRONTIER_MON_TYRANITAR_10 869
#define FRONTIER_MON_ARTICUNO_5 870
#define FRONTIER_MON_ARTICUNO_6 871
#define FRONTIER_MON_ZAPDOS_5 872
#define FRONTIER_MON_ZAPDOS_6 873
#define FRONTIER_MON_MOLTRES_5 874
#define FRONTIER_MON_MOLTRES_6 875
#define FRONTIER_MON_RAIKOU_5 876
#define FRONTIER_MON_RAIKOU_6 877
#define FRONTIER_MON_ENTEI_5 878
#define FRONTIER_MON_ENTEI_6 879
#define FRONTIER_MON_SUICUNE_5 880
#define FRONTIER_MON_SUICUNE_6 881
#define NUM_FRONTIER_MONS 882
#endif //GUARD_CONSTANTS_BATTLE_FRONTIER_MONS_H

View File

@ -0,0 +1,309 @@
#ifndef GUARD_CONSTANTS_BATTLE_FRONTIER_TRAINERS_H
#define GUARD_CONSTANTS_BATTLE_FRONTIER_TRAINERS_H
#define FRONTIER_TRAINER_BRADY 0
#define FRONTIER_TRAINER_CONNER 1
#define FRONTIER_TRAINER_BRADLEY 2
#define FRONTIER_TRAINER_CYBIL 3
#define FRONTIER_TRAINER_RODETTE 4
#define FRONTIER_TRAINER_PEGGY 5
#define FRONTIER_TRAINER_KEITH 6
#define FRONTIER_TRAINER_GRAYSON 7
#define FRONTIER_TRAINER_GLENN 8
#define FRONTIER_TRAINER_LILIANA 9
#define FRONTIER_TRAINER_ELISE 10
#define FRONTIER_TRAINER_ZOEY 11
#define FRONTIER_TRAINER_MANUEL 12
#define FRONTIER_TRAINER_RUSS 13
#define FRONTIER_TRAINER_DUSTIN 14
#define FRONTIER_TRAINER_TINA 15
#define FRONTIER_TRAINER_GILLIAN1 16
#define FRONTIER_TRAINER_ZOE 17
#define FRONTIER_TRAINER_CHEN 18
#define FRONTIER_TRAINER_AL 19
#define FRONTIER_TRAINER_MITCH 20
#define FRONTIER_TRAINER_ANNE 21
#define FRONTIER_TRAINER_ALIZE 22
#define FRONTIER_TRAINER_LAUREN 23
#define FRONTIER_TRAINER_KIPP 24
#define FRONTIER_TRAINER_JASON 25
#define FRONTIER_TRAINER_JOHN 26
#define FRONTIER_TRAINER_ANN 27
#define FRONTIER_TRAINER_EILEEN 28
#define FRONTIER_TRAINER_CARLIE 29
#define FRONTIER_TRAINER_GORDON 30
#define FRONTIER_TRAINER_AYDEN 31
#define FRONTIER_TRAINER_MARCO 32
#define FRONTIER_TRAINER_CIERRA 33
#define FRONTIER_TRAINER_MARCY 34
#define FRONTIER_TRAINER_KATHY 35
#define FRONTIER_TRAINER_PEYTON 36
#define FRONTIER_TRAINER_JULIAN 37
#define FRONTIER_TRAINER_QUINN 38
#define FRONTIER_TRAINER_HAYLEE 39
#define FRONTIER_TRAINER_AMANDA 40
#define FRONTIER_TRAINER_STACY 41
#define FRONTIER_TRAINER_RAFAEL 42
#define FRONTIER_TRAINER_OLIVER 43
#define FRONTIER_TRAINER_PAYTON 44
#define FRONTIER_TRAINER_PAMELA 45
#define FRONTIER_TRAINER_ELIZA 46
#define FRONTIER_TRAINER_MARISA 47
#define FRONTIER_TRAINER_LEWIS 48
#define FRONTIER_TRAINER_YOSHI 49
#define FRONTIER_TRAINER_DESTIN 50
#define FRONTIER_TRAINER_KEON 51
#define FRONTIER_TRAINER_STUART 52
#define FRONTIER_TRAINER_NESTOR 53
#define FRONTIER_TRAINER_DERRICK 54
#define FRONTIER_TRAINER_BRYSON 55
#define FRONTIER_TRAINER_CLAYTON 56
#define FRONTIER_TRAINER_TRENTON 57
#define FRONTIER_TRAINER_JENSON 58
#define FRONTIER_TRAINER_WESLEY 59
#define FRONTIER_TRAINER_ANTON 60
#define FRONTIER_TRAINER_LAWSON 61
#define FRONTIER_TRAINER_SAMMY 62
#define FRONTIER_TRAINER_ARNIE 63
#define FRONTIER_TRAINER_ADRIAN 64
#define FRONTIER_TRAINER_TRISTAN 65
#define FRONTIER_TRAINER_JULIANA 66
#define FRONTIER_TRAINER_RYLEE 67
#define FRONTIER_TRAINER_CHELSEA 68
#define FRONTIER_TRAINER_DANELA 69
#define FRONTIER_TRAINER_LIZBETH 70
#define FRONTIER_TRAINER_AMELIA 71
#define FRONTIER_TRAINER_JILLIAN 72
#define FRONTIER_TRAINER_ABBIE 73
#define FRONTIER_TRAINER_BRIANA 74
#define FRONTIER_TRAINER_ANTONIO 75
#define FRONTIER_TRAINER_JADEN 76
#define FRONTIER_TRAINER_DAKOTA 77
#define FRONTIER_TRAINER_BRAYDEN 78
#define FRONTIER_TRAINER_CORSON 79
#define FRONTIER_TRAINER_TREVIN 80
#define FRONTIER_TRAINER_PATRICK 81
#define FRONTIER_TRAINER_KADEN 82
#define FRONTIER_TRAINER_MAXWELL 83
#define FRONTIER_TRAINER_DARYL 84
#define FRONTIER_TRAINER_KENNETH 85
#define FRONTIER_TRAINER_RICH 86
#define FRONTIER_TRAINER_CADEN 87
#define FRONTIER_TRAINER_MARLON 88
#define FRONTIER_TRAINER_NASH 89
#define FRONTIER_TRAINER_ROBBY 90
#define FRONTIER_TRAINER_REECE 91
#define FRONTIER_TRAINER_KATHRYN 92
#define FRONTIER_TRAINER_ELLEN 93
#define FRONTIER_TRAINER_RAMON 94
#define FRONTIER_TRAINER_ARTHUR 95
#define FRONTIER_TRAINER_ALONDRA 96
#define FRONTIER_TRAINER_ADRIANA 97
#define FRONTIER_TRAINER_MALIK 98
#define FRONTIER_TRAINER_JILL 99
#define FRONTIER_TRAINER_ERIK 100
#define FRONTIER_TRAINER_YAZMIN 101
#define FRONTIER_TRAINER_JAMAL 102
#define FRONTIER_TRAINER_LESLIE 103
#define FRONTIER_TRAINER_DAVE 104
#define FRONTIER_TRAINER_CARLO 105
#define FRONTIER_TRAINER_EMILIA 106
#define FRONTIER_TRAINER_DALIA 107
#define FRONTIER_TRAINER_HITOMI 108
#define FRONTIER_TRAINER_RICARDO 109
#define FRONTIER_TRAINER_SHIZUKA 110
#define FRONTIER_TRAINER_JOANA 111
#define FRONTIER_TRAINER_KELLY 112
#define FRONTIER_TRAINER_RAYNA 113
#define FRONTIER_TRAINER_EVAN 114
#define FRONTIER_TRAINER_JORDAN 115
#define FRONTIER_TRAINER_JOEL 116
#define FRONTIER_TRAINER_KRISTEN 117
#define FRONTIER_TRAINER_SELPHY 118
#define FRONTIER_TRAINER_CHLOE 119
#define FRONTIER_TRAINER_NORTON 120
#define FRONTIER_TRAINER_LUKAS 121
#define FRONTIER_TRAINER_ZACH 122
#define FRONTIER_TRAINER_KAITLYN 123
#define FRONTIER_TRAINER_BREANNA 124
#define FRONTIER_TRAINER_KENDRA 125
#define FRONTIER_TRAINER_MOLLY 126
#define FRONTIER_TRAINER_JAZMIN 127
#define FRONTIER_TRAINER_KELSEY 128
#define FRONTIER_TRAINER_JALEN 129
#define FRONTIER_TRAINER_GRIFFEN 130
#define FRONTIER_TRAINER_XANDER 131
#define FRONTIER_TRAINER_MARVIN 132
#define FRONTIER_TRAINER_BRENNAN 133
#define FRONTIER_TRAINER_BALEY 134
#define FRONTIER_TRAINER_ZACKARY 135
#define FRONTIER_TRAINER_GABRIEL 136
#define FRONTIER_TRAINER_EMILY 137
#define FRONTIER_TRAINER_JORDYN 138
#define FRONTIER_TRAINER_SOFIA 139
#define FRONTIER_TRAINER_BRADEN 140
#define FRONTIER_TRAINER_KAYDEN 141
#define FRONTIER_TRAINER_COOPER 142
#define FRONTIER_TRAINER_JULIA 143
#define FRONTIER_TRAINER_AMARA 144
#define FRONTIER_TRAINER_LYNN 145
#define FRONTIER_TRAINER_JOVAN 146
#define FRONTIER_TRAINER_DOMINIC 147
#define FRONTIER_TRAINER_NIKOLAS 148
#define FRONTIER_TRAINER_VALERIA 149
#define FRONTIER_TRAINER_DELANEY 150
#define FRONTIER_TRAINER_MEGHAN 151
#define FRONTIER_TRAINER_ROBERTO 152
#define FRONTIER_TRAINER_DAMIAN 153
#define FRONTIER_TRAINER_BRODY 154
#define FRONTIER_TRAINER_GRAHAM 155
#define FRONTIER_TRAINER_TYLOR 156
#define FRONTIER_TRAINER_JAREN 157
#define FRONTIER_TRAINER_CORDELL 158
#define FRONTIER_TRAINER_JAZLYN 159
#define FRONTIER_TRAINER_ZACHERY 160
#define FRONTIER_TRAINER_JOHAN 161
#define FRONTIER_TRAINER_SHEA 162
#define FRONTIER_TRAINER_KAILA 163
#define FRONTIER_TRAINER_ISIAH 164
#define FRONTIER_TRAINER_GARRETT 165
#define FRONTIER_TRAINER_HAYLIE 166
#define FRONTIER_TRAINER_MEGAN 167
#define FRONTIER_TRAINER_ISSAC 168
#define FRONTIER_TRAINER_QUINTON 169
#define FRONTIER_TRAINER_SALMA 170
#define FRONTIER_TRAINER_ANSLEY 171
#define FRONTIER_TRAINER_HOLDEN 172
#define FRONTIER_TRAINER_LUCA 173
#define FRONTIER_TRAINER_JAMISON 174
#define FRONTIER_TRAINER_GUNNAR 175
#define FRONTIER_TRAINER_CRAIG 176
#define FRONTIER_TRAINER_PIERCE 177
#define FRONTIER_TRAINER_REGINA 178
#define FRONTIER_TRAINER_ALISON 179
#define FRONTIER_TRAINER_HANK 180
#define FRONTIER_TRAINER_EARL 181
#define FRONTIER_TRAINER_RAMIRO 182
#define FRONTIER_TRAINER_HUNTER 183
#define FRONTIER_TRAINER_AIDEN 184
#define FRONTIER_TRAINER_XAVIER 185
#define FRONTIER_TRAINER_CLINTON 186
#define FRONTIER_TRAINER_JESSE 187
#define FRONTIER_TRAINER_EDUARDO 188
#define FRONTIER_TRAINER_HAL 189
#define FRONTIER_TRAINER_GAGE 190
#define FRONTIER_TRAINER_ARNOLD 191
#define FRONTIER_TRAINER_JARRETT 192
#define FRONTIER_TRAINER_GARETT 193
#define FRONTIER_TRAINER_EMANUEL 194
#define FRONTIER_TRAINER_GUSTAVO 195
#define FRONTIER_TRAINER_KAMERON 196
#define FRONTIER_TRAINER_ALFREDO 197
#define FRONTIER_TRAINER_RUBEN 198
#define FRONTIER_TRAINER_LAMAR 199
#define FRONTIER_TRAINER_JAXON 200
#define FRONTIER_TRAINER_LOGAN 201
#define FRONTIER_TRAINER_EMILEE 202
#define FRONTIER_TRAINER_JOSIE 203
#define FRONTIER_TRAINER_ARMANDO 204
#define FRONTIER_TRAINER_SKYLER 205
#define FRONTIER_TRAINER_RUTH 206
#define FRONTIER_TRAINER_MELODY 207
#define FRONTIER_TRAINER_PEDRO 208
#define FRONTIER_TRAINER_ERICK 209
#define FRONTIER_TRAINER_ELAINE 210
#define FRONTIER_TRAINER_JOYCE 211
#define FRONTIER_TRAINER_TODD 212
#define FRONTIER_TRAINER_GAVIN 213
#define FRONTIER_TRAINER_MALORY 214
#define FRONTIER_TRAINER_ESTHER 215
#define FRONTIER_TRAINER_OSCAR 216
#define FRONTIER_TRAINER_WILSON 217
#define FRONTIER_TRAINER_CLARE 218
#define FRONTIER_TRAINER_TESS 219
#define FRONTIER_TRAINER_LEON 220
#define FRONTIER_TRAINER_ALONZO 221
#define FRONTIER_TRAINER_VINCE 222
#define FRONTIER_TRAINER_BRYON 223
#define FRONTIER_TRAINER_AVA 224
#define FRONTIER_TRAINER_MIRIAM 225
#define FRONTIER_TRAINER_CARRIE 226
#define FRONTIER_TRAINER_GILLIAN2 227
#define FRONTIER_TRAINER_TYLER 228
#define FRONTIER_TRAINER_CHAZ 229
#define FRONTIER_TRAINER_NELSON 230
#define FRONTIER_TRAINER_SHANIA 231
#define FRONTIER_TRAINER_STELLA 232
#define FRONTIER_TRAINER_DORINE 233
#define FRONTIER_TRAINER_MADDOX 234
#define FRONTIER_TRAINER_DAVIN 235
#define FRONTIER_TRAINER_TREVON 236
#define FRONTIER_TRAINER_MATEO 237
#define FRONTIER_TRAINER_BRET 238
#define FRONTIER_TRAINER_RAUL 239
#define FRONTIER_TRAINER_KAY 240
#define FRONTIER_TRAINER_ELENA 241
#define FRONTIER_TRAINER_ALANA 242
#define FRONTIER_TRAINER_ALEXAS 243
#define FRONTIER_TRAINER_WESTON 244
#define FRONTIER_TRAINER_JASPER 245
#define FRONTIER_TRAINER_NADIA 246
#define FRONTIER_TRAINER_MIRANDA 247
#define FRONTIER_TRAINER_EMMA 248
#define FRONTIER_TRAINER_ROLANDO 249
#define FRONTIER_TRAINER_STANLY 250
#define FRONTIER_TRAINER_DARIO 251
#define FRONTIER_TRAINER_KARLEE 252
#define FRONTIER_TRAINER_JAYLIN 253
#define FRONTIER_TRAINER_INGRID 254
#define FRONTIER_TRAINER_DELILAH 255
#define FRONTIER_TRAINER_CARLY 256
#define FRONTIER_TRAINER_LEXIE 257
#define FRONTIER_TRAINER_MILLER 258
#define FRONTIER_TRAINER_MARV 259
#define FRONTIER_TRAINER_LAYTON 260
#define FRONTIER_TRAINER_BROOKS 261
#define FRONTIER_TRAINER_GREGORY 262
#define FRONTIER_TRAINER_REESE 263
#define FRONTIER_TRAINER_MASON 264
#define FRONTIER_TRAINER_TOBY 265
#define FRONTIER_TRAINER_DOROTHY 266
#define FRONTIER_TRAINER_PIPER 267
#define FRONTIER_TRAINER_FINN 268
#define FRONTIER_TRAINER_SAMIR 269
#define FRONTIER_TRAINER_FIONA 270
#define FRONTIER_TRAINER_GLORIA 271
#define FRONTIER_TRAINER_NICO 272
#define FRONTIER_TRAINER_JEREMY 273
#define FRONTIER_TRAINER_CAITLIN 274
#define FRONTIER_TRAINER_REENA 275
#define FRONTIER_TRAINER_AVERY 276
#define FRONTIER_TRAINER_LIAM 277
#define FRONTIER_TRAINER_THEO 278
#define FRONTIER_TRAINER_BAILEY 279
#define FRONTIER_TRAINER_HUGO 280
#define FRONTIER_TRAINER_BRYCE 281
#define FRONTIER_TRAINER_GIDEON 282
#define FRONTIER_TRAINER_TRISTON 283
#define FRONTIER_TRAINER_CHARLES 284
#define FRONTIER_TRAINER_RAYMOND 285
#define FRONTIER_TRAINER_DIRK 286
#define FRONTIER_TRAINER_HAROLD 287
#define FRONTIER_TRAINER_OMAR 288
#define FRONTIER_TRAINER_PETER 289
#define FRONTIER_TRAINER_DEV 290
#define FRONTIER_TRAINER_COREY 291
#define FRONTIER_TRAINER_ANDRE 292
#define FRONTIER_TRAINER_FERRIS 293
#define FRONTIER_TRAINER_ALIVIA 294
#define FRONTIER_TRAINER_PAIGE 295
#define FRONTIER_TRAINER_ANYA 296
#define FRONTIER_TRAINER_DAWN 297
#define FRONTIER_TRAINER_ABBY 298
#define FRONTIER_TRAINER_GRETEL 299
#define FRONTIER_TRAINERS_COUNT 300
// special trainer IDs begin at 300, see constants/trainers.h
#endif // GUARD_CONSTANTS_BATTLE_FRONTIER_TRAINERS_H

View File

@ -0,0 +1,221 @@
#ifndef GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
#define GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
#define EFFECT_HIT 0
#define EFFECT_SLEEP 1
#define EFFECT_POISON_HIT 2
#define EFFECT_ABSORB 3
#define EFFECT_BURN_HIT 4
#define EFFECT_FREEZE_HIT 5
#define EFFECT_PARALYZE_HIT 6
#define EFFECT_EXPLOSION 7
#define EFFECT_DREAM_EATER 8
#define EFFECT_MIRROR_MOVE 9
#define EFFECT_ATTACK_UP 10
#define EFFECT_DEFENSE_UP 11
#define EFFECT_SPEED_UP 12
#define EFFECT_SPECIAL_ATTACK_UP 13
#define EFFECT_SPECIAL_DEFENSE_UP 14
#define EFFECT_ACCURACY_UP 15
#define EFFECT_EVASION_UP 16
#define EFFECT_ALWAYS_HIT 17
#define EFFECT_ATTACK_DOWN 18
#define EFFECT_DEFENSE_DOWN 19
#define EFFECT_SPEED_DOWN 20
#define EFFECT_SPECIAL_ATTACK_DOWN 21 // unused
#define EFFECT_SPECIAL_DEFENSE_DOWN 22 // unused
#define EFFECT_ACCURACY_DOWN 23
#define EFFECT_EVASION_DOWN 24
#define EFFECT_HAZE 25
#define EFFECT_BIDE 26
#define EFFECT_RAMPAGE 27
#define EFFECT_ROAR 28
#define EFFECT_MULTI_HIT 29
#define EFFECT_CONVERSION 30
#define EFFECT_FLINCH_HIT 31
#define EFFECT_RESTORE_HP 32
#define EFFECT_TOXIC 33
#define EFFECT_PAY_DAY 34
#define EFFECT_LIGHT_SCREEN 35
#define EFFECT_TRI_ATTACK 36
#define EFFECT_REST 37
#define EFFECT_OHKO 38
#define EFFECT_RAZOR_WIND 39
#define EFFECT_SUPER_FANG 40
#define EFFECT_DRAGON_RAGE 41
#define EFFECT_TRAP 42
#define EFFECT_HIGH_CRITICAL 43
#define EFFECT_DOUBLE_HIT 44
#define EFFECT_RECOIL_IF_MISS 45
#define EFFECT_MIST 46
#define EFFECT_FOCUS_ENERGY 47
#define EFFECT_RECOIL 48
#define EFFECT_CONFUSE 49
#define EFFECT_ATTACK_UP_2 50
#define EFFECT_DEFENSE_UP_2 51
#define EFFECT_SPEED_UP_2 52
#define EFFECT_SPECIAL_ATTACK_UP_2 53
#define EFFECT_SPECIAL_DEFENSE_UP_2 54
#define EFFECT_ACCURACY_UP_2 55
#define EFFECT_EVASION_UP_2 56
#define EFFECT_TRANSFORM 57
#define EFFECT_ATTACK_DOWN_2 58
#define EFFECT_DEFENSE_DOWN_2 59
#define EFFECT_SPEED_DOWN_2 60
#define EFFECT_SPECIAL_ATTACK_DOWN_2 61
#define EFFECT_SPECIAL_DEFENSE_DOWN_2 62
#define EFFECT_ACCURACY_DOWN_2 63
#define EFFECT_EVASION_DOWN_2 64
#define EFFECT_REFLECT 65
#define EFFECT_POISON 66
#define EFFECT_PARALYZE 67
#define EFFECT_ATTACK_DOWN_HIT 68
#define EFFECT_DEFENSE_DOWN_HIT 69
#define EFFECT_SPEED_DOWN_HIT 70
#define EFFECT_SPECIAL_ATTACK_DOWN_HIT 71
#define EFFECT_SPECIAL_DEFENSE_DOWN_HIT 72
#define EFFECT_ACCURACY_DOWN_HIT 73
#define EFFECT_EVASION_DOWN_HIT 74
#define EFFECT_SKY_ATTACK 75
#define EFFECT_CONFUSE_HIT 76
#define EFFECT_TWINEEDLE 77
#define EFFECT_VITAL_THROW 78
#define EFFECT_SUBSTITUTE 79
#define EFFECT_RECHARGE 80
#define EFFECT_RAGE 81
#define EFFECT_MIMIC 82
#define EFFECT_METRONOME 83
#define EFFECT_LEECH_SEED 84
#define EFFECT_SPLASH 85
#define EFFECT_DISABLE 86
#define EFFECT_LEVEL_DAMAGE 87
#define EFFECT_PSYWAVE 88
#define EFFECT_COUNTER 89
#define EFFECT_ENCORE 90
#define EFFECT_PAIN_SPLIT 91
#define EFFECT_SNORE 92
#define EFFECT_CONVERSION_2 93
#define EFFECT_LOCK_ON 94
#define EFFECT_SKETCH 95
#define EFFECT_UNUSED_60 96 // thaw
#define EFFECT_SLEEP_TALK 97
#define EFFECT_DESTINY_BOND 98
#define EFFECT_FLAIL 99
#define EFFECT_SPITE 100
#define EFFECT_FALSE_SWIPE 101
#define EFFECT_HEAL_BELL 102
#define EFFECT_QUICK_ATTACK 103
#define EFFECT_TRIPLE_KICK 104
#define EFFECT_THIEF 105
#define EFFECT_MEAN_LOOK 106
#define EFFECT_NIGHTMARE 107
#define EFFECT_MINIMIZE 108
#define EFFECT_CURSE 109
#define EFFECT_UNUSED_6E 110
#define EFFECT_PROTECT 111
#define EFFECT_SPIKES 112
#define EFFECT_FORESIGHT 113
#define EFFECT_PERISH_SONG 114
#define EFFECT_SANDSTORM 115
#define EFFECT_ENDURE 116
#define EFFECT_ROLLOUT 117
#define EFFECT_SWAGGER 118
#define EFFECT_FURY_CUTTER 119
#define EFFECT_ATTRACT 120
#define EFFECT_RETURN 121
#define EFFECT_PRESENT 122
#define EFFECT_FRUSTRATION 123
#define EFFECT_SAFEGUARD 124
#define EFFECT_THAW_HIT 125
#define EFFECT_MAGNITUDE 126
#define EFFECT_BATON_PASS 127
#define EFFECT_PURSUIT 128
#define EFFECT_RAPID_SPIN 129
#define EFFECT_SONICBOOM 130
#define EFFECT_UNUSED_83 131
#define EFFECT_MORNING_SUN 132
#define EFFECT_SYNTHESIS 133
#define EFFECT_MOONLIGHT 134
#define EFFECT_HIDDEN_POWER 135
#define EFFECT_RAIN_DANCE 136
#define EFFECT_SUNNY_DAY 137
#define EFFECT_DEFENSE_UP_HIT 138
#define EFFECT_ATTACK_UP_HIT 139
#define EFFECT_ALL_STATS_UP_HIT 140
#define EFFECT_UNUSED_8D 141 // incomplete fake out in gen 2
#define EFFECT_BELLY_DRUM 142
#define EFFECT_PSYCH_UP 143
#define EFFECT_MIRROR_COAT 144
#define EFFECT_SKULL_BASH 145
#define EFFECT_TWISTER 146
#define EFFECT_EARTHQUAKE 147
#define EFFECT_FUTURE_SIGHT 148
#define EFFECT_GUST 149
#define EFFECT_FLINCH_MINIMIZE_HIT 150 // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM
#define EFFECT_SOLAR_BEAM 151
#define EFFECT_THUNDER 152
#define EFFECT_TELEPORT 153
#define EFFECT_BEAT_UP 154
#define EFFECT_SEMI_INVULNERABLE 155
#define EFFECT_DEFENSE_CURL 156
#define EFFECT_SOFTBOILED 157
#define EFFECT_FAKE_OUT 158
#define EFFECT_UPROAR 159
#define EFFECT_STOCKPILE 160
#define EFFECT_SPIT_UP 161
#define EFFECT_SWALLOW 162
#define EFFECT_UNUSED_A3 163
#define EFFECT_HAIL 164
#define EFFECT_TORMENT 165
#define EFFECT_FLATTER 166
#define EFFECT_WILL_O_WISP 167
#define EFFECT_MEMENTO 168
#define EFFECT_FACADE 169
#define EFFECT_FOCUS_PUNCH 170
#define EFFECT_SMELLINGSALT 171
#define EFFECT_FOLLOW_ME 172
#define EFFECT_NATURE_POWER 173
#define EFFECT_CHARGE 174
#define EFFECT_TAUNT 175
#define EFFECT_HELPING_HAND 176
#define EFFECT_TRICK 177
#define EFFECT_ROLE_PLAY 178
#define EFFECT_WISH 179
#define EFFECT_ASSIST 180
#define EFFECT_INGRAIN 181
#define EFFECT_SUPERPOWER 182
#define EFFECT_MAGIC_COAT 183
#define EFFECT_RECYCLE 184
#define EFFECT_REVENGE 185
#define EFFECT_BRICK_BREAK 186
#define EFFECT_YAWN 187
#define EFFECT_KNOCK_OFF 188
#define EFFECT_ENDEAVOR 189
#define EFFECT_ERUPTION 190
#define EFFECT_SKILL_SWAP 191
#define EFFECT_IMPRISON 192
#define EFFECT_REFRESH 193
#define EFFECT_GRUDGE 194
#define EFFECT_SNATCH 195
#define EFFECT_LOW_KICK 196
#define EFFECT_SECRET_POWER 197
#define EFFECT_DOUBLE_EDGE 198
#define EFFECT_TEETER_DANCE 199
#define EFFECT_BLAZE_KICK 200
#define EFFECT_MUD_SPORT 201
#define EFFECT_POISON_FANG 202
#define EFFECT_WEATHER_BALL 203
#define EFFECT_OVERHEAT 204
#define EFFECT_TICKLE 205
#define EFFECT_COSMIC_POWER 206
#define EFFECT_SKY_UPPERCUT 207
#define EFFECT_BULK_UP 208
#define EFFECT_POISON_TAIL 209
#define EFFECT_WATER_SPORT 210
#define EFFECT_CALM_MIND 211
#define EFFECT_DRAGON_DANCE 212
#define EFFECT_CAMOUFLAGE 213
#define NUM_BATTLE_MOVE_EFFECTS 214
#endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H

View File

@ -0,0 +1,29 @@
#ifndef GUARD_CONSTANTS_BATTLE_PALACE_H
#define GUARD_CONSTANTS_BATTLE_PALACE_H
#define BATTLE_PALACE_FUNC_INIT 0
#define BATTLE_PALACE_FUNC_GET_DATA 1
#define BATTLE_PALACE_FUNC_SET_DATA 2
#define BATTLE_PALACE_FUNC_GET_COMMENT_ID 3
#define BATTLE_PALACE_FUNC_SET_OPPONENT 4
#define BATTLE_PALACE_FUNC_GET_OPPONENT_INTRO 5
#define BATTLE_PALACE_FUNC_INCREMENT_STREAK 6
#define BATTLE_PALACE_FUNC_SAVE 7
#define BATTLE_PALACE_FUNC_SET_PRIZE 8
#define BATTLE_PALACE_FUNC_GIVE_PRIZE 9
#define PALACE_DATA_PRIZE 0
#define PALACE_DATA_WIN_STREAK 1
#define PALACE_DATA_WIN_STREAK_ACTIVE 2
// Pokemon in Battle Palace have a move "group" type preference depending on nature
#define PALACE_MOVE_GROUP_ATTACK 0
#define PALACE_MOVE_GROUP_DEFENSE 1
#define PALACE_MOVE_GROUP_SUPPORT 2
// In palace doubles battles pokemon have a target preference depending on nature
#define PALACE_TARGET_STRONGER 0
#define PALACE_TARGET_WEAKER 1
#define PALACE_TARGET_RANDOM 2
#endif //GUARD_CONSTANTS_BATTLE_PALACE_H

View File

@ -0,0 +1,72 @@
#ifndef GUARD_CONSTANTS_BATTLE_PIKE_H
#define GUARD_CONSTANTS_BATTLE_PIKE_H
#define PIKE_ROOM_SINGLE_BATTLE 0
#define PIKE_ROOM_HEAL_FULL 1
#define PIKE_ROOM_NPC 2
#define PIKE_ROOM_STATUS 3
#define PIKE_ROOM_HEAL_PART 4
#define PIKE_ROOM_WILD_MONS 5
#define PIKE_ROOM_HARD_BATTLE 6
#define PIKE_ROOM_DOUBLE_BATTLE 7
#define PIKE_ROOM_BRAIN 8
#define NUM_PIKE_ROOM_TYPES 9
#define PIKE_ROOM_LEFT 0
#define PIKE_ROOM_CENTER 1
#define PIKE_ROOM_RIGHT 2
#define PIKE_HINT_NOSTALGIA 0
#define PIKE_HINT_WHISPERING 1
#define PIKE_HINT_POKEMON 2
#define PIKE_HINT_PEOPLE 3
#define PIKE_HINT_BRAIN 4
// For the room with a status effect.
#define PIKE_STATUSMON_KIRLIA 0
#define PIKE_STATUSMON_DUSCLOPS 1
#define PIKE_STATUS_FREEZE 0
#define PIKE_STATUS_BURN 1
#define PIKE_STATUS_TOXIC 2
#define PIKE_STATUS_PARALYSIS 3
#define PIKE_STATUS_SLEEP 4
// Function IDs for sBattlePikeFunctions / CallBattlePikeFunction
#define BATTLE_PIKE_FUNC_SET_ROOM_TYPE 0
#define BATTLE_PIKE_FUNC_GET_DATA 1
#define BATTLE_PIKE_FUNC_SET_DATA 2
#define BATTLE_PIKE_FUNC_IS_FINAL_ROOM 3
#define BATTLE_PIKE_FUNC_SET_ROOM_OBJECTS 4
#define BATTLE_PIKE_FUNC_GET_ROOM_TYPE 5
#define BATTLE_PIKE_FUNC_SET_IN_WILD_MON_ROOM 6
#define BATTLE_PIKE_FUNC_CLEAR_IN_WILD_MON_ROOM 7
#define BATTLE_PIKE_FUNC_SAVE 8
#define BATTLE_PIKE_FUNC_DUMMY_1 9
#define BATTLE_PIKE_FUNC_DUMMY_2 10
#define BATTLE_PIKE_FUNC_GET_ROOM_STATUS 11
#define BATTLE_PIKE_FUNC_GET_ROOM_STATUS_MON 12
#define BATTLE_PIKE_FUNC_HEAL_ONE_TWO_MONS 13
#define BATTLE_PIKE_FUNC_BUFFER_NPC_MSG 14
#define BATTLE_PIKE_FUNC_STATUS_SCREEN_FLASH 15
#define BATTLE_PIKE_FUNC_IS_IN 16
#define BATTLE_PIKE_FUNC_SET_HINT_ROOM 17
#define BATTLE_PIKE_FUNC_GET_HINT_ROOM_ID 18
#define BATTLE_PIKE_FUNC_GET_ROOM_TYPE_HINT 19
#define BATTLE_PIKE_FUNC_CLEAR_TRAINER_IDS 20
#define BATTLE_PIKE_FUNC_GET_TRAINER_INTRO 21
#define BATTLE_PIKE_FUNC_GET_QUEEN_FIGHT_TYPE 22
#define BATTLE_PIKE_FUNC_HEAL_MONS_BEFORE_QUEEN 23
#define BATTLE_PIKE_FUNC_SET_HEAL_ROOMS_DISABLED 24
#define BATTLE_PIKE_FUNC_IS_PARTY_FULL_HEALTH 25
#define BATTLE_PIKE_FUNC_SAVE_HELD_ITEMS 26
#define BATTLE_PIKE_FUNC_RESET_HELD_ITEMS 27
#define BATTLE_PIKE_FUNC_INIT 28
#define PIKE_DATA_PRIZE 0
#define PIKE_DATA_WIN_STREAK 1
#define PIKE_DATA_RECORD_STREAK 2
#define PIKE_DATA_TOTAL_STREAKS 3
#define PIKE_DATA_WIN_STREAK_ACTIVE 4
#endif // GUARD_CONSTANTS_BATTLE_PIKE_H

View File

@ -0,0 +1,58 @@
#ifndef GUARD_CONSTANTS_BATTLE_PYRAMID_H
#define GUARD_CONSTANTS_BATTLE_PYRAMID_H
#define TOTAL_ROUNDS 20
#define PICKUP_ITEMS_PER_ROUND 10
#define HINT_EXIT_DIRECTION 0
#define HINT_REMAINING_ITEMS 1
#define HINT_REMAINING_TRAINERS 2
#define HINT_EXIT_SHORT_REMAINING_TRAINERS 3
#define HINT_EXIT_SHORT_REMAINING_ITEMS 4
#define HINT_EXIT_MEDIUM_REMAINING_TRAINERS 5
#define HINT_EXIT_MEDIUM_REMAINING_ITEMS 6
#define HINT_EXIT_FAR_REMAINING_TRAINERS 7
#define HINT_EXIT_FAR_REMAINING_ITEMS 8
#define OBJ_TRAINERS 0
#define OBJ_ITEMS 1
#define OBJ_POSITIONS_UNIFORM 0
#define OBJ_POSITIONS_IN_AND_NEAR_ENTRANCE 1
#define OBJ_POSITIONS_IN_AND_NEAR_EXIT 2
#define OBJ_POSITIONS_NEAR_ENTRANCE 3
#define OBJ_POSITIONS_NEAR_EXIT 4
// Functions IDs for sBattlePyramidFunctions / CallBattlePyramidFunction
#define BATTLE_PYRAMID_FUNC_INIT 0
#define BATTLE_PYRAMID_FUNC_GET_DATA 1
#define BATTLE_PYRAMID_FUNC_SET_DATA 2
#define BATTLE_PYRAMID_FUNC_SAVE 3
#define BATTLE_PYRAMID_FUNC_SET_PRIZE 4
#define BATTLE_PYRAMID_FUNC_GIVE_PRIZE 5 // unused
#define BATTLE_PYRAMID_FUNC_SEED_FLOOR 6
#define BATTLE_PYRAMID_FUNC_SET_ITEM 7
#define BATTLE_PYRAMID_FUNC_HIDE_ITEM 8
#define BATTLE_PYRAMID_FUNC_SET_TRAINERS 9
#define BATTLE_PYRAMID_FUNC_SHOW_HINT_TEXT 10
#define BATTLE_PYRAMID_FUNC_UPDATE_STREAK 11 // unused
#define BATTLE_PYRAMID_FUNC_IS_IN 12
#define BATTLE_PYRAMID_FUNC_UPDATE_LIGHT 13
#define BATTLE_PYRAMID_FUNC_CLEAR_HELD_ITEMS 14
#define BATTLE_PYRAMID_FUNC_SET_FLOOR_PALETTE 15
#define BATTLE_PYRAMID_FUNC_START_MENU 16 // unused
#define BATTLE_PYRAMID_FUNC_RESTORE_PARTY 17
#define PYRAMID_DATA_PRIZE 0
#define PYRAMID_DATA_WIN_STREAK 1
#define PYRAMID_DATA_WIN_STREAK_ACTIVE 2
#define PYRAMID_DATA_WIN_STREAK_50 3 // the below streak data are redundant with the above when frontier.lvlMode is correct
#define PYRAMID_DATA_WIN_STREAK_OPEN 4
#define PYRAMID_DATA_WIN_STREAK_ACTIVE_50 5
#define PYRAMID_DATA_WIN_STREAK_ACTIVE_OPEN 6
#define PYRAMID_DATA_TRAINER_FLAGS 7
#define PYRAMID_LIGHT_SET_RADIUS 0
#define PYRAMID_LIGHT_INCR_RADIUS 1
#endif // GUARD_CONSTANTS_BATTLE_PYRAMID_H

View File

@ -0,0 +1,159 @@
#ifndef GUARD_CONSTANTS_BATTLE_SCRIPT_COMMANDS_H
#define GUARD_CONSTANTS_BATTLE_SCRIPT_COMMANDS_H
// The following correspond to the struct members of BattleScripting by adding their offset
#define sPAINSPLIT_HP (gBattleScripting + 0x00) // painSplitHp
#define sBIDE_DMG (gBattleScripting + 0x04) // bideDmg
#define sMULTIHIT_STRING (gBattleScripting + 0x08) // multihitString
#define sDMG_MULTIPLIER (gBattleScripting + 0x0E) // dmgMultiplier
#define sTWOTURN_STRINGID (gBattleScripting + 0x0F) // twoTurnsMoveStringId
#define sB_ANIM_ARG1 (gBattleScripting + 0x10) // animArg1
#define sB_ANIM_ARG2 (gBattleScripting + 0x11) // animArg2
#define sTRIPLE_KICK_POWER (gBattleScripting + 0x12) // tripleKickPower
#define sMOVEEND_STATE (gBattleScripting + 0x14) // moveendState
#define sBATTLER_WITH_ABILITY (gBattleScripting + 0x15) // battlerWithAbility
#define sMULTIHIT_EFFECT (gBattleScripting + 0x16) // multihitMoveEffect
#define sBATTLER (gBattleScripting + 0x17) // battler
#define sB_ANIM_TURN (gBattleScripting + 0x18) // animTurn
#define sB_ANIM_TARGETS_HIT (gBattleScripting + 0x19) // animTargetsHit
#define sSTATCHANGER (gBattleScripting + 0x1A) // statChanger
#define sSTAT_ANIM_PLAYED (gBattleScripting + 0x1B) // statAnimPlayed
#define sGIVEEXP_STATE (gBattleScripting + 0x1C) // getexpState
#define sBATTLE_STYLE (gBattleScripting + 0x1D) // battleStyle
#define sLVLBOX_STATE (gBattleScripting + 0x1E) // drawlvlupboxState
#define sLEARNMOVE_STATE (gBattleScripting + 0x1F) // learnMoveState
#define sPURSUIT_DOUBLES_ATTACKER (gBattleScripting + 0x20) // pursuitDoublesAttacker
#define sRESHOW_MAIN_STATE (gBattleScripting + 0x21) // reshowMainState
#define sRESHOW_HELPER_STATE (gBattleScripting + 0x22) // reshowHelperState
#define sLVLUP_HP (gBattleScripting + 0x23) // levelUpHP
#define sWINDOWS_TYPE (gBattleScripting + 0x24) // windowsType
#define sMULTIPLAYER_ID (gBattleScripting + 0x25) // multiplayerId
#define sSPECIAL_TRAINER_BATTLE_TYPE (gBattleScripting + 0x26) // specialTrainerBattleType
// 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 Cmd_updatestatusicon
#define BS_FAINTED_LINK_MULTIPLE_1 5
#define BS_FAINTED_LINK_MULTIPLE_2 6
#define BS_BATTLER_0 7
#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
#define BS_OPPONENT2 14
// Cmd_accuracycheck
#define NO_ACC_CALC 0xFFFE
#define NO_ACC_CALC_CHECK_LOCK_ON 0xFFFF
#define ACC_CURR_MOVE 0
// compare operands
#define CMP_EQUAL 0
#define CMP_NOT_EQUAL 1
#define CMP_GREATER_THAN 2
#define CMP_LESS_THAN 3
#define CMP_COMMON_BITS 4
#define CMP_NO_COMMON_BITS 5
// Cmd_various
#define VARIOUS_CANCEL_MULTI_TURN_MOVES 0
#define VARIOUS_SET_MAGIC_COAT_TARGET 1
#define VARIOUS_IS_RUNNING_IMPOSSIBLE 2
#define VARIOUS_GET_MOVE_TARGET 3
#define VARIOUS_GET_BATTLER_FAINTED 4
#define VARIOUS_RESET_INTIMIDATE_TRACE_BITS 5
#define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 6
#define VARIOUS_RESET_PLAYER_FAINTED 7
#define VARIOUS_PALACE_FLAVOR_TEXT 8
#define VARIOUS_ARENA_JUDGMENT_WINDOW 9
#define VARIOUS_ARENA_OPPONENT_MON_LOST 10
#define VARIOUS_ARENA_PLAYER_MON_LOST 11
#define VARIOUS_ARENA_BOTH_MONS_LOST 12
#define VARIOUS_EMIT_YESNOBOX 13
#define VARIOUS_DRAW_ARENA_REF_TEXT_BOX 14
#define VARIOUS_ERASE_ARENA_REF_TEXT_BOX 15
#define VARIOUS_ARENA_JUDGMENT_STRING 16
#define VARIOUS_ARENA_WAIT_STRING 17
#define VARIOUS_WAIT_CRY 18
#define VARIOUS_RETURN_OPPONENT_MON1 19
#define VARIOUS_RETURN_OPPONENT_MON2 20
#define VARIOUS_VOLUME_DOWN 21
#define VARIOUS_VOLUME_UP 22
#define VARIOUS_SET_ALREADY_STATUS_MOVE_ATTEMPT 23
#define VARIOUS_PALACE_TRY_ESCAPE_STATUS 24
#define VARIOUS_SET_TELEPORT_OUTCOME 25
#define VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC 26
// Cmd_manipulatedmg
#define DMG_CHANGE_SIGN 0
#define DMG_RECOIL_FROM_MISS 1
#define DMG_DOUBLED 2
// Cmd_jumpifcantswitch
#define SWITCH_IGNORE_ESCAPE_PREVENTION (1 << 7)
// Cmd_statbuffchange
#define STAT_BUFF_ALLOW_PTR (1 << 0) // If set, allow use of jumpptr. Set in every use of statbuffchange
#define STAT_BUFF_NOT_PROTECT_AFFECTED (1 << 5)
// 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)
// 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 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

View File

@ -0,0 +1,18 @@
#ifndef GUARD_CONSTANTS_BATTLE_SETUP_H
#define GUARD_CONSTANTS_BATTLE_SETUP_H
#define TRAINER_BATTLE_SINGLE 0
#define TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC 1
#define TRAINER_BATTLE_CONTINUE_SCRIPT 2
#define TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT 3
#define TRAINER_BATTLE_DOUBLE 4
#define TRAINER_BATTLE_REMATCH 5
#define TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE 6
#define TRAINER_BATTLE_REMATCH_DOUBLE 7
#define TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC 8
#define TRAINER_BATTLE_PYRAMID 9
#define TRAINER_BATTLE_SET_TRAINER_A 10
#define TRAINER_BATTLE_SET_TRAINER_B 11
#define TRAINER_BATTLE_HILL 12
#endif // GUARD_CONSTANTS_BATTLE_SETUP_H

View File

@ -0,0 +1,600 @@
#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_PLAYERPICKEDUPMONEY 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_ATTACKERSSTATROSE 213
#define STRINGID_DEFENDERSSTATROSE 214
#define STRINGID_ATTACKERSSTATFELL 215
#define STRINGID_DEFENDERSSTATFELL 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_USINGITEMSTATOFPKMNROSE 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
// The below IDs are all indexes into battle message tables,
// used to determine which of a set of messages to print.
// They are assigned to the MULTISTRING_CHOOSER byte of gBattleCommunication
// and read when e.g. the command printfromtable is used.
// gStatUpStringIds
#define B_MSG_ATTACKER_STAT_ROSE 0
#define B_MSG_DEFENDER_STAT_ROSE 1
#define B_MSG_STAT_WONT_INCREASE 2
#define B_MSG_STAT_ROSE_EMPTY 3
#define B_MSG_STAT_ROSE_ITEM 4
#define B_MSG_USED_DIRE_HIT 5
// gStatDownStringIds
#define B_MSG_ATTACKER_STAT_FELL 0
#define B_MSG_DEFENDER_STAT_FELL 1
#define B_MSG_STAT_WONT_DECREASE 2
#define B_MSG_STAT_FELL_EMPTY 3
// gMissStringIds
#define B_MSG_MISSED 0
#define B_MSG_PROTECTED 1
#define B_MSG_AVOIDED_ATK 2
#define B_MSG_AVOIDED_DMG 3
#define B_MSG_GROUND_MISS 4
// gAbsorbDrainStringIds
#define B_MSG_ABSORB 0
#define B_MSG_ABSORB_OOZE 1
// gLeechSeedStringIds
#define B_MSG_LEECH_SEED_SET 0
#define B_MSG_LEECH_SEED_MISS 1
#define B_MSG_LEECH_SEED_FAIL 2
#define B_MSG_LEECH_SEED_DRAIN 3
#define B_MSG_LEECH_SEED_OOZE 4
// gFirstTurnOfTwoStringIds
#define B_MSG_TURN1_RAZOR_WIND 0
#define B_MSG_TURN1_SOLAR_BEAM 1
#define B_MSG_TURN1_SKULL_BASH 2
#define B_MSG_TURN1_SKY_ATTACK 3
#define B_MSG_TURN1_FLY 4
#define B_MSG_TURN1_DIG 5
#define B_MSG_TURN1_DIVE 6
#define B_MSG_TURN1_BOUNCE 7
// gMoveWeatherChangeStringIds
#define B_MSG_STARTED_RAIN 0
#define B_MSG_STARTED_DOWNPOUR 1
#define B_MSG_WEATHER_FAILED 2
#define B_MSG_STARTED_SANDSTORM 3
#define B_MSG_STARTED_SUNLIGHT 4
#define B_MSG_STARTED_HAIL 5
// gRainContinuesStringIds
#define B_MSG_RAIN_CONTINUES 0
#define B_MSG_DOWNPOUR_CONTINUES 1
#define B_MSG_RAIN_STOPPED 2
// gSandStormHailContinuesStringIds / gSandStormHailDmgStringIds/ gSandStormHailEndStringIds
#define B_MSG_SANDSTORM 0
#define B_MSG_HAIL 1
// gReflectLightScreenSafeguardStringIds
#define B_MSG_SIDE_STATUS_FAILED 0
#define B_MSG_SET_REFLECT_SINGLE 1
#define B_MSG_SET_REFLECT_DOUBLE 2
#define B_MSG_SET_LIGHTSCREEN_SINGLE 3
#define B_MSG_SET_LIGHTSCREEN_DOUBLE 4
#define B_MSG_SET_SAFEGUARD 5
// gProtectLikeUsedStringIds
#define B_MSG_PROTECTED_ITSELF 0
#define B_MSG_BRACED_ITSELF 1
#define B_MSG_PROTECT_FAILED 2
// gRestUsedStringIds
#define B_MSG_REST 0
#define B_MSG_REST_STATUSED 1
// gWokeUpStringIds
#define B_MSG_WOKE_UP 0
#define B_MSG_WOKE_UP_UPROAR 1
// gUproarAwakeStringIds
#define B_MSG_CANT_SLEEP_UPROAR 0
#define B_MSG_UPROAR_KEPT_AWAKE 1
#define B_MSG_STAYED_AWAKE_USING 2
// gUproarOverTurnStringIds
#define B_MSG_UPROAR_CONTINUES 0
#define B_MSG_UPROAR_ENDS 1
// gStockpileUsedStringIds
#define B_MSG_STOCKPILED 0
#define B_MSG_CANT_STOCKPILE 1
// gSwallowFailStringIds
#define B_MSG_SWALLOW_FAILED 0
#define B_MSG_SWALLOW_FULL_HP 1
// gKOFailedStringIds
#define B_MSG_KO_MISS 0
#define B_MSG_KO_UNAFFECTED 1
// gMistUsedStringIds
#define B_MSG_SET_MIST 0
#define B_MSG_MIST_FAILED 1
// gFocusEnergyUsedStringIds
#define B_MSG_GETTING_PUMPED 0
#define B_MSG_FOCUS_ENERGY_FAILED 1
// gTransformUsedStringIds
#define B_MSG_TRANSFORMED 0
#define B_MSG_TRANSFORM_FAILED 1
// gSubstituteUsedStringIds
#define B_MSG_SET_SUBSTITUTE 0
#define B_MSG_SUBSTITUTE_FAILED 1
// gPartyStatusHealStringIds
#define B_MSG_BELL 0
#define B_MSG_BELL_SOUNDPROOF_ATTACKER 1
#define B_MSG_BELL_SOUNDPROOF_PARTNER 2
#define B_MSG_BELL_BOTH_SOUNDPROOF 3
#define B_MSG_SOOTHING_AROMA 4
// gFutureMoveUsedStringIds
#define B_MSG_FUTURE_SIGHT 0
#define B_MSG_DOOM_DESIRE 1
// gItemSwapStringIds
#define B_MSG_ITEM_SWAP_TAKEN 0
#define B_MSG_ITEM_SWAP_GIVEN 1
#define B_MSG_ITEM_SWAP_BOTH 2
// gSportsUsedStringIds
#define B_MSG_WEAKEN_ELECTRIC 0
#define B_MSG_WEAKEN_FIRE 1
// gCaughtMonStringIds
#define B_MSG_SENT_SOMEONES_PC 0
#define B_MSG_SENT_LANETTES_PC 1
#define B_MSG_SOMEONES_BOX_FULL 2
#define B_MSG_LANETTES_BOX_FULL 3
// gInobedientStringIds
#define B_MSG_LOAFING 0
#define B_MSG_WONT_OBEY 1
#define B_MSG_TURNED_AWAY 2
#define B_MSG_PRETEND_NOT_NOTICE 3
#define B_MSG_INCAPABLE_OF_POWER 4
// For randomly selecting a disobey string
// Skips the one used for Battle Palace
#define NUM_LOAF_STRINGS 4
// gSafariGetNearStringIds
#define B_MSG_CREPT_CLOSER 0
#define B_MSG_CANT_GET_CLOSER 1
// gSafariPokeblockResultStringIds
#define B_MSG_MON_CURIOUS 0
#define B_MSG_MON_ENTHRALLED 1
#define B_MSG_MON_IGNORED 2
// gFlashFireStringIds
#define B_MSG_FLASH_FIRE_BOOST 0
#define B_MSG_FLASH_FIRE_NO_BOOST 1
// gBerryEffectStringIds
#define B_MSG_CURED_PROBLEM 0
#define B_MSG_NORMALIZED_STATUS 1
// gNoEscapeStringIds
#define B_MSG_CANT_ESCAPE 0
#define B_MSG_DONT_LEAVE_BIRCH 1
#define B_MSG_PREVENTS_ESCAPE 2
#define B_MSG_CANT_ESCAPE_2 3
#define B_MSG_ATTACKER_CANT_ESCAPE 4
// gGotPoisonedStringIds / gGotParalyzedStringIds / gFellAsleepStringIds
// gGotBurnedStringIds / gGotFrozenStringIds / gAttractUsedStringIds
#define B_MSG_STATUSED 0
#define B_MSG_STATUSED_BY_ABILITY 1
// gBRNPreventionStringIds / gPRLZPreventionStringIds / gPSNPreventionStringIds
#define B_MSG_ABILITY_PREVENTS_MOVE_STATUS 0
#define B_MSG_ABILITY_PREVENTS_ABILITY_STATUS 1
#define B_MSG_STATUS_HAD_NO_EFFECT 2
// gGotDefrostedStringIds
#define B_MSG_DEFROSTED 0
#define B_MSG_DEFROSTED_BY_MOVE 1
// gBattlePalaceFlavorTextTable
#define B_MSG_GLINT_IN_EYE 0
#define B_MSG_GETTING_IN_POS 1
#define B_MSG_GROWL_DEEPLY 2
#define B_MSG_EAGER_FOR_MORE 3
// gRefereeStringsTable
#define B_MSG_REF_NOTHING_IS_DECIDED 0
#define B_MSG_REF_THATS_IT 1
#define B_MSG_REF_JUDGE_MIND 2
#define B_MSG_REF_JUDGE_SKILL 3
#define B_MSG_REF_JUDGE_BODY 4
#define B_MSG_REF_PLAYER_WON 5
#define B_MSG_REF_OPPONENT_WON 6
#define B_MSG_REF_DRAW 7
#define B_MSG_REF_COMMENCE_BATTLE 8
#endif // GUARD_CONSTANTS_BATTLE_STRING_IDS_H

View File

@ -0,0 +1,32 @@
#ifndef GUARD_CONSTANTS_BATTLE_TENT_H
#define GUARD_CONSTANTS_BATTLE_TENT_H
#define VERDANTURF_TENT_FUNC_INIT 0
#define VERDANTURF_TENT_FUNC_GET_PRIZE 1
#define VERDANTURF_TENT_FUNC_SET_PRIZE 2
#define VERDANTURF_TENT_FUNC_SET_OPPONENT_GFX 3
#define VERDANTURF_TENT_FUNC_GET_OPPONENT_INTRO 4
#define VERDANTURF_TENT_FUNC_SAVE 5
#define VERDANTURF_TENT_FUNC_SET_RANDOM_PRIZE 6
#define VERDANTURF_TENT_FUNC_GIVE_PRIZE 7
#define FALLARBOR_TENT_FUNC_INIT 0
#define FALLARBOR_TENT_FUNC_GET_PRIZE 1
#define FALLARBOR_TENT_FUNC_SET_PRIZE 2
#define FALLARBOR_TENT_FUNC_SAVE 3
#define FALLARBOR_TENT_FUNC_SET_RANDOM_PRIZE 4
#define FALLARBOR_TENT_FUNC_GIVE_PRIZE 5
#define FALLARBOR_TENT_FUNC_GET_OPPONENT_NAME 6
#define SLATEPORT_TENT_FUNC_INIT 0
#define SLATEPORT_TENT_FUNC_GET_PRIZE 1
#define SLATEPORT_TENT_FUNC_SET_PRIZE 2
#define SLATEPORT_TENT_FUNC_SAVE 3
#define SLATEPORT_TENT_FUNC_SET_RANDOM_PRIZE 4
#define SLATEPORT_TENT_FUNC_GIVE_PRIZE 5
#define SLATEPORT_TENT_FUNC_SELECT_RENT_MONS 6
#define SLATEPORT_TENT_FUNC_SWAP_RENT_MONS 7
#define SLATEPORT_TENT_FUNC_GENERATE_OPPONENT_MONS 8
#define SLATEPORT_TENT_FUNC_GENERATE_RENTAL_MONS 9
#endif // GUARD_CONSTANTS_BATTLE_TENT_H

View File

@ -0,0 +1,173 @@
#ifndef GUARD_CONSTANTS_BATTLE_TENT_MONS_H
#define GUARD_CONSTANTS_BATTLE_TENT_MONS_H
#define SLATEPORT_TENT_MON_ZIGZAGOON_1 0
#define SLATEPORT_TENT_MON_ZIGZAGOON_2 1
#define SLATEPORT_TENT_MON_BEAUTIFLY 2
#define SLATEPORT_TENT_MON_DUSTOX 3
#define SLATEPORT_TENT_MON_WAILMER_1 4
#define SLATEPORT_TENT_MON_WAILMER_2 5
#define SLATEPORT_TENT_MON_MARILL_1 6
#define SLATEPORT_TENT_MON_WINGULL_1 7
#define SLATEPORT_TENT_MON_PELIPPER_1 8
#define SLATEPORT_TENT_MON_CACNEA_1 9
#define SLATEPORT_TENT_MON_LOMBRE_1 10
#define SLATEPORT_TENT_MON_LOTAD 11
#define SLATEPORT_TENT_MON_SEEDOT 12
#define SLATEPORT_TENT_MON_NUZLEAF 13
#define SLATEPORT_TENT_MON_NINJASK_1 14
#define SLATEPORT_TENT_MON_NINJASK_2 15
#define SLATEPORT_TENT_MON_GRAVELER 16
#define SLATEPORT_TENT_MON_BALTOY 17
#define SLATEPORT_TENT_MON_MIGHTYENA_1 18
#define SLATEPORT_TENT_MON_MIGHTYENA_2 19
#define SLATEPORT_TENT_MON_LINOONE 20
#define SLATEPORT_TENT_MON_GOLDEEN 21
#define SLATEPORT_TENT_MON_ELECTRIKE_1 22
#define SLATEPORT_TENT_MON_VOLTORB 23
#define SLATEPORT_TENT_MON_ARON_1 24
#define SLATEPORT_TENT_MON_ARON_2 25
#define SLATEPORT_TENT_MON_TRAPINCH_1 26
#define SLATEPORT_TENT_MON_CACNEA_2 27
#define SLATEPORT_TENT_MON_TAILLOW 28
#define SLATEPORT_TENT_MON_SWELLOW 29
#define SLATEPORT_TENT_MON_GOLBAT_1 30
#define SLATEPORT_TENT_MON_LOUDRED 31
#define SLATEPORT_TENT_MON_SPINDA 32
#define SLATEPORT_TENT_MON_MAGNEMITE 33
#define SLATEPORT_TENT_MON_WHISMUR 34
#define SLATEPORT_TENT_MON_MAKUHITA 35
#define SLATEPORT_TENT_MON_NUMEL_1 36
#define SLATEPORT_TENT_MON_BARBOACH 37
#define SLATEPORT_TENT_MON_TENTACOOL 38
#define SLATEPORT_TENT_MON_VIGOROTH 39
#define SLATEPORT_TENT_MON_MAGIKARP 40
#define SLATEPORT_TENT_MON_SEVIPER_1 41
#define SLATEPORT_TENT_MON_SOLROCK 42
#define SLATEPORT_TENT_MON_KECLEON_1 43
#define SLATEPORT_TENT_MON_KECLEON_2 44
#define SLATEPORT_TENT_MON_SHROOMISH_1 45
#define SLATEPORT_TENT_MON_SHROOMISH_2 46
#define SLATEPORT_TENT_MON_LOMBRE_2 47
#define SLATEPORT_TENT_MON_NUMEL_2 48
#define SLATEPORT_TENT_MON_TRAPINCH_2 49
#define SLATEPORT_TENT_MON_PELIPPER_2 50
#define SLATEPORT_TENT_MON_WINGULL_2 51
#define SLATEPORT_TENT_MON_MARILL_2 52
#define SLATEPORT_TENT_MON_SKITTY 53
#define SLATEPORT_TENT_MON_SEVIPER_2 54
#define SLATEPORT_TENT_MON_GOLBAT_2 55
#define SLATEPORT_TENT_MON_RALTS 56
#define SLATEPORT_TENT_MON_SANDSHREW 57
#define SLATEPORT_TENT_MON_SWALOT 58
#define SLATEPORT_TENT_MON_VOLBEAT 59
#define SLATEPORT_TENT_MON_ILLUMISE 60
#define SLATEPORT_TENT_MON_KADABRA 61
#define SLATEPORT_TENT_MON_KIRLIA 62
#define SLATEPORT_TENT_MON_BRELOOM 63
#define SLATEPORT_TENT_MON_PLUSLE_1 64
#define SLATEPORT_TENT_MON_PLUSLE_2 65
#define SLATEPORT_TENT_MON_ELECTRIKE_2 66
#define SLATEPORT_TENT_MON_SWABLU 67
#define SLATEPORT_TENT_MON_MACHOP 68
#define SLATEPORT_TENT_MON_MACHOKE 69
#define NUM_SLATEPORT_TENT_MONS 70
#define VERDANTURF_TENT_MON_POOCHYENA 0
#define VERDANTURF_TENT_MON_ZIGZAGOON 1
#define VERDANTURF_TENT_MON_DUSTOX 2
#define VERDANTURF_TENT_MON_TAILLOW 3
#define VERDANTURF_TENT_MON_SHROOMISH 4
#define VERDANTURF_TENT_MON_MACHOP 5
#define VERDANTURF_TENT_MON_MAGIKARP 6
#define VERDANTURF_TENT_MON_BARBOACH 7
#define VERDANTURF_TENT_MON_WINGULL 8
#define VERDANTURF_TENT_MON_ARON_1 9
#define VERDANTURF_TENT_MON_NUMEL_1 10
#define VERDANTURF_TENT_MON_SWALOT 11
#define VERDANTURF_TENT_MON_KECLEON 12
#define VERDANTURF_TENT_MON_BALTOY 13
#define VERDANTURF_TENT_MON_NINJASK 14
#define VERDANTURF_TENT_MON_MAKUHITA 15
#define VERDANTURF_TENT_MON_SWABLU 16
#define VERDANTURF_TENT_MON_GOLDEEN_1 17
#define VERDANTURF_TENT_MON_LOTAD 18
#define VERDANTURF_TENT_MON_NUMEL_2 19
#define VERDANTURF_TENT_MON_LINOONE 20
#define VERDANTURF_TENT_MON_SEVIPER 21
#define VERDANTURF_TENT_MON_SKARMORY 22
#define VERDANTURF_TENT_MON_SWELLOW 23
#define VERDANTURF_TENT_MON_GOLDEEN_2 24
#define VERDANTURF_TENT_MON_ELECTRIKE 25
#define VERDANTURF_TENT_MON_NUZLEAF 26
#define VERDANTURF_TENT_MON_ARON_2 27
#define VERDANTURF_TENT_MON_MIGHTYENA 28
#define VERDANTURF_TENT_MON_SOLROCK 29
#define VERDANTURF_TENT_MON_GRAVELER 30
#define VERDANTURF_TENT_MON_KADABRA 31
#define VERDANTURF_TENT_MON_VOLTORB 32
#define VERDANTURF_TENT_MON_MAGNEMITE 33
#define VERDANTURF_TENT_MON_PELIPPER 34
#define VERDANTURF_TENT_MON_LOUDRED 35
#define VERDANTURF_TENT_MON_MARILL 36
#define VERDANTURF_TENT_MON_TRAPINCH 37
#define VERDANTURF_TENT_MON_TENTACOOL 38
#define VERDANTURF_TENT_MON_VIGOROTH 39
#define VERDANTURF_TENT_MON_WAILMER 40
#define VERDANTURF_TENT_MON_ILLUMISE 41
#define VERDANTURF_TENT_MON_MACHOKE 42
#define VERDANTURF_TENT_MON_WHISMUR 43
#define VERDANTURF_TENT_MON_CACNEA 44
#define NUM_VERDANTURF_TENT_MONS 45
#define FALLARBOR_TENT_MON_NUMEL 0
#define FALLARBOR_TENT_MON_LINOONE_1 1
#define FALLARBOR_TENT_MON_PLUSLE 2
#define FALLARBOR_TENT_MON_POOCHYENA 3
#define FALLARBOR_TENT_MON_KECLEON 4
#define FALLARBOR_TENT_MON_MAGIKARP 5
#define FALLARBOR_TENT_MON_SOLROCK 6
#define FALLARBOR_TENT_MON_MAKUHITA 7
#define FALLARBOR_TENT_MON_MACHOKE 8
#define FALLARBOR_TENT_MON_NINCADA 9
#define FALLARBOR_TENT_MON_BEAUTIFLY 10
#define FALLARBOR_TENT_MON_DUSTOX 11
#define FALLARBOR_TENT_MON_ILLUMISE 12
#define FALLARBOR_TENT_MON_VOLBEAT 13
#define FALLARBOR_TENT_MON_NINJASK_1 14
#define FALLARBOR_TENT_MON_NINJASK_2 15
#define FALLARBOR_TENT_MON_ARON_1 16
#define FALLARBOR_TENT_MON_ARON_2 17
#define FALLARBOR_TENT_MON_ELECTRIKE 18
#define FALLARBOR_TENT_MON_MAGNEMITE 19
#define FALLARBOR_TENT_MON_VOLTORB 20
#define FALLARBOR_TENT_MON_WHISMUR 21
#define FALLARBOR_TENT_MON_LOUDRED 22
#define FALLARBOR_TENT_MON_LINOONE_2 23
#define FALLARBOR_TENT_MON_MIGHTYENA 24
#define FALLARBOR_TENT_MON_SWABLU 25
#define FALLARBOR_TENT_MON_SKARMORY 26
#define FALLARBOR_TENT_MON_GOLBAT 27
#define FALLARBOR_TENT_MON_WINGULL 28
#define FALLARBOR_TENT_MON_PELIPPER 29
#define FALLARBOR_TENT_MON_BARBOACH 30
#define FALLARBOR_TENT_MON_WAILMER 31
#define FALLARBOR_TENT_MON_MARILL 32
#define FALLARBOR_TENT_MON_GOLDEEN_1 33
#define FALLARBOR_TENT_MON_GOLDEEN_2 34
#define FALLARBOR_TENT_MON_TRAPINCH 35
#define FALLARBOR_TENT_MON_BALTOY 36
#define FALLARBOR_TENT_MON_GRAVELER 37
#define FALLARBOR_TENT_MON_SANDSHREW 38
#define FALLARBOR_TENT_MON_SWALOT 39
#define FALLARBOR_TENT_MON_SHROOMISH 40
#define FALLARBOR_TENT_MON_KIRLIA 41
#define FALLARBOR_TENT_MON_LOMBRE 42
#define FALLARBOR_TENT_MON_NUZLEAF 43
#define FALLARBOR_TENT_MON_CACNEA 44
#define NUM_FALLARBOR_TENT_MONS 45
#endif // GUARD_CONSTANTS_BATTLE_TENT_MONS_H

View File

@ -0,0 +1,99 @@
#ifndef GUARD_CONSTANTS_BATTLE_TENT_TRAINERS_H
#define GUARD_CONSTANTS_BATTLE_TENT_TRAINERS_H
#define SLATEPORT_TENT_TRAINER_JOLIE 0
#define SLATEPORT_TENT_TRAINER_MALACHI 1
#define SLATEPORT_TENT_TRAINER_KELSIE 2
#define SLATEPORT_TENT_TRAINER_DAVON 3
#define SLATEPORT_TENT_TRAINER_GLENDA 4
#define SLATEPORT_TENT_TRAINER_HELENA 5
#define SLATEPORT_TENT_TRAINER_RODOLFO 6
#define SLATEPORT_TENT_TRAINER_DAVION 7
#define SLATEPORT_TENT_TRAINER_KENDALL 8
#define SLATEPORT_TENT_TRAINER_COLTEN 9
#define SLATEPORT_TENT_TRAINER_IRVIN 10
#define SLATEPORT_TENT_TRAINER_SHAUN 11
#define SLATEPORT_TENT_TRAINER_KYLER 12
#define SLATEPORT_TENT_TRAINER_MAGGIE 13
#define SLATEPORT_TENT_TRAINER_STEPHON 14
#define SLATEPORT_TENT_TRAINER_REBECCA 15
#define SLATEPORT_TENT_TRAINER_REGGIE 16
#define SLATEPORT_TENT_TRAINER_JANAE 17
#define SLATEPORT_TENT_TRAINER_CAIDEN 18
#define SLATEPORT_TENT_TRAINER_KIRSTEN 19
#define SLATEPORT_TENT_TRAINER_KURTIS 20
#define SLATEPORT_TENT_TRAINER_STEFAN 21
#define SLATEPORT_TENT_TRAINER_AVERY 22
#define SLATEPORT_TENT_TRAINER_DWANE 23
#define SLATEPORT_TENT_TRAINER_MCKENNA 24
#define SLATEPORT_TENT_TRAINER_CAMRYN 25
#define SLATEPORT_TENT_TRAINER_NATASHA 26
#define SLATEPORT_TENT_TRAINER_AUSTYN 27
#define SLATEPORT_TENT_TRAINER_DONOVAN 28
#define SLATEPORT_TENT_TRAINER_TAMIA 29
#define VERDANTURF_TENT_TRAINER_BRENNA 0
#define VERDANTURF_TENT_TRAINER_DILAN 1
#define VERDANTURF_TENT_TRAINER_ELIANA 2
#define VERDANTURF_TENT_TRAINER_MARKUS 3
#define VERDANTURF_TENT_TRAINER_CAITLYN 4
#define VERDANTURF_TENT_TRAINER_DESIREE 5
#define VERDANTURF_TENT_TRAINER_RONALD 6
#define VERDANTURF_TENT_TRAINER_ASHTEN 7
#define VERDANTURF_TENT_TRAINER_GERARD 8
#define VERDANTURF_TENT_TRAINER_BRADLY 9
#define VERDANTURF_TENT_TRAINER_DENNIS 10
#define VERDANTURF_TENT_TRAINER_PRESTIN 11
#define VERDANTURF_TENT_TRAINER_ERNESTO 12
#define VERDANTURF_TENT_TRAINER_NALA 13
#define VERDANTURF_TENT_TRAINER_DARNELL 14
#define VERDANTURF_TENT_TRAINER_ASHLYN 15
#define VERDANTURF_TENT_TRAINER_ADDISON 16
#define VERDANTURF_TENT_TRAINER_JUSTINE 17
#define VERDANTURF_TENT_TRAINER_TYSON 18
#define VERDANTURF_TENT_TRAINER_LAILA 19
#define VERDANTURF_TENT_TRAINER_WAREN 20
#define VERDANTURF_TENT_TRAINER_TOBIAS 21
#define VERDANTURF_TENT_TRAINER_JOSIAH 22
#define VERDANTURF_TENT_TRAINER_DION 23
#define VERDANTURF_TENT_TRAINER_KENZIE 24
#define VERDANTURF_TENT_TRAINER_LILLIAN 25
#define VERDANTURF_TENT_TRAINER_LESLEY 26
#define VERDANTURF_TENT_TRAINER_MARQUIS 27
#define VERDANTURF_TENT_TRAINER_FREDDY 28
#define VERDANTURF_TENT_TRAINER_CECILIA 29
#define FALLARBOR_TENT_TRAINER_AMBER 0
#define FALLARBOR_TENT_TRAINER_JAVIER 1
#define FALLARBOR_TENT_TRAINER_NATALIA 2
#define FALLARBOR_TENT_TRAINER_TREVE 3
#define FALLARBOR_TENT_TRAINER_ARIANNA 4
#define FALLARBOR_TENT_TRAINER_JADYN 5
#define FALLARBOR_TENT_TRAINER_GERARDO 6
#define FALLARBOR_TENT_TRAINER_JONN 7
#define FALLARBOR_TENT_TRAINER_ESTEBAN 8
#define FALLARBOR_TENT_TRAINER_JAMESON 9
#define FALLARBOR_TENT_TRAINER_ALANZO 10
#define FALLARBOR_TENT_TRAINER_HOWARD 11
#define FALLARBOR_TENT_TRAINER_CONRAD 12
#define FALLARBOR_TENT_TRAINER_MAKENNA 13
#define FALLARBOR_TENT_TRAINER_BRAYAN 14
#define FALLARBOR_TENT_TRAINER_MARIANA 15
#define FALLARBOR_TENT_TRAINER_SHELDON 16
#define FALLARBOR_TENT_TRAINER_GIANNA 17
#define FALLARBOR_TENT_TRAINER_YAHIR 18
#define FALLARBOR_TENT_TRAINER_BRITNEY 19
#define FALLARBOR_TENT_TRAINER_HECTER 20
#define FALLARBOR_TENT_TRAINER_TANNOR 21
#define FALLARBOR_TENT_TRAINER_BENJI 22
#define FALLARBOR_TENT_TRAINER_RORY 23
#define FALLARBOR_TENT_TRAINER_ELEANOR 24
#define FALLARBOR_TENT_TRAINER_EVELYN 25
#define FALLARBOR_TENT_TRAINER_ARIELLE 26
#define FALLARBOR_TENT_TRAINER_CONNAR 27
#define FALLARBOR_TENT_TRAINER_MAURICE 28
#define FALLARBOR_TENT_TRAINER_KIANNA 29
#define NUM_BATTLE_TENT_TRAINERS 30
#endif // GUARD_CONSTANTS_BATTLE_TENT_TRAINERS_H

View File

@ -0,0 +1,41 @@
#ifndef GUARD_CONSTANTS_BATTLE_TOWER_H
#define GUARD_CONSTANTS_BATTLE_TOWER_H
#define BATTLE_TOWER_FUNC_INIT 0
#define BATTLE_TOWER_FUNC_GET_DATA 1
#define BATTLE_TOWER_FUNC_SET_DATA 2
#define BATTLE_TOWER_FUNC_SET_OPPONENT 3
#define BATTLE_TOWER_FUNC_SET_BATTLE_WON 4
#define BATTLE_TOWER_FUNC_GIVE_RIBBONS 5
#define BATTLE_TOWER_FUNC_SAVE 6
#define BATTLE_TOWER_FUNC_GET_OPPONENT_INTRO 7
#define BATTLE_TOWER_FUNC_NOP 8
#define BATTLE_TOWER_FUNC_NOP2 9
#define BATTLE_TOWER_FUNC_LOAD_PARTNERS 10
#define BATTLE_TOWER_FUNC_PARTNER_MSG 11
#define BATTLE_TOWER_FUNC_LOAD_LINK_OPPONENTS 12
#define BATTLE_TOWER_FUNC_TRY_CLOSE_LINK 13
#define BATTLE_TOWER_FUNC_SET_PARTNER_GFX 14
#define BATTLE_TOWER_FUNC_SET_INTERVIEW_DATA 15
#define TOWER_DATA_WIN_STREAK 1
#define TOWER_DATA_WIN_STREAK_ACTIVE 2
#define TOWER_DATA_LVL_MODE 3
// IDs for the messages printed by potential partners in the Battle Tower Multi Partner Room
#define PARTNER_MSGID_INTRO 0
#define PARTNER_MSGID_MON1 1
#define PARTNER_MSGID_MON2_ASK 2
#define PARTNER_MSGID_ACCEPT 3
#define PARTNER_MSGID_REJECT 4
// IDs for communicating with the Link Multi partner
#define BATTLE_TOWER_LINK_CONTINUE 0
#define BATTLE_TOWER_LINK_RETIRE 1
#define BATTLE_TOWER_LINKSTAT_CONTINUE 0
#define BATTLE_TOWER_LINKSTAT_BOTH_RETIRE 1
#define BATTLE_TOWER_LINKSTAT_MEMBER_RETIRE 2
#define BATTLE_TOWER_LINKSTAT_LEADER_RETIRE 3
#endif //GUARD_CONSTANTS_BATTLE_TOWER_H

132
include/constants/berry.h Normal file
View File

@ -0,0 +1,132 @@
#ifndef GUARD_CONSTANTS_BERRY_H
#define GUARD_CONSTANTS_BERRY_H
#define BERRY_NONE 0
#define BERRY_FIRMNESS_UNKNOWN 0
#define BERRY_FIRMNESS_VERY_SOFT 1
#define BERRY_FIRMNESS_SOFT 2
#define BERRY_FIRMNESS_HARD 3
#define BERRY_FIRMNESS_VERY_HARD 4
#define BERRY_FIRMNESS_SUPER_HARD 5
#define FLAVOR_SPICY 0
#define FLAVOR_DRY 1
#define FLAVOR_SWEET 2
#define FLAVOR_BITTER 3
#define FLAVOR_SOUR 4
#define FLAVOR_COUNT 5
#define BERRY_STAGE_NO_BERRY 0 // there is no tree planted and the soil is completely flat.
#define BERRY_STAGE_PLANTED 1
#define BERRY_STAGE_SPROUTED 2
#define BERRY_STAGE_TALLER 3
#define BERRY_STAGE_FLOWERING 4
#define BERRY_STAGE_BERRIES 5
#define BERRY_STAGE_SPARKLING 255
// Berries can be watered in the following stages:
// - BERRY_STAGE_PLANTED
// - BERRY_STAGE_SPROUTED
// - BERRY_STAGE_TALLER
// - BERRY_STAGE_FLOWERING
#define NUM_WATER_STAGES 4
// IDs for berry tree objects, indexes into berryTrees in SaveBlock1
// Named for whatever berry is initially planted there on a new game
// Those with no initial berry are named "soil"
#define BERRY_TREE_ROUTE_102_PECHA 1
#define BERRY_TREE_ROUTE_102_ORAN 2
#define BERRY_TREE_ROUTE_104_SOIL_1 3
#define BERRY_TREE_ROUTE_104_ORAN_1 4
#define BERRY_TREE_ROUTE_103_CHERI_1 5
#define BERRY_TREE_ROUTE_103_LEPPA 6
#define BERRY_TREE_ROUTE_103_CHERI_2 7
#define BERRY_TREE_ROUTE_104_CHERI_1 8
#define BERRY_TREE_ROUTE_104_SOIL_2 9
#define BERRY_TREE_ROUTE_104_LEPPA 10
#define BERRY_TREE_ROUTE_104_ORAN_2 11
#define BERRY_TREE_ROUTE_104_SOIL_3 12
#define BERRY_TREE_ROUTE_104_PECHA 13
#define BERRY_TREE_ROUTE_123_QUALOT_1 14
#define BERRY_TREE_ROUTE_123_POMEG_1 15
#define BERRY_TREE_ROUTE_110_NANAB_1 16
#define BERRY_TREE_ROUTE_110_NANAB_2 17
#define BERRY_TREE_ROUTE_110_NANAB_3 18
#define BERRY_TREE_ROUTE_111_RAZZ_1 19
#define BERRY_TREE_ROUTE_111_RAZZ_2 20
#define BERRY_TREE_ROUTE_112_RAWST_1 21
#define BERRY_TREE_ROUTE_112_PECHA_1 22
#define BERRY_TREE_ROUTE_112_PECHA_2 23
#define BERRY_TREE_ROUTE_112_RAWST_2 24
#define BERRY_TREE_ROUTE_116_PINAP_1 25
#define BERRY_TREE_ROUTE_116_CHESTO_1 26
#define BERRY_TREE_ROUTE_117_WEPEAR_1 27
#define BERRY_TREE_ROUTE_117_WEPEAR_2 28
#define BERRY_TREE_ROUTE_117_WEPEAR_3 29
#define BERRY_TREE_ROUTE_123_POMEG_2 30
#define BERRY_TREE_ROUTE_118_SITRUS_1 31
#define BERRY_TREE_ROUTE_118_SOIL 32
#define BERRY_TREE_ROUTE_118_SITRUS_2 33
#define BERRY_TREE_ROUTE_119_POMEG_1 34
#define BERRY_TREE_ROUTE_119_POMEG_2 35
#define BERRY_TREE_ROUTE_119_POMEG_3 36
#define BERRY_TREE_ROUTE_120_ASPEAR_1 37
#define BERRY_TREE_ROUTE_120_ASPEAR_2 38
#define BERRY_TREE_ROUTE_120_ASPEAR_3 39
#define BERRY_TREE_ROUTE_120_PECHA_1 40
#define BERRY_TREE_ROUTE_120_PECHA_2 41
#define BERRY_TREE_ROUTE_120_PECHA_3 42
#define BERRY_TREE_ROUTE_120_RAZZ 43
#define BERRY_TREE_ROUTE_120_NANAB 44
#define BERRY_TREE_ROUTE_120_PINAP 45
#define BERRY_TREE_ROUTE_120_WEPEAR 46
#define BERRY_TREE_ROUTE_121_PERSIM 47
#define BERRY_TREE_ROUTE_121_ASPEAR 48
#define BERRY_TREE_ROUTE_121_RAWST 49
#define BERRY_TREE_ROUTE_121_CHESTO 50
#define BERRY_TREE_ROUTE_121_SOIL_1 51
#define BERRY_TREE_ROUTE_121_NANAB_1 52
#define BERRY_TREE_ROUTE_121_NANAB_2 53
#define BERRY_TREE_ROUTE_121_SOIL_2 54
#define BERRY_TREE_ROUTE_115_BLUK_1 55
#define BERRY_TREE_ROUTE_115_BLUK_2 56
#define BERRY_TREE_UNUSED 57
#define BERRY_TREE_ROUTE_123_POMEG_3 58
#define BERRY_TREE_ROUTE_123_POMEG_4 59
#define BERRY_TREE_ROUTE_123_GREPA_1 60
#define BERRY_TREE_ROUTE_123_GREPA_2 61
#define BERRY_TREE_ROUTE_123_LEPPA_1 62
#define BERRY_TREE_ROUTE_123_SOIL 63
#define BERRY_TREE_ROUTE_123_LEPPA_2 64
#define BERRY_TREE_ROUTE_123_GREPA_3 65
#define BERRY_TREE_ROUTE_116_CHESTO_2 66
#define BERRY_TREE_ROUTE_116_PINAP_2 67
#define BERRY_TREE_ROUTE_114_PERSIM_1 68
#define BERRY_TREE_ROUTE_115_KELPSY_1 69
#define BERRY_TREE_ROUTE_115_KELPSY_2 70
#define BERRY_TREE_ROUTE_115_KELPSY_3 71
#define BERRY_TREE_ROUTE_123_GREPA_4 72
#define BERRY_TREE_ROUTE_123_QUALOT_2 73
#define BERRY_TREE_ROUTE_123_QUALOT_3 74
#define BERRY_TREE_ROUTE_104_SOIL_4 75
#define BERRY_TREE_ROUTE_104_CHERI_2 76
#define BERRY_TREE_ROUTE_114_PERSIM_2 77
#define BERRY_TREE_ROUTE_114_PERSIM_3 78
#define BERRY_TREE_ROUTE_123_QUALOT_4 79
#define BERRY_TREE_ROUTE_111_ORAN_1 80
#define BERRY_TREE_ROUTE_111_ORAN_2 81
#define BERRY_TREE_ROUTE_130_LIECHI 82
#define BERRY_TREE_ROUTE_119_HONDEW_1 83
#define BERRY_TREE_ROUTE_119_HONDEW_2 84
#define BERRY_TREE_ROUTE_119_SITRUS 85
#define BERRY_TREE_ROUTE_119_LEPPA 86
#define BERRY_TREE_ROUTE_123_PECHA 87
#define BERRY_TREE_ROUTE_123_SITRUS 88
#define BERRY_TREE_ROUTE_123_RAWST 89
// Remainder are unused
#define BERRY_TREES_COUNT 128
#endif // GUARD_CONSTANTS_BERRY_H

View File

@ -0,0 +1,35 @@
#ifndef GUARD_CONSTANTS_CABLE_CLUB_H
#define GUARD_CONSTANTS_CABLE_CLUB_H
// States for VAR_CABLE_CLUB_STATE
#define USING_SINGLE_BATTLE 1
#define USING_DOUBLE_BATTLE 2
#define USING_TRADE_CENTER 3
#define USING_RECORD_CORNER 4
#define USING_MULTI_BATTLE 5
#define USING_UNION_ROOM 6
#define USING_BERRY_CRUSH 7
#define USING_MINIGAME 8
#define USING_BATTLE_TOWER 9
// Return states for the group of specials that use CreateLinkupTask
// A few also used by TryBecomeLinkLeader and TryJoinLinkGroup
#define LINKUP_ONGOING 0
#define LINKUP_SUCCESS 1
#define LINKUP_SOMEONE_NOT_READY 2
#define LINKUP_DIFF_SELECTIONS 3
#define LINKUP_WRONG_NUM_PLAYERS 4
#define LINKUP_FAILED 5
#define LINKUP_CONNECTION_ERROR 6
#define LINKUP_PLAYER_NOT_READY 7
#define LINKUP_RETRY_ROLE_ASSIGN 8
#define LINKUP_PARTNER_NOT_READY 9
#define LINKUP_FAILED_CONTEST_GMODE 10
#define LINKUP_FAILED_BATTLE_TOWER 11
#define LINKUP_FOREIGN_GAME 12
#define CABLE_SEAT_WAITING 0
#define CABLE_SEAT_SUCCESS 1
#define CABLE_SEAT_FAILED 2
#endif //GUARD_CONSTANTS_CABLE_CLUB_H

View File

@ -0,0 +1,7 @@
#ifndef GUARD_CONSTANTS_COINS_H
#define GUARD_CONSTANTS_COINS_H
#define MAX_COINS 9999
#define MAX_COIN_DIGITS 4
#endif // GUARD_CONSTANTS_COINS_H

220
include/constants/contest.h Normal file
View File

@ -0,0 +1,220 @@
#ifndef GUARD_CONSTANTS_CONTEST_H
#define GUARD_CONSTANTS_CONTEST_H
#define APPLAUSE_METER_SIZE 5
#define CONTEST_NUM_APPEALS 5
#define CONTEST_LAST_APPEAL (CONTEST_NUM_APPEALS - 1)
#define MAX_CONTEST_MOVE_HEARTS 8
#define LINK_CONTEST_FLAG_IS_LINK (1 << 0)
#define LINK_CONTEST_FLAG_IS_WIRELESS (1 << 1)
#define LINK_CONTEST_FLAG_HAS_RS_PLAYER (1 << 2)
#define CONTEST_RANK_NORMAL 0
#define CONTEST_RANK_SUPER 1
#define CONTEST_RANK_HYPER 2
#define CONTEST_RANK_MASTER 3
#define CONTEST_RANK_LINK 4
// States for VAR_CONTEST_TYPE
#define CONTEST_TYPE_NPC_NORMAL (CONTEST_RANK_NORMAL + 1)
#define CONTEST_TYPE_NPC_SUPER (CONTEST_RANK_SUPER + 1)
#define CONTEST_TYPE_NPC_HYPER (CONTEST_RANK_HYPER + 1)
#define CONTEST_TYPE_NPC_MASTER (CONTEST_RANK_MASTER + 1)
#define CONTEST_TYPE_LINK (CONTEST_RANK_LINK + 1)
// IDs below - 1 are indexes into gSaveBlock1Ptr->contestWinners[]
// CONTEST_WINNER_ARTIST is for the winner of the most recent contest, and is not saved.
#define CONTEST_WINNER_ARTIST 0
#define CONTEST_WINNER_HALL_1 1
#define CONTEST_WINNER_HALL_2 2
#define CONTEST_WINNER_HALL_3 3
#define CONTEST_WINNER_HALL_4 4
#define CONTEST_WINNER_HALL_5 5
#define CONTEST_WINNER_HALL_6 6
#define NUM_CONTEST_HALL_WINNERS 6
#define CONTEST_WINNER_HALL_UNUSED_1 7 // These two have data for gDefaultContestWinners
#define CONTEST_WINNER_HALL_UNUSED_2 8 // but there are only 6 paintings in the Contest Hall
#define CONTEST_WINNER_MUSEUM_COOL 9
#define CONTEST_WINNER_MUSEUM_BEAUTY 10
#define CONTEST_WINNER_MUSEUM_CUTE 11
#define CONTEST_WINNER_MUSEUM_SMART 12
#define CONTEST_WINNER_MUSEUM_TOUGH 13
// NUM_CONTEST_WINNERS in constants/global.h
#define MUSEUM_CONTEST_WINNERS_START (CONTEST_WINNER_MUSEUM_COOL - 1)
#define CONTEST_SAVE_FOR_MUSEUM ((u8)-1)
#define CONTEST_SAVE_FOR_ARTIST ((u8)-2)
// The number of possible captions for a Contest painting, per category
#define NUM_PAINTING_CAPTIONS 3
#define CANT_ENTER_CONTEST 0
#define CAN_ENTER_CONTEST_EQUAL_RANK 1
#define CAN_ENTER_CONTEST_HIGH_RANK 2
#define CANT_ENTER_CONTEST_EGG 3
#define CANT_ENTER_CONTEST_FAINTED 4
#define CONTEST_AI_CHECK_BAD_MOVE (1 << 0)
#define CONTEST_AI_CHECK_COMBO (1 << 1)
#define CONTEST_AI_CHECK_BORING (1 << 2)
#define CONTEST_AI_CHECK_EXCITEMENT (1 << 3)
#define CONTEST_AI_CHECK_ORDER (1 << 4)
#define CONTEST_AI_CHECK_GOOD_MOVE (1 << 5)
#define CONTEST_AI_ERRATIC (1 << 6)
#define CONTEST_AI_DUMMY_1 (1 << 7)
#define CONTEST_AI_DUMMY_2 (1 << 8)
#define CONTEST_AI_DUMMY_3 (1 << 9)
#define CONTEST_AI_DUMMY_4 (1 << 10)
#define CONTEST_AI_DUMMY_5 (1 << 11)
#define CONTEST_AI_DUMMY_6 (1 << 12)
#define CONTEST_AI_DUMMY_7 (1 << 13)
#define CONTEST_AI_DUMMY_8 (1 << 14)
#define CONTEST_AI_DUMMY_9 (1 << 15)
#define CONTEST_AI_DUMMY_10 (1 << 16)
#define CONTEST_AI_DUMMY_11 (1 << 17)
#define CONTEST_AI_DUMMY_12 (1 << 18)
#define CONTEST_AI_DUMMY_13 (1 << 19)
#define CONTEST_AI_DUMMY_14 (1 << 20)
#define CONTEST_AI_DUMMY_15 (1 << 21)
#define CONTEST_AI_DUMMY_16 (1 << 22)
#define CONTEST_AI_DUMMY_17 (1 << 23)
#define CONTEST_AI_DUMMY_18 (1 << 24)
#define CONTEST_AI_DUMMY_19 (1 << 25)
#define CONTEST_AI_DUMMY_20 (1 << 26)
#define CONTEST_AI_DUMMY_21 (1 << 27)
#define CONTEST_AI_DUMMY_22 (1 << 28)
#define CONTEST_AI_DUMMY_23 (1 << 29)
#define CONTEST_AI_DUMMY_24 (1 << 30)
#define CONTEST_AI_DUMMY_25 (1 << 31)
// The below scripts are used by every AI contest opponent
// It includes every non-dummy script
#define CONTEST_AI_COMMON (CONTEST_AI_CHECK_BAD_MOVE | CONTEST_AI_CHECK_COMBO | CONTEST_AI_CHECK_BORING | \
CONTEST_AI_CHECK_EXCITEMENT | CONTEST_AI_CHECK_ORDER | CONTEST_AI_CHECK_GOOD_MOVE | CONTEST_AI_ERRATIC | \
CONTEST_AI_DUMMY_1 | CONTEST_AI_DUMMY_2 | CONTEST_AI_DUMMY_3 | CONTEST_AI_DUMMY_4 | CONTEST_AI_DUMMY_5)
#define CONTEST_EFFECT_HIGHLY_APPEALING 0
#define CONTEST_EFFECT_USER_MORE_EASILY_STARTLED 1
#define CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES 2
#define CONTEST_EFFECT_REPETITION_NOT_BORING 3
#define CONTEST_EFFECT_AVOID_STARTLE_ONCE 4
#define CONTEST_EFFECT_AVOID_STARTLE 5
#define CONTEST_EFFECT_AVOID_STARTLE_SLIGHTLY 6
#define CONTEST_EFFECT_USER_LESS_EASILY_STARTLED 7
#define CONTEST_EFFECT_STARTLE_FRONT_MON 8
#define CONTEST_EFFECT_SLIGHTLY_STARTLE_PREV_MONS 9
#define CONTEST_EFFECT_STARTLE_PREV_MON 10
#define CONTEST_EFFECT_STARTLE_PREV_MONS 11
#define CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON 12
#define CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS 13
#define CONTEST_EFFECT_STARTLE_PREV_MON_2 14
#define CONTEST_EFFECT_STARTLE_PREV_MONS_2 15
#define CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION 16
#define CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION 17
#define CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN 18
#define CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL 19
#define CONTEST_EFFECT_STARTLE_MONS_COOL_APPEAL 20
#define CONTEST_EFFECT_STARTLE_MONS_BEAUTY_APPEAL 21
#define CONTEST_EFFECT_STARTLE_MONS_CUTE_APPEAL 22
#define CONTEST_EFFECT_STARTLE_MONS_SMART_APPEAL 23
#define CONTEST_EFFECT_STARTLE_MONS_TOUGH_APPEAL 24
#define CONTEST_EFFECT_MAKE_FOLLOWING_MON_NERVOUS 25
#define CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS 26
#define CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS 27
#define CONTEST_EFFECT_BADLY_STARTLES_MONS_IN_GOOD_CONDITION 28
#define CONTEST_EFFECT_BETTER_IF_FIRST 29
#define CONTEST_EFFECT_BETTER_IF_LAST 30
#define CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES 31
#define CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE 32
#define CONTEST_EFFECT_BETTER_WHEN_LATER 33
#define CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING 34
#define CONTEST_EFFECT_BETTER_IF_SAME_TYPE 35
#define CONTEST_EFFECT_BETTER_IF_DIFF_TYPE 36
#define CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL 37
#define CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS 38
#define CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION 39
#define CONTEST_EFFECT_NEXT_APPEAL_EARLIER 40
#define CONTEST_EFFECT_NEXT_APPEAL_LATER 41
#define CONTEST_EFFECT_MAKE_SCRAMBLING_TURN_ORDER_EASIER 42
#define CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER 43
#define CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST 44
#define CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS 45
#define CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED 46
#define CONTEST_EFFECT_DONT_EXCITE_AUDIENCE 47
// Each of the above effects is grouped into one of these effect type categories
// Only a few of these get checked by the AI, the rest go unused
#define CONTEST_EFFECT_TYPE_APPEAL 0
#define CONTEST_EFFECT_TYPE_AVOID_STARTLE 1
#define CONTEST_EFFECT_TYPE_STARTLE_MON 2
#define CONTEST_EFFECT_TYPE_STARTLE_MONS 3
#define CONTEST_EFFECT_TYPE_WORSEN 4
#define CONTEST_EFFECT_TYPE_SPECIAL_APPEAL 5
#define CONTEST_EFFECT_TYPE_TURN_ORDER 6
#define COMBO_STARTER_RAIN_DANCE 1
#define COMBO_STARTER_RAGE 2
#define COMBO_STARTER_FOCUS_ENERGY 3
#define COMBO_STARTER_HYPNOSIS 4
#define COMBO_STARTER_ENDURE 5
#define COMBO_STARTER_HORN_ATTACK 6
#define COMBO_STARTER_SWORDS_DANCE 7
#define COMBO_STARTER_STOCKPILE 8
#define COMBO_STARTER_SUNNY_DAY 9
#define COMBO_STARTER_REST 10
#define COMBO_STARTER_VICE_GRIP 11
#define COMBO_STARTER_DEFENSE_CURL 12
#define COMBO_STARTER_CHARGE 13
#define COMBO_STARTER_ROCK_THROW 14
#define COMBO_STARTER_YAWN 15
#define COMBO_STARTER_SCARY_FACE 16
#define COMBO_STARTER_POWDER_SNOW 17
#define COMBO_STARTER_LOCK_ON 18
#define COMBO_STARTER_SOFT_BOILED 19
#define COMBO_STARTER_MEAN_LOOK 20
#define COMBO_STARTER_SCRATCH 21
#define COMBO_STARTER_GROWTH 22
#define COMBO_STARTER_HAIL 23
#define COMBO_STARTER_SANDSTORM 24
#define COMBO_STARTER_BELLY_DRUM 25
#define COMBO_STARTER_MIND_READER 26
#define COMBO_STARTER_DRAGON_BREATH 27
#define COMBO_STARTER_DRAGON_RAGE 28
#define COMBO_STARTER_DRAGON_DANCE 29
#define COMBO_STARTER_SURF 30
#define COMBO_STARTER_DIVE 31
#define COMBO_STARTER_STRING_SHOT 32
#define COMBO_STARTER_LEER 33
#define COMBO_STARTER_TAUNT 34
#define COMBO_STARTER_CHARM 35
#define COMBO_STARTER_HARDEN 36
#define COMBO_STARTER_SING 37
#define COMBO_STARTER_EARTHQUAKE 38
#define COMBO_STARTER_DOUBLE_TEAM 39
#define COMBO_STARTER_CURSE 40
#define COMBO_STARTER_SWEET_SCENT 41
#define COMBO_STARTER_SLUDGE 42
#define COMBO_STARTER_SLUDGE_BOMB 43
#define COMBO_STARTER_THUNDER_PUNCH 44
#define COMBO_STARTER_FIRE_PUNCH 45
#define COMBO_STARTER_ICE_PUNCH 46
#define COMBO_STARTER_PECK 47
#define COMBO_STARTER_METAL_SOUND 48
#define COMBO_STARTER_MUD_SPORT 49
#define COMBO_STARTER_WATER_SPORT 50
#define COMBO_STARTER_BONE_CLUB 51
#define COMBO_STARTER_BONEMERANG 52
#define COMBO_STARTER_BONE_RUSH 53
#define COMBO_STARTER_SAND_ATTACK 54
#define COMBO_STARTER_MUD_SLAP 55
#define COMBO_STARTER_FAKE_OUT 56
#define COMBO_STARTER_PSYCHIC 57
#define COMBO_STARTER_KINESIS 58
#define COMBO_STARTER_CONFUSION 59
#define COMBO_STARTER_POUND 60
#define COMBO_STARTER_SMOG 61
#define COMBO_STARTER_CALM_MIND 62
#endif // GUARD_CONSTANTS_CONTEST_H

View File

@ -0,0 +1,27 @@
#ifndef GUARD_DAYCARE_CONSTANTS_H
#define GUARD_DAYCARE_CONSTANTS_H
// Parent compatibility scores
#define PARENTS_INCOMPATIBLE 0
#define PARENTS_LOW_COMPATIBILITY 20
#define PARENTS_MED_COMPATIBILITY 50
#define PARENTS_MAX_COMPATIBILITY 70
// Daycare state
#define DAYCARE_NO_MONS 0
#define DAYCARE_EGG_WAITING 1
#define DAYCARE_ONE_MON 2
#define DAYCARE_TWO_MONS 3
#define INHERITED_IV_COUNT 3
#define EGG_HATCH_LEVEL 5
#define EGG_GENDER_MALE 0x8000 // used to create a male egg from a female-only parent species (e.g. Nidoran)
#define DAYCARE_LEVEL_MENU_EXIT 5
#define DAYCARE_EXITED_LEVEL_MENU 2 // would be redundant with above if GF had used the same value
// Array buffers
#define EGG_MOVES_ARRAY_COUNT 10
#define EGG_LVL_UP_MOVES_ARRAY_COUNT (MAX_LEVEL_UP_MOVES > 50 ? MAX_LEVEL_UP_MOVES : 50)
#endif //GUARD_DAYCARE_CONSTANTS_H

View File

@ -0,0 +1,127 @@
#ifndef GUARD_CONSTANTS_DECORATIONS_H
#define GUARD_CONSTANTS_DECORATIONS_H
#define DECOR_NONE 0
#define DECOR_SMALL_DESK 1
#define DECOR_POKEMON_DESK 2
#define DECOR_HEAVY_DESK 3
#define DECOR_RAGGED_DESK 4
#define DECOR_COMFORT_DESK 5
#define DECOR_PRETTY_DESK 6
#define DECOR_BRICK_DESK 7
#define DECOR_CAMP_DESK 8
#define DECOR_HARD_DESK 9
#define DECOR_SMALL_CHAIR 10
#define DECOR_POKEMON_CHAIR 11
#define DECOR_HEAVY_CHAIR 12
#define DECOR_PRETTY_CHAIR 13
#define DECOR_COMFORT_CHAIR 14
#define DECOR_RAGGED_CHAIR 15
#define DECOR_BRICK_CHAIR 16
#define DECOR_CAMP_CHAIR 17
#define DECOR_HARD_CHAIR 18
#define DECOR_RED_PLANT 19
#define DECOR_TROPICAL_PLANT 20
#define DECOR_PRETTY_FLOWERS 21
#define DECOR_COLORFUL_PLANT 22
#define DECOR_BIG_PLANT 23
#define DECOR_GORGEOUS_PLANT 24
#define DECOR_RED_BRICK 25
#define DECOR_YELLOW_BRICK 26
#define DECOR_BLUE_BRICK 27
#define DECOR_RED_BALLOON 28
#define DECOR_BLUE_BALLOON 29
#define DECOR_YELLOW_BALLOON 30
#define DECOR_RED_TENT 31
#define DECOR_BLUE_TENT 32
#define DECOR_SOLID_BOARD 33
#define DECOR_SLIDE 34
#define DECOR_FENCE_LENGTH 35
#define DECOR_FENCE_WIDTH 36
#define DECOR_TIRE 37
#define DECOR_STAND 38
#define DECOR_MUD_BALL 39
#define DECOR_BREAKABLE_DOOR 40
#define DECOR_SAND_ORNAMENT 41
#define DECOR_SILVER_SHIELD 42
#define DECOR_GOLD_SHIELD 43
#define DECOR_GLASS_ORNAMENT 44
#define DECOR_TV 45
#define DECOR_ROUND_TV 46
#define DECOR_CUTE_TV 47
#define DECOR_GLITTER_MAT 48
#define DECOR_JUMP_MAT 49
#define DECOR_SPIN_MAT 50
#define DECOR_C_LOW_NOTE_MAT 51
#define DECOR_D_NOTE_MAT 52
#define DECOR_E_NOTE_MAT 53
#define DECOR_F_NOTE_MAT 54
#define DECOR_G_NOTE_MAT 55
#define DECOR_A_NOTE_MAT 56
#define DECOR_B_NOTE_MAT 57
#define DECOR_C_HIGH_NOTE_MAT 58
#define DECOR_SURF_MAT 59
#define DECOR_THUNDER_MAT 60
#define DECOR_FIRE_BLAST_MAT 61
#define DECOR_POWDER_SNOW_MAT 62
#define DECOR_ATTRACT_MAT 63
#define DECOR_FISSURE_MAT 64
#define DECOR_SPIKES_MAT 65
#define DECOR_BALL_POSTER 66
#define DECOR_GREEN_POSTER 67
#define DECOR_RED_POSTER 68
#define DECOR_BLUE_POSTER 69
#define DECOR_CUTE_POSTER 70
#define DECOR_PIKA_POSTER 71
#define DECOR_LONG_POSTER 72
#define DECOR_SEA_POSTER 73
#define DECOR_SKY_POSTER 74
#define DECOR_KISS_POSTER 75
#define DECOR_PICHU_DOLL 76
#define DECOR_PIKACHU_DOLL 77
#define DECOR_MARILL_DOLL 78
#define DECOR_TOGEPI_DOLL 79
#define DECOR_CYNDAQUIL_DOLL 80
#define DECOR_CHIKORITA_DOLL 81
#define DECOR_TOTODILE_DOLL 82
#define DECOR_JIGGLYPUFF_DOLL 83
#define DECOR_MEOWTH_DOLL 84
#define DECOR_CLEFAIRY_DOLL 85
#define DECOR_DITTO_DOLL 86
#define DECOR_SMOOCHUM_DOLL 87
#define DECOR_TREECKO_DOLL 88
#define DECOR_TORCHIC_DOLL 89
#define DECOR_MUDKIP_DOLL 90
#define DECOR_DUSKULL_DOLL 91
#define DECOR_WYNAUT_DOLL 92
#define DECOR_BALTOY_DOLL 93
#define DECOR_KECLEON_DOLL 94
#define DECOR_AZURILL_DOLL 95
#define DECOR_SKITTY_DOLL 96
#define DECOR_SWABLU_DOLL 97
#define DECOR_GULPIN_DOLL 98
#define DECOR_LOTAD_DOLL 99
#define DECOR_SEEDOT_DOLL 100
#define DECOR_PIKA_CUSHION 101
#define DECOR_ROUND_CUSHION 102
#define DECOR_KISS_CUSHION 103
#define DECOR_ZIGZAG_CUSHION 104
#define DECOR_SPIN_CUSHION 105
#define DECOR_DIAMOND_CUSHION 106
#define DECOR_BALL_CUSHION 107
#define DECOR_GRASS_CUSHION 108
#define DECOR_FIRE_CUSHION 109
#define DECOR_WATER_CUSHION 110
#define DECOR_SNORLAX_DOLL 111
#define DECOR_RHYDON_DOLL 112
#define DECOR_LAPRAS_DOLL 113
#define DECOR_VENUSAUR_DOLL 114
#define DECOR_CHARIZARD_DOLL 115
#define DECOR_BLASTOISE_DOLL 116
#define DECOR_WAILMER_DOLL 117
#define DECOR_REGIROCK_DOLL 118
#define DECOR_REGICE_DOLL 119
#define DECOR_REGISTEEL_DOLL 120
#define NUM_DECORATIONS DECOR_REGISTEEL_DOLL
#endif // GUARD_CONSTANTS_DECORATIONS_H

View File

@ -0,0 +1,1126 @@
#ifndef GUARD_CONSTANTS_EASY_CHAT_H
#define GUARD_CONSTANTS_EASY_CHAT_H
#define EASY_CHAT_TYPE_PROFILE 0
#define EASY_CHAT_TYPE_BATTLE_START 1
#define EASY_CHAT_TYPE_BATTLE_WON 2
#define EASY_CHAT_TYPE_BATTLE_LOST 3
#define EASY_CHAT_TYPE_MAIL 4
#define EASY_CHAT_TYPE_INTERVIEW 5
#define EASY_CHAT_TYPE_BARD_SONG 6
#define EASY_CHAT_TYPE_FAN_CLUB 7
#define EASY_CHAT_TYPE_DUMMY_SHOW 8
#define EASY_CHAT_TYPE_TRENDY_PHRASE 9
#define EASY_CHAT_TYPE_GABBY_AND_TY 10
#define EASY_CHAT_TYPE_CONTEST_INTERVIEW 11
#define EASY_CHAT_TYPE_BATTLE_TOWER_INTERVIEW 12
#define EASY_CHAT_TYPE_GOOD_SAYING 13
#define EASY_CHAT_TYPE_FAN_QUESTION 14
#define EASY_CHAT_TYPE_QUIZ_ANSWER 15
#define EASY_CHAT_TYPE_QUIZ_QUESTION 16
#define EASY_CHAT_TYPE_QUIZ_SET_QUESTION 17
#define EASY_CHAT_TYPE_QUIZ_SET_ANSWER 18
#define EASY_CHAT_TYPE_APPRENTICE 19
#define EASY_CHAT_TYPE_QUESTIONNAIRE 20
#define EASY_CHAT_PERSON_REPORTER_MALE 0
#define EASY_CHAT_PERSON_REPORTER_FEMALE 1
#define EASY_CHAT_PERSON_BOY 2
#define EASY_CHAT_PERSON_DISPLAY_NONE 3
#define EC_GROUP_POKEMON 0
#define EC_GROUP_TRAINER 1
#define EC_GROUP_STATUS 2
#define EC_GROUP_BATTLE 3
#define EC_GROUP_GREETINGS 4
#define EC_GROUP_PEOPLE 5
#define EC_GROUP_VOICES 6
#define EC_GROUP_SPEECH 7
#define EC_GROUP_ENDINGS 8
#define EC_GROUP_FEELINGS 9
#define EC_GROUP_CONDITIONS 10
#define EC_GROUP_ACTIONS 11
#define EC_GROUP_LIFESTYLE 12
#define EC_GROUP_HOBBIES 13
#define EC_GROUP_TIME 14
#define EC_GROUP_MISC 15
#define EC_GROUP_ADJECTIVES 16
#define EC_GROUP_EVENTS 17
#define EC_GROUP_MOVE_1 18
#define EC_GROUP_MOVE_2 19
#define EC_GROUP_TRENDY_SAYING 20
#define EC_GROUP_POKEMON_NATIONAL 21
#define EC_NUM_GROUPS 22
// TRAINER
#define EC_WORD_I_CHOOSE_YOU (EC_GROUP_TRAINER << 9) | 0x0
#define EC_WORD_GOTCHA (EC_GROUP_TRAINER << 9) | 0x1
#define EC_WORD_TRADE (EC_GROUP_TRAINER << 9) | 0x2
#define EC_WORD_SAPPHIRE (EC_GROUP_TRAINER << 9) | 0x3
#define EC_WORD_EVOLVE (EC_GROUP_TRAINER << 9) | 0x4
#define EC_WORD_ENCYCLOPEDIA (EC_GROUP_TRAINER << 9) | 0x5
#define EC_WORD_NATURE (EC_GROUP_TRAINER << 9) | 0x6
#define EC_WORD_CENTER (EC_GROUP_TRAINER << 9) | 0x7
#define EC_WORD_EGG (EC_GROUP_TRAINER << 9) | 0x8
#define EC_WORD_LINK (EC_GROUP_TRAINER << 9) | 0x9
#define EC_WORD_SP_ABILITY (EC_GROUP_TRAINER << 9) | 0xa
#define EC_WORD_TRAINER (EC_GROUP_TRAINER << 9) | 0xb
#define EC_WORD_VERSION (EC_GROUP_TRAINER << 9) | 0xc
#define EC_WORD_POKENAV (EC_GROUP_TRAINER << 9) | 0xd
#define EC_WORD_POKEMON (EC_GROUP_TRAINER << 9) | 0xe
#define EC_WORD_GET (EC_GROUP_TRAINER << 9) | 0xf
#define EC_WORD_POKEDEX (EC_GROUP_TRAINER << 9) | 0x10
#define EC_WORD_RUBY (EC_GROUP_TRAINER << 9) | 0x11
#define EC_WORD_LEVEL (EC_GROUP_TRAINER << 9) | 0x12
#define EC_WORD_RED (EC_GROUP_TRAINER << 9) | 0x13
#define EC_WORD_GREEN (EC_GROUP_TRAINER << 9) | 0x14
#define EC_WORD_BAG (EC_GROUP_TRAINER << 9) | 0x15
#define EC_WORD_FLAME (EC_GROUP_TRAINER << 9) | 0x16
#define EC_WORD_GOLD (EC_GROUP_TRAINER << 9) | 0x17
#define EC_WORD_LEAF (EC_GROUP_TRAINER << 9) | 0x18
#define EC_WORD_SILVER (EC_GROUP_TRAINER << 9) | 0x19
#define EC_WORD_EMERALD (EC_GROUP_TRAINER << 9) | 0x1a
// STATUS
#define EC_WORD_DARK (EC_GROUP_STATUS << 9) | 0x0
#define EC_WORD_STENCH (EC_GROUP_STATUS << 9) | 0x1
#define EC_WORD_THICK_FAT (EC_GROUP_STATUS << 9) | 0x2
#define EC_WORD_RAIN_DISH (EC_GROUP_STATUS << 9) | 0x3
#define EC_WORD_DRIZZLE (EC_GROUP_STATUS << 9) | 0x4
#define EC_WORD_ARENA_TRAP (EC_GROUP_STATUS << 9) | 0x5
#define EC_WORD_INTIMIDATE (EC_GROUP_STATUS << 9) | 0x6
#define EC_WORD_ROCK_HEAD (EC_GROUP_STATUS << 9) | 0x7
#define EC_WORD_COLOR (EC_GROUP_STATUS << 9) | 0x8
#define EC_WORD_ALT_COLOR (EC_GROUP_STATUS << 9) | 0x9
#define EC_WORD_ROCK (EC_GROUP_STATUS << 9) | 0xa
#define EC_WORD_BEAUTIFUL (EC_GROUP_STATUS << 9) | 0xb
#define EC_WORD_BEAUTY (EC_GROUP_STATUS << 9) | 0xc
#define EC_WORD_AIR_LOCK (EC_GROUP_STATUS << 9) | 0xd
#define EC_WORD_PSYCHIC (EC_GROUP_STATUS << 9) | 0xe
#define EC_WORD_HYPER_CUTTER (EC_GROUP_STATUS << 9) | 0xf
#define EC_WORD_FIGHTING (EC_GROUP_STATUS << 9) | 0x10
#define EC_WORD_SHADOW_TAG (EC_GROUP_STATUS << 9) | 0x11
#define EC_WORD_SMART (EC_GROUP_STATUS << 9) | 0x12
#define EC_WORD_SMARTNESS (EC_GROUP_STATUS << 9) | 0x13
#define EC_WORD_SPEED_BOOST (EC_GROUP_STATUS << 9) | 0x14
#define EC_WORD_COOL (EC_GROUP_STATUS << 9) | 0x15
#define EC_WORD_COOLNESS (EC_GROUP_STATUS << 9) | 0x16
#define EC_WORD_BATTLE_ARMOR (EC_GROUP_STATUS << 9) | 0x17
#define EC_WORD_CUTE (EC_GROUP_STATUS << 9) | 0x18
#define EC_WORD_CUTENESS (EC_GROUP_STATUS << 9) | 0x19
#define EC_WORD_STURDY (EC_GROUP_STATUS << 9) | 0x1a
#define EC_WORD_SUCTION_CUPS (EC_GROUP_STATUS << 9) | 0x1b
#define EC_WORD_GRASS (EC_GROUP_STATUS << 9) | 0x1c
#define EC_WORD_CLEAR_BODY (EC_GROUP_STATUS << 9) | 0x1d
#define EC_WORD_TORRENT (EC_GROUP_STATUS << 9) | 0x1e
#define EC_WORD_GHOST (EC_GROUP_STATUS << 9) | 0x1f
#define EC_WORD_ICE (EC_GROUP_STATUS << 9) | 0x20
#define EC_WORD_GUTS (EC_GROUP_STATUS << 9) | 0x21
#define EC_WORD_ROUGH_SKIN (EC_GROUP_STATUS << 9) | 0x22
#define EC_WORD_SHELL_ARMOR (EC_GROUP_STATUS << 9) | 0x23
#define EC_WORD_NATURAL_CURE (EC_GROUP_STATUS << 9) | 0x24
#define EC_WORD_DAMP (EC_GROUP_STATUS << 9) | 0x25
#define EC_WORD_GROUND (EC_GROUP_STATUS << 9) | 0x26
#define EC_WORD_LIMBER (EC_GROUP_STATUS << 9) | 0x27
#define EC_WORD_MAGNET_PULL (EC_GROUP_STATUS << 9) | 0x28
#define EC_WORD_WHITE_SMOKE (EC_GROUP_STATUS << 9) | 0x29
#define EC_WORD_SYNCHRONIZE (EC_GROUP_STATUS << 9) | 0x2a
#define EC_WORD_OVERGROW (EC_GROUP_STATUS << 9) | 0x2b
#define EC_WORD_SWIFT_SWIM (EC_GROUP_STATUS << 9) | 0x2c
#define EC_WORD_SAND_STREAM (EC_GROUP_STATUS << 9) | 0x2d
#define EC_WORD_SAND_VEIL (EC_GROUP_STATUS << 9) | 0x2e
#define EC_WORD_KEEN_EYE (EC_GROUP_STATUS << 9) | 0x2f
#define EC_WORD_INNER_FOCUS (EC_GROUP_STATUS << 9) | 0x30
#define EC_WORD_STATIC (EC_GROUP_STATUS << 9) | 0x31
#define EC_WORD_TYPE (EC_GROUP_STATUS << 9) | 0x32
#define EC_WORD_TOUGH (EC_GROUP_STATUS << 9) | 0x33
#define EC_WORD_TOUGHNESS (EC_GROUP_STATUS << 9) | 0x34
#define EC_WORD_SHED_SKIN (EC_GROUP_STATUS << 9) | 0x35
#define EC_WORD_HUGE_POWER (EC_GROUP_STATUS << 9) | 0x36
#define EC_WORD_VOLT_ABSORB (EC_GROUP_STATUS << 9) | 0x37
#define EC_WORD_WATER_ABSORB (EC_GROUP_STATUS << 9) | 0x38
#define EC_WORD_ELECTRIC (EC_GROUP_STATUS << 9) | 0x39
#define EC_WORD_FORECAST (EC_GROUP_STATUS << 9) | 0x3a
#define EC_WORD_SERENE_GRACE (EC_GROUP_STATUS << 9) | 0x3b
#define EC_WORD_POISON (EC_GROUP_STATUS << 9) | 0x3c
#define EC_WORD_POISON_POINT (EC_GROUP_STATUS << 9) | 0x3d
#define EC_WORD_DRAGON (EC_GROUP_STATUS << 9) | 0x3e
#define EC_WORD_TRACE (EC_GROUP_STATUS << 9) | 0x3f
#define EC_WORD_OBLIVIOUS (EC_GROUP_STATUS << 9) | 0x40
#define EC_WORD_TRUANT (EC_GROUP_STATUS << 9) | 0x41
#define EC_WORD_RUN_AWAY (EC_GROUP_STATUS << 9) | 0x42
#define EC_WORD_STICKY_HOLD (EC_GROUP_STATUS << 9) | 0x43
#define EC_WORD_CLOUD_NINE (EC_GROUP_STATUS << 9) | 0x44
#define EC_WORD_NORMAL (EC_GROUP_STATUS << 9) | 0x45
#define EC_WORD_STEEL (EC_GROUP_STATUS << 9) | 0x46
#define EC_WORD_ILLUMINATE (EC_GROUP_STATUS << 9) | 0x47
#define EC_WORD_EARLY_BIRD (EC_GROUP_STATUS << 9) | 0x48
#define EC_WORD_HUSTLE (EC_GROUP_STATUS << 9) | 0x49
#define EC_WORD_SHINE (EC_GROUP_STATUS << 9) | 0x4a
#define EC_WORD_FLYING (EC_GROUP_STATUS << 9) | 0x4b
#define EC_WORD_DROUGHT (EC_GROUP_STATUS << 9) | 0x4c
#define EC_WORD_LIGHTNINGROD (EC_GROUP_STATUS << 9) | 0x4d
#define EC_WORD_COMPOUNDEYES (EC_GROUP_STATUS << 9) | 0x4e
#define EC_WORD_MARVEL_SCALE (EC_GROUP_STATUS << 9) | 0x4f
#define EC_WORD_WONDER_GUARD (EC_GROUP_STATUS << 9) | 0x50
#define EC_WORD_INSOMNIA (EC_GROUP_STATUS << 9) | 0x51
#define EC_WORD_LEVITATE (EC_GROUP_STATUS << 9) | 0x52
#define EC_WORD_PLUS (EC_GROUP_STATUS << 9) | 0x53
#define EC_WORD_PRESSURE (EC_GROUP_STATUS << 9) | 0x54
#define EC_WORD_LIQUID_OOZE (EC_GROUP_STATUS << 9) | 0x55
#define EC_WORD_COLOR_CHANGE (EC_GROUP_STATUS << 9) | 0x56
#define EC_WORD_SOUNDPROOF (EC_GROUP_STATUS << 9) | 0x57
#define EC_WORD_EFFECT_SPORE (EC_GROUP_STATUS << 9) | 0x58
#define EC_WORD_PKRS (EC_GROUP_STATUS << 9) | 0x59
#define EC_WORD_FIRE (EC_GROUP_STATUS << 9) | 0x5a
#define EC_WORD_FLAME_BODY (EC_GROUP_STATUS << 9) | 0x5b
#define EC_WORD_MINUS (EC_GROUP_STATUS << 9) | 0x5c
#define EC_WORD_OWN_TEMPO (EC_GROUP_STATUS << 9) | 0x5d
#define EC_WORD_MAGMA_ARMOR (EC_GROUP_STATUS << 9) | 0x5e
#define EC_WORD_WATER (EC_GROUP_STATUS << 9) | 0x5f
#define EC_WORD_WATER_VEIL (EC_GROUP_STATUS << 9) | 0x60
#define EC_WORD_BUG (EC_GROUP_STATUS << 9) | 0x61
#define EC_WORD_SWARM (EC_GROUP_STATUS << 9) | 0x62
#define EC_WORD_CUTE_CHARM (EC_GROUP_STATUS << 9) | 0x63
#define EC_WORD_IMMUNITY (EC_GROUP_STATUS << 9) | 0x64
#define EC_WORD_BLAZE (EC_GROUP_STATUS << 9) | 0x65
#define EC_WORD_PICKUP (EC_GROUP_STATUS << 9) | 0x66
#define EC_WORD_PATTERN (EC_GROUP_STATUS << 9) | 0x67
#define EC_WORD_FLASH_FIRE (EC_GROUP_STATUS << 9) | 0x68
#define EC_WORD_VITAL_SPIRIT (EC_GROUP_STATUS << 9) | 0x69
#define EC_WORD_CHLOROPHYLL (EC_GROUP_STATUS << 9) | 0x6a
#define EC_WORD_PURE_POWER (EC_GROUP_STATUS << 9) | 0x6b
#define EC_WORD_SHIELD_DUST (EC_GROUP_STATUS << 9) | 0x6c
// BATTLE
#define EC_WORD_MATCH_UP (EC_GROUP_BATTLE << 9) | 0x0
#define EC_WORD_GO (EC_GROUP_BATTLE << 9) | 0x1
#define EC_WORD_NO_1 (EC_GROUP_BATTLE << 9) | 0x2
#define EC_WORD_DECIDE (EC_GROUP_BATTLE << 9) | 0x3
#define EC_WORD_LET_ME_WIN (EC_GROUP_BATTLE << 9) | 0x4
#define EC_WORD_WINS (EC_GROUP_BATTLE << 9) | 0x5
#define EC_WORD_WIN (EC_GROUP_BATTLE << 9) | 0x6
#define EC_WORD_WON (EC_GROUP_BATTLE << 9) | 0x7
#define EC_WORD_IF_I_WIN (EC_GROUP_BATTLE << 9) | 0x8
#define EC_WORD_WHEN_I_WIN (EC_GROUP_BATTLE << 9) | 0x9
#define EC_WORD_CAN_T_WIN (EC_GROUP_BATTLE << 9) | 0xa
#define EC_WORD_CAN_WIN (EC_GROUP_BATTLE << 9) | 0xb
#define EC_WORD_NO_MATCH (EC_GROUP_BATTLE << 9) | 0xc
#define EC_WORD_SPIRIT (EC_GROUP_BATTLE << 9) | 0xd
#define EC_WORD_DECIDED (EC_GROUP_BATTLE << 9) | 0xe
#define EC_WORD_TRUMP_CARD (EC_GROUP_BATTLE << 9) | 0xf
#define EC_WORD_TAKE_THAT (EC_GROUP_BATTLE << 9) | 0x10
#define EC_WORD_COME_ON (EC_GROUP_BATTLE << 9) | 0x11
#define EC_WORD_ATTACK (EC_GROUP_BATTLE << 9) | 0x12
#define EC_WORD_SURRENDER (EC_GROUP_BATTLE << 9) | 0x13
#define EC_WORD_GUTSY (EC_GROUP_BATTLE << 9) | 0x14
#define EC_WORD_TALENT (EC_GROUP_BATTLE << 9) | 0x15
#define EC_WORD_STRATEGY (EC_GROUP_BATTLE << 9) | 0x16
#define EC_WORD_SMITE (EC_GROUP_BATTLE << 9) | 0x17
#define EC_WORD_MATCH (EC_GROUP_BATTLE << 9) | 0x18
#define EC_WORD_VICTORY (EC_GROUP_BATTLE << 9) | 0x19
#define EC_WORD_OFFENSIVE (EC_GROUP_BATTLE << 9) | 0x1a
#define EC_WORD_SENSE (EC_GROUP_BATTLE << 9) | 0x1b
#define EC_WORD_VERSUS (EC_GROUP_BATTLE << 9) | 0x1c
#define EC_WORD_FIGHTS (EC_GROUP_BATTLE << 9) | 0x1d
#define EC_WORD_POWER (EC_GROUP_BATTLE << 9) | 0x1e
#define EC_WORD_CHALLENGE (EC_GROUP_BATTLE << 9) | 0x1f
#define EC_WORD_STRONG (EC_GROUP_BATTLE << 9) | 0x20
#define EC_WORD_TOO_STRONG (EC_GROUP_BATTLE << 9) | 0x21
#define EC_WORD_GO_EASY (EC_GROUP_BATTLE << 9) | 0x22
#define EC_WORD_FOE (EC_GROUP_BATTLE << 9) | 0x23
#define EC_WORD_GENIUS (EC_GROUP_BATTLE << 9) | 0x24
#define EC_WORD_LEGEND (EC_GROUP_BATTLE << 9) | 0x25
#define EC_WORD_ESCAPE (EC_GROUP_BATTLE << 9) | 0x26
#define EC_WORD_AIM (EC_GROUP_BATTLE << 9) | 0x27
#define EC_WORD_BATTLE (EC_GROUP_BATTLE << 9) | 0x28
#define EC_WORD_FIGHT (EC_GROUP_BATTLE << 9) | 0x29
#define EC_WORD_RESUSCITATE (EC_GROUP_BATTLE << 9) | 0x2a
#define EC_WORD_POINTS (EC_GROUP_BATTLE << 9) | 0x2b
#define EC_WORD_SERIOUS (EC_GROUP_BATTLE << 9) | 0x2c
#define EC_WORD_GIVE_UP (EC_GROUP_BATTLE << 9) | 0x2d
#define EC_WORD_LOSS (EC_GROUP_BATTLE << 9) | 0x2e
#define EC_WORD_IF_I_LOSE (EC_GROUP_BATTLE << 9) | 0x2f
#define EC_WORD_LOST (EC_GROUP_BATTLE << 9) | 0x30
#define EC_WORD_LOSE (EC_GROUP_BATTLE << 9) | 0x31
#define EC_WORD_GUARD (EC_GROUP_BATTLE << 9) | 0x32
#define EC_WORD_PARTNER (EC_GROUP_BATTLE << 9) | 0x33
#define EC_WORD_REJECT (EC_GROUP_BATTLE << 9) | 0x34
#define EC_WORD_ACCEPT (EC_GROUP_BATTLE << 9) | 0x35
#define EC_WORD_INVINCIBLE (EC_GROUP_BATTLE << 9) | 0x36
#define EC_WORD_RECEIVED (EC_GROUP_BATTLE << 9) | 0x37
#define EC_WORD_EASY (EC_GROUP_BATTLE << 9) | 0x38
#define EC_WORD_WEAK (EC_GROUP_BATTLE << 9) | 0x39
#define EC_WORD_TOO_WEAK (EC_GROUP_BATTLE << 9) | 0x3a
#define EC_WORD_PUSHOVER (EC_GROUP_BATTLE << 9) | 0x3b
#define EC_WORD_LEADER (EC_GROUP_BATTLE << 9) | 0x3c
#define EC_WORD_RULE (EC_GROUP_BATTLE << 9) | 0x3d
#define EC_WORD_MOVE (EC_GROUP_BATTLE << 9) | 0x3e
// GREETINGS
#define EC_WORD_THANKS (EC_GROUP_GREETINGS << 9) | 0x0
#define EC_WORD_YES (EC_GROUP_GREETINGS << 9) | 0x1
#define EC_WORD_HERE_GOES (EC_GROUP_GREETINGS << 9) | 0x2
#define EC_WORD_HERE_I_COME (EC_GROUP_GREETINGS << 9) | 0x3
#define EC_WORD_HERE_IT_IS (EC_GROUP_GREETINGS << 9) | 0x4
#define EC_WORD_YEAH (EC_GROUP_GREETINGS << 9) | 0x5
#define EC_WORD_WELCOME (EC_GROUP_GREETINGS << 9) | 0x6
#define EC_WORD_OI (EC_GROUP_GREETINGS << 9) | 0x7
#define EC_WORD_HOW_DO (EC_GROUP_GREETINGS << 9) | 0x8
#define EC_WORD_CONGRATS (EC_GROUP_GREETINGS << 9) | 0x9
#define EC_WORD_GIVE_ME (EC_GROUP_GREETINGS << 9) | 0xa
#define EC_WORD_SORRY (EC_GROUP_GREETINGS << 9) | 0xb
#define EC_WORD_APOLOGIZE (EC_GROUP_GREETINGS << 9) | 0xc
#define EC_WORD_FORGIVE (EC_GROUP_GREETINGS << 9) | 0xd
#define EC_WORD_HEY_THERE (EC_GROUP_GREETINGS << 9) | 0xe
#define EC_WORD_HELLO (EC_GROUP_GREETINGS << 9) | 0xf
#define EC_WORD_GOOD_BYE (EC_GROUP_GREETINGS << 9) | 0x10
#define EC_WORD_THANK_YOU (EC_GROUP_GREETINGS << 9) | 0x11
#define EC_WORD_I_VE_ARRIVED (EC_GROUP_GREETINGS << 9) | 0x12
#define EC_WORD_PARDON (EC_GROUP_GREETINGS << 9) | 0x13
#define EC_WORD_EXCUSE (EC_GROUP_GREETINGS << 9) | 0x14
#define EC_WORD_SEE_YA (EC_GROUP_GREETINGS << 9) | 0x15
#define EC_WORD_EXCUSE_ME (EC_GROUP_GREETINGS << 9) | 0x16
#define EC_WORD_WELL_THEN (EC_GROUP_GREETINGS << 9) | 0x17
#define EC_WORD_GO_AHEAD (EC_GROUP_GREETINGS << 9) | 0x18
#define EC_WORD_APPRECIATE (EC_GROUP_GREETINGS << 9) | 0x19
#define EC_WORD_HEY_QUES (EC_GROUP_GREETINGS << 9) | 0x1a
#define EC_WORD_WHAT_S_UP_QUES (EC_GROUP_GREETINGS << 9) | 0x1b
#define EC_WORD_HUH_QUES (EC_GROUP_GREETINGS << 9) | 0x1c
#define EC_WORD_NO (EC_GROUP_GREETINGS << 9) | 0x1d
#define EC_WORD_HI (EC_GROUP_GREETINGS << 9) | 0x1e
#define EC_WORD_YEAH_YEAH (EC_GROUP_GREETINGS << 9) | 0x1f
#define EC_WORD_BYE_BYE (EC_GROUP_GREETINGS << 9) | 0x20
#define EC_WORD_MEET_YOU (EC_GROUP_GREETINGS << 9) | 0x21
#define EC_WORD_HEY (EC_GROUP_GREETINGS << 9) | 0x22
#define EC_WORD_SMELL (EC_GROUP_GREETINGS << 9) | 0x23
#define EC_WORD_LISTENING (EC_GROUP_GREETINGS << 9) | 0x24
#define EC_WORD_HOO_HAH (EC_GROUP_GREETINGS << 9) | 0x25
#define EC_WORD_YAHOO (EC_GROUP_GREETINGS << 9) | 0x26
#define EC_WORD_YO (EC_GROUP_GREETINGS << 9) | 0x27
#define EC_WORD_COME_OVER (EC_GROUP_GREETINGS << 9) | 0x28
#define EC_WORD_COUNT_ON (EC_GROUP_GREETINGS << 9) | 0x29
// PEOPLE
#define EC_WORD_OPPONENT (EC_GROUP_PEOPLE << 9) | 0x0
#define EC_WORD_I (EC_GROUP_PEOPLE << 9) | 0x1
#define EC_WORD_YOU (EC_GROUP_PEOPLE << 9) | 0x2
#define EC_WORD_YOURS (EC_GROUP_PEOPLE << 9) | 0x3
#define EC_WORD_SON (EC_GROUP_PEOPLE << 9) | 0x4
#define EC_WORD_YOUR (EC_GROUP_PEOPLE << 9) | 0x5
#define EC_WORD_YOU_RE (EC_GROUP_PEOPLE << 9) | 0x6
#define EC_WORD_YOU_VE (EC_GROUP_PEOPLE << 9) | 0x7
#define EC_WORD_MOTHER (EC_GROUP_PEOPLE << 9) | 0x8
#define EC_WORD_GRANDFATHER (EC_GROUP_PEOPLE << 9) | 0x9
#define EC_WORD_UNCLE (EC_GROUP_PEOPLE << 9) | 0xa
#define EC_WORD_FATHER (EC_GROUP_PEOPLE << 9) | 0xb
#define EC_WORD_BOY (EC_GROUP_PEOPLE << 9) | 0xc
#define EC_WORD_ADULT (EC_GROUP_PEOPLE << 9) | 0xd
#define EC_WORD_BROTHER (EC_GROUP_PEOPLE << 9) | 0xe
#define EC_WORD_SISTER (EC_GROUP_PEOPLE << 9) | 0xf
#define EC_WORD_GRANDMOTHER (EC_GROUP_PEOPLE << 9) | 0x10
#define EC_WORD_AUNT (EC_GROUP_PEOPLE << 9) | 0x11
#define EC_WORD_PARENT (EC_GROUP_PEOPLE << 9) | 0x12
#define EC_WORD_MAN (EC_GROUP_PEOPLE << 9) | 0x13
#define EC_WORD_ME (EC_GROUP_PEOPLE << 9) | 0x14
#define EC_WORD_GIRL (EC_GROUP_PEOPLE << 9) | 0x15
#define EC_WORD_BABE (EC_GROUP_PEOPLE << 9) | 0x16
#define EC_WORD_FAMILY (EC_GROUP_PEOPLE << 9) | 0x17
#define EC_WORD_HER (EC_GROUP_PEOPLE << 9) | 0x18
#define EC_WORD_HIM (EC_GROUP_PEOPLE << 9) | 0x19
#define EC_WORD_HE (EC_GROUP_PEOPLE << 9) | 0x1a
#define EC_WORD_PLACE (EC_GROUP_PEOPLE << 9) | 0x1b
#define EC_WORD_DAUGHTER (EC_GROUP_PEOPLE << 9) | 0x1c
#define EC_WORD_HIS (EC_GROUP_PEOPLE << 9) | 0x1d
#define EC_WORD_HE_S (EC_GROUP_PEOPLE << 9) | 0x1e
#define EC_WORD_AREN_T (EC_GROUP_PEOPLE << 9) | 0x1f
#define EC_WORD_SIBLINGS (EC_GROUP_PEOPLE << 9) | 0x20
#define EC_WORD_KID (EC_GROUP_PEOPLE << 9) | 0x21
#define EC_WORD_CHILDREN (EC_GROUP_PEOPLE << 9) | 0x22
#define EC_WORD_MR (EC_GROUP_PEOPLE << 9) | 0x23
#define EC_WORD_MRS (EC_GROUP_PEOPLE << 9) | 0x24
#define EC_WORD_MYSELF (EC_GROUP_PEOPLE << 9) | 0x25
#define EC_WORD_I_WAS (EC_GROUP_PEOPLE << 9) | 0x26
#define EC_WORD_TO_ME (EC_GROUP_PEOPLE << 9) | 0x27
#define EC_WORD_MY (EC_GROUP_PEOPLE << 9) | 0x28
#define EC_WORD_I_AM (EC_GROUP_PEOPLE << 9) | 0x29
#define EC_WORD_I_VE (EC_GROUP_PEOPLE << 9) | 0x2a
#define EC_WORD_WHO (EC_GROUP_PEOPLE << 9) | 0x2b
#define EC_WORD_SOMEONE (EC_GROUP_PEOPLE << 9) | 0x2c
#define EC_WORD_WHO_WAS (EC_GROUP_PEOPLE << 9) | 0x2d
#define EC_WORD_TO_WHOM (EC_GROUP_PEOPLE << 9) | 0x2e
#define EC_WORD_WHOSE (EC_GROUP_PEOPLE << 9) | 0x2f
#define EC_WORD_WHO_IS (EC_GROUP_PEOPLE << 9) | 0x30
#define EC_WORD_IT_S (EC_GROUP_PEOPLE << 9) | 0x31
#define EC_WORD_LADY (EC_GROUP_PEOPLE << 9) | 0x32
#define EC_WORD_FRIEND (EC_GROUP_PEOPLE << 9) | 0x33
#define EC_WORD_ALLY (EC_GROUP_PEOPLE << 9) | 0x34
#define EC_WORD_PERSON (EC_GROUP_PEOPLE << 9) | 0x35
#define EC_WORD_DUDE (EC_GROUP_PEOPLE << 9) | 0x36
#define EC_WORD_THEY (EC_GROUP_PEOPLE << 9) | 0x37
#define EC_WORD_THEY_WERE (EC_GROUP_PEOPLE << 9) | 0x38
#define EC_WORD_TO_THEM (EC_GROUP_PEOPLE << 9) | 0x39
#define EC_WORD_THEIR (EC_GROUP_PEOPLE << 9) | 0x3a
#define EC_WORD_THEY_RE (EC_GROUP_PEOPLE << 9) | 0x3b
#define EC_WORD_THEY_VE (EC_GROUP_PEOPLE << 9) | 0x3c
#define EC_WORD_WE (EC_GROUP_PEOPLE << 9) | 0x3d
#define EC_WORD_BEEN (EC_GROUP_PEOPLE << 9) | 0x3e
#define EC_WORD_TO_US (EC_GROUP_PEOPLE << 9) | 0x3f
#define EC_WORD_OUR (EC_GROUP_PEOPLE << 9) | 0x40
#define EC_WORD_WE_RE (EC_GROUP_PEOPLE << 9) | 0x41
#define EC_WORD_RIVAL (EC_GROUP_PEOPLE << 9) | 0x42
#define EC_WORD_WE_VE (EC_GROUP_PEOPLE << 9) | 0x43
#define EC_WORD_WOMAN (EC_GROUP_PEOPLE << 9) | 0x44
#define EC_WORD_SHE (EC_GROUP_PEOPLE << 9) | 0x45
#define EC_WORD_SHE_WAS (EC_GROUP_PEOPLE << 9) | 0x46
#define EC_WORD_TO_HER (EC_GROUP_PEOPLE << 9) | 0x47
#define EC_WORD_HERS (EC_GROUP_PEOPLE << 9) | 0x48
#define EC_WORD_SHE_IS (EC_GROUP_PEOPLE << 9) | 0x49
#define EC_WORD_SOME (EC_GROUP_PEOPLE << 9) | 0x4a
// VOICES
#define EC_WORD_EXCL (EC_GROUP_VOICES << 9) | 0x0
#define EC_WORD_EXCL_EXCL (EC_GROUP_VOICES << 9) | 0x1
#define EC_WORD_QUES_EXCL (EC_GROUP_VOICES << 9) | 0x2
#define EC_WORD_QUES (EC_GROUP_VOICES << 9) | 0x3
#define EC_WORD_ELLIPSIS (EC_GROUP_VOICES << 9) | 0x4
#define EC_WORD_ELLIPSIS_EXCL (EC_GROUP_VOICES << 9) | 0x5
#define EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS (EC_GROUP_VOICES << 9) | 0x6
#define EC_WORD_DASH (EC_GROUP_VOICES << 9) | 0x7
#define EC_WORD_DASH_DASH_DASH (EC_GROUP_VOICES << 9) | 0x8
#define EC_WORD_UH_OH (EC_GROUP_VOICES << 9) | 0x9
#define EC_WORD_WAAAH (EC_GROUP_VOICES << 9) | 0xa
#define EC_WORD_AHAHA (EC_GROUP_VOICES << 9) | 0xb
#define EC_WORD_OH_QUES (EC_GROUP_VOICES << 9) | 0xc
#define EC_WORD_NOPE (EC_GROUP_VOICES << 9) | 0xd
#define EC_WORD_URGH (EC_GROUP_VOICES << 9) | 0xe
#define EC_WORD_HMM (EC_GROUP_VOICES << 9) | 0xf
#define EC_WORD_WHOAH (EC_GROUP_VOICES << 9) | 0x10
#define EC_WORD_WROOOAAR_EXCL (EC_GROUP_VOICES << 9) | 0x11
#define EC_WORD_WOW (EC_GROUP_VOICES << 9) | 0x12
#define EC_WORD_GIGGLE (EC_GROUP_VOICES << 9) | 0x13
#define EC_WORD_SIGH (EC_GROUP_VOICES << 9) | 0x14
#define EC_WORD_UNBELIEVABLE (EC_GROUP_VOICES << 9) | 0x15
#define EC_WORD_CRIES (EC_GROUP_VOICES << 9) | 0x16
#define EC_WORD_AGREE (EC_GROUP_VOICES << 9) | 0x17
#define EC_WORD_EH_QUES (EC_GROUP_VOICES << 9) | 0x18
#define EC_WORD_CRY (EC_GROUP_VOICES << 9) | 0x19
#define EC_WORD_EHEHE (EC_GROUP_VOICES << 9) | 0x1a
#define EC_WORD_OI_OI_OI (EC_GROUP_VOICES << 9) | 0x1b
#define EC_WORD_OH_YEAH (EC_GROUP_VOICES << 9) | 0x1c
#define EC_WORD_OH (EC_GROUP_VOICES << 9) | 0x1d
#define EC_WORD_OOPS (EC_GROUP_VOICES << 9) | 0x1e
#define EC_WORD_SHOCKED (EC_GROUP_VOICES << 9) | 0x1f
#define EC_WORD_EEK (EC_GROUP_VOICES << 9) | 0x20
#define EC_WORD_GRAAAH (EC_GROUP_VOICES << 9) | 0x21
#define EC_WORD_GWAHAHAHA (EC_GROUP_VOICES << 9) | 0x22
#define EC_WORD_WAY (EC_GROUP_VOICES << 9) | 0x23
#define EC_WORD_TCH (EC_GROUP_VOICES << 9) | 0x24
#define EC_WORD_HEHE (EC_GROUP_VOICES << 9) | 0x25
#define EC_WORD_HAH (EC_GROUP_VOICES << 9) | 0x26
#define EC_WORD_YUP (EC_GROUP_VOICES << 9) | 0x27
#define EC_WORD_HAHAHA (EC_GROUP_VOICES << 9) | 0x28
#define EC_WORD_AIYEEH (EC_GROUP_VOICES << 9) | 0x29
#define EC_WORD_HIYAH (EC_GROUP_VOICES << 9) | 0x2a
#define EC_WORD_FUFUFU (EC_GROUP_VOICES << 9) | 0x2b
#define EC_WORD_LOL (EC_GROUP_VOICES << 9) | 0x2c
#define EC_WORD_SNORT (EC_GROUP_VOICES << 9) | 0x2d
#define EC_WORD_HUMPH (EC_GROUP_VOICES << 9) | 0x2e
#define EC_WORD_HEHEHE (EC_GROUP_VOICES << 9) | 0x2f
#define EC_WORD_HEH (EC_GROUP_VOICES << 9) | 0x30
#define EC_WORD_HOHOHO (EC_GROUP_VOICES << 9) | 0x31
#define EC_WORD_UH_HUH (EC_GROUP_VOICES << 9) | 0x32
#define EC_WORD_OH_DEAR (EC_GROUP_VOICES << 9) | 0x33
#define EC_WORD_ARRGH (EC_GROUP_VOICES << 9) | 0x34
#define EC_WORD_MUFUFU (EC_GROUP_VOICES << 9) | 0x35
#define EC_WORD_MMM (EC_GROUP_VOICES << 9) | 0x36
#define EC_WORD_OH_KAY (EC_GROUP_VOICES << 9) | 0x37
#define EC_WORD_OKAY (EC_GROUP_VOICES << 9) | 0x38
#define EC_WORD_LALALA (EC_GROUP_VOICES << 9) | 0x39
#define EC_WORD_YAY (EC_GROUP_VOICES << 9) | 0x3a
#define EC_WORD_AWW (EC_GROUP_VOICES << 9) | 0x3b
#define EC_WORD_WOWEE (EC_GROUP_VOICES << 9) | 0x3c
#define EC_WORD_GWAH (EC_GROUP_VOICES << 9) | 0x3d
#define EC_WORD_WAHAHAHA (EC_GROUP_VOICES << 9) | 0x3e
// SPEECH
#define EC_WORD_LISTEN (EC_GROUP_SPEECH << 9) | 0x0
#define EC_WORD_NOT_VERY (EC_GROUP_SPEECH << 9) | 0x1
#define EC_WORD_MEAN (EC_GROUP_SPEECH << 9) | 0x2
#define EC_WORD_LIE (EC_GROUP_SPEECH << 9) | 0x3
#define EC_WORD_LAY (EC_GROUP_SPEECH << 9) | 0x4
#define EC_WORD_RECOMMEND (EC_GROUP_SPEECH << 9) | 0x5
#define EC_WORD_NITWIT (EC_GROUP_SPEECH << 9) | 0x6
#define EC_WORD_QUITE (EC_GROUP_SPEECH << 9) | 0x7
#define EC_WORD_FROM (EC_GROUP_SPEECH << 9) | 0x8
#define EC_WORD_FEELING (EC_GROUP_SPEECH << 9) | 0x9
#define EC_WORD_BUT (EC_GROUP_SPEECH << 9) | 0xa
#define EC_WORD_HOWEVER (EC_GROUP_SPEECH << 9) | 0xb
#define EC_WORD_CASE (EC_GROUP_SPEECH << 9) | 0xc
#define EC_WORD_THE (EC_GROUP_SPEECH << 9) | 0xd
#define EC_WORD_MISS (EC_GROUP_SPEECH << 9) | 0xe
#define EC_WORD_HOW (EC_GROUP_SPEECH << 9) | 0xf
#define EC_WORD_HIT (EC_GROUP_SPEECH << 9) | 0x10
#define EC_WORD_ENOUGH (EC_GROUP_SPEECH << 9) | 0x11
#define EC_WORD_A_LOT (EC_GROUP_SPEECH << 9) | 0x12
#define EC_WORD_A_LITTLE (EC_GROUP_SPEECH << 9) | 0x13
#define EC_WORD_ABSOLUTELY (EC_GROUP_SPEECH << 9) | 0x14
#define EC_WORD_AND (EC_GROUP_SPEECH << 9) | 0x15
#define EC_WORD_ONLY (EC_GROUP_SPEECH << 9) | 0x16
#define EC_WORD_AROUND (EC_GROUP_SPEECH << 9) | 0x17
#define EC_WORD_PROBABLY (EC_GROUP_SPEECH << 9) | 0x18
#define EC_WORD_IF (EC_GROUP_SPEECH << 9) | 0x19
#define EC_WORD_VERY (EC_GROUP_SPEECH << 9) | 0x1a
#define EC_WORD_A_TINY_BIT (EC_GROUP_SPEECH << 9) | 0x1b
#define EC_WORD_WILD (EC_GROUP_SPEECH << 9) | 0x1c
#define EC_WORD_THAT_S (EC_GROUP_SPEECH << 9) | 0x1d
#define EC_WORD_JUST (EC_GROUP_SPEECH << 9) | 0x1e
#define EC_WORD_EVEN_SO (EC_GROUP_SPEECH << 9) | 0x1f
#define EC_WORD_MUST_BE (EC_GROUP_SPEECH << 9) | 0x20
#define EC_WORD_NATURALLY (EC_GROUP_SPEECH << 9) | 0x21
#define EC_WORD_FOR_NOW (EC_GROUP_SPEECH << 9) | 0x22
#define EC_WORD_UNDERSTOOD (EC_GROUP_SPEECH << 9) | 0x23
#define EC_WORD_JOKING (EC_GROUP_SPEECH << 9) | 0x24
#define EC_WORD_READY (EC_GROUP_SPEECH << 9) | 0x25
#define EC_WORD_SOMETHING (EC_GROUP_SPEECH << 9) | 0x26
#define EC_WORD_SOMEHOW (EC_GROUP_SPEECH << 9) | 0x27
#define EC_WORD_ALTHOUGH (EC_GROUP_SPEECH << 9) | 0x28
#define EC_WORD_ALSO (EC_GROUP_SPEECH << 9) | 0x29
#define EC_WORD_PERFECT (EC_GROUP_SPEECH << 9) | 0x2a
#define EC_WORD_AS_MUCH_AS (EC_GROUP_SPEECH << 9) | 0x2b
#define EC_WORD_REALLY (EC_GROUP_SPEECH << 9) | 0x2c
#define EC_WORD_TRULY (EC_GROUP_SPEECH << 9) | 0x2d
#define EC_WORD_SERIOUSLY (EC_GROUP_SPEECH << 9) | 0x2e
#define EC_WORD_TOTALLY (EC_GROUP_SPEECH << 9) | 0x2f
#define EC_WORD_UNTIL (EC_GROUP_SPEECH << 9) | 0x30
#define EC_WORD_AS_IF (EC_GROUP_SPEECH << 9) | 0x31
#define EC_WORD_MOOD (EC_GROUP_SPEECH << 9) | 0x32
#define EC_WORD_RATHER (EC_GROUP_SPEECH << 9) | 0x33
#define EC_WORD_AWFULLY (EC_GROUP_SPEECH << 9) | 0x34
#define EC_WORD_MODE (EC_GROUP_SPEECH << 9) | 0x35
#define EC_WORD_MORE (EC_GROUP_SPEECH << 9) | 0x36
#define EC_WORD_TOO_LATE (EC_GROUP_SPEECH << 9) | 0x37
#define EC_WORD_FINALLY (EC_GROUP_SPEECH << 9) | 0x38
#define EC_WORD_ANY (EC_GROUP_SPEECH << 9) | 0x39
#define EC_WORD_INSTEAD (EC_GROUP_SPEECH << 9) | 0x3a
#define EC_WORD_FANTASTIC (EC_GROUP_SPEECH << 9) | 0x3b
// ENDINGS
#define EC_WORD_WILL (EC_GROUP_ENDINGS << 9) | 0x0
#define EC_WORD_WILL_BE_HERE (EC_GROUP_ENDINGS << 9) | 0x1
#define EC_WORD_OR (EC_GROUP_ENDINGS << 9) | 0x2
#define EC_WORD_TIMES (EC_GROUP_ENDINGS << 9) | 0x3
#define EC_WORD_WONDER (EC_GROUP_ENDINGS << 9) | 0x4
#define EC_WORD_IS_IT_QUES (EC_GROUP_ENDINGS << 9) | 0x5
#define EC_WORD_BE (EC_GROUP_ENDINGS << 9) | 0x6
#define EC_WORD_GIMME (EC_GROUP_ENDINGS << 9) | 0x7
#define EC_WORD_COULD (EC_GROUP_ENDINGS << 9) | 0x8
#define EC_WORD_LIKELY_TO (EC_GROUP_ENDINGS << 9) | 0x9
#define EC_WORD_WOULD (EC_GROUP_ENDINGS << 9) | 0xa
#define EC_WORD_IS (EC_GROUP_ENDINGS << 9) | 0xb
#define EC_WORD_ISN_T_IT_QUES (EC_GROUP_ENDINGS << 9) | 0xc
#define EC_WORD_LET_S (EC_GROUP_ENDINGS << 9) | 0xd
#define EC_WORD_OTHER (EC_GROUP_ENDINGS << 9) | 0xe
#define EC_WORD_ARE (EC_GROUP_ENDINGS << 9) | 0xf
#define EC_WORD_WAS (EC_GROUP_ENDINGS << 9) | 0x10
#define EC_WORD_WERE (EC_GROUP_ENDINGS << 9) | 0x11
#define EC_WORD_THOSE (EC_GROUP_ENDINGS << 9) | 0x12
#define EC_WORD_ISN_T (EC_GROUP_ENDINGS << 9) | 0x13
#define EC_WORD_WON_T (EC_GROUP_ENDINGS << 9) | 0x14
#define EC_WORD_CAN_T (EC_GROUP_ENDINGS << 9) | 0x15
#define EC_WORD_CAN (EC_GROUP_ENDINGS << 9) | 0x16
#define EC_WORD_DON_T (EC_GROUP_ENDINGS << 9) | 0x17
#define EC_WORD_DO (EC_GROUP_ENDINGS << 9) | 0x18
#define EC_WORD_DOES (EC_GROUP_ENDINGS << 9) | 0x19
#define EC_WORD_WHOM (EC_GROUP_ENDINGS << 9) | 0x1a
#define EC_WORD_WHICH (EC_GROUP_ENDINGS << 9) | 0x1b
#define EC_WORD_WASN_T (EC_GROUP_ENDINGS << 9) | 0x1c
#define EC_WORD_WEREN_T (EC_GROUP_ENDINGS << 9) | 0x1d
#define EC_WORD_HAVE (EC_GROUP_ENDINGS << 9) | 0x1e
#define EC_WORD_HAVEN_T (EC_GROUP_ENDINGS << 9) | 0x1f
#define EC_WORD_A (EC_GROUP_ENDINGS << 9) | 0x20
#define EC_WORD_AN (EC_GROUP_ENDINGS << 9) | 0x21
#define EC_WORD_NOT (EC_GROUP_ENDINGS << 9) | 0x22
#define EC_WORD_THERE (EC_GROUP_ENDINGS << 9) | 0x23
#define EC_WORD_OK_QUES (EC_GROUP_ENDINGS << 9) | 0x24
#define EC_WORD_SO (EC_GROUP_ENDINGS << 9) | 0x25
#define EC_WORD_MAYBE (EC_GROUP_ENDINGS << 9) | 0x26
#define EC_WORD_ABOUT (EC_GROUP_ENDINGS << 9) | 0x27
#define EC_WORD_OVER (EC_GROUP_ENDINGS << 9) | 0x28
#define EC_WORD_IT (EC_GROUP_ENDINGS << 9) | 0x29
#define EC_WORD_ALL (EC_GROUP_ENDINGS << 9) | 0x2a
#define EC_WORD_FOR (EC_GROUP_ENDINGS << 9) | 0x2b
#define EC_WORD_ON (EC_GROUP_ENDINGS << 9) | 0x2c
#define EC_WORD_OFF (EC_GROUP_ENDINGS << 9) | 0x2d
#define EC_WORD_AS (EC_GROUP_ENDINGS << 9) | 0x2e
#define EC_WORD_TO (EC_GROUP_ENDINGS << 9) | 0x2f
#define EC_WORD_WITH (EC_GROUP_ENDINGS << 9) | 0x30
#define EC_WORD_BETTER (EC_GROUP_ENDINGS << 9) | 0x31
#define EC_WORD_EVER (EC_GROUP_ENDINGS << 9) | 0x32
#define EC_WORD_SINCE (EC_GROUP_ENDINGS << 9) | 0x33
#define EC_WORD_OF (EC_GROUP_ENDINGS << 9) | 0x34
#define EC_WORD_BELONGS_TO (EC_GROUP_ENDINGS << 9) | 0x35
#define EC_WORD_AT (EC_GROUP_ENDINGS << 9) | 0x36
#define EC_WORD_IN (EC_GROUP_ENDINGS << 9) | 0x37
#define EC_WORD_OUT (EC_GROUP_ENDINGS << 9) | 0x38
#define EC_WORD_TOO (EC_GROUP_ENDINGS << 9) | 0x39
#define EC_WORD_LIKE (EC_GROUP_ENDINGS << 9) | 0x3a
#define EC_WORD_DID (EC_GROUP_ENDINGS << 9) | 0x3b
#define EC_WORD_DIDN_T (EC_GROUP_ENDINGS << 9) | 0x3c
#define EC_WORD_DOESN_T (EC_GROUP_ENDINGS << 9) | 0x3d
#define EC_WORD_WITHOUT (EC_GROUP_ENDINGS << 9) | 0x3e
#define EC_WORD_AFTER (EC_GROUP_ENDINGS << 9) | 0x3f
#define EC_WORD_BEFORE (EC_GROUP_ENDINGS << 9) | 0x40
#define EC_WORD_WHILE (EC_GROUP_ENDINGS << 9) | 0x41
#define EC_WORD_THAN (EC_GROUP_ENDINGS << 9) | 0x42
#define EC_WORD_ONCE (EC_GROUP_ENDINGS << 9) | 0x43
#define EC_WORD_ANYWHERE (EC_GROUP_ENDINGS << 9) | 0x44
// FEELINGS
#define EC_WORD_MEET (EC_GROUP_FEELINGS << 9) | 0x0
#define EC_WORD_PLAY (EC_GROUP_FEELINGS << 9) | 0x1
#define EC_WORD_HURRIED (EC_GROUP_FEELINGS << 9) | 0x2
#define EC_WORD_GOES (EC_GROUP_FEELINGS << 9) | 0x3
#define EC_WORD_GIDDY (EC_GROUP_FEELINGS << 9) | 0x4
#define EC_WORD_HAPPY (EC_GROUP_FEELINGS << 9) | 0x5
#define EC_WORD_HAPPINESS (EC_GROUP_FEELINGS << 9) | 0x6
#define EC_WORD_EXCITE (EC_GROUP_FEELINGS << 9) | 0x7
#define EC_WORD_IMPORTANT (EC_GROUP_FEELINGS << 9) | 0x8
#define EC_WORD_FUNNY (EC_GROUP_FEELINGS << 9) | 0x9
#define EC_WORD_GOT (EC_GROUP_FEELINGS << 9) | 0xa
#define EC_WORD_GO_HOME (EC_GROUP_FEELINGS << 9) | 0xb
#define EC_WORD_DISAPPOINTED (EC_GROUP_FEELINGS << 9) | 0xc
#define EC_WORD_DISAPPOINTS (EC_GROUP_FEELINGS << 9) | 0xd
#define EC_WORD_SAD (EC_GROUP_FEELINGS << 9) | 0xe
#define EC_WORD_TRY (EC_GROUP_FEELINGS << 9) | 0xf
#define EC_WORD_TRIES (EC_GROUP_FEELINGS << 9) | 0x10
#define EC_WORD_HEARS (EC_GROUP_FEELINGS << 9) | 0x11
#define EC_WORD_THINK (EC_GROUP_FEELINGS << 9) | 0x12
#define EC_WORD_HEAR (EC_GROUP_FEELINGS << 9) | 0x13
#define EC_WORD_WANTS (EC_GROUP_FEELINGS << 9) | 0x14
#define EC_WORD_MISHEARD (EC_GROUP_FEELINGS << 9) | 0x15
#define EC_WORD_DISLIKE (EC_GROUP_FEELINGS << 9) | 0x16
#define EC_WORD_ANGRY (EC_GROUP_FEELINGS << 9) | 0x17
#define EC_WORD_ANGER (EC_GROUP_FEELINGS << 9) | 0x18
#define EC_WORD_SCARY (EC_GROUP_FEELINGS << 9) | 0x19
#define EC_WORD_LONESOME (EC_GROUP_FEELINGS << 9) | 0x1a
#define EC_WORD_DISAPPOINT (EC_GROUP_FEELINGS << 9) | 0x1b
#define EC_WORD_JOY (EC_GROUP_FEELINGS << 9) | 0x1c
#define EC_WORD_GETS (EC_GROUP_FEELINGS << 9) | 0x1d
#define EC_WORD_NEVER (EC_GROUP_FEELINGS << 9) | 0x1e
#define EC_WORD_DARN (EC_GROUP_FEELINGS << 9) | 0x1f
#define EC_WORD_DOWNCAST (EC_GROUP_FEELINGS << 9) | 0x20
#define EC_WORD_INCREDIBLE (EC_GROUP_FEELINGS << 9) | 0x21
#define EC_WORD_LIKES (EC_GROUP_FEELINGS << 9) | 0x22
#define EC_WORD_DISLIKES (EC_GROUP_FEELINGS << 9) | 0x23
#define EC_WORD_BORING (EC_GROUP_FEELINGS << 9) | 0x24
#define EC_WORD_CARE (EC_GROUP_FEELINGS << 9) | 0x25
#define EC_WORD_CARES (EC_GROUP_FEELINGS << 9) | 0x26
#define EC_WORD_ALL_RIGHT (EC_GROUP_FEELINGS << 9) | 0x27
#define EC_WORD_ADORE (EC_GROUP_FEELINGS << 9) | 0x28
#define EC_WORD_DISASTER (EC_GROUP_FEELINGS << 9) | 0x29
#define EC_WORD_ENJOY (EC_GROUP_FEELINGS << 9) | 0x2a
#define EC_WORD_ENJOYS (EC_GROUP_FEELINGS << 9) | 0x2b
#define EC_WORD_EAT (EC_GROUP_FEELINGS << 9) | 0x2c
#define EC_WORD_LACKING (EC_GROUP_FEELINGS << 9) | 0x2d
#define EC_WORD_BAD (EC_GROUP_FEELINGS << 9) | 0x2e
#define EC_WORD_HARD (EC_GROUP_FEELINGS << 9) | 0x2f
#define EC_WORD_TERRIBLE (EC_GROUP_FEELINGS << 9) | 0x30
#define EC_WORD_SHOULD (EC_GROUP_FEELINGS << 9) | 0x31
#define EC_WORD_NICE (EC_GROUP_FEELINGS << 9) | 0x32
#define EC_WORD_DRINK (EC_GROUP_FEELINGS << 9) | 0x33
#define EC_WORD_SURPRISE (EC_GROUP_FEELINGS << 9) | 0x34
#define EC_WORD_FEAR (EC_GROUP_FEELINGS << 9) | 0x35
#define EC_WORD_WANT (EC_GROUP_FEELINGS << 9) | 0x36
#define EC_WORD_WAIT (EC_GROUP_FEELINGS << 9) | 0x37
#define EC_WORD_SATISFIED (EC_GROUP_FEELINGS << 9) | 0x38
#define EC_WORD_SEE (EC_GROUP_FEELINGS << 9) | 0x39
#define EC_WORD_RARE (EC_GROUP_FEELINGS << 9) | 0x3a
#define EC_WORD_NEGATIVE (EC_GROUP_FEELINGS << 9) | 0x3b
#define EC_WORD_DONE (EC_GROUP_FEELINGS << 9) | 0x3c
#define EC_WORD_DANGER (EC_GROUP_FEELINGS << 9) | 0x3d
#define EC_WORD_DEFEATED (EC_GROUP_FEELINGS << 9) | 0x3e
#define EC_WORD_BEAT (EC_GROUP_FEELINGS << 9) | 0x3f
#define EC_WORD_GREAT (EC_GROUP_FEELINGS << 9) | 0x40
#define EC_WORD_ROMANTIC (EC_GROUP_FEELINGS << 9) | 0x41
#define EC_WORD_QUESTION (EC_GROUP_FEELINGS << 9) | 0x42
#define EC_WORD_UNDERSTAND (EC_GROUP_FEELINGS << 9) | 0x43
#define EC_WORD_UNDERSTANDS (EC_GROUP_FEELINGS << 9) | 0x44
// CONDITIONS
#define EC_WORD_HOT (EC_GROUP_CONDITIONS << 9) | 0x0
#define EC_WORD_EXISTS (EC_GROUP_CONDITIONS << 9) | 0x1
#define EC_WORD_EXCESS (EC_GROUP_CONDITIONS << 9) | 0x2
#define EC_WORD_APPROVED (EC_GROUP_CONDITIONS << 9) | 0x3
#define EC_WORD_HAS (EC_GROUP_CONDITIONS << 9) | 0x4
#define EC_WORD_GOOD (EC_GROUP_CONDITIONS << 9) | 0x5
#define EC_WORD_LESS (EC_GROUP_CONDITIONS << 9) | 0x6
#define EC_WORD_MOMENTUM (EC_GROUP_CONDITIONS << 9) | 0x7
#define EC_WORD_GOING (EC_GROUP_CONDITIONS << 9) | 0x8
#define EC_WORD_WEIRD (EC_GROUP_CONDITIONS << 9) | 0x9
#define EC_WORD_BUSY (EC_GROUP_CONDITIONS << 9) | 0xa
#define EC_WORD_TOGETHER (EC_GROUP_CONDITIONS << 9) | 0xb
#define EC_WORD_FULL (EC_GROUP_CONDITIONS << 9) | 0xc
#define EC_WORD_ABSENT (EC_GROUP_CONDITIONS << 9) | 0xd
#define EC_WORD_BEING (EC_GROUP_CONDITIONS << 9) | 0xe
#define EC_WORD_NEED (EC_GROUP_CONDITIONS << 9) | 0xf
#define EC_WORD_TASTY (EC_GROUP_CONDITIONS << 9) | 0x10
#define EC_WORD_SKILLED (EC_GROUP_CONDITIONS << 9) | 0x11
#define EC_WORD_NOISY (EC_GROUP_CONDITIONS << 9) | 0x12
#define EC_WORD_BIG (EC_GROUP_CONDITIONS << 9) | 0x13
#define EC_WORD_LATE (EC_GROUP_CONDITIONS << 9) | 0x14
#define EC_WORD_CLOSE (EC_GROUP_CONDITIONS << 9) | 0x15
#define EC_WORD_DOCILE (EC_GROUP_CONDITIONS << 9) | 0x16
#define EC_WORD_AMUSING (EC_GROUP_CONDITIONS << 9) | 0x17
#define EC_WORD_ENTERTAINING (EC_GROUP_CONDITIONS << 9) | 0x18
#define EC_WORD_PERFECTION (EC_GROUP_CONDITIONS << 9) | 0x19
#define EC_WORD_PRETTY (EC_GROUP_CONDITIONS << 9) | 0x1a
#define EC_WORD_HEALTHY (EC_GROUP_CONDITIONS << 9) | 0x1b
#define EC_WORD_EXCELLENT (EC_GROUP_CONDITIONS << 9) | 0x1c
#define EC_WORD_UPSIDE_DOWN (EC_GROUP_CONDITIONS << 9) | 0x1d
#define EC_WORD_COLD (EC_GROUP_CONDITIONS << 9) | 0x1e
#define EC_WORD_REFRESHING (EC_GROUP_CONDITIONS << 9) | 0x1f
#define EC_WORD_UNAVOIDABLE (EC_GROUP_CONDITIONS << 9) | 0x20
#define EC_WORD_MUCH (EC_GROUP_CONDITIONS << 9) | 0x21
#define EC_WORD_OVERWHELMING (EC_GROUP_CONDITIONS << 9) | 0x22
#define EC_WORD_FABULOUS (EC_GROUP_CONDITIONS << 9) | 0x23
#define EC_WORD_ELSE (EC_GROUP_CONDITIONS << 9) | 0x24
#define EC_WORD_EXPENSIVE (EC_GROUP_CONDITIONS << 9) | 0x25
#define EC_WORD_CORRECT (EC_GROUP_CONDITIONS << 9) | 0x26
#define EC_WORD_IMPOSSIBLE (EC_GROUP_CONDITIONS << 9) | 0x27
#define EC_WORD_SMALL (EC_GROUP_CONDITIONS << 9) | 0x28
#define EC_WORD_DIFFERENT (EC_GROUP_CONDITIONS << 9) | 0x29
#define EC_WORD_TIRED (EC_GROUP_CONDITIONS << 9) | 0x2a
#define EC_WORD_SKILL (EC_GROUP_CONDITIONS << 9) | 0x2b
#define EC_WORD_TOP (EC_GROUP_CONDITIONS << 9) | 0x2c
#define EC_WORD_NON_STOP (EC_GROUP_CONDITIONS << 9) | 0x2d
#define EC_WORD_PREPOSTEROUS (EC_GROUP_CONDITIONS << 9) | 0x2e
#define EC_WORD_NONE (EC_GROUP_CONDITIONS << 9) | 0x2f
#define EC_WORD_NOTHING (EC_GROUP_CONDITIONS << 9) | 0x30
#define EC_WORD_NATURAL (EC_GROUP_CONDITIONS << 9) | 0x31
#define EC_WORD_BECOMES (EC_GROUP_CONDITIONS << 9) | 0x32
#define EC_WORD_LUKEWARM (EC_GROUP_CONDITIONS << 9) | 0x33
#define EC_WORD_FAST (EC_GROUP_CONDITIONS << 9) | 0x34
#define EC_WORD_LOW (EC_GROUP_CONDITIONS << 9) | 0x35
#define EC_WORD_AWFUL (EC_GROUP_CONDITIONS << 9) | 0x36
#define EC_WORD_ALONE (EC_GROUP_CONDITIONS << 9) | 0x37
#define EC_WORD_BORED (EC_GROUP_CONDITIONS << 9) | 0x38
#define EC_WORD_SECRET (EC_GROUP_CONDITIONS << 9) | 0x39
#define EC_WORD_MYSTERY (EC_GROUP_CONDITIONS << 9) | 0x3a
#define EC_WORD_LACKS (EC_GROUP_CONDITIONS << 9) | 0x3b
#define EC_WORD_BEST (EC_GROUP_CONDITIONS << 9) | 0x3c
#define EC_WORD_LOUSY (EC_GROUP_CONDITIONS << 9) | 0x3d
#define EC_WORD_MISTAKE (EC_GROUP_CONDITIONS << 9) | 0x3e
#define EC_WORD_KIND (EC_GROUP_CONDITIONS << 9) | 0x3f
#define EC_WORD_WELL (EC_GROUP_CONDITIONS << 9) | 0x40
#define EC_WORD_WEAKENED (EC_GROUP_CONDITIONS << 9) | 0x41
#define EC_WORD_SIMPLE (EC_GROUP_CONDITIONS << 9) | 0x42
#define EC_WORD_SEEMS (EC_GROUP_CONDITIONS << 9) | 0x43
#define EC_WORD_BADLY (EC_GROUP_CONDITIONS << 9) | 0x44
// ACTIONS
#define EC_WORD_MEETS (EC_GROUP_ACTIONS << 9) | 0x0
#define EC_WORD_CONCEDE (EC_GROUP_ACTIONS << 9) | 0x1
#define EC_WORD_GIVE (EC_GROUP_ACTIONS << 9) | 0x2
#define EC_WORD_GIVES (EC_GROUP_ACTIONS << 9) | 0x3
#define EC_WORD_PLAYED (EC_GROUP_ACTIONS << 9) | 0x4
#define EC_WORD_PLAYS (EC_GROUP_ACTIONS << 9) | 0x5
#define EC_WORD_COLLECT (EC_GROUP_ACTIONS << 9) | 0x6
#define EC_WORD_WALKING (EC_GROUP_ACTIONS << 9) | 0x7
#define EC_WORD_WALKS (EC_GROUP_ACTIONS << 9) | 0x8
#define EC_WORD_SAYS (EC_GROUP_ACTIONS << 9) | 0x9
#define EC_WORD_WENT (EC_GROUP_ACTIONS << 9) | 0xa
#define EC_WORD_SAID (EC_GROUP_ACTIONS << 9) | 0xb
#define EC_WORD_WAKE_UP (EC_GROUP_ACTIONS << 9) | 0xc
#define EC_WORD_WAKES_UP (EC_GROUP_ACTIONS << 9) | 0xd
#define EC_WORD_ANGERS (EC_GROUP_ACTIONS << 9) | 0xe
#define EC_WORD_TEACH (EC_GROUP_ACTIONS << 9) | 0xf
#define EC_WORD_TEACHES (EC_GROUP_ACTIONS << 9) | 0x10
#define EC_WORD_PLEASE (EC_GROUP_ACTIONS << 9) | 0x11
#define EC_WORD_LEARN (EC_GROUP_ACTIONS << 9) | 0x12
#define EC_WORD_CHANGE (EC_GROUP_ACTIONS << 9) | 0x13
#define EC_WORD_STORY (EC_GROUP_ACTIONS << 9) | 0x14
#define EC_WORD_TRUST (EC_GROUP_ACTIONS << 9) | 0x15
#define EC_WORD_LAVISH (EC_GROUP_ACTIONS << 9) | 0x16
#define EC_WORD_LISTENS (EC_GROUP_ACTIONS << 9) | 0x17
#define EC_WORD_HEARING (EC_GROUP_ACTIONS << 9) | 0x18
#define EC_WORD_TRAINS (EC_GROUP_ACTIONS << 9) | 0x19
#define EC_WORD_CHOOSE (EC_GROUP_ACTIONS << 9) | 0x1a
#define EC_WORD_COME (EC_GROUP_ACTIONS << 9) | 0x1b
#define EC_WORD_CAME (EC_GROUP_ACTIONS << 9) | 0x1c
#define EC_WORD_SEARCH (EC_GROUP_ACTIONS << 9) | 0x1d
#define EC_WORD_MAKE (EC_GROUP_ACTIONS << 9) | 0x1e
#define EC_WORD_CAUSE (EC_GROUP_ACTIONS << 9) | 0x1f
#define EC_WORD_KNOW (EC_GROUP_ACTIONS << 9) | 0x20
#define EC_WORD_KNOWS (EC_GROUP_ACTIONS << 9) | 0x21
#define EC_WORD_REFUSE (EC_GROUP_ACTIONS << 9) | 0x22
#define EC_WORD_STORES (EC_GROUP_ACTIONS << 9) | 0x23
#define EC_WORD_BRAG (EC_GROUP_ACTIONS << 9) | 0x24
#define EC_WORD_IGNORANT (EC_GROUP_ACTIONS << 9) | 0x25
#define EC_WORD_THINKS (EC_GROUP_ACTIONS << 9) | 0x26
#define EC_WORD_BELIEVE (EC_GROUP_ACTIONS << 9) | 0x27
#define EC_WORD_SLIDE (EC_GROUP_ACTIONS << 9) | 0x28
#define EC_WORD_EATS (EC_GROUP_ACTIONS << 9) | 0x29
#define EC_WORD_USE (EC_GROUP_ACTIONS << 9) | 0x2a
#define EC_WORD_USES (EC_GROUP_ACTIONS << 9) | 0x2b
#define EC_WORD_USING (EC_GROUP_ACTIONS << 9) | 0x2c
#define EC_WORD_COULDN_T (EC_GROUP_ACTIONS << 9) | 0x2d
#define EC_WORD_CAPABLE (EC_GROUP_ACTIONS << 9) | 0x2e
#define EC_WORD_DISAPPEAR (EC_GROUP_ACTIONS << 9) | 0x2f
#define EC_WORD_APPEAR (EC_GROUP_ACTIONS << 9) | 0x30
#define EC_WORD_THROW (EC_GROUP_ACTIONS << 9) | 0x31
#define EC_WORD_WORRY (EC_GROUP_ACTIONS << 9) | 0x32
#define EC_WORD_SLEPT (EC_GROUP_ACTIONS << 9) | 0x33
#define EC_WORD_SLEEP (EC_GROUP_ACTIONS << 9) | 0x34
#define EC_WORD_RELEASE (EC_GROUP_ACTIONS << 9) | 0x35
#define EC_WORD_DRINKS (EC_GROUP_ACTIONS << 9) | 0x36
#define EC_WORD_RUNS (EC_GROUP_ACTIONS << 9) | 0x37
#define EC_WORD_RUN (EC_GROUP_ACTIONS << 9) | 0x38
#define EC_WORD_WORKS (EC_GROUP_ACTIONS << 9) | 0x39
#define EC_WORD_WORKING (EC_GROUP_ACTIONS << 9) | 0x3a
#define EC_WORD_TALKING (EC_GROUP_ACTIONS << 9) | 0x3b
#define EC_WORD_TALK (EC_GROUP_ACTIONS << 9) | 0x3c
#define EC_WORD_SINK (EC_GROUP_ACTIONS << 9) | 0x3d
#define EC_WORD_SMACK (EC_GROUP_ACTIONS << 9) | 0x3e
#define EC_WORD_PRETEND (EC_GROUP_ACTIONS << 9) | 0x3f
#define EC_WORD_PRAISE (EC_GROUP_ACTIONS << 9) | 0x40
#define EC_WORD_OVERDO (EC_GROUP_ACTIONS << 9) | 0x41
#define EC_WORD_SHOW (EC_GROUP_ACTIONS << 9) | 0x42
#define EC_WORD_LOOKS (EC_GROUP_ACTIONS << 9) | 0x43
#define EC_WORD_SEES (EC_GROUP_ACTIONS << 9) | 0x44
#define EC_WORD_SEEK (EC_GROUP_ACTIONS << 9) | 0x45
#define EC_WORD_OWN (EC_GROUP_ACTIONS << 9) | 0x46
#define EC_WORD_TAKE (EC_GROUP_ACTIONS << 9) | 0x47
#define EC_WORD_ALLOW (EC_GROUP_ACTIONS << 9) | 0x48
#define EC_WORD_FORGET (EC_GROUP_ACTIONS << 9) | 0x49
#define EC_WORD_FORGETS (EC_GROUP_ACTIONS << 9) | 0x4a
#define EC_WORD_APPEARS (EC_GROUP_ACTIONS << 9) | 0x4b
#define EC_WORD_FAINT (EC_GROUP_ACTIONS << 9) | 0x4c
#define EC_WORD_FAINTED (EC_GROUP_ACTIONS << 9) | 0x4d
// LIFESTYLE
#define EC_WORD_CHORES (EC_GROUP_LIFESTYLE << 9) | 0x0
#define EC_WORD_HOME (EC_GROUP_LIFESTYLE << 9) | 0x1
#define EC_WORD_MONEY (EC_GROUP_LIFESTYLE << 9) | 0x2
#define EC_WORD_ALLOWANCE (EC_GROUP_LIFESTYLE << 9) | 0x3
#define EC_WORD_BATH (EC_GROUP_LIFESTYLE << 9) | 0x4
#define EC_WORD_CONVERSATION (EC_GROUP_LIFESTYLE << 9) | 0x5
#define EC_WORD_SCHOOL (EC_GROUP_LIFESTYLE << 9) | 0x6
#define EC_WORD_COMMEMORATE (EC_GROUP_LIFESTYLE << 9) | 0x7
#define EC_WORD_HABIT (EC_GROUP_LIFESTYLE << 9) | 0x8
#define EC_WORD_GROUP (EC_GROUP_LIFESTYLE << 9) | 0x9
#define EC_WORD_WORD (EC_GROUP_LIFESTYLE << 9) | 0xa
#define EC_WORD_STORE (EC_GROUP_LIFESTYLE << 9) | 0xb
#define EC_WORD_SERVICE (EC_GROUP_LIFESTYLE << 9) | 0xc
#define EC_WORD_WORK (EC_GROUP_LIFESTYLE << 9) | 0xd
#define EC_WORD_SYSTEM (EC_GROUP_LIFESTYLE << 9) | 0xe
#define EC_WORD_TRAIN (EC_GROUP_LIFESTYLE << 9) | 0xf
#define EC_WORD_CLASS (EC_GROUP_LIFESTYLE << 9) | 0x10
#define EC_WORD_LESSONS (EC_GROUP_LIFESTYLE << 9) | 0x11
#define EC_WORD_INFORMATION (EC_GROUP_LIFESTYLE << 9) | 0x12
#define EC_WORD_LIVING (EC_GROUP_LIFESTYLE << 9) | 0x13
#define EC_WORD_TEACHER (EC_GROUP_LIFESTYLE << 9) | 0x14
#define EC_WORD_TOURNAMENT (EC_GROUP_LIFESTYLE << 9) | 0x15
#define EC_WORD_LETTER (EC_GROUP_LIFESTYLE << 9) | 0x16
#define EC_WORD_EVENT (EC_GROUP_LIFESTYLE << 9) | 0x17
#define EC_WORD_DIGITAL (EC_GROUP_LIFESTYLE << 9) | 0x18
#define EC_WORD_TEST (EC_GROUP_LIFESTYLE << 9) | 0x19
#define EC_WORD_DEPT_STORE (EC_GROUP_LIFESTYLE << 9) | 0x1a
#define EC_WORD_TELEVISION (EC_GROUP_LIFESTYLE << 9) | 0x1b
#define EC_WORD_PHONE (EC_GROUP_LIFESTYLE << 9) | 0x1c
#define EC_WORD_ITEM (EC_GROUP_LIFESTYLE << 9) | 0x1d
#define EC_WORD_NAME (EC_GROUP_LIFESTYLE << 9) | 0x1e
#define EC_WORD_NEWS (EC_GROUP_LIFESTYLE << 9) | 0x1f
#define EC_WORD_POPULAR (EC_GROUP_LIFESTYLE << 9) | 0x20
#define EC_WORD_PARTY (EC_GROUP_LIFESTYLE << 9) | 0x21
#define EC_WORD_STUDY (EC_GROUP_LIFESTYLE << 9) | 0x22
#define EC_WORD_MACHINE (EC_GROUP_LIFESTYLE << 9) | 0x23
#define EC_WORD_MAIL (EC_GROUP_LIFESTYLE << 9) | 0x24
#define EC_WORD_MESSAGE (EC_GROUP_LIFESTYLE << 9) | 0x25
#define EC_WORD_PROMISE (EC_GROUP_LIFESTYLE << 9) | 0x26
#define EC_WORD_DREAM (EC_GROUP_LIFESTYLE << 9) | 0x27
#define EC_WORD_KINDERGARTEN (EC_GROUP_LIFESTYLE << 9) | 0x28
#define EC_WORD_LIFE (EC_GROUP_LIFESTYLE << 9) | 0x29
#define EC_WORD_RADIO (EC_GROUP_LIFESTYLE << 9) | 0x2a
#define EC_WORD_RENTAL (EC_GROUP_LIFESTYLE << 9) | 0x2b
#define EC_WORD_WORLD (EC_GROUP_LIFESTYLE << 9) | 0x2c
// HOBBIES
#define EC_WORD_IDOL (EC_GROUP_HOBBIES << 9) | 0x0
#define EC_WORD_ANIME (EC_GROUP_HOBBIES << 9) | 0x1
#define EC_WORD_SONG (EC_GROUP_HOBBIES << 9) | 0x2
#define EC_WORD_MOVIE (EC_GROUP_HOBBIES << 9) | 0x3
#define EC_WORD_SWEETS (EC_GROUP_HOBBIES << 9) | 0x4
#define EC_WORD_CHAT (EC_GROUP_HOBBIES << 9) | 0x5
#define EC_WORD_CHILD_S_PLAY (EC_GROUP_HOBBIES << 9) | 0x6
#define EC_WORD_TOYS (EC_GROUP_HOBBIES << 9) | 0x7
#define EC_WORD_MUSIC (EC_GROUP_HOBBIES << 9) | 0x8
#define EC_WORD_CARDS (EC_GROUP_HOBBIES << 9) | 0x9
#define EC_WORD_SHOPPING (EC_GROUP_HOBBIES << 9) | 0xa
#define EC_WORD_CAMERA (EC_GROUP_HOBBIES << 9) | 0xb
#define EC_WORD_VIEWING (EC_GROUP_HOBBIES << 9) | 0xc
#define EC_WORD_SPECTATOR (EC_GROUP_HOBBIES << 9) | 0xd
#define EC_WORD_GOURMET (EC_GROUP_HOBBIES << 9) | 0xe
#define EC_WORD_GAME (EC_GROUP_HOBBIES << 9) | 0xf
#define EC_WORD_RPG (EC_GROUP_HOBBIES << 9) | 0x10
#define EC_WORD_COLLECTION (EC_GROUP_HOBBIES << 9) | 0x11
#define EC_WORD_COMPLETE (EC_GROUP_HOBBIES << 9) | 0x12
#define EC_WORD_MAGAZINE (EC_GROUP_HOBBIES << 9) | 0x13
#define EC_WORD_WALK (EC_GROUP_HOBBIES << 9) | 0x14
#define EC_WORD_BIKE (EC_GROUP_HOBBIES << 9) | 0x15
#define EC_WORD_HOBBY (EC_GROUP_HOBBIES << 9) | 0x16
#define EC_WORD_SPORTS (EC_GROUP_HOBBIES << 9) | 0x17
#define EC_WORD_SOFTWARE (EC_GROUP_HOBBIES << 9) | 0x18
#define EC_WORD_SONGS (EC_GROUP_HOBBIES << 9) | 0x19
#define EC_WORD_DIET (EC_GROUP_HOBBIES << 9) | 0x1a
#define EC_WORD_TREASURE (EC_GROUP_HOBBIES << 9) | 0x1b
#define EC_WORD_TRAVEL (EC_GROUP_HOBBIES << 9) | 0x1c
#define EC_WORD_DANCE (EC_GROUP_HOBBIES << 9) | 0x1d
#define EC_WORD_CHANNEL (EC_GROUP_HOBBIES << 9) | 0x1e
#define EC_WORD_MAKING (EC_GROUP_HOBBIES << 9) | 0x1f
#define EC_WORD_FISHING (EC_GROUP_HOBBIES << 9) | 0x20
#define EC_WORD_DATE (EC_GROUP_HOBBIES << 9) | 0x21
#define EC_WORD_DESIGN (EC_GROUP_HOBBIES << 9) | 0x22
#define EC_WORD_LOCOMOTIVE (EC_GROUP_HOBBIES << 9) | 0x23
#define EC_WORD_PLUSH_DOLL (EC_GROUP_HOBBIES << 9) | 0x24
#define EC_WORD_PC (EC_GROUP_HOBBIES << 9) | 0x25
#define EC_WORD_FLOWERS (EC_GROUP_HOBBIES << 9) | 0x26
#define EC_WORD_HERO (EC_GROUP_HOBBIES << 9) | 0x27
#define EC_WORD_NAP (EC_GROUP_HOBBIES << 9) | 0x28
#define EC_WORD_HEROINE (EC_GROUP_HOBBIES << 9) | 0x29
#define EC_WORD_FASHION (EC_GROUP_HOBBIES << 9) | 0x2a
#define EC_WORD_ADVENTURE (EC_GROUP_HOBBIES << 9) | 0x2b
#define EC_WORD_BOARD (EC_GROUP_HOBBIES << 9) | 0x2c
#define EC_WORD_BALL (EC_GROUP_HOBBIES << 9) | 0x2d
#define EC_WORD_BOOK (EC_GROUP_HOBBIES << 9) | 0x2e
#define EC_WORD_FESTIVAL (EC_GROUP_HOBBIES << 9) | 0x2f
#define EC_WORD_COMICS (EC_GROUP_HOBBIES << 9) | 0x30
#define EC_WORD_HOLIDAY (EC_GROUP_HOBBIES << 9) | 0x31
#define EC_WORD_PLANS (EC_GROUP_HOBBIES << 9) | 0x32
#define EC_WORD_TRENDY (EC_GROUP_HOBBIES << 9) | 0x33
#define EC_WORD_VACATION (EC_GROUP_HOBBIES << 9) | 0x34
#define EC_WORD_LOOK (EC_GROUP_HOBBIES << 9) | 0x35
// TIME
#define EC_WORD_FALL (EC_GROUP_TIME << 9) | 0x0
#define EC_WORD_MORNING (EC_GROUP_TIME << 9) | 0x1
#define EC_WORD_TOMORROW (EC_GROUP_TIME << 9) | 0x2
#define EC_WORD_LAST (EC_GROUP_TIME << 9) | 0x3
#define EC_WORD_DAY (EC_GROUP_TIME << 9) | 0x4
#define EC_WORD_SOMETIME (EC_GROUP_TIME << 9) | 0x5
#define EC_WORD_ALWAYS (EC_GROUP_TIME << 9) | 0x6
#define EC_WORD_CURRENT (EC_GROUP_TIME << 9) | 0x7
#define EC_WORD_FOREVER (EC_GROUP_TIME << 9) | 0x8
#define EC_WORD_DAYS (EC_GROUP_TIME << 9) | 0x9
#define EC_WORD_END (EC_GROUP_TIME << 9) | 0xa
#define EC_WORD_TUESDAY (EC_GROUP_TIME << 9) | 0xb
#define EC_WORD_YESTERDAY (EC_GROUP_TIME << 9) | 0xc
#define EC_WORD_TODAY (EC_GROUP_TIME << 9) | 0xd
#define EC_WORD_FRIDAY (EC_GROUP_TIME << 9) | 0xe
#define EC_WORD_MONDAY (EC_GROUP_TIME << 9) | 0xf
#define EC_WORD_LATER (EC_GROUP_TIME << 9) | 0x10
#define EC_WORD_EARLIER (EC_GROUP_TIME << 9) | 0x11
#define EC_WORD_ANOTHER (EC_GROUP_TIME << 9) | 0x12
#define EC_WORD_TIME (EC_GROUP_TIME << 9) | 0x13
#define EC_WORD_FINISH (EC_GROUP_TIME << 9) | 0x14
#define EC_WORD_WEDNESDAY (EC_GROUP_TIME << 9) | 0x15
#define EC_WORD_SOON (EC_GROUP_TIME << 9) | 0x16
#define EC_WORD_START (EC_GROUP_TIME << 9) | 0x17
#define EC_WORD_MONTH (EC_GROUP_TIME << 9) | 0x18
#define EC_WORD_STOP (EC_GROUP_TIME << 9) | 0x19
#define EC_WORD_NOW (EC_GROUP_TIME << 9) | 0x1a
#define EC_WORD_FINAL (EC_GROUP_TIME << 9) | 0x1b
#define EC_WORD_NEXT (EC_GROUP_TIME << 9) | 0x1c
#define EC_WORD_AGE (EC_GROUP_TIME << 9) | 0x1d
#define EC_WORD_SATURDAY (EC_GROUP_TIME << 9) | 0x1e
#define EC_WORD_SUMMER (EC_GROUP_TIME << 9) | 0x1f
#define EC_WORD_SUNDAY (EC_GROUP_TIME << 9) | 0x20
#define EC_WORD_BEGINNING (EC_GROUP_TIME << 9) | 0x21
#define EC_WORD_SPRING (EC_GROUP_TIME << 9) | 0x22
#define EC_WORD_DAYTIME (EC_GROUP_TIME << 9) | 0x23
#define EC_WORD_WINTER (EC_GROUP_TIME << 9) | 0x24
#define EC_WORD_DAILY (EC_GROUP_TIME << 9) | 0x25
#define EC_WORD_OLDEN (EC_GROUP_TIME << 9) | 0x26
#define EC_WORD_ALMOST (EC_GROUP_TIME << 9) | 0x27
#define EC_WORD_NEARLY (EC_GROUP_TIME << 9) | 0x28
#define EC_WORD_THURSDAY (EC_GROUP_TIME << 9) | 0x29
#define EC_WORD_NIGHTTIME (EC_GROUP_TIME << 9) | 0x2a
#define EC_WORD_NIGHT (EC_GROUP_TIME << 9) | 0x2b
#define EC_WORD_WEEK (EC_GROUP_TIME << 9) | 0x2c
// MISC
#define EC_WORD_HIGHS (EC_GROUP_MISC << 9) | 0x0
#define EC_WORD_LOWS (EC_GROUP_MISC << 9) | 0x1
#define EC_WORD_UM (EC_GROUP_MISC << 9) | 0x2
#define EC_WORD_REAR (EC_GROUP_MISC << 9) | 0x3
#define EC_WORD_THINGS (EC_GROUP_MISC << 9) | 0x4
#define EC_WORD_THING (EC_GROUP_MISC << 9) | 0x5
#define EC_WORD_BELOW (EC_GROUP_MISC << 9) | 0x6
#define EC_WORD_ABOVE (EC_GROUP_MISC << 9) | 0x7
#define EC_WORD_BACK (EC_GROUP_MISC << 9) | 0x8
#define EC_WORD_HIGH (EC_GROUP_MISC << 9) | 0x9
#define EC_WORD_HERE (EC_GROUP_MISC << 9) | 0xa
#define EC_WORD_INSIDE (EC_GROUP_MISC << 9) | 0xb
#define EC_WORD_OUTSIDE (EC_GROUP_MISC << 9) | 0xc
#define EC_WORD_BESIDE (EC_GROUP_MISC << 9) | 0xd
#define EC_WORD_THIS_IS_IT_EXCL (EC_GROUP_MISC << 9) | 0xe
#define EC_WORD_THIS (EC_GROUP_MISC << 9) | 0xf
#define EC_WORD_EVERY (EC_GROUP_MISC << 9) | 0x10
#define EC_WORD_THESE (EC_GROUP_MISC << 9) | 0x11
#define EC_WORD_THESE_WERE (EC_GROUP_MISC << 9) | 0x12
#define EC_WORD_DOWN (EC_GROUP_MISC << 9) | 0x13
#define EC_WORD_THAT (EC_GROUP_MISC << 9) | 0x14
#define EC_WORD_THOSE_ARE (EC_GROUP_MISC << 9) | 0x15
#define EC_WORD_THOSE_WERE (EC_GROUP_MISC << 9) | 0x16
#define EC_WORD_THAT_S_IT_EXCL (EC_GROUP_MISC << 9) | 0x17
#define EC_WORD_AM (EC_GROUP_MISC << 9) | 0x18
#define EC_WORD_THAT_WAS (EC_GROUP_MISC << 9) | 0x19
#define EC_WORD_FRONT (EC_GROUP_MISC << 9) | 0x1a
#define EC_WORD_UP (EC_GROUP_MISC << 9) | 0x1b
#define EC_WORD_CHOICE (EC_GROUP_MISC << 9) | 0x1c
#define EC_WORD_FAR (EC_GROUP_MISC << 9) | 0x1d
#define EC_WORD_AWAY (EC_GROUP_MISC << 9) | 0x1e
#define EC_WORD_NEAR (EC_GROUP_MISC << 9) | 0x1f
#define EC_WORD_WHERE (EC_GROUP_MISC << 9) | 0x20
#define EC_WORD_WHEN (EC_GROUP_MISC << 9) | 0x21
#define EC_WORD_WHAT (EC_GROUP_MISC << 9) | 0x22
#define EC_WORD_DEEP (EC_GROUP_MISC << 9) | 0x23
#define EC_WORD_SHALLOW (EC_GROUP_MISC << 9) | 0x24
#define EC_WORD_WHY (EC_GROUP_MISC << 9) | 0x25
#define EC_WORD_CONFUSED (EC_GROUP_MISC << 9) | 0x26
#define EC_WORD_OPPOSITE (EC_GROUP_MISC << 9) | 0x27
#define EC_WORD_LEFT (EC_GROUP_MISC << 9) | 0x28
#define EC_WORD_RIGHT (EC_GROUP_MISC << 9) | 0x29
// ADJECTIVES
#define EC_WORD_WANDERING (EC_GROUP_ADJECTIVES << 9) | 0x0
#define EC_WORD_RICKETY (EC_GROUP_ADJECTIVES << 9) | 0x1
#define EC_WORD_ROCK_SOLID (EC_GROUP_ADJECTIVES << 9) | 0x2
#define EC_WORD_HUNGRY (EC_GROUP_ADJECTIVES << 9) | 0x3
#define EC_WORD_TIGHT (EC_GROUP_ADJECTIVES << 9) | 0x4
#define EC_WORD_TICKLISH (EC_GROUP_ADJECTIVES << 9) | 0x5
#define EC_WORD_TWIRLING (EC_GROUP_ADJECTIVES << 9) | 0x6
#define EC_WORD_SPIRALING (EC_GROUP_ADJECTIVES << 9) | 0x7
#define EC_WORD_THIRSTY (EC_GROUP_ADJECTIVES << 9) | 0x8
#define EC_WORD_LOLLING (EC_GROUP_ADJECTIVES << 9) | 0x9
#define EC_WORD_SILKY (EC_GROUP_ADJECTIVES << 9) | 0xa
#define EC_WORD_SADLY (EC_GROUP_ADJECTIVES << 9) | 0xb
#define EC_WORD_HOPELESS (EC_GROUP_ADJECTIVES << 9) | 0xc
#define EC_WORD_USELESS (EC_GROUP_ADJECTIVES << 9) | 0xd
#define EC_WORD_DROOLING (EC_GROUP_ADJECTIVES << 9) | 0xe
#define EC_WORD_EXCITING (EC_GROUP_ADJECTIVES << 9) | 0xf
#define EC_WORD_THICK (EC_GROUP_ADJECTIVES << 9) | 0x10
#define EC_WORD_SMOOTH (EC_GROUP_ADJECTIVES << 9) | 0x11
#define EC_WORD_SLIMY (EC_GROUP_ADJECTIVES << 9) | 0x12
#define EC_WORD_THIN (EC_GROUP_ADJECTIVES << 9) | 0x13
#define EC_WORD_BREAK (EC_GROUP_ADJECTIVES << 9) | 0x14
#define EC_WORD_VORACIOUS (EC_GROUP_ADJECTIVES << 9) | 0x15
#define EC_WORD_SCATTER (EC_GROUP_ADJECTIVES << 9) | 0x16
#define EC_WORD_AWESOME (EC_GROUP_ADJECTIVES << 9) | 0x17
#define EC_WORD_WIMPY (EC_GROUP_ADJECTIVES << 9) | 0x18
#define EC_WORD_WOBBLY (EC_GROUP_ADJECTIVES << 9) | 0x19
#define EC_WORD_SHAKY (EC_GROUP_ADJECTIVES << 9) | 0x1a
#define EC_WORD_RIPPED (EC_GROUP_ADJECTIVES << 9) | 0x1b
#define EC_WORD_SHREDDED (EC_GROUP_ADJECTIVES << 9) | 0x1c
#define EC_WORD_INCREASING (EC_GROUP_ADJECTIVES << 9) | 0x1d
#define EC_WORD_YET (EC_GROUP_ADJECTIVES << 9) | 0x1e
#define EC_WORD_DESTROYED (EC_GROUP_ADJECTIVES << 9) | 0x1f
#define EC_WORD_FIERY (EC_GROUP_ADJECTIVES << 9) | 0x20
#define EC_WORD_LOVEY_DOVEY (EC_GROUP_ADJECTIVES << 9) | 0x21
#define EC_WORD_HAPPILY (EC_GROUP_ADJECTIVES << 9) | 0x22
#define EC_WORD_ANTICIPATION (EC_GROUP_ADJECTIVES << 9) | 0x23
// EVENTS
#define EC_WORD_APPEAL (EC_GROUP_EVENTS << 9) | 0x0
#define EC_WORD_EVENTS (EC_GROUP_EVENTS << 9) | 0x1
#define EC_WORD_STAY_AT_HOME (EC_GROUP_EVENTS << 9) | 0x2
#define EC_WORD_BERRY (EC_GROUP_EVENTS << 9) | 0x3
#define EC_WORD_CONTEST (EC_GROUP_EVENTS << 9) | 0x4
#define EC_WORD_MC (EC_GROUP_EVENTS << 9) | 0x5
#define EC_WORD_JUDGE (EC_GROUP_EVENTS << 9) | 0x6
#define EC_WORD_SUPER (EC_GROUP_EVENTS << 9) | 0x7
#define EC_WORD_STAGE (EC_GROUP_EVENTS << 9) | 0x8
#define EC_WORD_HALL_OF_FAME (EC_GROUP_EVENTS << 9) | 0x9
#define EC_WORD_EVOLUTION (EC_GROUP_EVENTS << 9) | 0xa
#define EC_WORD_HYPER (EC_GROUP_EVENTS << 9) | 0xb
#define EC_WORD_BATTLE_TOWER (EC_GROUP_EVENTS << 9) | 0xc
#define EC_WORD_LEADERS (EC_GROUP_EVENTS << 9) | 0xd
#define EC_WORD_BATTLE_ROOM (EC_GROUP_EVENTS << 9) | 0xe
#define EC_WORD_HIDDEN (EC_GROUP_EVENTS << 9) | 0xf
#define EC_WORD_SECRET_BASE (EC_GROUP_EVENTS << 9) | 0x10
#define EC_WORD_BLEND (EC_GROUP_EVENTS << 9) | 0x11
#define EC_WORD_POKEBLOCK (EC_GROUP_EVENTS << 9) | 0x12
#define EC_WORD_MASTER (EC_GROUP_EVENTS << 9) | 0x13
#define EC_WORD_RANK (EC_GROUP_EVENTS << 9) | 0x14
#define EC_WORD_RIBBON (EC_GROUP_EVENTS << 9) | 0x15
#define EC_WORD_CRUSH (EC_GROUP_EVENTS << 9) | 0x16
#define EC_WORD_DIRECT (EC_GROUP_EVENTS << 9) | 0x17
#define EC_WORD_TOWER (EC_GROUP_EVENTS << 9) | 0x18
#define EC_WORD_UNION (EC_GROUP_EVENTS << 9) | 0x19
#define EC_WORD_ROOM (EC_GROUP_EVENTS << 9) | 0x1a
#define EC_WORD_WIRELESS (EC_GROUP_EVENTS << 9) | 0x1b
#define EC_WORD_FRONTIER (EC_GROUP_EVENTS << 9) | 0x1c
// TRENDY_SAYING
#define EC_WORD_KTHX_BYE (EC_GROUP_TRENDY_SAYING << 9) | 0x0
#define EC_WORD_YES_SIR_EXCL (EC_GROUP_TRENDY_SAYING << 9) | 0x1
#define EC_WORD_AVANT_GARDE (EC_GROUP_TRENDY_SAYING << 9) | 0x2
#define EC_WORD_COUPLE (EC_GROUP_TRENDY_SAYING << 9) | 0x3
#define EC_WORD_MUCH_OBLIGED (EC_GROUP_TRENDY_SAYING << 9) | 0x4
#define EC_WORD_YEEHAW_EXCL (EC_GROUP_TRENDY_SAYING << 9) | 0x5
#define EC_WORD_MEGA (EC_GROUP_TRENDY_SAYING << 9) | 0x6
#define EC_WORD_1_HIT_KO_EXCL (EC_GROUP_TRENDY_SAYING << 9) | 0x7
#define EC_WORD_DESTINY (EC_GROUP_TRENDY_SAYING << 9) | 0x8
#define EC_WORD_CANCEL (EC_GROUP_TRENDY_SAYING << 9) | 0x9
#define EC_WORD_NEW (EC_GROUP_TRENDY_SAYING << 9) | 0xa
#define EC_WORD_FLATTEN (EC_GROUP_TRENDY_SAYING << 9) | 0xb
#define EC_WORD_KIDDING (EC_GROUP_TRENDY_SAYING << 9) | 0xc
#define EC_WORD_LOSER (EC_GROUP_TRENDY_SAYING << 9) | 0xd
#define EC_WORD_LOSING (EC_GROUP_TRENDY_SAYING << 9) | 0xe
#define EC_WORD_HAPPENING (EC_GROUP_TRENDY_SAYING << 9) | 0xf
#define EC_WORD_HIP_AND (EC_GROUP_TRENDY_SAYING << 9) | 0x10
#define EC_WORD_SHAKE (EC_GROUP_TRENDY_SAYING << 9) | 0x11
#define EC_WORD_SHADY (EC_GROUP_TRENDY_SAYING << 9) | 0x12
#define EC_WORD_UPBEAT (EC_GROUP_TRENDY_SAYING << 9) | 0x13
#define EC_WORD_MODERN (EC_GROUP_TRENDY_SAYING << 9) | 0x14
#define EC_WORD_SMELL_YA (EC_GROUP_TRENDY_SAYING << 9) | 0x15
#define EC_WORD_BANG (EC_GROUP_TRENDY_SAYING << 9) | 0x16
#define EC_WORD_KNOCKOUT (EC_GROUP_TRENDY_SAYING << 9) | 0x17
#define EC_WORD_HASSLE (EC_GROUP_TRENDY_SAYING << 9) | 0x18
#define EC_WORD_WINNER (EC_GROUP_TRENDY_SAYING << 9) | 0x19
#define EC_WORD_FEVER (EC_GROUP_TRENDY_SAYING << 9) | 0x1a
#define EC_WORD_WANNABE (EC_GROUP_TRENDY_SAYING << 9) | 0x1b
#define EC_WORD_BABY (EC_GROUP_TRENDY_SAYING << 9) | 0x1c
#define EC_WORD_HEART (EC_GROUP_TRENDY_SAYING << 9) | 0x1d
#define EC_WORD_OLD (EC_GROUP_TRENDY_SAYING << 9) | 0x1e
#define EC_WORD_YOUNG (EC_GROUP_TRENDY_SAYING << 9) | 0x1f
#define EC_WORD_UGLY (EC_GROUP_TRENDY_SAYING << 9) | 0x20
#define NUM_ADDITIONAL_PHRASES 33
// Special Berry Masters Wife phrases
#define NOT_SPECIAL_PHRASE 0
#define PHRASE_GREAT_BATTLE 1
#define PHRASE_CHALLENGE_CONTEST 2
#define PHRASE_OVERWHELMING_LATIAS 3
#define PHRASE_COOL_LATIOS 4
#define PHRASE_SUPER_HUSTLE 5
#define EC_NUM_ALPHABET_GROUPS 27 // 26 (1 for each letter) + 1 (Others)
#define EC_MAX_WORDS_IN_GROUP 270 // The closest is words by letter S, at 262
#define EC_MASK_GROUP 0x7F
#define EC_MASK_INDEX 0x1FF
#define EC_POKEMON(mon) ((EC_GROUP_POKEMON << 9) | SPECIES_##mon)
#define EC_POKEMON_NATIONAL(mon) ((EC_GROUP_POKEMON_NATIONAL << 9) | SPECIES_##mon)
#define EC_MOVE(move) ((EC_GROUP_MOVE_1 << 9) | MOVE_##move)
#define EC_MOVE2(move) ((EC_GROUP_MOVE_2 << 9) | MOVE_##move)
#define EC_GROUP(word) ((word) >> 9)
#define EC_INDEX(word) ((word) & EC_MASK_INDEX)
#define EC_WORD(group, index) ((((group) & EC_MASK_GROUP) << 9) | ((index) & EC_MASK_INDEX))
#define EC_EMPTY_WORD 0xFFFF
#endif // GUARD_CONSTANTS_EASY_CHAT_H

13
include/constants/event_bg.h Executable file
View File

@ -0,0 +1,13 @@
#ifndef GUARD_CONSTANTS_EVENT_BG_H
#define GUARD_CONSTANTS_EVENT_BG_H
#define BG_EVENT_PLAYER_FACING_ANY 0
#define BG_EVENT_PLAYER_FACING_NORTH 1
#define BG_EVENT_PLAYER_FACING_SOUTH 2
#define BG_EVENT_PLAYER_FACING_EAST 3
#define BG_EVENT_PLAYER_FACING_WEST 4
#define BG_EVENT_HIDDEN_ITEM 7
#define BG_EVENT_SECRET_BASE 8
#endif // GUARD_CONSTANTS_EVENT_BG_H

View File

@ -0,0 +1,336 @@
#ifndef GUARD_CONSTANTS_EVENT_OBJECT_MOVEMENT_H
#define GUARD_CONSTANTS_EVENT_OBJECT_MOVEMENT_H
#define MOVEMENT_TYPE_NONE 0x0
#define MOVEMENT_TYPE_LOOK_AROUND 0x1
#define MOVEMENT_TYPE_WANDER_AROUND 0x2
#define MOVEMENT_TYPE_WANDER_UP_AND_DOWN 0x3
#define MOVEMENT_TYPE_WANDER_DOWN_AND_UP 0x4
#define MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT 0x5
#define MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT 0x6
#define MOVEMENT_TYPE_FACE_UP 0x7
#define MOVEMENT_TYPE_FACE_DOWN 0x8
#define MOVEMENT_TYPE_FACE_LEFT 0x9
#define MOVEMENT_TYPE_FACE_RIGHT 0xA
#define MOVEMENT_TYPE_PLAYER 0xB
#define MOVEMENT_TYPE_BERRY_TREE_GROWTH 0xC
#define MOVEMENT_TYPE_FACE_DOWN_AND_UP 0xD
#define MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT 0xE
#define MOVEMENT_TYPE_FACE_UP_AND_LEFT 0xF
#define MOVEMENT_TYPE_FACE_UP_AND_RIGHT 0x10
#define MOVEMENT_TYPE_FACE_DOWN_AND_LEFT 0x11
#define MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT 0x12
#define MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT 0x13
#define MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT 0x14
#define MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT 0x15
#define MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT 0x16
#define MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE 0x17
#define MOVEMENT_TYPE_ROTATE_CLOCKWISE 0x18
#define MOVEMENT_TYPE_WALK_UP_AND_DOWN 0x19
#define MOVEMENT_TYPE_WALK_DOWN_AND_UP 0x1A
#define MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT 0x1B
#define MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT 0x1C
#define MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN 0x1D
#define MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP 0x1E
#define MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT 0x1F
#define MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT 0x20
#define MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN 0x21
#define MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP 0x22
#define MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT 0x23
#define MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT 0x24
#define MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT 0x25
#define MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT 0x26
#define MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN 0x27
#define MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP 0x28
#define MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT 0x29
#define MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT 0x2A
#define MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN 0x2B
#define MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP 0x2C
#define MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT 0x2D
#define MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT 0x2E
#define MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP 0x2F
#define MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN 0x30
#define MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT 0x31
#define MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT 0x32
#define MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN 0x33
#define MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP 0x34
#define MOVEMENT_TYPE_COPY_PLAYER 0x35
#define MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE 0x36
#define MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE 0x37
#define MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE 0x38
#define MOVEMENT_TYPE_TREE_DISGUISE 0x39
#define MOVEMENT_TYPE_MOUNTAIN_DISGUISE 0x3A
#define MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS 0x3B
#define MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS 0x3C
#define MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS 0x3D
#define MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS 0x3E
#define MOVEMENT_TYPE_BURIED 0x3F
#define MOVEMENT_TYPE_WALK_IN_PLACE_DOWN 0x40
#define MOVEMENT_TYPE_WALK_IN_PLACE_UP 0x41
#define MOVEMENT_TYPE_WALK_IN_PLACE_LEFT 0x42
#define MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT 0x43
#define MOVEMENT_TYPE_JOG_IN_PLACE_DOWN 0x44
#define MOVEMENT_TYPE_JOG_IN_PLACE_UP 0x45
#define MOVEMENT_TYPE_JOG_IN_PLACE_LEFT 0x46
#define MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT 0x47
#define MOVEMENT_TYPE_RUN_IN_PLACE_DOWN 0x48
#define MOVEMENT_TYPE_RUN_IN_PLACE_UP 0x49
#define MOVEMENT_TYPE_RUN_IN_PLACE_LEFT 0x4A
#define MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT 0x4B
#define MOVEMENT_TYPE_INVISIBLE 0x4C
#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN 0x4D
#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP 0x4E
#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT 0x4F
#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT 0x50
#define NUM_MOVEMENT_TYPES 0x51
#define MOVEMENT_ACTION_FACE_DOWN 0x0
#define MOVEMENT_ACTION_FACE_UP 0x1
#define MOVEMENT_ACTION_FACE_LEFT 0x2
#define MOVEMENT_ACTION_FACE_RIGHT 0x3
#define MOVEMENT_ACTION_WALK_SLOW_DOWN 0x4
#define MOVEMENT_ACTION_WALK_SLOW_UP 0x5
#define MOVEMENT_ACTION_WALK_SLOW_LEFT 0x6
#define MOVEMENT_ACTION_WALK_SLOW_RIGHT 0x7
#define MOVEMENT_ACTION_WALK_NORMAL_DOWN 0x8
#define MOVEMENT_ACTION_WALK_NORMAL_UP 0x9
#define MOVEMENT_ACTION_WALK_NORMAL_LEFT 0xA
#define MOVEMENT_ACTION_WALK_NORMAL_RIGHT 0xB
#define MOVEMENT_ACTION_JUMP_2_DOWN 0xC
#define MOVEMENT_ACTION_JUMP_2_UP 0xD
#define MOVEMENT_ACTION_JUMP_2_LEFT 0xE
#define MOVEMENT_ACTION_JUMP_2_RIGHT 0xF
#define MOVEMENT_ACTION_DELAY_1 0x10
#define MOVEMENT_ACTION_DELAY_2 0x11
#define MOVEMENT_ACTION_DELAY_4 0x12
#define MOVEMENT_ACTION_DELAY_8 0x13
#define MOVEMENT_ACTION_DELAY_16 0x14
#define MOVEMENT_ACTION_WALK_FAST_DOWN 0x15
#define MOVEMENT_ACTION_WALK_FAST_UP 0x16
#define MOVEMENT_ACTION_WALK_FAST_LEFT 0x17
#define MOVEMENT_ACTION_WALK_FAST_RIGHT 0x18
#define MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN 0x19
#define MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_UP 0x1A
#define MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_LEFT 0x1B
#define MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_RIGHT 0x1C
#define MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_DOWN 0x1D
#define MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_UP 0x1E
#define MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_LEFT 0x1F
#define MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_RIGHT 0x20
#define MOVEMENT_ACTION_WALK_IN_PLACE_FAST_DOWN 0x21
#define MOVEMENT_ACTION_WALK_IN_PLACE_FAST_UP 0x22
#define MOVEMENT_ACTION_WALK_IN_PLACE_FAST_LEFT 0x23
#define MOVEMENT_ACTION_WALK_IN_PLACE_FAST_RIGHT 0x24
#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_DOWN 0x25
#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_UP 0x26
#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_LEFT 0x27
#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_RIGHT 0x28
#define MOVEMENT_ACTION_RIDE_WATER_CURRENT_DOWN 0x29
#define MOVEMENT_ACTION_RIDE_WATER_CURRENT_UP 0x2A
#define MOVEMENT_ACTION_RIDE_WATER_CURRENT_LEFT 0x2B
#define MOVEMENT_ACTION_RIDE_WATER_CURRENT_RIGHT 0x2C
#define MOVEMENT_ACTION_WALK_FASTER_DOWN 0x2D
#define MOVEMENT_ACTION_WALK_FASTER_UP 0x2E
#define MOVEMENT_ACTION_WALK_FASTER_LEFT 0x2F
#define MOVEMENT_ACTION_WALK_FASTER_RIGHT 0x30
#define MOVEMENT_ACTION_SLIDE_DOWN 0x31
#define MOVEMENT_ACTION_SLIDE_UP 0x32
#define MOVEMENT_ACTION_SLIDE_LEFT 0x33
#define MOVEMENT_ACTION_SLIDE_RIGHT 0x34
#define MOVEMENT_ACTION_PLAYER_RUN_DOWN 0x35
#define MOVEMENT_ACTION_PLAYER_RUN_UP 0x36
#define MOVEMENT_ACTION_PLAYER_RUN_LEFT 0x37
#define MOVEMENT_ACTION_PLAYER_RUN_RIGHT 0x38
#define MOVEMENT_ACTION_START_ANIM_IN_DIRECTION 0x39
#define MOVEMENT_ACTION_JUMP_SPECIAL_DOWN 0x3A
#define MOVEMENT_ACTION_JUMP_SPECIAL_UP 0x3B
#define MOVEMENT_ACTION_JUMP_SPECIAL_LEFT 0x3C
#define MOVEMENT_ACTION_JUMP_SPECIAL_RIGHT 0x3D
#define MOVEMENT_ACTION_FACE_PLAYER 0x3E
#define MOVEMENT_ACTION_FACE_AWAY_PLAYER 0x3F
#define MOVEMENT_ACTION_LOCK_FACING_DIRECTION 0x40
#define MOVEMENT_ACTION_UNLOCK_FACING_DIRECTION 0x41
#define MOVEMENT_ACTION_JUMP_DOWN 0x42
#define MOVEMENT_ACTION_JUMP_UP 0x43
#define MOVEMENT_ACTION_JUMP_LEFT 0x44
#define MOVEMENT_ACTION_JUMP_RIGHT 0x45
#define MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN 0x46
#define MOVEMENT_ACTION_JUMP_IN_PLACE_UP 0x47
#define MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT 0x48
#define MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT 0x49
#define MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN_UP 0x4A
#define MOVEMENT_ACTION_JUMP_IN_PLACE_UP_DOWN 0x4B
#define MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT_RIGHT 0x4C
#define MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT_LEFT 0x4D
#define MOVEMENT_ACTION_FACE_ORIGINAL_DIRECTION 0x4E
#define MOVEMENT_ACTION_NURSE_JOY_BOW_DOWN 0x4F
#define MOVEMENT_ACTION_ENABLE_JUMP_LANDING_GROUND_EFFECT 0x50
#define MOVEMENT_ACTION_DISABLE_JUMP_LANDING_GROUND_EFFECT 0x51
#define MOVEMENT_ACTION_DISABLE_ANIMATION 0x52
#define MOVEMENT_ACTION_RESTORE_ANIMATION 0x53
#define MOVEMENT_ACTION_SET_INVISIBLE 0x54
#define MOVEMENT_ACTION_SET_VISIBLE 0x55
#define MOVEMENT_ACTION_EMOTE_EXCLAMATION_MARK 0x56
#define MOVEMENT_ACTION_EMOTE_QUESTION_MARK 0x57
#define MOVEMENT_ACTION_EMOTE_HEART 0x58
#define MOVEMENT_ACTION_REVEAL_TRAINER 0x59
#define MOVEMENT_ACTION_ROCK_SMASH_BREAK 0x5A
#define MOVEMENT_ACTION_CUT_TREE 0x5B
#define MOVEMENT_ACTION_SET_FIXED_PRIORITY 0x5C
#define MOVEMENT_ACTION_CLEAR_FIXED_PRIORITY 0x5D
#define MOVEMENT_ACTION_INIT_AFFINE_ANIM 0x5E
#define MOVEMENT_ACTION_CLEAR_AFFINE_ANIM 0x5F
#define MOVEMENT_ACTION_HIDE_REFLECTION 0x60
#define MOVEMENT_ACTION_SHOW_REFLECTION 0x61
#define MOVEMENT_ACTION_WALK_DOWN_START_AFFINE 0x62
#define MOVEMENT_ACTION_WALK_DOWN_AFFINE 0x63
#define MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN 0x64
#define MOVEMENT_ACTION_ACRO_WHEELIE_FACE_UP 0x65
#define MOVEMENT_ACTION_ACRO_WHEELIE_FACE_LEFT 0x66
#define MOVEMENT_ACTION_ACRO_WHEELIE_FACE_RIGHT 0x67
#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_DOWN 0x68
#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_UP 0x69
#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_LEFT 0x6A
#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_RIGHT 0x6B
#define MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_DOWN 0x6C
#define MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_UP 0x6D
#define MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_LEFT 0x6E
#define MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_RIGHT 0x6F
#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_DOWN 0x70
#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_UP 0x71
#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_LEFT 0x72
#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_RIGHT 0x73
#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_DOWN 0x74
#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_UP 0x75
#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_LEFT 0x76
#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_RIGHT 0x77
#define MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_DOWN 0x78
#define MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_UP 0x79
#define MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_LEFT 0x7A
#define MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_RIGHT 0x7B
#define MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_DOWN 0x7C
#define MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_UP 0x7D
#define MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_LEFT 0x7E
#define MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_RIGHT 0x7F
#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_DOWN 0x80
#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_UP 0x81
#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_LEFT 0x82
#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_RIGHT 0x83
#define MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_DOWN 0x84
#define MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_UP 0x85
#define MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_LEFT 0x86
#define MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_RIGHT 0x87
#define MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_DOWN 0x88
#define MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_UP 0x89
#define MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_LEFT 0x8A
#define MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_RIGHT 0x8B
#define MOVEMENT_ACTION_WALK_NORMAL_DIAGONAL_UP_LEFT 0x8C
#define MOVEMENT_ACTION_WALK_NORMAL_DIAGONAL_UP_RIGHT 0x8D
#define MOVEMENT_ACTION_WALK_NORMAL_DIAGONAL_DOWN_LEFT 0x8E
#define MOVEMENT_ACTION_WALK_NORMAL_DIAGONAL_DOWN_RIGHT 0x8F
#define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_LEFT 0x90
#define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_RIGHT 0x91
#define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_LEFT 0x92
#define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_RIGHT 0x93
#define MOVEMENT_ACTION_STORE_AND_LOCK_ANIM 0x94
#define MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM 0x95
#define MOVEMENT_ACTION_WALK_LEFT_AFFINE 0x96
#define MOVEMENT_ACTION_WALK_RIGHT_AFFINE 0x97
#define MOVEMENT_ACTION_LEVITATE 0x98
#define MOVEMENT_ACTION_STOP_LEVITATE 0x99
#define MOVEMENT_ACTION_STOP_LEVITATE_AT_TOP 0x9A
#define MOVEMENT_ACTION_FIGURE_8 0x9B
#define MOVEMENT_ACTION_FLY_UP 0x9C
#define MOVEMENT_ACTION_FLY_DOWN 0x9D
#define MOVEMENT_ACTION_STEP_END 0xFE
#define MOVEMENT_ACTION_NONE 0xFF
#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_BUNNY_HOPPY_BACK_WHEEL_SOUTH (ANIM_STD_COUNT + 0)
#define ANIM_BUNNY_HOPPY_BACK_WHEEL_NORTH (ANIM_STD_COUNT + 1)
#define ANIM_BUNNY_HOPPY_BACK_WHEEL_WEST (ANIM_STD_COUNT + 2)
#define ANIM_BUNNY_HOPPY_BACK_WHEEL_EAST (ANIM_STD_COUNT + 3)
#define ANIM_BUNNY_HOPPY_FRONT_WHEEL_SOUTH (ANIM_STD_COUNT + 4)
#define ANIM_BUNNY_HOPPY_FRONT_WHEEL_NORTH (ANIM_STD_COUNT + 5)
#define ANIM_BUNNY_HOPPY_FRONT_WHEEL_WEST (ANIM_STD_COUNT + 6)
#define ANIM_BUNNY_HOPPY_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_FIELD_MOVE 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
// IDs for how NPCs that copy player movement should respond.
// Most go unused.
#define COPY_MOVE_NONE 0
#define COPY_MOVE_FACE 1
#define COPY_MOVE_WALK 2
#define COPY_MOVE_WALK_FAST 3
#define COPY_MOVE_WALK_FASTER 4
#define COPY_MOVE_SLIDE 5
#define COPY_MOVE_JUMP_IN_PLACE 6
#define COPY_MOVE_JUMP 7
#define COPY_MOVE_JUMP2 8
#define COPY_MOVE_EMPTY_1 9
#define COPY_MOVE_EMPTY_2 10
#endif // GUARD_CONSTANTS_EVENT_OBJECT_MOVEMENT_H

View File

@ -0,0 +1,316 @@
#ifndef GUARD_CONSTANTS_EVENT_OBJECTS_H
#define GUARD_CONSTANTS_EVENT_OBJECTS_H
#define OBJ_EVENT_GFX_BRENDAN_NORMAL 0
#define OBJ_EVENT_GFX_BRENDAN_MACH_BIKE 1
#define OBJ_EVENT_GFX_BRENDAN_SURFING 2
#define OBJ_EVENT_GFX_BRENDAN_FIELD_MOVE 3
#define OBJ_EVENT_GFX_QUINTY_PLUMP 4
#define OBJ_EVENT_GFX_NINJA_BOY 5
#define OBJ_EVENT_GFX_TWIN 6
#define OBJ_EVENT_GFX_BOY_1 7
#define OBJ_EVENT_GFX_GIRL_1 8
#define OBJ_EVENT_GFX_BOY_2 9
#define OBJ_EVENT_GFX_GIRL_2 10
#define OBJ_EVENT_GFX_LITTLE_BOY 11
#define OBJ_EVENT_GFX_LITTLE_GIRL 12
#define OBJ_EVENT_GFX_BOY_3 13
#define OBJ_EVENT_GFX_GIRL_3 14
#define OBJ_EVENT_GFX_RICH_BOY 15
#define OBJ_EVENT_GFX_WOMAN_1 16
#define OBJ_EVENT_GFX_FAT_MAN 17
#define OBJ_EVENT_GFX_POKEFAN_F 18
#define OBJ_EVENT_GFX_MAN_1 19
#define OBJ_EVENT_GFX_WOMAN_2 20
#define OBJ_EVENT_GFX_EXPERT_M 21
#define OBJ_EVENT_GFX_EXPERT_F 22
#define OBJ_EVENT_GFX_MAN_2 23
#define OBJ_EVENT_GFX_WOMAN_3 24
#define OBJ_EVENT_GFX_POKEFAN_M 25
#define OBJ_EVENT_GFX_WOMAN_4 26
#define OBJ_EVENT_GFX_COOK 27
#define OBJ_EVENT_GFX_LINK_RECEPTIONIST 28
#define OBJ_EVENT_GFX_OLD_MAN 29
#define OBJ_EVENT_GFX_OLD_WOMAN 30
#define OBJ_EVENT_GFX_CAMPER 31
#define OBJ_EVENT_GFX_PICNICKER 32
#define OBJ_EVENT_GFX_MAN_3 33
#define OBJ_EVENT_GFX_WOMAN_5 34
#define OBJ_EVENT_GFX_YOUNGSTER 35
#define OBJ_EVENT_GFX_BUG_CATCHER 36
#define OBJ_EVENT_GFX_PSYCHIC_M 37
#define OBJ_EVENT_GFX_SCHOOL_KID_M 38
#define OBJ_EVENT_GFX_MANIAC 39
#define OBJ_EVENT_GFX_HEX_MANIAC 40
#define OBJ_EVENT_GFX_RAYQUAZA_STILL 41
#define OBJ_EVENT_GFX_SWIMMER_M 42
#define OBJ_EVENT_GFX_SWIMMER_F 43
#define OBJ_EVENT_GFX_BLACK_BELT 44
#define OBJ_EVENT_GFX_BEAUTY 45
#define OBJ_EVENT_GFX_SCIENTIST_1 46
#define OBJ_EVENT_GFX_LASS 47
#define OBJ_EVENT_GFX_GENTLEMAN 48
#define OBJ_EVENT_GFX_SAILOR 49
#define OBJ_EVENT_GFX_FISHERMAN 50
#define OBJ_EVENT_GFX_RUNNING_TRIATHLETE_M 51
#define OBJ_EVENT_GFX_RUNNING_TRIATHLETE_F 52
#define OBJ_EVENT_GFX_TUBER_F 53
#define OBJ_EVENT_GFX_TUBER_M 54
#define OBJ_EVENT_GFX_HIKER 55
#define OBJ_EVENT_GFX_CYCLING_TRIATHLETE_M 56
#define OBJ_EVENT_GFX_CYCLING_TRIATHLETE_F 57
#define OBJ_EVENT_GFX_NURSE 58
#define OBJ_EVENT_GFX_ITEM_BALL 59
#define OBJ_EVENT_GFX_BERRY_TREE 60
#define OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES 61
#define OBJ_EVENT_GFX_BERRY_TREE_LATE_STAGES 62
#define OBJ_EVENT_GFX_BRENDAN_ACRO_BIKE 63
#define OBJ_EVENT_GFX_PROF_BIRCH 64
#define OBJ_EVENT_GFX_MAN_4 65
#define OBJ_EVENT_GFX_MAN_5 66
#define OBJ_EVENT_GFX_REPORTER_M 67
#define OBJ_EVENT_GFX_REPORTER_F 68
#define OBJ_EVENT_GFX_BARD 69
#define OBJ_EVENT_GFX_ANABEL 70
#define OBJ_EVENT_GFX_TUCKER 71
#define OBJ_EVENT_GFX_GRETA 72
#define OBJ_EVENT_GFX_SPENSER 73
#define OBJ_EVENT_GFX_NOLAND 74
#define OBJ_EVENT_GFX_LUCY 75
#define OBJ_EVENT_GFX_UNUSED_NATU_DOLL 76
#define OBJ_EVENT_GFX_UNUSED_MAGNEMITE_DOLL 77
#define OBJ_EVENT_GFX_UNUSED_SQUIRTLE_DOLL 78
#define OBJ_EVENT_GFX_UNUSED_WOOPER_DOLL 79
#define OBJ_EVENT_GFX_UNUSED_PIKACHU_DOLL 80
#define OBJ_EVENT_GFX_UNUSED_PORYGON2_DOLL 81
#define OBJ_EVENT_GFX_CUTTABLE_TREE 82
#define OBJ_EVENT_GFX_MART_EMPLOYEE 83
#define OBJ_EVENT_GFX_ROOFTOP_SALE_WOMAN 84
#define OBJ_EVENT_GFX_TEALA 85
#define OBJ_EVENT_GFX_BREAKABLE_ROCK 86
#define OBJ_EVENT_GFX_PUSHABLE_BOULDER 87
#define OBJ_EVENT_GFX_MR_BRINEYS_BOAT 88
#define OBJ_EVENT_GFX_MAY_NORMAL 89
#define OBJ_EVENT_GFX_MAY_MACH_BIKE 90
#define OBJ_EVENT_GFX_MAY_ACRO_BIKE 91
#define OBJ_EVENT_GFX_MAY_SURFING 92
#define OBJ_EVENT_GFX_MAY_FIELD_MOVE 93
#define OBJ_EVENT_GFX_TRUCK 94
#define OBJ_EVENT_GFX_VIGOROTH_CARRYING_BOX 95
#define OBJ_EVENT_GFX_VIGOROTH_FACING_AWAY 96
#define OBJ_EVENT_GFX_BIRCHS_BAG 97
#define OBJ_EVENT_GFX_ZIGZAGOON_1 98
#define OBJ_EVENT_GFX_ARTIST 99
#define OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL 100
#define OBJ_EVENT_GFX_RIVAL_BRENDAN_MACH_BIKE 101
#define OBJ_EVENT_GFX_RIVAL_BRENDAN_ACRO_BIKE 102
#define OBJ_EVENT_GFX_RIVAL_BRENDAN_SURFING 103
#define OBJ_EVENT_GFX_RIVAL_BRENDAN_FIELD_MOVE 104
#define OBJ_EVENT_GFX_RIVAL_MAY_NORMAL 105
#define OBJ_EVENT_GFX_RIVAL_MAY_MACH_BIKE 106
#define OBJ_EVENT_GFX_RIVAL_MAY_ACRO_BIKE 107
#define OBJ_EVENT_GFX_RIVAL_MAY_SURFING 108
#define OBJ_EVENT_GFX_RIVAL_MAY_FIELD_MOVE 109
#define OBJ_EVENT_GFX_CAMERAMAN 110
#define OBJ_EVENT_GFX_BRENDAN_UNDERWATER 111
#define OBJ_EVENT_GFX_MAY_UNDERWATER 112
#define OBJ_EVENT_GFX_MOVING_BOX 113
#define OBJ_EVENT_GFX_CABLE_CAR 114
#define OBJ_EVENT_GFX_SCIENTIST_2 115
#define OBJ_EVENT_GFX_DEVON_EMPLOYEE 116
#define OBJ_EVENT_GFX_AQUA_MEMBER_M 117
#define OBJ_EVENT_GFX_AQUA_MEMBER_F 118
#define OBJ_EVENT_GFX_MAGMA_MEMBER_M 119
#define OBJ_EVENT_GFX_MAGMA_MEMBER_F 120
#define OBJ_EVENT_GFX_SIDNEY 121
#define OBJ_EVENT_GFX_PHOEBE 122
#define OBJ_EVENT_GFX_GLACIA 123
#define OBJ_EVENT_GFX_DRAKE 124
#define OBJ_EVENT_GFX_ROXANNE 125
#define OBJ_EVENT_GFX_BRAWLY 126
#define OBJ_EVENT_GFX_WATTSON 127
#define OBJ_EVENT_GFX_FLANNERY 128
#define OBJ_EVENT_GFX_NORMAN 129
#define OBJ_EVENT_GFX_WINONA 130
#define OBJ_EVENT_GFX_LIZA 131
#define OBJ_EVENT_GFX_TATE 132
#define OBJ_EVENT_GFX_WALLACE 133
#define OBJ_EVENT_GFX_STEVEN 134
#define OBJ_EVENT_GFX_WALLY 135
#define OBJ_EVENT_GFX_LITTLE_BOY_3 136
#define OBJ_EVENT_GFX_BRENDAN_FISHING 137
#define OBJ_EVENT_GFX_MAY_FISHING 138
#define OBJ_EVENT_GFX_HOT_SPRINGS_OLD_WOMAN 139
#define OBJ_EVENT_GFX_SS_TIDAL 140
#define OBJ_EVENT_GFX_SUBMARINE_SHADOW 141
#define OBJ_EVENT_GFX_PICHU_DOLL 142
#define OBJ_EVENT_GFX_PIKACHU_DOLL 143
#define OBJ_EVENT_GFX_MARILL_DOLL 144
#define OBJ_EVENT_GFX_TOGEPI_DOLL 145
#define OBJ_EVENT_GFX_CYNDAQUIL_DOLL 146
#define OBJ_EVENT_GFX_CHIKORITA_DOLL 147
#define OBJ_EVENT_GFX_TOTODILE_DOLL 148
#define OBJ_EVENT_GFX_JIGGLYPUFF_DOLL 149
#define OBJ_EVENT_GFX_MEOWTH_DOLL 150
#define OBJ_EVENT_GFX_CLEFAIRY_DOLL 151
#define OBJ_EVENT_GFX_DITTO_DOLL 152
#define OBJ_EVENT_GFX_SMOOCHUM_DOLL 153
#define OBJ_EVENT_GFX_TREECKO_DOLL 154
#define OBJ_EVENT_GFX_TORCHIC_DOLL 155
#define OBJ_EVENT_GFX_MUDKIP_DOLL 156
#define OBJ_EVENT_GFX_DUSKULL_DOLL 157
#define OBJ_EVENT_GFX_WYNAUT_DOLL 158
#define OBJ_EVENT_GFX_BALTOY_DOLL 159
#define OBJ_EVENT_GFX_KECLEON_DOLL 160
#define OBJ_EVENT_GFX_AZURILL_DOLL 161
#define OBJ_EVENT_GFX_SKITTY_DOLL 162
#define OBJ_EVENT_GFX_SWABLU_DOLL 163
#define OBJ_EVENT_GFX_GULPIN_DOLL 164
#define OBJ_EVENT_GFX_LOTAD_DOLL 165
#define OBJ_EVENT_GFX_SEEDOT_DOLL 166
#define OBJ_EVENT_GFX_PIKA_CUSHION 167
#define OBJ_EVENT_GFX_ROUND_CUSHION 168
#define OBJ_EVENT_GFX_KISS_CUSHION 169
#define OBJ_EVENT_GFX_ZIGZAG_CUSHION 170
#define OBJ_EVENT_GFX_SPIN_CUSHION 171
#define OBJ_EVENT_GFX_DIAMOND_CUSHION 172
#define OBJ_EVENT_GFX_BALL_CUSHION 173
#define OBJ_EVENT_GFX_GRASS_CUSHION 174
#define OBJ_EVENT_GFX_FIRE_CUSHION 175
#define OBJ_EVENT_GFX_WATER_CUSHION 176
#define OBJ_EVENT_GFX_BIG_SNORLAX_DOLL 177
#define OBJ_EVENT_GFX_BIG_RHYDON_DOLL 178
#define OBJ_EVENT_GFX_BIG_LAPRAS_DOLL 179
#define OBJ_EVENT_GFX_BIG_VENUSAUR_DOLL 180
#define OBJ_EVENT_GFX_BIG_CHARIZARD_DOLL 181
#define OBJ_EVENT_GFX_BIG_BLASTOISE_DOLL 182
#define OBJ_EVENT_GFX_BIG_WAILMER_DOLL 183
#define OBJ_EVENT_GFX_BIG_REGIROCK_DOLL 184
#define OBJ_EVENT_GFX_BIG_REGICE_DOLL 185
#define OBJ_EVENT_GFX_BIG_REGISTEEL_DOLL 186
#define OBJ_EVENT_GFX_LATIAS 187
#define OBJ_EVENT_GFX_LATIOS 188
#define OBJ_EVENT_GFX_GAMEBOY_KID 189
#define OBJ_EVENT_GFX_CONTEST_JUDGE 190
#define OBJ_EVENT_GFX_BRENDAN_WATERING 191
#define OBJ_EVENT_GFX_MAY_WATERING 192
#define OBJ_EVENT_GFX_BRENDAN_DECORATING 193
#define OBJ_EVENT_GFX_MAY_DECORATING 194
#define OBJ_EVENT_GFX_ARCHIE 195
#define OBJ_EVENT_GFX_MAXIE 196
#define OBJ_EVENT_GFX_KYOGRE_FRONT 197
#define OBJ_EVENT_GFX_GROUDON_FRONT 198
#define OBJ_EVENT_GFX_FOSSIL 199
#define OBJ_EVENT_GFX_REGIROCK 200
#define OBJ_EVENT_GFX_REGICE 201
#define OBJ_EVENT_GFX_REGISTEEL 202
#define OBJ_EVENT_GFX_SKITTY 203
#define OBJ_EVENT_GFX_KECLEON 204
#define OBJ_EVENT_GFX_KYOGRE_ASLEEP 205
#define OBJ_EVENT_GFX_GROUDON_ASLEEP 206
#define OBJ_EVENT_GFX_RAYQUAZA 207
#define OBJ_EVENT_GFX_ZIGZAGOON_2 208
#define OBJ_EVENT_GFX_PIKACHU 209
#define OBJ_EVENT_GFX_AZUMARILL 210
#define OBJ_EVENT_GFX_WINGULL 211
#define OBJ_EVENT_GFX_KECLEON_BRIDGE_SHADOW 212
#define OBJ_EVENT_GFX_TUBER_M_SWIMMING 213
#define OBJ_EVENT_GFX_AZURILL 214
#define OBJ_EVENT_GFX_MOM 215
#define OBJ_EVENT_GFX_LINK_BRENDAN 216
#define OBJ_EVENT_GFX_LINK_MAY 217
#define OBJ_EVENT_GFX_JUAN 218
#define OBJ_EVENT_GFX_SCOTT 219
#define OBJ_EVENT_GFX_POOCHYENA 220
#define OBJ_EVENT_GFX_KYOGRE_SIDE 221
#define OBJ_EVENT_GFX_GROUDON_SIDE 222
#define OBJ_EVENT_GFX_MYSTERY_GIFT_MAN 223
#define OBJ_EVENT_GFX_TRICK_HOUSE_STATUE 224
#define OBJ_EVENT_GFX_KIRLIA 225
#define OBJ_EVENT_GFX_DUSCLOPS 226
#define OBJ_EVENT_GFX_UNION_ROOM_NURSE 227
#define OBJ_EVENT_GFX_SUDOWOODO 228
#define OBJ_EVENT_GFX_MEW 229
#define OBJ_EVENT_GFX_RED 230
#define OBJ_EVENT_GFX_LEAF 231
#define OBJ_EVENT_GFX_DEOXYS 232
#define OBJ_EVENT_GFX_DEOXYS_TRIANGLE 233
#define OBJ_EVENT_GFX_BRANDON 234
#define OBJ_EVENT_GFX_LINK_RS_BRENDAN 235
#define OBJ_EVENT_GFX_LINK_RS_MAY 236
#define OBJ_EVENT_GFX_LUGIA 237
#define OBJ_EVENT_GFX_HOOH 238
#define NUM_OBJ_EVENT_GFX 239
// These are dynamic object gfx ids.
// They correspond with the values of the VAR_OBJ_GFX_ID_X vars.
// More info about them in include/constants/vars.h
#define OBJ_EVENT_GFX_VARS (NUM_OBJ_EVENT_GFX + 1)
#define OBJ_EVENT_GFX_VAR_0 (OBJ_EVENT_GFX_VARS + 0x0) // 240
#define OBJ_EVENT_GFX_VAR_1 (OBJ_EVENT_GFX_VARS + 0x1)
#define OBJ_EVENT_GFX_VAR_2 (OBJ_EVENT_GFX_VARS + 0x2)
#define OBJ_EVENT_GFX_VAR_3 (OBJ_EVENT_GFX_VARS + 0x3)
#define OBJ_EVENT_GFX_VAR_4 (OBJ_EVENT_GFX_VARS + 0x4)
#define OBJ_EVENT_GFX_VAR_5 (OBJ_EVENT_GFX_VARS + 0x5)
#define OBJ_EVENT_GFX_VAR_6 (OBJ_EVENT_GFX_VARS + 0x6)
#define OBJ_EVENT_GFX_VAR_7 (OBJ_EVENT_GFX_VARS + 0x7)
#define OBJ_EVENT_GFX_VAR_8 (OBJ_EVENT_GFX_VARS + 0x8)
#define OBJ_EVENT_GFX_VAR_9 (OBJ_EVENT_GFX_VARS + 0x9)
#define OBJ_EVENT_GFX_VAR_A (OBJ_EVENT_GFX_VARS + 0xA)
#define OBJ_EVENT_GFX_VAR_B (OBJ_EVENT_GFX_VARS + 0xB)
#define OBJ_EVENT_GFX_VAR_C (OBJ_EVENT_GFX_VARS + 0xC)
#define OBJ_EVENT_GFX_VAR_D (OBJ_EVENT_GFX_VARS + 0xD)
#define OBJ_EVENT_GFX_VAR_E (OBJ_EVENT_GFX_VARS + 0xE)
#define OBJ_EVENT_GFX_VAR_F (OBJ_EVENT_GFX_VARS + 0xF) // 255
#define SHADOW_SIZE_S 0
#define SHADOW_SIZE_M 1
#define SHADOW_SIZE_L 2
#define SHADOW_SIZE_XL 3
#define F_INANIMATE (1 << 6)
#define F_DISABLE_REFLECTION_PALETTE_LOAD (1 << 7)
#define TRACKS_NONE 0
#define TRACKS_FOOT 1
#define TRACKS_BIKE_TIRE 2
#define FIRST_DECORATION_SPRITE_GFX OBJ_EVENT_GFX_PICHU_DOLL
// Special object event local ids
#define OBJ_EVENT_ID_PLAYER 0xFF
#define OBJ_EVENT_ID_CAMERA 0x7F
// Object event local ids referenced in C files
#define LOCALID_ROUTE111_PLAYER_FALLING 45
#define LOCALID_BIRTH_ISLAND_EXTERIOR_ROCK 1
#define LOCALID_FARAWAY_ISLAND_MEW 1
#define LOCALID_UNION_ROOM_PLAYER_4 2
#define LOCALID_UNION_ROOM_PLAYER_8 3
#define LOCALID_UNION_ROOM_PLAYER_7 4
#define LOCALID_UNION_ROOM_PLAYER_6 5
#define LOCALID_UNION_ROOM_PLAYER_5 6
#define LOCALID_UNION_ROOM_PLAYER_3 7
#define LOCALID_UNION_ROOM_PLAYER_2 8
#define LOCALID_UNION_ROOM_PLAYER_1 9
#define LOCALID_BATTLE_TOWER_LOBBY_REPORTER 5
#define LOCALID_TRUCK_BOX_TOP 1
#define LOCALID_TRUCK_BOX_BOTTOM_L 2
#define LOCALID_TRUCK_BOX_BOTTOM_R 3
#define LOCALID_OLDALE_MART_CLERK 1
#define LOCALID_LAVARIDGE_MART_CLERK 1
#define LOCALID_FALLARBOR_MART_CLERK 1
#define LOCALID_VERDANTURF_MART_CLERK 1
#define LOCALID_PETALBURG_MART_CLERK 1
#define LOCALID_SLATEPORT_MART_CLERK 1
#define LOCALID_MAUVILLE_MART_CLERK 1
#define LOCALID_RUSTBORO_MART_CLERK 1
#define LOCALID_FORTREE_MART_CLERK 1
#define LOCALID_MOSSDEEP_MART_CLERK 1
#define LOCALID_SOOTOPOLIS_MART_CLERK 1
#define LOCALID_BATTLE_FRONTIER_MART_CLERK 1
#define LOCALID_SLATEPORT_ENERGY_GURU 25
#endif // GUARD_CONSTANTS_EVENT_OBJECTS_H

View File

@ -0,0 +1,123 @@
#ifndef GUARD_FIELD_EFFECT_CONSTANTS_H
#define GUARD_FIELD_EFFECT_CONSTANTS_H
#define FLDEFF_EXCLAMATION_MARK_ICON 0
#define FLDEFF_USE_CUT_ON_GRASS 1
#define FLDEFF_USE_CUT_ON_TREE 2
#define FLDEFF_SHADOW 3
#define FLDEFF_TALL_GRASS 4
#define FLDEFF_RIPPLE 5
#define FLDEFF_FIELD_MOVE_SHOW_MON 6
#define FLDEFF_ASH 7
#define FLDEFF_SURF_BLOB 8
#define FLDEFF_USE_SURF 9
#define FLDEFF_DUST 10
#define FLDEFF_USE_SECRET_POWER_CAVE 11
#define FLDEFF_JUMP_TALL_GRASS 12
#define FLDEFF_SAND_FOOTPRINTS 13
#define FLDEFF_JUMP_BIG_SPLASH 14
#define FLDEFF_SPLASH 15
#define FLDEFF_JUMP_SMALL_SPLASH 16
#define FLDEFF_LONG_GRASS 17
#define FLDEFF_JUMP_LONG_GRASS 18
#define FLDEFF_UNUSED_GRASS 19
#define FLDEFF_UNUSED_GRASS_2 20
#define FLDEFF_UNUSED_SAND 21
#define FLDEFF_WATER_SURFACING 22
#define FLDEFF_BERRY_TREE_GROWTH_SPARKLE 23
#define FLDEFF_DEEP_SAND_FOOTPRINTS 24
#define FLDEFF_POKECENTER_HEAL 25
#define FLDEFF_USE_SECRET_POWER_TREE 26
#define FLDEFF_USE_SECRET_POWER_SHRUB 27
#define FLDEFF_TREE_DISGUISE 28
#define FLDEFF_MOUNTAIN_DISGUISE 29
#define FLDEFF_NPCFLY_OUT 30
#define FLDEFF_USE_FLY 31
#define FLDEFF_FLY_IN 32
#define FLDEFF_QUESTION_MARK_ICON 33
#define FLDEFF_FEET_IN_FLOWING_WATER 34
#define FLDEFF_BIKE_TIRE_TRACKS 35
#define FLDEFF_SAND_DISGUISE 36
#define FLDEFF_USE_ROCK_SMASH 37
#define FLDEFF_USE_DIG 38
#define FLDEFF_SAND_PILE 39
#define FLDEFF_USE_STRENGTH 40
#define FLDEFF_SHORT_GRASS 41
#define FLDEFF_HOT_SPRINGS_WATER 42
#define FLDEFF_USE_WATERFALL 43
#define FLDEFF_USE_DIVE 44
#define FLDEFF_POKEBALL_TRAIL 45
#define FLDEFF_HEART_ICON 46
#define FLDEFF_NOP_47 47
#define FLDEFF_NOP_48 48
#define FLDEFF_ASH_PUFF 49
#define FLDEFF_ASH_LAUNCH 50
#define FLDEFF_SWEET_SCENT 51
#define FLDEFF_SAND_PILLAR 52
#define FLDEFF_BUBBLES 53
#define FLDEFF_SPARKLE 54
#define FLDEFF_SECRET_POWER_CAVE 55
#define FLDEFF_SECRET_POWER_TREE 56
#define FLDEFF_SECRET_POWER_SHRUB 57
#define FLDEFF_CUT_GRASS 58
#define FLDEFF_FIELD_MOVE_SHOW_MON_INIT 59
#define FLDEFF_USE_TOMB_PUZZLE_EFFECT 60
#define FLDEFF_PCTURN_ON 61
#define FLDEFF_HALL_OF_FAME_RECORD 62
#define FLDEFF_USE_TELEPORT 63
#define FLDEFF_RAYQUAZA_SPOTLIGHT 64
#define FLDEFF_DESTROY_DEOXYS_ROCK 65
#define FLDEFF_MOVE_DEOXYS_ROCK 66
#define FLDEFFOBJ_SHADOW_S 0
#define FLDEFFOBJ_SHADOW_M 1
#define FLDEFFOBJ_SHADOW_L 2
#define FLDEFFOBJ_SHADOW_XL 3
#define FLDEFFOBJ_TALL_GRASS 4
#define FLDEFFOBJ_RIPPLE 5
#define FLDEFFOBJ_ASH 6
#define FLDEFFOBJ_SURF_BLOB 7
#define FLDEFFOBJ_ARROW 8
#define FLDEFFOBJ_GROUND_IMPACT_DUST 9
#define FLDEFFOBJ_JUMP_TALL_GRASS 10
#define FLDEFFOBJ_SAND_FOOTPRINTS 11
#define FLDEFFOBJ_JUMP_BIG_SPLASH 12
#define FLDEFFOBJ_SPLASH 13
#define FLDEFFOBJ_JUMP_SMALL_SPLASH 14
#define FLDEFFOBJ_LONG_GRASS 15
#define FLDEFFOBJ_JUMP_LONG_GRASS 16
#define FLDEFFOBJ_UNUSED_GRASS 17
#define FLDEFFOBJ_UNUSED_GRASS_2 18
#define FLDEFFOBJ_UNUSED_SAND 19
#define FLDEFFOBJ_WATER_SURFACING 20
#define FLDEFFOBJ_REFLECTION_DISTORTION 21
#define FLDEFFOBJ_SPARKLE 22
#define FLDEFFOBJ_DEEP_SAND_FOOTPRINTS 23
#define FLDEFFOBJ_TREE_DISGUISE 24
#define FLDEFFOBJ_MOUNTAIN_DISGUISE 25
#define FLDEFFOBJ_BIRD 26
#define FLDEFFOBJ_BIKE_TIRE_TRACKS 27
#define FLDEFFOBJ_SAND_DISGUISE 28
#define FLDEFFOBJ_SAND_PILE 29
#define FLDEFFOBJ_SHORT_GRASS 30
#define FLDEFFOBJ_HOT_SPRINGS_WATER 31
#define FLDEFFOBJ_ASH_PUFF 32
#define FLDEFFOBJ_ASH_LAUNCH 33
#define FLDEFFOBJ_BUBBLES 34
#define FLDEFFOBJ_SMALL_SPARKLE 35
#define FLDEFFOBJ_RAYQUAZA 36
#define FLDEFF_PAL_TAG_CUT_GRASS 0x1000
#define FLDEFF_PAL_TAG_SECRET_POWER_TREE 0x1003
#define FLDEFF_PAL_TAG_GENERAL_0 0x1004
#define FLDEFF_PAL_TAG_GENERAL_1 0x1005
#define FLDEFF_PAL_TAG_POKEBALL_GLOW 0x1007
#define FLDEFF_PAL_TAG_SECRET_POWER_PLANT 0x1008
#define FLDEFF_PAL_TAG_POKEBALL_TRAIL 0x1009
#define FLDEFF_PAL_TAG_ASH 0x100D
#define FLDEFF_PAL_TAG_SAND_PILLAR 0x100E
#define FLDEFF_PAL_TAG_SMALL_SPARKLE 0x100F
#define FLDEFF_PAL_TAG_HOF_MONITOR 0x1010
#define FLDEFF_PAL_TAG_UNKNOWN 0x1011
#endif // GUARD_FIELD_EFFECT_CONSTANTS_H

View File

@ -0,0 +1,12 @@
#ifndef GUARD_CONSTANTS_FIELD_POISON_H
#define GUARD_CONSTANTS_FIELD_POISON_H
#define FLDPSN_NONE 0
#define FLDPSN_PSN 1
#define FLDPSN_FNT 2
#define FLDPSN_NO_WHITEOUT 0
#define FLDPSN_WHITEOUT 1
#define FLDPSN_FRONTIER_WHITEOUT 2
#endif //GUARD_CONSTANTS_FIELD_POISON_H

View File

@ -0,0 +1,83 @@
#ifndef GUARD_CONSTANTS_FIELD_SPECIALS_H
#define GUARD_CONSTANTS_FIELD_SPECIALS_H
// PC Locations
#define PC_LOCATION_OTHER 0
#define PC_LOCATION_BRENDANS_HOUSE 1
#define PC_LOCATION_MAYS_HOUSE 2
// SS Tidal Locations
#define SS_TIDAL_LOCATION_CURRENTS 0
#define SS_TIDAL_LOCATION_SLATEPORT 1
#define SS_TIDAL_LOCATION_LILYCOVE 2
#define SS_TIDAL_LOCATION_ROUTE124 3
#define SS_TIDAL_LOCATION_ROUTE131 4
#define SS_TIDAL_BOARD_SLATEPORT 1
#define SS_TIDAL_DEPART_SLATEPORT 2
#define SS_TIDAL_HALFWAY_LILYCOVE 3
#define SS_TIDAL_LAND_LILYCOVE 4
#define SS_TIDAL_BOARD_LILYCOVE 5
#define SS_TIDAL_DEPART_LILYCOVE 6
#define SS_TIDAL_HALFWAY_SLATEPORT 7
#define SS_TIDAL_LAND_SLATEPORT 8
#define SS_TIDAL_EXIT_CURRENTS_RIGHT 9
#define SS_TIDAL_EXIT_CURRENTS_LEFT 10
#define SS_TIDAL_MAX_STEPS 205
// Scrollable Multichoice Menus
#define SCROLL_MULTI_NONE 0
#define SCROLL_MULTI_GLASS_WORKSHOP_VENDOR 1
#define SCROLL_MULTI_POKEMON_FAN_CLUB_RATER 2
#define SCROLL_MULTI_BF_EXCHANGE_CORNER_DECOR_VENDOR_1 3
#define SCROLL_MULTI_BF_EXCHANGE_CORNER_DECOR_VENDOR_2 4
#define SCROLL_MULTI_BF_EXCHANGE_CORNER_VITAMIN_VENDOR 5
#define SCROLL_MULTI_BF_EXCHANGE_CORNER_HOLD_ITEM_VENDOR 6
#define SCROLL_MULTI_BERRY_POWDER_VENDOR 7
#define SCROLL_MULTI_BF_RECEPTIONIST 8
#define SCROLL_MULTI_BF_MOVE_TUTOR_1 9
#define SCROLL_MULTI_BF_MOVE_TUTOR_2 10
#define SCROLL_MULTI_SS_TIDAL_DESTINATION 11
#define SCROLL_MULTI_BATTLE_TENT_RULES 12
#define MAX_SCROLL_MULTI_ON_SCREEN 6
#define MAX_SCROLL_MULTI_LENGTH 16
// Dept Store Floor Numbers
#define DEPT_STORE_FLOORNUM_B4F 0
#define DEPT_STORE_FLOORNUM_B3F 1
#define DEPT_STORE_FLOORNUM_B2F 2
#define DEPT_STORE_FLOORNUM_B1F 3
#define DEPT_STORE_FLOORNUM_1F 4
#define DEPT_STORE_FLOORNUM_2F 5
#define DEPT_STORE_FLOORNUM_3F 6
#define DEPT_STORE_FLOORNUM_4F 7
#define DEPT_STORE_FLOORNUM_5F 8
#define DEPT_STORE_FLOORNUM_6F 9
#define DEPT_STORE_FLOORNUM_7F 10
#define DEPT_STORE_FLOORNUM_8F 11
#define DEPT_STORE_FLOORNUM_9F 12
#define DEPT_STORE_FLOORNUM_10F 13
#define DEPT_STORE_FLOORNUM_11F 14
#define DEPT_STORE_FLOORNUM_ROOFTOP 15
// Lilycove Pokemon Trainer Fan Club
#define NUM_TRAINER_FAN_CLUB_MEMBERS 8
#define FANCLUB_GOT_FIRST_FANS 7
#define FANCLUB_MEMBER1 8
#define FANCLUB_MEMBER2 9
#define FANCLUB_MEMBER3 10
#define FANCLUB_MEMBER4 11
#define FANCLUB_MEMBER5 12
#define FANCLUB_MEMBER6 13
#define FANCLUB_MEMBER7 14
#define FANCLUB_MEMBER8 15
#define FANCOUNTER_DEFEATED_DRAKE 0
#define FANCOUNTER_BATTLED_AT_BASE 1
#define FANCOUNTER_FINISHED_CONTEST 2
#define FANCOUNTER_USED_BATTLE_TOWER 3
#endif // GUARD_CONSTANTS_FIELD_SPECIALS_H

View File

@ -0,0 +1,13 @@
#ifndef GUARD_CONSTANTS_FIELD_TASKS_H
#define GUARD_CONSTANTS_FIELD_TASKS_H
#define STEP_CB_DUMMY 0
#define STEP_CB_ASH 1
#define STEP_CB_FORTREE_BRIDGE 2
#define STEP_CB_PACIFIDLOG_BRIDGE 3
#define STEP_CB_SOOTOPOLIS_ICE 4
#define STEP_CB_TRUCK 5
#define STEP_CB_SECRET_BASE 6
#define STEP_CB_CRACKED_FLOOR 7
#endif // GUARD_CONSTANTS_FIELD_TASKS_H

View File

@ -0,0 +1,24 @@
#ifndef GUARD_CONSTANTS_FIELD_WEATHER_H
#define GUARD_CONSTANTS_FIELD_WEATHER_H
#define MAX_RAIN_SPRITES 24
#define NUM_CLOUD_SPRITES 3
#define NUM_FOG_HORIZONTAL_SPRITES 20
#define NUM_ASH_SPRITES 20
#define NUM_FOG_DIAGONAL_SPRITES 20
#define NUM_SANDSTORM_SPRITES 20
#define NUM_SWIRL_SANDSTORM_SPRITES 5
// Controls how the weather should be changing the screen palettes.
#define WEATHER_PAL_STATE_CHANGING_WEATHER 0
#define WEATHER_PAL_STATE_SCREEN_FADING_IN 1
#define WEATHER_PAL_STATE_SCREEN_FADING_OUT 2
#define WEATHER_PAL_STATE_IDLE 3
// Modes for FadeScreen
#define FADE_FROM_BLACK 0
#define FADE_TO_BLACK 1
#define FADE_FROM_WHITE 2
#define FADE_TO_WHITE 3
#endif // GUARD_CONSTANTS_FIELD_WEATHER_H

1647
include/constants/flags.h Normal file
View File

@ -0,0 +1,1647 @@
#ifndef GUARD_CONSTANTS_FLAGS_H
#define GUARD_CONSTANTS_FLAGS_H
#include "constants/opponents.h"
// Temporary Flags
// These temporary flags are are cleared every time a map is loaded. They are used
// for things like shortening an NPCs introduction text if the player already spoke
// to them once.
#define TEMP_FLAGS_START 0x0
#define FLAG_TEMP_1 (TEMP_FLAGS_START + 0x1)
#define FLAG_TEMP_2 (TEMP_FLAGS_START + 0x2)
#define FLAG_TEMP_3 (TEMP_FLAGS_START + 0x3)
#define FLAG_TEMP_4 (TEMP_FLAGS_START + 0x4)
#define FLAG_TEMP_5 (TEMP_FLAGS_START + 0x5) // Unused Flag
#define FLAG_TEMP_6 (TEMP_FLAGS_START + 0x6) // Unused Flag
#define FLAG_TEMP_7 (TEMP_FLAGS_START + 0x7) // Unused Flag
#define FLAG_TEMP_8 (TEMP_FLAGS_START + 0x8) // Unused Flag
#define FLAG_TEMP_9 (TEMP_FLAGS_START + 0x9) // Unused Flag
#define FLAG_TEMP_A (TEMP_FLAGS_START + 0xA) // Unused Flag
#define FLAG_TEMP_B (TEMP_FLAGS_START + 0xB) // Unused Flag
#define FLAG_TEMP_C (TEMP_FLAGS_START + 0xC) // Unused Flag
#define FLAG_TEMP_D (TEMP_FLAGS_START + 0xD) // Unused Flag
#define FLAG_TEMP_E (TEMP_FLAGS_START + 0xE) // Unused Flag
#define FLAG_TEMP_F (TEMP_FLAGS_START + 0xF) // Unused Flag
#define FLAG_TEMP_10 (TEMP_FLAGS_START + 0x10) // Unused Flag
#define FLAG_TEMP_11 (TEMP_FLAGS_START + 0x11)
#define FLAG_TEMP_12 (TEMP_FLAGS_START + 0x12)
#define FLAG_TEMP_13 (TEMP_FLAGS_START + 0x13)
#define FLAG_TEMP_14 (TEMP_FLAGS_START + 0x14)
#define FLAG_TEMP_15 (TEMP_FLAGS_START + 0x15)
#define FLAG_TEMP_16 (TEMP_FLAGS_START + 0x16)
#define FLAG_TEMP_17 (TEMP_FLAGS_START + 0x17)
#define FLAG_TEMP_18 (TEMP_FLAGS_START + 0x18)
#define FLAG_TEMP_19 (TEMP_FLAGS_START + 0x19)
#define FLAG_TEMP_1A (TEMP_FLAGS_START + 0x1A)
#define FLAG_TEMP_1B (TEMP_FLAGS_START + 0x1B)
#define FLAG_TEMP_1C (TEMP_FLAGS_START + 0x1C)
#define FLAG_TEMP_1D (TEMP_FLAGS_START + 0x1D)
#define FLAG_TEMP_1E (TEMP_FLAGS_START + 0x1E)
#define FLAG_TEMP_1F (TEMP_FLAGS_START + 0x1F)
#define TEMP_FLAGS_END FLAG_TEMP_1F
#define FLAG_UNUSED_0x020 0x20 // Unused Flag
#define FLAG_UNUSED_0x021 0x21 // Unused Flag
#define FLAG_UNUSED_0x022 0x22 // Unused Flag
#define FLAG_UNUSED_0x023 0x23 // Unused Flag
#define FLAG_UNUSED_0x024 0x24 // Unused Flag
#define FLAG_UNUSED_0x025 0x25 // Unused Flag
#define FLAG_UNUSED_0x026 0x26 // Unused Flag
#define FLAG_UNUSED_0x027 0x27 // Unused Flag
#define FLAG_UNUSED_0x028 0x28 // Unused Flag
#define FLAG_UNUSED_0x029 0x29 // Unused Flag
#define FLAG_UNUSED_0x02A 0x2A // Unused Flag
#define FLAG_UNUSED_0x02B 0x2B // Unused Flag
#define FLAG_UNUSED_0x02C 0x2C // Unused Flag
#define FLAG_UNUSED_0x02D 0x2D // Unused Flag
#define FLAG_UNUSED_0x02E 0x2E // Unused Flag
#define FLAG_UNUSED_0x02F 0x2F // Unused Flag
#define FLAG_UNUSED_0x030 0x30 // Unused Flag
#define FLAG_UNUSED_0x031 0x31 // Unused Flag
#define FLAG_UNUSED_0x032 0x32 // Unused Flag
#define FLAG_UNUSED_0x033 0x33 // Unused Flag
#define FLAG_UNUSED_0x034 0x34 // Unused Flag
#define FLAG_UNUSED_0x035 0x35 // Unused Flag
#define FLAG_UNUSED_0x036 0x36 // Unused Flag
#define FLAG_UNUSED_0x037 0x37 // Unused Flag
#define FLAG_UNUSED_0x038 0x38 // Unused Flag
#define FLAG_UNUSED_0x039 0x39 // Unused Flag
#define FLAG_UNUSED_0x03A 0x3A // Unused Flag
#define FLAG_UNUSED_0x03B 0x3B // Unused Flag
#define FLAG_UNUSED_0x03C 0x3C // Unused Flag
#define FLAG_UNUSED_0x03D 0x3D // Unused Flag
#define FLAG_UNUSED_0x03E 0x3E // Unused Flag
#define FLAG_UNUSED_0x03F 0x3F // Unused Flag
#define FLAG_UNUSED_0x040 0x40 // Unused Flag
#define FLAG_UNUSED_0x041 0x41 // Unused Flag
#define FLAG_UNUSED_0x042 0x42 // Unused Flag
#define FLAG_UNUSED_0x043 0x43 // Unused Flag
#define FLAG_UNUSED_0x044 0x44 // Unused Flag
#define FLAG_UNUSED_0x045 0x45 // Unused Flag
#define FLAG_UNUSED_0x046 0x46 // Unused Flag
#define FLAG_UNUSED_0x047 0x47 // Unused Flag
#define FLAG_UNUSED_0x048 0x48 // Unused Flag
#define FLAG_UNUSED_0x049 0x49 // Unused Flag
#define FLAG_UNUSED_0x04A 0x4A // Unused Flag
#define FLAG_UNUSED_0x04B 0x4B // Unused Flag
#define FLAG_UNUSED_0x04C 0x4C // Unused Flag
#define FLAG_UNUSED_0x04D 0x4D // Unused Flag
#define FLAG_UNUSED_0x04E 0x4E // Unused Flag
#define FLAG_UNUSED_0x04F 0x4F // Unused Flag
// Scripts
#define FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA_STILL 0x50
#define FLAG_SET_WALL_CLOCK 0x51
#define FLAG_RESCUED_BIRCH 0x52
#define FLAG_LEGENDARIES_IN_SOOTOPOLIS 0x53
#define FLAG_REMOVE_WARP_FADE 0x54 // Custom flag used in tumbledemerald.
#define FLAG_UNUSED_0x055 0x55 // Unused Flag
#define FLAG_HIDE_CONTEST_POKE_BALL 0x56 // Always set after new game, object it hides is added directly
#define FLAG_MET_RIVAL_MOM 0x57
#define FLAG_BIRCH_AIDE_MET 0x58
#define FLAG_DECLINED_BIKE 0x59
#define FLAG_RECEIVED_BIKE 0x5A
#define FLAG_WATTSON_REMATCH_AVAILABLE 0x5B
#define FLAG_COLLECTED_ALL_SILVER_SYMBOLS 0x5C
#define FLAG_GOOD_LUCK_SAFARI_ZONE 0x5D // Set after talking to NPC blocking Safari Zone entrance/exit once.
#define FLAG_RECEIVED_WAILMER_PAIL 0x5E
#define FLAG_RECEIVED_POKEBLOCK_CASE 0x5F
#define FLAG_RECEIVED_SECRET_POWER 0x60
#define FLAG_MET_TEAM_AQUA_HARBOR 0x61
#define FLAG_TV_EXPLAINED 0x62
#define FLAG_MAUVILLE_GYM_BARRIERS_STATE 0x63
#define FLAG_MOSSDEEP_GYM_SWITCH_1 0x64 // Leftover from the RS version of Mossdeep Gym, functionally unused
#define FLAG_MOSSDEEP_GYM_SWITCH_2 0x65 //
#define FLAG_MOSSDEEP_GYM_SWITCH_3 0x66 //
#define FLAG_MOSSDEEP_GYM_SWITCH_4 0x67 //
#define FLAG_UNUSED_0x068 0x68 // Unused Flag
#define FLAG_OCEANIC_MUSEUM_MET_REPORTER 0x69
#define FLAG_RECEIVED_HM04 0x6A
#define FLAG_RECEIVED_HM06 0x6B
#define FLAG_WHITEOUT_TO_LAVARIDGE 0x6C // Set after defeating Flannery, so the player cant white out from poison before receiving Go Goggles
#define FLAG_RECEIVED_HM05 0x6D
#define FLAG_RECEIVED_HM02 0x6E
#define FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT 0x6F
#define FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE 0x70
#define FLAG_UNUSED_RS_LEGENDARY_BATTLE_DONE 0x71 // Unused Flag. Used in R/S to indicate whether player defeated or caught Groudon/Kyogre in Cave of Origin.
#define FLAG_SCOTT_CALL_BATTLE_FRONTIER 0x72 // Used in order to activate a phone call from Scott, inviting the player to the SS Tidal.
#define FLAG_RECEIVED_METEORITE 0x73
#define FLAG_ADVENTURE_STARTED 0x74 // RECEIVED Pokédex.
#define FLAG_DEFEATED_MAGMA_SPACE_CENTER 0x75 // Set when Team Magma is defeated at Mossdeep's Space Center.
#define FLAG_MET_HIDDEN_POWER_GIVER 0x76
#define FLAG_CANCEL_BATTLE_ROOM_CHALLENGE 0x77
#define FLAG_LANDMARK_MIRAGE_TOWER 0x78
#define FLAG_RECEIVED_TM31 0x79
#define FLAG_RECEIVED_HM03 0x7A
#define FLAG_RECEIVED_HM08 0x7B
#define FLAG_REGISTER_RIVAL_POKENAV 0x7C
#define FLAG_DEFEATED_RIVAL_ROUTE_104 0x7D
#define FLAG_DEFEATED_WALLY_VICTORY_ROAD 0x7E
#define FLAG_MET_PRETTY_PETAL_SHOP_OWNER 0x7F
#define FLAG_ENABLE_ROXANNE_FIRST_CALL 0x80 // Set after defeating Brawly. This will activate a call with Roxanne in order to register her.
#define FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN 0x81
#define FLAG_DEFEATED_RIVAL_ROUTE103 0x82
#define FLAG_RECEIVED_DOLL_LANETTE 0x83
#define FLAG_RECEIVED_POTION_OLDALE 0x84
#define FLAG_RECEIVED_AMULET_COIN 0x85
#define FLAG_PENDING_DAYCARE_EGG 0x86
#define FLAG_THANKED_FOR_PLAYING_WITH_WALLY 0x87
#define FLAG_ENABLE_FIRST_WALLY_POKENAV_CALL 0x88 // Set after defeating Wally outside Mauville Gym. Will activate a call later to register Wally.
#define FLAG_RECEIVED_HM01 0x89
#define FLAG_SCOTT_CALL_FORTREE_GYM 0x8A // Triggers call from Scott after defeating Winona
#define FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY 0x8B
#define FLAG_RECEIVED_6_SODA_POP 0x8C
#define FLAG_DEFEATED_SEASHORE_HOUSE 0x8D
#define FLAG_DEVON_GOODS_STOLEN 0x8E
#define FLAG_RECOVERED_DEVON_GOODS 0x8F
#define FLAG_RETURNED_DEVON_GOODS 0x90
#define FLAG_CAUGHT_LUGIA 0x91
#define FLAG_CAUGHT_HO_OH 0x92
#define FLAG_MR_BRINEY_SAILING_INTRO 0x93
#define FLAG_DOCK_REJECTED_DEVON_GOODS 0x94
#define FLAG_DELIVERED_DEVON_GOODS 0x95
#define FLAG_RECEIVED_CONTEST_PASS 0x96 // Unused, leftover from R/S
#define FLAG_RECEIVED_CASTFORM 0x97
#define FLAG_RECEIVED_SUPER_ROD 0x98
#define FLAG_RUSTBORO_NPC_TRADE_COMPLETED 0x99
#define FLAG_PACIFIDLOG_NPC_TRADE_COMPLETED 0x9A
#define FLAG_FORTREE_NPC_TRADE_COMPLETED 0x9B
#define FLAG_BATTLE_FRONTIER_TRADE_DONE 0x9C
#define FLAG_FORCE_MIRAGE_TOWER_VISIBLE 0x9D
#define FLAG_SOOTOPOLIS_ARCHIE_MAXIE_LEAVE 0x9E
#define FLAG_INTERACTED_WITH_DEVON_EMPLOYEE_GOODS_STOLEN 0x9F
#define FLAG_COOL_PAINTING_MADE 0xA0
#define FLAG_BEAUTY_PAINTING_MADE 0xA1
#define FLAG_CUTE_PAINTING_MADE 0xA2
#define FLAG_SMART_PAINTING_MADE 0xA3
#define FLAG_TOUGH_PAINTING_MADE 0xA4
#define FLAG_RECEIVED_TM39 0xA5
#define FLAG_RECEIVED_TM08 0xA6
#define FLAG_RECEIVED_TM34 0xA7
#define FLAG_RECEIVED_TM50 0xA8
#define FLAG_RECEIVED_TM42 0xA9
#define FLAG_RECEIVED_TM40 0xAA
#define FLAG_RECEIVED_TM04 0xAB
#define FLAG_RECEIVED_TM03 0xAC
#define FLAG_DECORATION_0 0xAD
#define FLAG_DECORATION_1 0xAE
#define FLAG_DECORATION_2 0xAF
#define FLAG_DECORATION_3 0xB0
#define FLAG_DECORATION_4 0xB1
#define FLAG_DECORATION_5 0xB2
#define FLAG_DECORATION_6 0xB3
#define FLAG_DECORATION_7 0xB4
#define FLAG_DECORATION_8 0xB5
#define FLAG_DECORATION_9 0xB6
#define FLAG_DECORATION_10 0xB7
#define FLAG_DECORATION_11 0xB8
#define FLAG_DECORATION_12 0xB9
#define FLAG_DECORATION_13 0xBA
#define FLAG_DECORATION_14 0xBB
#define FLAG_RECEIVED_POKENAV 0xBC
#define FLAG_DELIVERED_STEVEN_LETTER 0xBD
#define FLAG_DEFEATED_WALLY_MAUVILLE 0xBE
#define FLAG_DEFEATED_GRUNT_SPACE_CENTER_1F 0xBF
#define FLAG_RECEIVED_SUN_STONE_MOSSDEEP 0xC0
#define FLAG_WALLY_SPEECH 0xC1
#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1 0xC2 // Leftover from the RS version of Puzzle Room 7, functionally unused
#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2 0xC3 //
#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3 0xC4 //
#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4 0xC5 //
#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5 0xC6 //
#define FLAG_RUSTURF_TUNNEL_OPENED 0xC7
#define FLAG_RECEIVED_RED_SCARF 0xC8
#define FLAG_RECEIVED_BLUE_SCARF 0xC9
#define FLAG_RECEIVED_PINK_SCARF 0xCA
#define FLAG_RECEIVED_GREEN_SCARF 0xCB
#define FLAG_RECEIVED_YELLOW_SCARF 0xCC
#define FLAG_INTERACTED_WITH_STEVEN_SPACE_CENTER 0xCD
#define FLAG_ENCOUNTERED_LATIAS_OR_LATIOS 0xCE
#define FLAG_MET_ARCHIE_METEOR_FALLS 0xCF
#define FLAG_GOT_BASEMENT_KEY_FROM_WATTSON 0xD0
#define FLAG_GOT_TM24_FROM_WATTSON 0xD1
#define FLAG_FAN_CLUB_STRENGTH_SHARED 0xD2 // Set when you rate the strength of another trainer in Lilycove's Trainer Fan Club.
#define FLAG_DEFEATED_RIVAL_RUSTBORO 0xD3
#define FLAG_RECEIVED_RED_OR_BLUE_ORB 0xD4
#define FLAG_RECEIVED_PREMIER_BALL_RUSTBORO 0xD5
#define FLAG_ENABLE_WALLY_MATCH_CALL 0xD6
#define FLAG_ENABLE_SCOTT_MATCH_CALL 0xD7
#define FLAG_ENABLE_MOM_MATCH_CALL 0xD8
#define FLAG_MET_DIVING_TREASURE_HUNTER 0xD9
#define FLAG_MET_WAILMER_TRAINER 0xDA
#define FLAG_EVIL_LEADER_PLEASE_STOP 0xDB
#define FLAG_NEVER_SET_0x0DC 0xDC // This flag is read, but never written to
#define FLAG_RECEIVED_GO_GOGGLES 0xDD
#define FLAG_WINGULL_SENT_ON_ERRAND 0xDE
#define FLAG_RECEIVED_MENTAL_HERB 0xDF
#define FLAG_WINGULL_DELIVERED_MAIL 0xE0
#define FLAG_RECEIVED_20_COINS 0xE1
#define FLAG_RECEIVED_STARTER_DOLL 0xE2
#define FLAG_RECEIVED_GOOD_ROD 0xE3
#define FLAG_REGI_DOORS_OPENED 0xE4
#define FLAG_RECEIVED_TM27 0xE5
#define FLAG_RECEIVED_TM36 0xE6
#define FLAG_RECEIVED_TM05 0xE7
#define FLAG_RECEIVED_TM19 0xE8
#define FLAG_UNUSED_0x0E9 0xE9 // Unused Flag
#define FLAG_RECEIVED_TM44 0xEA
#define FLAG_RECEIVED_TM45 0xEB
#define FLAG_RECEIVED_GLASS_ORNAMENT 0xEC
#define FLAG_RECEIVED_SILVER_SHIELD 0xED
#define FLAG_RECEIVED_GOLD_SHIELD 0xEE
#define FLAG_USED_STORAGE_KEY 0xEF
#define FLAG_USED_ROOM_1_KEY 0xF0
#define FLAG_USED_ROOM_2_KEY 0xF1
#define FLAG_USED_ROOM_4_KEY 0xF2
#define FLAG_USED_ROOM_6_KEY 0xF3
#define FLAG_MET_PROF_COZMO 0xF4
#define FLAG_RECEIVED_WAILMER_DOLL 0xF5
#define FLAG_RECEIVED_CHESTO_BERRY_ROUTE_104 0xF6
#define FLAG_DEFEATED_SS_TIDAL_TRAINERS 0xF7
#define FLAG_RECEIVED_SPELON_BERRY 0xF8
#define FLAG_RECEIVED_PAMTRE_BERRY 0xF9
#define FLAG_RECEIVED_WATMEL_BERRY 0xFA
#define FLAG_RECEIVED_DURIN_BERRY 0xFB
#define FLAG_RECEIVED_BELUE_BERRY 0xFC
#define FLAG_ENABLE_RIVAL_MATCH_CALL 0xFD
#define FLAG_RECEIVED_CHARCOAL 0xFE
#define FLAG_LATIOS_OR_LATIAS_ROAMING 0xFF
#define FLAG_RECEIVED_REPEAT_BALL 0x100
#define FLAG_RECEIVED_OLD_ROD 0x101
#define FLAG_RECEIVED_COIN_CASE 0x102
#define FLAG_RETURNED_RED_OR_BLUE_ORB 0x103
#define FLAG_RECEIVED_TM49 0x104
#define FLAG_RECEIVED_TM28 0x105
#define FLAG_RECEIVED_TM09 0x106
#define FLAG_ENTERED_ELITE_FOUR 0x107
#define FLAG_RECEIVED_TM10 0x108
#define FLAG_RECEIVED_TM41 0x109
#define FLAG_RECEIVED_LAVARIDGE_EGG 0x10A
#define FLAG_RECEIVED_REVIVED_FOSSIL_MON 0x10B
#define FLAG_SECRET_BASE_REGISTRY_ENABLED 0x10C
#define FLAG_RECEIVED_TM46 0x10D
#define FLAG_CONTEST_SKETCH_CREATED 0x10E // Set but never read
#define FLAG_EVIL_TEAM_ESCAPED_STERN_SPOKE 0x10F
#define FLAG_RECEIVED_EXP_SHARE 0x110
#define FLAG_POKERUS_EXPLAINED 0x111
#define FLAG_RECEIVED_RUNNING_SHOES 0x112
#define FLAG_RECEIVED_QUICK_CLAW 0x113
#define FLAG_RECEIVED_KINGS_ROCK 0x114
#define FLAG_RECEIVED_MACHO_BRACE 0x115
#define FLAG_RECEIVED_SOOTHE_BELL 0x116
#define FLAG_RECEIVED_WHITE_HERB 0x117
#define FLAG_RECEIVED_SOFT_SAND 0x118
#define FLAG_ENABLE_PROF_BIRCH_MATCH_CALL 0x119
#define FLAG_RECEIVED_CLEANSE_TAG 0x11A
#define FLAG_RECEIVED_FOCUS_BAND 0x11B
#define FLAG_DECLINED_WALLY_BATTLE_MAUVILLE 0x11C
#define FLAG_RECEIVED_DEVON_SCOPE 0x11D
#define FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE 0x11E
#define FLAG_MET_DEVON_EMPLOYEE 0x11F
#define FLAG_MET_RIVAL_RUSTBORO 0x120
#define FLAG_RECEIVED_SILK_SCARF 0x121
#define FLAG_NOT_READY_FOR_BATTLE_ROUTE_120 0x122
#define FLAG_RECEIVED_SS_TICKET 0x123
#define FLAG_MET_RIVAL_LILYCOVE 0x124
#define FLAG_MET_RIVAL_IN_HOUSE_AFTER_LILYCOVE 0x125
#define FLAG_EXCHANGED_SCANNER 0x126
#define FLAG_KECLEON_FLED_FORTREE 0x127
#define FLAG_PETALBURG_MART_EXPANDED_ITEMS 0x128
#define FLAG_RECEIVED_MIRACLE_SEED 0x129
#define FLAG_RECEIVED_BELDUM 0x12A
#define FLAG_RECEIVED_FANCLUB_TM_THIS_WEEK 0x12B
#define FLAG_MET_FANCLUB_YOUNGER_BROTHER 0x12C
#define FLAG_RIVAL_LEFT_FOR_ROUTE103 0x12D
#define FLAG_OMIT_DIVE_FROM_STEVEN_LETTER 0x12E
#define FLAG_HAS_MATCH_CALL 0x12F
#define FLAG_ADDED_MATCH_CALL_TO_POKENAV 0x130
#define FLAG_REGISTERED_STEVEN_POKENAV 0x131
#define FLAG_ENABLE_NORMAN_MATCH_CALL 0x132
#define FLAG_STEVEN_GUIDES_TO_CAVE_OF_ORIGIN 0x133 // Set after you follow Steven to the entrance of the Cave of Origin.
#define FLAG_MET_ARCHIE_SOOTOPOLIS 0x134
#define FLAG_MET_MAXIE_SOOTOPOLIS 0x135
#define FLAG_MET_SCOTT_RUSTBORO 0x136
#define FLAG_WALLACE_GOES_TO_SKY_PILLAR 0x137 // Set after speaking to Wallace within the Cave of Origin.
#define FLAG_RECEIVED_HM07 0x138
#define FLAG_BEAT_MAGMA_GRUNT_JAGGED_PASS 0x139
#define FLAG_RECEIVED_AURORA_TICKET 0x13A
#define FLAG_RECEIVED_MYSTIC_TICKET 0x13B
#define FLAG_RECEIVED_OLD_SEA_MAP 0x13C
#define FLAG_WONDER_CARD_UNUSED_1 0x13D // These Wonder Card flags are referenced but never set
#define FLAG_WONDER_CARD_UNUSED_2 0x13E
#define FLAG_WONDER_CARD_UNUSED_3 0x13F
#define FLAG_WONDER_CARD_UNUSED_4 0x140
#define FLAG_WONDER_CARD_UNUSED_5 0x141
#define FLAG_WONDER_CARD_UNUSED_6 0x142
#define FLAG_WONDER_CARD_UNUSED_7 0x143
#define FLAG_WONDER_CARD_UNUSED_8 0x144
#define FLAG_WONDER_CARD_UNUSED_9 0x145
#define FLAG_WONDER_CARD_UNUSED_10 0x146
#define FLAG_WONDER_CARD_UNUSED_11 0x147
#define FLAG_WONDER_CARD_UNUSED_12 0x148
#define FLAG_WONDER_CARD_UNUSED_13 0x149
#define FLAG_WONDER_CARD_UNUSED_14 0x14A
#define FLAG_WONDER_CARD_UNUSED_15 0x14B
#define FLAG_WONDER_CARD_UNUSED_16 0x14C
#define FLAG_WONDER_CARD_UNUSED_17 0x14D
#define NUM_WONDER_CARD_FLAGS (1 + FLAG_WONDER_CARD_UNUSED_17 - FLAG_RECEIVED_AURORA_TICKET)
#define FLAG_MIRAGE_TOWER_VISIBLE 0x14E
#define FLAG_CHOSE_ROOT_FOSSIL 0x14F
#define FLAG_CHOSE_CLAW_FOSSIL 0x150
#define FLAG_RECEIVED_POWDER_JAR 0x151
#define FLAG_CHOSEN_MULTI_BATTLE_NPC_PARTNER 0x152
#define FLAG_MET_BATTLE_FRONTIER_BREEDER 0x153
#define FLAG_MET_BATTLE_FRONTIER_MANIAC 0x154
#define FLAG_ENTERED_CONTEST 0x155
#define FLAG_MET_SLATEPORT_FANCLUB_CHAIRMAN 0x156
#define FLAG_MET_BATTLE_FRONTIER_GAMBLER 0x157
#define FLAG_ENABLE_MR_STONE_POKENAV 0x158
#define FLAG_NURSE_MENTIONS_GOLD_CARD 0x159
#define FLAG_MET_FRONTIER_BEAUTY_MOVE_TUTOR 0x15A
#define FLAG_MET_FRONTIER_SWIMMER_MOVE_TUTOR 0x15B
// Trainer Rematch Flags
#define FLAG_MATCH_CALL_REGISTERED 0x15C
#define FLAG_REMATCH_ROSE 0x15D
#define FLAG_REMATCH_ANDRES 0x15E
#define FLAG_REMATCH_DUSTY 0x15F
#define FLAG_REMATCH_LOLA 0x160
#define FLAG_REMATCH_RICKY 0x161
#define FLAG_REMATCH_LILA_AND_ROY 0x162
#define FLAG_REMATCH_CRISTIN 0x163
#define FLAG_REMATCH_BROOKE 0x164
#define FLAG_REMATCH_WILTON 0x165
#define FLAG_REMATCH_VALERIE 0x166
#define FLAG_REMATCH_CINDY 0x167
#define FLAG_REMATCH_THALIA 0x168
#define FLAG_REMATCH_JESSICA 0x169
#define FLAG_REMATCH_WINSTON 0x16A
#define FLAG_REMATCH_STEVE 0x16B
#define FLAG_REMATCH_TONY 0x16C
#define FLAG_REMATCH_NOB 0x16D
#define FLAG_REMATCH_KOJI 0x16E
#define FLAG_REMATCH_FERNANDO 0x16F
#define FLAG_REMATCH_DALTON 0x170
#define FLAG_REMATCH_BERNIE 0x171
#define FLAG_REMATCH_ETHAN 0x172
#define FLAG_REMATCH_JOHN_AND_JAY 0x173
#define FLAG_REMATCH_JEFFREY 0x174
#define FLAG_REMATCH_CAMERON 0x175
#define FLAG_REMATCH_JACKI 0x176
#define FLAG_REMATCH_WALTER 0x177
#define FLAG_REMATCH_KAREN 0x178
#define FLAG_REMATCH_JERRY 0x179
#define FLAG_REMATCH_ANNA_AND_MEG 0x17A
#define FLAG_REMATCH_ISABEL 0x17B
#define FLAG_REMATCH_MIGUEL 0x17C
#define FLAG_REMATCH_TIMOTHY 0x17D
#define FLAG_REMATCH_SHELBY 0x17E
#define FLAG_REMATCH_CALVIN 0x17F
#define FLAG_REMATCH_ELLIOT 0x180
#define FLAG_REMATCH_ISAIAH 0x181
#define FLAG_REMATCH_MARIA 0x182
#define FLAG_REMATCH_ABIGAIL 0x183
#define FLAG_REMATCH_DYLAN 0x184
#define FLAG_REMATCH_KATELYN 0x185
#define FLAG_REMATCH_BENJAMIN 0x186
#define FLAG_REMATCH_PABLO 0x187
#define FLAG_REMATCH_NICOLAS 0x188
#define FLAG_REMATCH_ROBERT 0x189
#define FLAG_REMATCH_LAO 0x18A
#define FLAG_REMATCH_CYNDY 0x18B
#define FLAG_REMATCH_MADELINE 0x18C
#define FLAG_REMATCH_JENNY 0x18D
#define FLAG_REMATCH_DIANA 0x18E
#define FLAG_REMATCH_AMY_AND_LIV 0x18F
#define FLAG_REMATCH_ERNEST 0x190
#define FLAG_REMATCH_CORY 0x191
#define FLAG_REMATCH_EDWIN 0x192
#define FLAG_REMATCH_LYDIA 0x193
#define FLAG_REMATCH_ISAAC 0x194
#define FLAG_REMATCH_GABRIELLE 0x195
#define FLAG_REMATCH_CATHERINE 0x196
#define FLAG_REMATCH_JACKSON 0x197
#define FLAG_REMATCH_HALEY 0x198
#define FLAG_REMATCH_JAMES 0x199
#define FLAG_REMATCH_TRENT 0x19A
#define FLAG_REMATCH_SAWYER 0x19B
#define FLAG_REMATCH_KIRA_AND_DAN 0x19C
#define FLAG_REMATCH_WALLY 0x19D
#define FLAG_REMATCH_ROXANNE 0x19E
#define FLAG_REMATCH_BRAWLY 0x19F
#define FLAG_REMATCH_WATTSON 0x1A0
#define FLAG_REMATCH_FLANNERY 0x1A1
#define FLAG_REMATCH_NORMAN 0x1A2
#define FLAG_REMATCH_WINONA 0x1A3
#define FLAG_REMATCH_TATE_AND_LIZA 0x1A4
// Note: FLAG_REMATCH_JUAN is handled by FLAG_ENABLE_JUAN_MATCH_CALL instead.
#define FLAG_REMATCH_SIDNEY 0x1A5
#define FLAG_REMATCH_PHOEBE 0x1A6
#define FLAG_REMATCH_GLACIA 0x1A7
#define FLAG_REMATCH_DRAKE 0x1A8
#define FLAG_REMATCH_WALLACE 0x1A9
#define FLAG_UNUSED_0x1AA 0x1AA // Unused Flag
#define FLAG_UNUSED_0x1AB 0x1AB // Unused Flag
#define FLAG_DEFEATED_DEOXYS 0x1AC
#define FLAG_BATTLED_DEOXYS 0x1AD
#define FLAG_SHOWN_EON_TICKET 0x1AE
#define FLAG_SHOWN_AURORA_TICKET 0x1AF
#define FLAG_SHOWN_OLD_SEA_MAP 0x1B0
#define FLAG_MOVE_TUTOR_TAUGHT_SWAGGER 0x1B1
#define FLAG_MOVE_TUTOR_TAUGHT_ROLLOUT 0x1B2
#define FLAG_MOVE_TUTOR_TAUGHT_FURY_CUTTER 0x1B3
#define FLAG_MOVE_TUTOR_TAUGHT_MIMIC 0x1B4
#define FLAG_MOVE_TUTOR_TAUGHT_METRONOME 0x1B5
#define FLAG_MOVE_TUTOR_TAUGHT_SLEEP_TALK 0x1B6
#define FLAG_MOVE_TUTOR_TAUGHT_SUBSTITUTE 0x1B7
#define FLAG_MOVE_TUTOR_TAUGHT_DYNAMICPUNCH 0x1B8
#define FLAG_MOVE_TUTOR_TAUGHT_DOUBLE_EDGE 0x1B9
#define FLAG_MOVE_TUTOR_TAUGHT_EXPLOSION 0x1BA
#define FLAG_DEFEATED_REGIROCK 0x1BB
#define FLAG_DEFEATED_REGICE 0x1BC
#define FLAG_DEFEATED_REGISTEEL 0x1BD
#define FLAG_DEFEATED_KYOGRE 0x1BE
#define FLAG_DEFEATED_GROUDON 0x1BF
#define FLAG_DEFEATED_RAYQUAZA 0x1C0
#define FLAG_DEFEATED_VOLTORB_1_NEW_MAUVILLE 0x1C1
#define FLAG_DEFEATED_VOLTORB_2_NEW_MAUVILLE 0x1C2
#define FLAG_DEFEATED_VOLTORB_3_NEW_MAUVILLE 0x1C3
#define FLAG_DEFEATED_ELECTRODE_1_AQUA_HIDEOUT 0x1C4
#define FLAG_DEFEATED_ELECTRODE_2_AQUA_HIDEOUT 0x1C5
#define FLAG_DEFEATED_SUDOWOODO 0x1C6
#define FLAG_DEFEATED_MEW 0x1C7
#define FLAG_DEFEATED_LATIAS_OR_LATIOS 0x1C8
#define FLAG_CAUGHT_LATIAS_OR_LATIOS 0x1C9
#define FLAG_CAUGHT_MEW 0x1CA
#define FLAG_MET_SCOTT_AFTER_OBTAINING_STONE_BADGE 0x1CB
#define FLAG_MET_SCOTT_IN_VERDANTURF 0x1CC
#define FLAG_MET_SCOTT_IN_FALLARBOR 0x1CD
#define FLAG_MET_SCOTT_IN_LILYCOVE 0x1CE
#define FLAG_MET_SCOTT_IN_EVERGRANDE 0x1CF
#define FLAG_MET_SCOTT_ON_SS_TIDAL 0x1D0
#define FLAG_SCOTT_GIVES_BATTLE_POINTS 0x1D1
#define FLAG_COLLECTED_ALL_GOLD_SYMBOLS 0x1D2
#define FLAG_ENABLE_ROXANNE_MATCH_CALL 0x1D3
#define FLAG_ENABLE_BRAWLY_MATCH_CALL 0x1D4
#define FLAG_ENABLE_WATTSON_MATCH_CALL 0x1D5
#define FLAG_ENABLE_FLANNERY_MATCH_CALL 0x1D6
#define FLAG_ENABLE_WINONA_MATCH_CALL 0x1D7
#define FLAG_ENABLE_TATE_AND_LIZA_MATCH_CALL 0x1D8
#define FLAG_ENABLE_JUAN_MATCH_CALL 0x1D9
#define FLAG_UNUSED_0x1DA 0x1DA // Unused Flag
#define FLAG_SHOWN_MYSTIC_TICKET 0x1DB
#define FLAG_DEFEATED_HO_OH 0x1DC
#define FLAG_DEFEATED_LUGIA 0x1DD
#define FLAG_UNUSED_0x1DE 0x1DE // Unused Flag
#define FLAG_UNUSED_0x1DF 0x1DF // Unused Flag
#define FLAG_UNUSED_0x1E0 0x1E0 // Unused Flag
#define FLAG_UNUSED_0x1E1 0x1E1 // Unused Flag
#define FLAG_UNUSED_0x1E2 0x1E2 // Unused Flag
#define FLAG_UNUSED_0x1E3 0x1E3 // Unused Flag
// Mystery Gift Flags (Unknown)
#define FLAG_MYSTERY_GIFT_DONE 0x1E4
#define FLAG_MYSTERY_GIFT_1 0x1E5
#define FLAG_MYSTERY_GIFT_2 0x1E6
#define FLAG_MYSTERY_GIFT_3 0x1E7
#define FLAG_MYSTERY_GIFT_4 0x1E8
#define FLAG_MYSTERY_GIFT_5 0x1E9
#define FLAG_MYSTERY_GIFT_6 0x1EA
#define FLAG_MYSTERY_GIFT_7 0x1EB
#define FLAG_MYSTERY_GIFT_8 0x1EC
#define FLAG_MYSTERY_GIFT_9 0x1ED
#define FLAG_MYSTERY_GIFT_10 0x1EE
#define FLAG_MYSTERY_GIFT_11 0x1EF
#define FLAG_MYSTERY_GIFT_12 0x1F0
#define FLAG_MYSTERY_GIFT_13 0x1F1
#define FLAG_MYSTERY_GIFT_14 0x1F2
#define FLAG_MYSTERY_GIFT_15 0x1F3
// Hidden Items
#define FLAG_HIDDEN_ITEMS_START 0x1F4
#define FLAG_HIDDEN_ITEM_LAVARIDGE_TOWN_ICE_HEAL (FLAG_HIDDEN_ITEMS_START + 0x00)
#define FLAG_HIDDEN_ITEM_TRICK_HOUSE_NUGGET (FLAG_HIDDEN_ITEMS_START + 0x01)
#define FLAG_HIDDEN_ITEM_ROUTE_111_STARDUST (FLAG_HIDDEN_ITEMS_START + 0x02)
#define FLAG_HIDDEN_ITEM_ROUTE_113_ETHER (FLAG_HIDDEN_ITEMS_START + 0x03)
#define FLAG_HIDDEN_ITEM_ROUTE_114_CARBOS (FLAG_HIDDEN_ITEMS_START + 0x04)
#define FLAG_HIDDEN_ITEM_ROUTE_119_CALCIUM (FLAG_HIDDEN_ITEMS_START + 0x05)
#define FLAG_HIDDEN_ITEM_ROUTE_119_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 0x06)
#define FLAG_HIDDEN_ITEM_ROUTE_123_SUPER_REPEL (FLAG_HIDDEN_ITEMS_START + 0x07)
#define FLAG_HIDDEN_ITEM_UNDERWATER_124_CARBOS (FLAG_HIDDEN_ITEMS_START + 0x08)
#define FLAG_HIDDEN_ITEM_UNDERWATER_124_GREEN_SHARD (FLAG_HIDDEN_ITEMS_START + 0x09)
#define FLAG_HIDDEN_ITEM_UNDERWATER_124_PEARL (FLAG_HIDDEN_ITEMS_START + 0x0A)
#define FLAG_HIDDEN_ITEM_UNDERWATER_124_BIG_PEARL (FLAG_HIDDEN_ITEMS_START + 0x0B)
#define FLAG_HIDDEN_ITEM_UNDERWATER_126_BLUE_SHARD (FLAG_HIDDEN_ITEMS_START + 0x0C)
#define FLAG_HIDDEN_ITEM_UNDERWATER_124_HEART_SCALE_1 (FLAG_HIDDEN_ITEMS_START + 0x0D)
#define FLAG_HIDDEN_ITEM_UNDERWATER_126_HEART_SCALE (FLAG_HIDDEN_ITEMS_START + 0x0E)
#define FLAG_HIDDEN_ITEM_UNDERWATER_126_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 0x0F)
#define FLAG_HIDDEN_ITEM_UNDERWATER_126_STARDUST (FLAG_HIDDEN_ITEMS_START + 0x10)
#define FLAG_HIDDEN_ITEM_UNDERWATER_126_PEARL (FLAG_HIDDEN_ITEMS_START + 0x11)
#define FLAG_HIDDEN_ITEM_UNDERWATER_126_YELLOW_SHARD (FLAG_HIDDEN_ITEMS_START + 0x12)
#define FLAG_HIDDEN_ITEM_UNDERWATER_126_IRON (FLAG_HIDDEN_ITEMS_START + 0x13)
#define FLAG_HIDDEN_ITEM_UNDERWATER_126_BIG_PEARL (FLAG_HIDDEN_ITEMS_START + 0x14)
#define FLAG_HIDDEN_ITEM_UNDERWATER_127_STAR_PIECE (FLAG_HIDDEN_ITEMS_START + 0x15)
#define FLAG_HIDDEN_ITEM_UNDERWATER_127_HP_UP (FLAG_HIDDEN_ITEMS_START + 0x16)
#define FLAG_HIDDEN_ITEM_UNDERWATER_127_HEART_SCALE (FLAG_HIDDEN_ITEMS_START + 0x17)
#define FLAG_HIDDEN_ITEM_UNDERWATER_127_RED_SHARD (FLAG_HIDDEN_ITEMS_START + 0x18)
#define FLAG_HIDDEN_ITEM_UNDERWATER_128_PROTEIN (FLAG_HIDDEN_ITEMS_START + 0x19)
#define FLAG_HIDDEN_ITEM_UNDERWATER_128_PEARL (FLAG_HIDDEN_ITEMS_START + 0x1A)
#define FLAG_HIDDEN_ITEM_LILYCOVE_CITY_HEART_SCALE (FLAG_HIDDEN_ITEMS_START + 0x1B)
#define FLAG_HIDDEN_ITEM_FALLARBOR_TOWN_NUGGET (FLAG_HIDDEN_ITEMS_START + 0x1C)
#define FLAG_HIDDEN_ITEM_MT_PYRE_EXTERIOR_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 0x1D)
#define FLAG_HIDDEN_ITEM_ROUTE_113_TM_32 (FLAG_HIDDEN_ITEMS_START + 0x1E)
#define FLAG_HIDDEN_ITEM_ABANDONED_SHIP_RM_1_KEY (FLAG_HIDDEN_ITEMS_START + 0x1F)
#define FLAG_HIDDEN_ITEM_ABANDONED_SHIP_RM_2_KEY (FLAG_HIDDEN_ITEMS_START + 0x20)
#define FLAG_HIDDEN_ITEM_ABANDONED_SHIP_RM_4_KEY (FLAG_HIDDEN_ITEMS_START + 0x21)
#define FLAG_HIDDEN_ITEM_ABANDONED_SHIP_RM_6_KEY (FLAG_HIDDEN_ITEMS_START + 0x22)
#define FLAG_HIDDEN_ITEM_SS_TIDAL_LOWER_DECK_LEFTOVERS (FLAG_HIDDEN_ITEMS_START + 0x23)
#define FLAG_HIDDEN_ITEM_UNDERWATER_124_CALCIUM (FLAG_HIDDEN_ITEMS_START + 0x24)
#define FLAG_HIDDEN_ITEM_ROUTE_104_POTION (FLAG_HIDDEN_ITEMS_START + 0x25)
#define FLAG_HIDDEN_ITEM_UNDERWATER_124_HEART_SCALE_2 (FLAG_HIDDEN_ITEMS_START + 0x26)
#define FLAG_HIDDEN_ITEM_ROUTE_121_HP_UP (FLAG_HIDDEN_ITEMS_START + 0x27)
#define FLAG_HIDDEN_ITEM_ROUTE_121_NUGGET (FLAG_HIDDEN_ITEMS_START + 0x28)
#define FLAG_HIDDEN_ITEM_ROUTE_123_REVIVE (FLAG_HIDDEN_ITEMS_START + 0x29)
#define FLAG_HIDDEN_ITEM_ROUTE_113_REVIVE (FLAG_HIDDEN_ITEMS_START + 0x2A)
#define FLAG_HIDDEN_ITEM_LILYCOVE_CITY_PP_UP (FLAG_HIDDEN_ITEMS_START + 0x2B)
#define FLAG_HIDDEN_ITEM_ROUTE_104_SUPER_POTION (FLAG_HIDDEN_ITEMS_START + 0x2C)
#define FLAG_HIDDEN_ITEM_ROUTE_116_SUPER_POTION (FLAG_HIDDEN_ITEMS_START + 0x2D)
#define FLAG_HIDDEN_ITEM_ROUTE_106_STARDUST (FLAG_HIDDEN_ITEMS_START + 0x2E)
#define FLAG_HIDDEN_ITEM_ROUTE_106_HEART_SCALE (FLAG_HIDDEN_ITEMS_START + 0x2F)
#define FLAG_HIDDEN_ITEM_GRANITE_CAVE_B2F_EVERSTONE_1 (FLAG_HIDDEN_ITEMS_START + 0x30)
#define FLAG_HIDDEN_ITEM_GRANITE_CAVE_B2F_EVERSTONE_2 (FLAG_HIDDEN_ITEMS_START + 0x31)
#define FLAG_HIDDEN_ITEM_ROUTE_109_REVIVE (FLAG_HIDDEN_ITEMS_START + 0x32)
#define FLAG_HIDDEN_ITEM_ROUTE_109_GREAT_BALL (FLAG_HIDDEN_ITEMS_START + 0x33)
#define FLAG_HIDDEN_ITEM_ROUTE_109_HEART_SCALE_1 (FLAG_HIDDEN_ITEMS_START + 0x34)
#define FLAG_HIDDEN_ITEM_ROUTE_110_GREAT_BALL (FLAG_HIDDEN_ITEMS_START + 0x35)
#define FLAG_HIDDEN_ITEM_ROUTE_110_REVIVE (FLAG_HIDDEN_ITEMS_START + 0x36)
#define FLAG_HIDDEN_ITEM_ROUTE_110_FULL_HEAL (FLAG_HIDDEN_ITEMS_START + 0x37)
#define FLAG_HIDDEN_ITEM_ROUTE_111_PROTEIN (FLAG_HIDDEN_ITEMS_START + 0x38)
#define FLAG_HIDDEN_ITEM_ROUTE_111_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 0x39)
#define FLAG_HIDDEN_ITEM_PETALBURG_WOODS_POTION (FLAG_HIDDEN_ITEMS_START + 0x3A)
#define FLAG_HIDDEN_ITEM_PETALBURG_WOODS_TINY_MUSHROOM_1 (FLAG_HIDDEN_ITEMS_START + 0x3B)
#define FLAG_HIDDEN_ITEM_PETALBURG_WOODS_TINY_MUSHROOM_2 (FLAG_HIDDEN_ITEMS_START + 0x3C)
#define FLAG_HIDDEN_ITEM_PETALBURG_WOODS_POKE_BALL (FLAG_HIDDEN_ITEMS_START + 0x3D)
#define FLAG_HIDDEN_ITEM_ROUTE_104_POKE_BALL (FLAG_HIDDEN_ITEMS_START + 0x3E)
#define FLAG_HIDDEN_ITEM_ROUTE_106_POKE_BALL (FLAG_HIDDEN_ITEMS_START + 0x3F)
#define FLAG_HIDDEN_ITEM_ROUTE_109_ETHER (FLAG_HIDDEN_ITEMS_START + 0x40)
#define FLAG_HIDDEN_ITEM_ROUTE_110_POKE_BALL (FLAG_HIDDEN_ITEMS_START + 0x41)
#define FLAG_HIDDEN_ITEM_ROUTE_118_HEART_SCALE (FLAG_HIDDEN_ITEMS_START + 0x42)
#define FLAG_HIDDEN_ITEM_ROUTE_118_IRON (FLAG_HIDDEN_ITEMS_START + 0x43)
#define FLAG_HIDDEN_ITEM_ROUTE_119_FULL_HEAL (FLAG_HIDDEN_ITEMS_START + 0x44)
#define FLAG_HIDDEN_ITEM_ROUTE_120_RARE_CANDY_2 (FLAG_HIDDEN_ITEMS_START + 0x45)
#define FLAG_HIDDEN_ITEM_ROUTE_120_ZINC (FLAG_HIDDEN_ITEMS_START + 0x46)
#define FLAG_HIDDEN_ITEM_ROUTE_120_RARE_CANDY_1 (FLAG_HIDDEN_ITEMS_START + 0x47)
#define FLAG_HIDDEN_ITEM_ROUTE_117_REPEL (FLAG_HIDDEN_ITEMS_START + 0x48)
#define FLAG_HIDDEN_ITEM_ROUTE_121_FULL_HEAL (FLAG_HIDDEN_ITEMS_START + 0x49)
#define FLAG_HIDDEN_ITEM_ROUTE_123_HYPER_POTION (FLAG_HIDDEN_ITEMS_START + 0x4A)
#define FLAG_HIDDEN_ITEM_LILYCOVE_CITY_POKE_BALL (FLAG_HIDDEN_ITEMS_START + 0x4B)
#define FLAG_HIDDEN_ITEM_JAGGED_PASS_GREAT_BALL (FLAG_HIDDEN_ITEMS_START + 0x4C)
#define FLAG_HIDDEN_ITEM_JAGGED_PASS_FULL_HEAL (FLAG_HIDDEN_ITEMS_START + 0x4D)
#define FLAG_HIDDEN_ITEM_MT_PYRE_EXTERIOR_MAX_ETHER (FLAG_HIDDEN_ITEMS_START + 0x4E)
#define FLAG_HIDDEN_ITEM_MT_PYRE_SUMMIT_ZINC (FLAG_HIDDEN_ITEMS_START + 0x4F)
#define FLAG_HIDDEN_ITEM_MT_PYRE_SUMMIT_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 0x50)
#define FLAG_HIDDEN_ITEM_VICTORY_ROAD_1F_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 0x51)
#define FLAG_HIDDEN_ITEM_VICTORY_ROAD_B2F_ELIXIR (FLAG_HIDDEN_ITEMS_START + 0x52)
#define FLAG_HIDDEN_ITEM_VICTORY_ROAD_B2F_MAX_REPEL (FLAG_HIDDEN_ITEMS_START + 0x53)
#define FLAG_HIDDEN_ITEM_ROUTE_120_REVIVE (FLAG_HIDDEN_ITEMS_START + 0x54)
#define FLAG_HIDDEN_ITEM_ROUTE_104_ANTIDOTE (FLAG_HIDDEN_ITEMS_START + 0x55)
#define FLAG_HIDDEN_ITEM_ROUTE_108_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 0x56)
#define FLAG_HIDDEN_ITEM_ROUTE_119_MAX_ETHER (FLAG_HIDDEN_ITEMS_START + 0x57)
#define FLAG_HIDDEN_ITEM_ROUTE_104_HEART_SCALE (FLAG_HIDDEN_ITEMS_START + 0x58)
#define FLAG_HIDDEN_ITEM_ROUTE_105_HEART_SCALE (FLAG_HIDDEN_ITEMS_START + 0x59)
#define FLAG_HIDDEN_ITEM_ROUTE_109_HEART_SCALE_2 (FLAG_HIDDEN_ITEMS_START + 0x5A)
#define FLAG_HIDDEN_ITEM_ROUTE_109_HEART_SCALE_3 (FLAG_HIDDEN_ITEMS_START + 0x5B)
#define FLAG_HIDDEN_ITEM_ROUTE_128_HEART_SCALE_1 (FLAG_HIDDEN_ITEMS_START + 0x5C)
#define FLAG_HIDDEN_ITEM_ROUTE_128_HEART_SCALE_2 (FLAG_HIDDEN_ITEMS_START + 0x5D)
#define FLAG_HIDDEN_ITEM_ROUTE_128_HEART_SCALE_3 (FLAG_HIDDEN_ITEMS_START + 0x5E)
#define FLAG_HIDDEN_ITEM_PETALBURG_CITY_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 0x5F)
#define FLAG_HIDDEN_ITEM_ROUTE_116_BLACK_GLASSES (FLAG_HIDDEN_ITEMS_START + 0x60)
#define FLAG_HIDDEN_ITEM_ROUTE_115_HEART_SCALE (FLAG_HIDDEN_ITEMS_START + 0x61)
#define FLAG_HIDDEN_ITEM_ROUTE_113_NUGGET (FLAG_HIDDEN_ITEMS_START + 0x62)
#define FLAG_HIDDEN_ITEM_ROUTE_123_PP_UP (FLAG_HIDDEN_ITEMS_START + 0x63)
#define FLAG_HIDDEN_ITEM_ROUTE_121_MAX_REVIVE (FLAG_HIDDEN_ITEMS_START + 0x64)
#define FLAG_HIDDEN_ITEM_ARTISAN_CAVE_B1F_CALCIUM (FLAG_HIDDEN_ITEMS_START + 0x65)
#define FLAG_HIDDEN_ITEM_ARTISAN_CAVE_B1F_ZINC (FLAG_HIDDEN_ITEMS_START + 0x66)
#define FLAG_HIDDEN_ITEM_ARTISAN_CAVE_B1F_PROTEIN (FLAG_HIDDEN_ITEMS_START + 0x67)
#define FLAG_HIDDEN_ITEM_ARTISAN_CAVE_B1F_IRON (FLAG_HIDDEN_ITEMS_START + 0x68)
#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_SOUTH_EAST_FULL_RESTORE (FLAG_HIDDEN_ITEMS_START + 0x69)
#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_NORTH_EAST_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 0x6A)
#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_NORTH_EAST_ZINC (FLAG_HIDDEN_ITEMS_START + 0x6B)
#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_SOUTH_EAST_PP_UP (FLAG_HIDDEN_ITEMS_START + 0x6C)
#define FLAG_HIDDEN_ITEM_NAVEL_ROCK_TOP_SACRED_ASH (FLAG_HIDDEN_ITEMS_START + 0x6D)
#define FLAG_HIDDEN_ITEM_ROUTE_123_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 0x6E)
#define FLAG_HIDDEN_ITEM_ROUTE_105_BIG_PEARL (FLAG_HIDDEN_ITEMS_START + 0x6F)
#define FLAG_UNUSED_0x264 0x264 // Unused Flag
#define FLAG_UNUSED_0x265 0x265 // Unused Flag
#define FLAG_UNUSED_0x266 0x266 // Unused Flag
#define FLAG_UNUSED_0x267 0x267 // Unused Flag
#define FLAG_UNUSED_0x268 0x268 // Unused Flag
#define FLAG_UNUSED_0x269 0x269 // Unused Flag
#define FLAG_UNUSED_0x26A 0x26A // Unused Flag
#define FLAG_UNUSED_0x26B 0x26B // Unused Flag
#define FLAG_UNUSED_0x26C 0x26C // Unused Flag
#define FLAG_UNUSED_0x26D 0x26D // Unused Flag
#define FLAG_UNUSED_0x26E 0x26E // Unused Flag
#define FLAG_UNUSED_0x26F 0x26F // Unused Flag
#define FLAG_UNUSED_0x270 0x270 // Unused Flag
#define FLAG_UNUSED_0x271 0x271 // Unused Flag
#define FLAG_UNUSED_0x272 0x272 // Unused Flag
#define FLAG_UNUSED_0x273 0x273 // Unused Flag
#define FLAG_UNUSED_0x274 0x274 // Unused Flag
#define FLAG_UNUSED_0x275 0x275 // Unused Flag
#define FLAG_UNUSED_0x276 0x276 // Unused Flag
#define FLAG_UNUSED_0x277 0x277 // Unused Flag
#define FLAG_UNUSED_0x278 0x278 // Unused Flag
#define FLAG_UNUSED_0x279 0x279 // Unused Flag
#define FLAG_UNUSED_0x27A 0x27A // Unused Flag
#define FLAG_UNUSED_0x27B 0x27B // Unused Flag
#define FLAG_UNUSED_0x27C 0x27C // Unused Flag
#define FLAG_UNUSED_0x27D 0x27D // Unused Flag
#define FLAG_UNUSED_0x27E 0x27E // Unused Flag
#define FLAG_UNUSED_0x27F 0x27F // Unused Flag
#define FLAG_UNUSED_0x280 0x280 // Unused Flag
#define FLAG_UNUSED_0x281 0x281 // Unused Flag
#define FLAG_UNUSED_0x282 0x282 // Unused Flag
#define FLAG_UNUSED_0x283 0x283 // Unused Flag
#define FLAG_UNUSED_0x284 0x284 // Unused Flag
#define FLAG_UNUSED_0x285 0x285 // Unused Flag
#define FLAG_UNUSED_0x286 0x286 // Unused Flag
#define FLAG_UNUSED_0x287 0x287 // Unused Flag
#define FLAG_UNUSED_0x288 0x288 // Unused Flag
#define FLAG_UNUSED_0x289 0x289 // Unused Flag
#define FLAG_UNUSED_0x28A 0x28A // Unused Flag
#define FLAG_UNUSED_0x28B 0x28B // Unused Flag
#define FLAG_UNUSED_0x28C 0x28C // Unused Flag
#define FLAG_UNUSED_0x28D 0x28D // Unused Flag
#define FLAG_UNUSED_0x28E 0x28E // Unused Flag
#define FLAG_UNUSED_0x28F 0x28F // Unused Flag
#define FLAG_UNUSED_0x290 0x290 // Unused Flag
#define FLAG_UNUSED_0x291 0x291 // Unused Flag
#define FLAG_UNUSED_0x292 0x292 // Unused Flag
#define FLAG_UNUSED_0x293 0x293 // Unused Flag
#define FLAG_UNUSED_0x294 0x294 // Unused Flag
#define FLAG_UNUSED_0x295 0x295 // Unused Flag
#define FLAG_UNUSED_0x296 0x296 // Unused Flag
#define FLAG_UNUSED_0x297 0x297 // Unused Flag
#define FLAG_UNUSED_0x298 0x298 // Unused Flag
#define FLAG_UNUSED_0x299 0x299 // Unused Flag
#define FLAG_UNUSED_0x29A 0x29A // Unused Flag
#define FLAG_UNUSED_0x29B 0x29B // Unused Flag
#define FLAG_UNUSED_0x29C 0x29C // Unused Flag
#define FLAG_UNUSED_0x29D 0x29D // Unused Flag
#define FLAG_UNUSED_0x29E 0x29E // Unused Flag
#define FLAG_UNUSED_0x29F 0x29F // Unused Flag
#define FLAG_UNUSED_0x2A0 0x2A0 // Unused Flag
#define FLAG_UNUSED_0x2A1 0x2A1 // Unused Flag
#define FLAG_UNUSED_0x2A2 0x2A2 // Unused Flag
#define FLAG_UNUSED_0x2A3 0x2A3 // Unused Flag
#define FLAG_UNUSED_0x2A4 0x2A4 // Unused Flag
#define FLAG_UNUSED_0x2A5 0x2A5 // Unused Flag
#define FLAG_UNUSED_0x2A6 0x2A6 // Unused Flag
#define FLAG_UNUSED_0x2A7 0x2A7 // Unused Flag
#define FLAG_UNUSED_0x2A8 0x2A8 // Unused Flag
#define FLAG_UNUSED_0x2A9 0x2A9 // Unused Flag
#define FLAG_UNUSED_0x2AA 0x2AA // Unused Flag
#define FLAG_UNUSED_0x2AB 0x2AB // Unused Flag
#define FLAG_UNUSED_0x2AC 0x2AC // Unused Flag
#define FLAG_UNUSED_0x2AD 0x2AD // Unused Flag
#define FLAG_UNUSED_0x2AE 0x2AE // Unused Flag
#define FLAG_UNUSED_0x2AF 0x2AF // Unused Flag
#define FLAG_UNUSED_0x2B0 0x2B0 // Unused Flag
#define FLAG_UNUSED_0x2B1 0x2B1 // Unused Flag
#define FLAG_UNUSED_0x2B2 0x2B2 // Unused Flag
#define FLAG_UNUSED_0x2B3 0x2B3 // Unused Flag
#define FLAG_UNUSED_0x2B4 0x2B4 // Unused Flag
#define FLAG_UNUSED_0x2B5 0x2B5 // Unused Flag
#define FLAG_UNUSED_0x2B6 0x2B6 // Unused Flag
#define FLAG_UNUSED_0x2B7 0x2B7 // Unused Flag
#define FLAG_UNUSED_0x2B8 0x2B8 // Unused Flag
#define FLAG_UNUSED_0x2B9 0x2B9 // Unused Flag
#define FLAG_UNUSED_0x2BA 0x2BA // Unused Flag
#define FLAG_UNUSED_0x2BB 0x2BB // Unused Flag
// Event Flags
#define FLAG_HIDE_ROUTE_101_BIRCH_STARTERS_BAG 0x2BC
#define FLAG_HIDE_APPRENTICE 0x2BD
#define FLAG_HIDE_POKEMON_CENTER_2F_MYSTERY_GIFT_MAN 0x2BE
#define FLAG_HIDE_UNION_ROOM_PLAYER_1 0x2BF
#define FLAG_HIDE_UNION_ROOM_PLAYER_2 0x2C0
#define FLAG_HIDE_UNION_ROOM_PLAYER_3 0x2C1
#define FLAG_HIDE_UNION_ROOM_PLAYER_4 0x2C2
#define FLAG_HIDE_UNION_ROOM_PLAYER_5 0x2C3
#define FLAG_HIDE_UNION_ROOM_PLAYER_6 0x2C4
#define FLAG_HIDE_UNION_ROOM_PLAYER_7 0x2C5
#define FLAG_HIDE_UNION_ROOM_PLAYER_8 0x2C6
#define FLAG_HIDE_BATTLE_TOWER_MULTI_BATTLE_PARTNER_1 0x2C7
#define FLAG_HIDE_BATTLE_TOWER_MULTI_BATTLE_PARTNER_2 0x2C8
#define FLAG_HIDE_BATTLE_TOWER_MULTI_BATTLE_PARTNER_3 0x2C9
#define FLAG_HIDE_BATTLE_TOWER_MULTI_BATTLE_PARTNER_4 0x2CA
#define FLAG_HIDE_BATTLE_TOWER_MULTI_BATTLE_PARTNER_5 0x2CB
#define FLAG_HIDE_BATTLE_TOWER_MULTI_BATTLE_PARTNER_6 0x2CC
#define FLAG_HIDE_SAFARI_ZONE_SOUTH_CONSTRUCTION_WORKERS 0x2CD
#define FLAG_HIDE_MEW 0x2CE
#define FLAG_HIDE_ROUTE_104_RIVAL 0x2CF
#define FLAG_HIDE_ROUTE_101_BIRCH_ZIGZAGOON_BATTLE 0x2D0
#define FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_BIRCH 0x2D1
#define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_RIVAL_BEDROOM 0x2D2
#define FLAG_HIDE_ROUTE_103_RIVAL 0x2D3
#define FLAG_HIDE_PETALBURG_WOODS_DEVON_EMPLOYEE 0x2D4
#define FLAG_HIDE_PETALBURG_WOODS_AQUA_GRUNT 0x2D5
#define FLAG_HIDE_PETALBURG_CITY_WALLY 0x2D6
#define FLAG_HIDE_MOSSDEEP_CITY_STEVENS_HOUSE_INVISIBLE_NINJA_BOY 0x2D7
#define FLAG_HIDE_PETALBURG_CITY_WALLYS_MOM 0x2D8
#define FLAG_UNUSED_0x2D9 0x2D9 // Unused Flag
#define FLAG_HIDE_LILYCOVE_FAN_CLUB_INTERVIEWER 0x2DA
#define FLAG_HIDE_RUSTBORO_CITY_AQUA_GRUNT 0x2DB
#define FLAG_HIDE_RUSTBORO_CITY_DEVON_EMPLOYEE_1 0x2DC
#define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE_ASLEEP 0x2DD
#define FLAG_HIDE_PLAYERS_HOUSE_DAD 0x2DE
#define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_RIVAL_SIBLING 0x2DF
#define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_RIVAL_SIBLING 0x2E0
#define FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_MAGMA_NOTE 0x2E1
#define FLAG_HIDE_ROUTE_104_MR_BRINEY 0x2E2
#define FLAG_HIDE_BRINEYS_HOUSE_MR_BRINEY 0x2E3
#define FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN 0x2E4
#define FLAG_HIDE_ROUTE_109_MR_BRINEY 0x2E5
#define FLAG_HIDE_ROUTE_104_MR_BRINEY_BOAT 0x2E6
#define FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD_TOWN 0x2E7
#define FLAG_HIDE_ROUTE_109_MR_BRINEY_BOAT 0x2E8
#define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_BRENDAN 0x2E9
#define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_MAY 0x2EA
#define FLAG_HIDE_SAFARI_ZONE_SOUTH_EAST_EXPANSION 0x2EB
#define FLAG_HIDE_LILYCOVE_HARBOR_EVENT_TICKET_TAKER 0x2EC
#define FLAG_HIDE_SLATEPORT_CITY_SCOTT 0x2ED
#define FLAG_HIDE_ROUTE_101_ZIGZAGOON 0x2EE
#define FLAG_HIDE_VICTORY_ROAD_EXIT_WALLY 0x2EF
#define FLAG_HIDE_LITTLEROOT_TOWN_MOM_OUTSIDE 0x2F0
#define FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_1F_STEVEN 0x2F1
#define FLAG_HIDE_LITTLEROOT_TOWN_PLAYERS_HOUSE_VIGOROTH_1 0x2F2
#define FLAG_HIDE_LITTLEROOT_TOWN_PLAYERS_HOUSE_VIGOROTH_2 0x2F3
#define FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_1F_TEAM_MAGMA 0x2F4
#define FLAG_HIDE_LITTLEROOT_TOWN_PLAYERS_BEDROOM_MOM 0x2F5
#define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_MOM 0x2F6
#define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_MOM 0x2F7
#define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_RIVAL_BEDROOM 0x2F8
#define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_TRUCK 0x2F9
#define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_TRUCK 0x2FA
#define FLAG_HIDE_DEOXYS 0x2FB
#define FLAG_HIDE_BIRTH_ISLAND_DEOXYS_TRIANGLE 0x2FC
#define FLAG_HIDE_MAUVILLE_CITY_SCOTT 0x2FD
#define FLAG_HIDE_VERDANTURF_TOWN_SCOTT 0x2FE
#define FLAG_HIDE_FALLARBOR_TOWN_BATTLE_TENT_SCOTT 0x2FF
#define FLAG_HIDE_ROUTE_111_VICTOR_WINSTRATE 0x300
#define FLAG_HIDE_ROUTE_111_VICTORIA_WINSTRATE 0x301
#define FLAG_HIDE_ROUTE_111_VIVI_WINSTRATE 0x302
#define FLAG_HIDE_ROUTE_111_VICKY_WINSTRATE 0x303
#define FLAG_HIDE_PETALBURG_GYM_NORMAN 0x304
#define FLAG_HIDE_SKY_PILLAR_TOP_RAYQUAZA 0x305
#define FLAG_HIDE_LILYCOVE_CONTEST_HALL_CONTEST_ATTENDANT_1 0x306
#define FLAG_HIDE_LILYCOVE_MUSEUM_CURATOR 0x307
#define FLAG_HIDE_LILYCOVE_MUSEUM_PATRON_1 0x308
#define FLAG_HIDE_LILYCOVE_MUSEUM_PATRON_2 0x309
#define FLAG_HIDE_LILYCOVE_MUSEUM_PATRON_3 0x30A
#define FLAG_HIDE_LILYCOVE_MUSEUM_PATRON_4 0x30B
#define FLAG_HIDE_LILYCOVE_MUSEUM_TOURISTS 0x30C
#define FLAG_HIDE_PETALBURG_GYM_GREETER 0x30D
#define FLAG_HIDE_MARINE_CAVE_KYOGRE 0x30E
#define FLAG_HIDE_TERRA_CAVE_GROUDON 0x30F
#define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_RIVAL_MOM 0x310
#define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_RIVAL_MOM 0x311
#define FLAG_HIDE_ROUTE_119_SCOTT 0x312
#define FLAG_HIDE_LILYCOVE_MOTEL_SCOTT 0x313
#define FLAG_HIDE_MOSSDEEP_CITY_SCOTT 0x314
#define FLAG_HIDE_FANCLUB_OLD_LADY 0x315
#define FLAG_HIDE_FANCLUB_BOY 0x316
#define FLAG_HIDE_FANCLUB_LITTLE_BOY 0x317
#define FLAG_HIDE_FANCLUB_LADY 0x318
#define FLAG_HIDE_EVER_GRANDE_POKEMON_CENTER_1F_SCOTT 0x319
#define FLAG_HIDE_LITTLEROOT_TOWN_RIVAL 0x31A
#define FLAG_HIDE_LITTLEROOT_TOWN_BIRCH 0x31B
#define FLAG_HIDE_ROUTE_111_GABBY_AND_TY_1 0x31C
#define FLAG_HIDE_ROUTE_118_GABBY_AND_TY_1 0x31D
#define FLAG_HIDE_ROUTE_120_GABBY_AND_TY_1 0x31E
#define FLAG_HIDE_ROUTE_111_GABBY_AND_TY_3 0x31F
#define FLAG_HIDE_LUGIA 0x320
#define FLAG_HIDE_HO_OH 0x321
#define FLAG_HIDE_LILYCOVE_CONTEST_HALL_REPORTER 0x322
#define FLAG_HIDE_SLATEPORT_CITY_CONTEST_REPORTER 0x323
#define FLAG_HIDE_MAUVILLE_CITY_WALLY 0x324
#define FLAG_HIDE_MAUVILLE_CITY_WALLYS_UNCLE 0x325
#define FLAG_HIDE_VERDANTURF_TOWN_WANDAS_HOUSE_WALLY 0x326
#define FLAG_HIDE_RUSTURF_TUNNEL_WANDAS_BOYFRIEND 0x327
#define FLAG_HIDE_VERDANTURF_TOWN_WANDAS_HOUSE_WANDAS_BOYFRIEND 0x328
#define FLAG_HIDE_VERDANTURF_TOWN_WANDAS_HOUSE_WALLYS_UNCLE 0x329
#define FLAG_HIDE_SS_TIDAL_CORRIDOR_SCOTT 0x32A
#define FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_POKEBALL_CYNDAQUIL 0x32B
#define FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_POKEBALL_TOTODILE 0x32C
#define FLAG_HIDE_ROUTE_116_DROPPED_GLASSES_MAN 0x32D
#define FLAG_HIDE_RUSTBORO_CITY_RIVAL 0x32E
#define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F_SWABLU_DOLL 0x32F
#define FLAG_HIDE_SOOTOPOLIS_CITY_WALLACE 0x330
#define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F_POKE_BALL 0x331
#define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_2F_POKE_BALL 0x332
#define FLAG_HIDE_ROUTE_112_TEAM_MAGMA 0x333
#define FLAG_HIDE_CAVE_OF_ORIGIN_B1F_WALLACE 0x334
#define FLAG_HIDE_AQUA_HIDEOUT_1F_GRUNT_1_BLOCKING_ENTRANCE 0x335
#define FLAG_HIDE_AQUA_HIDEOUT_1F_GRUNT_2_BLOCKING_ENTRANCE 0x336
#define FLAG_HIDE_MOSSDEEP_CITY_TEAM_MAGMA 0x337
#define FLAG_HIDE_PETALBURG_GYM_WALLYS_DAD 0x338
#define FLAG_HIDE_LEGEND_MON_CAVE_OF_ORIGIN 0x339 // Unused, leftover from R/S
#define FLAG_HIDE_SOOTOPOLIS_CITY_ARCHIE 0x33A
#define FLAG_HIDE_SOOTOPOLIS_CITY_MAXIE 0x33B
#define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_ARCHIE 0x33C
#define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_MAXIE 0x33D
#define FLAG_HIDE_PETALBURG_CITY_WALLYS_DAD 0x33E
#define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_MAGMA_GRUNTS 0x33F
#define FLAG_HIDE_LILYCOVE_CONTEST_HALL_BLEND_MASTER 0x340
#define FLAG_HIDE_GRANITE_CAVE_STEVEN 0x341
#define FLAG_HIDE_ROUTE_128_STEVEN 0x342
#define FLAG_HIDE_SLATEPORT_CITY_GABBY_AND_TY 0x343
#define FLAG_HIDE_BATTLE_FRONTIER_RECEPTION_GATE_SCOTT 0x344
#define FLAG_HIDE_ROUTE_110_BIRCH 0x345
#define FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_POKEBALL_CHIKORITA 0x346
#define FLAG_HIDE_SOOTOPOLIS_CITY_MAN_1 0x347
#define FLAG_HIDE_SLATEPORT_CITY_CAPTAIN_STERN 0x348
#define FLAG_HIDE_SLATEPORT_CITY_HARBOR_CAPTAIN_STERN 0x349
#define FLAG_HIDE_BATTLE_FRONTIER_SUDOWOODO 0x34A
#define FLAG_HIDE_ROUTE_111_ROCK_SMASH_TIP_GUY 0x34B
#define FLAG_HIDE_RUSTBORO_CITY_SCIENTIST 0x34C
#define FLAG_HIDE_SLATEPORT_CITY_HARBOR_AQUA_GRUNT 0x34D
#define FLAG_HIDE_SLATEPORT_CITY_HARBOR_ARCHIE 0x34E
#define FLAG_HIDE_JAGGED_PASS_MAGMA_GUARD 0x34F
#define FLAG_HIDE_SLATEPORT_CITY_HARBOR_SUBMARINE_SHADOW 0x350
#define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_2F_PICHU_DOLL 0x351
#define FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON_ASLEEP 0x352
#define FLAG_HIDE_ROUTE_119_RIVAL 0x353
#define FLAG_HIDE_LILYCOVE_CITY_AQUA_GRUNTS 0x354
#define FLAG_HIDE_MAGMA_HIDEOUT_4F_GROUDON 0x355
#define FLAG_HIDE_SOOTOPOLIS_CITY_RESIDENTS 0x356
#define FLAG_HIDE_SKY_PILLAR_WALLACE 0x357
#define FLAG_HIDE_MT_PYRE_SUMMIT_MAXIE 0x358
#define FLAG_HIDE_MAGMA_HIDEOUT_GRUNTS 0x359
#define FLAG_HIDE_VICTORY_ROAD_ENTRANCE_WALLY 0x35A
#define FLAG_HIDE_SEAFLOOR_CAVERN_ROOM_9_KYOGRE 0x35B
#define FLAG_HIDE_SLATEPORT_CITY_HARBOR_SS_TIDAL 0x35C
#define FLAG_HIDE_LILYCOVE_HARBOR_SSTIDAL 0x35D
#define FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_2F_TEAM_MAGMA 0x35E
#define FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_2F_STEVEN 0x35F
#define FLAG_HIDE_BATTLE_TOWER_MULTI_BATTLE_PARTNER_ALT_1 0x360
#define FLAG_HIDE_BATTLE_TOWER_MULTI_BATTLE_PARTNER_ALT_2 0x361
#define FLAG_HIDE_PETALBURG_GYM_WALLY 0x362
#define FLAG_UNKNOWN_0x363 0x363 // Set, however has no purpose.
#define FLAG_HIDE_LITTLEROOT_TOWN_FAT_MAN 0x364
#define FLAG_HIDE_SLATEPORT_CITY_STERNS_SHIPYARD_MR_BRINEY 0x365
#define FLAG_HIDE_LANETTES_HOUSE_LANETTE 0x366
#define FLAG_HIDE_FALLORBOR_POKEMON_CENTER_LANETTE 0x367
#define FLAG_HIDE_TRICK_HOUSE_ENTRANCE_MAN 0x368
#define FLAG_HIDE_LILYCOVE_CONTEST_HALL_BLEND_MASTER_REPLACEMENT 0x369
#define FLAG_HIDE_DESERT_UNDERPASS_FOSSIL 0x36A
#define FLAG_HIDE_ROUTE_111_PLAYER_DESCENT 0x36B
#define FLAG_HIDE_ROUTE_111_DESERT_FOSSIL 0x36C
#define FLAG_HIDE_MT_CHIMNEY_TRAINERS 0x36D
#define FLAG_HIDE_RUSTURF_TUNNEL_AQUA_GRUNT 0x36E
#define FLAG_HIDE_RUSTURF_TUNNEL_BRINEY 0x36F
#define FLAG_HIDE_RUSTURF_TUNNEL_PEEKO 0x370
#define FLAG_HIDE_BRINEYS_HOUSE_PEEKO 0x371
#define FLAG_HIDE_SLATEPORT_CITY_TEAM_AQUA 0x372
#define FLAG_HIDE_SLATEPORT_CITY_OCEANIC_MUSEUM_AQUA_GRUNTS 0x373
#define FLAG_HIDE_SLATEPORT_CITY_OCEANIC_MUSEUM_2F_AQUA_GRUNT_1 0x374
#define FLAG_HIDE_SLATEPORT_CITY_OCEANIC_MUSEUM_2F_AQUA_GRUNT_2 0x375
#define FLAG_HIDE_SLATEPORT_CITY_OCEANIC_MUSEUM_2F_ARCHIE 0x376
#define FLAG_HIDE_SLATEPORT_CITY_OCEANIC_MUSEUM_2F_CAPTAIN_STERN 0x377
#define FLAG_HIDE_BATTLE_TOWER_OPPONENT 0x378
#define FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_RIVAL 0x379
#define FLAG_HIDE_ROUTE_119_TEAM_AQUA 0x37A
#define FLAG_HIDE_ROUTE_116_MR_BRINEY 0x37B
#define FLAG_HIDE_WEATHER_INSTITUTE_1F_WORKERS 0x37C
#define FLAG_HIDE_WEATHER_INSTITUTE_2F_WORKERS 0x37D
#define FLAG_HIDE_ROUTE_116_WANDAS_BOYFRIEND 0x37E
#define FLAG_HIDE_LILYCOVE_CONTEST_HALL_CONTEST_ATTENDANT_2 0x37F
#define FLAG_HIDE_LITTLEROOT_TOWN_BIRCHS_LAB_UNKNOWN_0x380 0x380
#define FLAG_HIDE_ROUTE_101_BIRCH 0x381
#define FLAG_HIDE_ROUTE_103_BIRCH 0x382
#define FLAG_HIDE_TRICK_HOUSE_END_MAN 0x383
#define FLAG_HIDE_ROUTE_110_TEAM_AQUA 0x384
#define FLAG_HIDE_ROUTE_118_GABBY_AND_TY_2 0x385
#define FLAG_HIDE_ROUTE_120_GABBY_AND_TY_2 0x386
#define FLAG_HIDE_ROUTE_111_GABBY_AND_TY_2 0x387
#define FLAG_HIDE_ROUTE_118_GABBY_AND_TY_3 0x388
#define FLAG_HIDE_SLATEPORT_CITY_HARBOR_PATRONS 0x389
#define FLAG_HIDE_ROUTE_104_WHITE_HERB_FLORIST 0x38A
#define FLAG_HIDE_FALLARBOR_AZURILL 0x38B
#define FLAG_HIDE_LILYCOVE_HARBOR_FERRY_ATTENDANT 0x38C
#define FLAG_HIDE_LILYCOVE_HARBOR_FERRY_SAILOR 0x38D
#define FLAG_HIDE_SOUTHERN_ISLAND_EON_STONE 0x38E
#define FLAG_HIDE_SOUTHERN_ISLAND_UNCHOSEN_EON_DUO_MON 0x38F
#define FLAG_HIDE_MAUVILLE_CITY_WATTSON 0x390
#define FLAG_HIDE_MAUVILLE_GYM_WATTSON 0x391
#define FLAG_HIDE_ROUTE_121_TEAM_AQUA_GRUNTS 0x392
#define FLAG_UNKNOWN_0x393 0x393 // Set, however has no purpose.
#define FLAG_HIDE_MT_PYRE_SUMMIT_ARCHIE 0x394
#define FLAG_HIDE_MT_PYRE_SUMMIT_TEAM_AQUA 0x395
#define FLAG_HIDE_BATTLE_TOWER_REPORTER 0x396
#define FLAG_HIDE_ROUTE_110_RIVAL 0x397
#define FLAG_HIDE_CHAMPIONS_ROOM_RIVAL 0x398
#define FLAG_HIDE_CHAMPIONS_ROOM_BIRCH 0x399
#define FLAG_HIDE_ROUTE_110_RIVAL_ON_BIKE 0x39A
#define FLAG_HIDE_ROUTE_119_RIVAL_ON_BIKE 0x39B
#define FLAG_HIDE_AQUA_HIDEOUT_GRUNTS 0x39C
#define FLAG_HIDE_LILYCOVE_MOTEL_GAME_DESIGNERS 0x39D
#define FLAG_HIDE_MT_CHIMNEY_TEAM_AQUA 0x39E
#define FLAG_HIDE_MT_CHIMNEY_TEAM_MAGMA 0x39F
#define FLAG_HIDE_FALLARBOR_HOUSE_PROF_COZMO 0x3A0
#define FLAG_HIDE_LAVARIDGE_TOWN_RIVAL 0x3A1
#define FLAG_HIDE_LAVARIDGE_TOWN_RIVAL_ON_BIKE 0x3A2
#define FLAG_HIDE_RUSTURF_TUNNEL_ROCK_1 0x3A3
#define FLAG_HIDE_RUSTURF_TUNNEL_ROCK_2 0x3A4
#define FLAG_HIDE_FORTREE_CITY_HOUSE_4_WINGULL 0x3A5
#define FLAG_HIDE_MOSSDEEP_CITY_HOUSE_2_WINGULL 0x3A6
#define FLAG_HIDE_REGIROCK 0x3A7
#define FLAG_HIDE_REGICE 0x3A8
#define FLAG_HIDE_REGISTEEL 0x3A9
#define FLAG_HIDE_METEOR_FALLS_TEAM_AQUA 0x3AA
#define FLAG_HIDE_METEOR_FALLS_TEAM_MAGMA 0x3AB
#define FLAG_HIDE_DEWFORD_HALL_SLUDGE_BOMB_MAN 0x3AC
#define FLAG_HIDE_SEAFLOOR_CAVERN_ENTRANCE_AQUA_GRUNT 0x3AD
#define FLAG_HIDE_METEOR_FALLS_1F_1R_COZMO 0x3AE
#define FLAG_HIDE_AQUA_HIDEOUT_B2F_SUBMARINE_SHADOW 0x3AF
#define FLAG_HIDE_ROUTE_128_ARCHIE 0x3B0
#define FLAG_HIDE_ROUTE_128_MAXIE 0x3B1
#define FLAG_HIDE_SEAFLOOR_CAVERN_AQUA_GRUNTS 0x3B2
#define FLAG_HIDE_ROUTE_116_DEVON_EMPLOYEE 0x3B3
#define FLAG_HIDE_SLATEPORT_CITY_TM_SALESMAN 0x3B4
#define FLAG_HIDE_RUSTBORO_CITY_DEVON_CORP_3F_EMPLOYEE 0x3B5
#define FLAG_HIDE_SS_TIDAL_CORRIDOR_MR_BRINEY 0x3B6
#define FLAG_HIDE_SS_TIDAL_ROOMS_SNATCH_GIVER 0x3B7
#define FLAG_RECEIVED_SHOAL_SALT_1 0x3B8
#define FLAG_RECEIVED_SHOAL_SALT_2 0x3B9
#define FLAG_RECEIVED_SHOAL_SALT_3 0x3BA
#define FLAG_RECEIVED_SHOAL_SALT_4 0x3BB
#define FLAG_RECEIVED_SHOAL_SHELL_1 0x3BC
#define FLAG_RECEIVED_SHOAL_SHELL_2 0x3BD
#define FLAG_RECEIVED_SHOAL_SHELL_3 0x3BE
#define FLAG_RECEIVED_SHOAL_SHELL_4 0x3BF
#define FLAG_HIDE_ROUTE_111_SECRET_POWER_MAN 0x3C0
#define FLAG_HIDE_SLATEPORT_MUSEUM_POPULATION 0x3C1
#define FLAG_HIDE_LILYCOVE_DEPARTMENT_STORE_ROOFTOP_SALE_WOMAN 0x3C2
#define FLAG_HIDE_MIRAGE_TOWER_ROOT_FOSSIL 0x3C3
#define FLAG_HIDE_MIRAGE_TOWER_CLAW_FOSSIL 0x3C4
#define FLAG_HIDE_SLATEPORT_CITY_OCEANIC_MUSEUM_FAMILIAR_AQUA_GRUNT 0x3C5
#define FLAG_HIDE_ROUTE_118_STEVEN 0x3C6
#define FLAG_HIDE_MOSSDEEP_CITY_STEVENS_HOUSE_STEVEN 0x3C7
#define FLAG_HIDE_MOSSDEEP_CITY_STEVENS_HOUSE_BELDUM_POKEBALL 0x3C8
#define FLAG_HIDE_FORTREE_CITY_KECLEON 0x3C9
#define FLAG_HIDE_ROUTE_120_KECLEON_BRIDGE 0x3CA
#define FLAG_HIDE_LILYCOVE_CITY_RIVAL 0x3CB
#define FLAG_HIDE_ROUTE_120_STEVEN 0x3CC
#define FLAG_HIDE_SOOTOPOLIS_CITY_STEVEN 0x3CD
#define FLAG_HIDE_NEW_MAUVILLE_VOLTORB_1 0x3CE
#define FLAG_HIDE_NEW_MAUVILLE_VOLTORB_2 0x3CF
#define FLAG_HIDE_NEW_MAUVILLE_VOLTORB_3 0x3D0
#define FLAG_HIDE_AQUA_HIDEOUT_B1F_ELECTRODE_1 0x3D1
#define FLAG_HIDE_AQUA_HIDEOUT_B1F_ELECTRODE_2 0x3D2
#define FLAG_HIDE_OLDALE_TOWN_RIVAL 0x3D3
#define FLAG_HIDE_UNDERWATER_SEA_FLOOR_CAVERN_STOLEN_SUBMARINE 0x3D4
#define FLAG_HIDE_ROUTE_120_KECLEON_BRIDGE_SHADOW 0x3D5
#define FLAG_HIDE_ROUTE_120_KECLEON_1 0x3D6
#define FLAG_HIDE_RUSTURF_TUNNEL_WANDA 0x3D7
#define FLAG_HIDE_VERDANTURF_TOWN_WANDAS_HOUSE_WANDA 0x3D8
#define FLAG_HIDE_ROUTE_120_KECLEON_2 0x3D9
#define FLAG_HIDE_ROUTE_120_KECLEON_3 0x3DA
#define FLAG_HIDE_ROUTE_120_KECLEON_4 0x3DB
#define FLAG_HIDE_ROUTE_120_KECLEON_5 0x3DC
#define FLAG_HIDE_ROUTE_119_KECLEON_1 0x3DD
#define FLAG_HIDE_ROUTE_119_KECLEON_2 0x3DE
#define FLAG_HIDE_ROUTE_101_BOY 0x3DF
#define FLAG_HIDE_WEATHER_INSTITUTE_2F_AQUA_GRUNT_M 0x3E0
#define FLAG_HIDE_LILYCOVE_POKEMON_CENTER_CONTEST_LADY_MON 0x3E1
#define FLAG_HIDE_MT_CHIMNEY_LAVA_COOKIE_LADY 0x3E2
#define FLAG_HIDE_PETALBURG_CITY_SCOTT 0x3E3
#define FLAG_HIDE_SOOTOPOLIS_CITY_RAYQUAZA 0x3E4
#define FLAG_HIDE_SOOTOPOLIS_CITY_KYOGRE 0x3E5
#define FLAG_HIDE_SOOTOPOLIS_CITY_GROUDON 0x3E6
#define FLAG_HIDE_RUSTBORO_CITY_POKEMON_SCHOOL_SCOTT 0x3E7
// Item Ball Flags
#define FLAG_ITEM_ROUTE_102_POTION 0x3E8
#define FLAG_ITEM_ROUTE_116_X_SPECIAL 0x3E9
#define FLAG_ITEM_ROUTE_104_PP_UP 0x3EA
#define FLAG_ITEM_ROUTE_105_IRON 0x3EB
#define FLAG_ITEM_ROUTE_106_PROTEIN 0x3EC
#define FLAG_ITEM_ROUTE_109_PP_UP 0x3ED
#define FLAG_ITEM_ROUTE_109_RARE_CANDY 0x3EE
#define FLAG_ITEM_ROUTE_110_DIRE_HIT 0x3EF
#define FLAG_ITEM_ROUTE_111_TM_37 0x3F0
#define FLAG_ITEM_ROUTE_111_STARDUST 0x3F1
#define FLAG_ITEM_ROUTE_111_HP_UP 0x3F2
#define FLAG_ITEM_ROUTE_112_NUGGET 0x3F3
#define FLAG_ITEM_ROUTE_113_MAX_ETHER 0x3F4
#define FLAG_ITEM_ROUTE_113_SUPER_REPEL 0x3F5
#define FLAG_ITEM_ROUTE_114_RARE_CANDY 0x3F6
#define FLAG_ITEM_ROUTE_114_PROTEIN 0x3F7
#define FLAG_ITEM_ROUTE_115_SUPER_POTION 0x3F8
#define FLAG_ITEM_ROUTE_115_TM_01 0x3F9
#define FLAG_ITEM_ROUTE_115_IRON 0x3FA
#define FLAG_ITEM_ROUTE_116_ETHER 0x3FB
#define FLAG_ITEM_ROUTE_116_REPEL 0x3FC
#define FLAG_ITEM_ROUTE_116_HP_UP 0x3FD
#define FLAG_ITEM_ROUTE_117_GREAT_BALL 0x3FE
#define FLAG_ITEM_ROUTE_117_REVIVE 0x3FF
#define FLAG_ITEM_ROUTE_119_SUPER_REPEL 0x400
#define FLAG_ITEM_ROUTE_119_ZINC 0x401
#define FLAG_ITEM_ROUTE_119_ELIXIR_1 0x402
#define FLAG_ITEM_ROUTE_119_LEAF_STONE 0x403
#define FLAG_ITEM_ROUTE_119_RARE_CANDY 0x404
#define FLAG_ITEM_ROUTE_119_HYPER_POTION_1 0x405
#define FLAG_ITEM_ROUTE_120_NUGGET 0x406
#define FLAG_ITEM_ROUTE_120_FULL_HEAL 0x407
#define FLAG_ITEM_ROUTE_123_CALCIUM 0x408
#define FLAG_ITEM_ROUTE_123_RARE_CANDY 0x409 // Unused Flag, leftover from R/S. In Emerald this is a hidden item and uses a different flag
#define FLAG_ITEM_ROUTE_127_ZINC 0x40A
#define FLAG_ITEM_ROUTE_127_CARBOS 0x40B
#define FLAG_ITEM_ROUTE_132_RARE_CANDY 0x40C
#define FLAG_ITEM_ROUTE_133_BIG_PEARL 0x40D
#define FLAG_ITEM_ROUTE_133_STAR_PIECE 0x40E
#define FLAG_ITEM_PETALBURG_CITY_MAX_REVIVE 0x40F
#define FLAG_ITEM_PETALBURG_CITY_ETHER 0x410
#define FLAG_ITEM_RUSTBORO_CITY_X_DEFEND 0x411
#define FLAG_ITEM_LILYCOVE_CITY_MAX_REPEL 0x412
#define FLAG_ITEM_MOSSDEEP_CITY_NET_BALL 0x413
#define FLAG_ITEM_METEOR_FALLS_1F_1R_TM_23 0x414
#define FLAG_ITEM_METEOR_FALLS_1F_1R_FULL_HEAL 0x415
#define FLAG_ITEM_METEOR_FALLS_1F_1R_MOON_STONE 0x416
#define FLAG_ITEM_METEOR_FALLS_1F_1R_PP_UP 0x417
#define FLAG_ITEM_RUSTURF_TUNNEL_POKE_BALL 0x418
#define FLAG_ITEM_RUSTURF_TUNNEL_MAX_ETHER 0x419
#define FLAG_ITEM_GRANITE_CAVE_1F_ESCAPE_ROPE 0x41A
#define FLAG_ITEM_GRANITE_CAVE_B1F_POKE_BALL 0x41B
#define FLAG_ITEM_MT_PYRE_5F_LAX_INCENSE 0x41C
#define FLAG_ITEM_GRANITE_CAVE_B2F_REPEL 0x41D
#define FLAG_ITEM_GRANITE_CAVE_B2F_RARE_CANDY 0x41E
#define FLAG_ITEM_PETALBURG_WOODS_X_ATTACK 0x41F
#define FLAG_ITEM_PETALBURG_WOODS_GREAT_BALL 0x420
#define FLAG_ITEM_ROUTE_104_POKE_BALL 0x421
#define FLAG_ITEM_PETALBURG_WOODS_ETHER 0x422
#define FLAG_ITEM_MAGMA_HIDEOUT_3F_3R_ECAPE_ROPE 0x423
#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_1_ORANGE_MAIL 0x424
#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_2_HARBOR_MAIL 0x425
#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_2_WAVE_MAIL 0x426
#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_3_SHADOW_MAIL 0x427
#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_3_WOOD_MAIL 0x428
#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_4_MECH_MAIL 0x429
#define FLAG_ITEM_ROUTE_124_YELLOW_SHARD 0x42A
#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_6_GLITTER_MAIL 0x42B
#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_7_TROPIC_MAIL 0x42C
#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_8_BEAD_MAIL 0x42D
#define FLAG_ITEM_JAGGED_PASS_BURN_HEAL 0x42E
#define FLAG_ITEM_AQUA_HIDEOUT_B1F_MAX_ELIXIR 0x42F
#define FLAG_ITEM_AQUA_HIDEOUT_B2F_NEST_BALL 0x430
#define FLAG_ITEM_MT_PYRE_EXTERIOR_MAX_POTION 0x431
#define FLAG_ITEM_MT_PYRE_EXTERIOR_TM_48 0x432
#define FLAG_ITEM_NEW_MAUVILLE_ULTRA_BALL 0x433
#define FLAG_ITEM_NEW_MAUVILLE_ESCAPE_ROPE 0x434
#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_6_LUXURY_BALL 0x435
#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_4_SCANNER 0x436
#define FLAG_ITEM_SCORCHED_SLAB_TM_11 0x437
#define FLAG_ITEM_METEOR_FALLS_B1F_2R_TM_02 0x438
#define FLAG_ITEM_SHOAL_CAVE_ENTRANCE_BIG_PEARL 0x439
#define FLAG_ITEM_SHOAL_CAVE_INNER_ROOM_RARE_CANDY 0x43A
#define FLAG_ITEM_SHOAL_CAVE_STAIRS_ROOM_ICE_HEAL 0x43B
#define FLAG_ITEM_VICTORY_ROAD_1F_MAX_ELIXIR 0x43C
#define FLAG_ITEM_VICTORY_ROAD_1F_PP_UP 0x43D
#define FLAG_ITEM_VICTORY_ROAD_B1F_TM_29 0x43E
#define FLAG_ITEM_VICTORY_ROAD_B1F_FULL_RESTORE 0x43F
#define FLAG_ITEM_VICTORY_ROAD_B2F_FULL_HEAL 0x440
#define FLAG_ITEM_MT_PYRE_6F_TM_30 0x441
#define FLAG_ITEM_SEAFLOOR_CAVERN_ROOM_9_TM_26 0x442
#define FLAG_ITEM_FIERY_PATH_TM06 0x443
#define FLAG_ITEM_ROUTE_124_RED_SHARD 0x444
#define FLAG_ITEM_ROUTE_124_BLUE_SHARD 0x445
#define FLAG_ITEM_SAFARI_ZONE_NORTH_WEST_TM_22 0x446
#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_1F_HARBOR_MAIL 0x447
#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_B1F_ESCAPE_ROPE 0x448
#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_2_B1F_DIVE_BALL 0x449
#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_B1F_TM_13 0x44A
#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_2_1F_REVIVE 0x44B
#define FLAG_ITEM_ABANDONED_SHIP_CAPTAINS_OFFICE_STORAGE_KEY 0x44C
#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_3_WATER_STONE 0x44D
#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_1_TM_18 0x44E
#define FLAG_ITEM_ROUTE_121_CARBOS 0x44F
#define FLAG_ITEM_ROUTE_123_ULTRA_BALL 0x450
#define FLAG_ITEM_ROUTE_126_GREEN_SHARD 0x451
#define FLAG_ITEM_ROUTE_119_HYPER_POTION_2 0x452
#define FLAG_ITEM_ROUTE_120_HYPER_POTION 0x453
#define FLAG_ITEM_ROUTE_120_NEST_BALL 0x454
#define FLAG_ITEM_ROUTE_123_ELIXIR 0x455
#define FLAG_ITEM_NEW_MAUVILLE_THUNDER_STONE 0x456
#define FLAG_ITEM_FIERY_PATH_FIRE_STONE 0x457
#define FLAG_ITEM_SHOAL_CAVE_ICE_ROOM_TM_07 0x458
#define FLAG_ITEM_SHOAL_CAVE_ICE_ROOM_NEVER_MELT_ICE 0x459
#define FLAG_ITEM_ROUTE_103_GUARD_SPEC 0x45A
#define FLAG_ITEM_ROUTE_104_X_ACCURACY 0x45B
#define FLAG_ITEM_MAUVILLE_CITY_X_SPEED 0x45C
#define FLAG_ITEM_PETALBURD_WOODS_PARALYZE_HEAL 0x45D
#define FLAG_ITEM_ROUTE_115_GREAT_BALL 0x45E
#define FLAG_ITEM_SAFARI_ZONE_NORTH_CALCIUM 0x45F
#define FLAG_ITEM_MT_PYRE_3F_SUPER_REPEL 0x460
#define FLAG_ITEM_ROUTE_118_HYPER_POTION 0x461
#define FLAG_ITEM_NEW_MAUVILLE_FULL_HEAL 0x462
#define FLAG_ITEM_NEW_MAUVILLE_PARALYZE_HEAL 0x463
#define FLAG_ITEM_AQUA_HIDEOUT_B1F_MASTER_BALL 0x464
#define FLAG_ITEM_OLD_MAGMA_HIDEOUT_B1F_MASTER_BALL 0x465 // Unused Flag, leftover from the Ruby Magma hideout
#define FLAG_ITEM_OLD_MAGMA_HIDEOUT_B1F_MAX_ELIXIR 0x466 // Unused Flag, leftover from the Ruby Magma hideout
#define FLAG_ITEM_OLD_MAGMA_HIDEOUT_B2F_NEST_BALL 0x467 // Unused Flag, leftover from the Ruby Magma hideout
#define FLAG_UNUSED_0x468 0x468 // Unused Flag
#define FLAG_ITEM_MT_PYRE_2F_ULTRA_BALL 0x469
#define FLAG_ITEM_MT_PYRE_4F_SEA_INCENSE 0x46A
#define FLAG_ITEM_SAFARI_ZONE_SOUTH_WEST_MAX_REVIVE 0x46B
#define FLAG_ITEM_AQUA_HIDEOUT_B1F_NUGGET 0x46C
#define FLAG_ITEM_MOSSDEEP_STEVENS_HOUSE_HM08 0x46D // Unused Flag, leftover from R/S. HM08 is given to the player directly in Emerald
#define FLAG_ITEM_ROUTE_119_NUGGET 0x46E
#define FLAG_ITEM_ROUTE_104_POTION 0x46F
#define FLAG_UNUSED_0x470 0x470 // Unused Flag
#define FLAG_ITEM_ROUTE_103_PP_UP 0x471
#define FLAG_UNUSED_0x472 0x472 // Unused Flag
#define FLAG_ITEM_ROUTE_108_STAR_PIECE 0x473
#define FLAG_ITEM_ROUTE_109_POTION 0x474
#define FLAG_ITEM_ROUTE_110_ELIXIR 0x475
#define FLAG_ITEM_ROUTE_111_ELIXIR 0x476
#define FLAG_ITEM_ROUTE_113_HYPER_POTION 0x477
#define FLAG_ITEM_ROUTE_115_HEAL_POWDER 0x478
#define FLAG_UNUSED_0x479 0x479 // Unused Flag
#define FLAG_ITEM_ROUTE_116_POTION 0x47A
#define FLAG_ITEM_ROUTE_119_ELIXIR_2 0x47B
#define FLAG_ITEM_ROUTE_120_REVIVE 0x47C
#define FLAG_ITEM_ROUTE_121_REVIVE 0x47D
#define FLAG_ITEM_ROUTE_121_ZINC 0x47E
#define FLAG_ITEM_MAGMA_HIDEOUT_1F_RARE_CANDY 0x47F
#define FLAG_ITEM_ROUTE_123_PP_UP 0x480
#define FLAG_ITEM_ROUTE_123_REVIVAL_HERB 0x481
#define FLAG_ITEM_ROUTE_125_BIG_PEARL 0x482
#define FLAG_ITEM_ROUTE_127_RARE_CANDY 0x483
#define FLAG_ITEM_ROUTE_132_PROTEIN 0x484
#define FLAG_ITEM_ROUTE_133_MAX_REVIVE 0x485
#define FLAG_ITEM_ROUTE_134_CARBOS 0x486
#define FLAG_ITEM_ROUTE_134_STAR_PIECE 0x487
#define FLAG_ITEM_ROUTE_114_ENERGY_POWDER 0x488
#define FLAG_ITEM_ROUTE_115_PP_UP 0x489
#define FLAG_ITEM_ARTISAN_CAVE_B1F_HP_UP 0x48A
#define FLAG_ITEM_ARTISAN_CAVE_1F_CARBOS 0x48B
#define FLAG_ITEM_MAGMA_HIDEOUT_2F_2R_MAX_ELIXIR 0x48C
#define FLAG_ITEM_MAGMA_HIDEOUT_2F_2R_FULL_RESTORE 0x48D
#define FLAG_ITEM_MAGMA_HIDEOUT_3F_1R_NUGGET 0x48E
#define FLAG_ITEM_MAGMA_HIDEOUT_3F_2R_PP_MAX 0x48F
#define FLAG_ITEM_MAGMA_HIDEOUT_4F_MAX_REVIVE 0x490
#define FLAG_ITEM_SAFARI_ZONE_NORTH_EAST_NUGGET 0x491
#define FLAG_ITEM_SAFARI_ZONE_SOUTH_EAST_BIG_PEARL 0x492
#define FLAG_UNUSED_0x493 0x493 // Unused Flag
#define FLAG_UNUSED_0x494 0x494 // Unused Flag
#define FLAG_UNUSED_0x495 0x495 // Unused Flag
#define FLAG_UNUSED_0x496 0x496 // Unused Flag
#define FLAG_UNUSED_0x497 0x497 // Unused Flag
#define FLAG_UNUSED_0x498 0x498 // Unused Flag
#define FLAG_UNUSED_0x499 0x499 // Unused Flag
#define FLAG_UNUSED_0x49A 0x49A // Unused Flag
#define FLAG_UNUSED_0x49B 0x49B // Unused Flag
#define FLAG_UNUSED_0x49C 0x49C // Unused Flag
#define FLAG_UNUSED_0x49D 0x49D // Unused Flag
#define FLAG_UNUSED_0x49E 0x49E // Unused Flag
#define FLAG_UNUSED_0x49F 0x49F // Unused Flag
#define FLAG_UNUSED_0x4A0 0x4A0 // Unused Flag
#define FLAG_UNUSED_0x4A1 0x4A1 // Unused Flag
#define FLAG_UNUSED_0x4A2 0x4A2 // Unused Flag
#define FLAG_UNUSED_0x4A3 0x4A3 // Unused Flag
#define FLAG_UNUSED_0x4A4 0x4A4 // Unused Flag
#define FLAG_UNUSED_0x4A5 0x4A5 // Unused Flag
#define FLAG_UNUSED_0x4A6 0x4A6 // Unused Flag
#define FLAG_UNUSED_0x4A7 0x4A7 // Unused Flag
#define FLAG_UNUSED_0x4A8 0x4A8 // Unused Flag
#define FLAG_UNUSED_0x4A9 0x4A9 // Unused Flag
#define FLAG_UNUSED_0x4AA 0x4AA // Unused Flag
#define FLAG_UNUSED_0x4AB 0x4AB // Unused Flag
#define FLAG_UNUSED_0x4AC 0x4AC // Unused Flag
#define FLAG_UNUSED_0x4AD 0x4AD // Unused Flag
#define FLAG_UNUSED_0x4AE 0x4AE // Unused Flag
#define FLAG_UNUSED_0x4AF 0x4AF // Unused Flag
#define FLAG_UNUSED_0x4B0 0x4B0 // Unused Flag
#define FLAG_UNUSED_0x4B1 0x4B1 // Unused Flag
#define FLAG_UNUSED_0x4B2 0x4B2 // Unused Flag
#define FLAG_UNUSED_0x4B3 0x4B3 // Unused Flag
#define FLAG_UNUSED_0x4B4 0x4B4 // Unused Flag
#define FLAG_UNUSED_0x4B5 0x4B5 // Unused Flag
#define FLAG_UNUSED_0x4B6 0x4B6 // Unused Flag
#define FLAG_UNUSED_0x4B7 0x4B7 // Unused Flag
#define FLAG_UNUSED_0x4B8 0x4B8 // Unused Flag
#define FLAG_UNUSED_0x4B9 0x4B9 // Unused Flag
#define FLAG_UNUSED_0x4BA 0x4BA // Unused Flag
#define FLAG_UNUSED_0x4BB 0x4BB // Unused Flag
#define FLAG_UNUSED_0x4BC 0x4BC // Unused Flag
#define FLAG_UNUSED_0x4BD 0x4BD // Unused Flag
#define FLAG_UNUSED_0x4BE 0x4BE // Unused Flag
#define FLAG_UNUSED_0x4BF 0x4BF // Unused Flag
#define FLAG_UNUSED_0x4C0 0x4C0 // Unused Flag
#define FLAG_UNUSED_0x4C1 0x4C1 // Unused Flag
#define FLAG_UNUSED_0x4C2 0x4C2 // Unused Flag
#define FLAG_UNUSED_0x4C3 0x4C3 // Unused Flag
#define FLAG_UNUSED_0x4C4 0x4C4 // Unused Flag
#define FLAG_UNUSED_0x4C5 0x4C5 // Unused Flag
#define FLAG_UNUSED_0x4C6 0x4C6 // Unused Flag
#define FLAG_UNUSED_0x4C7 0x4C7 // Unused Flag
#define FLAG_UNUSED_0x4C8 0x4C8 // Unused Flag
#define FLAG_UNUSED_0x4C9 0x4C9 // Unused Flag
#define FLAG_UNUSED_0x4CA 0x4CA // Unused Flag
#define FLAG_UNUSED_0x4CB 0x4CB // Unused Flag
#define FLAG_UNUSED_0x4CC 0x4CC // Unused Flag
#define FLAG_UNUSED_0x4CD 0x4CD // Unused Flag
#define FLAG_UNUSED_0x4CE 0x4CE // Unused Flag
#define FLAG_UNUSED_0x4CF 0x4CF // Unused Flag
#define FLAG_UNUSED_0x4D0 0x4D0 // Unused Flag
#define FLAG_UNUSED_0x4D1 0x4D1 // Unused Flag
#define FLAG_UNUSED_0x4D2 0x4D2 // Unused Flag
#define FLAG_UNUSED_0x4D3 0x4D3 // Unused Flag
#define FLAG_UNUSED_0x4D4 0x4D4 // Unused Flag
#define FLAG_UNUSED_0x4D5 0x4D5 // Unused Flag
#define FLAG_UNUSED_0x4D6 0x4D6 // Unused Flag
#define FLAG_UNUSED_0x4D7 0x4D7 // Unused Flag
#define FLAG_UNUSED_0x4D8 0x4D8 // Unused Flag
#define FLAG_UNUSED_0x4D9 0x4D9 // Unused Flag
#define FLAG_UNUSED_0x4DA 0x4DA // Unused Flag
#define FLAG_UNUSED_0x4DB 0x4DB // Unused Flag
#define FLAG_UNUSED_0x4DC 0x4DC // Unused Flag
#define FLAG_UNUSED_0x4DD 0x4DD // Unused Flag
#define FLAG_UNUSED_0x4DE 0x4DE // Unused Flag
#define FLAG_UNUSED_0x4DF 0x4DF // Unused Flag
#define FLAG_UNUSED_0x4E0 0x4E0 // Unused Flag
#define FLAG_UNUSED_0x4E1 0x4E1 // Unused Flag
#define FLAG_UNUSED_0x4E2 0x4E2 // Unused Flag
#define FLAG_UNUSED_0x4E3 0x4E3 // Unused Flag
#define FLAG_UNUSED_0x4E4 0x4E4 // Unused Flag
#define FLAG_UNUSED_0x4E5 0x4E5 // Unused Flag
#define FLAG_UNUSED_0x4E6 0x4E6 // Unused Flag
#define FLAG_UNUSED_0x4E7 0x4E7 // Unused Flag
#define FLAG_UNUSED_0x4E8 0x4E8 // Unused Flag
#define FLAG_UNUSED_0x4E9 0x4E9 // Unused Flag
#define FLAG_UNUSED_0x4EA 0x4EA // Unused Flag
#define FLAG_UNUSED_0x4EB 0x4EB // Unused Flag
#define FLAG_UNUSED_0x4EC 0x4EC // Unused Flag
#define FLAG_UNUSED_0x4ED 0x4ED // Unused Flag
#define FLAG_UNUSED_0x4EE 0x4EE // Unused Flag
#define FLAG_UNUSED_0x4EF 0x4EF // Unused Flag
#define FLAG_DEFEATED_RUSTBORO_GYM 0x4F0
#define FLAG_DEFEATED_DEWFORD_GYM 0x4F1
#define FLAG_DEFEATED_MAUVILLE_GYM 0x4F2
#define FLAG_DEFEATED_LAVARIDGE_GYM 0x4F3
#define FLAG_DEFEATED_PETALBURG_GYM 0x4F4
#define FLAG_DEFEATED_FORTREE_GYM 0x4F5
#define FLAG_DEFEATED_MOSSDEEP_GYM 0x4F6
#define FLAG_DEFEATED_SOOTOPOLIS_GYM 0x4F7
#define FLAG_DEFEATED_METEOR_FALLS_STEVEN 0x4F8
#define FLAG_UNUSED_0x4F9 0x4F9 // Unused Flag
#define FLAG_UNUSED_0x4FA 0x4FA // Unused Flag
#define FLAG_DEFEATED_ELITE_4_SIDNEY 0x4FB
#define FLAG_DEFEATED_ELITE_4_PHOEBE 0x4FC
#define FLAG_DEFEATED_ELITE_4_GLACIA 0x4FD
#define FLAG_DEFEATED_ELITE_4_DRAKE 0x4FE
#define FLAG_UNUSED_0x4FF 0x4FF // Unused Flag
// Trainer Flags
// Trainer flags occupy 0x500 - 0x85F, the last 9 of which are unused
// See constants/opponents.h. The values there + FLAG_TRAINER_FLAG_START are the flag IDs
#define TRAINER_FLAGS_START 0x500
#define TRAINER_FLAGS_END (TRAINER_FLAGS_START + MAX_TRAINERS_COUNT - 1) // 0x85F
// System Flags
#define SYSTEM_FLAGS (TRAINER_FLAGS_END + 1) // 0x860
#define FLAG_SYS_POKEMON_GET (SYSTEM_FLAGS + 0x0) // FLAG_0x860
#define FLAG_SYS_POKEDEX_GET (SYSTEM_FLAGS + 0x1)
#define FLAG_SYS_POKENAV_GET (SYSTEM_FLAGS + 0x2)
#define FLAG_UNUSED_0x863 (SYSTEM_FLAGS + 0x3) // Unused Flag
#define FLAG_SYS_GAME_CLEAR (SYSTEM_FLAGS + 0x4)
#define FLAG_SYS_CHAT_USED (SYSTEM_FLAGS + 0x5)
#define FLAG_SYS_HIPSTER_MEET (SYSTEM_FLAGS + 0x6)
// Badges
#define FLAG_BADGE01_GET (SYSTEM_FLAGS + 0x7)
#define FLAG_BADGE02_GET (SYSTEM_FLAGS + 0x8)
#define FLAG_BADGE03_GET (SYSTEM_FLAGS + 0x9)
#define FLAG_BADGE04_GET (SYSTEM_FLAGS + 0xA)
#define FLAG_BADGE05_GET (SYSTEM_FLAGS + 0xB)
#define FLAG_BADGE06_GET (SYSTEM_FLAGS + 0xC)
#define FLAG_BADGE07_GET (SYSTEM_FLAGS + 0xD)
#define FLAG_BADGE08_GET (SYSTEM_FLAGS + 0xE)
#define NUM_BADGES (1 + FLAG_BADGE08_GET - FLAG_BADGE01_GET)
// Towns and Cities
#define FLAG_VISITED_LITTLEROOT_TOWN (SYSTEM_FLAGS + 0xF)
#define FLAG_VISITED_OLDALE_TOWN (SYSTEM_FLAGS + 0x10)
#define FLAG_VISITED_DEWFORD_TOWN (SYSTEM_FLAGS + 0x11)
#define FLAG_VISITED_LAVARIDGE_TOWN (SYSTEM_FLAGS + 0x12)
#define FLAG_VISITED_FALLARBOR_TOWN (SYSTEM_FLAGS + 0x13)
#define FLAG_VISITED_VERDANTURF_TOWN (SYSTEM_FLAGS + 0x14)
#define FLAG_VISITED_PACIFIDLOG_TOWN (SYSTEM_FLAGS + 0x15)
#define FLAG_VISITED_PETALBURG_CITY (SYSTEM_FLAGS + 0x16)
#define FLAG_VISITED_SLATEPORT_CITY (SYSTEM_FLAGS + 0x17)
#define FLAG_VISITED_MAUVILLE_CITY (SYSTEM_FLAGS + 0x18)
#define FLAG_VISITED_RUSTBORO_CITY (SYSTEM_FLAGS + 0x19)
#define FLAG_VISITED_FORTREE_CITY (SYSTEM_FLAGS + 0x1A)
#define FLAG_VISITED_LILYCOVE_CITY (SYSTEM_FLAGS + 0x1B)
#define FLAG_VISITED_MOSSDEEP_CITY (SYSTEM_FLAGS + 0x1C)
#define FLAG_VISITED_SOOTOPOLIS_CITY (SYSTEM_FLAGS + 0x1D)
#define FLAG_VISITED_EVER_GRANDE_CITY (SYSTEM_FLAGS + 0x1E)
#define FLAG_IS_CHAMPION (SYSTEM_FLAGS + 0x1F) // Seems to be related to linking.
#define FLAG_NURSE_UNION_ROOM_REMINDER (SYSTEM_FLAGS + 0x20)
#define FLAG_UNUSED_0x881 (SYSTEM_FLAGS + 0x21) // Unused Flag
#define FLAG_UNUSED_0x882 (SYSTEM_FLAGS + 0x22) // Unused Flag
#define FLAG_UNUSED_0x883 (SYSTEM_FLAGS + 0x23) // Unused Flag
#define FLAG_UNUSED_0x884 (SYSTEM_FLAGS + 0x24) // Unused Flag
#define FLAG_UNUSED_0x885 (SYSTEM_FLAGS + 0x25) // Unused Flag
#define FLAG_UNUSED_0x886 (SYSTEM_FLAGS + 0x26) // Unused Flag
#define FLAG_UNUSED_0x887 (SYSTEM_FLAGS + 0x27) // Unused Flag
#define FLAG_SYS_USE_FLASH (SYSTEM_FLAGS + 0x28)
#define FLAG_SYS_USE_STRENGTH (SYSTEM_FLAGS + 0x29)
#define FLAG_SYS_WEATHER_CTRL (SYSTEM_FLAGS + 0x2A)
#define FLAG_SYS_CYCLING_ROAD (SYSTEM_FLAGS + 0x2B)
#define FLAG_SYS_SAFARI_MODE (SYSTEM_FLAGS + 0x2C)
#define FLAG_SYS_CRUISE_MODE (SYSTEM_FLAGS + 0x2D)
#define FLAG_UNUSED_0x88E (SYSTEM_FLAGS + 0x2E) // Unused Flag
#define FLAG_UNUSED_0x88F (SYSTEM_FLAGS + 0x2F) // Unused Flag
#define FLAG_SYS_TV_HOME (SYSTEM_FLAGS + 0x30)
#define FLAG_SYS_TV_WATCH (SYSTEM_FLAGS + 0x31)
#define FLAG_SYS_TV_START (SYSTEM_FLAGS + 0x32)
#define FLAG_SYS_CHANGED_DEWFORD_TREND (SYSTEM_FLAGS + 0x33)
#define FLAG_SYS_MIX_RECORD (SYSTEM_FLAGS + 0x34)
#define FLAG_SYS_CLOCK_SET (SYSTEM_FLAGS + 0x35)
#define FLAG_SYS_NATIONAL_DEX (SYSTEM_FLAGS + 0x36)
#define FLAG_SYS_CAVE_SHIP (SYSTEM_FLAGS + 0x37) // Unused Flag, leftover from R/S debug, presumably used by Emerald's debug too
#define FLAG_SYS_CAVE_WONDER (SYSTEM_FLAGS + 0x38) // Unused Flag, same as above
#define FLAG_SYS_CAVE_BATTLE (SYSTEM_FLAGS + 0x39) // Unused Flag, same as above
#define FLAG_SYS_SHOAL_TIDE (SYSTEM_FLAGS + 0x3A)
#define FLAG_SYS_RIBBON_GET (SYSTEM_FLAGS + 0x3B)
#define FLAG_LANDMARK_FLOWER_SHOP (SYSTEM_FLAGS + 0x3C)
#define FLAG_LANDMARK_MR_BRINEY_HOUSE (SYSTEM_FLAGS + 0x3D)
#define FLAG_LANDMARK_ABANDONED_SHIP (SYSTEM_FLAGS + 0x3E)
#define FLAG_LANDMARK_SEASHORE_HOUSE (SYSTEM_FLAGS + 0x3F)
#define FLAG_LANDMARK_NEW_MAUVILLE (SYSTEM_FLAGS + 0x40)
#define FLAG_LANDMARK_OLD_LADY_REST_SHOP (SYSTEM_FLAGS + 0x41)
#define FLAG_LANDMARK_TRICK_HOUSE (SYSTEM_FLAGS + 0x42)
#define FLAG_LANDMARK_WINSTRATE_FAMILY (SYSTEM_FLAGS + 0x43)
#define FLAG_LANDMARK_GLASS_WORKSHOP (SYSTEM_FLAGS + 0x44)
#define FLAG_LANDMARK_LANETTES_HOUSE (SYSTEM_FLAGS + 0x45)
#define FLAG_LANDMARK_POKEMON_DAYCARE (SYSTEM_FLAGS + 0x46)
#define FLAG_LANDMARK_SEAFLOOR_CAVERN (SYSTEM_FLAGS + 0x47)
#define FLAG_LANDMARK_BATTLE_FRONTIER (SYSTEM_FLAGS + 0x48)
#define FLAG_LANDMARK_SOUTHERN_ISLAND (SYSTEM_FLAGS + 0x49)
#define FLAG_LANDMARK_FIERY_PATH (SYSTEM_FLAGS + 0x4A)
#define FLAG_SYS_PC_LANETTE (SYSTEM_FLAGS + 0x4B)
#define FLAG_SYS_MYSTERY_EVENT_ENABLE (SYSTEM_FLAGS + 0x4C)
#define FLAG_SYS_ENC_UP_ITEM (SYSTEM_FLAGS + 0x4D)
#define FLAG_SYS_ENC_DOWN_ITEM (SYSTEM_FLAGS + 0x4E)
#define FLAG_SYS_BRAILLE_DIG (SYSTEM_FLAGS + 0x4F)
#define FLAG_SYS_REGIROCK_PUZZLE_COMPLETED (SYSTEM_FLAGS + 0x50)
#define FLAG_SYS_BRAILLE_REGICE_COMPLETED (SYSTEM_FLAGS + 0x51)
#define FLAG_SYS_REGISTEEL_PUZZLE_COMPLETED (SYSTEM_FLAGS + 0x52)
#define FLAG_ENABLE_SHIP_SOUTHERN_ISLAND (SYSTEM_FLAGS + 0x53)
#define FLAG_LANDMARK_POKEMON_LEAGUE (SYSTEM_FLAGS + 0x54)
#define FLAG_LANDMARK_ISLAND_CAVE (SYSTEM_FLAGS + 0x55)
#define FLAG_LANDMARK_DESERT_RUINS (SYSTEM_FLAGS + 0x56)
#define FLAG_LANDMARK_FOSSIL_MANIACS_HOUSE (SYSTEM_FLAGS + 0x57)
#define FLAG_LANDMARK_SCORCHED_SLAB (SYSTEM_FLAGS + 0x58)
#define FLAG_LANDMARK_ANCIENT_TOMB (SYSTEM_FLAGS + 0x59)
#define FLAG_LANDMARK_TUNNELERS_REST_HOUSE (SYSTEM_FLAGS + 0x5A)
#define FLAG_LANDMARK_HUNTERS_HOUSE (SYSTEM_FLAGS + 0x5B)
#define FLAG_LANDMARK_SEALED_CHAMBER (SYSTEM_FLAGS + 0x5C)
#define FLAG_SYS_TV_LATIAS_LATIOS (SYSTEM_FLAGS + 0x5D)
#define FLAG_LANDMARK_SKY_PILLAR (SYSTEM_FLAGS + 0x5E)
#define FLAG_SYS_SHOAL_ITEM (SYSTEM_FLAGS + 0x5F)
#define FLAG_SYS_B_DASH (SYSTEM_FLAGS + 0x60) // RECEIVED Running Shoes
#define FLAG_SYS_CTRL_OBJ_DELETE (SYSTEM_FLAGS + 0x61)
#define FLAG_SYS_RESET_RTC_ENABLE (SYSTEM_FLAGS + 0x62)
#define FLAG_LANDMARK_BERRY_MASTERS_HOUSE (SYSTEM_FLAGS + 0x63)
#define FLAG_SYS_TOWER_SILVER (SYSTEM_FLAGS + 0x64)
#define FLAG_SYS_TOWER_GOLD (SYSTEM_FLAGS + 0x65)
#define FLAG_SYS_DOME_SILVER (SYSTEM_FLAGS + 0x66)
#define FLAG_SYS_DOME_GOLD (SYSTEM_FLAGS + 0x67)
#define FLAG_SYS_PALACE_SILVER (SYSTEM_FLAGS + 0x68)
#define FLAG_SYS_PALACE_GOLD (SYSTEM_FLAGS + 0x69)
#define FLAG_SYS_ARENA_SILVER (SYSTEM_FLAGS + 0x6A)
#define FLAG_SYS_ARENA_GOLD (SYSTEM_FLAGS + 0x6B)
#define FLAG_SYS_FACTORY_SILVER (SYSTEM_FLAGS + 0x6C)
#define FLAG_SYS_FACTORY_GOLD (SYSTEM_FLAGS + 0x6D)
#define FLAG_SYS_PIKE_SILVER (SYSTEM_FLAGS + 0x6E)
#define FLAG_SYS_PIKE_GOLD (SYSTEM_FLAGS + 0x6F)
#define FLAG_SYS_PYRAMID_SILVER (SYSTEM_FLAGS + 0x70)
#define FLAG_SYS_PYRAMID_GOLD (SYSTEM_FLAGS + 0x71)
#define FLAG_SYS_FRONTIER_PASS (SYSTEM_FLAGS + 0x72)
#define FLAG_MAP_SCRIPT_CHECKED_DEOXYS (SYSTEM_FLAGS + 0x73)
#define FLAG_DEOXYS_ROCK_COMPLETE (SYSTEM_FLAGS + 0x74)
#define FLAG_ENABLE_SHIP_BIRTH_ISLAND (SYSTEM_FLAGS + 0x75)
#define FLAG_ENABLE_SHIP_FARAWAY_ISLAND (SYSTEM_FLAGS + 0x76)
#define FLAG_SHOWN_BOX_WAS_FULL_MESSAGE (SYSTEM_FLAGS + 0x77)
#define FLAG_ARRIVED_ON_FARAWAY_ISLAND (SYSTEM_FLAGS + 0x78)
#define FLAG_ARRIVED_AT_MARINE_CAVE_EMERGE_SPOT (SYSTEM_FLAGS + 0x79)
#define FLAG_ARRIVED_AT_TERRA_CAVE_ENTRANCE (SYSTEM_FLAGS + 0x7A)
#define FLAG_SYS_MYSTERY_GIFT_ENABLE (SYSTEM_FLAGS + 0x7B)
#define FLAG_ENTERED_MIRAGE_TOWER (SYSTEM_FLAGS + 0x7C)
#define FLAG_LANDMARK_ALTERING_CAVE (SYSTEM_FLAGS + 0x7D)
#define FLAG_LANDMARK_DESERT_UNDERPASS (SYSTEM_FLAGS + 0x7E)
#define FLAG_LANDMARK_ARTISAN_CAVE (SYSTEM_FLAGS + 0x7F)
#define FLAG_ENABLE_SHIP_NAVEL_ROCK (SYSTEM_FLAGS + 0x80)
#define FLAG_ARRIVED_AT_NAVEL_ROCK (SYSTEM_FLAGS + 0x81)
#define FLAG_LANDMARK_TRAINER_HILL (SYSTEM_FLAGS + 0x82)
#define FLAG_UNUSED_0x8E3 (SYSTEM_FLAGS + 0x83) // Unused Flag
#define FLAG_RECEIVED_POKEDEX_FROM_BIRCH (SYSTEM_FLAGS + 0x84)
#define FLAG_UNUSED_0x8E5 (SYSTEM_FLAGS + 0x85) // Unused Flag
#define FLAG_UNUSED_0x8E6 (SYSTEM_FLAGS + 0x86) // Unused Flag
#define FLAG_UNUSED_0x8E7 (SYSTEM_FLAGS + 0x87) // Unused Flag
#define FLAG_UNUSED_0x8E8 (SYSTEM_FLAGS + 0x88) // Unused Flag
#define FLAG_UNUSED_0x8E9 (SYSTEM_FLAGS + 0x89) // Unused Flag
#define FLAG_UNUSED_0x8EA (SYSTEM_FLAGS + 0x8A) // Unused Flag
#define FLAG_UNUSED_0x8EB (SYSTEM_FLAGS + 0x8B) // Unused Flag
#define FLAG_UNUSED_0x8EC (SYSTEM_FLAGS + 0x8C) // Unused Flag
#define FLAG_UNUSED_0x8ED (SYSTEM_FLAGS + 0x8D) // Unused Flag
#define FLAG_UNUSED_0x8EE (SYSTEM_FLAGS + 0x8E) // Unused Flag
#define FLAG_UNUSED_0x8EF (SYSTEM_FLAGS + 0x8F) // Unused Flag
#define FLAG_UNUSED_0x8F0 (SYSTEM_FLAGS + 0x90) // Unused Flag
#define FLAG_UNUSED_0x8F1 (SYSTEM_FLAGS + 0x91) // Unused Flag
#define FLAG_UNUSED_0x8F2 (SYSTEM_FLAGS + 0x92) // Unused Flag
#define FLAG_UNUSED_0x8F3 (SYSTEM_FLAGS + 0x93) // Unused Flag
#define FLAG_UNUSED_0x8F4 (SYSTEM_FLAGS + 0x94) // Unused Flag
#define FLAG_UNUSED_0x8F5 (SYSTEM_FLAGS + 0x95) // Unused Flag
#define FLAG_UNUSED_0x8F6 (SYSTEM_FLAGS + 0x96) // Unused Flag
#define FLAG_UNUSED_0x8F7 (SYSTEM_FLAGS + 0x97) // Unused Flag
#define FLAG_UNUSED_0x8F8 (SYSTEM_FLAGS + 0x98) // Unused Flag
#define FLAG_UNUSED_0x8F9 (SYSTEM_FLAGS + 0x99) // Unused Flag
#define FLAG_UNUSED_0x8FA (SYSTEM_FLAGS + 0x9A) // Unused Flag
#define FLAG_UNUSED_0x8FB (SYSTEM_FLAGS + 0x9B) // Unused Flag
#define FLAG_UNUSED_0x8FC (SYSTEM_FLAGS + 0x9C) // Unused Flag
#define FLAG_UNUSED_0x8FD (SYSTEM_FLAGS + 0x9D) // Unused Flag
#define FLAG_UNUSED_0x8FE (SYSTEM_FLAGS + 0x9E) // Unused Flag
#define FLAG_UNUSED_0x8FF (SYSTEM_FLAGS + 0x9F) // Unused Flag
#define FLAG_UNUSED_0x900 (SYSTEM_FLAGS + 0xA0) // Unused Flag
#define FLAG_UNUSED_0x901 (SYSTEM_FLAGS + 0xA1) // Unused Flag
#define FLAG_UNUSED_0x902 (SYSTEM_FLAGS + 0xA2) // Unused Flag
#define FLAG_UNUSED_0x903 (SYSTEM_FLAGS + 0xA3) // Unused Flag
#define FLAG_UNUSED_0x904 (SYSTEM_FLAGS + 0xA4) // Unused Flag
#define FLAG_UNUSED_0x905 (SYSTEM_FLAGS + 0xA5) // Unused Flag
#define FLAG_UNUSED_0x906 (SYSTEM_FLAGS + 0xA6) // Unused Flag
#define FLAG_UNUSED_0x907 (SYSTEM_FLAGS + 0xA7) // Unused Flag
#define FLAG_UNUSED_0x908 (SYSTEM_FLAGS + 0xA8) // Unused Flag
#define FLAG_UNUSED_0x909 (SYSTEM_FLAGS + 0xA9) // Unused Flag
#define FLAG_UNUSED_0x90A (SYSTEM_FLAGS + 0xAA) // Unused Flag
#define FLAG_UNUSED_0x90B (SYSTEM_FLAGS + 0xAB) // Unused Flag
#define FLAG_UNUSED_0x90C (SYSTEM_FLAGS + 0xAC) // Unused Flag
#define FLAG_UNUSED_0x90D (SYSTEM_FLAGS + 0xAD) // Unused Flag
#define FLAG_UNUSED_0x90E (SYSTEM_FLAGS + 0xAE) // Unused Flag
#define FLAG_UNUSED_0x90F (SYSTEM_FLAGS + 0xAF) // Unused Flag
#define FLAG_UNUSED_0x910 (SYSTEM_FLAGS + 0xB0) // Unused Flag
#define FLAG_UNUSED_0x911 (SYSTEM_FLAGS + 0xB1) // Unused Flag
#define FLAG_UNUSED_0x912 (SYSTEM_FLAGS + 0xB2) // Unused Flag
#define FLAG_UNUSED_0x913 (SYSTEM_FLAGS + 0xB3) // Unused Flag
#define FLAG_UNUSED_0x914 (SYSTEM_FLAGS + 0xB4) // Unused Flag
#define FLAG_UNUSED_0x915 (SYSTEM_FLAGS + 0xB5) // Unused Flag
#define FLAG_UNUSED_0x916 (SYSTEM_FLAGS + 0xB6) // Unused Flag
#define FLAG_UNUSED_0x917 (SYSTEM_FLAGS + 0xB7) // Unused Flag
#define FLAG_UNUSED_0x918 (SYSTEM_FLAGS + 0xB8) // Unused Flag
#define FLAG_UNUSED_0x919 (SYSTEM_FLAGS + 0xB9) // Unused Flag
#define FLAG_UNUSED_0x91A (SYSTEM_FLAGS + 0xBA) // Unused Flag
#define FLAG_UNUSED_0x91B (SYSTEM_FLAGS + 0xBB) // Unused Flag
#define FLAG_UNUSED_0x91C (SYSTEM_FLAGS + 0xBC) // Unused Flag
#define FLAG_UNUSED_0x91D (SYSTEM_FLAGS + 0xBD) // Unused Flag
#define FLAG_UNUSED_0x91E (SYSTEM_FLAGS + 0xBE) // Unused Flag
#define FLAG_UNUSED_0x91F (SYSTEM_FLAGS + 0xBF) // Unused Flag
// Daily Flags
// These flags are cleared once per day
// The start and end are byte-aligned because the flags are cleared in byte increments
#define DAILY_FLAGS_START (FLAG_UNUSED_0x91F + (8 - FLAG_UNUSED_0x91F % 8))
#define FLAG_UNUSED_0x920 (DAILY_FLAGS_START + 0x0) // Unused Flag
#define FLAG_DAILY_CONTEST_LOBBY_RECEIVED_BERRY (DAILY_FLAGS_START + 0x1)
#define FLAG_DAILY_SECRET_BASE (DAILY_FLAGS_START + 0x2)
#define FLAG_UNUSED_0x923 (DAILY_FLAGS_START + 0x3) // Unused Flag
#define FLAG_UNUSED_0x924 (DAILY_FLAGS_START + 0x4) // Unused Flag
#define FLAG_UNUSED_0x925 (DAILY_FLAGS_START + 0x5) // Unused Flag
#define FLAG_UNUSED_0x926 (DAILY_FLAGS_START + 0x6) // Unused Flag
#define FLAG_UNUSED_0x927 (DAILY_FLAGS_START + 0x7) // Unused Flag
#define FLAG_UNUSED_0x928 (DAILY_FLAGS_START + 0x8) // Unused Flag
#define FLAG_UNUSED_0x929 (DAILY_FLAGS_START + 0x9) // Unused Flag
#define FLAG_DAILY_PICKED_LOTO_TICKET (DAILY_FLAGS_START + 0xA)
#define FLAG_DAILY_ROUTE_114_RECEIVED_BERRY (DAILY_FLAGS_START + 0xB)
#define FLAG_DAILY_ROUTE_111_RECEIVED_BERRY (DAILY_FLAGS_START + 0xC)
#define FLAG_DAILY_BERRY_MASTER_RECEIVED_BERRY (DAILY_FLAGS_START + 0xD)
#define FLAG_DAILY_ROUTE_120_RECEIVED_BERRY (DAILY_FLAGS_START + 0xE)
#define FLAG_DAILY_LILYCOVE_RECEIVED_BERRY (DAILY_FLAGS_START + 0xF)
#define FLAG_DAILY_FLOWER_SHOP_RECEIVED_BERRY (DAILY_FLAGS_START + 0x10)
#define FLAG_DAILY_BERRY_MASTERS_WIFE (DAILY_FLAGS_START + 0x11)
#define FLAG_DAILY_SOOTOPOLIS_RECEIVED_BERRY (DAILY_FLAGS_START + 0x12)
#define FLAG_UNUSED_0x933 (DAILY_FLAGS_START + 0x13) // Unused Flag
#define FLAG_DAILY_APPRENTICE_LEAVES (DAILY_FLAGS_START + 0x14)
#define FLAG_UNUSED_0x935 (DAILY_FLAGS_START + 0x15) // Unused Flag
#define FLAG_UNUSED_0x936 (DAILY_FLAGS_START + 0x16) // Unused Flag
#define FLAG_UNUSED_0x937 (DAILY_FLAGS_START + 0x17) // Unused Flag
#define FLAG_UNUSED_0x938 (DAILY_FLAGS_START + 0x18) // Unused Flag
#define FLAG_UNUSED_0x939 (DAILY_FLAGS_START + 0x19) // Unused Flag
#define FLAG_UNUSED_0x93A (DAILY_FLAGS_START + 0x1A) // Unused Flag
#define FLAG_UNUSED_0x93B (DAILY_FLAGS_START + 0x1B) // Unused Flag
#define FLAG_UNUSED_0x93C (DAILY_FLAGS_START + 0x1C) // Unused Flag
#define FLAG_UNUSED_0x93D (DAILY_FLAGS_START + 0x1D) // Unused Flag
#define FLAG_UNUSED_0x93E (DAILY_FLAGS_START + 0x1E) // Unused Flag
#define FLAG_UNUSED_0x93F (DAILY_FLAGS_START + 0x1F) // Unused Flag
#define FLAG_UNUSED_0x940 (DAILY_FLAGS_START + 0x20) // Unused Flag
#define FLAG_UNUSED_0x941 (DAILY_FLAGS_START + 0x21) // Unused Flag
#define FLAG_UNUSED_0x942 (DAILY_FLAGS_START + 0x22) // Unused Flag
#define FLAG_UNUSED_0x943 (DAILY_FLAGS_START + 0x23) // Unused Flag
#define FLAG_UNUSED_0x944 (DAILY_FLAGS_START + 0x24) // Unused Flag
#define FLAG_UNUSED_0x945 (DAILY_FLAGS_START + 0x25) // Unused Flag
#define FLAG_UNUSED_0x946 (DAILY_FLAGS_START + 0x26) // Unused Flag
#define FLAG_UNUSED_0x947 (DAILY_FLAGS_START + 0x27) // Unused Flag
#define FLAG_UNUSED_0x948 (DAILY_FLAGS_START + 0x28) // Unused Flag
#define FLAG_UNUSED_0x949 (DAILY_FLAGS_START + 0x29) // Unused Flag
#define FLAG_UNUSED_0x94A (DAILY_FLAGS_START + 0x2A) // Unused Flag
#define FLAG_UNUSED_0x94B (DAILY_FLAGS_START + 0x2B) // Unused Flag
#define FLAG_UNUSED_0x94C (DAILY_FLAGS_START + 0x2C) // Unused Flag
#define FLAG_UNUSED_0x94D (DAILY_FLAGS_START + 0x2D) // Unused Flag
#define FLAG_UNUSED_0x94E (DAILY_FLAGS_START + 0x2E) // Unused Flag
#define FLAG_UNUSED_0x94F (DAILY_FLAGS_START + 0x2F) // Unused Flag
#define FLAG_UNUSED_0x950 (DAILY_FLAGS_START + 0x30) // Unused Flag
#define FLAG_UNUSED_0x951 (DAILY_FLAGS_START + 0x31) // Unused Flag
#define FLAG_UNUSED_0x952 (DAILY_FLAGS_START + 0x32) // Unused Flag
#define FLAG_UNUSED_0x953 (DAILY_FLAGS_START + 0x33) // Unused Flag
#define FLAG_UNUSED_0x954 (DAILY_FLAGS_START + 0x34) // Unused Flag
#define FLAG_UNUSED_0x955 (DAILY_FLAGS_START + 0x35) // Unused Flag
#define FLAG_UNUSED_0x956 (DAILY_FLAGS_START + 0x36) // Unused Flag
#define FLAG_UNUSED_0x957 (DAILY_FLAGS_START + 0x37) // Unused Flag
#define FLAG_UNUSED_0x958 (DAILY_FLAGS_START + 0x38) // Unused Flag
#define FLAG_UNUSED_0x959 (DAILY_FLAGS_START + 0x39) // Unused Flag
#define FLAG_UNUSED_0x95A (DAILY_FLAGS_START + 0x3A) // Unused Flag
#define FLAG_UNUSED_0x95B (DAILY_FLAGS_START + 0x3B) // Unused Flag
#define FLAG_UNUSED_0x95C (DAILY_FLAGS_START + 0x3C) // Unused Flag
#define FLAG_UNUSED_0x95D (DAILY_FLAGS_START + 0x3D) // Unused Flag
#define FLAG_UNUSED_0x95E (DAILY_FLAGS_START + 0x3E) // Unused Flag
#define FLAG_UNUSED_0x95F (DAILY_FLAGS_START + 0x3F) // Unused Flag
#define DAILY_FLAGS_END (FLAG_UNUSED_0x95F + (7 - FLAG_UNUSED_0x95F % 8))
#define FLAGS_COUNT (DAILY_FLAGS_END + 1)
// Special Flags (Stored in EWRAM (gSpecialFlags), not in the SaveBlock)
#define SPECIAL_FLAGS_START 0x4000
#define FLAG_HIDE_MAP_NAME_POPUP (SPECIAL_FLAGS_START + 0x0)
#define FLAG_DONT_TRANSITION_MUSIC (SPECIAL_FLAGS_START + 0x1)
#define FLAG_ENABLE_MULTI_CORRIDOR_DOOR (SPECIAL_FLAGS_START + 0x2)
#define FLAG_SPECIAL_FLAG_UNUSED_0x4003 (SPECIAL_FLAGS_START + 0x3) // Unused Flag
#define FLAG_STORING_ITEMS_IN_PYRAMID_BAG (SPECIAL_FLAGS_START + 0x4)
// FLAG_SPECIAL_FLAG_0x4005 - 0x407F also exist and are unused
#define SPECIAL_FLAGS_END (SPECIAL_FLAGS_START + 0x7F)
#endif // GUARD_CONSTANTS_FLAGS_H

View File

@ -0,0 +1,75 @@
#ifndef GUARD_CONSTANTS_FRONTIER_UTIL_H
#define GUARD_CONSTANTS_FRONTIER_UTIL_H
#define FRONTIER_BEFORE_TEXT 0
#define FRONTIER_PLAYER_LOST_TEXT 1
#define FRONTIER_PLAYER_WON_TEXT 2
// return values for GetFrontierBrainStatus
#define FRONTIER_BRAIN_NOT_READY 0
#define FRONTIER_BRAIN_SILVER 1
#define FRONTIER_BRAIN_GOLD 2
#define FRONTIER_BRAIN_STREAK 3 // for encountering the brain after getting both symbols
#define FRONTIER_BRAIN_STREAK_LONG 4 //
#define FRONTIER_UTIL_FUNC_GET_STATUS 0
#define FRONTIER_UTIL_FUNC_GET_DATA 1
#define FRONTIER_UTIL_FUNC_SET_DATA 2
#define FRONTIER_UTIL_FUNC_SET_PARTY_ORDER 3
#define FRONTIER_UTIL_FUNC_SOFT_RESET 4
#define FRONTIER_UTIL_FUNC_SET_TRAINERS 5
#define FRONTIER_UTIL_FUNC_SAVE_PARTY 6
#define FRONTIER_UTIL_FUNC_RESULTS_WINDOW 7
#define FRONTIER_UTIL_FUNC_CHECK_AIR_TV_SHOW 8
#define FRONTIER_UTIL_FUNC_GET_BRAIN_STATUS 9
#define FRONTIER_UTIL_FUNC_IS_BRAIN 10
#define FRONTIER_UTIL_FUNC_GIVE_BATTLE_POINTS 11
#define FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS 12
#define FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL 13
#define FRONTIER_UTIL_FUNC_CHECK_BATTLE_TYPE 14
#define FRONTIER_UTIL_FUNC_CHECK_INELIGIBLE 15
#define FRONTIER_UTIL_FUNC_CHECK_VISIT_TRAINER 16
#define FRONTIER_UTIL_FUNC_INCREMENT_STREAK 17
#define FRONTIER_UTIL_FUNC_RESTORE_HELD_ITEMS 18
#define FRONTIER_UTIL_FUNC_SAVE_BATTLE 19
#define FRONTIER_UTIL_FUNC_BUFFER_TRAINER_NAME 20
#define FRONTIER_UTIL_FUNC_RESET_SKETCH_MOVES 21
#define FRONTIER_UTIL_FUNC_SET_BRAIN_OBJECT 22
#define FRONTIER_DATA_CHALLENGE_STATUS 0
#define FRONTIER_DATA_LVL_MODE 1
#define FRONTIER_DATA_BATTLE_NUM 2
#define FRONTIER_DATA_PAUSED 3
#define FRONTIER_DATA_SELECTED_MON_ORDER 4
#define FRONTIER_DATA_BATTLE_OUTCOME 5
#define FRONTIER_DATA_RECORD_DISABLED 6
#define FRONTIER_DATA_HEARD_BRAIN_SPEECH 7
#define STREAK_TOWER_SINGLES_50 (1 << 0)
#define STREAK_TOWER_SINGLES_OPEN (1 << 1)
#define STREAK_DOME_SINGLES_50 (1 << 2)
#define STREAK_DOME_SINGLES_OPEN (1 << 3)
#define STREAK_PALACE_SINGLES_50 (1 << 4)
#define STREAK_PALACE_SINGLES_OPEN (1 << 5)
#define STREAK_ARENA_50 (1 << 6)
#define STREAK_ARENA_OPEN (1 << 7)
#define STREAK_FACTORY_SINGLES_50 (1 << 8)
#define STREAK_FACTORY_SINGLES_OPEN (1 << 9)
#define STREAK_PIKE_50 (1 << 10)
#define STREAK_PIKE_OPEN (1 << 11)
#define STREAK_PYRAMID_50 (1 << 12)
#define STREAK_PYRAMID_OPEN (1 << 13)
#define STREAK_TOWER_DOUBLES_50 (1 << 14)
#define STREAK_TOWER_DOUBLES_OPEN (1 << 15)
#define STREAK_TOWER_MULTIS_50 (1 << 16)
#define STREAK_TOWER_MULTIS_OPEN (1 << 17)
#define STREAK_TOWER_LINK_MULTIS_50 (1 << 18)
#define STREAK_TOWER_LINK_MULTIS_OPEN (1 << 19)
#define STREAK_DOME_DOUBLES_50 (1 << 20)
#define STREAK_DOME_DOUBLES_OPEN (1 << 21)
#define STREAK_PALACE_DOUBLES_50 (1 << 22)
#define STREAK_PALACE_DOUBLES_OPEN (1 << 23)
#define STREAK_FACTORY_DOUBLES_50 (1 << 24)
#define STREAK_FACTORY_DOUBLES_OPEN (1 << 25)
#endif // GUARD_CONSTANTS_FRONTIER_UTIL_H

View File

@ -0,0 +1,60 @@
#ifndef GUARD_CONSTANTS_GAME_STAT_H
#define GUARD_CONSTANTS_GAME_STAT_H
#define GAME_STAT_SAVED_GAME 0
#define GAME_STAT_FIRST_HOF_PLAY_TIME 1
#define GAME_STAT_STARTED_TRENDS 2
#define GAME_STAT_PLANTED_BERRIES 3
#define GAME_STAT_TRADED_BIKES 4
#define GAME_STAT_STEPS 5
#define GAME_STAT_GOT_INTERVIEWED 6
#define GAME_STAT_TOTAL_BATTLES 7
#define GAME_STAT_WILD_BATTLES 8
#define GAME_STAT_TRAINER_BATTLES 9
#define GAME_STAT_ENTERED_HOF 10
#define GAME_STAT_POKEMON_CAPTURES 11
#define GAME_STAT_FISHING_CAPTURES 12
#define GAME_STAT_HATCHED_EGGS 13
#define GAME_STAT_EVOLVED_POKEMON 14
#define GAME_STAT_USED_POKECENTER 15
#define GAME_STAT_RESTED_AT_HOME 16
#define GAME_STAT_ENTERED_SAFARI_ZONE 17
#define GAME_STAT_USED_CUT 18
#define GAME_STAT_USED_ROCK_SMASH 19
#define GAME_STAT_MOVED_SECRET_BASE 20
#define GAME_STAT_POKEMON_TRADES 21
#define GAME_STAT_UNKNOWN_22 22
#define GAME_STAT_LINK_BATTLE_WINS 23
#define GAME_STAT_LINK_BATTLE_LOSSES 24
#define GAME_STAT_LINK_BATTLE_DRAWS 25
#define GAME_STAT_USED_SPLASH 26
#define GAME_STAT_USED_STRUGGLE 27
#define GAME_STAT_SLOT_JACKPOTS 28
#define GAME_STAT_CONSECUTIVE_ROULETTE_WINS 29
#define GAME_STAT_ENTERED_BATTLE_TOWER 30
#define GAME_STAT_UNKNOWN_31 31
#define GAME_STAT_BATTLE_TOWER_BEST_STREAK 32
#define GAME_STAT_POKEBLOCKS 33
#define GAME_STAT_POKEBLOCKS_WITH_FRIENDS 34
#define GAME_STAT_WON_LINK_CONTEST 35
#define GAME_STAT_ENTERED_CONTEST 36
#define GAME_STAT_WON_CONTEST 37
#define GAME_STAT_SHOPPED 38
#define GAME_STAT_USED_ITEMFINDER 39
#define GAME_STAT_GOT_RAINED_ON 40
#define GAME_STAT_CHECKED_POKEDEX 41
#define GAME_STAT_RECEIVED_RIBBONS 42
#define GAME_STAT_JUMPED_DOWN_LEDGES 43
#define GAME_STAT_WATCHED_TV 44
#define GAME_STAT_CHECKED_CLOCK 45
#define GAME_STAT_WON_POKEMON_LOTTERY 46
#define GAME_STAT_USED_DAYCARE 47
#define GAME_STAT_RODE_CABLE_CAR 48
#define GAME_STAT_ENTERED_HOT_SPRINGS 49
#define GAME_STAT_NUM_UNION_ROOM_BATTLES 50
#define GAME_STAT_PLAYED_BERRY_CRUSH 51
#define NUM_USED_GAME_STATS 52
#define NUM_GAME_STATS 64
#endif // GUARD_CONSTANTS_GAME_STAT_H

142
include/constants/global.h Normal file
View File

@ -0,0 +1,142 @@
#ifndef GUARD_CONSTANTS_GLOBAL_H
#define GUARD_CONSTANTS_GLOBAL_H
// Invalid Versions show as "----------" in Gen 4 and Gen 5's summary screen.
// In Gens 6 and 7, invalid versions instead show "a distant land" in the summary screen.
// In Gen 4 only, migrated Pokemon with Diamond, Pearl, or Platinum's ID show as "----------".
// Gen 5 and up read Diamond, Pearl, or Platinum's ID as "Sinnoh".
// In Gen 4 and up, migrated Pokemon with HeartGold or SoulSilver's ID show the otherwise unused "Johto" string.
#define VERSION_SAPPHIRE 1
#define VERSION_RUBY 2
#define VERSION_EMERALD 3
#define VERSION_FIRE_RED 4
#define VERSION_LEAF_GREEN 5
#define VERSION_HEART_GOLD 7
#define VERSION_SOUL_SILVER 8
#define VERSION_DIAMOND 10
#define VERSION_PEARL 11
#define VERSION_PLATINUM 12
#define VERSION_GAMECUBE 15
#define LANGUAGE_JAPANESE 1
#define LANGUAGE_ENGLISH 2
#define LANGUAGE_FRENCH 3
#define LANGUAGE_ITALIAN 4
#define LANGUAGE_GERMAN 5
#define LANGUAGE_KOREAN 6 // 6 goes unused but the theory is it was meant to be Korean
#define LANGUAGE_SPANISH 7
#define NUM_LANGUAGES 7
#define GAME_VERSION (VERSION_EMERALD)
#define GAME_LANGUAGE (LANGUAGE_ENGLISH)
// capacities of various saveblock objects
#define DAYCARE_MON_COUNT 2
#define POKEBLOCKS_COUNT 40
#define OBJECT_EVENTS_COUNT 16
#define MAIL_COUNT 16
#define SECRET_BASES_COUNT 20
#define TV_SHOWS_COUNT 25
#define POKE_NEWS_COUNT 16
#define PC_ITEMS_COUNT 50
#define BAG_ITEMS_COUNT 30
#define BAG_KEYITEMS_COUNT 30
#define BAG_POKEBALLS_COUNT 16
#define BAG_TMHM_COUNT 64
#define BAG_BERRIES_COUNT 46
#define OBJECT_EVENT_TEMPLATES_COUNT 64
#define DECOR_MAX_SECRET_BASE 16
#define DECOR_MAX_PLAYERS_HOUSE 12
#define APPRENTICE_COUNT 4
#define APPRENTICE_MAX_QUESTIONS 9
#define MAX_REMATCH_ENTRIES 100 // only REMATCH_TABLE_ENTRIES (78) are used
#define NUM_CONTEST_WINNERS 13
#define UNION_ROOM_KB_ROW_COUNT 10
#define GIFT_RIBBONS_COUNT 11
#define SAVED_TRENDS_COUNT 5
#define PYRAMID_BAG_ITEMS_COUNT 10
// Number of facilities for Ranking Hall.
// 7 facilities for single mode + tower double mode + tower multi mode.
// Excludes link modes. See RANKING_HALL_* in include/constants/battle_frontier.h
#define HALL_FACILITIES_COUNT 9
// Received via record mixing, 1 for each player other than yourself
#define HALL_RECORDS_COUNT 3
// Battle Frontier level modes.
#define FRONTIER_LVL_50 0
#define FRONTIER_LVL_OPEN 1
#define FRONTIER_LVL_MODE_COUNT 2
#define FRONTIER_LVL_TENT FRONTIER_LVL_MODE_COUNT // Special usage for indicating Battle Tent
#define TRAINER_ID_LENGTH 4
#define MAX_MON_MOVES 4
#define NUM_STATS 6
#define CONTESTANT_COUNT 4
#define CONTEST_CATEGORY_COOL 0
#define CONTEST_CATEGORY_BEAUTY 1
#define CONTEST_CATEGORY_CUTE 2
#define CONTEST_CATEGORY_SMART 3
#define CONTEST_CATEGORY_TOUGH 4
#define CONTEST_CATEGORIES_COUNT 5
// party sizes
#define PARTY_SIZE 6
#define MULTI_PARTY_SIZE (PARTY_SIZE / 2)
#define FRONTIER_PARTY_SIZE 3
#define FRONTIER_DOUBLES_PARTY_SIZE 4
#define FRONTIER_MULTI_PARTY_SIZE 2
#define MAX_FRONTIER_PARTY_SIZE FRONTIER_DOUBLES_PARTY_SIZE
#define UNION_ROOM_PARTY_SIZE 2
// string lengths
#define ITEM_NAME_LENGTH 14
#define POKEMON_NAME_LENGTH 10
#define PLAYER_NAME_LENGTH 7
#define MAIL_WORDS_COUNT 9
#define EASY_CHAT_BATTLE_WORDS_COUNT 6
#define MOVE_NAME_LENGTH 12
#define NUM_QUESTIONNAIRE_WORDS 4
#define QUIZ_QUESTION_LEN 9
#define WONDER_CARD_TEXT_LENGTH 40
#define WONDER_NEWS_TEXT_LENGTH 40
#define WONDER_CARD_BODY_TEXT_LINES 4
#define WONDER_NEWS_BODY_TEXT_LINES 10
#define MAX_STAMP_CARD_STAMPS 7
#define MALE 0
#define FEMALE 1
#define GENDER_COUNT 2
#define BARD_SONG_LENGTH 6
#define NUM_STORYTELLER_TALES 4
#define NUM_TRADER_ITEMS 4
#define GIDDY_MAX_TALES 10
#define GIDDY_MAX_QUESTIONS 8
#define OPTIONS_BUTTON_MODE_NORMAL 0
#define OPTIONS_BUTTON_MODE_LR 1
#define OPTIONS_BUTTON_MODE_L_EQUALS_A 2
#define OPTIONS_TEXT_SPEED_SLOW 0
#define OPTIONS_TEXT_SPEED_MID 1
#define OPTIONS_TEXT_SPEED_FAST 2
#define OPTIONS_SOUND_MONO 0
#define OPTIONS_SOUND_STEREO 1
#define OPTIONS_BATTLE_STYLE_SHIFT 0
#define OPTIONS_BATTLE_STYLE_SET 1
#define DIR_NONE 0
#define DIR_SOUTH 1
#define DIR_NORTH 2
#define DIR_WEST 3
#define DIR_EAST 4
#define DIR_SOUTHWEST 5
#define DIR_SOUTHEAST 6
#define DIR_NORTHWEST 7
#define DIR_NORTHEAST 8
#endif // GUARD_CONSTANTS_GLOBAL_H

View File

@ -0,0 +1,27 @@
#ifndef GUARD_CONSTANTS_HEAL_LOCATIONS_H
#define GUARD_CONSTANTS_HEAL_LOCATIONS_H
#define HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F 1
#define HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE_2F 2
#define HEAL_LOCATION_PETALBURG_CITY 3
#define HEAL_LOCATION_SLATEPORT_CITY 4
#define HEAL_LOCATION_MAUVILLE_CITY 5
#define HEAL_LOCATION_RUSTBORO_CITY 6
#define HEAL_LOCATION_FORTREE_CITY 7
#define HEAL_LOCATION_LILYCOVE_CITY 8
#define HEAL_LOCATION_MOSSDEEP_CITY 9
#define HEAL_LOCATION_SOOTOPOLIS_CITY 10
#define HEAL_LOCATION_EVER_GRANDE_CITY 11
#define HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE 12
#define HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE 13
#define HEAL_LOCATION_OLDALE_TOWN 14
#define HEAL_LOCATION_DEWFORD_TOWN 15
#define HEAL_LOCATION_LAVARIDGE_TOWN 16
#define HEAL_LOCATION_FALLARBOR_TOWN 17
#define HEAL_LOCATION_VERDANTURF_TOWN 18
#define HEAL_LOCATION_PACIFIDLOG_TOWN 19
#define HEAL_LOCATION_EVER_GRANDE_CITY_POKEMON_LEAGUE 20
#define HEAL_LOCATION_SOUTHERN_ISLAND_EXTERIOR 21
#define HEAL_LOCATION_BATTLE_FRONTIER_OUTSIDE_EAST 22
#endif // GUARD_CONSTANTS_HEAL_LOCATIONS_H

View File

@ -0,0 +1,72 @@
#ifndef GUARD_HOLD_EFFECTS_H
#define GUARD_HOLD_EFFECTS_H
#define HOLD_EFFECT_NONE 0
#define HOLD_EFFECT_RESTORE_HP 1
#define HOLD_EFFECT_CURE_PAR 2
#define HOLD_EFFECT_CURE_SLP 3
#define HOLD_EFFECT_CURE_PSN 4
#define HOLD_EFFECT_CURE_BRN 5
#define HOLD_EFFECT_CURE_FRZ 6
#define HOLD_EFFECT_RESTORE_PP 7
#define HOLD_EFFECT_CURE_CONFUSION 8
#define HOLD_EFFECT_CURE_STATUS 9
#define HOLD_EFFECT_CONFUSE_SPICY 10
#define HOLD_EFFECT_CONFUSE_DRY 11
#define HOLD_EFFECT_CONFUSE_SWEET 12
#define HOLD_EFFECT_CONFUSE_BITTER 13
#define HOLD_EFFECT_CONFUSE_SOUR 14
#define HOLD_EFFECT_ATTACK_UP 15
#define HOLD_EFFECT_DEFENSE_UP 16
#define HOLD_EFFECT_SPEED_UP 17
#define HOLD_EFFECT_SP_ATTACK_UP 18
#define HOLD_EFFECT_SP_DEFENSE_UP 19
#define HOLD_EFFECT_CRITICAL_UP 20
#define HOLD_EFFECT_RANDOM_STAT_UP 21
#define HOLD_EFFECT_EVASION_UP 22
#define HOLD_EFFECT_RESTORE_STATS 23
#define HOLD_EFFECT_MACHO_BRACE 24
#define HOLD_EFFECT_EXP_SHARE 25
#define HOLD_EFFECT_QUICK_CLAW 26
#define HOLD_EFFECT_FRIENDSHIP_UP 27
#define HOLD_EFFECT_CURE_ATTRACT 28
#define HOLD_EFFECT_CHOICE_BAND 29
#define HOLD_EFFECT_FLINCH 30
#define HOLD_EFFECT_BUG_POWER 31
#define HOLD_EFFECT_DOUBLE_PRIZE 32
#define HOLD_EFFECT_REPEL 33
#define HOLD_EFFECT_SOUL_DEW 34
#define HOLD_EFFECT_DEEP_SEA_TOOTH 35
#define HOLD_EFFECT_DEEP_SEA_SCALE 36
#define HOLD_EFFECT_CAN_ALWAYS_RUN 37
#define HOLD_EFFECT_PREVENT_EVOLVE 38
#define HOLD_EFFECT_FOCUS_BAND 39
#define HOLD_EFFECT_LUCKY_EGG 40
#define HOLD_EFFECT_SCOPE_LENS 41
#define HOLD_EFFECT_STEEL_POWER 42
#define HOLD_EFFECT_LEFTOVERS 43
#define HOLD_EFFECT_DRAGON_SCALE 44
#define HOLD_EFFECT_LIGHT_BALL 45
#define HOLD_EFFECT_GROUND_POWER 46
#define HOLD_EFFECT_ROCK_POWER 47
#define HOLD_EFFECT_GRASS_POWER 48
#define HOLD_EFFECT_DARK_POWER 49
#define HOLD_EFFECT_FIGHTING_POWER 50
#define HOLD_EFFECT_ELECTRIC_POWER 51
#define HOLD_EFFECT_WATER_POWER 52
#define HOLD_EFFECT_FLYING_POWER 53
#define HOLD_EFFECT_POISON_POWER 54
#define HOLD_EFFECT_ICE_POWER 55
#define HOLD_EFFECT_GHOST_POWER 56
#define HOLD_EFFECT_PSYCHIC_POWER 57
#define HOLD_EFFECT_FIRE_POWER 58
#define HOLD_EFFECT_DRAGON_POWER 59
#define HOLD_EFFECT_NORMAL_POWER 60
#define HOLD_EFFECT_UP_GRADE 61
#define HOLD_EFFECT_SHELL_BELL 62
#define HOLD_EFFECT_LUCKY_PUNCH 63
#define HOLD_EFFECT_METAL_POWDER 64
#define HOLD_EFFECT_THICK_CLUB 65
#define HOLD_EFFECT_STICK 66
#endif // GUARD_HOLD_EFFECTS_H

19
include/constants/item.h Normal file
View File

@ -0,0 +1,19 @@
#ifndef GUARD_ITEM_CONSTANTS_H
#define GUARD_ITEM_CONSTANTS_H
// These constants are used in gItems
#define POCKET_NONE 0
#define POCKET_ITEMS 1
#define POCKET_POKE_BALLS 2
#define POCKET_TM_HM 3
#define POCKET_BERRIES 4
#define POCKET_KEY_ITEMS 5
#define ITEMS_POCKET 0
#define BALLS_POCKET 1
#define TMHM_POCKET 2
#define BERRIES_POCKET 3
#define KEYITEMS_POCKET 4
#define POCKETS_COUNT 5
#endif // GUARD_ITEM_CONSTANTS_H

View File

@ -0,0 +1,92 @@
#ifndef GUARD_CONSTANTS_ITEM_EFFECTS_H
#define GUARD_CONSTANTS_ITEM_EFFECTS_H
// field 0 masks
#define ITEM0_X_ATTACK 0x0F
#define ITEM0_DIRE_HIT 0x30 // Works the same way as the move Focus Energy.
#define ITEM0_SACRED_ASH 0x40
#define ITEM0_INFATUATION 0x80
// field 1 masks
#define ITEM1_X_SPEED 0x0F
#define ITEM1_X_DEFEND 0xF0
// field 2 masks
#define ITEM2_X_SPATK 0x0F
#define ITEM2_X_ACCURACY 0xF0
// field 3 masks
#define ITEM3_CONFUSION 0x1
#define ITEM3_PARALYSIS 0x2
#define ITEM3_FREEZE 0x4
#define ITEM3_BURN 0x8
#define ITEM3_POISON 0x10
#define ITEM3_SLEEP 0x20
#define ITEM3_LEVEL_UP 0x40
#define ITEM3_GUARD_SPEC 0x80 // Works the same way as the move Mist.
#define ITEM3_STATUS_ALL (ITEM3_CONFUSION | ITEM3_PARALYSIS | ITEM3_FREEZE | ITEM3_BURN | ITEM3_POISON | ITEM3_SLEEP)
// field 4 masks
#define ITEM4_EV_HP 0x1
#define ITEM4_EV_ATK 0x2
#define ITEM4_HEAL_HP 0x4
#define ITEM4_HEAL_PP 0x8
#define ITEM4_HEAL_PP_ONE 0x10
#define ITEM4_PP_UP 0x20
#define ITEM4_REVIVE 0x40
#define ITEM4_EVO_STONE 0x80
// field 5 masks
#define ITEM5_EV_DEF 0x1
#define ITEM5_EV_SPEED 0x2
#define ITEM5_EV_SPDEF 0x4
#define ITEM5_EV_SPATK 0x8
#define ITEM5_PP_MAX 0x10
#define ITEM5_FRIENDSHIP_LOW 0x20
#define ITEM5_FRIENDSHIP_MID 0x40
#define ITEM5_FRIENDSHIP_HIGH 0x80
#define ITEM5_FRIENDSHIP_ALL (ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID | ITEM5_FRIENDSHIP_HIGH)
// fields 6 and onwards are item-specific arguments
#define ITEM_EFFECT_ARG_START 6
// Special HP recovery amounts for ITEM4_HEAL_HP
#define ITEM6_HEAL_HP_FULL ((u8) -1)
#define ITEM6_HEAL_HP_HALF ((u8) -2)
#define ITEM6_HEAL_HP_LVL_UP ((u8) -3)
// Special PP recovery amounts for ITEM4_HEAL_PP
#define ITEM6_HEAL_PP_FULL 0x7F
// Amount of EV modified by ITEM4_EV_HP, ITEM4_EV_ATK, ITEM5_EV_DEF, ITEM5_EV_SPEED, ITEM5_EV_SPDEF and ITEM5_EV_SPATK
#define ITEM6_ADD_EV 10
#define ITEM6_SUBTRACT_EV -10
// Used for GetItemEffectType.
#define ITEM_EFFECT_X_ITEM 0
#define ITEM_EFFECT_RAISE_LEVEL 1
#define ITEM_EFFECT_HEAL_HP 2
#define ITEM_EFFECT_CURE_POISON 3
#define ITEM_EFFECT_CURE_SLEEP 4
#define ITEM_EFFECT_CURE_BURN 5
#define ITEM_EFFECT_CURE_FREEZE 6
#define ITEM_EFFECT_CURE_PARALYSIS 7
#define ITEM_EFFECT_CURE_CONFUSION 8
#define ITEM_EFFECT_CURE_INFATUATION 9
#define ITEM_EFFECT_SACRED_ASH 10
#define ITEM_EFFECT_CURE_ALL_STATUS 11
#define ITEM_EFFECT_ATK_EV 12
#define ITEM_EFFECT_HP_EV 13
#define ITEM_EFFECT_SPATK_EV 14
#define ITEM_EFFECT_SPDEF_EV 15
#define ITEM_EFFECT_SPEED_EV 16
#define ITEM_EFFECT_DEF_EV 17
#define ITEM_EFFECT_EVO_STONE 18
#define ITEM_EFFECT_PP_UP 19
#define ITEM_EFFECT_PP_MAX 20
#define ITEM_EFFECT_HEAL_PP 21
#define ITEM_EFFECT_NONE 22
#endif // GUARD_CONSTANTS_ITEM_EFFECTS_H

538
include/constants/items.h Normal file
View File

@ -0,0 +1,538 @@
#ifndef GUARD_CONSTANTS_ITEMS_H
#define GUARD_CONSTANTS_ITEMS_H
#define ITEM_NONE 0
// Balls
#define ITEM_MASTER_BALL 1
#define ITEM_ULTRA_BALL 2
#define ITEM_GREAT_BALL 3
#define ITEM_POKE_BALL 4
#define ITEM_SAFARI_BALL 5
#define ITEM_NET_BALL 6
#define ITEM_DIVE_BALL 7
#define ITEM_NEST_BALL 8
#define ITEM_REPEAT_BALL 9
#define ITEM_TIMER_BALL 10
#define ITEM_LUXURY_BALL 11
#define ITEM_PREMIER_BALL 12
// 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
#define ITEM_ANTIDOTE 14
#define ITEM_BURN_HEAL 15
#define ITEM_ICE_HEAL 16
#define ITEM_AWAKENING 17
#define ITEM_PARALYZE_HEAL 18
#define ITEM_FULL_RESTORE 19
#define ITEM_MAX_POTION 20
#define ITEM_HYPER_POTION 21
#define ITEM_SUPER_POTION 22
#define ITEM_FULL_HEAL 23
#define ITEM_REVIVE 24
#define ITEM_MAX_REVIVE 25
#define ITEM_FRESH_WATER 26
#define ITEM_SODA_POP 27
#define ITEM_LEMONADE 28
#define ITEM_MOOMOO_MILK 29
#define ITEM_ENERGY_POWDER 30
#define ITEM_ENERGY_ROOT 31
#define ITEM_HEAL_POWDER 32
#define ITEM_REVIVAL_HERB 33
#define ITEM_ETHER 34
#define ITEM_MAX_ETHER 35
#define ITEM_ELIXIR 36
#define ITEM_MAX_ELIXIR 37
#define ITEM_LAVA_COOKIE 38
#define ITEM_BLUE_FLUTE 39
#define ITEM_YELLOW_FLUTE 40
#define ITEM_RED_FLUTE 41
#define ITEM_BLACK_FLUTE 42
#define ITEM_WHITE_FLUTE 43
#define ITEM_BERRY_JUICE 44
#define ITEM_SACRED_ASH 45
#define ITEM_SHOAL_SALT 46
#define ITEM_SHOAL_SHELL 47
#define ITEM_RED_SHARD 48
#define ITEM_BLUE_SHARD 49
#define ITEM_YELLOW_SHARD 50
#define ITEM_GREEN_SHARD 51
#define ITEM_034 52
#define ITEM_035 53
#define ITEM_036 54
#define ITEM_037 55
#define ITEM_038 56
#define ITEM_039 57
#define ITEM_03A 58
#define ITEM_03B 59
#define ITEM_03C 60
#define ITEM_03D 61
#define ITEM_03E 62
#define ITEM_HP_UP 63
#define ITEM_PROTEIN 64
#define ITEM_IRON 65
#define ITEM_CARBOS 66
#define ITEM_CALCIUM 67
#define ITEM_RARE_CANDY 68
#define ITEM_PP_UP 69
#define ITEM_ZINC 70
#define ITEM_PP_MAX 71
#define ITEM_048 72
#define ITEM_GUARD_SPEC 73
#define ITEM_DIRE_HIT 74
#define ITEM_X_ATTACK 75
#define ITEM_X_DEFEND 76
#define ITEM_X_SPEED 77
#define ITEM_X_ACCURACY 78
#define ITEM_X_SPECIAL 79
#define ITEM_POKE_DOLL 80
#define ITEM_FLUFFY_TAIL 81
#define ITEM_052 82
#define ITEM_SUPER_REPEL 83
#define ITEM_MAX_REPEL 84
#define ITEM_ESCAPE_ROPE 85
#define ITEM_REPEL 86
#define ITEM_057 87
#define ITEM_058 88
#define ITEM_059 89
#define ITEM_05A 90
#define ITEM_05B 91
#define ITEM_05C 92
#define ITEM_SUN_STONE 93
#define ITEM_MOON_STONE 94
#define ITEM_FIRE_STONE 95
#define ITEM_THUNDER_STONE 96
#define ITEM_WATER_STONE 97
#define ITEM_LEAF_STONE 98
#define ITEM_063 99
#define ITEM_064 100
#define ITEM_065 101
#define ITEM_066 102
// Unusable
#define ITEM_TINY_MUSHROOM 103
#define ITEM_BIG_MUSHROOM 104
#define ITEM_069 105
#define ITEM_PEARL 106
#define ITEM_BIG_PEARL 107
#define ITEM_STARDUST 108
#define ITEM_STAR_PIECE 109
#define ITEM_NUGGET 110
#define ITEM_HEART_SCALE 111
#define ITEM_070 112
#define ITEM_071 113
#define ITEM_072 114
#define ITEM_073 115
#define ITEM_074 116
#define ITEM_075 117
#define ITEM_076 118
#define ITEM_077 119
#define ITEM_078 120
// Mails
#define ITEM_ORANGE_MAIL 121
#define ITEM_HARBOR_MAIL 122
#define ITEM_GLITTER_MAIL 123
#define ITEM_MECH_MAIL 124
#define ITEM_WOOD_MAIL 125
#define ITEM_WAVE_MAIL 126
#define ITEM_BEAD_MAIL 127
#define ITEM_SHADOW_MAIL 128
#define ITEM_TROPIC_MAIL 129
#define ITEM_DREAM_MAIL 130
#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
#define ITEM_PECHA_BERRY 135
#define ITEM_RAWST_BERRY 136
#define ITEM_ASPEAR_BERRY 137
#define ITEM_LEPPA_BERRY 138
#define ITEM_ORAN_BERRY 139
#define ITEM_PERSIM_BERRY 140
#define ITEM_LUM_BERRY 141
#define ITEM_SITRUS_BERRY 142
#define ITEM_FIGY_BERRY 143
#define ITEM_WIKI_BERRY 144
#define ITEM_MAGO_BERRY 145
#define ITEM_AGUAV_BERRY 146
#define ITEM_IAPAPA_BERRY 147
#define ITEM_RAZZ_BERRY 148
#define ITEM_BLUK_BERRY 149
#define ITEM_NANAB_BERRY 150
#define ITEM_WEPEAR_BERRY 151
#define ITEM_PINAP_BERRY 152
#define ITEM_POMEG_BERRY 153
#define ITEM_KELPSY_BERRY 154
#define ITEM_QUALOT_BERRY 155
#define ITEM_HONDEW_BERRY 156
#define ITEM_GREPA_BERRY 157
#define ITEM_TAMATO_BERRY 158
#define ITEM_CORNN_BERRY 159
#define ITEM_MAGOST_BERRY 160
#define ITEM_RABUTA_BERRY 161
#define ITEM_NOMEL_BERRY 162
#define ITEM_SPELON_BERRY 163
#define ITEM_PAMTRE_BERRY 164
#define ITEM_WATMEL_BERRY 165
#define ITEM_DURIN_BERRY 166
#define ITEM_BELUE_BERRY 167
#define ITEM_LIECHI_BERRY 168
#define ITEM_GANLON_BERRY 169
#define ITEM_SALAC_BERRY 170
#define ITEM_PETAYA_BERRY 171
#define ITEM_APICOT_BERRY 172
#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_UNUSED_BERRY_1 176
#define ITEM_UNUSED_BERRY_2 177
#define ITEM_UNUSED_BERRY_3 178
#define MAX_BERRY_INDEX ITEM_UNUSED_BERRY_3
// Battle Held items
#define ITEM_BRIGHT_POWDER 179
#define ITEM_WHITE_HERB 180
#define ITEM_MACHO_BRACE 181
#define ITEM_EXP_SHARE 182
#define ITEM_QUICK_CLAW 183
#define ITEM_SOOTHE_BELL 184
#define ITEM_MENTAL_HERB 185
#define ITEM_CHOICE_BAND 186
#define ITEM_KINGS_ROCK 187
#define ITEM_SILVER_POWDER 188
#define ITEM_AMULET_COIN 189
#define ITEM_CLEANSE_TAG 190
#define ITEM_SOUL_DEW 191
#define ITEM_DEEP_SEA_TOOTH 192
#define ITEM_DEEP_SEA_SCALE 193
#define ITEM_SMOKE_BALL 194
#define ITEM_EVERSTONE 195
#define ITEM_FOCUS_BAND 196
#define ITEM_LUCKY_EGG 197
#define ITEM_SCOPE_LENS 198
#define ITEM_METAL_COAT 199
#define ITEM_LEFTOVERS 200
#define ITEM_DRAGON_SCALE 201
#define ITEM_LIGHT_BALL 202
#define ITEM_SOFT_SAND 203
#define ITEM_HARD_STONE 204
#define ITEM_MIRACLE_SEED 205
#define ITEM_BLACK_GLASSES 206
#define ITEM_BLACK_BELT 207
#define ITEM_MAGNET 208
#define ITEM_MYSTIC_WATER 209
#define ITEM_SHARP_BEAK 210
#define ITEM_POISON_BARB 211
#define ITEM_NEVER_MELT_ICE 212
#define ITEM_SPELL_TAG 213
#define ITEM_TWISTED_SPOON 214
#define ITEM_CHARCOAL 215
#define ITEM_DRAGON_FANG 216
#define ITEM_SILK_SCARF 217
#define ITEM_UP_GRADE 218
#define ITEM_SHELL_BELL 219
#define ITEM_SEA_INCENSE 220
#define ITEM_LAX_INCENSE 221
#define ITEM_LUCKY_PUNCH 222
#define ITEM_METAL_POWDER 223
#define ITEM_THICK_CLUB 224
#define ITEM_STICK 225
#define ITEM_0E2 226
#define ITEM_0E3 227
#define ITEM_0E4 228
#define ITEM_0E5 229
#define ITEM_0E6 230
#define ITEM_0E7 231
#define ITEM_0E8 232
#define ITEM_0E9 233
#define ITEM_0EA 234
#define ITEM_0EB 235
#define ITEM_0EC 236
#define ITEM_0ED 237
#define ITEM_0EE 238
#define ITEM_0EF 239
#define ITEM_0F0 240
#define ITEM_0F1 241
#define ITEM_0F2 242
#define ITEM_0F3 243
#define ITEM_0F4 244
#define ITEM_0F5 245
#define ITEM_0F6 246
#define ITEM_0F7 247
#define ITEM_0F8 248
#define ITEM_0F9 249
#define ITEM_0FA 250
#define ITEM_0FB 251
#define ITEM_0FC 252
#define ITEM_0FD 253
// Contest held items
#define ITEM_RED_SCARF 254
#define ITEM_BLUE_SCARF 255
#define ITEM_PINK_SCARF 256
#define ITEM_GREEN_SCARF 257
#define ITEM_YELLOW_SCARF 258
// Key Items
#define ITEM_MACH_BIKE 259
#define ITEM_COIN_CASE 260
#define ITEM_ITEMFINDER 261
#define ITEM_OLD_ROD 262
#define ITEM_GOOD_ROD 263
#define ITEM_SUPER_ROD 264
#define ITEM_SS_TICKET 265
#define ITEM_CONTEST_PASS 266
#define ITEM_10B 267
#define ITEM_WAILMER_PAIL 268
#define ITEM_DEVON_GOODS 269
#define ITEM_SOOT_SACK 270
#define ITEM_BASEMENT_KEY 271
#define ITEM_ACRO_BIKE 272
#define ITEM_POKEBLOCK_CASE 273
#define ITEM_LETTER 274
#define ITEM_EON_TICKET 275
#define ITEM_RED_ORB 276
#define ITEM_BLUE_ORB 277
#define ITEM_SCANNER 278
#define ITEM_GO_GOGGLES 279
#define ITEM_METEORITE 280
#define ITEM_ROOM_1_KEY 281
#define ITEM_ROOM_2_KEY 282
#define ITEM_ROOM_4_KEY 283
#define ITEM_ROOM_6_KEY 284
#define ITEM_STORAGE_KEY 285
#define ITEM_ROOT_FOSSIL 286
#define ITEM_CLAW_FOSSIL 287
#define ITEM_DEVON_SCOPE 288
// TMs/HMs
#define ITEM_TM01 289
#define ITEM_TM02 290
#define ITEM_TM03 291
#define ITEM_TM04 292
#define ITEM_TM05 293
#define ITEM_TM06 294
#define ITEM_TM07 295
#define ITEM_TM08 296
#define ITEM_TM09 297
#define ITEM_TM10 298
#define ITEM_TM11 299
#define ITEM_TM12 300
#define ITEM_TM13 301
#define ITEM_TM14 302
#define ITEM_TM15 303
#define ITEM_TM16 304
#define ITEM_TM17 305
#define ITEM_TM18 306
#define ITEM_TM19 307
#define ITEM_TM20 308
#define ITEM_TM21 309
#define ITEM_TM22 310
#define ITEM_TM23 311
#define ITEM_TM24 312
#define ITEM_TM25 313
#define ITEM_TM26 314
#define ITEM_TM27 315
#define ITEM_TM28 316
#define ITEM_TM29 317
#define ITEM_TM30 318
#define ITEM_TM31 319
#define ITEM_TM32 320
#define ITEM_TM33 321
#define ITEM_TM34 322
#define ITEM_TM35 323
#define ITEM_TM36 324
#define ITEM_TM37 325
#define ITEM_TM38 326
#define ITEM_TM39 327
#define ITEM_TM40 328
#define ITEM_TM41 329
#define ITEM_TM42 330
#define ITEM_TM43 331
#define ITEM_TM44 332
#define ITEM_TM45 333
#define ITEM_TM46 334
#define ITEM_TM47 335
#define ITEM_TM48 336
#define ITEM_TM49 337
#define ITEM_TM50 338
#define ITEM_HM01 339
#define ITEM_HM02 340
#define ITEM_HM03 341
#define ITEM_HM04 342
#define ITEM_HM05 343
#define ITEM_HM06 344
#define ITEM_HM07 345
#define ITEM_HM08 346
#define ITEM_TM01_FOCUS_PUNCH ITEM_TM01
#define ITEM_TM02_DRAGON_CLAW ITEM_TM02
#define ITEM_TM03_WATER_PULSE ITEM_TM03
#define ITEM_TM04_CALM_MIND ITEM_TM04
#define ITEM_TM05_ROAR ITEM_TM05
#define ITEM_TM06_TOXIC ITEM_TM06
#define ITEM_TM07_HAIL ITEM_TM07
#define ITEM_TM08_BULK_UP ITEM_TM08
#define ITEM_TM09_BULLET_SEED ITEM_TM09
#define ITEM_TM10_HIDDEN_POWER ITEM_TM10
#define ITEM_TM11_SUNNY_DAY ITEM_TM11
#define ITEM_TM12_TAUNT ITEM_TM12
#define ITEM_TM13_ICE_BEAM ITEM_TM13
#define ITEM_TM14_BLIZZARD ITEM_TM14
#define ITEM_TM15_HYPER_BEAM ITEM_TM15
#define ITEM_TM16_LIGHT_SCREEN ITEM_TM16
#define ITEM_TM17_PROTECT ITEM_TM17
#define ITEM_TM18_RAIN_DANCE ITEM_TM18
#define ITEM_TM19_GIGA_DRAIN ITEM_TM19
#define ITEM_TM20_SAFEGUARD ITEM_TM20
#define ITEM_TM21_FRUSTRATION ITEM_TM21
#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
#define ITEM_TM26_EARTHQUAKE ITEM_TM26
#define ITEM_TM27_RETURN ITEM_TM27
#define ITEM_TM28_DIG ITEM_TM28
#define ITEM_TM29_PSYCHIC ITEM_TM29
#define ITEM_TM30_SHADOW_BALL ITEM_TM30
#define ITEM_TM31_BRICK_BREAK ITEM_TM31
#define ITEM_TM32_DOUBLE_TEAM ITEM_TM32
#define ITEM_TM33_REFLECT ITEM_TM33
#define ITEM_TM34_SHOCK_WAVE ITEM_TM34
#define ITEM_TM35_FLAMETHROWER ITEM_TM35
#define ITEM_TM36_SLUDGE_BOMB ITEM_TM36
#define ITEM_TM37_SANDSTORM ITEM_TM37
#define ITEM_TM38_FIRE_BLAST ITEM_TM38
#define ITEM_TM39_ROCK_TOMB ITEM_TM39
#define ITEM_TM40_AERIAL_ACE ITEM_TM40
#define ITEM_TM41_TORMENT ITEM_TM41
#define ITEM_TM42_FACADE ITEM_TM42
#define ITEM_TM43_SECRET_POWER ITEM_TM43
#define ITEM_TM44_REST ITEM_TM44
#define ITEM_TM45_ATTRACT ITEM_TM45
#define ITEM_TM46_THIEF ITEM_TM46
#define ITEM_TM47_STEEL_WING ITEM_TM47
#define ITEM_TM48_SKILL_SWAP ITEM_TM48
#define ITEM_TM49_SNATCH ITEM_TM49
#define ITEM_TM50_OVERHEAT ITEM_TM50
#define ITEM_HM01_CUT ITEM_HM01
#define ITEM_HM02_FLY ITEM_HM02
#define ITEM_HM03_SURF ITEM_HM03
#define ITEM_HM04_STRENGTH ITEM_HM04
#define ITEM_HM05_FLASH ITEM_HM05
#define ITEM_HM06_ROCK_SMASH ITEM_HM06
#define ITEM_HM07_WATERFALL ITEM_HM07
#define ITEM_HM08_DIVE ITEM_HM08
// Unknown
#define ITEM_15B 347
#define ITEM_15C 348
// FireRed/LeafGreen
#define ITEM_OAKS_PARCEL 349
#define ITEM_POKE_FLUTE 350
#define ITEM_SECRET_KEY 351
#define ITEM_BIKE_VOUCHER 352
#define ITEM_GOLD_TEETH 353
#define ITEM_OLD_AMBER 354
#define ITEM_CARD_KEY 355
#define ITEM_LIFT_KEY 356
#define ITEM_HELIX_FOSSIL 357
#define ITEM_DOME_FOSSIL 358
#define ITEM_SILPH_SCOPE 359
#define ITEM_BICYCLE 360
#define ITEM_TOWN_MAP 361
#define ITEM_VS_SEEKER 362
#define ITEM_FAME_CHECKER 363
#define ITEM_TM_CASE 364
#define ITEM_BERRY_POUCH 365
#define ITEM_TEACHY_TV 366
#define ITEM_TRI_PASS 367
#define ITEM_RAINBOW_PASS 368
#define ITEM_TEA 369
#define ITEM_MYSTIC_TICKET 370
#define ITEM_AURORA_TICKET 371
#define ITEM_POWDER_JAR 372
#define ITEM_RUBY 373
#define ITEM_SAPPHIRE 374
// Emerald
#define ITEM_MAGMA_EMBLEM 375
#define ITEM_OLD_SEA_MAP 376
#define ITEMS_COUNT 377
#define ITEM_FIELD_ARROW ITEMS_COUNT
// Range of berries given out by various NPCS
#define FIRST_BERRY_MASTER_BERRY ITEM_POMEG_BERRY
#define LAST_BERRY_MASTER_BERRY ITEM_NOMEL_BERRY
#define FIRST_BERRY_MASTER_WIFE_BERRY ITEM_CHERI_BERRY
#define LAST_BERRY_MASTER_WIFE_BERRY ITEM_SITRUS_BERRY
#define FIRST_KIRI_BERRY ITEM_POMEG_BERRY
#define LAST_KIRI_BERRY ITEM_NOMEL_BERRY
#define FIRST_ROUTE_114_MAN_BERRY ITEM_RAZZ_BERRY
#define LAST_ROUTE_114_MAN_BERRY ITEM_PINAP_BERRY
#define NUM_BERRY_MASTER_BERRIES (LAST_BERRY_MASTER_BERRY - FIRST_BERRY_MASTER_BERRY + 1)
#define NUM_BERRY_MASTER_BERRIES_SKIPPED (FIRST_BERRY_MASTER_BERRY - FIRST_BERRY_INDEX)
#define NUM_BERRY_MASTER_WIFE_BERRIES (LAST_BERRY_MASTER_WIFE_BERRY - FIRST_BERRY_MASTER_WIFE_BERRY + 1)
#define NUM_KIRI_BERRIES (LAST_KIRI_BERRY - FIRST_KIRI_BERRY + 1)
#define NUM_KIRI_BERRIES_SKIPPED (FIRST_KIRI_BERRY - FIRST_BERRY_INDEX)
#define NUM_ROUTE_114_MAN_BERRIES (LAST_ROUTE_114_MAN_BERRY - FIRST_ROUTE_114_MAN_BERRY + 1)
#define NUM_ROUTE_114_MAN_BERRIES_SKIPPED (FIRST_ROUTE_114_MAN_BERRY - FIRST_BERRY_INDEX)
#define ITEM_TO_BERRY(itemId)(((itemId) - FIRST_BERRY_INDEX) + 1)
#define ITEM_TO_MAIL(itemId)((itemId) - FIRST_MAIL_INDEX)
#define MAIL_NONE 0xFF
#define NUM_TECHNICAL_MACHINES 50
#define NUM_HIDDEN_MACHINES 8
#define MAX_BAG_ITEM_CAPACITY 99
#define MAX_PC_ITEM_CAPACITY 999
#define MAX_BERRY_CAPACITY 999
#define BAG_ITEM_CAPACITY_DIGITS 2
#define BERRY_CAPACITY_DIGITS 3
#define MAX_ITEM_DIGITS BERRY_CAPACITY_DIGITS
// Secondary IDs for rods
#define OLD_ROD 0
#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) <= MAX_BERRY_INDEX)
#endif // GUARD_CONSTANTS_ITEMS_H

450
include/constants/layouts.h Executable file
View File

@ -0,0 +1,450 @@
#ifndef GUARD_CONSTANTS_LAYOUTS_H
#define GUARD_CONSTANTS_LAYOUTS_H
//
// DO NOT MODIFY THIS FILE! It is auto-generated from data/layouts/layouts.json
//
#define LAYOUT_PETALBURG_CITY 1
#define LAYOUT_SLATEPORT_CITY 2
#define LAYOUT_MAUVILLE_CITY 3
#define LAYOUT_RUSTBORO_CITY 4
#define LAYOUT_FORTREE_CITY 5
#define LAYOUT_LILYCOVE_CITY 6
#define LAYOUT_MOSSDEEP_CITY 7
#define LAYOUT_SOOTOPOLIS_CITY 8
#define LAYOUT_EVER_GRANDE_CITY 9
#define LAYOUT_LITTLEROOT_TOWN 10
#define LAYOUT_OLDALE_TOWN 11
#define LAYOUT_DEWFORD_TOWN 12
#define LAYOUT_LAVARIDGE_TOWN 13
#define LAYOUT_FALLARBOR_TOWN 14
#define LAYOUT_VERDANTURF_TOWN 15
#define LAYOUT_PACIFIDLOG_TOWN 16
#define LAYOUT_ROUTE101 17
#define LAYOUT_ROUTE102 18
#define LAYOUT_ROUTE103 19
#define LAYOUT_ROUTE104 20
#define LAYOUT_ROUTE105 21
#define LAYOUT_ROUTE106 22
#define LAYOUT_ROUTE107 23
#define LAYOUT_ROUTE108 24
#define LAYOUT_ROUTE109 25
#define LAYOUT_ROUTE110 26
#define LAYOUT_ROUTE111 27
#define LAYOUT_ROUTE112 28
#define LAYOUT_ROUTE113 29
#define LAYOUT_ROUTE114 30
#define LAYOUT_ROUTE115 31
#define LAYOUT_ROUTE116 32
#define LAYOUT_ROUTE117 33
#define LAYOUT_ROUTE118 34
#define LAYOUT_ROUTE119 35
#define LAYOUT_ROUTE120 36
#define LAYOUT_ROUTE121 37
#define LAYOUT_ROUTE122 38
#define LAYOUT_ROUTE123 39
#define LAYOUT_ROUTE124 40
#define LAYOUT_ROUTE125 41
#define LAYOUT_ROUTE126 42
#define LAYOUT_ROUTE127 43
#define LAYOUT_ROUTE128 44
#define LAYOUT_ROUTE129 45
#define LAYOUT_ROUTE130_MIRAGE_ISLAND 46
#define LAYOUT_ROUTE131 47
#define LAYOUT_ROUTE132 48
#define LAYOUT_ROUTE133 49
#define LAYOUT_ROUTE134 50
#define LAYOUT_UNDERWATER_ROUTE126 51
#define LAYOUT_UNDERWATER_ROUTE127 52
#define LAYOUT_UNDERWATER_ROUTE128 53
#define LAYOUT_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F 54
#define LAYOUT_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F 55
#define LAYOUT_LITTLEROOT_TOWN_MAYS_HOUSE_1F 56
#define LAYOUT_LITTLEROOT_TOWN_MAYS_HOUSE_2F 57
#define LAYOUT_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB 58
#define LAYOUT_HOUSE1 59
#define LAYOUT_HOUSE2 60
#define LAYOUT_POKEMON_CENTER_1F 61
#define LAYOUT_POKEMON_CENTER_2F 62
#define LAYOUT_MART 63
#define LAYOUT_HOUSE3 64
#define LAYOUT_DEWFORD_TOWN_GYM 65
#define LAYOUT_DEWFORD_TOWN_HALL 66
#define LAYOUT_HOUSE4 67
#define LAYOUT_LAVARIDGE_TOWN_HERB_SHOP 68
#define LAYOUT_LAVARIDGE_TOWN_GYM_1F 69
#define LAYOUT_LAVARIDGE_TOWN_GYM_B1F 70
#define LAYOUT_LAVARIDGE_TOWN_POKEMON_CENTER_1F 71
#define LAYOUT_FALLARBOR_TOWN_LEFTOVER_RSCONTEST_LOBBY 72
#define LAYOUT_FALLARBOR_TOWN_LEFTOVER_RSCONTEST_HALL 73
#define LAYOUT_LILYCOVE_CITY_HOUSE2 74
#define LAYOUT_UNUSED_CONTEST_ROOM1 75
#define LAYOUT_VERDANTURF_TOWN_WANDAS_HOUSE 76
#define LAYOUT_PACIFIDLOG_TOWN_HOUSE1 77
#define LAYOUT_PACIFIDLOG_TOWN_HOUSE2 78
#define LAYOUT_PETALBURG_CITY_GYM 79
#define LAYOUT_HOUSE_WITH_BED 80
#define LAYOUT_SLATEPORT_CITY_STERNS_SHIPYARD_1F 81
#define LAYOUT_SLATEPORT_CITY_STERNS_SHIPYARD_2F 82
#define LAYOUT_UNUSED_CONTEST_ROOM2 83
#define LAYOUT_UNUSED_CONTEST_ROOM3 84
#define LAYOUT_SLATEPORT_CITY_POKEMON_FAN_CLUB 85
#define LAYOUT_SLATEPORT_CITY_OCEANIC_MUSEUM_1F 86
#define LAYOUT_SLATEPORT_CITY_OCEANIC_MUSEUM_2F 87
#define LAYOUT_HARBOR 88
#define LAYOUT_MAUVILLE_CITY_GYM 89
#define LAYOUT_MAUVILLE_CITY_BIKE_SHOP 90
#define LAYOUT_MAUVILLE_CITY_GAME_CORNER 91
#define LAYOUT_RUSTBORO_CITY_DEVON_CORP_1F 92
#define LAYOUT_RUSTBORO_CITY_DEVON_CORP_2F 93
#define LAYOUT_RUSTBORO_CITY_GYM 94
#define LAYOUT_RUSTBORO_CITY_POKEMON_SCHOOL 95
#define LAYOUT_RUSTBORO_CITY_HOUSE 96
#define LAYOUT_RUSTBORO_CITY_HOUSE1 97
#define LAYOUT_RUSTBORO_CITY_CUTTERS_HOUSE 98
#define LAYOUT_FORTREE_CITY_HOUSE1 99
#define LAYOUT_FORTREE_CITY_GYM 100
#define LAYOUT_FORTREE_CITY_HOUSE2 101
#define LAYOUT_ROUTE104_MR_BRINEYS_HOUSE 102
#define LAYOUT_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F 103
#define LAYOUT_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F 104
#define LAYOUT_LILYCOVE_CITY_CONTEST_LOBBY 105
#define LAYOUT_LILYCOVE_CITY_CONTEST_HALL 106
#define LAYOUT_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB 107
#define LAYOUT_MOSSDEEP_CITY_GYM 108
#define LAYOUT_SOOTOPOLIS_CITY_GYM_1F 109
#define LAYOUT_SOOTOPOLIS_CITY_GYM_B1F 110
#define LAYOUT_EVER_GRANDE_CITY_SIDNEYS_ROOM 111
#define LAYOUT_EVER_GRANDE_CITY_PHOEBES_ROOM 112
#define LAYOUT_EVER_GRANDE_CITY_GLACIAS_ROOM 113
#define LAYOUT_EVER_GRANDE_CITY_DRAKES_ROOM 114
#define LAYOUT_EVER_GRANDE_CITY_CHAMPIONS_ROOM 115
#define LAYOUT_EVER_GRANDE_CITY_SHORT_HALL 116
#define LAYOUT_ROUTE104_PRETTY_PETAL_FLOWER_SHOP 117
#define LAYOUT_CABLE_CAR_STATION 118
#define LAYOUT_ROUTE114_FOSSIL_MANIACS_HOUSE 119
#define LAYOUT_ROUTE114_FOSSIL_MANIACS_TUNNEL 120
#define LAYOUT_ROUTE114_LANETTES_HOUSE 121
#define LAYOUT_ROUTE116_TUNNELERS_REST_HOUSE 122
#define LAYOUT_ROUTE117_POKEMON_DAY_CARE 123
#define LAYOUT_ROUTE121_SAFARI_ZONE_ENTRANCE 124
#define LAYOUT_METEOR_FALLS_1F_1R 125
#define LAYOUT_METEOR_FALLS_1F_2R 126
#define LAYOUT_METEOR_FALLS_B1F_1R 127
#define LAYOUT_METEOR_FALLS_B1F_2R 128
#define LAYOUT_RUSTURF_TUNNEL 129
#define LAYOUT_UNDERWATER_SOOTOPOLIS_CITY 130
#define LAYOUT_DESERT_RUINS 131
#define LAYOUT_GRANITE_CAVE_1F 132
#define LAYOUT_GRANITE_CAVE_B1F 133
#define LAYOUT_GRANITE_CAVE_B2F 134
#define LAYOUT_PETALBURG_WOODS 135
#define LAYOUT_MT_CHIMNEY 136
#define LAYOUT_MT_PYRE_1F 137
#define LAYOUT_MT_PYRE_2F 138
#define LAYOUT_MT_PYRE_3F 139
#define LAYOUT_MT_PYRE_4F 140
#define LAYOUT_MT_PYRE_5F 141
#define LAYOUT_MT_PYRE_6F 142
#define LAYOUT_AQUA_HIDEOUT_1F 143
#define LAYOUT_AQUA_HIDEOUT_B1F 144
#define LAYOUT_AQUA_HIDEOUT_B2F 145
#define LAYOUT_UNDERWATER_SEAFLOOR_CAVERN 146
#define LAYOUT_SEAFLOOR_CAVERN_ENTRANCE 147
#define LAYOUT_SEAFLOOR_CAVERN_ROOM1 148
#define LAYOUT_SEAFLOOR_CAVERN_ROOM2 149
#define LAYOUT_SEAFLOOR_CAVERN_ROOM3 150
#define LAYOUT_SEAFLOOR_CAVERN_ROOM4 151
#define LAYOUT_SEAFLOOR_CAVERN_ROOM5 152
#define LAYOUT_SEAFLOOR_CAVERN_ROOM6 153
#define LAYOUT_SEAFLOOR_CAVERN_ROOM7 154
#define LAYOUT_SEAFLOOR_CAVERN_ROOM8 155
#define LAYOUT_SEAFLOOR_CAVERN_ROOM9 156
#define LAYOUT_CAVE_OF_ORIGIN_ENTRANCE 157
#define LAYOUT_CAVE_OF_ORIGIN_1F 158
#define LAYOUT_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP1 159
#define LAYOUT_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP2 160
#define LAYOUT_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP3 161
#define LAYOUT_CAVE_OF_ORIGIN_B1F 162
#define LAYOUT_VICTORY_ROAD_1F 163
#define LAYOUT_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM 164
#define LAYOUT_SHOAL_CAVE_LOW_TIDE_INNER_ROOM 165
#define LAYOUT_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM 166
#define LAYOUT_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM 167
#define LAYOUT_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM 168
#define LAYOUT_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM 169
#define LAYOUT_UNUSED_CAVE1 170
#define LAYOUT_UNUSED_CAVE2 171
#define LAYOUT_UNUSED_CAVE3 172
#define LAYOUT_UNUSED_CAVE4 173
#define LAYOUT_UNUSED_CAVE5 174
#define LAYOUT_UNUSED_CAVE6 175
#define LAYOUT_UNUSED_CAVE7 176
#define LAYOUT_UNUSED_CAVE8 177
#define LAYOUT_UNUSED_CAVE9 178
#define LAYOUT_UNUSED_CAVE10 179
#define LAYOUT_UNUSED_CAVE11 180
#define LAYOUT_UNUSED_CAVE12 181
#define LAYOUT_UNUSED_CAVE13 182
#define LAYOUT_UNUSED_CAVE14 183
#define LAYOUT_NEW_MAUVILLE_ENTRANCE 184
#define LAYOUT_NEW_MAUVILLE_INSIDE 185
#define LAYOUT_ABANDONED_SHIP_DECK 186
#define LAYOUT_ABANDONED_SHIP_CORRIDORS_1F 187
#define LAYOUT_ABANDONED_SHIP_ROOMS_1F 188
#define LAYOUT_ABANDONED_SHIP_CORRIDORS_B1F 189
#define LAYOUT_ABANDONED_SHIP_ROOMS_B1F 190
#define LAYOUT_ABANDONED_SHIP_ROOMS2_B1F 191
#define LAYOUT_ABANDONED_SHIP_UNDERWATER1 192
#define LAYOUT_ABANDONED_SHIP_ROOM_B1F 193
#define LAYOUT_ABANDONED_SHIP_ROOMS2_1F 194
#define LAYOUT_ABANDONED_SHIP_CAPTAINS_OFFICE 195
#define LAYOUT_ABANDONED_SHIP_UNDERWATER2 196
#define LAYOUT_SECRET_BASE_RED_CAVE1 197
#define LAYOUT_SECRET_BASE_BROWN_CAVE1 198
#define LAYOUT_SECRET_BASE_BLUE_CAVE1 199
#define LAYOUT_SECRET_BASE_YELLOW_CAVE1 200
#define LAYOUT_SECRET_BASE_TREE1 201
#define LAYOUT_SECRET_BASE_SHRUB1 202
#define LAYOUT_SECRET_BASE_RED_CAVE2 203
#define LAYOUT_SECRET_BASE_BROWN_CAVE2 204
#define LAYOUT_SECRET_BASE_BLUE_CAVE2 205
#define LAYOUT_SECRET_BASE_YELLOW_CAVE2 206
#define LAYOUT_SECRET_BASE_TREE2 207
#define LAYOUT_SECRET_BASE_SHRUB2 208
#define LAYOUT_SECRET_BASE_RED_CAVE3 209
#define LAYOUT_SECRET_BASE_BROWN_CAVE3 210
#define LAYOUT_SECRET_BASE_BLUE_CAVE3 211
#define LAYOUT_SECRET_BASE_YELLOW_CAVE3 212
#define LAYOUT_SECRET_BASE_TREE3 213
#define LAYOUT_SECRET_BASE_SHRUB3 214
#define LAYOUT_SECRET_BASE_RED_CAVE4 215
#define LAYOUT_SECRET_BASE_BROWN_CAVE4 216
#define LAYOUT_SECRET_BASE_BLUE_CAVE4 217
#define LAYOUT_SECRET_BASE_YELLOW_CAVE4 218
#define LAYOUT_SECRET_BASE_TREE4 219
#define LAYOUT_SECRET_BASE_SHRUB4 220
#define LAYOUT_BATTLE_COLOSSEUM_2P 221
#define LAYOUT_TRADE_CENTER 222
#define LAYOUT_RECORD_CORNER 223
#define LAYOUT_BATTLE_COLOSSEUM_4P 224
#define LAYOUT_CONTEST_HALL 225
#define LAYOUT_UNUSED_CONTEST_HALL1 226
#define LAYOUT_UNUSED_CONTEST_HALL2 227
#define LAYOUT_UNUSED_CONTEST_HALL3 228
#define LAYOUT_UNUSED_CONTEST_HALL4 229
#define LAYOUT_UNUSED_CONTEST_HALL5 230
#define LAYOUT_UNUSED_CONTEST_HALL6 231
#define LAYOUT_CONTEST_HALL_BEAUTY 232
#define LAYOUT_CONTEST_HALL_TOUGH 233
#define LAYOUT_CONTEST_HALL_COOL 234
#define LAYOUT_CONTEST_HALL_SMART 235
#define LAYOUT_CONTEST_HALL_CUTE 236
#define LAYOUT_INSIDE_OF_TRUCK 237
#define LAYOUT_SAFARI_ZONE_NORTHWEST 238
#define LAYOUT_SAFARI_ZONE_NORTH 239
#define LAYOUT_SAFARI_ZONE_SOUTHWEST 240
#define LAYOUT_SAFARI_ZONE_SOUTH 241
#define LAYOUT_UNUSED_OUTDOOR_AREA 242
#define LAYOUT_ROUTE109_SEASHORE_HOUSE 243
#define LAYOUT_ROUTE110_TRICK_HOUSE_ENTRANCE 244
#define LAYOUT_ROUTE110_TRICK_HOUSE_END 245
#define LAYOUT_ROUTE110_TRICK_HOUSE_CORRIDOR 246
#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE1 247
#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE2 248
#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE3 249
#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE4 250
#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE5 251
#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE6 252
#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE7 253
#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE8 254
#define LAYOUT_FORTREE_CITY_DECORATION_SHOP 255
#define LAYOUT_ROUTE110_SEASIDE_CYCLING_ROAD_ENTRANCE 256
#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_1F 257
#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_2F 258
#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_3F 259
#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_4F 260
#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_5F 261
#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP 262
#define LAYOUT_ROUTE130 263
#define LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY 264
#define LAYOUT_BATTLE_FRONTIER_OUTSIDE_WEST 265
#define LAYOUT_BATTLE_ELEVATOR 266
#define LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR 267
#define LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM 268
#define LAYOUT_RUSTBORO_CITY_DEVON_CORP_3F 269
#define LAYOUT_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F 270
#define LAYOUT_ROUTE119_WEATHER_INSTITUTE_1F 271
#define LAYOUT_ROUTE119_WEATHER_INSTITUTE_2F 272
#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR 273
#define LAYOUT_UNDERWATER_ROUTE124 274
#define LAYOUT_MOSSDEEP_CITY_SPACE_CENTER_1F 275
#define LAYOUT_MOSSDEEP_CITY_SPACE_CENTER_2F 276
#define LAYOUT_SS_TIDAL_CORRIDOR 277
#define LAYOUT_SS_TIDAL_LOWER_DECK 278
#define LAYOUT_SS_TIDAL_ROOMS 279
#define LAYOUT_ISLAND_CAVE 280
#define LAYOUT_ANCIENT_TOMB 281
#define LAYOUT_UNDERWATER_ROUTE134 282
#define LAYOUT_UNDERWATER_SEALED_CHAMBER 283
#define LAYOUT_SEALED_CHAMBER_OUTER_ROOM 284
#define LAYOUT_VICTORY_ROAD_B1F 285
#define LAYOUT_VICTORY_ROAD_B2F 286
#define LAYOUT_ROUTE104_PROTOTYPE 287
#define LAYOUT_GRANITE_CAVE_STEVENS_ROOM 288
#define LAYOUT_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS 289
#define LAYOUT_SOUTHERN_ISLAND_EXTERIOR 290
#define LAYOUT_SOUTHERN_ISLAND_INTERIOR 291
#define LAYOUT_JAGGED_PASS 292
#define LAYOUT_FIERY_PATH 293
#define LAYOUT_RUSTBORO_CITY_FLAT2_1F 294
#define LAYOUT_RUSTBORO_CITY_FLAT2_2F 295
#define LAYOUT_RUSTBORO_CITY_FLAT2_3F 296
#define LAYOUT_SOOTOPOLIS_CITY_LOTAD_AND_SEEDOT_HOUSE 297
#define LAYOUT_EVER_GRANDE_CITY_HALL_OF_FAME 298
#define LAYOUT_LILYCOVE_CITY_COVE_LILY_MOTEL_1F 299
#define LAYOUT_LILYCOVE_CITY_COVE_LILY_MOTEL_2F 300
#define LAYOUT_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE 301
#define LAYOUT_MT_PYRE_EXTERIOR 302
#define LAYOUT_MT_PYRE_SUMMIT 303
#define LAYOUT_SEALED_CHAMBER_INNER_ROOM 304
#define LAYOUT_MOSSDEEP_CITY_GAME_CORNER_1F 305
#define LAYOUT_MOSSDEEP_CITY_GAME_CORNER_B1F 306
#define LAYOUT_SOOTOPOLIS_CITY_HOUSE1 307
#define LAYOUT_SOOTOPOLIS_CITY_HOUSE2 308
#define LAYOUT_SOOTOPOLIS_CITY_HOUSE3 309
#define LAYOUT_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS 310
#define LAYOUT_SCORCHED_SLAB 311
#define LAYOUT_CAVE_OF_ORIGIN_UNUSED_B4F_LAVA 312
#define LAYOUT_RUSTBORO_CITY_FLAT1_1F 313
#define LAYOUT_RUSTBORO_CITY_FLAT1_2F 314
#define LAYOUT_EVER_GRANDE_CITY_HALL4 315
#define LAYOUT_AQUA_HIDEOUT_UNUSED_RUBY_MAP1 316
#define LAYOUT_AQUA_HIDEOUT_UNUSED_RUBY_MAP2 317
#define LAYOUT_AQUA_HIDEOUT_UNUSED_RUBY_MAP3 318
#define LAYOUT_ROUTE131_SKY_PILLAR 319
#define LAYOUT_SKY_PILLAR_ENTRANCE 320
#define LAYOUT_SKY_PILLAR_OUTSIDE 321
#define LAYOUT_SKY_PILLAR_1F 322
#define LAYOUT_SKY_PILLAR_2F 323
#define LAYOUT_SKY_PILLAR_3F 324
#define LAYOUT_SKY_PILLAR_4F 325
#define LAYOUT_SEAFLOOR_CAVERN_ROOM9_LAVA 326
#define LAYOUT_MOSSDEEP_CITY_STEVENS_HOUSE 327
#define LAYOUT_SHOAL_CAVE_LOW_TIDE_ICE_ROOM 328
#define LAYOUT_SAFARI_ZONE_REST_HOUSE 329
#define LAYOUT_SKY_PILLAR_5F 330
#define LAYOUT_SKY_PILLAR_TOP 331
#define LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_LOBBY 332
#define LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR 333
#define LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM 334
#define LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM 335
#define LAYOUT_MAGMA_HIDEOUT_1F 336
#define LAYOUT_MAGMA_HIDEOUT_2F_1R 337
#define LAYOUT_MAGMA_HIDEOUT_2F_2R 338
#define LAYOUT_MAGMA_HIDEOUT_3F_1R 339
#define LAYOUT_MAGMA_HIDEOUT_3F_2R 340
#define LAYOUT_MAGMA_HIDEOUT_4F 341
#define LAYOUT_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY 342
#define LAYOUT_BATTLE_FRONTIER_BATTLE_PALACE_CORRIDOR 343
#define LAYOUT_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM 344
#define LAYOUT_BATTLE_FRONTIER_OUTSIDE_EAST 345
#define LAYOUT_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY 346
#define LAYOUT_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM 347
#define LAYOUT_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM 348
#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY 349
#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR 350
#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM 351
#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL 352
#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL 353
#define LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY 354
#define LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR 355
#define LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM 356
#define LAYOUT_SOOTOPOLIS_CITY_LEGENDS_BATTLE 357
#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS 358
#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_UNUSED 359
#define LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY 360
#define LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_FLOOR 361
#define LAYOUT_BATTLE_PYRAMID_SQUARE01 362
#define LAYOUT_BATTLE_PYRAMID_SQUARE02 363
#define LAYOUT_BATTLE_PYRAMID_SQUARE03 364
#define LAYOUT_BATTLE_PYRAMID_SQUARE04 365
#define LAYOUT_BATTLE_PYRAMID_SQUARE05 366
#define LAYOUT_BATTLE_PYRAMID_SQUARE06 367
#define LAYOUT_BATTLE_PYRAMID_SQUARE07 368
#define LAYOUT_BATTLE_PYRAMID_SQUARE08 369
#define LAYOUT_BATTLE_PYRAMID_SQUARE09 370
#define LAYOUT_BATTLE_PYRAMID_SQUARE10 371
#define LAYOUT_BATTLE_PYRAMID_SQUARE11 372
#define LAYOUT_BATTLE_PYRAMID_SQUARE12 373
#define LAYOUT_BATTLE_PYRAMID_SQUARE13 374
#define LAYOUT_BATTLE_PYRAMID_SQUARE14 375
#define LAYOUT_BATTLE_PYRAMID_SQUARE15 376
#define LAYOUT_BATTLE_PYRAMID_SQUARE16 377
#define LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP 378
#define LAYOUT_MAGMA_HIDEOUT_3F_3R 379
#define LAYOUT_MAGMA_HIDEOUT_2F_3R 380
#define LAYOUT_MIRAGE_TOWER_1F 381
#define LAYOUT_MIRAGE_TOWER_2F 382
#define LAYOUT_MIRAGE_TOWER_3F 383
#define LAYOUT_BATTLE_TENT_LOBBY 384
#define LAYOUT_BATTLE_TENT_CORRIDOR 385
#define LAYOUT_BATTLE_TENT_BATTLE_ROOM 386
#define LAYOUT_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM 387
#define LAYOUT_MIRAGE_TOWER_4F 388
#define LAYOUT_DESERT_UNDERPASS 389
#define LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_PARTNER_ROOM 390
#define LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_CORRIDOR 391
#define LAYOUT_ROUTE111_NO_MIRAGE_TOWER 392
#define LAYOUT_UNION_ROOM 393
#define LAYOUT_SAFARI_ZONE_NORTHEAST 394
#define LAYOUT_SAFARI_ZONE_SOUTHEAST 395
#define LAYOUT_BATTLE_FRONTIER_RANKING_HALL 396
#define LAYOUT_BATTLE_FRONTIER_LOUNGE1 397
#define LAYOUT_BATTLE_FRONTIER_EXCHANGE_SERVICE_CORNER 398
#define LAYOUT_BATTLE_FRONTIER_RECEPTION_GATE 399
#define LAYOUT_ARTISAN_CAVE_B1F 400
#define LAYOUT_ARTISAN_CAVE_1F 401
#define LAYOUT_FARAWAY_ISLAND_ENTRANCE 402
#define LAYOUT_FARAWAY_ISLAND_INTERIOR 403
#define LAYOUT_BIRTH_ISLAND_EXTERIOR 404
#define LAYOUT_ISLAND_HARBOR 405
#define LAYOUT_UNDERWATER_MARINE_CAVE 406
#define LAYOUT_MARINE_CAVE_ENTRANCE 407
#define LAYOUT_TERRA_CAVE_ENTRANCE 408
#define LAYOUT_TERRA_CAVE_END 409
#define LAYOUT_UNDERWATER_ROUTE105 410
#define LAYOUT_UNDERWATER_ROUTE125 411
#define LAYOUT_UNDERWATER_ROUTE129 412
#define LAYOUT_MARINE_CAVE_END 413
#define LAYOUT_TRAINER_HILL_ENTRANCE 414
#define LAYOUT_TRAINER_HILL_1F 415
#define LAYOUT_TRAINER_HILL_2F 416
#define LAYOUT_TRAINER_HILL_3F 417
#define LAYOUT_TRAINER_HILL_4F 418
#define LAYOUT_TRAINER_HILL_ROOF 419
#define LAYOUT_ALTERING_CAVE 420
#define LAYOUT_NAVEL_ROCK_EXTERIOR 421
#define LAYOUT_NAVEL_ROCK_ENTRANCE 422
#define LAYOUT_NAVEL_ROCK_TOP 423
#define LAYOUT_NAVEL_ROCK_BOTTOM 424
#define LAYOUT_NAVEL_ROCK_LADDER_ROOM1 425
#define LAYOUT_NAVEL_ROCK_LADDER_ROOM2 426
#define LAYOUT_NAVEL_ROCK_B1F 427
#define LAYOUT_NAVEL_ROCK_FORK 428
#define LAYOUT_BATTLE_FRONTIER_LOUNGE2 429
#define LAYOUT_BATTLE_FRONTIER_SCOTTS_HOUSE 430
#define LAYOUT_METEOR_FALLS_STEVENS_CAVE 431
#define LAYOUT_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB_WITH_TABLE 432
#define LAYOUT_SKY_PILLAR_1F_CLEAN 433
#define LAYOUT_SKY_PILLAR_2F_CLEAN 434
#define LAYOUT_SKY_PILLAR_3F_CLEAN 435
#define LAYOUT_SKY_PILLAR_4F_CLEAN 436
#define LAYOUT_SKY_PILLAR_5F_CLEAN 437
#define LAYOUT_SKY_PILLAR_TOP_CLEAN 438
#define LAYOUT_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F 439
#define LAYOUT_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_B1F 440
#define LAYOUT_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F_STAIRS_UNBLOCKED 441
#endif // GUARD_CONSTANTS_LAYOUTS_H

View File

@ -0,0 +1,30 @@
#ifndef GUARD_LILYCOVE_LADY_CONSTANTS_H
#define GUARD_LILYCOVE_LADY_CONSTANTS_H
#define LILYCOVE_LADY_QUIZ 0
#define LILYCOVE_LADY_FAVOR 1
#define LILYCOVE_LADY_CONTEST 2
#define LILYCOVE_LADY_COUNT 3
#define LILYCOVE_LADY_STATE_READY 0
#define LILYCOVE_LADY_STATE_COMPLETED 1
#define LILYCOVE_LADY_STATE_PRIZE 2
#define LILYCOVE_LADY_GIFT_THRESHOLD 5
#define QUIZ_AUTHOR_PLAYER 0
#define QUIZ_AUTHOR_OTHER_PLAYER 1
#define QUIZ_AUTHOR_LADY 2
// Would be redundant with the above set if GF hadn't mixed the order
#define QUIZ_AUTHOR_NAME_LADY 0
#define QUIZ_AUTHOR_NAME_PLAYER 1
#define QUIZ_AUTHOR_NAME_OTHER_PLAYER 2
// Constants for how many good Pokéblocks the Contest Lady was given
// This determines how her performance is described when her TV show comes on
#define CONTEST_LADY_NORMAL 0
#define CONTEST_LADY_GOOD 1
#define CONTEST_LADY_BAD 2
#endif // GUARD_LILYCOVE_LADY_CONSTANTS_H

596
include/constants/map_groups.h Executable file
View File

@ -0,0 +1,596 @@
#ifndef GUARD_CONSTANTS_MAP_GROUPS_H
#define GUARD_CONSTANTS_MAP_GROUPS_H
//
// DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json
//
// gMapGroup_TownsAndRoutes
#define MAP_PETALBURG_CITY (0 | (0 << 8))
#define MAP_SLATEPORT_CITY (1 | (0 << 8))
#define MAP_MAUVILLE_CITY (2 | (0 << 8))
#define MAP_RUSTBORO_CITY (3 | (0 << 8))
#define MAP_FORTREE_CITY (4 | (0 << 8))
#define MAP_LILYCOVE_CITY (5 | (0 << 8))
#define MAP_MOSSDEEP_CITY (6 | (0 << 8))
#define MAP_SOOTOPOLIS_CITY (7 | (0 << 8))
#define MAP_EVER_GRANDE_CITY (8 | (0 << 8))
#define MAP_LITTLEROOT_TOWN (9 | (0 << 8))
#define MAP_OLDALE_TOWN (10 | (0 << 8))
#define MAP_DEWFORD_TOWN (11 | (0 << 8))
#define MAP_LAVARIDGE_TOWN (12 | (0 << 8))
#define MAP_FALLARBOR_TOWN (13 | (0 << 8))
#define MAP_VERDANTURF_TOWN (14 | (0 << 8))
#define MAP_PACIFIDLOG_TOWN (15 | (0 << 8))
#define MAP_ROUTE101 (16 | (0 << 8))
#define MAP_ROUTE102 (17 | (0 << 8))
#define MAP_ROUTE103 (18 | (0 << 8))
#define MAP_ROUTE104 (19 | (0 << 8))
#define MAP_ROUTE105 (20 | (0 << 8))
#define MAP_ROUTE106 (21 | (0 << 8))
#define MAP_ROUTE107 (22 | (0 << 8))
#define MAP_ROUTE108 (23 | (0 << 8))
#define MAP_ROUTE109 (24 | (0 << 8))
#define MAP_ROUTE110 (25 | (0 << 8))
#define MAP_ROUTE111 (26 | (0 << 8))
#define MAP_ROUTE112 (27 | (0 << 8))
#define MAP_ROUTE113 (28 | (0 << 8))
#define MAP_ROUTE114 (29 | (0 << 8))
#define MAP_ROUTE115 (30 | (0 << 8))
#define MAP_ROUTE116 (31 | (0 << 8))
#define MAP_ROUTE117 (32 | (0 << 8))
#define MAP_ROUTE118 (33 | (0 << 8))
#define MAP_ROUTE119 (34 | (0 << 8))
#define MAP_ROUTE120 (35 | (0 << 8))
#define MAP_ROUTE121 (36 | (0 << 8))
#define MAP_ROUTE122 (37 | (0 << 8))
#define MAP_ROUTE123 (38 | (0 << 8))
#define MAP_ROUTE124 (39 | (0 << 8))
#define MAP_ROUTE125 (40 | (0 << 8))
#define MAP_ROUTE126 (41 | (0 << 8))
#define MAP_ROUTE127 (42 | (0 << 8))
#define MAP_ROUTE128 (43 | (0 << 8))
#define MAP_ROUTE129 (44 | (0 << 8))
#define MAP_ROUTE130 (45 | (0 << 8))
#define MAP_ROUTE131 (46 | (0 << 8))
#define MAP_ROUTE132 (47 | (0 << 8))
#define MAP_ROUTE133 (48 | (0 << 8))
#define MAP_ROUTE134 (49 | (0 << 8))
#define MAP_UNDERWATER_ROUTE124 (50 | (0 << 8))
#define MAP_UNDERWATER_ROUTE126 (51 | (0 << 8))
#define MAP_UNDERWATER_ROUTE127 (52 | (0 << 8))
#define MAP_UNDERWATER_ROUTE128 (53 | (0 << 8))
#define MAP_UNDERWATER_ROUTE129 (54 | (0 << 8))
#define MAP_UNDERWATER_ROUTE105 (55 | (0 << 8))
#define MAP_UNDERWATER_ROUTE125 (56 | (0 << 8))
// gMapGroup_IndoorLittleroot
#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F (0 | (1 << 8))
#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F (1 | (1 << 8))
#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_1F (2 | (1 << 8))
#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_2F (3 | (1 << 8))
#define MAP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB (4 | (1 << 8))
// gMapGroup_IndoorOldale
#define MAP_OLDALE_TOWN_HOUSE1 (0 | (2 << 8))
#define MAP_OLDALE_TOWN_HOUSE2 (1 | (2 << 8))
#define MAP_OLDALE_TOWN_POKEMON_CENTER_1F (2 | (2 << 8))
#define MAP_OLDALE_TOWN_POKEMON_CENTER_2F (3 | (2 << 8))
#define MAP_OLDALE_TOWN_MART (4 | (2 << 8))
// gMapGroup_IndoorDewford
#define MAP_DEWFORD_TOWN_HOUSE1 (0 | (3 << 8))
#define MAP_DEWFORD_TOWN_POKEMON_CENTER_1F (1 | (3 << 8))
#define MAP_DEWFORD_TOWN_POKEMON_CENTER_2F (2 | (3 << 8))
#define MAP_DEWFORD_TOWN_GYM (3 | (3 << 8))
#define MAP_DEWFORD_TOWN_HALL (4 | (3 << 8))
#define MAP_DEWFORD_TOWN_HOUSE2 (5 | (3 << 8))
// gMapGroup_IndoorLavaridge
#define MAP_LAVARIDGE_TOWN_HERB_SHOP (0 | (4 << 8))
#define MAP_LAVARIDGE_TOWN_GYM_1F (1 | (4 << 8))
#define MAP_LAVARIDGE_TOWN_GYM_B1F (2 | (4 << 8))
#define MAP_LAVARIDGE_TOWN_HOUSE (3 | (4 << 8))
#define MAP_LAVARIDGE_TOWN_MART (4 | (4 << 8))
#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F (5 | (4 << 8))
#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_2F (6 | (4 << 8))
// gMapGroup_IndoorFallarbor
#define MAP_FALLARBOR_TOWN_MART (0 | (5 << 8))
#define MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY (1 | (5 << 8))
#define MAP_FALLARBOR_TOWN_BATTLE_TENT_CORRIDOR (2 | (5 << 8))
#define MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM (3 | (5 << 8))
#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F (4 | (5 << 8))
#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_2F (5 | (5 << 8))
#define MAP_FALLARBOR_TOWN_COZMOS_HOUSE (6 | (5 << 8))
#define MAP_FALLARBOR_TOWN_MOVE_RELEARNERS_HOUSE (7 | (5 << 8))
// gMapGroup_IndoorVerdanturf
#define MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY (0 | (6 << 8))
#define MAP_VERDANTURF_TOWN_BATTLE_TENT_CORRIDOR (1 | (6 << 8))
#define MAP_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM (2 | (6 << 8))
#define MAP_VERDANTURF_TOWN_MART (3 | (6 << 8))
#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_1F (4 | (6 << 8))
#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_2F (5 | (6 << 8))
#define MAP_VERDANTURF_TOWN_WANDAS_HOUSE (6 | (6 << 8))
#define MAP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE (7 | (6 << 8))
#define MAP_VERDANTURF_TOWN_HOUSE (8 | (6 << 8))
// gMapGroup_IndoorPacifidlog
#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F (0 | (7 << 8))
#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F (1 | (7 << 8))
#define MAP_PACIFIDLOG_TOWN_HOUSE1 (2 | (7 << 8))
#define MAP_PACIFIDLOG_TOWN_HOUSE2 (3 | (7 << 8))
#define MAP_PACIFIDLOG_TOWN_HOUSE3 (4 | (7 << 8))
#define MAP_PACIFIDLOG_TOWN_HOUSE4 (5 | (7 << 8))
#define MAP_PACIFIDLOG_TOWN_HOUSE5 (6 | (7 << 8))
// gMapGroup_IndoorPetalburg
#define MAP_PETALBURG_CITY_WALLYS_HOUSE (0 | (8 << 8))
#define MAP_PETALBURG_CITY_GYM (1 | (8 << 8))
#define MAP_PETALBURG_CITY_HOUSE1 (2 | (8 << 8))
#define MAP_PETALBURG_CITY_HOUSE2 (3 | (8 << 8))
#define MAP_PETALBURG_CITY_POKEMON_CENTER_1F (4 | (8 << 8))
#define MAP_PETALBURG_CITY_POKEMON_CENTER_2F (5 | (8 << 8))
#define MAP_PETALBURG_CITY_MART (6 | (8 << 8))
// gMapGroup_IndoorSlateport
#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_1F (0 | (9 << 8))
#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_2F (1 | (9 << 8))
#define MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY (2 | (9 << 8))
#define MAP_SLATEPORT_CITY_BATTLE_TENT_CORRIDOR (3 | (9 << 8))
#define MAP_SLATEPORT_CITY_BATTLE_TENT_BATTLE_ROOM (4 | (9 << 8))
#define MAP_SLATEPORT_CITY_NAME_RATERS_HOUSE (5 | (9 << 8))
#define MAP_SLATEPORT_CITY_POKEMON_FAN_CLUB (6 | (9 << 8))
#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F (7 | (9 << 8))
#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F (8 | (9 << 8))
#define MAP_SLATEPORT_CITY_HARBOR (9 | (9 << 8))
#define MAP_SLATEPORT_CITY_HOUSE (10 | (9 << 8))
#define MAP_SLATEPORT_CITY_POKEMON_CENTER_1F (11 | (9 << 8))
#define MAP_SLATEPORT_CITY_POKEMON_CENTER_2F (12 | (9 << 8))
#define MAP_SLATEPORT_CITY_MART (13 | (9 << 8))
// gMapGroup_IndoorMauville
#define MAP_MAUVILLE_CITY_GYM (0 | (10 << 8))
#define MAP_MAUVILLE_CITY_BIKE_SHOP (1 | (10 << 8))
#define MAP_MAUVILLE_CITY_HOUSE1 (2 | (10 << 8))
#define MAP_MAUVILLE_CITY_GAME_CORNER (3 | (10 << 8))
#define MAP_MAUVILLE_CITY_HOUSE2 (4 | (10 << 8))
#define MAP_MAUVILLE_CITY_POKEMON_CENTER_1F (5 | (10 << 8))
#define MAP_MAUVILLE_CITY_POKEMON_CENTER_2F (6 | (10 << 8))
#define MAP_MAUVILLE_CITY_MART (7 | (10 << 8))
// gMapGroup_IndoorRustboro
#define MAP_RUSTBORO_CITY_DEVON_CORP_1F (0 | (11 << 8))
#define MAP_RUSTBORO_CITY_DEVON_CORP_2F (1 | (11 << 8))
#define MAP_RUSTBORO_CITY_DEVON_CORP_3F (2 | (11 << 8))
#define MAP_RUSTBORO_CITY_GYM (3 | (11 << 8))
#define MAP_RUSTBORO_CITY_POKEMON_SCHOOL (4 | (11 << 8))
#define MAP_RUSTBORO_CITY_POKEMON_CENTER_1F (5 | (11 << 8))
#define MAP_RUSTBORO_CITY_POKEMON_CENTER_2F (6 | (11 << 8))
#define MAP_RUSTBORO_CITY_MART (7 | (11 << 8))
#define MAP_RUSTBORO_CITY_FLAT1_1F (8 | (11 << 8))
#define MAP_RUSTBORO_CITY_FLAT1_2F (9 | (11 << 8))
#define MAP_RUSTBORO_CITY_HOUSE1 (10 | (11 << 8))
#define MAP_RUSTBORO_CITY_CUTTERS_HOUSE (11 | (11 << 8))
#define MAP_RUSTBORO_CITY_HOUSE2 (12 | (11 << 8))
#define MAP_RUSTBORO_CITY_FLAT2_1F (13 | (11 << 8))
#define MAP_RUSTBORO_CITY_FLAT2_2F (14 | (11 << 8))
#define MAP_RUSTBORO_CITY_FLAT2_3F (15 | (11 << 8))
#define MAP_RUSTBORO_CITY_HOUSE3 (16 | (11 << 8))
// gMapGroup_IndoorFortree
#define MAP_FORTREE_CITY_HOUSE1 (0 | (12 << 8))
#define MAP_FORTREE_CITY_GYM (1 | (12 << 8))
#define MAP_FORTREE_CITY_POKEMON_CENTER_1F (2 | (12 << 8))
#define MAP_FORTREE_CITY_POKEMON_CENTER_2F (3 | (12 << 8))
#define MAP_FORTREE_CITY_MART (4 | (12 << 8))
#define MAP_FORTREE_CITY_HOUSE2 (5 | (12 << 8))
#define MAP_FORTREE_CITY_HOUSE3 (6 | (12 << 8))
#define MAP_FORTREE_CITY_HOUSE4 (7 | (12 << 8))
#define MAP_FORTREE_CITY_HOUSE5 (8 | (12 << 8))
#define MAP_FORTREE_CITY_DECORATION_SHOP (9 | (12 << 8))
// gMapGroup_IndoorLilycove
#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F (0 | (13 << 8))
#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F (1 | (13 << 8))
#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F (2 | (13 << 8))
#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F (3 | (13 << 8))
#define MAP_LILYCOVE_CITY_CONTEST_LOBBY (4 | (13 << 8))
#define MAP_LILYCOVE_CITY_CONTEST_HALL (5 | (13 << 8))
#define MAP_LILYCOVE_CITY_POKEMON_CENTER_1F (6 | (13 << 8))
#define MAP_LILYCOVE_CITY_POKEMON_CENTER_2F (7 | (13 << 8))
#define MAP_LILYCOVE_CITY_UNUSED_MART (8 | (13 << 8))
#define MAP_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB (9 | (13 << 8))
#define MAP_LILYCOVE_CITY_HARBOR (10 | (13 << 8))
#define MAP_LILYCOVE_CITY_MOVE_DELETERS_HOUSE (11 | (13 << 8))
#define MAP_LILYCOVE_CITY_HOUSE1 (12 | (13 << 8))
#define MAP_LILYCOVE_CITY_HOUSE2 (13 | (13 << 8))
#define MAP_LILYCOVE_CITY_HOUSE3 (14 | (13 << 8))
#define MAP_LILYCOVE_CITY_HOUSE4 (15 | (13 << 8))
#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_1F (16 | (13 << 8))
#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_2F (17 | (13 << 8))
#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_3F (18 | (13 << 8))
#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_4F (19 | (13 << 8))
#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_5F (20 | (13 << 8))
#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP (21 | (13 << 8))
#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR (22 | (13 << 8))
// gMapGroup_IndoorMossdeep
#define MAP_MOSSDEEP_CITY_GYM (0 | (14 << 8))
#define MAP_MOSSDEEP_CITY_HOUSE1 (1 | (14 << 8))
#define MAP_MOSSDEEP_CITY_HOUSE2 (2 | (14 << 8))
#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_1F (3 | (14 << 8))
#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_2F (4 | (14 << 8))
#define MAP_MOSSDEEP_CITY_MART (5 | (14 << 8))
#define MAP_MOSSDEEP_CITY_HOUSE3 (6 | (14 << 8))
#define MAP_MOSSDEEP_CITY_STEVENS_HOUSE (7 | (14 << 8))
#define MAP_MOSSDEEP_CITY_HOUSE4 (8 | (14 << 8))
#define MAP_MOSSDEEP_CITY_SPACE_CENTER_1F (9 | (14 << 8))
#define MAP_MOSSDEEP_CITY_SPACE_CENTER_2F (10 | (14 << 8))
#define MAP_MOSSDEEP_CITY_GAME_CORNER_1F (11 | (14 << 8))
#define MAP_MOSSDEEP_CITY_GAME_CORNER_B1F (12 | (14 << 8))
// gMapGroup_IndoorSootopolis
#define MAP_SOOTOPOLIS_CITY_GYM_1F (0 | (15 << 8))
#define MAP_SOOTOPOLIS_CITY_GYM_B1F (1 | (15 << 8))
#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F (2 | (15 << 8))
#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F (3 | (15 << 8))
#define MAP_SOOTOPOLIS_CITY_MART (4 | (15 << 8))
#define MAP_SOOTOPOLIS_CITY_HOUSE1 (5 | (15 << 8))
#define MAP_SOOTOPOLIS_CITY_HOUSE2 (6 | (15 << 8))
#define MAP_SOOTOPOLIS_CITY_HOUSE3 (7 | (15 << 8))
#define MAP_SOOTOPOLIS_CITY_HOUSE4 (8 | (15 << 8))
#define MAP_SOOTOPOLIS_CITY_HOUSE5 (9 | (15 << 8))
#define MAP_SOOTOPOLIS_CITY_HOUSE6 (10 | (15 << 8))
#define MAP_SOOTOPOLIS_CITY_HOUSE7 (11 | (15 << 8))
#define MAP_SOOTOPOLIS_CITY_LOTAD_AND_SEEDOT_HOUSE (12 | (15 << 8))
#define MAP_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F (13 | (15 << 8))
#define MAP_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_B1F (14 | (15 << 8))
// gMapGroup_IndoorEverGrande
#define MAP_EVER_GRANDE_CITY_SIDNEYS_ROOM (0 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_PHOEBES_ROOM (1 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_GLACIAS_ROOM (2 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_DRAKES_ROOM (3 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_CHAMPIONS_ROOM (4 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_HALL1 (5 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_HALL2 (6 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_HALL3 (7 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_HALL4 (8 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_HALL5 (9 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F (10 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_HALL_OF_FAME (11 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_1F (12 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_2F (13 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_2F (14 | (16 << 8))
// gMapGroup_IndoorRoute104
#define MAP_ROUTE104_MR_BRINEYS_HOUSE (0 | (17 << 8))
#define MAP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP (1 | (17 << 8))
// gMapGroup_IndoorRoute111
#define MAP_ROUTE111_WINSTRATE_FAMILYS_HOUSE (0 | (18 << 8))
#define MAP_ROUTE111_OLD_LADYS_REST_STOP (1 | (18 << 8))
// gMapGroup_IndoorRoute112
#define MAP_ROUTE112_CABLE_CAR_STATION (0 | (19 << 8))
#define MAP_MT_CHIMNEY_CABLE_CAR_STATION (1 | (19 << 8))
// gMapGroup_IndoorRoute114
#define MAP_ROUTE114_FOSSIL_MANIACS_HOUSE (0 | (20 << 8))
#define MAP_ROUTE114_FOSSIL_MANIACS_TUNNEL (1 | (20 << 8))
#define MAP_ROUTE114_LANETTES_HOUSE (2 | (20 << 8))
// gMapGroup_IndoorRoute116
#define MAP_ROUTE116_TUNNELERS_REST_HOUSE (0 | (21 << 8))
// gMapGroup_IndoorRoute117
#define MAP_ROUTE117_POKEMON_DAY_CARE (0 | (22 << 8))
// gMapGroup_IndoorRoute121
#define MAP_ROUTE121_SAFARI_ZONE_ENTRANCE (0 | (23 << 8))
// gMapGroup_Dungeons
#define MAP_METEOR_FALLS_1F_1R (0 | (24 << 8))
#define MAP_METEOR_FALLS_1F_2R (1 | (24 << 8))
#define MAP_METEOR_FALLS_B1F_1R (2 | (24 << 8))
#define MAP_METEOR_FALLS_B1F_2R (3 | (24 << 8))
#define MAP_RUSTURF_TUNNEL (4 | (24 << 8))
#define MAP_UNDERWATER_SOOTOPOLIS_CITY (5 | (24 << 8))
#define MAP_DESERT_RUINS (6 | (24 << 8))
#define MAP_GRANITE_CAVE_1F (7 | (24 << 8))
#define MAP_GRANITE_CAVE_B1F (8 | (24 << 8))
#define MAP_GRANITE_CAVE_B2F (9 | (24 << 8))
#define MAP_GRANITE_CAVE_STEVENS_ROOM (10 | (24 << 8))
#define MAP_PETALBURG_WOODS (11 | (24 << 8))
#define MAP_MT_CHIMNEY (12 | (24 << 8))
#define MAP_JAGGED_PASS (13 | (24 << 8))
#define MAP_FIERY_PATH (14 | (24 << 8))
#define MAP_MT_PYRE_1F (15 | (24 << 8))
#define MAP_MT_PYRE_2F (16 | (24 << 8))
#define MAP_MT_PYRE_3F (17 | (24 << 8))
#define MAP_MT_PYRE_4F (18 | (24 << 8))
#define MAP_MT_PYRE_5F (19 | (24 << 8))
#define MAP_MT_PYRE_6F (20 | (24 << 8))
#define MAP_MT_PYRE_EXTERIOR (21 | (24 << 8))
#define MAP_MT_PYRE_SUMMIT (22 | (24 << 8))
#define MAP_AQUA_HIDEOUT_1F (23 | (24 << 8))
#define MAP_AQUA_HIDEOUT_B1F (24 | (24 << 8))
#define MAP_AQUA_HIDEOUT_B2F (25 | (24 << 8))
#define MAP_UNDERWATER_SEAFLOOR_CAVERN (26 | (24 << 8))
#define MAP_SEAFLOOR_CAVERN_ENTRANCE (27 | (24 << 8))
#define MAP_SEAFLOOR_CAVERN_ROOM1 (28 | (24 << 8))
#define MAP_SEAFLOOR_CAVERN_ROOM2 (29 | (24 << 8))
#define MAP_SEAFLOOR_CAVERN_ROOM3 (30 | (24 << 8))
#define MAP_SEAFLOOR_CAVERN_ROOM4 (31 | (24 << 8))
#define MAP_SEAFLOOR_CAVERN_ROOM5 (32 | (24 << 8))
#define MAP_SEAFLOOR_CAVERN_ROOM6 (33 | (24 << 8))
#define MAP_SEAFLOOR_CAVERN_ROOM7 (34 | (24 << 8))
#define MAP_SEAFLOOR_CAVERN_ROOM8 (35 | (24 << 8))
#define MAP_SEAFLOOR_CAVERN_ROOM9 (36 | (24 << 8))
#define MAP_CAVE_OF_ORIGIN_ENTRANCE (37 | (24 << 8))
#define MAP_CAVE_OF_ORIGIN_1F (38 | (24 << 8))
#define MAP_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP1 (39 | (24 << 8))
#define MAP_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP2 (40 | (24 << 8))
#define MAP_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP3 (41 | (24 << 8))
#define MAP_CAVE_OF_ORIGIN_B1F (42 | (24 << 8))
#define MAP_VICTORY_ROAD_1F (43 | (24 << 8))
#define MAP_VICTORY_ROAD_B1F (44 | (24 << 8))
#define MAP_VICTORY_ROAD_B2F (45 | (24 << 8))
#define MAP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM (46 | (24 << 8))
#define MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM (47 | (24 << 8))
#define MAP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM (48 | (24 << 8))
#define MAP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM (49 | (24 << 8))
#define MAP_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM (50 | (24 << 8))
#define MAP_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM (51 | (24 << 8))
#define MAP_NEW_MAUVILLE_ENTRANCE (52 | (24 << 8))
#define MAP_NEW_MAUVILLE_INSIDE (53 | (24 << 8))
#define MAP_ABANDONED_SHIP_DECK (54 | (24 << 8))
#define MAP_ABANDONED_SHIP_CORRIDORS_1F (55 | (24 << 8))
#define MAP_ABANDONED_SHIP_ROOMS_1F (56 | (24 << 8))
#define MAP_ABANDONED_SHIP_CORRIDORS_B1F (57 | (24 << 8))
#define MAP_ABANDONED_SHIP_ROOMS_B1F (58 | (24 << 8))
#define MAP_ABANDONED_SHIP_ROOMS2_B1F (59 | (24 << 8))
#define MAP_ABANDONED_SHIP_UNDERWATER1 (60 | (24 << 8))
#define MAP_ABANDONED_SHIP_ROOM_B1F (61 | (24 << 8))
#define MAP_ABANDONED_SHIP_ROOMS2_1F (62 | (24 << 8))
#define MAP_ABANDONED_SHIP_CAPTAINS_OFFICE (63 | (24 << 8))
#define MAP_ABANDONED_SHIP_UNDERWATER2 (64 | (24 << 8))
#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS (65 | (24 << 8))
#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS (66 | (24 << 8))
#define MAP_ISLAND_CAVE (67 | (24 << 8))
#define MAP_ANCIENT_TOMB (68 | (24 << 8))
#define MAP_UNDERWATER_ROUTE134 (69 | (24 << 8))
#define MAP_UNDERWATER_SEALED_CHAMBER (70 | (24 << 8))
#define MAP_SEALED_CHAMBER_OUTER_ROOM (71 | (24 << 8))
#define MAP_SEALED_CHAMBER_INNER_ROOM (72 | (24 << 8))
#define MAP_SCORCHED_SLAB (73 | (24 << 8))
#define MAP_AQUA_HIDEOUT_UNUSED_RUBY_MAP1 (74 | (24 << 8))
#define MAP_AQUA_HIDEOUT_UNUSED_RUBY_MAP2 (75 | (24 << 8))
#define MAP_AQUA_HIDEOUT_UNUSED_RUBY_MAP3 (76 | (24 << 8))
#define MAP_SKY_PILLAR_ENTRANCE (77 | (24 << 8))
#define MAP_SKY_PILLAR_OUTSIDE (78 | (24 << 8))
#define MAP_SKY_PILLAR_1F (79 | (24 << 8))
#define MAP_SKY_PILLAR_2F (80 | (24 << 8))
#define MAP_SKY_PILLAR_3F (81 | (24 << 8))
#define MAP_SKY_PILLAR_4F (82 | (24 << 8))
#define MAP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM (83 | (24 << 8))
#define MAP_SKY_PILLAR_5F (84 | (24 << 8))
#define MAP_SKY_PILLAR_TOP (85 | (24 << 8))
#define MAP_MAGMA_HIDEOUT_1F (86 | (24 << 8))
#define MAP_MAGMA_HIDEOUT_2F_1R (87 | (24 << 8))
#define MAP_MAGMA_HIDEOUT_2F_2R (88 | (24 << 8))
#define MAP_MAGMA_HIDEOUT_3F_1R (89 | (24 << 8))
#define MAP_MAGMA_HIDEOUT_3F_2R (90 | (24 << 8))
#define MAP_MAGMA_HIDEOUT_4F (91 | (24 << 8))
#define MAP_MAGMA_HIDEOUT_3F_3R (92 | (24 << 8))
#define MAP_MAGMA_HIDEOUT_2F_3R (93 | (24 << 8))
#define MAP_MIRAGE_TOWER_1F (94 | (24 << 8))
#define MAP_MIRAGE_TOWER_2F (95 | (24 << 8))
#define MAP_MIRAGE_TOWER_3F (96 | (24 << 8))
#define MAP_MIRAGE_TOWER_4F (97 | (24 << 8))
#define MAP_DESERT_UNDERPASS (98 | (24 << 8))
#define MAP_ARTISAN_CAVE_B1F (99 | (24 << 8))
#define MAP_ARTISAN_CAVE_1F (100 | (24 << 8))
#define MAP_UNDERWATER_MARINE_CAVE (101 | (24 << 8))
#define MAP_MARINE_CAVE_ENTRANCE (102 | (24 << 8))
#define MAP_MARINE_CAVE_END (103 | (24 << 8))
#define MAP_TERRA_CAVE_ENTRANCE (104 | (24 << 8))
#define MAP_TERRA_CAVE_END (105 | (24 << 8))
#define MAP_ALTERING_CAVE (106 | (24 << 8))
#define MAP_METEOR_FALLS_STEVENS_CAVE (107 | (24 << 8))
// gMapGroup_IndoorDynamic
#define MAP_SECRET_BASE_RED_CAVE1 (0 | (25 << 8))
#define MAP_SECRET_BASE_BROWN_CAVE1 (1 | (25 << 8))
#define MAP_SECRET_BASE_BLUE_CAVE1 (2 | (25 << 8))
#define MAP_SECRET_BASE_YELLOW_CAVE1 (3 | (25 << 8))
#define MAP_SECRET_BASE_TREE1 (4 | (25 << 8))
#define MAP_SECRET_BASE_SHRUB1 (5 | (25 << 8))
#define MAP_SECRET_BASE_RED_CAVE2 (6 | (25 << 8))
#define MAP_SECRET_BASE_BROWN_CAVE2 (7 | (25 << 8))
#define MAP_SECRET_BASE_BLUE_CAVE2 (8 | (25 << 8))
#define MAP_SECRET_BASE_YELLOW_CAVE2 (9 | (25 << 8))
#define MAP_SECRET_BASE_TREE2 (10 | (25 << 8))
#define MAP_SECRET_BASE_SHRUB2 (11 | (25 << 8))
#define MAP_SECRET_BASE_RED_CAVE3 (12 | (25 << 8))
#define MAP_SECRET_BASE_BROWN_CAVE3 (13 | (25 << 8))
#define MAP_SECRET_BASE_BLUE_CAVE3 (14 | (25 << 8))
#define MAP_SECRET_BASE_YELLOW_CAVE3 (15 | (25 << 8))
#define MAP_SECRET_BASE_TREE3 (16 | (25 << 8))
#define MAP_SECRET_BASE_SHRUB3 (17 | (25 << 8))
#define MAP_SECRET_BASE_RED_CAVE4 (18 | (25 << 8))
#define MAP_SECRET_BASE_BROWN_CAVE4 (19 | (25 << 8))
#define MAP_SECRET_BASE_BLUE_CAVE4 (20 | (25 << 8))
#define MAP_SECRET_BASE_YELLOW_CAVE4 (21 | (25 << 8))
#define MAP_SECRET_BASE_TREE4 (22 | (25 << 8))
#define MAP_SECRET_BASE_SHRUB4 (23 | (25 << 8))
#define MAP_BATTLE_COLOSSEUM_2P (24 | (25 << 8))
#define MAP_TRADE_CENTER (25 | (25 << 8))
#define MAP_RECORD_CORNER (26 | (25 << 8))
#define MAP_BATTLE_COLOSSEUM_4P (27 | (25 << 8))
#define MAP_CONTEST_HALL (28 | (25 << 8))
#define MAP_UNUSED_CONTEST_HALL1 (29 | (25 << 8))
#define MAP_UNUSED_CONTEST_HALL2 (30 | (25 << 8))
#define MAP_UNUSED_CONTEST_HALL3 (31 | (25 << 8))
#define MAP_UNUSED_CONTEST_HALL4 (32 | (25 << 8))
#define MAP_UNUSED_CONTEST_HALL5 (33 | (25 << 8))
#define MAP_UNUSED_CONTEST_HALL6 (34 | (25 << 8))
#define MAP_CONTEST_HALL_BEAUTY (35 | (25 << 8))
#define MAP_CONTEST_HALL_TOUGH (36 | (25 << 8))
#define MAP_CONTEST_HALL_COOL (37 | (25 << 8))
#define MAP_CONTEST_HALL_SMART (38 | (25 << 8))
#define MAP_CONTEST_HALL_CUTE (39 | (25 << 8))
#define MAP_INSIDE_OF_TRUCK (40 | (25 << 8))
#define MAP_SS_TIDAL_CORRIDOR (41 | (25 << 8))
#define MAP_SS_TIDAL_LOWER_DECK (42 | (25 << 8))
#define MAP_SS_TIDAL_ROOMS (43 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE01 (44 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE02 (45 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE03 (46 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE04 (47 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE05 (48 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE06 (49 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE07 (50 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE08 (51 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE09 (52 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE10 (53 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE11 (54 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE12 (55 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE13 (56 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE14 (57 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE15 (58 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE16 (59 | (25 << 8))
#define MAP_UNION_ROOM (60 | (25 << 8))
// gMapGroup_SpecialArea
#define MAP_SAFARI_ZONE_NORTHWEST (0 | (26 << 8))
#define MAP_SAFARI_ZONE_NORTH (1 | (26 << 8))
#define MAP_SAFARI_ZONE_SOUTHWEST (2 | (26 << 8))
#define MAP_SAFARI_ZONE_SOUTH (3 | (26 << 8))
#define MAP_BATTLE_FRONTIER_OUTSIDE_WEST (4 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY (5 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_ELEVATOR (6 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR (7 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM (8 | (26 << 8))
#define MAP_SOUTHERN_ISLAND_EXTERIOR (9 | (26 << 8))
#define MAP_SOUTHERN_ISLAND_INTERIOR (10 | (26 << 8))
#define MAP_SAFARI_ZONE_REST_HOUSE (11 | (26 << 8))
#define MAP_SAFARI_ZONE_NORTHEAST (12 | (26 << 8))
#define MAP_SAFARI_ZONE_SOUTHEAST (13 | (26 << 8))
#define MAP_BATTLE_FRONTIER_OUTSIDE_EAST (14 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_PARTNER_ROOM (15 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_CORRIDOR (16 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM (17 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY (18 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR (19 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM (20 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM (21 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY (22 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_CORRIDOR (23 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM (24 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY (25 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_FLOOR (26 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP (27 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY (28 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR (29 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM (30 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY (31 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM (32 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM (33 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY (34 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR (35 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM (36 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL (37 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL (38 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS (39 | (26 << 8))
#define MAP_BATTLE_FRONTIER_RANKING_HALL (40 | (26 << 8))
#define MAP_BATTLE_FRONTIER_LOUNGE1 (41 | (26 << 8))
#define MAP_BATTLE_FRONTIER_EXCHANGE_SERVICE_CORNER (42 | (26 << 8))
#define MAP_BATTLE_FRONTIER_LOUNGE2 (43 | (26 << 8))
#define MAP_BATTLE_FRONTIER_LOUNGE3 (44 | (26 << 8))
#define MAP_BATTLE_FRONTIER_LOUNGE4 (45 | (26 << 8))
#define MAP_BATTLE_FRONTIER_SCOTTS_HOUSE (46 | (26 << 8))
#define MAP_BATTLE_FRONTIER_LOUNGE5 (47 | (26 << 8))
#define MAP_BATTLE_FRONTIER_LOUNGE6 (48 | (26 << 8))
#define MAP_BATTLE_FRONTIER_LOUNGE7 (49 | (26 << 8))
#define MAP_BATTLE_FRONTIER_RECEPTION_GATE (50 | (26 << 8))
#define MAP_BATTLE_FRONTIER_LOUNGE8 (51 | (26 << 8))
#define MAP_BATTLE_FRONTIER_LOUNGE9 (52 | (26 << 8))
#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_1F (53 | (26 << 8))
#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_2F (54 | (26 << 8))
#define MAP_BATTLE_FRONTIER_MART (55 | (26 << 8))
#define MAP_FARAWAY_ISLAND_ENTRANCE (56 | (26 << 8))
#define MAP_FARAWAY_ISLAND_INTERIOR (57 | (26 << 8))
#define MAP_BIRTH_ISLAND_EXTERIOR (58 | (26 << 8))
#define MAP_BIRTH_ISLAND_HARBOR (59 | (26 << 8))
#define MAP_TRAINER_HILL_ENTRANCE (60 | (26 << 8))
#define MAP_TRAINER_HILL_1F (61 | (26 << 8))
#define MAP_TRAINER_HILL_2F (62 | (26 << 8))
#define MAP_TRAINER_HILL_3F (63 | (26 << 8))
#define MAP_TRAINER_HILL_4F (64 | (26 << 8))
#define MAP_TRAINER_HILL_ROOF (65 | (26 << 8))
#define MAP_NAVEL_ROCK_EXTERIOR (66 | (26 << 8))
#define MAP_NAVEL_ROCK_HARBOR (67 | (26 << 8))
#define MAP_NAVEL_ROCK_ENTRANCE (68 | (26 << 8))
#define MAP_NAVEL_ROCK_B1F (69 | (26 << 8))
#define MAP_NAVEL_ROCK_FORK (70 | (26 << 8))
#define MAP_NAVEL_ROCK_UP1 (71 | (26 << 8))
#define MAP_NAVEL_ROCK_UP2 (72 | (26 << 8))
#define MAP_NAVEL_ROCK_UP3 (73 | (26 << 8))
#define MAP_NAVEL_ROCK_UP4 (74 | (26 << 8))
#define MAP_NAVEL_ROCK_TOP (75 | (26 << 8))
#define MAP_NAVEL_ROCK_DOWN01 (76 | (26 << 8))
#define MAP_NAVEL_ROCK_DOWN02 (77 | (26 << 8))
#define MAP_NAVEL_ROCK_DOWN03 (78 | (26 << 8))
#define MAP_NAVEL_ROCK_DOWN04 (79 | (26 << 8))
#define MAP_NAVEL_ROCK_DOWN05 (80 | (26 << 8))
#define MAP_NAVEL_ROCK_DOWN06 (81 | (26 << 8))
#define MAP_NAVEL_ROCK_DOWN07 (82 | (26 << 8))
#define MAP_NAVEL_ROCK_DOWN08 (83 | (26 << 8))
#define MAP_NAVEL_ROCK_DOWN09 (84 | (26 << 8))
#define MAP_NAVEL_ROCK_DOWN10 (85 | (26 << 8))
#define MAP_NAVEL_ROCK_DOWN11 (86 | (26 << 8))
#define MAP_NAVEL_ROCK_BOTTOM (87 | (26 << 8))
#define MAP_TRAINER_HILL_ELEVATOR (88 | (26 << 8))
// gMapGroup_IndoorRoute104Prototype
#define MAP_ROUTE104_PROTOTYPE (0 | (27 << 8))
#define MAP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP (1 | (27 << 8))
// gMapGroup_IndoorRoute109
#define MAP_ROUTE109_SEASHORE_HOUSE (0 | (28 << 8))
// gMapGroup_IndoorRoute110
#define MAP_ROUTE110_TRICK_HOUSE_ENTRANCE (0 | (29 << 8))
#define MAP_ROUTE110_TRICK_HOUSE_END (1 | (29 << 8))
#define MAP_ROUTE110_TRICK_HOUSE_CORRIDOR (2 | (29 << 8))
#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE1 (3 | (29 << 8))
#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE2 (4 | (29 << 8))
#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE3 (5 | (29 << 8))
#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE4 (6 | (29 << 8))
#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE5 (7 | (29 << 8))
#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE6 (8 | (29 << 8))
#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE7 (9 | (29 << 8))
#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE8 (10 | (29 << 8))
#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE (11 | (29 << 8))
#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE (12 | (29 << 8))
// gMapGroup_IndoorRoute113
#define MAP_ROUTE113_GLASS_WORKSHOP (0 | (30 << 8))
// gMapGroup_IndoorRoute123
#define MAP_ROUTE123_BERRY_MASTERS_HOUSE (0 | (31 << 8))
// gMapGroup_IndoorRoute119
#define MAP_ROUTE119_WEATHER_INSTITUTE_1F (0 | (32 << 8))
#define MAP_ROUTE119_WEATHER_INSTITUTE_2F (1 | (32 << 8))
#define MAP_ROUTE119_HOUSE (2 | (32 << 8))
// gMapGroup_IndoorRoute124
#define MAP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE (0 | (33 << 8))
#define MAP_GROUPS_COUNT 34
#endif // GUARD_CONSTANTS_MAP_GROUPS_H

View File

@ -0,0 +1,47 @@
#ifndef GUARD_CONSTANTS_MAP_SCRIPTS_H
#define GUARD_CONSTANTS_MAP_SCRIPTS_H
/*
IDs for special scripts that can be run for a particular map.
For the functions that handle when they are run, see these constants' uses in src/script.c
Below describes when a script of this kind will be called, and what it typically does.
They are numbered in the order that they will be called when entering a map (from a warp or camera transition).
NOTE: These descriptions are just of what they generally do, not what they always or have to do
3. ON_LOAD: Run after the layout is loaded (but not drawn yet).
Almost exclusively used to set metatiles on the map before it's first drawn
6. ON_FRAME_TABLE: Run every frame after the map has faded in, before player input is processed.
This is a table of scripts; only the first script whose condition is satisfied is run.
Used to trigger an event, such as the player exiting the cable car or the SS Tidal sailor announcing progress
2. ON_TRANSITION: Run during the transition to the map
Used to set map-specific flags/vars, update object positions/movement types, set weather, etc
5. ON_WARP_INTO_MAP_TABLE: Run after the map's objects are loaded.
This is a table of scripts; only the first script whose condition is satisfied is run.
Used to add objects to the scene or update something about the player as they warp in (e.g. their facing dir or visibility)
Note that ON_TRANSITION may also handle object visibility, but would do so by modifying a flag or var
4. ON_RESUME: Run at the end of map load, and again any time upon returning to field (e.g. exiting the Bag menu, or finishing a battle)
Used to hide defeated static pokemon, or maintain some map state (e.g. the Trainer Hill timer, or the cycling road challenge)
In some maps this takes the metatile setting job of ON_LOAD
1. ON_DIVE_WARP: Run after the player chooses to dive/emerge.
Only used once, to determine whether or not the player should emerge in the Sealed Chamber
x. ON_RETURN_TO_FIELD: Run exlusively upon returning to the field, shortly after ON_RESUME (as opposed to ON_RESUME, which also runs once on entering the map)
Used rarely, when something must only happen on reload (e.g. making sure Mew is above the grass after battling it on Faraway Island)
*/
#define MAP_SCRIPT_ON_LOAD 1
#define MAP_SCRIPT_ON_FRAME_TABLE 2
#define MAP_SCRIPT_ON_TRANSITION 3
#define MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE 4
#define MAP_SCRIPT_ON_RESUME 5
#define MAP_SCRIPT_ON_DIVE_WARP 6
#define MAP_SCRIPT_ON_RETURN_TO_FIELD 7
#endif // GUARD_CONSTANTS_MAP_SCRIPTS_H

25
include/constants/map_types.h Executable file
View File

@ -0,0 +1,25 @@
#ifndef GUARD_CONSTANTS_MAP_TYPES_H
#define GUARD_CONSTANTS_MAP_TYPES_H
#define MAP_TYPE_NONE 0
#define MAP_TYPE_TOWN 1
#define MAP_TYPE_CITY 2
#define MAP_TYPE_ROUTE 3
#define MAP_TYPE_UNDERGROUND 4
#define MAP_TYPE_UNDERWATER 5
#define MAP_TYPE_OCEAN_ROUTE 6
#define MAP_TYPE_UNKNOWN 7 // Not used by any map.
#define MAP_TYPE_INDOOR 8
#define MAP_TYPE_SECRET_BASE 9
#define MAP_BATTLE_SCENE_NORMAL 0
#define MAP_BATTLE_SCENE_GYM 1
#define MAP_BATTLE_SCENE_MAGMA 2
#define MAP_BATTLE_SCENE_AQUA 3
#define MAP_BATTLE_SCENE_SIDNEY 4
#define MAP_BATTLE_SCENE_PHOEBE 5
#define MAP_BATTLE_SCENE_GLACIA 6
#define MAP_BATTLE_SCENE_DRAKE 7
#define MAP_BATTLE_SCENE_FRONTIER 8
#endif // GUARD_CONSTANTS_MAP_TYPES_H

30
include/constants/maps.h Normal file
View File

@ -0,0 +1,30 @@
#ifndef GUARD_CONSTANTS_MAPS_H
#define GUARD_CONSTANTS_MAPS_H
#include "map_groups.h"
#define MAP_NONE (0x7F | (0x7F << 8))
#define MAP_UNDEFINED (0xFF | (0xFF << 8))
#define MAP_GROUP(map) (MAP_##map >> 8)
#define MAP_NUM(map) (MAP_##map & 0xFF)
// These groups are used by pokedex_area_screen.c to find wild
// pokemon locations.
#define MAP_GROUP_OVERWORLD_MONS MAP_GROUP(PETALBURG_CITY)
#define MAP_GROUP_SPECIAL_MONS_1 MAP_GROUP(METEOR_FALLS_1F_1R)
#define MAP_GROUP_SPECIAL_MONS_2 MAP_GROUP(SAFARI_ZONE_NORTHWEST)
// IDs for dynamic warps. Both are used in the dest_warp_id field for warp events, but they
// are never read in practice. A dest_map of MAP_NONE is used to indicate that a
// dynamic warp should be used, at which point the warp id is ignored. It can be passed to
// SetDynamicWarp/SetDynamicWarpWithCoords as the first argument, but this argument is unused.
// As only one dynamic warp is saved at a time there's no need to distinguish between them.
#define WARP_ID_SECRET_BASE 0x7E
#define WARP_ID_DYNAMIC 0x7F
// Used to indicate an invalid warp id, for dummy warps or when a warp should
// use the given coordinates rather than the coordinates of a target warp.
#define WARP_ID_NONE (-1)
#endif // GUARD_CONSTANTS_MAPS_H

View File

@ -0,0 +1,12 @@
#ifndef GUARD_CONSTANTS_MAUVILLE_OLD_MAN_H
#define GUARD_CONSTANTS_MAUVILLE_OLD_MAN_H
#define MAUVILLE_MAN_BARD 0
#define MAUVILLE_MAN_HIPSTER 1
#define MAUVILLE_MAN_TRADER 2
#define MAUVILLE_MAN_STORYTELLER 3
#define MAUVILLE_MAN_GIDDY 4
#define MAUVILLE_MAN_UNUSED1 5
#define MAUVILLE_MAN_UNUSED2 6
#endif // GUARD_CONSTANTS_MAUVILLE_OLD_MAN_H

View File

@ -0,0 +1,246 @@
#ifndef GUARD_METATILE_BEHAVIORS_H
#define GUARD_METATILE_BEHAVIORS_H
#define MB_NORMAL 0x00
#define MB_SECRET_BASE_WALL 0x01
#define MB_TALL_GRASS 0x02
#define MB_LONG_GRASS 0x03
#define MB_UNUSED_04 0x04
#define MB_UNUSED_05 0x05
#define MB_DEEP_SAND 0x06
#define MB_SHORT_GRASS 0x07
#define MB_UNUSED_CAVE 0x08
#define MB_LONG_GRASS_SOUTH_EDGE 0x09
#define MB_NO_RUNNING 0x0A
#define MB_INDOOR_ENCOUNTER 0x0B
#define MB_MOUNTAIN_TOP 0x0C
#define MB_BATTLE_PYRAMID_WARP 0x0D
#define MB_MOSSDEEP_GYM_WARP 0x0E
#define MB_MT_PYRE_HOLE 0x0F
#define MB_POND_WATER 0x10
#define MB_SEMI_DEEP_WATER 0x11
#define MB_DEEP_WATER 0x12
#define MB_WATERFALL 0x13
#define MB_SOOTOPOLIS_DEEP_WATER 0x14
#define MB_OCEAN_WATER 0x15
#define MB_PUDDLE 0x16
#define MB_SHALLOW_WATER 0x17
#define MB_UNUSED_SOOTOPOLIS_DEEP_WATER 0x18
#define MB_NO_SURFACING 0x19
#define MB_UNUSED_SOOTOPOLIS_DEEP_WATER_2 0x1A
#define MB_STAIRS_OUTSIDE_ABANDONED_SHIP 0x1B
#define MB_SHOAL_CAVE_ENTRANCE 0x1C
#define MB_UNUSED_1D 0x1D
#define MB_UNUSED_1E 0x1E
#define MB_UNUSED_1F 0x1F
#define MB_ICE 0x20
#define MB_SAND 0x21
#define MB_SEAWEED 0x22
#define MB_UNUSED_23 0x23
#define MB_ASHGRASS 0x24
#define MB_FOOTPRINTS 0x25
#define MB_THIN_ICE 0x26
#define MB_CRACKED_ICE 0x27
#define MB_HOT_SPRINGS 0x28
#define MB_LAVARIDGE_GYM_B1F_WARP 0x29
#define MB_SEAWEED_NO_SURFACING 0x2A
#define MB_REFLECTION_UNDER_BRIDGE 0x2B
#define MB_UNUSED_2C 0x2C
#define MB_UNUSED_2D 0x2D
#define MB_UNUSED_2E 0x2E
#define MB_UNUSED_2F 0x2F
#define MB_IMPASSABLE_EAST 0x30
#define MB_IMPASSABLE_WEST 0x31
#define MB_IMPASSABLE_NORTH 0x32
#define MB_IMPASSABLE_SOUTH 0x33
#define MB_IMPASSABLE_NORTHEAST 0x34
#define MB_IMPASSABLE_NORTHWEST 0x35
#define MB_IMPASSABLE_SOUTHEAST 0x36
#define MB_IMPASSABLE_SOUTHWEST 0x37
#define MB_JUMP_EAST 0x38
#define MB_JUMP_WEST 0x39
#define MB_JUMP_NORTH 0x3A
#define MB_JUMP_SOUTH 0x3B
#define MB_JUMP_NORTHEAST 0x3C
#define MB_JUMP_NORTHWEST 0x3D
#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
#define MB_WALK_SOUTH 0x43
#define MB_SLIDE_EAST 0x44
#define MB_SLIDE_WEST 0x45
#define MB_SLIDE_NORTH 0x46
#define MB_SLIDE_SOUTH 0x47
#define MB_TRICK_HOUSE_PUZZLE_8_FLOOR 0x48
#define MB_UNUSED_49 0x49
#define MB_UNUSED_4A 0x4A
#define MB_UNUSED_4B 0x4B
#define MB_UNUSED_4C 0x4C
#define MB_UNUSED_4D 0x4D
#define MB_UNUSED_4E 0x4E
#define MB_UNUSED_4F 0x4F
#define MB_EASTWARD_CURRENT 0x50
#define MB_WESTWARD_CURRENT 0x51
#define MB_NORTHWARD_CURRENT 0x52
#define MB_SOUTHWARD_CURRENT 0x53
#define MB_UNUSED_54 0x54
#define MB_UNUSED_55 0x55
#define MB_UNUSED_56 0x56
#define MB_UNUSED_57 0x57
#define MB_UNUSED_58 0x58
#define MB_UNUSED_59 0x59
#define MB_UNUSED_5A 0x5A
#define MB_UNUSED_5B 0x5B
#define MB_UNUSED_5C 0x5C
#define MB_UNUSED_5D 0x5D
#define MB_UNUSED_5E 0x5E
#define MB_UNUSED_5F 0x5F
#define MB_NON_ANIMATED_DOOR 0x60
#define MB_LADDER 0x61
#define MB_EAST_ARROW_WARP 0x62
#define MB_WEST_ARROW_WARP 0x63
#define MB_NORTH_ARROW_WARP 0x64
#define MB_SOUTH_ARROW_WARP 0x65
#define MB_CRACKED_FLOOR_HOLE 0x66
#define MB_AQUA_HIDEOUT_WARP 0x67
#define MB_LAVARIDGE_GYM_1F_WARP 0x68
#define MB_ANIMATED_DOOR 0x69
#define MB_UP_ESCALATOR 0x6A
#define MB_DOWN_ESCALATOR 0x6B
#define MB_WATER_DOOR 0x6C
#define MB_WATER_SOUTH_ARROW_WARP 0x6D
#define MB_DEEP_SOUTH_WARP 0x6E
#define MB_UNUSED_6F 0x6F
#define MB_BRIDGE_OVER_OCEAN 0x70
#define MB_BRIDGE_OVER_POND_LOW 0x71
#define MB_BRIDGE_OVER_POND_MED 0x72
#define MB_BRIDGE_OVER_POND_HIGH 0x73
#define MB_PACIFIDLOG_VERTICAL_LOG_TOP 0x74
#define MB_PACIFIDLOG_VERTICAL_LOG_BOTTOM 0x75
#define MB_PACIFIDLOG_HORIZONTAL_LOG_LEFT 0x76
#define MB_PACIFIDLOG_HORIZONTAL_LOG_RIGHT 0x77
#define MB_FORTREE_BRIDGE 0x78
#define MB_UNUSED_79 0x79
#define MB_BRIDGE_OVER_POND_MED_EDGE_1 0x7A
#define MB_BRIDGE_OVER_POND_MED_EDGE_2 0x7B
#define MB_BRIDGE_OVER_POND_HIGH_EDGE_1 0x7C
#define MB_BRIDGE_OVER_POND_HIGH_EDGE_2 0x7D
#define MB_UNUSED_BRIDGE 0x7E
#define MB_BIKE_BRIDGE_OVER_BARRIER 0x7F
#define MB_COUNTER 0x80
#define MB_UNUSED_81 0x81
#define MB_UNUSED_82 0x82
#define MB_PC 0x83
#define MB_CABLE_BOX_RESULTS_1 0x84
#define MB_REGION_MAP 0x85
#define MB_TELEVISION 0x86
#define MB_POKEBLOCK_FEEDER 0x87
#define MB_UNUSED_88 0x88
#define MB_SLOT_MACHINE 0x89
#define MB_ROULETTE 0x8A
#define MB_CLOSED_SOOTOPOLIS_DOOR 0x8B
#define MB_TRICK_HOUSE_PUZZLE_DOOR 0x8C
#define MB_PETALBURG_GYM_DOOR 0x8D
#define MB_RUNNING_SHOES_INSTRUCTION 0x8E
#define MB_QUESTIONNAIRE 0x8F
#define MB_SECRET_BASE_SPOT_RED_CAVE 0x90
#define MB_SECRET_BASE_SPOT_RED_CAVE_OPEN 0x91
#define MB_SECRET_BASE_SPOT_BROWN_CAVE 0x92
#define MB_SECRET_BASE_SPOT_BROWN_CAVE_OPEN 0x93
#define MB_SECRET_BASE_SPOT_YELLOW_CAVE 0x94
#define MB_SECRET_BASE_SPOT_YELLOW_CAVE_OPEN 0x95
#define MB_SECRET_BASE_SPOT_TREE_LEFT 0x96
#define MB_SECRET_BASE_SPOT_TREE_LEFT_OPEN 0x97
#define MB_SECRET_BASE_SPOT_SHRUB 0x98
#define MB_SECRET_BASE_SPOT_SHRUB_OPEN 0x99
#define MB_SECRET_BASE_SPOT_BLUE_CAVE 0x9A
#define MB_SECRET_BASE_SPOT_BLUE_CAVE_OPEN 0x9B
#define MB_SECRET_BASE_SPOT_TREE_RIGHT 0x9C
#define MB_SECRET_BASE_SPOT_TREE_RIGHT_OPEN 0x9D
#define MB_UNUSED_9E 0x9E
#define MB_UNUSED_9F 0x9F
#define MB_BERRY_TREE_SOIL 0xA0
#define MB_UNUSED_A1 0xA1
#define MB_UNUSED_A2 0xA2
#define MB_UNUSED_A3 0xA3
#define MB_UNUSED_A4 0xA4
#define MB_UNUSED_A5 0xA5
#define MB_UNUSED_A6 0xA6
#define MB_UNUSED_A7 0xA7
#define MB_UNUSED_A8 0xA8
#define MB_UNUSED_A9 0xA9
#define MB_UNUSED_AA 0xAA
#define MB_UNUSED_AB 0xAB
#define MB_UNUSED_AC 0xAC
#define MB_UNUSED_AD 0xAD
#define MB_UNUSED_AE 0xAE
#define MB_UNUSED_AF 0xAF
#define MB_SECRET_BASE_PC 0xB0
#define MB_SECRET_BASE_REGISTER_PC 0xB1
#define MB_SECRET_BASE_UNUSED 0xB2
#define MB_BLOCK_DECORATION 0xB3
#define MB_SECRET_BASE_DECORATION 0xB4
#define MB_HOLDS_SMALL_DECORATION 0xB5
#define MB_UNUSED_B6 0xB6
#define MB_SECRET_BASE_NORTH_WALL 0xB7
#define MB_SECRET_BASE_BALLOON 0xB8
#define MB_SECRET_BASE_IMPASSABLE 0xB9
#define MB_SECRET_BASE_GLITTER_MAT 0xBA
#define MB_SECRET_BASE_JUMP_MAT 0xBB
#define MB_SECRET_BASE_SPIN_MAT 0xBC
#define MB_SECRET_BASE_SOUND_MAT 0xBD
#define MB_SECRET_BASE_BREAKABLE_DOOR 0xBE
#define MB_SECRET_BASE_SAND_ORNAMENT 0xBF
#define MB_IMPASSABLE_SOUTH_AND_NORTH 0xC0
#define MB_IMPASSABLE_WEST_AND_EAST 0xC1
#define MB_SECRET_BASE_HOLE 0xC2
#define MB_HOLDS_LARGE_DECORATION 0xC3
#define MB_SECRET_BASE_TV_SHIELD 0xC4
#define MB_PLAYER_ROOM_PC_ON 0xC5
#define MB_SECRET_BASE_DECORATION_BASE 0xC6
#define MB_SECRET_BASE_POSTER 0xC7
#define MB_UNUSED_C8 0xC8
#define MB_UNUSED_C9 0xC9
#define MB_UNUSED_CA 0xCA
#define MB_UNUSED_CB 0xCB
#define MB_UNUSED_CC 0xCC
#define MB_UNUSED_CD 0xCD
#define MB_UNUSED_CE 0xCE
#define MB_UNUSED_CF 0xCF
#define MB_MUDDY_SLOPE 0xD0
#define MB_BUMPY_SLOPE 0xD1
#define MB_CRACKED_FLOOR 0xD2
#define MB_ISOLATED_VERTICAL_RAIL 0xD3
#define MB_ISOLATED_HORIZONTAL_RAIL 0xD4
#define MB_VERTICAL_RAIL 0xD5
#define MB_HORIZONTAL_RAIL 0xD6
#define MB_UNUSED_D7 0xD7
#define MB_UNUSED_D8 0xD8
#define MB_UNUSED_D9 0xD9
#define MB_UNUSED_DA 0xDA
#define MB_UNUSED_DB 0xDB
#define MB_UNUSED_DC 0xDC
#define MB_UNUSED_DD 0xDD
#define MB_UNUSED_DE 0xDE
#define MB_UNUSED_DF 0xDF
#define MB_PICTURE_BOOK_SHELF 0xE0
#define MB_BOOKSHELF 0xE1
#define MB_POKEMON_CENTER_BOOKSHELF 0xE2
#define MB_VASE 0xE3
#define MB_TRASH_CAN 0xE4
#define MB_SHOP_SHELF 0xE5
#define MB_BLUEPRINT 0xE6
#define MB_CABLE_BOX_RESULTS_2 0xE7
#define MB_WIRELESS_BOX_RESULTS 0xE8
#define MB_TRAINER_HILL_TIMER 0xE9
#define MB_SKY_PILLAR_CLOSED_DOOR 0xEA
#define MB_UNUSED_EB 0xEB
#define MB_UNUSED_EC 0xEC
#define MB_UNUSED_ED 0xED
#define MB_UNUSED_EE 0xEE
#define MB_UNUSED_EF 0xEF
#define MB_INVALID 0xFF
#endif // GUARD_METATILE_BEHAVIORS_H

View File

@ -0,0 +1,796 @@
#ifndef GUARD_METATILE_LABELS_H
#define GUARD_METATILE_LABELS_H
// gTileset_General
#define METATILE_General_Grass 0x001
#define METATILE_General_TallGrass 0x00D
#define METATILE_General_LongGrass 0x015
#define METATILE_General_TallGrass_TreeUp 0x025
#define METATILE_General_Grass_TreeUp 0x00E
#define METATILE_General_TallGrass_TreeLeft 0x1C6
#define METATILE_General_TallGrass_TreeRight 0x1C7
#define METATILE_General_Grass_TreeLeft 0x1CE
#define METATILE_General_Grass_TreeRight 0x1CF
#define METATILE_General_MuddySlope_Frame0 0x0E8
#define METATILE_General_MuddySlope_Frame1 0x0E9
#define METATILE_General_MuddySlope_Frame2 0x0EA
#define METATILE_General_MuddySlope_Frame3 0x0EB
#define METATILE_General_SandPit_Center 0x121
#define METATILE_General_Door 0x021
#define METATILE_General_Door_PokeMart 0x041
#define METATILE_General_Door_PokeCenter 0x061
#define METATILE_General_Door_Gym 0x1CD
#define METATILE_General_Door_Contest 0x1DB
#define METATILE_General_CaveEntrance_Top 0x09F
#define METATILE_General_CaveEntrance_Bottom 0x0A7
#define METATILE_General_RockWall_GrassBase 0x079
#define METATILE_General_RockWall_RockBase 0x07C
#define METATILE_General_RockWall_SandBase 0x091
#define METATILE_General_CalmWater 0x170
#define METATILE_General_RoughWater 0x14E
#define METATILE_General_RoughDeepWater 0x14F
#define METATILE_General_ReflectiveWater 0x0A1
#define METATILE_General_SecretBase_TreeLeft 0x026
#define METATILE_General_SecretBase_TreeRight 0x027
#define METATILE_General_SecretBase_VineLeft 0x036
#define METATILE_General_SecretBase_VineRight 0x037
#define METATILE_General_RedCaveIndent 0x1A0
#define METATILE_General_RedCaveOpen 0x1A1
#define METATILE_General_YellowCaveIndent 0x1A8
#define METATILE_General_YellowCaveOpen 0x1A9
#define METATILE_General_BlueCaveIndent 0x1B0
#define METATILE_General_BlueCaveOpen 0x1B1
// gTileset_Building
#define METATILE_Building_TV_Off 0x002
#define METATILE_Building_TV_On 0x003
#define METATILE_Building_PC_Off 0x004
#define METATILE_Building_PC_On 0x005
// gTileset_PokemonCenter
#define METATILE_PokemonCenter_Door_CableClub 0x264
// gTileset_Shop
#define METATILE_Shop_Door_Elevator 0x285
// gTileset_Petalburg
#define METATILE_Petalburg_Door_Littleroot 0x248
#define METATILE_Petalburg_Door_BirchsLab 0x249
#define METATILE_Petalburg_Door_Oldale 0x287
// gTileset_Rustboro
#define METATILE_Rustboro_Door_Gray 0x21F
#define METATILE_Rustboro_Door_Tan 0x22F
// gTileset_MauvilleGym
#define METATILE_MauvilleGym_RaisedSwitch 0x205
#define METATILE_MauvilleGym_PressedSwitch 0x206
#define METATILE_MauvilleGym_FloorTile 0x21A
#define METATILE_MauvilleGym_GreenBeamH1_On 0x220
#define METATILE_MauvilleGym_GreenBeamH2_On 0x221
#define METATILE_MauvilleGym_GreenBeamH3_On 0x228
#define METATILE_MauvilleGym_GreenBeamH4_On 0x229
#define METATILE_MauvilleGym_GreenBeamH1_Off 0x230
#define METATILE_MauvilleGym_GreenBeamH2_Off 0x231
#define METATILE_MauvilleGym_GreenBeamH3_Off 0x238
#define METATILE_MauvilleGym_GreenBeamH4_Off 0x239
#define METATILE_MauvilleGym_RedBeamH1_On 0x222
#define METATILE_MauvilleGym_RedBeamH2_On 0x223
#define METATILE_MauvilleGym_RedBeamH3_On 0x22A
#define METATILE_MauvilleGym_RedBeamH4_On 0x22B
#define METATILE_MauvilleGym_RedBeamH1_Off 0x232
#define METATILE_MauvilleGym_RedBeamH2_Off 0x233
#define METATILE_MauvilleGym_RedBeamH3_Off 0x23A
#define METATILE_MauvilleGym_RedBeamH4_Off 0x23B
#define METATILE_MauvilleGym_GreenBeamV1_On 0x240
#define METATILE_MauvilleGym_GreenBeamV2_On 0x248
#define METATILE_MauvilleGym_RedBeamV1_On 0x241
#define METATILE_MauvilleGym_RedBeamV2_On 0x249
#define METATILE_MauvilleGym_PoleTop_On 0x250
#define METATILE_MauvilleGym_PoleTop_Off 0x251
#define METATILE_MauvilleGym_PoleBottom_On 0x242
#define METATILE_MauvilleGym_PoleBottom_Off 0x243
// gTileset_PetalburgGym
#define METATILE_PetalburgGym_RoomEntrance_Left 0x210
#define METATILE_PetalburgGym_RoomEntrance_Right 0x211
#define METATILE_PetalburgGym_SlidingDoor_Frame0 0x218
#define METATILE_PetalburgGym_SlidingDoor_Frame1 0x219
#define METATILE_PetalburgGym_SlidingDoor_Frame2 0x21A
#define METATILE_PetalburgGym_SlidingDoor_Frame3 0x21B
#define METATILE_PetalburgGym_SlidingDoor_Frame4 0x21C
// gTileset_MossdeepGym from R/S
#define METATILE_RS_MossdeepGym_RedArrow_Right 0x204
#define METATILE_RS_MossdeepGym_RedArrow_Left 0x20C
#define METATILE_RS_MossdeepGym_RedArrow_Up 0x20D
#define METATILE_RS_MossdeepGym_RedArrow_Down 0x205
#define METATILE_RS_MossdeepGym_Switch_Up 0x238
#define METATILE_RS_MossdeepGym_Switch_Down 0x239
// gTileset_MossdeepGym from Emerald
#define METATILE_MossdeepGym_YellowArrow_Right 0x250
// gTileset_BrendansMaysHouse
#define METATILE_BrendansMaysHouse_BrendanPC_Off 0x25A
#define METATILE_BrendansMaysHouse_BrendanPC_On 0x27F
#define METATILE_BrendansMaysHouse_MayPC_Off 0x259
#define METATILE_BrendansMaysHouse_MayPC_On 0x27E
#define METATILE_BrendansMaysHouse_MovingBox_Closed 0x268
#define METATILE_BrendansMaysHouse_MovingBox_Open 0x270
#define METATILE_BrendansMaysHouse_BookOnTable 0x293
// gTileset_Shop
#define METATILE_Shop_Laptop1_Normal 0x29D
#define METATILE_Shop_Laptop2_Normal 0x2A5
#define METATILE_Shop_Laptop1_Flash 0x258
#define METATILE_Shop_Laptop2_Flash 0x260
// gTileset_BattleFrontier
#define METATILE_BattleFrontier_Door_Elevator 0x20E
#define METATILE_BattleFrontier_Door_Corridor 0x224
#define METATILE_BattleFrontier_Door_MultiCorridor 0x2AD
#define METATILE_BattleFrontier_CorridorOpenDoor_Top 0x207
#define METATILE_BattleFrontier_CorridorOpenDoor_Bottom 0x20F
#define METATILE_BattleFrontier_Elevator_Top0 0x329
#define METATILE_BattleFrontier_Elevator_Top1 0x32A
#define METATILE_BattleFrontier_Elevator_Top2 0x32B
#define METATILE_BattleFrontier_Elevator_Mid0 0x331
#define METATILE_BattleFrontier_Elevator_Mid1 0x332
#define METATILE_BattleFrontier_Elevator_Mid2 0x333
#define METATILE_BattleFrontier_Elevator_Bottom0 0x339
#define METATILE_BattleFrontier_Elevator_Bottom1 0x33A
#define METATILE_BattleFrontier_Elevator_Bottom2 0x33B
// gTileset_BattleFrontierOutsideWest
#define METATILE_BattleFrontierOutsideWest_Door_BattleFactory 0x263
#define METATILE_BattleFrontierOutsideWest_Door_BattleDome 0x28A
#define METATILE_BattleFrontierOutsideWest_Door_Sliding 0x396
#define METATILE_BattleFrontierOutsideWest_Door 0x3FC
// gTileset_BattleFrontierOutsideEast
#define METATILE_BattleFrontierOutsideEast_Door_BattleArena 0x291
#define METATILE_BattleFrontierOutsideEast_Door_BattleTower 0x329
#define METATILE_BattleFrontierOutsideEast_Door_Sliding 0x396
#define METATILE_BattleFrontierOutsideEast_Door 0x3FC
// gTileset_BattleDome
#define METATILE_BattleDome_Door_Lobby 0x209
#define METATILE_BattleDome_Door_PreBattleRoom 0x20A
#define METATILE_BattleDome_Door_Corridor 0x25E
// gTileset_BattleArena
#define METATILE_BattleArena_Door 0x21B
// gTileset_BattlePalace
#define METATILE_BattlePalace_Door 0x219
// gTileset_Cave
#define METATILE_Cave_EntranceCover 0x229
#define METATILE_Cave_CrackedFloor_Hole 0x206
#define METATILE_Cave_CrackedFloor 0x22F
#define METATILE_Cave_SealedChamberEntrance_TopLeft 0x22A
#define METATILE_Cave_SealedChamberEntrance_TopMid 0x22B
#define METATILE_Cave_SealedChamberEntrance_TopRight 0x22C
#define METATILE_Cave_SealedChamberEntrance_BottomLeft 0x232
#define METATILE_Cave_SealedChamberEntrance_BottomMid 0x233
#define METATILE_Cave_SealedChamberEntrance_BottomRight 0x234
#define METATILE_Cave_SealedChamberBraille_Mid 0x235
#define METATILE_Cave_ShoalCave_DirtPile_Large 0x358
#define METATILE_Cave_ShoalCave_DirtPile_Small 0x35A
#define METATILE_Cave_ShoalCave_BlueStone_Large 0x359
#define METATILE_Cave_ShoalCave_BlueStone_Small 0x35B
// gTileset_Pacifidlog
#define METATILE_Pacifidlog_Door 0x21A
#define METATILE_Pacifidlog_FloatingLogs_HorizontalLeft 0x250
#define METATILE_Pacifidlog_FloatingLogs_HorizontalRight 0x251
#define METATILE_Pacifidlog_HalfSubmergedLogs_HorizontalLeft 0x252
#define METATILE_Pacifidlog_HalfSubmergedLogs_HorizontalRight 0x253
#define METATILE_Pacifidlog_SubmergedLogs_HorizontalLeft 0x254
#define METATILE_Pacifidlog_SubmergedLogs_HorizontalRight 0x255
#define METATILE_Pacifidlog_FloatingLogs_VerticalTop 0x258
#define METATILE_Pacifidlog_FloatingLogs_VerticalBottom 0x260
#define METATILE_Pacifidlog_HalfSubmergedLogs_VerticalTop 0x259
#define METATILE_Pacifidlog_HalfSubmergedLogs_VerticalBottom 0x261
#define METATILE_Pacifidlog_SubmergedLogs_VerticalTop 0x25A
#define METATILE_Pacifidlog_SubmergedLogs_VerticalBottom 0x262
#define METATILE_Pacifidlog_SkyPillar_CrackedFloor_Hole 0x237
#define METATILE_Pacifidlog_SkyPillar_DoorOpen_Top 0x2AA
#define METATILE_Pacifidlog_SkyPillar_DoorOpen_Bottom 0x2B2
// gTileset_Fortree
#define METATILE_Fortree_LongGrass_Root 0x208
#define METATILE_Fortree_BridgeOverGrass_Raised 0x24E
#define METATILE_Fortree_BridgeOverGrass_Lowered 0x24F
#define METATILE_Fortree_BridgeOverTrees_Raised 0x256
#define METATILE_Fortree_BridgeOverTrees_Lowered 0x257
#define METATILE_Fortree_SecretBase_Shrub 0x271
#define METATILE_Fortree_SecretBase_ShrubOpen 0x278
#define METATILE_Fortree_SecretBase_LongGrass_TopLeft 0x279
#define METATILE_Fortree_SecretBase_LongGrass_TopMid 0x27A
#define METATILE_Fortree_SecretBase_LongGrass_TopRight 0x27B
#define METATILE_Fortree_SecretBase_LongGrass_BottomLeft 0x281
#define METATILE_Fortree_SecretBase_LongGrass_BottomMid 0x282
#define METATILE_Fortree_SecretBase_LongGrass_BottomRight 0x283
#define METATILE_Fortree_WoodBridge1_Top 0x297
#define METATILE_Fortree_WoodBridge1_Bottom 0x29F
// gTileset_Sootopolis
#define METATILE_Sootopolis_Door 0x21E
#define METATILE_Sootopolis_Door_PeakedRoof 0x21C
#define METATILE_Sootopolis_Door_Closed 0x248
#define METATILE_Sootopolis_GymDoor_Closed 0x250
#define METATILE_Sootopolis_RoughWater 0x290
// gTileset_SootopolisGym
#define METATILE_SootopolisGym_Ice_Cracked 0x20E
#define METATILE_SootopolisGym_Ice_Broken 0x206
#define METATILE_SootopolisGym_Stairs 0x207
// gTileset_Fallarbor
#define METATILE_Fallarbor_AshGrass 0x20A
#define METATILE_Fallarbor_BrownCaveIndent 0x208
#define METATILE_Fallarbor_BrownCaveOpen 0x210
#define METATILE_Fallarbor_NormalGrass 0x212
#define METATILE_Fallarbor_AshField 0x218
#define METATILE_Fallarbor_BrownCaveEntrance_Top 0x259
#define METATILE_Fallarbor_BrownCaveEntrance_Bottom 0x261
#define METATILE_Fallarbor_RedCaveEntrance_Top 0x347
#define METATILE_Fallarbor_RedCaveEntrance_Bottom 0x34F
#define METATILE_Fallarbor_BrownRockWall 0x265
#define METATILE_Fallarbor_RedRockWall 0x269
#define METATILE_Fallarbor_Door_LightRoof 0x2A5
#define METATILE_Fallarbor_Door_DarkRoof 0x2F7
#define METATILE_Fallarbor_Door_BattleTent 0x36C
// gTileset_Lavaridge
#define METATILE_Lavaridge_NormalGrass 0x206
#define METATILE_Lavaridge_AshGrass 0x207
#define METATILE_Lavaridge_LavaField 0x271
#define METATILE_Lavaridge_RockWall 0x274
#define METATILE_Lavaridge_CaveEntrance_Top 0x256
#define METATILE_Lavaridge_CaveEntrance_Bottom 0x25E
// gTileset_Mauville
#define METATILE_Mauville_Door 0x2AC
#define METATILE_Mauville_Door_CyclingRoad 0x289
#define METATILE_Mauville_Door_Verdanturf 0x3A1
#define METATILE_Mauville_Door_BattleTent 0x3D4
#define METATILE_Mauville_DeepSand_Center 0x251
#define METATILE_Mauville_DeepSand_BottomMid 0x259
#define METATILE_Mauville_MirageTower_Tile0 0x3D8
#define METATILE_Mauville_MirageTower_Tile1 0x3D9
#define METATILE_Mauville_MirageTower_Tile2 0x3DA
#define METATILE_Mauville_MirageTower_Tile3 0x3E0
#define METATILE_Mauville_MirageTower_Tile4 0x3E1
#define METATILE_Mauville_MirageTower_Tile5 0x3E2
#define METATILE_Mauville_MirageTower_Tile6 0x3E8
#define METATILE_Mauville_MirageTower_Tile7 0x3E9
#define METATILE_Mauville_MirageTower_Tile8 0x3EA
#define METATILE_Mauville_MirageTower_Tile9 0x3F0
#define METATILE_Mauville_MirageTower_TileA 0x3F1
#define METATILE_Mauville_MirageTower_TileB 0x3F2
#define METATILE_Mauville_MirageTower_TileC 0x3DB
#define METATILE_Mauville_MirageTower_TileD 0x3DC
#define METATILE_Mauville_MirageTower_TileE 0x3DD
#define METATILE_Mauville_MirageTower_TileF 0x3E3
#define METATILE_Mauville_MirageTower_Tile10 0x3E4
#define METATILE_Mauville_MirageTower_Tile11 0x3E5
// gTileset_Dewford
#define METATILE_Dewford_Door 0x225
#define METATILE_Dewford_Door_BattleTower 0x25D
// gTileset_Slateport
#define METATILE_Slateport_Door 0x2DC
#define METATILE_Slateport_Door_BattleTent 0x393
// gTileset_Mossdeep
#define METATILE_Mossdeep_Door 0x2A1
#define METATILE_Mossdeep_Door_SpaceCenter 0x2ED
// gTileset_EverGrande
#define METATILE_EverGrande_Door_PokemonLeague 0x21D
// gTileset_PokemonCenter
#define METATILE_PokemonCenter_Escalator1F_Tile0_Frame0 0x280
#define METATILE_PokemonCenter_Escalator1F_Tile0_Frame1 0x282
#define METATILE_PokemonCenter_Escalator1F_Tile0_Frame2 0x284
#define METATILE_PokemonCenter_Escalator1F_Tile1_Frame0 0x281
#define METATILE_PokemonCenter_Escalator1F_Tile1_Frame1 0x283
#define METATILE_PokemonCenter_Escalator1F_Tile1_Frame2 0x285
#define METATILE_PokemonCenter_Escalator1F_Tile2_Frame0 0x288
#define METATILE_PokemonCenter_Escalator1F_Tile2_Frame1 0x28A
#define METATILE_PokemonCenter_Escalator1F_Tile2_Frame2 0x28C
#define METATILE_PokemonCenter_Escalator1F_Tile3_Frame0 0x289
#define METATILE_PokemonCenter_Escalator1F_Tile3_Frame1 0x28B
#define METATILE_PokemonCenter_Escalator1F_Tile3_Frame2 0x28D
#define METATILE_PokemonCenter_Escalator2F_Tile0_Frame0 0x2A0
#define METATILE_PokemonCenter_Escalator2F_Tile0_Frame1 0x2A2
#define METATILE_PokemonCenter_Escalator2F_Tile0_Frame2 0x2A4
#define METATILE_PokemonCenter_Escalator2F_Tile1_Frame0 0x2A1
#define METATILE_PokemonCenter_Escalator2F_Tile1_Frame1 0x2A3
#define METATILE_PokemonCenter_Escalator2F_Tile1_Frame2 0x2A5
#define METATILE_PokemonCenter_Escalator2F_Tile2_Frame0 0x2A8
#define METATILE_PokemonCenter_Escalator2F_Tile2_Frame1 0x2AA
#define METATILE_PokemonCenter_Escalator2F_Tile2_Frame2 0x2AC
#define METATILE_PokemonCenter_Floor_ShadowTop_Alt 0x2DC
#define METATILE_PokemonCenter_Floor_Plain_Alt 0x2E4
#define METATILE_PokemonCenter_Floor_ShadowTop 0x21E
#define METATILE_PokemonCenter_CounterBarrier 0x25D
// gTileset_InsideOfTruck
#define METATILE_InsideOfTruck_ExitLight_Top 0x208
#define METATILE_InsideOfTruck_ExitLight_Mid 0x210
#define METATILE_InsideOfTruck_ExitLight_Bottom 0x218
#define METATILE_InsideOfTruck_DoorClosedFloor_Top 0x20D
#define METATILE_InsideOfTruck_DoorClosedFloor_Mid 0x215
#define METATILE_InsideOfTruck_DoorClosedFloor_Bottom 0x21D
// gTileset_MossdeepGameCorner
#define METATILE_MossdeepGameCorner_CounterOpen_Top 0x22C
#define METATILE_MossdeepGameCorner_CounterOpen_Bottom 0x234
#define METATILE_MossdeepGameCorner_CounterClosed_Top 0x22A
#define METATILE_MossdeepGameCorner_CounterClosed_Bottom 0x232
// gTileset_EliteFour
#define METATILE_EliteFour_OpenDoor_Frame 0x344
#define METATILE_EliteFour_OpenDoor_Opening 0x345
#define METATILE_EliteFour_OpenDoorChampion_Frame 0x346
#define METATILE_EliteFour_OpenDoorChampion_Opening 0x347
#define METATILE_EliteFour_LeftSpotlightOff 0x2DD
#define METATILE_EliteFour_RightSpotlightOff 0x2DE
#define METATILE_EliteFour_EntryDoor_ClosedTop 0x206
#define METATILE_EliteFour_EntryDoor_ClosedBottom 0x20E
// gTileset_InsideShip
#define METATILE_InsideShip_IntactDoor_Bottom_Unlocked 0x22B
#define METATILE_InsideShip_IntactDoor_Bottom_Locked 0x233
#define METATILE_InsideShip_DoorIndent_Unlocked 0x21A
#define METATILE_InsideShip_DoorIndent_Locked 0x234
#define METATILE_InsideShip_IntactDoor_Bottom_Interior 0x297
// gTileset_BattlePike
#define METATILE_BattlePike_CurtainFrames_Start 0x201
#define METATILE_BattlePike_Curtain_Stage0_Tile0 0x24A
#define METATILE_BattlePike_Curtain_Stage0_Tile1 0x251
#define METATILE_BattlePike_Curtain_Stage0_Tile2 0x252
#define METATILE_BattlePike_Curtain_Stage0_Tile3 0x253
#define METATILE_BattlePike_Curtain_Stage0_Tile4 0x259
#define METATILE_BattlePike_Curtain_Stage0_Tile5 0x25A
#define METATILE_BattlePike_Curtain_Stage0_Tile6 0x25B
#define METATILE_BattlePike_Curtain_Stage1_Tile0 0x22A
#define METATILE_BattlePike_Curtain_Stage1_Tile1 0x231
#define METATILE_BattlePike_Curtain_Stage1_Tile2 0x232
#define METATILE_BattlePike_Curtain_Stage1_Tile3 0x233
#define METATILE_BattlePike_Curtain_Stage1_Tile4 0x239
#define METATILE_BattlePike_Curtain_Stage1_Tile5 0x23A
#define METATILE_BattlePike_Curtain_Stage1_Tile6 0x23B
#define METATILE_BattlePike_Curtain_Stage2_Tile0 0x20A
#define METATILE_BattlePike_Curtain_Stage2_Tile1 0x211
#define METATILE_BattlePike_Curtain_Stage2_Tile2 0x212
#define METATILE_BattlePike_Curtain_Stage2_Tile3 0x213
#define METATILE_BattlePike_Curtain_Stage2_Tile4 0x219
#define METATILE_BattlePike_Curtain_Stage2_Tile5 0x21A
#define METATILE_BattlePike_Curtain_Stage2_Tile6 0x21B
#define METATILE_BattlePike_Curtain_Stage3_Tile0 0x2AB
#define METATILE_BattlePike_Curtain_Stage3_Tile1 0x2B2
#define METATILE_BattlePike_Curtain_Stage3_Tile2 0x2B3
#define METATILE_BattlePike_Curtain_Stage3_Tile3 0x2B4
#define METATILE_BattlePike_Curtain_Stage3_Tile4 0x2BA
#define METATILE_BattlePike_Curtain_Stage3_Tile5 0x2BB
#define METATILE_BattlePike_Curtain_Stage3_Tile6 0x2BC
// gTileset_Lilycove
#define METATILE_Lilycove_Door 0x246
#define METATILE_Lilycove_Door_Wooden 0x28E
#define METATILE_Lilycove_Door_DeptStore 0x30C
#define METATILE_Lilycove_Door_SafariZone 0x32D
#define METATILE_Lilycove_Wailmer0 0x290
#define METATILE_Lilycove_Wailmer1 0x291
#define METATILE_Lilycove_Wailmer2 0x2A0
#define METATILE_Lilycove_Wailmer3 0x2A1
#define METATILE_Lilycove_Wailmer0_Alt 0x298
#define METATILE_Lilycove_Wailmer1_Alt 0x299
// gTileset_Contest
#define METATILE_Contest_WallShadow 0x221
#define METATILE_Contest_FloorShadow 0x261
#define METATILE_Contest_CounterFlap_Top 0x2D1
#define METATILE_Contest_CounterFlap_Bottom 0x2D9
// gTileset_BattleTent
#define METATILE_BattleTent_Door 0x26B
// gTileset_LilycoveMuseum
#define METATILE_LilycoveMuseum_Painting0_Left 0x25A
#define METATILE_LilycoveMuseum_Painting0_Right 0x25B
#define METATILE_LilycoveMuseum_Painting1_Left 0x25C
#define METATILE_LilycoveMuseum_Painting1_Right 0x25D
#define METATILE_LilycoveMuseum_Painting2_Left 0x25E
#define METATILE_LilycoveMuseum_Painting2_Right 0x25F
#define METATILE_LilycoveMuseum_Painting3_Left 0x260
#define METATILE_LilycoveMuseum_Painting3_Right 0x261
#define METATILE_LilycoveMuseum_Painting4_Left 0x262
#define METATILE_LilycoveMuseum_Painting4_Right 0x263
// gTileset_MeteorFalls
#define METATILE_MeteorFalls_CaveEntrance_Top 0x246
#define METATILE_MeteorFalls_CaveEntrance_Left 0x24D
#define METATILE_MeteorFalls_CaveEntrance_Bottom 0x24E
#define METATILE_MeteorFalls_CaveEntrance_Right 0x24F
// gTileset_Facility
#define METATILE_Facility_NewMauvilleDoor_Closed_Tile0 0x314
#define METATILE_Facility_NewMauvilleDoor_Closed_Tile1 0x315
#define METATILE_Facility_NewMauvilleDoor_Closed_Tile2 0x316
#define METATILE_Facility_NewMauvilleDoor_Closed_Tile3 0x31C
#define METATILE_Facility_NewMauvilleDoor_Closed_Tile4 0x31D
#define METATILE_Facility_NewMauvilleDoor_Closed_Tile5 0x31E
#define METATILE_Facility_NewMauvilleDoor_Open_Tile0 0x2C3
#define METATILE_Facility_NewMauvilleDoor_Open_Tile1 0x2C4
#define METATILE_Facility_NewMauvilleDoor_Open_Tile2 0x2C5
#define METATILE_Facility_NewMauvilleDoor_Open_Tile3 0x2CB
#define METATILE_Facility_NewMauvilleDoor_Open_Tile4 0x2CC
#define METATILE_Facility_NewMauvilleDoor_Open_Tile5 0x2CD
#define METATILE_Facility_DataPad 0x3E4
// gTileset_GenericBuilding
#define METATILE_GenericBuilding_TableEdge 0x2F1
#define METATILE_GenericBuilding_TrickHouse_Door_Closed 0x21B
#define METATILE_GenericBuilding_TrickHouse_Stairs_Down 0x219
// gTileset_TrickHousePuzzle
#define METATILE_TrickHousePuzzle_Stairs_Down 0x20B
#define METATILE_TrickHousePuzzle_Lever_Off 0x23E
#define METATILE_TrickHousePuzzle_Lever_On 0x23F
#define METATILE_TrickHousePuzzle_Button_Up 0x258
#define METATILE_TrickHousePuzzle_Button_Pressed 0x259
#define METATILE_TrickHousePuzzle_Door_Shuttered 0x26A
#define METATILE_TrickHousePuzzle_Floor_ShadowTop_Alt 0x252
#define METATILE_TrickHousePuzzle_Floor_ShadowTop 0x255
#define METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile0 0x24B
#define METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile1 0x24C
#define METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile2 0x253
#define METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile3 0x254
#define METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile0 0x23B
#define METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile1 0x23C
#define METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile2 0x243
#define METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile3 0x244
#define METATILE_TrickHousePuzzle_RedDoorH_Open_Tile0 0x248
#define METATILE_TrickHousePuzzle_RedDoorH_Open_Tile1 0x249
#define METATILE_TrickHousePuzzle_RedDoorH_Open_Tile2 0x250
#define METATILE_TrickHousePuzzle_RedDoorH_Open_Tile3 0x251
#define METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile0 0x238
#define METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile1 0x239
#define METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile2 0x240
#define METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile3 0x241
#define METATILE_TrickHousePuzzle_BlueDoorV_Retracted 0x24D
#define METATILE_TrickHousePuzzle_RedDoorV_Retracted 0x24A
#define METATILE_TrickHousePuzzle_RedDoorV_Open0 0x23A
#define METATILE_TrickHousePuzzle_RedDoorV_Open1 0x242
#define METATILE_TrickHousePuzzle_BlueDoorV_Open0 0x23D
#define METATILE_TrickHousePuzzle_BlueDoorV_Open1 0x245
#define METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Right 0x260
#define METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Left 0x261
#define METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Up 0x262
#define METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Down 0x263
#define METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Left_Alt 0x27B
#define METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Right_Alt 0x27C
#define METATILE_TrickHousePuzzle_Arrow_YellowOnWhite_Right 0x298
// gTileset_BikeShop (also used by New Mauville)
#define METATILE_BikeShop_Barrier_Hidden_Top 0x269
#define METATILE_BikeShop_Barrier_Hidden_Bottom 0x271
#define METATILE_BikeShop_Floor_Shadow_Top 0x26D
#define METATILE_BikeShop_Wall_Edge_Top 0x281
#define METATILE_BikeShop_Button_Pressed 0x24F
#define METATILE_BikeShop_Button_Green 0x22E
#define METATILE_BikeShop_Button_Blue 0x236
#define METATILE_BikeShop_Barrier_Green_Top 0x2B6
#define METATILE_BikeShop_Barrier_Green_TopMid 0x2BE
#define METATILE_BikeShop_Barrier_Green_BottomMid 0x2C6
#define METATILE_BikeShop_Barrier_Green_Bottom 0x2CE
#define METATILE_BikeShop_Barrier_Blue_Top 0x2B7
#define METATILE_BikeShop_Barrier_Blue_TopMid 0x2BF
#define METATILE_BikeShop_Barrier_Blue_BottomMid 0x2C7
#define METATILE_BikeShop_Barrier_Blue_Bottom 0x2CF
#define METATILE_BikeShop_Generator_Off_Tile0 0x2F0
#define METATILE_BikeShop_Generator_Off_Tile1 0x2F1
#define METATILE_BikeShop_Generator_Off_Tile2 0x2F2
#define METATILE_BikeShop_Generator_Off_Tile3 0x2F3
#define METATILE_BikeShop_Generator_Off_Tile4 0x2F4
#define METATILE_BikeShop_Generator_Off_Tile5 0x2F5
#define METATILE_BikeShop_Generator_Off_Tile6 0x2F6
#define METATILE_BikeShop_Generator_Off_Tile7 0x2F7
// gTileset_TrainerHill
#define METATILE_TrainerHill_GreenFloorTile 0x307
#define METATILE_TrainerHill_CounterDoor 0x334
#define METATILE_TrainerHill_Door_Elevator_Lobby 0x32C
#define METATILE_TrainerHill_Door_Elevator_Roof 0x383
// gTileset_Underwater
#define METATILE_Underwater_RockWall 0x21E
#define METATILE_Underwater_FloorShadow 0x228
// gTileset_SecretBase
#define METATILE_SecretBase_Wall_TopMid 0x202
#define METATILE_SecretBase_Ground 0x20A
#define METATILE_SecretBase_PC 0x220
#define METATILE_SecretBase_RegisterPC 0x221
#define METATILE_SecretBase_PC_On 0x224
#define METATILE_SecretBase_RedBrick_Top 0x225
#define METATILE_SecretBase_RedBrick_Bottom 0x22D
#define METATILE_SecretBase_YellowBrick_Top 0x226
#define METATILE_SecretBase_YellowBrick_Bottom 0x22E
#define METATILE_SecretBase_BlueBrick_Top 0x227
#define METATILE_SecretBase_BlueBrick_Bottom 0x22F
#define METATILE_SecretBase_MudBall 0x228
#define METATILE_SecretBase_Fence_Horizontal 0x22C
#define METATILE_SecretBase_Fence_Vertical 0x233
#define METATILE_SecretBase_SolidBoard_Top 0x234
#define METATILE_SecretBase_SolidBoard_Bottom 0x23C
#define METATILE_SecretBase_RedTent_TopLeft 0x230
#define METATILE_SecretBase_RedTent_TopMid 0x231
#define METATILE_SecretBase_RedTent_TopRight 0x232
#define METATILE_SecretBase_RedTent_MidLeft 0x238
#define METATILE_SecretBase_RedTent_DoorTop 0x239
#define METATILE_SecretBase_RedTent_MidRight 0x23A
#define METATILE_SecretBase_RedTent_BottomLeft 0x240
#define METATILE_SecretBase_RedTent_Door 0x241
#define METATILE_SecretBase_RedTent_BottomRight 0x23B
#define METATILE_SecretBase_BlueTent_TopLeft 0x248
#define METATILE_SecretBase_BlueTent_TopMid 0x249
#define METATILE_SecretBase_BlueTent_TopRight 0x268
#define METATILE_SecretBase_BlueTent_MidLeft 0x250
#define METATILE_SecretBase_BlueTent_DoorTop 0x251
#define METATILE_SecretBase_BlueTent_MidRight 0x270
#define METATILE_SecretBase_BlueTent_BottomLeft 0x258
#define METATILE_SecretBase_BlueTent_Door 0x259
#define METATILE_SecretBase_BlueTent_BottomRight 0x269
#define METATILE_SecretBase_Slide_TopLeft 0x235
#define METATILE_SecretBase_Slide_TopRight 0x236
#define METATILE_SecretBase_Slide_StairLanding 0x23D
#define METATILE_SecretBase_Slide_SlideTop 0x23E
#define METATILE_SecretBase_Slide_Stairs 0x263
#define METATILE_SecretBase_Slide_SlideBottom 0x264
#define METATILE_SecretBase_Slide_MatLeft 0x26F
#define METATILE_SecretBase_Slide_MatRight 0x277
#define METATILE_SecretBase_Stand_CornerLeft 0x26A
#define METATILE_SecretBase_Stand_MidLeft 0x26B
#define METATILE_SecretBase_Stand_MidRight 0x26C
#define METATILE_SecretBase_Stand_CornerRight 0x26D
#define METATILE_SecretBase_Stand_StairsLeft 0x272
#define METATILE_SecretBase_Stand_BaseLeft 0x273
#define METATILE_SecretBase_Stand_BaseRight 0x274
#define METATILE_SecretBase_Stand_StairsRight 0x275
#define METATILE_SecretBase_BreakableDoor_TopClosed 0x237
#define METATILE_SecretBase_BreakableDoor_BottomClosed 0x23F
#define METATILE_SecretBase_BreakableDoor_TopOpen 0x26E
#define METATILE_SecretBase_BreakableDoor_BottomOpen 0x276
#define METATILE_SecretBase_GlitterMat 0x260
#define METATILE_SecretBase_JumpMat 0x261
#define METATILE_SecretBase_SpinMat 0x262
#define METATILE_SecretBase_NoteMat_C_Low 0x278
#define METATILE_SecretBase_NoteMat_D 0x279
#define METATILE_SecretBase_NoteMat_E 0x27A
#define METATILE_SecretBase_NoteMat_F 0x27B
#define METATILE_SecretBase_NoteMat_G 0x27C
#define METATILE_SecretBase_NoteMat_A 0x27D
#define METATILE_SecretBase_NoteMat_B 0x27E
#define METATILE_SecretBase_NoteMat_C_High 0x2B3
#define METATILE_SecretBase_Tire_TopLeft 0x280
#define METATILE_SecretBase_Tire_TopRight 0x281
#define METATILE_SecretBase_Tire_BottomLeft 0x288
#define METATILE_SecretBase_Tire_BottomRight 0x289
#define METATILE_SecretBase_GlassOrnament_Top 0x282
#define METATILE_SecretBase_GlassOrnament_Base1 0x28A
#define METATILE_SecretBase_GlassOrnament_TopWall 0x283
#define METATILE_SecretBase_GlassOrnament_Base2 0x28B
#define METATILE_SecretBase_SandOrnament_BrokenTop 0x284
#define METATILE_SecretBase_SandOrnament_BrokenBase 0x28C
#define METATILE_SecretBase_SandOrnament_Top 0x285
#define METATILE_SecretBase_SandOrnament_Base1 0x28D
#define METATILE_SecretBase_SandOrnament_TopWall 0x286
#define METATILE_SecretBase_SandOrnament_Base2 0x28E
#define METATILE_SecretBase_SmallDesk 0x287
#define METATILE_SecretBase_PokemonDesk 0x28F
#define METATILE_SecretBase_HeavyDesk_TopLeft 0x290
#define METATILE_SecretBase_HeavyDesk_TopMid 0x291
#define METATILE_SecretBase_HeavyDesk_TopRight 0x292
#define METATILE_SecretBase_HeavyDesk_BottomLeft 0x298
#define METATILE_SecretBase_HeavyDesk_BottomMid 0x299
#define METATILE_SecretBase_HeavyDesk_BottomRight 0x29A
#define METATILE_SecretBase_RaggedDesk_TopLeft 0x293
#define METATILE_SecretBase_RaggedDesk_TopMid 0x294
#define METATILE_SecretBase_RaggedDesk_TopRight 0x295
#define METATILE_SecretBase_RaggedDesk_BottomLeft 0x29B
#define METATILE_SecretBase_RaggedDesk_BottomMid 0x29C
#define METATILE_SecretBase_RaggedDesk_BottomRight 0x29D
#define METATILE_SecretBase_ComfortDesk_TopLeft 0x296
#define METATILE_SecretBase_ComfortDesk_TopMid 0x297
#define METATILE_SecretBase_ComfortDesk_TopRight 0x2A3
#define METATILE_SecretBase_ComfortDesk_BottomLeft 0x29E
#define METATILE_SecretBase_ComfortDesk_BottomMid 0x29F
#define METATILE_SecretBase_ComfortDesk_BottomRight 0x2AB
#define METATILE_SecretBase_BrickDesk_TopLeft 0x2A0
#define METATILE_SecretBase_BrickDesk_TopMid 0x2A1
#define METATILE_SecretBase_BrickDesk_TopRight 0x2A2
#define METATILE_SecretBase_BrickDesk_MidLeft 0x2A8
#define METATILE_SecretBase_BrickDesk_Center 0x2A9
#define METATILE_SecretBase_BrickDesk_MidRight 0x2AA
#define METATILE_SecretBase_BrickDesk_BottomLeft 0x2B0
#define METATILE_SecretBase_BrickDesk_BottomMid 0x2B1
#define METATILE_SecretBase_BrickDesk_BottomRight 0x2B2
#define METATILE_SecretBase_CampDesk_TopLeft 0x2A4
#define METATILE_SecretBase_CampDesk_TopMid 0x2A5
#define METATILE_SecretBase_CampDesk_TopRight 0x2A6
#define METATILE_SecretBase_CampDesk_MidLeft 0x2AC
#define METATILE_SecretBase_CampDesk_Center 0x2AD
#define METATILE_SecretBase_CampDesk_MidRight 0x2AE
#define METATILE_SecretBase_CampDesk_BottomLeft 0x2B4
#define METATILE_SecretBase_CampDesk_BottomMid 0x2B5
#define METATILE_SecretBase_CampDesk_BottomRight 0x2B6
#define METATILE_SecretBase_HardDesk_TopLeft 0x2A7
#define METATILE_SecretBase_HardDesk_TopMid 0x2BB
#define METATILE_SecretBase_HardDesk_TopRight 0x2BC
#define METATILE_SecretBase_HardDesk_MidLeft 0x2AF
#define METATILE_SecretBase_HardDesk_Center 0x2C3
#define METATILE_SecretBase_HardDesk_MidRight 0x2C4
#define METATILE_SecretBase_HardDesk_BottomLeft 0x2B7
#define METATILE_SecretBase_HardDesk_BottomMid 0x2CB
#define METATILE_SecretBase_HardDesk_BottomRight 0x2CC
#define METATILE_SecretBase_PrettyDesk_TopLeft 0x2BD
#define METATILE_SecretBase_PrettyDesk_TopMid 0x2BE
#define METATILE_SecretBase_PrettyDesk_TopRight 0x2BF
#define METATILE_SecretBase_PrettyDesk_MidLeft 0x2C5
#define METATILE_SecretBase_PrettyDesk_Center 0x2C6
#define METATILE_SecretBase_PrettyDesk_MidRight 0x2C7
#define METATILE_SecretBase_PrettyDesk_BottomLeft 0x2CD
#define METATILE_SecretBase_PrettyDesk_BottomMid 0x2CE
#define METATILE_SecretBase_PrettyDesk_BottomRight 0x2CF
#define METATILE_SecretBase_SmallChair 0x2B8
#define METATILE_SecretBase_PokemonChair 0x2B9
#define METATILE_SecretBase_HeavyChair 0x2BA
#define METATILE_SecretBase_PrettyChair 0x2C0
#define METATILE_SecretBase_ComfortChair 0x2C1
#define METATILE_SecretBase_RaggedChair 0x2C2
#define METATILE_SecretBase_BrickChair 0x2C8
#define METATILE_SecretBase_CampChair 0x2C9
#define METATILE_SecretBase_HardChair 0x2CA
#define METATILE_SecretBase_RedPlant_Top 0x2D0
#define METATILE_SecretBase_RedPlant_Base1 0x2D8
#define METATILE_SecretBase_RedPlant_TopWall 0x2D1
#define METATILE_SecretBase_RedPlant_Base2 0x2D9
#define METATILE_SecretBase_TropicalPlant_Top 0x2D2
#define METATILE_SecretBase_TropicalPlant_Base1 0x2DA
#define METATILE_SecretBase_TropicalPlant_TopWall 0x2D3
#define METATILE_SecretBase_TropicalPlant_Base2 0x2DB
#define METATILE_SecretBase_PrettyFlowers_Top 0x2D4
#define METATILE_SecretBase_PrettyFlowers_Base1 0x2DC
#define METATILE_SecretBase_PrettyFlowers_TopWall 0x2D5
#define METATILE_SecretBase_PrettyFlowers_Base2 0x2DD
#define METATILE_SecretBase_ColorfulPlant_TopLeft 0x2E0
#define METATILE_SecretBase_ColorfulPlant_TopRight 0x2E2
#define METATILE_SecretBase_ColorfulPlant_BaseLeft1 0x2E8
#define METATILE_SecretBase_ColorfulPlant_BaseRight1 0x2E9
#define METATILE_SecretBase_ColorfulPlant_TopLeftWall 0x2E1
#define METATILE_SecretBase_ColorfulPlant_TopRightWall 0x2E3
#define METATILE_SecretBase_ColorfulPlant_BaseLeft2 0x2EA
#define METATILE_SecretBase_ColorfulPlant_BaseRight2 0x2EB
#define METATILE_SecretBase_BigPlant_TopLeft 0x2E4
#define METATILE_SecretBase_BigPlant_TopRight 0x2E6
#define METATILE_SecretBase_BigPlant_BaseLeft1 0x2EC
#define METATILE_SecretBase_BigPlant_BaseRight1 0x2ED
#define METATILE_SecretBase_BigPlant_TopLeftWall 0x2E5
#define METATILE_SecretBase_BigPlant_TopRightWall 0x2E6
#define METATILE_SecretBase_BigPlant_BaseLeft2 0x2EE
#define METATILE_SecretBase_BigPlant_BaseRight2 0x2EF
#define METATILE_SecretBase_GorgeousPlant_TopLeft 0x2F0
#define METATILE_SecretBase_GorgeousPlant_TopRight 0x2F2
#define METATILE_SecretBase_GorgeousPlant_BaseLeft1 0x2F8
#define METATILE_SecretBase_GorgeousPlant_BaseRight1 0x2F9
#define METATILE_SecretBase_GorgeousPlant_TopLeftWall 0x2F1
#define METATILE_SecretBase_GorgeousPlant_TopRightWall 0x2F3
#define METATILE_SecretBase_GorgeousPlant_BaseLeft2 0x2FA
#define METATILE_SecretBase_GorgeousPlant_BaseRight2 0x2FB
#define METATILE_SecretBase_TV 0x2F4
#define METATILE_SecretBase_RoundTV 0x2F5
#define METATILE_SecretBase_CuteTV 0x2F6
#define METATILE_SecretBase_PikaPoster_Left 0x31C
#define METATILE_SecretBase_PikaPoster_Right 0x31D
#define METATILE_SecretBase_LongPoster_Left 0x31E
#define METATILE_SecretBase_LongPoster_Right 0x31F
#define METATILE_SecretBase_SeaPoster_Left 0x324
#define METATILE_SecretBase_SeaPoster_Right 0x325
#define METATILE_SecretBase_SkyPoster_Left 0x326
#define METATILE_SecretBase_SkyPoster_Right 0x327
#define METATILE_SecretBase_KissPoster_Left 0x32C
#define METATILE_SecretBase_KissPoster_Right 0x32D
#define METATILE_SecretBase_BallPoster 0x330
#define METATILE_SecretBase_GreenPoster 0x331
#define METATILE_SecretBase_RedPoster 0x332
#define METATILE_SecretBase_BluePoster 0x333
#define METATILE_SecretBase_CutePoster 0x334
#define METATILE_SecretBase_SilverShield_Top 0x2D6
#define METATILE_SecretBase_SilverShield_Base1 0x2DE
#define METATILE_SecretBase_SilverShield_TopWall 0x2D7
#define METATILE_SecretBase_SilverShield_Base2 0x2DF
#define METATILE_SecretBase_GoldShield_Top 0x32E
#define METATILE_SecretBase_GoldShield_Base1 0x336
#define METATILE_SecretBase_GoldShield_TopWall 0x32F
#define METATILE_SecretBase_GoldShield_Base2 0x337
#define METATILE_SecretBase_RedBalloon 0x338
#define METATILE_SecretBase_BlueBalloon 0x33C
#define METATILE_SecretBase_YellowBalloon 0x340
#define METATILE_SecretBase_SurfMat_TopLeft 0x242
#define METATILE_SecretBase_SurfMat_TopMid 0x243
#define METATILE_SecretBase_SurfMat_TopRight 0x244
#define METATILE_SecretBase_SurfMat_MidLeft 0x24A
#define METATILE_SecretBase_SurfMat_Center 0x24B
#define METATILE_SecretBase_SurfMat_MidRight 0x24C
#define METATILE_SecretBase_SurfMat_BottomLeft 0x252
#define METATILE_SecretBase_SurfMat_BottomMid 0x253
#define METATILE_SecretBase_SurfMat_BottomRight 0x254
#define METATILE_SecretBase_ThunderMat_TopLeft 0x245
#define METATILE_SecretBase_ThunderMat_TopMid 0x246
#define METATILE_SecretBase_ThunderMat_TopRight 0x247
#define METATILE_SecretBase_ThunderMat_MidLeft 0x24D
#define METATILE_SecretBase_ThunderMat_Center 0x24E
#define METATILE_SecretBase_ThunderMat_MidRight 0x24F
#define METATILE_SecretBase_ThunderMat_BottomLeft 0x255
#define METATILE_SecretBase_ThunderMat_BottomMid 0x256
#define METATILE_SecretBase_ThunderMat_BottomRight 0x257
#define METATILE_SecretBase_FireBlastMat_TopLeft 0x25A
#define METATILE_SecretBase_FireBlastMat_TopMid 0x25B
#define METATILE_SecretBase_FireBlastMat_TopRight 0x25C
#define METATILE_SecretBase_FireBlastMat_MidLeft 0x25D
#define METATILE_SecretBase_FireBlastMat_Center 0x25E
#define METATILE_SecretBase_FireBlastMat_MidRight 0x25F
#define METATILE_SecretBase_FireBlastMat_BottomLeft 0x265
#define METATILE_SecretBase_FireBlastMat_BottomMid 0x266
#define METATILE_SecretBase_FireBlastMat_BottomRight 0x267
#define METATILE_SecretBase_PowderSnowMat_TopLeft 0x300
#define METATILE_SecretBase_PowderSnowMat_TopMid 0x301
#define METATILE_SecretBase_PowderSnowMat_TopRight 0x302
#define METATILE_SecretBase_PowderSnowMat_MidLeft 0x308
#define METATILE_SecretBase_PowderSnowMat_Center 0x309
#define METATILE_SecretBase_PowderSnowMat_MidRight 0x30A
#define METATILE_SecretBase_PowderSnowMat_BottomLeft 0x310
#define METATILE_SecretBase_PowderSnowMat_BottomMid 0x311
#define METATILE_SecretBase_PowderSnowMat_BottomRight 0x312
#define METATILE_SecretBase_AttractMat_TopLeft 0x303
#define METATILE_SecretBase_AttractMat_TopMid 0x304
#define METATILE_SecretBase_AttractMat_TopRight 0x305
#define METATILE_SecretBase_AttractMat_MidLeft 0x30B
#define METATILE_SecretBase_AttractMat_Center 0x30C
#define METATILE_SecretBase_AttractMat_MidRight 0x30D
#define METATILE_SecretBase_AttractMat_BottomLeft 0x313
#define METATILE_SecretBase_AttractMat_BottomMid 0x314
#define METATILE_SecretBase_AttractMat_BottomRight 0x315
#define METATILE_SecretBase_FissureMat_TopLeft 0x306
#define METATILE_SecretBase_FissureMat_TopMid 0x307
#define METATILE_SecretBase_FissureMat_TopRight 0x318
#define METATILE_SecretBase_FissureMat_MidLeft 0x30E
#define METATILE_SecretBase_FissureMat_Center 0x30F
#define METATILE_SecretBase_FissureMat_MidRight 0x320
#define METATILE_SecretBase_FissureMat_BottomLeft 0x316
#define METATILE_SecretBase_FissureMat_BottomMid 0x317
#define METATILE_SecretBase_FissureMat_BottomRight 0x328
#define METATILE_SecretBase_SpikesMat_TopLeft 0x319
#define METATILE_SecretBase_SpikesMat_TopMid 0x31A
#define METATILE_SecretBase_SpikesMat_TopRight 0x31B
#define METATILE_SecretBase_SpikesMat_MidLeft 0x321
#define METATILE_SecretBase_SpikesMat_Center 0x322
#define METATILE_SecretBase_SpikesMat_MidRight 0x323
#define METATILE_SecretBase_SpikesMat_BottomLeft 0x329
#define METATILE_SecretBase_SpikesMat_BottomMid 0x32A
#define METATILE_SecretBase_SpikesMat_BottomRight 0x32B
// gTileset_BattlePyramid
#define METATILE_BattlePyramid_Floor 0x28D
#define METATILE_BattlePyramid_Exit 0x28E
#endif // GUARD_METATILE_LABELS_H

362
include/constants/moves.h Normal file
View File

@ -0,0 +1,362 @@
#ifndef GUARD_CONSTANTS_MOVES_H
#define GUARD_CONSTANTS_MOVES_H
#define MOVE_NONE 0
#define MOVE_POUND 1
#define MOVE_KARATE_CHOP 2
#define MOVE_DOUBLE_SLAP 3
#define MOVE_COMET_PUNCH 4
#define MOVE_MEGA_PUNCH 5
#define MOVE_PAY_DAY 6
#define MOVE_FIRE_PUNCH 7
#define MOVE_ICE_PUNCH 8
#define MOVE_THUNDER_PUNCH 9
#define MOVE_SCRATCH 10
#define MOVE_VICE_GRIP 11
#define MOVE_GUILLOTINE 12
#define MOVE_RAZOR_WIND 13
#define MOVE_SWORDS_DANCE 14
#define MOVE_CUT 15
#define MOVE_GUST 16
#define MOVE_WING_ATTACK 17
#define MOVE_WHIRLWIND 18
#define MOVE_FLY 19
#define MOVE_BIND 20
#define MOVE_SLAM 21
#define MOVE_VINE_WHIP 22
#define MOVE_STOMP 23
#define MOVE_DOUBLE_KICK 24
#define MOVE_MEGA_KICK 25
#define MOVE_JUMP_KICK 26
#define MOVE_ROLLING_KICK 27
#define MOVE_SAND_ATTACK 28
#define MOVE_HEADBUTT 29
#define MOVE_HORN_ATTACK 30
#define MOVE_FURY_ATTACK 31
#define MOVE_HORN_DRILL 32
#define MOVE_TACKLE 33
#define MOVE_BODY_SLAM 34
#define MOVE_WRAP 35
#define MOVE_TAKE_DOWN 36
#define MOVE_THRASH 37
#define MOVE_DOUBLE_EDGE 38
#define MOVE_TAIL_WHIP 39
#define MOVE_POISON_STING 40
#define MOVE_TWINEEDLE 41
#define MOVE_PIN_MISSILE 42
#define MOVE_LEER 43
#define MOVE_BITE 44
#define MOVE_GROWL 45
#define MOVE_ROAR 46
#define MOVE_SING 47
#define MOVE_SUPERSONIC 48
#define MOVE_SONIC_BOOM 49
#define MOVE_DISABLE 50
#define MOVE_ACID 51
#define MOVE_EMBER 52
#define MOVE_FLAMETHROWER 53
#define MOVE_MIST 54
#define MOVE_WATER_GUN 55
#define MOVE_HYDRO_PUMP 56
#define MOVE_SURF 57
#define MOVE_ICE_BEAM 58
#define MOVE_BLIZZARD 59
#define MOVE_PSYBEAM 60
#define MOVE_BUBBLE_BEAM 61
#define MOVE_AURORA_BEAM 62
#define MOVE_HYPER_BEAM 63
#define MOVE_PECK 64
#define MOVE_DRILL_PECK 65
#define MOVE_SUBMISSION 66
#define MOVE_LOW_KICK 67
#define MOVE_COUNTER 68
#define MOVE_SEISMIC_TOSS 69
#define MOVE_STRENGTH 70
#define MOVE_ABSORB 71
#define MOVE_MEGA_DRAIN 72
#define MOVE_LEECH_SEED 73
#define MOVE_GROWTH 74
#define MOVE_RAZOR_LEAF 75
#define MOVE_SOLAR_BEAM 76
#define MOVE_POISON_POWDER 77
#define MOVE_STUN_SPORE 78
#define MOVE_SLEEP_POWDER 79
#define MOVE_PETAL_DANCE 80
#define MOVE_STRING_SHOT 81
#define MOVE_DRAGON_RAGE 82
#define MOVE_FIRE_SPIN 83
#define MOVE_THUNDER_SHOCK 84
#define MOVE_THUNDERBOLT 85
#define MOVE_THUNDER_WAVE 86
#define MOVE_THUNDER 87
#define MOVE_ROCK_THROW 88
#define MOVE_EARTHQUAKE 89
#define MOVE_FISSURE 90
#define MOVE_DIG 91
#define MOVE_TOXIC 92
#define MOVE_CONFUSION 93
#define MOVE_PSYCHIC 94
#define MOVE_HYPNOSIS 95
#define MOVE_MEDITATE 96
#define MOVE_AGILITY 97
#define MOVE_QUICK_ATTACK 98
#define MOVE_RAGE 99
#define MOVE_TELEPORT 100
#define MOVE_NIGHT_SHADE 101
#define MOVE_MIMIC 102
#define MOVE_SCREECH 103
#define MOVE_DOUBLE_TEAM 104
#define MOVE_RECOVER 105
#define MOVE_HARDEN 106
#define MOVE_MINIMIZE 107
#define MOVE_SMOKESCREEN 108
#define MOVE_CONFUSE_RAY 109
#define MOVE_WITHDRAW 110
#define MOVE_DEFENSE_CURL 111
#define MOVE_BARRIER 112
#define MOVE_LIGHT_SCREEN 113
#define MOVE_HAZE 114
#define MOVE_REFLECT 115
#define MOVE_FOCUS_ENERGY 116
#define MOVE_BIDE 117
#define MOVE_METRONOME 118
#define MOVE_MIRROR_MOVE 119
#define MOVE_SELF_DESTRUCT 120
#define MOVE_EGG_BOMB 121
#define MOVE_LICK 122
#define MOVE_SMOG 123
#define MOVE_SLUDGE 124
#define MOVE_BONE_CLUB 125
#define MOVE_FIRE_BLAST 126
#define MOVE_WATERFALL 127
#define MOVE_CLAMP 128
#define MOVE_SWIFT 129
#define MOVE_SKULL_BASH 130
#define MOVE_SPIKE_CANNON 131
#define MOVE_CONSTRICT 132
#define MOVE_AMNESIA 133
#define MOVE_KINESIS 134
#define MOVE_SOFT_BOILED 135
#define MOVE_HI_JUMP_KICK 136
#define MOVE_GLARE 137
#define MOVE_DREAM_EATER 138
#define MOVE_POISON_GAS 139
#define MOVE_BARRAGE 140
#define MOVE_LEECH_LIFE 141
#define MOVE_LOVELY_KISS 142
#define MOVE_SKY_ATTACK 143
#define MOVE_TRANSFORM 144
#define MOVE_BUBBLE 145
#define MOVE_DIZZY_PUNCH 146
#define MOVE_SPORE 147
#define MOVE_FLASH 148
#define MOVE_PSYWAVE 149
#define MOVE_SPLASH 150
#define MOVE_ACID_ARMOR 151
#define MOVE_CRABHAMMER 152
#define MOVE_EXPLOSION 153
#define MOVE_FURY_SWIPES 154
#define MOVE_BONEMERANG 155
#define MOVE_REST 156
#define MOVE_ROCK_SLIDE 157
#define MOVE_HYPER_FANG 158
#define MOVE_SHARPEN 159
#define MOVE_CONVERSION 160
#define MOVE_TRI_ATTACK 161
#define MOVE_SUPER_FANG 162
#define MOVE_SLASH 163
#define MOVE_SUBSTITUTE 164
#define MOVE_STRUGGLE 165
#define MOVE_SKETCH 166
#define MOVE_TRIPLE_KICK 167
#define MOVE_THIEF 168
#define MOVE_SPIDER_WEB 169
#define MOVE_MIND_READER 170
#define MOVE_NIGHTMARE 171
#define MOVE_FLAME_WHEEL 172
#define MOVE_SNORE 173
#define MOVE_CURSE 174
#define MOVE_FLAIL 175
#define MOVE_CONVERSION_2 176
#define MOVE_AEROBLAST 177
#define MOVE_COTTON_SPORE 178
#define MOVE_REVERSAL 179
#define MOVE_SPITE 180
#define MOVE_POWDER_SNOW 181
#define MOVE_PROTECT 182
#define MOVE_MACH_PUNCH 183
#define MOVE_SCARY_FACE 184
#define MOVE_FAINT_ATTACK 185
#define MOVE_SWEET_KISS 186
#define MOVE_BELLY_DRUM 187
#define MOVE_SLUDGE_BOMB 188
#define MOVE_MUD_SLAP 189
#define MOVE_OCTAZOOKA 190
#define MOVE_SPIKES 191
#define MOVE_ZAP_CANNON 192
#define MOVE_FORESIGHT 193
#define MOVE_DESTINY_BOND 194
#define MOVE_PERISH_SONG 195
#define MOVE_ICY_WIND 196
#define MOVE_DETECT 197
#define MOVE_BONE_RUSH 198
#define MOVE_LOCK_ON 199
#define MOVE_OUTRAGE 200
#define MOVE_SANDSTORM 201
#define MOVE_GIGA_DRAIN 202
#define MOVE_ENDURE 203
#define MOVE_CHARM 204
#define MOVE_ROLLOUT 205
#define MOVE_FALSE_SWIPE 206
#define MOVE_SWAGGER 207
#define MOVE_MILK_DRINK 208
#define MOVE_SPARK 209
#define MOVE_FURY_CUTTER 210
#define MOVE_STEEL_WING 211
#define MOVE_MEAN_LOOK 212
#define MOVE_ATTRACT 213
#define MOVE_SLEEP_TALK 214
#define MOVE_HEAL_BELL 215
#define MOVE_RETURN 216
#define MOVE_PRESENT 217
#define MOVE_FRUSTRATION 218
#define MOVE_SAFEGUARD 219
#define MOVE_PAIN_SPLIT 220
#define MOVE_SACRED_FIRE 221
#define MOVE_MAGNITUDE 222
#define MOVE_DYNAMIC_PUNCH 223
#define MOVE_MEGAHORN 224
#define MOVE_DRAGON_BREATH 225
#define MOVE_BATON_PASS 226
#define MOVE_ENCORE 227
#define MOVE_PURSUIT 228
#define MOVE_RAPID_SPIN 229
#define MOVE_SWEET_SCENT 230
#define MOVE_IRON_TAIL 231
#define MOVE_METAL_CLAW 232
#define MOVE_VITAL_THROW 233
#define MOVE_MORNING_SUN 234
#define MOVE_SYNTHESIS 235
#define MOVE_MOONLIGHT 236
#define MOVE_HIDDEN_POWER 237
#define MOVE_CROSS_CHOP 238
#define MOVE_TWISTER 239
#define MOVE_RAIN_DANCE 240
#define MOVE_SUNNY_DAY 241
#define MOVE_CRUNCH 242
#define MOVE_MIRROR_COAT 243
#define MOVE_PSYCH_UP 244
#define MOVE_EXTREME_SPEED 245
#define MOVE_ANCIENT_POWER 246
#define MOVE_SHADOW_BALL 247
#define MOVE_FUTURE_SIGHT 248
#define MOVE_ROCK_SMASH 249
#define MOVE_WHIRLPOOL 250
#define MOVE_BEAT_UP 251
#define MOVE_FAKE_OUT 252
#define MOVE_UPROAR 253
#define MOVE_STOCKPILE 254
#define MOVE_SPIT_UP 255
#define MOVE_SWALLOW 256
#define MOVE_HEAT_WAVE 257
#define MOVE_HAIL 258
#define MOVE_TORMENT 259
#define MOVE_FLATTER 260
#define MOVE_WILL_O_WISP 261
#define MOVE_MEMENTO 262
#define MOVE_FACADE 263
#define MOVE_FOCUS_PUNCH 264
#define MOVE_SMELLING_SALT 265
#define MOVE_FOLLOW_ME 266
#define MOVE_NATURE_POWER 267
#define MOVE_CHARGE 268
#define MOVE_TAUNT 269
#define MOVE_HELPING_HAND 270
#define MOVE_TRICK 271
#define MOVE_ROLE_PLAY 272
#define MOVE_WISH 273
#define MOVE_ASSIST 274
#define MOVE_INGRAIN 275
#define MOVE_SUPERPOWER 276
#define MOVE_MAGIC_COAT 277
#define MOVE_RECYCLE 278
#define MOVE_REVENGE 279
#define MOVE_BRICK_BREAK 280
#define MOVE_YAWN 281
#define MOVE_KNOCK_OFF 282
#define MOVE_ENDEAVOR 283
#define MOVE_ERUPTION 284
#define MOVE_SKILL_SWAP 285
#define MOVE_IMPRISON 286
#define MOVE_REFRESH 287
#define MOVE_GRUDGE 288
#define MOVE_SNATCH 289
#define MOVE_SECRET_POWER 290
#define MOVE_DIVE 291
#define MOVE_ARM_THRUST 292
#define MOVE_CAMOUFLAGE 293
#define MOVE_TAIL_GLOW 294
#define MOVE_LUSTER_PURGE 295
#define MOVE_MIST_BALL 296
#define MOVE_FEATHER_DANCE 297
#define MOVE_TEETER_DANCE 298
#define MOVE_BLAZE_KICK 299
#define MOVE_MUD_SPORT 300
#define MOVE_ICE_BALL 301
#define MOVE_NEEDLE_ARM 302
#define MOVE_SLACK_OFF 303
#define MOVE_HYPER_VOICE 304
#define MOVE_POISON_FANG 305
#define MOVE_CRUSH_CLAW 306
#define MOVE_BLAST_BURN 307
#define MOVE_HYDRO_CANNON 308
#define MOVE_METEOR_MASH 309
#define MOVE_ASTONISH 310
#define MOVE_WEATHER_BALL 311
#define MOVE_AROMATHERAPY 312
#define MOVE_FAKE_TEARS 313
#define MOVE_AIR_CUTTER 314
#define MOVE_OVERHEAT 315
#define MOVE_ODOR_SLEUTH 316
#define MOVE_ROCK_TOMB 317
#define MOVE_SILVER_WIND 318
#define MOVE_METAL_SOUND 319
#define MOVE_GRASS_WHISTLE 320
#define MOVE_TICKLE 321
#define MOVE_COSMIC_POWER 322
#define MOVE_WATER_SPOUT 323
#define MOVE_SIGNAL_BEAM 324
#define MOVE_SHADOW_PUNCH 325
#define MOVE_EXTRASENSORY 326
#define MOVE_SKY_UPPERCUT 327
#define MOVE_SAND_TOMB 328
#define MOVE_SHEER_COLD 329
#define MOVE_MUDDY_WATER 330
#define MOVE_BULLET_SEED 331
#define MOVE_AERIAL_ACE 332
#define MOVE_ICICLE_SPEAR 333
#define MOVE_IRON_DEFENSE 334
#define MOVE_BLOCK 335
#define MOVE_HOWL 336
#define MOVE_DRAGON_CLAW 337
#define MOVE_FRENZY_PLANT 338
#define MOVE_BULK_UP 339
#define MOVE_BOUNCE 340
#define MOVE_MUD_SHOT 341
#define MOVE_POISON_TAIL 342
#define MOVE_COVET 343
#define MOVE_VOLT_TACKLE 344
#define MOVE_MAGICAL_LEAF 345
#define MOVE_WATER_SPORT 346
#define MOVE_CALM_MIND 347
#define MOVE_LEAF_BLADE 348
#define MOVE_DRAGON_DANCE 349
#define MOVE_ROCK_BLAST 350
#define MOVE_SHOCK_WAVE 351
#define MOVE_WATER_PULSE 352
#define MOVE_DOOM_DESIRE 353
#define MOVE_PSYCHO_BOOST 354
#define MOVES_COUNT 355
#endif // GUARD_CONSTANTS_MOVES_H

View File

@ -0,0 +1,47 @@
#ifndef GUARD_CONSTANTS_MYSTERY_GIFT_H
#define GUARD_CONSTANTS_MYSTERY_GIFT_H
#define GET_NUM_STAMPS 0
#define GET_MAX_STAMPS 1
#define GET_CARD_BATTLES_WON 2
#define GET_CARD_BATTLES_LOST 3
#define GET_CARD_NUM_TRADES 4
#define CARD_STAT_BATTLES_WON 0
#define CARD_STAT_BATTLES_LOST 1
#define CARD_STAT_NUM_TRADES 2
#define CARD_STAT_NUM_STAMPS 3
#define CARD_STAT_MAX_STAMPS 4
// Values for the type field of Wonder Card
#define CARD_TYPE_GIFT 0 // Normal "Wonder Card"
#define CARD_TYPE_STAMP 1 // "Stamp Card"
#define CARD_TYPE_LINK_STAT 2 // Referred to as the "Battle Card", shows battle and trade stats
#define CARD_TYPE_COUNT 3
// Values for the sendType field of Wonder Card/News
#define SEND_TYPE_DISALLOWED 0
#define SEND_TYPE_ALLOWED 1
#define SEND_TYPE_ALLOWED_ALWAYS 2
// Return values for MysteryGift_CompareCardFlags, handled by gMysteryGiftServerScript_SendWonderCard
#define HAS_NO_CARD 0
#define HAS_SAME_CARD 1
#define HAS_DIFF_CARD 2
// The number of battles needed to be recorded on a Battle Card to win a prize
#define REQUIRED_CARD_BATTLES 3
// Stamps are 32 bits. The first 16 bits are the species
// and the second 16 bits are a number (presumably an ID of some kind)
#define STAMP_SPECIES 0
#define STAMP_ID 1
// Number of different types/colors of Wonder Card and News backgrounds
#define NUM_WONDER_BGS 8
#define MAX_WONDER_CARD_STAT 999
#define WONDER_CARD_FLAG_OFFSET 1000
#endif //GUARD_CONSTANTS_MYSTERY_GIFT_H

View File

@ -0,0 +1,867 @@
#ifndef GUARD_CONSTANTS_OPPONENTS_H
#define GUARD_CONSTANTS_OPPONENTS_H
#define TRAINER_NONE 0
#define TRAINER_SAWYER_1 1
#define TRAINER_GRUNT_AQUA_HIDEOUT_1 2
#define TRAINER_GRUNT_AQUA_HIDEOUT_2 3
#define TRAINER_GRUNT_AQUA_HIDEOUT_3 4
#define TRAINER_GRUNT_AQUA_HIDEOUT_4 5
#define TRAINER_GRUNT_SEAFLOOR_CAVERN_1 6
#define TRAINER_GRUNT_SEAFLOOR_CAVERN_2 7
#define TRAINER_GRUNT_SEAFLOOR_CAVERN_3 8
#define TRAINER_GABRIELLE_1 9
#define TRAINER_GRUNT_PETALBURG_WOODS 10
#define TRAINER_MARCEL 11
#define TRAINER_ALBERTO 12
#define TRAINER_ED 13
#define TRAINER_GRUNT_SEAFLOOR_CAVERN_4 14
#define TRAINER_DECLAN 15
#define TRAINER_GRUNT_RUSTURF_TUNNEL 16
#define TRAINER_GRUNT_WEATHER_INST_1 17
#define TRAINER_GRUNT_WEATHER_INST_2 18
#define TRAINER_GRUNT_WEATHER_INST_3 19
#define TRAINER_GRUNT_MUSEUM_1 20
#define TRAINER_GRUNT_MUSEUM_2 21
#define TRAINER_GRUNT_SPACE_CENTER_1 22
#define TRAINER_GRUNT_MT_PYRE_1 23
#define TRAINER_GRUNT_MT_PYRE_2 24
#define TRAINER_GRUNT_MT_PYRE_3 25
#define TRAINER_GRUNT_WEATHER_INST_4 26
#define TRAINER_GRUNT_AQUA_HIDEOUT_5 27
#define TRAINER_GRUNT_AQUA_HIDEOUT_6 28
#define TRAINER_FREDRICK 29
#define TRAINER_MATT 30
#define TRAINER_ZANDER 31
#define TRAINER_SHELLY_WEATHER_INSTITUTE 32
#define TRAINER_SHELLY_SEAFLOOR_CAVERN 33
#define TRAINER_ARCHIE 34
#define TRAINER_LEAH 35
#define TRAINER_DAISY 36
#define TRAINER_ROSE_1 37
#define TRAINER_FELIX 38
#define TRAINER_VIOLET 39
#define TRAINER_ROSE_2 40
#define TRAINER_ROSE_3 41
#define TRAINER_ROSE_4 42
#define TRAINER_ROSE_5 43
#define TRAINER_DUSTY_1 44
#define TRAINER_CHIP 45
#define TRAINER_FOSTER 46
#define TRAINER_DUSTY_2 47
#define TRAINER_DUSTY_3 48
#define TRAINER_DUSTY_4 49
#define TRAINER_DUSTY_5 50
#define TRAINER_GABBY_AND_TY_1 51
#define TRAINER_GABBY_AND_TY_2 52
#define TRAINER_GABBY_AND_TY_3 53
#define TRAINER_GABBY_AND_TY_4 54
#define TRAINER_GABBY_AND_TY_5 55
#define TRAINER_GABBY_AND_TY_6 56
#define TRAINER_LOLA_1 57
#define TRAINER_AUSTINA 58
#define TRAINER_GWEN 59
#define TRAINER_LOLA_2 60
#define TRAINER_LOLA_3 61
#define TRAINER_LOLA_4 62
#define TRAINER_LOLA_5 63
#define TRAINER_RICKY_1 64
#define TRAINER_SIMON 65
#define TRAINER_CHARLIE 66
#define TRAINER_RICKY_2 67
#define TRAINER_RICKY_3 68
#define TRAINER_RICKY_4 69
#define TRAINER_RICKY_5 70
#define TRAINER_RANDALL 71
#define TRAINER_PARKER 72
#define TRAINER_GEORGE 73
#define TRAINER_BERKE 74
#define TRAINER_BRAXTON 75
#define TRAINER_VINCENT 76
#define TRAINER_LEROY 77
#define TRAINER_WILTON_1 78
#define TRAINER_EDGAR 79
#define TRAINER_ALBERT 80
#define TRAINER_SAMUEL 81
#define TRAINER_VITO 82
#define TRAINER_OWEN 83
#define TRAINER_WILTON_2 84
#define TRAINER_WILTON_3 85
#define TRAINER_WILTON_4 86
#define TRAINER_WILTON_5 87
#define TRAINER_WARREN 88
#define TRAINER_MARY 89
#define TRAINER_ALEXIA 90
#define TRAINER_JODY 91
#define TRAINER_WENDY 92
#define TRAINER_KEIRA 93
#define TRAINER_BROOKE_1 94
#define TRAINER_JENNIFER 95
#define TRAINER_HOPE 96
#define TRAINER_SHANNON 97
#define TRAINER_MICHELLE 98
#define TRAINER_CAROLINE 99
#define TRAINER_JULIE 100
#define TRAINER_BROOKE_2 101
#define TRAINER_BROOKE_3 102
#define TRAINER_BROOKE_4 103
#define TRAINER_BROOKE_5 104
#define TRAINER_PATRICIA 105
#define TRAINER_KINDRA 106
#define TRAINER_TAMMY 107
#define TRAINER_VALERIE_1 108
#define TRAINER_TASHA 109
#define TRAINER_VALERIE_2 110
#define TRAINER_VALERIE_3 111
#define TRAINER_VALERIE_4 112
#define TRAINER_VALERIE_5 113
#define TRAINER_CINDY_1 114
#define TRAINER_DAPHNE 115
#define TRAINER_GRUNT_SPACE_CENTER_2 116
#define TRAINER_CINDY_2 117
#define TRAINER_BRIANNA 118
#define TRAINER_NAOMI 119
#define TRAINER_CINDY_3 120
#define TRAINER_CINDY_4 121
#define TRAINER_CINDY_5 122
#define TRAINER_CINDY_6 123
#define TRAINER_MELISSA 124
#define TRAINER_SHEILA 125
#define TRAINER_SHIRLEY 126
#define TRAINER_JESSICA_1 127
#define TRAINER_CONNIE 128
#define TRAINER_BRIDGET 129
#define TRAINER_OLIVIA 130
#define TRAINER_TIFFANY 131
#define TRAINER_JESSICA_2 132
#define TRAINER_JESSICA_3 133
#define TRAINER_JESSICA_4 134
#define TRAINER_JESSICA_5 135
#define TRAINER_WINSTON_1 136
#define TRAINER_MOLLIE 137
#define TRAINER_GARRET 138
#define TRAINER_WINSTON_2 139
#define TRAINER_WINSTON_3 140
#define TRAINER_WINSTON_4 141
#define TRAINER_WINSTON_5 142
#define TRAINER_STEVE_1 143
#define TRAINER_THALIA_1 144
#define TRAINER_MARK 145
#define TRAINER_GRUNT_MT_CHIMNEY_1 146
#define TRAINER_STEVE_2 147
#define TRAINER_STEVE_3 148
#define TRAINER_STEVE_4 149
#define TRAINER_STEVE_5 150
#define TRAINER_LUIS 151
#define TRAINER_DOMINIK 152
#define TRAINER_DOUGLAS 153
#define TRAINER_DARRIN 154
#define TRAINER_TONY_1 155
#define TRAINER_JEROME 156
#define TRAINER_MATTHEW 157
#define TRAINER_DAVID 158
#define TRAINER_SPENCER 159
#define TRAINER_ROLAND 160
#define TRAINER_NOLEN 161
#define TRAINER_STAN 162
#define TRAINER_BARRY 163
#define TRAINER_DEAN 164
#define TRAINER_RODNEY 165
#define TRAINER_RICHARD 166
#define TRAINER_HERMAN 167
#define TRAINER_SANTIAGO 168
#define TRAINER_GILBERT 169
#define TRAINER_FRANKLIN 170
#define TRAINER_KEVIN 171
#define TRAINER_JACK 172
#define TRAINER_DUDLEY 173
#define TRAINER_CHAD 174
#define TRAINER_TONY_2 175
#define TRAINER_TONY_3 176
#define TRAINER_TONY_4 177
#define TRAINER_TONY_5 178
#define TRAINER_TAKAO 179
#define TRAINER_HITOSHI 180
#define TRAINER_KIYO 181
#define TRAINER_KOICHI 182
#define TRAINER_NOB_1 183
#define TRAINER_NOB_2 184
#define TRAINER_NOB_3 185
#define TRAINER_NOB_4 186
#define TRAINER_NOB_5 187
#define TRAINER_YUJI 188
#define TRAINER_DAISUKE 189
#define TRAINER_ATSUSHI 190
#define TRAINER_KIRK 191
#define TRAINER_GRUNT_AQUA_HIDEOUT_7 192
#define TRAINER_GRUNT_AQUA_HIDEOUT_8 193
#define TRAINER_SHAWN 194
#define TRAINER_FERNANDO_1 195
#define TRAINER_DALTON_1 196
#define TRAINER_DALTON_2 197
#define TRAINER_DALTON_3 198
#define TRAINER_DALTON_4 199
#define TRAINER_DALTON_5 200
#define TRAINER_COLE 201
#define TRAINER_JEFF 202
#define TRAINER_AXLE 203
#define TRAINER_JACE 204
#define TRAINER_KEEGAN 205
#define TRAINER_BERNIE_1 206
#define TRAINER_BERNIE_2 207
#define TRAINER_BERNIE_3 208
#define TRAINER_BERNIE_4 209
#define TRAINER_BERNIE_5 210
#define TRAINER_DREW 211
#define TRAINER_BEAU 212
#define TRAINER_LARRY 213
#define TRAINER_SHANE 214
#define TRAINER_JUSTIN 215
#define TRAINER_ETHAN_1 216
#define TRAINER_AUTUMN 217
#define TRAINER_TRAVIS 218
#define TRAINER_ETHAN_2 219
#define TRAINER_ETHAN_3 220
#define TRAINER_ETHAN_4 221
#define TRAINER_ETHAN_5 222
#define TRAINER_BRENT 223
#define TRAINER_DONALD 224
#define TRAINER_TAYLOR 225
#define TRAINER_JEFFREY_1 226
#define TRAINER_DEREK 227
#define TRAINER_JEFFREY_2 228
#define TRAINER_JEFFREY_3 229
#define TRAINER_JEFFREY_4 230
#define TRAINER_JEFFREY_5 231
#define TRAINER_EDWARD 232
#define TRAINER_PRESTON 233
#define TRAINER_VIRGIL 234
#define TRAINER_BLAKE 235
#define TRAINER_WILLIAM 236
#define TRAINER_JOSHUA 237
#define TRAINER_CAMERON_1 238
#define TRAINER_CAMERON_2 239
#define TRAINER_CAMERON_3 240
#define TRAINER_CAMERON_4 241
#define TRAINER_CAMERON_5 242
#define TRAINER_JACLYN 243
#define TRAINER_HANNAH 244
#define TRAINER_SAMANTHA 245
#define TRAINER_MAURA 246
#define TRAINER_KAYLA 247
#define TRAINER_ALEXIS 248
#define TRAINER_JACKI_1 249
#define TRAINER_JACKI_2 250
#define TRAINER_JACKI_3 251
#define TRAINER_JACKI_4 252
#define TRAINER_JACKI_5 253
#define TRAINER_WALTER_1 254
#define TRAINER_MICAH 255
#define TRAINER_THOMAS 256
#define TRAINER_WALTER_2 257
#define TRAINER_WALTER_3 258
#define TRAINER_WALTER_4 259
#define TRAINER_WALTER_5 260
#define TRAINER_SIDNEY 261
#define TRAINER_PHOEBE 262
#define TRAINER_GLACIA 263
#define TRAINER_DRAKE 264
#define TRAINER_ROXANNE_1 265
#define TRAINER_BRAWLY_1 266
#define TRAINER_WATTSON_1 267
#define TRAINER_FLANNERY_1 268
#define TRAINER_NORMAN_1 269
#define TRAINER_WINONA_1 270
#define TRAINER_TATE_AND_LIZA_1 271
#define TRAINER_JUAN_1 272
#define TRAINER_JERRY_1 273
#define TRAINER_TED 274
#define TRAINER_PAUL 275
#define TRAINER_JERRY_2 276
#define TRAINER_JERRY_3 277
#define TRAINER_JERRY_4 278
#define TRAINER_JERRY_5 279
#define TRAINER_KAREN_1 280
#define TRAINER_GEORGIA 281
#define TRAINER_KAREN_2 282
#define TRAINER_KAREN_3 283
#define TRAINER_KAREN_4 284
#define TRAINER_KAREN_5 285
#define TRAINER_KATE_AND_JOY 286
#define TRAINER_ANNA_AND_MEG_1 287
#define TRAINER_ANNA_AND_MEG_2 288
#define TRAINER_ANNA_AND_MEG_3 289
#define TRAINER_ANNA_AND_MEG_4 290
#define TRAINER_ANNA_AND_MEG_5 291
#define TRAINER_VICTOR 292
#define TRAINER_MIGUEL_1 293
#define TRAINER_COLTON 294
#define TRAINER_MIGUEL_2 295
#define TRAINER_MIGUEL_3 296
#define TRAINER_MIGUEL_4 297
#define TRAINER_MIGUEL_5 298
#define TRAINER_VICTORIA 299
#define TRAINER_VANESSA 300
#define TRAINER_BETHANY 301
#define TRAINER_ISABEL_1 302
#define TRAINER_ISABEL_2 303
#define TRAINER_ISABEL_3 304
#define TRAINER_ISABEL_4 305
#define TRAINER_ISABEL_5 306
#define TRAINER_TIMOTHY_1 307
#define TRAINER_TIMOTHY_2 308
#define TRAINER_TIMOTHY_3 309
#define TRAINER_TIMOTHY_4 310
#define TRAINER_TIMOTHY_5 311
#define TRAINER_VICKY 312
#define TRAINER_SHELBY_1 313
#define TRAINER_SHELBY_2 314
#define TRAINER_SHELBY_3 315
#define TRAINER_SHELBY_4 316
#define TRAINER_SHELBY_5 317
#define TRAINER_CALVIN_1 318
#define TRAINER_BILLY 319
#define TRAINER_JOSH 320
#define TRAINER_TOMMY 321
#define TRAINER_JOEY 322
#define TRAINER_BEN 323
#define TRAINER_QUINCY 324
#define TRAINER_KATELYNN 325
#define TRAINER_JAYLEN 326
#define TRAINER_DILLON 327
#define TRAINER_CALVIN_2 328
#define TRAINER_CALVIN_3 329
#define TRAINER_CALVIN_4 330
#define TRAINER_CALVIN_5 331
#define TRAINER_EDDIE 332
#define TRAINER_ALLEN 333
#define TRAINER_TIMMY 334
#define TRAINER_WALLACE 335
#define TRAINER_ANDREW 336
#define TRAINER_IVAN 337
#define TRAINER_CLAUDE 338
#define TRAINER_ELLIOT_1 339
#define TRAINER_NED 340
#define TRAINER_DALE 341
#define TRAINER_NOLAN 342
#define TRAINER_BARNY 343
#define TRAINER_WADE 344
#define TRAINER_CARTER 345
#define TRAINER_ELLIOT_2 346
#define TRAINER_ELLIOT_3 347
#define TRAINER_ELLIOT_4 348
#define TRAINER_ELLIOT_5 349
#define TRAINER_RONALD 350
#define TRAINER_JACOB 351
#define TRAINER_ANTHONY 352
#define TRAINER_BENJAMIN_1 353
#define TRAINER_BENJAMIN_2 354
#define TRAINER_BENJAMIN_3 355
#define TRAINER_BENJAMIN_4 356
#define TRAINER_BENJAMIN_5 357
#define TRAINER_ABIGAIL_1 358
#define TRAINER_JASMINE 359
#define TRAINER_ABIGAIL_2 360
#define TRAINER_ABIGAIL_3 361
#define TRAINER_ABIGAIL_4 362
#define TRAINER_ABIGAIL_5 363
#define TRAINER_DYLAN_1 364
#define TRAINER_DYLAN_2 365
#define TRAINER_DYLAN_3 366
#define TRAINER_DYLAN_4 367
#define TRAINER_DYLAN_5 368
#define TRAINER_MARIA_1 369
#define TRAINER_MARIA_2 370
#define TRAINER_MARIA_3 371
#define TRAINER_MARIA_4 372
#define TRAINER_MARIA_5 373
#define TRAINER_CAMDEN 374
#define TRAINER_DEMETRIUS 375
#define TRAINER_ISAIAH_1 376
#define TRAINER_PABLO_1 377
#define TRAINER_CHASE 378
#define TRAINER_ISAIAH_2 379
#define TRAINER_ISAIAH_3 380
#define TRAINER_ISAIAH_4 381
#define TRAINER_ISAIAH_5 382
#define TRAINER_ISOBEL 383
#define TRAINER_DONNY 384
#define TRAINER_TALIA 385
#define TRAINER_KATELYN_1 386
#define TRAINER_ALLISON 387
#define TRAINER_KATELYN_2 388
#define TRAINER_KATELYN_3 389
#define TRAINER_KATELYN_4 390
#define TRAINER_KATELYN_5 391
#define TRAINER_NICOLAS_1 392
#define TRAINER_NICOLAS_2 393
#define TRAINER_NICOLAS_3 394
#define TRAINER_NICOLAS_4 395
#define TRAINER_NICOLAS_5 396
#define TRAINER_AARON 397
#define TRAINER_PERRY 398
#define TRAINER_HUGH 399
#define TRAINER_PHIL 400
#define TRAINER_JARED 401
#define TRAINER_HUMBERTO 402
#define TRAINER_PRESLEY 403
#define TRAINER_EDWARDO 404
#define TRAINER_COLIN 405
#define TRAINER_ROBERT_1 406
#define TRAINER_BENNY 407
#define TRAINER_CHESTER 408
#define TRAINER_ROBERT_2 409
#define TRAINER_ROBERT_3 410
#define TRAINER_ROBERT_4 411
#define TRAINER_ROBERT_5 412
#define TRAINER_ALEX 413
#define TRAINER_BECK 414
#define TRAINER_YASU 415
#define TRAINER_TAKASHI 416
#define TRAINER_DIANNE 417
#define TRAINER_JANI 418
#define TRAINER_LAO_1 419
#define TRAINER_LUNG 420
#define TRAINER_LAO_2 421
#define TRAINER_LAO_3 422
#define TRAINER_LAO_4 423
#define TRAINER_LAO_5 424
#define TRAINER_JOCELYN 425
#define TRAINER_LAURA 426
#define TRAINER_CYNDY_1 427
#define TRAINER_CORA 428
#define TRAINER_PAULA 429
#define TRAINER_CYNDY_2 430
#define TRAINER_CYNDY_3 431
#define TRAINER_CYNDY_4 432
#define TRAINER_CYNDY_5 433
#define TRAINER_MADELINE_1 434
#define TRAINER_CLARISSA 435
#define TRAINER_ANGELICA 436
#define TRAINER_MADELINE_2 437
#define TRAINER_MADELINE_3 438
#define TRAINER_MADELINE_4 439
#define TRAINER_MADELINE_5 440
#define TRAINER_BEVERLY 441
#define TRAINER_IMANI 442
#define TRAINER_KYLA 443
#define TRAINER_DENISE 444
#define TRAINER_BETH 445
#define TRAINER_TARA 446
#define TRAINER_MISSY 447
#define TRAINER_ALICE 448
#define TRAINER_JENNY_1 449
#define TRAINER_GRACE 450
#define TRAINER_TANYA 451
#define TRAINER_SHARON 452
#define TRAINER_NIKKI 453
#define TRAINER_BRENDA 454
#define TRAINER_KATIE 455
#define TRAINER_SUSIE 456
#define TRAINER_KARA 457
#define TRAINER_DANA 458
#define TRAINER_SIENNA 459
#define TRAINER_DEBRA 460
#define TRAINER_LINDA 461
#define TRAINER_KAYLEE 462
#define TRAINER_LAUREL 463
#define TRAINER_CARLEE 464
#define TRAINER_JENNY_2 465
#define TRAINER_JENNY_3 466
#define TRAINER_JENNY_4 467
#define TRAINER_JENNY_5 468
#define TRAINER_HEIDI 469
#define TRAINER_BECKY 470
#define TRAINER_CAROL 471
#define TRAINER_NANCY 472
#define TRAINER_MARTHA 473
#define TRAINER_DIANA_1 474
#define TRAINER_CEDRIC 475
#define TRAINER_IRENE 476
#define TRAINER_DIANA_2 477
#define TRAINER_DIANA_3 478
#define TRAINER_DIANA_4 479
#define TRAINER_DIANA_5 480
#define TRAINER_AMY_AND_LIV_1 481
#define TRAINER_AMY_AND_LIV_2 482
#define TRAINER_GINA_AND_MIA_1 483
#define TRAINER_MIU_AND_YUKI 484
#define TRAINER_AMY_AND_LIV_3 485
#define TRAINER_GINA_AND_MIA_2 486
#define TRAINER_AMY_AND_LIV_4 487
#define TRAINER_AMY_AND_LIV_5 488
#define TRAINER_AMY_AND_LIV_6 489
#define TRAINER_HUEY 490
#define TRAINER_EDMOND 491
#define TRAINER_ERNEST_1 492
#define TRAINER_DWAYNE 493
#define TRAINER_PHILLIP 494
#define TRAINER_LEONARD 495
#define TRAINER_DUNCAN 496
#define TRAINER_ERNEST_2 497
#define TRAINER_ERNEST_3 498
#define TRAINER_ERNEST_4 499
#define TRAINER_ERNEST_5 500
#define TRAINER_ELI 501
#define TRAINER_ANNIKA 502
#define TRAINER_JAZMYN 503
#define TRAINER_JONAS 504
#define TRAINER_KAYLEY 505
#define TRAINER_AURON 506
#define TRAINER_KELVIN 507
#define TRAINER_MARLEY 508
#define TRAINER_REYNA 509
#define TRAINER_HUDSON 510
#define TRAINER_CONOR 511
#define TRAINER_EDWIN_1 512
#define TRAINER_HECTOR 513
#define TRAINER_TABITHA_MOSSDEEP 514
#define TRAINER_EDWIN_2 515
#define TRAINER_EDWIN_3 516
#define TRAINER_EDWIN_4 517
#define TRAINER_EDWIN_5 518
#define TRAINER_WALLY_VR_1 519
#define TRAINER_BRENDAN_ROUTE_103_MUDKIP 520
#define TRAINER_BRENDAN_ROUTE_110_MUDKIP 521
#define TRAINER_BRENDAN_ROUTE_119_MUDKIP 522
#define TRAINER_BRENDAN_ROUTE_103_TREECKO 523
#define TRAINER_BRENDAN_ROUTE_110_TREECKO 524
#define TRAINER_BRENDAN_ROUTE_119_TREECKO 525
#define TRAINER_BRENDAN_ROUTE_103_TORCHIC 526
#define TRAINER_BRENDAN_ROUTE_110_TORCHIC 527
#define TRAINER_BRENDAN_ROUTE_119_TORCHIC 528
#define TRAINER_MAY_ROUTE_103_MUDKIP 529
#define TRAINER_MAY_ROUTE_110_MUDKIP 530
#define TRAINER_MAY_ROUTE_119_MUDKIP 531
#define TRAINER_MAY_ROUTE_103_TREECKO 532
#define TRAINER_MAY_ROUTE_110_TREECKO 533
#define TRAINER_MAY_ROUTE_119_TREECKO 534
#define TRAINER_MAY_ROUTE_103_TORCHIC 535
#define TRAINER_MAY_ROUTE_110_TORCHIC 536
#define TRAINER_MAY_ROUTE_119_TORCHIC 537
#define TRAINER_ISAAC_1 538
#define TRAINER_DAVIS 539
#define TRAINER_MITCHELL 540
#define TRAINER_ISAAC_2 541
#define TRAINER_ISAAC_3 542
#define TRAINER_ISAAC_4 543
#define TRAINER_ISAAC_5 544
#define TRAINER_LYDIA_1 545
#define TRAINER_HALLE 546
#define TRAINER_GARRISON 547
#define TRAINER_LYDIA_2 548
#define TRAINER_LYDIA_3 549
#define TRAINER_LYDIA_4 550
#define TRAINER_LYDIA_5 551
#define TRAINER_JACKSON_1 552
#define TRAINER_LORENZO 553
#define TRAINER_SEBASTIAN 554
#define TRAINER_JACKSON_2 555
#define TRAINER_JACKSON_3 556
#define TRAINER_JACKSON_4 557
#define TRAINER_JACKSON_5 558
#define TRAINER_CATHERINE_1 559
#define TRAINER_JENNA 560
#define TRAINER_SOPHIA 561
#define TRAINER_CATHERINE_2 562
#define TRAINER_CATHERINE_3 563
#define TRAINER_CATHERINE_4 564
#define TRAINER_CATHERINE_5 565
#define TRAINER_JULIO 566
#define TRAINER_GRUNT_SEAFLOOR_CAVERN_5 567
#define TRAINER_GRUNT_UNUSED 568
#define TRAINER_GRUNT_MT_PYRE_4 569
#define TRAINER_GRUNT_JAGGED_PASS 570
#define TRAINER_MARC 571
#define TRAINER_BRENDEN 572
#define TRAINER_LILITH 573
#define TRAINER_CRISTIAN 574
#define TRAINER_SYLVIA 575
#define TRAINER_LEONARDO 576
#define TRAINER_ATHENA 577
#define TRAINER_HARRISON 578
#define TRAINER_GRUNT_MT_CHIMNEY_2 579
#define TRAINER_CLARENCE 580
#define TRAINER_TERRY 581
#define TRAINER_NATE 582
#define TRAINER_KATHLEEN 583
#define TRAINER_CLIFFORD 584
#define TRAINER_NICHOLAS 585
#define TRAINER_GRUNT_SPACE_CENTER_3 586
#define TRAINER_GRUNT_SPACE_CENTER_4 587
#define TRAINER_GRUNT_SPACE_CENTER_5 588
#define TRAINER_GRUNT_SPACE_CENTER_6 589
#define TRAINER_GRUNT_SPACE_CENTER_7 590
#define TRAINER_MACEY 591
#define TRAINER_BRENDAN_RUSTBORO_TREECKO 592
#define TRAINER_BRENDAN_RUSTBORO_MUDKIP 593
#define TRAINER_PAXTON 594
#define TRAINER_ISABELLA 595
#define TRAINER_GRUNT_WEATHER_INST_5 596
#define TRAINER_TABITHA_MT_CHIMNEY 597
#define TRAINER_JONATHAN 598
#define TRAINER_BRENDAN_RUSTBORO_TORCHIC 599
#define TRAINER_MAY_RUSTBORO_MUDKIP 600
#define TRAINER_MAXIE_MAGMA_HIDEOUT 601
#define TRAINER_MAXIE_MT_CHIMNEY 602
#define TRAINER_TIANA 603
#define TRAINER_HALEY_1 604
#define TRAINER_JANICE 605
#define TRAINER_VIVI 606
#define TRAINER_HALEY_2 607
#define TRAINER_HALEY_3 608
#define TRAINER_HALEY_4 609
#define TRAINER_HALEY_5 610
#define TRAINER_SALLY 611
#define TRAINER_ROBIN 612
#define TRAINER_ANDREA 613
#define TRAINER_CRISSY 614
#define TRAINER_RICK 615
#define TRAINER_LYLE 616
#define TRAINER_JOSE 617
#define TRAINER_DOUG 618
#define TRAINER_GREG 619
#define TRAINER_KENT 620
#define TRAINER_JAMES_1 621
#define TRAINER_JAMES_2 622
#define TRAINER_JAMES_3 623
#define TRAINER_JAMES_4 624
#define TRAINER_JAMES_5 625
#define TRAINER_BRICE 626
#define TRAINER_TRENT_1 627
#define TRAINER_LENNY 628
#define TRAINER_LUCAS_1 629
#define TRAINER_ALAN 630
#define TRAINER_CLARK 631
#define TRAINER_ERIC 632
#define TRAINER_LUCAS_2 633
#define TRAINER_MIKE_1 634
#define TRAINER_MIKE_2 635
#define TRAINER_TRENT_2 636
#define TRAINER_TRENT_3 637
#define TRAINER_TRENT_4 638
#define TRAINER_TRENT_5 639
#define TRAINER_DEZ_AND_LUKE 640
#define TRAINER_LEA_AND_JED 641
#define TRAINER_KIRA_AND_DAN_1 642
#define TRAINER_KIRA_AND_DAN_2 643
#define TRAINER_KIRA_AND_DAN_3 644
#define TRAINER_KIRA_AND_DAN_4 645
#define TRAINER_KIRA_AND_DAN_5 646
#define TRAINER_JOHANNA 647
#define TRAINER_GERALD 648
#define TRAINER_VIVIAN 649
#define TRAINER_DANIELLE 650
#define TRAINER_HIDEO 651
#define TRAINER_KEIGO 652
#define TRAINER_RILEY 653
#define TRAINER_FLINT 654
#define TRAINER_ASHLEY 655
#define TRAINER_WALLY_MAUVILLE 656
#define TRAINER_WALLY_VR_2 657
#define TRAINER_WALLY_VR_3 658
#define TRAINER_WALLY_VR_4 659
#define TRAINER_WALLY_VR_5 660
#define TRAINER_BRENDAN_LILYCOVE_MUDKIP 661
#define TRAINER_BRENDAN_LILYCOVE_TREECKO 662
#define TRAINER_BRENDAN_LILYCOVE_TORCHIC 663
#define TRAINER_MAY_LILYCOVE_MUDKIP 664
#define TRAINER_MAY_LILYCOVE_TREECKO 665
#define TRAINER_MAY_LILYCOVE_TORCHIC 666
#define TRAINER_JONAH 667
#define TRAINER_HENRY 668
#define TRAINER_ROGER 669
#define TRAINER_ALEXA 670
#define TRAINER_RUBEN 671
#define TRAINER_KOJI_1 672
#define TRAINER_WAYNE 673
#define TRAINER_AIDAN 674
#define TRAINER_REED 675
#define TRAINER_TISHA 676
#define TRAINER_TORI_AND_TIA 677
#define TRAINER_KIM_AND_IRIS 678
#define TRAINER_TYRA_AND_IVY 679
#define TRAINER_MEL_AND_PAUL 680
#define TRAINER_JOHN_AND_JAY_1 681
#define TRAINER_JOHN_AND_JAY_2 682
#define TRAINER_JOHN_AND_JAY_3 683
#define TRAINER_JOHN_AND_JAY_4 684
#define TRAINER_JOHN_AND_JAY_5 685
#define TRAINER_RELI_AND_IAN 686
#define TRAINER_LILA_AND_ROY_1 687
#define TRAINER_LILA_AND_ROY_2 688
#define TRAINER_LILA_AND_ROY_3 689
#define TRAINER_LILA_AND_ROY_4 690
#define TRAINER_LILA_AND_ROY_5 691
#define TRAINER_LISA_AND_RAY 692
#define TRAINER_CHRIS 693
#define TRAINER_DAWSON 694
#define TRAINER_SARAH 695
#define TRAINER_DARIAN 696
#define TRAINER_HAILEY 697
#define TRAINER_CHANDLER 698
#define TRAINER_KALEB 699
#define TRAINER_JOSEPH 700
#define TRAINER_ALYSSA 701
#define TRAINER_MARCOS 702
#define TRAINER_RHETT 703
#define TRAINER_TYRON 704
#define TRAINER_CELINA 705
#define TRAINER_BIANCA 706
#define TRAINER_HAYDEN 707
#define TRAINER_SOPHIE 708
#define TRAINER_COBY 709
#define TRAINER_LAWRENCE 710
#define TRAINER_WYATT 711
#define TRAINER_ANGELINA 712
#define TRAINER_KAI 713
#define TRAINER_CHARLOTTE 714
#define TRAINER_DEANDRE 715
#define TRAINER_GRUNT_MAGMA_HIDEOUT_1 716
#define TRAINER_GRUNT_MAGMA_HIDEOUT_2 717
#define TRAINER_GRUNT_MAGMA_HIDEOUT_3 718
#define TRAINER_GRUNT_MAGMA_HIDEOUT_4 719
#define TRAINER_GRUNT_MAGMA_HIDEOUT_5 720
#define TRAINER_GRUNT_MAGMA_HIDEOUT_6 721
#define TRAINER_GRUNT_MAGMA_HIDEOUT_7 722
#define TRAINER_GRUNT_MAGMA_HIDEOUT_8 723
#define TRAINER_GRUNT_MAGMA_HIDEOUT_9 724
#define TRAINER_GRUNT_MAGMA_HIDEOUT_10 725
#define TRAINER_GRUNT_MAGMA_HIDEOUT_11 726
#define TRAINER_GRUNT_MAGMA_HIDEOUT_12 727
#define TRAINER_GRUNT_MAGMA_HIDEOUT_13 728
#define TRAINER_GRUNT_MAGMA_HIDEOUT_14 729
#define TRAINER_GRUNT_MAGMA_HIDEOUT_15 730
#define TRAINER_GRUNT_MAGMA_HIDEOUT_16 731
#define TRAINER_TABITHA_MAGMA_HIDEOUT 732
#define TRAINER_DARCY 733
#define TRAINER_MAXIE_MOSSDEEP 734
#define TRAINER_PETE 735
#define TRAINER_ISABELLE 736
#define TRAINER_ANDRES_1 737
#define TRAINER_JOSUE 738
#define TRAINER_CAMRON 739
#define TRAINER_CORY_1 740
#define TRAINER_CAROLINA 741
#define TRAINER_ELIJAH 742
#define TRAINER_CELIA 743
#define TRAINER_BRYAN 744
#define TRAINER_BRANDEN 745
#define TRAINER_BRYANT 746
#define TRAINER_SHAYLA 747
#define TRAINER_KYRA 748
#define TRAINER_JAIDEN 749
#define TRAINER_ALIX 750
#define TRAINER_HELENE 751
#define TRAINER_MARLENE 752
#define TRAINER_DEVAN 753
#define TRAINER_JOHNSON 754
#define TRAINER_MELINA 755
#define TRAINER_BRANDI 756
#define TRAINER_AISHA 757
#define TRAINER_MAKAYLA 758
#define TRAINER_FABIAN 759
#define TRAINER_DAYTON 760
#define TRAINER_RACHEL 761
#define TRAINER_LEONEL 762
#define TRAINER_CALLIE 763
#define TRAINER_CALE 764
#define TRAINER_MYLES 765
#define TRAINER_PAT 766
#define TRAINER_CRISTIN_1 767
#define TRAINER_MAY_RUSTBORO_TREECKO 768
#define TRAINER_MAY_RUSTBORO_TORCHIC 769
#define TRAINER_ROXANNE_2 770
#define TRAINER_ROXANNE_3 771
#define TRAINER_ROXANNE_4 772
#define TRAINER_ROXANNE_5 773
#define TRAINER_BRAWLY_2 774
#define TRAINER_BRAWLY_3 775
#define TRAINER_BRAWLY_4 776
#define TRAINER_BRAWLY_5 777
#define TRAINER_WATTSON_2 778
#define TRAINER_WATTSON_3 779
#define TRAINER_WATTSON_4 780
#define TRAINER_WATTSON_5 781
#define TRAINER_FLANNERY_2 782
#define TRAINER_FLANNERY_3 783
#define TRAINER_FLANNERY_4 784
#define TRAINER_FLANNERY_5 785
#define TRAINER_NORMAN_2 786
#define TRAINER_NORMAN_3 787
#define TRAINER_NORMAN_4 788
#define TRAINER_NORMAN_5 789
#define TRAINER_WINONA_2 790
#define TRAINER_WINONA_3 791
#define TRAINER_WINONA_4 792
#define TRAINER_WINONA_5 793
#define TRAINER_TATE_AND_LIZA_2 794
#define TRAINER_TATE_AND_LIZA_3 795
#define TRAINER_TATE_AND_LIZA_4 796
#define TRAINER_TATE_AND_LIZA_5 797
#define TRAINER_JUAN_2 798
#define TRAINER_JUAN_3 799
#define TRAINER_JUAN_4 800
#define TRAINER_JUAN_5 801
#define TRAINER_ANGELO 802
#define TRAINER_DARIUS 803
#define TRAINER_STEVEN 804
#define TRAINER_ANABEL 805
#define TRAINER_TUCKER 806
#define TRAINER_SPENSER 807
#define TRAINER_GRETA 808
#define TRAINER_NOLAND 809
#define TRAINER_LUCY 810
#define TRAINER_BRANDON 811
#define TRAINER_ANDRES_2 812
#define TRAINER_ANDRES_3 813
#define TRAINER_ANDRES_4 814
#define TRAINER_ANDRES_5 815
#define TRAINER_CORY_2 816
#define TRAINER_CORY_3 817
#define TRAINER_CORY_4 818
#define TRAINER_CORY_5 819
#define TRAINER_PABLO_2 820
#define TRAINER_PABLO_3 821
#define TRAINER_PABLO_4 822
#define TRAINER_PABLO_5 823
#define TRAINER_KOJI_2 824
#define TRAINER_KOJI_3 825
#define TRAINER_KOJI_4 826
#define TRAINER_KOJI_5 827
#define TRAINER_CRISTIN_2 828
#define TRAINER_CRISTIN_3 829
#define TRAINER_CRISTIN_4 830
#define TRAINER_CRISTIN_5 831
#define TRAINER_FERNANDO_2 832
#define TRAINER_FERNANDO_3 833
#define TRAINER_FERNANDO_4 834
#define TRAINER_FERNANDO_5 835
#define TRAINER_SAWYER_2 836
#define TRAINER_SAWYER_3 837
#define TRAINER_SAWYER_4 838
#define TRAINER_SAWYER_5 839
#define TRAINER_GABRIELLE_2 840
#define TRAINER_GABRIELLE_3 841
#define TRAINER_GABRIELLE_4 842
#define TRAINER_GABRIELLE_5 843
#define TRAINER_THALIA_2 844
#define TRAINER_THALIA_3 845
#define TRAINER_THALIA_4 846
#define TRAINER_THALIA_5 847
#define TRAINER_MARIELA 848
#define TRAINER_ALVARO 849
#define TRAINER_EVERETT 850
#define TRAINER_RED 851
#define TRAINER_LEAF 852
#define TRAINER_BRENDAN_PLACEHOLDER 853
#define TRAINER_MAY_PLACEHOLDER 854
// NOTE: Because each Trainer uses a flag to determine when they are defeated, there is only space for 9 additional trainers before trainer flag space overflows
// More space can be made by shifting flags around in constants/flags.h or changing how trainer flags are handled
// MAX_TRAINERS_COUNT can be increased but will take up additional saveblock space
#define TRAINERS_COUNT 855
#define MAX_TRAINERS_COUNT 864
#endif // GUARD_CONSTANTS_OPPONENTS_H

View File

@ -0,0 +1,134 @@
#ifndef GUARD_CONSTANTS_PARTY_MENU_H
#define GUARD_CONSTANTS_PARTY_MENU_H
#define PARTY_NOTHING_CHOSEN 0xFF
#define AILMENT_NONE 0
#define AILMENT_PSN 1
#define AILMENT_PRZ 2
#define AILMENT_SLP 3
#define AILMENT_FRZ 4
#define AILMENT_BRN 5
#define AILMENT_PKRS 6
#define AILMENT_FNT 7
#define TUTOR_MOVE_MEGA_PUNCH 0
#define TUTOR_MOVE_SWORDS_DANCE 1
#define TUTOR_MOVE_MEGA_KICK 2
#define TUTOR_MOVE_BODY_SLAM 3
#define TUTOR_MOVE_DOUBLE_EDGE 4
#define TUTOR_MOVE_COUNTER 5
#define TUTOR_MOVE_SEISMIC_TOSS 6
#define TUTOR_MOVE_MIMIC 7
#define TUTOR_MOVE_METRONOME 8
#define TUTOR_MOVE_SOFT_BOILED 9
#define TUTOR_MOVE_DREAM_EATER 10
#define TUTOR_MOVE_THUNDER_WAVE 11
#define TUTOR_MOVE_EXPLOSION 12
#define TUTOR_MOVE_ROCK_SLIDE 13
#define TUTOR_MOVE_SUBSTITUTE 14
#define TUTOR_MOVE_DYNAMIC_PUNCH 15
#define TUTOR_MOVE_ROLLOUT 16
#define TUTOR_MOVE_PSYCH_UP 17
#define TUTOR_MOVE_SNORE 18
#define TUTOR_MOVE_ICY_WIND 19
#define TUTOR_MOVE_ENDURE 20
#define TUTOR_MOVE_MUD_SLAP 21
#define TUTOR_MOVE_ICE_PUNCH 22
#define TUTOR_MOVE_SWAGGER 23
#define TUTOR_MOVE_SLEEP_TALK 24
#define TUTOR_MOVE_SWIFT 25
#define TUTOR_MOVE_DEFENSE_CURL 26
#define TUTOR_MOVE_THUNDER_PUNCH 27
#define TUTOR_MOVE_FIRE_PUNCH 28
#define TUTOR_MOVE_FURY_CUTTER 29
#define TUTOR_MOVE_COUNT 30
#define PARTY_LAYOUT_SINGLE 0
#define PARTY_LAYOUT_DOUBLE 1
#define PARTY_LAYOUT_MULTI 2
#define PARTY_LAYOUT_MULTI_SHOWCASE 3 // The layout during the screen that appears just before a multi battle
#define PARTY_LAYOUT_COUNT 4
#define KEEP_PARTY_LAYOUT 0xFF
#define PARTY_MENU_TYPE_FIELD 0
#define PARTY_MENU_TYPE_IN_BATTLE 1
#define PARTY_MENU_TYPE_CONTEST 2
#define PARTY_MENU_TYPE_CHOOSE_MON 3
#define PARTY_MENU_TYPE_CHOOSE_HALF 4 // multi battles, eReader battles, and some battle facilities
#define PARTY_MENU_TYPE_MULTI_SHOWCASE 5
#define PARTY_MENU_TYPE_DAYCARE 6
#define PARTY_MENU_TYPE_MOVE_RELEARNER 7
#define PARTY_MENU_TYPE_UNION_ROOM_REGISTER 8 // trading board
#define PARTY_MENU_TYPE_UNION_ROOM_TRADE 9 // trading board
#define PARTY_MENU_TYPE_SPIN_TRADE 10 // Unused beta for Gen IV's Spin Trade
#define PARTY_MENU_TYPE_MINIGAME 11
#define PARTY_MENU_TYPE_STORE_PYRAMID_HELD_ITEMS 12
#define PARTY_ACTION_CHOOSE_MON 0
#define PARTY_ACTION_SEND_OUT 1
#define PARTY_ACTION_CANT_SWITCH 2
#define PARTY_ACTION_USE_ITEM 3
#define PARTY_ACTION_ABILITY_PREVENTS 4
#define PARTY_ACTION_GIVE_ITEM 5
#define PARTY_ACTION_GIVE_PC_ITEM 6 // Unused. Not possible to give non-mail items directly from PC
#define PARTY_ACTION_GIVE_MAILBOX_MAIL 7
#define PARTY_ACTION_SWITCH 8
#define PARTY_ACTION_SWITCHING 9
#define PARTY_ACTION_SOFTBOILED 10
#define PARTY_ACTION_CHOOSE_AND_CLOSE 11
#define PARTY_ACTION_MOVE_TUTOR 12
#define PARTY_ACTION_MINIGAME 13
#define PARTY_ACTION_REUSABLE_ITEM 14 // Unused. The only reusable items are handled separately
// IDs for DisplayPartyMenuStdMessage, to display the message at the bottom of the party menu
#define PARTY_MSG_CHOOSE_MON 0
#define PARTY_MSG_CHOOSE_MON_OR_CANCEL 1
#define PARTY_MSG_CHOOSE_MON_AND_CONFIRM 2
#define PARTY_MSG_MOVE_TO_WHERE 3
#define PARTY_MSG_TEACH_WHICH_MON 4
#define PARTY_MSG_USE_ON_WHICH_MON 5
#define PARTY_MSG_GIVE_TO_WHICH_MON 6
#define PARTY_MSG_NOTHING_TO_CUT 7
#define PARTY_MSG_CANT_SURF_HERE 8
#define PARTY_MSG_ALREADY_SURFING 9
#define PARTY_MSG_CURRENT_TOO_FAST 10
#define PARTY_MSG_ENJOY_CYCLING 11
#define PARTY_MSG_ALREADY_IN_USE 12
#define PARTY_MSG_CANT_USE_HERE 13
#define PARTY_MSG_NO_MON_FOR_BATTLE 14
#define PARTY_MSG_CHOOSE_MON_2 15
#define PARTY_MSG_NOT_ENOUGH_HP 16
#define PARTY_MSG_X_MONS_ARE_NEEDED 17
#define PARTY_MSG_MONS_CANT_BE_SAME 18
#define PARTY_MSG_NO_SAME_HOLD_ITEMS 19
#define PARTY_MSG_UNUSED 20
#define PARTY_MSG_DO_WHAT_WITH_MON 21
#define PARTY_MSG_RESTORE_WHICH_MOVE 22
#define PARTY_MSG_BOOST_PP_WHICH_MOVE 23
#define PARTY_MSG_DO_WHAT_WITH_ITEM 24
#define PARTY_MSG_DO_WHAT_WITH_MAIL 25
#define PARTY_MSG_ALREADY_HOLDING_ONE 26
#define PARTY_MSG_NONE 127
// IDs for DisplayPartyPokemonDescriptionText, to display a message in the party pokemon's box
#define PARTYBOX_DESC_NO_USE 0
#define PARTYBOX_DESC_ABLE_3 1
#define PARTYBOX_DESC_FIRST 2
#define PARTYBOX_DESC_SECOND 3
#define PARTYBOX_DESC_THIRD 4
#define PARTYBOX_DESC_FOURTH 5
#define PARTYBOX_DESC_ABLE 6
#define PARTYBOX_DESC_NOT_ABLE 7
#define PARTYBOX_DESC_ABLE_2 8
#define PARTYBOX_DESC_NOT_ABLE_2 9
#define PARTYBOX_DESC_LEARNED 10
#define PARTYBOX_DESC_HAVE 11
#define PARTYBOX_DESC_DONT_HAVE 12
#define SELECTWINDOW_ACTIONS 0
#define SELECTWINDOW_ITEM 1
#define SELECTWINDOW_MAIL 2
#define SELECTWINDOW_MOVES 3
#endif // GUARD_CONSTANTS_PARTY_MENU_H

352
include/constants/pokemon.h Normal file
View File

@ -0,0 +1,352 @@
#ifndef GUARD_CONSTANTS_POKEMON_H
#define GUARD_CONSTANTS_POKEMON_H
// Pokemon types
#define TYPE_NONE 255
#define TYPE_NORMAL 0
#define TYPE_FIGHTING 1
#define TYPE_FLYING 2
#define TYPE_POISON 3
#define TYPE_GROUND 4
#define TYPE_ROCK 5
#define TYPE_BUG 6
#define TYPE_GHOST 7
#define TYPE_STEEL 8
#define TYPE_MYSTERY 9
#define TYPE_FIRE 10
#define TYPE_WATER 11
#define TYPE_GRASS 12
#define TYPE_ELECTRIC 13
#define TYPE_PSYCHIC 14
#define TYPE_ICE 15
#define TYPE_DRAGON 16
#define TYPE_DARK 17
#define NUMBER_OF_MON_TYPES 18
// 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
#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 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 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
// Flags for Get(Box)MonData / Set(Box)MonData
#define MON_DATA_PERSONALITY 0
#define MON_DATA_OT_ID 1
#define MON_DATA_NICKNAME 2
#define MON_DATA_LANGUAGE 3
#define MON_DATA_SANITY_IS_BAD_EGG 4
#define MON_DATA_SANITY_HAS_SPECIES 5
#define MON_DATA_SANITY_IS_EGG 6
#define MON_DATA_OT_NAME 7
#define MON_DATA_MARKINGS 8
#define MON_DATA_CHECKSUM 9
#define MON_DATA_ENCRYPT_SEPARATOR 10
#define MON_DATA_SPECIES 11
#define MON_DATA_HELD_ITEM 12
#define MON_DATA_MOVE1 13
#define MON_DATA_MOVE2 14
#define MON_DATA_MOVE3 15
#define MON_DATA_MOVE4 16
#define MON_DATA_PP1 17
#define MON_DATA_PP2 18
#define MON_DATA_PP3 19
#define MON_DATA_PP4 20
#define MON_DATA_PP_BONUSES 21
#define MON_DATA_COOL 22
#define MON_DATA_BEAUTY 23
#define MON_DATA_CUTE 24
#define MON_DATA_EXP 25
#define MON_DATA_HP_EV 26
#define MON_DATA_ATK_EV 27
#define MON_DATA_DEF_EV 28
#define MON_DATA_SPEED_EV 29
#define MON_DATA_SPATK_EV 30
#define MON_DATA_SPDEF_EV 31
#define MON_DATA_FRIENDSHIP 32
#define MON_DATA_SMART 33
#define MON_DATA_POKERUS 34
#define MON_DATA_MET_LOCATION 35
#define MON_DATA_MET_LEVEL 36
#define MON_DATA_MET_GAME 37
#define MON_DATA_POKEBALL 38
#define MON_DATA_HP_IV 39
#define MON_DATA_ATK_IV 40
#define MON_DATA_DEF_IV 41
#define MON_DATA_SPEED_IV 42
#define MON_DATA_SPATK_IV 43
#define MON_DATA_SPDEF_IV 44
#define MON_DATA_IS_EGG 45
#define MON_DATA_ABILITY_NUM 46
#define MON_DATA_TOUGH 47
#define MON_DATA_SHEEN 48
#define MON_DATA_OT_GENDER 49
#define MON_DATA_COOL_RIBBON 50
#define MON_DATA_BEAUTY_RIBBON 51
#define MON_DATA_CUTE_RIBBON 52
#define MON_DATA_SMART_RIBBON 53
#define MON_DATA_TOUGH_RIBBON 54
#define MON_DATA_STATUS 55
#define MON_DATA_LEVEL 56
#define MON_DATA_HP 57
#define MON_DATA_MAX_HP 58
#define MON_DATA_ATK 59
#define MON_DATA_DEF 60
#define MON_DATA_SPEED 61
#define MON_DATA_SPATK 62
#define MON_DATA_SPDEF 63
#define MON_DATA_MAIL 64
#define MON_DATA_SPECIES2 65
#define MON_DATA_IVS 66
#define MON_DATA_CHAMPION_RIBBON 67
#define MON_DATA_WINNING_RIBBON 68
#define MON_DATA_VICTORY_RIBBON 69
#define MON_DATA_ARTIST_RIBBON 70
#define MON_DATA_EFFORT_RIBBON 71
#define MON_DATA_MARINE_RIBBON 72
#define MON_DATA_LAND_RIBBON 73
#define MON_DATA_SKY_RIBBON 74
#define MON_DATA_COUNTRY_RIBBON 75
#define MON_DATA_NATIONAL_RIBBON 76
#define MON_DATA_EARTH_RIBBON 77
#define MON_DATA_WORLD_RIBBON 78
#define MON_DATA_UNUSED_RIBBONS 79
#define MON_DATA_EVENT_LEGAL 80
#define MON_DATA_KNOWN_MOVES 81
#define MON_DATA_RIBBON_COUNT 82
#define MON_DATA_RIBBONS 83
#define MON_DATA_ATK2 84
#define MON_DATA_DEF2 85
#define MON_DATA_SPEED2 86
#define MON_DATA_SPATK2 87
#define MON_DATA_SPDEF2 88
// Ribbon IDs used by TV and Pokénav
#define CHAMPION_RIBBON 0
#define COOL_RIBBON_NORMAL 1
#define COOL_RIBBON_SUPER 2
#define COOL_RIBBON_HYPER 3
#define COOL_RIBBON_MASTER 4
#define BEAUTY_RIBBON_NORMAL 5
#define BEAUTY_RIBBON_SUPER 6
#define BEAUTY_RIBBON_HYPER 7
#define BEAUTY_RIBBON_MASTER 8
#define CUTE_RIBBON_NORMAL 9
#define CUTE_RIBBON_SUPER 10
#define CUTE_RIBBON_HYPER 11
#define CUTE_RIBBON_MASTER 12
#define SMART_RIBBON_NORMAL 13
#define SMART_RIBBON_SUPER 14
#define SMART_RIBBON_HYPER 15
#define SMART_RIBBON_MASTER 16
#define TOUGH_RIBBON_NORMAL 17
#define TOUGH_RIBBON_SUPER 18
#define TOUGH_RIBBON_HYPER 19
#define TOUGH_RIBBON_MASTER 20
#define WINNING_RIBBON 21
#define VICTORY_RIBBON 22
#define ARTIST_RIBBON 23
#define EFFORT_RIBBON 24
#define MARINE_RIBBON 25
#define LAND_RIBBON 26
#define SKY_RIBBON 27
#define COUNTRY_RIBBON 28
#define NATIONAL_RIBBON 29
#define EARTH_RIBBON 30
#define WORLD_RIBBON 31
#define FIRST_GIFT_RIBBON MARINE_RIBBON
#define LAST_GIFT_RIBBON WORLD_RIBBON
#define NUM_GIFT_RIBBONS (1 + LAST_GIFT_RIBBON - FIRST_GIFT_RIBBON)
// The above gift ribbons (Marine - World) are
// special distribution ribbons that correspond to
// 1 bit each in the Pokémon struct. Gen 4 hard-codes
// each of these to the given name. In Gen 3 they're
// used to get an index into giftRibbons in the save block,
// which can have a value 0-64 (0 is 'no ribbon') that
// corresponds to one of the special ribbons listed
// in gGiftRibbonDescriptionPointers. Most of these were
// never distributed
#define MAX_GIFT_RIBBON 64
#define MIN_LEVEL 1
#define MAX_LEVEL 100
#define OT_ID_PLAYER_ID 0
#define OT_ID_PRESET 1
#define OT_ID_RANDOM_NO_SHINY 2
#define MON_GIVEN_TO_PARTY 0
#define MON_GIVEN_TO_PC 1
#define MON_CANT_GIVE 2
#define PLAYER_HAS_TWO_USABLE_MONS 0
#define PLAYER_HAS_ONE_MON 1
#define PLAYER_HAS_ONE_USABLE_MON 2
#define MON_ALREADY_KNOWS_MOVE 0xFFFE
#define MON_HAS_MAX_MOVES 0xFFFF
#define LEVEL_UP_MOVE_ID 0x01FF
#define LEVEL_UP_MOVE_LV 0xFE00
#define LEVEL_UP_END 0xFFFF
#define MAX_LEVEL_UP_MOVES 20
#define MON_MALE 0x00
#define MON_FEMALE 0xFE
#define MON_GENDERLESS 0xFF
// Constants for AdjustFriendship
#define FRIENDSHIP_EVENT_GROW_LEVEL 0
#define FRIENDSHIP_EVENT_VITAMIN 1 // unused, handled by PokemonUseItemEffects
#define FRIENDSHIP_EVENT_BATTLE_ITEM 2 // unused, handled by PokemonUseItemEffects
#define FRIENDSHIP_EVENT_LEAGUE_BATTLE 3
#define FRIENDSHIP_EVENT_LEARN_TMHM 4
#define FRIENDSHIP_EVENT_WALKING 5
#define FRIENDSHIP_EVENT_FAINT_SMALL 6
#define FRIENDSHIP_EVENT_FAINT_FIELD_PSN 7
#define FRIENDSHIP_EVENT_FAINT_LARGE 8 // If opponent was >= 30 levels higher. See AdjustFriendshipOnBattleFaint
#define MAX_FRIENDSHIP 255
#define MAX_SHEEN 255
#define MAX_CONDITION 255
#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
// Battle move flags
#define FLAG_MAKES_CONTACT (1 << 0)
#define FLAG_PROTECT_AFFECTED (1 << 1)
#define FLAG_MAGIC_COAT_AFFECTED (1 << 2)
#define FLAG_SNATCH_AFFECTED (1 << 3)
#define FLAG_MIRROR_MOVE_AFFECTED (1 << 4)
#define FLAG_KINGS_ROCK_AFFECTED (1 << 5)
// Growth rates
#define GROWTH_MEDIUM_FAST 0
#define GROWTH_ERRATIC 1
#define GROWTH_FLUCTUATING 2
#define GROWTH_MEDIUM_SLOW 3
#define GROWTH_FAST 4
#define GROWTH_SLOW 5
// Body colors for pokedex search
#define BODY_COLOR_RED 0
#define BODY_COLOR_BLUE 1
#define BODY_COLOR_YELLOW 2
#define BODY_COLOR_GREEN 3
#define BODY_COLOR_BLACK 4
#define BODY_COLOR_BROWN 5
#define BODY_COLOR_PURPLE 6
#define BODY_COLOR_GRAY 7
#define BODY_COLOR_WHITE 8
#define BODY_COLOR_PINK 9
#define F_SUMMARY_SCREEN_FLIP_SPRITE 0x80
// Evolution types
#define EVO_FRIENDSHIP 1 // Pokémon levels up with friendship ≥ 220
#define EVO_FRIENDSHIP_DAY 2 // Pokémon levels up during the day with friendship ≥ 220
#define EVO_FRIENDSHIP_NIGHT 3 // Pokémon levels up at night with friendship ≥ 220
#define EVO_LEVEL 4 // Pokémon reaches the specified level
#define EVO_TRADE 5 // Pokémon is traded
#define EVO_TRADE_ITEM 6 // Pokémon is traded while it's holding the specified item
#define EVO_ITEM 7 // specified item is used on Pokémon
#define EVO_LEVEL_ATK_GT_DEF 8 // Pokémon reaches the specified level with attack > defense
#define EVO_LEVEL_ATK_EQ_DEF 9 // Pokémon reaches the specified level with attack = defense
#define EVO_LEVEL_ATK_LT_DEF 10 // Pokémon reaches the specified level with attack < defense
#define EVO_LEVEL_SILCOON 11 // Pokémon reaches the specified level with a Silcoon personality value
#define EVO_LEVEL_CASCOON 12 // Pokémon reaches the specified level with a Cascoon personality value
#define EVO_LEVEL_NINJASK 13 // Pokémon reaches the specified level (special value for Ninjask)
#define EVO_LEVEL_SHEDINJA 14 // Pokémon reaches the specified level (special value for Shedinja)
#define EVO_BEAUTY 15 // Pokémon levels up with beauty ≥ specified value
#define EVOS_PER_MON 5
// Evolution 'modes,' for GetEvolutionTargetSpecies
#define EVO_MODE_NORMAL 0
#define EVO_MODE_TRADE 1
#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 NUM_MALE_LINK_FACILITY_CLASSES 8
#define NUM_FEMALE_LINK_FACILITY_CLASSES 8
#define MON_PIC_WIDTH 64
#define MON_PIC_HEIGHT 64
#define MON_PIC_SIZE (MON_PIC_WIDTH * MON_PIC_HEIGHT / 2)
#define BATTLE_ALIVE_EXCEPT_ACTIVE 0
#define BATTLE_ALIVE_ATK_SIDE 1
#define BATTLE_ALIVE_DEF_SIDE 2
#define SKIP_FRONT_ANIM (1 << 7)
#endif // GUARD_CONSTANTS_POKEMON_H

View File

@ -0,0 +1,227 @@
#ifndef GUARD_REGIONMAPSEC_H
#define GUARD_REGIONMAPSEC_H
#define MAPSEC_LITTLEROOT_TOWN 0x00
#define MAPSEC_OLDALE_TOWN 0x01
#define MAPSEC_DEWFORD_TOWN 0x02
#define MAPSEC_LAVARIDGE_TOWN 0x03
#define MAPSEC_FALLARBOR_TOWN 0x04
#define MAPSEC_VERDANTURF_TOWN 0x05
#define MAPSEC_PACIFIDLOG_TOWN 0x06
#define MAPSEC_PETALBURG_CITY 0x07
#define MAPSEC_SLATEPORT_CITY 0x08
#define MAPSEC_MAUVILLE_CITY 0x09
#define MAPSEC_RUSTBORO_CITY 0x0A
#define MAPSEC_FORTREE_CITY 0x0B
#define MAPSEC_LILYCOVE_CITY 0x0C
#define MAPSEC_MOSSDEEP_CITY 0x0D
#define MAPSEC_SOOTOPOLIS_CITY 0x0E
#define MAPSEC_EVER_GRANDE_CITY 0x0F
#define MAPSEC_ROUTE_101 0x10
#define MAPSEC_ROUTE_102 0x11
#define MAPSEC_ROUTE_103 0x12
#define MAPSEC_ROUTE_104 0x13
#define MAPSEC_ROUTE_105 0x14
#define MAPSEC_ROUTE_106 0x15
#define MAPSEC_ROUTE_107 0x16
#define MAPSEC_ROUTE_108 0x17
#define MAPSEC_ROUTE_109 0x18
#define MAPSEC_ROUTE_110 0x19
#define MAPSEC_ROUTE_111 0x1A
#define MAPSEC_ROUTE_112 0x1B
#define MAPSEC_ROUTE_113 0x1C
#define MAPSEC_ROUTE_114 0x1D
#define MAPSEC_ROUTE_115 0x1E
#define MAPSEC_ROUTE_116 0x1F
#define MAPSEC_ROUTE_117 0x20
#define MAPSEC_ROUTE_118 0x21
#define MAPSEC_ROUTE_119 0x22
#define MAPSEC_ROUTE_120 0x23
#define MAPSEC_ROUTE_121 0x24
#define MAPSEC_ROUTE_122 0x25
#define MAPSEC_ROUTE_123 0x26
#define MAPSEC_ROUTE_124 0x27
#define MAPSEC_ROUTE_125 0x28
#define MAPSEC_ROUTE_126 0x29
#define MAPSEC_ROUTE_127 0x2A
#define MAPSEC_ROUTE_128 0x2B
#define MAPSEC_ROUTE_129 0x2C
#define MAPSEC_ROUTE_130 0x2D
#define MAPSEC_ROUTE_131 0x2E
#define MAPSEC_ROUTE_132 0x2F
#define MAPSEC_ROUTE_133 0x30
#define MAPSEC_ROUTE_134 0x31
#define MAPSEC_UNDERWATER_124 0x32
#define MAPSEC_UNDERWATER_126 0x33
#define MAPSEC_UNDERWATER_127 0x34
#define MAPSEC_UNDERWATER_128 0x35
#define MAPSEC_UNDERWATER_SOOTOPOLIS 0x36
#define MAPSEC_GRANITE_CAVE 0x37
#define MAPSEC_MT_CHIMNEY 0x38
#define MAPSEC_SAFARI_ZONE 0x39
#define MAPSEC_BATTLE_FRONTIER 0x3A
#define MAPSEC_PETALBURG_WOODS 0x3B
#define MAPSEC_RUSTURF_TUNNEL 0x3C
#define MAPSEC_ABANDONED_SHIP 0x3D
#define MAPSEC_NEW_MAUVILLE 0x3E
#define MAPSEC_METEOR_FALLS 0x3F
#define MAPSEC_METEOR_FALLS2 0x40
#define MAPSEC_MT_PYRE 0x41
#define MAPSEC_AQUA_HIDEOUT_OLD 0x42
#define MAPSEC_SHOAL_CAVE 0x43
#define MAPSEC_SEAFLOOR_CAVERN 0x44
#define MAPSEC_UNDERWATER_SEAFLOOR_CAVERN 0x45
#define MAPSEC_VICTORY_ROAD 0x46
#define MAPSEC_MIRAGE_ISLAND 0x47
#define MAPSEC_CAVE_OF_ORIGIN 0x48
#define MAPSEC_SOUTHERN_ISLAND 0x49
#define MAPSEC_FIERY_PATH 0x4A
#define MAPSEC_FIERY_PATH2 0x4B
#define MAPSEC_JAGGED_PASS 0x4C
#define MAPSEC_JAGGED_PASS2 0x4D
#define MAPSEC_SEALED_CHAMBER 0x4E
#define MAPSEC_UNDERWATER_SEALED_CHAMBER 0x4F
#define MAPSEC_SCORCHED_SLAB 0x50
#define MAPSEC_ISLAND_CAVE 0x51
#define MAPSEC_DESERT_RUINS 0x52
#define MAPSEC_ANCIENT_TOMB 0x53
#define MAPSEC_INSIDE_OF_TRUCK 0x54
#define MAPSEC_SKY_PILLAR 0x55
#define MAPSEC_SECRET_BASE 0x56
#define MAPSEC_DYNAMIC 0x57
#define MAPSEC_PALLET_TOWN 0x58
#define MAPSEC_VIRIDIAN_CITY 0x59
#define MAPSEC_PEWTER_CITY 0x5A
#define MAPSEC_CERULEAN_CITY 0x5B
#define MAPSEC_LAVENDER_TOWN 0x5C
#define MAPSEC_VERMILION_CITY 0x5D
#define MAPSEC_CELADON_CITY 0x5E
#define MAPSEC_FUCHSIA_CITY 0x5F
#define MAPSEC_CINNABAR_ISLAND 0x60
#define MAPSEC_INDIGO_PLATEAU 0x61
#define MAPSEC_SAFFRON_CITY 0x62
#define MAPSEC_ROUTE_4_FLYDUP 0x63
#define MAPSEC_ROUTE_10_FLYDUP 0x64
#define MAPSEC_ROUTE_1 0x65
#define MAPSEC_ROUTE_2 0x66
#define MAPSEC_ROUTE_3 0x67
#define MAPSEC_ROUTE_4 0x68
#define MAPSEC_ROUTE_5 0x69
#define MAPSEC_ROUTE_6 0x6A
#define MAPSEC_ROUTE_7 0x6B
#define MAPSEC_ROUTE_8 0x6C
#define MAPSEC_ROUTE_9 0x6D
#define MAPSEC_ROUTE_10 0x6E
#define MAPSEC_ROUTE_11 0x6F
#define MAPSEC_ROUTE_12 0x70
#define MAPSEC_ROUTE_13 0x71
#define MAPSEC_ROUTE_14 0x72
#define MAPSEC_ROUTE_15 0x73
#define MAPSEC_ROUTE_16 0x74
#define MAPSEC_ROUTE_17 0x75
#define MAPSEC_ROUTE_18 0x76
#define MAPSEC_ROUTE_19 0x77
#define MAPSEC_ROUTE_20 0x78
#define MAPSEC_ROUTE_21 0x79
#define MAPSEC_ROUTE_22 0x7A
#define MAPSEC_ROUTE_23 0x7B
#define MAPSEC_ROUTE_24 0x7C
#define MAPSEC_ROUTE_25 0x7D
#define MAPSEC_VIRIDIAN_FOREST 0x7E
#define MAPSEC_MT_MOON 0x7F
#define MAPSEC_S_S_ANNE 0x80
#define MAPSEC_UNDERGROUND_PATH 0x81
#define MAPSEC_UNDERGROUND_PATH_2 0x82
#define MAPSEC_DIGLETTS_CAVE 0x83
#define MAPSEC_KANTO_VICTORY_ROAD 0x84
#define MAPSEC_ROCKET_HIDEOUT 0x85
#define MAPSEC_SILPH_CO 0x86
#define MAPSEC_POKEMON_MANSION 0x87
#define MAPSEC_KANTO_SAFARI_ZONE 0x88
#define MAPSEC_POKEMON_LEAGUE 0x89
#define MAPSEC_ROCK_TUNNEL 0x8A
#define MAPSEC_SEAFOAM_ISLANDS 0x8B
#define MAPSEC_POKEMON_TOWER 0x8C
#define MAPSEC_CERULEAN_CAVE 0x8D
#define MAPSEC_POWER_PLANT 0x8E
#define MAPSEC_ONE_ISLAND 0x8F
#define MAPSEC_TWO_ISLAND 0x90
#define MAPSEC_THREE_ISLAND 0x91
#define MAPSEC_FOUR_ISLAND 0x92
#define MAPSEC_FIVE_ISLAND 0x93
#define MAPSEC_SEVEN_ISLAND 0x94
#define MAPSEC_SIX_ISLAND 0x95
#define MAPSEC_KINDLE_ROAD 0x96
#define MAPSEC_TREASURE_BEACH 0x97
#define MAPSEC_CAPE_BRINK 0x98
#define MAPSEC_BOND_BRIDGE 0x99
#define MAPSEC_THREE_ISLE_PORT 0x9A
#define MAPSEC_SEVII_ISLE_6 0x9B
#define MAPSEC_SEVII_ISLE_7 0x9C
#define MAPSEC_SEVII_ISLE_8 0x9D
#define MAPSEC_SEVII_ISLE_9 0x9E
#define MAPSEC_RESORT_GORGEOUS 0x9F
#define MAPSEC_WATER_LABYRINTH 0xA0
#define MAPSEC_FIVE_ISLE_MEADOW 0xA1
#define MAPSEC_MEMORIAL_PILLAR 0xA2
#define MAPSEC_OUTCAST_ISLAND 0xA3
#define MAPSEC_GREEN_PATH 0xA4
#define MAPSEC_WATER_PATH 0xA5
#define MAPSEC_RUIN_VALLEY 0xA6
#define MAPSEC_TRAINER_TOWER 0xA7
#define MAPSEC_CANYON_ENTRANCE 0xA8
#define MAPSEC_SEVAULT_CANYON 0xA9
#define MAPSEC_TANOBY_RUINS 0xAA
#define MAPSEC_SEVII_ISLE_22 0xAB
#define MAPSEC_SEVII_ISLE_23 0xAC
#define MAPSEC_SEVII_ISLE_24 0xAD
#define MAPSEC_NAVEL_ROCK_FRLG 0xAE
#define MAPSEC_MT_EMBER 0xAF
#define MAPSEC_BERRY_FOREST 0xB0
#define MAPSEC_ICEFALL_CAVE 0xB1
#define MAPSEC_ROCKET_WAREHOUSE 0xB2
#define MAPSEC_TRAINER_TOWER_2 0xB3
#define MAPSEC_DOTTED_HOLE 0xB4
#define MAPSEC_LOST_CAVE 0xB5
#define MAPSEC_PATTERN_BUSH 0xB6
#define MAPSEC_ALTERING_CAVE_FRLG 0xB7
#define MAPSEC_TANOBY_CHAMBERS 0xB8
#define MAPSEC_THREE_ISLE_PATH 0xB9
#define MAPSEC_TANOBY_KEY 0xBA
#define MAPSEC_BIRTH_ISLAND_FRLG 0xBB
#define MAPSEC_MONEAN_CHAMBER 0xBC
#define MAPSEC_LIPTOO_CHAMBER 0xBD
#define MAPSEC_WEEPTH_CHAMBER 0xBE
#define MAPSEC_DILFORD_CHAMBER 0xBF
#define MAPSEC_SCUFIB_CHAMBER 0xC0
#define MAPSEC_RIXY_CHAMBER 0xC1
#define MAPSEC_VIAPOIS_CHAMBER 0xC2
#define MAPSEC_EMBER_SPA 0xC3
#define MAPSEC_SPECIAL_AREA 0xC4
#define MAPSEC_AQUA_HIDEOUT 0xC5
#define MAPSEC_MAGMA_HIDEOUT 0xC6
#define MAPSEC_MIRAGE_TOWER 0xC7
#define MAPSEC_BIRTH_ISLAND 0xC8
#define MAPSEC_FARAWAY_ISLAND 0xC9
#define MAPSEC_ARTISAN_CAVE 0xCA
#define MAPSEC_MARINE_CAVE 0xCB
#define MAPSEC_UNDERWATER_MARINE_CAVE 0xCC
#define MAPSEC_TERRA_CAVE 0xCD
#define MAPSEC_UNDERWATER_105 0xCE
#define MAPSEC_UNDERWATER_125 0xCF
#define MAPSEC_UNDERWATER_129 0xD0
#define MAPSEC_DESERT_UNDERPASS 0xD1
#define MAPSEC_ALTERING_CAVE 0xD2
#define MAPSEC_NAVEL_ROCK 0xD3
#define MAPSEC_TRAINER_HILL 0xD4
#define MAPSEC_NONE 0xD5
#define METLOC_SPECIAL_EGG 0xFD
#define METLOC_IN_GAME_TRADE 0xFE
#define METLOC_FATEFUL_ENCOUNTER 0xFF
#define KANTO_MAPSEC_START MAPSEC_PALLET_TOWN
#define KANTO_MAPSEC_END MAPSEC_SPECIAL_AREA
#define KANTO_MAPSEC_COUNT (KANTO_MAPSEC_END - KANTO_MAPSEC_START + 1)
#endif //GUARD_REGIONMAPSEC_H

25
include/constants/rgb.h Normal file
View File

@ -0,0 +1,25 @@
#ifndef GUARD_RGB_H
#define GUARD_RGB_H
#define GET_R(color) ((color) & 0x1F)
#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 RGB2(r, g, b) (((b) << 10) | ((g) << 5) | (r))
#define _RGB(r, g, b) ((((b) & 0x1F) << 10) + (((g) & 0x1F) << 5) + ((r) & 0x1F))
#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

View File

@ -0,0 +1,7 @@
#ifndef GUARD_CONSTANTS_ROULETTE_H
#define GUARD_CONSTANTS_ROULETTE_H
// Flag set in gSpecialVar_0x8004 when playing Roulette on a Game Corner service day
#define ROULETTE_SPECIAL_RATE (1 << 7)
#endif // GUARD_CONSTANTS_ROULETTE_H

View File

@ -0,0 +1,168 @@
#ifndef GUARD_SCRIPT_MENU_CONSTANTS_H
#define GUARD_SCRIPT_MENU_CONSTANTS_H
#define MULTICHOICE(name) {name, ARRAY_COUNT(name)}
#define MAX_MULTICHOICE_WIDTH 28
#define MULTI_B_PRESSED 127
// Multichoice Ids
#define MULTI_BRINEY_ON_DEWFORD 0
#define MULTI_PC 1 // Exit only, populated by CreatePCMultichoice
#define MULTI_ENTERINFO 2
#define MULTI_CONTEST_INFO 3
#define MULTI_CONTEST_TYPE 4
#define MULTI_BASE_PC_NO_REGISTRY 5
#define MULTI_BASE_PC_WITH_REGISTRY 6
#define MULTI_REGISTER_MENU 7
#define MULTI_SSTIDAL_LILYCOVE 8 // Exit only, populated by CreateLilycoveSSTidalMultichoice
#define MULTI_UNUSED_9 9
#define MULTI_UNUSED_10 10
#define MULTI_FRONTIER_PASS_INFO 11
#define MULTI_BIKE 12
#define MULTI_STATUS_INFO 13
#define MULTI_BRINEY_OFF_DEWFORD 14
#define MULTI_UNUSED_15 15
#define MULTI_VIEWED_PAINTINGS 16
#define MULTI_YESNOINFO 17
#define MULTI_BATTLE_MODE 18
#define MULTI_UNUSED_19 19
#define MULTI_YESNOINFO_2 20
#define MULTI_UNUSED_21 21
#define MULTI_UNUSED_22 22
#define MULTI_CHALLENGEINFO 23
#define MULTI_LEVEL_MODE 24
#define MULTI_MECHADOLL1_Q1 25
#define MULTI_MECHADOLL1_Q2 26
#define MULTI_MECHADOLL1_Q3 27
#define MULTI_MECHADOLL2_Q1 28
#define MULTI_MECHADOLL2_Q2 29
#define MULTI_MECHADOLL2_Q3 30
#define MULTI_MECHADOLL3_Q1 31
#define MULTI_MECHADOLL3_Q2 32
#define MULTI_MECHADOLL3_Q3 33
#define MULTI_MECHADOLL4_Q1 34
#define MULTI_MECHADOLL4_Q2 35
#define MULTI_MECHADOLL4_Q3 36
#define MULTI_MECHADOLL5_Q1 37
#define MULTI_MECHADOLL5_Q2 38
#define MULTI_MECHADOLL5_Q3 39
#define MULTI_UNUSED_40 40
#define MULTI_UNUSED_41 41
#define MULTI_VENDING_MACHINE 42
#define MULTI_MACH_BIKE_INFO 43
#define MULTI_ACRO_BIKE_INFO 44
#define MULTI_SATISFACTION 45
#define MULTI_STERN_DEEPSEA 46
#define MULTI_UNUSED_ASH_VENDOR 47 // Replaced by scrollable multichoice
#define MULTI_GAME_CORNER_DOLLS 48
#define MULTI_GAME_CORNER_COINS 49
#define MULTI_HOWS_FISHING 50
#define MULTI_UNUSED_51 51
#define MULTI_SSTIDAL_SLATEPORT_WITH_BF 52
#define MULTI_SSTIDAL_BATTLE_FRONTIER 53
#define MULTI_RIGHTLEFT 54
#define MULTI_GAME_CORNER_TMS 55
#define MULTI_SSTIDAL_SLATEPORT_NO_BF 56
#define MULTI_FLOORS 57
#define MULTI_SHARDS_R 58
#define MULTI_SHARDS_Y 59
#define MULTI_SHARDS_RY 60
#define MULTI_SHARDS_B 61
#define MULTI_SHARDS_RB 62
#define MULTI_SHARDS_YB 63
#define MULTI_SHARDS_RYB 64
#define MULTI_SHARDS_G 65
#define MULTI_SHARDS_RG 66
#define MULTI_SHARDS_YG 67
#define MULTI_SHARDS_RYG 68
#define MULTI_SHARDS_BG 69
#define MULTI_SHARDS_RBG 70
#define MULTI_SHARDS_YBG 71
#define MULTI_SHARDS_RYBG 72
#define MULTI_TOURNEY_WITH_RECORD 73
#define MULTI_CABLE_CLUB_NO_RECORD_MIX 74
#define MULTI_WIRELESS_NO_RECORD_BERRY 75
#define MULTI_CABLE_CLUB_WITH_RECORD_MIX 76
#define MULTI_WIRELESS_NO_BERRY 77
#define MULTI_WIRELESS_NO_RECORD 78
#define MULTI_WIRELESS_ALL_SERVICES 79
#define MULTI_WIRELESS_MINIGAME 80
#define MULTI_LINK_LEADER 81
#define MULTI_CONTEST_RANK 82
#define MULTI_FRONTIER_ITEM_CHOOSE 83
#define MULTI_LINK_CONTEST_INFO 84
#define MULTI_LINK_CONTEST_MODE 85
#define MULTI_FORCED_START_MENU 86
#define MULTI_FRONTIER_GAMBLER_BET 87
#define MULTI_TENT 88
#define MULTI_UNUSED_SSTIDAL_1 89 // These 4 were replaced by CreateLilycoveSSTidalMultichoice
#define MULTI_UNUSED_SSTIDAL_2 90 //
#define MULTI_UNUSED_SSTIDAL_3 91 //
#define MULTI_UNUSED_SSTIDAL_4 92 //
#define MULTI_FOSSIL 93
#define MULTI_YESNO 94
#define MULTI_FRONTIER_RULES 95
#define MULTI_BATTLE_ARENA_RULES 96
#define MULTI_BATTLE_TOWER_RULES 97
#define MULTI_BATTLE_DOME_RULES 98
#define MULTI_BATTLE_FACTORY_RULES 99
#define MULTI_BATTLE_PALACE_RULES 100
#define MULTI_BATTLE_PYRAMID_RULES 101
#define MULTI_BATTLE_PIKE_RULES 102
#define MULTI_GO_ON_RECORD_REST_RETIRE 103
#define MULTI_GO_ON_REST_RETIRE 104
#define MULTI_GO_ON_RECORD_RETIRE 105
#define MULTI_GO_ON_RETIRE 106
#define MULTI_TOURNEY_NO_RECORD 107
#define MULTI_TV_LATI 108
#define MULTI_BATTLE_TOWER_FEELINGS 109
#define MULTI_WHERES_RAYQUAZA 110
#define MULTI_SLATEPORT_TENT_RULES 111
#define MULTI_FALLARBOR_TENT_RULES 112
#define MULTI_TAG_MATCH_TYPE 113
// Lilycove SS Tidal Multichoice Selections
#define SSTIDAL_SELECTION_SLATEPORT 0
#define SSTIDAL_SELECTION_BATTLE_FRONTIER 1
#define SSTIDAL_SELECTION_SOUTHERN_ISLAND 2
#define SSTIDAL_SELECTION_NAVEL_ROCK 3
#define SSTIDAL_SELECTION_BIRTH_ISLAND 4
#define SSTIDAL_SELECTION_FARAWAY_ISLAND 5
#define SSTIDAL_SELECTION_EXIT 6
#define SSTIDAL_SELECTION_COUNT 7
// Std String Ids
#define STDSTRING_COOL 0
#define STDSTRING_BEAUTY 1
#define STDSTRING_CUTE 2
#define STDSTRING_SMART 3
#define STDSTRING_TOUGH 4
#define STDSTRING_NORMAL 5
#define STDSTRING_SUPER 6
#define STDSTRING_HYPER 7
#define STDSTRING_MASTER 8
#define STDSTRING_COOL2 9
#define STDSTRING_BEAUTY2 10
#define STDSTRING_CUTE2 11
#define STDSTRING_SMART2 12
#define STDSTRING_TOUGH2 13
#define STDSTRING_ITEMS 14
#define STDSTRING_KEYITEMS 15
#define STDSTRING_POKEBALLS 16
#define STDSTRING_TMHMS 17
#define STDSTRING_BERRIES 18
#define STDSTRING_SINGLE 19
#define STDSTRING_DOUBLE 20
#define STDSTRING_MULTI 21
#define STDSTRING_MULTI_LINK 22
#define STDSTRING_BATTLE_TOWER 23
#define STDSTRING_BATTLE_DOME 24
#define STDSTRING_BATTLE_FACTORY 25
#define STDSTRING_BATTLE_PALACE 26
#define STDSTRING_BATTLE_ARENA 27
#define STDSTRING_BATTLE_PIKE 28
#define STDSTRING_BATTLE_PYRAMID 29
#endif //GUARD_SCRIPT_MENU_CONSTANTS_H

171
include/constants/secret_bases.h Executable file
View File

@ -0,0 +1,171 @@
#ifndef GUARD_CONSTANTS_SECRET_BASES_H
#define GUARD_CONSTANTS_SECRET_BASES_H
#define SECRET_BASE_RED_CAVE 1
#define SECRET_BASE_BROWN_CAVE 2
#define SECRET_BASE_BLUE_CAVE 3
#define SECRET_BASE_YELLOW_CAVE 4
#define SECRET_BASE_TREE 5
#define SECRET_BASE_SHRUB 6
// Each secret base location is assigned an identifier value.
// The secret base's map is determined by (id / 10). The ones
// digit is used to differentiate secret bases using the same map.
// Therefore, each secret base map can be used by up to 10 different
// secret bases in the game.
// * 4 is for each byte of data per secret base group in sSecretBaseEntrancePositions
// They are the map number, the entrance warp id, and the x/y position in front of the computer
#define SECRET_BASE_GROUP(idx) ((idx) * 4)
#define SECRET_BASE_ID_TO_GROUP(baseId) SECRET_BASE_GROUP((baseId) / 10)
#define SECRET_BASE_RED_CAVE1_1 1
#define SECRET_BASE_RED_CAVE1_2 2
#define SECRET_BASE_RED_CAVE1_3 3
#define SECRET_BASE_RED_CAVE1 SECRET_BASE_GROUP(0)
#define SECRET_BASE_RED_CAVE2_1 11
#define SECRET_BASE_RED_CAVE2_2 12
#define SECRET_BASE_RED_CAVE2_3 13
#define SECRET_BASE_RED_CAVE2 SECRET_BASE_GROUP(1)
#define SECRET_BASE_RED_CAVE3_1 21
#define SECRET_BASE_RED_CAVE3_2 22
#define SECRET_BASE_RED_CAVE3_3 23
#define SECRET_BASE_RED_CAVE3 SECRET_BASE_GROUP(2)
#define SECRET_BASE_RED_CAVE4_1 31
#define SECRET_BASE_RED_CAVE4_2 32
#define SECRET_BASE_RED_CAVE4_3 33
#define SECRET_BASE_RED_CAVE4 SECRET_BASE_GROUP(3)
#define SECRET_BASE_BROWN_CAVE1_1 41
#define SECRET_BASE_BROWN_CAVE1_2 42
#define SECRET_BASE_BROWN_CAVE1_3 43
#define SECRET_BASE_BROWN_CAVE1 SECRET_BASE_GROUP(4)
#define SECRET_BASE_BROWN_CAVE2_1 51
#define SECRET_BASE_BROWN_CAVE2_2 52
#define SECRET_BASE_BROWN_CAVE2_3 53
#define SECRET_BASE_BROWN_CAVE2 SECRET_BASE_GROUP(5)
#define SECRET_BASE_BROWN_CAVE3_1 61
#define SECRET_BASE_BROWN_CAVE3_2 62
#define SECRET_BASE_BROWN_CAVE3_3 63
#define SECRET_BASE_BROWN_CAVE3 SECRET_BASE_GROUP(6)
#define SECRET_BASE_BROWN_CAVE4_1 71
#define SECRET_BASE_BROWN_CAVE4_2 72
#define SECRET_BASE_BROWN_CAVE4_3 73
#define SECRET_BASE_BROWN_CAVE4 SECRET_BASE_GROUP(7)
#define SECRET_BASE_BLUE_CAVE1_1 81
#define SECRET_BASE_BLUE_CAVE1_2 82
#define SECRET_BASE_BLUE_CAVE1_3 83
#define SECRET_BASE_BLUE_CAVE1 SECRET_BASE_GROUP(8)
#define SECRET_BASE_BLUE_CAVE2_1 91
#define SECRET_BASE_BLUE_CAVE2_2 92
#define SECRET_BASE_BLUE_CAVE2_3 93
#define SECRET_BASE_BLUE_CAVE2 SECRET_BASE_GROUP(9)
#define SECRET_BASE_BLUE_CAVE3_1 101
#define SECRET_BASE_BLUE_CAVE3_2 102
#define SECRET_BASE_BLUE_CAVE3_3 103
#define SECRET_BASE_BLUE_CAVE3 SECRET_BASE_GROUP(10)
#define SECRET_BASE_BLUE_CAVE4_1 111
#define SECRET_BASE_BLUE_CAVE4_2 112
#define SECRET_BASE_BLUE_CAVE4_3 113
#define SECRET_BASE_BLUE_CAVE4 SECRET_BASE_GROUP(11)
#define SECRET_BASE_YELLOW_CAVE1_1 121
#define SECRET_BASE_YELLOW_CAVE1_2 122
#define SECRET_BASE_YELLOW_CAVE1_3 123
#define SECRET_BASE_YELLOW_CAVE1 SECRET_BASE_GROUP(12)
#define SECRET_BASE_YELLOW_CAVE2_1 131
#define SECRET_BASE_YELLOW_CAVE2_2 132
#define SECRET_BASE_YELLOW_CAVE2_3 133
#define SECRET_BASE_YELLOW_CAVE2 SECRET_BASE_GROUP(13)
#define SECRET_BASE_YELLOW_CAVE3_1 141
#define SECRET_BASE_YELLOW_CAVE3_2 142
#define SECRET_BASE_YELLOW_CAVE3_3 143
#define SECRET_BASE_YELLOW_CAVE3 SECRET_BASE_GROUP(14)
#define SECRET_BASE_YELLOW_CAVE4_1 151
#define SECRET_BASE_YELLOW_CAVE4_2 152
#define SECRET_BASE_YELLOW_CAVE4_3 153
#define SECRET_BASE_YELLOW_CAVE4 SECRET_BASE_GROUP(15)
#define SECRET_BASE_TREE1_1 161
#define SECRET_BASE_TREE1_2 162
#define SECRET_BASE_TREE1_3 163
#define SECRET_BASE_TREE1_4 164
#define SECRET_BASE_TREE1 SECRET_BASE_GROUP(16)
#define SECRET_BASE_TREE2_1 171
#define SECRET_BASE_TREE2_2 172
#define SECRET_BASE_TREE2_3 173
#define SECRET_BASE_TREE2_4 174
#define SECRET_BASE_TREE2 SECRET_BASE_GROUP(17)
#define SECRET_BASE_TREE3_1 181
#define SECRET_BASE_TREE3_2 182
#define SECRET_BASE_TREE3_3 183
#define SECRET_BASE_TREE3 SECRET_BASE_GROUP(18)
#define SECRET_BASE_TREE4_1 191
#define SECRET_BASE_TREE4_2 192
#define SECRET_BASE_TREE4_3 193
#define SECRET_BASE_TREE4 SECRET_BASE_GROUP(19)
#define SECRET_BASE_SHRUB1_1 201
#define SECRET_BASE_SHRUB1_2 202
#define SECRET_BASE_SHRUB1_3 203
#define SECRET_BASE_SHRUB1_4 204
#define SECRET_BASE_SHRUB1 SECRET_BASE_GROUP(20)
#define SECRET_BASE_SHRUB2_1 211
#define SECRET_BASE_SHRUB2_2 212
#define SECRET_BASE_SHRUB2_3 213
#define SECRET_BASE_SHRUB2 SECRET_BASE_GROUP(21)
#define SECRET_BASE_SHRUB3_1 221
#define SECRET_BASE_SHRUB3_2 222
#define SECRET_BASE_SHRUB3_3 223
#define SECRET_BASE_SHRUB3 SECRET_BASE_GROUP(22)
#define SECRET_BASE_SHRUB4_1 231
#define SECRET_BASE_SHRUB4_2 232
#define SECRET_BASE_SHRUB4_3 233
#define SECRET_BASE_SHRUB4 SECRET_BASE_GROUP(23)
#define NUM_SECRET_BASE_GROUPS 24
#endif // GUARD_CONSTANTS_SECRET_BASES_H

View File

@ -0,0 +1,15 @@
#ifndef GUARD_CONSTANTS_SLOT_MACHINE_H
#define GUARD_CONSTANTS_SLOT_MACHINE_H
#define SLOT_MACHINE_COUNT 12
// Slot machine IDs
#define SLOT_MACHINE_UNLUCKIEST 0
#define SLOT_MACHINE_UNLUCKIER 1
#define SLOT_MACHINE_UNLUCKY 2
#define SLOT_MACHINE_LUCKY 3
#define SLOT_MACHINE_LUCKIER 4
#define SLOT_MACHINE_LUCKIEST 5
#define NUM_SLOT_MACHINE_IDS 6
#endif // GUARD_CONSTANTS_SLOT_MACHINE_H

548
include/constants/songs.h Normal file
View File

@ -0,0 +1,548 @@
#ifndef GUARD_CONSTANTS_SONGS_H
#define GUARD_CONSTANTS_SONGS_H
// Original JP names listed on right, along with any additional notes
#define MUS_DUMMY 0 // MUS_DUMMY
#define SE_USE_ITEM 1 // SE_KAIFUKU
#define SE_PC_LOGIN 2 // SE_PC_LOGIN
#define SE_PC_OFF 3 // SE_PC_OFF
#define SE_PC_ON 4 // SE_PC_ON
#define SE_SELECT 5 // SE_SELECT
#define SE_WIN_OPEN 6 // SE_WIN_OPEN
#define SE_WALL_HIT 7 // SE_WALL_HIT
#define SE_DOOR 8 // SE_DOOR
#define SE_EXIT 9 // SE_KAIDAN
#define SE_LEDGE 10 // SE_DANSA
#define SE_BIKE_BELL 11 // SE_JITENSYA
#define SE_NOT_EFFECTIVE 12 // SE_KOUKA_L
#define SE_EFFECTIVE 13 // SE_KOUKA_M
#define SE_SUPER_EFFECTIVE 14 // SE_KOUKA_H
#define SE_BALL_OPEN 15 // SE_BOWA2
#define SE_FAINT 16 // SE_POKE_DEAD
#define SE_FLEE 17 // SE_NIGERU
#define SE_SLIDING_DOOR 18 // SE_JIDO_DOA
#define SE_SHIP 19 // SE_NAMINORI
#define SE_BANG 20 // SE_BAN
#define SE_PIN 21 // SE_PIN (General "good", commonly for "!")
#define SE_BOO 22 // SE_BOO (General "bad")
#define SE_BALL 23 // SE_BOWA (Giving Poké Ball to nurse, Poké Ball shake, etc)
#define SE_CONTEST_PLACE 24 // SE_JYUNI
#define SE_A 25 // SE_A (Bard sounds)
#define SE_I 26 // SE_I
#define SE_U 27 // SE_U
#define SE_E 28 // SE_E
#define SE_O 29 // SE_O
#define SE_N 30 // SE_N
#define SE_SUCCESS 31 // SE_SEIKAI
#define SE_FAILURE 32 // SE_HAZURE
#define SE_EXP 33 // SE_EXP
#define SE_BIKE_HOP 34 // SE_JITE_PYOKO
#define SE_SWITCH 35 // SE_MU_PACHI
#define SE_CLICK 36 // SE_TK_KASYA
#define SE_FU_ZAKU 37 // SE_FU_ZAKU (Unknown purpose, unused)
#define SE_CONTEST_CONDITION_LOSE 38 // SE_FU_ZAKU2
#define SE_LAVARIDGE_FALL_WARP 39 // SE_FU_ZUZUZU
#define SE_ICE_STAIRS 40 // SE_RU_GASHIN
#define SE_ICE_BREAK 41 // SE_RU_GASYAN
#define SE_ICE_CRACK 42 // SE_RU_BARI
#define SE_FALL 43 // SE_RU_HYUU
#define SE_UNLOCK 44 // SE_KI_GASYAN
#define SE_WARP_IN 45 // SE_TK_WARPIN
#define SE_WARP_OUT 46 // SE_TK_WARPOUT
#define SE_REPEL 47 // SE_TU_SAA
#define SE_ROTATING_GATE 48 // SE_HI_TURUN
#define SE_TRUCK_MOVE 49 // SE_TRACK_MOVE
#define SE_TRUCK_STOP 50 // SE_TRACK_STOP
#define SE_TRUCK_UNLOAD 51 // SE_TRACK_HAIKI
#define SE_TRUCK_DOOR 52 // SE_TRACK_DOOR
#define SE_BERRY_BLENDER 53 // SE_MOTER
#define SE_CARD 54 // SE_CARD (Unused, different from the RS card SE)
#define SE_SAVE 55 // SE_SAVE
#define SE_BALL_BOUNCE_1 56 // SE_KON
#define SE_BALL_BOUNCE_2 57 // SE_KON2
#define SE_BALL_BOUNCE_3 58 // SE_KON3
#define SE_BALL_BOUNCE_4 59 // SE_KON4
#define SE_BALL_TRADE 60 // SE_SUIKOMU
#define SE_BALL_THROW 61 // SE_NAGERU
#define SE_NOTE_C 62 // SE_TOY_C
#define SE_NOTE_D 63 // SE_TOY_D
#define SE_NOTE_E 64 // SE_TOY_E
#define SE_NOTE_F 65 // SE_TOY_F
#define SE_NOTE_G 66 // SE_TOY_G
#define SE_NOTE_A 67 // SE_TOY_A
#define SE_NOTE_B 68 // SE_TOY_B
#define SE_NOTE_C_HIGH 69 // SE_TOY_C1
#define SE_PUDDLE 70 // SE_MIZU
#define SE_BRIDGE_WALK 71 // SE_HASHI
#define SE_ITEMFINDER 72 // SE_DAUGI
#define SE_DING_DONG 73 // SE_PINPON
#define SE_BALLOON_RED 74 // SE_FUUSEN1
#define SE_BALLOON_BLUE 75 // SE_FUUSEN2
#define SE_BALLOON_YELLOW 76 // SE_FUUSEN3
#define SE_BREAKABLE_DOOR 77 // SE_TOY_KABE
#define SE_MUD_BALL 78 // SE_TOY_DANGO
#define SE_FIELD_POISON 79 // SE_DOKU
#define SE_ESCALATOR 80 // SE_ESUKA
#define SE_THUNDERSTORM 81 // SE_T_AME
#define SE_THUNDERSTORM_STOP 82 // SE_T_AME_E
#define SE_DOWNPOUR 83 // SE_T_OOAME
#define SE_DOWNPOUR_STOP 84 // SE_T_OOAME_E
#define SE_RAIN 85 // SE_T_KOAME
#define SE_RAIN_STOP 86 // SE_T_KOAME_E
#define SE_THUNDER 87 // SE_T_KAMI
#define SE_THUNDER2 88 // SE_T_KAMI2
#define SE_ELEVATOR 89 // SE_ELEBETA
#define SE_LOW_HEALTH 90 // SE_HINSI
#define SE_EXP_MAX 91 // SE_EXPMAX
#define SE_ROULETTE_BALL 92 // SE_TAMAKORO
#define SE_ROULETTE_BALL2 93 // SE_TAMAKORO_E
#define SE_TAILLOW_WING_FLAP 94 // SE_BASABASA
#define SE_SHOP 95 // SE_REGI
#define SE_CONTEST_HEART 96 // SE_C_GAJI
#define SE_CONTEST_CURTAIN_RISE 97 // SE_C_MAKU_U
#define SE_CONTEST_CURTAIN_FALL 98 // SE_C_MAKU_D
#define SE_CONTEST_ICON_CHANGE 99 // SE_C_PASI
#define SE_CONTEST_ICON_CLEAR 100 // SE_C_SYU
#define SE_CONTEST_MONS_TURN 101 // SE_C_PIKON
#define SE_SHINY 102 // SE_REAPOKE
#define SE_INTRO_BLAST 103 // SE_OP_BASYU
#define SE_MUGSHOT 104 // SE_BT_START
#define SE_APPLAUSE 105 // SE_DENDOU
#define SE_VEND 106 // SE_JIHANKI
#define SE_ORB 107 // SE_TAMA
#define SE_DEX_SCROLL 108 // SE_Z_SCROLL
#define SE_DEX_PAGE 109 // SE_Z_PAGE
#define SE_POKENAV_ON 110 // SE_PN_ON
#define SE_POKENAV_OFF 111 // SE_PN_OFF
#define SE_DEX_SEARCH 112 // SE_Z_SEARCH
#define SE_EGG_HATCH 113 // SE_TAMAGO
#define SE_BALL_TRAY_ENTER 114 // SE_TB_START
#define SE_BALL_TRAY_BALL 115 // SE_TB_KON
#define SE_BALL_TRAY_EXIT 116 // SE_TB_KARA
#define SE_GLASS_FLUTE 117 // SE_BIDORO
// Move SFX
#define SE_M_THUNDERBOLT 118 // SE_W085
#define SE_M_THUNDERBOLT2 119 // SE_W085B
#define SE_M_HARDEN 120 // SE_W231
#define SE_M_NIGHTMARE 121 // SE_W171
#define SE_M_VITAL_THROW 122 // SE_W233
#define SE_M_VITAL_THROW2 123 // SE_W233B
#define SE_M_BUBBLE 124 // SE_W145
#define SE_M_BUBBLE2 125 // SE_W145B
#define SE_M_BUBBLE3 126 // SE_W145C
#define SE_M_RAIN_DANCE 127 // SE_W240
#define SE_M_CUT 128 // SE_W015
#define SE_M_STRING_SHOT 129 // SE_W081
#define SE_M_STRING_SHOT2 130 // SE_W081B
#define SE_M_ROCK_THROW 131 // SE_W088
#define SE_M_GUST 132 // SE_W016
#define SE_M_GUST2 133 // SE_W016B
#define SE_M_DOUBLE_SLAP 134 // SE_W003
#define SE_M_DOUBLE_TEAM 135 // SE_W104
#define SE_M_RAZOR_WIND 136 // SE_W013
#define SE_M_ICY_WIND 137 // SE_W196
#define SE_M_THUNDER_WAVE 138 // SE_W086
#define SE_M_COMET_PUNCH 139 // SE_W004
#define SE_M_MEGA_KICK 140 // SE_W025
#define SE_M_MEGA_KICK2 141 // SE_W025B
#define SE_M_CRABHAMMER 142 // SE_W152
#define SE_M_JUMP_KICK 143 // SE_W026
#define SE_M_FLAME_WHEEL 144 // SE_W172
#define SE_M_FLAME_WHEEL2 145 // SE_W172B
#define SE_M_FLAMETHROWER 146 // SE_W053
#define SE_M_FIRE_PUNCH 147 // SE_W007
#define SE_M_TOXIC 148 // SE_W092
#define SE_M_SACRED_FIRE 149 // SE_W221
#define SE_M_SACRED_FIRE2 150 // SE_W221B
#define SE_M_EMBER 151 // SE_W052
#define SE_M_TAKE_DOWN 152 // SE_W036
#define SE_M_BLIZZARD 153 // SE_W059
#define SE_M_BLIZZARD2 154 // SE_W059B
#define SE_M_SCRATCH 155 // SE_W010
#define SE_M_VICEGRIP 156 // SE_W011
#define SE_M_WING_ATTACK 157 // SE_W017
#define SE_M_FLY 158 // SE_W019
#define SE_M_SAND_ATTACK 159 // SE_W028
#define SE_M_RAZOR_WIND2 160 // SE_W013B
#define SE_M_BITE 161 // SE_W044
#define SE_M_HEADBUTT 162 // SE_W029
#define SE_M_SURF 163 // SE_W057
#define SE_M_HYDRO_PUMP 164 // SE_W056
#define SE_M_WHIRLPOOL 165 // SE_W250
#define SE_M_HORN_ATTACK 166 // SE_W030
#define SE_M_TAIL_WHIP 167 // SE_W039
#define SE_M_MIST 168 // SE_W054
#define SE_M_POISON_POWDER 169 // SE_W077
#define SE_M_BIND 170 // SE_W020
#define SE_M_DRAGON_RAGE 171 // SE_W082
#define SE_M_SING 172 // SE_W047
#define SE_M_PERISH_SONG 173 // SE_W195
#define SE_M_PAY_DAY 174 // SE_W006
#define SE_M_DIG 175 // SE_W091
#define SE_M_DIZZY_PUNCH 176 // SE_W146
#define SE_M_SELF_DESTRUCT 177 // SE_W120
#define SE_M_EXPLOSION 178 // SE_W153
#define SE_M_ABSORB_2 179 // SE_W071B
#define SE_M_ABSORB 180 // SE_W071
#define SE_M_SCREECH 181 // SE_W103
#define SE_M_BUBBLE_BEAM 182 // SE_W062
#define SE_M_BUBBLE_BEAM2 183 // SE_W062B
#define SE_M_SUPERSONIC 184 // SE_W048
#define SE_M_BELLY_DRUM 185 // SE_W187
#define SE_M_METRONOME 186 // SE_W118
#define SE_M_BONEMERANG 187 // SE_W155
#define SE_M_LICK 188 // SE_W122
#define SE_M_PSYBEAM 189 // SE_W060
#define SE_M_FAINT_ATTACK 190 // SE_W185
#define SE_M_SWORDS_DANCE 191 // SE_W014
#define SE_M_LEER 192 // SE_W043
#define SE_M_SWAGGER 193 // SE_W207
#define SE_M_SWAGGER2 194 // SE_W207B
#define SE_M_HEAL_BELL 195 // SE_W215
#define SE_M_CONFUSE_RAY 196 // SE_W109
#define SE_M_SNORE 197 // SE_W173
#define SE_M_BRICK_BREAK 198 // SE_W280
#define SE_M_GIGA_DRAIN 199 // SE_W202
#define SE_M_PSYBEAM2 200 // SE_W060B
#define SE_M_SOLAR_BEAM 201 // SE_W076
#define SE_M_PETAL_DANCE 202 // SE_W080
#define SE_M_TELEPORT 203 // SE_W100
#define SE_M_MINIMIZE 204 // SE_W107
#define SE_M_SKETCH 205 // SE_W166
#define SE_M_SWIFT 206 // SE_W129
#define SE_M_REFLECT 207 // SE_W115
#define SE_M_BARRIER 208 // SE_W112
#define SE_M_DETECT 209 // SE_W197
#define SE_M_LOCK_ON 210 // SE_W199
#define SE_M_MOONLIGHT 211 // SE_W236
#define SE_M_CHARM 212 // SE_W204
#define SE_M_CHARGE 213 // SE_W268
#define SE_M_STRENGTH 214 // SE_W070
#define SE_M_HYPER_BEAM 215 // SE_W063
#define SE_M_WATERFALL 216 // SE_W127
#define SE_M_REVERSAL 217 // SE_W179
#define SE_M_ACID_ARMOR 218 // SE_W151
#define SE_M_SANDSTORM 219 // SE_W201
#define SE_M_TRI_ATTACK 220 // SE_W161
#define SE_M_TRI_ATTACK2 221 // SE_W161B
#define SE_M_ENCORE 222 // SE_W227
#define SE_M_ENCORE2 223 // SE_W227B
#define SE_M_BATON_PASS 224 // SE_W226
#define SE_M_MILK_DRINK 225 // SE_W208
#define SE_M_ATTRACT 226 // SE_W213
#define SE_M_ATTRACT2 227 // SE_W213B
#define SE_M_MORNING_SUN 228 // SE_W234
#define SE_M_FLATTER 229 // SE_W260
#define SE_M_SAND_TOMB 230 // SE_W328
#define SE_M_GRASSWHISTLE 231 // SE_W320
#define SE_M_SPIT_UP 232 // SE_W255
#define SE_M_DIVE 233 // SE_W291
#define SE_M_EARTHQUAKE 234 // SE_W089
#define SE_M_TWISTER 235 // SE_W239
#define SE_M_SWEET_SCENT 236 // SE_W230
#define SE_M_YAWN 237 // SE_W281
#define SE_M_SKY_UPPERCUT 238 // SE_W327
#define SE_M_STAT_INCREASE 239 // SE_W287
#define SE_M_HEAT_WAVE 240 // SE_W257
#define SE_M_UPROAR 241 // SE_W253
#define SE_M_HAIL 242 // SE_W258
#define SE_M_COSMIC_POWER 243 // SE_W322
#define SE_M_TEETER_DANCE 244 // SE_W298
#define SE_M_STAT_DECREASE 245 // SE_W287B
#define SE_M_HAZE 246 // SE_W114
#define SE_M_HYPER_BEAM2 247 // SE_W063B
// FRLG SFX
#define SE_RG_DOOR 248 // SE_RG_W_DOOR
#define SE_RG_CARD_FLIP 249 // SE_RG_CARD1
#define SE_RG_CARD_FLIPPING 250 // SE_RG_CARD2
#define SE_RG_CARD_OPEN 251 // SE_RG_CARD3
#define SE_RG_BAG_CURSOR 252 // SE_RG_BAG1
#define SE_RG_BAG_POCKET 253 // SE_RG_BAG2
#define SE_RG_BALL_CLICK 254 // SE_RG_GETTING
#define SE_RG_SHOP 255 // SE_RG_SHOP
#define SE_RG_SS_ANNE_HORN 256 // SE_RG_KITEKI
#define SE_RG_HELP_OPEN 257 // SE_RG_HELP_OP
#define SE_RG_HELP_CLOSE 258 // SE_RG_HELP_CL
#define SE_RG_HELP_ERROR 259 // SE_RG_HELP_NG
#define SE_RG_DEOXYS_MOVE 260 // SE_RG_DEOMOV
#define SE_RG_POKE_JUMP_SUCCESS 261 // SE_RG_EXCELLENT
#define SE_RG_POKE_JUMP_FAILURE 262 // SE_RG_NAWAMISS
// New Emerald SFX
#define SE_POKENAV_CALL 263 // SE_TOREEYE
#define SE_POKENAV_HANG_UP 264 // SE_TOREOFF
#define SE_ARENA_TIMEUP1 265 // SE_HANTEI1
#define SE_ARENA_TIMEUP2 266 // SE_HANTEI2
#define SE_PIKE_CURTAIN_CLOSE 267 // SE_CURTAIN
#define SE_PIKE_CURTAIN_OPEN 268 // SE_CURTAIN1
#define SE_SUDOWOODO_SHAKE 269 // SE_USSOKI
// Music
#define MUS_LITTLEROOT_TEST 350 // MUS_TETSUJI
#define MUS_GSC_ROUTE38 351 // MUS_FIELD13
#define MUS_CAUGHT 352 // MUS_KACHI22
#define MUS_VICTORY_WILD 353 // MUS_KACHI2
#define MUS_VICTORY_GYM_LEADER 354 // MUS_KACHI3
#define MUS_VICTORY_LEAGUE 355 // MUS_KACHI5
#define MUS_C_COMM_CENTER 356 // MUS_PCC
#define MUS_GSC_PEWTER 357 // MUS_NIBI
#define MUS_C_VS_LEGEND_BEAST 358 // MUS_SUIKUN
#define MUS_ROUTE101 359 // MUS_DOORO1
#define MUS_ROUTE110 360 // MUS_DOORO_X1
#define MUS_ROUTE120 361 // MUS_DOORO_X3
#define MUS_PETALBURG 362 // MUS_MACHI_S2
#define MUS_OLDALE 363 // MUS_MACHI_S4
#define MUS_GYM 364 // MUS_GIM
#define MUS_SURF 365 // MUS_NAMINORI
#define MUS_PETALBURG_WOODS 366 // MUS_DAN01
#define MUS_LEVEL_UP 367 // MUS_FANFA1
#define MUS_HEAL 368 // MUS_ME_ASA
#define MUS_OBTAIN_BADGE 369 // MUS_ME_BACHI
#define MUS_OBTAIN_ITEM 370 // MUS_FANFA4
#define MUS_EVOLVED 371 // MUS_FANFA5
#define MUS_OBTAIN_TMHM 372 // MUS_ME_WAZA
#define MUS_LILYCOVE_MUSEUM 373 // MUS_BIJYUTU
#define MUS_ROUTE122 374 // MUS_DOORO_X4
#define MUS_OCEANIC_MUSEUM 375 // MUS_FUNE_KAN
#define MUS_EVOLUTION_INTRO 376 // MUS_ME_SHINKA
#define MUS_EVOLUTION 377 // MUS_SHINKA
#define MUS_MOVE_DELETED 378 // MUS_ME_WASURE
#define MUS_ENCOUNTER_GIRL 379 // MUS_SYOUJOEYE
#define MUS_ENCOUNTER_MALE 380 // MUS_BOYEYE
#define MUS_ABANDONED_SHIP 381 // MUS_DAN02
#define MUS_FORTREE 382 // MUS_MACHI_S3
#define MUS_BIRCH_LAB 383 // MUS_ODAMAKI
#define MUS_B_TOWER_RS 384 // MUS_B_TOWER
#define MUS_ENCOUNTER_SWIMMER 385 // MUS_SWIMEYE
#define MUS_CAVE_OF_ORIGIN 386 // MUS_DAN03
#define MUS_OBTAIN_BERRY 387 // MUS_ME_KINOMI
#define MUS_AWAKEN_LEGEND 388 // MUS_ME_TAMA
#define MUS_SLOTS_JACKPOT 389 // MUS_ME_B_BIG
#define MUS_SLOTS_WIN 390 // MUS_ME_B_SMALL
#define MUS_TOO_BAD 391 // MUS_ME_ZANNEN
#define MUS_ROULETTE 392 // MUS_BD_TIME
#define MUS_LINK_CONTEST_P1 393 // MUS_TEST1
#define MUS_LINK_CONTEST_P2 394 // MUS_TEST2
#define MUS_LINK_CONTEST_P3 395 // MUS_TEST3
#define MUS_LINK_CONTEST_P4 396 // MUS_TEST4
#define MUS_ENCOUNTER_RICH 397 // MUS_TEST
#define MUS_VERDANTURF 398 // MUS_GOMACHI0
#define MUS_RUSTBORO 399 // MUS_GOTOWN
#define MUS_POKE_CENTER 400 // MUS_POKECEN
#define MUS_ROUTE104 401 // MUS_NEXTROAD
#define MUS_ROUTE119 402 // MUS_GRANROAD
#define MUS_CYCLING 403 // MUS_CYCLING
#define MUS_POKE_MART 404 // MUS_FRIENDLY
#define MUS_LITTLEROOT 405 // MUS_MISHIRO
#define MUS_MT_CHIMNEY 406 // MUS_TOZAN
#define MUS_ENCOUNTER_FEMALE 407 // MUS_GIRLEYE
#define MUS_LILYCOVE 408 // MUS_MINAMO
#define MUS_ROUTE111 409 // MUS_ASHROAD
#define MUS_HELP 410 // MUS_EVENT0
#define MUS_UNDERWATER 411 // MUS_DEEPDEEP
#define MUS_VICTORY_TRAINER 412 // MUS_KACHI1
#define MUS_TITLE 413 // MUS_TITLE3
#define MUS_INTRO 414 // MUS_DEMO1
#define MUS_ENCOUNTER_MAY 415 // MUS_GIRL_SUP
#define MUS_ENCOUNTER_INTENSE 416 // MUS_HAGESHII
#define MUS_ENCOUNTER_COOL 417 // MUS_KAKKOII
#define MUS_ROUTE113 418 // MUS_KAZANBAI
#define MUS_ENCOUNTER_AQUA 419 // MUS_AQA_0
#define MUS_FOLLOW_ME 420 // MUS_TSURETEK
#define MUS_ENCOUNTER_BRENDAN 421 // MUS_BOY_SUP
#define MUS_EVER_GRANDE 422 // MUS_RAINBOW
#define MUS_ENCOUNTER_SUSPICIOUS 423 // MUS_AYASII
#define MUS_VICTORY_AQUA_MAGMA 424 // MUS_KACHI4
#define MUS_CABLE_CAR 425 // MUS_ROPEWAY
#define MUS_GAME_CORNER 426 // MUS_CASINO
#define MUS_DEWFORD 427 // MUS_HIGHTOWN
#define MUS_SAFARI_ZONE 428 // MUS_SAFARI
#define MUS_VICTORY_ROAD 429 // MUS_C_ROAD
#define MUS_AQUA_MAGMA_HIDEOUT 430 // MUS_AJITO
#define MUS_SAILING 431 // MUS_M_BOAT
#define MUS_MT_PYRE 432 // MUS_M_DUNGON
#define MUS_SLATEPORT 433 // MUS_FINECITY
#define MUS_MT_PYRE_EXTERIOR 434 // MUS_MACHUPI
#define MUS_SCHOOL 435 // MUS_P_SCHOOL
#define MUS_HALL_OF_FAME 436 // MUS_DENDOU
#define MUS_FALLARBOR 437 // MUS_TONEKUSA
#define MUS_SEALED_CHAMBER 438 // MUS_MABOROSI
#define MUS_CONTEST_WINNER 439 // MUS_CON_FAN
#define MUS_CONTEST 440 // MUS_CONTEST0
#define MUS_ENCOUNTER_MAGMA 441 // MUS_MGM0
#define MUS_INTRO_BATTLE 442 // MUS_T_BATTLE
#define MUS_ABNORMAL_WEATHER 443 // MUS_OOAME (Replaces MUS_WEATHER_KYOGRE from R/S)
#define MUS_WEATHER_GROUDON 444 // MUS_HIDERI (Unused, from R/S)
#define MUS_SOOTOPOLIS 445 // MUS_RUNECITY
#define MUS_CONTEST_RESULTS 446 // MUS_CON_K
#define MUS_HALL_OF_FAME_ROOM 447 // MUS_EIKOU_R
#define MUS_TRICK_HOUSE 448 // MUS_KARAKURI
#define MUS_ENCOUNTER_TWINS 449 // MUS_HUTAGO
#define MUS_ENCOUNTER_ELITE_FOUR 450 // MUS_SITENNOU
#define MUS_ENCOUNTER_HIKER 451 // MUS_YAMA_EYE
#define MUS_CONTEST_LOBBY 452 // MUS_CONLOBBY
#define MUS_ENCOUNTER_INTERVIEWER 453 // MUS_INTER_V
#define MUS_ENCOUNTER_CHAMPION 454 // MUS_DAIGO
#define MUS_CREDITS 455 // MUS_THANKFOR
#define MUS_END 456 // MUS_END
#define MUS_B_FRONTIER 457 // MUS_B_FRONTIER
#define MUS_B_ARENA 458 // MUS_B_ARENA
#define MUS_OBTAIN_B_POINTS 459 // MUS_ME_POINTGET
#define MUS_REGISTER_MATCH_CALL 460 // MUS_ME_TORE_EYE
#define MUS_B_PYRAMID 461 // MUS_PYRAMID
#define MUS_B_PYRAMID_TOP 462 // MUS_PYRAMID_TOP
#define MUS_B_PALACE 463 // MUS_B_PALACE
#define MUS_RAYQUAZA_APPEARS 464 // MUS_REKKUU_KOURIN
#define MUS_B_TOWER 465 // MUS_SATTOWER
#define MUS_OBTAIN_SYMBOL 466 // MUS_ME_SYMBOLGET
#define MUS_B_DOME 467 // MUS_B_DOME
#define MUS_B_PIKE 468 // MUS_B_TUBE
#define MUS_B_FACTORY 469 // MUS_B_FACTORY
#define MUS_VS_RAYQUAZA 470 // MUS_VS_REKKU (Identical to MUS_VS_KYOGRE_GROUDON)
#define MUS_VS_FRONTIER_BRAIN 471 // MUS_VS_FRONT
#define MUS_VS_MEW 472 // MUS_VS_MEW
#define MUS_B_DOME_LOBBY 473 // MUS_B_DOME1
#define MUS_VS_WILD 474 // MUS_BATTLE27
#define MUS_VS_AQUA_MAGMA 475 // MUS_BATTLE31
#define MUS_VS_TRAINER 476 // MUS_BATTLE20
#define MUS_VS_GYM_LEADER 477 // MUS_BATTLE32
#define MUS_VS_CHAMPION 478 // MUS_BATTLE33
#define MUS_VS_REGI 479 // MUS_BATTLE36
#define MUS_VS_KYOGRE_GROUDON 480 // MUS_BATTLE34
#define MUS_VS_RIVAL 481 // MUS_BATTLE35
#define MUS_VS_ELITE_FOUR 482 // MUS_BATTLE38
#define MUS_VS_AQUA_MAGMA_LEADER 483 // MUS_BATTLE30
// FRLG Music
#define MUS_RG_FOLLOW_ME 484 // MUS_RG_ANNAI
#define MUS_RG_GAME_CORNER 485 // MUS_RG_SLOT
#define MUS_RG_ROCKET_HIDEOUT 486 // MUS_RG_AJITO
#define MUS_RG_GYM 487 // MUS_RG_GYM
#define MUS_RG_JIGGLYPUFF 488 // MUS_RG_PURIN
#define MUS_RG_INTRO_FIGHT 489 // MUS_RG_DEMO
#define MUS_RG_TITLE 490 // MUS_RG_TITLE
#define MUS_RG_CINNABAR 491 // MUS_RG_GUREN
#define MUS_RG_LAVENDER 492 // MUS_RG_SHION
#define MUS_RG_HEAL 493 // MUS_RG_KAIHUKU
#define MUS_RG_CYCLING 494 // MUS_RG_CYCLING
#define MUS_RG_ENCOUNTER_ROCKET 495 // MUS_RG_ROCKET
#define MUS_RG_ENCOUNTER_GIRL 496 // MUS_RG_SHOUJO
#define MUS_RG_ENCOUNTER_BOY 497 // MUS_RG_SHOUNEN
#define MUS_RG_HALL_OF_FAME 498 // MUS_RG_DENDOU
#define MUS_RG_VIRIDIAN_FOREST 499 // MUS_RG_T_MORI
#define MUS_RG_MT_MOON 500 // MUS_RG_OTSUKIMI
#define MUS_RG_POKE_MANSION 501 // MUS_RG_POKEYASHI
#define MUS_RG_CREDITS 502 // MUS_RG_ENDING
#define MUS_RG_ROUTE1 503 // MUS_RG_LOAD01
#define MUS_RG_ROUTE24 504 // MUS_RG_OPENING
#define MUS_RG_ROUTE3 505 // MUS_RG_LOAD02
#define MUS_RG_ROUTE11 506 // MUS_RG_LOAD03
#define MUS_RG_VICTORY_ROAD 507 // MUS_RG_CHAMP_R
#define MUS_RG_VS_GYM_LEADER 508 // MUS_RG_VS_GYM
#define MUS_RG_VS_TRAINER 509 // MUS_RG_VS_TORE
#define MUS_RG_VS_WILD 510 // MUS_RG_VS_YASEI
#define MUS_RG_VS_CHAMPION 511 // MUS_RG_VS_LAST
#define MUS_RG_PALLET 512 // MUS_RG_MASARA
#define MUS_RG_OAK_LAB 513 // MUS_RG_KENKYU
#define MUS_RG_OAK 514 // MUS_RG_OHKIDO
#define MUS_RG_POKE_CENTER 515 // MUS_RG_POKECEN
#define MUS_RG_SS_ANNE 516 // MUS_RG_SANTOAN
#define MUS_RG_SURF 517 // MUS_RG_NAMINORI
#define MUS_RG_POKE_TOWER 518 // MUS_RG_P_TOWER
#define MUS_RG_SILPH 519 // MUS_RG_SHIRUHU
#define MUS_RG_FUCHSIA 520 // MUS_RG_HANADA
#define MUS_RG_CELADON 521 // MUS_RG_TAMAMUSI
#define MUS_RG_VICTORY_TRAINER 522 // MUS_RG_WIN_TRE (Identical to MUS_VICTORY_TRAINER)
#define MUS_RG_VICTORY_WILD 523 // MUS_RG_WIN_YASEI (Identical to MUS_VICTORY_WILD)
#define MUS_RG_VICTORY_GYM_LEADER 524 // MUS_RG_WIN_GYM (Identical to MUS_VICTORY_GYM_LEADER)
#define MUS_RG_VERMILLION 525 // MUS_RG_KUCHIBA
#define MUS_RG_PEWTER 526 // MUS_RG_NIBI
#define MUS_RG_ENCOUNTER_RIVAL 527 // MUS_RG_RIVAL1
#define MUS_RG_RIVAL_EXIT 528 // MUS_RG_RIVAL2
#define MUS_RG_DEX_RATING 529 // MUS_RG_FAN2
#define MUS_RG_OBTAIN_KEY_ITEM 530 // MUS_RG_FAN5
#define MUS_RG_CAUGHT_INTRO 531 // MUS_RG_FAN6
#define MUS_RG_PHOTO 532 // MUS_ME_RG_PHOTO
#define MUS_RG_GAME_FREAK 533 // MUS_RG_TITLEROG
#define MUS_RG_CAUGHT 534 // MUS_RG_GET_YASEI
#define MUS_RG_NEW_GAME_INSTRUCT 535 // MUS_RG_SOUSA
#define MUS_RG_NEW_GAME_INTRO 536 // MUS_RG_SEKAIKAN
#define MUS_RG_NEW_GAME_EXIT 537 // MUS_RG_SEIBETU
#define MUS_RG_POKE_JUMP 538 // MUS_RG_JUMP
#define MUS_RG_UNION_ROOM 539 // MUS_RG_UNION
#define MUS_RG_NET_CENTER 540 // MUS_RG_NETWORK
#define MUS_RG_MYSTERY_GIFT 541 // MUS_RG_OKURIMONO
#define MUS_RG_BERRY_PICK 542 // MUS_RG_KINOMIKUI
#define MUS_RG_SEVII_CAVE 543 // MUS_RG_NANADUNGEON (Identical to MUS_RG_MT_MOON)
#define MUS_RG_TEACHY_TV_SHOW 544 // MUS_RG_OSHIE_TV (Identical to MUS_RG_FOLLOW_ME)
#define MUS_RG_SEVII_ROUTE 545 // MUS_RG_NANASHIMA
#define MUS_RG_SEVII_DUNGEON 546 // MUS_RG_NANAISEKI (Identical to MUS_RG_VIRIDIAN_FOREST)
#define MUS_RG_SEVII_123 547 // MUS_RG_NANA123 (Identical to MUS_RG_PEWTER)
#define MUS_RG_SEVII_45 548 // MUS_RG_NANA45
#define MUS_RG_SEVII_67 549 // MUS_RG_NANA67
#define MUS_RG_POKE_FLUTE 550 // MUS_RG_POKEFUE
#define MUS_RG_VS_DEOXYS 551 // MUS_RG_VS_DEO
#define MUS_RG_VS_MEWTWO 552 // MUS_RG_VS_MYU2
#define MUS_RG_VS_LEGEND 553 // MUS_RG_VS_DEN
#define MUS_RG_ENCOUNTER_GYM_LEADER 554 // MUS_RG_EXEYE
#define MUS_RG_ENCOUNTER_DEOXYS 555 // MUS_RG_DEOEYE
#define MUS_RG_TRAINER_TOWER 556 // MUS_RG_T_TOWER
#define MUS_RG_SLOW_PALLET 557 // MUS_RG_SLOWMASARA
#define MUS_RG_TEACHY_TV_MENU 558 // MUS_RG_TVNOIZE
#define PH_TRAP_BLEND 559
#define PH_TRAP_HELD 560
#define PH_TRAP_SOLO 561
#define PH_FACE_BLEND 562
#define PH_FACE_HELD 563
#define PH_FACE_SOLO 564
#define PH_CLOTH_BLEND 565
#define PH_CLOTH_HELD 566
#define PH_CLOTH_SOLO 567
#define PH_DRESS_BLEND 568
#define PH_DRESS_HELD 569
#define PH_DRESS_SOLO 570
#define PH_FLEECE_BLEND 571
#define PH_FLEECE_HELD 572
#define PH_FLEECE_SOLO 573
#define PH_KIT_BLEND 574
#define PH_KIT_HELD 575
#define PH_KIT_SOLO 576
#define PH_PRICE_BLEND 577
#define PH_PRICE_HELD 578
#define PH_PRICE_SOLO 579
#define PH_LOT_BLEND 580
#define PH_LOT_HELD 581
#define PH_LOT_SOLO 582
#define PH_GOAT_BLEND 583
#define PH_GOAT_HELD 584
#define PH_GOAT_SOLO 585
#define PH_THOUGHT_BLEND 586
#define PH_THOUGHT_HELD 587
#define PH_THOUGHT_SOLO 588
#define PH_CHOICE_BLEND 589
#define PH_CHOICE_HELD 590
#define PH_CHOICE_SOLO 591
#define PH_MOUTH_BLEND 592
#define PH_MOUTH_HELD 593
#define PH_MOUTH_SOLO 594
#define PH_FOOT_BLEND 595
#define PH_FOOT_HELD 596
#define PH_FOOT_SOLO 597
#define PH_GOOSE_BLEND 598
#define PH_GOOSE_HELD 599
#define PH_GOOSE_SOLO 600
#define PH_STRUT_BLEND 601
#define PH_STRUT_HELD 602
#define PH_STRUT_SOLO 603
#define PH_CURE_BLEND 604
#define PH_CURE_HELD 605
#define PH_CURE_SOLO 606
#define PH_NURSE_BLEND 607
#define PH_NURSE_HELD 608
#define PH_NURSE_SOLO 609
#define MUS_ROUTE118 0x7FFF // Map is split into 2 music sections. controlled by GetCurrLocationDefaultMusic().
#define MUS_NONE 0xFFFF
#endif // GUARD_CONSTANTS_SONGS_H

48
include/constants/sound.h Normal file
View File

@ -0,0 +1,48 @@
#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_AWAKEN_LEGEND 8
#define FANFARE_SLOTS_JACKPOT 9
#define FANFARE_SLOTS_WIN 10
#define FANFARE_TOO_BAD 11
#define FANFARE_RG_POKE_FLUTE 12
#define FANFARE_RG_OBTAIN_KEY_ITEM 13
#define FANFARE_RG_DEX_RATING 14
#define FANFARE_OBTAIN_B_POINTS 15
#define FANFARE_OBTAIN_SYMBOL 16
#define FANFARE_REGISTER_MATCH_CALL 17
#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

1293
include/constants/species.h Normal file
View File

@ -0,0 +1,1293 @@
#ifndef GUARD_CONSTANTS_SPECIES_H
#define GUARD_CONSTANTS_SPECIES_H
#define SPECIES_NONE 0
#define SPECIES_BULBASAUR 1
#define SPECIES_IVYSAUR 2
#define SPECIES_VENUSAUR 3
#define SPECIES_CHARMANDER 4
#define SPECIES_CHARMELEON 5
#define SPECIES_CHARIZARD 6
#define SPECIES_SQUIRTLE 7
#define SPECIES_WARTORTLE 8
#define SPECIES_BLASTOISE 9
#define SPECIES_CATERPIE 10
#define SPECIES_METAPOD 11
#define SPECIES_BUTTERFREE 12
#define SPECIES_WEEDLE 13
#define SPECIES_KAKUNA 14
#define SPECIES_BEEDRILL 15
#define SPECIES_PIDGEY 16
#define SPECIES_PIDGEOTTO 17
#define SPECIES_PIDGEOT 18
#define SPECIES_RATTATA 19
#define SPECIES_RATICATE 20
#define SPECIES_SPEAROW 21
#define SPECIES_FEAROW 22
#define SPECIES_EKANS 23
#define SPECIES_ARBOK 24
#define SPECIES_PIKACHU 25
#define SPECIES_RAICHU 26
#define SPECIES_SANDSHREW 27
#define SPECIES_SANDSLASH 28
#define SPECIES_NIDORAN_F 29
#define SPECIES_NIDORINA 30
#define SPECIES_NIDOQUEEN 31
#define SPECIES_NIDORAN_M 32
#define SPECIES_NIDORINO 33
#define SPECIES_NIDOKING 34
#define SPECIES_CLEFAIRY 35
#define SPECIES_CLEFABLE 36
#define SPECIES_VULPIX 37
#define SPECIES_NINETALES 38
#define SPECIES_JIGGLYPUFF 39
#define SPECIES_WIGGLYTUFF 40
#define SPECIES_ZUBAT 41
#define SPECIES_GOLBAT 42
#define SPECIES_ODDISH 43
#define SPECIES_GLOOM 44
#define SPECIES_VILEPLUME 45
#define SPECIES_PARAS 46
#define SPECIES_PARASECT 47
#define SPECIES_VENONAT 48
#define SPECIES_VENOMOTH 49
#define SPECIES_DIGLETT 50
#define SPECIES_DUGTRIO 51
#define SPECIES_MEOWTH 52
#define SPECIES_PERSIAN 53
#define SPECIES_PSYDUCK 54
#define SPECIES_GOLDUCK 55
#define SPECIES_MANKEY 56
#define SPECIES_PRIMEAPE 57
#define SPECIES_GROWLITHE 58
#define SPECIES_ARCANINE 59
#define SPECIES_POLIWAG 60
#define SPECIES_POLIWHIRL 61
#define SPECIES_POLIWRATH 62
#define SPECIES_ABRA 63
#define SPECIES_KADABRA 64
#define SPECIES_ALAKAZAM 65
#define SPECIES_MACHOP 66
#define SPECIES_MACHOKE 67
#define SPECIES_MACHAMP 68
#define SPECIES_BELLSPROUT 69
#define SPECIES_WEEPINBELL 70
#define SPECIES_VICTREEBEL 71
#define SPECIES_TENTACOOL 72
#define SPECIES_TENTACRUEL 73
#define SPECIES_GEODUDE 74
#define SPECIES_GRAVELER 75
#define SPECIES_GOLEM 76
#define SPECIES_PONYTA 77
#define SPECIES_RAPIDASH 78
#define SPECIES_SLOWPOKE 79
#define SPECIES_SLOWBRO 80
#define SPECIES_MAGNEMITE 81
#define SPECIES_MAGNETON 82
#define SPECIES_FARFETCHD 83
#define SPECIES_DODUO 84
#define SPECIES_DODRIO 85
#define SPECIES_SEEL 86
#define SPECIES_DEWGONG 87
#define SPECIES_GRIMER 88
#define SPECIES_MUK 89
#define SPECIES_SHELLDER 90
#define SPECIES_CLOYSTER 91
#define SPECIES_GASTLY 92
#define SPECIES_HAUNTER 93
#define SPECIES_GENGAR 94
#define SPECIES_ONIX 95
#define SPECIES_DROWZEE 96
#define SPECIES_HYPNO 97
#define SPECIES_KRABBY 98
#define SPECIES_KINGLER 99
#define SPECIES_VOLTORB 100
#define SPECIES_ELECTRODE 101
#define SPECIES_EXEGGCUTE 102
#define SPECIES_EXEGGUTOR 103
#define SPECIES_CUBONE 104
#define SPECIES_MAROWAK 105
#define SPECIES_HITMONLEE 106
#define SPECIES_HITMONCHAN 107
#define SPECIES_LICKITUNG 108
#define SPECIES_KOFFING 109
#define SPECIES_WEEZING 110
#define SPECIES_RHYHORN 111
#define SPECIES_RHYDON 112
#define SPECIES_CHANSEY 113
#define SPECIES_TANGELA 114
#define SPECIES_KANGASKHAN 115
#define SPECIES_HORSEA 116
#define SPECIES_SEADRA 117
#define SPECIES_GOLDEEN 118
#define SPECIES_SEAKING 119
#define SPECIES_STARYU 120
#define SPECIES_STARMIE 121
#define SPECIES_MR_MIME 122
#define SPECIES_SCYTHER 123
#define SPECIES_JYNX 124
#define SPECIES_ELECTABUZZ 125
#define SPECIES_MAGMAR 126
#define SPECIES_PINSIR 127
#define SPECIES_TAUROS 128
#define SPECIES_MAGIKARP 129
#define SPECIES_GYARADOS 130
#define SPECIES_LAPRAS 131
#define SPECIES_DITTO 132
#define SPECIES_EEVEE 133
#define SPECIES_VAPOREON 134
#define SPECIES_JOLTEON 135
#define SPECIES_FLAREON 136
#define SPECIES_PORYGON 137
#define SPECIES_OMANYTE 138
#define SPECIES_OMASTAR 139
#define SPECIES_KABUTO 140
#define SPECIES_KABUTOPS 141
#define SPECIES_AERODACTYL 142
#define SPECIES_SNORLAX 143
#define SPECIES_ARTICUNO 144
#define SPECIES_ZAPDOS 145
#define SPECIES_MOLTRES 146
#define SPECIES_DRATINI 147
#define SPECIES_DRAGONAIR 148
#define SPECIES_DRAGONITE 149
#define SPECIES_MEWTWO 150
#define SPECIES_MEW 151
#define SPECIES_CHIKORITA 152
#define SPECIES_BAYLEEF 153
#define SPECIES_MEGANIUM 154
#define SPECIES_CYNDAQUIL 155
#define SPECIES_QUILAVA 156
#define SPECIES_TYPHLOSION 157
#define SPECIES_TOTODILE 158
#define SPECIES_CROCONAW 159
#define SPECIES_FERALIGATR 160
#define SPECIES_SENTRET 161
#define SPECIES_FURRET 162
#define SPECIES_HOOTHOOT 163
#define SPECIES_NOCTOWL 164
#define SPECIES_LEDYBA 165
#define SPECIES_LEDIAN 166
#define SPECIES_SPINARAK 167
#define SPECIES_ARIADOS 168
#define SPECIES_CROBAT 169
#define SPECIES_CHINCHOU 170
#define SPECIES_LANTURN 171
#define SPECIES_PICHU 172
#define SPECIES_CLEFFA 173
#define SPECIES_IGGLYBUFF 174
#define SPECIES_TOGEPI 175
#define SPECIES_TOGETIC 176
#define SPECIES_NATU 177
#define SPECIES_XATU 178
#define SPECIES_MAREEP 179
#define SPECIES_FLAAFFY 180
#define SPECIES_AMPHAROS 181
#define SPECIES_BELLOSSOM 182
#define SPECIES_MARILL 183
#define SPECIES_AZUMARILL 184
#define SPECIES_SUDOWOODO 185
#define SPECIES_POLITOED 186
#define SPECIES_HOPPIP 187
#define SPECIES_SKIPLOOM 188
#define SPECIES_JUMPLUFF 189
#define SPECIES_AIPOM 190
#define SPECIES_SUNKERN 191
#define SPECIES_SUNFLORA 192
#define SPECIES_YANMA 193
#define SPECIES_WOOPER 194
#define SPECIES_QUAGSIRE 195
#define SPECIES_ESPEON 196
#define SPECIES_UMBREON 197
#define SPECIES_MURKROW 198
#define SPECIES_SLOWKING 199
#define SPECIES_MISDREAVUS 200
#define SPECIES_UNOWN 201
#define SPECIES_WOBBUFFET 202
#define SPECIES_GIRAFARIG 203
#define SPECIES_PINECO 204
#define SPECIES_FORRETRESS 205
#define SPECIES_DUNSPARCE 206
#define SPECIES_GLIGAR 207
#define SPECIES_STEELIX 208
#define SPECIES_SNUBBULL 209
#define SPECIES_GRANBULL 210
#define SPECIES_QWILFISH 211
#define SPECIES_SCIZOR 212
#define SPECIES_SHUCKLE 213
#define SPECIES_HERACROSS 214
#define SPECIES_SNEASEL 215
#define SPECIES_TEDDIURSA 216
#define SPECIES_URSARING 217
#define SPECIES_SLUGMA 218
#define SPECIES_MAGCARGO 219
#define SPECIES_SWINUB 220
#define SPECIES_PILOSWINE 221
#define SPECIES_CORSOLA 222
#define SPECIES_REMORAID 223
#define SPECIES_OCTILLERY 224
#define SPECIES_DELIBIRD 225
#define SPECIES_MANTINE 226
#define SPECIES_SKARMORY 227
#define SPECIES_HOUNDOUR 228
#define SPECIES_HOUNDOOM 229
#define SPECIES_KINGDRA 230
#define SPECIES_PHANPY 231
#define SPECIES_DONPHAN 232
#define SPECIES_PORYGON2 233
#define SPECIES_STANTLER 234
#define SPECIES_SMEARGLE 235
#define SPECIES_TYROGUE 236
#define SPECIES_HITMONTOP 237
#define SPECIES_SMOOCHUM 238
#define SPECIES_ELEKID 239
#define SPECIES_MAGBY 240
#define SPECIES_MILTANK 241
#define SPECIES_BLISSEY 242
#define SPECIES_RAIKOU 243
#define SPECIES_ENTEI 244
#define SPECIES_SUICUNE 245
#define SPECIES_LARVITAR 246
#define SPECIES_PUPITAR 247
#define SPECIES_TYRANITAR 248
#define SPECIES_LUGIA 249
#define SPECIES_HO_OH 250
#define SPECIES_CELEBI 251
#define SPECIES_OLD_UNOWN_B 252
#define SPECIES_OLD_UNOWN_C 253
#define SPECIES_OLD_UNOWN_D 254
#define SPECIES_OLD_UNOWN_E 255
#define SPECIES_OLD_UNOWN_F 256
#define SPECIES_OLD_UNOWN_G 257
#define SPECIES_OLD_UNOWN_H 258
#define SPECIES_OLD_UNOWN_I 259
#define SPECIES_OLD_UNOWN_J 260
#define SPECIES_OLD_UNOWN_K 261
#define SPECIES_OLD_UNOWN_L 262
#define SPECIES_OLD_UNOWN_M 263
#define SPECIES_OLD_UNOWN_N 264
#define SPECIES_OLD_UNOWN_O 265
#define SPECIES_OLD_UNOWN_P 266
#define SPECIES_OLD_UNOWN_Q 267
#define SPECIES_OLD_UNOWN_R 268
#define SPECIES_OLD_UNOWN_S 269
#define SPECIES_OLD_UNOWN_T 270
#define SPECIES_OLD_UNOWN_U 271
#define SPECIES_OLD_UNOWN_V 272
#define SPECIES_OLD_UNOWN_W 273
#define SPECIES_OLD_UNOWN_X 274
#define SPECIES_OLD_UNOWN_Y 275
#define SPECIES_OLD_UNOWN_Z 276
#define SPECIES_TREECKO 277
#define SPECIES_GROVYLE 278
#define SPECIES_SCEPTILE 279
#define SPECIES_TORCHIC 280
#define SPECIES_COMBUSKEN 281
#define SPECIES_BLAZIKEN 282
#define SPECIES_MUDKIP 283
#define SPECIES_MARSHTOMP 284
#define SPECIES_SWAMPERT 285
#define SPECIES_POOCHYENA 286
#define SPECIES_MIGHTYENA 287
#define SPECIES_ZIGZAGOON 288
#define SPECIES_LINOONE 289
#define SPECIES_WURMPLE 290
#define SPECIES_SILCOON 291
#define SPECIES_BEAUTIFLY 292
#define SPECIES_CASCOON 293
#define SPECIES_DUSTOX 294
#define SPECIES_LOTAD 295
#define SPECIES_LOMBRE 296
#define SPECIES_LUDICOLO 297
#define SPECIES_SEEDOT 298
#define SPECIES_NUZLEAF 299
#define SPECIES_SHIFTRY 300
#define SPECIES_NINCADA 301
#define SPECIES_NINJASK 302
#define SPECIES_SHEDINJA 303
#define SPECIES_TAILLOW 304
#define SPECIES_SWELLOW 305
#define SPECIES_SHROOMISH 306
#define SPECIES_BRELOOM 307
#define SPECIES_SPINDA 308
#define SPECIES_WINGULL 309
#define SPECIES_PELIPPER 310
#define SPECIES_SURSKIT 311
#define SPECIES_MASQUERAIN 312
#define SPECIES_WAILMER 313
#define SPECIES_WAILORD 314
#define SPECIES_SKITTY 315
#define SPECIES_DELCATTY 316
#define SPECIES_KECLEON 317
#define SPECIES_BALTOY 318
#define SPECIES_CLAYDOL 319
#define SPECIES_NOSEPASS 320
#define SPECIES_TORKOAL 321
#define SPECIES_SABLEYE 322
#define SPECIES_BARBOACH 323
#define SPECIES_WHISCASH 324
#define SPECIES_LUVDISC 325
#define SPECIES_CORPHISH 326
#define SPECIES_CRAWDAUNT 327
#define SPECIES_FEEBAS 328
#define SPECIES_MILOTIC 329
#define SPECIES_CARVANHA 330
#define SPECIES_SHARPEDO 331
#define SPECIES_TRAPINCH 332
#define SPECIES_VIBRAVA 333
#define SPECIES_FLYGON 334
#define SPECIES_MAKUHITA 335
#define SPECIES_HARIYAMA 336
#define SPECIES_ELECTRIKE 337
#define SPECIES_MANECTRIC 338
#define SPECIES_NUMEL 339
#define SPECIES_CAMERUPT 340
#define SPECIES_SPHEAL 341
#define SPECIES_SEALEO 342
#define SPECIES_WALREIN 343
#define SPECIES_CACNEA 344
#define SPECIES_CACTURNE 345
#define SPECIES_SNORUNT 346
#define SPECIES_GLALIE 347
#define SPECIES_LUNATONE 348
#define SPECIES_SOLROCK 349
#define SPECIES_AZURILL 350
#define SPECIES_SPOINK 351
#define SPECIES_GRUMPIG 352
#define SPECIES_PLUSLE 353
#define SPECIES_MINUN 354
#define SPECIES_MAWILE 355
#define SPECIES_MEDITITE 356
#define SPECIES_MEDICHAM 357
#define SPECIES_SWABLU 358
#define SPECIES_ALTARIA 359
#define SPECIES_WYNAUT 360
#define SPECIES_DUSKULL 361
#define SPECIES_DUSCLOPS 362
#define SPECIES_ROSELIA 363
#define SPECIES_SLAKOTH 364
#define SPECIES_VIGOROTH 365
#define SPECIES_SLAKING 366
#define SPECIES_GULPIN 367
#define SPECIES_SWALOT 368
#define SPECIES_TROPIUS 369
#define SPECIES_WHISMUR 370
#define SPECIES_LOUDRED 371
#define SPECIES_EXPLOUD 372
#define SPECIES_CLAMPERL 373
#define SPECIES_HUNTAIL 374
#define SPECIES_GOREBYSS 375
#define SPECIES_ABSOL 376
#define SPECIES_SHUPPET 377
#define SPECIES_BANETTE 378
#define SPECIES_SEVIPER 379
#define SPECIES_ZANGOOSE 380
#define SPECIES_RELICANTH 381
#define SPECIES_ARON 382
#define SPECIES_LAIRON 383
#define SPECIES_AGGRON 384
#define SPECIES_CASTFORM 385
#define SPECIES_VOLBEAT 386
#define SPECIES_ILLUMISE 387
#define SPECIES_LILEEP 388
#define SPECIES_CRADILY 389
#define SPECIES_ANORITH 390
#define SPECIES_ARMALDO 391
#define SPECIES_RALTS 392
#define SPECIES_KIRLIA 393
#define SPECIES_GARDEVOIR 394
#define SPECIES_BAGON 395
#define SPECIES_SHELGON 396
#define SPECIES_SALAMENCE 397
#define SPECIES_BELDUM 398
#define SPECIES_METANG 399
#define SPECIES_METAGROSS 400
#define SPECIES_REGIROCK 401
#define SPECIES_REGICE 402
#define SPECIES_REGISTEEL 403
#define SPECIES_KYOGRE 404
#define SPECIES_GROUDON 405
#define SPECIES_RAYQUAZA 406
#define SPECIES_LATIAS 407
#define SPECIES_LATIOS 408
#define SPECIES_JIRACHI 409
#define SPECIES_DEOXYS 410
#define SPECIES_CHIMECHO 411
#define SPECIES_EGG 412
#define NUM_SPECIES SPECIES_EGG
#define SPECIES_UNOWN_B (NUM_SPECIES + 1)
#define SPECIES_UNOWN_C (SPECIES_UNOWN_B + 1)
#define SPECIES_UNOWN_D (SPECIES_UNOWN_B + 2)
#define SPECIES_UNOWN_E (SPECIES_UNOWN_B + 3)
#define SPECIES_UNOWN_F (SPECIES_UNOWN_B + 4)
#define SPECIES_UNOWN_G (SPECIES_UNOWN_B + 5)
#define SPECIES_UNOWN_H (SPECIES_UNOWN_B + 6)
#define SPECIES_UNOWN_I (SPECIES_UNOWN_B + 7)
#define SPECIES_UNOWN_J (SPECIES_UNOWN_B + 8)
#define SPECIES_UNOWN_K (SPECIES_UNOWN_B + 9)
#define SPECIES_UNOWN_L (SPECIES_UNOWN_B + 10)
#define SPECIES_UNOWN_M (SPECIES_UNOWN_B + 11)
#define SPECIES_UNOWN_N (SPECIES_UNOWN_B + 12)
#define SPECIES_UNOWN_O (SPECIES_UNOWN_B + 13)
#define SPECIES_UNOWN_P (SPECIES_UNOWN_B + 14)
#define SPECIES_UNOWN_Q (SPECIES_UNOWN_B + 15)
#define SPECIES_UNOWN_R (SPECIES_UNOWN_B + 16)
#define SPECIES_UNOWN_S (SPECIES_UNOWN_B + 17)
#define SPECIES_UNOWN_T (SPECIES_UNOWN_B + 18)
#define SPECIES_UNOWN_U (SPECIES_UNOWN_B + 19)
#define SPECIES_UNOWN_V (SPECIES_UNOWN_B + 20)
#define SPECIES_UNOWN_W (SPECIES_UNOWN_B + 21)
#define SPECIES_UNOWN_X (SPECIES_UNOWN_B + 22)
#define SPECIES_UNOWN_Y (SPECIES_UNOWN_B + 23)
#define SPECIES_UNOWN_Z (SPECIES_UNOWN_B + 24)
#define SPECIES_UNOWN_EMARK (SPECIES_UNOWN_B + 25)
#define SPECIES_UNOWN_QMARK (SPECIES_UNOWN_B + 26)
// National Dex Index Defines
#define NATIONAL_DEX_NONE 0
#define NATIONAL_DEX_BULBASAUR 1
#define NATIONAL_DEX_IVYSAUR 2
#define NATIONAL_DEX_VENUSAUR 3
#define NATIONAL_DEX_CHARMANDER 4
#define NATIONAL_DEX_CHARMELEON 5
#define NATIONAL_DEX_CHARIZARD 6
#define NATIONAL_DEX_SQUIRTLE 7
#define NATIONAL_DEX_WARTORTLE 8
#define NATIONAL_DEX_BLASTOISE 9
#define NATIONAL_DEX_CATERPIE 10
#define NATIONAL_DEX_METAPOD 11
#define NATIONAL_DEX_BUTTERFREE 12
#define NATIONAL_DEX_WEEDLE 13
#define NATIONAL_DEX_KAKUNA 14
#define NATIONAL_DEX_BEEDRILL 15
#define NATIONAL_DEX_PIDGEY 16
#define NATIONAL_DEX_PIDGEOTTO 17
#define NATIONAL_DEX_PIDGEOT 18
#define NATIONAL_DEX_RATTATA 19
#define NATIONAL_DEX_RATICATE 20
#define NATIONAL_DEX_SPEAROW 21
#define NATIONAL_DEX_FEAROW 22
#define NATIONAL_DEX_EKANS 23
#define NATIONAL_DEX_ARBOK 24
#define NATIONAL_DEX_PIKACHU 25
#define NATIONAL_DEX_RAICHU 26
#define NATIONAL_DEX_SANDSHREW 27
#define NATIONAL_DEX_SANDSLASH 28
#define NATIONAL_DEX_NIDORAN_F 29
#define NATIONAL_DEX_NIDORINA 30
#define NATIONAL_DEX_NIDOQUEEN 31
#define NATIONAL_DEX_NIDORAN_M 32
#define NATIONAL_DEX_NIDORINO 33
#define NATIONAL_DEX_NIDOKING 34
#define NATIONAL_DEX_CLEFAIRY 35
#define NATIONAL_DEX_CLEFABLE 36
#define NATIONAL_DEX_VULPIX 37
#define NATIONAL_DEX_NINETALES 38
#define NATIONAL_DEX_JIGGLYPUFF 39
#define NATIONAL_DEX_WIGGLYTUFF 40
#define NATIONAL_DEX_ZUBAT 41
#define NATIONAL_DEX_GOLBAT 42
#define NATIONAL_DEX_ODDISH 43
#define NATIONAL_DEX_GLOOM 44
#define NATIONAL_DEX_VILEPLUME 45
#define NATIONAL_DEX_PARAS 46
#define NATIONAL_DEX_PARASECT 47
#define NATIONAL_DEX_VENONAT 48
#define NATIONAL_DEX_VENOMOTH 49
#define NATIONAL_DEX_DIGLETT 50
#define NATIONAL_DEX_DUGTRIO 51
#define NATIONAL_DEX_MEOWTH 52
#define NATIONAL_DEX_PERSIAN 53
#define NATIONAL_DEX_PSYDUCK 54
#define NATIONAL_DEX_GOLDUCK 55
#define NATIONAL_DEX_MANKEY 56
#define NATIONAL_DEX_PRIMEAPE 57
#define NATIONAL_DEX_GROWLITHE 58
#define NATIONAL_DEX_ARCANINE 59
#define NATIONAL_DEX_POLIWAG 60
#define NATIONAL_DEX_POLIWHIRL 61
#define NATIONAL_DEX_POLIWRATH 62
#define NATIONAL_DEX_ABRA 63
#define NATIONAL_DEX_KADABRA 64
#define NATIONAL_DEX_ALAKAZAM 65
#define NATIONAL_DEX_MACHOP 66
#define NATIONAL_DEX_MACHOKE 67
#define NATIONAL_DEX_MACHAMP 68
#define NATIONAL_DEX_BELLSPROUT 69
#define NATIONAL_DEX_WEEPINBELL 70
#define NATIONAL_DEX_VICTREEBEL 71
#define NATIONAL_DEX_TENTACOOL 72
#define NATIONAL_DEX_TENTACRUEL 73
#define NATIONAL_DEX_GEODUDE 74
#define NATIONAL_DEX_GRAVELER 75
#define NATIONAL_DEX_GOLEM 76
#define NATIONAL_DEX_PONYTA 77
#define NATIONAL_DEX_RAPIDASH 78
#define NATIONAL_DEX_SLOWPOKE 79
#define NATIONAL_DEX_SLOWBRO 80
#define NATIONAL_DEX_MAGNEMITE 81
#define NATIONAL_DEX_MAGNETON 82
#define NATIONAL_DEX_FARFETCHD 83
#define NATIONAL_DEX_DODUO 84
#define NATIONAL_DEX_DODRIO 85
#define NATIONAL_DEX_SEEL 86
#define NATIONAL_DEX_DEWGONG 87
#define NATIONAL_DEX_GRIMER 88
#define NATIONAL_DEX_MUK 89
#define NATIONAL_DEX_SHELLDER 90
#define NATIONAL_DEX_CLOYSTER 91
#define NATIONAL_DEX_GASTLY 92
#define NATIONAL_DEX_HAUNTER 93
#define NATIONAL_DEX_GENGAR 94
#define NATIONAL_DEX_ONIX 95
#define NATIONAL_DEX_DROWZEE 96
#define NATIONAL_DEX_HYPNO 97
#define NATIONAL_DEX_KRABBY 98
#define NATIONAL_DEX_KINGLER 99
#define NATIONAL_DEX_VOLTORB 100
#define NATIONAL_DEX_ELECTRODE 101
#define NATIONAL_DEX_EXEGGCUTE 102
#define NATIONAL_DEX_EXEGGUTOR 103
#define NATIONAL_DEX_CUBONE 104
#define NATIONAL_DEX_MAROWAK 105
#define NATIONAL_DEX_HITMONLEE 106
#define NATIONAL_DEX_HITMONCHAN 107
#define NATIONAL_DEX_LICKITUNG 108
#define NATIONAL_DEX_KOFFING 109
#define NATIONAL_DEX_WEEZING 110
#define NATIONAL_DEX_RHYHORN 111
#define NATIONAL_DEX_RHYDON 112
#define NATIONAL_DEX_CHANSEY 113
#define NATIONAL_DEX_TANGELA 114
#define NATIONAL_DEX_KANGASKHAN 115
#define NATIONAL_DEX_HORSEA 116
#define NATIONAL_DEX_SEADRA 117
#define NATIONAL_DEX_GOLDEEN 118
#define NATIONAL_DEX_SEAKING 119
#define NATIONAL_DEX_STARYU 120
#define NATIONAL_DEX_STARMIE 121
#define NATIONAL_DEX_MR_MIME 122
#define NATIONAL_DEX_SCYTHER 123
#define NATIONAL_DEX_JYNX 124
#define NATIONAL_DEX_ELECTABUZZ 125
#define NATIONAL_DEX_MAGMAR 126
#define NATIONAL_DEX_PINSIR 127
#define NATIONAL_DEX_TAUROS 128
#define NATIONAL_DEX_MAGIKARP 129
#define NATIONAL_DEX_GYARADOS 130
#define NATIONAL_DEX_LAPRAS 131
#define NATIONAL_DEX_DITTO 132
#define NATIONAL_DEX_EEVEE 133
#define NATIONAL_DEX_VAPOREON 134
#define NATIONAL_DEX_JOLTEON 135
#define NATIONAL_DEX_FLAREON 136
#define NATIONAL_DEX_PORYGON 137
#define NATIONAL_DEX_OMANYTE 138
#define NATIONAL_DEX_OMASTAR 139
#define NATIONAL_DEX_KABUTO 140
#define NATIONAL_DEX_KABUTOPS 141
#define NATIONAL_DEX_AERODACTYL 142
#define NATIONAL_DEX_SNORLAX 143
#define NATIONAL_DEX_ARTICUNO 144
#define NATIONAL_DEX_ZAPDOS 145
#define NATIONAL_DEX_MOLTRES 146
#define NATIONAL_DEX_DRATINI 147
#define NATIONAL_DEX_DRAGONAIR 148
#define NATIONAL_DEX_DRAGONITE 149
#define NATIONAL_DEX_MEWTWO 150
#define NATIONAL_DEX_MEW 151
#define KANTO_DEX_COUNT NATIONAL_DEX_MEW
#define NATIONAL_DEX_CHIKORITA 152
#define NATIONAL_DEX_BAYLEEF 153
#define NATIONAL_DEX_MEGANIUM 154
#define NATIONAL_DEX_CYNDAQUIL 155
#define NATIONAL_DEX_QUILAVA 156
#define NATIONAL_DEX_TYPHLOSION 157
#define NATIONAL_DEX_TOTODILE 158
#define NATIONAL_DEX_CROCONAW 159
#define NATIONAL_DEX_FERALIGATR 160
#define NATIONAL_DEX_SENTRET 161
#define NATIONAL_DEX_FURRET 162
#define NATIONAL_DEX_HOOTHOOT 163
#define NATIONAL_DEX_NOCTOWL 164
#define NATIONAL_DEX_LEDYBA 165
#define NATIONAL_DEX_LEDIAN 166
#define NATIONAL_DEX_SPINARAK 167
#define NATIONAL_DEX_ARIADOS 168
#define NATIONAL_DEX_CROBAT 169
#define NATIONAL_DEX_CHINCHOU 170
#define NATIONAL_DEX_LANTURN 171
#define NATIONAL_DEX_PICHU 172
#define NATIONAL_DEX_CLEFFA 173
#define NATIONAL_DEX_IGGLYBUFF 174
#define NATIONAL_DEX_TOGEPI 175
#define NATIONAL_DEX_TOGETIC 176
#define NATIONAL_DEX_NATU 177
#define NATIONAL_DEX_XATU 178
#define NATIONAL_DEX_MAREEP 179
#define NATIONAL_DEX_FLAAFFY 180
#define NATIONAL_DEX_AMPHAROS 181
#define NATIONAL_DEX_BELLOSSOM 182
#define NATIONAL_DEX_MARILL 183
#define NATIONAL_DEX_AZUMARILL 184
#define NATIONAL_DEX_SUDOWOODO 185
#define NATIONAL_DEX_POLITOED 186
#define NATIONAL_DEX_HOPPIP 187
#define NATIONAL_DEX_SKIPLOOM 188
#define NATIONAL_DEX_JUMPLUFF 189
#define NATIONAL_DEX_AIPOM 190
#define NATIONAL_DEX_SUNKERN 191
#define NATIONAL_DEX_SUNFLORA 192
#define NATIONAL_DEX_YANMA 193
#define NATIONAL_DEX_WOOPER 194
#define NATIONAL_DEX_QUAGSIRE 195
#define NATIONAL_DEX_ESPEON 196
#define NATIONAL_DEX_UMBREON 197
#define NATIONAL_DEX_MURKROW 198
#define NATIONAL_DEX_SLOWKING 199
#define NATIONAL_DEX_MISDREAVUS 200
#define NATIONAL_DEX_UNOWN 201
#define NATIONAL_DEX_WOBBUFFET 202
#define NATIONAL_DEX_GIRAFARIG 203
#define NATIONAL_DEX_PINECO 204
#define NATIONAL_DEX_FORRETRESS 205
#define NATIONAL_DEX_DUNSPARCE 206
#define NATIONAL_DEX_GLIGAR 207
#define NATIONAL_DEX_STEELIX 208
#define NATIONAL_DEX_SNUBBULL 209
#define NATIONAL_DEX_GRANBULL 210
#define NATIONAL_DEX_QWILFISH 211
#define NATIONAL_DEX_SCIZOR 212
#define NATIONAL_DEX_SHUCKLE 213
#define NATIONAL_DEX_HERACROSS 214
#define NATIONAL_DEX_SNEASEL 215
#define NATIONAL_DEX_TEDDIURSA 216
#define NATIONAL_DEX_URSARING 217
#define NATIONAL_DEX_SLUGMA 218
#define NATIONAL_DEX_MAGCARGO 219
#define NATIONAL_DEX_SWINUB 220
#define NATIONAL_DEX_PILOSWINE 221
#define NATIONAL_DEX_CORSOLA 222
#define NATIONAL_DEX_REMORAID 223
#define NATIONAL_DEX_OCTILLERY 224
#define NATIONAL_DEX_DELIBIRD 225
#define NATIONAL_DEX_MANTINE 226
#define NATIONAL_DEX_SKARMORY 227
#define NATIONAL_DEX_HOUNDOUR 228
#define NATIONAL_DEX_HOUNDOOM 229
#define NATIONAL_DEX_KINGDRA 230
#define NATIONAL_DEX_PHANPY 231
#define NATIONAL_DEX_DONPHAN 232
#define NATIONAL_DEX_PORYGON2 233
#define NATIONAL_DEX_STANTLER 234
#define NATIONAL_DEX_SMEARGLE 235
#define NATIONAL_DEX_TYROGUE 236
#define NATIONAL_DEX_HITMONTOP 237
#define NATIONAL_DEX_SMOOCHUM 238
#define NATIONAL_DEX_ELEKID 239
#define NATIONAL_DEX_MAGBY 240
#define NATIONAL_DEX_MILTANK 241
#define NATIONAL_DEX_BLISSEY 242
#define NATIONAL_DEX_RAIKOU 243
#define NATIONAL_DEX_ENTEI 244
#define NATIONAL_DEX_SUICUNE 245
#define NATIONAL_DEX_LARVITAR 246
#define NATIONAL_DEX_PUPITAR 247
#define NATIONAL_DEX_TYRANITAR 248
#define NATIONAL_DEX_LUGIA 249
#define NATIONAL_DEX_HO_OH 250
#define NATIONAL_DEX_CELEBI 251
#define JOHTO_DEX_COUNT NATIONAL_DEX_CELEBI
#define NATIONAL_DEX_TREECKO 252
#define NATIONAL_DEX_GROVYLE 253
#define NATIONAL_DEX_SCEPTILE 254
#define NATIONAL_DEX_TORCHIC 255
#define NATIONAL_DEX_COMBUSKEN 256
#define NATIONAL_DEX_BLAZIKEN 257
#define NATIONAL_DEX_MUDKIP 258
#define NATIONAL_DEX_MARSHTOMP 259
#define NATIONAL_DEX_SWAMPERT 260
#define NATIONAL_DEX_POOCHYENA 261
#define NATIONAL_DEX_MIGHTYENA 262
#define NATIONAL_DEX_ZIGZAGOON 263
#define NATIONAL_DEX_LINOONE 264
#define NATIONAL_DEX_WURMPLE 265
#define NATIONAL_DEX_SILCOON 266
#define NATIONAL_DEX_BEAUTIFLY 267
#define NATIONAL_DEX_CASCOON 268
#define NATIONAL_DEX_DUSTOX 269
#define NATIONAL_DEX_LOTAD 270
#define NATIONAL_DEX_LOMBRE 271
#define NATIONAL_DEX_LUDICOLO 272
#define NATIONAL_DEX_SEEDOT 273
#define NATIONAL_DEX_NUZLEAF 274
#define NATIONAL_DEX_SHIFTRY 275
#define NATIONAL_DEX_TAILLOW 276
#define NATIONAL_DEX_SWELLOW 277
#define NATIONAL_DEX_WINGULL 278
#define NATIONAL_DEX_PELIPPER 279
#define NATIONAL_DEX_RALTS 280
#define NATIONAL_DEX_KIRLIA 281
#define NATIONAL_DEX_GARDEVOIR 282
#define NATIONAL_DEX_SURSKIT 283
#define NATIONAL_DEX_MASQUERAIN 284
#define NATIONAL_DEX_SHROOMISH 285
#define NATIONAL_DEX_BRELOOM 286
#define NATIONAL_DEX_SLAKOTH 287
#define NATIONAL_DEX_VIGOROTH 288
#define NATIONAL_DEX_SLAKING 289
#define NATIONAL_DEX_NINCADA 290
#define NATIONAL_DEX_NINJASK 291
#define NATIONAL_DEX_SHEDINJA 292
#define NATIONAL_DEX_WHISMUR 293
#define NATIONAL_DEX_LOUDRED 294
#define NATIONAL_DEX_EXPLOUD 295
#define NATIONAL_DEX_MAKUHITA 296
#define NATIONAL_DEX_HARIYAMA 297
#define NATIONAL_DEX_AZURILL 298
#define NATIONAL_DEX_NOSEPASS 299
#define NATIONAL_DEX_SKITTY 300
#define NATIONAL_DEX_DELCATTY 301
#define NATIONAL_DEX_SABLEYE 302
#define NATIONAL_DEX_MAWILE 303
#define NATIONAL_DEX_ARON 304
#define NATIONAL_DEX_LAIRON 305
#define NATIONAL_DEX_AGGRON 306
#define NATIONAL_DEX_MEDITITE 307
#define NATIONAL_DEX_MEDICHAM 308
#define NATIONAL_DEX_ELECTRIKE 309
#define NATIONAL_DEX_MANECTRIC 310
#define NATIONAL_DEX_PLUSLE 311
#define NATIONAL_DEX_MINUN 312
#define NATIONAL_DEX_VOLBEAT 313
#define NATIONAL_DEX_ILLUMISE 314
#define NATIONAL_DEX_ROSELIA 315
#define NATIONAL_DEX_GULPIN 316
#define NATIONAL_DEX_SWALOT 317
#define NATIONAL_DEX_CARVANHA 318
#define NATIONAL_DEX_SHARPEDO 319
#define NATIONAL_DEX_WAILMER 320
#define NATIONAL_DEX_WAILORD 321
#define NATIONAL_DEX_NUMEL 322
#define NATIONAL_DEX_CAMERUPT 323
#define NATIONAL_DEX_TORKOAL 324
#define NATIONAL_DEX_SPOINK 325
#define NATIONAL_DEX_GRUMPIG 326
#define NATIONAL_DEX_SPINDA 327
#define NATIONAL_DEX_TRAPINCH 328
#define NATIONAL_DEX_VIBRAVA 329
#define NATIONAL_DEX_FLYGON 330
#define NATIONAL_DEX_CACNEA 331
#define NATIONAL_DEX_CACTURNE 332
#define NATIONAL_DEX_SWABLU 333
#define NATIONAL_DEX_ALTARIA 334
#define NATIONAL_DEX_ZANGOOSE 335
#define NATIONAL_DEX_SEVIPER 336
#define NATIONAL_DEX_LUNATONE 337
#define NATIONAL_DEX_SOLROCK 338
#define NATIONAL_DEX_BARBOACH 339
#define NATIONAL_DEX_WHISCASH 340
#define NATIONAL_DEX_CORPHISH 341
#define NATIONAL_DEX_CRAWDAUNT 342
#define NATIONAL_DEX_BALTOY 343
#define NATIONAL_DEX_CLAYDOL 344
#define NATIONAL_DEX_LILEEP 345
#define NATIONAL_DEX_CRADILY 346
#define NATIONAL_DEX_ANORITH 347
#define NATIONAL_DEX_ARMALDO 348
#define NATIONAL_DEX_FEEBAS 349
#define NATIONAL_DEX_MILOTIC 350
#define NATIONAL_DEX_CASTFORM 351
#define NATIONAL_DEX_KECLEON 352
#define NATIONAL_DEX_SHUPPET 353
#define NATIONAL_DEX_BANETTE 354
#define NATIONAL_DEX_DUSKULL 355
#define NATIONAL_DEX_DUSCLOPS 356
#define NATIONAL_DEX_TROPIUS 357
#define NATIONAL_DEX_CHIMECHO 358
#define NATIONAL_DEX_ABSOL 359
#define NATIONAL_DEX_WYNAUT 360
#define NATIONAL_DEX_SNORUNT 361
#define NATIONAL_DEX_GLALIE 362
#define NATIONAL_DEX_SPHEAL 363
#define NATIONAL_DEX_SEALEO 364
#define NATIONAL_DEX_WALREIN 365
#define NATIONAL_DEX_CLAMPERL 366
#define NATIONAL_DEX_HUNTAIL 367
#define NATIONAL_DEX_GOREBYSS 368
#define NATIONAL_DEX_RELICANTH 369
#define NATIONAL_DEX_LUVDISC 370
#define NATIONAL_DEX_BAGON 371
#define NATIONAL_DEX_SHELGON 372
#define NATIONAL_DEX_SALAMENCE 373
#define NATIONAL_DEX_BELDUM 374
#define NATIONAL_DEX_METANG 375
#define NATIONAL_DEX_METAGROSS 376
#define NATIONAL_DEX_REGIROCK 377
#define NATIONAL_DEX_REGICE 378
#define NATIONAL_DEX_REGISTEEL 379
#define NATIONAL_DEX_LATIAS 380
#define NATIONAL_DEX_LATIOS 381
#define NATIONAL_DEX_KYOGRE 382
#define NATIONAL_DEX_GROUDON 383
#define NATIONAL_DEX_RAYQUAZA 384
#define NATIONAL_DEX_JIRACHI 385
#define NATIONAL_DEX_DEOXYS 386
#define NATIONAL_DEX_COUNT NATIONAL_DEX_DEOXYS
#define NATIONAL_DEX_OLD_UNOWN_B (NATIONAL_DEX_COUNT + 1)
#define NATIONAL_DEX_OLD_UNOWN_C (NATIONAL_DEX_OLD_UNOWN_B + 1)
#define NATIONAL_DEX_OLD_UNOWN_D (NATIONAL_DEX_OLD_UNOWN_B + 2)
#define NATIONAL_DEX_OLD_UNOWN_E (NATIONAL_DEX_OLD_UNOWN_B + 3)
#define NATIONAL_DEX_OLD_UNOWN_F (NATIONAL_DEX_OLD_UNOWN_B + 4)
#define NATIONAL_DEX_OLD_UNOWN_G (NATIONAL_DEX_OLD_UNOWN_B + 5)
#define NATIONAL_DEX_OLD_UNOWN_H (NATIONAL_DEX_OLD_UNOWN_B + 6)
#define NATIONAL_DEX_OLD_UNOWN_I (NATIONAL_DEX_OLD_UNOWN_B + 7)
#define NATIONAL_DEX_OLD_UNOWN_J (NATIONAL_DEX_OLD_UNOWN_B + 8)
#define NATIONAL_DEX_OLD_UNOWN_K (NATIONAL_DEX_OLD_UNOWN_B + 9)
#define NATIONAL_DEX_OLD_UNOWN_L (NATIONAL_DEX_OLD_UNOWN_B + 10)
#define NATIONAL_DEX_OLD_UNOWN_M (NATIONAL_DEX_OLD_UNOWN_B + 11)
#define NATIONAL_DEX_OLD_UNOWN_N (NATIONAL_DEX_OLD_UNOWN_B + 12)
#define NATIONAL_DEX_OLD_UNOWN_O (NATIONAL_DEX_OLD_UNOWN_B + 13)
#define NATIONAL_DEX_OLD_UNOWN_P (NATIONAL_DEX_OLD_UNOWN_B + 14)
#define NATIONAL_DEX_OLD_UNOWN_Q (NATIONAL_DEX_OLD_UNOWN_B + 15)
#define NATIONAL_DEX_OLD_UNOWN_R (NATIONAL_DEX_OLD_UNOWN_B + 16)
#define NATIONAL_DEX_OLD_UNOWN_S (NATIONAL_DEX_OLD_UNOWN_B + 17)
#define NATIONAL_DEX_OLD_UNOWN_T (NATIONAL_DEX_OLD_UNOWN_B + 18)
#define NATIONAL_DEX_OLD_UNOWN_U (NATIONAL_DEX_OLD_UNOWN_B + 19)
#define NATIONAL_DEX_OLD_UNOWN_V (NATIONAL_DEX_OLD_UNOWN_B + 20)
#define NATIONAL_DEX_OLD_UNOWN_W (NATIONAL_DEX_OLD_UNOWN_B + 21)
#define NATIONAL_DEX_OLD_UNOWN_X (NATIONAL_DEX_OLD_UNOWN_B + 22)
#define NATIONAL_DEX_OLD_UNOWN_Y (NATIONAL_DEX_OLD_UNOWN_B + 23)
#define NATIONAL_DEX_OLD_UNOWN_Z (NATIONAL_DEX_OLD_UNOWN_B + 24)
// Hoenn Dex Index Defines
#define HOENN_DEX_NONE 0
#define HOENN_DEX_TREECKO 1
#define HOENN_DEX_GROVYLE 2
#define HOENN_DEX_SCEPTILE 3
#define HOENN_DEX_TORCHIC 4
#define HOENN_DEX_COMBUSKEN 5
#define HOENN_DEX_BLAZIKEN 6
#define HOENN_DEX_MUDKIP 7
#define HOENN_DEX_MARSHTOMP 8
#define HOENN_DEX_SWAMPERT 9
#define HOENN_DEX_POOCHYENA 10
#define HOENN_DEX_MIGHTYENA 11
#define HOENN_DEX_ZIGZAGOON 12
#define HOENN_DEX_LINOONE 13
#define HOENN_DEX_WURMPLE 14
#define HOENN_DEX_SILCOON 15
#define HOENN_DEX_BEAUTIFLY 16
#define HOENN_DEX_CASCOON 17
#define HOENN_DEX_DUSTOX 18
#define HOENN_DEX_LOTAD 19
#define HOENN_DEX_LOMBRE 20
#define HOENN_DEX_LUDICOLO 21
#define HOENN_DEX_SEEDOT 22
#define HOENN_DEX_NUZLEAF 23
#define HOENN_DEX_SHIFTRY 24
#define HOENN_DEX_TAILLOW 25
#define HOENN_DEX_SWELLOW 26
#define HOENN_DEX_WINGULL 27
#define HOENN_DEX_PELIPPER 28
#define HOENN_DEX_RALTS 29
#define HOENN_DEX_KIRLIA 30
#define HOENN_DEX_GARDEVOIR 31
#define HOENN_DEX_SURSKIT 32
#define HOENN_DEX_MASQUERAIN 33
#define HOENN_DEX_SHROOMISH 34
#define HOENN_DEX_BRELOOM 35
#define HOENN_DEX_SLAKOTH 36
#define HOENN_DEX_VIGOROTH 37
#define HOENN_DEX_SLAKING 38
#define HOENN_DEX_ABRA 39
#define HOENN_DEX_KADABRA 40
#define HOENN_DEX_ALAKAZAM 41
#define HOENN_DEX_NINCADA 42
#define HOENN_DEX_NINJASK 43
#define HOENN_DEX_SHEDINJA 44
#define HOENN_DEX_WHISMUR 45
#define HOENN_DEX_LOUDRED 46
#define HOENN_DEX_EXPLOUD 47
#define HOENN_DEX_MAKUHITA 48
#define HOENN_DEX_HARIYAMA 49
#define HOENN_DEX_GOLDEEN 50
#define HOENN_DEX_SEAKING 51
#define HOENN_DEX_MAGIKARP 52
#define HOENN_DEX_GYARADOS 53
#define HOENN_DEX_AZURILL 54
#define HOENN_DEX_MARILL 55
#define HOENN_DEX_AZUMARILL 56
#define HOENN_DEX_GEODUDE 57
#define HOENN_DEX_GRAVELER 58
#define HOENN_DEX_GOLEM 59
#define HOENN_DEX_NOSEPASS 60
#define HOENN_DEX_SKITTY 61
#define HOENN_DEX_DELCATTY 62
#define HOENN_DEX_ZUBAT 63
#define HOENN_DEX_GOLBAT 64
#define HOENN_DEX_CROBAT 65
#define HOENN_DEX_TENTACOOL 66
#define HOENN_DEX_TENTACRUEL 67
#define HOENN_DEX_SABLEYE 68
#define HOENN_DEX_MAWILE 69
#define HOENN_DEX_ARON 70
#define HOENN_DEX_LAIRON 71
#define HOENN_DEX_AGGRON 72
#define HOENN_DEX_MACHOP 73
#define HOENN_DEX_MACHOKE 74
#define HOENN_DEX_MACHAMP 75
#define HOENN_DEX_MEDITITE 76
#define HOENN_DEX_MEDICHAM 77
#define HOENN_DEX_ELECTRIKE 78
#define HOENN_DEX_MANECTRIC 79
#define HOENN_DEX_PLUSLE 80
#define HOENN_DEX_MINUN 81
#define HOENN_DEX_MAGNEMITE 82
#define HOENN_DEX_MAGNETON 83
#define HOENN_DEX_VOLTORB 84
#define HOENN_DEX_ELECTRODE 85
#define HOENN_DEX_VOLBEAT 86
#define HOENN_DEX_ILLUMISE 87
#define HOENN_DEX_ODDISH 88
#define HOENN_DEX_GLOOM 89
#define HOENN_DEX_VILEPLUME 90
#define HOENN_DEX_BELLOSSOM 91
#define HOENN_DEX_DODUO 92
#define HOENN_DEX_DODRIO 93
#define HOENN_DEX_ROSELIA 94
#define HOENN_DEX_GULPIN 95
#define HOENN_DEX_SWALOT 96
#define HOENN_DEX_CARVANHA 97
#define HOENN_DEX_SHARPEDO 98
#define HOENN_DEX_WAILMER 99
#define HOENN_DEX_WAILORD 100
#define HOENN_DEX_NUMEL 101
#define HOENN_DEX_CAMERUPT 102
#define HOENN_DEX_SLUGMA 103
#define HOENN_DEX_MAGCARGO 104
#define HOENN_DEX_TORKOAL 105
#define HOENN_DEX_GRIMER 106
#define HOENN_DEX_MUK 107
#define HOENN_DEX_KOFFING 108
#define HOENN_DEX_WEEZING 109
#define HOENN_DEX_SPOINK 110
#define HOENN_DEX_GRUMPIG 111
#define HOENN_DEX_SANDSHREW 112
#define HOENN_DEX_SANDSLASH 113
#define HOENN_DEX_SPINDA 114
#define HOENN_DEX_SKARMORY 115
#define HOENN_DEX_TRAPINCH 116
#define HOENN_DEX_VIBRAVA 117
#define HOENN_DEX_FLYGON 118
#define HOENN_DEX_CACNEA 119
#define HOENN_DEX_CACTURNE 120
#define HOENN_DEX_SWABLU 121
#define HOENN_DEX_ALTARIA 122
#define HOENN_DEX_ZANGOOSE 123
#define HOENN_DEX_SEVIPER 124
#define HOENN_DEX_LUNATONE 125
#define HOENN_DEX_SOLROCK 126
#define HOENN_DEX_BARBOACH 127
#define HOENN_DEX_WHISCASH 128
#define HOENN_DEX_CORPHISH 129
#define HOENN_DEX_CRAWDAUNT 130
#define HOENN_DEX_BALTOY 131
#define HOENN_DEX_CLAYDOL 132
#define HOENN_DEX_LILEEP 133
#define HOENN_DEX_CRADILY 134
#define HOENN_DEX_ANORITH 135
#define HOENN_DEX_ARMALDO 136
#define HOENN_DEX_IGGLYBUFF 137
#define HOENN_DEX_JIGGLYPUFF 138
#define HOENN_DEX_WIGGLYTUFF 139
#define HOENN_DEX_FEEBAS 140
#define HOENN_DEX_MILOTIC 141
#define HOENN_DEX_CASTFORM 142
#define HOENN_DEX_STARYU 143
#define HOENN_DEX_STARMIE 144
#define HOENN_DEX_KECLEON 145
#define HOENN_DEX_SHUPPET 146
#define HOENN_DEX_BANETTE 147
#define HOENN_DEX_DUSKULL 148
#define HOENN_DEX_DUSCLOPS 149
#define HOENN_DEX_TROPIUS 150
#define HOENN_DEX_CHIMECHO 151
#define HOENN_DEX_ABSOL 152
#define HOENN_DEX_VULPIX 153
#define HOENN_DEX_NINETALES 154
#define HOENN_DEX_PICHU 155
#define HOENN_DEX_PIKACHU 156
#define HOENN_DEX_RAICHU 157
#define HOENN_DEX_PSYDUCK 158
#define HOENN_DEX_GOLDUCK 159
#define HOENN_DEX_WYNAUT 160
#define HOENN_DEX_WOBBUFFET 161
#define HOENN_DEX_NATU 162
#define HOENN_DEX_XATU 163
#define HOENN_DEX_GIRAFARIG 164
#define HOENN_DEX_PHANPY 165
#define HOENN_DEX_DONPHAN 166
#define HOENN_DEX_PINSIR 167
#define HOENN_DEX_HERACROSS 168
#define HOENN_DEX_RHYHORN 169
#define HOENN_DEX_RHYDON 170
#define HOENN_DEX_SNORUNT 171
#define HOENN_DEX_GLALIE 172
#define HOENN_DEX_SPHEAL 173
#define HOENN_DEX_SEALEO 174
#define HOENN_DEX_WALREIN 175
#define HOENN_DEX_CLAMPERL 176
#define HOENN_DEX_HUNTAIL 177
#define HOENN_DEX_GOREBYSS 178
#define HOENN_DEX_RELICANTH 179
#define HOENN_DEX_CORSOLA 180
#define HOENN_DEX_CHINCHOU 181
#define HOENN_DEX_LANTURN 182
#define HOENN_DEX_LUVDISC 183
#define HOENN_DEX_HORSEA 184
#define HOENN_DEX_SEADRA 185
#define HOENN_DEX_KINGDRA 186
#define HOENN_DEX_BAGON 187
#define HOENN_DEX_SHELGON 188
#define HOENN_DEX_SALAMENCE 189
#define HOENN_DEX_BELDUM 190
#define HOENN_DEX_METANG 191
#define HOENN_DEX_METAGROSS 192
#define HOENN_DEX_REGIROCK 193
#define HOENN_DEX_REGICE 194
#define HOENN_DEX_REGISTEEL 195
#define HOENN_DEX_LATIAS 196
#define HOENN_DEX_LATIOS 197
#define HOENN_DEX_KYOGRE 198
#define HOENN_DEX_GROUDON 199
#define HOENN_DEX_RAYQUAZA 200
#define HOENN_DEX_JIRACHI 201
#define HOENN_DEX_DEOXYS 202
#define HOENN_DEX_COUNT HOENN_DEX_DEOXYS
#define HOENN_DEX_BULBASAUR 203
#define HOENN_DEX_IVYSAUR 204
#define HOENN_DEX_VENUSAUR 205
#define HOENN_DEX_CHARMANDER 206
#define HOENN_DEX_CHARMELEON 207
#define HOENN_DEX_CHARIZARD 208
#define HOENN_DEX_SQUIRTLE 209
#define HOENN_DEX_WARTORTLE 210
#define HOENN_DEX_BLASTOISE 211
#define HOENN_DEX_CATERPIE 212
#define HOENN_DEX_METAPOD 213
#define HOENN_DEX_BUTTERFREE 214
#define HOENN_DEX_WEEDLE 215
#define HOENN_DEX_KAKUNA 216
#define HOENN_DEX_BEEDRILL 217
#define HOENN_DEX_PIDGEY 218
#define HOENN_DEX_PIDGEOTTO 219
#define HOENN_DEX_PIDGEOT 220
#define HOENN_DEX_RATTATA 221
#define HOENN_DEX_RATICATE 222
#define HOENN_DEX_SPEAROW 223
#define HOENN_DEX_FEAROW 224
#define HOENN_DEX_EKANS 225
#define HOENN_DEX_ARBOK 226
#define HOENN_DEX_NIDORAN_F 227
#define HOENN_DEX_NIDORINA 228
#define HOENN_DEX_NIDOQUEEN 229
#define HOENN_DEX_NIDORAN_M 230
#define HOENN_DEX_NIDORINO 231
#define HOENN_DEX_NIDOKING 232
#define HOENN_DEX_CLEFAIRY 233
#define HOENN_DEX_CLEFABLE 234
#define HOENN_DEX_PARAS 235
#define HOENN_DEX_PARASECT 236
#define HOENN_DEX_VENONAT 237
#define HOENN_DEX_VENOMOTH 238
#define HOENN_DEX_DIGLETT 239
#define HOENN_DEX_DUGTRIO 240
#define HOENN_DEX_MEOWTH 241
#define HOENN_DEX_PERSIAN 242
#define HOENN_DEX_MANKEY 243
#define HOENN_DEX_PRIMEAPE 244
#define HOENN_DEX_GROWLITHE 245
#define HOENN_DEX_ARCANINE 246
#define HOENN_DEX_POLIWAG 247
#define HOENN_DEX_POLIWHIRL 248
#define HOENN_DEX_POLIWRATH 249
#define HOENN_DEX_BELLSPROUT 250
#define HOENN_DEX_WEEPINBELL 251
#define HOENN_DEX_VICTREEBEL 252
#define HOENN_DEX_PONYTA 253
#define HOENN_DEX_RAPIDASH 254
#define HOENN_DEX_SLOWPOKE 255
#define HOENN_DEX_SLOWBRO 256
#define HOENN_DEX_FARFETCHD 257
#define HOENN_DEX_SEEL 258
#define HOENN_DEX_DEWGONG 259
#define HOENN_DEX_SHELLDER 260
#define HOENN_DEX_CLOYSTER 261
#define HOENN_DEX_GASTLY 262
#define HOENN_DEX_HAUNTER 263
#define HOENN_DEX_GENGAR 264
#define HOENN_DEX_ONIX 265
#define HOENN_DEX_DROWZEE 266
#define HOENN_DEX_HYPNO 267
#define HOENN_DEX_KRABBY 268
#define HOENN_DEX_KINGLER 269
#define HOENN_DEX_EXEGGCUTE 270
#define HOENN_DEX_EXEGGUTOR 271
#define HOENN_DEX_CUBONE 272
#define HOENN_DEX_MAROWAK 273
#define HOENN_DEX_HITMONLEE 274
#define HOENN_DEX_HITMONCHAN 275
#define HOENN_DEX_LICKITUNG 276
#define HOENN_DEX_CHANSEY 277
#define HOENN_DEX_TANGELA 278
#define HOENN_DEX_KANGASKHAN 279
#define HOENN_DEX_MR_MIME 280
#define HOENN_DEX_SCYTHER 281
#define HOENN_DEX_JYNX 282
#define HOENN_DEX_ELECTABUZZ 283
#define HOENN_DEX_MAGMAR 284
#define HOENN_DEX_TAUROS 285
#define HOENN_DEX_LAPRAS 286
#define HOENN_DEX_DITTO 287
#define HOENN_DEX_EEVEE 288
#define HOENN_DEX_VAPOREON 289
#define HOENN_DEX_JOLTEON 290
#define HOENN_DEX_FLAREON 291
#define HOENN_DEX_PORYGON 292
#define HOENN_DEX_OMANYTE 293
#define HOENN_DEX_OMASTAR 294
#define HOENN_DEX_KABUTO 295
#define HOENN_DEX_KABUTOPS 296
#define HOENN_DEX_AERODACTYL 297
#define HOENN_DEX_SNORLAX 298
#define HOENN_DEX_ARTICUNO 299
#define HOENN_DEX_ZAPDOS 300
#define HOENN_DEX_MOLTRES 301
#define HOENN_DEX_DRATINI 302
#define HOENN_DEX_DRAGONAIR 303
#define HOENN_DEX_DRAGONITE 304
#define HOENN_DEX_MEWTWO 305
#define HOENN_DEX_MEW 306
#define HOENN_DEX_CHIKORITA 307
#define HOENN_DEX_BAYLEEF 308
#define HOENN_DEX_MEGANIUM 309
#define HOENN_DEX_CYNDAQUIL 310
#define HOENN_DEX_QUILAVA 311
#define HOENN_DEX_TYPHLOSION 312
#define HOENN_DEX_TOTODILE 313
#define HOENN_DEX_CROCONAW 314
#define HOENN_DEX_FERALIGATR 315
#define HOENN_DEX_SENTRET 316
#define HOENN_DEX_FURRET 317
#define HOENN_DEX_HOOTHOOT 318
#define HOENN_DEX_NOCTOWL 319
#define HOENN_DEX_LEDYBA 320
#define HOENN_DEX_LEDIAN 321
#define HOENN_DEX_SPINARAK 322
#define HOENN_DEX_ARIADOS 323
#define HOENN_DEX_CLEFFA 324
#define HOENN_DEX_TOGEPI 325
#define HOENN_DEX_TOGETIC 326
#define HOENN_DEX_MAREEP 327
#define HOENN_DEX_FLAAFFY 328
#define HOENN_DEX_AMPHAROS 329
#define HOENN_DEX_SUDOWOODO 330
#define HOENN_DEX_POLITOED 331
#define HOENN_DEX_HOPPIP 332
#define HOENN_DEX_SKIPLOOM 333
#define HOENN_DEX_JUMPLUFF 334
#define HOENN_DEX_AIPOM 335
#define HOENN_DEX_SUNKERN 336
#define HOENN_DEX_SUNFLORA 337
#define HOENN_DEX_YANMA 338
#define HOENN_DEX_WOOPER 339
#define HOENN_DEX_QUAGSIRE 340
#define HOENN_DEX_ESPEON 341
#define HOENN_DEX_UMBREON 342
#define HOENN_DEX_MURKROW 343
#define HOENN_DEX_SLOWKING 344
#define HOENN_DEX_MISDREAVUS 345
#define HOENN_DEX_UNOWN 346
#define HOENN_DEX_PINECO 347
#define HOENN_DEX_FORRETRESS 348
#define HOENN_DEX_DUNSPARCE 349
#define HOENN_DEX_GLIGAR 350
#define HOENN_DEX_STEELIX 351
#define HOENN_DEX_SNUBBULL 352
#define HOENN_DEX_GRANBULL 353
#define HOENN_DEX_QWILFISH 354
#define HOENN_DEX_SCIZOR 355
#define HOENN_DEX_SHUCKLE 356
#define HOENN_DEX_SNEASEL 357
#define HOENN_DEX_TEDDIURSA 358
#define HOENN_DEX_URSARING 359
#define HOENN_DEX_SWINUB 360
#define HOENN_DEX_PILOSWINE 361
#define HOENN_DEX_REMORAID 362
#define HOENN_DEX_OCTILLERY 363
#define HOENN_DEX_DELIBIRD 364
#define HOENN_DEX_MANTINE 365
#define HOENN_DEX_HOUNDOUR 366
#define HOENN_DEX_HOUNDOOM 367
#define HOENN_DEX_PORYGON2 368
#define HOENN_DEX_STANTLER 369
#define HOENN_DEX_SMEARGLE 370
#define HOENN_DEX_TYROGUE 371
#define HOENN_DEX_HITMONTOP 372
#define HOENN_DEX_SMOOCHUM 373
#define HOENN_DEX_ELEKID 374
#define HOENN_DEX_MAGBY 375
#define HOENN_DEX_MILTANK 376
#define HOENN_DEX_BLISSEY 377
#define HOENN_DEX_RAIKOU 378
#define HOENN_DEX_ENTEI 379
#define HOENN_DEX_SUICUNE 380
#define HOENN_DEX_LARVITAR 381
#define HOENN_DEX_PUPITAR 382
#define HOENN_DEX_TYRANITAR 383
#define HOENN_DEX_LUGIA 384
#define HOENN_DEX_HO_OH 385
#define HOENN_DEX_CELEBI 386
#define HOENN_DEX_OLD_UNOWN_B (HOENN_DEX_CELEBI + 1)
#define HOENN_DEX_OLD_UNOWN_C (HOENN_DEX_OLD_UNOWN_B + 1)
#define HOENN_DEX_OLD_UNOWN_D (HOENN_DEX_OLD_UNOWN_B + 2)
#define HOENN_DEX_OLD_UNOWN_E (HOENN_DEX_OLD_UNOWN_B + 3)
#define HOENN_DEX_OLD_UNOWN_F (HOENN_DEX_OLD_UNOWN_B + 4)
#define HOENN_DEX_OLD_UNOWN_G (HOENN_DEX_OLD_UNOWN_B + 5)
#define HOENN_DEX_OLD_UNOWN_H (HOENN_DEX_OLD_UNOWN_B + 6)
#define HOENN_DEX_OLD_UNOWN_I (HOENN_DEX_OLD_UNOWN_B + 7)
#define HOENN_DEX_OLD_UNOWN_J (HOENN_DEX_OLD_UNOWN_B + 8)
#define HOENN_DEX_OLD_UNOWN_K (HOENN_DEX_OLD_UNOWN_B + 9)
#define HOENN_DEX_OLD_UNOWN_L (HOENN_DEX_OLD_UNOWN_B + 10)
#define HOENN_DEX_OLD_UNOWN_M (HOENN_DEX_OLD_UNOWN_B + 11)
#define HOENN_DEX_OLD_UNOWN_N (HOENN_DEX_OLD_UNOWN_B + 12)
#define HOENN_DEX_OLD_UNOWN_O (HOENN_DEX_OLD_UNOWN_B + 13)
#define HOENN_DEX_OLD_UNOWN_P (HOENN_DEX_OLD_UNOWN_B + 14)
#define HOENN_DEX_OLD_UNOWN_Q (HOENN_DEX_OLD_UNOWN_B + 15)
#define HOENN_DEX_OLD_UNOWN_R (HOENN_DEX_OLD_UNOWN_B + 16)
#define HOENN_DEX_OLD_UNOWN_S (HOENN_DEX_OLD_UNOWN_B + 17)
#define HOENN_DEX_OLD_UNOWN_T (HOENN_DEX_OLD_UNOWN_B + 18)
#define HOENN_DEX_OLD_UNOWN_U (HOENN_DEX_OLD_UNOWN_B + 19)
#define HOENN_DEX_OLD_UNOWN_V (HOENN_DEX_OLD_UNOWN_B + 20)
#define HOENN_DEX_OLD_UNOWN_W (HOENN_DEX_OLD_UNOWN_B + 21)
#define HOENN_DEX_OLD_UNOWN_X (HOENN_DEX_OLD_UNOWN_B + 22)
#define HOENN_DEX_OLD_UNOWN_Y (HOENN_DEX_OLD_UNOWN_B + 23)
#define HOENN_DEX_OLD_UNOWN_Z (HOENN_DEX_OLD_UNOWN_B + 24)
#endif // GUARD_CONSTANTS_SPECIES_H

116
include/constants/trade.h Normal file
View File

@ -0,0 +1,116 @@
#ifndef GUARD_CONSTANTS_TRADE_H
#define GUARD_CONSTANTS_TRADE_H
#define TRADE_PLAYER 0
#define TRADE_PARTNER 1
#define LINK_TRADE_TIMEOUT 300
// In-game Trade IDs
#define INGAME_TRADE_SEEDOT 0
#define INGAME_TRADE_PLUSLE 1
#define INGAME_TRADE_HORSEA 2
#define INGAME_TRADE_MEOWTH 3
// Flag IDs for sending link data
#define INITIATE_TRADE 1
#define CANCEL_TRADE 2
#define WANTS_TO_TRADE 1
#define WANTS_TO_CANCEL 2
#define READY_FINISH_TRADE 1
#define FINISH_TRADE 2
// Return values for CanTradeSelectedMon and CanSpinTradeMon
#define CAN_TRADE_MON 0
#define CANT_TRADE_LAST_MON 1
#define CANT_TRADE_NATIONAL 2
#define CANT_TRADE_EGG_YET 3
#define CANT_TRADE_INVALID_MON 4
#define CANT_TRADE_EGG_YET2 5
// Return values for CheckValidityOfTradeMons
#define PLAYER_MON_INVALID 0
#define BOTH_MONS_VALID 1
#define PARTNER_MON_INVALID 2
// Return values for GetGameProgressForLinkTrade
#define TRADE_BOTH_PLAYERS_READY 0
#define TRADE_PLAYER_NOT_READY 1
#define TRADE_PARTNER_NOT_READY 2
// Indexes for sTradeActionTexts
#define TRADE_TEXT_CANCEL 0
#define TRADE_TEXT_CHOOSE_MON 1
#define TRADE_TEXT_SUMMARY 2
#define TRADE_TEXT_TRADE 3
#define TRADE_TEXT_CANCEL_TRADE 4
#define TRADE_TEXT_JP_QUIT 5
// Checked to confirm DrawTradeMenuParty has reached final state
#define DRAW_PARTY_FINISH 5
// Message indexes for sTradeMessages
#define TRADE_MSG_STANDBY 0
#define TRADE_MSG_CANCELED 1
#define TRADE_MSG_ONLY_MON1 2
#define TRADE_MSG_ONLY_MON2 3
#define TRADE_MSG_WAITING_FOR_FRIEND 4
#define TRADE_MSG_FRIEND_WANTS_TO_TRADE 5
#define TRADE_MSG_MON_CANT_BE_TRADED 6
#define TRADE_MSG_EGG_CANT_BE_TRADED 7
#define TRADE_MSG_FRIENDS_MON_CANT_BE_TRADED 8
// IDs for QueueAction
#define QUEUE_SEND_DATA 0
#define QUEUE_STANDBY 1
#define QUEUE_ONLY_MON1 2
#define QUEUE_ONLY_MON2 3
#define QUEUE_UNUSED1 4
#define QUEUE_UNUSED2 5
#define QUEUE_MON_CANT_BE_TRADED 6
#define QUEUE_EGG_CANT_BE_TRADED 7
#define QUEUE_FRIENDS_MON_CANT_BE_TRADED 8
#define QUEUE_DELAY_MSG 3
#define QUEUE_DELAY_DATA 5
// IDs for CallTradeMenuFunc
#define TRADEMENUFUNC_MAIN_MENU 0
#define TRADEMENUFUNC_SELECTED_MON 1
#define TRADEMENUFUNC_SHOW_MON_SUMMARY 2
#define TRADEMENUFUNC_CONFIRM_OR_CANCEL_TRADE 3
#define TRADEMENUFUNC_CANCEL_TRADE_PROMPT 4
#define TRADEMENUFUNC_UNUSED_5 5
#define TRADEMENUFUNC_BOTH_MONS_SELECTED 6
#define TRADEMENUFUNC_CONFIRM_TRADE_PROMPT 7
#define TRADEMENUFUNC_REDRAW_MAIN_MENU 8
#define TRADEMENUFUNC_LINK_TRADE_FADE_OUT 9
#define TRADEMENUFUNC_LINK_TRADE_WAIT_FADE 10
#define TRADEMENUFUNC_CANCEL_TRADE_1 11
#define TRADEMENUFUNC_CANCEL_TRADE_2 12
#define TRADEMENUFUNC_START_LINK_TRADE 13
#define TRADEMENUFUNC_DELAY_TRADE_CONFIRM 14
#define TRADEMENUFUNC_UNUSED_15 15
#define TRADEMENUFUNC_LINK_TRADE_WAIT_QUEUE 16
#define TRADEMENUFUNC_PARTNER_MON_INVALID 17
#define TRADEMENUFUNC_STANDBY 100
// Message indexes for sUnionRoomTradeMessages
#define UR_TRADE_MSG_NONE 0
#define UR_TRADE_MSG_NOT_MON_PARTNER_WANTS 1
#define UR_TRADE_MSG_NOT_EGG 2
#define UR_TRADE_MSG_MON_CANT_BE_TRADED_1 3
#define UR_TRADE_MSG_MON_CANT_BE_TRADED_2 4
#define UR_TRADE_MSG_PARTNERS_MON_CANT_BE_TRADED 5
#define UR_TRADE_MSG_EGG_CANT_BE_TRADED 6
#define UR_TRADE_MSG_PARTNER_CANT_ACCEPT_MON 7
#define UR_TRADE_MSG_CANT_TRADE_WITH_PARTNER_1 8
#define UR_TRADE_MSG_CANT_TRADE_WITH_PARTNER_2 9
// Return values for CanRegisterMonForTradingBoard
#define CAN_REGISTER_MON 0
#define CANT_REGISTER_MON 1
#define CANT_REGISTER_EGG 2
#endif //GUARD_CONSTANTS_TRADE_H

View File

@ -0,0 +1,49 @@
#ifndef GUARD_CONSTANTS_TRAINER_HILL_H
#define GUARD_CONSTANTS_TRAINER_HILL_H
#define TRAINER_HILL_1F 1
#define TRAINER_HILL_2F 2
#define TRAINER_HILL_3F 3
#define TRAINER_HILL_4F 4
#define TRAINER_HILL_ROOF 5
#define TRAINER_HILL_ENTRANCE 6
#define NUM_TRAINER_HILL_FLOORS 4
#define NUM_TRAINER_HILL_FLOORS_JP 2
#define NUM_TRAINER_HILL_PRIZE_LISTS 10
#define TRAINER_HILL_FUNC_START 0
#define TRAINER_HILL_FUNC_GET_OWNER_STATE 1
#define TRAINER_HILL_FUNC_GIVE_PRIZE 2
#define TRAINER_HILL_FUNC_CHECK_FINAL_TIME 3
#define TRAINER_HILL_FUNC_RESUME_TIMER 4
#define TRAINER_HILL_FUNC_SET_LOST 5
#define TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS 6
#define TRAINER_HILL_FUNC_GET_CHALLENGE_TIME 7
#define TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED 8
#define TRAINER_HILL_FUNC_GET_IN_EREADER_MODE 9
#define TRAINER_HILL_FUNC_IN_CHALLENGE 10
#define TRAINER_HILL_FUNC_POST_BATTLE_TEXT 11
#define TRAINER_HILL_FUNC_SET_ALL_TRAINER_FLAGS 12
#define TRAINER_HILL_FUNC_GET_GAME_SAVED 13
#define TRAINER_HILL_FUNC_SET_GAME_SAVED 14
#define TRAINER_HILL_FUNC_CLEAR_GAME_SAVED 15
#define TRAINER_HILL_FUNC_GET_WON 16
#define TRAINER_HILL_FUNC_SET_TAG 17
#define TRAINER_HILL_TEXT_INTRO 2
#define TRAINER_HILL_TEXT_PLAYER_LOST 3
#define TRAINER_HILL_TEXT_PLAYER_WON 4
#define TRAINER_HILL_TEXT_AFTER 5
#define TRAINER_HILL_TRAINERS_PER_FLOOR 2
#define NUM_TRAINER_HILL_TRAINERS (NUM_TRAINER_HILL_FLOORS * TRAINER_HILL_TRAINERS_PER_FLOOR)
#define NUM_TRAINER_HILL_TRAINERS_JP (NUM_TRAINER_HILL_FLOORS_JP * TRAINER_HILL_TRAINERS_PER_FLOOR)
// Values returned by TrainerHillGetChallengeStatus
#define TRAINER_HILL_PLAYER_STATUS_LOST 0
#define TRAINER_HILL_PLAYER_STATUS_ECARD_SCANNED 1
#define TRAINER_HILL_PLAYER_STATUS_NORMAL 2
#endif

View File

@ -0,0 +1,9 @@
#ifndef GUARD_CONSTANTS_TRAINER_TYPES_H
#define GUARD_CONSTANTS_TRAINER_TYPES_H
#define TRAINER_TYPE_NONE 0
#define TRAINER_TYPE_NORMAL 1
#define TRAINER_TYPE_SEE_ALL_DIRECTIONS 2
#define TRAINER_TYPE_BURIED 3
#endif // GUARD_CONSTANTS_TRAINER_TYPES_H

View File

@ -0,0 +1,378 @@
#ifndef GUARD_TRAINERS_H
#define GUARD_TRAINERS_H
#include "constants/opponents.h"
#include "constants/battle_frontier_trainers.h"
// Special Trainer Ids.
// 0-299 are frontier trainers
#define TRAINER_RECORD_MIXING_FRIEND FRONTIER_TRAINERS_COUNT
#define TRAINER_RECORD_MIXING_APPRENTICE 400
#define TRAINER_EREADER 500
#define TRAINER_FRONTIER_BRAIN 1022
#define TRAINER_PLAYER 1023
#define TRAINER_SECRET_BASE 1024
#define TRAINER_LINK_OPPONENT 2048
#define TRAINER_UNION_ROOM 3072
#define TRAINER_STEVEN_PARTNER 3075
#define TRAINER_PIC_HIKER 0
#define TRAINER_PIC_AQUA_GRUNT_M 1
#define TRAINER_PIC_POKEMON_BREEDER_F 2
#define TRAINER_PIC_COOLTRAINER_M 3
#define TRAINER_PIC_BIRD_KEEPER 4
#define TRAINER_PIC_COLLECTOR 5
#define TRAINER_PIC_AQUA_GRUNT_F 6
#define TRAINER_PIC_SWIMMER_M 7
#define TRAINER_PIC_MAGMA_GRUNT_M 8
#define TRAINER_PIC_EXPERT_M 9
#define TRAINER_PIC_AQUA_ADMIN_M 10
#define TRAINER_PIC_BLACK_BELT 11
#define TRAINER_PIC_AQUA_ADMIN_F 12
#define TRAINER_PIC_AQUA_LEADER_ARCHIE 13
#define TRAINER_PIC_HEX_MANIAC 14
#define TRAINER_PIC_AROMA_LADY 15
#define TRAINER_PIC_RUIN_MANIAC 16
#define TRAINER_PIC_INTERVIEWER 17
#define TRAINER_PIC_TUBER_F 18
#define TRAINER_PIC_TUBER_M 19
#define TRAINER_PIC_COOLTRAINER_F 20
#define TRAINER_PIC_LADY 21
#define TRAINER_PIC_BEAUTY 22
#define TRAINER_PIC_RICH_BOY 23
#define TRAINER_PIC_EXPERT_F 24
#define TRAINER_PIC_POKEMANIAC 25
#define TRAINER_PIC_MAGMA_GRUNT_F 26
#define TRAINER_PIC_GUITARIST 27
#define TRAINER_PIC_KINDLER 28
#define TRAINER_PIC_CAMPER 29
#define TRAINER_PIC_PICNICKER 30
#define TRAINER_PIC_BUG_MANIAC 31
#define TRAINER_PIC_POKEMON_BREEDER_M 32
#define TRAINER_PIC_PSYCHIC_M 33
#define TRAINER_PIC_PSYCHIC_F 34
#define TRAINER_PIC_GENTLEMAN 35
#define TRAINER_PIC_ELITE_FOUR_SIDNEY 36
#define TRAINER_PIC_ELITE_FOUR_PHOEBE 37
#define TRAINER_PIC_ELITE_FOUR_GLACIA 38
#define TRAINER_PIC_ELITE_FOUR_DRAKE 39
#define TRAINER_PIC_LEADER_ROXANNE 40
#define TRAINER_PIC_LEADER_BRAWLY 41
#define TRAINER_PIC_LEADER_WATTSON 42
#define TRAINER_PIC_LEADER_FLANNERY 43
#define TRAINER_PIC_LEADER_NORMAN 44
#define TRAINER_PIC_LEADER_WINONA 45
#define TRAINER_PIC_LEADER_TATE_AND_LIZA 46
#define TRAINER_PIC_LEADER_JUAN 47
#define TRAINER_PIC_SCHOOL_KID_M 48
#define TRAINER_PIC_SCHOOL_KID_F 49
#define TRAINER_PIC_SR_AND_JR 50
#define TRAINER_PIC_POKEFAN_M 51
#define TRAINER_PIC_POKEFAN_F 52
#define TRAINER_PIC_YOUNGSTER 53
#define TRAINER_PIC_CHAMPION_WALLACE 54
#define TRAINER_PIC_FISHERMAN 55
#define TRAINER_PIC_CYCLING_TRIATHLETE_M 56
#define TRAINER_PIC_CYCLING_TRIATHLETE_F 57
#define TRAINER_PIC_RUNNING_TRIATHLETE_M 58
#define TRAINER_PIC_RUNNING_TRIATHLETE_F 59
#define TRAINER_PIC_SWIMMING_TRIATHLETE_M 60
#define TRAINER_PIC_SWIMMING_TRIATHLETE_F 61
#define TRAINER_PIC_DRAGON_TAMER 62
#define TRAINER_PIC_NINJA_BOY 63
#define TRAINER_PIC_BATTLE_GIRL 64
#define TRAINER_PIC_PARASOL_LADY 65
#define TRAINER_PIC_SWIMMER_F 66
#define TRAINER_PIC_TWINS 67
#define TRAINER_PIC_SAILOR 68
#define TRAINER_PIC_MAGMA_ADMIN 69
#define TRAINER_PIC_WALLY 70
#define TRAINER_PIC_BRENDAN 71
#define TRAINER_PIC_MAY 72
#define TRAINER_PIC_BUG_CATCHER 73
#define TRAINER_PIC_POKEMON_RANGER_M 74
#define TRAINER_PIC_POKEMON_RANGER_F 75
#define TRAINER_PIC_MAGMA_LEADER_MAXIE 76
#define TRAINER_PIC_LASS 77
#define TRAINER_PIC_YOUNG_COUPLE 78
#define TRAINER_PIC_OLD_COUPLE 79
#define TRAINER_PIC_SIS_AND_BRO 80
#define TRAINER_PIC_STEVEN 81
#define TRAINER_PIC_SALON_MAIDEN_ANABEL 82
#define TRAINER_PIC_DOME_ACE_TUCKER 83
#define TRAINER_PIC_PALACE_MAVEN_SPENSER 84
#define TRAINER_PIC_ARENA_TYCOON_GRETA 85
#define TRAINER_PIC_FACTORY_HEAD_NOLAND 86
#define TRAINER_PIC_PIKE_QUEEN_LUCY 87
#define TRAINER_PIC_PYRAMID_KING_BRANDON 88
#define TRAINER_PIC_RED 89
#define TRAINER_PIC_LEAF 90
#define TRAINER_PIC_RS_BRENDAN 91
#define TRAINER_PIC_RS_MAY 92
// The player back pics are assumed to alternate according to the gender values (MALE/FEMALE)
#define TRAINER_BACK_PIC_BRENDAN 0
#define TRAINER_BACK_PIC_MAY 1
#define TRAINER_BACK_PIC_RED 2
#define TRAINER_BACK_PIC_LEAF 3
#define TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN 4
#define TRAINER_BACK_PIC_RUBY_SAPPHIRE_MAY 5
#define TRAINER_BACK_PIC_WALLY 6
#define TRAINER_BACK_PIC_STEVEN 7
#define FACILITY_CLASS_HIKER 0x0
#define FACILITY_CLASS_AQUA_GRUNT_M 0x1
#define FACILITY_CLASS_PKMN_BREEDER_F 0x2
#define FACILITY_CLASS_COOLTRAINER_M 0x3
#define FACILITY_CLASS_BIRD_KEEPER 0x4
#define FACILITY_CLASS_COLLECTOR 0x5
#define FACILITY_CLASS_AQUA_GRUNT_F 0x6
#define FACILITY_CLASS_SWIMMER_M 0x7
#define FACILITY_CLASS_MAGMA_GRUNT_M 0x8
#define FACILITY_CLASS_EXPERT_M 0x9
#define FACILITY_CLASS_BLACK_BELT 0xa
#define FACILITY_CLASS_AQUA_LEADER_ARCHIE 0xb
#define FACILITY_CLASS_HEX_MANIAC 0xc
#define FACILITY_CLASS_AROMA_LADY 0xd
#define FACILITY_CLASS_RUIN_MANIAC 0xe
#define FACILITY_CLASS_INTERVIEWER 0xf
#define FACILITY_CLASS_TUBER_F 0x10
#define FACILITY_CLASS_TUBER_M 0x11
#define FACILITY_CLASS_COOLTRAINER_F 0x12
#define FACILITY_CLASS_LADY 0x13
#define FACILITY_CLASS_BEAUTY 0x14
#define FACILITY_CLASS_RICH_BOY 0x15
#define FACILITY_CLASS_EXPERT_F 0x16
#define FACILITY_CLASS_POKEMANIAC 0x17
#define FACILITY_CLASS_MAGMA_GRUNT_F 0x18
#define FACILITY_CLASS_GUITARIST 0x19
#define FACILITY_CLASS_KINDLER 0x1a
#define FACILITY_CLASS_CAMPER 0x1b
#define FACILITY_CLASS_PICNICKER 0x1c
#define FACILITY_CLASS_BUG_MANIAC 0x1d
#define FACILITY_CLASS_PSYCHIC_M 0x1e
#define FACILITY_CLASS_PSYCHIC_F 0x1f
#define FACILITY_CLASS_GENTLEMAN 0x20
#define FACILITY_CLASS_ELITE_FOUR_SIDNEY 0x21
#define FACILITY_CLASS_ELITE_FOUR_PHOEBE 0x22
#define FACILITY_CLASS_LEADER_ROXANNE 0x23
#define FACILITY_CLASS_LEADER_BRAWLY 0x24
#define FACILITY_CLASS_LEADER_TATE_AND_LIZA 0x25
#define FACILITY_CLASS_SCHOOL_KID_M 0x26
#define FACILITY_CLASS_SCHOOL_KID_F 0x27
#define FACILITY_CLASS_SR_AND_JR 0x28
#define FACILITY_CLASS_POKEFAN_M 0x29
#define FACILITY_CLASS_POKEFAN_F 0x2a
#define FACILITY_CLASS_YOUNGSTER 0x2b
#define FACILITY_CLASS_CHAMPION_WALLACE 0x2c
#define FACILITY_CLASS_FISHERMAN 0x2d
#define FACILITY_CLASS_CYCLING_TRIATHLETE_M 0x2e
#define FACILITY_CLASS_CYCLING_TRIATHLETE_F 0x2f
#define FACILITY_CLASS_RUNNING_TRIATHLETE_M 0x30
#define FACILITY_CLASS_RUNNING_TRIATHLETE_F 0x31
#define FACILITY_CLASS_SWIMMING_TRIATHLETE_M 0x32
#define FACILITY_CLASS_SWIMMING_TRIATHLETE_F 0x33
#define FACILITY_CLASS_DRAGON_TAMER 0x34
#define FACILITY_CLASS_NINJA_BOY 0x35
#define FACILITY_CLASS_BATTLE_GIRL 0x36
#define FACILITY_CLASS_PARASOL_LADY 0x37
#define FACILITY_CLASS_SWIMMER_F 0x38
#define FACILITY_CLASS_TWINS 0x39
#define FACILITY_CLASS_SAILOR 0x3a
#define FACILITY_CLASS_WALLY 0x3b
#define FACILITY_CLASS_BRENDAN 0x3c
#define FACILITY_CLASS_BRENDAN_2 0x3d
#define FACILITY_CLASS_BRENDAN_3 0x3e
#define FACILITY_CLASS_MAY 0x3f
#define FACILITY_CLASS_MAY_2 0x40
#define FACILITY_CLASS_MAY_3 0x41
#define FACILITY_CLASS_PKMN_BREEDER_M 0x42
#define FACILITY_CLASS_BUG_CATCHER 0x43
#define FACILITY_CLASS_PKMN_RANGER_M 0x44
#define FACILITY_CLASS_PKMN_RANGER_F 0x45
#define FACILITY_CLASS_MAGMA_LEADER_MAXIE 0x46
#define FACILITY_CLASS_LASS 0x47
#define FACILITY_CLASS_YOUNG_COUPLE 0x48
#define FACILITY_CLASS_OLD_COUPLE 0x49
#define FACILITY_CLASS_SIS_AND_BRO 0x4a
#define FACILITY_CLASS_STEVEN 0x4b
#define FACILITY_CLASS_SALON_MAIDEN_ANABEL 0x4c
#define FACILITY_CLASS_DOME_ACE_TUCKER 0x4d
#define FACILITY_CLASS_RED 0x4e
#define FACILITY_CLASS_LEAF 0x4f
#define FACILITY_CLASS_RS_BRENDAN 0x50
#define FACILITY_CLASS_RS_MAY 0x51
#define FACILITY_CLASSES_COUNT 0x52
#define RS_FACILITY_CLASS_AQUA_LEADER_ARCHIE 0x0
#define RS_FACILITY_CLASS_AQUA_GRUNT_M 0x1
#define RS_FACILITY_CLASS_AQUA_GRUNT_F 0x2
#define RS_FACILITY_CLASS_AROMA_LADY 0x3
#define RS_FACILITY_CLASS_RUIN_MANIAC 0x4
#define RS_FACILITY_CLASS_INTERVIEWER 0x5
#define RS_FACILITY_CLASS_TUBER_F 0x6
#define RS_FACILITY_CLASS_TUBER_M 0x7
#define RS_FACILITY_CLASS_COOLTRAINER_M 0x8
#define RS_FACILITY_CLASS_COOLTRAINER_F 0x9
#define RS_FACILITY_CLASS_HEX_MANIAC 0xA
#define RS_FACILITY_CLASS_LADY 0xB
#define RS_FACILITY_CLASS_BEAUTY 0xC
#define RS_FACILITY_CLASS_RICH_BOY 0xD
#define RS_FACILITY_CLASS_POKEMANIAC 0xE
#define RS_FACILITY_CLASS_SWIMMER_M 0xF
#define RS_FACILITY_CLASS_BLACK_BELT 0x10
#define RS_FACILITY_CLASS_GUITARIST 0x11
#define RS_FACILITY_CLASS_KINDLER 0x12
#define RS_FACILITY_CLASS_CAMPER 0x13
#define RS_FACILITY_CLASS_BUG_MANIAC 0x14
#define RS_FACILITY_CLASS_PSYCHIC_M 0x15
#define RS_FACILITY_CLASS_PSYCHIC_F 0x16
#define RS_FACILITY_CLASS_GENTLEMAN 0x17
#define RS_FACILITY_CLASS_ELITE_FOUR_M 0x18
#define RS_FACILITY_CLASS_ELITE_FOUR_F 0x19
#define RS_FACILITY_CLASS_LEADER_F 0x1A
#define RS_FACILITY_CLASS_LEADER_M 0x1B
#define RS_FACILITY_CLASS_LEADER_MF 0x1C
#define RS_FACILITY_CLASS_SCHOOL_KID_M 0x1D
#define RS_FACILITY_CLASS_SCHOOL_KID_F 0x1E
#define RS_FACILITY_CLASS_SR_AND_JR 0x1F
#define RS_FACILITY_CLASS_POKEFAN_M 0x20
#define RS_FACILITY_CLASS_POKEFAN_F 0x21
#define RS_FACILITY_CLASS_EXPERT_M 0x22
#define RS_FACILITY_CLASS_EXPERT_F 0x23
#define RS_FACILITY_CLASS_YOUNGSTER 0x24
#define RS_FACILITY_CLASS_CHAMPION 0x25
#define RS_FACILITY_CLASS_FISHERMAN 0x26
#define RS_FACILITY_CLASS_CYCLING_TRIATHLETE_M 0x27
#define RS_FACILITY_CLASS_CYCLING_TRIATHLETE_F 0x28
#define RS_FACILITY_CLASS_RUNNING_TRIATHLETE_M 0x29
#define RS_FACILITY_CLASS_RUNNING_TRIATHLETE_F 0x2A
#define RS_FACILITY_CLASS_SWIMMING_TRIATHLETE_M 0x2B
#define RS_FACILITY_CLASS_SWIMMING_TRIATHLETE_F 0x2C
#define RS_FACILITY_CLASS_DRAGON_TAMER 0x2D
#define RS_FACILITY_CLASS_BIRD_KEEPER 0x2E
#define RS_FACILITY_CLASS_NINJA_BOY 0x2F
#define RS_FACILITY_CLASS_BATTLE_GIRL 0x30
#define RS_FACILITY_CLASS_PARASOL_LADY 0x31
#define RS_FACILITY_CLASS_SWIMMER_F 0x32
#define RS_FACILITY_CLASS_PICNICKER 0x33
#define RS_FACILITY_CLASS_TWINS 0x34
#define RS_FACILITY_CLASS_SAILOR 0x35
#define RS_FACILITY_CLASS_BOARDER_1 0x36
#define RS_FACILITY_CLASS_BOARDER_2 0x37
#define RS_FACILITY_CLASS_COLLECTOR 0x38
#define RS_FACILITY_CLASS_WALLY 0x39
#define RS_FACILITY_CLASS_BRENDAN_1 0x3A
#define RS_FACILITY_CLASS_BRENDAN_2 0x3B
#define RS_FACILITY_CLASS_BRENDAN_3 0x3C
#define RS_FACILITY_CLASS_MAY_1 0x3D
#define RS_FACILITY_CLASS_MAY_2 0x3E
#define RS_FACILITY_CLASS_MAY_3 0x3F
#define RS_FACILITY_CLASS_PKMN_BREEDER_M 0x40
#define RS_FACILITY_CLASS_PKMN_BREEDER_F 0x41
#define RS_FACILITY_CLASS_PKMN_RANGER_M 0x42
#define RS_FACILITY_CLASS_PKMN_RANGER_F 0x43
#define RS_FACILITY_CLASS_MAGMA_LEADER 0x44
#define RS_FACILITY_CLASS_MAGMA_GRUNT_M 0x45
#define RS_FACILITY_CLASS_MAGMA_GRUNT_F 0x46
#define RS_FACILITY_CLASS_LASS 0x47
#define RS_FACILITY_CLASS_BUG_CATCHER 0x48
#define RS_FACILITY_CLASS_HIKER 0x49
#define RS_FACILITY_CLASS_YOUNG_COUPLE 0x4A
#define RS_FACILITY_CLASS_OLD_COUPLE 0x4B
#define RS_FACILITY_CLASS_SIS_AND_BRO 0x4C
#define RS_FACILITY_CLASSES_COUNT 0x4D
#define TRAINER_CLASS_PKMN_TRAINER_1 0x0 // Unused
#define TRAINER_CLASS_PKMN_TRAINER_2 0x1 // Unused
#define TRAINER_CLASS_HIKER 0x2
#define TRAINER_CLASS_TEAM_AQUA 0x3
#define TRAINER_CLASS_PKMN_BREEDER 0x4
#define TRAINER_CLASS_COOLTRAINER 0x5
#define TRAINER_CLASS_BIRD_KEEPER 0x6
#define TRAINER_CLASS_COLLECTOR 0x7
#define TRAINER_CLASS_SWIMMER_M 0x8
#define TRAINER_CLASS_TEAM_MAGMA 0x9
#define TRAINER_CLASS_EXPERT 0xa
#define TRAINER_CLASS_AQUA_ADMIN 0xb
#define TRAINER_CLASS_BLACK_BELT 0xc
#define TRAINER_CLASS_AQUA_LEADER 0xd
#define TRAINER_CLASS_HEX_MANIAC 0xe
#define TRAINER_CLASS_AROMA_LADY 0xf
#define TRAINER_CLASS_RUIN_MANIAC 0x10
#define TRAINER_CLASS_INTERVIEWER 0x11
#define TRAINER_CLASS_TUBER_F 0x12
#define TRAINER_CLASS_TUBER_M 0x13
#define TRAINER_CLASS_LADY 0x14
#define TRAINER_CLASS_BEAUTY 0x15
#define TRAINER_CLASS_RICH_BOY 0x16
#define TRAINER_CLASS_POKEMANIAC 0x17
#define TRAINER_CLASS_GUITARIST 0x18
#define TRAINER_CLASS_KINDLER 0x19
#define TRAINER_CLASS_CAMPER 0x1a
#define TRAINER_CLASS_PICNICKER 0x1b
#define TRAINER_CLASS_BUG_MANIAC 0x1c
#define TRAINER_CLASS_PSYCHIC 0x1d
#define TRAINER_CLASS_GENTLEMAN 0x1e
#define TRAINER_CLASS_ELITE_FOUR 0x1f
#define TRAINER_CLASS_LEADER 0x20
#define TRAINER_CLASS_SCHOOL_KID 0x21
#define TRAINER_CLASS_SR_AND_JR 0x22
#define TRAINER_CLASS_WINSTRATE 0x23
#define TRAINER_CLASS_POKEFAN 0x24
#define TRAINER_CLASS_YOUNGSTER 0x25
#define TRAINER_CLASS_CHAMPION 0x26
#define TRAINER_CLASS_FISHERMAN 0x27
#define TRAINER_CLASS_TRIATHLETE 0x28
#define TRAINER_CLASS_DRAGON_TAMER 0x29
#define TRAINER_CLASS_NINJA_BOY 0x2a
#define TRAINER_CLASS_BATTLE_GIRL 0x2b
#define TRAINER_CLASS_PARASOL_LADY 0x2c
#define TRAINER_CLASS_SWIMMER_F 0x2d
#define TRAINER_CLASS_TWINS 0x2e
#define TRAINER_CLASS_SAILOR 0x2f
#define TRAINER_CLASS_COOLTRAINER_2 0x30 // Used for only one trainer.
#define TRAINER_CLASS_MAGMA_ADMIN 0x31
#define TRAINER_CLASS_RIVAL 0x32
#define TRAINER_CLASS_BUG_CATCHER 0x33
#define TRAINER_CLASS_PKMN_RANGER 0x34
#define TRAINER_CLASS_MAGMA_LEADER 0x35
#define TRAINER_CLASS_LASS 0x36
#define TRAINER_CLASS_YOUNG_COUPLE 0x37
#define TRAINER_CLASS_OLD_COUPLE 0x38
#define TRAINER_CLASS_SIS_AND_BRO 0x39
#define TRAINER_CLASS_SALON_MAIDEN 0x3a
#define TRAINER_CLASS_DOME_ACE 0x3b
#define TRAINER_CLASS_PALACE_MAVEN 0x3c
#define TRAINER_CLASS_ARENA_TYCOON 0x3d
#define TRAINER_CLASS_FACTORY_HEAD 0x3e
#define TRAINER_CLASS_PIKE_QUEEN 0x3f
#define TRAINER_CLASS_PYRAMID_KING 0x40
#define TRAINER_CLASS_RS_PROTAG 0x41
#define TRAINER_ENCOUNTER_MUSIC_MALE 0 // standard male encounter music
#define TRAINER_ENCOUNTER_MUSIC_FEMALE 1 // standard female encounter music
#define TRAINER_ENCOUNTER_MUSIC_GIRL 2 // used for male Tubers and Young Couples too
#define TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS 3
#define TRAINER_ENCOUNTER_MUSIC_INTENSE 4
#define TRAINER_ENCOUNTER_MUSIC_COOL 5
#define TRAINER_ENCOUNTER_MUSIC_AQUA 6
#define TRAINER_ENCOUNTER_MUSIC_MAGMA 7
#define TRAINER_ENCOUNTER_MUSIC_SWIMMER 8
#define TRAINER_ENCOUNTER_MUSIC_TWINS 9 // used for other trainer classes too
#define TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR 10
#define TRAINER_ENCOUNTER_MUSIC_HIKER 11 // used for other trainer classes too
#define TRAINER_ENCOUNTER_MUSIC_INTERVIEWER 12
#define TRAINER_ENCOUNTER_MUSIC_RICH 13 // Rich Boys and Gentlemen
#define F_TRAINER_FEMALE (1 << 7)
// All trainer parties specify the IV, level, and species for each Pokémon in the
// party. Some trainer parties also specify held items and custom moves for each
// Pokémon.
#define F_TRAINER_PARTY_CUSTOM_MOVESET (1 << 0)
#define F_TRAINER_PARTY_HELD_ITEM (1 << 1)
#endif // GUARD_TRAINERS_H

277
include/constants/tv.h Normal file
View File

@ -0,0 +1,277 @@
#ifndef GUARD_CONSTANTS_TV_H
#define GUARD_CONSTANTS_TV_H
#define POKENEWS_NONE 0
#define POKENEWS_SLATEPORT 1
#define POKENEWS_GAME_CORNER 2
#define POKENEWS_LILYCOVE 3
#define POKENEWS_BLENDMASTER 4
#define NUM_POKENEWS_TYPES 4 // Excludes NONE
#define POKENEWS_STATE_INACTIVE 0
#define POKENEWS_STATE_UPCOMING 1
#define POKENEWS_STATE_ACTIVE 2
// Number of days to count down until the news event occurs.
// Nothing is aired on TV the first day
#define POKENEWS_COUNTDOWN 4
// TV shows are categorized as being in one of 3 groups
// - TVGROUP_NORMAL, TV shows that can appear without Record Mixing
// - TVGROUP_RECORD_MIX, TV shows that can only appear via Record Mixing
// - TVGROUP_OUTBREAK, just contains TVSHOW_MASS_OUTBREAK
// Each group was allotted 20 spaces arbitrarily, though none use all 20
#define TVSHOW_OFF_AIR 0
// TVGROUP_NORMAL
#define TVGROUP_NORMAL_START 1
#define TVSHOW_FAN_CLUB_LETTER 1
#define TVSHOW_RECENT_HAPPENINGS 2
#define TVSHOW_PKMN_FAN_CLUB_OPINIONS 3
#define TVSHOW_DUMMY 4
#define TVSHOW_NAME_RATER_SHOW 5
#define TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE 6
#define TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE 7
#define TVSHOW_CONTEST_LIVE_UPDATES 8
#define TVSHOW_3_CHEERS_FOR_POKEBLOCKS 9
#define TVSHOW_BATTLE_UPDATE 10
#define TVSHOW_FAN_CLUB_SPECIAL 11
#define TVSHOW_LILYCOVE_CONTEST_LADY 12
//
#define TVGROUP_NORMAL_END 20
// TVGROUP_RECORD_MIX
#define TVGROUP_RECORD_MIX_START 21
#define TVSHOW_POKEMON_TODAY_CAUGHT 21
#define TVSHOW_SMART_SHOPPER 22
#define TVSHOW_POKEMON_TODAY_FAILED 23
#define TVSHOW_FISHING_ADVICE 24
#define TVSHOW_WORLD_OF_MASTERS 25
#define TVSHOW_TODAYS_RIVAL_TRAINER 26
#define TVSHOW_TREND_WATCHER 27
#define TVSHOW_TREASURE_INVESTIGATORS 28
#define TVSHOW_FIND_THAT_GAMER 29
#define TVSHOW_BREAKING_NEWS 30
#define TVSHOW_SECRET_BASE_VISIT 31
#define TVSHOW_LOTTO_WINNER 32
#define TVSHOW_BATTLE_SEMINAR 33
#define TVSHOW_TRAINER_FAN_CLUB 34
#define TVSHOW_CUTIES 35
#define TVSHOW_FRONTIER 36
#define TVSHOW_NUMBER_ONE 37
#define TVSHOW_SECRET_BASE_SECRETS 38
#define TVSHOW_SAFARI_FAN_CLUB 39
#define TVGROUP_RECORD_MIX_END 40
// TVGROUP_OUTBREAK
#define TVGROUP_OUTBREAK_START 41
#define TVSHOW_MASS_OUTBREAK 41
//
#define TVGROUP_OUTBREAK_END 60
// The first 5 elements of gSaveBlock1Ptr->tvShows are reserved
// for TV shows from TVGROUP_NORMAL. The remainder are for TV
// shows from TVGROUP_RECORD_MIX.
#define NUM_NORMAL_TVSHOW_SLOTS 5
#define PLAYERS_HOUSE_TV_NONE 0
#define PLAYERS_HOUSE_TV_LATI 1
#define PLAYERS_HOUSE_TV_MOVIE 2
// Number of ribbons to put Spot the Cuties on air
#define NUM_CUTIES_RIBBONS 4
// TV Show states for Secret Base Secrets
#define SBSECRETS_STATE_INTRO 0
#define SBSECRETS_STATE_DO_NEXT1 1
#define SBSECRETS_STATE_DO_NEXT2 2
#define SBSECRETS_STATE_TOOK_X_STEPS 3
#define SBSECRETS_STATE_BASE_INTEREST_LOW 4
#define SBSECRETS_STATE_BASE_INTEREST_MED 5
#define SBSECRETS_STATE_BASE_INTEREST_HIGH 6
#define SBSECRETS_STATE_OUTRO 7
#define SBSECRETS_STATE_NOTHING_USED1 8
#define SBSECRETS_STATE_NOTHING_USED2 9
#define SBSECRETS_STATE_USED_CHAIR 10
#define SBSECRETS_STATE_USED_BALLOON 11
#define SBSECRETS_STATE_USED_TENT 12
#define SBSECRETS_STATE_USED_PLANT 13
#define SBSECRETS_STATE_USED_GOLD_SHIELD 14
#define SBSECRETS_STATE_USED_SILVER_SHIELD 15
#define SBSECRETS_STATE_USED_GLASS_ORNAMENT 16
#define SBSECRETS_STATE_USED_TV 17
#define SBSECRETS_STATE_USED_MUD_BALL 18
#define SBSECRETS_STATE_USED_BAG 19
#define SBSECRETS_STATE_USED_CUSHION 20
#define SBSECRETS_STATE_HIT_CUSHION 21
#define SBSECRETS_STATE_HUGGED_CUSHION 22
#define SBSECRETS_STATE_BATTLED_WON 23
#define SBSECRETS_STATE_BATTLED_LOST 24
#define SBSECRETS_STATE_DECLINED_BATTLE 25
#define SBSECRETS_STATE_USED_POSTER 26
#define SBSECRETS_STATE_USED_NOTE_MAT 27
#define SBSECRETS_STATE_BATTLED_DRAW 28
#define SBSECRETS_STATE_USED_SPIN_MAT 29
#define SBSECRETS_STATE_USED_SAND_ORNAMENT 30
#define SBSECRETS_STATE_USED_DESK 31
#define SBSECRETS_STATE_USED_BRICK 32
#define SBSECRETS_STATE_USED_SOLID_BOARD 33
#define SBSECRETS_STATE_USED_FENCE 34
#define SBSECRETS_STATE_USED_GLITTER_MAT 35
#define SBSECRETS_STATE_USED_TIRE 36
#define SBSECRETS_STATE_USED_STAND 37
#define SBSECRETS_STATE_USED_BREAKABLE_DOOR 38
#define SBSECRETS_STATE_USED_DOLL 39
#define SBSECRETS_STATE_USED_SLIDE 40
#define SBSECRETS_STATE_DECLINED_SLIDE 41
#define SBSECRETS_STATE_USED_JUMP_MAT 42
#define SBSECRETS_NUM_STATES 43
// The below flags are set when interacting with objects in a friends secret base
// Theyre set as bits in a var, and with 32 flags they're spread across 2 vars
// VAR_SECRET_BASE_LOW_TV_FLAGS
#define SECRET_BASE_USED_CHAIR (1 << 0)
#define SECRET_BASE_USED_BALLOON (1 << 1)
#define SECRET_BASE_USED_TENT (1 << 2)
#define SECRET_BASE_USED_PLANT (1 << 3)
#define SECRET_BASE_USED_GOLD_SHIELD (1 << 4)
#define SECRET_BASE_USED_SILVER_SHIELD (1 << 5)
#define SECRET_BASE_USED_GLASS_ORNAMENT (1 << 6)
#define SECRET_BASE_USED_TV (1 << 7)
#define SECRET_BASE_USED_MUD_BALL (1 << 8)
#define SECRET_BASE_USED_BAG (1 << 9)
#define SECRET_BASE_USED_CUSHION (1 << 10)
#define SECRET_BASE_BATTLED_WON (1 << 11)
#define SECRET_BASE_BATTLED_LOST (1 << 12)
#define SECRET_BASE_DECLINED_BATTLE (1 << 13)
#define SECRET_BASE_USED_POSTER (1 << 14)
#define SECRET_BASE_USED_NOTE_MAT (1 << 15)
// VAR_SECRET_BASE_HIGH_TV_FLAGS
#define SECRET_BASE_BATTLED_DRAW (1 << 0)
#define SECRET_BASE_USED_SPIN_MAT (1 << 1)
#define SECRET_BASE_USED_SAND_ORNAMENT (1 << 2)
#define SECRET_BASE_USED_DESK (1 << 3)
#define SECRET_BASE_USED_BRICK (1 << 4)
#define SECRET_BASE_USED_SOLID_BOARD (1 << 5)
#define SECRET_BASE_USED_FENCE (1 << 6)
#define SECRET_BASE_USED_GLITTER_MAT (1 << 7)
#define SECRET_BASE_USED_TIRE (1 << 8)
#define SECRET_BASE_USED_STAND (1 << 9)
#define SECRET_BASE_USED_BREAKABLE_DOOR (1 << 10)
#define SECRET_BASE_USED_DOLL (1 << 11)
#define SECRET_BASE_USED_SLIDE (1 << 12)
#define SECRET_BASE_DECLINED_SLIDE (1 << 13)
#define SECRET_BASE_USED_JUMP_MAT (1 << 14)
#define SECRET_BASE_UNUSED_FLAG (1 << 15)
#define NUM_SECRET_BASE_FLAGS 32 // by definition, bitfield of 2 u16s
// TV Show states for Pokemon Contest Live Updates
#define CONTESTLIVE_STATE_INTRO 0
#define CONTESTLIVE_STATE_WON_BOTH_ROUNDS 1
#define CONTESTLIVE_STATE_BETTER_ROUND2 2
#define CONTESTLIVE_STATE_EQUAL_ROUNDS 3
#define CONTESTLIVE_STATE_BETTER_ROUND1 4
#define CONTESTLIVE_STATE_GOT_NERVOUS 5
#define CONTESTLIVE_STATE_STARTLED_OTHER 6
#define CONTESTLIVE_STATE_USED_COMBO 7
#define CONTESTLIVE_STATE_EXCITING_APPEAL 8
#define CONTESTLIVE_STATE_COOL 9
#define CONTESTLIVE_STATE_BEAUTIFUL 10
#define CONTESTLIVE_STATE_CUTE 11
#define CONTESTLIVE_STATE_SMART 12
#define CONTESTLIVE_STATE_TOUGH 13
#define CONTESTLIVE_STATE_VERY_EXCITING_APPEAL 14
#define CONTESTLIVE_STATE_VERY_COOL 15
#define CONTESTLIVE_STATE_VERY_BEAUTIFUL 16
#define CONTESTLIVE_STATE_VERY_CUTE 17
#define CONTESTLIVE_STATE_VERY_SMART 18
#define CONTESTLIVE_STATE_VERY_TOUGH 19
#define CONTESTLIVE_STATE_TOOK_BREAK 20
#define CONTESTLIVE_STATE_GOT_STARTLED 21
#define CONTESTLIVE_STATE_USED_MOVE 22
#define CONTESTLIVE_STATE_TALK_ABOUT_LOSER 23
#define CONTESTLIVE_STATE_NO_APPEALS 24
#define CONTESTLIVE_STATE_LAST_BOTH 25
#define CONTESTLIVE_STATE_NOT_EXCITING_ENOUGH 26
#define CONTESTLIVE_STATE_LOST_AFTER_ROUND1_WIN 27
#define CONTESTLIVE_STATE_NO_EXCITING_APPEALS 28
#define CONTESTLIVE_STATE_LOST_SMALL_MARGIN 29
#define CONTESTLIVE_STATE_REPEATED_APPEALS 30
#define CONTESTLIVE_STATE_LOST 31
#define CONTESTLIVE_STATE_OUTRO 32
// Flags used to comment on winner
#define CONTESTLIVE_FLAG_EXCITING_APPEAL (1 << 0)
#define CONTESTLIVE_FLAG_GOT_NERVOUS (1 << 1)
#define CONTESTLIVE_FLAG_MAXED_EXCITEMENT (1 << 2)
#define CONTESTLIVE_FLAG_USED_COMBO (1 << 3)
#define CONTESTLIVE_FLAG_STARTLED_OTHER (1 << 4)
#define CONTESTLIVE_FLAG_SKIPPED_TURN (1 << 5)
#define CONTESTLIVE_FLAG_GOT_STARTLED (1 << 6)
#define CONTESTLIVE_FLAG_MADE_APPEAL (1 << 7)
// Flags used to comment on loser
#define CONTESTLIVE_FLAG_LOST (1 << 0)
#define CONTESTLIVE_FLAG_REPEATED_MOVE (1 << 1)
#define CONTESTLIVE_FLAG_LOST_SMALL_MARGIN (1 << 2)
#define CONTESTLIVE_FLAG_NO_EXCITEMENT (1 << 3)
#define CONTESTLIVE_FLAG_BLEW_LEAD (1 << 4)
#define CONTESTLIVE_FLAG_MISSED_EXCITEMENT (1 << 5)
#define CONTESTLIVE_FLAG_LAST_BOTH_ROUNDS (1 << 6)
#define CONTESTLIVE_FLAG_NO_APPEALS (1 << 7)
// TV Show states for Spot the Cuties
#define SPOTCUTIES_STATE_INTRO 0
#define SPOTCUTIES_STATE_RIBBONS_LOW 1
#define SPOTCUTIES_STATE_RIBBONS_MID 2
#define SPOTCUTIES_STATE_RIBBONS_HIGH 3
#define SPOTCUTIES_STATE_RIBBON_INTRO 4
#define SPOTCUTIES_STATE_RIBBON_CHAMPION 5
#define SPOTCUTIES_STATE_RIBBON_COOL 6
#define SPOTCUTIES_STATE_RIBBON_BEAUTY 7
#define SPOTCUTIES_STATE_RIBBON_CUTE 8
#define SPOTCUTIES_STATE_RIBBON_SMART 9
#define SPOTCUTIES_STATE_RIBBON_TOUGH 10
#define SPOTCUTIES_STATE_RIBBON_WINNING 11
#define SPOTCUTIES_STATE_RIBBON_VICTORY 12
#define SPOTCUTIES_STATE_RIBBON_ARTIST 13
#define SPOTCUTIES_STATE_RIBBON_EFFORT 14
#define SPOTCUTIES_STATE_OUTRO 15
// TV Show states for Trend Watcher
#define TRENDWATCHER_STATE_INTRO 0
#define TRENDWATCHER_STATE_TAUGHT_MALE 1
#define TRENDWATCHER_STATE_TAUGHT_FEMALE 2
#define TRENDWATCHER_STATE_PHRASE_HOPELESS 3
#define TRENDWATCHER_STATE_BIGGER_MALE 4
#define TRENDWATCHER_STATE_BIGGER_FEMALE 5
#define TRENDWATCHER_STATE_OUTRO 6
// TV Show states for the Contest Lady's Live Updates show
#define CONTESTLADYLIVE_STATE_INTRO 0
#define CONTESTLADYLIVE_STATE_WON 1
#define CONTESTLADYLIVE_STATE_LOST 2
#define CONTESTLADYLIVE_STATE_LOST_BADLY 3
// TV Show states for Smart Shopper
#define SMARTSHOPPER_STATE_INTRO 0
#define SMARTSHOPPER_STATE_CLERK_NORMAL 1
#define SMARTSHOPPER_STATE_RAND_COMMENT_1 2
#define SMARTSHOPPER_STATE_RAND_COMMENT_2 3
#define SMARTSHOPPER_STATE_RAND_COMMENT_3 4
#define SMARTSHOPPER_STATE_RAND_COMMENT_4 5
#define SMARTSHOPPER_STATE_SECOND_ITEM 6
#define SMARTSHOPPER_STATE_THIRD_ITEM 7
#define SMARTSHOPPER_STATE_DURING_SALE 8
#define SMARTSHOPPER_STATE_OUTRO_NORMAL 9
#define SMARTSHOPPER_STATE_IS_VIP 10
#define SMARTSHOPPER_STATE_CLERK_MAX 11
#define SMARTSHOPPER_STATE_OUTRO_MAX 12
#define SMARTSHOPPER_NUM_ITEMS 3
#endif //GUARD_CONSTANTS_TV_H

View File

@ -0,0 +1,96 @@
#ifndef GUARD_CONSTANTS_UNION_ROOM_H
#define GUARD_CONSTANTS_UNION_ROOM_H
// The number of possible group leaders visible in the Union Room.
// Note that this is different than the number of people actively
// connected as children via the Wireless Adapter, which cannot
// exceed RFU_CHILD_MAX (4), for a total of 5 including the player.
#define MAX_UNION_ROOM_LEADERS 8
#define UNION_ROOM_SPAWN_NONE 0
#define UNION_ROOM_SPAWN_IN 1
#define UNION_ROOM_SPAWN_OUT 2
#define ACTIVITY_NONE 0
#define ACTIVITY_BATTLE_SINGLE 1
#define ACTIVITY_BATTLE_DOUBLE 2
#define ACTIVITY_BATTLE_MULTI 3
#define ACTIVITY_TRADE 4
#define ACTIVITY_CHAT 5
#define ACTIVITY_WONDER_CARD_DUP 6 // Duplicates of later WONDER constants
#define ACTIVITY_WONDER_NEWS_DUP 7 //
#define ACTIVITY_CARD 8
#define ACTIVITY_POKEMON_JUMP 9
#define ACTIVITY_BERRY_CRUSH 10
#define ACTIVITY_BERRY_PICK 11
#define ACTIVITY_SEARCH 12
#define ACTIVITY_SPIN_TRADE 13
#define ACTIVITY_BATTLE_TOWER_OPEN 14
#define ACTIVITY_RECORD_CORNER 15
#define ACTIVITY_BERRY_BLENDER 16
// Player response
#define ACTIVITY_ACCEPT 17
#define ACTIVITY_DECLINE 18
#define ACTIVITY_NPCTALK 19
#define ACTIVITY_PLYRTALK 20
#define ACTIVITY_WONDER_CARD 21
#define ACTIVITY_WONDER_NEWS 22
#define ACTIVITY_CONTEST_COOL 23
#define ACTIVITY_CONTEST_BEAUTY 24
#define ACTIVITY_CONTEST_CUTE 25
#define ACTIVITY_CONTEST_SMART 26
#define ACTIVITY_CONTEST_TOUGH 27
#define ACTIVITY_BATTLE_TOWER 28
#define ACTIVITY_29 29
#define IN_UNION_ROOM (1 << 6)
#define LINK_GROUP_SINGLE_BATTLE 0
#define LINK_GROUP_DOUBLE_BATTLE 1
#define LINK_GROUP_MULTI_BATTLE 2
#define LINK_GROUP_TRADE 3
#define LINK_GROUP_POKEMON_JUMP 4
#define LINK_GROUP_BERRY_CRUSH 5
#define LINK_GROUP_BERRY_PICKING 6
#define LINK_GROUP_WONDER_CARD 7
#define LINK_GROUP_WONDER_NEWS 8
#define LINK_GROUP_UNION_ROOM_RESUME 9
#define LINK_GROUP_UNION_ROOM_INIT 10
#define LINK_GROUP_UNK_11 11
#define LINK_GROUP_RECORD_CORNER 12
#define LINK_GROUP_BERRY_BLENDER 13
#define LINK_GROUP_UNK_14 14
#define LINK_GROUP_COOL_CONTEST 15
#define LINK_GROUP_BEAUTY_CONTEST 16
#define LINK_GROUP_CUTE_CONTEST 17
#define LINK_GROUP_SMART_CONTEST 18
#define LINK_GROUP_TOUGH_CONTEST 19
#define LINK_GROUP_BATTLE_TOWER 20
#define LINK_GROUP_BATTLE_TOWER_OPEN 21
#define NUM_LINK_GROUP_TYPES 22
#define UR_TRADE_MATCH 0
#define UR_TRADE_NOTYPE 1
#define UR_TRADE_NOEGG 2
#define UR_TRADE_READY 0
#define UR_TRADE_PLAYER_NOT_READY 1
#define UR_TRADE_PARTNER_NOT_READY 2
#define UR_INTERACT_PLAYER_1 1
#define UR_INTERACT_PLAYER_2 2
#define UR_INTERACT_PLAYER_3 3
#define UR_INTERACT_PLAYER_4 4
#define UR_INTERACT_PLAYER_5 5
#define UR_INTERACT_PLAYER_6 6
#define UR_INTERACT_PLAYER_7 7
#define UR_INTERACT_PLAYER_8 8
#define UR_INTERACT_ATTENDANT 9
#define UR_INTERACT_UNUSED 10
#define UR_INTERACT_START_MENU 11
#endif //GUARD_CONSTANTS_UNION_ROOM_H

307
include/constants/vars.h Normal file
View File

@ -0,0 +1,307 @@
#ifndef GUARD_CONSTANTS_VARS_H
#define GUARD_CONSTANTS_VARS_H
#define VARS_START 0x4000
// temporary vars
// The first 0x10 vars are are temporary--they are cleared every time a map is loaded.
#define TEMP_VARS_START 0x4000
#define VAR_TEMP_0 (TEMP_VARS_START + 0x0)
#define VAR_TEMP_1 (TEMP_VARS_START + 0x1)
#define VAR_TEMP_2 (TEMP_VARS_START + 0x2)
#define VAR_TEMP_3 (TEMP_VARS_START + 0x3)
#define VAR_TEMP_4 (TEMP_VARS_START + 0x4)
#define VAR_TEMP_5 (TEMP_VARS_START + 0x5)
#define VAR_TEMP_6 (TEMP_VARS_START + 0x6)
#define VAR_TEMP_7 (TEMP_VARS_START + 0x7)
#define VAR_TEMP_8 (TEMP_VARS_START + 0x8)
#define VAR_TEMP_9 (TEMP_VARS_START + 0x9)
#define VAR_TEMP_A (TEMP_VARS_START + 0xA)
#define VAR_TEMP_B (TEMP_VARS_START + 0xB)
#define VAR_TEMP_C (TEMP_VARS_START + 0xC)
#define VAR_TEMP_D (TEMP_VARS_START + 0xD)
#define VAR_TEMP_E (TEMP_VARS_START + 0xE)
#define VAR_TEMP_F (TEMP_VARS_START + 0xF)
#define TEMP_VARS_END VAR_TEMP_F
// object gfx id vars
// These 0x10 vars are used to dynamically control a map object's sprite.
// For example, the rival's sprite id is dynamically set based on the player's gender.
// See VarGetObjectEventGraphicsId().
#define VAR_OBJ_GFX_ID_0 0x4010
#define VAR_OBJ_GFX_ID_1 0x4011
#define VAR_OBJ_GFX_ID_2 0x4012
#define VAR_OBJ_GFX_ID_3 0x4013
#define VAR_OBJ_GFX_ID_4 0x4014
#define VAR_OBJ_GFX_ID_5 0x4015
#define VAR_OBJ_GFX_ID_6 0x4016
#define VAR_OBJ_GFX_ID_7 0x4017
#define VAR_OBJ_GFX_ID_8 0x4018
#define VAR_OBJ_GFX_ID_9 0x4019
#define VAR_OBJ_GFX_ID_A 0x401A
#define VAR_OBJ_GFX_ID_B 0x401B
#define VAR_OBJ_GFX_ID_C 0x401C
#define VAR_OBJ_GFX_ID_D 0x401D
#define VAR_OBJ_GFX_ID_E 0x401E
#define VAR_OBJ_GFX_ID_F 0x401F
// general purpose vars
#define VAR_RECYCLE_GOODS 0x4020
#define VAR_REPEL_STEP_COUNT 0x4021
#define VAR_ICE_STEP_COUNT 0x4022
#define VAR_STARTER_MON 0x4023 // 0=Treecko, 1=Torchic, 2=Mudkip
#define VAR_MIRAGE_RND_H 0x4024
#define VAR_MIRAGE_RND_L 0x4025
#define VAR_SECRET_BASE_MAP 0x4026
#define VAR_CYCLING_ROAD_RECORD_COLLISIONS 0x4027
#define VAR_CYCLING_ROAD_RECORD_TIME_L 0x4028
#define VAR_CYCLING_ROAD_RECORD_TIME_H 0x4029
#define VAR_FRIENDSHIP_STEP_COUNTER 0x402A
#define VAR_POISON_STEP_COUNTER 0x402B
#define VAR_RESET_RTC_ENABLE 0x402C
#define VAR_ENIGMA_BERRY_AVAILABLE 0x402D
#define VAR_WONDER_NEWS_COUNTER 0x402E
#define VAR_FRONTIER_MANIAC_FACILITY 0x402F
#define VAR_FRONTIER_GAMBLER_CHALLENGE 0x4030
#define VAR_FRONTIER_GAMBLER_SET_CHALLENGE 0x4031
#define VAR_FRONTIER_GAMBLER_AMOUNT_BET 0x4032
#define VAR_FRONTIER_GAMBLER_STATE 0x4033
#define VAR_DEOXYS_ROCK_STEP_COUNT 0x4034
#define VAR_DEOXYS_ROCK_LEVEL 0x4035
#define VAR_PC_BOX_TO_SEND_MON 0x4036
#define VAR_ABNORMAL_WEATHER_LOCATION 0x4037
#define VAR_ABNORMAL_WEATHER_STEP_COUNTER 0x4038
#define VAR_SHOULD_END_ABNORMAL_WEATHER 0x4039
#define VAR_FARAWAY_ISLAND_STEP_COUNTER 0x403A
#define VAR_REGICE_STEPS_1 0x403B
#define VAR_REGICE_STEPS_2 0x403C
#define VAR_REGICE_STEPS_3 0x403D
#define VAR_ALTERING_CAVE_WILD_SET 0x403E
#define VAR_DISTRIBUTE_EON_TICKET 0x403F // This var is read and written, but is always zero. The only way to obtain the Eon Ticket in Emerald is via Record Mixing
#define VAR_DAYS 0x4040
#define VAR_FANCLUB_FAN_COUNTER 0x4041
#define VAR_FANCLUB_LOSE_FAN_TIMER 0x4042
#define VAR_DEPT_STORE_FLOOR 0x4043
#define VAR_TRICK_HOUSE_LEVEL 0x4044
#define VAR_POKELOT_PRIZE_ITEM 0x4045
#define VAR_NATIONAL_DEX 0x4046
#define VAR_SEEDOT_SIZE_RECORD 0x4047
#define VAR_ASH_GATHER_COUNT 0x4048
#define VAR_BIRCH_STATE 0x4049
#define VAR_CRUISE_STEP_COUNT 0x404A
#define VAR_POKELOT_RND1 0x404B
#define VAR_POKELOT_RND2 0x404C
#define VAR_POKELOT_PRIZE_PLACE 0x404D
#define VAR_REPEL_LAST_USED 0x404E // Used exclusively in tumbledemerald to enable the Black2/White2-style Repel system.
#define VAR_LOTAD_SIZE_RECORD 0x404F
#define VAR_LITTLEROOT_TOWN_STATE 0x4050
#define VAR_OLDALE_TOWN_STATE 0x4051
#define VAR_FORCE_BATTLE_ANIMS 0x4052 // Used in Tumbled for forcing anims on for important battles
#define VAR_LAVARIDGE_TOWN_STATE 0x4053
#define VAR_CURRENT_SECRET_BASE 0x4054 // was probably allocated for VAR_FALLARBOR_TOWN_STATE at one point
#define VAR_VERDANTURF_TOWN_STATE 0x4055 // Unused Var
#define VAR_PACIFIDLOG_TOWN_STATE 0x4056 // Unused Var
#define VAR_PETALBURG_CITY_STATE 0x4057
#define VAR_SLATEPORT_CITY_STATE 0x4058
#define VAR_MAUVILLE_CITY_STATE 0x4059 // Unused Var
#define VAR_RUSTBORO_CITY_STATE 0x405A
#define VAR_FORTREE_CITY_STATE 0x405B // Unused Var
#define VAR_LILYCOVE_CITY_STATE 0x405C // Unused Var
#define VAR_MOSSDEEP_CITY_STATE 0x405D
#define VAR_SOOTOPOLIS_CITY_STATE 0x405E
#define VAR_EVER_GRANDE_CITY_STATE 0x405F // Unused Var
#define VAR_ROUTE101_STATE 0x4060
#define VAR_ROUTE102_STATE 0x4061 // Unused Var
#define VAR_ROUTE103_STATE 0x4062 // Unused Var
#define VAR_ROUTE104_STATE 0x4063
#define VAR_ROUTE105_STATE 0x4064 // Unused Var
#define VAR_ROUTE106_STATE 0x4065 // Unused Var
#define VAR_ROUTE107_STATE 0x4066 // Unused Var
#define VAR_ROUTE108_STATE 0x4067 // Unused Var
#define VAR_ROUTE109_STATE 0x4068 // Unused Var
#define VAR_ROUTE110_STATE 0x4069
#define VAR_ROUTE111_STATE 0x406A // Unused Var
#define VAR_ROUTE112_STATE 0x406B // Unused Var
#define VAR_ROUTE113_STATE 0x406C // Unused Var
#define VAR_ROUTE114_STATE 0x406D // Unused Var
#define VAR_ROUTE115_STATE 0x406E // Unused Var
#define VAR_ROUTE116_STATE 0x406F
#define VAR_ROUTE117_STATE 0x4070 // Unused Var
#define VAR_ROUTE118_STATE 0x4071
#define VAR_ROUTE119_STATE 0x4072
#define VAR_ROUTE120_STATE 0x4073 // Unused Var
#define VAR_ROUTE121_STATE 0x4074
#define VAR_ROUTE122_STATE 0x4075 // Unused Var
#define VAR_ROUTE123_STATE 0x4076 // Unused Var
#define VAR_ROUTE124_STATE 0x4077 // Unused Var
#define VAR_ROUTE125_STATE 0x4078 // Unused Var
#define VAR_ROUTE126_STATE 0x4079 // Unused Var
#define VAR_ROUTE127_STATE 0x407A // Unused Var
#define VAR_ROUTE128_STATE 0x407B
#define VAR_ROUTE129_STATE 0x407C // Unused Var
#define VAR_ROUTE130_STATE 0x407D // Unused Var
#define VAR_ROUTE131_STATE 0x407E // Unused Var
#define VAR_ROUTE132_STATE 0x407F // Unused Var
#define VAR_ROUTE133_STATE 0x4080 // Unused Var
#define VAR_ROUTE134_STATE 0x4081 // Unused Var
#define VAR_LITTLEROOT_HOUSES_STATE_MAY 0x4082
#define VAR_UNUSED_0x4083 0x4083 // Unused Var
#define VAR_BIRCH_LAB_STATE 0x4084
#define VAR_PETALBURG_GYM_STATE 0x4085 // 0-1: Wally tutorial, 2-6: 0-4 badges, 7: Defeated Norman, 8: Rematch Norman
#define VAR_CONTEST_HALL_STATE 0x4086
#define VAR_CABLE_CLUB_STATE 0x4087
#define VAR_CONTEST_TYPE 0x4088
#define VAR_SECRET_BASE_INITIALIZED 0x4089
#define VAR_CONTEST_PRIZE_PICKUP 0x408A
#define VAR_UNUSED_0x408B 0x408B // Unused Var
#define VAR_LITTLEROOT_HOUSES_STATE_BRENDAN 0x408C
#define VAR_LITTLEROOT_RIVAL_STATE 0x408D
#define VAR_BOARD_BRINEY_BOAT_STATE 0x408E
#define VAR_DEVON_CORP_3F_STATE 0x408F
#define VAR_BRINEY_HOUSE_STATE 0x4090
#define VAR_UNUSED_0x4091 0x4091 // Unused Var
#define VAR_LITTLEROOT_INTRO_STATE 0x4092
#define VAR_MAUVILLE_GYM_STATE 0x4093
#define VAR_LILYCOVE_MUSEUM_2F_STATE 0x4094
#define VAR_LILYCOVE_FAN_CLUB_STATE 0x4095
#define VAR_BRINEY_LOCATION 0x4096
#define VAR_INIT_SECRET_BASE 0x4097
#define VAR_PETALBURG_WOODS_STATE 0x4098
#define VAR_LILYCOVE_CONTEST_LOBBY_STATE 0x4099
#define VAR_RUSTURF_TUNNEL_STATE 0x409A
#define VAR_UNUSED_0x409B 0x409B // Unused Var
#define VAR_ELITE_4_STATE 0x409C
#define VAR_UNUSED_0x409D 0x409D // Unused Var
#define VAR_MOSSDEEP_SPACE_CENTER_STAIR_GUARD_STATE 0x409E
#define VAR_MOSSDEEP_SPACE_CENTER_STATE 0x409F
#define VAR_SLATEPORT_HARBOR_STATE 0x40A0
#define VAR_UNUSED_0x40A1 0x40A1 // Unused var
#define VAR_SEAFLOOR_CAVERN_STATE 0x40A2
#define VAR_CABLE_CAR_STATION_STATE 0x40A3
#define VAR_SAFARI_ZONE_STATE 0x40A4 // 0: In or out of SZ, 1: Player exiting SZ, 2: Player entering SZ
#define VAR_TRICK_HOUSE_BEING_WATCHED_STATE 0x40A5
#define VAR_TRICK_HOUSE_FOUND_TRICK_MASTER 0x40A6
#define VAR_TRICK_HOUSE_ENTRANCE_STATE 0x40A7
#define VAR_UNUSED_0x40A8 0x40A8 // Unused Var
#define VAR_CYCLING_CHALLENGE_STATE 0x40A9
#define VAR_SLATEPORT_MUSEUM_1F_STATE 0x40AA
#define VAR_TRICK_HOUSE_PUZZLE_1_STATE 0x40AB
#define VAR_TRICK_HOUSE_PUZZLE_2_STATE 0x40AC
#define VAR_TRICK_HOUSE_PUZZLE_3_STATE 0x40AD
#define VAR_TRICK_HOUSE_PUZZLE_4_STATE 0x40AE
#define VAR_TRICK_HOUSE_PUZZLE_5_STATE 0x40AF
#define VAR_TRICK_HOUSE_PUZZLE_6_STATE 0x40B0
#define VAR_TRICK_HOUSE_PUZZLE_7_STATE 0x40B1
#define VAR_TRICK_HOUSE_PUZZLE_8_STATE 0x40B2
#define VAR_WEATHER_INSTITUTE_STATE 0x40B3
#define VAR_SS_TIDAL_STATE 0x40B4
#define VAR_TRICK_HOUSE_ENTER_FROM_CORRIDOR 0x40B5
#define VAR_TRICK_HOUSE_PUZZLE_7_STATE_2 0x40B6 // Leftover from RS, never set
#define VAR_SLATEPORT_FAN_CLUB_STATE 0x40B7
#define VAR_UNUSED_0x40B8 0x40B8 // Unused Var
#define VAR_MT_PYRE_STATE 0x40B9
#define VAR_NEW_MAUVILLE_STATE 0x40BA
#define VAR_UNUSED_0x40BB 0x40BB // Unused Var
#define VAR_BRAVO_TRAINER_BATTLE_TOWER_ON 0x40BC
#define VAR_JAGGED_PASS_ASH_WEATHER 0x40BD
#define VAR_GLASS_WORKSHOP_STATE 0x40BE
#define VAR_METEOR_FALLS_STATE 0x40BF
#define VAR_SOOTOPOLIS_MYSTERY_EVENTS_STATE 0x40C0
#define VAR_TRICK_HOUSE_PRIZE_PICKUP 0x40C1
#define VAR_PACIFIDLOG_TM_RECEIVED_DAY 0x40C2
#define VAR_VICTORY_ROAD_1F_STATE 0x40C3
#define VAR_FOSSIL_RESURRECTION_STATE 0x40C4
#define VAR_WHICH_FOSSIL_REVIVED 0x40C5
#define VAR_STEVENS_HOUSE_STATE 0x40C6
#define VAR_OLDALE_RIVAL_STATE 0x40C7
#define VAR_JAGGED_PASS_STATE 0x40C8
#define VAR_SCOTT_PETALBURG_ENCOUNTER 0x40C9
#define VAR_SKY_PILLAR_STATE 0x40CA
#define VAR_MIRAGE_TOWER_STATE 0x40CB
#define VAR_FOSSIL_MANIAC_STATE 0x40CC
#define VAR_CABLE_CLUB_TUTORIAL_STATE 0x40CD
#define VAR_FRONTIER_BATTLE_MODE 0x40CE
#define VAR_FRONTIER_FACILITY 0x40CF
#define VAR_HAS_ENTERED_BATTLE_FRONTIER 0x40D0 // Var is used like a flag.
#define VAR_SCOTT_STATE 0x40D1
#define VAR_SLATEPORT_OUTSIDE_MUSEUM_STATE 0x40D2
#define VAR_DEX_UPGRADE_JOHTO_STARTER_STATE 0x40D3
#define VAR_SS_TIDAL_SCOTT_STATE 0x40D4 // Always equal to FLAG_MET_SCOTT_ON_SS_TIDAL
#define VAR_ROAMER_POKEMON 0x40D5 // 0 = Latias, 1 = Latios
#define VAR_TRAINER_HILL_IS_ACTIVE 0x40D6
#define VAR_SKY_PILLAR_RAQUAZA_CRY_DONE 0x40D7
#define VAR_SOOTOPOLIS_WALLACE_STATE 0x40D8
#define VAR_HAS_TALKED_TO_SEAFLOOR_CAVERN_ENTRANCE_GRUNT 0x40D9
#define VAR_REGISTER_BIRCH_STATE 0x40DA
#define VAR_UNUSED_0x40DB 0x40DB // Unused Var
#define VAR_UNUSED_0x40DC 0x40DC // Unused Var
#define VAR_GIFT_PICHU_SLOT 0x40DD
#define VAR_GIFT_UNUSED_1 0x40DE // Var is written to, but never read
#define VAR_GIFT_UNUSED_2 0x40DF // Var is written to, but never read
#define VAR_GIFT_UNUSED_3 0x40E0 // Var is written to, but never read
#define VAR_GIFT_UNUSED_4 0x40E1 // Var is written to, but never read
#define VAR_GIFT_UNUSED_5 0x40E2 // Var is written to, but never read
#define VAR_GIFT_UNUSED_6 0x40E3 // Var is written to, but never read
#define VAR_GIFT_UNUSED_7 0x40E4 // var is written to, but never read
#define VAR_UNUSED_0x40E5 0x40E5 // Unused Var
#define VAR_DAILY_SLOTS 0x40E6
#define VAR_DAILY_WILDS 0x40E7
#define VAR_DAILY_BLENDER 0x40E8
#define VAR_DAILY_PLANTED_BERRIES 0x40E9
#define VAR_DAILY_PICKED_BERRIES 0x40EA
#define VAR_DAILY_ROULETTE 0x40EB
#define VAR_SECRET_BASE_STEP_COUNTER 0x40EC // Used by Secret Base TV programs
#define VAR_SECRET_BASE_LAST_ITEM_USED 0x40ED // Used by Secret Base TV programs
#define VAR_SECRET_BASE_LOW_TV_FLAGS 0x40EE // Used by Secret Base TV programs
#define VAR_SECRET_BASE_HIGH_TV_FLAGS 0x40EF // Used by Secret Base TV programs
#define VAR_SECRET_BASE_IS_NOT_LOCAL 0x40F0 // Set to TRUE while in another player's secret base.
#define VAR_DAILY_BP 0x40F1
#define VAR_WALLY_CALL_STEP_COUNTER 0x40F2
#define VAR_SCOTT_FORTREE_CALL_STEP_COUNTER 0x40F3
#define VAR_ROXANNE_CALL_STEP_COUNTER 0x40F4
#define VAR_SCOTT_BF_CALL_STEP_COUNTER 0x40F5
#define VAR_RIVAL_RAYQUAZA_CALL_STEP_COUNTER 0x40F6
#define VAR_UNUSED_0x40F7 0x40F7 // Unused Var
#define VAR_UNUSED_0x40F8 0x40F8 // Unused Var
#define VAR_UNUSED_0x40F9 0x40F9 // Unused Var
#define VAR_UNUSED_0x40FA 0x40FA // Unused Var
#define VAR_UNUSED_0x40FB 0x40FB // Unused Var
#define VAR_UNUSED_0x40FC 0x40FC // Unused Var
#define VAR_UNUSED_0x40FD 0x40FD // Unused Var
#define VAR_UNUSED_0x40FE 0x40FE // Unused Var
#define VAR_UNUSED_0x40FF 0x40FF // Unused Var
#define VARS_END 0x40FF
#define VARS_COUNT (VARS_END - VARS_START + 1)
#define SPECIAL_VARS_START 0x8000
// special vars
// They are commonly used as parameters to commands, or return values from commands.
#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
#define VAR_MON_BOX_ID 0x8012
#define VAR_MON_BOX_POS 0x8013
#define VAR_UNUSED_0x8014 0x8014
#define VAR_TRAINER_BATTLE_OPPONENT_A 0x8015 // Alias of gTrainerBattleOpponent_A
#define SPECIAL_VARS_END 0x8015
#endif // GUARD_CONSTANTS_VARS_H

View File

@ -0,0 +1,70 @@
#ifndef GUARD_CONSTANTS_WEATHER_H
#define GUARD_CONSTANTS_WEATHER_H
#define WEATHER_NONE 0
#define WEATHER_SUNNY_CLOUDS 1
#define WEATHER_SUNNY 2
#define WEATHER_RAIN 3
#define WEATHER_SNOW 4 // Unused
#define WEATHER_RAIN_THUNDERSTORM 5
#define WEATHER_FOG_HORIZONTAL 6
#define WEATHER_VOLCANIC_ASH 7
#define WEATHER_SANDSTORM 8
#define WEATHER_FOG_DIAGONAL 9 // Unused
#define WEATHER_UNDERWATER 10 // Unused
#define WEATHER_SHADE 11 // Original name was closer to WEATHER_CLOUDY/OVERCAST
#define WEATHER_DROUGHT 12
#define WEATHER_DOWNPOUR 13
#define WEATHER_UNDERWATER_BUBBLES 14
#define WEATHER_ABNORMAL 15 // The alternating weather during Groudon/Kyogre conflict
#define WEATHER_ROUTE119_CYCLE 20
#define WEATHER_ROUTE123_CYCLE 21
// These are used in maps' coord_weather_event entries.
// They are not a one-to-one mapping with the engine's
// internal weather constants above.
#define COORD_EVENT_WEATHER_SUNNY_CLOUDS 1
#define COORD_EVENT_WEATHER_SUNNY 2
#define COORD_EVENT_WEATHER_RAIN 3
#define COORD_EVENT_WEATHER_SNOW 4
#define COORD_EVENT_WEATHER_RAIN_THUNDERSTORM 5
#define COORD_EVENT_WEATHER_FOG_HORIZONTAL 6
#define COORD_EVENT_WEATHER_FOG_DIAGONAL 7
#define COORD_EVENT_WEATHER_VOLCANIC_ASH 8
#define COORD_EVENT_WEATHER_SANDSTORM 9
#define COORD_EVENT_WEATHER_SHADE 10
#define COORD_EVENT_WEATHER_DROUGHT 11
#define COORD_EVENT_WEATHER_ROUTE119_CYCLE 20
#define COORD_EVENT_WEATHER_ROUTE123_CYCLE 21
// These are the "abnormal weather events" that are used
// to find Kyogre and Groudon.
// Groudon/Terra Cave locations
#define TERRA_CAVE_LOCATIONS_START 1
#define ABNORMAL_WEATHER_ROUTE_114_NORTH (TERRA_CAVE_LOCATIONS_START + 0)
#define ABNORMAL_WEATHER_ROUTE_114_SOUTH (TERRA_CAVE_LOCATIONS_START + 1)
#define ABNORMAL_WEATHER_ROUTE_115_WEST (TERRA_CAVE_LOCATIONS_START + 2)
#define ABNORMAL_WEATHER_ROUTE_115_EAST (TERRA_CAVE_LOCATIONS_START + 3)
#define ABNORMAL_WEATHER_ROUTE_116_NORTH (TERRA_CAVE_LOCATIONS_START + 4)
#define ABNORMAL_WEATHER_ROUTE_116_SOUTH (TERRA_CAVE_LOCATIONS_START + 5)
#define ABNORMAL_WEATHER_ROUTE_118_EAST (TERRA_CAVE_LOCATIONS_START + 6)
#define ABNORMAL_WEATHER_ROUTE_118_WEST (TERRA_CAVE_LOCATIONS_START + 7)
#define TERRA_CAVE_LOCATIONS 8
// Kyogre/Marina Cave locations
#define MARINE_CAVE_LOCATIONS_START (TERRA_CAVE_LOCATIONS_START + TERRA_CAVE_LOCATIONS)
#define ABNORMAL_WEATHER_ROUTE_105_NORTH (MARINE_CAVE_LOCATIONS_START + 0)
#define ABNORMAL_WEATHER_ROUTE_105_SOUTH (MARINE_CAVE_LOCATIONS_START + 1)
#define ABNORMAL_WEATHER_ROUTE_125_WEST (MARINE_CAVE_LOCATIONS_START + 2)
#define ABNORMAL_WEATHER_ROUTE_125_EAST (MARINE_CAVE_LOCATIONS_START + 3)
#define ABNORMAL_WEATHER_ROUTE_127_NORTH (MARINE_CAVE_LOCATIONS_START + 4)
#define ABNORMAL_WEATHER_ROUTE_127_SOUTH (MARINE_CAVE_LOCATIONS_START + 5)
#define ABNORMAL_WEATHER_ROUTE_129_WEST (MARINE_CAVE_LOCATIONS_START + 6)
#define ABNORMAL_WEATHER_ROUTE_129_EAST (MARINE_CAVE_LOCATIONS_START + 7)
#define MARINE_CAVE_LOCATIONS 8
#define ABNORMAL_WEATHER_LOCATIONS (MARINE_CAVE_LOCATIONS + TERRA_CAVE_LOCATIONS)
#define ABNORMAL_WEATHER_NONE 0
#endif // GUARD_CONSTANTS_WEATHER_H