///////////////////////////////////////////////////////////////////////////// // Name: pokemod/Ref.h // Purpose: Define references for Objects // Author: Ben Boeckel // Modified by: Ben Boeckel // Created: Thu Feb 15 8:42:45 2007 // Copyright: ©2007 Nerdy Productions // Licence: // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License along // with this program; if not, write to the Free Software Foundation, Inc., // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ///////////////////////////////////////////////////////////////////////////// #ifndef __POKEMOD_REF__ #define __POKEMOD_REF__ #include #include "String.h" namespace PokeGen { namespace PokeMod { int FindIn(const int end, const String &str, const char *array[]); enum EnumAbilityEffect { AE_DMG_TO_HP = 0, AE_PRV_DMG = 1, AE_AUTO_HEAL = 2, AE_DEAL_DMG = 3, AE_WILDS = 4, AE_STATS = 5, AE_STATUS = 6, AE_ABILITY = 7, AE_ACC_POWER = 8, AE_BULLSEYE = 9, AE_ITEM_EFFECT = 10, AE_TYPE = 11, AE_FAST_HATCH = 12, AE_WEATHER = 13, AE_END = 14 }; const char *AbilityEffectStr[AE_END] = {"Damage to HP", "Prevent Damage", "Auto Heal", "Deal Damage", "Wilds", "Stat", "Status", "Ability", "Accuracy/Power Trade", "Bullseye", "Item Effect", "Type", "Fast Hatch", "Weather"}; enum EnumAbilityTrigger { AT_ANYTHING = 0, AT_CONTACT = 1, AT_WEATHER = 2, AT_DMG = 3, AT_TYPE = 4, AT_HP_BOUND = 5, AT_STAT_CHANGE = 6, AT_STATUS = 7, AT_END = 8 }; const char *AbilityTriggerStr[AT_END] = {"Anything", "Contact", "Weather", "Damage", "Type", "HP Boundary", "Stat Change", "Status"}; enum EnumStat { ST_ATTACK = 0, ST_DEFENSE = 1, ST_SPEED = 2, ST_SPECIAL = 3, ST_END_RBY = 4, ST_SPECIAL_ATTACK = 3, ST_SPECIAL_DEFENSE = 4, ST_END_GSC = 5 }; const char *StatRBYStr[ST_END_RBY] = {"Attack", "Defense", "Speed", "Special"}; const char *StatGSCStr[ST_END_GSC] = {"Attack", "Defense", "Speed", "Special Attack", "Special Defense"}; enum EnumStatHP { STH_HP = 0, STH_ATTACK = 1, STH_DEFENSE = 2, STH_SPEED = 3, STH_SPECIAL = 4, STH_END_RBY = 5, STH_SPECIAL_ATTACK = 4, STH_SPECIAL_DEFENSE = 5, STH_END_GSC = 6, }; const char *StatHPRBYStr[STH_END_RBY] = {"HP", "Attack", "Defense", "Speed", "Special"}; const char *StatHPGSCStr[STH_END_GSC] = {"HP", "Attack", "Defense", "Speed", "Special Attack", "Special Defense"}; enum EnumBattleStat { BST_ATTACK = 0, BST_DEFENSE = 1, BST_SPEED = 2, BST_SPECIAL = 3, BST_SPECIAL_ATTACK = 3, BST_SPECIAL_DEFENSE = 4, BST_ACCURACY = 5, BST_EVASION = 6, BST_END = 7, }; const char *BattleStatRBYStr[BST_END] = {"Attack", "Defense", "Speed", "Special", "Special", "Accuracy", "Evasion"}; const char *BattleStatGSCStr[BST_END] = {"Attack", "Defense", "Speed", "Special Attack", "Special Defense", "Accuracy", "Evasion"}; enum EnumBattleStatHP { BSTH_HP = 0, BSTH_ATTACK = 1, BSTH_DEFENSE = 2, BSTH_SPEED = 3, BSTH_SPECIAL = 4, BSTH_SPECIAL_ATTACK = 4, BSTH_SPECIAL_DEFENSE = 5, BSTH_ACCURACY = 6, BSTH_EVASION = 7, BSTH_END = 8, }; const char *BattleStatHPRBYStr[BSTH_END] = {"HP", "Attack", "Defense", "Speed", "Special", "Special", "Accuracy", "Evasion"}; const char *BattleStatHPGSCStr[BSTH_END] = {"HP", "Attack", "Defense", "Speed", "Special Attack", "Special Defense", "Accuracy", "Evasion"}; enum EnumBattleMember { BM_PLAYER = 0, BM_ENEMY = 1, BM_END = 2 }; const char *BattleMemberStr[BM_END] = {"Player", "Enemy"}; enum EnumStatus { STS_FREEZE = 0, STS_PARALYZE = 1, STS_SLEEP = 2, STS_POISON = 3, STS_TOXIC_POISON = 4, STS_BURN = 5, STS_END_SHOW = 6, STS_ANY_SHOW = 6, STS_END_SHOW_ANY = 7, STS_CONFUSED = 6, STS_END_CNF = 7, STS_ANY = 7, STS_END_ANY = 8, }; const char *StatusShowStr[STS_END_SHOW_ANY] = {"Freeze", "Paralyze", "Sleep", "Poison", "Toxic Poison", "Burn", "Any"}; const char *StatusStr[STS_END_ANY] = {"Freeze", "Paralyze", "Sleep", "Poison", "Toxic Poison", "Burn", "Confuse", "Any"}; const char *StatusAbbrStr[STS_END_SHOW] = {"FRZ", "PRZ", "SLP", "PSN", "PSN", "BRN"}; enum EnumCause { CA_PREVENT = 0, CA_INFLICT = 1, CA_END = 2 }; const char *CauseStr[CA_END] = {"Prevent", "Inflict"}; enum EnumAbilityInteract { ABI_TRADE = 0, ABI_SHADOW = 1, ABI_BLOCK = 2, ABI_END = 3 }; const char *AbilityInteractStr[ABI_END] = {"Trade", "Shadow", "Block"}; enum EnumPowerAcc { PA_POWER = 0, PA_ACC = 1, PA_END = 2 }; const char *PowerAccStr[PA_END] = {"Boost Power", "Boost Accuracy"}; enum EnumAbilityItem { ABIT_STAT = 0, ABIT_TYPE_BOOST = 1, ABIT_FLINCH = 2, ABIT_QUICK = 3, ABIT_END = 4 }; const char *AbilityItemStr[ABIT_END] = {"Stat Modifier", "Type Booster", "Flinch", "Go First"}; enum EnumWeather { W_ICE = 0, W_RAIN = 1, W_SUN = 2, W_SAND = 3, W_END_REAL = 4, W_ALL = 4, W_END_ALL = 5 }; const char *WeatherStr[W_END_ALL] = {"Ice", "Rain", "Sun", "Sand", "All"}; enum EnumBoost { BO_BOOST = 0, BO_HINDER = 1, BO_END = 2 }; const char *BoostStr[BO_END] = {"Boost", "Hinder"}; enum EnumSide { SI_ABOVE = 0, SI_BELOW = 1, SI_END = 2 }; const char *SideStr[SI_END] = {"Above", "Below"}; enum EnumHMMove { HM_CUT = 0, HM_FLY = 1, HM_SURF = 2, HM_STRENGTH = 3, HM_FLASH = 4, HM_WHIRLPOOL = 5, HM_WATERFALL = 6, HM_DIVE = 7, HM_HEADBUTT = 8, HM_ROCK_SMASH = 9, HM_END = 10 }; const char *HMStr[HM_END] = {"Cut", "Fly", "Surf", "Strength", "Flash", "Whirlpool", "Waterfall", "Dive", "Headbutt", "Rock Smash"}; enum EnumStatVersion { STV_RBY = 0, STV_GSC = 1, STV_END = 2 }; enum EnumFlagValue { FV_UNSET = 0, FV_SET = 1, FV_IGNORE = 2, FV_END = 3 }; const char *FlagValueStr[FV_END] = {"Unset", "Set", "Ignore"}; enum EnumCoinItemType { CIT_ITEM = 0, CIT_POKEMON = 1, CIT_END = 2 }; const char *CoinItemTypeStr[CIT_END] = {"Item", "Pokémon"}; enum EnumItemEffect { IE_HP_CURE = 0, IE_REVIVE = 1, IE_CURE_STATUS = 2, IE_LEVEL_BOOST = 3, IE_STAT_BOOST = 4, IE_FLINCH = 5, IE_FIRST = 6, IE_KEEP_ALIVE = 7, IE_MODIFY_STAT_BAT = 8, IE_SHIELD_BAT = 9, IE_RUN_BAT = 10, IE_PP_BOOST = 11, IE_TYPE_BOOST = 12, IE_PP_RESTORE = 13, IE_EXP_SHARE = 14, IE_FISH = 15, IE_REPEL = 16, IE_ESCAPE = 17, IE_TM = 18, IE_HM = 19, IE_MAP = 20, IE_BALL = 21, IE_ITEMFINDER = 22, IE_BIKE = 23, IE_SCOPE = 24, IE_COIN = 25, IE_COIN_CASE = 26, IE_BERRY = 27, IE_ACORN = 28, IE_END = 29 }; const char *ItemEffectStr[IE_END] = {"HP Cure", "Revive", "Cure Status", "Level Boost", "Stat Boost", "Flinch", "Go First", "Keep Alive", "Modify Stat (Battle Only)", "Shield (Battle Only)", "Run (Battle Only)", "PP Boost", "Type Boost", "PP Restore", "Experience Share", "Fishing Rod", "Repel", "Escape", "TM", "HM", "Map", "Ball", "Itemfinder", "Bike", "Scope", "Coin", "Coin Case", "Berry", "Acorn"}; enum EnumRelative { REL_ABSOLUTE = 0, REL_RELATIVE = 1, REL_END = 2 }; const char *RelativeStr[REL_END] = {"Absolute", "Relative"}; enum EnumEscape { ESC_ANYWHERE = 0, ESC_DUNGEON = 1, ESC_END = 2 }; const char *EscapeStr[ESC_END] = {"Anywhere", "Dungeon"}; enum EnumRepel { REP_FIRST = 0, REP_MAX = 1, REP_ALL = 2, REP_END = 3 }; const char *RepelStr[REP_END] = {"First", "Max", "All"}; enum EnumAmount { AMT_ALL = 0, AMT_ONE = 1, AMT_END = 2 }; const char *AmountStr[AMT_END] = {"All", "One"}; // TODO (Ben#1#): More BallType(?) enum EnumBallType { BLT_REGULAR = 0, BLT_MASTER = 1, BLT_LEVEL = 2, BLT_LOVE = 3, BLT_AREA = 4, BLT_TIME = 5, BLT_BATTLE = 6, BLT_FRIEND = 7, BLT_STAT = 8, BLT_END = 9 }; const char *BallTypeStr[BLT_END] = {"Regular", "Master", "Level", "Love", "Area", "Time", "Battle", "Friend", "Stat"}; // TODO (Ben#1#): More BerryType(?) enum EnumBerryType { BRT_HP_CURE = 0, BRT_STATUS_CURE = 1, BRT_END = 2 }; const char *BerryTypeStr[BRT_END] = {"HP Cure", "Status Cure"}; enum EnumStyle { STY_FLUCTUATING = 0, STY_FADING = 1, STY_SLOW = 2, STY_NORMAL = 3, STY_FAST = 5, STY_ERRATIC = 6, STY_END = 7 }; const char *StyleStr[STY_END] = {"Fluctuating", "Fading", "Slow", "Normal", "Fast", "Erratic"}; enum EnumContestType { COTY_COOLNESS = 0, COTY_BEAUTY = 1, COTY_CUTENESS = 2, COTY_SMARTNESS = 3, COTY_TOUGHNESS = 4, COTY_END = 5 }; const char *ContestTypeStr[COTY_END] = {"Coolness", "Beauty", "Cuteness", "Smartness", "Toughness"}; enum EnumTarget { TAR_PLAYER = 0, TAR_ENENMY = 1, TAR_BOTH = 2, TAR_RANDOM = 3, TAR_END = 4 }; const char *TargetStr[TAR_END] = {"Player", "Enemy", "Both", "Random"}; enum EnumMapType { MTY_OUTDOOR = 0, MTY_DUNGEON = 1, MTY_BUILDING = 2, MTY_END = 3 }; const char *MapTypeStr[MTY_END] = {"Outdoor", "Dungeon", "Building"}; enum EnumControl { CTRL_GRASS = 0, CTRL_SURFING = 1, CTRL_FISHING = 2, CTRL_DIVE = 3, CTRL_HEADBUTT = 4, CTRL_ROCK_SMASH = 5, CTRL_END = 6 }; const char *ControlStr[CTRL_END] = {"Grass", "Surfing", "Fishing", "Dive", "Headbutt", "Rock Smash"}; enum EnumChoice { CHC_PLAYER = 0, CHC_RANDOM = 1, CHC_END = 2 }; const char *ChoiceStr[CHC_END] = {"Player", "Random"}; enum EnumDirection { DIR_UP = 0, DIR_DOWN = 1, DIR_LEFT = 2, DIR_RIGHT = 3, DIR_END = 4, DIR_NONE = 4, DIR_END_NONE = 5 }; const char *DirectionStr[DIR_END_NONE] = {"Up", "Down", "Left", "Right", "None"}; enum EnumWaterType { WTRT_NONE = 0, WTRT_WATERFALL = 1, WTRT_WHIRLPOOL = 2, WTRT_END = 3 }; const char *WaterTypeStr[WTRT_END] = {"None", "Waterfall", "Whirlpool"}; enum EnumForceType { FT_NONE = 0, FT_SLIP = 1, FT_STOP = 2, FT_FORCE = 3, FT_PUSH = 4, FT_END = 5 }; const char *ForceTypeStr[FT_END] = {"None", "Slip", "Stop", "Force", "Push"}; enum EnumWarpType { WT_DOOR_STAIR = 0, WT_WARP_PAD = 1, WT_HOLE = 2, WT_BOUNDARY = 3, WT_END = 4 }; const char *WarpTypeStr[WT_END] = {"Door/Stair", "Warp Pad", "Hole", "Boundary"}; enum EnumDialogCommand { DC_FLIP_FLAG = 0, DC_SET_FLAG = 1, DC_UNSET_FLAG = 2, DC_RANDOMIZE_FLAG = 3, DC_TEST_FLAG = 4, DC_DIALOG = 5, DC_YES_NO = 6, DC_ITEM_SHOP = 7, DC_GIVE_ITEM = 8, DC_TAKE_ITEM = 9, DC_CHECK_ITEM = 10, DC_COIN_LIST = 11, DC_TEACH_MOVE = 12, DC_CHECK_MOVE = 13, DC_DELETE_MOVE = 14, DC_GIVE_POKEMON = 15, DC_TAKE_POKEMON = 16, DC_SHOW_POKEMON = 17, DC_VIEW_POKEMON = 18, DC_GIVE_MONEY = 19, DC_TAKE_MONEY = 20, DC_MOVE_EFFECT = 21, DC_TURN_EFFECT = 22, DC_CHECK_DIRECTION = 23, DC_CHECK_ROSTER = 24, DC_CHECK_LEVELS = 25, DC_CHECK_SPECIES = 26, DC_CHECK_HELD_ITEMS = 27, DC_CHECK_MONEY = 28, DC_TRADE = 29, DC_DAYCARE = 30, DC_BATTLE = 31, DC_BADGE = 32, DC_WARP = 33, DC_NAME = 34, DC_MUSIC = 35, DC_SOUND_EFFECT = 36, DC_TIMER = 37, DC_MAP_SIGN = 38, DC_WILD_SCOPE = 39, DC_SAFARI = 40, DC_HEAL_PARTY = 41, DC_REFRESH = 42, DC_CLEAR = 43, DC_PAUSE = 44, DC_NEW_LINE = 45, DC_EXIT = 46, DC_MENU = 47, DC_END = 48 }; const char *DialogCommandStr[DC_END] = {"Flip Flag", "Set Flag", "Unset Flag", "Randomize Flag", "Test Flag", "Dialog", "Yes/No", "Item Shop", "Give Item", "Take Item", "Check Item", "Coin List", "Teach Move", "Delete Move", "Give Pokemon", "Take Pokemon", "Show Pokemon", "View Pokemon", "Give Money", "Take Money", "Move Effect", "Turn Effect", "Check Direction", "Check Roster", "Check Levels", "Check Species", "Check Held Items", "Check Money", "Trade", "Daycare", "Battle", "Badge", "Warp", "Name", "Music", "Sound Effect", "Timer", "Map Sign", "Wild Scope", "Safari", "Heal Party", "Refresh", "Clear", "Pause", "New Line", "Exit", "Menu"}; const char *DialogCommandAbbrStr[DC_END] = {"FF", "SF", "UF", "RF", "TF", "D", "YN", "ItS", "GIt", "TIt", "CIt", "CL", "TMv", "DMv", "GPk", "TPk", "SPk", "VPk", "G$", "T$", "MvEf", "TEf", "CD", "CR", "CLv", "CS", "CHIt", "C$", "T", "Dc", "Bat", "Bdg", "W", "N", "Ms", "SFX", "Tmr", "MS", "WS", "S", "HP", "R", "C", "P", "NL", "X", "M"}; enum EnumMapEffect { MAPE_ITEM = 0, MAPE_PC = 1, MAPE_STRENGTH_BLOCK = 2, MAPE_BUTTON = 3, MAPE_ROCK_SMASH = 4, MAPE_SLOT_MACHINE = 5, MAPE_CARD_FLIP_GAME = 6, MAPE_END = 7 }; const char *MapEffectStr[MAPE_END] = {"Item", "PC", "Strength Block", "Button", "Rock Smash", "Slot Machine", "Card Flip Game"}; enum EnumPCType { PCT_ITEM = 0, PCT_POKEMON = 1, PCT_POKEDEX = 2, PCT_HALL_OF_FAME = 3, PCT_ALL = 4, PCT_END = 5, }; const char *PCTypeStr[PCT_END] = {"Item", "Pokémon", "PokéDex", "Hall of Fame", "All"}; } } #endif