diff options
Diffstat (limited to 'include')
170 files changed, 9253 insertions, 29817 deletions
diff --git a/include/abilities.h b/include/abilities.h deleted file mode 100644 index 36a7ab671..000000000 --- a/include/abilities.h +++ /dev/null @@ -1,86 +0,0 @@ -#ifndef GUARD_ABILITIES_H -#define GUARD_ABILITIES_H - -enum -{ - ABILITY_NONE, - ABILITY_STENCH, - ABILITY_DRIZZLE, - ABILITY_SPEED_BOOST, - ABILITY_BATTLE_ARMOR, - ABILITY_STURDY, - ABILITY_DAMP, - ABILITY_LIMBER, - ABILITY_SAND_VEIL, - ABILITY_STATIC, - ABILITY_VOLT_ABSORB, - ABILITY_WATER_ABSORB, - ABILITY_OBLIVIOUS, - ABILITY_CLOUD_NINE, - ABILITY_COMPOUND_EYES, - ABILITY_INSOMNIA, - ABILITY_COLOR_CHANGE, - ABILITY_IMMUNITY, - ABILITY_FLASH_FIRE, - ABILITY_SHIELD_DUST, - ABILITY_OWN_TEMPO, - ABILITY_SUCTION_CUPS, - ABILITY_INTIMIDATE, - ABILITY_SHADOW_TAG, - ABILITY_ROUGH_SKIN, - ABILITY_WONDER_GUARD, - ABILITY_LEVITATE, - ABILITY_EFFECT_SPORE, - ABILITY_SYNCHRONIZE, - ABILITY_CLEAR_BODY, - ABILITY_NATURAL_CURE, - ABILITY_LIGHTNING_ROD, - ABILITY_SERENE_GRACE, - ABILITY_SWIFT_SWIM, - ABILITY_CHLOROPHYLL, - ABILITY_ILLUMINATE, - ABILITY_TRACE, - ABILITY_HUGE_POWER, - ABILITY_POISON_POINT, - ABILITY_INNER_FOCUS, - ABILITY_MAGMA_ARMOR, - ABILITY_WATER_VEIL, - ABILITY_MAGNET_PULL, - ABILITY_SOUNDPROOF, - ABILITY_RAIN_DISH, - ABILITY_SAND_STREAM, - ABILITY_PRESSURE, - ABILITY_THICK_FAT, - ABILITY_EARLY_BIRD, - ABILITY_FLAME_BODY, - ABILITY_RUN_AWAY, - ABILITY_KEEN_EYE, - ABILITY_HYPER_CUTTER, - ABILITY_PICKUP, - ABILITY_TRUANT, - ABILITY_HUSTLE, - ABILITY_CUTE_CHARM, - ABILITY_PLUS, - ABILITY_MINUS, - ABILITY_FORECAST, - ABILITY_STICKY_HOLD, - ABILITY_SHED_SKIN, - ABILITY_GUTS, - ABILITY_MARVEL_SCALE, - ABILITY_LIQUID_OOZE, - ABILITY_OVERGROW, - ABILITY_BLAZE, - ABILITY_TORRENT, - ABILITY_SWARM, - ABILITY_ROCK_HEAD, - ABILITY_DROUGHT, - ABILITY_ARENA_TRAP, - ABILITY_VITAL_SPIRIT, - ABILITY_WHITE_SMOKE, - ABILITY_PURE_POWER, - ABILITY_SHELL_ARMOR, - ABILITY_CACOPHONY, - ABILITY_AIR_LOCK -}; - -#endif // GUARD_ABILITIES_H diff --git a/include/bard_music.h b/include/bard_music.h new file mode 100644 index 000000000..529fd50f8 --- /dev/null +++ b/include/bard_music.h @@ -0,0 +1,31 @@ +#ifndef GUARD_BARD_MUSIC_H +#define GUARD_BARD_MUSIC_H + +struct BardSound; + +struct BardPhoneme +{ + /*0x00*/ u16 sound; + /*0x02*/ u16 length; + /*0x04*/ s16 pitch; + /*0x06*/ u16 volume; +}; + +struct BardSong +{ + /*0x00*/ u8 currWord; + /*0x01*/ u8 currPhoneme; + /*0x02*/ u8 phonemeTimer; + /*0x03*/ u8 state; + /*0x04*/ s16 var04; + /*0x06*/ u16 volume; + /*0x08*/ s16 pitch; + /*0x0A*/ s16 voiceInflection; + /*0x0C*/ u16 lyrics[6]; + /*0x18*/ struct BardPhoneme phonemes[6]; +}; + +const struct BardSound *GetWordSounds(u16 arg0, u16 arg1); +s32 GetWordPhonemes(struct BardSong *dest, const struct BardSound *src, u16 arg2); + +#endif // GUARD_BARD_MUSIC_H diff --git a/include/battle.h b/include/battle.h index 72211f50f..27ed57045 100644 --- a/include/battle.h +++ b/include/battle.h @@ -2,179 +2,21 @@ #define GUARD_BATTLE_H #include "sprite.h" +#include "constants/battle_constants.h" -#define BATTLE_TYPE_DOUBLE 0x0001 -#define BATTLE_TYPE_LINK 0x0002 -#define BATTLE_TYPE_WILD 0x0004 -#define BATTLE_TYPE_TRAINER 0x0008 -#define BATTLE_TYPE_FIRST_BATTLE 0x0010 -#define BATTLE_TYPE_20 0x0020 -#define BATTLE_TYPE_MULTI 0x0040 -#define BATTLE_TYPE_SAFARI 0x0080 -#define BATTLE_TYPE_BATTLE_TOWER 0x0100 -#define BATTLE_TYPE_WALLY_TUTORIAL 0x0200 -#define BATTLE_TYPE_ROAMER 0x0400 -#define BATTLE_TYPE_EREADER_TRAINER 0x0800 -#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000 -#define BATTLE_TYPE_LEGENDARY 0x2000 -#define BATTLE_TYPE_REGI 0x4000 - -#define BATTLE_WON 0x1 -#define BATTLE_LOST 0x2 -#define BATTLE_DREW 0x3 -#define BATTLE_RAN 0x4 -#define BATTLE_PLAYER_TELEPORTED 0x5 -#define BATTLE_POKE_FLED 0x6 -#define BATTLE_CAUGHT 0x7 -#define BATTLE_OPPONENT_TELEPORTED 0xA - -#define AI_ACTION_DONE 0x0001 -#define AI_ACTION_FLEE 0x0002 -#define AI_ACTION_WATCH 0x0004 -#define AI_ACTION_DO_NOT_ATTACK 0x0008 -#define AI_ACTION_UNK5 0x0010 -#define AI_ACTION_UNK6 0x0020 -#define AI_ACTION_UNK7 0x0040 -#define AI_ACTION_UNK8 0x0080 - -#define STATUS_SLEEP 0x7 -#define STATUS_POISON 0x8 -#define STATUS_BURN 0x10 -#define STATUS_FREEZE 0x20 -#define STATUS_PARALYSIS 0x40 -#define STATUS_TOXIC_POISON 0x80 -#define STATUS_TOXIC_COUNTER 0xF00 - -#define STATUS_PSN_ANY ((STATUS_POISON | STATUS_TOXIC_POISON)) -#define STATUS_ANY ((STATUS_SLEEP | STATUS_POISON | STATUS_BURN | STATUS_FREEZE | STATUS_PARALYSIS | STATUS_TOXIC_POISON)) - -#define STATUS2_CONFUSION 0x00000007 -#define STATUS2_FLINCHED 0x00000008 -#define STATUS2_UPROAR 0x00000070 -#define STATUS2_BIDE 0x00000300 //two bits 0x100 0x200 -#define STATUS2_LOCK_CONFUSE 0x00000C00 -#define STATUS2_MULTIPLETURNS 0x00001000 -#define STATUS2_WRAPPED 0x0000E000 -#define STATUS2_INFATUATION 0x000F0000 -#define STATUS2_FOCUS_ENERGY 0x00100000 -#define STATUS2_TRANSFORMED 0x00200000 -#define STATUS2_RECHARGE 0x00400000 -#define STATUS2_RAGE 0x00800000 -#define STATUS2_SUBSTITUTE 0x01000000 -#define STATUS2_DESTINY_BOND 0x02000000 -#define STATUS2_ESCAPE_PREVENTION 0x04000000 -#define STATUS2_NIGHTMARE 0x08000000 -#define STATUS2_CURSED 0x10000000 -#define STATUS2_FORESIGHT 0x20000000 -#define STATUS2_DEFENSE_CURL 0x40000000 -#define STATUS2_TORMENT 0x80000000 - -#define STATUS3_LEECHSEED_BANK 0x3 -#define STATUS3_LEECHSEED 0x4 -#define STATUS3_ALWAYS_HITS 0x18 //two bits -#define STATUS3_PERISH_SONG 0x20 -#define STATUS3_ON_AIR 0x40 -#define STATUS3_UNDERGROUND 0x80 -#define STATUS3_MINIMIZED 0x100 -#define STATUS3_ROOTED 0x400 -#define STATUS3_CHARGED_UP 0x200 -#define STATUS3_YAWN 0x1800 //two bits -#define STATUS3_IMPRISIONED 0x2000 -#define STATUS3_GRUDGE 0x4000 -#define STATUS3_CANT_SCORE_A_CRIT 0x8000 -#define STATUS3_MUDSPORT 0x10000 -#define STATUS3_WATERSPORT 0x20000 -#define STATUS3_UNDERWATER 0x40000 -#define STATUS3_INTIMIDATE_POKES 0x80000 -#define STATUS3_TRACE 0x100000 - -#define STATUS3_SEMI_INVULNERABLE ((STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER)) - -#define HITMARKER_x20 0x00000020 -#define HITMARKER_DESTINYBOND 0x00000040 -#define HITMARKER_NO_ANIMATIONS 0x00000080 -#define HITMARKER_IGNORE_SUBSTITUTE 0x00000100 -#define HITMARKER_NO_ATTACKSTRING 0x00000200 -#define HITMARKER_ATTACKSTRING_PRINTED 0x00000400 -#define HITMARKER_NO_PPDEDUCT 0x00000800 -#define HITMARKER_PURSUIT_TRAP 0x00001000 -#define HITMARKER_IGNORE_SAFEGUARD 0x00002000 -#define HITMARKER_SYNCHRONISE_EFFECT 0x00004000 -#define HITMARKER_IGNORE_ON_AIR 0x00010000 -#define HITMARKER_IGNORE_UNDERGROUND 0x00020000 -#define HITMARKER_IGNORE_UNDERWATER 0x00040000 -#define HITMARKER_UNABLE_TO_USE_MOVE 0x00080000 -#define HITMARKER_x100000 0x00100000 -#define HITMARKER_x200000 0x00200000 -#define HITMARKER_x400000 0x00400000 -#define HITMARKER_x800000 0x00800000 -#define HITMARKER_GRUDGE 0x01000000 -#define HITMARKER_OBEYS 0x02000000 -#define HITMARKER_x8000000 0x08000000 -#define HITMARKER_FAINTED(bank) ((gBitTable[bank] << 0x1C)) -#define HITMARKER_UNK(bank) ((0x10000000 << bank)) - -#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) - -#define ABILITYEFFECT_ON_SWITCHIN 0x0 -#define ABILITYEFFECT_ENDTURN 0x1 -#define ABILITYEFFECT_MOVES_BLOCK 0x2 -#define ABILITYEFFECT_ABSORBING 0x3 -#define ABILITYEFFECT_CONTACT 0x4 -#define ABILITYEFFECT_IMMUNITY 0x5 -#define ABILITYEFFECT_FORECAST 0x6 -#define ABILITYEFFECT_SYNCHRONIZE 0x7 -#define ABILITYEFFECT_ATK_SYNCHRONIZE 0x8 -#define ABILITYEFFECT_INTIMIDATE1 0x9 -#define ABILITYEFFECT_INTIMIDATE2 0xA -#define ABILITYEFFECT_TRACE 0xB -#define ABILITYEFFECT_CHECK_OTHER_SIDE 0xC -#define ABILITYEFFECT_CHECK_BANK_SIDE 0xD -#define ABILITYEFFECT_FIELD_SPORT 0xE -#define ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK 0xF -#define ABILITYEFFECT_COUNT_OTHER_SIZE 0x10 -#define ABILITYEFFECT_COUNT_BANK_SIDE 0x11 -#define ABILITYEFFECT_COUNT_ON_FIELD 0x12 -#define ABILITYEFFECT_CHECK_ON_FIELD 0x13 - -#define WEATHER_HAS_EFFECT ((!AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_AIR_LOCK, 0, 0))) - -#define MOVESTATUS_MISSED (1 << 0) -#define MOVESTATUS_SUPEREFFECTIVE (1 << 1) -#define MOVESTATUS_NOTVERYEFFECTIVE (1 << 2) -#define MOVESTATUS_NOTAFFECTED (1 << 3) -#define MOVESTATUS_ONEHITKO (1 << 4) -#define MOVESTATUS_FAILED (1 << 5) -#define MOVESTATUS_ENDURED (1 << 6) -#define MOVESTATUS_HUNGON (1 << 7) - -#define MOVESTATUS_NOEFFECT ((MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED)) - -#define MAX_TRAINER_ITEMS 4 -#define MAX_MON_MOVES 4 -#define MAX_BANKS_BATTLE 4 - -#define WEATHER_RAIN_TEMPORARY (1 << 0) -#define WEATHER_RAIN_DOWNPOUR (1 << 1) -#define WEATHER_RAIN_PERMANENT (1 << 2) -#define WEATHER_RAIN_ANY ((WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_DOWNPOUR | WEATHER_RAIN_PERMANENT)) -#define WEATHER_SANDSTORM_TEMPORARY (1 << 3) -#define WEATHER_SANDSTORM_PERMANENT (1 << 4) -#define WEATHER_SANDSTORM_ANY ((WEATHER_SANDSTORM_TEMPORARY | WEATHER_SANDSTORM_PERMANENT)) -#define WEATHER_SUN_TEMPORARY (1 << 5) -#define WEATHER_SUN_PERMANENT (1 << 6) -#define WEATHER_SUN_ANY ((WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT)) -#define WEATHER_HAIL (1 << 7) - -// needed to match the hack that is get_item, thanks cam, someone else clean this up later. -extern u8 unk_2000000[]; +enum +{ + BATTLE_TERRAIN_GRASS, + BATTLE_TERRAIN_LONG_GRASS, + BATTLE_TERRAIN_SAND, + BATTLE_TERRAIN_UNDERWATER, + BATTLE_TERRAIN_WATER, + BATTLE_TERRAIN_POND, + BATTLE_TERRAIN_MOUNTAIN, + BATTLE_TERRAIN_CAVE, + BATTLE_TERRAIN_BUILDING, + BATTLE_TERRAIN_PLAIN, +}; struct Trainer { @@ -221,7 +63,11 @@ struct AI_ThinkingStruct /* 0x2016800 */ struct BattleStruct /* 0x2000000 */ { - u8 filler0[0x15DDE]; + /*0x00000*/ u8 unk0; + /*0x00001*/ bool8 unk1; + /*0x00002*/ u8 unk2; + /*0x00003*/ bool8 unk3; + u8 filler4[0x15DDA]; /*0x15DDE*/ u8 unk15DDE; /*0x15DDF*/ u8 unk15DDF; /*0x15DE0*/ u8 filler15DE0[0x220]; @@ -229,12 +75,11 @@ struct BattleStruct /* 0x2000000 */ /*0x16001*/ u8 turnEffectsBank; /*0x16002*/ u8 animTurn; /*0x16003*/ u8 scriptingActive; - /*0x16004*/ u8 wrappedMove1[4]; - /*0x16008*/ u8 wrappedMove2[4]; + /*0x16004*/ u8 wrappedMove[8]; /*0x1600C*/ u8 cmd49StateTracker; /*0x1600D*/ u8 unk1600D; /*0x1600E*/ u8 turncountersTracker; - /*0x1600F*/ u8 cmd23StateTracker; + /*0x1600F*/ u8 getexpStateTracker; /*0x16010*/ u8 moveTarget[4]; /*0x16014*/ u8 unk16014; /*0x16015*/ u8 unk16015; @@ -382,10 +227,8 @@ struct BattleStruct /* 0x2000000 */ /*0x160D5*/ u8 unk160D5; /*0x160D6*/ u8 unk160D6; /*0x160D7*/ u8 unk160D7; - /*0x160D8*/ u8 unk160D8; - /*0x160D9*/ u8 unk160D9; - /*0x160DA*/ u8 unk160DA; - /*0x160DB*/ u8 unk160DB; + /*0x160D8*/ u8 unk160D8[2]; + /*0x160DA*/ u8 unk160DA[2]; /*0x160DC*/ u8 unk160DC; /*0x160DD*/ u8 intimidateBank; /*0x160DE*/ u8 unk160DE; @@ -461,7 +304,7 @@ struct BattleStruct /* 0x2000000 */ struct DisableStruct { - /*0x00*/ u32 unk0; + /*0x00*/ u32 transformedMonPersonality; /*0x04*/ u16 disabledMove; /*0x06*/ u16 encoredMove; /*0x08*/ u8 protectUses; @@ -518,6 +361,11 @@ struct BattleResults u8 unk36[10]; // usedBalls? }; +struct Struct2017100 +{ + u32 arr[4]; +}; + struct Struct2017800 { u8 invisible:1; @@ -530,25 +378,25 @@ struct Struct2017800 struct Struct2017810 { - u8 unk0_0:1; - u8 unk0_1:1; - u8 unk0_2:1; - u8 unk0_3:1; - u8 unk0_4:1; - u8 unk0_5:1; - u8 unk0_6:1; - u8 unk0_7:1; - u8 unk1_0:1; - u8 unk1_1:5; - u8 unk2; - u8 unk3; - u8 unk4; - u8 unk5; - u8 unk6; - u8 unk7; - u8 unk8; - u8 unk9; - u8 fillerA[2]; + /*0x00*/ u8 unk0_0:1; + /*0x00*/ u8 unk0_1:1; + /*0x00*/ u8 unk0_2:1; + /*0x00*/ u8 unk0_3:1; + /*0x00*/ u8 unk0_4:1; + /*0x00*/ u8 unk0_5:1; + /*0x00*/ u8 unk0_6:1; + /*0x00*/ u8 unk0_7:1; + /*0x01*/ u8 unk1_0:1; + /*0x01*/ u8 unk1_1:5; + /*0x02*/ u8 unk2; + /*0x03*/ u8 unk3; + /*0x04*/ u8 unk4; + /*0x05*/ u8 unk5; + /*0x06*/ u8 unk6; + /*0x07*/ u8 unk7; + /*0x08*/ u8 unk8; + /*0x09*/ u8 unk9; + /*0x0A*/ u8 fillerA[2]; }; struct Struct2017840 @@ -651,25 +499,36 @@ extern struct DisableStruct gDisableStructs[MAX_BANKS_BATTLE]; extern struct BattleResults gBattleResults; extern struct ProtectStruct gProtectStructs[MAX_BANKS_BATTLE]; extern struct SpecialStatus gSpecialStatuses[MAX_BANKS_BATTLE]; -extern struct sideTimer gSideTimer[2]; +extern struct sideTimer gSideTimers[2]; extern struct WishFutureKnock gWishFutureKnock; extern struct AI_ThinkingStruct gAIThinkingSpace; extern struct Struct20238C8 gUnknown_020238C8; -// TODO: move ewram to global.h -extern u8 ewram[]; - -#define BATTLE_STRUCT ((struct BattleStruct *) (ewram + 0x00000)) -#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(ewram + 0x16800)) -#define UNK_2016A00_STRUCT ((struct UnkBattleStruct1 *) (ewram + 0x16A00)) -#define AI_STACK ((struct AI_Stack *) (ewram + 0x16C00)) -#define AI_ARRAY_160CC ((struct SmallItemStruct *) (ewram + 0x160CC)) -#define B_BATTLESCRIPTS_STACK ((struct scriptsStack *) (ewram + 0x17110)) -#define B_FUNCTION_STACK ((struct funcStack *) (ewram + 0x17140)) -#define ewram17800 ((struct Struct2017800 *) (ewram + 0x17800)) -#define ewram17810 ((struct Struct2017810 *) (ewram + 0x17810)) -#define ewram17840 (*(struct Struct2017840 *) (ewram + 0x17840)) -#define ewram17000 ((u32 *) (ewram + 0x17100)) +// used in many battle files, it seems as though Hisashi Sogabe wrote +// some sort of macro to replace the use of actually calling memset. +// Perhaps it was thought calling memset was much slower? + +// The compiler wont allow us to locally declare ptr in this macro; some +// functions that invoke this macro will not match without this egregeous +// assumption about the variable names, so in order to avoid this assumption, +// we opt to pass the variables themselves, even though it is likely that +// Sogabe assumed the variables were named src and dest. Trust me: I tried to +// avoid assuming variable names, but the ROM just will not match without the +// assumptions. Therefore, these macros are bad practice, but I'm putting them +// here anyway. +#define MEMSET_ALT(data, c, size, var, dest) \ +{ \ + dest = (u8 *)data; \ + for(var = 0; var < (u32)size; var++) \ + dest[var] = c; \ +} \ + +#define MEMCPY_ALT(data, dest, size, var, src) \ +{ \ + src = (u8 *)data; \ + for(var = 0; var < (u32)size; var++) \ + dest[var] = src[var]; \ +} \ typedef void (*BattleCmdFunc)(void); @@ -690,7 +549,7 @@ extern u8 gBattleTextBuff1[]; //function declarations of buffer emits void EmitGetAttributes(u8 buffID, u8 request, u8 c); //0x0 void Emitcmd1(u8 a, u8 b, u8 c); //0x1 -void EmitSetAttributes(u8 a, u8 request, u8 c, u8 bytes, void *data); //0x2 +void EmitSetMonData(u8 a, u8 request, u8 c, u8 bytes, void *data); //0x2 void EmitSendOutPoke(u8 a, u8 b, u8 c); //0x5 void EmitReturnPokeToBall(u8 a, u8 b); //0x6 void EmitTrainerSlide(u8 a); //0x8 @@ -710,7 +569,6 @@ void EmitEffectivenessSound(u8 a, u16 sound); //0x2B void Emitcmd44(u8 a, u16 sound); //0x2C void EmitFaintingCry(u8 a); //0x2D void EmitIntroSlide(u8 a, u8 b); //0x2E -void Emitcmd48(u8 a, u8 *b, u8 c); //0x30 void Emitcmd49(u8 a); //0x31 void EmitSpriteInvisibility(u8 a, u8 b); //0x33 void EmitBattleAnimation(u8 a, u8 b, u16 c); //0x34 @@ -735,7 +593,7 @@ extern u8 gBattleTextBuff1[]; // asm/battle_1.o void sub_800D6D4(); void sub_800D74C(); -void sub_800D7B8(void); +void DrawMainBattleBackground(void); void sub_800DAB8(); void sub_800DE30(u8); void sub_800E23C(); @@ -746,7 +604,7 @@ void InitBattle(void); void sub_800EC9C(void); void sub_800F104(void); void sub_800F298(void); -void sub_800F808(void); +void BattleMainCB2(void); void sub_800F838(struct Sprite *); u8 CreateNPCTrainerParty(struct Pokemon *, u16); void sub_800FCFC(void); @@ -778,32 +636,28 @@ void sub_8011970(void); void sub_80119B4(void); void BattleBeginFirstTurn(void); void BattleTurnPassed(void); +void RunBattleScriptCommands_PopCallbacksStack(void); +void RunBattleScriptCommands(void); +bool8 TryRunFromBattle(u8 bank); // asm/battle_2.o void sub_8012324(void); -void sub_8012FBC(u8, u8); -u8 b_first_side(u8, u8, u8); -void TurnValuesCleanUp(u8); -void SpecialStatusesClear(void); -void sub_80138F0(void); -void sub_80155A4(); -void CancelMultiTurnMoves(u8 bank); -void PrepareStringBattle(); -void sub_80156DC(); -void sub_80157C4(u8 index); +void SwapTurnOrder(u8, u8); +u8 GetWhoStrikesFirst(u8, u8, u8); // asm/battle_3.o u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check); u8 UpdateTurnCounters(void); u8 TurnBasedEffects(void); -u8 sub_80170DC(); -u8 sub_80173A4(); +u8 HandleFaintedMonActions(); u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 move); u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn); +u8 GetMoveTarget(u16 move, u8 useMoveTarget); // asm/battle_4.o void AI_CalcDmg(u8, u8); u8 TypeCalc(u16 move, u8 bank_atk, u8 bank_def); +u8 BankGetTurnOrder(u8 bank); // asm/battle_5.o void nullsub_91(void); @@ -826,6 +680,7 @@ void sub_80324F8(struct Pokemon *, u8); void sub_8032638(); void sub_8032AA8(u8, u8); void SetBankFuncToOpponentBufferRunCommand(void); +void BattleMusicStop(void); // asm/battle_9.o void SetBankFuncToLinkOpponentBufferRunCommand(void); diff --git a/include/battle_ai.h b/include/battle_ai.h index 2922da0b3..c22ca8633 100644 --- a/include/battle_ai.h +++ b/include/battle_ai.h @@ -1,11 +1,6 @@ #ifndef GUARD_BATTLEAI_H #define GUARD_BATTLEAI_H -#define AIScriptRead32(ptr) ((ptr)[0] | (ptr)[1] << 8 | (ptr)[2] << 16 | (ptr)[3] << 24) -#define AIScriptRead16(ptr) ((ptr)[0] | (ptr)[1] << 8) -#define AIScriptRead8(ptr) ((ptr)[0]) -#define AIScriptReadPtr(ptr) (u8*) AIScriptRead32(ptr) - enum { TARGET, @@ -29,5 +24,6 @@ void sub_810745C(void); void AIStackPushVar(u8 *); u8 AIStackPop(void); void BattleAI_HandleItemUseBeforeAISetup(void); +void RecordAbilityBattle(u8 a, u8 b); #endif diff --git a/include/battle_anim.h b/include/battle_anim.h index 48ceece21..a94e6d13c 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -3,28 +3,18 @@ #include "sprite.h" -#define SCRIPT_READ_8(ptr) ((ptr)[0]) -#define SCRIPT_READ_16(ptr) ((ptr)[0] | ((ptr)[1] << 8)) -#define SCRIPT_READ_32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24)) - -#define REG_BGnCNT_BITFIELD(n) (*(struct BGCntrlBitfield *)REG_ADDR_BG##n##CNT) +#define REG_BGnCNT_BITFIELD(n) (*(vBgCnt *)REG_ADDR_BG##n##CNT) +#define REG_BG0CNT_BITFIELD REG_BGnCNT_BITFIELD(0) #define REG_BG1CNT_BITFIELD REG_BGnCNT_BITFIELD(1) #define REG_BG2CNT_BITFIELD REG_BGnCNT_BITFIELD(2) +#define REG_BG3CNT_BITFIELD REG_BGnCNT_BITFIELD(3) -#define EWRAM_14800 ((u16 *)(unk_2000000 + 0x14800)) -#define EWRAM_17800 ((struct UnknownStruct1 *)(unk_2000000 + 0x17800)) -#define EWRAM_17810 ((struct UnknownStruct3 *)(unk_2000000 + 0x17810)) -#define EWRAM_18000 ((u16 *)(unk_2000000 + 0x18000)) -#define EWRAM_19348 (*(u16 *)(unk_2000000 + 0x19348)) - -struct BGCntrlBitfield +enum { - volatile u16 priority:2; - volatile u16 charBaseBlock:2; - volatile u16 field_0_2:4; - volatile u16 field_1_0:5; - volatile u16 areaOverflowMode:1; - volatile u16 screenSize:2; + ANIM_BANK_ATTACKER, + ANIM_BANK_TARGET, + ANIM_BANK_ATK_PARTNER, + ANIM_BANK_DEF_PARTNER, }; struct BattleAnimBackground @@ -52,16 +42,26 @@ struct UnknownStruct3 u8 filler1[0xB]; }; -void DoMoveAnim(const u8 *const moveAnims[], u16 b, u8 c); -bool8 b_side_obj__get_some_boolean(u8 a); +extern void (*gAnimScriptCallback)(void); +extern u8 gAnimScriptActive; +extern u8 gAnimFriendship; +extern u8 gAnimMoveTurn; +extern struct DisableStruct *gAnimDisableStructPtr; + +void DoMoveAnim(u16 move); +void LaunchBattleAnimation(const u8 *const moveAnims[], u16 b, u8 c); +bool8 IsAnimBankSpriteVisible(u8 a); void sub_8076034(u8, u8); bool8 IsContest(void); -void battle_anim_clear_some_data(void); -void move_anim_8072740(struct Sprite *sprite); +void ClearBattleAnimationVars(void); +void DestroyAnimSprite(struct Sprite *sprite); void DestroyAnimVisualTask(u8 task); void DestroyAnimVisualTask(u8 task); -bool8 b_side_obj__get_some_boolean(u8); -u8 IsContest(); - +bool8 IsAnimBankSpriteVisible(u8); +s8 BattleAnimAdjustPanning(s8 a); +void sub_80763FC(u16 a, u16 *b, u32 c, u8 d); +s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan); +s16 sub_8077104(s16 newPan, int oldPan); +void DestroyAnimSoundTask(u8 taskId); #endif diff --git a/include/battle_anim_80CA710.h b/include/battle_anim_80CA710.h index fbbe23b97..14a6ca898 100644 --- a/include/battle_anim_80CA710.h +++ b/include/battle_anim_80CA710.h @@ -2,5 +2,7 @@ #define GUARD_BATTLE_ANIM_80CA710_H void sub_80E4EF8(int, int, int, int, u16, u8, int); +s16 sub_81174E0(s16 a); +s16 sub_81174C4(s16 a, s16 b); #endif // GUARD_BATTLE_ANIM_80CA710_H diff --git a/include/battle_interface.h b/include/battle_interface.h index 8230c7502..a3e00fd12 100644 --- a/include/battle_interface.h +++ b/include/battle_interface.h @@ -22,14 +22,14 @@ void sub_8043D84(u8, u8, u32, u32, u32); void sub_8043DB0(u8); void sub_8043DFC(u8); void nullsub_11(); -void sub_8043EB4(u8); +void UpdateOamPriorityInAllHealthboxes(u8); void sub_8043F44(u8); void sub_804454C(void); u8 sub_8044804(u8, const struct BattleInterfaceStruct2 *, u8, u8); void sub_8044CA0(u8); void sub_8045A5C(u8, struct Pokemon *, u8); s32 sub_8045C78(u8, u8, u8, u8); -s16 sub_80460C8(struct BattleInterfaceStruct1 *, int *, void *, int); +s16 sub_80460C8(struct BattleInterfaceStruct1 *, int *, u16 *, int); u8 GetScaledHPFraction(s16, s16, u8); u8 GetHPBarLevel(s16, s16); void sub_80440EC(u8 a, s16 b, u8 c); diff --git a/include/battle_message.h b/include/battle_message.h index 3e37a1ccd..9c27994ee 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -16,6 +16,143 @@ struct StringInfoBattle u8 textBuffs[3][0x10]; }; +// for B_TXT_BUFF1, B_TXT_BUFF2 and B_TXT_BUFF3 + +#define B_BUFF_STRING 0 +#define B_BUFF_NUMBER 1 +#define B_BUFF_MOVE 2 +#define B_BUFF_TYPE 3 +#define B_BUFF_MON_NICK_WITH_PREFIX 4 +#define B_BUFF_STAT 5 +#define B_BUFF_SPECIES 6 +#define B_BUFF_MON_NICK 7 +#define B_BUFF_NEGATIVE_FLAVOR 8 +#define B_BUFF_ABILITY 9 +#define B_BUFF_ITEM 10 + +#define B_BUFF_PLACEHOLDER_BEGIN 0xFD +#define B_BUFF_EOS 0xFF + +#define PREPARE_FLAVOR_BUFFER(textVar, flavorId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_NEGATIVE_FLAVOR; \ + textVar[2] = flavorId; \ + textVar[3] = B_BUFF_EOS; \ +} + +#define PREPARE_STAT_BUFFER(textVar, statId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_STAT; \ + textVar[2] = statId; \ + textVar[3] = B_BUFF_EOS; \ +} + +#define PREPARE_ABILITY_BUFFER(textVar, abilityId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_ABILITY; \ + textVar[2] = abilityId; \ + textVar[3] = B_BUFF_EOS; \ +} + +#define PREPARE_TYPE_BUFFER(textVar, typeId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_TYPE; \ + textVar[2] = typeId; \ + textVar[3] = B_BUFF_EOS; \ +} + +#define PREPARE_BYTE_NUMBER_BUFFER(textVar, maxDigits, number) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_NUMBER; \ + textVar[2] = 1; \ + textVar[3] = maxDigits; \ + textVar[4] = (number); \ + textVar[5] = B_BUFF_EOS; \ +} + +#define PREPARE_HWORD_NUMBER_BUFFER(textVar, maxDigits, number) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_NUMBER; \ + textVar[2] = 2; \ + textVar[3] = maxDigits; \ + textVar[4] = (number); \ + textVar[5] = (number & 0x0000FF00) >> 8; \ + textVar[6] = B_BUFF_EOS; \ +} + +#define PREPARE_WORD_NUMBER_BUFFER(textVar, maxDigits, number) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_NUMBER; \ + textVar[2] = 4; \ + textVar[3] = maxDigits; \ + textVar[4] = (number); \ + textVar[5] = (number & 0x0000FF00) >> 8; \ + textVar[6] = (number & 0x00FF0000) >> 16; \ + textVar[7] = (number & 0xFF000000) >> 24; \ + textVar[8] = B_BUFF_EOS; \ +} + +#define PREPARE_STRING_BUFFER(textVar, stringId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_STRING; \ + textVar[2] = stringId; \ + textVar[3] = (stringId & 0xFF00) >> 8; \ + textVar[4] = B_BUFF_EOS; \ +} + +#define PREPARE_MOVE_BUFFER(textVar, move) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_MOVE; \ + textVar[2] = move; \ + textVar[3] = (move & 0xFF00) >> 8; \ + textVar[4] = B_BUFF_EOS; \ +} + +#define PREPARE_ITEM_BUFFER(textVar, item) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_ITEM; \ + textVar[2] = item; \ + textVar[3] = (item & 0xFF00) >> 8; \ + textVar[4] = B_BUFF_EOS; \ +} + +#define PREPARE_SPECIES_BUFFER(textVar, species) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_SPECIES; \ + textVar[2] = species; \ + textVar[3] = (species & 0xFF00) >> 8; \ + textVar[4] = B_BUFF_EOS; \ +} + +#define PREPARE_MON_NICK_WITH_PREFIX_BUFFER(textVar, bank, partyId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_MON_NICK_WITH_PREFIX; \ + textVar[2] = bank; \ + textVar[3] = partyId; \ + textVar[4] = B_BUFF_EOS; \ +} + +#define PREPARE_MON_NICK_BUFFER(textVar, bank, partyId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_MON_NICK; \ + textVar[2] = bank; \ + textVar[3] = partyId; \ + textVar[4] = B_BUFF_EOS; \ +} + void BufferStringBattle(u16 stringID); u32 StrCpyDecodeToDisplayedStringBattle(const u8* src); u32 StrCpyDecodeBattle(const u8* src, u8* dst); diff --git a/include/battle_move_effects.h b/include/battle_move_effects.h deleted file mode 100644 index 4a9415379..000000000 --- a/include/battle_move_effects.h +++ /dev/null @@ -1,222 +0,0 @@ -#ifndef GUARD_BATTLE_MOVE_EFFECTS_H -#define GUARD_BATTLE_MOVE_EFFECTS_H - -enum -{ - EFFECT_HIT, - EFFECT_SLEEP, - EFFECT_POISON_HIT, - EFFECT_ABSORB, - EFFECT_BURN_HIT, - EFFECT_FREEZE_HIT, - EFFECT_PARALYZE_HIT, - EFFECT_EXPLOSION, - EFFECT_DREAM_EATER, - EFFECT_MIRROR_MOVE, - EFFECT_ATTACK_UP, - EFFECT_DEFENSE_UP, - EFFECT_SPEED_UP, - EFFECT_SPECIAL_ATTACK_UP, - EFFECT_SPECIAL_DEFENSE_UP, - EFFECT_ACCURACY_UP, - EFFECT_EVASION_UP, - EFFECT_ALWAYS_HIT, - EFFECT_ATTACK_DOWN, - EFFECT_DEFENSE_DOWN, - EFFECT_SPEED_DOWN, - EFFECT_SPECIAL_ATTACK_DOWN, // unused - EFFECT_SPECIAL_DEFENSE_DOWN, // unused - EFFECT_ACCURACY_DOWN, - EFFECT_EVASION_DOWN, - EFFECT_HAZE, - EFFECT_BIDE, - EFFECT_RAMPAGE, - EFFECT_ROAR, - EFFECT_MULTI_HIT, - EFFECT_CONVERSION, - EFFECT_FLINCH_HIT, - EFFECT_RESTORE_HP, - EFFECT_TOXIC, - EFFECT_PAY_DAY, - EFFECT_LIGHT_SCREEN, - EFFECT_TRI_ATTACK, - EFFECT_REST, - EFFECT_OHKO, - EFFECT_RAZOR_WIND, - EFFECT_SUPER_FANG, - EFFECT_DRAGON_RAGE, - EFFECT_TRAP, - EFFECT_HIGH_CRITICAL, - EFFECT_DOUBLE_HIT, - EFFECT_RECOIL_IF_MISS, - EFFECT_MIST, - EFFECT_FOCUS_ENERGY, - EFFECT_RECOIL, - EFFECT_CONFUSE, - EFFECT_ATTACK_UP_2, - EFFECT_DEFENSE_UP_2, - EFFECT_SPEED_UP_2, - EFFECT_SPECIAL_ATTACK_UP_2, - EFFECT_SPECIAL_DEFENSE_UP_2, - EFFECT_ACCURACY_UP_2, - EFFECT_EVASION_UP_2, - EFFECT_TRANSFORM, - EFFECT_ATTACK_DOWN_2, - EFFECT_DEFENSE_DOWN_2, - EFFECT_SPEED_DOWN_2, - EFFECT_SPECIAL_ATTACK_DOWN_2, - EFFECT_SPECIAL_DEFENSE_DOWN_2, - EFFECT_ACCURACY_DOWN_2, - EFFECT_EVASION_DOWN_2, - EFFECT_REFLECT, - EFFECT_POISON, - EFFECT_PARALYZE, - EFFECT_ATTACK_DOWN_HIT, - EFFECT_DEFENSE_DOWN_HIT, - EFFECT_SPEED_DOWN_HIT, - EFFECT_SPECIAL_ATTACK_DOWN_HIT, - EFFECT_SPECIAL_DEFENSE_DOWN_HIT, - EFFECT_ACCURACY_DOWN_HIT, - EFFECT_EVASION_DOWN_HIT, - EFFECT_SKY_ATTACK, - EFFECT_CONFUSE_HIT, - EFFECT_TWINEEDLE, - EFFECT_VITAL_THROW, - EFFECT_SUBSTITUTE, - EFFECT_RECHARGE, - EFFECT_RAGE, - EFFECT_MIMIC, - EFFECT_METRONOME, - EFFECT_LEECH_SEED, - EFFECT_SPLASH, - EFFECT_DISABLE, - EFFECT_LEVEL_DAMAGE, - EFFECT_PSYWAVE, - EFFECT_COUNTER, - EFFECT_ENCORE, - EFFECT_PAIN_SPLIT, - EFFECT_SNORE, - EFFECT_CONVERSION_2, - EFFECT_LOCK_ON, - EFFECT_SKETCH, - EFFECT_UNUSED_60, // thaw - EFFECT_SLEEP_TALK, - EFFECT_DESTINY_BOND, - EFFECT_FLAIL, - EFFECT_SPITE, - EFFECT_FALSE_SWIPE, - EFFECT_HEAL_BELL, - EFFECT_QUICK_ATTACK, - EFFECT_TRIPLE_KICK, - EFFECT_THIEF, - EFFECT_MEAN_LOOK, - EFFECT_NIGHTMARE, - EFFECT_MINIMIZE, - EFFECT_CURSE, - EFFECT_UNUSED_6E, - EFFECT_PROTECT, - EFFECT_SPIKES, - EFFECT_FORESIGHT, - EFFECT_PERISH_SONG, - EFFECT_SANDSTORM, - EFFECT_ENDURE, - EFFECT_ROLLOUT, - EFFECT_SWAGGER, - EFFECT_FURY_CUTTER, - EFFECT_ATTRACT, - EFFECT_RETURN, - EFFECT_PRESENT, - EFFECT_FRUSTRATION, - EFFECT_SAFEGUARD, - EFFECT_THAW_HIT, - EFFECT_MAGNITUDE, - EFFECT_BATON_PASS, - EFFECT_PURSUIT, - EFFECT_RAPID_SPIN, - EFFECT_SONICBOOM, - EFFECT_UNUSED_83, - EFFECT_MORNING_SUN, - EFFECT_SYNTHESIS, - EFFECT_MOONLIGHT, - EFFECT_HIDDEN_POWER, - EFFECT_RAIN_DANCE, - EFFECT_SUNNY_DAY, - EFFECT_DEFENSE_UP_HIT, - EFFECT_ATTACK_UP_HIT, - EFFECT_ALL_STATS_UP_HIT, - EFFECT_UNUSED_8D, // incomplete fake out in gen 2 - EFFECT_BELLY_DRUM, - EFFECT_PSYCH_UP, - EFFECT_MIRROR_COAT, - EFFECT_SKULL_BASH, - EFFECT_TWISTER, - EFFECT_EARTHQUAKE, - EFFECT_FUTURE_SIGHT, - EFFECT_GUST, - EFFECT_FLINCH_HIT_2, // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM - EFFECT_SOLARBEAM, - EFFECT_THUNDER, - EFFECT_TELEPORT, - EFFECT_BEAT_UP, - EFFECT_FLY, - EFFECT_DEFENSE_CURL, - EFFECT_SOFTBOILED, - EFFECT_FAKE_OUT, - EFFECT_UPROAR, - EFFECT_STOCKPILE, - EFFECT_SPIT_UP, - EFFECT_SWALLOW, - EFFECT_UNUSED_A3, - EFFECT_HAIL, - EFFECT_TORMENT, - EFFECT_FLATTER, - EFFECT_WILL_O_WISP, - EFFECT_MEMENTO, - EFFECT_FACADE, - EFFECT_FOCUS_PUNCH, - EFFECT_SMELLINGSALT, - EFFECT_FOLLOW_ME, - EFFECT_NATURE_POWER, - EFFECT_CHARGE, - EFFECT_TAUNT, - EFFECT_HELPING_HAND, - EFFECT_TRICK, - EFFECT_ROLE_PLAY, - EFFECT_WISH, - EFFECT_ASSIST, - EFFECT_INGRAIN, - EFFECT_SUPERPOWER, - EFFECT_MAGIC_COAT, - EFFECT_RECYCLE, - EFFECT_REVENGE, - EFFECT_BRICK_BREAK, - EFFECT_YAWN, - EFFECT_KNOCK_OFF, - EFFECT_ENDEAVOR, - EFFECT_ERUPTION, - EFFECT_SKILL_SWAP, - EFFECT_IMPRISON, - EFFECT_REFRESH, - EFFECT_GRUDGE, - EFFECT_SNATCH, - EFFECT_LOW_KICK, - EFFECT_SECRET_POWER, - EFFECT_DOUBLE_EDGE, - EFFECT_TEETER_DANCE, - EFFECT_BLAZE_KICK, - EFFECT_MUD_SPORT, - EFFECT_POISON_FANG, - EFFECT_WEATHER_BALL, - EFFECT_OVERHEAT, - EFFECT_TICKLE, - EFFECT_COSMIC_POWER, - EFFECT_SKY_UPPERCUT, - EFFECT_BULK_UP, - EFFECT_POISON_TAIL, - EFFECT_WATER_SPORT, - EFFECT_CALM_MIND, - EFFECT_DRAGON_DANCE, - EFFECT_CAMOUFLAGE, -}; - -#endif // GUARD_BATTLE_MOVE_EFFECTS_H diff --git a/include/battle_party_menu.h b/include/battle_party_menu.h index 71bd2cf51..d7ad53eed 100644 --- a/include/battle_party_menu.h +++ b/include/battle_party_menu.h @@ -1,9 +1,7 @@ #ifndef GUARD_BATTLE_PARTY_MENU_H #define GUARD_BATTLE_PARTY_MENU_H -extern u8 unk_2000000[]; -#define EWRAM_1609D unk_2000000[0x1609D] - -void SetUpBattlePokemonMenu(u8); +void HandleBattlePartyMenu(u8); +bool8 SetUpBattlePartyMenu(void); #endif diff --git a/include/battle_setup.h b/include/battle_setup.h index c8c463f6d..8423a6e6e 100644 --- a/include/battle_setup.h +++ b/include/battle_setup.h @@ -40,97 +40,58 @@ struct TrainerPartyMember3 u16 moves[4]; }; -struct TrainerBattleSpec -{ - void *ptr; - u8 ptrType; -}; - struct TrainerEyeTrainer { - u16 trainerNums[5]; + u16 opponentIDs[5]; // Each of these trainers has 5 increasingly stronger teams. u16 mapGroup; u16 mapNum; }; -//void task01_battle_start(u8 taskId); -//void task_add_01_battle_start(u8 transition, u16 song); -void CheckForSafariZoneAndProceed(void); -void StartBattle_StandardWild(void); -void StartBattle_Roamer(void); -void StartBattle_Safari(void); -//void task_add_01_battle_start_with_music_and_stats(void); -//void StartBattle_WallyTutorial(void); -void StartBattle_ScriptedWild(void); -//void StartBattle_SouthernIsland(void); -//void StartBattle_Rayquaza(void); -//void StartBattle_GroudonKyogre(void); -//void StartBattle_Regi(void); -void HandleWildBattleEnd(void); -void HandleScriptedWildBattleEnd(void); -s8 GetBattleTerrain(void); -//s8 GetBattleTransitionTypeByMap(void); -//u16 GetSumOfPartyMonLevel(u8 numMons); -//u8 GetSumOfEnemyPartyLevel(u16 trainerNum, u8 numMons); -u8 GetWildBattleTransition(void); -u8 GetTrainerBattleTransition(void); -u8 GetBattleTowerBattleTransition(void); -//void ChooseStarter(void); -void CB2_GiveStarter(void); -void CB2_StartFirstBattle(void); -void HandleFirstBattleEnd(void); -//u32 TrainerBattleLoadArg32(u8 *ptr); -//u16 TrainerBattleLoadArg16(u8 *ptr); -//u8 TrainerBattleLoadArg8(u8 *ptr); -//u16 trainerflag_opponent(void); -bool32 battle_exit_is_player_defeat(u32 a1); -//void sub_80822BC(void); -//void TrainerBattleLoadArgs(const struct TrainerBattleSpec *specs, u8 *data); -//void battle_80801F0(void); -u8 *TrainerBattleConfigure(const u8 *data); +void BattleSetup_StartWildBattle(void); +void BattleSetup_StartRoamerBattle(void); +void BattleSetup_StartScriptedWildBattle(void); +s8 BattleSetup_GetTerrain(void); +u8 BattleSetup_GetBattleTowerBattleTransition(void); +u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data); void TrainerWantsBattle(u8, u8 *); + bool32 GetTrainerFlagFromScriptPointer(u8 *data); -//void sub_8082524(void); -//u8 sub_8082558(void); -//u8 sub_8082564(void); +//u8 ScrSpecial_GetTrainerBattleMode(void); +//u8 ScrSpecial_HasTrainerBeenFought(void); //void sub_808257C(void); //void unref_sub_8082590(void); // unused -u8 trainer_flag_check(u16); -void trainer_flag_set(u16); -void trainer_flag_clear(u16); -void sub_80825E4(void); -void sub_808260C(void); +u8 HasTrainerAlreadyBeenFought(u16); +void SetTrainerFlag(u16); +void ClearTrainerFlag(u16); +void BattleSetup_StartTrainerBattle(void); +void CB2_EndTrainerBattle(void); void do_choose_name_or_words_screen(void); -//void sub_80826B0(void); -//void sub_80826D8(void); -u8 *sub_80826E8(void); -u8 *sub_8082700(void); -//void sub_8082718(void); +//void ScrSpecial_StartTrainerEyeRematch(void); +//void ScrSpecial_ShowTrainerIntroSpeech(void); +u8 *BattleSetup_GetScriptAddrAfterBattle(void); +u8 *BattleSetup_GetTrainerPostBattleScript(void); +//void ScrSpecial_ShowTrainerNonBattlingSpeech(void); //void PlayTrainerEncounterMusic(void); //u8 *SanitizeString(u8 *str); -u8 *sub_808281C(void); -u8 *sub_8082830(void); +u8 *GetTrainerLoseText(void); //u8 *unref_sub_808286C(void); -u8 *sub_8082880(void); //s32 sub_8082894(const struct TrainerEyeTrainer *trainers, u16 trainerNum); //s32 sub_80828B8(const struct TrainerEyeTrainer *trainers, u16 trainerNum); //bool32 sub_80828FC(const struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum); //s32 sub_80829A8(const struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum); //s32 sub_80829E8(const struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum); //bool8 sub_8082A18(const struct TrainerEyeTrainer *trainers, u16 trainerNum); -//bool8 sub_8082A54(const struct TrainerEyeTrainer *trainers, u16 trainerNum); +//bool8 DoesTrainerEyeTrainerWantRematch(const struct TrainerEyeTrainer *trainers, u16 trainerNum); //u16 sub_8082A90(const struct TrainerEyeTrainer *trainers, u16 trainerNum); //void sub_8082AE4(const struct TrainerEyeTrainer *trainers, u16 trainerNum); //bool8 sub_8082B10(const struct TrainerEyeTrainer *trainers, u16 trainerNum); //bool32 sub_8082B44(void); -void sub_8082B78(void); +void IncrementRematchStepCounter(void); //bool32 sub_8082BA4(void); -void sub_8082BD0(u16, u16); -s32 sub_8082C0C(u16 mapGroup, u16 mapNum); -s32 unref_sub_8082C2C(u16 mapGroup, u16 mapNum); -u16 sub_8082C4C(u16 a1); -//s32 sub_8082C68(void); -//u8 sub_8082C9C(void); -void sub_8082CB8(void); +void TryUpdateRandomTrainerRematches(u16, u16); +s32 DoesSomeoneWantRematchIn(u16 mapGroup, u16 mapNum); +s32 IsRematchTrainerIn(u16 mapGroup, u16 mapNum); +u16 GetRematchTrainerId(u16 a1); +//u8 ScrSpecial_GetTrainerEyeRematchFlag(void); #endif // GUARD_BATTLE_SETUP_H diff --git a/include/battle_tower.h b/include/battle_tower.h index 75ea405ab..a3e1ff28c 100644 --- a/include/battle_tower.h +++ b/include/battle_tower.h @@ -1,8 +1,102 @@ #ifndef GUARD_BATTLE_TOWER_H #define GUARD_BATTLE_TOWER_H -void sub_8134AC0(void *); +#define BATTLE_TOWER_EREADER_TRAINER_ID 200 +#define BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID 100 + +enum +{ + F_EV_SPREAD_HP = 1 << 0, + F_EV_SPREAD_ATTACK = 1 << 1, + F_EV_SPREAD_DEFENSE = 1 << 2, + F_EV_SPREAD_SPEED = 1 << 3, + F_EV_SPREAD_SP_ATTACK = 1 << 4, + F_EV_SPREAD_SP_DEFENSE = 1 << 5, +}; + +enum +{ + BATTLE_TOWER_ITEM_NONE, + BATTLE_TOWER_ITEM_KINGS_ROCK, + BATTLE_TOWER_ITEM_SITRUS_BERRY, + BATTLE_TOWER_ITEM_ORAN_BERRY, + BATTLE_TOWER_ITEM_CHESTO_BERRY, + BATTLE_TOWER_ITEM_HARD_STONE, + BATTLE_TOWER_ITEM_FOCUS_BAND, + BATTLE_TOWER_ITEM_PERSIM_BERRY, + BATTLE_TOWER_ITEM_MIRACLE_SEED, + BATTLE_TOWER_ITEM_BERRY_JUICE, + BATTLE_TOWER_ITEM_MACHO_BRACE, + BATTLE_TOWER_ITEM_SILVER_POWDER, + BATTLE_TOWER_ITEM_CHERI_BERRY, + BATTLE_TOWER_ITEM_BLACK_GLASSES, + BATTLE_TOWER_ITEM_BLACK_BELT, + BATTLE_TOWER_ITEM_SOUL_DEW, + BATTLE_TOWER_ITEM_CHOICE_BAND, + BATTLE_TOWER_ITEM_MAGNET, + BATTLE_TOWER_ITEM_SILK_SCARF, + BATTLE_TOWER_ITEM_WHITE_HERB, + BATTLE_TOWER_ITEM_DEEP_SEA_SCALE, + BATTLE_TOWER_ITEM_DEEP_SEA_TOOTH, + BATTLE_TOWER_ITEM_MYSTIC_WATER, + BATTLE_TOWER_ITEM_SHARP_BEAK, + BATTLE_TOWER_ITEM_QUICK_CLAW, + BATTLE_TOWER_ITEM_LEFTOVERS, + BATTLE_TOWER_ITEM_RAWST_BERRY, + BATTLE_TOWER_ITEM_LIGHT_BALL, + BATTLE_TOWER_ITEM_POISON_BARB, + BATTLE_TOWER_ITEM_NEVER_MELT_ICE, + BATTLE_TOWER_ITEM_ASPEAR_BERRY, + BATTLE_TOWER_ITEM_SPELL_TAG, + BATTLE_TOWER_ITEM_BRIGHT_POWDER, + BATTLE_TOWER_ITEM_LEPPA_BERRY, + BATTLE_TOWER_ITEM_SCOPE_LENS, + BATTLE_TOWER_ITEM_TWISTED_SPOON, + BATTLE_TOWER_ITEM_METAL_COAT, + BATTLE_TOWER_ITEM_MENTAL_HERB, + BATTLE_TOWER_ITEM_CHARCOAL, + BATTLE_TOWER_ITEM_PECHA_BERRY, + BATTLE_TOWER_ITEM_SOFT_SAND, + BATTLE_TOWER_ITEM_LUM_BERRY, + BATTLE_TOWER_ITEM_DRAGON_SCALE, + BATTLE_TOWER_ITEM_DRAGON_FANG, + BATTLE_TOWER_ITEM_IAPAPA_BERRY, + BATTLE_TOWER_ITEM_WIKI_BERRY, + BATTLE_TOWER_ITEM_SEA_INCENSE, + BATTLE_TOWER_ITEM_SHELL_BELL, + BATTLE_TOWER_ITEM_SALAC_BERRY, + BATTLE_TOWER_ITEM_LANSAT_BERRY, + BATTLE_TOWER_ITEM_APICOT_BERRY, + BATTLE_TOWER_ITEM_STARF_BERRY, + BATTLE_TOWER_ITEM_LIECHI_BERRY, + BATTLE_TOWER_ITEM_STICK, + BATTLE_TOWER_ITEM_LAX_INCENSE, + BATTLE_TOWER_ITEM_AGUAV_BERRY, + BATTLE_TOWER_ITEM_FIGY_BERRY, + BATTLE_TOWER_ITEM_THICK_CLUB, + BATTLE_TOWER_ITEM_MAGO_BERRY, + BATTLE_TOWER_ITEM_METAL_POWDER, + BATTLE_TOWER_ITEM_PETAYA_BERRY, + BATTLE_TOWER_ITEM_LUCKY_PUNCH, + BATTLE_TOWER_ITEM_GANLON_BERRY, +}; + +struct BattleTowerPokemon +{ + /*0x00*/u16 species; + /*0x02*/u8 heldItem; // entry in sBattleTowerHeldItems + /*0x03*/u8 teamFlags; + /*0x04*/u16 moves[4]; + /*0x0C*/u8 evSpread; + /*0x0D*/u8 nature; +}; + +u16 GetCurrentBattleTowerWinStreak(u8); +void sub_8134AC0(struct BattleTowerRecord *); u16 sub_8135D3C(u8); -void sub_8135FF4(u8*); +void SetEReaderTrainerName(u8*); +u8 GetEReaderTrainerPicIndex(void); +u8 GetEReaderTrainerClassNameIndex(void); +void ValidateEReaderTrainer(void); #endif // GUARD_BATTLE_TOWER_H diff --git a/include/battle_transition.h b/include/battle_transition.h index ca6869c93..0b8766e87 100644 --- a/include/battle_transition.h +++ b/include/battle_transition.h @@ -1,8 +1,8 @@ #ifndef GUARD_BATTLE_TRANSITION_H #define GUARD_BATTLE_TRANSITION_H -void sub_811AABC(u8 transitionID); -void sub_811AAD8(u8 transitionID); +void BattleTransition_StartOnField(u8 transitionID); +void BattleTransition_Start(u8 transitionID); bool8 IsBattleTransitionDone(void); #define TRANSITIONS_NO 17 diff --git a/include/battle_util.h b/include/battle_util.h new file mode 100644 index 000000000..f47b00b2c --- /dev/null +++ b/include/battle_util.h @@ -0,0 +1,29 @@ +#ifndef GUARD_BATTLE_UTIL_H +#define GUARD_BATTLE_UTIL_H + +#define BS_GET_TARGET 0 +#define BS_GET_ATTACKER 1 +#define BS_GET_EFFECT_BANK 2 +#define BS_GET_SCRIPTING_BANK 10 +#define BS_GET_PLAYER1 11 +#define BS_GET_OPPONENT1 12 +#define BS_GET_PLAYER2 13 +#define BS_GET_OPPONENT2 14 + +void TryClearRageStatuses(void); +void BattleScriptPush(u8* BS_ptr); +void PressurePPLoseOnUsingImprision(u8 bankAtk); +void PressurePPLoseOnUsingPerishSong(u8 bankAtk); +void sub_80155A4(u8); +void CancelMultiTurnMoves(u8 bank); +bool8 WasUnableToUseMove(u8 bank); +void PrepareStringBattle(u16 stringId, u8 bank); +void ResetSentPokesToOpponentValue(void); +void sub_8015740(u8 bank); +void sub_80157C4(u8 bank); +bool8 HandleWishPerishSongOnTurnEnd(void); +void BattleScriptExecute(u8* BS_ptr); +void BattleScriptPushCursorAndCallback(u8* BS_ptr); +u8 IsMonDisobedient(void); + +#endif // GUARD_BATTLE_UTIL_H diff --git a/include/berry.h b/include/berry.h index f0acbe0ad..a7ac5ba94 100644 --- a/include/berry.h +++ b/include/berry.h @@ -11,38 +11,39 @@ enum BERRY_FIRMNESS_SUPER_HARD, }; -void ClearEnigmaBerries(void); +// berry stages +enum +{ + BERRY_STAGE_NO_BERRY, // there is no tree planted and the soil is completely flat. + BERRY_STAGE_PLANTED, + BERRY_STAGE_SPROUTED, + BERRY_STAGE_TALLER, + BERRY_STAGE_FLOWERING, + BERRY_STAGE_BERRIES, + BERRY_STAGE_SPARKLING = 0xFF, +}; + void SetEnigmaBerry(u8 *src); -u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry); bool32 IsEnigmaBerryValid(void); const struct Berry *GetBerryInfo(u8 berry); -struct BerryTree *GetBerryTreeInfo(u8 id); bool32 FieldObjectInteractionWaterBerryTree(void); -bool8 IsPlayerFacingPlantedBerryTree(void); +bool8 IsPlayerFacingUnplantedSoil(void); bool8 TryToWaterBerryTree(void); void ClearBerryTrees(void); -bool32 BerryTreeGrow(struct BerryTree *tree); void BerryTreeTimeUpdate(s32 minutes); void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 sparkle); void RemoveBerryTree(u8 id); u8 GetBerryTypeByBerryTreeId(u8 id); u8 GetStageByBerryTreeId(u8); u8 ItemIdToBerryType(u16 item); -u16 BerryTypeToItemId(u16 berry); void GetBerryNameByBerryType(u8 berry, u8 *string); void ResetBerryTreeSparkleFlag(u8 id); -u8 BerryTreeGetNumStagesWatered(struct BerryTree *tree); -u8 GetNumStagesWateredByBerryTreeId(u8 id); -u8 CalcBerryYieldInternal(u16 max, u16 min, u8 water); -u8 CalcBerryYield(struct BerryTree *tree); -u8 GetBerryCountByBerryTreeId(u8 id); -u16 GetStageDurationByBerryType(u8); void FieldObjectInteractionGetBerryTreeData(void); -void sub_80B4EE4(void); +void Berry_FadeAndGoToBerryBagMenu(void); void FieldObjectInteractionPlantBerryTree(void); void FieldObjectInteractionPickBerryTree(void); void FieldObjectInteractionRemoveBerryTree(void); -u8 PlayerHasBerries(void); +bool8 PlayerHasBerries(void); void ResetBerryTreeSparkleFlags(void); #endif // GUARD_BERRY_H diff --git a/include/bike.h b/include/bike.h index decbd1d49..28aa2037d 100644 --- a/include/bike.h +++ b/include/bike.h @@ -1,15 +1,17 @@ #ifndef GUARD_BIKE_H #define GUARD_BIKE_H -struct UnknownStruct1 +// the struct below is used for checking button combinations of the last input so that the acro can potentially perform a side/turn jump. +// its possible that at some point Game Freak intended for the acro bike to have more complex tricks: but only the acro jump combinations can be seen in the final ROM. +struct BikeHistoryInputInfo { - u32 unk0; - u32 unk4; - u32 unk8; - u32 unkC; - const u8 *unk10; - const u8 *unk14; - u32 unk18; + u32 dirHistoryMatch; // the direction you need to press + u32 abStartSelectHistoryMatch; // the button you need to press + u32 dirHistoryMask; // mask applied so that way only the recent nybble (the recent input) is checked + u32 abStartSelectHistoryMask; // mask applied so that way only the recent nybble (the recent input) is checked + const u8 *dirTimerHistoryList; // list of timers to check for direction before the button+dir combination can be verified. + const u8 *abStartSelectHistoryList; // list of timers to check for buttons before the button+dir combination can be verified. + u32 direction; // direction to jump }; // Player speeds @@ -22,7 +24,16 @@ enum SPEED_FASTEST, }; -//Acro bike states +// mach bike transitions enum +enum +{ + MACH_TRANS_FACE_DIRECTION, + MACH_TRANS_TURN_DIRECTION, + MACH_TRANS_KEEP_MOVING, + MACH_TRANS_START_MOVING +}; + +// Acro bike states enum { ACRO_STATE_NORMAL, @@ -30,27 +41,37 @@ enum ACRO_STATE_WHEELIE_STANDING, ACRO_STATE_BUNNY_HOP, ACRO_STATE_WHEELIE_MOVING, - ACRO_STATE_5, - ACRO_STATE_6, + ACRO_STATE_SIDE_JUMP, + ACRO_STATE_TURN_JUMP, }; -//Acro bike transitions +// Acro bike transitions enum { ACRO_TRANS_FACE_DIRECTION, - ACRO_TRANS_NORMAL_TO_WHEELIE = 3, + ACRO_TRANS_TURN_DIRECTION, + ACRO_TRANS_MOVING, + ACRO_TRANS_NORMAL_TO_WHEELIE, ACRO_TRANS_WHEELIE_TO_NORMAL, + ACRO_TRANS_WHEELIE_IDLE, + ACRO_TRANS_WHEELIE_HOPPING_STANDING, + ACRO_TRANS_WHEELIE_HOPPING_MOVING, + ACRO_TRANS_SIDE_JUMP, + ACRO_TRANS_TURN_JUMP, + ACRO_TRANS_WHEELIE_MOVING, + ACRO_TRANS_WHEELIE_RISING_MOVING, + ACRO_TRANS_WHEELIE_LOWERING_MOVING, }; void MovePlayerOnBike(u8 direction, u16 newKeys, u16 heldKeys); -void sub_80E5B38(u16 a, u16 b); +void Bike_TryAcroBikeHistoryUpdate(u16 a, u16 b); bool8 IsRunningDisallowed(u8 tile); bool8 IsBikingDisallowedByPlayer(void); bool8 player_should_look_direction_be_enforced_upon_movement(void); void GetOnOffBike(u8 var); void BikeClearState(int var1, int var2); -void sub_80E6010(u8 var); +void Bike_UpdateBikeCounterSpeed(u8 var); s16 GetPlayerSpeed(void); -void sub_80E6084(void); +void Bike_HandleBumpySlopeJump(void); #endif diff --git a/include/braille_puzzles.h b/include/braille_puzzles.h index 2b0e2bb96..e9d1f5d7c 100644 --- a/include/braille_puzzles.h +++ b/include/braille_puzzles.h @@ -2,6 +2,7 @@ #define GUARD_BRAILLEPUZZLES_H bool8 ShouldDoBrailleStrengthEffect(void); +bool8 ShouldDoBrailleFlyEffect(void); void DoBrailleStrengthEffect(void); void UseFlyAncientTomb_Callback(void); void UseFlyAncientTomb_Finish(void); @@ -10,5 +11,6 @@ bool32 BrailleWait_CheckButtonPress(void); void SealedChamberShakingEffect(u8 taskId); bool8 ShouldDoBrailleDigEffect(void); void DoBrailleDigEffect(void); +void DoBrailleFlyEffect(void); #endif diff --git a/include/cable_car_util.h b/include/cable_car_util.h new file mode 100644 index 000000000..7126331a1 --- /dev/null +++ b/include/cable_car_util.h @@ -0,0 +1,13 @@ +#ifndef GUARD_CABLE_CAR_UTIL_H +#define GUARD_CABLE_CAR_UTIL_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations + +void CableCarUtil_FillWrapped(void *dest, u16 value, u8 x, u8 y, u8 width, u8 height); +void CableCarUtil_CopyWrapped(void *dest, const u16 *src, u8 x, u8 y, u8 width, u8 height); + +#endif //GUARD_CABLE_CAR_UTIL_H diff --git a/include/cable_club.h b/include/cable_club.h index 9e6a703e3..a2fe46b30 100644 --- a/include/cable_club.h +++ b/include/cable_club.h @@ -3,20 +3,22 @@ #include "task.h" -void sub_8082D4C(); -void sub_8082D60(u8, u8); -u16 sub_8082D9C(u8, u8); -u32 sub_8082DF4(u8); -u32 sub_8082E28(u8); -u32 sub_8082EB8(u8); -void sub_8082FEC(u8 taskId); -void sub_80833C4(u8 taskId); -void sub_8083418(u8 taskId); -u8 sub_8083444(u8 taskId); +void sub_808347C(u8 arg0); +void sub_80834E4(void); +void sub_808350C(void); +void sub_80835D8(void); +void sub_8083614(void); +void sub_808363C(void); u8 sub_8083664(void); -void sub_8083A84(TaskFunc); -s32 sub_8083BF4(u8 id); -void sub_8083C50(u8); -void sub_8083188(u8 taskId); +void sub_8083820(void); +void sub_80839A4(void); +void sub_80839D0(void); +void sub_8083A84(TaskFunc followupFunc); +void sub_8083B5C(void); +void sub_8083B80(void); +void sub_8083B90(void); +void sub_8083BDC(void); +bool32 sub_8083BF4(u8 linkPlayerIndex); +void sub_8083C50(u8 taskId); #endif // GUARD_CABLE_CLUB_H diff --git a/include/choose_party.h b/include/choose_party.h index e31aa3c02..853202a89 100644 --- a/include/choose_party.h +++ b/include/choose_party.h @@ -3,11 +3,11 @@ void sub_8121E10(void); void sub_8121E34(void); -bool8 sub_8121E78(void); -void sub_81222B0(u8 taskId); -bool8 sub_8122854(void); -void sub_8122A48(u8 taskId); -void sub_8122E0C(u8 taskId); +bool8 SetupBattleTowerPartyMenu(void); +void HandleBattleTowerPartyMenu(u8 taskId); +bool8 SetupLinkMultiBattlePartyMenu(void); +void HandleLinkMultiBattlePartyMenu(u8 taskId); +void HandleDaycarePartyMenu(u8 taskId); void sub_8123138(u8 taskId); #endif // GUARD_CHOOSE_PARTY_H diff --git a/include/constants/abilities.h b/include/constants/abilities.h new file mode 100644 index 000000000..4e2c4056c --- /dev/null +++ b/include/constants/abilities.h @@ -0,0 +1,83 @@ +#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 + +#endif // GUARD_CONSTANTS_ABILITIES_H diff --git a/include/constants/battle_constants.h b/include/constants/battle_constants.h new file mode 100644 index 000000000..49768f33e --- /dev/null +++ b/include/constants/battle_constants.h @@ -0,0 +1,315 @@ +#ifndef GUARD_CONSTANTS_BATTLE_CONSTANTS_H +#define GUARD_CONSTANTS_BATTLE_CONSTANTS_H + +// Bank sides +#define SIDE_PLAYER 0x0 +#define SIDE_OPPONENT 0x1 + +#define BIT_SIDE 0x1 +#define BIT_MON 0x2 + +#define STATUS_SLEEP 0x7 +#define STATUS_POISON 0x8 +#define STATUS_BURN 0x10 +#define STATUS_FREEZE 0x20 +#define STATUS_PARALYSIS 0x40 +#define STATUS_TOXIC_POISON 0x80 +#define STATUS_TOXIC_COUNTER 0xF00 + +#define STATUS_PSN_ANY ((STATUS_POISON | STATUS_TOXIC_POISON)) +#define STATUS_ANY ((STATUS_SLEEP | STATUS_POISON | STATUS_BURN | STATUS_FREEZE | STATUS_PARALYSIS | STATUS_TOXIC_POISON)) + +#define STATUS2_CONFUSION 0x00000007 +#define STATUS2_FLINCHED 0x00000008 +#define STATUS2_UPROAR 0x00000070 +#define STATUS2_BIDE 0x00000300 //two bits 0x100 0x200 +#define STATUS2_LOCK_CONFUSE 0x00000C00 +#define STATUS2_MULTIPLETURNS 0x00001000 +#define STATUS2_WRAPPED 0x0000E000 +#define STATUS2_INFATUATION 0x000F0000 +#define STATUS2_FOCUS_ENERGY 0x00100000 +#define STATUS2_TRANSFORMED 0x00200000 +#define STATUS2_RECHARGE 0x00400000 +#define STATUS2_RAGE 0x00800000 +#define STATUS2_SUBSTITUTE 0x01000000 +#define STATUS2_DESTINY_BOND 0x02000000 +#define STATUS2_ESCAPE_PREVENTION 0x04000000 +#define STATUS2_NIGHTMARE 0x08000000 +#define STATUS2_CURSED 0x10000000 +#define STATUS2_FORESIGHT 0x20000000 +#define STATUS2_DEFENSE_CURL 0x40000000 +#define STATUS2_TORMENT 0x80000000 + +#define STATUS3_LEECHSEED_BANK 0x3 +#define STATUS3_LEECHSEED 0x4 +#define STATUS3_ALWAYS_HITS 0x18 //two bits +#define STATUS3_PERISH_SONG 0x20 +#define STATUS3_ON_AIR 0x40 +#define STATUS3_UNDERGROUND 0x80 +#define STATUS3_MINIMIZED 0x100 +#define STATUS3_ROOTED 0x400 +#define STATUS3_CHARGED_UP 0x200 +#define STATUS3_YAWN 0x1800 //two bits +#define STATUS3_IMPRISIONED 0x2000 +#define STATUS3_GRUDGE 0x4000 +#define STATUS3_CANT_SCORE_A_CRIT 0x8000 +#define STATUS3_MUDSPORT 0x10000 +#define STATUS3_WATERSPORT 0x20000 +#define STATUS3_UNDERWATER 0x40000 +#define STATUS3_INTIMIDATE_POKES 0x80000 +#define STATUS3_TRACE 0x100000 + +#define STATUS3_SEMI_INVULNERABLE ((STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER)) + +#define HITMARKER_x10 0x00000010 +#define HITMARKER_x20 0x00000020 +#define HITMARKER_DESTINYBOND 0x00000040 +#define HITMARKER_NO_ANIMATIONS 0x00000080 +#define HITMARKER_IGNORE_SUBSTITUTE 0x00000100 +#define HITMARKER_NO_ATTACKSTRING 0x00000200 +#define HITMARKER_ATTACKSTRING_PRINTED 0x00000400 +#define HITMARKER_NO_PPDEDUCT 0x00000800 +#define HITMARKER_PURSUIT_TRAP 0x00001000 +#define HITMARKER_IGNORE_SAFEGUARD 0x00002000 +#define HITMARKER_SYNCHRONISE_EFFECT 0x00004000 +#define HITMARKER_RUN 0x00008000 +#define HITMARKER_IGNORE_ON_AIR 0x00010000 +#define HITMARKER_IGNORE_UNDERGROUND 0x00020000 +#define HITMARKER_IGNORE_UNDERWATER 0x00040000 +#define HITMARKER_UNABLE_TO_USE_MOVE 0x00080000 +#define HITMARKER_x100000 0x00100000 +#define HITMARKER_x200000 0x00200000 +#define HITMARKER_x400000 0x00400000 +#define HITMARKER_x800000 0x00800000 +#define HITMARKER_GRUDGE 0x01000000 +#define HITMARKER_OBEYS 0x02000000 +#define HITMARKER_x4000000 0x04000000 +#define HITMARKER_x8000000 0x08000000 +#define HITMARKER_FAINTED(bank) ((gBitTable[bank] << 0x1C)) +#define HITMARKER_UNK(bank) ((0x10000000 << bank)) + +#define MOVESTATUS_MISSED (1 << 0) +#define MOVESTATUS_SUPEREFFECTIVE (1 << 1) +#define MOVESTATUS_NOTVERYEFFECTIVE (1 << 2) +#define MOVESTATUS_NOTAFFECTED (1 << 3) +#define MOVESTATUS_ONEHITKO (1 << 4) +#define MOVESTATUS_FAILED (1 << 5) +#define MOVESTATUS_ENDURED (1 << 6) +#define MOVESTATUS_HUNGON (1 << 7) + +#define IDENTITY_PLAYER_MON1 0 +#define IDENTITY_OPPONENT_MON1 1 +#define IDENTITY_PLAYER_MON2 2 +#define IDENTITY_OPPONENT_MON2 3 + +#define BATTLE_TYPE_DOUBLE 0x0001 +#define BATTLE_TYPE_LINK 0x0002 +#define BATTLE_TYPE_WILD 0x0004 +#define BATTLE_TYPE_TRAINER 0x0008 +#define BATTLE_TYPE_FIRST_BATTLE 0x0010 +#define BATTLE_TYPE_20 0x0020 +#define BATTLE_TYPE_MULTI 0x0040 +#define BATTLE_TYPE_SAFARI 0x0080 +#define BATTLE_TYPE_BATTLE_TOWER 0x0100 +#define BATTLE_TYPE_WALLY_TUTORIAL 0x0200 +#define BATTLE_TYPE_ROAMER 0x0400 +#define BATTLE_TYPE_EREADER_TRAINER 0x0800 +#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000 +#define BATTLE_TYPE_LEGENDARY 0x2000 +#define BATTLE_TYPE_REGI 0x4000 +#define BATTLE_TYPE_LINK_DOUBLE (BATTLE_TYPE_MULTI | BATTLE_TYPE_TRAINER | BATTLE_TYPE_LINK | BATTLE_TYPE_DOUBLE) + +#define SECRET_BASE_OPPONENT 0x400 + +#define BATTLE_WON 0x1 +#define BATTLE_LOST 0x2 +#define BATTLE_DREW 0x3 +#define BATTLE_RAN 0x4 +#define BATTLE_PLAYER_TELEPORTED 0x5 +#define BATTLE_POKE_FLED 0x6 +#define BATTLE_CAUGHT 0x7 +#define BATTLE_OUT_OF_BALLS 0x8 +#define BATTLE_OPPONENT_TELEPORTED 0xA + +#define OUTCOME_LINK_BATTLE_RUN 0x80 + +#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) + +#define ACTION_USE_MOVE 0 +#define ACTION_USE_ITEM 1 +#define ACTION_SWITCH 2 +#define ACTION_RUN 3 +#define ACTION_WATCHES_CAREFULLY 4 +#define ACTION_SAFARI_ZONE_BALL 5 +#define ACTION_POKEBLOCK_CASE 6 +#define ACTION_GO_NEAR 7 +#define ACTION_SAFARI_ZONE_RUN 8 +#define ACTION_9 9 +#define ACTION_RUN_BATTLESCRIPT 10 // when executing an action +#define ACTION_CANCEL_PARTNER 12 // when choosing an action +#define ACTION_FINISHED 12 // when executing an action +#define ACTION_NOTHING_FAINTED 13 // when choosing an action +#define ACTION_INIT_VALUE 0xFF + +#define TARGET_SELECTED_POKEMON 0 +#define TARGET_SPECIAL (1 << 0) +#define TARGET_UNK2 (1 << 1) +#define TARGET_RANDOM (1 << 2) +#define TARGET_BOTH_ENEMIES (1 << 3) +#define TARGET_USER (1 << 4) +#define TARGET_ALL_EXCEPT_USER (1 << 5) +#define TARGET_ENEMY_SIDE (1 << 6) + +#define F_MAKES_CONTACT (1 << 0) +#define F_AFFECTED_BY_PROTECT (1 << 1) +#define F_AFFECTED_BY_MAGIC_COAT (1 << 2) +#define F_AFFECTED_BY_SNATCH (1 << 3) +#define F_MIRROR_MOVE_COMPATIBLE (1 << 4) +#define F_AFFECTED_BY_KINGS_ROCK (1 << 5) + +#define AI_ACTION_DONE 0x0001 +#define AI_ACTION_FLEE 0x0002 +#define AI_ACTION_WATCH 0x0004 +#define AI_ACTION_DO_NOT_ATTACK 0x0008 +#define AI_ACTION_UNK5 0x0010 +#define AI_ACTION_UNK6 0x0020 +#define AI_ACTION_UNK7 0x0040 +#define AI_ACTION_UNK8 0x0080 + +#define ABILITYEFFECT_ON_SWITCHIN 0x0 +#define ABILITYEFFECT_ENDTURN 0x1 +#define ABILITYEFFECT_MOVES_BLOCK 0x2 +#define ABILITYEFFECT_ABSORBING 0x3 +#define ABILITYEFFECT_CONTACT 0x4 +#define ABILITYEFFECT_IMMUNITY 0x5 +#define ABILITYEFFECT_FORECAST 0x6 +#define ABILITYEFFECT_SYNCHRONIZE 0x7 +#define ABILITYEFFECT_ATK_SYNCHRONIZE 0x8 +#define ABILITYEFFECT_INTIMIDATE1 0x9 +#define ABILITYEFFECT_INTIMIDATE2 0xA +#define ABILITYEFFECT_TRACE 0xB +#define ABILITYEFFECT_CHECK_OTHER_SIDE 0xC +#define ABILITYEFFECT_CHECK_BANK_SIDE 0xD +#define ABILITYEFFECT_FIELD_SPORT 0xE +#define ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK 0xF +#define ABILITYEFFECT_COUNT_OTHER_SIZE 0x10 +#define ABILITYEFFECT_COUNT_BANK_SIDE 0x11 +#define ABILITYEFFECT_COUNT_ON_FIELD 0x12 +#define ABILITYEFFECT_CHECK_ON_FIELD 0x13 + +#define WEATHER_HAS_EFFECT ((!AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_AIR_LOCK, 0, 0))) + +#define MOVESTATUS_NOEFFECT ((MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED)) + +#define MAX_TRAINER_ITEMS 4 +#define MAX_MON_MOVES 4 +#define MAX_BANKS_BATTLE 4 + +#define WEATHER_RAIN_TEMPORARY (1 << 0) +#define WEATHER_RAIN_DOWNPOUR (1 << 1) +#define WEATHER_RAIN_PERMANENT (1 << 2) +#define WEATHER_RAIN_ANY ((WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_DOWNPOUR | WEATHER_RAIN_PERMANENT)) +#define WEATHER_SANDSTORM_TEMPORARY (1 << 3) +#define WEATHER_SANDSTORM_PERMANENT (1 << 4) +#define WEATHER_SANDSTORM_ANY ((WEATHER_SANDSTORM_TEMPORARY | WEATHER_SANDSTORM_PERMANENT)) +#define WEATHER_SUN_TEMPORARY (1 << 5) +#define WEATHER_SUN_PERMANENT (1 << 6) +#define WEATHER_SUN_ANY ((WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT)) +#define WEATHER_HAIL (1 << 7) + +#define MOVE_TARGET_SELECTED 0x0 +#define MOVE_TARGET_DEPENDS 0x1 +#define MOVE_TARGET_USER 0x2 +#define MOVE_TARGET_RANDOM 0x4 +#define MOVE_TARGET_x10 0x10 +#define MOVE_TARGET_BOTH 0x8 +#define MOVE_TARGET_FOES_AND_ALLY 0x20 +#define MOVE_TARGET_OPPONENTS_FIELD 0x40 + +// array entries for battle communication +#define MULTIUSE_STATE 0x0 +#define CURSOR_POSITION 0x1 +#define TASK_ID 0x1 // task Id and cursor position share the same field +#define SPRITES_INIT_STATE1 0x1 // shares the Id as well +#define SPRITES_INIT_STATE2 0x2 +#define MOVE_EFFECT_BYTE 0x3 +#define ACTIONS_CONFIRMED_COUNT 0x4 +#define MULTISTRING_CHOOSER 0x5 +#define MSG_DISPLAY 0x7 +#define BATTLE_COMMUNICATION_ENTRIES_COUNT 0x8 + +#define BS_GET_TARGET 0 +#define BS_GET_ATTACKER 1 +#define BS_GET_EFFECT_BANK 2 +#define BS_GET_gBank1 3 +#define BS_GET_BANK_0 7 +#define BS_ATTACKER_WITH_PARTNER 4 // for atk98_status_icon_update +#define BS_GET_ATTACKER_SIDE 8 // for atk1E_jumpifability +#define BS_GET_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability +#define BS_GET_SCRIPTING_BANK 10 +#define BS_GET_OPPONENT1 12 +#define BS_GET_PLAYER2 13 +#define BS_GET_OPPONENT2 14 + +// status animation table +#define B_ANIM_STATUS_PSN 0x0 +#define B_ANIM_STATUS_CONFUSION 0x1 +#define B_ANIM_STATUS_BRN 0x2 +#define B_ANIM_STATUS_INFATUATION 0x3 +#define B_ANIM_STATUS_SLP 0x4 +#define B_ANIM_STATUS_PRZ 0x5 +#define B_ANIM_STATUS_FRZ 0x6 +#define B_ANIM_STATUS_CURSED 0x7 +#define B_ANIM_STATUS_NIGHTMARE 0x8 +#define B_ANIM_STATUS_WRAPPED 0x9 + +// general animation table +#define B_ANIM_CASTFORM_CHANGE 0x0 +#define B_ANIM_STATS_CHANGE 0x1 +#define B_ANIM_SUBSTITUTE_FADE 0x2 +#define B_ANIM_SUBSTITUTE_APPEAR 0x3 +#define B_ANIM_POKEBLOCK_THROW 0x4 +#define B_ANIM_ITEM_KNOCKOFF 0x5 +#define B_ANIM_TURN_TRAP 0x6 +#define B_ANIM_ITEM_EFFECT 0x7 +#define B_ANIM_SMOKEBALL_ESCAPE 0x8 +#define B_ANIM_HANGED_ON 0x9 +#define B_ANIM_RAIN_CONTINUES 0xA +#define B_ANIM_SUN_CONTINUES 0xB +#define B_ANIM_SANDSTORM_CONTINUES 0xC +#define B_ANIM_HAIL_CONTINUES 0xD +#define B_ANIM_LEECH_SEED_DRAIN 0xE +#define B_ANIM_MON_HIT 0xF +#define B_ANIM_ITEM_STEAL 0x10 +#define B_ANIM_SNATCH_MOVE 0x11 +#define B_ANIM_FUTURE_SIGHT_HIT 0x12 +#define B_ANIM_DOOM_DESIRE_HIT 0x13 +#define B_ANIM_FOCUS_PUNCH_SET_UP 0x14 +#define B_ANIM_INGRAIN_HEAL 0x15 +#define B_ANIM_WISH_HEAL 0x16 + +// special animation table +#define B_ANIM_LVL_UP 0x0 +#define B_ANIM_SWITCH_OUT_PLAYER_MON 0x1 +#define B_ANIM_SWITCH_OUT_OPPONENT_MON 0x2 +#define B_ANIM_BALL_THROW 0x3 +#define B_ANIM_SAFARI_BALL_THROW 0x4 +#define B_ANIM_SUBSTITUTE_TO_MON 0x5 +#define B_ANIM_MON_TO_SUBSTITUTE 0x6 + +// AI switch items +#define AI_ITEM_FULL_RESTORE 1 +#define AI_ITEM_HEAL_HP 2 +#define AI_ITEM_CURE_CONDITION 3 +#define AI_ITEM_X_STAT 4 +#define AI_ITEM_GUARD_SPECS 5 +#define AI_ITEM_NOT_RECOGNIZABLE 6 + +#endif // GUARD_CONSTANTS_BATTLE_CONSTANTS_H diff --git a/include/constants/battle_move_effects.h b/include/constants/battle_move_effects.h new file mode 100644 index 000000000..c0d433d1d --- /dev/null +++ b/include/constants/battle_move_effects.h @@ -0,0 +1,219 @@ +#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_HIT_2 150 // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM +#define EFFECT_SOLARBEAM 151 +#define EFFECT_THUNDER 152 +#define EFFECT_TELEPORT 153 +#define EFFECT_BEAT_UP 154 +#define EFFECT_FLY 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 + +#endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H diff --git a/include/constants/decorations.h b/include/constants/decorations.h new file mode 100644 index 000000000..2e3558721 --- /dev/null +++ b/include/constants/decorations.h @@ -0,0 +1,126 @@ +#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 + +#endif // GUARD_CONSTANTS_DECORATIONS_H diff --git a/include/constants/easy_chat.h b/include/constants/easy_chat.h new file mode 100644 index 000000000..215dac48c --- /dev/null +++ b/include/constants/easy_chat.h @@ -0,0 +1,1064 @@ +#ifndef GUARD_CONSTANTS_EASY_CHAT_H +#define GUARD_CONSTANTS_EASY_CHAT_H + +#define EC_GROUP_POKEMON_1 0x0 +#define EC_GROUP_TRAINER 0x1 +#define EC_GROUP_STATUS 0x2 +#define EC_GROUP_BATTLE 0x3 +#define EC_GROUP_GREETINGS 0x4 +#define EC_GROUP_PEOPLE 0x5 +#define EC_GROUP_VOICES 0x6 +#define EC_GROUP_SPEECH 0x7 +#define EC_GROUP_ENDINGS 0x8 +#define EC_GROUP_FEELINGS 0x9 +#define EC_GROUP_CONDITIONS 0xa +#define EC_GROUP_ACTIONS 0xb +#define EC_GROUP_LIFESTYLE 0xc +#define EC_GROUP_HOBBIES 0xd +#define EC_GROUP_TIME 0xe +#define EC_GROUP_MISC 0xf +#define EC_GROUP_ADJECTIVES 0x10 +#define EC_GROUP_EVENTS 0x11 +#define EC_GROUP_MOVE_1 0x12 +#define EC_GROUP_MOVE_2 0x13 +#define EC_GROUP_TRENDY_SAYING 0x14 +#define EC_GROUP_POKEMON_2 0x15 + +// 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 + +// 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 + +// 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 EC_POKEMON(mon) ((EC_GROUP_POKEMON_1 << 9) | SPECIES_##mon) +#define EC_POKEMON2(mon) ((EC_GROUP_POKEMON_2 << 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) & 0x1FF) + +#endif // GUARD_CONSTANTS_EASY_CHAT_H diff --git a/include/constants/flags.h b/include/constants/flags.h new file mode 100644 index 000000000..a8067f6ca --- /dev/null +++ b/include/constants/flags.h @@ -0,0 +1,906 @@ +#ifndef GUARD_CONSTANTS_FLAGS_H +#define GUARD_CONSTANTS_FLAGS_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 FLAG_TEMP_1 0x1 +#define FLAG_TEMP_2 0x2 +#define FLAG_TEMP_3 0x3 +#define FLAG_TEMP_4 0x4 +#define FLAG_TEMP_5 0x5 +#define FLAG_TEMP_6 0x6 +#define FLAG_TEMP_7 0x7 +#define FLAG_TEMP_8 0x8 +#define FLAG_TEMP_9 0x9 +#define FLAG_TEMP_A 0xA +#define FLAG_TEMP_B 0xB +#define FLAG_TEMP_C 0xC +#define FLAG_TEMP_D 0xD +#define FLAG_TEMP_E 0xE +#define FLAG_TEMP_F 0xF +#define FLAG_TEMP_10 0x10 +#define FLAG_TEMP_11 0x11 +#define FLAG_TEMP_12 0x12 +#define FLAG_TEMP_13 0x13 +#define FLAG_TEMP_14 0x14 +#define FLAG_TEMP_15 0x15 +#define FLAG_TEMP_16 0x16 +#define FLAG_TEMP_17 0x17 +#define FLAG_TEMP_18 0x18 +#define FLAG_TEMP_19 0x19 +#define FLAG_TEMP_1A 0x1A +#define FLAG_TEMP_1B 0x1B +#define FLAG_TEMP_1C 0x1C +#define FLAG_TEMP_1D 0x1D +#define FLAG_TEMP_1E 0x1E +#define FLAG_TEMP_1F 0x1F +// FLAG_TEMP_20 was supposed to be used as a temporary flag (see above), but there +// was either an oversight or off-by-one error. +#define FLAG_TEMP_20 0x20 +#define FLAG_VICTORY_ROAD_ROCK FLAG_TEMP_20 + +// scripts +#define FLAG_SET_WALL_CLOCK 0x51 +#define FLAG_RESCUED_BIRCH 0x52 + +#define FLAG_LINK_CONTEST_ROOM_POKEBALL 0x56 +#define FLAG_MET_RIVAL_MOM 0x57 +#define FLAG_BIRCH_AIDE_MET 0x58 +#define FLAG_DECLINED_BIKE 0x59 +#define FLAG_RECEIVED_BIKE 0x5A + +#define FLAG_RECEIVED_WAILMER_PAIL 0x5E +#define FLAG_RECEIVED_POKEBLOCK_CASE 0x5F +#define FLAG_RECEIVED_SECRET_POWER 0x60 + +#define FLAG_TV_EXPLAINED 0x62 +#define FLAG_MAUVILLE_GYM_BARRIERS_STATE 0x63 +#define FLAG_MOSSDEEP_GYM_SWITCH_1 0x64 +#define FLAG_MOSSDEEP_GYM_SWITCH_2 0x65 +#define FLAG_MOSSDEEP_GYM_SWITCH_3 0x66 +#define FLAG_MOSSDEEP_GYM_SWITCH_4 0x67 + +#define FLAG_OCEANIC_MUSEUM_MET_REPORTER 0x69 +#define FLAG_RECEIVED_HM04 0x6A +#define FLAG_RECEIVED_HM06 0x6B + +#define FLAG_RECEIVED_HM05 0x6D +#define FLAG_RECEIVED_HM02 0x6E +#define FLAG_MT_PYRE_ORB_STOLEN 0x6F +#define FLAG_EVIL_TEAM_ESCAPED_IN_SUBMARINE 0x70 +#define FLAG_LEGENDARY_BATTLE_COMPLETED 0x71 // defeated or caught Groudon/Kyogre in Cave of Origin + +#define FLAG_RECEIVED_METEORITE 0x73 +#define FLAG_ADVENTURE_STARTED 0x74 // received pokedex and set loose + +#define FLAG_MET_HIDDEN_POWER_GIVER 0x76 + +#define FLAG_RECEIVED_TM31 0x79 +#define FLAG_RECEIVED_HM03 0x7A +#define FLAG_RECEIVED_HM08 0x7B + +#define FLAG_DEFEATED_WALLY_VICTORY_ROAD 0x7E +#define FLAG_MET_PRETTY_PETAL_SHOP_OWNER 0x7F + +#define FLAG_LEGEND_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_RECEIVED_HM01 0x89 + +#define FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY 0x8B +#define FLAG_RECEIVED_6_SODA_POP 0x8C +#define FLAG_DEFEATED_SEASHORE_HOUSE_TRAINERS 0x8D +#define FLAG_DEVON_GOODS_STOLEN 0x8E +#define FLAG_RECOVERED_DEVON_GOODS 0x8F +#define FLAG_RETURNED_DEVON_GOODS 0x90 + +#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 +#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_UNKNOWN_9F 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_1 0xAD +#define FLAG_DECORATION_2 0xAE +#define FLAG_DECORATION_3 0xAF +#define FLAG_DECORATION_4 0xB0 +#define FLAG_DECORATION_5 0xB1 +#define FLAG_DECORATION_6 0xB2 +#define FLAG_DECORATION_7 0xB3 +#define FLAG_DECORATION_8 0xB4 +#define FLAG_DECORATION_9 0xB5 +#define FLAG_DECORATION_10 0xB6 +#define FLAG_DECORATION_11 0xB7 +#define FLAG_DECORATION_12 0xB8 +#define FLAG_DECORATION_13 0xB9 +#define FLAG_DECORATION_14 0xBA +#define FLAG_DECORATION_15 0xBB +#define FLAG_RECEIVED_POKENAV 0xBC +#define FLAG_DELIVERED_STEVEN_LETTER 0xBD +#define FLAG_DEFEATED_WALLY_MAUVILLE 0xBE + +#define FLAG_RECEIVED_SUN_STONE_MOSSDEEP 0xC0 +#define FLAG_WALLY_SPEECH 0xC1 +#define FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1 0xC2 +#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_ECOUNTERED_LATIAS_OR_LATIOS 0xCE + +#define FLAG_RECEIVED_BASEMENT_KEY 0xD0 +#define FLAG_RECEIVED_TM24 0xD1 + +#define FLAG_RECEIVED_RED_OR_BLUE_ORB 0xD4 +#define FLAG_RECEIVED_PREMIER_BALL_RUSTBORO 0xD5 + +#define FLAG_ROUTE104_PROTOTYPE_COMPLETED_1 0xD7 +#define FLAG_ROUTE104_PROTOTYPE_COMPLETED_2 0xD8 +#define FLAG_MET_DIVING_TREASURE_HUNTER 0xD9 +#define FLAG_MET_WAILMER_TRAINER 0xDA +#define FLAG_EVIL_LEADER_PLEASE_STOP 0xDB + +#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_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_COSMO 0xF4 +#define FLAG_RECEIVED_WAILMER_DOLL 0xF5 +#define FLAG_RECEIVED_CHESTO_BERRY_ROUTE104 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_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_FOSSIL_MON 0x10B +#define FLAG_DECORATION_16 0x10C +#define FLAG_RECEIVED_TM46 0x10D +#define FLAG_CONTEST_SKETCH_CREATED 0x10E +#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_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_ROUTE120 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 + +// hidden item flags +#define FLAG_HIDDEN_ITEMS_START 0x258 +#define FLAG_HIDDEN_ITEM_0 0x258 +#define FLAG_HIDDEN_ITEM_1 0x259 +#define FLAG_HIDDEN_ITEM_2 0x25A +#define FLAG_HIDDEN_ITEM_3 0x25B +#define FLAG_HIDDEN_ITEM_4 0x25C +#define FLAG_HIDDEN_ITEM_5 0x25D +#define FLAG_HIDDEN_ITEM_6 0x25E +#define FLAG_HIDDEN_ITEM_7 0x25F +#define FLAG_HIDDEN_ITEM_8 0x260 +#define FLAG_HIDDEN_ITEM_9 0x261 +#define FLAG_HIDDEN_ITEM_A 0x262 +#define FLAG_HIDDEN_ITEM_B 0x263 +#define FLAG_HIDDEN_ITEM_C 0x264 +#define FLAG_HIDDEN_ITEM_D 0x265 +#define FLAG_HIDDEN_ITEM_E 0x266 +#define FLAG_HIDDEN_ITEM_F 0x267 +#define FLAG_HIDDEN_ITEM_10 0x268 +#define FLAG_HIDDEN_ITEM_11 0x269 +#define FLAG_HIDDEN_ITEM_12 0x26A +#define FLAG_HIDDEN_ITEM_13 0x26B +#define FLAG_HIDDEN_ITEM_14 0x26C +#define FLAG_HIDDEN_ITEM_15 0x26D +#define FLAG_HIDDEN_ITEM_16 0x26E +#define FLAG_HIDDEN_ITEM_17 0x26F +#define FLAG_HIDDEN_ITEM_18 0x270 +#define FLAG_HIDDEN_ITEM_19 0x271 +#define FLAG_HIDDEN_ITEM_1A 0x272 +#define FLAG_HIDDEN_ITEM_1B 0x273 +#define FLAG_HIDDEN_ITEM_1C 0x274 +#define FLAG_HIDDEN_ITEM_1D 0x275 +#define FLAG_HIDDEN_ITEM_1E 0x276 +#define FLAG_HIDDEN_ITEM_1F 0x277 +#define FLAG_HIDDEN_ITEM_20 0x278 +#define FLAG_HIDDEN_ITEM_21 0x279 +#define FLAG_HIDDEN_ITEM_22 0x27A +#define FLAG_HIDDEN_ITEM_23 0x27B +#define FLAG_HIDDEN_ITEM_24 0x27C +#define FLAG_HIDDEN_ITEM_25 0x27D +#define FLAG_HIDDEN_ITEM_26 0x27E +#define FLAG_HIDDEN_ITEM_27 0x27F +#define FLAG_HIDDEN_ITEM_28 0x280 +#define FLAG_HIDDEN_ITEM_29 0x281 +#define FLAG_HIDDEN_ITEM_2A 0x282 +#define FLAG_HIDDEN_ITEM_2B 0x283 +#define FLAG_HIDDEN_ITEM_2C 0x284 +#define FLAG_HIDDEN_ITEM_2D 0x285 +#define FLAG_HIDDEN_ITEM_2E 0x286 +#define FLAG_HIDDEN_ITEM_2F 0x287 +#define FLAG_HIDDEN_ITEM_30 0x288 +#define FLAG_HIDDEN_ITEM_31 0x289 +#define FLAG_HIDDEN_ITEM_32 0x28A +#define FLAG_HIDDEN_ITEM_33 0x28B +#define FLAG_HIDDEN_ITEM_34 0x28C +#define FLAG_HIDDEN_ITEM_35 0x28D +#define FLAG_HIDDEN_ITEM_36 0x28E +#define FLAG_HIDDEN_ITEM_37 0x28F +#define FLAG_HIDDEN_ITEM_38 0x290 +#define FLAG_HIDDEN_ITEM_39 0x291 +#define FLAG_HIDDEN_ITEM_3A 0x292 +#define FLAG_HIDDEN_ITEM_3B 0x293 +#define FLAG_HIDDEN_ITEM_3C 0x294 +#define FLAG_HIDDEN_ITEM_3D 0x295 +#define FLAG_HIDDEN_ITEM_3E 0x296 +#define FLAG_HIDDEN_ITEM_3F 0x297 +#define FLAG_HIDDEN_ITEM_40 0x298 +#define FLAG_HIDDEN_ITEM_41 0x299 +#define FLAG_HIDDEN_ITEM_42 0x29A +#define FLAG_HIDDEN_ITEM_43 0x29B +#define FLAG_HIDDEN_ITEM_44 0x29C +#define FLAG_HIDDEN_ITEM_45 0x29D +#define FLAG_HIDDEN_ITEM_46 0x29E +#define FLAG_HIDDEN_ITEM_47 0x29F +#define FLAG_HIDDEN_ITEM_48 0x2A0 +#define FLAG_HIDDEN_ITEM_49 0x2A1 +#define FLAG_HIDDEN_ITEM_4A 0x2A2 +#define FLAG_HIDDEN_ITEM_4B 0x2A3 +#define FLAG_HIDDEN_ITEM_4C 0x2A4 +#define FLAG_HIDDEN_ITEM_4D 0x2A5 +#define FLAG_HIDDEN_ITEM_4E 0x2A6 +#define FLAG_HIDDEN_ITEM_4F 0x2A7 +#define FLAG_HIDDEN_ITEM_50 0x2A8 +#define FLAG_HIDDEN_ITEM_51 0x2A9 +#define FLAG_HIDDEN_ITEM_52 0x2AA +#define FLAG_HIDDEN_ITEM_53 0x2AB +#define FLAG_HIDDEN_ITEM_54 0x2AC +#define FLAG_HIDDEN_ITEM_55 0x2AD +#define FLAG_HIDDEN_ITEM_56 0x2AE +#define FLAG_HIDDEN_ITEM_57 0x2AF +#define FLAG_HIDDEN_ITEM_58 0x2B0 +#define FLAG_HIDDEN_ITEM_59 0x2B1 +#define FLAG_HIDDEN_ITEM_5A 0x2B2 +#define FLAG_HIDDEN_ITEM_5B 0x2B3 +#define FLAG_HIDDEN_ITEM_5C 0x2B4 +#define FLAG_HIDDEN_ITEM_5D 0x2B5 +#define FLAG_HIDDEN_ITEM_5E 0x2B6 +#define FLAG_HIDDEN_ITEM_5F 0x2B7 +#define FLAG_HIDDEN_ITEM_BLACK_GLASSES 0x2B8 +#define FLAG_HIDDEN_ITEM_61 0x2B9 + + +// map object hide/show flags +#define FLAG_HIDE_BIRCH_STARTERS_BAG 0x2BC + +#define FLAG_HIDE_BIRCH_BATTLE_POOCHYENA 0x2D0 +#define FLAG_HIDE_BIRCH_IN_LAB 0x2D1 +#define FLAG_HIDE_MAY_UPSTAIRS 0x2D2 +#define FLAG_HIDE_RIVAL_ROUTE103 0x2D3 +#define FLAG_HIDE_DEVON_PETALBURG_WOODS 0x2D4 +#define FLAG_HIDE_EVIL_TEAM_PETALBURG_WOODS 0x2D5 +#define FLAG_HIDE_WALLY_PETALBURG 0x2D6 +#define FLAG_HIDE_STEVENS_LETTER 0x2D7 +#define FLAG_HIDE_WALLY_MOM_PETALBURG_1 0x2D8 + +#define FLAG_HIDE_GRUNT_RUSTBORO 0x2DB +#define FLAG_HIDE_DEVON_RUSTBORO 0x2DC +#define FLAG_HIDE_SLEEPING_MON_SEAFLOOR_CAVERN 0x2DD +#define FLAG_HIDE_NORMAN_LITTLEROOT 0x2DE + +#define FLAG_UNKNOWN_2E1 0x2E1 +#define FLAG_HIDE_MR_BRINEY_ROUTE104 0x2E2 +#define FLAG_HIDE_MR_BRINEY_ROUTE104_HOUSE 0x2E3 +#define FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN 0x2E4 +#define FLAG_HIDE_MR_BRINEY_ROUTE109 0x2E5 +#define FLAG_HIDE_MR_BRINEY_BOAT_ROUTE104 0x2E6 +#define FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD 0x2E7 +#define FLAG_HIDE_MR_BRINEY_BOAT_ROUTE109 0x2E8 + +#define FLAG_UNKNOWN_2EB 0x2EB +#define FLAG_UNKNOWN_2EC 0x2EC +#define FLAG_UNKNOWN_2ED 0x2ED +#define FLAG_HIDE_POOCHYENA_ROUTE101 0x2EE +#define FLAG_HIDE_WALLY_DEFEATED_VICTORY_ROAD 0x2EF +#define FLAG_HIDE_MOM_LITTLEROOT 0x2F0 + +#define FLAG_HIDE_MACHOKE_MOVER_1 0x2F2 +#define FLAG_HIDE_MACHOKE_MOVER_2 0x2F3 +#define FLAG_UNKNOWN_2F4 0x2F4 +#define FLAG_HIDE_MOM_UPSTAIRS 0x2F5 +#define FLAG_HIDE_BRENDAN_MOM_DOWNSTAIRS 0x2F6 +#define FLAG_HIDE_MAY_MOM_DOWNSTAIRS 0x2F7 +#define FLAG_HIDE_BRENDAN_UPSTAIRS 0x2F8 +#define FLAG_HIDE_MOVING_TRUCK_BRENDAN 0x2F9 +#define FLAG_HIDE_MOVING_TRUCK_MAY 0x2FA + +#define FLAG_HIDE_VICTOR_WINSTRATE 0x300 +#define FLAG_HIDE_VICTORIA_WINSTRATE 0x301 +#define FLAG_HIDE_VIVI_WINSTRATE 0x302 +#define FLAG_HIDE_VICKI_WINSTRATE 0x303 +#define FLAG_HIDE_NORMAN_PETALBURG_GYM 0x304 +#define FLAG_HIDE_RAYQUAZA 0x305 +#define FLAG_HIDE_LILYCOVE_CONTEST_ATTENDENT_1 0x306 +#define FLAG_HIDE_LILYCOVE_MUSEUM_CURATOR 0x307 +#define FLAG_HIDE_LILYCOVE_MUSEUM_PAINTING_LADY 0x308 +#define FLAG_HIDE_LILYCOVE_MUSEUM_PAINTING_GIRL 0x309 +#define FLAG_HIDE_LILYCOVE_MUSEUM_PAINTING_MAN 0x30A +#define FLAG_HIDE_LILYCOVE_MUSEUM_PAINTER 0x30B +#define FLAG_HIDE_LILYCOVE_MUSEUM_VISITORS 0x30C +#define FLAG_HIDE_PETALBURG_GYM_GUIDE 0x30D +#define FLAG_UNKNOWN_30E 0x30E +#define FLAG_UNKNOWN_30F 0x30F +#define FLAG_HIDE_BRENDAN_MOM 0x310 +#define FLAG_HIDE_MAY_MOM 0x311 + +#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_GABBY_AND_TY_ROUTE111_1 0x31C +#define FLAG_HIDE_GABBY_AND_TY_ROUTE118_1 0x31D +#define FLAG_HIDE_GABBY_AND_TY_ROUTE120_1 0x31E +#define FLAG_HIDE_GABBY_AND_TY_ROUTE111_2 0x31F +#define FLAG_HIDE_CONTEST_REPORTER_FALLARBOR 0x320 +#define FLAG_HIDE_CONTEST_REPORTER_VERDANTURF 0x321 +#define FLAG_HIDE_CONTEST_REPORTER_LILYCOVE 0x322 +#define FLAG_HIDE_CONTEST_REPORTER_SLATEPORT 0x323 +#define FLAG_HIDE_WALLY_MAUVILLE 0x324 +#define FLAG_HIDE_WALLY_FATHER_MAUVILLE 0x325 +#define FLAG_HIDE_WALLY_WANDAS_HOUSE 0x326 +#define FLAG_HIDE_BOYFRIEND_RUSTURF_TUNNEL 0x327 +#define FLAG_HIDE_BOYFRIEND_WANDAS_HOUSE 0x328 +#define FLAG_HIDE_WALLY_FATHER_WANDAS_HOUSE 0x329 + +#define FLAG_HIDE_WALLY_FATHER_PETALBURG 0x32B +#define FLAG_HIDE_WALLY_MOTHER_PETALBURG 0x32C +#define FLAG_HIDE_LOST_GLASSES_MAN 0x32D +#define FLAG_HIDE_RIVAL_RUSTBORO 0x32E +#define FLAG_HIDE_WALLACE_SOOTOPOLIS_GYM 0x32F +#define FLAG_HIDE_WALLACE_SOOTOPOLIS 0x330 + +#define FLAG_HIDE_GRUNTS_BLOCKING_CABLE_CAR 0x333 + +#define FLAG_HIDE_GRUNT_1_BLOCKING_HIDEOUT 0x335 +#define FLAG_HIDE_GRUNT_2_BLOCKING_HIDEOUT 0x336 +#define FLAG_UNKNOWN_337 0x337 + +#define FLAG_HIDE_LEGEND_MON_CAVE_OF_ORIGIN 0x339 + +#define FLAG_HIDE_EVIL_LEADER_SEAFLOOR_CAVERN 0x33C +#define FLAG_HIDE_OTHER_LEADER_SEAFLOOR_CAVERN 0x33D + +#define FLAG_HIDE_OTHER_TEAM_GRUNTS_SEAFLOOR_CAVERN 0x33F + +#define FLAG_HIDE_STEVEN_GRANITE_CAVE 0x341 +#define FLAG_HIDE_STEVEN_ROUTE128 0x342 +#define FLAG_HIDE_GABBY_AND_TY_SLATEPORT 0x343 + +#define FLAG_HIDE_STERN_SLATEPORT 0x348 +#define FLAG_HIDE_STERN_SLATEPORT_HARBOR 0x349 + +#define FLAG_UNKNOWN_34B 0x34B +#define FLAG_UNKNOWN_34C 0x34C +#define FLAG_HIDE_GRUNT_1_SLATEPORT_HARBOR 0x34D +#define FLAG_HIDE_GRUNT_2_SLATEPORT_HARBOR 0x34E +#define FLAG_UNKNOWN_34F 0x34F +#define FLAG_HIDE_SUBMARINE_SHADOW_SLATEPORT_HARBOR 0x350 +#define FLAG_HIDE_MAY_PICHU_DOLL 0x351 + +#define FLAG_HIDE_RIVAL_ROUTE119 0x353 +#define FLAG_HIDE_GRUNTS_LILYCOVE 0x354 + +#define FLAG_HIDE_SOOTOPOLIS_RESIDENTS 0x356 +#define FLAG_HIDE_CAVE_OF_ORIGIN_ENTRANCE_WOMAN_1 0x357 +#define FLAG_HIDE_CAVE_OF_ORIGIN_ENTRANCE_WOMAN_2 0x358 + +#define FLAG_HIDE_WALLY_BATTLE_VICTORY_ROAD 0x35A +#define FLAG_HIDE_AWAKENED_MON_SEAFLOOR_CAVERN 0x35B +#define FLAG_HIDE_SS_TIDAL_SLATEPORT_HARBOR 0x35C +#define FLAG_HIDE_SS_TIDAL_LILYCOVE_HARBOR 0x35D + +#define FLAG_HIDE_WALLY_PETALBURG_GYM 0x362 +#define FLAG_UNKNOWN_363 0x363 +#define FLAG_HIDE_FAT_MAN_LITTLEROOT 0x364 +#define FLAG_HIDE_BRINEY_SLATEPORT_SHIPYARD 0x365 +#define FLAG_HIDE_LANETTE 0x366 +#define FLAG_HIDE_LANETTE_FALLARBOR 0x367 +#define FLAG_HIDE_TRICKMASTER_ENTRANCE 0x368 + +#define FLAG_HIDE_MT_CHIMNEY_PEOPLE 0x36D +#define FLAG_HIDE_GRUNT_RUSTURF_TUNNEL 0x36E +#define FLAG_HIDE_BRINEY_RUSTURF_TUNNEL 0x36F +#define FLAG_HIDE_PEEKO_RUSTURF_TUNNEL 0x370 +#define FLAG_HIDE_PEEKO_BRINEY_HOUSE 0x371 +#define FLAG_HIDE_EVIL_TEAM_SLATEPORT 0x372 +#define FLAG_HIDE_EVIL_TEAM_OCEANIC_MUSEUM 0x373 +#define FLAG_HIDE_GRUNT_1_OCEANIC_MUSEUM_2F 0x374 +#define FLAG_HIDE_GRUNT_2_OCEANIC_MUSEUM_2F 0x375 +#define FLAG_HIDE_EVIL_TEAM_LEADER_OCEANIC_MUSEUM_2F 0x376 +#define FLAG_HIDE_STERN_OCEANIC_MUSEUM_2F 0x377 +#define FLAG_HIDE_BATTLE_TOWER_OPPONENT 0x378 +#define FLAG_HIDE_RIVAL_BIRCH_LAB 0x379 +#define FLAG_HIDE_EVIL_TEAM_WEATHER_INSTITUTE 0x37A +#define FLAG_HIDE_BRINEY_ROUTE116 0x37B +#define FLAG_HIDE_WEATHER_INSTITUTE_WORKERS_1F 0x37C +#define FLAG_HIDE_WEATHER_INSTITUTE_WORKERS_2F 0x37D +#define FLAG_HIDE_TUNNER_DIGGER_ROUTE116 0x37E +#define FLAG_HIDE_ARTIST_LILCOVE_CONTEST 0x37F +#define FLAG_UNKNOWN_BIRCH_380 0x380 // TODO: what should this be called? +#define FLAG_HIDE_BIRCH_ROUTE101 0x381 +#define FLAG_HIDE_BIRCH_ROUTE103 0x382 +#define FLAG_HIDE_TRICKMASTER_END 0x383 +#define FLAG_HIDE_EVIL_TEAM_ROUTE110 0x384 +#define FLAG_HIDE_GABBY_AND_TY_ROUTE118_2 0x385 +#define FLAG_HIDE_GABBY_AND_TY_ROUTE120_2 0x386 +#define FLAG_HIDE_GABBY_AND_TY_ROUTE111_3 0x387 +#define FLAG_HIDE_GABBY_AND_TY_ROUTE118_3 0x388 +#define FLAG_HIDE_WORKERS_SLATEPORT_HARBOR 0x389 +#define FLAG_HIDE_FLOWER_SHOP_WORKER_OUTSIDE 0x38A +#define FLAG_HIDE_AZURILL_FALLARBOR 0x38B +#define FLAG_HIDE_FERRY_ATTENDANT_LILYCOVE 0x38C +#define FLAG_HIDE_FERRY_SAILOR_LILYCOVE 0x38D +#define FLAG_HIDE_LATIOS_OR_LATIAS_FLYING 0x38E +#define FLAG_HIDE_LATIOS_OR_LATIAS_STATIONARY 0x38F +#define FLAG_HIDE_WATTSON_MAUVILLE 0x390 +#define FLAG_HIDE_WATTSON_MAUVILLE_GYM 0x391 +#define FLAG_HIDE_GRUNTS_ROUTE121 0x392 +#define FLAG_UNKNOWN_393 0x393 +#define FLAG_HIDE_LEADER_MT_PYRE_SUMMIT 0x394 +#define FLAG_HIDE_GRUNTS_MT_PYRE_SUMMIT 0x395 +#define FLAG_HIDE_REPORTER_BATTLE_TOWER 0x396 +#define FLAG_HIDE_RIVAL_ROUTE110 0x397 +#define FLAG_HIDE_RIVAL_CHAMPIONS_ROOM 0x398 +#define FLAG_HIDE_BIRCH_CHAMPIONS_ROOM 0x399 +#define FLAG_HIDE_RIVAL_ON_BIKE_ROUTE110 0x39A +#define FLAG_HIDE_RIVAL_ROUTE119_ON_BIKE 0x39B +#define FLAG_HIDE_GRUNTS_HIDEOUTS 0x39C +#define FLAG_HIDE_LILYCOVE_MOTEL_PEOPLE 0x39D +#define FLAG_HIDE_EVIL_TEAM_MT_CHIMNEY 0x39E +#define FLAG_HIDE_OTEHR_TEAM_MT_CHIMNEY 0x39F +#define FLAG_HIDE_PROF_COSMO_FALLARBOR 0x3A0 +#define FLAG_HIDE_RIVAL_LAVARIDGE_1 0x3A1 +#define FLAG_HIDE_RIVAL_LAVARIDGE_2 0x3A2 +#define FLAG_HIDE_RUSTURF_TUNNEL_ROCK_1 0x3A3 +#define FLAG_HIDE_RUSTURF_TUNNEL_ROCK_2 0x3A4 +#define FLAG_HIDE_WINGULL_FORTREE_HOUSE 0x3A5 +#define FLAG_HIDE_WINGULL_MOSSDEEP_HOUSE 0x3A6 +#define FLAG_HIDE_REGIROCK 0x3A7 +#define FLAG_HIDE_REGICE 0x3A8 +#define FLAG_HIDE_REGISTEEL 0x3A9 +#define FLAG_HIDE_GRUNTS_METEOR_FALLS_1F 0x3AA +#define FLAG_HIDE_OTHER_TEAM_METEOR_FALLS_1F 0x3AB +#define FLAG_HIDE_SLUDGE_BOMB_MAN_DEWFORD_HALL 0x3AC +#define FLAG_HIDE_AWARD_MAN_BATTLE_TOWER 0x3AD +#define FLAG_HIDE_PROF_COSMO_METEOR_FALLS 0x3AE +#define FLAG_HIDE_SUBMARINE_SHADOW_HIDEOUT 0x3AF +#define FLAG_HIDE_EVIL_LEADER_ROUTE128 0x3B0 +#define FLAG_HIDE_OTHER_LEADER_ROUTE128 0x3B1 +#define FLAG_HIDE_EVIL_TEAM_GRUNTS_SEAFLOOR_CAVERN 0x3B2 +#define FLAG_HIDE_DEVON_EMPLOYEE_ROUTE116 0x3B3 +#define FLAG_HIDE_TM_SALESMAN_SLATEPORT 0x3B4 +#define FLAG_HIDE_EMPLOYEE_DEVON_CORP_3F 0x3B5 +#define FLAG_HIDE_BRINEY_AND_PEEKO_SS_TIDAL 0x3B6 +#define FLAG_HIDE_TM_49_GIVER_SS_TIDAL 0x3B7 +#define FLAG_HIDE_TOOK_SHOAL_SALT_1 0x3B8 +#define FLAG_HIDE_TOOK_SHOAL_SALT_2 0x3B9 +#define FLAG_HIDE_TOOK_SHOAL_SALT_3 0x3BA +#define FLAG_HIDE_TOOK_SHOAL_SALT_4 0x3BB +#define FLAG_HIDE_TOOK_SHOAL_SHELL_1 0x3BC +#define FLAG_HIDE_TOOK_SHOAL_SHELL_2 0x3BD +#define FLAG_HIDE_TOOK_SHOAL_SHELL_3 0x3BE +#define FLAG_HIDE_TOOK_SHOAL_SHELL_4 0x3BF +#define FLAG_HIDE_SECRET_POWER_MAN 0x3C0 +#define FLAG_HIDE_OCEANIC_MUSEUM_VISITORS 0x3C1 +#define FLAG_HIDE_ROOFTOP_LADY_LILYCOVE_MART 0x3C2 +#define FLAG_HIDE_ROOT_FOSSIL 0x3C3 +#define FLAG_HIDE_CLAW_FOSSIL 0x3C4 +#define FLAG_HIDE_SCARED_GRUNT_OCEANIC_MUSEUM 0x3C5 +#define FLAG_HIDE_STEVEN_ROUTE118 0x3C6 +#define FLAG_HIDE_STEVEN_STEVENS_HOUSE 0x3C7 +#define FLAG_HIDE_BELDUM_BALL_STEVENS_HOUSE 0x3C8 +#define FLAG_HIDE_KECLEON_FORTREE 0x3C9 +#define FLAG_HIDE_KECLEON_ROUTE120_1 0x3CA +#define FLAG_HIDE_RIVAL_LILYCOVE_MART 0x3CB +#define FLAG_HIDE_STEVEN_ROUTE120 0x3CC +#define FLAG_HIDE_STEVEN_SOOTOPOLIS 0x3CD +#define FLAG_HIDE_VOLTORB_1_NEW_MAUVILLE 0x3CE +#define FLAG_HIDE_VOLTORB_2_NEW_MAUVILLE 0x3CF +#define FLAG_HIDE_VOLTORB_3_NEW_MAUVILLE 0x3D0 +#define FLAG_HIDE_ELECTRODE_1_HIDEOUT 0x3D1 +#define FLAG_HIDE_ELECTRODE_2_HIDEOUT 0x3D2 +#define FLAG_HIDE_RIVAL_OLDALE_TOWN 0x3D3 +#define FLAG_HIDE_UNDERWATER_SUBMARINE_INTERACTION 0x3D4 +#define FLAG_HIDE_KECLEON_ROUTE120_2 0x3D5 +#define FLAG_HIDE_KECLEON_ROUTE120_3 0x3D6 +#define FLAG_HIDE_GIRLFRIEND_RUSTURF_TUNNEL 0x3D7 +#define FLAG_HIDE_GIRLFRIEND_WANDAS_HOUSE 0x3D8 +#define FLAG_HIDE_KECLEON_ROUTE120_4 0x3D9 +#define FLAG_HIDE_KECLEON_ROUTE120_5 0x3DA +#define FLAG_HIDE_KECLEON_ROUTE120_6 0x3DB +#define FLAG_HIDE_KECLEON_ROUTE120_7 0x3DC +#define FLAG_HIDE_KECLEON_ROUTE119_1 0x3DD +#define FLAG_HIDE_KECLEON_ROUTE119_2 0x3DE +#define FLAG_HIDE_BOY_ROUTE101 0x3DF + +#define FLAG_ITEM_ROUTE102_1 0x3E8 +#define FLAG_ITEM_ROUTE116_1 0x3E9 +#define FLAG_ITEM_ROUTE104_1 0x3EA +#define FLAG_ITEM_ROUTE105_1 0x3EB +#define FLAG_ITEM_ROUTE106_1 0x3EC +#define FLAG_ITEM_ROUTE109_1 0x3ED +#define FLAG_ITEM_ROUTE110_1 0x3EE +#define FLAG_ITEM_ROUTE110_2 0x3EF +#define FLAG_ITEM_ROUTE111_1 0x3F0 +#define FLAG_ITEM_ROUTE111_2 0x3F1 +#define FLAG_ITEM_ROUTE111_3 0x3F2 +#define FLAG_ITEM_ROUTE112_1 0x3F3 +#define FLAG_ITEM_ROUTE113_1 0x3F4 +#define FLAG_ITEM_ROUTE113_2 0x3F5 +#define FLAG_ITEM_ROUTE114_1 0x3F6 +#define FLAG_ITEM_ROUTE114_2 0x3F7 +#define FLAG_ITEM_ROUTE115_1 0x3F8 +#define FLAG_ITEM_ROUTE115_2 0x3F9 +#define FLAG_ITEM_ROUTE115_3 0x3FA +#define FLAG_ITEM_ROUTE116_2 0x3FB +#define FLAG_ITEM_ROUTE116_3 0x3FC +#define FLAG_ITEM_ROUTE116_4 0x3FD +#define FLAG_ITEM_ROUTE117_1 0x3FE +#define FLAG_ITEM_ROUTE117_2 0x3FF +#define FLAG_ITEM_ROUTE119_1 0x400 +#define FLAG_ITEM_ROUTE119_2 0x401 +#define FLAG_ITEM_ROUTE119_3 0x402 +#define FLAG_ITEM_ROUTE119_4 0x403 +#define FLAG_ITEM_ROUTE119_5 0x404 +#define FLAG_ITEM_ROUTE119_6 0x405 +#define FLAG_ITEM_ROUTE120_1 0x406 +#define FLAG_ITEM_ROUTE120_2 0x407 +#define FLAG_ITEM_ROUTE123_1 0x408 +#define FLAG_ITEM_ROUTE123_2 0x409 +#define FLAG_ITEM_ROUTE127_1 0x40A +#define FLAG_ITEM_ROUTE127_2 0x40B +#define FLAG_ITEM_ROUTE132_1 0x40C +#define FLAG_ITEM_ROUTE133_1 0x40D +#define FLAG_ITEM_ROUTE133_2 0x40E +#define FLAG_ITEM_PETALBURG_1 0x40F +#define FLAG_ITEM_PETALBURG_2 0x410 +#define FLAG_ITEM_RUSTBORO_1 0x411 +#define FLAG_ITEM_LILYCOVE_1 0x412 +#define FLAG_ITEM_MOSSDEEP_1 0x413 +#define FLAG_ITEM_METEOR_FALLS_1F_1R_1 0x414 +#define FLAG_ITEM_METEOR_FALLS_1F_1R_2 0x415 +#define FLAG_ITEM_METEOR_FALLS_1F_1R_3 0x416 +#define FLAG_ITEM_METEOR_FALLS_1F_1R_4 0x417 +#define FLAG_ITEM_RUSTURF_TUNNEL_1 0x418 +#define FLAG_ITEM_RUSTURF_TUNNEL_2 0x419 +#define FLAG_ITEM_GRANITE_CAVE_1F_1 0x41A +#define FLAG_ITEM_GRANITE_CAVE_B1F_1 0x41B +#define FLAG_ITEM_MT_PYRE_5F_1 0x41C +#define FLAG_ITEM_GRANITE_CAVE_B2F_1 0x41D +#define FLAG_ITEM_GRANITE_CAVE_B2F_2 0x41E +#define FLAG_ITEM_PETALBURG_WOODS_1 0x41F +#define FLAG_ITEM_PETALBURG_WOODS_2 0x420 +#define FLAG_ITEM_ROUTE104_2 0x421 +#define FLAG_ITEM_PETALBURG_WOODS_3 0x422 +#define FLAG_ITEM_CAVE_OF_ORIGIN_B3F_1 0x423 +#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_1_1 0x424 +#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_2_1 0x425 +#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_2_2 0x426 +#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_3_1 0x427 +#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_3_2 0x428 +#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_4_1 0x429 +#define FLAG_ITEM_ROUTE124_1 0x42A +#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_6_1 0x42B +#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_7_1 0x42C +#define FLAG_ITEM_TRICK_HOUSE_PUZZLE_8_1 0x42D +#define FLAG_ITEM_JAGGED_PASS_1 0x42E +#define FLAG_ITEM_AQUA_HIDEOUT_B1F_1 0x42F +#define FLAG_ITEM_AQUA_HIDEOUT_B2F_1 0x430 +#define FLAG_ITEM_MT_PYRE_EXTERIOR_1 0x431 +#define FLAG_ITEM_MT_PYRE_EXTERIOR_2 0x432 +#define FLAG_ITEM_NEW_MAUVILLE_INSIDE_1 0x433 +#define FLAG_ITEM_NEW_MAUVILLE_INSIDE_2 0x434 +#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_1 0x435 +#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_2 0x436 +#define FLAG_ITEM_SCORCHED_SLAB_1 0x437 +#define FLAG_ITEM_METEOR_FALLS_B1F_2R_1 0x438 +#define FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_ENTRANCE_1 0x439 +#define FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_INNER_ROOM_1 0x43A +#define FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM_1 0x43B +#define FLAG_ITEM_VICTORY_ROAD_1F_1 0x43C +#define FLAG_ITEM_VICTORY_ROAD_1F_2 0x43D +#define FLAG_ITEM_VICTORY_ROAD_B1F_1 0x43E +#define FLAG_ITEM_VICTORY_ROAD_B1F_2 0x43F +#define FLAG_ITEM_VICTORY_ROAD_B2F_1 0x440 +#define FLAG_ITEM_MT_PYRE_6F_1 0x441 +#define FLAG_ITEM_SEAFLOOR_CAVERN_ROOM_9_1 0x442 +#define FLAG_ITEM_FIERY_PATH_1 0x443 +#define FLAG_ITEM_ROUTE124_2 0x444 +#define FLAG_ITEM_ROUTE124_3 0x445 +#define FLAG_ITEM_SAFARI_ZONE_NORTHWEST_1 0x446 +#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_1F_1 0x447 +#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_B1F_1 0x448 +#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_2_B1F_1 0x449 +#define FLAG_ITEM_ABANDONED_SHIP_ROOM_B1F_1 0x44A +#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_2_1F_1 0x44B +#define FLAG_ITEM_ABANDONED_SHIP_CAPTAINS_OFFICE_1 0x44C +#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_3 0x44D +#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_4 0x44E +#define FLAG_ITEM_ROUTE121_1 0x44F +#define FLAG_ITEM_ROUTE123_3 0x450 +#define FLAG_ITEM_ROUTE126_1 0x451 +#define FLAG_ITEM_ROUTE119_7 0x452 +#define FLAG_ITEM_ROUTE120_3 0x453 +#define FLAG_ITEM_ROUTE120_4 0x454 +#define FLAG_ITEM_ROUTE123_4 0x455 +#define FLAG_ITEM_NEW_MAUVILLE_INSIDE_3 0x456 +#define FLAG_ITEM_FIERY_PATH_2 0x457 +#define FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_ICE_ROOM_1 0x458 +#define FLAG_ITEM_SHOAL_CAVE_LOW_TIDE_ICE_ROOM_2 0x459 +#define FLAG_ITEM_ROUTE103_1 0x45A +#define FLAG_ITEM_ROUTE104_3 0x45B +#define FLAG_ITEM_MAUVILLE_1 0x45C +#define FLAG_ITEM_PETALBURG_WOODS_4 0x45D +#define FLAG_ITEM_ROUTE115_4 0x45E +#define FLAG_ITEM_SAFARI_ZONE_NORTHEAST_1 0x45F +#define FLAG_ITEM_MT_PYRE_3F_1 0x460 +#define FLAG_ITEM_ROUTE118_1 0x461 +#define FLAG_ITEM_NEW_MAUVILLE_INSIDE_4 0x462 +#define FLAG_ITEM_NEW_MAUVILLE_INSIDE_5 0x463 +#define FLAG_ITEM_AQUA_HIDEOUT_B1F_2 0x464 +#define FLAG_ITEM_MAGMA_HIDEOUT_B1F_1 0x465 +#define FLAG_ITEM_MAGMA_HIDEOUT_B1F_2 0x466 +#define FLAG_ITEM_MAGMA_HIDEOUT_B2F_1 0x467 + +#define FLAG_ITEM_MT_PYRE_2F_1 0x469 +#define FLAG_ITEM_MT_PYRE_4F_1 0x46A +#define FLAG_ITEM_SAFARI_ZONE_SOUTHWEST 0x46B +#define FLAG_ITEM_AQUA_HIDEOUT_B1F_3 0x46C +#define FLAG_ITEM_MOSSDEEP_STEVENS_HOUSE_1 0x46D +#define FLAG_ITEM_MAGMA_HIDEOUT_B1F_3 0x46E +#define FLAG_ITEM_ROUTE104_4 0x46F + +#define FLAG_DEFEATED_RUSTBORO_GYM 0x4B1 + +#define FLAG_DEFEATED_DEWFORD_GYM 0x4B4 + +#define FLAG_DEFEATED_MAUVILLE_GYM 0x4B8 + +#define FLAG_DEFEATED_LAVARIDGE_GYM 0x4BD + +#define FLAG_DEFEATED_PETALBURG_GYM 0x4C1 + +#define FLAG_DEFEATED_FORTREE_GYM 0x4C9 + +#define FLAG_DEFEATED_MOSSDEEP_GYM 0x4CD + +#define FLAG_DEFEATED_SOOTOPOLIS_GYM 0x4D4 + +#define FLAG_DEFEATED_ELITE_4_SYDNEY 0x4DD +#define FLAG_DEFEATED_ELITE_4_PHOEBE 0x4DE +#define FLAG_DEFEATED_ELITE_4_GLACIA 0x4DF +#define FLAG_DEFEATED_ELITE_4_DRAKE 0x4E0 + + +#define TRAINER_FLAG_START 0x500 + + +// SYSTEM FLAGS + +#define NUMBER_OF_TRAINERS 693 +#define SYSTEM_FLAGS (TRAINER_FLAG_START + NUMBER_OF_TRAINERS + 0x4B) // 0x800 + +#define FLAG_SYS_POKEMON_GET (SYSTEM_FLAGS + 0x00) +#define FLAG_SYS_POKEDEX_GET (SYSTEM_FLAGS + 0x01) +#define FLAG_SYS_POKENAV_GET (SYSTEM_FLAGS + 0x02) +#define FLAG_SYS_GAME_CLEAR (SYSTEM_FLAGS + 0x04) +#define FLAG_SYS_CHAT_USED (SYSTEM_FLAGS + 0x05) +#define FLAG_SYS_HIPSTER_MEET (SYSTEM_FLAGS + 0x06) + +// badges +#define FLAG_BADGE01_GET (SYSTEM_FLAGS + 0x07) +#define FLAG_BADGE02_GET (SYSTEM_FLAGS + 0x08) +#define FLAG_BADGE03_GET (SYSTEM_FLAGS + 0x09) +#define FLAG_BADGE04_GET (SYSTEM_FLAGS + 0x0A) +#define FLAG_BADGE05_GET (SYSTEM_FLAGS + 0x0B) +#define FLAG_BADGE06_GET (SYSTEM_FLAGS + 0x0C) +#define FLAG_BADGE07_GET (SYSTEM_FLAGS + 0x0D) +#define FLAG_BADGE08_GET (SYSTEM_FLAGS + 0x0E) + +// cities and towns +#define FLAG_VISITED_LITTLEROOT_TOWN (SYSTEM_FLAGS + 0x0F) +#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_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_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_POPWORD_INPUT (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) +#define FLAG_SYS_CAVE_WONDER (SYSTEM_FLAGS + 0x38) +#define FLAG_SYS_CAVE_BATTLE (SYSTEM_FLAGS + 0x39) +#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_TOWER (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_EXDATA_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_BRAILLE_STRENGTH (SYSTEM_FLAGS + 0x50) +#define FLAG_SYS_BRAILLE_WAIT (SYSTEM_FLAGS + 0x51) +#define FLAG_SYS_BRAILLE_FLY (SYSTEM_FLAGS + 0x52) +#define FLAG_SYS_HAS_EON_TICKET (SYSTEM_FLAGS + 0x53) +#define FLAG_SYS_POKEMON_LEAGUE_FLY (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_LATI (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) // got 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) + + +// Daily Flags. These 64 flags are cleared once per day. +#define DAILY_FLAGS_START (SYSTEM_FLAGS + 0xC0) + +#define FLAG_DAILY_RECEIVED_BERRY_FALLARBOR (SYSTEM_FLAGS + 0xC1) +#define FLAG_DAILY_UNKNOWN_8C2 (SYSTEM_FLAGS + 0xC2) + +#define FLAG_DAILY_PICKED_LOTTO_TICKET (SYSTEM_FLAGS + 0xCA) +#define FLAG_DAILY_RECEIVED_BERRY_ROUTE114 (SYSTEM_FLAGS + 0xCB) +#define FLAG_DAILY_RECEIVED_BERRY_ROUTE111 (SYSTEM_FLAGS + 0xCC) +#define FLAG_DAILY_RECEIVED_BERRY_FROM_BERRYMASTER (SYSTEM_FLAGS + 0xCD) +#define FLAG_DAILY_RECEIVED_BERRY_ROUTE120 (SYSTEM_FLAGS + 0xCE) +#define FLAG_DAILY_RECEIVED_BERRY_LILYCOVE (SYSTEM_FLAGS + 0xCF) +#define FLAG_DAILY_RECEIVED_BERRY_FLOWER_SHOP (SYSTEM_FLAGS + 0xD0) +#define FLAG_DAILY_RECEIVED_BERRY_FROM_BERRYMASTER_WIFE (SYSTEM_FLAGS + 0xD1) +#define FLAG_DAILY_RECEIVED_BERRY_SOOTOPOLIS (SYSTEM_FLAGS + 0xD2) +// Daily flags end at 0x8FF + +// SPECIAL FLAGS (unknown purpose) + +#define FLAG_SPECIAL_FLAG_0 0x4000 +#define FLAG_SPECIAL_FLAG_1 0x4001 + +#endif // GUARD_CONSTANTS_FLAGS_H diff --git a/include/game_stat.h b/include/constants/game_stat.h index 70b6f51ce..47d703d85 100644 --- a/include/game_stat.h +++ b/include/constants/game_stat.h @@ -1,5 +1,5 @@ -#ifndef GUARD_GAME_STAT_H -#define GUARD_GAME_STAT_H +#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 @@ -53,4 +53,4 @@ #define GAME_STAT_ENTERED_HOT_SPRINGS 49 #define NUM_GAME_STATS 50 -#endif // GUARD_GAME_STAT_H +#endif // GUARD_CONSTANTS_GAME_STAT_H diff --git a/include/hold_effects.h b/include/constants/hold_effects.h index b653f5a92..17bc6846d 100644 --- a/include/hold_effects.h +++ b/include/constants/hold_effects.h @@ -1,5 +1,5 @@ -#ifndef GUARD_HOLD_EFFECTS_H -#define GUARD_HOLD_EFFECTS_H +#ifndef GUARD_CONSTANTS_HOLD_EFFECTS_H +#define GUARD_CONSTANTS_HOLD_EFFECTS_H #define HOLD_EFFECT_NONE 0 #define HOLD_EFFECT_RESTORE_HP 1 @@ -69,4 +69,4 @@ #define HOLD_EFFECT_THICK_CLUB 65 #define HOLD_EFFECT_STICK 66 -#endif // GUARD_HOLD_EFFECTS_H +#endif // GUARD_CONSTANTS_HOLD_EFFECTS_H diff --git a/include/constants/items.h b/include/constants/items.h new file mode 100644 index 000000000..48fba1427 --- /dev/null +++ b/include/constants/items.h @@ -0,0 +1,389 @@ +#ifndef GUARD_CONSTANTS_ITEMS_H +#define GUARD_CONSTANTS_ITEMS_H + +#define ITEM_NONE 0 +#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 +#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 +#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 +#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 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 ITEM_0B0 176 +#define ITEM_0B1 177 +#define ITEM_0B2 178 +#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 +#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 +#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 +#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_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 NUM_TECHNICAL_MACHINES 50 +#define NUM_HIDDEN_MACHINES 8 + +#endif // GUARD_CONSTANTS_ITEMS_H diff --git a/include/constants/map_objects.h b/include/constants/map_objects.h new file mode 100644 index 000000000..7e5aef744 --- /dev/null +++ b/include/constants/map_objects.h @@ -0,0 +1,252 @@ +#ifndef GUARD_CONSTANTS_MAP_OBJECTS_H +#define GUARD_CONSTANTS_MAP_OBJECTS_H + +#define MAP_OBJ_GFX_BRENDAN_NORMAL 0 +#define MAP_OBJ_GFX_BRENDAN_MACH_BIKE 1 +#define MAP_OBJ_GFX_BRENDAN_SURFING 2 +#define MAP_OBJ_GFX_BRENDAN_FIELD_MOVE 3 +#define MAP_OBJ_GFX_QUINTY_PLUMP 4 +#define MAP_OBJ_GFX_LITTLE_BOY_1 5 +#define MAP_OBJ_GFX_LITTLE_GIRL_1 6 +#define MAP_OBJ_GFX_BOY_1 7 +#define MAP_OBJ_GFX_GIRL_1 8 +#define MAP_OBJ_GFX_BOY_2 9 +#define MAP_OBJ_GFX_GIRL_2 10 +#define MAP_OBJ_GFX_LITTLE_BOY_2 11 +#define MAP_OBJ_GFX_LITTLE_GIRL_2 12 +#define MAP_OBJ_GFX_BOY_3 13 +#define MAP_OBJ_GFX_GIRL_3 14 +#define MAP_OBJ_GFX_BOY_4 15 +#define MAP_OBJ_GFX_WOMAN_1 16 +#define MAP_OBJ_GFX_FAT_MAN 17 +#define MAP_OBJ_GFX_WOMAN_2 18 +#define MAP_OBJ_GFX_MAN_1 19 +#define MAP_OBJ_GFX_WOMAN_3 20 +#define MAP_OBJ_GFX_OLD_MAN_1 21 +#define MAP_OBJ_GFX_OLD_WOMAN_1 22 +#define MAP_OBJ_GFX_MAN_2 23 +#define MAP_OBJ_GFX_WOMAN_4 24 +#define MAP_OBJ_GFX_MAN_3 25 +#define MAP_OBJ_GFX_WOMAN_5 26 +#define MAP_OBJ_GFX_COOK 27 +#define MAP_OBJ_GFX_WOMAN_6 28 +#define MAP_OBJ_GFX_OLD_MAN_2 29 +#define MAP_OBJ_GFX_OLD_WOMAN_2 30 +#define MAP_OBJ_GFX_CAMPER 31 +#define MAP_OBJ_GFX_PICNICKER 32 +#define MAP_OBJ_GFX_MAN_4 33 +#define MAP_OBJ_GFX_WOMAN_7 34 +#define MAP_OBJ_GFX_YOUNGSTER 35 +#define MAP_OBJ_GFX_BUG_CATCHER 36 +#define MAP_OBJ_GFX_PSYCHIC_M 37 +#define MAP_OBJ_GFX_SCHOOL_KID_M 38 +#define MAP_OBJ_GFX_MANIAC 39 +#define MAP_OBJ_GFX_HEX_MANIAC 40 +#define MAP_OBJ_GFX_WOMAN_8 41 +#define MAP_OBJ_GFX_SWIMMER_M 42 +#define MAP_OBJ_GFX_SWIMMER_F 43 +#define MAP_OBJ_GFX_BLACK_BELT 44 +#define MAP_OBJ_GFX_BEAUTY 45 +#define MAP_OBJ_GFX_SCIENTIST_1 46 +#define MAP_OBJ_GFX_LASS 47 +#define MAP_OBJ_GFX_GENTLEMAN 48 +#define MAP_OBJ_GFX_SAILOR 49 +#define MAP_OBJ_GFX_FISHERMAN 50 +#define MAP_OBJ_GFX_RUNNING_TRIATHLETE_M 51 +#define MAP_OBJ_GFX_RUNNING_TRIATHLETE_F 52 +#define MAP_OBJ_GFX_TUBER_F 53 +#define MAP_OBJ_GFX_TUBER_M 54 +#define MAP_OBJ_GFX_HIKER 55 +#define MAP_OBJ_GFX_CYCLING_TRIATHLETE_M 56 +#define MAP_OBJ_GFX_CYCLING_TRIATHLETE_F 57 +#define MAP_OBJ_GFX_NURSE 58 +#define MAP_OBJ_GFX_ITEM_BALL 59 +#define MAP_OBJ_GFX_BERRY_TREE 60 +#define MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES 61 +#define MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES 62 +#define MAP_OBJ_GFX_BRENDAN_ACRO_BIKE 63 +#define MAP_OBJ_GFX_PROF_BIRCH 64 +#define MAP_OBJ_GFX_MAN_5 65 +#define MAP_OBJ_GFX_MAN_6 66 +#define MAP_OBJ_GFX_REPORTER_M 67 +#define MAP_OBJ_GFX_REPORTER_F 68 +#define MAP_OBJ_GFX_BARD 69 +#define MAP_OBJ_GFX_HIPSTER 70 +#define MAP_OBJ_GFX_TRADER 71 +#define MAP_OBJ_GFX_STORYTELLER 72 +#define MAP_OBJ_GFX_GIDDY 73 +#define MAP_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_1 74 +#define MAP_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_2 75 +#define MAP_OBJ_GFX_UNUSED_NATU_DOLL 76 +#define MAP_OBJ_GFX_UNUSED_MAGNEMITE_DOLL 77 +#define MAP_OBJ_GFX_UNUSED_SQUIRTLE_DOLL 78 +#define MAP_OBJ_GFX_UNUSED_WOOPER_DOLL 79 +#define MAP_OBJ_GFX_UNUSED_PIKACHU_DOLL 80 +#define MAP_OBJ_GFX_UNUSED_PORYGON2_DOLL 81 +#define MAP_OBJ_GFX_CUTTABLE_TREE 82 +#define MAP_OBJ_GFX_MART_EMPLOYEE 83 +#define MAP_OBJ_GFX_ROOFTOP_SALE_WOMAN 84 +#define MAP_OBJ_GFX_TEALA 85 +#define MAP_OBJ_GFX_BREAKABLE_ROCK 86 +#define MAP_OBJ_GFX_PUSHABLE_BOULDER 87 +#define MAP_OBJ_GFX_MR_BRINEYS_BOAT 88 +#define MAP_OBJ_GFX_MAY_NORMAL 89 +#define MAP_OBJ_GFX_MAY_MACH_BIKE 90 +#define MAP_OBJ_GFX_MAY_ACRO_BIKE 91 +#define MAP_OBJ_GFX_MAY_SURFING 92 +#define MAP_OBJ_GFX_MAY_FIELD_MOVE 93 +#define MAP_OBJ_GFX_TRUCK 94 +#define MAP_OBJ_GFX_MACHOKE_CARRYING_BOX 95 +#define MAP_OBJ_GFX_MACHOKE_FACING_AWAY 96 +#define MAP_OBJ_GFX_BIRCHS_BAG 97 +#define MAP_OBJ_GFX_POOCHYENA 98 +#define MAP_OBJ_GFX_ARTIST 99 +#define MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL 100 +#define MAP_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE 101 +#define MAP_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE 102 +#define MAP_OBJ_GFX_RIVAL_BRENDAN_SURFING 103 +#define MAP_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE 104 +#define MAP_OBJ_GFX_RIVAL_MAY_NORMAL 105 +#define MAP_OBJ_GFX_RIVAL_MAY_MACH_BIKE 106 +#define MAP_OBJ_GFX_RIVAL_MAY_ACRO_BIKE 107 +#define MAP_OBJ_GFX_RIVAL_MAY_SURFING 108 +#define MAP_OBJ_GFX_RIVAL_MAY_FIELD_MOVE 109 +#define MAP_OBJ_GFX_CAMERAMAN 110 +#define MAP_OBJ_GFX_BRENDAN_UNDERWATER 111 +#define MAP_OBJ_GFX_MAY_UNDERWATER 112 +#define MAP_OBJ_GFX_MOVING_BOX 113 +#define MAP_OBJ_GFX_CABLE_CAR 114 +#define MAP_OBJ_GFX_SCIENTIST_2 115 +#define MAP_OBJ_GFX_MAN_7 116 +#define MAP_OBJ_GFX_AQUA_MEMBER_M 117 +#define MAP_OBJ_GFX_AQUA_MEMBER_F 118 +#define MAP_OBJ_GFX_MAGMA_MEMBER_M 119 +#define MAP_OBJ_GFX_MAGMA_MEMBER_F 120 +#define MAP_OBJ_GFX_SIDNEY 121 +#define MAP_OBJ_GFX_PHOEBE 122 +#define MAP_OBJ_GFX_GLACIA 123 +#define MAP_OBJ_GFX_DRAKE 124 +#define MAP_OBJ_GFX_ROXANNE 125 +#define MAP_OBJ_GFX_BRAWLY 126 +#define MAP_OBJ_GFX_WATTSON 127 +#define MAP_OBJ_GFX_FLANNERY 128 +#define MAP_OBJ_GFX_NORMAN 129 +#define MAP_OBJ_GFX_WINONA 130 +#define MAP_OBJ_GFX_LIZA 131 +#define MAP_OBJ_GFX_TATE 132 +#define MAP_OBJ_GFX_WALLACE 133 +#define MAP_OBJ_GFX_STEVEN 134 +#define MAP_OBJ_GFX_WALLY 135 +#define MAP_OBJ_GFX_LITTLE_BOY_3 136 +#define MAP_OBJ_GFX_BRENDAN_FISHING 137 +#define MAP_OBJ_GFX_MAY_FISHING 138 +#define MAP_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN 139 +#define MAP_OBJ_GFX_SS_TIDAL 140 +#define MAP_OBJ_GFX_SUBMARINE_SHADOW 141 +#define MAP_OBJ_GFX_PICHU_DOLL 142 +#define MAP_OBJ_GFX_PIKACHU_DOLL 143 +#define MAP_OBJ_GFX_MARILL_DOLL 144 +#define MAP_OBJ_GFX_TOGEPI_DOLL 145 +#define MAP_OBJ_GFX_CYNDAQUIL_DOLL 146 +#define MAP_OBJ_GFX_CHIKORITA_DOLL 147 +#define MAP_OBJ_GFX_TOTODILE_DOLL 148 +#define MAP_OBJ_GFX_JIGGLYPUFF_DOLL 149 +#define MAP_OBJ_GFX_MEOWTH_DOLL 150 +#define MAP_OBJ_GFX_CLEFAIRY_DOLL 151 +#define MAP_OBJ_GFX_DITTO_DOLL 152 +#define MAP_OBJ_GFX_SMOOCHUM_DOLL 153 +#define MAP_OBJ_GFX_TREECKO_DOLL 154 +#define MAP_OBJ_GFX_TORCHIC_DOLL 155 +#define MAP_OBJ_GFX_MUDKIP_DOLL 156 +#define MAP_OBJ_GFX_DUSKULL_DOLL 157 +#define MAP_OBJ_GFX_WYNAUT_DOLL 158 +#define MAP_OBJ_GFX_BALTOY_DOLL 159 +#define MAP_OBJ_GFX_KECLEON_DOLL 160 +#define MAP_OBJ_GFX_AZURILL_DOLL 161 +#define MAP_OBJ_GFX_SKITTY_DOLL 162 +#define MAP_OBJ_GFX_SWABLU_DOLL 163 +#define MAP_OBJ_GFX_GULPIN_DOLL 164 +#define MAP_OBJ_GFX_LOTAD_DOLL 165 +#define MAP_OBJ_GFX_SEEDOT_DOLL 166 +#define MAP_OBJ_GFX_PIKA_CUSHION 167 +#define MAP_OBJ_GFX_ROUND_CUSHION 168 +#define MAP_OBJ_GFX_KISS_CUSHION 169 +#define MAP_OBJ_GFX_ZIGZAG_CUSHION 170 +#define MAP_OBJ_GFX_SPIN_CUSHION 171 +#define MAP_OBJ_GFX_DIAMOND_CUSHION 172 +#define MAP_OBJ_GFX_BALL_CUSHION 173 +#define MAP_OBJ_GFX_GRASS_CUSHION 174 +#define MAP_OBJ_GFX_FIRE_CUSHION 175 +#define MAP_OBJ_GFX_WATER_CUSHION 176 +#define MAP_OBJ_GFX_BIG_SNORLAX_DOLL 177 +#define MAP_OBJ_GFX_BIG_RHYDON_DOLL 178 +#define MAP_OBJ_GFX_BIG_LAPRAS_DOLL 179 +#define MAP_OBJ_GFX_BIG_VENUSAUR_DOLL 180 +#define MAP_OBJ_GFX_BIG_CHARIZARD_DOLL 181 +#define MAP_OBJ_GFX_BIG_BLASTOISE_DOLL 182 +#define MAP_OBJ_GFX_BIG_WAILMER_DOLL 183 +#define MAP_OBJ_GFX_BIG_REGIROCK_DOLL 184 +#define MAP_OBJ_GFX_BIG_REGICE_DOLL 185 +#define MAP_OBJ_GFX_BIG_REGISTEEL_DOLL 186 +#define MAP_OBJ_GFX_LATIAS 187 +#define MAP_OBJ_GFX_LATIOS 188 +#define MAP_OBJ_GFX_BOY_5 189 +#define MAP_OBJ_GFX_CONTEST_JUDGE 190 +#define MAP_OBJ_GFX_BRENDAN_WATERING 191 +#define MAP_OBJ_GFX_MAY_WATERING 192 +#define MAP_OBJ_GFX_BRENDAN_DECORATING 193 +#define MAP_OBJ_GFX_MAY_DECORATING 194 +#define MAP_OBJ_GFX_ARCHIE 195 +#define MAP_OBJ_GFX_MAXIE 196 +#define MAP_OBJ_GFX_KYOGRE_1 197 +#define MAP_OBJ_GFX_GROUDON_1 198 +#define MAP_OBJ_GFX_FOSSIL 199 +#define MAP_OBJ_GFX_REGIROCK 200 +#define MAP_OBJ_GFX_REGICE 201 +#define MAP_OBJ_GFX_REGISTEEL 202 +#define MAP_OBJ_GFX_SKITTY 203 +#define MAP_OBJ_GFX_KECLEON_1 204 +#define MAP_OBJ_GFX_KYOGRE_2 205 +#define MAP_OBJ_GFX_GROUDON_2 206 +#define MAP_OBJ_GFX_RAYQUAZA 207 +#define MAP_OBJ_GFX_ZIGZAGOON 208 +#define MAP_OBJ_GFX_PIKACHU 209 +#define MAP_OBJ_GFX_AZUMARILL 210 +#define MAP_OBJ_GFX_WINGULL 211 +#define MAP_OBJ_GFX_KECLEON_2 212 +#define MAP_OBJ_GFX_TUBER_M_SWIMMING 213 +#define MAP_OBJ_GFX_AZURILL 214 +#define MAP_OBJ_GFX_MOM 215 +#define MAP_OBJ_GFX_LINK_BRENDAN 216 +#define MAP_OBJ_GFX_LINK_MAY 217 + +// 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 MAP_OBJ_GFX_VAR_0 240 +#define MAP_OBJ_GFX_VAR_1 241 +#define MAP_OBJ_GFX_VAR_2 242 +#define MAP_OBJ_GFX_VAR_3 243 +#define MAP_OBJ_GFX_VAR_4 244 +#define MAP_OBJ_GFX_VAR_5 245 +#define MAP_OBJ_GFX_VAR_6 246 +#define MAP_OBJ_GFX_VAR_7 247 +#define MAP_OBJ_GFX_VAR_8 248 +#define MAP_OBJ_GFX_VAR_9 249 +#define MAP_OBJ_GFX_VAR_A 250 +#define MAP_OBJ_GFX_VAR_B 251 +#define MAP_OBJ_GFX_VAR_C 252 +#define MAP_OBJ_GFX_VAR_D 253 +#define MAP_OBJ_GFX_VAR_E 254 +#define MAP_OBJ_GFX_VAR_F 255 + +#define SHADOW_SIZE_S 0 +#define SHADOW_SIZE_M 1 +#define SHADOW_SIZE_L 2 +#define SHADOW_SIZE_XL 3 + +#define TRACKS_NONE 0 +#define TRACKS_FOOT 1 +#define TRACKS_BIKE_TIRE 2 + +#endif // GUARD_CONSTANTS_MAP_OBJECTS_H diff --git a/include/constants/maps.h b/include/constants/maps.h new file mode 100644 index 000000000..f96591f60 --- /dev/null +++ b/include/constants/maps.h @@ -0,0 +1,474 @@ +#ifndef GUARD_CONSTANTS_MAPS_H +#define GUARD_CONSTANTS_MAPS_H + +// Map Group 0 +#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_UNDERWATER1 (50 | (0 << 8)) +#define MAP_UNDERWATER2 (51 | (0 << 8)) +#define MAP_UNDERWATER3 (52 | (0 << 8)) +#define MAP_UNDERWATER4 (53 | (0 << 8)) + +// Map Group 1 +#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)) + +// Map Group 2 +#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)) + +// Map Group 3 +#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)) + +// Map Group 4 +#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)) + +// Map Group 5 +#define MAP_FALLARBOR_TOWN_MART (0 | (5 << 8)) +#define MAP_FALLARBOR_TOWN_CONTEST_LOBBY (1 | (5 << 8)) +#define MAP_FALLARBOR_TOWN_CONTEST_HALL (2 | (5 << 8)) +#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F (3 | (5 << 8)) +#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_2F (4 | (5 << 8)) +#define MAP_FALLARBOR_TOWN_HOUSE1 (5 | (5 << 8)) +#define MAP_FALLARBOR_TOWN_HOUSE2 (6 | (5 << 8)) + +// Map Group 6 +#define MAP_VERDANTURF_TOWN_CONTEST_LOBBY (0 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_CONTEST_HALL (1 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_MART (2 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_1F (3 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_2F (4 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_WANDAS_HOUSE (5 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE (6 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_HOUSE (7 | (6 << 8)) + +// Map Group 7 +#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)) + +// Map Group 8 +#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)) + +// Map Group 9 +#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_1F (0 | (9 << 8)) +#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_2F (1 | (9 << 8)) +#define MAP_SLATEPORT_CITY_CONTEST_LOBBY (2 | (9 << 8)) +#define MAP_SLATEPORT_CITY_CONTEST_HALL (3 | (9 << 8)) +#define MAP_SLATEPORT_CITY_HOUSE1 (4 | (9 << 8)) +#define MAP_SLATEPORT_CITY_POKEMON_FAN_CLUB (5 | (9 << 8)) +#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F (6 | (9 << 8)) +#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F (7 | (9 << 8)) +#define MAP_SLATEPORT_CITY_HARBOR (8 | (9 << 8)) +#define MAP_SLATEPORT_CITY_HOUSE2 (9 | (9 << 8)) +#define MAP_SLATEPORT_CITY_POKEMON_CENTER_1F (10 | (9 << 8)) +#define MAP_SLATEPORT_CITY_POKEMON_CENTER_2F (11 | (9 << 8)) +#define MAP_SLATEPORT_CITY_MART (12 | (9 << 8)) + +// Map Group 10 +#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)) + +// Map Group 11 +#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)) + +// Map Group 12 +#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)) + +// Map Group 13 +#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_EMPTY_MAP (11 | (13 << 8)) +#define MAP_LILYCOVE_CITY_MOVE_DELETERS_HOUSE (12 | (13 << 8)) +#define MAP_LILYCOVE_CITY_HOUSE1 (13 | (13 << 8)) +#define MAP_LILYCOVE_CITY_HOUSE2 (14 | (13 << 8)) +#define MAP_LILYCOVE_CITY_HOUSE3 (15 | (13 << 8)) +#define MAP_LILYCOVE_CITY_HOUSE4 (16 | (13 << 8)) +#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_1F (17 | (13 << 8)) +#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_2F (18 | (13 << 8)) +#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_3F (19 | (13 << 8)) +#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_4F (20 | (13 << 8)) +#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_5F (21 | (13 << 8)) +#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP (22 | (13 << 8)) +#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR (23 | (13 << 8)) + +// Map Group 14 +#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)) + +// Map Group 15 +#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_HOUSE8 (12 | (15 << 8)) + +// Map Group 16 +#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_CORRIDOR1 (5 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_CORRIDOR2 (6 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_CORRIDOR3 (7 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_CORRIDOR4 (8 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_CORRIDOR5 (9 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE (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)) + +// Map Group 17 +#define MAP_ROUTE104_MR_BRINEYS_HOUSE (0 | (17 << 8)) +#define MAP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP (1 | (17 << 8)) + +// Map Group 18 +#define MAP_ROUTE111_WINSTRATE_FAMILYS_HOUSE (0 | (18 << 8)) +#define MAP_ROUTE111_OLD_LADYS_REST_STOP (1 | (18 << 8)) + +// Map Group 19 +#define MAP_ROUTE112_CABLE_CAR_STATION (0 | (19 << 8)) +#define MAP_MT_CHIMNEY_CABLE_CAR_STATION (1 | (19 << 8)) + +// Map Group 20 +#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)) + +// Map Group 21 +#define MAP_ROUTE116_TUNNELERS_REST_HOUSE (0 | (21 << 8)) + +// Map Group 22 +#define MAP_ROUTE117_POKEMON_DAY_CARE (0 | (22 << 8)) + +// Map Group 23 +#define MAP_ROUTE121_SAFARI_ZONE_ENTRANCE (0 | (23 << 8)) + +// Map Group 24 +#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_B1F (39 | (24 << 8)) +#define MAP_CAVE_OF_ORIGIN_B2F (40 | (24 << 8)) +#define MAP_CAVE_OF_ORIGIN_B3F (41 | (24 << 8)) +#define MAP_CAVE_OF_ORIGIN_B4F (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_MAGMA_HIDEOUT_1F (74 | (24 << 8)) +#define MAP_MAGMA_HIDEOUT_B1F (75 | (24 << 8)) +#define MAP_MAGMA_HIDEOUT_B2F (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)) + +// Map Group 25 +#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_SINGLE_BATTLE_COLOSSEUM (24 | (25 << 8)) +#define MAP_TRADE_CENTER (25 | (25 << 8)) +#define MAP_RECORD_CORNER (26 | (25 << 8)) +#define MAP_DOUBLE_BATTLE_COLOSSEUM (27 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM1 (28 | (25 << 8)) +#define MAP_UNKNOWN_MAP_25_29 (29 | (25 << 8)) +#define MAP_UNKNOWN_MAP_25_30 (30 | (25 << 8)) +#define MAP_UNKNOWN_MAP_25_31 (31 | (25 << 8)) +#define MAP_UNKNOWN_MAP_25_32 (32 | (25 << 8)) +#define MAP_UNKNOWN_MAP_25_33 (33 | (25 << 8)) +#define MAP_UNKNOWN_MAP_25_34 (34 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM2 (35 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM3 (36 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM4 (37 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM5 (38 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM6 (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)) + +// Map Group 26 +#define MAP_SAFARI_ZONE_NORTHWEST (0 | (26 << 8)) +#define MAP_SAFARI_ZONE_NORTHEAST (1 | (26 << 8)) +#define MAP_SAFARI_ZONE_SOUTHWEST (2 | (26 << 8)) +#define MAP_SAFARI_ZONE_SOUTHEAST (3 | (26 << 8)) +#define MAP_BATTLE_TOWER_OUTSIDE (4 | (26 << 8)) +#define MAP_BATTLE_TOWER_LOBBY (5 | (26 << 8)) +#define MAP_BATTLE_TOWER_ELEVATOR (6 | (26 << 8)) +#define MAP_BATTLE_TOWER_CORRIDOR (7 | (26 << 8)) +#define MAP_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)) + +// Map Group 27 +#define MAP_ROUTE104_PROTOTYPE (0 | (27 << 8)) +#define MAP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP (1 | (27 << 8)) + +// Map Group 28 +#define MAP_ROUTE109_SEASHORE_HOUSE (0 | (28 << 8)) + +// Map Group 29 +#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_SOUTH_ENTRANCE (11 | (29 << 8)) +#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE (12 | (29 << 8)) + +// Map Group 30 +#define MAP_ROUTE113_GLASS_WORKSHOP (0 | (30 << 8)) + +// Map Group 31 +#define MAP_ROUTE123_BERRY_MASTERS_HOUSE (0 | (31 << 8)) + +// Map Group 32 +#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)) + +// Map Group 33 +#define MAP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE (0 | (33 << 8)) + + +#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) + +#endif // GUARD_CONSTANTS_MAPS_H diff --git a/include/constants/mauville_man.h b/include/constants/mauville_man.h new file mode 100644 index 000000000..b00e3a291 --- /dev/null +++ b/include/constants/mauville_man.h @@ -0,0 +1,10 @@ +#ifndef GUARD_CONSTANTS_MAUVILLE_MAN_H +#define GUARD_CONSTANTS_MAUVILLE_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 + +#endif // GUARD_CONSTANTS_MAUVILLE_MAN_H diff --git a/include/constants/moves.h b/include/constants/moves.h new file mode 100644 index 000000000..5fe1da004 --- /dev/null +++ b/include/constants/moves.h @@ -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 NUM_MOVES 355 + +#endif // GUARD_CONSTANTS_MOVES_H diff --git a/include/constants/opponents.h b/include/constants/opponents.h new file mode 100644 index 000000000..d907153bd --- /dev/null +++ b/include/constants/opponents.h @@ -0,0 +1,699 @@ +#ifndef GUARD_CONSTANTS_OPPONENTS_H +#define GUARD_CONSTANTS_OPPONENTS_H + +#define OPPONENT_NONE 0 +#define OPPONENT_ARCHIE_1 1 +#define OPPONENT_GRUNT_1 2 +#define OPPONENT_GRUNT_2 3 +#define OPPONENT_GRUNT_3 4 +#define OPPONENT_GRUNT_4 5 +#define OPPONENT_GRUNT_5 6 +#define OPPONENT_GRUNT_6 7 +#define OPPONENT_GRUNT_7 8 +#define OPPONENT_GRUNT_8 9 +#define OPPONENT_GRUNT_9 10 +#define OPPONENT_GRUNT_10 11 +#define OPPONENT_GRUNT_11 12 +#define OPPONENT_GRUNT_12 13 +#define OPPONENT_GRUNT_13 14 +#define OPPONENT_GRUNT_14 15 +#define OPPONENT_GRUNT_15 16 +#define OPPONENT_GRUNT_16 17 +#define OPPONENT_GRUNT_17 18 +#define OPPONENT_GRUNT_18 19 +#define OPPONENT_GRUNT_19 20 +#define OPPONENT_GRUNT_20 21 +#define OPPONENT_GRUNT_21 22 +#define OPPONENT_GRUNT_22 23 +#define OPPONENT_GRUNT_23 24 +#define OPPONENT_GRUNT_24 25 +#define OPPONENT_GRUNT_25 26 +#define OPPONENT_GRUNT_26 27 +#define OPPONENT_GRUNT_27 28 +#define OPPONENT_ANONYMOUS_1 29 +#define OPPONENT_MATT_1 30 +#define OPPONENT_MATT_2 31 +#define OPPONENT_SHELLY_1 32 +#define OPPONENT_SHELLY_2 33 +#define OPPONENT_ARCHIE_2 34 +#define OPPONENT_ARCHIE_3 35 +#define OPPONENT_DAISY 36 +#define OPPONENT_ROSE_1 37 +#define OPPONENT_LILY 38 +#define OPPONENT_VIOLET 39 +#define OPPONENT_ROSE_2 40 +#define OPPONENT_ROSE_3 41 +#define OPPONENT_ROSE_4 42 +#define OPPONENT_ROSE_5 43 +#define OPPONENT_DUSTY_1 44 +#define OPPONENT_CHIP 45 +#define OPPONENT_FOSTER 46 +#define OPPONENT_DUSTY_2 47 +#define OPPONENT_DUSTY_3 48 +#define OPPONENT_DUSTY_4 49 +#define OPPONENT_DUSTY_5 50 +#define OPPONENT_GABBY_AND_TY_1 51 +#define OPPONENT_GABBY_AND_TY_2 52 +#define OPPONENT_GABBY_AND_TY_3 53 +#define OPPONENT_GABBY_AND_TY_4 54 +#define OPPONENT_GABBY_AND_TY_5 55 +#define OPPONENT_GABBY_AND_TY_6 56 +#define OPPONENT_LOLA_1 57 +#define OPPONENT_CARMEN 58 +#define OPPONENT_GWEN 59 +#define OPPONENT_LOLA_2 60 +#define OPPONENT_LOLA_3 61 +#define OPPONENT_LOLA_4 62 +#define OPPONENT_LOLA_5 63 +#define OPPONENT_RICKY_1 64 +#define OPPONENT_SIMON 65 +#define OPPONENT_CHARLIE 66 +#define OPPONENT_RICKY_2 67 +#define OPPONENT_RICKY_3 68 +#define OPPONENT_RICKY_4 69 +#define OPPONENT_RICKY_5 70 +#define OPPONENT_RANDALL 71 +#define OPPONENT_PARKER 72 +#define OPPONENT_GEORGE 73 +#define OPPONENT_BERKE 74 +#define OPPONENT_CLYDE 75 +#define OPPONENT_VINCENT 76 +#define OPPONENT_LEROY 77 +#define OPPONENT_WILTON_1 78 +#define OPPONENT_EDGAR 79 +#define OPPONENT_ALBERT 80 +#define OPPONENT_SAMUEL 81 +#define OPPONENT_VITO 82 +#define OPPONENT_OWEN 83 +#define OPPONENT_WILTON_2 84 +#define OPPONENT_WILTON_3 85 +#define OPPONENT_WILTON_4 86 +#define OPPONENT_WILTON_5 87 +#define OPPONENT_WARREN 88 +#define OPPONENT_MARY 89 +#define OPPONENT_LORI 90 +#define OPPONENT_JODY 91 +#define OPPONENT_WENDY 92 +#define OPPONENT_ELAINE 93 +#define OPPONENT_BROOKE_1 94 +#define OPPONENT_JENNIFER 95 +#define OPPONENT_HOPE 96 +#define OPPONENT_SHANNON 97 +#define OPPONENT_MICHELLE 98 +#define OPPONENT_CAROLINE 99 +#define OPPONENT_JULIE 100 +#define OPPONENT_BROOKE_2 101 +#define OPPONENT_BROOKE_3 102 +#define OPPONENT_BROOKE_4 103 +#define OPPONENT_BROOKE_5 104 +#define OPPONENT_PATRICIA 105 +#define OPPONENT_KINDRA 106 +#define OPPONENT_TAMMY 107 +#define OPPONENT_VALERIE_1 108 +#define OPPONENT_TASHA 109 +#define OPPONENT_VALERIE_2 110 +#define OPPONENT_VALERIE_3 111 +#define OPPONENT_VALERIE_4 112 +#define OPPONENT_VALERIE_5 113 +#define OPPONENT_CINDY_1 114 +#define OPPONENT_ANONYMOUS_2 115 +#define OPPONENT_BRIANNA_1 116 +#define OPPONENT_CINDY_2 117 +#define OPPONENT_BRIANNA_2 118 +#define OPPONENT_ANETTE 119 +#define OPPONENT_CINDY_3 120 +#define OPPONENT_CINDY_4 121 +#define OPPONENT_CINDY_5 122 +#define OPPONENT_CINDY_6 123 +#define OPPONENT_MELISSA 124 +#define OPPONENT_SHEILA 125 +#define OPPONENT_SHIRLEY 126 +#define OPPONENT_JESSICA_1 127 +#define OPPONENT_CONNIE 128 +#define OPPONENT_BRIDGET 129 +#define OPPONENT_OLIVIA 130 +#define OPPONENT_TIFFANY 131 +#define OPPONENT_JESSICA_2 132 +#define OPPONENT_JESSICA_3 133 +#define OPPONENT_JESSICA_4 134 +#define OPPONENT_JESSICA_5 135 +#define OPPONENT_WINSTON_1 136 +#define OPPONENT_ANONYMOUS_3 137 +#define OPPONENT_GARRET 138 +#define OPPONENT_WINSTON_2 139 +#define OPPONENT_WINSTON_3 140 +#define OPPONENT_WINSTON_4 141 +#define OPPONENT_WINSTON_5 142 +#define OPPONENT_STEVE_1 143 +#define OPPONENT_CHRIS 144 +#define OPPONENT_MARK 145 +#define OPPONENT_KENN 146 +#define OPPONENT_STEVE_2 147 +#define OPPONENT_STEVE_3 148 +#define OPPONENT_STEVE_4 149 +#define OPPONENT_STEVE_5 150 +#define OPPONENT_LUIS 151 +#define OPPONENT_AUSTIN 152 +#define OPPONENT_DOUGLAS 153 +#define OPPONENT_DARRIN 154 +#define OPPONENT_TONY_1 155 +#define OPPONENT_JEROME 156 +#define OPPONENT_MATTHEW 157 +#define OPPONENT_DAVID 158 +#define OPPONENT_SPENCER 159 +#define OPPONENT_ROLAND 160 +#define OPPONENT_CODY 161 +#define OPPONENT_STAN 162 +#define OPPONENT_BARRY 163 +#define OPPONENT_DEAN 164 +#define OPPONENT_RODNEY 165 +#define OPPONENT_RICHARD 166 +#define OPPONENT_HERMAN 167 +#define OPPONENT_ANONYMOUS_4 168 +#define OPPONENT_GILBERT 169 +#define OPPONENT_FRANKLIN 170 +#define OPPONENT_DANNY 171 +#define OPPONENT_JACK 172 +#define OPPONENT_DUDLEY 173 +#define OPPONENT_CHAD 174 +#define OPPONENT_TONY_2 175 +#define OPPONENT_TONY_3 176 +#define OPPONENT_TONY_4 177 +#define OPPONENT_TONY_5 178 +#define OPPONENT_HIDEKI 179 +#define OPPONENT_HITOSHI 180 +#define OPPONENT_KIYO 181 +#define OPPONENT_KOICHI 182 +#define OPPONENT_NOB_1 183 +#define OPPONENT_NOB_2 184 +#define OPPONENT_NOB_3 185 +#define OPPONENT_NOB_4 186 +#define OPPONENT_NOB_5 187 +#define OPPONENT_YUJI 188 +#define OPPONENT_DAISUKE 189 +#define OPPONENT_ATSUSHI 190 +#define OPPONENT_KIRK 191 +#define OPPONENT_SCOTT 192 +#define OPPONENT_HARVEY 193 +#define OPPONENT_SHAWN 194 +#define OPPONENT_RANDY 195 +#define OPPONENT_DALTON_1 196 +#define OPPONENT_DALTON_2 197 +#define OPPONENT_DALTON_3 198 +#define OPPONENT_DALTON_4 199 +#define OPPONENT_DALTON_5 200 +#define OPPONENT_COLE 201 +#define OPPONENT_FLINT 202 +#define OPPONENT_AXLE 203 +#define OPPONENT_JAKE 204 +#define OPPONENT_ANDY 205 +#define OPPONENT_BERNIE_1 206 +#define OPPONENT_BERNIE_2 207 +#define OPPONENT_BERNIE_3 208 +#define OPPONENT_BERNIE_4 209 +#define OPPONENT_BERNIE_5 210 +#define OPPONENT_DREW 211 +#define OPPONENT_CLIFF 212 +#define OPPONENT_LARRY 213 +#define OPPONENT_SHANE 214 +#define OPPONENT_JUSTIN 215 +#define OPPONENT_ETHAN_1 216 +#define OPPONENT_JEFF 217 +#define OPPONENT_TRAVIS 218 +#define OPPONENT_ETHAN_2 219 +#define OPPONENT_ETHAN_3 220 +#define OPPONENT_ETHAN_4 221 +#define OPPONENT_ETHAN_5 222 +#define OPPONENT_BRENT 223 +#define OPPONENT_DONALD 224 +#define OPPONENT_TAYLOR 225 +#define OPPONENT_BRANDON_1 226 +#define OPPONENT_DEREK 227 +#define OPPONENT_BRANDON_2 228 +#define OPPONENT_BRANDON_3 229 +#define OPPONENT_BRANDON_4 230 +#define OPPONENT_BRANDON_5 231 +#define OPPONENT_EDWARD 232 +#define OPPONENT_PRESTON 233 +#define OPPONENT_VIRGIL 234 +#define OPPONENT_FRITZ 235 +#define OPPONENT_WILLIAM 236 +#define OPPONENT_JOSHUA 237 +#define OPPONENT_CAMERON_1 238 +#define OPPONENT_CAMERON_2 239 +#define OPPONENT_CAMERON_3 240 +#define OPPONENT_CAMERON_4 241 +#define OPPONENT_CAMERON_5 242 +#define OPPONENT_JACLYN 243 +#define OPPONENT_HANNAH 244 +#define OPPONENT_SAMANTHA 245 +#define OPPONENT_MAURA 246 +#define OPPONENT_KAYLA 247 +#define OPPONENT_ALEXIS 248 +#define OPPONENT_JACKI_1 249 +#define OPPONENT_JACKI_2 250 +#define OPPONENT_JACKI_3 251 +#define OPPONENT_JACKI_4 252 +#define OPPONENT_JACKI_5 253 +#define OPPONENT_WALTER_1 254 +#define OPPONENT_TUCKER 255 +#define OPPONENT_THOMAS 256 +#define OPPONENT_WALTER_2 257 +#define OPPONENT_WALTER_3 258 +#define OPPONENT_WALTER_4 259 +#define OPPONENT_WALTER_5 260 +#define OPPONENT_SIDNEY 261 +#define OPPONENT_PHOEBE 262 +#define OPPONENT_GLACIA 263 +#define OPPONENT_DRAKE 264 +#define OPPONENT_ROXANNE 265 +#define OPPONENT_BRAWLY 266 +#define OPPONENT_WATTSON 267 +#define OPPONENT_FLANNERY 268 +#define OPPONENT_NORMAN 269 +#define OPPONENT_WINONA 270 +#define OPPONENT_TATE_AND_LIZA 271 +#define OPPONENT_WALLACE 272 +#define OPPONENT_JERRY_1 273 +#define OPPONENT_TED 274 +#define OPPONENT_PAUL 275 +#define OPPONENT_JERRY_2 276 +#define OPPONENT_JERRY_3 277 +#define OPPONENT_JERRY_4 278 +#define OPPONENT_JERRY_5 279 +#define OPPONENT_KAREN_1 280 +#define OPPONENT_GEORGIA 281 +#define OPPONENT_KAREN_2 282 +#define OPPONENT_KAREN_3 283 +#define OPPONENT_KAREN_4 284 +#define OPPONENT_KAREN_5 285 +#define OPPONENT_KATE_AND_JOY 286 +#define OPPONENT_ANNA_AND_MEG_1 287 +#define OPPONENT_ANNA_AND_MEG_2 288 +#define OPPONENT_ANNA_AND_MEG_3 289 +#define OPPONENT_ANNA_AND_MEG_4 290 +#define OPPONENT_ANNA_AND_MEG_5 291 +#define OPPONENT_VICTOR 292 +#define OPPONENT_MIGUEL_1 293 +#define OPPONENT_COLTON 294 +#define OPPONENT_MIGUEL_2 295 +#define OPPONENT_MIGUEL_3 296 +#define OPPONENT_MIGUEL_4 297 +#define OPPONENT_MIGUEL_5 298 +#define OPPONENT_VICTORIA 299 +#define OPPONENT_VANESSA 300 +#define OPPONENT_MARISSA 301 +#define OPPONENT_ISABEL_1 302 +#define OPPONENT_ISABEL_2 303 +#define OPPONENT_ISABEL_3 304 +#define OPPONENT_ISABEL_4 305 +#define OPPONENT_ISABEL_5 306 +#define OPPONENT_TIMOTHY_1 307 +#define OPPONENT_TIMOTHY_2 308 +#define OPPONENT_TIMOTHY_3 309 +#define OPPONENT_TIMOTHY_4 310 +#define OPPONENT_TIMOTHY_5 311 +#define OPPONENT_VICKY 312 +#define OPPONENT_SHELBY_1 313 +#define OPPONENT_SHELBY_2 314 +#define OPPONENT_SHELBY_3 315 +#define OPPONENT_SHELBY_4 316 +#define OPPONENT_SHELBY_5 317 +#define OPPONENT_CALVIN_1 318 +#define OPPONENT_BILLY 319 +#define OPPONENT_JOSH 320 +#define OPPONENT_TOMMY 321 +#define OPPONENT_JOEY 322 +#define OPPONENT_BEN 323 +#define OPPONENT_ANONYMOUS_5 324 +#define OPPONENT_KEVIN 325 +#define OPPONENT_NEAL 326 +#define OPPONENT_DILLON 327 +#define OPPONENT_CALVIN_2 328 +#define OPPONENT_CALVIN_3 329 +#define OPPONENT_CALVIN_4 330 +#define OPPONENT_CALVIN_5 331 +#define OPPONENT_EDDIE 332 +#define OPPONENT_ALLEN 333 +#define OPPONENT_TIMMY 334 +#define OPPONENT_STEVEN 335 +#define OPPONENT_ANDREW 336 +#define OPPONENT_IVAN 337 +#define OPPONENT_CLAUDE 338 +#define OPPONENT_ELLIOT_1 339 +#define OPPONENT_NED 340 +#define OPPONENT_DALE 341 +#define OPPONENT_NOLAN 342 +#define OPPONENT_BARNY 343 +#define OPPONENT_WADE 344 +#define OPPONENT_CARTER 345 +#define OPPONENT_ELLIOT_2 346 +#define OPPONENT_ELLIOT_3 347 +#define OPPONENT_ELLIOT_4 348 +#define OPPONENT_ELLIOT_5 349 +#define OPPONENT_RONALD 350 +#define OPPONENT_JACOB 351 +#define OPPONENT_ANTHONY 352 +#define OPPONENT_BENJAMIN_1 353 +#define OPPONENT_BENJAMIN_2 354 +#define OPPONENT_BENJAMIN_3 355 +#define OPPONENT_BENJAMIN_4 356 +#define OPPONENT_BENJAMIN_5 357 +#define OPPONENT_ABIGAIL_1 358 +#define OPPONENT_JASMINE 359 +#define OPPONENT_ABIGAIL_2 360 +#define OPPONENT_ABIGAIL_3 361 +#define OPPONENT_ABIGAIL_4 362 +#define OPPONENT_ABIGAIL_5 363 +#define OPPONENT_DYLAN_1 364 +#define OPPONENT_DYLAN_2 365 +#define OPPONENT_DYLAN_3 366 +#define OPPONENT_DYLAN_4 367 +#define OPPONENT_DYLAN_5 368 +#define OPPONENT_MARIA_1 369 +#define OPPONENT_MARIA_2 370 +#define OPPONENT_MARIA_3 371 +#define OPPONENT_MARIA_4 372 +#define OPPONENT_MARIA_5 373 +#define OPPONENT_CALEB 374 +#define OPPONENT_ANONYMOUS_6 375 +#define OPPONENT_ISAIAH_1 376 +#define OPPONENT_ANONYMOUS_7 377 +#define OPPONENT_CHASE 378 +#define OPPONENT_ISAIAH_2 379 +#define OPPONENT_ISAIAH_3 380 +#define OPPONENT_ISAIAH_4 381 +#define OPPONENT_ISAIAH_5 382 +#define OPPONENT_ANONYMOUS_8 383 +#define OPPONENT_CONNOR 384 +#define OPPONENT_ANONYMOUS_9 385 +#define OPPONENT_KATELYN_1 386 +#define OPPONENT_ALLISON 387 +#define OPPONENT_KATELYN_2 388 +#define OPPONENT_KATELYN_3 389 +#define OPPONENT_KATELYN_4 390 +#define OPPONENT_KATELYN_5 391 +#define OPPONENT_NICOLAS_1 392 +#define OPPONENT_NICOLAS_2 393 +#define OPPONENT_NICOLAS_3 394 +#define OPPONENT_NICOLAS_4 395 +#define OPPONENT_NICOLAS_5 396 +#define OPPONENT_AARON 397 +#define OPPONENT_PERRY 398 +#define OPPONENT_HUGH 399 +#define OPPONENT_PHIL 400 +#define OPPONENT_JARED 401 +#define OPPONENT_ANONYMOUS_10 402 +#define OPPONENT_TANNER 403 +#define OPPONENT_WILL 404 +#define OPPONENT_COLIN 405 +#define OPPONENT_ROBERT_1 406 +#define OPPONENT_BENNY 407 +#define OPPONENT_CHESTER 408 +#define OPPONENT_ROBERT_2 409 +#define OPPONENT_ROBERT_3 410 +#define OPPONENT_ROBERT_4 411 +#define OPPONENT_ROBERT_5 412 +#define OPPONENT_ALEX 413 +#define OPPONENT_BECK 414 +#define OPPONENT_YASU 415 +#define OPPONENT_TAKASHI 416 +#define OPPONENT_MAKOTO 417 +#define OPPONENT_HIDEO_1 418 +#define OPPONENT_LAO_1 419 +#define OPPONENT_LUNG 420 +#define OPPONENT_LAO_2 421 +#define OPPONENT_LAO_3 422 +#define OPPONENT_LAO_4 423 +#define OPPONENT_LAO_5 424 +#define OPPONENT_TESSA 425 +#define OPPONENT_LAURA 426 +#define OPPONENT_CYNDY_1 427 +#define OPPONENT_CORA 428 +#define OPPONENT_JILL 429 +#define OPPONENT_CYNDY_2 430 +#define OPPONENT_CYNDY_3 431 +#define OPPONENT_CYNDY_4 432 +#define OPPONENT_CYNDY_5 433 +#define OPPONENT_MADELINE_1 434 +#define OPPONENT_CLARISSA 435 +#define OPPONENT_ANGELICA 436 +#define OPPONENT_MADELINE_2 437 +#define OPPONENT_MADELINE_3 438 +#define OPPONENT_MADELINE_4 439 +#define OPPONENT_MADELINE_5 440 +#define OPPONENT_BEVERLY 441 +#define OPPONENT_DAWN 442 +#define OPPONENT_NICOLE 443 +#define OPPONENT_DENISE 444 +#define OPPONENT_BETH 445 +#define OPPONENT_TARA 446 +#define OPPONENT_MISSY 447 +#define OPPONENT_ALICE 448 +#define OPPONENT_JENNY_1 449 +#define OPPONENT_GRACE 450 +#define OPPONENT_TANYA 451 +#define OPPONENT_SHARON 452 +#define OPPONENT_NIKKI 453 +#define OPPONENT_BRENDA 454 +#define OPPONENT_KATIE 455 +#define OPPONENT_SUSIE 456 +#define OPPONENT_KARA 457 +#define OPPONENT_DANA 458 +#define OPPONENT_ERIN 459 +#define OPPONENT_DEBRA 460 +#define OPPONENT_LINDA 461 +#define OPPONENT_KAYLEE 462 +#define OPPONENT_LAUREL 463 +#define OPPONENT_DARCY 464 +#define OPPONENT_JENNY_2 465 +#define OPPONENT_JENNY_3 466 +#define OPPONENT_JENNY_4 467 +#define OPPONENT_JENNY_5 468 +#define OPPONENT_HEIDI 469 +#define OPPONENT_BECKY 470 +#define OPPONENT_CAROL 471 +#define OPPONENT_NANCY 472 +#define OPPONENT_MARTHA 473 +#define OPPONENT_DIANA_1 474 +#define OPPONENT_NINA 475 +#define OPPONENT_IRENE 476 +#define OPPONENT_DIANA_2 477 +#define OPPONENT_DIANA_3 478 +#define OPPONENT_DIANA_4 479 +#define OPPONENT_DIANA_5 480 +#define OPPONENT_AMY_AND_LIV_1 481 +#define OPPONENT_AMY_AND_LIV_2 482 +#define OPPONENT_GINA_AND_MIA_1 483 +#define OPPONENT_MIU_AND_YUKI 484 +#define OPPONENT_AMY_AND_LIV_3 485 +#define OPPONENT_GINA_AND_MIA_2 486 +#define OPPONENT_AMY_AND_LIV_4 487 +#define OPPONENT_AMY_AND_LIV_5 488 +#define OPPONENT_AMY_AND_LIV_6 489 +#define OPPONENT_HUEY 490 +#define OPPONENT_EDMOND 491 +#define OPPONENT_ERNEST_1 492 +#define OPPONENT_DWAYNE 493 +#define OPPONENT_PHILLIP 494 +#define OPPONENT_LEONARD 495 +#define OPPONENT_DUNCAN 496 +#define OPPONENT_ERNEST_2 497 +#define OPPONENT_ERNEST_3 498 +#define OPPONENT_ERNEST_4 499 +#define OPPONENT_ERNEST_5 500 +#define OPPONENT_ANONYMOUS_11 501 +#define OPPONENT_ANONYMOUS_12 502 +#define OPPONENT_ANONYMOUS_13 503 +#define OPPONENT_SONNY 504 +#define OPPONENT_DONOVAN 505 +#define OPPONENT_GERALD 506 +#define OPPONENT_KELVIN 507 +#define OPPONENT_KODY 508 +#define OPPONENT_TEVIN 509 +#define OPPONENT_DAMON 510 +#define OPPONENT_PABLO 511 +#define OPPONENT_EDWIN_1 512 +#define OPPONENT_HECTOR_1 513 +#define OPPONENT_HECTOR_2 514 +#define OPPONENT_EDWIN_2 515 +#define OPPONENT_EDWIN_3 516 +#define OPPONENT_EDWIN_4 517 +#define OPPONENT_EDWIN_5 518 +#define OPPONENT_WALLY_1 519 +#define OPPONENT_BRENDAN_1 520 +#define OPPONENT_BRENDAN_2 521 +#define OPPONENT_BRENDAN_3 522 +#define OPPONENT_BRENDAN_4 523 +#define OPPONENT_BRENDAN_5 524 +#define OPPONENT_BRENDAN_6 525 +#define OPPONENT_BRENDAN_7 526 +#define OPPONENT_BRENDAN_8 527 +#define OPPONENT_BRENDAN_9 528 +#define OPPONENT_MAY_1 529 +#define OPPONENT_MAY_2 530 +#define OPPONENT_MAY_3 531 +#define OPPONENT_MAY_4 532 +#define OPPONENT_MAY_5 533 +#define OPPONENT_MAY_6 534 +#define OPPONENT_MAY_7 535 +#define OPPONENT_MAY_8 536 +#define OPPONENT_MAY_9 537 +#define OPPONENT_ISAAC_1 538 +#define OPPONENT_RILEY 539 +#define OPPONENT_AIDAN 540 +#define OPPONENT_ISAAC_2 541 +#define OPPONENT_ISAAC_3 542 +#define OPPONENT_ISAAC_4 543 +#define OPPONENT_ISAAC_5 544 +#define OPPONENT_LYDIA_1 545 +#define OPPONENT_ALEXIA 546 +#define OPPONENT_DANIELLE 547 +#define OPPONENT_LYDIA_2 548 +#define OPPONENT_LYDIA_3 549 +#define OPPONENT_LYDIA_4 550 +#define OPPONENT_LYDIA_5 551 +#define OPPONENT_JACKSON_1 552 +#define OPPONENT_CARLOS 553 +#define OPPONENT_SEBASTIAN 554 +#define OPPONENT_JACKSON_2 555 +#define OPPONENT_JACKSON_3 556 +#define OPPONENT_JACKSON_4 557 +#define OPPONENT_JACKSON_5 558 +#define OPPONENT_CATHERINE_1 559 +#define OPPONENT_JENNA 560 +#define OPPONENT_SOPHIA 561 +#define OPPONENT_CATHERINE_2 562 +#define OPPONENT_CATHERINE_3 563 +#define OPPONENT_CATHERINE_4 564 +#define OPPONENT_CATHERINE_5 565 +#define OPPONENT_MAXIE_1 566 +#define OPPONENT_GRUNT_28 567 +#define OPPONENT_GRUNT_29 568 +#define OPPONENT_GRUNT_30 569 +#define OPPONENT_GRUNT_31 570 +#define OPPONENT_GRUNT_32 571 +#define OPPONENT_GRUNT_33 572 +#define OPPONENT_GRUNT_34 573 +#define OPPONENT_GRUNT_35 574 +#define OPPONENT_GRUNT_36 575 +#define OPPONENT_GRUNT_37 576 +#define OPPONENT_GRUNT_38 577 +#define OPPONENT_GRUNT_39 578 +#define OPPONENT_GRUNT_40 579 +#define OPPONENT_GRUNT_41 580 +#define OPPONENT_GRUNT_42 581 +#define OPPONENT_GRUNT_43 582 +#define OPPONENT_GRUNT_44 583 +#define OPPONENT_GRUNT_45 584 +#define OPPONENT_GRUNT_46 585 +#define OPPONENT_GRUNT_47 586 +#define OPPONENT_GRUNT_48 587 +#define OPPONENT_GRUNT_49 588 +#define OPPONENT_GRUNT_50 589 +#define OPPONENT_GRUNT_51 590 +#define OPPONENT_GRUNT_52 591 +#define OPPONENT_GRUNT_53 592 +#define OPPONENT_GRUNT_54 593 +#define OPPONENT_ANONYMOUS_14 594 +#define OPPONENT_ANONYMOUS_15 595 +#define OPPONENT_TABITHA_1 596 +#define OPPONENT_TABITHA_2 597 +#define OPPONENT_ANONYMOUS_16 598 +#define OPPONENT_COURTNEY_1 599 +#define OPPONENT_COURTNEY_2 600 +#define OPPONENT_MAXIE_2 601 +#define OPPONENT_MAXIE_3 602 +#define OPPONENT_TIANA 603 +#define OPPONENT_HALEY_1 604 +#define OPPONENT_JANICE 605 +#define OPPONENT_VIVI 606 +#define OPPONENT_HALEY_2 607 +#define OPPONENT_HALEY_3 608 +#define OPPONENT_HALEY_4 609 +#define OPPONENT_HALEY_5 610 +#define OPPONENT_SALLY 611 +#define OPPONENT_ROBIN 612 +#define OPPONENT_ANDREA 613 +#define OPPONENT_CRISSY 614 +#define OPPONENT_RICK 615 +#define OPPONENT_LYLE 616 +#define OPPONENT_JOSE 617 +#define OPPONENT_DOUG 618 +#define OPPONENT_GREG 619 +#define OPPONENT_KENT 620 +#define OPPONENT_JAMES_1 621 +#define OPPONENT_JAMES_2 622 +#define OPPONENT_JAMES_3 623 +#define OPPONENT_JAMES_4 624 +#define OPPONENT_JAMES_5 625 +#define OPPONENT_BRICE 626 +#define OPPONENT_TRENT_1 627 +#define OPPONENT_LENNY 628 +#define OPPONENT_LUCAS_1 629 +#define OPPONENT_ALAN 630 +#define OPPONENT_CLARK 631 +#define OPPONENT_ERIC 632 +#define OPPONENT_LUCAS_2 633 +#define OPPONENT_MIKE_1 634 +#define OPPONENT_MIKE_2 635 +#define OPPONENT_TRENT_2 636 +#define OPPONENT_TRENT_3 637 +#define OPPONENT_TRENT_4 638 +#define OPPONENT_TRENT_5 639 +#define OPPONENT_DEZ_AND_LUKE 640 +#define OPPONENT_LEA_AND_JED 641 +#define OPPONENT_LOIS_AND_HAL_1 642 +#define OPPONENT_LOIS_AND_HAL_2 643 +#define OPPONENT_LOIS_AND_HAL_3 644 +#define OPPONENT_LOIS_AND_HAL_4 645 +#define OPPONENT_LOIS_AND_HAL_5 646 +#define OPPONENT_JOHANNA 647 +#define OPPONENT_ZANE 648 +#define OPPONENT_VIVIAN 649 +#define OPPONENT_SADIE 650 +#define OPPONENT_HIDEO_2 651 +#define OPPONENT_KEIGO 652 +#define OPPONENT_TSUNAO 653 +#define OPPONENT_TERRELL 654 +#define OPPONENT_KYLEE 655 +#define OPPONENT_WALLY_2 656 +#define OPPONENT_WALLY_3 657 +#define OPPONENT_WALLY_4 658 +#define OPPONENT_WALLY_5 659 +#define OPPONENT_WALLY_6 660 +#define OPPONENT_BRENDAN_10 661 +#define OPPONENT_BRENDAN_11 662 +#define OPPONENT_BRENDAN_12 663 +#define OPPONENT_MAY_10 664 +#define OPPONENT_MAY_11 665 +#define OPPONENT_MAY_12 666 +#define OPPONENT_JONAH 667 +#define OPPONENT_HENRY 668 +#define OPPONENT_ROGER 669 +#define OPPONENT_ALEXA 670 +#define OPPONENT_RUBEN 671 +#define OPPONENT_KOJI 672 +#define OPPONENT_WAYNE 673 +#define OPPONENT_BYRON 674 +#define OPPONENT_REED 675 +#define OPPONENT_TISHA 676 +#define OPPONENT_TORI_AND_TIA 677 +#define OPPONENT_KIM_AND_IRIS 678 +#define OPPONENT_TYRA_AND_IVY 679 +#define OPPONENT_MEL_AND_PAUL 680 +#define OPPONENT_JOHN_AND_JAY_1 681 +#define OPPONENT_JOHN_AND_JAY_2 682 +#define OPPONENT_JOHN_AND_JAY_3 683 +#define OPPONENT_JOHN_AND_JAY_4 684 +#define OPPONENT_JOHN_AND_JAY_5 685 +#define OPPONENT_RELI_AND_IAN 686 +#define OPPONENT_RITA_AND_SAM_1 687 +#define OPPONENT_RITA_AND_SAM_2 688 +#define OPPONENT_RITA_AND_SAM_3 689 +#define OPPONENT_RITA_AND_SAM_4 690 +#define OPPONENT_RITA_AND_SAM_5 691 +#define OPPONENT_LISA_AND_RAY 692 +#define OPPONENT_EUGENE 693 + +#endif // GUARD_CONSTANTS_OPPONENTS_H diff --git a/include/constants/secret_bases.h b/include/constants/secret_bases.h new file mode 100644 index 000000000..0f51054a8 --- /dev/null +++ b/include/constants/secret_bases.h @@ -0,0 +1,110 @@ +#ifndef GUARD_CONSTANTS_SECRET_BASES_H +#define GUARD_CONSTANTS_SECRET_BASES_H + +// 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. These ids are 1-based, but there is no +// apparent reason for that. + +#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_CAVE2_1 11 +#define SECRET_BASE_RED_CAVE2_2 12 +#define SECRET_BASE_RED_CAVE2_3 13 + +#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_CAVE4_1 31 +#define SECRET_BASE_RED_CAVE4_2 32 +#define SECRET_BASE_RED_CAVE4_3 33 + +#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_CAVE2_1 51 +#define SECRET_BASE_BROWN_CAVE2_2 52 +#define SECRET_BASE_BROWN_CAVE2_3 53 + +#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_CAVE4_1 71 +#define SECRET_BASE_BROWN_CAVE4_2 72 +#define SECRET_BASE_BROWN_CAVE4_3 73 + +#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_CAVE2_1 91 +#define SECRET_BASE_BLUE_CAVE2_2 92 +#define SECRET_BASE_BLUE_CAVE2_3 93 + +#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_CAVE4_1 111 +#define SECRET_BASE_BLUE_CAVE4_2 112 +#define SECRET_BASE_BLUE_CAVE4_3 113 + +#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_CAVE2_1 131 +#define SECRET_BASE_YELLOW_CAVE2_2 132 +#define SECRET_BASE_YELLOW_CAVE2_3 133 + +#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_CAVE4_1 151 +#define SECRET_BASE_YELLOW_CAVE4_2 152 +#define SECRET_BASE_YELLOW_CAVE4_3 153 + +#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_TREE2_1 171 +#define SECRET_BASE_TREE2_2 172 +#define SECRET_BASE_TREE2_3 173 +#define SECRET_BASE_TREE2_4 174 + +#define SECRET_BASE_TREE3_1 181 +#define SECRET_BASE_TREE3_2 182 +#define SECRET_BASE_TREE3_3 183 + +#define SECRET_BASE_TREE4_1 191 +#define SECRET_BASE_TREE4_2 192 +#define SECRET_BASE_TREE4_3 193 + +#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_SHRUB2_1 211 +#define SECRET_BASE_SHRUB2_2 212 +#define SECRET_BASE_SHRUB2_3 213 + +#define SECRET_BASE_SHRUB3_1 221 +#define SECRET_BASE_SHRUB3_2 222 +#define SECRET_BASE_SHRUB3_3 223 + +#define SECRET_BASE_SHRUB4_1 231 +#define SECRET_BASE_SHRUB4_2 232 +#define SECRET_BASE_SHRUB4_3 233 + +#endif // GUARD_CONSTANTS_SECRET_BASES_H diff --git a/include/constants/songs.h b/include/constants/songs.h new file mode 100644 index 000000000..5225f5899 --- /dev/null +++ b/include/constants/songs.h @@ -0,0 +1,373 @@ +#ifndef GUARD_CONSTANTS_SONGS_H +#define GUARD_CONSTANTS_SONGS_H + +#define SE_STOP 0 +#define SE_KAIFUKU 1 +#define SE_PC_LOGON 2 +#define SE_PC_OFF 3 +#define SE_PC_ON 4 +#define SE_SELECT 5 +#define SE_WIN_OPEN 6 +#define SE_WALL_HIT 7 +#define SE_DOOR 8 +#define SE_KAIDAN 9 +#define SE_DANSA 10 +#define SE_JITENSYA 11 +#define SE_KOUKA_L 12 +#define SE_KOUKA_M 13 +#define SE_KOUKA_H 14 +#define SE_BOWA2 15 +#define SE_POKE_DEAD 16 +#define SE_NIGERU 17 +#define SE_JIDO_DOA 18 +#define SE_NAMINORI 19 +#define SE_BAN 20 +#define SE_PIN 21 +#define SE_BOO 22 +#define SE_BOWA 23 +#define SE_JYUNI 24 +#define SE_A 25 +#define SE_I 26 +#define SE_U 27 +#define SE_E 28 +#define SE_O 29 +#define SE_N 30 +#define SE_SEIKAI 31 +#define SE_HAZURE 32 +#define SE_EXP 33 +#define SE_JITE_PYOKO 34 +#define SE_MU_PACHI 35 +#define SE_TK_KASYA 36 +#define SE_FU_ZAKU 37 +#define SE_FU_ZAKU2 38 +#define SE_FU_ZUZUZU 39 +#define SE_RU_GASHIN 40 +#define SE_RU_GASYAN 41 +#define SE_RU_BARI 42 +#define SE_RU_HYUU 43 +#define SE_KI_GASYAN 44 +#define SE_TK_WARPIN 45 +#define SE_TK_WARPOUT 46 +#define SE_TU_SAA 47 +#define SE_HI_TURUN 48 +#define SE_TRACK_MOVE 49 +#define SE_TRACK_STOP 50 +#define SE_TRACK_HAIK 51 +#define SE_TRACK_DOOR 52 +#define SE_MOTER 53 +#define SE_CARD 54 +#define SE_SAVE 55 +#define SE_KON 56 +#define SE_KON2 57 +#define SE_KON3 58 +#define SE_KON4 59 +#define SE_SUIKOMU 60 +#define SE_NAGERU 61 +#define SE_TOY_C 62 +#define SE_TOY_D 63 +#define SE_TOY_E 64 +#define SE_TOY_F 65 +#define SE_TOY_G 66 +#define SE_TOY_A 67 +#define SE_TOY_B 68 +#define SE_TOY_C1 69 +#define SE_MIZU 70 +#define SE_HASHI 71 +#define SE_DAUGI 72 +#define SE_PINPON 73 +#define SE_FUUSEN1 74 +#define SE_FUUSEN2 75 +#define SE_FUUSEN3 76 +#define SE_TOY_KABE 77 +#define SE_TOY_DANGO 78 +#define SE_DOKU 79 +#define SE_ESUKA 80 +#define SE_T_AME 81 +#define SE_T_AME_E 82 +#define SE_T_OOAME 83 +#define SE_T_OOAME_E 84 +#define SE_T_KOAME 85 +#define SE_T_KOAME_E 86 +#define SE_T_KAMI 87 +#define SE_T_KAMI2 88 +#define SE_ELEBETA 89 +#define SE_HINSI 90 +#define SE_EXPMAX 91 +#define SE_TAMAKORO 92 +#define SE_TAMAKORO_E 93 +#define SE_BASABASA 94 +#define SE_REGI 95 +#define SE_C_GAJI 96 +#define SE_C_MAKU_U 97 +#define SE_C_MAKU_D 98 +#define SE_C_PASI 99 +#define SE_C_SYU 100 +#define SE_C_PIKON 101 +#define SE_REAPOKE 102 +#define SE_OP_BASYU 103 +#define SE_BT_START 104 +#define SE_DENDOU 105 +#define SE_JIHANKI 106 +#define SE_TAMA 107 +#define SE_Z_SCROLL 108 +#define SE_Z_PAGE 109 +#define SE_PN_ON 110 +#define SE_PN_OFF 111 +#define SE_Z_SEARCH 112 +#define SE_TAMAGO 113 +#define SE_TB_START 114 +#define SE_TB_KON 115 +#define SE_TB_KARA 116 +#define SE_BIDORO 117 +#define SE_W085 118 +#define SE_W085B 119 +#define SE_W231 120 +#define SE_W171 121 +#define SE_W233 122 +#define SE_W233B 123 +#define SE_W145 124 +#define SE_W145B 125 +#define SE_W145C 126 +#define SE_W240 127 +#define SE_W015 128 +#define SE_W081 129 +#define SE_W081B 130 +#define SE_W088 131 +#define SE_W016 132 +#define SE_W016B 133 +#define SE_W003 134 +#define SE_W104 135 +#define SE_W013 136 +#define SE_W196 137 +#define SE_W086 138 +#define SE_W004 139 +#define SE_W025 140 +#define SE_W025B 141 +#define SE_W152 142 +#define SE_W026 143 +#define SE_W172 144 +#define SE_W172B 145 +#define SE_W053 146 +#define SE_W007 147 +#define SE_W092 148 +#define SE_W221 149 +#define SE_W221B 150 +#define SE_W052 151 +#define SE_W036 152 +#define SE_W059 153 +#define SE_W059B 154 +#define SE_W010 155 +#define SE_W011 156 +#define SE_W017 157 +#define SE_W019 158 +#define SE_W028 159 +#define SE_W013B 160 +#define SE_W044 161 +#define SE_W029 162 +#define SE_W057 163 +#define SE_W056 164 +#define SE_W250 165 +#define SE_W030 166 +#define SE_W039 167 +#define SE_W054 168 +#define SE_W077 169 +#define SE_W020 170 +#define SE_W082 171 +#define SE_W047 172 +#define SE_W195 173 +#define SE_W006 174 +#define SE_W091 175 +#define SE_W146 176 +#define SE_W120 177 +#define SE_W153 178 +#define SE_W071B 179 +#define SE_W071 180 +#define SE_W103 181 +#define SE_W062 182 +#define SE_W062B 183 +#define SE_W048 184 +#define SE_W187 185 +#define SE_W118 186 +#define SE_W155 187 +#define SE_W122 188 +#define SE_W060 189 +#define SE_W185 190 +#define SE_W014 191 +#define SE_W043 192 +#define SE_W207 193 +#define SE_W207B 194 +#define SE_W215 195 +#define SE_W109 196 +#define SE_W173 197 +#define SE_W280 198 +#define SE_W202 199 +#define SE_W060B 200 +#define SE_W076 201 +#define SE_W080 202 +#define SE_W100 203 +#define SE_W107 204 +#define SE_W166 205 +#define SE_W129 206 +#define SE_W115 207 +#define SE_W112 208 +#define SE_W197 209 +#define SE_W199 210 +#define SE_W236 211 +#define SE_W204 212 +#define SE_W268 213 +#define SE_W070 214 +#define SE_W063 215 +#define SE_W127 216 +#define SE_W179 217 +#define SE_W151 218 +#define SE_W201 219 +#define SE_W161 220 +#define SE_W161B 221 +#define SE_W227 222 +#define SE_W227B 223 +#define SE_W226 224 +#define SE_W208 225 +#define SE_W213 226 +#define SE_W213B 227 +#define SE_W234 228 +#define SE_W260 229 +#define SE_W328 230 +#define SE_W320 231 +#define SE_W255 232 +#define SE_W291 233 +#define SE_W089 234 +#define SE_W239 235 +#define SE_W230 236 +#define SE_W281 237 +#define SE_W327 238 +#define SE_W287 239 +#define SE_W257 240 +#define SE_W253 241 +#define SE_W258 242 +#define SE_W322 243 +#define SE_W298 244 +#define SE_W287B 245 +#define SE_W114 246 +#define SE_W063B 247 +#define BGM_STOP 349 +#define BGM_TETSUJI 350 +#define BGM_FIELD13 351 +#define BGM_KACHI22 352 +#define BGM_KACHI2 353 +#define BGM_KACHI3 354 +#define BGM_KACHI5 355 +#define BGM_PCC 356 +#define BGM_NIBI 357 +#define BGM_SUIKUN 358 +#define BGM_DOORO1 359 +#define BGM_DOORO_X1 360 +#define BGM_DOORO_X3 361 +#define BGM_MACHI_S2 362 +#define BGM_MACHI_S4 363 +#define BGM_GIM 364 +#define BGM_NAMINORI 365 +#define BGM_DAN01 366 +#define BGM_FANFA1 367 +#define BGM_ME_ASA 368 +#define BGM_ME_BACHI 369 +#define BGM_FANFA4 370 +#define BGM_FANFA5 371 +#define BGM_ME_WAZA 372 +#define BGM_BIJYUTU 373 +#define BGM_DOORO_X4 374 +#define BGM_FUNE_KAN 375 +#define BGM_ME_SHINKA 376 +#define BGM_SHINKA 377 +#define BGM_ME_WASURE 378 +#define BGM_SYOUJOEYE 379 +#define BGM_BOYEYE 380 +#define BGM_DAN02 381 +#define BGM_MACHI_S3 382 +#define BGM_ODAMAKI 383 +#define BGM_B_TOWER 384 +#define BGM_SWIMEYE 385 +#define BGM_DAN03 386 +#define BGM_ME_KINOMI 387 +#define BGM_ME_TAMA 388 +#define BGM_ME_B_BIG 389 +#define BGM_ME_B_SMALL 390 +#define BGM_ME_ZANNEN 391 +#define BGM_BD_TIME 392 +#define BGM_TEST1 393 +#define BGM_TEST2 394 +#define BGM_TEST3 395 +#define BGM_TEST4 396 +#define BGM_TEST 397 +#define BGM_GOMACHI0 398 +#define BGM_GOTOWN 399 +#define BGM_POKECEN 400 +#define BGM_NEXTROAD 401 +#define BGM_GRANROAD 402 +#define BGM_CYCLING 403 +#define BGM_FRIENDLY 404 +#define BGM_MISHIRO 405 +#define BGM_TOZAN 406 +#define BGM_GIRLEYE 407 +#define BGM_MINAMO 408 +#define BGM_ASHROAD 409 +#define BGM_EVENT0 410 +#define BGM_DEEPDEEP 411 +#define BGM_KACHI1 412 +#define BGM_TITLE3 413 +#define BGM_DEMO1 414 +#define BGM_GIRL_SUP 415 +#define BGM_HAGESHII 416 +#define BGM_KAKKOII 417 +#define BGM_KAZANBAI 418 +#define BGM_AQA_0 419 +#define BGM_TSURETEK 420 +#define BGM_BOY_SUP 421 +#define BGM_RAINBOW 422 +#define BGM_AYASII 423 +#define BGM_KACHI4 424 +#define BGM_ROPEWAY 425 +#define BGM_CASINO 426 +#define BGM_HIGHTOWN 427 +#define BGM_SAFARI 428 +#define BGM_C_ROAD 429 +#define BGM_AJITO 430 +#define BGM_M_BOAT 431 +#define BGM_M_DUNGON 432 +#define BGM_FINECITY 433 +#define BGM_MACHUPI 434 +#define BGM_P_SCHOOL 435 +#define BGM_DENDOU 436 +#define BGM_TONEKUSA 437 +#define BGM_MABOROSI 438 +#define BGM_CON_FAN 439 +#define BGM_CONTEST0 440 +#define BGM_MGM0 441 +#define BGM_T_BATTLE 442 +#define BGM_OOAME 443 +#define BGM_HIDERI 444 +#define BGM_RUNECITY 445 +#define BGM_CON_K 446 +#define BGM_EIKOU_R 447 +#define BGM_KARAKURI 448 +#define BGM_HUTAGO 449 +#define BGM_SITENNOU 450 +#define BGM_YAMA_EYE 451 +#define BGM_CONLOBBY 452 +#define BGM_INTER_V 453 +#define BGM_DAIGO 454 +#define BGM_THANKFOR 455 +#define BGM_END 456 +#define BGM_BATTLE27 457 +#define BGM_BATTLE31 458 +#define BGM_BATTLE20 459 +#define BGM_BATTLE32 460 +#define BGM_BATTLE33 461 +#define BGM_BATTLE36 462 +#define BGM_BATTLE34 463 +#define BGM_BATTLE35 464 +#define BGM_BATTLE38 465 +#define BGM_BATTLE30 466 + +#define BGM_ROUTE_118 0x7FFF // What is this for? + +#endif // GUARD_CONSTANTS_SONGS_H diff --git a/include/constants/species.h b/include/constants/species.h new file mode 100644 index 000000000..f698ada14 --- /dev/null +++ b/include/constants/species.h @@ -0,0 +1,450 @@ +#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 SPECIES_UNOWN_B 413 +#define SPECIES_UNOWN_C 414 +#define SPECIES_UNOWN_D 415 +#define SPECIES_UNOWN_E 416 +#define SPECIES_UNOWN_F 417 +#define SPECIES_UNOWN_G 418 +#define SPECIES_UNOWN_H 419 +#define SPECIES_UNOWN_I 420 +#define SPECIES_UNOWN_J 421 +#define SPECIES_UNOWN_K 422 +#define SPECIES_UNOWN_L 423 +#define SPECIES_UNOWN_M 424 +#define SPECIES_UNOWN_N 425 +#define SPECIES_UNOWN_O 426 +#define SPECIES_UNOWN_P 427 +#define SPECIES_UNOWN_Q 428 +#define SPECIES_UNOWN_R 429 +#define SPECIES_UNOWN_S 430 +#define SPECIES_UNOWN_T 431 +#define SPECIES_UNOWN_U 432 +#define SPECIES_UNOWN_V 433 +#define SPECIES_UNOWN_W 434 +#define SPECIES_UNOWN_X 435 +#define SPECIES_UNOWN_Y 436 +#define SPECIES_UNOWN_Z 437 +#define SPECIES_UNOWN_EMARK 438 +#define SPECIES_UNOWN_QMARK 439 + +#define NUM_SPECIES SPECIES_EGG + +#endif // GUARD_CONSTANTS_SPECIES_H diff --git a/include/constants/vars.h b/include/constants/vars.h new file mode 100644 index 000000000..682d45003 --- /dev/null +++ b/include/constants/vars.h @@ -0,0 +1,196 @@ +#ifndef GUARD_CONSTANTS_VARS_H +#define GUARD_CONSTANTS_VARS_H + +#define VAR_0x3F20 0x3F20 + +#define VARS_START 0x4000 + +// temporary vars +// The first 0x10 vars are are temporary--they are cleared every time a map is loaded. +#define VAR_TEMP_0 0x4000 +#define VAR_TEMP_1 0x4001 +#define VAR_TEMP_2 0x4002 +#define VAR_TEMP_3 0x4003 +#define VAR_TEMP_4 0x4004 +#define VAR_TEMP_5 0x4005 +#define VAR_TEMP_6 0x4006 +#define VAR_TEMP_7 0x4007 +#define VAR_TEMP_8 0x4008 +#define VAR_TEMP_9 0x4009 +#define VAR_TEMP_A 0x400A +#define VAR_TEMP_B 0x400B +#define VAR_TEMP_C 0x400C +#define VAR_TEMP_D 0x400D +#define VAR_TEMP_E 0x400E +#define VAR_TEMP_F 0x400F + +// 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 VarGetFieldObjectGraphicsId(). +#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_HAPPINESS_STEP_COUNTER 0x402A +#define VAR_POISON_STEP_COUNTER 0x402B +#define VAR_RESET_RTC_ENABLE 0x402C +#define VAR_ENIGMA_BERRY_AVAILABLE 0x402D + +#define VAR_DAYS 0x4040 +#define VAR_FANCLUB_UNKNOWN_1 0x4041 // TODO: document these two fanclub vars +#define VAR_FANCLUB_UNKNOWN_2 0x4042 +#define VAR_DEPT_STORE_FLOOR 0x4043 +#define VAR_TRICK_HOUSE_ROOMS_COMPLETED 0x4044 +#define VAR_LOTTERY_PRIZE 0x4045 +#define VAR_NATIONAL_DEX 0x4046 +#define VAR_SHROOMISH_SIZE_RECORD 0x4047 +#define VAR_ASH_GATHER_COUNT 0x4048 +#define VAR_BIRCH_STATE 0x4049 +#define VAR_CRUISE_STEP_COUNT 0x404A +#define VAR_LOTTERY_RND_L 0x404B +#define VAR_LOTTERY_RND_H 0x404C + +#define VAR_BARBOACH_SIZE_RECORD 0x404F +#define VAR_LITTLEROOT_STATE 0x4050 +#define VAR_ROUTE102_ACCESSIBLE 0x4051 + +#define VAR_LAVARIDGE_RIVAL_STATE 0x4053 +#define VAR_CURRENT_SECRET_BASE 0x4054 + +#define VAR_PETALBURG_STATE 0x4057 +#define VAR_SLATEPORT_STATE 0x4058 + +#define VAR_RUSTBORO_STATE 0x405A + +#define VAR_SOOTOPOLIS_STATE 0x405E + +#define VAR_ROUTE101_STATE 0x4060 + +#define VAR_ROUTE103_STATE 0x4062 + +#define VAR_ROUTE110_STATE 0x4069 + +#define VAR_ROUTE116_STATE 0x406F + +#define VAR_ROUTE118_STATE 0x4071 +#define VAR_ROUTE119_STATE 0x4072 + +#define VAR_ROUTE121_STATE 0x4074 +#define VAR_ROUTE128_STATE 0x407B + +#define VAR_LITTLEROOT_HOUSES_STATE 0x4082 // TODO: needs more investigation + +#define VAR_BIRCH_LAB_STATE 0x4084 +#define VAR_PETALBURG_GYM_STATE 0x4085 +#define VAR_LINK_CONTEST_ROOM_STATE 0x4086 +#define VAR_CABLE_CLUB_STATE 0x4087 +#define VAR_CONTEST_LOCATION 0x4088 +#define VAR_0x4089 0x4089 // TODO: related to decorations +#define VAR_CONTEST_PRIZE_PICKUP 0x408A + +#define VAR_LITTLEROOT_HOUSES_STATE_2 0x408C // TODO: needs more investigation +#define VAR_LITTLEROOT_RIVAL_STATE 0x408D +#define VAR_BOARD_BRINEY_BOAT_ROUTE104_STATE 0x408E +#define VAR_DEVON_CORP_3F_STATE 0x408F +#define VAR_BRINEY_HOUSE_STATE 0x4090 + +#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_0x4097 0x4097 // TODO: related to creating new secret base +#define VAR_PETALBURG_WOODS_STATE 0x4098 +#define VAR_LILYCOVE_CONTEST_LOBBY_STATE 0x4099 +#define VAR_RUSTURF_TUNNEL_STATE 0x409a +#define VAR_CAVE_OF_ORIGIN_B4F_STATE 0x409B +#define VAR_ELITE_4_STATE 0x409C + +#define VAR_SLATEPORT_HARBOR_STATE 0x40A0 + +#define VAR_SEAFLOOR_CAVERN_STATE 0x40A2 +#define VAR_CABLE_CAR_STATION_STATE 0x40A3 +#define VAR_SAFARI_ZONE_STATE 0x40A4 +#define VAR_TRICK_HOUSE_ENTRANCE_STATE 0x40A5 +#define VAR_TRICK_HOUSE_ENTRANCE_STATE_2 0x40A6 +#define VAR_TRICK_HOUSE_ENTRANCE_STATE_3 0x40A7 + +#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_PORTHOLE_STATE 0x40B4 +#define VAR_TRICK_HOUSE_STATE 0x40B5 // TODO: needs some further investigation +#define VAR_TRICK_HOUSE_PUZZLE_7_STATE_2 0x40B6 +#define VAR_SLATEPORT_FAN_CLUB_STATE 0x40B7 + +#define VAR_MT_PYRE_STATE 0x40B9 +#define VAR_NEW_MAUVILLE_STATE 0x40BA + +#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_GAME_CORNER_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_STATE 0x40C7 + +// special vars +// They are commonly used as parameters to commands, or return values from commands. +#define VAR_SPECIAL_0 0x8000 +#define VAR_SPECIAL_1 0x8001 +#define VAR_SPECIAL_2 0x8002 +#define VAR_SPECIAL_3 0x8003 +#define VAR_SPECIAL_4 0x8004 +#define VAR_SPECIAL_5 0x8005 +#define VAR_SPECIAL_6 0x8006 +#define VAR_SPECIAL_7 0x8007 +#define VAR_SPECIAL_8 0x8008 +#define VAR_SPECIAL_9 0x8009 +#define VAR_SPECIAL_A 0x800A +#define VAR_SPECIAL_B 0x800B +#define FACING 0x800C +#define RESULT 0x800D +#define ITEM_ID 0x800E +#define LAST_TALKED 0x800F +#define CONTEST_RANK 0x8010 +#define CONTEST_CATEGORY 0x8011 + +#endif // GUARD_CONSTANTS_VARS_H diff --git a/include/constants/weather.h b/include/constants/weather.h new file mode 100644 index 000000000..946316984 --- /dev/null +++ b/include/constants/weather.h @@ -0,0 +1,39 @@ +#ifndef GUARD_CONSTANTS_WEATHER_H +#define GUARD_CONSTANTS_WEATHER_H + +#define WEATHER_NONE 0 +#define WEATHER_CLOUDS 1 +#define WEATHER_SUNNY 2 +#define WEATHER_RAIN_LIGHT 3 +#define WEATHER_SNOW 4 +#define WEATHER_RAIN_MED 5 +#define WEATHER_FOG_1 6 +#define WEATHER_ASH 7 +#define WEATHER_SANDSTORM 8 +#define WEATHER_FOG_2 9 +#define WEATHER_FOG_3 10 +#define WEATHER_DARK 11 +#define WEATHER_DROUGHT 12 +#define WEATHER_RAIN_HEAVY 13 +#define WEATHER_BUBBLES 14 +#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_CLOUDS 1 +#define COORD_EVENT_WEATHER_SUNNY 2 +#define COORD_EVENT_WEATHER_RAIN_LIGHT 3 +#define COORD_EVENT_WEATHER_SNOW 4 +#define COORD_EVENT_WEATHER_RAIN_MED 5 +#define COORD_EVENT_WEATHER_FOG_1 6 +#define COORD_EVENT_WEATHER_FOG_2 7 +#define COORD_EVENT_WEATHER_ASH 8 +#define COORD_EVENT_WEATHER_SANDSTORM 9 +#define COORD_EVENT_WEATHER_DARK 10 +#define COORD_EVENT_WEATHER_DROUGHT 11 +#define COORD_EVENT_WEATHER_ROUTE119_CYCLE 20 +#define COORD_EVENT_WEATHER_ROUTE123_CYCLE 21 + +#endif // GUARD_CONSTANTS_WEATHER_H diff --git a/include/contest.h b/include/contest.h index 983f9bc6a..6e71358a2 100644 --- a/include/contest.h +++ b/include/contest.h @@ -1,40 +1,257 @@ #ifndef GUARD_CONTEST_H #define GUARD_CONTEST_H +enum +{ + CONTEST_CATEGORY_COOL, + CONTEST_CATEGORY_BEAUTY, + CONTEST_CATEGORY_CUTE, + CONTEST_CATEGORY_SMART, + CONTEST_CATEGORY_TOUGH, +}; + +enum +{ + CONTEST_EFFECT_HIGHLY_APPEALING, + CONTEST_EFFECT_USER_MORE_STARTLED, + CONTEST_EFFECT_APPEAL_ONLY_ONCE, + CONTEST_EFFECT_REPEATABLE, + CONTEST_EFFECT_AVOID_STARTLE_ONCE, + CONTEST_EFFECT_AVOID_STARTLE, + CONTEST_EFFECT_AVOID_STARTLE_LITTLE, + //... +}; + +struct ContestMove +{ + u8 effect; + u8 contestCategory:3; + u8 comboStarterId; + u8 comboMoves[4]; +}; + +struct ContestEffect +{ + u8 effectType; + u8 appeal; + u8 jam; +}; + struct ContestPokemon { - /* 0x00 */ u16 species; - /* 0x02 */ u8 nickname[POKEMON_NAME_LENGTH]; - /* 0x0D */ u8 trainerName[8]; - /* 0x15 */ u8 unk15; - /* 0x16 */ u8 unk16; - /* 0x17 */ u8 filler17[7]; - /* 0x1E */ u16 moves[4]; // moves - /* 0x26 */ u8 cool; // cool - /* 0x27 */ u8 beauty; // beauty - /* 0x28 */ u8 cute; // cute - /* 0x29 */ u8 smart; // smart - /* 0x2A */ u8 tough; // tough - /* 0x2B */ u8 sheen; // sheen - /* 0x2C */ u8 filler2C[12]; - /* 0x38 */ u32 unk38; - /* 0x3C */ u32 unk3C; + /*0x00*/ u16 species; + /*0x02*/ u8 nickname[POKEMON_NAME_LENGTH + 1]; + /*0x0D*/ u8 trainerName[8]; + /*0x15*/ u8 trainerGfxId; + /*0x16*/ u8 unk16; + /*0x17*/ u8 filler17; + /*0x18*/ u32 flags; + /*0x1C*/ u8 unk1C_0:2; + u8 unk1C_2:1; + u8 unk1C_3:1; + u8 unk1C_4:1; + u8 unk1C_5:1; + u8 unk1C_6:1; + u8 unk1C_7:1; + u8 filler1D; + /*0x1E*/ u16 moves[4]; // moves + /*0x26*/ u8 cool; // cool + /*0x27*/ u8 beauty; // beauty + /*0x28*/ u8 cute; // cute + /*0x29*/ u8 smart; // smart + /*0x2A*/ u8 tough; // tough + /*0x2B*/ u8 sheen; // sheen + /*0x2C*/ u8 unk2C; + /*0x2D*/ u8 unk2D[11]; + /*0x38*/ u32 personality; // personality + /*0x3C*/ u32 otId; // otId }; // wow extern struct ContestPokemon gContestMons[]; +extern const struct ContestMove gContestMoves[]; +extern const struct ContestEffect gContestEffects[]; +extern const u8 *const gContestEffectStrings[]; + void ResetLinkContestBoolean(void); -void sub_80AB2AC(void); -void sub_80AB47C(void); -void sub_80AE098(u8); -void sub_80AE398(u8, u8); +void LoadContestBgAfterMoveAnim(void); +void CB2_StartContest(void); +void Contest_CreatePlayerMon(u8); +void Contest_InitAllPokemon(u8, u8); u8 sub_80AE47C(struct Pokemon *party); -u32 sub_80AE770(u8, u8); +u16 sub_80AE770(u8, u8); void sub_80AE82C(u8); -u8 sub_80AEB1C(); +u8 IsSpeciesNotUnown(u16); void sub_80AF668(void); void sub_80B0F28(u8); -int sub_80B2A7C(u8); //Don't know return type size +bool8 Contest_SaveWinner(u8); u8 sub_80B2C4C(u8, u8); -void sub_80B2D1C(void); +void Contest_ResetWinners(void); + +// Contest Shared EWRAM + +struct Shared18000 +{ + /*0x18000*/ u8 unk18000; + /*0x18001*/ u8 filler18001[3]; + /*0x18004*/ u16 unk18004[16][16]; + /*0x18204*/ u16 unk18204[0x200]; + /*0x18604*/ u16 unk18604[0x200]; + /*0x18A04*/ u8 unk18A04[0x800]; +}; + +struct Contest +{ + /*0x19204*/ u8 playerMoveChoice; + /*0x19205*/ u8 turnNumber; + /*0x19206*/ u8 unk19206[4]; // seems to only be used by an unref function + /*0x1920A*/ u16 unk1920A_0:1; // Task active flags? + u16 unk1920A_1:1; + u16 unk1920A_2:1; + u16 unk1920A_3:1; + u16 unk1920A_4:1; + u16 unk1920A_5:1; + u16 unk1920A_6:1; + u16 unk1920A_7:1; + /*0x1920B*/ u16 unk1920B_0:1; + u16 unk1920B_1:1; + u16 unk1920B_2:1; + /*0x1920C*/ u8 mainTaskId; + /*0x1920D*/ u8 unk1920D[4]; + /*0x19211*/ u8 unk19211; + /*0x19212*/ u8 unk19212; + /*0x19213*/ u8 filler19213; + /*0x19214*/ u8 unk19214; + /*0x19215*/ u8 unk19215; + /*0x19216*/ u8 unk19216; // sprite ID + /*0x19217*/ s8 applauseLevel; + /*0x19218*/ u8 unk19218[4]; + /*0x1921C*/ u32 unk1921C; // saved RNG value? + u16 unk19220[5][4]; // move history? + u8 unk19248[5][4]; // excitement history + u8 applauseMeterSpriteId; // sprite ID + /*0x1925D*/ u8 unk1925D; + /*0x1925E*/ u8 unk1925E; +}; + +struct ContestantStatus +{ + s16 appeal1; // move appeal? + s16 appeal2; // final appeal after end of turn, maybe? + s16 unk4; + u16 currMove; + u16 prevMove; + u8 moveCategory; + u8 unkB_0:2; + u8 unkB_2:2; + u8 moveRepeatCount:3; + u8 unkB_7:1; // used a one-time move? + u8 unkC_0:1; + u8 unkC_1:2; + s8 unkD; + u8 unkE; + u8 unkF; + u8 unk10_0:1; + u8 unk10_1:1; + u8 unk10_2:1; + u8 unk10_3:1; + u8 unk10_4:2; + u8 unk10_6:2; + u8 unk11_0:2; + u8 unk11_2:1; + u8 unk11_3:1; + u8 unk11_4:1; + u8 unk11_5:1; + u8 unk12; + u8 unk13; // status action? + u8 unk14; + u8 disappointedRepeat:1; + u8 unk15_1:1; + u8 unk15_2:1; + u8 unk15_3:1; + u8 unk15_4:1; + u8 unk15_5:1; + u8 unk15_6:1; + u8 unk16; + u8 unk17; + u8 unk18; + u8 unk19; // turn position + u8 attentionLevel; // How much the Pokemon "stood out" + u8 unk1B; +}; + +struct UnknownContestStruct3 +{ + u8 unk0; + u8 unk1; + //u8 unk2_0:1; + //u8 unk2_1:1; + u8 unk2; // maybe a bitfield + u8 filler3; +}; + +// possibly the same as UnknownContestStruct3? +struct UnknownContestStruct4 +{ + u8 unk0; // sprite ID + u8 unk1; // sprite ID + u8 unk2_0:1; + u8 unk2_1:1; + u8 unk2_2:1; + u8 filler3; +}; + +struct UnknownContestStruct5 +{ + s8 bits_0; // current move excitement? + u8 bits_8:1; + u8 bits_9:3; + u8 bits_C:4; + s8 unk2; + u8 filler3; +}; + +struct UnknownContestStruct7 +{ + u8 unk0[4]; + u16 unk4; + u16 unk6; + u8 filler8[0xD-8]; + u8 unkD[4]; + u8 unk11; + u8 filler12[2]; +}; + +struct UnknownContestStruct8 +{ + u16 unk0; + u16 unk2; + u8 unk4_0:1; + u8 unk5; + u8 filler6[2]; + u32 unk8; + u32 unkC; + u32 unk10; +}; + +struct UnknownContestStruct6 +{ + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; +}; + +#define shared15800 (gSharedMem + 0x15800) +#define shared15DE0 (*(struct ContestWinner *)(gSharedMem + 0x15DE0)) +#define shared16800 (gSharedMem + 0x16800) +#define shared18000 (*(struct Shared18000 *)(gSharedMem + 0x18000)) +#define shared18004 ((u16 *)(gSharedMem + 0x18004)) +#define sContest (*(struct Contest *)(gSharedMem + 0x19204)) +#define sContestantStatus ((struct ContestantStatus *)(gSharedMem + 0x19260)) +#define shared192D0 (*(struct UnknownContestStruct7 *)(gSharedMem + 0x192D0)) +#define shared192E4 (gSharedMem + 0x192E4) +#define shared19328 (*(struct UnknownContestStruct5 *)(gSharedMem + 0x19328)) +#define shared19338 ((struct UnknownContestStruct4 *)(gSharedMem + 0x19338)) +#define shared19348 (*(struct UnknownContestStruct8 *)(gSharedMem + 0x19348)) #endif // GUARD_CONTEST_H diff --git a/include/contest_link_80C857C.h b/include/contest_link_80C857C.h index 9135ba2e7..c0f7088b0 100644 --- a/include/contest_link_80C857C.h +++ b/include/contest_link_80C857C.h @@ -3,6 +3,7 @@ void sub_80C8734(u8); void sub_80C88AC(u8); +void sub_80C89DC(u8); void sub_80C8E1C(u8); void sub_80C8EBC(u8); void sub_80C8F34(u8); diff --git a/include/data/field_map_obj/anim_func_ptrs.h b/include/data/field_map_obj/anim_func_ptrs.h deleted file mode 100644 index 63575727d..000000000 --- a/include/data/field_map_obj/anim_func_ptrs.h +++ /dev/null @@ -1,1519 +0,0 @@ -// -// Created by scott on 6/18/2017. -// - -#ifndef POKERUBY_ANIM_FUNC_PTRS_H -#define POKERUBY_ANIM_FUNC_PTRS_H - -u8 sub_8060CE0(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8060CF0(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8060D00(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8060D10(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8060F3C(struct MapObject *, struct Sprite *); -u8 sub_8060F5C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8060F7C(struct MapObject *, struct Sprite *); -u8 sub_8060F9C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8060FBC(struct MapObject *, struct Sprite *); -u8 sub_8060FDC(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8060FFC(struct MapObject *, struct Sprite *); -u8 sub_806101C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_806103C(struct MapObject *, struct Sprite *); -u8 sub_806105C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_806107C(struct MapObject *, struct Sprite *); -u8 sub_806109C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_80610BC(struct MapObject *, struct Sprite *); -u8 sub_80610DC(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_80610FC(struct MapObject *, struct Sprite *); -u8 sub_806111C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_80613A8(struct MapObject *, struct Sprite *); -u8 sub_80613D4(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8061400(struct MapObject *, struct Sprite *); -u8 sub_806142C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8061458(struct MapObject *, struct Sprite *); -u8 sub_8061484(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_80614B0(struct MapObject *, struct Sprite *); -u8 sub_80614DC(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_806152C(struct MapObject *, struct Sprite *); -u8 sub_8061510(struct MapObject *, struct Sprite *); -u8 sub_8063470(struct MapObject *, struct Sprite *); -u8 sub_806154C(struct MapObject *, struct Sprite *); -u8 sub_8061510(struct MapObject *, struct Sprite *); -u8 sub_8063470(struct MapObject *, struct Sprite *); -u8 sub_806156C(struct MapObject *, struct Sprite *); -u8 sub_8061510(struct MapObject *, struct Sprite *); -u8 sub_8063470(struct MapObject *, struct Sprite *); -u8 sub_806158C(struct MapObject *, struct Sprite *); -u8 sub_8061510(struct MapObject *, struct Sprite *); -u8 sub_8063470(struct MapObject *, struct Sprite *); -u8 sub_80615AC(struct MapObject *, struct Sprite *); -u8 sub_8061510(struct MapObject *, struct Sprite *); -u8 sub_8063470(struct MapObject *, struct Sprite *); -u8 sub_80615CC(struct MapObject *, struct Sprite *); -u8 sub_80615EC(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_806160C(struct MapObject *, struct Sprite *); -u8 sub_806162C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_806164C(struct MapObject *, struct Sprite *); -u8 sub_806166C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_806168C(struct MapObject *, struct Sprite *); -u8 sub_80616AC(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8061778(struct MapObject *, struct Sprite *); -u8 sub_806173C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_80617B0(struct MapObject *, struct Sprite *); -u8 sub_806173C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_80617E8(struct MapObject *, struct Sprite *); -u8 sub_806173C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8061820(struct MapObject *, struct Sprite *); -u8 sub_806173C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8061858(struct MapObject *, struct Sprite *); -u8 sub_8061714(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8061890(struct MapObject *, struct Sprite *); -u8 sub_8061714(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_80618C8(struct MapObject *, struct Sprite *); -u8 sub_8061714(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8061900(struct MapObject *, struct Sprite *); -u8 sub_8061714(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8061938(struct MapObject *, struct Sprite *); -u8 sub_8061714(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8061970(struct MapObject *, struct Sprite *); -u8 sub_8061714(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_80619A8(struct MapObject *, struct Sprite *); -u8 sub_8061714(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_80619E0(struct MapObject *, struct Sprite *); -u8 sub_8061714(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8061A18(struct MapObject *, struct Sprite *); -u8 sub_8061714(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8061A50(struct MapObject *, struct Sprite *); -u8 sub_8061714(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8061A88(struct MapObject *, struct Sprite *); -u8 sub_8061714(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8061AC0(struct MapObject *, struct Sprite *); -u8 sub_8061714(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8061AF8(struct MapObject *, struct Sprite *); -u8 sub_8061B18(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8061B38(struct MapObject *, struct Sprite *); -u8 sub_8061B58(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8061B78(struct MapObject *, struct Sprite *); -u8 sub_8061B98(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8061BB8(struct MapObject *, struct Sprite *); -u8 sub_8061BD8(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8061BF8(struct MapObject *, struct Sprite *); -u8 sub_8061C18(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8061C38(struct MapObject *, struct Sprite *); -u8 sub_8061C58(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8061C78(struct MapObject *, struct Sprite *); -u8 sub_8061C98(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8061CB8(struct MapObject *, struct Sprite *); -u8 sub_8061CD8(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8061CF8(struct MapObject *, struct Sprite *); -u8 sub_8061D18(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8061D38(struct MapObject *, struct Sprite *); -u8 sub_8061D58(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8061D78(struct MapObject *, struct Sprite *); -u8 sub_8061D98(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8061DB8(struct MapObject *, struct Sprite *); -u8 sub_8061DD8(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 do_run_south_anim(struct MapObject *, struct Sprite *); -u8 sub_8061E18(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 do_run_north_anim(struct MapObject *, struct Sprite *); -u8 sub_8061E58(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 do_run_west_anim(struct MapObject *, struct Sprite *); -u8 sub_8061E98(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 do_run_east_anim(struct MapObject *, struct Sprite *); -u8 sub_8061ED8(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8061F24(struct MapObject *, struct Sprite *); -u8 sub_8061F3C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8061F90(struct MapObject *, struct Sprite *); -u8 sub_8061FB0(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8061FD8(struct MapObject *, struct Sprite *); -u8 sub_8061FF8(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062020(struct MapObject *, struct Sprite *); -u8 sub_8062040(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062068(struct MapObject *, struct Sprite *); -u8 sub_8062088(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_80620B0(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_806210C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062170(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062180(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062190(struct MapObject *, struct Sprite *); -u8 sub_80621BC(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_80621E8(struct MapObject *, struct Sprite *); -u8 sub_8062214(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062240(struct MapObject *, struct Sprite *); -u8 sub_806226C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062298(struct MapObject *, struct Sprite *); -u8 sub_80622C4(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_80622F0(struct MapObject *, struct Sprite *); -u8 sub_806231C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062348(struct MapObject *, struct Sprite *); -u8 sub_8062374(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_80623A0(struct MapObject *, struct Sprite *); -u8 sub_80623CC(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_80623F8(struct MapObject *, struct Sprite *); -u8 sub_8062424(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062450(struct MapObject *, struct Sprite *); -u8 sub_806247C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_80624A8(struct MapObject *, struct Sprite *); -u8 sub_80624D4(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062500(struct MapObject *, struct Sprite *); -u8 sub_806252C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062558(struct MapObject *, struct Sprite *); -u8 sub_8062584(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_80625B0(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_80625C8(struct MapObject *, struct Sprite *); -u8 sub_8061F3C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_80625D8(struct MapObject *, struct Sprite *); -u8 sub_8063470(struct MapObject *, struct Sprite *); -u8 sub_80625E8(struct MapObject *, struct Sprite *); -u8 sub_8063470(struct MapObject *, struct Sprite *); -u8 sub_80625F8(struct MapObject *, struct Sprite *); -u8 sub_8063470(struct MapObject *, struct Sprite *); -u8 sub_8062608(struct MapObject *, struct Sprite *); -u8 sub_8063470(struct MapObject *, struct Sprite *); -u8 sub_8062634(struct MapObject *, struct Sprite *); -u8 sub_8063470(struct MapObject *, struct Sprite *); -u8 sub_8062644(struct MapObject *, struct Sprite *); -u8 sub_8063470(struct MapObject *, struct Sprite *); -u8 do_exclamation_mark_bubble_1(struct MapObject *, struct Sprite *); -u8 sub_8063470(struct MapObject *, struct Sprite *); -u8 do_exclamation_mark_bubble_2(struct MapObject *, struct Sprite *); -u8 sub_8063470(struct MapObject *, struct Sprite *); -u8 do_heart_bubble(struct MapObject *, struct Sprite *); -u8 sub_8063470(struct MapObject *, struct Sprite *); -u8 sub_80626C0(struct MapObject *, struct Sprite *); -u8 sub_8062704(struct MapObject *, struct Sprite *); -u8 sub_8063470(struct MapObject *, struct Sprite *); -u8 sub_8062724(struct MapObject *, struct Sprite *); -u8 sub_8062740(struct MapObject *, struct Sprite *); -u8 sub_8062764(struct MapObject *, struct Sprite *); -u8 sub_8063470(struct MapObject *, struct Sprite *); -u8 sub_80627A0(struct MapObject *, struct Sprite *); -u8 sub_80627BC(struct MapObject *, struct Sprite *); -u8 sub_80627E0(struct MapObject *, struct Sprite *); -u8 sub_8063470(struct MapObject *, struct Sprite *); -u8 sub_806281C(struct MapObject *, struct Sprite *); -u8 sub_8063470(struct MapObject *, struct Sprite *); -u8 sub_806282C(struct MapObject *, struct Sprite *); -u8 sub_8063470(struct MapObject *, struct Sprite *); -u8 sub_806283C(struct MapObject *, struct Sprite *); -u8 sub_8063470(struct MapObject *, struct Sprite *); -u8 sub_806286C(struct MapObject *, struct Sprite *); -u8 sub_8063470(struct MapObject *, struct Sprite *); -u8 sub_806289C(struct MapObject *, struct Sprite *); -u8 sub_80628D0(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_80628FC(struct MapObject *, struct Sprite *); -u8 sub_8062930(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_806299C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_80629AC(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_80629BC(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_80629CC(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_80629DC(struct MapObject *, struct Sprite *); -u8 sub_8061F3C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062A00(struct MapObject *, struct Sprite *); -u8 sub_8061F3C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062A24(struct MapObject *, struct Sprite *); -u8 sub_8061F3C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062A48(struct MapObject *, struct Sprite *); -u8 sub_8061F3C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062A6C(struct MapObject *, struct Sprite *); -u8 sub_8061F3C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062A90(struct MapObject *, struct Sprite *); -u8 sub_8061F3C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062AB4(struct MapObject *, struct Sprite *); -u8 sub_8061F3C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062AD8(struct MapObject *, struct Sprite *); -u8 sub_8061F3C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062AFC(struct MapObject *, struct Sprite *); -u8 sub_8061F3C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062B20(struct MapObject *, struct Sprite *); -u8 sub_8061F3C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062B44(struct MapObject *, struct Sprite *); -u8 sub_8061F3C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062B68(struct MapObject *, struct Sprite *); -u8 sub_8061F3C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062BD0(struct MapObject *, struct Sprite *); -u8 sub_8062BFC(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062C28(struct MapObject *, struct Sprite *); -u8 sub_8062C54(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062C80(struct MapObject *, struct Sprite *); -u8 sub_8062CAC(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062CD8(struct MapObject *, struct Sprite *); -u8 sub_8062D04(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062D30(struct MapObject *, struct Sprite *); -u8 sub_8062D5C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062D88(struct MapObject *, struct Sprite *); -u8 sub_8062DB4(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062DE0(struct MapObject *, struct Sprite *); -u8 sub_8062E0C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062E38(struct MapObject *, struct Sprite *); -u8 sub_8062E64(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062E90(struct MapObject *, struct Sprite *); -u8 sub_8062EBC(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062EE8(struct MapObject *, struct Sprite *); -u8 sub_8062F14(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062F40(struct MapObject *, struct Sprite *); -u8 sub_8062F6C(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062F98(struct MapObject *, struct Sprite *); -u8 sub_8062FC4(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8062FF0(struct MapObject *, struct Sprite *); -u8 sub_8061714(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8063028(struct MapObject *, struct Sprite *); -u8 sub_8061714(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8063060(struct MapObject *, struct Sprite *); -u8 sub_8061714(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8063098(struct MapObject *, struct Sprite *); -u8 sub_8061714(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8063108(struct MapObject *, struct Sprite *); -u8 sub_8063128(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8063148(struct MapObject *, struct Sprite *); -u8 sub_8063168(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8063188(struct MapObject *, struct Sprite *); -u8 sub_80631A8(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_80631C8(struct MapObject *, struct Sprite *); -u8 sub_80631E8(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8063238(struct MapObject *, struct Sprite *); -u8 sub_8063258(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8063278(struct MapObject *, struct Sprite *); -u8 sub_8063298(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_80632B8(struct MapObject *, struct Sprite *); -u8 sub_80632D8(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_80632F8(struct MapObject *, struct Sprite *); -u8 sub_8063318(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8063370(struct MapObject *, struct Sprite *); -u8 sub_8063390(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_80633B0(struct MapObject *, struct Sprite *); -u8 sub_80633D0(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_80633F0(struct MapObject *, struct Sprite *); -u8 sub_8063410(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); -u8 sub_8063430(struct MapObject *, struct Sprite *); -u8 sub_8063450(struct MapObject *, struct Sprite *); -u8 sub_8063474(struct MapObject *, struct Sprite *); - -u8 (*const Unknown_83759A0[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_83759A8[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_83759B0[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_83759B8[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_83759D4[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_83759E0[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_83759EC[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_83759F8[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375A04[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375A10[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375A1C[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375A28[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375A40[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375A4C[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375A58[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375A64[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375A70[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375A7C[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375A88[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375A94[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375AA0[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375AAC[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375AB8[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375AC4[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375AD0[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375ADC[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375AE8[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375AF4[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375B00[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375B0C[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375B18[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375B24[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375B30[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375B3C[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375B48[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375B54[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375B60[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375B6C[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375B78[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375B84[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375B90[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375B9C[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375BA8[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375BB4[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375BC0[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375BCC[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375BD8[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375BE4[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375BF0[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375BFC[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375C08[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375C14[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375C20[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375C2C[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375C38[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375C44[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375C50[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375C5C[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375C68[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375C74[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375C80[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375C8C[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375C98[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375CA0[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375CA8[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375CB0[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375CB8[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375CC4[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375CD0[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375CDC[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375CE8[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375CF4[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375D00[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375D0C[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375D18[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375D24[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375D30[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375D3C[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375D48[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375D50[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375D5C[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375D64[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375D6C[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375D74[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375D7C[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375D84[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375D8C[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375D94[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375D9C[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375DA4[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375DB0[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375DC0[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375DD0[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375DD8[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375DE0[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375DE8[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375DF0[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375DFC[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375E08[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375E10[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375E18[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375E20[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375E28[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375E34[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375E40[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375E4C[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375E58[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375E64[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375E70[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375E7C[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375EB8[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375EC4[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375ED0[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375EDC[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375EE8[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375EF4[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375F00[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375F0C[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375F18[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375F24[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375F30[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375F3C[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375F48[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375F54[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375F60[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375F6C[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375F78[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375F84[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375F90[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375F9C[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375FA8[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375FB4[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375FC0[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375FCC[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375FD8[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375FE4[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375FF0[])(struct MapObject *, struct Sprite *); -u8 (*const Unknown_8375FFC[])(struct MapObject *, struct Sprite *); - -u8 (*const *const gUnknown_08375778[])(struct MapObject *, struct Sprite *) = { - Unknown_83759A0, - Unknown_83759A8, - Unknown_83759B0, - Unknown_83759B8, - Unknown_83759D4, - Unknown_83759E0, - Unknown_83759EC, - Unknown_83759F8, - Unknown_8375A04, - Unknown_8375A10, - Unknown_8375A1C, - Unknown_8375A28, - Unknown_8375A40, - Unknown_8375A4C, - Unknown_8375A58, - Unknown_8375A64, - Unknown_8375A70, - Unknown_8375A7C, - Unknown_8375A88, - Unknown_8375A94, - Unknown_8375AA0, - Unknown_8375AAC, - Unknown_8375AB8, - Unknown_8375AC4, - Unknown_8375AD0, - Unknown_8375ADC, - Unknown_8375AE8, - Unknown_8375AF4, - Unknown_8375B00, - Unknown_8375B0C, - Unknown_8375B18, - Unknown_8375B24, - Unknown_8375B30, - Unknown_8375B3C, - Unknown_8375B48, - Unknown_8375B54, - Unknown_8375B60, - Unknown_8375B6C, - Unknown_8375B78, - Unknown_8375B84, - Unknown_8375B90, - Unknown_8375B9C, - Unknown_8375BA8, - Unknown_8375BB4, - Unknown_8375BC0, - Unknown_8375BCC, - Unknown_8375BD8, - Unknown_8375BE4, - Unknown_8375BF0, - Unknown_8375BFC, - Unknown_8375C08, - Unknown_8375C14, - Unknown_8375C20, - Unknown_8375C2C, - Unknown_8375C38, - Unknown_8375C44, - Unknown_8375C50, - Unknown_8375C5C, - Unknown_8375C68, - Unknown_8375C74, - Unknown_8375C80, - Unknown_8375C8C, - Unknown_8375C98, - Unknown_8375CA0, - Unknown_8375CA8, - Unknown_8375CB0, - Unknown_8375CB8, - Unknown_8375CC4, - Unknown_8375CD0, - Unknown_8375CDC, - Unknown_8375CE8, - Unknown_8375CF4, - Unknown_8375D00, - Unknown_8375D0C, - Unknown_8375D18, - Unknown_8375D24, - Unknown_8375D30, - Unknown_8375D3C, - Unknown_8375D48, - Unknown_8375D50, - Unknown_8375D5C, - Unknown_8375D64, - Unknown_8375D6C, - Unknown_8375D74, - Unknown_8375D7C, - Unknown_8375D84, - Unknown_8375D8C, - Unknown_8375D94, - Unknown_8375D9C, - Unknown_8375DA4, - Unknown_8375DB0, - Unknown_8375DC0, - Unknown_8375DD0, - Unknown_8375DD8, - Unknown_8375DE0, - Unknown_8375DE8, - Unknown_8375DF0, - Unknown_8375DFC, - Unknown_8375E08, - Unknown_8375E10, - Unknown_8375E18, - Unknown_8375E20, - Unknown_8375E28, - Unknown_8375E34, - Unknown_8375E40, - Unknown_8375E4C, - Unknown_8375E58, - Unknown_8375E64, - Unknown_8375E70, - Unknown_8375E7C, - Unknown_8375EB8, - Unknown_8375EC4, - Unknown_8375ED0, - Unknown_8375EDC, - Unknown_8375EE8, - Unknown_8375EF4, - Unknown_8375F00, - Unknown_8375F0C, - Unknown_8375F18, - Unknown_8375F24, - Unknown_8375F30, - Unknown_8375F3C, - Unknown_8375F48, - Unknown_8375F54, - Unknown_8375F60, - Unknown_8375F6C, - Unknown_8375F78, - Unknown_8375F84, - Unknown_8375F90, - Unknown_8375F9C, - Unknown_8375FA8, - Unknown_8375FB4, - Unknown_8375FC0, - Unknown_8375FCC, - Unknown_8375FD8, - Unknown_8375FE4, - Unknown_8375FF0, - Unknown_8375FFC -}; - - -u8 (*const Unknown_83759A0[])(struct MapObject *, struct Sprite *) = { - sub_8060CE0, - sub_8063474 -}; - -u8 (*const Unknown_83759A8[])(struct MapObject *, struct Sprite *) = { - sub_8060CF0, - sub_8063474 -}; - -u8 (*const Unknown_83759B0[])(struct MapObject *, struct Sprite *) = { - sub_8060D00, - sub_8063474 -}; - -u8 (*const Unknown_83759B8[])(struct MapObject *, struct Sprite *) = { - sub_8060D10, - sub_8063474 -}; - -u8 (*const gUnknown_083759C0[])(u8) = { - get_go_image_anim_num, - get_go_fast_image_anim_num, - get_go_fast_image_anim_num, - get_go_faster_image_anim_num, - sub_805FD78 -}; - -u8 (*const Unknown_83759D4[])(struct MapObject *, struct Sprite *) = { - sub_8060F3C, - sub_8060F5C, - sub_8063474 -}; - -u8 (*const Unknown_83759E0[])(struct MapObject *, struct Sprite *) = { - sub_8060F7C, - sub_8060F9C, - sub_8063474 -}; - -u8 (*const Unknown_83759EC[])(struct MapObject *, struct Sprite *) = { - sub_8060FBC, - sub_8060FDC, - sub_8063474 -}; - -u8 (*const Unknown_83759F8[])(struct MapObject *, struct Sprite *) = { - sub_8060FFC, - sub_806101C, - sub_8063474 -}; - -u8 (*const Unknown_8375A04[])(struct MapObject *, struct Sprite *) = { - sub_806103C, - sub_806105C, - sub_8063474 -}; - -u8 (*const Unknown_8375A10[])(struct MapObject *, struct Sprite *) = { - sub_806107C, - sub_806109C, - sub_8063474 -}; - -u8 (*const Unknown_8375A1C[])(struct MapObject *, struct Sprite *) = { - sub_80610BC, - sub_80610DC, - sub_8063474 -}; - -u8 (*const Unknown_8375A28[])(struct MapObject *, struct Sprite *) = { - sub_80610FC, - sub_806111C, - sub_8063474 -}; - -const s16 gUnknown_08375A34[] = {0, 1, 1}; -const s16 gUnknown_08375A3A[] = {0, 0, 1}; - -u8 (*const Unknown_8375A40[])(struct MapObject *, struct Sprite *) = { - sub_80613A8, - sub_80613D4, - sub_8063474 -}; - -u8 (*const Unknown_8375A4C[])(struct MapObject *, struct Sprite *) = { - sub_8061400, - sub_806142C, - sub_8063474 -}; - -u8 (*const Unknown_8375A58[])(struct MapObject *, struct Sprite *) = { - sub_8061458, - sub_8061484, - sub_8063474 -}; - -u8 (*const Unknown_8375A64[])(struct MapObject *, struct Sprite *) = { - sub_80614B0, - sub_80614DC, - sub_8063474 -}; - -u8 (*const Unknown_8375A70[])(struct MapObject *, struct Sprite *) = { - sub_806152C, - sub_8061510, - sub_8063470 -}; - -u8 (*const Unknown_8375A7C[])(struct MapObject *, struct Sprite *) = { - sub_806154C, - sub_8061510, - sub_8063470 -}; - -u8 (*const Unknown_8375A88[])(struct MapObject *, struct Sprite *) = { - sub_806156C, - sub_8061510, - sub_8063470 -}; - -u8 (*const Unknown_8375A94[])(struct MapObject *, struct Sprite *) = { - sub_806158C, - sub_8061510, - sub_8063470 -}; - -u8 (*const Unknown_8375AA0[])(struct MapObject *, struct Sprite *) = { - sub_80615AC, - sub_8061510, - sub_8063470 -}; - -u8 (*const Unknown_8375AAC[])(struct MapObject *, struct Sprite *) = { - sub_80615CC, - sub_80615EC, - sub_8063474 -}; - -u8 (*const Unknown_8375AB8[])(struct MapObject *, struct Sprite *) = { - sub_806160C, - sub_806162C, - sub_8063474 -}; - -u8 (*const Unknown_8375AC4[])(struct MapObject *, struct Sprite *) = { - sub_806164C, - sub_806166C, - sub_8063474 -}; - -u8 (*const Unknown_8375AD0[])(struct MapObject *, struct Sprite *) = { - sub_806168C, - sub_80616AC, - sub_8063474 -}; - -u8 (*const Unknown_8375ADC[])(struct MapObject *, struct Sprite *) = { - sub_8061778, - sub_806173C, - sub_8063474 -}; - -u8 (*const Unknown_8375AE8[])(struct MapObject *, struct Sprite *) = { - sub_80617B0, - sub_806173C, - sub_8063474 -}; - -u8 (*const Unknown_8375AF4[])(struct MapObject *, struct Sprite *) = { - sub_80617E8, - sub_806173C, - sub_8063474 -}; - -u8 (*const Unknown_8375B00[])(struct MapObject *, struct Sprite *) = { - sub_8061820, - sub_806173C, - sub_8063474 -}; - -u8 (*const Unknown_8375B0C[])(struct MapObject *, struct Sprite *) = { - sub_8061858, - sub_8061714, - sub_8063474 -}; - -u8 (*const Unknown_8375B18[])(struct MapObject *, struct Sprite *) = { - sub_8061890, - sub_8061714, - sub_8063474 -}; - -u8 (*const Unknown_8375B24[])(struct MapObject *, struct Sprite *) = { - sub_80618C8, - sub_8061714, - sub_8063474 -}; - -u8 (*const Unknown_8375B30[])(struct MapObject *, struct Sprite *) = { - sub_8061900, - sub_8061714, - sub_8063474 -}; - -u8 (*const Unknown_8375B3C[])(struct MapObject *, struct Sprite *) = { - sub_8061938, - sub_8061714, - sub_8063474 -}; - -u8 (*const Unknown_8375B48[])(struct MapObject *, struct Sprite *) = { - sub_8061970, - sub_8061714, - sub_8063474 -}; - -u8 (*const Unknown_8375B54[])(struct MapObject *, struct Sprite *) = { - sub_80619A8, - sub_8061714, - sub_8063474 -}; - -u8 (*const Unknown_8375B60[])(struct MapObject *, struct Sprite *) = { - sub_80619E0, - sub_8061714, - sub_8063474 -}; - -u8 (*const Unknown_8375B6C[])(struct MapObject *, struct Sprite *) = { - sub_8061A18, - sub_8061714, - sub_8063474 -}; - -u8 (*const Unknown_8375B78[])(struct MapObject *, struct Sprite *) = { - sub_8061A50, - sub_8061714, - sub_8063474 -}; - -u8 (*const Unknown_8375B84[])(struct MapObject *, struct Sprite *) = { - sub_8061A88, - sub_8061714, - sub_8063474 -}; - -u8 (*const Unknown_8375B90[])(struct MapObject *, struct Sprite *) = { - sub_8061AC0, - sub_8061714, - sub_8063474 -}; - -u8 (*const Unknown_8375B9C[])(struct MapObject *, struct Sprite *) = { - sub_8061AF8, - sub_8061B18, - sub_8063474 -}; - -u8 (*const Unknown_8375BA8[])(struct MapObject *, struct Sprite *) = { - sub_8061B38, - sub_8061B58, - sub_8063474 -}; - -u8 (*const Unknown_8375BB4[])(struct MapObject *, struct Sprite *) = { - sub_8061B78, - sub_8061B98, - sub_8063474 -}; - -u8 (*const Unknown_8375BC0[])(struct MapObject *, struct Sprite *) = { - sub_8061BB8, - sub_8061BD8, - sub_8063474 -}; - -u8 (*const Unknown_8375BCC[])(struct MapObject *, struct Sprite *) = { - sub_8061BF8, - sub_8061C18, - sub_8063474 -}; - -u8 (*const Unknown_8375BD8[])(struct MapObject *, struct Sprite *) = { - sub_8061C38, - sub_8061C58, - sub_8063474 -}; - -u8 (*const Unknown_8375BE4[])(struct MapObject *, struct Sprite *) = { - sub_8061C78, - sub_8061C98, - sub_8063474 -}; - -u8 (*const Unknown_8375BF0[])(struct MapObject *, struct Sprite *) = { - sub_8061CB8, - sub_8061CD8, - sub_8063474 -}; - -u8 (*const Unknown_8375BFC[])(struct MapObject *, struct Sprite *) = { - sub_8061CF8, - sub_8061D18, - sub_8063474 -}; - -u8 (*const Unknown_8375C08[])(struct MapObject *, struct Sprite *) = { - sub_8061D38, - sub_8061D58, - sub_8063474 -}; - -u8 (*const Unknown_8375C14[])(struct MapObject *, struct Sprite *) = { - sub_8061D78, - sub_8061D98, - sub_8063474 -}; - -u8 (*const Unknown_8375C20[])(struct MapObject *, struct Sprite *) = { - sub_8061DB8, - sub_8061DD8, - sub_8063474 -}; - -u8 (*const Unknown_8375C2C[])(struct MapObject *, struct Sprite *) = { - do_run_south_anim, - sub_8061E18, - sub_8063474 -}; - -u8 (*const Unknown_8375C38[])(struct MapObject *, struct Sprite *) = { - do_run_north_anim, - sub_8061E58, - sub_8063474 -}; - -u8 (*const Unknown_8375C44[])(struct MapObject *, struct Sprite *) = { - do_run_west_anim, - sub_8061E98, - sub_8063474 -}; - -u8 (*const Unknown_8375C50[])(struct MapObject *, struct Sprite *) = { - do_run_east_anim, - sub_8061ED8, - sub_8063474 -}; - -u8 (*const Unknown_8375C5C[])(struct MapObject *, struct Sprite *) = { - sub_8061F24, - sub_8061F3C, - sub_8063474 -}; - -u8 (*const Unknown_8375C68[])(struct MapObject *, struct Sprite *) = { - sub_8061F90, - sub_8061FB0, - sub_8063474 -}; - -u8 (*const Unknown_8375C74[])(struct MapObject *, struct Sprite *) = { - sub_8061FD8, - sub_8061FF8, - sub_8063474 -}; - -u8 (*const Unknown_8375C80[])(struct MapObject *, struct Sprite *) = { - sub_8062020, - sub_8062040, - sub_8063474 -}; - -u8 (*const Unknown_8375C8C[])(struct MapObject *, struct Sprite *) = { - sub_8062068, - sub_8062088, - sub_8063474 -}; - -u8 (*const Unknown_8375C98[])(struct MapObject *, struct Sprite *) = { - sub_80620B0, - sub_8063474 -}; - -u8 (*const Unknown_8375CA0[])(struct MapObject *, struct Sprite *) = { - sub_806210C, - sub_8063474 -}; - -u8 (*const Unknown_8375CA8[])(struct MapObject *, struct Sprite *) = { - sub_8062170, - sub_8063474 -}; - -u8 (*const Unknown_8375CB0[])(struct MapObject *, struct Sprite *) = { - sub_8062180, - sub_8063474 -}; - -u8 (*const Unknown_8375CB8[])(struct MapObject *, struct Sprite *) = { - sub_8062190, - sub_80621BC, - sub_8063474 -}; - -u8 (*const Unknown_8375CC4[])(struct MapObject *, struct Sprite *) = { - sub_80621E8, - sub_8062214, - sub_8063474 -}; - -u8 (*const Unknown_8375CD0[])(struct MapObject *, struct Sprite *) = { - sub_8062240, - sub_806226C, - sub_8063474 -}; - -u8 (*const Unknown_8375CDC[])(struct MapObject *, struct Sprite *) = { - sub_8062298, - sub_80622C4, - sub_8063474 -}; - -u8 (*const Unknown_8375CE8[])(struct MapObject *, struct Sprite *) = { - sub_80622F0, - sub_806231C, - sub_8063474 -}; - -u8 (*const Unknown_8375CF4[])(struct MapObject *, struct Sprite *) = { - sub_8062348, - sub_8062374, - sub_8063474 -}; - -u8 (*const Unknown_8375D00[])(struct MapObject *, struct Sprite *) = { - sub_80623A0, - sub_80623CC, - sub_8063474 -}; - -u8 (*const Unknown_8375D0C[])(struct MapObject *, struct Sprite *) = { - sub_80623F8, - sub_8062424, - sub_8063474 -}; - -u8 (*const Unknown_8375D18[])(struct MapObject *, struct Sprite *) = { - sub_8062450, - sub_806247C, - sub_8063474 -}; - -u8 (*const Unknown_8375D24[])(struct MapObject *, struct Sprite *) = { - sub_80624A8, - sub_80624D4, - sub_8063474 -}; - -u8 (*const Unknown_8375D30[])(struct MapObject *, struct Sprite *) = { - sub_8062500, - sub_806252C, - sub_8063474 -}; - -u8 (*const Unknown_8375D3C[])(struct MapObject *, struct Sprite *) = { - sub_8062558, - sub_8062584, - sub_8063474 -}; - -u8 (*const Unknown_8375D48[])(struct MapObject *, struct Sprite *) = { - sub_80625B0, - sub_8063474 -}; - -u8 (*const Unknown_8375D50[])(struct MapObject *, struct Sprite *) = { - sub_80625C8, - sub_8061F3C, - sub_8063474 -}; - -u8 (*const Unknown_8375D5C[])(struct MapObject *, struct Sprite *) = { - sub_80625D8, - sub_8063470 -}; - -u8 (*const Unknown_8375D64[])(struct MapObject *, struct Sprite *) = { - sub_80625E8, - sub_8063470 -}; - -u8 (*const Unknown_8375D6C[])(struct MapObject *, struct Sprite *) = { - sub_80625F8, - sub_8063470 -}; - -u8 (*const Unknown_8375D74[])(struct MapObject *, struct Sprite *) = { - sub_8062608, - sub_8063470 -}; - -u8 (*const Unknown_8375D7C[])(struct MapObject *, struct Sprite *) = { - sub_8062634, - sub_8063470 -}; - -u8 (*const Unknown_8375D84[])(struct MapObject *, struct Sprite *) = { - sub_8062644, - sub_8063470 -}; - -u8 (*const Unknown_8375D8C[])(struct MapObject *, struct Sprite *) = { - do_exclamation_mark_bubble_1, - sub_8063470 -}; - -u8 (*const Unknown_8375D94[])(struct MapObject *, struct Sprite *) = { - do_exclamation_mark_bubble_2, - sub_8063470 -}; - -u8 (*const Unknown_8375D9C[])(struct MapObject *, struct Sprite *) = { - do_heart_bubble, - sub_8063470 -}; - -u8 (*const Unknown_8375DA4[])(struct MapObject *, struct Sprite *) = { - sub_80626C0, - sub_8062704, - sub_8063470 -}; - -u8 (*const Unknown_8375DB0[])(struct MapObject *, struct Sprite *) = { - sub_8062724, - sub_8062740, - sub_8062764, - sub_8063470 -}; - -u8 (*const Unknown_8375DC0[])(struct MapObject *, struct Sprite *) = { - sub_80627A0, - sub_80627BC, - sub_80627E0, - sub_8063470 -}; - -u8 (*const Unknown_8375DD0[])(struct MapObject *, struct Sprite *) = { - sub_806281C, - sub_8063470 -}; - -u8 (*const Unknown_8375DD8[])(struct MapObject *, struct Sprite *) = { - sub_806282C, - sub_8063470 -}; - -u8 (*const Unknown_8375DE0[])(struct MapObject *, struct Sprite *) = { - sub_806283C, - sub_8063470 -}; - -u8 (*const Unknown_8375DE8[])(struct MapObject *, struct Sprite *) = { - sub_806286C, - sub_8063470 -}; - -u8 (*const Unknown_8375DF0[])(struct MapObject *, struct Sprite *) = { - sub_806289C, - sub_80628D0, - sub_8063474 -}; - -u8 (*const Unknown_8375DFC[])(struct MapObject *, struct Sprite *) = { - sub_80628FC, - sub_8062930, - sub_8063474 -}; - -u8 (*const Unknown_8375E08[])(struct MapObject *, struct Sprite *) = { - sub_806299C, - sub_8063474 -}; - -u8 (*const Unknown_8375E10[])(struct MapObject *, struct Sprite *) = { - sub_80629AC, - sub_8063474 -}; - -u8 (*const Unknown_8375E18[])(struct MapObject *, struct Sprite *) = { - sub_80629BC, - sub_8063474 -}; - -u8 (*const Unknown_8375E20[])(struct MapObject *, struct Sprite *) = { - sub_80629CC, - sub_8063474 -}; - -u8 (*const Unknown_8375E28[])(struct MapObject *, struct Sprite *) = { - sub_80629DC, - sub_8061F3C, - sub_8063474 -}; - -u8 (*const Unknown_8375E34[])(struct MapObject *, struct Sprite *) = { - sub_8062A00, - sub_8061F3C, - sub_8063474 -}; - -u8 (*const Unknown_8375E40[])(struct MapObject *, struct Sprite *) = { - sub_8062A24, - sub_8061F3C, - sub_8063474 -}; - -u8 (*const Unknown_8375E4C[])(struct MapObject *, struct Sprite *) = { - sub_8062A48, - sub_8061F3C, - sub_8063474 -}; - -u8 (*const Unknown_8375E58[])(struct MapObject *, struct Sprite *) = { - sub_8062A6C, - sub_8061F3C, - sub_8063474 -}; - -u8 (*const Unknown_8375E64[])(struct MapObject *, struct Sprite *) = { - sub_8062A90, - sub_8061F3C, - sub_8063474 -}; - -u8 (*const Unknown_8375E70[])(struct MapObject *, struct Sprite *) = { - sub_8062AB4, - sub_8061F3C, - sub_8063474 -}; - -u8 (*const Unknown_8375E7C[])(struct MapObject *, struct Sprite *) = { - sub_8062AD8, - sub_8061F3C, - sub_8063474, - sub_8062AFC, - sub_8061F3C, - sub_8063474, - sub_8062B20, - sub_8061F3C, - sub_8063474, - sub_8062B44, - sub_8061F3C, - sub_8063474, - sub_8062B68, - sub_8061F3C, - sub_8063474 -}; - -u8 (*const Unknown_8375EB8[])(struct MapObject *, struct Sprite *) = { - sub_8062BD0, - sub_8062BFC, - sub_8063474 -}; - -u8 (*const Unknown_8375EC4[])(struct MapObject *, struct Sprite *) = { - sub_8062C28, - sub_8062C54, - sub_8063474 -}; - -u8 (*const Unknown_8375ED0[])(struct MapObject *, struct Sprite *) = { - sub_8062C80, - sub_8062CAC, - sub_8063474 -}; - -u8 (*const Unknown_8375EDC[])(struct MapObject *, struct Sprite *) = { - sub_8062CD8, - sub_8062D04, - sub_8063474 -}; - -u8 (*const Unknown_8375EE8[])(struct MapObject *, struct Sprite *) = { - sub_8062D30, - sub_8062D5C, - sub_8063474 -}; - -u8 (*const Unknown_8375EF4[])(struct MapObject *, struct Sprite *) = { - sub_8062D88, - sub_8062DB4, - sub_8063474 -}; - -u8 (*const Unknown_8375F00[])(struct MapObject *, struct Sprite *) = { - sub_8062DE0, - sub_8062E0C, - sub_8063474 -}; - -u8 (*const Unknown_8375F0C[])(struct MapObject *, struct Sprite *) = { - sub_8062E38, - sub_8062E64, - sub_8063474 -}; - -u8 (*const Unknown_8375F18[])(struct MapObject *, struct Sprite *) = { - sub_8062E90, - sub_8062EBC, - sub_8063474 -}; - -u8 (*const Unknown_8375F24[])(struct MapObject *, struct Sprite *) = { - sub_8062EE8, - sub_8062F14, - sub_8063474 -}; - -u8 (*const Unknown_8375F30[])(struct MapObject *, struct Sprite *) = { - sub_8062F40, - sub_8062F6C, - sub_8063474 -}; - -u8 (*const Unknown_8375F3C[])(struct MapObject *, struct Sprite *) = { - sub_8062F98, - sub_8062FC4, - sub_8063474 -}; - -u8 (*const Unknown_8375F48[])(struct MapObject *, struct Sprite *) = { - sub_8062FF0, - sub_8061714, - sub_8063474 -}; - -u8 (*const Unknown_8375F54[])(struct MapObject *, struct Sprite *) = { - sub_8063028, - sub_8061714, - sub_8063474 -}; - -u8 (*const Unknown_8375F60[])(struct MapObject *, struct Sprite *) = { - sub_8063060, - sub_8061714, - sub_8063474 -}; - -u8 (*const Unknown_8375F6C[])(struct MapObject *, struct Sprite *) = { - sub_8063098, - sub_8061714, - sub_8063474 -}; - -u8 (*const Unknown_8375F78[])(struct MapObject *, struct Sprite *) = { - sub_8063108, - sub_8063128, - sub_8063474 -}; - -u8 (*const Unknown_8375F84[])(struct MapObject *, struct Sprite *) = { - sub_8063148, - sub_8063168, - sub_8063474 -}; - -u8 (*const Unknown_8375F90[])(struct MapObject *, struct Sprite *) = { - sub_8063188, - sub_80631A8, - sub_8063474 -}; - -u8 (*const Unknown_8375F9C[])(struct MapObject *, struct Sprite *) = { - sub_80631C8, - sub_80631E8, - sub_8063474 -}; - -u8 (*const Unknown_8375FA8[])(struct MapObject *, struct Sprite *) = { - sub_8063238, - sub_8063258, - sub_8063474 -}; - -u8 (*const Unknown_8375FB4[])(struct MapObject *, struct Sprite *) = { - sub_8063278, - sub_8063298, - sub_8063474 -}; - -u8 (*const Unknown_8375FC0[])(struct MapObject *, struct Sprite *) = { - sub_80632B8, - sub_80632D8, - sub_8063474 -}; - -u8 (*const Unknown_8375FCC[])(struct MapObject *, struct Sprite *) = { - sub_80632F8, - sub_8063318, - sub_8063474 -}; - -u8 (*const Unknown_8375FD8[])(struct MapObject *, struct Sprite *) = { - sub_8063370, - sub_8063390, - sub_8063474 -}; - -u8 (*const Unknown_8375FE4[])(struct MapObject *, struct Sprite *) = { - sub_80633B0, - sub_80633D0, - sub_8063474 -}; - -u8 (*const Unknown_8375FF0[])(struct MapObject *, struct Sprite *) = { - sub_80633F0, - sub_8063410, - sub_8063474 -}; - -u8 (*const Unknown_8375FFC[])(struct MapObject *, struct Sprite *) = { - sub_8063430, - sub_8063450, - sub_8063474 -}; - -#endif //POKERUBY_ANIM_FUNC_PTRS_H diff --git a/include/data/field_map_obj/base_oam.h b/include/data/field_map_obj/base_oam.h deleted file mode 100644 index 8595f97e7..000000000 --- a/include/data/field_map_obj/base_oam.h +++ /dev/null @@ -1,56 +0,0 @@ -// -// Created by scott on 6/17/2017. -// - -#ifndef POKERUBY_BASE_OAM_H -#define POKERUBY_BASE_OAM_H - -const struct OamData gFieldOamData_8x8 = { - .shape = 0, - .size = 0, - .priority = 2 -}; - -const struct OamData gFieldOamData_16x8 = { - .shape = 1, - .size = 0, - .priority = 2 -}; - -const struct OamData gFieldOamData_16x16 = { - .shape = 0, - .size = 1, - .priority = 2 -}; - -const struct OamData gFieldOamData_32x8 = { - .shape = 1, - .size = 1, - .priority = 2 -}; - -const struct OamData gFieldOamData_64x32 = { - .shape = 1, - .size = 3, - .priority = 2 -}; - -const struct OamData gFieldOamData_16x32 = { - .shape = 2, - .size = 2, - .priority = 2 -}; - -const struct OamData gFieldOamData_32x32 = { - .shape = 0, - .size = 2, - .priority = 2 -}; - -const struct OamData gFieldOamData_64x64 = { - .shape = 0, - .size = 3, - .priority = 2 -}; - -#endif //POKERUBY_BASE_OAM_H diff --git a/include/data/field_map_obj/berry_tree_graphics_tables.h b/include/data/field_map_obj/berry_tree_graphics_tables.h deleted file mode 100644 index 53a0fd482..000000000 --- a/include/data/field_map_obj/berry_tree_graphics_tables.h +++ /dev/null @@ -1,573 +0,0 @@ -// -// Created by scott on 6/17/2017. -// - -#ifndef POKERUBY_BERRY_TREE_GRAPHICS_TABLES_H -#define POKERUBY_BERRY_TREE_GRAPHICS_TABLES_H - -const struct SpriteFrameImage gMapObjectPicTable_PechaBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_PechaBerryTree_0), - obj_frame_tiles(gMapObjectPic_PechaBerryTree_1), - obj_frame_tiles(gMapObjectPic_PechaBerryTree_2), - obj_frame_tiles(gMapObjectPic_PechaBerryTree_3), - obj_frame_tiles(gMapObjectPic_PechaBerryTree_4), - obj_frame_tiles(gMapObjectPic_PechaBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Pecha[] = {3, 4, 4, 4, 4}; - -const struct SpriteFrameImage gMapObjectPicTable_KelpsyBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_KelpsyBerryTree_0), - obj_frame_tiles(gMapObjectPic_KelpsyBerryTree_1), - obj_frame_tiles(gMapObjectPic_KelpsyBerryTree_2), - obj_frame_tiles(gMapObjectPic_KelpsyBerryTree_3), - obj_frame_tiles(gMapObjectPic_KelpsyBerryTree_4), - obj_frame_tiles(gMapObjectPic_KelpsyBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Kelpsy[] = {3, 4, 2, 2, 2}; - -const struct SpriteFrameImage gMapObjectPicTable_WepearBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_WepearBerryTree_0), - obj_frame_tiles(gMapObjectPic_WepearBerryTree_1), - obj_frame_tiles(gMapObjectPic_WepearBerryTree_2), - obj_frame_tiles(gMapObjectPic_WepearBerryTree_3), - obj_frame_tiles(gMapObjectPic_WepearBerryTree_4), - obj_frame_tiles(gMapObjectPic_WepearBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Wepear[] = {3, 4, 2, 2, 2}; - -const struct SpriteFrameImage gMapObjectPicTable_IapapaBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_IapapaBerryTree_0), - obj_frame_tiles(gMapObjectPic_IapapaBerryTree_1), - obj_frame_tiles(gMapObjectPic_IapapaBerryTree_2), - obj_frame_tiles(gMapObjectPic_IapapaBerryTree_3), - obj_frame_tiles(gMapObjectPic_IapapaBerryTree_4), - obj_frame_tiles(gMapObjectPic_IapapaBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Iapapa[] = {3, 4, 3, 3, 3}; - -const struct SpriteFrameImage gMapObjectPicTable_CheriBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_CheriBerryTree_0), - obj_frame_tiles(gMapObjectPic_CheriBerryTree_1), - obj_frame_tiles(gMapObjectPic_CheriBerryTree_2), - obj_frame_tiles(gMapObjectPic_CheriBerryTree_3), - obj_frame_tiles(gMapObjectPic_CheriBerryTree_4), - obj_frame_tiles(gMapObjectPic_CheriBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Cheri[] = {3, 4, 4, 4, 4}; - -const struct SpriteFrameImage gMapObjectPicTable_FigyBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_FigyBerryTree_0), - obj_frame_tiles(gMapObjectPic_FigyBerryTree_1), - obj_frame_tiles(gMapObjectPic_FigyBerryTree_2), - obj_frame_tiles(gMapObjectPic_FigyBerryTree_3), - obj_frame_tiles(gMapObjectPic_FigyBerryTree_4), - obj_frame_tiles(gMapObjectPic_FigyBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Figy[] = {3, 4, 3, 3, 3}; - -const struct SpriteFrameImage gMapObjectPicTable_MagoBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_MagoBerryTree_0), - obj_frame_tiles(gMapObjectPic_MagoBerryTree_1), - obj_frame_tiles(gMapObjectPic_MagoBerryTree_2), - obj_frame_tiles(gMapObjectPic_MagoBerryTree_3), - obj_frame_tiles(gMapObjectPic_MagoBerryTree_4), - obj_frame_tiles(gMapObjectPic_MagoBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Mago[] = {3, 4, 3, 3, 3}; - -const struct SpriteFrameImage gMapObjectPicTable_LumBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_LumBerryTree_0), - obj_frame_tiles(gMapObjectPic_LumBerryTree_1), - obj_frame_tiles(gMapObjectPic_LumBerryTree_2), - obj_frame_tiles(gMapObjectPic_LumBerryTree_3), - obj_frame_tiles(gMapObjectPic_LumBerryTree_4), - obj_frame_tiles(gMapObjectPic_LumBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Lum[] = {3, 4, 4, 4, 4}; - -const struct SpriteFrameImage gMapObjectPicTable_RazzBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_RazzBerryTree_0), - obj_frame_tiles(gMapObjectPic_RazzBerryTree_1), - obj_frame_tiles(gMapObjectPic_RazzBerryTree_2), - obj_frame_tiles(gMapObjectPic_RazzBerryTree_3), - obj_frame_tiles(gMapObjectPic_RazzBerryTree_4), - obj_frame_tiles(gMapObjectPic_RazzBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Razz[] = {3, 4, 4, 4, 4}; - -const struct SpriteFrameImage gMapObjectPicTable_GrepaBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_GrepaBerryTree_0), - obj_frame_tiles(gMapObjectPic_GrepaBerryTree_1), - obj_frame_tiles(gMapObjectPic_GrepaBerryTree_2), - obj_frame_tiles(gMapObjectPic_GrepaBerryTree_3), - obj_frame_tiles(gMapObjectPic_GrepaBerryTree_4), - obj_frame_tiles(gMapObjectPic_GrepaBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Grepa[] = {3, 4, 3, 3, 3}; - -const struct SpriteFrameImage gMapObjectPicTable_RabutaBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_RabutaBerryTree_0), - obj_frame_tiles(gMapObjectPic_RabutaBerryTree_1), - obj_frame_tiles(gMapObjectPic_RabutaBerryTree_2), - obj_frame_tiles(gMapObjectPic_RabutaBerryTree_3), - obj_frame_tiles(gMapObjectPic_RabutaBerryTree_4), - obj_frame_tiles(gMapObjectPic_RabutaBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Rabuta[] = {3, 4, 4, 4, 4}; - -const struct SpriteFrameImage gMapObjectPicTable_NomelBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_NomelBerryTree_0), - obj_frame_tiles(gMapObjectPic_NomelBerryTree_1), - obj_frame_tiles(gMapObjectPic_NomelBerryTree_2), - obj_frame_tiles(gMapObjectPic_NomelBerryTree_3), - obj_frame_tiles(gMapObjectPic_NomelBerryTree_4), - obj_frame_tiles(gMapObjectPic_NomelBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Nomel[] = {3, 4, 3, 3, 3}; - -const struct SpriteFrameImage gMapObjectPicTable_LeppaBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_LeppaBerryTree_0), - obj_frame_tiles(gMapObjectPic_LeppaBerryTree_1), - obj_frame_tiles(gMapObjectPic_LeppaBerryTree_2), - obj_frame_tiles(gMapObjectPic_LeppaBerryTree_3), - obj_frame_tiles(gMapObjectPic_LeppaBerryTree_4), - obj_frame_tiles(gMapObjectPic_LeppaBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Leppa[] = {3, 4, 3, 3, 3}; - -const struct SpriteFrameImage gMapObjectPicTable_LiechiBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_LiechiBerryTree_0), - obj_frame_tiles(gMapObjectPic_LiechiBerryTree_1), - obj_frame_tiles(gMapObjectPic_LiechiBerryTree_2), - obj_frame_tiles(gMapObjectPic_LiechiBerryTree_3), - obj_frame_tiles(gMapObjectPic_LiechiBerryTree_4), - obj_frame_tiles(gMapObjectPic_LiechiBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Liechi[] = {3, 4, 4, 4, 4}; - -const struct SpriteFrameImage gMapObjectPicTable_HondewBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_HondewBerryTree_0), - obj_frame_tiles(gMapObjectPic_HondewBerryTree_1), - obj_frame_tiles(gMapObjectPic_HondewBerryTree_2), - obj_frame_tiles(gMapObjectPic_HondewBerryTree_3), - obj_frame_tiles(gMapObjectPic_HondewBerryTree_4), - obj_frame_tiles(gMapObjectPic_HondewBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Hondew[] = {3, 4, 5, 5, 5}; - -const struct SpriteFrameImage gMapObjectPicTable_AguavBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_AguavBerryTree_0), - obj_frame_tiles(gMapObjectPic_AguavBerryTree_1), - obj_frame_tiles(gMapObjectPic_AguavBerryTree_2), - obj_frame_tiles(gMapObjectPic_AguavBerryTree_3), - obj_frame_tiles(gMapObjectPic_AguavBerryTree_4), - obj_frame_tiles(gMapObjectPic_AguavBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Aguav[] = {3, 4, 4, 4, 4}; - -const struct SpriteFrameImage gMapObjectPicTable_WikiBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_WikiBerryTree_0), - obj_frame_tiles(gMapObjectPic_WikiBerryTree_1), - obj_frame_tiles(gMapObjectPic_WikiBerryTree_2), - obj_frame_tiles(gMapObjectPic_WikiBerryTree_3), - obj_frame_tiles(gMapObjectPic_WikiBerryTree_4), - obj_frame_tiles(gMapObjectPic_WikiBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Wiki[] = {3, 4, 3, 3, 3}; - -const struct SpriteFrameImage gMapObjectPicTable_PomegBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_PomegBerryTree_0), - obj_frame_tiles(gMapObjectPic_PomegBerryTree_1), - obj_frame_tiles(gMapObjectPic_PomegBerryTree_2), - obj_frame_tiles(gMapObjectPic_PomegBerryTree_3), - obj_frame_tiles(gMapObjectPic_PomegBerryTree_4), - obj_frame_tiles(gMapObjectPic_PomegBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Pomeg[] = {3, 4, 3, 3, 3}; - -const struct SpriteFrameImage gMapObjectPicTable_RawstBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_RawstBerryTree_0), - obj_frame_tiles(gMapObjectPic_RawstBerryTree_1), - obj_frame_tiles(gMapObjectPic_RawstBerryTree_2), - obj_frame_tiles(gMapObjectPic_RawstBerryTree_3), - obj_frame_tiles(gMapObjectPic_RawstBerryTree_4), - obj_frame_tiles(gMapObjectPic_RawstBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Rawst[] = {3, 4, 4, 4, 4}; - -const struct SpriteFrameImage gMapObjectPicTable_SpelonBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_SpelonBerryTree_0), - obj_frame_tiles(gMapObjectPic_SpelonBerryTree_1), - obj_frame_tiles(gMapObjectPic_SpelonBerryTree_2), - obj_frame_tiles(gMapObjectPic_SpelonBerryTree_3), - obj_frame_tiles(gMapObjectPic_SpelonBerryTree_4), - obj_frame_tiles(gMapObjectPic_SpelonBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Spelon[] = {3, 4, 3, 3, 3}; - -const struct SpriteFrameImage gMapObjectPicTable_ChestoBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_ChestoBerryTree_0), - obj_frame_tiles(gMapObjectPic_ChestoBerryTree_1), - obj_frame_tiles(gMapObjectPic_ChestoBerryTree_2), - obj_frame_tiles(gMapObjectPic_ChestoBerryTree_3), - obj_frame_tiles(gMapObjectPic_ChestoBerryTree_4), - obj_frame_tiles(gMapObjectPic_ChestoBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Chesto[] = {3, 4, 2, 2, 2}; - -const struct SpriteFrameImage gMapObjectPicTable_OranBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_OranBerryTree_0), - obj_frame_tiles(gMapObjectPic_OranBerryTree_1), - obj_frame_tiles(gMapObjectPic_OranBerryTree_2), - obj_frame_tiles(gMapObjectPic_OranBerryTree_3), - obj_frame_tiles(gMapObjectPic_OranBerryTree_4), - obj_frame_tiles(gMapObjectPic_OranBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Oran[] = {3, 4, 2, 2, 2}; - -const struct SpriteFrameImage gMapObjectPicTable_PersimBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_PersimBerryTree_0), - obj_frame_tiles(gMapObjectPic_PersimBerryTree_1), - obj_frame_tiles(gMapObjectPic_PersimBerryTree_2), - obj_frame_tiles(gMapObjectPic_PersimBerryTree_3), - obj_frame_tiles(gMapObjectPic_PersimBerryTree_4), - obj_frame_tiles(gMapObjectPic_PersimBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Persim[] = {3, 4, 2, 2, 2}; - -const struct SpriteFrameImage gMapObjectPicTable_SitrusBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_SitrusBerryTree_0), - obj_frame_tiles(gMapObjectPic_SitrusBerryTree_1), - obj_frame_tiles(gMapObjectPic_SitrusBerryTree_2), - obj_frame_tiles(gMapObjectPic_SitrusBerryTree_3), - obj_frame_tiles(gMapObjectPic_SitrusBerryTree_4), - obj_frame_tiles(gMapObjectPic_SitrusBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Sitrus[] = {3, 4, 4, 4, 4}; - -const struct SpriteFrameImage gMapObjectPicTable_AspearBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_AspearBerryTree_0), - obj_frame_tiles(gMapObjectPic_AspearBerryTree_1), - obj_frame_tiles(gMapObjectPic_AspearBerryTree_2), - obj_frame_tiles(gMapObjectPic_AspearBerryTree_3), - obj_frame_tiles(gMapObjectPic_AspearBerryTree_4), - obj_frame_tiles(gMapObjectPic_AspearBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Aspear[] = {3, 4, 3, 3, 3}; - -const struct SpriteFrameImage gMapObjectPicTable_PamtreBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_PamtreBerryTree_0), - obj_frame_tiles(gMapObjectPic_PamtreBerryTree_1), - obj_frame_tiles(gMapObjectPic_PamtreBerryTree_2), - obj_frame_tiles(gMapObjectPic_PamtreBerryTree_3), - obj_frame_tiles(gMapObjectPic_PamtreBerryTree_4), - obj_frame_tiles(gMapObjectPic_PamtreBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Pamtre[] = {3, 4, 2, 2, 2}; - -const struct SpriteFrameImage gMapObjectPicTable_CornnBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_CornnBerryTree_0), - obj_frame_tiles(gMapObjectPic_CornnBerryTree_1), - obj_frame_tiles(gMapObjectPic_CornnBerryTree_2), - obj_frame_tiles(gMapObjectPic_CornnBerryTree_3), - obj_frame_tiles(gMapObjectPic_CornnBerryTree_4), - obj_frame_tiles(gMapObjectPic_CornnBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Cornn[] = {3, 4, 2, 2, 2}; - -const struct SpriteFrameImage gMapObjectPicTable_LansatBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_LansatBerryTree_0), - obj_frame_tiles(gMapObjectPic_LansatBerryTree_1), - obj_frame_tiles(gMapObjectPic_LansatBerryTree_2), - obj_frame_tiles(gMapObjectPic_LansatBerryTree_3), - obj_frame_tiles(gMapObjectPic_LansatBerryTree_4), - obj_frame_tiles(gMapObjectPic_LansatBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Lansat[] = {3, 4, 2, 2, 2}; - -const struct SpriteFrameImage gMapObjectPicTable_DurinBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_DurinBerryTree_0), - obj_frame_tiles(gMapObjectPic_DurinBerryTree_1), - obj_frame_tiles(gMapObjectPic_DurinBerryTree_2), - obj_frame_tiles(gMapObjectPic_DurinBerryTree_3), - obj_frame_tiles(gMapObjectPic_DurinBerryTree_4), - obj_frame_tiles(gMapObjectPic_DurinBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Durin[] = {3, 4, 4, 4, 4}; - -const struct SpriteFrameImage gMapObjectPicTable_TamatoBerryTree[] = { - obj_frame_tiles(gMapObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gMapObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gMapObjectPic_TamatoBerryTree_0), - obj_frame_tiles(gMapObjectPic_TamatoBerryTree_1), - obj_frame_tiles(gMapObjectPic_TamatoBerryTree_2), - obj_frame_tiles(gMapObjectPic_TamatoBerryTree_3), - obj_frame_tiles(gMapObjectPic_TamatoBerryTree_4), - obj_frame_tiles(gMapObjectPic_TamatoBerryTree_5) -}; - -const u8 gBerryTreePaletteSlotTable_Tamato[] = {3, 4, 2, 2, 2}; - -const u8 gDeadBerryTreeGraphicsIdTable[] = {MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES, MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES, MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES, MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES, MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES}; - -const u8 gBerryTreeGraphicsIdTable[] = {MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES, MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES, MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES, MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES, MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES}; - -const struct SpriteFrameImage *const gBerryTreePicTablePointers[] = { - gMapObjectPicTable_CheriBerryTree, - gMapObjectPicTable_ChestoBerryTree, - gMapObjectPicTable_PechaBerryTree, - gMapObjectPicTable_RawstBerryTree, - gMapObjectPicTable_AspearBerryTree, - gMapObjectPicTable_LeppaBerryTree, - gMapObjectPicTable_OranBerryTree, - gMapObjectPicTable_PersimBerryTree, - gMapObjectPicTable_LumBerryTree, - gMapObjectPicTable_SitrusBerryTree, - gMapObjectPicTable_FigyBerryTree, - gMapObjectPicTable_WikiBerryTree, - gMapObjectPicTable_MagoBerryTree, - gMapObjectPicTable_AguavBerryTree, - gMapObjectPicTable_IapapaBerryTree, - gMapObjectPicTable_RazzBerryTree, - gMapObjectPicTable_RazzBerryTree, - gMapObjectPicTable_MagoBerryTree, - gMapObjectPicTable_WepearBerryTree, - gMapObjectPicTable_IapapaBerryTree, - gMapObjectPicTable_PomegBerryTree, - gMapObjectPicTable_KelpsyBerryTree, - gMapObjectPicTable_WepearBerryTree, - gMapObjectPicTable_HondewBerryTree, - gMapObjectPicTable_GrepaBerryTree, - gMapObjectPicTable_TamatoBerryTree, - gMapObjectPicTable_CornnBerryTree, - gMapObjectPicTable_PomegBerryTree, - gMapObjectPicTable_RabutaBerryTree, - gMapObjectPicTable_NomelBerryTree, - gMapObjectPicTable_SpelonBerryTree, - gMapObjectPicTable_PamtreBerryTree, - gMapObjectPicTable_RabutaBerryTree, - gMapObjectPicTable_DurinBerryTree, - gMapObjectPicTable_HondewBerryTree, - gMapObjectPicTable_LiechiBerryTree, - gMapObjectPicTable_HondewBerryTree, - gMapObjectPicTable_AguavBerryTree, - gMapObjectPicTable_PomegBerryTree, - gMapObjectPicTable_GrepaBerryTree, - gMapObjectPicTable_LansatBerryTree, - gMapObjectPicTable_CornnBerryTree, - gMapObjectPicTable_DurinBerryTree -}; - -const u8 *const gBerryTreePaletteSlotTablePointers[] = { - gBerryTreePaletteSlotTable_Cheri, - gBerryTreePaletteSlotTable_Chesto, - gBerryTreePaletteSlotTable_Pecha, - gBerryTreePaletteSlotTable_Rawst, - gBerryTreePaletteSlotTable_Aspear, - gBerryTreePaletteSlotTable_Leppa, - gBerryTreePaletteSlotTable_Oran, - gBerryTreePaletteSlotTable_Persim, - gBerryTreePaletteSlotTable_Lum, - gBerryTreePaletteSlotTable_Sitrus, - gBerryTreePaletteSlotTable_Figy, - gBerryTreePaletteSlotTable_Wiki, - gBerryTreePaletteSlotTable_Mago, - gBerryTreePaletteSlotTable_Aguav, - gBerryTreePaletteSlotTable_Iapapa, - gBerryTreePaletteSlotTable_Razz, - gBerryTreePaletteSlotTable_Razz, - gBerryTreePaletteSlotTable_Mago, - gBerryTreePaletteSlotTable_Wepear, - gBerryTreePaletteSlotTable_Iapapa, - gBerryTreePaletteSlotTable_Pomeg, - gBerryTreePaletteSlotTable_Kelpsy, - gBerryTreePaletteSlotTable_Wepear, - gBerryTreePaletteSlotTable_Hondew, - gBerryTreePaletteSlotTable_Grepa, - gBerryTreePaletteSlotTable_Tamato, - gBerryTreePaletteSlotTable_Cornn, - gBerryTreePaletteSlotTable_Pomeg, - gBerryTreePaletteSlotTable_Rabuta, - gBerryTreePaletteSlotTable_Nomel, - gBerryTreePaletteSlotTable_Spelon, - gBerryTreePaletteSlotTable_Pamtre, - gBerryTreePaletteSlotTable_Rabuta, - gBerryTreePaletteSlotTable_Durin, - gBerryTreePaletteSlotTable_Hondew, - gBerryTreePaletteSlotTable_Liechi, - gBerryTreePaletteSlotTable_Hondew, - gBerryTreePaletteSlotTable_Aguav, - gBerryTreePaletteSlotTable_Pomeg, - gBerryTreePaletteSlotTable_Grepa, - gBerryTreePaletteSlotTable_Lansat, - gBerryTreePaletteSlotTable_Cornn, - gBerryTreePaletteSlotTable_Durin -}; - -const u8 *const gBerryTreeGraphicsIdTablePointers[] = { - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable, - gBerryTreeGraphicsIdTable -}; - -#endif //POKERUBY_BERRY_TREE_GRAPHICS_TABLES_H diff --git a/include/data/field_map_obj/callback_subroutine_pointers.h b/include/data/field_map_obj/callback_subroutine_pointers.h deleted file mode 100644 index d24a47184..000000000 --- a/include/data/field_map_obj/callback_subroutine_pointers.h +++ /dev/null @@ -1,442 +0,0 @@ -// -// Created by scott on 6/18/2017. -// - -#ifndef POKERUBY_CALLBACK_SUBROUTINE_POINTERS_H -#define POKERUBY_CALLBACK_SUBROUTINE_POINTERS_H - - -u8 (*const gUnknown_08375224[])(struct MapObject *, struct Sprite *) = { - sub_805C8F0, - sub_805C904, - sub_805C930, - sub_805C96C, - sub_805C98C, - sub_805C9D8, - sub_805CA08 -}; - -const u8 gUnknown_08375240[] = {DIR_SOUTH, DIR_NORTH, DIR_WEST, DIR_EAST}; - -u8 (*const gUnknown_08375244[])(s16, s16, s16, s16) = { - sub_805CAAC, - sub_805CADC, - sub_805CAEC, - sub_805CB00, - sub_805CB5C, - sub_805CBB8, - sub_805CC14, - sub_805CC70, - sub_805CCAC, - sub_805CCE8, - sub_805CD24 -}; - -u8 (*const gUnknown_08375270[])(struct MapObject *, struct Sprite *) = { - sub_805CE2C, - sub_805CE40, - sub_805CE6C, - sub_805CEB0, - sub_805CEE0 -}; - -u8 (*const gUnknown_08375284[])(struct MapObject *, struct Sprite *) = { - sub_805CF6C, - sub_805CF80, - sub_805CFAC, - sub_805CFE8, - sub_805D008, - sub_805D054, - sub_805D084 -}; - -const u8 gUnknown_083752A0[] = {DIR_SOUTH, DIR_NORTH}; - -u8 (*const gUnknown_083752A4[])(struct MapObject *, struct Sprite *) = { - sub_805D0F0, - sub_805D104, - sub_805D130, - sub_805D16C, - sub_805D18C, - sub_805D1D8, - sub_805D208 -}; - -const u8 gUnknown_083752C0[] = {DIR_WEST, DIR_EAST}; - -u8 (*const gUnknown_083752C4[])(struct MapObject *, struct Sprite *) = { - sub_805D274, - sub_805D2A0, - sub_805D2C0 -}; - -u8 (*const gUnknown_083752D0[])(struct MapObject *, struct Sprite *) = { - do_berry_tree_growth_sparkle_1, - sub_805D3EC, - do_berry_tree_growth_sparkle_2, - sub_805D458, - sub_805D4A8 -}; - -u8 (*const gUnknown_083752E4[])(struct MapObject *, struct Sprite *) = { - sub_805D538, - sub_805D54C, - sub_805D578, - sub_805D5BC, - sub_805D5EC -}; - -u8 (*const gUnknown_083752F8[])(struct MapObject *, struct Sprite *) = { - sub_805D678, - sub_805D68C, - sub_805D6B8, - sub_805D6FC, - sub_805D72C -}; - -u8 (*const gUnknown_0837530C[])(struct MapObject *, struct Sprite *) = { - sub_805D7B8, - sub_805D7CC, - sub_805D7F8, - sub_805D83C, - sub_805D86C -}; - -const u8 gUnknown_08375320[] = {DIR_NORTH, DIR_WEST}; - -u8 (*const gUnknown_08375324[])(struct MapObject *, struct Sprite *) = { - sub_805D8F8, - sub_805D90C, - sub_805D938, - sub_805D97C, - sub_805D9AC -}; - -const u8 gUnknown_08375338[] = {DIR_NORTH, DIR_EAST}; - -u8 (*const gUnknown_0837533C[])(struct MapObject *, struct Sprite *) = { - sub_805DA38, - sub_805DA4C, - sub_805DA78, - sub_805DABC, - sub_805DAEC -}; - -const u8 gUnknown_08375350[] = {DIR_SOUTH, DIR_WEST}; - -u8 (*const gUnknown_08375354[])(struct MapObject *, struct Sprite *) = { - sub_805DB78, - sub_805DB8C, - sub_805DBB8, - sub_805DBFC, - sub_805DC2C -}; - -const u8 gUnknown_08375368[] = {DIR_SOUTH, DIR_EAST}; - -u8 (*const gUnknown_0837536C[])(struct MapObject *, struct Sprite *) = { - sub_805DCB8, - sub_805DCCC, - sub_805DCF8, - sub_805DD3C, - sub_805DD6C -}; - -const u8 gUnknown_08375380[] = {DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_SOUTH}; - -u8 (*const gUnknown_08375384[])(struct MapObject *, struct Sprite *) = { - sub_805DDF8, - sub_805DE0C, - sub_805DE38, - sub_805DE7C, - sub_805DEAC -}; - -const u8 gUnknown_08375398[] = {DIR_SOUTH, DIR_NORTH, DIR_EAST, DIR_SOUTH}; - -u8 (*const gUnknown_0837539C[])(struct MapObject *, struct Sprite *) = { - sub_805DF38, - sub_805DF4C, - sub_805DF78, - sub_805DFBC, - sub_805DFEC -}; - -const u8 gUnknown_083753B0[] = {DIR_NORTH, DIR_WEST, DIR_EAST, DIR_NORTH}; - -u8 (*const gUnknown_083753B4[])(struct MapObject *, struct Sprite *) = { - sub_805E078, - sub_805E08C, - sub_805E0B8, - sub_805E0FC, - sub_805E12C -}; - -const u8 gUnknown_083753C8[] = {DIR_WEST, DIR_EAST, DIR_SOUTH, DIR_SOUTH}; - -u8 (*const gUnknown_083753CC[])(struct MapObject *, struct Sprite *) = { - sub_805E1B8, - sub_805E1E4, - sub_805E208, - sub_805E234 -}; - -const u8 gUnknown_083753DC[] = {DIR_SOUTH, DIR_EAST, DIR_WEST, DIR_SOUTH, DIR_NORTH}; - -u8 (*const gUnknown_083753E4[])(struct MapObject *, struct Sprite *) = { - sub_805E2BC, - sub_805E2E8, - sub_805E30C, - sub_805E338 -}; - -const u8 gUnknown_083753F4[] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; - -u8 (*const gUnknown_083753FC[])(struct MapObject *, struct Sprite *) = { - sub_805E3C0, - sub_805E3D4, - sub_805E40C, - sub_805E4C4 -}; - -u8 (*const gUnknown_0837540C[])(struct MapObject *, struct Sprite *) = { - sub_805E4EC, - sub_805E620, - sub_805E5B4 -}; - -const u8 gUnknown_08375418[] = {DIR_NORTH, DIR_EAST, DIR_WEST, DIR_SOUTH}; - -u8 (*const gUnknown_0837541C[])(struct MapObject *, struct Sprite *) = { - sub_805E4EC, - sub_805E6AC, - sub_805E5B4 -}; - -const u8 gUnknown_08375428[] = {DIR_EAST, DIR_WEST, DIR_SOUTH, DIR_NORTH}; -u8 (*const gUnknown_0837542C[])(struct MapObject *, struct Sprite *) = { - sub_805E4EC, - sub_805E738, - sub_805E5B4 -}; - -const u8 gUnknown_08375438[] = {DIR_SOUTH, DIR_NORTH, DIR_EAST, DIR_WEST}; - -u8 (*const gUnknown_0837543C[])(struct MapObject *, struct Sprite *) = { - sub_805E4EC, - sub_805E7C4, - sub_805E5B4 -}; - -const u8 gUnknown_08375448[] = {DIR_WEST, DIR_SOUTH, DIR_NORTH, DIR_EAST}; - -u8 (*const gUnknown_0837544C[])(struct MapObject *, struct Sprite *) = { - sub_805E4EC, - sub_805E850, - sub_805E5B4 -}; - -const u8 gUnknown_08375458[] = {DIR_NORTH, DIR_WEST, DIR_EAST, DIR_SOUTH}; - -u8 (*const gUnknown_0837545C[])(struct MapObject *, struct Sprite *) = { - sub_805E4EC, - sub_805E8DC, - sub_805E5B4 -}; - -const u8 gUnknown_08375468[] = {DIR_WEST, DIR_EAST, DIR_SOUTH, DIR_NORTH}; - -u8 (*const gUnknown_0837546C[])(struct MapObject *, struct Sprite *) = { - sub_805E4EC, - sub_805E968, - sub_805E5B4 -}; - -u8 (*const gUnknown_08375478[])(struct MapObject *, struct Sprite *) = { - sub_805E4EC, - sub_805E9F4, - sub_805E5B4 -}; - -const u8 gUnknown_08375484[] = {DIR_EAST, DIR_SOUTH, DIR_NORTH, DIR_WEST}; - -u8 (*const gUnknown_08375488[])(struct MapObject *, struct Sprite *) = { - sub_805E4EC, - sub_805EA80, - sub_805E5B4 -}; - -const u8 gUnknown_08375494[] = {DIR_WEST, DIR_NORTH, DIR_SOUTH, DIR_EAST}; - -u8 (*const gUnknown_08375498[])(struct MapObject *, struct Sprite *) = { - sub_805E4EC, - sub_805EB0C, - sub_805E5B4 -}; - -const u8 gUnknown_083754A4[] = {DIR_NORTH, DIR_SOUTH, DIR_EAST, DIR_WEST}; - -u8 (*const gUnknown_083754A8[])(struct MapObject *, struct Sprite *) = { - sub_805E4EC, - sub_805EB98, - sub_805E5B4 -}; - -const u8 gUnknown_083754B4[] = {DIR_EAST, DIR_WEST, DIR_NORTH, DIR_SOUTH}; - -u8 (*const gUnknown_083754B8[])(struct MapObject *, struct Sprite *) = { - sub_805E4EC, - sub_805EC24, - sub_805E5B4 -}; - -const u8 gUnknown_083754C4[] = {DIR_SOUTH, DIR_EAST, DIR_WEST, DIR_NORTH}; - -u8 (*const gUnknown_083754C8[])(struct MapObject *, struct Sprite *) = { - sub_805E4EC, - sub_805ECB0, - sub_805E5B4 -}; - -const u8 gUnknown_083754D4[] = {DIR_EAST, DIR_NORTH, DIR_SOUTH, DIR_WEST}; - -u8 (*const gUnknown_083754D8[])(struct MapObject *, struct Sprite *) = { - sub_805E4EC, - sub_805ED3C, - sub_805E5B4 -}; - -const u8 gUnknown_083754E4[] = {DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_EAST}; - -u8 (*const gUnknown_083754E8[])(struct MapObject *, struct Sprite *) = { - sub_805E4EC, - sub_805EDC8, - sub_805E5B4 -}; - -const u8 gUnknown_083754F4[] = {DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; - -u8 (*const gUnknown_083754F8[])(struct MapObject *, struct Sprite *) = { - sub_805E4EC, - sub_805EE54, - sub_805E5B4 -}; - -const u8 gUnknown_08375504[] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH}; - -u8 (*const gUnknown_08375508[])(struct MapObject *, struct Sprite *) = { - sub_805E4EC, - sub_805EEE0, - sub_805E5B4 -}; - -const u8 gUnknown_08375514[] = {DIR_NORTH, DIR_WEST, DIR_SOUTH, DIR_EAST}; - -u8 (*const gUnknown_08375518[])(struct MapObject *, struct Sprite *) = { - sub_805E4EC, - sub_805EF6C, - sub_805E5B4 -}; - -const u8 gUnknown_08375524[] = {DIR_SOUTH, DIR_EAST, DIR_NORTH, DIR_WEST}; - -u8 (*const gUnknown_08375528[])(struct MapObject *, struct Sprite *) = { - sub_805E4EC, - sub_805EFF8, - sub_805E5B4 -}; - -const u8 gUnknown_08375534[] = {DIR_WEST, DIR_SOUTH, DIR_EAST, DIR_NORTH}; - -u8 (*const gUnknown_08375538[])(struct MapObject *, struct Sprite *) = { - sub_805E4EC, - sub_805F084, - sub_805E5B4 -}; - -const u8 gUnknown_08375544[] = {DIR_EAST, DIR_NORTH, DIR_WEST, DIR_SOUTH}; - -u8 (*const gUnknown_08375548[])(struct MapObject *, struct Sprite *) = { - sub_805E4EC, - sub_805F110, - sub_805E5B4 -}; - -const u8 gUnknown_08375554[] = {DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_WEST}; - -u8 (*const gUnknown_08375558[])(struct MapObject *, struct Sprite *) = { - sub_805E4EC, - sub_805F19C, - sub_805E5B4 -}; - -const u8 gUnknown_08375564[] = {DIR_SOUTH, DIR_WEST, DIR_NORTH, DIR_EAST}; - -u8 (*const gUnknown_08375568[])(struct MapObject *, struct Sprite *) = { - sub_805E4EC, - sub_805F228, - sub_805E5B4 -}; - -const u8 gUnknown_08375574[] = {DIR_WEST, DIR_NORTH, DIR_EAST, DIR_SOUTH}; - -u8 (*const gUnknown_08375578[])(struct MapObject *, struct Sprite *) = { - sub_805E4EC, - sub_805F2B4, - sub_805E5B4 -}; - -const u8 gUnknown_08375584[] = {DIR_EAST, DIR_SOUTH, DIR_WEST, DIR_NORTH}; - -u8 (*const gUnknown_08375588[])(struct MapObject *, struct Sprite *) = { - mss_npc_reset_oampriv3_1_unk2_unk3, - sub_805F364, - sub_805F3C4 -}; - -u8 (*const gUnknown_08375594[])(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)) = { - sub_805F3EC, - sub_805F3F0, - sub_805F438, - sub_805F4F0, - sub_805F5A8, - sub_805F660, - cph_IM_DIFFERENT, - sub_805F760, - oac_hopping, - sub_805F3EC, - sub_805F3EC -}; - -u8 (*const gUnknown_083755C0[])(struct MapObject *, struct Sprite *) = { - mss_npc_reset_oampriv3_1_unk2_unk3, - mss_08062EA4, - sub_805F3C4 -}; - -u8 (*const gUnknown_083755CC[])(struct MapObject *, struct Sprite *) = { - sub_805FAF8 -}; - -u8 (*const gUnknown_083755D0[])(struct MapObject *, struct Sprite *) = { - sub_805FB64, - sub_805FB04 -}; - -u8 (*const gUnknown_083755D8[])(struct MapObject *, struct Sprite *) = { - sub_805FBD4, - sub_805FB04 -}; - -u8 (*const gUnknown_083755E0[])(struct MapObject *, struct Sprite *) = { - sub_805FC44, - sub_805FB04 -}; - -u8 (*const gUnknown_083755E8[])(struct MapObject *, struct Sprite *) = { - sub_805FCB4, - sub_805FCE8, - sub_805FD08 -}; - -#endif //POKERUBY_CALLBACK_SUBROUTINE_POINTERS_H diff --git a/include/data/field_map_obj/field_effect_object_template_pointers.h b/include/data/field_map_obj/field_effect_object_template_pointers.h deleted file mode 100644 index 8e19747ce..000000000 --- a/include/data/field_map_obj/field_effect_object_template_pointers.h +++ /dev/null @@ -1,84 +0,0 @@ -// -// Created by scott on 6/17/2017. -// - -#ifndef POKERUBY_FIELD_EFFECT_OBJECT_TEMPLATE_POINTERS_H -#define POKERUBY_FIELD_EFFECT_OBJECT_TEMPLATE_POINTERS_H - -const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowSmall; -const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowMedium; -const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowLarge; -const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowExtraLarge; -const struct SpriteTemplate gFieldEffectSpriteTemplate_TallGrass; -const struct SpriteTemplate gFieldEffectSpriteTemplate_Ripple; -const struct SpriteTemplate gFieldEffectSpriteTemplate_Ash; -const struct SpriteTemplate gFieldEffectSpriteTemplate_SurfBlob; -const struct SpriteTemplate gFieldEffectSpriteTemplate_Arrow; -const struct SpriteTemplate gFieldEffectSpriteTemplate_Dust; -const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpTallGrass; -const struct SpriteTemplate gFieldEffectSpriteTemplate_SandFootprints; -const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpBigSplash; -const struct SpriteTemplate gFieldEffectSpriteTemplate_Splash; -const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpSmallSplash; -const struct SpriteTemplate gFieldEffectSpriteTemplate_LongGrass; -const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpLongGrass; -const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown17; -const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown18; -const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown19; -const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown20; -const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown21; -const struct SpriteTemplate gFieldEffectSpriteTemplate_BerryTreeGrowthSparkle; -const struct SpriteTemplate gFieldEffectSpriteTemplate_DeepSandFootprints; -const struct SpriteTemplate gFieldEffectSpriteTemplate_TreeDisguise; -const struct SpriteTemplate gFieldEffectSpriteTemplate_MountainDisguise; -const struct SpriteTemplate gFieldEffectSpriteTemplate_Bird; -const struct SpriteTemplate gFieldEffectSpriteTemplate_BikeTireTracks; -const struct SpriteTemplate gFieldEffectSpriteTemplate_SandDisguise; -const struct SpriteTemplate gFieldEffectSpriteTemplate_SandPile; -const struct SpriteTemplate gFieldEffectSpriteTemplate_ShortGrass; -const struct SpriteTemplate gFieldEffectSpriteTemplate_HotSpringsWater; -const struct SpriteTemplate gFieldEffectSpriteTemplate_PopOutOfAsh; -const struct SpriteTemplate gFieldEffectSpriteTemplate_LavaridgeGymWarp; -const struct SpriteTemplate gFieldEffectSpriteTemplate_Bubbles; -const struct SpriteTemplate gFieldEffectSpriteTemplate_Sparkle; - -const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[] = { - &gFieldEffectSpriteTemplate_ShadowSmall, - &gFieldEffectSpriteTemplate_ShadowMedium, - &gFieldEffectSpriteTemplate_ShadowLarge, - &gFieldEffectSpriteTemplate_ShadowExtraLarge, - &gFieldEffectSpriteTemplate_TallGrass, - &gFieldEffectSpriteTemplate_Ripple, - &gFieldEffectSpriteTemplate_Ash, - &gFieldEffectSpriteTemplate_SurfBlob, - &gFieldEffectSpriteTemplate_Arrow, - &gFieldEffectSpriteTemplate_Dust, - &gFieldEffectSpriteTemplate_JumpTallGrass, - &gFieldEffectSpriteTemplate_SandFootprints, - &gFieldEffectSpriteTemplate_JumpBigSplash, - &gFieldEffectSpriteTemplate_Splash, - &gFieldEffectSpriteTemplate_JumpSmallSplash, - &gFieldEffectSpriteTemplate_LongGrass, - &gFieldEffectSpriteTemplate_JumpLongGrass, - &gFieldEffectSpriteTemplate_Unknown17, - &gFieldEffectSpriteTemplate_Unknown18, - &gFieldEffectSpriteTemplate_Unknown19, - &gFieldEffectSpriteTemplate_Unknown20, - &gFieldEffectSpriteTemplate_Unknown21, - &gFieldEffectSpriteTemplate_BerryTreeGrowthSparkle, - &gFieldEffectSpriteTemplate_DeepSandFootprints, - &gFieldEffectSpriteTemplate_TreeDisguise, - &gFieldEffectSpriteTemplate_MountainDisguise, - &gFieldEffectSpriteTemplate_Bird, - &gFieldEffectSpriteTemplate_BikeTireTracks, - &gFieldEffectSpriteTemplate_SandDisguise, - &gFieldEffectSpriteTemplate_SandPile, - &gFieldEffectSpriteTemplate_ShortGrass, - &gFieldEffectSpriteTemplate_HotSpringsWater, - &gFieldEffectSpriteTemplate_PopOutOfAsh, - &gFieldEffectSpriteTemplate_LavaridgeGymWarp, - &gFieldEffectSpriteTemplate_Bubbles, - &gFieldEffectSpriteTemplate_Sparkle -}; - -#endif //POKERUBY_FIELD_EFFECT_OBJECT_TEMPLATE_POINTERS_H diff --git a/include/data/field_map_obj/field_effect_objects.h b/include/data/field_map_obj/field_effect_objects.h deleted file mode 100644 index dc8a38542..000000000 --- a/include/data/field_map_obj/field_effect_objects.h +++ /dev/null @@ -1,897 +0,0 @@ -// -// Created by scott on 6/17/2017. -// - -#ifndef POKERUBY_FIELD_EFFECT_OBJECTS_H -#define POKERUBY_FIELD_EFFECT_OBJECTS_H - -const struct SpritePalette gFieldEffectObjectPaletteInfo0 = {gFieldEffectObjectPalette0, 0x1004}; - -const struct SpritePalette gFieldEffectObjectPaletteInfo1 = {gFieldEffectObjectPalette1, 0x1005}; - -const union AnimCmd gFieldEffectAnim_8374534[] = { - ANIMCMD_FRAME(0, 1), - ANIMCMD_END -}; - -const union AnimCmd *const gFieldEffectAnimTable_Shadow[] = { - gFieldEffectAnim_8374534 -}; - -const struct SpriteFrameImage gFieldEffectPicTable_ShadowSmall[] = { - obj_frame_tiles(gFieldEffectPic_ShadowSmall) -}; - -const struct SpriteFrameImage gFieldEffectPicTable_ShadowMedium[] = { - obj_frame_tiles(gFieldEffectPic_ShadowMedium) -}; - -const struct SpriteFrameImage gFieldEffectPicTable_ShadowLarge[] = { - obj_frame_tiles(gFieldEffectPic_ShadowLarge) -}; - -const struct SpriteFrameImage gFieldEffectPicTable_ShadowExtraLarge[] = { - obj_frame_tiles(gFieldEffectPic_ShadowExtraLarge) -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowSmall = {0xFFFF, 0xFFFF, &gFieldOamData_8x8, gFieldEffectAnimTable_Shadow, gFieldEffectPicTable_ShadowSmall, gDummySpriteAffineAnimTable, oamc_shadow}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowMedium = {0xFFFF, 0xFFFF, &gFieldOamData_16x8, gFieldEffectAnimTable_Shadow, gFieldEffectPicTable_ShadowMedium, gDummySpriteAffineAnimTable, oamc_shadow}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowLarge = {0xFFFF, 0xFFFF, &gFieldOamData_32x8, gFieldEffectAnimTable_Shadow, gFieldEffectPicTable_ShadowLarge, gDummySpriteAffineAnimTable, oamc_shadow}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowExtraLarge = {0xFFFF, 0xFFFF, &gFieldOamData_64x32, gFieldEffectAnimTable_Shadow, gFieldEffectPicTable_ShadowExtraLarge, gDummySpriteAffineAnimTable, oamc_shadow}; - -const struct SpriteFrameImage gFieldEffectPicTable_TallGrass[] = { - obj_frame_tiles(gFieldEffectPic_TallGrass_0), - obj_frame_tiles(gFieldEffectPic_TallGrass_1), - obj_frame_tiles(gFieldEffectPic_TallGrass_2), - obj_frame_tiles(gFieldEffectPic_TallGrass_3), - obj_frame_tiles(gFieldEffectPic_TallGrass_4) -}; - -const union AnimCmd gFieldEffectAnim_83745E8[] = { - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(2, 10), - ANIMCMD_FRAME(3, 10), - ANIMCMD_FRAME(4, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END -}; - -const union AnimCmd *const gFieldEffectAnimTable_TallGrass[] = { - gFieldEffectAnim_83745E8 -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_TallGrass = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_TallGrass, gFieldEffectPicTable_TallGrass, gDummySpriteAffineAnimTable, unc_grass_normal}; - -const struct SpriteFrameImage gFieldEffectPicTable_Ripple[] = { - obj_frame_tiles(gFieldEffectPic_Ripple_0), - obj_frame_tiles(gFieldEffectPic_Ripple_1), - obj_frame_tiles(gFieldEffectPic_Ripple_2), - obj_frame_tiles(gFieldEffectPic_Ripple_3), - obj_frame_tiles(gFieldEffectPic_Ripple_4) -}; - -const union AnimCmd gFieldEffectAnim_8374644[] = { - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(2, 9), - ANIMCMD_FRAME(3, 9), - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(2, 11), - ANIMCMD_FRAME(4, 11), - ANIMCMD_END -}; - -const union AnimCmd *const gFieldEffectAnimTable_Ripple[] = { - gFieldEffectAnim_8374644 -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_Ripple = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_Ripple, gFieldEffectPicTable_Ripple, gDummySpriteAffineAnimTable, sub_8128800}; - -const struct SpriteFrameImage gFieldEffectPicTable_Ash[] = { - obj_frame_tiles(gFieldEffectPic_Ash_0), - obj_frame_tiles(gFieldEffectPic_Ash_1), - obj_frame_tiles(gFieldEffectPic_Ash_2), - obj_frame_tiles(gFieldEffectPic_Ash_3), - obj_frame_tiles(gFieldEffectPic_Ash_4) -}; - -const union AnimCmd gFieldEffectAnim_83746AC[] = { - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(1, 12), - ANIMCMD_FRAME(2, 8), - ANIMCMD_FRAME(3, 12), - ANIMCMD_FRAME(4, 12), - ANIMCMD_END -}; - -const union AnimCmd *const gFieldEffectAnimTable_Ash[] = { - gFieldEffectAnim_83746AC -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_Ash = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_Ash, gFieldEffectPicTable_Ash, gDummySpriteAffineAnimTable, sub_8127D84}; - -const struct SpriteFrameImage gFieldEffectPicTable_SurfBlob[] = { - obj_frame_tiles(gFieldEffectPic_SurfBlob_0), - obj_frame_tiles(gFieldEffectPic_SurfBlob_1), - obj_frame_tiles(gFieldEffectPic_SurfBlob_2) -}; - -const union AnimCmd gFieldEffectAnim_83746F8[] = { - ANIMCMD_FRAME(0, 1), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gFieldEffectAnim_8374700[] = { - ANIMCMD_FRAME(1, 1), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gFieldEffectAnim_8374708[] = { - ANIMCMD_FRAME(2, 1), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gFieldEffectAnim_8374710[] = { - ANIMCMD_FRAME(2, 1, .hFlip = TRUE), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd *const gFieldEffectAnimTable_SurfBlob[] = { - gFieldEffectAnim_83746F8, - gFieldEffectAnim_8374700, - gFieldEffectAnim_8374708, - gFieldEffectAnim_8374710 -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_SurfBlob = {0xFFFF, 0xFFFF, &gFieldOamData_32x32, gFieldEffectAnimTable_SurfBlob, gFieldEffectPicTable_SurfBlob, gDummySpriteAffineAnimTable, sub_8127F7C}; - -const struct SpriteFrameImage gFieldEffectPicTable_Arrow[] = { - obj_frame_tiles(gFieldEffectPic_Arrow_0), - obj_frame_tiles(gFieldEffectPic_Arrow_1), - obj_frame_tiles(gFieldEffectPic_Arrow_2), - obj_frame_tiles(gFieldEffectPic_Arrow_3), - obj_frame_tiles(gFieldEffectPic_Arrow_4), - obj_frame_tiles(gFieldEffectPic_Arrow_5), - obj_frame_tiles(gFieldEffectPic_Arrow_6), - obj_frame_tiles(gFieldEffectPic_Arrow_7) -}; - -const union AnimCmd gFieldEffectAnim_8374780[] = { - ANIMCMD_FRAME(3, 32), - ANIMCMD_FRAME(7, 32), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gFieldEffectAnim_837478C[] = { - ANIMCMD_FRAME(0, 32), - ANIMCMD_FRAME(4, 32), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gFieldEffectAnim_8374798[] = { - ANIMCMD_FRAME(1, 32), - ANIMCMD_FRAME(5, 32), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gFieldEffectAnim_83747A4[] = { - ANIMCMD_FRAME(2, 32), - ANIMCMD_FRAME(6, 32), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd *const gFieldEffectAnimTable_Arrow[] = { - gFieldEffectAnim_8374780, - gFieldEffectAnim_837478C, - gFieldEffectAnim_8374798, - gFieldEffectAnim_83747A4 -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_Arrow = {0xFFFF, 0xFFFF, &gFieldOamData_16x16, gFieldEffectAnimTable_Arrow, gFieldEffectPicTable_Arrow, gDummySpriteAffineAnimTable, SpriteCallbackDummy}; - -const struct SpriteFrameImage gFieldEffectPicTable_Dust[] = { - obj_frame_tiles(gFieldEffectPic_Dust_0), - obj_frame_tiles(gFieldEffectPic_Dust_1), - obj_frame_tiles(gFieldEffectPic_Dust_2) -}; - -const union AnimCmd gFieldEffectAnim_83747F0[] = { - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(2, 8), - ANIMCMD_END -}; - -const union AnimCmd *const gFieldEffectAnimTable_Dust[] = { - gFieldEffectAnim_83747F0 -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_Dust = {0xFFFF, 0x1004, &gFieldOamData_16x8, gFieldEffectAnimTable_Dust, gFieldEffectPicTable_Dust, gDummySpriteAffineAnimTable, sub_81287C4}; - -const struct SpriteFrameImage gFieldEffectPicTable_JumpTallGrass[] = { - obj_frame_tiles(gFieldEffectPic_JumpTallGrass_0), - obj_frame_tiles(gFieldEffectPic_JumpTallGrass_1), - obj_frame_tiles(gFieldEffectPic_JumpTallGrass_2), - obj_frame_tiles(gFieldEffectPic_JumpTallGrass_3) -}; - -const union AnimCmd gFieldEffectAnim_837483C[] = { - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(2, 8), - ANIMCMD_FRAME(3, 8), - ANIMCMD_END -}; - -const union AnimCmd *const gFieldEffectAnimTable_JumpTallGrass[] = { - gFieldEffectAnim_837483C -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpTallGrass = {0xFFFF, 0x1005, &gFieldOamData_16x8, gFieldEffectAnimTable_JumpTallGrass, gFieldEffectPicTable_JumpTallGrass, gDummySpriteAffineAnimTable, sub_81287C4}; - -const struct SpriteFrameImage gFieldEffectPicTable_SandFootprints[] = { - obj_frame_tiles(gFieldEffectPic_SandFootprints_0), - obj_frame_tiles(gFieldEffectPic_SandFootprints_1) -}; - -const union AnimCmd gFieldEffectAnim_837487C[] = { - ANIMCMD_FRAME(0, 1, .vFlip = TRUE), - ANIMCMD_END -}; - -const union AnimCmd gFieldEffectAnim_8374884[] = { - ANIMCMD_FRAME(0, 1), - ANIMCMD_END -}; - -const union AnimCmd gFieldEffectAnim_837488C[] = { - ANIMCMD_FRAME(1, 1), - ANIMCMD_END -}; - -const union AnimCmd gFieldEffectAnim_8374894[] = { - ANIMCMD_FRAME(1, 1, .hFlip = TRUE), - ANIMCMD_END -}; - -const union AnimCmd *const gFieldEffectAnimTable_SandFootprints[] = { - gFieldEffectAnim_837487C, - gFieldEffectAnim_837487C, - gFieldEffectAnim_8374884, - gFieldEffectAnim_837488C, - gFieldEffectAnim_8374894 -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_SandFootprints = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_SandFootprints, gFieldEffectPicTable_SandFootprints, gDummySpriteAffineAnimTable, sub_8127584}; - -const struct SpriteFrameImage gFieldEffectPicTable_DeepSandFootprints[] = { - obj_frame_tiles(gFieldEffectPic_DeepSandFootprints_0), - obj_frame_tiles(gFieldEffectPic_DeepSandFootprints_1) -}; - -const union AnimCmd gFieldEffectAnim_83748D8[] = { - ANIMCMD_FRAME(0, 1, .vFlip = TRUE), - ANIMCMD_END -}; - -const union AnimCmd gFieldEffectAnim_83748E0[] = { - ANIMCMD_FRAME(0, 1), - ANIMCMD_END -}; - -const union AnimCmd gFieldEffectAnim_83748E8[] = { - ANIMCMD_FRAME(1, 1), - ANIMCMD_END -}; - -const union AnimCmd gFieldEffectAnim_83748F0[] = { - ANIMCMD_FRAME(1, 1, .hFlip = TRUE), - ANIMCMD_END -}; - -const union AnimCmd *const gFieldEffectAnimTable_DeepSandFootprints[] = { - gFieldEffectAnim_83748D8, - gFieldEffectAnim_83748D8, - gFieldEffectAnim_83748E0, - gFieldEffectAnim_83748E8, - gFieldEffectAnim_83748F0 -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_DeepSandFootprints = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_DeepSandFootprints, gFieldEffectPicTable_DeepSandFootprints, gDummySpriteAffineAnimTable, sub_8127584}; - -const struct SpriteFrameImage gFieldEffectPicTable_BikeTireTracks[] = { - obj_frame_tiles(gFieldEffectPic_BikeTireTracks_0), - obj_frame_tiles(gFieldEffectPic_BikeTireTracks_1), - obj_frame_tiles(gFieldEffectPic_BikeTireTracks_2), - obj_frame_tiles(gFieldEffectPic_BikeTireTracks_3) -}; - -const union AnimCmd gFieldEffectAnim_8374944[] = { - ANIMCMD_FRAME(2, 1), - ANIMCMD_END -}; - -const union AnimCmd gFieldEffectAnim_837494C[] = { - ANIMCMD_FRAME(2, 1), - ANIMCMD_END -}; - -const union AnimCmd gFieldEffectAnim_8374954[] = { - ANIMCMD_FRAME(1, 1), - ANIMCMD_END -}; - -const union AnimCmd gFieldEffectAnim_837495C[] = { - ANIMCMD_FRAME(1, 1), - ANIMCMD_END -}; - -const union AnimCmd gFieldEffectAnim_8374964[] = { - ANIMCMD_FRAME(0, 1), - ANIMCMD_END -}; - -const union AnimCmd gFieldEffectAnim_837496C[] = { - ANIMCMD_FRAME(0, 1, .hFlip = TRUE), - ANIMCMD_END -}; - -const union AnimCmd gFieldEffectAnim_8374974[] = { - ANIMCMD_FRAME(3, 1, .hFlip = TRUE), - ANIMCMD_END -}; - -const union AnimCmd gFieldEffectAnim_837497C[] = { - ANIMCMD_FRAME(3, 1), - ANIMCMD_END -}; - -const union AnimCmd *const gFieldEffectAnimTable_BikeTireTracks[] = { - gFieldEffectAnim_8374944, - gFieldEffectAnim_8374944, - gFieldEffectAnim_837494C, - gFieldEffectAnim_8374954, - gFieldEffectAnim_837495C, - gFieldEffectAnim_8374964, - gFieldEffectAnim_837496C, - gFieldEffectAnim_8374974, - gFieldEffectAnim_837497C -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_BikeTireTracks = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_BikeTireTracks, gFieldEffectPicTable_BikeTireTracks, gDummySpriteAffineAnimTable, sub_8127584}; - -const struct SpriteFrameImage gFieldEffectPicTable_JumpBigSplash[] = { - obj_frame_tiles(gFieldEffectPic_JumpBigSplash_0), - obj_frame_tiles(gFieldEffectPic_JumpBigSplash_1), - obj_frame_tiles(gFieldEffectPic_JumpBigSplash_2), - obj_frame_tiles(gFieldEffectPic_JumpBigSplash_3) -}; - -const union AnimCmd gFieldEffectAnim_83749E0[] = { - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(2, 8), - ANIMCMD_FRAME(3, 8), - ANIMCMD_END -}; - -const union AnimCmd *const gFieldEffectAnimTable_JumpBigSplash[] = { - gFieldEffectAnim_83749E0 -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpBigSplash = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_JumpBigSplash, gFieldEffectPicTable_JumpBigSplash, gDummySpriteAffineAnimTable, sub_81287C4}; - -const struct SpriteFrameImage gFieldEffectPicTable_Splash[] = { - obj_frame_tiles(gFieldEffectPic_Splash_0), - obj_frame_tiles(gFieldEffectPic_Splash_1) -}; - -const union AnimCmd gFieldEffectAnim_8374A20[] = { - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_END -}; - -const union AnimCmd gFieldEffectAnim_8374A2C[] = { - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd *const gFieldEffectAnimTable_Splash[] = { - gFieldEffectAnim_8374A20, - gFieldEffectAnim_8374A2C -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_Splash = {0xFFFF, 0x1004, &gFieldOamData_16x8, gFieldEffectAnimTable_Splash, gFieldEffectPicTable_Splash, gDummySpriteAffineAnimTable, sub_81276B4}; - -const struct SpriteFrameImage gFieldEffectPicTable_JumpSmallSplash[] = { - obj_frame_tiles(gFieldEffectPic_JumpSmallSplash_0), - obj_frame_tiles(gFieldEffectPic_JumpSmallSplash_1), - obj_frame_tiles(gFieldEffectPic_JumpSmallSplash_2) -}; - -const union AnimCmd gFieldEffectAnim_8374A88[] = { - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(2, 4), - ANIMCMD_END -}; - -const union AnimCmd *const gFieldEffectAnimTable_JumpSmallSplash[] = { - gFieldEffectAnim_8374A88 -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpSmallSplash = {0xFFFF, 0x1004, &gFieldOamData_16x8, gFieldEffectAnimTable_JumpSmallSplash, gFieldEffectPicTable_JumpSmallSplash, gDummySpriteAffineAnimTable, sub_81287C4}; - -const struct SpriteFrameImage gFieldEffectPicTable_LongGrass[] = { - obj_frame_tiles(gFieldEffectPic_LongGrass_0), - obj_frame_tiles(gFieldEffectPic_LongGrass_1), - obj_frame_tiles(gFieldEffectPic_LongGrass_2), - obj_frame_tiles(gFieldEffectPic_LongGrass_3) -}; - -const union AnimCmd gFieldEffectAnim_8374AD4[] = { - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(2, 3), - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(3, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(3, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_END -}; - -const union AnimCmd *const gFieldEffectAnimTable_LongGrass[] = { - gFieldEffectAnim_8374AD4 -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_LongGrass = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_LongGrass, gFieldEffectPicTable_LongGrass, gDummySpriteAffineAnimTable, unc_grass_tall}; - -const struct SpriteFrameImage gFieldEffectPicTable_JumpLongGrass[] = { - obj_frame_tiles(gFieldEffectPic_JumpLongGrass_0), - obj_frame_tiles(gFieldEffectPic_JumpLongGrass_1), - obj_frame_tiles(gFieldEffectPic_JumpLongGrass_2), - obj_frame_tiles(gFieldEffectPic_JumpLongGrass_3), - obj_frame_tiles(gFieldEffectPic_JumpLongGrass_4), - obj_frame_tiles(gFieldEffectPic_JumpLongGrass_5) -}; - -const union AnimCmd gFieldEffectAnim_8374B40[] = { - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(2, 8), - ANIMCMD_FRAME(3, 8), - ANIMCMD_FRAME(4, 8), - ANIMCMD_FRAME(5, 8), - ANIMCMD_END -}; - -const union AnimCmd *const gFieldEffectAnimTable_JumpLongGrass[] = { - gFieldEffectAnim_8374B40 -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpLongGrass = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_JumpLongGrass, gFieldEffectPicTable_JumpLongGrass, gDummySpriteAffineAnimTable, sub_81287C4}; - -const struct SpriteFrameImage gFieldEffectPicTable_Unknown17[] = { - obj_frame_tiles(gFieldEffectPic_JumpLongGrass_5), - obj_frame_tiles(gFieldEffectPic_Unknown17_0), - obj_frame_tiles(gFieldEffectPic_Unknown17_1), - obj_frame_tiles(gFieldEffectPic_Unknown17_2), - obj_frame_tiles(gFieldEffectPic_Unknown17_3), - obj_frame_tiles(gFieldEffectPic_Unknown17_4), - obj_frame_tiles(gFieldEffectPic_Unknown17_5), - obj_frame_tiles(gFieldEffectPic_Unknown17_6), - obj_frame_tiles(gFieldEffectPic_Unknown17_7) -}; - -const union AnimCmd gFieldEffectAnim_8374BC0[] = { - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(2, 4), - ANIMCMD_FRAME(3, 4), - ANIMCMD_FRAME(4, 4), - ANIMCMD_FRAME(5, 4), - ANIMCMD_FRAME(6, 4), - ANIMCMD_FRAME(7, 4), - ANIMCMD_FRAME(8, 4), - ANIMCMD_JUMP(7) -}; - -const union AnimCmd *const gFieldEffectAnimTable_Unknown17[] = { - gFieldEffectAnim_8374BC0 -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown17 = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_Unknown17, gFieldEffectPicTable_Unknown17, gDummySpriteAffineAnimTable, sub_8128800}; - -const struct SpriteFrameImage gFieldEffectPicTable_Unknown18[] = { - obj_frame_tiles(gFieldEffectPic_Unknown18_0), - obj_frame_tiles(gFieldEffectPic_Unknown18_1), - obj_frame_tiles(gFieldEffectPic_Unknown18_2), - obj_frame_tiles(gFieldEffectPic_Unknown18_3) -}; - -const union AnimCmd gFieldEffectAnim_8374C24[] = { - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(2, 4), - ANIMCMD_FRAME(3, 4), - ANIMCMD_FRAME(2, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd *const gFieldEffectAnimTable_Unknown18[] = { - gFieldEffectAnim_8374C24 -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown18 = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_Unknown18, gFieldEffectPicTable_Unknown18, gDummySpriteAffineAnimTable, sub_8128800}; - -const struct SpriteFrameImage gFieldEffectPicTable_Unknown19[] = { - obj_frame_tiles(gFieldEffectPic_Unknown19_0), - obj_frame_tiles(gFieldEffectPic_Unknown19_1), - obj_frame_tiles(gFieldEffectPic_Unknown19_2), - obj_frame_tiles(gFieldEffectPic_Unknown19_3) -}; - -const union AnimCmd gFieldEffectAnim_8374C7C[] = { - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(2, 4), - ANIMCMD_FRAME(3, 4), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd *const gFieldEffectAnimTable_Unknown19[] = { - gFieldEffectAnim_8374C7C -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown19 = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_Unknown19, gFieldEffectPicTable_Unknown19, gDummySpriteAffineAnimTable, sub_8128800}; - -const struct SpriteFrameImage gFieldEffectPicTable_SandPile[] = { - obj_frame_tiles(gFieldEffectPic_SandPile_0), - obj_frame_tiles(gFieldEffectPic_SandPile_1), - obj_frame_tiles(gFieldEffectPic_SandPile_2) -}; - -const union AnimCmd gFieldEffectAnim_8374CC4[] = { - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(2, 4), - ANIMCMD_END -}; - -const union AnimCmd *const gFieldEffectAnimTable_SandPile[] = { - gFieldEffectAnim_8374CC4 -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_SandPile = {0xFFFF, 0x1004, &gFieldOamData_16x8, gFieldEffectAnimTable_SandPile, gFieldEffectPicTable_SandPile, gDummySpriteAffineAnimTable, sub_81282E0}; - -const struct SpriteFrameImage gFieldEffectPicTable_Unknown20[] = { - obj_frame_tiles(gFieldEffectPic_Unknown20_0), - obj_frame_tiles(gFieldEffectPic_Unknown20_1), - obj_frame_tiles(gFieldEffectPic_Unknown20_2), - obj_frame_tiles(gFieldEffectPic_Unknown20_3) -}; - -const union AnimCmd gFieldEffectAnim_8374D10[] = { - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(2, 4), - ANIMCMD_FRAME(3, 4), - ANIMCMD_FRAME(2, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd *const gFieldEffectAnimTable_Unknown20[] = { - gFieldEffectAnim_8374D10 -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown20 = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_Unknown20, gFieldEffectPicTable_Unknown20, gDummySpriteAffineAnimTable, sub_8128800}; - -const union AffineAnimCmd gFieldEffectAffineAnim_8374D48[] = { - AFFINEANIMCMD_FRAME(0xFF00, 0x100, -128, 0), - AFFINEANIMCMD_FRAME(0x1, 0x0, 0, 4), - AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), - AFFINEANIMCMD_FRAME(0xFFFF, 0x0, 0, 4), - AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), - AFFINEANIMCMD_FRAME(0xFFFF, 0x0, 0, 4), - AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), - AFFINEANIMCMD_FRAME(0x1, 0x0, 0, 4), - AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), - AFFINEANIMCMD_JUMP(1) -}; - -const union AffineAnimCmd gFieldEffectAffineAnim_8374D98[] = { - AFFINEANIMCMD_FRAME(0x100, 0x100, -128, 0), - AFFINEANIMCMD_FRAME(0xFFFF, 0x0, 0, 4), - AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), - AFFINEANIMCMD_FRAME(0x1, 0x0, 0, 4), - AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), - AFFINEANIMCMD_FRAME(0x1, 0x0, 0, 4), - AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), - AFFINEANIMCMD_FRAME(0xFFFF, 0x0, 0, 4), - AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), - AFFINEANIMCMD_JUMP(1) -}; - -const union AffineAnimCmd *const gFieldEffectAffineAnimTable_Unknown21[] = { - gFieldEffectAffineAnim_8374D48, - gFieldEffectAffineAnim_8374D98 -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown21 = {0x0, 0xFFFF, &gDummyOamData, gDummySpriteAnimTable, NULL, gFieldEffectAffineAnimTable_Unknown21, SpriteCallbackDummy}; - -const struct SpriteFrameImage gFieldEffectPicTable_BerryTreeGrowthSparkle[] = { - obj_frame_tiles(gFieldEffectPic_BerryTreeGrowthSparkle_0), - obj_frame_tiles(gFieldEffectPic_BerryTreeGrowthSparkle_1), - obj_frame_tiles(gFieldEffectPic_BerryTreeGrowthSparkle_2), - obj_frame_tiles(gFieldEffectPic_BerryTreeGrowthSparkle_3), - obj_frame_tiles(gFieldEffectPic_BerryTreeGrowthSparkle_4), - obj_frame_tiles(gFieldEffectPic_BerryTreeGrowthSparkle_5) -}; - -const union AnimCmd gFieldEffectAnim_8374E38[] = { - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(2, 8), - ANIMCMD_FRAME(3, 8), - ANIMCMD_FRAME(4, 8), - ANIMCMD_FRAME(5, 8), - ANIMCMD_LOOP(0), - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(2, 4), - ANIMCMD_FRAME(3, 4), - ANIMCMD_FRAME(4, 4), - ANIMCMD_FRAME(5, 4), - ANIMCMD_LOOP(3), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(2, 8), - ANIMCMD_FRAME(3, 8), - ANIMCMD_FRAME(4, 8), - ANIMCMD_FRAME(5, 8), - ANIMCMD_END -}; - -const union AnimCmd *const gFieldEffectAnimTable_BerryTreeGrowthSparkle[] = { - gFieldEffectAnim_8374E38 -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_BerryTreeGrowthSparkle = {0xFFFF, 0xFFFF, &gFieldOamData_16x16, gFieldEffectAnimTable_BerryTreeGrowthSparkle, gFieldEffectPicTable_BerryTreeGrowthSparkle, gDummySpriteAffineAnimTable, sub_8128800}; - -const struct SpriteFrameImage gFieldEffectPicTable_TreeDisguise[] = { - obj_frame_tiles(gFieldEffectPic_TreeDisguise_0), - obj_frame_tiles(gFieldEffectPic_TreeDisguise_1), - obj_frame_tiles(gFieldEffectPic_TreeDisguise_2), - obj_frame_tiles(gFieldEffectPic_TreeDisguise_3), - obj_frame_tiles(gFieldEffectPic_TreeDisguise_4), - obj_frame_tiles(gFieldEffectPic_TreeDisguise_5), - obj_frame_tiles(gFieldEffectPic_TreeDisguise_6) -}; - -const union AnimCmd gFieldEffectAnim_8374EE0[] = { - ANIMCMD_FRAME(0, 16), - ANIMCMD_END -}; - -const union AnimCmd gFieldEffectAnim_8374EE8[] = { - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(2, 4), - ANIMCMD_FRAME(3, 4), - ANIMCMD_FRAME(4, 4), - ANIMCMD_FRAME(5, 4), - ANIMCMD_FRAME(6, 4), - ANIMCMD_END -}; - -const union AnimCmd *const gFieldEffectAnimTable_TreeDisguise[] = { - gFieldEffectAnim_8374EE0, - gFieldEffectAnim_8374EE8 -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_TreeDisguise = {0xFFFF, 0xFFFF, &gFieldOamData_16x32, gFieldEffectAnimTable_TreeDisguise, gFieldEffectPicTable_TreeDisguise, gDummySpriteAffineAnimTable, sub_81285AC}; - -const struct SpriteFrameImage gFieldEffectPicTable_MountainDisguise[] = { - obj_frame_tiles(gFieldEffectPic_MountainDisguise_0), - obj_frame_tiles(gFieldEffectPic_MountainDisguise_1), - obj_frame_tiles(gFieldEffectPic_MountainDisguise_2), - obj_frame_tiles(gFieldEffectPic_MountainDisguise_3), - obj_frame_tiles(gFieldEffectPic_MountainDisguise_4), - obj_frame_tiles(gFieldEffectPic_MountainDisguise_5), - obj_frame_tiles(gFieldEffectPic_MountainDisguise_6) -}; - -const union AnimCmd gFieldEffectAnim_8374F60[] = { - ANIMCMD_FRAME(0, 16), - ANIMCMD_END -}; - -const union AnimCmd gFieldEffectAnim_8374F68[] = { - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(2, 4), - ANIMCMD_FRAME(3, 4), - ANIMCMD_FRAME(4, 4), - ANIMCMD_FRAME(5, 4), - ANIMCMD_FRAME(6, 4), - ANIMCMD_END -}; - -const union AnimCmd *const gFieldEffectAnimTable_MountainDisguise[] = { - gFieldEffectAnim_8374F60, - gFieldEffectAnim_8374F68 -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_MountainDisguise = {0xFFFF, 0xFFFF, &gFieldOamData_16x32, gFieldEffectAnimTable_MountainDisguise, gFieldEffectPicTable_MountainDisguise, gDummySpriteAffineAnimTable, sub_81285AC}; - -const struct SpriteFrameImage gFieldEffectPicTable_SandDisguise[] = { - obj_frame_tiles(gFieldEffectPic_SandDisguise_0), - obj_frame_tiles(gFieldEffectPic_SandDisguise_1), - obj_frame_tiles(gFieldEffectPic_SandDisguise_2), - obj_frame_tiles(gFieldEffectPic_SandDisguise_3), - obj_frame_tiles(gFieldEffectPic_SandDisguise_4), - obj_frame_tiles(gFieldEffectPic_SandDisguise_5), - obj_frame_tiles(gFieldEffectPic_SandDisguise_6) -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_SandDisguise = {0xFFFF, 0xFFFF, &gFieldOamData_16x32, gFieldEffectAnimTable_TreeDisguise, gFieldEffectPicTable_SandDisguise, gDummySpriteAffineAnimTable, sub_81285AC}; - -const struct SpriteFrameImage gFieldEffectPicTable_Bird[] = { - obj_frame_tiles(gFieldEffectPic_Bird) -}; - -const union AnimCmd gFieldEffectAnim_8375000[] = { - ANIMCMD_FRAME(0, 1), - ANIMCMD_END -}; - -const union AnimCmd *const gFieldEffectAnimTable_Bird[] = { - gFieldEffectAnim_8375000 -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_Bird = {0xFFFF, 0xFFFF, &gFieldOamData_32x32, gFieldEffectAnimTable_Bird, gFieldEffectPicTable_Bird, gDummySpriteAffineAnimTable, SpriteCallbackDummy}; - -const struct SpriteFrameImage gFieldEffectPicTable_ShortGrass[] = { - obj_frame_tiles(gFieldEffectPic_ShortGrass_0), - obj_frame_tiles(gFieldEffectPic_ShortGrass_1) -}; - -const union AnimCmd gFieldEffectAnim_8375034[] = { - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_END -}; - -const union AnimCmd *const gFieldEffectAnimTable_ShortGrass[] = { - gFieldEffectAnim_8375034 -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_ShortGrass = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_ShortGrass, gFieldEffectPicTable_ShortGrass, gDummySpriteAffineAnimTable, sub_8127334}; - -const struct SpriteFrameImage gFieldEffectPicTable_HotSpringsWater[] = { - obj_frame_tiles(gFieldEffectPic_HotSpringsWater) -}; - -const union AnimCmd gFieldEffectAnim_8375064[] = { - ANIMCMD_FRAME(0, 4), - ANIMCMD_END -}; - -const union AnimCmd *const gFieldEffectAnimTable_HotSpringsWater[] = { - gFieldEffectAnim_8375064 -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_HotSpringsWater = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_HotSpringsWater, gFieldEffectPicTable_HotSpringsWater, gDummySpriteAffineAnimTable, sub_8127A7C}; - -const struct SpriteFrameImage gFieldEffectPicTable_PopOutOfAsh[] = { - obj_frame_tiles(gFieldEffectPic_PopOutOfAsh_0), - obj_frame_tiles(gFieldEffectPic_PopOutOfAsh_1), - obj_frame_tiles(gFieldEffectPic_PopOutOfAsh_2), - obj_frame_tiles(gFieldEffectPic_PopOutOfAsh_3), - obj_frame_tiles(gFieldEffectPic_PopOutOfAsh_4) -}; - -const union AnimCmd gFieldEffectAnim_83750B0[] = { - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(2, 6), - ANIMCMD_FRAME(3, 6), - ANIMCMD_FRAME(4, 6), - ANIMCMD_END -}; - -const union AnimCmd *const gFieldEffectAnimTable_PopOutOfAsh[] = { - gFieldEffectAnim_83750B0 -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_PopOutOfAsh = {0xFFFF, 0x100D, &gFieldOamData_16x16, gFieldEffectAnimTable_PopOutOfAsh, gFieldEffectPicTable_PopOutOfAsh, gDummySpriteAffineAnimTable, sub_808788C}; - -const struct SpritePalette gFieldEffectObjectPaletteInfo2 = {gFieldEffectObjectPalette2, 0x100D}; - -const struct SpriteFrameImage gFieldEffectPicTable_LavaridgeGymWarp[] = { - obj_frame_tiles(gFieldEffectPic_LavaridgeGymWarp_0), - obj_frame_tiles(gFieldEffectPic_LavaridgeGymWarp_1), - obj_frame_tiles(gFieldEffectPic_LavaridgeGymWarp_2), - obj_frame_tiles(gFieldEffectPic_LavaridgeGymWarp_3), - obj_frame_tiles(gFieldEffectPic_LavaridgeGymWarp_4) -}; - -const union AnimCmd gFieldEffectAnim_8375114[] = { - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(2, 6), - ANIMCMD_FRAME(3, 6), - ANIMCMD_FRAME(4, 6), - ANIMCMD_END -}; - -const union AnimCmd *const gFieldEffectAnimTable_LavaridgeGymWarp[] = { - gFieldEffectAnim_8375114 -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_LavaridgeGymWarp = {0xFFFF, 0x100D, &gFieldOamData_16x16, gFieldEffectAnimTable_LavaridgeGymWarp, gFieldEffectPicTable_LavaridgeGymWarp, gDummySpriteAffineAnimTable, sub_8087638}; - -const struct SpriteFrameImage gFieldEffectPicTable_Bubbles[] = { - obj_frame_tiles(gFieldEffectPic_Bubbles_0), - obj_frame_tiles(gFieldEffectPic_Bubbles_1), - obj_frame_tiles(gFieldEffectPic_Bubbles_2), - obj_frame_tiles(gFieldEffectPic_Bubbles_3), - obj_frame_tiles(gFieldEffectPic_Bubbles_4), - obj_frame_tiles(gFieldEffectPic_Bubbles_5), - obj_frame_tiles(gFieldEffectPic_Bubbles_6), - obj_frame_tiles(gFieldEffectPic_Bubbles_7) -}; - -const union AnimCmd gFieldEffectAnim_8375188[] = { - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(2, 4), - ANIMCMD_FRAME(3, 6), - ANIMCMD_FRAME(4, 6), - ANIMCMD_FRAME(5, 4), - ANIMCMD_FRAME(6, 4), - ANIMCMD_FRAME(7, 4), - ANIMCMD_END -}; - -const union AnimCmd *const gFieldEffectAnimTable_Bubbles[] = { - gFieldEffectAnim_8375188 -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_Bubbles = {0xFFFF, 0x1004, &gFieldOamData_16x32, gFieldEffectAnimTable_Bubbles, gFieldEffectPicTable_Bubbles, gDummySpriteAffineAnimTable, sub_8128410}; - -const struct SpriteFrameImage gFieldEffectPicTable_Sparkle[] = { - obj_frame_tiles(gFieldEffectPic_Sparkle_0), - obj_frame_tiles(gFieldEffectPic_Sparkle_1) -}; - -const union AnimCmd gFieldEffectAnim_83751D8[] = { - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END -}; - -const union AnimCmd *const gFieldEffectAnimTable_Sparkle[] = { - gFieldEffectAnim_83751D8 -}; - -const struct SpriteTemplate gFieldEffectSpriteTemplate_Sparkle = {0xFFFF, 0x100F, &gFieldOamData_16x16, gFieldEffectAnimTable_Sparkle, gFieldEffectPicTable_Sparkle, gDummySpriteAffineAnimTable, sub_8128774}; - -const struct SpritePalette gFieldEffectObjectPaletteInfo3 = {gFieldEffectObjectPalette3, 0x100F}; - -#endif //POKERUBY_FIELD_EFFECT_OBJECTS_H diff --git a/include/data/field_map_obj/map_object_anims.h b/include/data/field_map_obj/map_object_anims.h deleted file mode 100644 index 0d6e299ee..000000000 --- a/include/data/field_map_obj/map_object_anims.h +++ /dev/null @@ -1,886 +0,0 @@ -// -// Created by scott on 6/17/2017. -// - -#ifndef POKERUBY_MAP_OBJECT_ANIMS_H -#define POKERUBY_MAP_OBJECT_ANIMS_H - - -const union AnimCmd gMapObjectImageAnim_83708C8[] = { - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_83708DC[] = { - ANIMCMD_FRAME(0, 16), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_83708E4[] = { - ANIMCMD_FRAME(1, 16), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_83708EC[] = { - ANIMCMD_FRAME(2, 16), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_83708F4[] = { - ANIMCMD_FRAME(2, 16, .hFlip = TRUE), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_83708FC[] = { - ANIMCMD_FRAME(3, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(3, 8, .hFlip = TRUE), - ANIMCMD_FRAME(0, 8), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370910[] = { - ANIMCMD_FRAME(4, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(4, 8, .hFlip = TRUE), - ANIMCMD_FRAME(1, 8), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370924[] = { - ANIMCMD_FRAME(5, 8), - ANIMCMD_FRAME(2, 8), - ANIMCMD_FRAME(6, 8), - ANIMCMD_FRAME(2, 8), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370938[] = { - ANIMCMD_FRAME(5, 8, .hFlip = TRUE), - ANIMCMD_FRAME(2, 8, .hFlip = TRUE), - ANIMCMD_FRAME(6, 8, .hFlip = TRUE), - ANIMCMD_FRAME(2, 8, .hFlip = TRUE), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_837094C[] = { - ANIMCMD_FRAME(3, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(3, 4, .hFlip = TRUE), - ANIMCMD_FRAME(0, 4), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370960[] = { - ANIMCMD_FRAME(4, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(4, 4, .hFlip = TRUE), - ANIMCMD_FRAME(1, 4), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370974[] = { - ANIMCMD_FRAME(5, 4), - ANIMCMD_FRAME(2, 4), - ANIMCMD_FRAME(6, 4), - ANIMCMD_FRAME(2, 4), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370988[] = { - ANIMCMD_FRAME(5, 4, .hFlip = TRUE), - ANIMCMD_FRAME(2, 4, .hFlip = TRUE), - ANIMCMD_FRAME(6, 4, .hFlip = TRUE), - ANIMCMD_FRAME(2, 4, .hFlip = TRUE), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_837099C[] = { - ANIMCMD_FRAME(3, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(3, 2, .hFlip = TRUE), - ANIMCMD_FRAME(0, 2), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_83709B0[] = { - ANIMCMD_FRAME(4, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(4, 2, .hFlip = TRUE), - ANIMCMD_FRAME(1, 2), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_83709C4[] = { - ANIMCMD_FRAME(5, 2), - ANIMCMD_FRAME(2, 2), - ANIMCMD_FRAME(6, 2), - ANIMCMD_FRAME(2, 2), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_83709D8[] = { - ANIMCMD_FRAME(5, 2, .hFlip = TRUE), - ANIMCMD_FRAME(2, 2, .hFlip = TRUE), - ANIMCMD_FRAME(6, 2, .hFlip = TRUE), - ANIMCMD_FRAME(2, 2, .hFlip = TRUE), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_83709EC[] = { - ANIMCMD_FRAME(3, 1), - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(3, 1, .hFlip = TRUE), - ANIMCMD_FRAME(0, 1), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370A00[] = { - ANIMCMD_FRAME(4, 1), - ANIMCMD_FRAME(1, 1), - ANIMCMD_FRAME(4, 1, .hFlip = TRUE), - ANIMCMD_FRAME(1, 1), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370A14[] = { - ANIMCMD_FRAME(5, 1), - ANIMCMD_FRAME(2, 1), - ANIMCMD_FRAME(6, 1), - ANIMCMD_FRAME(2, 1), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370A28[] = { - ANIMCMD_FRAME(5, 1, .hFlip = TRUE), - ANIMCMD_FRAME(2, 1, .hFlip = TRUE), - ANIMCMD_FRAME(6, 1, .hFlip = TRUE), - ANIMCMD_FRAME(2, 1, .hFlip = TRUE), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370A3C[] = { - ANIMCMD_FRAME(0, 16), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370A44[] = { - ANIMCMD_FRAME(1, 16), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370A4C[] = { - ANIMCMD_FRAME(2, 16), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370A54[] = { - ANIMCMD_FRAME(2, 16, .hFlip = TRUE), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370A5C[] = { - ANIMCMD_FRAME(3, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(4, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370A70[] = { - ANIMCMD_FRAME(5, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(6, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370A84[] = { - ANIMCMD_FRAME(7, 8), - ANIMCMD_FRAME(2, 8), - ANIMCMD_FRAME(8, 8), - ANIMCMD_FRAME(2, 8), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370A98[] = { - ANIMCMD_FRAME(7, 8, .hFlip = TRUE), - ANIMCMD_FRAME(2, 8, .hFlip = TRUE), - ANIMCMD_FRAME(8, 8, .hFlip = TRUE), - ANIMCMD_FRAME(2, 8, .hFlip = TRUE), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370AAC[] = { - ANIMCMD_FRAME(3, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(4, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370AC0[] = { - ANIMCMD_FRAME(5, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(6, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370AD4[] = { - ANIMCMD_FRAME(7, 4), - ANIMCMD_FRAME(2, 4), - ANIMCMD_FRAME(8, 4), - ANIMCMD_FRAME(2, 4), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370AE8[] = { - ANIMCMD_FRAME(7, 4, .hFlip = TRUE), - ANIMCMD_FRAME(2, 4, .hFlip = TRUE), - ANIMCMD_FRAME(8, 4, .hFlip = TRUE), - ANIMCMD_FRAME(2, 4, .hFlip = TRUE), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370AFC[] = { - ANIMCMD_FRAME(3, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(4, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370B10[] = { - ANIMCMD_FRAME(5, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(6, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370B24[] = { - ANIMCMD_FRAME(7, 2), - ANIMCMD_FRAME(2, 2), - ANIMCMD_FRAME(8, 2), - ANIMCMD_FRAME(2, 2), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370B38[] = { - ANIMCMD_FRAME(7, 2, .hFlip = TRUE), - ANIMCMD_FRAME(2, 2, .hFlip = TRUE), - ANIMCMD_FRAME(8, 2, .hFlip = TRUE), - ANIMCMD_FRAME(2, 2, .hFlip = TRUE), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370B4C[] = { - ANIMCMD_FRAME(3, 1), - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(4, 1), - ANIMCMD_FRAME(0, 1), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370B60[] = { - ANIMCMD_FRAME(5, 1), - ANIMCMD_FRAME(1, 1), - ANIMCMD_FRAME(6, 1), - ANIMCMD_FRAME(1, 1), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370B74[] = { - ANIMCMD_FRAME(7, 1), - ANIMCMD_FRAME(2, 1), - ANIMCMD_FRAME(8, 1), - ANIMCMD_FRAME(2, 1), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370B88[] = { - ANIMCMD_FRAME(7, 1, .hFlip = TRUE), - ANIMCMD_FRAME(2, 1, .hFlip = TRUE), - ANIMCMD_FRAME(8, 1, .hFlip = TRUE), - ANIMCMD_FRAME(2, 1, .hFlip = TRUE), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370B9C[] = { - ANIMCMD_FRAME(12, 5), - ANIMCMD_FRAME(9, 3), - ANIMCMD_FRAME(13, 5), - ANIMCMD_FRAME(9, 3), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370BB0[] = { - ANIMCMD_FRAME(14, 5), - ANIMCMD_FRAME(10, 3), - ANIMCMD_FRAME(15, 5), - ANIMCMD_FRAME(10, 3), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370BC4[] = { - ANIMCMD_FRAME(16, 5), - ANIMCMD_FRAME(11, 3), - ANIMCMD_FRAME(17, 5), - ANIMCMD_FRAME(11, 3), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370BD8[] = { - ANIMCMD_FRAME(16, 5, .hFlip = TRUE), - ANIMCMD_FRAME(11, 3, .hFlip = TRUE), - ANIMCMD_FRAME(17, 5, .hFlip = TRUE), - ANIMCMD_FRAME(11, 3, .hFlip = TRUE), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370BEC[] = { - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(2, 4), - ANIMCMD_FRAME(3, 4), - ANIMCMD_FRAME(4, 8), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370C04[] = { - ANIMCMD_FRAME(9, 32), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370C0C[] = { - ANIMCMD_FRAME(10, 32), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370C14[] = { - ANIMCMD_FRAME(11, 32), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370C1C[] = { - ANIMCMD_FRAME(11, 32, .hFlip = TRUE), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370C24[] = { - ANIMCMD_FRAME(9, 4), - ANIMCMD_FRAME(10, 4), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370C30[] = { - ANIMCMD_FRAME(13, 4), - ANIMCMD_FRAME(14, 4), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370C3C[] = { - ANIMCMD_FRAME(17, 4), - ANIMCMD_FRAME(18, 4), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370C48[] = { - ANIMCMD_FRAME(17, 4, .hFlip = TRUE), - ANIMCMD_FRAME(18, 4, .hFlip = TRUE), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370C54[] = { - ANIMCMD_FRAME(11, 4), - ANIMCMD_FRAME(12, 4), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370C60[] = { - ANIMCMD_FRAME(15, 4), - ANIMCMD_FRAME(16, 4), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370C6C[] = { - ANIMCMD_FRAME(19, 4), - ANIMCMD_FRAME(20, 4), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370C78[] = { - ANIMCMD_FRAME(19, 4, .hFlip = TRUE), - ANIMCMD_FRAME(20, 4, .hFlip = TRUE), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370C84[] = { - ANIMCMD_FRAME(9, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370C90[] = { - ANIMCMD_FRAME(13, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370C9C[] = { - ANIMCMD_FRAME(17, 4), - ANIMCMD_FRAME(2, 4), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370CA8[] = { - ANIMCMD_FRAME(17, 4, .hFlip = TRUE), - ANIMCMD_FRAME(2, 4, .hFlip = TRUE), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370CB4[] = { - ANIMCMD_FRAME(11, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370CC0[] = { - ANIMCMD_FRAME(15, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370CCC[] = { - ANIMCMD_FRAME(19, 4), - ANIMCMD_FRAME(2, 4), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370CD8[] = { - ANIMCMD_FRAME(19, 4, .hFlip = TRUE), - ANIMCMD_FRAME(2, 4, .hFlip = TRUE), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370CE4[] = { - ANIMCMD_FRAME(21, 4), - ANIMCMD_FRAME(10, 4), - ANIMCMD_FRAME(22, 4), - ANIMCMD_FRAME(10, 4), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370CF8[] = { - ANIMCMD_FRAME(23, 4), - ANIMCMD_FRAME(14, 4), - ANIMCMD_FRAME(24, 4), - ANIMCMD_FRAME(14, 4), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370D0C[] = { - ANIMCMD_FRAME(25, 4), - ANIMCMD_FRAME(18, 4), - ANIMCMD_FRAME(26, 4), - ANIMCMD_FRAME(18, 4), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370D20[] = { - ANIMCMD_FRAME(25, 4, .hFlip = TRUE), - ANIMCMD_FRAME(18, 4, .hFlip = TRUE), - ANIMCMD_FRAME(26, 4, .hFlip = TRUE), - ANIMCMD_FRAME(18, 4, .hFlip = TRUE), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370D34[] = { - ANIMCMD_FRAME(0, 32), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370D3C[] = { - ANIMCMD_FRAME(1, 32), - ANIMCMD_FRAME(2, 32), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370D48[] = { - ANIMCMD_FRAME(3, 48), - ANIMCMD_FRAME(4, 48), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370D54[] = { - ANIMCMD_FRAME(5, 32), - ANIMCMD_FRAME(5, 32), - ANIMCMD_FRAME(6, 32), - ANIMCMD_FRAME(6, 32), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370D68[] = { - ANIMCMD_FRAME(7, 48), - ANIMCMD_FRAME(7, 48), - ANIMCMD_FRAME(8, 48), - ANIMCMD_FRAME(8, 48), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370D7C[] = { - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(9, 32), - ANIMCMD_FRAME(0, 8), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370D8C[] = { - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(2, 8), - ANIMCMD_FRAME(3, 8), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370DA0[] = { - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(2, 6), - ANIMCMD_FRAME(3, 6), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370DB4[] = { - ANIMCMD_FRAME(8, 4), - ANIMCMD_FRAME(9, 4), - ANIMCMD_FRAME(10, 4), - ANIMCMD_FRAME(11, 4), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370DC8[] = { - ANIMCMD_FRAME(4, 4), - ANIMCMD_FRAME(5, 4), - ANIMCMD_FRAME(6, 4), - ANIMCMD_FRAME(7, 4), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370DDC[] = { - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(2, 4), - ANIMCMD_FRAME(3, 4), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370DF0[] = { - ANIMCMD_FRAME(0, 4, .hFlip = TRUE), - ANIMCMD_FRAME(1, 4, .hFlip = TRUE), - ANIMCMD_FRAME(2, 4, .hFlip = TRUE), - ANIMCMD_FRAME(3, 4, .hFlip = TRUE), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370E04[] = { - ANIMCMD_FRAME(11, 4), - ANIMCMD_FRAME(10, 6), - ANIMCMD_FRAME(9, 6), - ANIMCMD_FRAME(8, 6), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370E18[] = { - ANIMCMD_FRAME(7, 4), - ANIMCMD_FRAME(6, 6), - ANIMCMD_FRAME(5, 6), - ANIMCMD_FRAME(4, 6), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370E2C[] = { - ANIMCMD_FRAME(3, 4), - ANIMCMD_FRAME(2, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370E40[] = { - ANIMCMD_FRAME(3, 4, .hFlip = TRUE), - ANIMCMD_FRAME(2, 4, .hFlip = TRUE), - ANIMCMD_FRAME(1, 4, .hFlip = TRUE), - ANIMCMD_FRAME(0, 4, .hFlip = TRUE), - ANIMCMD_END -}; - -const union AnimCmd gMapObjectImageAnim_8370E54[] = { - ANIMCMD_FRAME(10, 6), - ANIMCMD_FRAME(11, 6), - ANIMCMD_LOOP(1), - ANIMCMD_FRAME(11, 30), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370E68[] = { - ANIMCMD_FRAME(6, 6), - ANIMCMD_FRAME(7, 6), - ANIMCMD_LOOP(1), - ANIMCMD_FRAME(7, 30), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370E7C[] = { - ANIMCMD_FRAME(2, 6), - ANIMCMD_FRAME(3, 6), - ANIMCMD_LOOP(1), - ANIMCMD_FRAME(3, 30), - ANIMCMD_JUMP(0) -}; - -const union AnimCmd gMapObjectImageAnim_8370E90[] = { - ANIMCMD_FRAME(2, 6, .hFlip = TRUE), - ANIMCMD_FRAME(3, 6, .hFlip = TRUE), - ANIMCMD_LOOP(1), - ANIMCMD_FRAME(3, 30, .hFlip = TRUE), - ANIMCMD_JUMP(0) -}; - -const union AffineAnimCmd gMapObjectRotScalAnim_8370EA4[] = { - AFFINEANIMCMD_FRAME(0x0, 0x0, 1, 1), - AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1), - AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1), - AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1), - AFFINEANIMCMD_LOOP(7), - AFFINEANIMCMD_JUMP(0) -}; - -const union AffineAnimCmd gMapObjectRotScalAnim_8370ED4[] = { - AFFINEANIMCMD_FRAME(0x0, 0x0, -1, 1), - AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1), - AFFINEANIMCMD_LOOP(15), - AFFINEANIMCMD_FRAME(0x0, 0x0, 1, 1), - AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1), - AFFINEANIMCMD_LOOP(15), - AFFINEANIMCMD_JUMP(0) -}; - -const union AnimCmd *const gMapObjectImageAnimTable_Inanimate[] = { - gMapObjectImageAnim_83708C8 -}; - -const union AnimCmd *const gMapObjectImageAnimTable_QuintyPlump[] = { - gMapObjectImageAnim_83708DC, - gMapObjectImageAnim_83708E4, - gMapObjectImageAnim_83708EC, - gMapObjectImageAnim_83708F4, - gMapObjectImageAnim_83708FC, - gMapObjectImageAnim_8370910, - gMapObjectImageAnim_8370924, - gMapObjectImageAnim_8370938, - gMapObjectImageAnim_837094C, - gMapObjectImageAnim_8370960, - gMapObjectImageAnim_8370974, - gMapObjectImageAnim_8370988, - gMapObjectImageAnim_837099C, - gMapObjectImageAnim_83709B0, - gMapObjectImageAnim_83709C4, - gMapObjectImageAnim_83709D8, - gMapObjectImageAnim_83709EC, - gMapObjectImageAnim_8370A00, - gMapObjectImageAnim_8370A14, - gMapObjectImageAnim_8370A28 -}; - -const union AnimCmd *const gMapObjectImageAnimTable_Standard[] = { - gMapObjectImageAnim_8370A3C, - gMapObjectImageAnim_8370A44, - gMapObjectImageAnim_8370A4C, - gMapObjectImageAnim_8370A54, - gMapObjectImageAnim_8370A5C, - gMapObjectImageAnim_8370A70, - gMapObjectImageAnim_8370A84, - gMapObjectImageAnim_8370A98, - gMapObjectImageAnim_8370AAC, - gMapObjectImageAnim_8370AC0, - gMapObjectImageAnim_8370AD4, - gMapObjectImageAnim_8370AE8, - gMapObjectImageAnim_8370AFC, - gMapObjectImageAnim_8370B10, - gMapObjectImageAnim_8370B24, - gMapObjectImageAnim_8370B38, - gMapObjectImageAnim_8370B4C, - gMapObjectImageAnim_8370B60, - gMapObjectImageAnim_8370B74, - gMapObjectImageAnim_8370B88 -}; - -const union AnimCmd *const gMapObjectImageAnimTable_BrendanMayNormal[] = { - gMapObjectImageAnim_8370A3C, - gMapObjectImageAnim_8370A44, - gMapObjectImageAnim_8370A4C, - gMapObjectImageAnim_8370A54, - gMapObjectImageAnim_8370A5C, - gMapObjectImageAnim_8370A70, - gMapObjectImageAnim_8370A84, - gMapObjectImageAnim_8370A98, - gMapObjectImageAnim_8370AAC, - gMapObjectImageAnim_8370AC0, - gMapObjectImageAnim_8370AD4, - gMapObjectImageAnim_8370AE8, - gMapObjectImageAnim_8370AFC, - gMapObjectImageAnim_8370B10, - gMapObjectImageAnim_8370B24, - gMapObjectImageAnim_8370B38, - gMapObjectImageAnim_8370B4C, - gMapObjectImageAnim_8370B60, - gMapObjectImageAnim_8370B74, - gMapObjectImageAnim_8370B88, - gMapObjectImageAnim_8370B9C, - gMapObjectImageAnim_8370BB0, - gMapObjectImageAnim_8370BC4, - gMapObjectImageAnim_8370BD8 -}; - -const union AnimCmd *const gMapObjectImageAnimTable_AcroBike[] = { - gMapObjectImageAnim_8370A3C, - gMapObjectImageAnim_8370A44, - gMapObjectImageAnim_8370A4C, - gMapObjectImageAnim_8370A54, - gMapObjectImageAnim_8370A5C, - gMapObjectImageAnim_8370A70, - gMapObjectImageAnim_8370A84, - gMapObjectImageAnim_8370A98, - gMapObjectImageAnim_8370AAC, - gMapObjectImageAnim_8370AC0, - gMapObjectImageAnim_8370AD4, - gMapObjectImageAnim_8370AE8, - gMapObjectImageAnim_8370AFC, - gMapObjectImageAnim_8370B10, - gMapObjectImageAnim_8370B24, - gMapObjectImageAnim_8370B38, - gMapObjectImageAnim_8370B4C, - gMapObjectImageAnim_8370B60, - gMapObjectImageAnim_8370B74, - gMapObjectImageAnim_8370B88, - gMapObjectImageAnim_8370C24, - gMapObjectImageAnim_8370C30, - gMapObjectImageAnim_8370C3C, - gMapObjectImageAnim_8370C48, - gMapObjectImageAnim_8370C54, - gMapObjectImageAnim_8370C60, - gMapObjectImageAnim_8370C6C, - gMapObjectImageAnim_8370C78, - gMapObjectImageAnim_8370C84, - gMapObjectImageAnim_8370C90, - gMapObjectImageAnim_8370C9C, - gMapObjectImageAnim_8370CA8, - gMapObjectImageAnim_8370CB4, - gMapObjectImageAnim_8370CC0, - gMapObjectImageAnim_8370CCC, - gMapObjectImageAnim_8370CD8, - gMapObjectImageAnim_8370CE4, - gMapObjectImageAnim_8370CF8, - gMapObjectImageAnim_8370D0C, - gMapObjectImageAnim_8370D20 -}; - -const union AnimCmd *const gMapObjectImageAnimTable_Surfing[] = { - gMapObjectImageAnim_8370A3C, - gMapObjectImageAnim_8370A44, - gMapObjectImageAnim_8370A4C, - gMapObjectImageAnim_8370A54, - gMapObjectImageAnim_8370A5C, - gMapObjectImageAnim_8370A70, - gMapObjectImageAnim_8370A84, - gMapObjectImageAnim_8370A98, - gMapObjectImageAnim_8370AAC, - gMapObjectImageAnim_8370AC0, - gMapObjectImageAnim_8370AD4, - gMapObjectImageAnim_8370AE8, - gMapObjectImageAnim_8370AFC, - gMapObjectImageAnim_8370B10, - gMapObjectImageAnim_8370B24, - gMapObjectImageAnim_8370B38, - gMapObjectImageAnim_8370B4C, - gMapObjectImageAnim_8370B60, - gMapObjectImageAnim_8370B74, - gMapObjectImageAnim_8370B88, - gMapObjectImageAnim_8370C04, - gMapObjectImageAnim_8370C0C, - gMapObjectImageAnim_8370C14, - gMapObjectImageAnim_8370C1C -}; - -const union AnimCmd *const gMapObjectImageAnimTable_Nurse[] = { - gMapObjectImageAnim_8370A3C, - gMapObjectImageAnim_8370A44, - gMapObjectImageAnim_8370A4C, - gMapObjectImageAnim_8370A54, - gMapObjectImageAnim_8370A5C, - gMapObjectImageAnim_8370A70, - gMapObjectImageAnim_8370A84, - gMapObjectImageAnim_8370A98, - gMapObjectImageAnim_8370AAC, - gMapObjectImageAnim_8370AC0, - gMapObjectImageAnim_8370AD4, - gMapObjectImageAnim_8370AE8, - gMapObjectImageAnim_8370AFC, - gMapObjectImageAnim_8370B10, - gMapObjectImageAnim_8370B24, - gMapObjectImageAnim_8370B38, - gMapObjectImageAnim_8370B4C, - gMapObjectImageAnim_8370B60, - gMapObjectImageAnim_8370B74, - gMapObjectImageAnim_8370B88, - gMapObjectImageAnim_8370D7C -}; - -const union AnimCmd *const gMapObjectImageAnimTable_FieldMove[] = { - gMapObjectImageAnim_8370BEC -}; - -const union AnimCmd *const gMapObjectImageAnimTable_BerryTree[] = { - gMapObjectImageAnim_8370D34, - gMapObjectImageAnim_8370D3C, - gMapObjectImageAnim_8370D48, - gMapObjectImageAnim_8370D54, - gMapObjectImageAnim_8370D68 -}; - -const union AnimCmd *const gMapObjectImageAnimTable_BreakableRock[] = { - gMapObjectImageAnim_83708C8, - gMapObjectImageAnim_8370D8C -}; - -const union AnimCmd *const gMapObjectImageAnimTable_CuttableTree[] = { - gMapObjectImageAnim_83708C8, - gMapObjectImageAnim_8370DA0 -}; - -const union AnimCmd *const gMapObjectImageAnimTable_Fishing[] = { - gMapObjectImageAnim_8370DB4, - gMapObjectImageAnim_8370DC8, - gMapObjectImageAnim_8370DDC, - gMapObjectImageAnim_8370DF0, - gMapObjectImageAnim_8370E04, - gMapObjectImageAnim_8370E18, - gMapObjectImageAnim_8370E2C, - gMapObjectImageAnim_8370E40, - gMapObjectImageAnim_8370E54, - gMapObjectImageAnim_8370E68, - gMapObjectImageAnim_8370E7C, - gMapObjectImageAnim_8370E90 -}; - -const union AffineAnimCmd *const gMapObjectRotScalAnimTable_KyogreGroudon[] = { - gMapObjectRotScalAnim_8370EA4, - gMapObjectRotScalAnim_8370ED4 -}; - -#endif //POKERUBY_MAP_OBJECT_ANIMS_H diff --git a/include/data/field_map_obj/map_object_graphics_info.h b/include/data/field_map_obj/map_object_graphics_info.h deleted file mode 100644 index 818c5b90c..000000000 --- a/include/data/field_map_obj/map_object_graphics_info.h +++ /dev/null @@ -1,227 +0,0 @@ -// -// Created by scott on 6/17/2017. -// - -#ifndef POKERUBY_MAP_OBJECT_GRAPHICS_INFO_H -#define POKERUBY_MAP_OBJECT_GRAPHICS_INFO_H - -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanNormal = {0xffff, 0x1100, 0x1102, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_BrendanMayNormal, gMapObjectPicTable_BrendanNormal, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanMachBike = {0xffff, 0x1100, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_BrendanMachBike, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanAcroBike = {0xffff, 0x1100, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_AcroBike, gMapObjectPicTable_BrendanAcroBike, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanSurfing = {0xffff, 0x1100, 0x11ff, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Surfing, gMapObjectPicTable_BrendanSurfing, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanFieldMove = {0xffff, 0x1100, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_FieldMove, gMapObjectPicTable_BrendanFieldMove, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_QuintyPlump = {0xffff, 0x110b, 0x11ff, 512, 32, 32, 10, SHADOW_SIZE_L, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_QuintyPlump, gMapObjectPicTable_QuintyPlump, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleBoy1 = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_LittleBoy1, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleGirl1 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_LittleGirl1, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy1 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Boy1, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Girl1 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Girl1, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy2 = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Boy2, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Girl2 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Girl2, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleBoy2 = {0xffff, 0x1106, 0x11ff, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_LittleBoy2, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleGirl2 = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_LittleGirl2, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy3 = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Boy3, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Girl3 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Girl3, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy4 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Boy4, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman1 = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Woman1, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_FatMan = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_FatMan, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman2 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Woman2, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man1 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Man1, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman3 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Woman3, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_OldMan1 = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_OldMan1, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_OldWoman1 = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_OldWoman1, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man2 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Man2, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman4 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Woman4, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man3 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Man3, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman5 = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Woman5, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Cook = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Cook, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman6 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Woman6, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_OldMan2 = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_OldMan2, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_OldWoman2 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_OldWoman2, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Camper = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Camper, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Picnicker = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Picnicker, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man4 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Man4, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman7 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Woman7, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Youngster = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Youngster, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BugCatcher = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_BugCatcher, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PsychicM = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_PsychicM, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SchoolKidM = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_SchoolKidM, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Maniac = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Maniac, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_HexManiac = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_HexManiac, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman8 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Woman8, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SwimmerM = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_SwimmerM, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SwimmerF = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_SwimmerF, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BlackBelt = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_BlackBelt, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Beauty = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Beauty, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Scientist1 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Scientist1, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Lass = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Lass, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Gentleman = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Gentleman, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Sailor = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Sailor, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Fisherman = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Fisherman, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RunningTriathleteM = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_RunningTriathleteM, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RunningTriathleteF = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_RunningTriathleteF, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TuberF = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_TuberF, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TuberM = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_TuberM, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Hiker = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Hiker, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CyclingTriathleteM = {0xffff, 0x1105, 0x11ff, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_AcroBike, gMapObjectPicTable_CyclingTriathleteM, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CyclingTriathleteF = {0xffff, 0x1103, 0x11ff, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_AcroBike, gMapObjectPicTable_CyclingTriathleteF, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Nurse = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Nurse, gMapObjectPicTable_Nurse, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ItemBall = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_ItemBall, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BerryTree = {0xffff, 0x1103, 0x11ff, 256, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, NULL, gMapObjectImageAnimTable_BerryTree, gMapObjectPicTable_PechaBerryTree, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BerryTreeEarlyStages = {0xffff, 0x1103, 0x11ff, 256, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_BerryTree, gMapObjectPicTable_PechaBerryTree, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BerryTreeLateStages = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_BerryTree, gMapObjectPicTable_PechaBerryTree, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ProfBirch = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_ProfBirch, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man5 = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Man5, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man6 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Man6, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ReporterM = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_ReporterM, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ReporterF = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_ReporterF, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Bard = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Hipster = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Trader = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Storyteller = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Giddy = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedMauvilleOldMan1 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedMauvilleOldMan2 = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedNatuDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_UnusedNatuDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedMagnemiteDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_UnusedMagnemiteDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedSquirtleDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_UnusedSquirtleDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedWooperDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_UnusedWooperDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedPikachuDoll = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_UnusedPikachuDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedPorygon2Doll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_UnusedPorygon2Doll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CuttableTree = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_CuttableTree, gMapObjectPicTable_CuttableTree, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MartEmployee = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MartEmployee, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RooftopSaleWoman = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_RooftopSaleWoman, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Teala = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Teala, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BreakableRock = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_BreakableRock, gMapObjectPicTable_BreakableRock, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PushableBoulder = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_PushableBoulder, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MrBrineysBoat = {0xffff, 0x1105, 0x11ff, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MrBrineysBoat, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayNormal = {0xffff, 0x1110, 0x1102, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_BrendanMayNormal, gMapObjectPicTable_MayNormal, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayMachBike = {0xffff, 0x1110, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MayMachBike, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayAcroBike = {0xffff, 0x1110, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_AcroBike, gMapObjectPicTable_MayAcroBike, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MaySurfing = {0xffff, 0x1110, 0x11ff, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Surfing, gMapObjectPicTable_MaySurfing, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayFieldMove = {0xffff, 0x1110, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_FieldMove, gMapObjectPicTable_MayFieldMove, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Truck = {0xffff, 0x110d, 0x11ff, 1152, 48, 48, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_Truck, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_Truck, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MachokeCarryingBox = {0xffff, 0x110e, 0x11ff, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MachokeCarryingBox, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MachokeFacingAway = {0xffff, 0x110e, 0x11ff, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MachokeFacingAway, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BirchsBag = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BirchsBag, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Poochyena = {0xffff, 0x110f, 0x11ff, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Poochyena, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Artist = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Artist, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanNormal = {0xffff, 0x1100, 0x1102, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_BrendanMayNormal, gMapObjectPicTable_BrendanNormal, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanMachBike = {0xffff, 0x1100, 0x1102, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_BrendanMachBike, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanAcroBike = {0xffff, 0x1100, 0x1102, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_AcroBike, gMapObjectPicTable_BrendanAcroBike, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanSurfing = {0xffff, 0x1100, 0x11ff, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Surfing, gMapObjectPicTable_BrendanSurfing, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanFieldMove = {0xffff, 0x1100, 0x1102, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_FieldMove, gMapObjectPicTable_BrendanFieldMove, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMayNormal = {0xffff, 0x1110, 0x1102, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_BrendanMayNormal, gMapObjectPicTable_MayNormal, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMayMachBike = {0xffff, 0x1110, 0x1102, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MayMachBike, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMayAcroBike = {0xffff, 0x1110, 0x1102, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_AcroBike, gMapObjectPicTable_MayAcroBike, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMaySurfing = {0xffff, 0x1110, 0x11ff, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Surfing, gMapObjectPicTable_MaySurfing, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMayFieldMove = {0xffff, 0x1110, 0x1102, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_FieldMove, gMapObjectPicTable_MayFieldMove, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Cameraman = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Cameraman, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanUnderwater = {0xffff, 0x1115, 0x11ff, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_BrendanUnderwater, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayUnderwater = {0xffff, 0x1115, 0x11ff, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MayUnderwater, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MovingBox = {0xffff, 0x1112, 0x11ff, 128, 16, 16, 10, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_MovingBox, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CableCar = {0xffff, 0x1113, 0x11ff, 2048, 64, 64, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_64x64, gMapObjectSubspriteTables_CableCar, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_CableCar, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Scientist2 = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Scientist2, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man7 = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Man7, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_AquaMemberM = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_AquaMemberM, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_AquaMemberF = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_AquaMemberF, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MagmaMemberM = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MagmaMemberM, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MagmaMemberF = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MagmaMemberF, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Sidney = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Sidney, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Phoebe = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Phoebe, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Glacia = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Glacia, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Drake = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Drake, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Roxanne = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Roxanne, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Brawly = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Brawly, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Wattson = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Wattson, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Flannery = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Flannery, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Norman = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Norman, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Winona = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Winona, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Liza = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Liza, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Tate = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Tate, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Wallace = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Wallace, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Steven = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Steven, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Wally = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Wally, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleBoy3 = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_LittleBoy3, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanFishing = {0xffff, 0x1100, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Fishing, gMapObjectPicTable_BrendanFishing, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayFishing = {0xffff, 0x1110, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Fishing, gMapObjectPicTable_MayFishing, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_HotSpringsOldWoman = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_HotSpringsOldWoman, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SSTidal = {0xffff, 0x1114, 0x11ff, 1920, 96, 40, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gFieldOamData_8x8, gMapObjectSubspriteTables_SSTidal, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_SSTidal, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SubmarineShadow = {0xffff, 0x111a, 0x11ff, 1408, 88, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gFieldOamData_8x8, gMapObjectSubspriteTables_SubmarineShadow, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_SubmarineShadow, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PichuDoll = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_PichuDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PikachuDoll = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_PikachuDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MarillDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_MarillDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TogepiDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_TogepiDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CyndaquilDoll = {0xffff, 0x1106, 0x11ff, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_CyndaquilDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ChikoritaDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_ChikoritaDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TotodileDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_TotodileDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_JigglypuffDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_JigglypuffDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MeowthDoll = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_MeowthDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ClefairyDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_ClefairyDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_DittoDoll = {0xffff, 0x1106, 0x11ff, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_DittoDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SmoochumDoll = {0xffff, 0x1106, 0x11ff, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_SmoochumDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TreeckoDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_TreeckoDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TorchicDoll = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_TorchicDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MudkipDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_MudkipDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_DuskullDoll = {0xffff, 0x1106, 0x11ff, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_DuskullDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_WynautDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_WynautDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BaltoyDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BaltoyDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_KecleonDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_KecleonDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_AzurillDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_AzurillDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SkittyDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_SkittyDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SwabluDoll = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_SwabluDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_GulpinDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_GulpinDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LotadDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_LotadDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SeedotDoll = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_SeedotDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PikaCushion = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_PikaCushion, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RoundCushion = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_RoundCushion, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_KissCushion = {0xffff, 0x1106, 0x11ff, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_KissCushion, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ZigzagCushion = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_ZigzagCushion, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SpinCushion = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_SpinCushion, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_DiamondCushion = {0xffff, 0x1106, 0x11ff, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_DiamondCushion, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BallCushion = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BallCushion, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_GrassCushion = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_GrassCushion, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_FireCushion = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_FireCushion, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_WaterCushion = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_WaterCushion, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigSnorlaxDoll = {0xffff, 0x1106, 0x11ff, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigSnorlaxDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigRhydonDoll = {0xffff, 0x1106, 0x11ff, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigRhydonDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigLaprasDoll = {0xffff, 0x1103, 0x11ff, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigLaprasDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigVenusaurDoll = {0xffff, 0x1105, 0x11ff, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigVenusaurDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigCharizardDoll = {0xffff, 0x1104, 0x11ff, 512, 32, 32, 3, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigCharizardDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigBlastoiseDoll = {0xffff, 0x1103, 0x11ff, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigBlastoiseDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigWailmerDoll = {0xffff, 0x1106, 0x11ff, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigWailmerDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigRegirockDoll = {0xffff, 0x1103, 0x11ff, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigRegirockDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigRegiceDoll = {0xffff, 0x1105, 0x11ff, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigRegiceDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigRegisteelDoll = {0xffff, 0x1106, 0x11ff, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BigRegisteelDoll, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Latias = {0xffff, 0x1104, 0x11ff, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_LatiasLatios, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Latios = {0xffff, 0x1103, 0x11ff, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_LatiasLatios, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy5 = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Boy5, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ContestJudge = {0xffff, 0x1105, 0x11ff, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_ContestJudge, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanWatering = {0xffff, 0x1100, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_BrendanWatering, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayWatering = {0xffff, 0x1110, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_MayWatering, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanDecorating = {0xffff, 0x1100, 0x1102, 256, 16, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_BrendanDecorating, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayDecorating = {0xffff, 0x1110, 0x1102, 256, 16, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_MayDecorating, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Archie = {0xffff, 0x1103, 0x11ff, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Archie, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Maxie = {0xffff, 0x1104, 0x11ff, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Maxie, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Kyogre1 = {0xffff, 0x1106, 0x11ff, 512, 32, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Kyogre, gMapObjectRotScalAnimTable_KyogreGroudon}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Groudon1 = {0xffff, 0x1105, 0x11ff, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Groudon, gMapObjectRotScalAnimTable_KyogreGroudon}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Fossil = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Inanimate, gMapObjectPicTable_Fossil, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Regirock = {0xffff, 0x1104, 0x11ff, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Regi, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Regice = {0xffff, 0x1105, 0x11ff, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Regi, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Registeel = {0xffff, 0x1106, 0x11ff, 512, 32, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Regi, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Skitty = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Skitty, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Kecleon1 = {0xffff, 0x1105, 0x11ff, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Kecleon, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Kyogre2 = {0xffff, 0x1116, 0x11ff, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Kyogre, gMapObjectRotScalAnimTable_KyogreGroudon}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Groudon2 = {0xffff, 0x1118, 0x11ff, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Groudon, gMapObjectRotScalAnimTable_KyogreGroudon}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Rayquaza = {0xffff, 0x1105, 0x11ff, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_32x32, gMapObjectSubspriteTables_32x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Rayquaza, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Zigzagoon = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Zigzagoon, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Pikachu = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Pikachu, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Azumarill = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Azumarill, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Wingull = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Wingull, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Kecleon2 = {0xffff, 0x1105, 0x1102, 128, 16, 16, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Kecleon, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TuberMSwimming = {0xffff, 0x1104, 0x11ff, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_TuberMSwimming, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Azurill = {0xffff, 0x1103, 0x11ff, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x16, gMapObjectSubspriteTables_16x16, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Azurill, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Mom = {0xffff, 0x1106, 0x11ff, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_Standard, gMapObjectPicTable_Mom, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LinkBrendan = {0xffff, 0x1110, 0x1102, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_BrendanMayNormal, gMapObjectPicTable_BrendanNormal, gDummySpriteAffineAnimTable}; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LinkMay = {0xffff, 0x1110, 0x1102, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gFieldOamData_16x32, gMapObjectSubspriteTables_16x32, gMapObjectImageAnimTable_BrendanMayNormal, gMapObjectPicTable_MayNormal, gDummySpriteAffineAnimTable}; - -#endif //POKERUBY_MAP_OBJECT_GRAPHICS_INFO_H diff --git a/include/data/field_map_obj/map_object_graphics_info_pointers.h b/include/data/field_map_obj/map_object_graphics_info_pointers.h deleted file mode 100644 index c36827709..000000000 --- a/include/data/field_map_obj/map_object_graphics_info_pointers.h +++ /dev/null @@ -1,448 +0,0 @@ -// -// Created by scott on 6/17/2017. -// - -#ifndef POKERUBY_MAP_OBJECT_GRAPHICS_INFO_POINTERS_H -#define POKERUBY_MAP_OBJECT_GRAPHICS_INFO_POINTERS_H - -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanNormal; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanMachBike; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanSurfing; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanFieldMove; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_QuintyPlump; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleBoy1; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleGirl1; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy1; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Girl1; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy2; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Girl2; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleBoy2; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleGirl2; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy3; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Girl3; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy4; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman1; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_FatMan; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman2; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man1; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman3; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_OldMan1; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_OldWoman1; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man2; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman4; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man3; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman5; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Cook; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman6; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_OldMan2; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_OldWoman2; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Camper; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Picnicker; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man4; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman7; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Youngster; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BugCatcher; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PsychicM; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SchoolKidM; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Maniac; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_HexManiac; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Woman8; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SwimmerM; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SwimmerF; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BlackBelt; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Beauty; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Scientist1; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Lass; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Gentleman; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Sailor; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Fisherman; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RunningTriathleteM; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RunningTriathleteF; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TuberF; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TuberM; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Hiker; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CyclingTriathleteM; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CyclingTriathleteF; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Nurse; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ItemBall; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BerryTree; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BerryTreeEarlyStages; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BerryTreeLateStages; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanAcroBike; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ProfBirch; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man5; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man6; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ReporterM; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ReporterF; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Bard; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Hipster; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Trader; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Storyteller; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Giddy; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedMauvilleOldMan1; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedMauvilleOldMan2; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedNatuDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedMagnemiteDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedSquirtleDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedWooperDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedPikachuDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_UnusedPorygon2Doll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CuttableTree; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MartEmployee; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RooftopSaleWoman; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Teala; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BreakableRock; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PushableBoulder; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MrBrineysBoat; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayNormal; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayMachBike; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayAcroBike; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MaySurfing; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayFieldMove; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Truck; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MachokeCarryingBox; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MachokeFacingAway; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BirchsBag; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Poochyena; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Artist; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanNormal; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanMachBike; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanAcroBike; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanSurfing; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalBrendanFieldMove; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMayNormal; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMayMachBike; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMayAcroBike; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMaySurfing; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RivalMayFieldMove; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Cameraman; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanUnderwater; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayUnderwater; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MovingBox; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CableCar; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Scientist2; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Man7; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_AquaMemberM; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_AquaMemberF; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MagmaMemberM; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MagmaMemberF; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Sidney; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Phoebe; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Glacia; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Drake; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Roxanne; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Brawly; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Wattson; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Flannery; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Norman; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Winona; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Liza; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Tate; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Wallace; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Steven; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Wally; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LittleBoy3; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanFishing; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayFishing; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_HotSpringsOldWoman; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SSTidal; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SubmarineShadow; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PichuDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PikachuDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MarillDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TogepiDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_CyndaquilDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ChikoritaDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TotodileDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_JigglypuffDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MeowthDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ClefairyDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_DittoDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SmoochumDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TreeckoDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TorchicDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MudkipDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_DuskullDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_WynautDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BaltoyDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_KecleonDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_AzurillDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SkittyDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SwabluDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_GulpinDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LotadDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SeedotDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_PikaCushion; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_RoundCushion; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_KissCushion; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ZigzagCushion; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_SpinCushion; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_DiamondCushion; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BallCushion; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_GrassCushion; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_FireCushion; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_WaterCushion; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigSnorlaxDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigRhydonDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigLaprasDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigVenusaurDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigCharizardDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigBlastoiseDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigWailmerDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigRegirockDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigRegiceDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BigRegisteelDoll; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Latias; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Latios; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Boy5; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_ContestJudge; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanWatering; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayWatering; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_BrendanDecorating; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_MayDecorating; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Archie; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Maxie; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Kyogre1; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Groudon1; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Fossil; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Regirock; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Regice; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Registeel; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Skitty; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Kecleon1; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Kyogre2; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Groudon2; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Rayquaza; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Zigzagoon; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Pikachu; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Azumarill; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Wingull; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Kecleon2; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_TuberMSwimming; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Azurill; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_Mom; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LinkBrendan; -const struct MapObjectGraphicsInfo gMapObjectGraphicsInfo_LinkMay; - -const struct MapObjectGraphicsInfo *const gMapObjectGraphicsInfoPointers[] = { - &gMapObjectGraphicsInfo_BrendanNormal, - &gMapObjectGraphicsInfo_BrendanMachBike, - &gMapObjectGraphicsInfo_BrendanSurfing, - &gMapObjectGraphicsInfo_BrendanFieldMove, - &gMapObjectGraphicsInfo_QuintyPlump, - &gMapObjectGraphicsInfo_LittleBoy1, - &gMapObjectGraphicsInfo_LittleGirl1, - &gMapObjectGraphicsInfo_Boy1, - &gMapObjectGraphicsInfo_Girl1, - &gMapObjectGraphicsInfo_Boy2, - &gMapObjectGraphicsInfo_Girl2, - &gMapObjectGraphicsInfo_LittleBoy2, - &gMapObjectGraphicsInfo_LittleGirl2, - &gMapObjectGraphicsInfo_Boy3, - &gMapObjectGraphicsInfo_Girl3, - &gMapObjectGraphicsInfo_Boy4, - &gMapObjectGraphicsInfo_Woman1, - &gMapObjectGraphicsInfo_FatMan, - &gMapObjectGraphicsInfo_Woman2, - &gMapObjectGraphicsInfo_Man1, - &gMapObjectGraphicsInfo_Woman3, - &gMapObjectGraphicsInfo_OldMan1, - &gMapObjectGraphicsInfo_OldWoman1, - &gMapObjectGraphicsInfo_Man2, - &gMapObjectGraphicsInfo_Woman4, - &gMapObjectGraphicsInfo_Man3, - &gMapObjectGraphicsInfo_Woman5, - &gMapObjectGraphicsInfo_Cook, - &gMapObjectGraphicsInfo_Woman6, - &gMapObjectGraphicsInfo_OldMan2, - &gMapObjectGraphicsInfo_OldWoman2, - &gMapObjectGraphicsInfo_Camper, - &gMapObjectGraphicsInfo_Picnicker, - &gMapObjectGraphicsInfo_Man4, - &gMapObjectGraphicsInfo_Woman7, - &gMapObjectGraphicsInfo_Youngster, - &gMapObjectGraphicsInfo_BugCatcher, - &gMapObjectGraphicsInfo_PsychicM, - &gMapObjectGraphicsInfo_SchoolKidM, - &gMapObjectGraphicsInfo_Maniac, - &gMapObjectGraphicsInfo_HexManiac, - &gMapObjectGraphicsInfo_Woman8, - &gMapObjectGraphicsInfo_SwimmerM, - &gMapObjectGraphicsInfo_SwimmerF, - &gMapObjectGraphicsInfo_BlackBelt, - &gMapObjectGraphicsInfo_Beauty, - &gMapObjectGraphicsInfo_Scientist1, - &gMapObjectGraphicsInfo_Lass, - &gMapObjectGraphicsInfo_Gentleman, - &gMapObjectGraphicsInfo_Sailor, - &gMapObjectGraphicsInfo_Fisherman, - &gMapObjectGraphicsInfo_RunningTriathleteM, - &gMapObjectGraphicsInfo_RunningTriathleteF, - &gMapObjectGraphicsInfo_TuberF, - &gMapObjectGraphicsInfo_TuberM, - &gMapObjectGraphicsInfo_Hiker, - &gMapObjectGraphicsInfo_CyclingTriathleteM, - &gMapObjectGraphicsInfo_CyclingTriathleteF, - &gMapObjectGraphicsInfo_Nurse, - &gMapObjectGraphicsInfo_ItemBall, - &gMapObjectGraphicsInfo_BerryTree, - &gMapObjectGraphicsInfo_BerryTreeEarlyStages, - &gMapObjectGraphicsInfo_BerryTreeLateStages, - &gMapObjectGraphicsInfo_BrendanAcroBike, - &gMapObjectGraphicsInfo_ProfBirch, - &gMapObjectGraphicsInfo_Man5, - &gMapObjectGraphicsInfo_Man6, - &gMapObjectGraphicsInfo_ReporterM, - &gMapObjectGraphicsInfo_ReporterF, - &gMapObjectGraphicsInfo_Bard, - &gMapObjectGraphicsInfo_Hipster, - &gMapObjectGraphicsInfo_Trader, - &gMapObjectGraphicsInfo_Storyteller, - &gMapObjectGraphicsInfo_Giddy, - &gMapObjectGraphicsInfo_UnusedMauvilleOldMan1, - &gMapObjectGraphicsInfo_UnusedMauvilleOldMan2, - &gMapObjectGraphicsInfo_UnusedNatuDoll, - &gMapObjectGraphicsInfo_UnusedMagnemiteDoll, - &gMapObjectGraphicsInfo_UnusedSquirtleDoll, - &gMapObjectGraphicsInfo_UnusedWooperDoll, - &gMapObjectGraphicsInfo_UnusedPikachuDoll, - &gMapObjectGraphicsInfo_UnusedPorygon2Doll, - &gMapObjectGraphicsInfo_CuttableTree, - &gMapObjectGraphicsInfo_MartEmployee, - &gMapObjectGraphicsInfo_RooftopSaleWoman, - &gMapObjectGraphicsInfo_Teala, - &gMapObjectGraphicsInfo_BreakableRock, - &gMapObjectGraphicsInfo_PushableBoulder, - &gMapObjectGraphicsInfo_MrBrineysBoat, - &gMapObjectGraphicsInfo_MayNormal, - &gMapObjectGraphicsInfo_MayMachBike, - &gMapObjectGraphicsInfo_MayAcroBike, - &gMapObjectGraphicsInfo_MaySurfing, - &gMapObjectGraphicsInfo_MayFieldMove, - &gMapObjectGraphicsInfo_Truck, - &gMapObjectGraphicsInfo_MachokeCarryingBox, - &gMapObjectGraphicsInfo_MachokeFacingAway, - &gMapObjectGraphicsInfo_BirchsBag, - &gMapObjectGraphicsInfo_Poochyena, - &gMapObjectGraphicsInfo_Artist, - &gMapObjectGraphicsInfo_RivalBrendanNormal, - &gMapObjectGraphicsInfo_RivalBrendanMachBike, - &gMapObjectGraphicsInfo_RivalBrendanAcroBike, - &gMapObjectGraphicsInfo_RivalBrendanSurfing, - &gMapObjectGraphicsInfo_RivalBrendanFieldMove, - &gMapObjectGraphicsInfo_RivalMayNormal, - &gMapObjectGraphicsInfo_RivalMayMachBike, - &gMapObjectGraphicsInfo_RivalMayAcroBike, - &gMapObjectGraphicsInfo_RivalMaySurfing, - &gMapObjectGraphicsInfo_RivalMayFieldMove, - &gMapObjectGraphicsInfo_Cameraman, - &gMapObjectGraphicsInfo_BrendanUnderwater, - &gMapObjectGraphicsInfo_MayUnderwater, - &gMapObjectGraphicsInfo_MovingBox, - &gMapObjectGraphicsInfo_CableCar, - &gMapObjectGraphicsInfo_Scientist2, - &gMapObjectGraphicsInfo_Man7, - &gMapObjectGraphicsInfo_AquaMemberM, - &gMapObjectGraphicsInfo_AquaMemberF, - &gMapObjectGraphicsInfo_MagmaMemberM, - &gMapObjectGraphicsInfo_MagmaMemberF, - &gMapObjectGraphicsInfo_Sidney, - &gMapObjectGraphicsInfo_Phoebe, - &gMapObjectGraphicsInfo_Glacia, - &gMapObjectGraphicsInfo_Drake, - &gMapObjectGraphicsInfo_Roxanne, - &gMapObjectGraphicsInfo_Brawly, - &gMapObjectGraphicsInfo_Wattson, - &gMapObjectGraphicsInfo_Flannery, - &gMapObjectGraphicsInfo_Norman, - &gMapObjectGraphicsInfo_Winona, - &gMapObjectGraphicsInfo_Liza, - &gMapObjectGraphicsInfo_Tate, - &gMapObjectGraphicsInfo_Wallace, - &gMapObjectGraphicsInfo_Steven, - &gMapObjectGraphicsInfo_Wally, - &gMapObjectGraphicsInfo_LittleBoy3, - &gMapObjectGraphicsInfo_BrendanFishing, - &gMapObjectGraphicsInfo_MayFishing, - &gMapObjectGraphicsInfo_HotSpringsOldWoman, - &gMapObjectGraphicsInfo_SSTidal, - &gMapObjectGraphicsInfo_SubmarineShadow, - &gMapObjectGraphicsInfo_PichuDoll, - &gMapObjectGraphicsInfo_PikachuDoll, - &gMapObjectGraphicsInfo_MarillDoll, - &gMapObjectGraphicsInfo_TogepiDoll, - &gMapObjectGraphicsInfo_CyndaquilDoll, - &gMapObjectGraphicsInfo_ChikoritaDoll, - &gMapObjectGraphicsInfo_TotodileDoll, - &gMapObjectGraphicsInfo_JigglypuffDoll, - &gMapObjectGraphicsInfo_MeowthDoll, - &gMapObjectGraphicsInfo_ClefairyDoll, - &gMapObjectGraphicsInfo_DittoDoll, - &gMapObjectGraphicsInfo_SmoochumDoll, - &gMapObjectGraphicsInfo_TreeckoDoll, - &gMapObjectGraphicsInfo_TorchicDoll, - &gMapObjectGraphicsInfo_MudkipDoll, - &gMapObjectGraphicsInfo_DuskullDoll, - &gMapObjectGraphicsInfo_WynautDoll, - &gMapObjectGraphicsInfo_BaltoyDoll, - &gMapObjectGraphicsInfo_KecleonDoll, - &gMapObjectGraphicsInfo_AzurillDoll, - &gMapObjectGraphicsInfo_SkittyDoll, - &gMapObjectGraphicsInfo_SwabluDoll, - &gMapObjectGraphicsInfo_GulpinDoll, - &gMapObjectGraphicsInfo_LotadDoll, - &gMapObjectGraphicsInfo_SeedotDoll, - &gMapObjectGraphicsInfo_PikaCushion, - &gMapObjectGraphicsInfo_RoundCushion, - &gMapObjectGraphicsInfo_KissCushion, - &gMapObjectGraphicsInfo_ZigzagCushion, - &gMapObjectGraphicsInfo_SpinCushion, - &gMapObjectGraphicsInfo_DiamondCushion, - &gMapObjectGraphicsInfo_BallCushion, - &gMapObjectGraphicsInfo_GrassCushion, - &gMapObjectGraphicsInfo_FireCushion, - &gMapObjectGraphicsInfo_WaterCushion, - &gMapObjectGraphicsInfo_BigSnorlaxDoll, - &gMapObjectGraphicsInfo_BigRhydonDoll, - &gMapObjectGraphicsInfo_BigLaprasDoll, - &gMapObjectGraphicsInfo_BigVenusaurDoll, - &gMapObjectGraphicsInfo_BigCharizardDoll, - &gMapObjectGraphicsInfo_BigBlastoiseDoll, - &gMapObjectGraphicsInfo_BigWailmerDoll, - &gMapObjectGraphicsInfo_BigRegirockDoll, - &gMapObjectGraphicsInfo_BigRegiceDoll, - &gMapObjectGraphicsInfo_BigRegisteelDoll, - &gMapObjectGraphicsInfo_Latias, - &gMapObjectGraphicsInfo_Latios, - &gMapObjectGraphicsInfo_Boy5, - &gMapObjectGraphicsInfo_ContestJudge, - &gMapObjectGraphicsInfo_BrendanWatering, - &gMapObjectGraphicsInfo_MayWatering, - &gMapObjectGraphicsInfo_BrendanDecorating, - &gMapObjectGraphicsInfo_MayDecorating, - &gMapObjectGraphicsInfo_Archie, - &gMapObjectGraphicsInfo_Maxie, - &gMapObjectGraphicsInfo_Kyogre1, - &gMapObjectGraphicsInfo_Groudon1, - &gMapObjectGraphicsInfo_Fossil, - &gMapObjectGraphicsInfo_Regirock, - &gMapObjectGraphicsInfo_Regice, - &gMapObjectGraphicsInfo_Registeel, - &gMapObjectGraphicsInfo_Skitty, - &gMapObjectGraphicsInfo_Kecleon1, - &gMapObjectGraphicsInfo_Kyogre2, - &gMapObjectGraphicsInfo_Groudon2, - &gMapObjectGraphicsInfo_Rayquaza, - &gMapObjectGraphicsInfo_Zigzagoon, - &gMapObjectGraphicsInfo_Pikachu, - &gMapObjectGraphicsInfo_Azumarill, - &gMapObjectGraphicsInfo_Wingull, - &gMapObjectGraphicsInfo_Kecleon2, - &gMapObjectGraphicsInfo_TuberMSwimming, - &gMapObjectGraphicsInfo_Azurill, - &gMapObjectGraphicsInfo_Mom, - &gMapObjectGraphicsInfo_LinkBrendan, - &gMapObjectGraphicsInfo_LinkMay -}; - -#endif //POKERUBY_MAP_OBJECT_GRAPHICS_INFO_POINTERS_H diff --git a/include/data/field_map_obj/map_object_pic_tables.h b/include/data/field_map_obj/map_object_pic_tables.h deleted file mode 100644 index 37d579512..000000000 --- a/include/data/field_map_obj/map_object_pic_tables.h +++ /dev/null @@ -1,1879 +0,0 @@ -// -// Created by scott on 6/17/2017. -// - -#ifndef POKERUBY_MAP_OBJECT_PIC_TABLES_H -#define POKERUBY_MAP_OBJECT_PIC_TABLES_H - -const struct SpriteFrameImage gMapObjectPicTable_BrendanNormal[] = { - obj_frame_tiles(gMapObjectPic_BrendanNormal_0), - obj_frame_tiles(gMapObjectPic_BrendanNormal_1), - obj_frame_tiles(gMapObjectPic_BrendanNormal_2), - obj_frame_tiles(gMapObjectPic_BrendanNormal_3), - obj_frame_tiles(gMapObjectPic_BrendanNormal_4), - obj_frame_tiles(gMapObjectPic_BrendanNormal_5), - obj_frame_tiles(gMapObjectPic_BrendanNormal_6), - obj_frame_tiles(gMapObjectPic_BrendanNormal_7), - obj_frame_tiles(gMapObjectPic_BrendanNormal_8), - obj_frame_tiles(gMapObjectPic_BrendanNormal_9), - obj_frame_tiles(gMapObjectPic_BrendanNormal_10), - obj_frame_tiles(gMapObjectPic_BrendanNormal_11), - obj_frame_tiles(gMapObjectPic_BrendanNormal_12), - obj_frame_tiles(gMapObjectPic_BrendanNormal_13), - obj_frame_tiles(gMapObjectPic_BrendanNormal_14), - obj_frame_tiles(gMapObjectPic_BrendanNormal_15), - obj_frame_tiles(gMapObjectPic_BrendanNormal_16), - obj_frame_tiles(gMapObjectPic_BrendanNormal_17) -}; - -const struct SpriteFrameImage gMapObjectPicTable_BrendanMachBike[] = { - obj_frame_tiles(gMapObjectPic_BrendanMachBike_0), - obj_frame_tiles(gMapObjectPic_BrendanMachBike_1), - obj_frame_tiles(gMapObjectPic_BrendanMachBike_2), - obj_frame_tiles(gMapObjectPic_BrendanMachBike_3), - obj_frame_tiles(gMapObjectPic_BrendanMachBike_4), - obj_frame_tiles(gMapObjectPic_BrendanMachBike_5), - obj_frame_tiles(gMapObjectPic_BrendanMachBike_6), - obj_frame_tiles(gMapObjectPic_BrendanMachBike_7), - obj_frame_tiles(gMapObjectPic_BrendanMachBike_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_BrendanAcroBike[] = { - obj_frame_tiles(gMapObjectPic_BrendanAcroBike_0), - obj_frame_tiles(gMapObjectPic_BrendanAcroBike_1), - obj_frame_tiles(gMapObjectPic_BrendanAcroBike_2), - obj_frame_tiles(gMapObjectPic_BrendanAcroBike_3), - obj_frame_tiles(gMapObjectPic_BrendanAcroBike_4), - obj_frame_tiles(gMapObjectPic_BrendanAcroBike_5), - obj_frame_tiles(gMapObjectPic_BrendanAcroBike_6), - obj_frame_tiles(gMapObjectPic_BrendanAcroBike_7), - obj_frame_tiles(gMapObjectPic_BrendanAcroBike_8), - obj_frame_tiles(gMapObjectPic_BrendanAcroBike_9), - obj_frame_tiles(gMapObjectPic_BrendanAcroBike_10), - obj_frame_tiles(gMapObjectPic_BrendanAcroBike_11), - obj_frame_tiles(gMapObjectPic_BrendanAcroBike_12), - obj_frame_tiles(gMapObjectPic_BrendanAcroBike_13), - obj_frame_tiles(gMapObjectPic_BrendanAcroBike_14), - obj_frame_tiles(gMapObjectPic_BrendanAcroBike_15), - obj_frame_tiles(gMapObjectPic_BrendanAcroBike_16), - obj_frame_tiles(gMapObjectPic_BrendanAcroBike_17), - obj_frame_tiles(gMapObjectPic_BrendanAcroBike_18), - obj_frame_tiles(gMapObjectPic_BrendanAcroBike_19), - obj_frame_tiles(gMapObjectPic_BrendanAcroBike_20), - obj_frame_tiles(gMapObjectPic_BrendanAcroBike_21), - obj_frame_tiles(gMapObjectPic_BrendanAcroBike_22), - obj_frame_tiles(gMapObjectPic_BrendanAcroBike_23), - obj_frame_tiles(gMapObjectPic_BrendanAcroBike_24), - obj_frame_tiles(gMapObjectPic_BrendanAcroBike_25), - obj_frame_tiles(gMapObjectPic_BrendanAcroBike_26) -}; - -const struct SpriteFrameImage gMapObjectPicTable_BrendanSurfing[] = { - obj_frame_tiles(gMapObjectPic_BrendanSurfing_0), - obj_frame_tiles(gMapObjectPic_BrendanSurfing_1), - obj_frame_tiles(gMapObjectPic_BrendanSurfing_2), - obj_frame_tiles(gMapObjectPic_BrendanSurfing_0), - obj_frame_tiles(gMapObjectPic_BrendanSurfing_0), - obj_frame_tiles(gMapObjectPic_BrendanSurfing_1), - obj_frame_tiles(gMapObjectPic_BrendanSurfing_1), - obj_frame_tiles(gMapObjectPic_BrendanSurfing_2), - obj_frame_tiles(gMapObjectPic_BrendanSurfing_2), - obj_frame_tiles(gMapObjectPic_BrendanSurfing_3), - obj_frame_tiles(gMapObjectPic_BrendanSurfing_4), - obj_frame_tiles(gMapObjectPic_BrendanSurfing_5) -}; - -const struct SpriteFrameImage gMapObjectPicTable_BrendanUnderwater[] = { - obj_frame_tiles(gMapObjectPic_BrendanUnderwater_0), - obj_frame_tiles(gMapObjectPic_BrendanUnderwater_1), - obj_frame_tiles(gMapObjectPic_BrendanUnderwater_2), - obj_frame_tiles(gMapObjectPic_BrendanUnderwater_0), - obj_frame_tiles(gMapObjectPic_BrendanUnderwater_0), - obj_frame_tiles(gMapObjectPic_BrendanUnderwater_1), - obj_frame_tiles(gMapObjectPic_BrendanUnderwater_1), - obj_frame_tiles(gMapObjectPic_BrendanUnderwater_2), - obj_frame_tiles(gMapObjectPic_BrendanUnderwater_2) -}; - -const struct SpriteFrameImage gMapObjectPicTable_BrendanFieldMove[] = { - obj_frame_tiles(gMapObjectPic_BrendanFieldMove_0), - obj_frame_tiles(gMapObjectPic_BrendanFieldMove_1), - obj_frame_tiles(gMapObjectPic_BrendanFieldMove_2), - obj_frame_tiles(gMapObjectPic_BrendanFieldMove_3), - obj_frame_tiles(gMapObjectPic_BrendanFieldMove_4) -}; - -const struct SpriteFrameImage gMapObjectPicTable_QuintyPlump[] = { - obj_frame_tiles(gMapObjectPic_QuintyPlump_0), - obj_frame_tiles(gMapObjectPic_QuintyPlump_1), - obj_frame_tiles(gMapObjectPic_QuintyPlump_2), - obj_frame_tiles(gMapObjectPic_QuintyPlump_3), - obj_frame_tiles(gMapObjectPic_QuintyPlump_4), - obj_frame_tiles(gMapObjectPic_QuintyPlump_5), - obj_frame_tiles(gMapObjectPic_QuintyPlump_6) -}; - -const struct SpriteFrameImage gMapObjectPicTable_LittleBoy1[] = { - obj_frame_tiles(gMapObjectPic_LittleBoy1_0), - obj_frame_tiles(gMapObjectPic_LittleBoy1_1), - obj_frame_tiles(gMapObjectPic_LittleBoy1_2), - obj_frame_tiles(gMapObjectPic_LittleBoy1_3), - obj_frame_tiles(gMapObjectPic_LittleBoy1_4), - obj_frame_tiles(gMapObjectPic_LittleBoy1_5), - obj_frame_tiles(gMapObjectPic_LittleBoy1_6), - obj_frame_tiles(gMapObjectPic_LittleBoy1_7), - obj_frame_tiles(gMapObjectPic_LittleBoy1_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_LittleGirl1[] = { - obj_frame_tiles(gMapObjectPic_LittleGirl1_0), - obj_frame_tiles(gMapObjectPic_LittleGirl1_1), - obj_frame_tiles(gMapObjectPic_LittleGirl1_2), - obj_frame_tiles(gMapObjectPic_LittleGirl1_3), - obj_frame_tiles(gMapObjectPic_LittleGirl1_4), - obj_frame_tiles(gMapObjectPic_LittleGirl1_5), - obj_frame_tiles(gMapObjectPic_LittleGirl1_6), - obj_frame_tiles(gMapObjectPic_LittleGirl1_7), - obj_frame_tiles(gMapObjectPic_LittleGirl1_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Boy1[] = { - obj_frame_tiles(gMapObjectPic_Boy1_0), - obj_frame_tiles(gMapObjectPic_Boy1_1), - obj_frame_tiles(gMapObjectPic_Boy1_2), - obj_frame_tiles(gMapObjectPic_Boy1_3), - obj_frame_tiles(gMapObjectPic_Boy1_4), - obj_frame_tiles(gMapObjectPic_Boy1_5), - obj_frame_tiles(gMapObjectPic_Boy1_6), - obj_frame_tiles(gMapObjectPic_Boy1_7), - obj_frame_tiles(gMapObjectPic_Boy1_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Girl1[] = { - obj_frame_tiles(gMapObjectPic_Girl1_0), - obj_frame_tiles(gMapObjectPic_Girl1_1), - obj_frame_tiles(gMapObjectPic_Girl1_2), - obj_frame_tiles(gMapObjectPic_Girl1_3), - obj_frame_tiles(gMapObjectPic_Girl1_4), - obj_frame_tiles(gMapObjectPic_Girl1_5), - obj_frame_tiles(gMapObjectPic_Girl1_6), - obj_frame_tiles(gMapObjectPic_Girl1_7), - obj_frame_tiles(gMapObjectPic_Girl1_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Boy2[] = { - obj_frame_tiles(gMapObjectPic_Boy2_0), - obj_frame_tiles(gMapObjectPic_Boy2_1), - obj_frame_tiles(gMapObjectPic_Boy2_2), - obj_frame_tiles(gMapObjectPic_Boy2_3), - obj_frame_tiles(gMapObjectPic_Boy2_4), - obj_frame_tiles(gMapObjectPic_Boy2_5), - obj_frame_tiles(gMapObjectPic_Boy2_6), - obj_frame_tiles(gMapObjectPic_Boy2_7), - obj_frame_tiles(gMapObjectPic_Boy2_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Girl2[] = { - obj_frame_tiles(gMapObjectPic_Girl2_0), - obj_frame_tiles(gMapObjectPic_Girl2_1), - obj_frame_tiles(gMapObjectPic_Girl2_2), - obj_frame_tiles(gMapObjectPic_Girl2_3), - obj_frame_tiles(gMapObjectPic_Girl2_4), - obj_frame_tiles(gMapObjectPic_Girl2_5), - obj_frame_tiles(gMapObjectPic_Girl2_6), - obj_frame_tiles(gMapObjectPic_Girl2_7), - obj_frame_tiles(gMapObjectPic_Girl2_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_LittleBoy2[] = { - obj_frame_tiles(gMapObjectPic_LittleBoy2_0), - obj_frame_tiles(gMapObjectPic_LittleBoy2_1), - obj_frame_tiles(gMapObjectPic_LittleBoy2_2), - obj_frame_tiles(gMapObjectPic_LittleBoy2_3), - obj_frame_tiles(gMapObjectPic_LittleBoy2_4), - obj_frame_tiles(gMapObjectPic_LittleBoy2_5), - obj_frame_tiles(gMapObjectPic_LittleBoy2_6), - obj_frame_tiles(gMapObjectPic_LittleBoy2_7), - obj_frame_tiles(gMapObjectPic_LittleBoy2_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_LittleGirl2[] = { - obj_frame_tiles(gMapObjectPic_LittleGirl2_0), - obj_frame_tiles(gMapObjectPic_LittleGirl2_1), - obj_frame_tiles(gMapObjectPic_LittleGirl2_2), - obj_frame_tiles(gMapObjectPic_LittleGirl2_3), - obj_frame_tiles(gMapObjectPic_LittleGirl2_4), - obj_frame_tiles(gMapObjectPic_LittleGirl2_5), - obj_frame_tiles(gMapObjectPic_LittleGirl2_6), - obj_frame_tiles(gMapObjectPic_LittleGirl2_7), - obj_frame_tiles(gMapObjectPic_LittleGirl2_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Boy3[] = { - obj_frame_tiles(gMapObjectPic_Boy3_0), - obj_frame_tiles(gMapObjectPic_Boy3_1), - obj_frame_tiles(gMapObjectPic_Boy3_2), - obj_frame_tiles(gMapObjectPic_Boy3_3), - obj_frame_tiles(gMapObjectPic_Boy3_4), - obj_frame_tiles(gMapObjectPic_Boy3_5), - obj_frame_tiles(gMapObjectPic_Boy3_6), - obj_frame_tiles(gMapObjectPic_Boy3_7), - obj_frame_tiles(gMapObjectPic_Boy3_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Girl3[] = { - obj_frame_tiles(gMapObjectPic_Girl3_0), - obj_frame_tiles(gMapObjectPic_Girl3_1), - obj_frame_tiles(gMapObjectPic_Girl3_2), - obj_frame_tiles(gMapObjectPic_Girl3_3), - obj_frame_tiles(gMapObjectPic_Girl3_4), - obj_frame_tiles(gMapObjectPic_Girl3_5), - obj_frame_tiles(gMapObjectPic_Girl3_6), - obj_frame_tiles(gMapObjectPic_Girl3_7), - obj_frame_tiles(gMapObjectPic_Girl3_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Boy4[] = { - obj_frame_tiles(gMapObjectPic_Boy4_0), - obj_frame_tiles(gMapObjectPic_Boy4_1), - obj_frame_tiles(gMapObjectPic_Boy4_2), - obj_frame_tiles(gMapObjectPic_Boy4_3), - obj_frame_tiles(gMapObjectPic_Boy4_4), - obj_frame_tiles(gMapObjectPic_Boy4_5), - obj_frame_tiles(gMapObjectPic_Boy4_6), - obj_frame_tiles(gMapObjectPic_Boy4_7), - obj_frame_tiles(gMapObjectPic_Boy4_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Woman1[] = { - obj_frame_tiles(gMapObjectPic_Woman1_0), - obj_frame_tiles(gMapObjectPic_Woman1_1), - obj_frame_tiles(gMapObjectPic_Woman1_2), - obj_frame_tiles(gMapObjectPic_Woman1_3), - obj_frame_tiles(gMapObjectPic_Woman1_4), - obj_frame_tiles(gMapObjectPic_Woman1_5), - obj_frame_tiles(gMapObjectPic_Woman1_6), - obj_frame_tiles(gMapObjectPic_Woman1_7), - obj_frame_tiles(gMapObjectPic_Woman1_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_FatMan[] = { - obj_frame_tiles(gMapObjectPic_FatMan_0), - obj_frame_tiles(gMapObjectPic_FatMan_1), - obj_frame_tiles(gMapObjectPic_FatMan_2), - obj_frame_tiles(gMapObjectPic_FatMan_3), - obj_frame_tiles(gMapObjectPic_FatMan_4), - obj_frame_tiles(gMapObjectPic_FatMan_5), - obj_frame_tiles(gMapObjectPic_FatMan_6), - obj_frame_tiles(gMapObjectPic_FatMan_7), - obj_frame_tiles(gMapObjectPic_FatMan_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Woman2[] = { - obj_frame_tiles(gMapObjectPic_Woman2_0), - obj_frame_tiles(gMapObjectPic_Woman2_1), - obj_frame_tiles(gMapObjectPic_Woman2_2), - obj_frame_tiles(gMapObjectPic_Woman2_3), - obj_frame_tiles(gMapObjectPic_Woman2_4), - obj_frame_tiles(gMapObjectPic_Woman2_5), - obj_frame_tiles(gMapObjectPic_Woman2_6), - obj_frame_tiles(gMapObjectPic_Woman2_7), - obj_frame_tiles(gMapObjectPic_Woman2_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Man1[] = { - obj_frame_tiles(gMapObjectPic_Man1_0), - obj_frame_tiles(gMapObjectPic_Man1_1), - obj_frame_tiles(gMapObjectPic_Man1_2), - obj_frame_tiles(gMapObjectPic_Man1_3), - obj_frame_tiles(gMapObjectPic_Man1_4), - obj_frame_tiles(gMapObjectPic_Man1_5), - obj_frame_tiles(gMapObjectPic_Man1_6), - obj_frame_tiles(gMapObjectPic_Man1_7), - obj_frame_tiles(gMapObjectPic_Man1_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Woman3[] = { - obj_frame_tiles(gMapObjectPic_Woman3_0), - obj_frame_tiles(gMapObjectPic_Woman3_1), - obj_frame_tiles(gMapObjectPic_Woman3_2), - obj_frame_tiles(gMapObjectPic_Woman3_3), - obj_frame_tiles(gMapObjectPic_Woman3_4), - obj_frame_tiles(gMapObjectPic_Woman3_5), - obj_frame_tiles(gMapObjectPic_Woman3_6), - obj_frame_tiles(gMapObjectPic_Woman3_7), - obj_frame_tiles(gMapObjectPic_Woman3_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_OldMan1[] = { - obj_frame_tiles(gMapObjectPic_OldMan1_0), - obj_frame_tiles(gMapObjectPic_OldMan1_1), - obj_frame_tiles(gMapObjectPic_OldMan1_2), - obj_frame_tiles(gMapObjectPic_OldMan1_3), - obj_frame_tiles(gMapObjectPic_OldMan1_4), - obj_frame_tiles(gMapObjectPic_OldMan1_5), - obj_frame_tiles(gMapObjectPic_OldMan1_6), - obj_frame_tiles(gMapObjectPic_OldMan1_7), - obj_frame_tiles(gMapObjectPic_OldMan1_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_OldWoman1[] = { - obj_frame_tiles(gMapObjectPic_OldWoman1_0), - obj_frame_tiles(gMapObjectPic_OldWoman1_1), - obj_frame_tiles(gMapObjectPic_OldWoman1_2), - obj_frame_tiles(gMapObjectPic_OldWoman1_3), - obj_frame_tiles(gMapObjectPic_OldWoman1_4), - obj_frame_tiles(gMapObjectPic_OldWoman1_5), - obj_frame_tiles(gMapObjectPic_OldWoman1_6), - obj_frame_tiles(gMapObjectPic_OldWoman1_7), - obj_frame_tiles(gMapObjectPic_OldWoman1_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Man2[] = { - obj_frame_tiles(gMapObjectPic_Man2_0), - obj_frame_tiles(gMapObjectPic_Man2_1), - obj_frame_tiles(gMapObjectPic_Man2_2), - obj_frame_tiles(gMapObjectPic_Man2_3), - obj_frame_tiles(gMapObjectPic_Man2_4), - obj_frame_tiles(gMapObjectPic_Man2_5), - obj_frame_tiles(gMapObjectPic_Man2_6), - obj_frame_tiles(gMapObjectPic_Man2_7), - obj_frame_tiles(gMapObjectPic_Man2_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Woman4[] = { - obj_frame_tiles(gMapObjectPic_Woman4_0), - obj_frame_tiles(gMapObjectPic_Woman4_1), - obj_frame_tiles(gMapObjectPic_Woman4_2), - obj_frame_tiles(gMapObjectPic_Woman4_3), - obj_frame_tiles(gMapObjectPic_Woman4_4), - obj_frame_tiles(gMapObjectPic_Woman4_5), - obj_frame_tiles(gMapObjectPic_Woman4_6), - obj_frame_tiles(gMapObjectPic_Woman4_7), - obj_frame_tiles(gMapObjectPic_Woman4_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Man3[] = { - obj_frame_tiles(gMapObjectPic_Man3_0), - obj_frame_tiles(gMapObjectPic_Man3_1), - obj_frame_tiles(gMapObjectPic_Man3_2), - obj_frame_tiles(gMapObjectPic_Man3_3), - obj_frame_tiles(gMapObjectPic_Man3_4), - obj_frame_tiles(gMapObjectPic_Man3_5), - obj_frame_tiles(gMapObjectPic_Man3_6), - obj_frame_tiles(gMapObjectPic_Man3_7), - obj_frame_tiles(gMapObjectPic_Man3_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Woman5[] = { - obj_frame_tiles(gMapObjectPic_Woman5_0), - obj_frame_tiles(gMapObjectPic_Woman5_1), - obj_frame_tiles(gMapObjectPic_Woman5_2), - obj_frame_tiles(gMapObjectPic_Woman5_3), - obj_frame_tiles(gMapObjectPic_Woman5_4), - obj_frame_tiles(gMapObjectPic_Woman5_5), - obj_frame_tiles(gMapObjectPic_Woman5_6), - obj_frame_tiles(gMapObjectPic_Woman5_7), - obj_frame_tiles(gMapObjectPic_Woman5_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Cook[] = { - obj_frame_tiles(gMapObjectPic_Cook_0), - obj_frame_tiles(gMapObjectPic_Cook_1), - obj_frame_tiles(gMapObjectPic_Cook_2), - obj_frame_tiles(gMapObjectPic_Cook_0), - obj_frame_tiles(gMapObjectPic_Cook_0), - obj_frame_tiles(gMapObjectPic_Cook_1), - obj_frame_tiles(gMapObjectPic_Cook_1), - obj_frame_tiles(gMapObjectPic_Cook_2), - obj_frame_tiles(gMapObjectPic_Cook_2) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Woman6[] = { - obj_frame_tiles(gMapObjectPic_Woman6_0), - obj_frame_tiles(gMapObjectPic_Woman6_1), - obj_frame_tiles(gMapObjectPic_Woman6_2), - obj_frame_tiles(gMapObjectPic_Woman6_3), - obj_frame_tiles(gMapObjectPic_Woman6_4), - obj_frame_tiles(gMapObjectPic_Woman6_5), - obj_frame_tiles(gMapObjectPic_Woman6_6), - obj_frame_tiles(gMapObjectPic_Woman6_7), - obj_frame_tiles(gMapObjectPic_Woman6_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_OldMan2[] = { - obj_frame_tiles(gMapObjectPic_OldMan2_0), - obj_frame_tiles(gMapObjectPic_OldMan2_1), - obj_frame_tiles(gMapObjectPic_OldMan2_2), - obj_frame_tiles(gMapObjectPic_OldMan2_0), - obj_frame_tiles(gMapObjectPic_OldMan2_0), - obj_frame_tiles(gMapObjectPic_OldMan2_1), - obj_frame_tiles(gMapObjectPic_OldMan2_1), - obj_frame_tiles(gMapObjectPic_OldMan2_2), - obj_frame_tiles(gMapObjectPic_OldMan2_2) -}; - -const struct SpriteFrameImage gMapObjectPicTable_OldWoman2[] = { - obj_frame_tiles(gMapObjectPic_OldWoman2_0), - obj_frame_tiles(gMapObjectPic_OldWoman2_1), - obj_frame_tiles(gMapObjectPic_OldWoman2_2), - obj_frame_tiles(gMapObjectPic_OldWoman2_0), - obj_frame_tiles(gMapObjectPic_OldWoman2_0), - obj_frame_tiles(gMapObjectPic_OldWoman2_1), - obj_frame_tiles(gMapObjectPic_OldWoman2_1), - obj_frame_tiles(gMapObjectPic_OldWoman2_2), - obj_frame_tiles(gMapObjectPic_OldWoman2_2) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Camper[] = { - obj_frame_tiles(gMapObjectPic_Camper_0), - obj_frame_tiles(gMapObjectPic_Camper_1), - obj_frame_tiles(gMapObjectPic_Camper_2), - obj_frame_tiles(gMapObjectPic_Camper_3), - obj_frame_tiles(gMapObjectPic_Camper_4), - obj_frame_tiles(gMapObjectPic_Camper_5), - obj_frame_tiles(gMapObjectPic_Camper_6), - obj_frame_tiles(gMapObjectPic_Camper_7), - obj_frame_tiles(gMapObjectPic_Camper_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Picnicker[] = { - obj_frame_tiles(gMapObjectPic_Picnicker_0), - obj_frame_tiles(gMapObjectPic_Picnicker_1), - obj_frame_tiles(gMapObjectPic_Picnicker_2), - obj_frame_tiles(gMapObjectPic_Picnicker_3), - obj_frame_tiles(gMapObjectPic_Picnicker_4), - obj_frame_tiles(gMapObjectPic_Picnicker_5), - obj_frame_tiles(gMapObjectPic_Picnicker_6), - obj_frame_tiles(gMapObjectPic_Picnicker_7), - obj_frame_tiles(gMapObjectPic_Picnicker_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Man4[] = { - obj_frame_tiles(gMapObjectPic_Man4_0), - obj_frame_tiles(gMapObjectPic_Man4_1), - obj_frame_tiles(gMapObjectPic_Man4_2), - obj_frame_tiles(gMapObjectPic_Man4_3), - obj_frame_tiles(gMapObjectPic_Man4_4), - obj_frame_tiles(gMapObjectPic_Man4_5), - obj_frame_tiles(gMapObjectPic_Man4_6), - obj_frame_tiles(gMapObjectPic_Man4_7), - obj_frame_tiles(gMapObjectPic_Man4_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Woman7[] = { - obj_frame_tiles(gMapObjectPic_Woman7_0), - obj_frame_tiles(gMapObjectPic_Woman7_1), - obj_frame_tiles(gMapObjectPic_Woman7_2), - obj_frame_tiles(gMapObjectPic_Woman7_3), - obj_frame_tiles(gMapObjectPic_Woman7_4), - obj_frame_tiles(gMapObjectPic_Woman7_5), - obj_frame_tiles(gMapObjectPic_Woman7_6), - obj_frame_tiles(gMapObjectPic_Woman7_7), - obj_frame_tiles(gMapObjectPic_Woman7_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Youngster[] = { - obj_frame_tiles(gMapObjectPic_Youngster_0), - obj_frame_tiles(gMapObjectPic_Youngster_1), - obj_frame_tiles(gMapObjectPic_Youngster_2), - obj_frame_tiles(gMapObjectPic_Youngster_3), - obj_frame_tiles(gMapObjectPic_Youngster_4), - obj_frame_tiles(gMapObjectPic_Youngster_5), - obj_frame_tiles(gMapObjectPic_Youngster_6), - obj_frame_tiles(gMapObjectPic_Youngster_7), - obj_frame_tiles(gMapObjectPic_Youngster_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_BugCatcher[] = { - obj_frame_tiles(gMapObjectPic_BugCatcher_0), - obj_frame_tiles(gMapObjectPic_BugCatcher_1), - obj_frame_tiles(gMapObjectPic_BugCatcher_2), - obj_frame_tiles(gMapObjectPic_BugCatcher_3), - obj_frame_tiles(gMapObjectPic_BugCatcher_4), - obj_frame_tiles(gMapObjectPic_BugCatcher_5), - obj_frame_tiles(gMapObjectPic_BugCatcher_6), - obj_frame_tiles(gMapObjectPic_BugCatcher_7), - obj_frame_tiles(gMapObjectPic_BugCatcher_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_PsychicM[] = { - obj_frame_tiles(gMapObjectPic_PsychicM_0), - obj_frame_tiles(gMapObjectPic_PsychicM_1), - obj_frame_tiles(gMapObjectPic_PsychicM_2), - obj_frame_tiles(gMapObjectPic_PsychicM_3), - obj_frame_tiles(gMapObjectPic_PsychicM_4), - obj_frame_tiles(gMapObjectPic_PsychicM_5), - obj_frame_tiles(gMapObjectPic_PsychicM_6), - obj_frame_tiles(gMapObjectPic_PsychicM_7), - obj_frame_tiles(gMapObjectPic_PsychicM_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_SchoolKidM[] = { - obj_frame_tiles(gMapObjectPic_SchoolKidM_0), - obj_frame_tiles(gMapObjectPic_SchoolKidM_1), - obj_frame_tiles(gMapObjectPic_SchoolKidM_2), - obj_frame_tiles(gMapObjectPic_SchoolKidM_3), - obj_frame_tiles(gMapObjectPic_SchoolKidM_4), - obj_frame_tiles(gMapObjectPic_SchoolKidM_5), - obj_frame_tiles(gMapObjectPic_SchoolKidM_6), - obj_frame_tiles(gMapObjectPic_SchoolKidM_7), - obj_frame_tiles(gMapObjectPic_SchoolKidM_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Maniac[] = { - obj_frame_tiles(gMapObjectPic_Maniac_0), - obj_frame_tiles(gMapObjectPic_Maniac_1), - obj_frame_tiles(gMapObjectPic_Maniac_2), - obj_frame_tiles(gMapObjectPic_Maniac_3), - obj_frame_tiles(gMapObjectPic_Maniac_4), - obj_frame_tiles(gMapObjectPic_Maniac_5), - obj_frame_tiles(gMapObjectPic_Maniac_6), - obj_frame_tiles(gMapObjectPic_Maniac_7), - obj_frame_tiles(gMapObjectPic_Maniac_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_HexManiac[] = { - obj_frame_tiles(gMapObjectPic_HexManiac_0), - obj_frame_tiles(gMapObjectPic_HexManiac_1), - obj_frame_tiles(gMapObjectPic_HexManiac_2), - obj_frame_tiles(gMapObjectPic_HexManiac_3), - obj_frame_tiles(gMapObjectPic_HexManiac_4), - obj_frame_tiles(gMapObjectPic_HexManiac_5), - obj_frame_tiles(gMapObjectPic_HexManiac_6), - obj_frame_tiles(gMapObjectPic_HexManiac_7), - obj_frame_tiles(gMapObjectPic_HexManiac_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Woman8[] = { - obj_frame_tiles(gMapObjectPic_Woman8_0), - obj_frame_tiles(gMapObjectPic_Woman8_1), - obj_frame_tiles(gMapObjectPic_Woman8_2), - obj_frame_tiles(gMapObjectPic_Woman8_3), - obj_frame_tiles(gMapObjectPic_Woman8_4), - obj_frame_tiles(gMapObjectPic_Woman8_5), - obj_frame_tiles(gMapObjectPic_Woman8_6), - obj_frame_tiles(gMapObjectPic_Woman8_7), - obj_frame_tiles(gMapObjectPic_Woman8_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_SwimmerM[] = { - obj_frame_tiles(gMapObjectPic_SwimmerM_0), - obj_frame_tiles(gMapObjectPic_SwimmerM_1), - obj_frame_tiles(gMapObjectPic_SwimmerM_2), - obj_frame_tiles(gMapObjectPic_SwimmerM_3), - obj_frame_tiles(gMapObjectPic_SwimmerM_4), - obj_frame_tiles(gMapObjectPic_SwimmerM_5), - obj_frame_tiles(gMapObjectPic_SwimmerM_6), - obj_frame_tiles(gMapObjectPic_SwimmerM_7), - obj_frame_tiles(gMapObjectPic_SwimmerM_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_SwimmerF[] = { - obj_frame_tiles(gMapObjectPic_SwimmerF_0), - obj_frame_tiles(gMapObjectPic_SwimmerF_1), - obj_frame_tiles(gMapObjectPic_SwimmerF_2), - obj_frame_tiles(gMapObjectPic_SwimmerF_3), - obj_frame_tiles(gMapObjectPic_SwimmerF_4), - obj_frame_tiles(gMapObjectPic_SwimmerF_5), - obj_frame_tiles(gMapObjectPic_SwimmerF_6), - obj_frame_tiles(gMapObjectPic_SwimmerF_7), - obj_frame_tiles(gMapObjectPic_SwimmerF_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_BlackBelt[] = { - obj_frame_tiles(gMapObjectPic_BlackBelt_0), - obj_frame_tiles(gMapObjectPic_BlackBelt_1), - obj_frame_tiles(gMapObjectPic_BlackBelt_2), - obj_frame_tiles(gMapObjectPic_BlackBelt_3), - obj_frame_tiles(gMapObjectPic_BlackBelt_4), - obj_frame_tiles(gMapObjectPic_BlackBelt_5), - obj_frame_tiles(gMapObjectPic_BlackBelt_6), - obj_frame_tiles(gMapObjectPic_BlackBelt_7), - obj_frame_tiles(gMapObjectPic_BlackBelt_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Beauty[] = { - obj_frame_tiles(gMapObjectPic_Beauty_0), - obj_frame_tiles(gMapObjectPic_Beauty_1), - obj_frame_tiles(gMapObjectPic_Beauty_2), - obj_frame_tiles(gMapObjectPic_Beauty_3), - obj_frame_tiles(gMapObjectPic_Beauty_4), - obj_frame_tiles(gMapObjectPic_Beauty_5), - obj_frame_tiles(gMapObjectPic_Beauty_6), - obj_frame_tiles(gMapObjectPic_Beauty_7), - obj_frame_tiles(gMapObjectPic_Beauty_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Scientist1[] = { - obj_frame_tiles(gMapObjectPic_Scientist1_0), - obj_frame_tiles(gMapObjectPic_Scientist1_1), - obj_frame_tiles(gMapObjectPic_Scientist1_2), - obj_frame_tiles(gMapObjectPic_Scientist1_3), - obj_frame_tiles(gMapObjectPic_Scientist1_4), - obj_frame_tiles(gMapObjectPic_Scientist1_5), - obj_frame_tiles(gMapObjectPic_Scientist1_6), - obj_frame_tiles(gMapObjectPic_Scientist1_7), - obj_frame_tiles(gMapObjectPic_Scientist1_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Lass[] = { - obj_frame_tiles(gMapObjectPic_Lass_0), - obj_frame_tiles(gMapObjectPic_Lass_1), - obj_frame_tiles(gMapObjectPic_Lass_2), - obj_frame_tiles(gMapObjectPic_Lass_3), - obj_frame_tiles(gMapObjectPic_Lass_4), - obj_frame_tiles(gMapObjectPic_Lass_5), - obj_frame_tiles(gMapObjectPic_Lass_6), - obj_frame_tiles(gMapObjectPic_Lass_7), - obj_frame_tiles(gMapObjectPic_Lass_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Gentleman[] = { - obj_frame_tiles(gMapObjectPic_Gentleman_0), - obj_frame_tiles(gMapObjectPic_Gentleman_1), - obj_frame_tiles(gMapObjectPic_Gentleman_2), - obj_frame_tiles(gMapObjectPic_Gentleman_3), - obj_frame_tiles(gMapObjectPic_Gentleman_4), - obj_frame_tiles(gMapObjectPic_Gentleman_5), - obj_frame_tiles(gMapObjectPic_Gentleman_6), - obj_frame_tiles(gMapObjectPic_Gentleman_7), - obj_frame_tiles(gMapObjectPic_Gentleman_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Sailor[] = { - obj_frame_tiles(gMapObjectPic_Sailor_0), - obj_frame_tiles(gMapObjectPic_Sailor_1), - obj_frame_tiles(gMapObjectPic_Sailor_2), - obj_frame_tiles(gMapObjectPic_Sailor_3), - obj_frame_tiles(gMapObjectPic_Sailor_4), - obj_frame_tiles(gMapObjectPic_Sailor_5), - obj_frame_tiles(gMapObjectPic_Sailor_6), - obj_frame_tiles(gMapObjectPic_Sailor_7), - obj_frame_tiles(gMapObjectPic_Sailor_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Fisherman[] = { - obj_frame_tiles(gMapObjectPic_Fisherman_0), - obj_frame_tiles(gMapObjectPic_Fisherman_1), - obj_frame_tiles(gMapObjectPic_Fisherman_2), - obj_frame_tiles(gMapObjectPic_Fisherman_3), - obj_frame_tiles(gMapObjectPic_Fisherman_4), - obj_frame_tiles(gMapObjectPic_Fisherman_5), - obj_frame_tiles(gMapObjectPic_Fisherman_6), - obj_frame_tiles(gMapObjectPic_Fisherman_7), - obj_frame_tiles(gMapObjectPic_Fisherman_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_RunningTriathleteM[] = { - obj_frame_tiles(gMapObjectPic_RunningTriathleteM_0), - obj_frame_tiles(gMapObjectPic_RunningTriathleteM_1), - obj_frame_tiles(gMapObjectPic_RunningTriathleteM_2), - obj_frame_tiles(gMapObjectPic_RunningTriathleteM_3), - obj_frame_tiles(gMapObjectPic_RunningTriathleteM_4), - obj_frame_tiles(gMapObjectPic_RunningTriathleteM_5), - obj_frame_tiles(gMapObjectPic_RunningTriathleteM_6), - obj_frame_tiles(gMapObjectPic_RunningTriathleteM_7), - obj_frame_tiles(gMapObjectPic_RunningTriathleteM_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_RunningTriathleteF[] = { - obj_frame_tiles(gMapObjectPic_RunningTriathleteF_0), - obj_frame_tiles(gMapObjectPic_RunningTriathleteF_1), - obj_frame_tiles(gMapObjectPic_RunningTriathleteF_2), - obj_frame_tiles(gMapObjectPic_RunningTriathleteF_3), - obj_frame_tiles(gMapObjectPic_RunningTriathleteF_4), - obj_frame_tiles(gMapObjectPic_RunningTriathleteF_5), - obj_frame_tiles(gMapObjectPic_RunningTriathleteF_6), - obj_frame_tiles(gMapObjectPic_RunningTriathleteF_7), - obj_frame_tiles(gMapObjectPic_RunningTriathleteF_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_TuberF[] = { - obj_frame_tiles(gMapObjectPic_TuberF_0), - obj_frame_tiles(gMapObjectPic_TuberF_1), - obj_frame_tiles(gMapObjectPic_TuberF_2), - obj_frame_tiles(gMapObjectPic_TuberF_3), - obj_frame_tiles(gMapObjectPic_TuberF_4), - obj_frame_tiles(gMapObjectPic_TuberF_5), - obj_frame_tiles(gMapObjectPic_TuberF_6), - obj_frame_tiles(gMapObjectPic_TuberF_7), - obj_frame_tiles(gMapObjectPic_TuberF_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_TuberM[] = { - obj_frame_tiles(gMapObjectPic_TuberM_0), - obj_frame_tiles(gMapObjectPic_TuberM_1), - obj_frame_tiles(gMapObjectPic_TuberM_2), - obj_frame_tiles(gMapObjectPic_TuberM_3), - obj_frame_tiles(gMapObjectPic_TuberM_4), - obj_frame_tiles(gMapObjectPic_TuberM_5), - obj_frame_tiles(gMapObjectPic_TuberM_6), - obj_frame_tiles(gMapObjectPic_TuberM_7), - obj_frame_tiles(gMapObjectPic_TuberM_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Hiker[] = { - obj_frame_tiles(gMapObjectPic_Hiker_0), - obj_frame_tiles(gMapObjectPic_Hiker_1), - obj_frame_tiles(gMapObjectPic_Hiker_2), - obj_frame_tiles(gMapObjectPic_Hiker_3), - obj_frame_tiles(gMapObjectPic_Hiker_4), - obj_frame_tiles(gMapObjectPic_Hiker_5), - obj_frame_tiles(gMapObjectPic_Hiker_6), - obj_frame_tiles(gMapObjectPic_Hiker_7), - obj_frame_tiles(gMapObjectPic_Hiker_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_CyclingTriathleteM[] = { - obj_frame_tiles(gMapObjectPic_CyclingTriathleteM_0), - obj_frame_tiles(gMapObjectPic_CyclingTriathleteM_1), - obj_frame_tiles(gMapObjectPic_CyclingTriathleteM_2), - obj_frame_tiles(gMapObjectPic_CyclingTriathleteM_3), - obj_frame_tiles(gMapObjectPic_CyclingTriathleteM_4), - obj_frame_tiles(gMapObjectPic_CyclingTriathleteM_5), - obj_frame_tiles(gMapObjectPic_CyclingTriathleteM_6), - obj_frame_tiles(gMapObjectPic_CyclingTriathleteM_7), - obj_frame_tiles(gMapObjectPic_CyclingTriathleteM_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_CyclingTriathleteF[] = { - obj_frame_tiles(gMapObjectPic_CyclingTriathleteF_0), - obj_frame_tiles(gMapObjectPic_CyclingTriathleteF_1), - obj_frame_tiles(gMapObjectPic_CyclingTriathleteF_2), - obj_frame_tiles(gMapObjectPic_CyclingTriathleteF_3), - obj_frame_tiles(gMapObjectPic_CyclingTriathleteF_4), - obj_frame_tiles(gMapObjectPic_CyclingTriathleteF_5), - obj_frame_tiles(gMapObjectPic_CyclingTriathleteF_6), - obj_frame_tiles(gMapObjectPic_CyclingTriathleteF_7), - obj_frame_tiles(gMapObjectPic_CyclingTriathleteF_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Nurse[] = { - obj_frame_tiles(gMapObjectPic_Nurse_0), - obj_frame_tiles(gMapObjectPic_Nurse_1), - obj_frame_tiles(gMapObjectPic_Nurse_2), - obj_frame_tiles(gMapObjectPic_Nurse_3), - obj_frame_tiles(gMapObjectPic_Nurse_4), - obj_frame_tiles(gMapObjectPic_Nurse_5), - obj_frame_tiles(gMapObjectPic_Nurse_6), - obj_frame_tiles(gMapObjectPic_Nurse_7), - obj_frame_tiles(gMapObjectPic_Nurse_8), - obj_frame_tiles(gMapObjectPic_Nurse_9) -}; - -const struct SpriteFrameImage gMapObjectPicTable_ItemBall[] = { - obj_frame_tiles(gMapObjectPic_ItemBall) -}; - -const struct SpriteFrameImage gMapObjectPicTable_ProfBirch[] = { - obj_frame_tiles(gMapObjectPic_ProfBirch_0), - obj_frame_tiles(gMapObjectPic_ProfBirch_1), - obj_frame_tiles(gMapObjectPic_ProfBirch_2), - obj_frame_tiles(gMapObjectPic_ProfBirch_3), - obj_frame_tiles(gMapObjectPic_ProfBirch_4), - obj_frame_tiles(gMapObjectPic_ProfBirch_5), - obj_frame_tiles(gMapObjectPic_ProfBirch_6), - obj_frame_tiles(gMapObjectPic_ProfBirch_7), - obj_frame_tiles(gMapObjectPic_ProfBirch_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Man5[] = { - obj_frame_tiles(gMapObjectPic_Man5_0), - obj_frame_tiles(gMapObjectPic_Man5_1), - obj_frame_tiles(gMapObjectPic_Man5_2), - obj_frame_tiles(gMapObjectPic_Man5_3), - obj_frame_tiles(gMapObjectPic_Man5_4), - obj_frame_tiles(gMapObjectPic_Man5_5), - obj_frame_tiles(gMapObjectPic_Man5_6), - obj_frame_tiles(gMapObjectPic_Man5_7), - obj_frame_tiles(gMapObjectPic_Man5_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Man6[] = { - obj_frame_tiles(gMapObjectPic_Man6_0), - obj_frame_tiles(gMapObjectPic_Man6_1), - obj_frame_tiles(gMapObjectPic_Man6_2), - obj_frame_tiles(gMapObjectPic_Man6_3), - obj_frame_tiles(gMapObjectPic_Man6_4), - obj_frame_tiles(gMapObjectPic_Man6_5), - obj_frame_tiles(gMapObjectPic_Man6_6), - obj_frame_tiles(gMapObjectPic_Man6_7), - obj_frame_tiles(gMapObjectPic_Man6_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_ReporterM[] = { - obj_frame_tiles(gMapObjectPic_ReporterM_0), - obj_frame_tiles(gMapObjectPic_ReporterM_1), - obj_frame_tiles(gMapObjectPic_ReporterM_2), - obj_frame_tiles(gMapObjectPic_ReporterM_3), - obj_frame_tiles(gMapObjectPic_ReporterM_4), - obj_frame_tiles(gMapObjectPic_ReporterM_5), - obj_frame_tiles(gMapObjectPic_ReporterM_6), - obj_frame_tiles(gMapObjectPic_ReporterM_7), - obj_frame_tiles(gMapObjectPic_ReporterM_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_ReporterF[] = { - obj_frame_tiles(gMapObjectPic_ReporterF_0), - obj_frame_tiles(gMapObjectPic_ReporterF_1), - obj_frame_tiles(gMapObjectPic_ReporterF_2), - obj_frame_tiles(gMapObjectPic_ReporterF_3), - obj_frame_tiles(gMapObjectPic_ReporterF_4), - obj_frame_tiles(gMapObjectPic_ReporterF_5), - obj_frame_tiles(gMapObjectPic_ReporterF_6), - obj_frame_tiles(gMapObjectPic_ReporterF_7), - obj_frame_tiles(gMapObjectPic_ReporterF_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_MauvilleOldMan1[] = { - obj_frame_tiles(gMapObjectPic_MauvilleOldMan1_0), - obj_frame_tiles(gMapObjectPic_MauvilleOldMan1_1), - obj_frame_tiles(gMapObjectPic_MauvilleOldMan1_2), - obj_frame_tiles(gMapObjectPic_MauvilleOldMan1_3), - obj_frame_tiles(gMapObjectPic_MauvilleOldMan1_4), - obj_frame_tiles(gMapObjectPic_MauvilleOldMan1_5), - obj_frame_tiles(gMapObjectPic_MauvilleOldMan1_6), - obj_frame_tiles(gMapObjectPic_MauvilleOldMan1_7), - obj_frame_tiles(gMapObjectPic_MauvilleOldMan1_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_MauvilleOldMan2[] = { - obj_frame_tiles(gMapObjectPic_MauvilleOldMan2_0), - obj_frame_tiles(gMapObjectPic_MauvilleOldMan2_1), - obj_frame_tiles(gMapObjectPic_MauvilleOldMan2_2), - obj_frame_tiles(gMapObjectPic_MauvilleOldMan2_3), - obj_frame_tiles(gMapObjectPic_MauvilleOldMan2_4), - obj_frame_tiles(gMapObjectPic_MauvilleOldMan2_5), - obj_frame_tiles(gMapObjectPic_MauvilleOldMan2_6), - obj_frame_tiles(gMapObjectPic_MauvilleOldMan2_7), - obj_frame_tiles(gMapObjectPic_MauvilleOldMan2_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_UnusedNatuDoll[] = { - obj_frame_tiles(gMapObjectPic_UnusedNatuDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_UnusedMagnemiteDoll[] = { - obj_frame_tiles(gMapObjectPic_UnusedMagnemiteDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_UnusedSquirtleDoll[] = { - obj_frame_tiles(gMapObjectPic_UnusedSquirtleDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_UnusedWooperDoll[] = { - obj_frame_tiles(gMapObjectPic_UnusedWooperDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_UnusedPikachuDoll[] = { - obj_frame_tiles(gMapObjectPic_UnusedPikachuDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_UnusedPorygon2Doll[] = { - obj_frame_tiles(gMapObjectPic_UnusedPorygon2Doll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_CuttableTree[] = { - obj_frame_tiles(gMapObjectPic_CuttableTree_0), - obj_frame_tiles(gMapObjectPic_CuttableTree_1), - obj_frame_tiles(gMapObjectPic_CuttableTree_2), - obj_frame_tiles(gMapObjectPic_CuttableTree_3) -}; - -const struct SpriteFrameImage gMapObjectPicTable_MartEmployee[] = { - obj_frame_tiles(gMapObjectPic_MartEmployee_0), - obj_frame_tiles(gMapObjectPic_MartEmployee_1), - obj_frame_tiles(gMapObjectPic_MartEmployee_2), - obj_frame_tiles(gMapObjectPic_MartEmployee_3), - obj_frame_tiles(gMapObjectPic_MartEmployee_4), - obj_frame_tiles(gMapObjectPic_MartEmployee_5), - obj_frame_tiles(gMapObjectPic_MartEmployee_6), - obj_frame_tiles(gMapObjectPic_MartEmployee_7), - obj_frame_tiles(gMapObjectPic_MartEmployee_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_RooftopSaleWoman[] = { - obj_frame_tiles(gMapObjectPic_RooftopSaleWoman_0), - obj_frame_tiles(gMapObjectPic_RooftopSaleWoman_1), - obj_frame_tiles(gMapObjectPic_RooftopSaleWoman_2), - obj_frame_tiles(gMapObjectPic_RooftopSaleWoman_3), - obj_frame_tiles(gMapObjectPic_RooftopSaleWoman_4), - obj_frame_tiles(gMapObjectPic_RooftopSaleWoman_5), - obj_frame_tiles(gMapObjectPic_RooftopSaleWoman_6), - obj_frame_tiles(gMapObjectPic_RooftopSaleWoman_7), - obj_frame_tiles(gMapObjectPic_RooftopSaleWoman_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Teala[] = { - obj_frame_tiles(gMapObjectPic_Teala_0), - obj_frame_tiles(gMapObjectPic_Teala_1), - obj_frame_tiles(gMapObjectPic_Teala_2), - obj_frame_tiles(gMapObjectPic_Teala_3), - obj_frame_tiles(gMapObjectPic_Teala_4), - obj_frame_tiles(gMapObjectPic_Teala_5), - obj_frame_tiles(gMapObjectPic_Teala_6), - obj_frame_tiles(gMapObjectPic_Teala_7), - obj_frame_tiles(gMapObjectPic_Teala_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_BreakableRock[] = { - obj_frame_tiles(gMapObjectPic_BreakableRock_0), - obj_frame_tiles(gMapObjectPic_BreakableRock_1), - obj_frame_tiles(gMapObjectPic_BreakableRock_2), - obj_frame_tiles(gMapObjectPic_BreakableRock_3) -}; - -const struct SpriteFrameImage gMapObjectPicTable_PushableBoulder[] = { - obj_frame_tiles(gMapObjectPic_PushableBoulder) -}; - -const struct SpriteFrameImage gMapObjectPicTable_MrBrineysBoat[] = { - obj_frame_tiles(gMapObjectPic_MrBrineysBoat_0), - obj_frame_tiles(gMapObjectPic_MrBrineysBoat_1), - obj_frame_tiles(gMapObjectPic_MrBrineysBoat_2), - obj_frame_tiles(gMapObjectPic_MrBrineysBoat_0), - obj_frame_tiles(gMapObjectPic_MrBrineysBoat_0), - obj_frame_tiles(gMapObjectPic_MrBrineysBoat_1), - obj_frame_tiles(gMapObjectPic_MrBrineysBoat_1), - obj_frame_tiles(gMapObjectPic_MrBrineysBoat_2), - obj_frame_tiles(gMapObjectPic_MrBrineysBoat_2) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Truck[] = { - obj_frame_tiles(gMapObjectPic_Truck) -}; - -const struct SpriteFrameImage gMapObjectPicTable_MachokeCarryingBox[] = { - obj_frame_tiles(gMapObjectPic_MachokeCarryingBox_0), - obj_frame_tiles(gMapObjectPic_MachokeCarryingBox_0), - obj_frame_tiles(gMapObjectPic_MachokeCarryingBox_0), - obj_frame_tiles(gMapObjectPic_MachokeCarryingBox_1), - obj_frame_tiles(gMapObjectPic_MachokeCarryingBox_2), - obj_frame_tiles(gMapObjectPic_MachokeCarryingBox_1), - obj_frame_tiles(gMapObjectPic_MachokeCarryingBox_2), - obj_frame_tiles(gMapObjectPic_MachokeCarryingBox_1), - obj_frame_tiles(gMapObjectPic_MachokeCarryingBox_2) -}; - -const struct SpriteFrameImage gMapObjectPicTable_MachokeFacingAway[] = { - obj_frame_tiles(gMapObjectPic_MachokeFacingAway_0), - obj_frame_tiles(gMapObjectPic_MachokeFacingAway_0), - obj_frame_tiles(gMapObjectPic_MachokeFacingAway_0), - obj_frame_tiles(gMapObjectPic_MachokeFacingAway_1), - obj_frame_tiles(gMapObjectPic_MachokeFacingAway_1), - obj_frame_tiles(gMapObjectPic_MachokeFacingAway_1), - obj_frame_tiles(gMapObjectPic_MachokeFacingAway_1), - obj_frame_tiles(gMapObjectPic_MachokeFacingAway_1), - obj_frame_tiles(gMapObjectPic_MachokeFacingAway_1) -}; - -const struct SpriteFrameImage gMapObjectPicTable_BirchsBag[] = { - obj_frame_tiles(gMapObjectPic_BirchsBag) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Poochyena[] = { - obj_frame_tiles(gMapObjectPic_Poochyena_0), - obj_frame_tiles(gMapObjectPic_Poochyena_1), - obj_frame_tiles(gMapObjectPic_Poochyena_2), - obj_frame_tiles(gMapObjectPic_Poochyena_3), - obj_frame_tiles(gMapObjectPic_Poochyena_4), - obj_frame_tiles(gMapObjectPic_Poochyena_5), - obj_frame_tiles(gMapObjectPic_Poochyena_6), - obj_frame_tiles(gMapObjectPic_Poochyena_7), - obj_frame_tiles(gMapObjectPic_Poochyena_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Artist[] = { - obj_frame_tiles(gMapObjectPic_Artist_0), - obj_frame_tiles(gMapObjectPic_Artist_1), - obj_frame_tiles(gMapObjectPic_Artist_2), - obj_frame_tiles(gMapObjectPic_Artist_3), - obj_frame_tiles(gMapObjectPic_Artist_4), - obj_frame_tiles(gMapObjectPic_Artist_5), - obj_frame_tiles(gMapObjectPic_Artist_6), - obj_frame_tiles(gMapObjectPic_Artist_7), - obj_frame_tiles(gMapObjectPic_Artist_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_MayNormal[] = { - obj_frame_tiles(gMapObjectPic_MayNormal_0), - obj_frame_tiles(gMapObjectPic_MayNormal_1), - obj_frame_tiles(gMapObjectPic_MayNormal_2), - obj_frame_tiles(gMapObjectPic_MayNormal_3), - obj_frame_tiles(gMapObjectPic_MayNormal_4), - obj_frame_tiles(gMapObjectPic_MayNormal_5), - obj_frame_tiles(gMapObjectPic_MayNormal_6), - obj_frame_tiles(gMapObjectPic_MayNormal_7), - obj_frame_tiles(gMapObjectPic_MayNormal_8), - obj_frame_tiles(gMapObjectPic_MayNormal_9), - obj_frame_tiles(gMapObjectPic_MayNormal_10), - obj_frame_tiles(gMapObjectPic_MayNormal_11), - obj_frame_tiles(gMapObjectPic_MayNormal_12), - obj_frame_tiles(gMapObjectPic_MayNormal_13), - obj_frame_tiles(gMapObjectPic_MayNormal_14), - obj_frame_tiles(gMapObjectPic_MayNormal_15), - obj_frame_tiles(gMapObjectPic_MayNormal_16), - obj_frame_tiles(gMapObjectPic_MayNormal_17) -}; - -const struct SpriteFrameImage gMapObjectPicTable_MayMachBike[] = { - obj_frame_tiles(gMapObjectPic_MayMachBike_0), - obj_frame_tiles(gMapObjectPic_MayMachBike_1), - obj_frame_tiles(gMapObjectPic_MayMachBike_2), - obj_frame_tiles(gMapObjectPic_MayMachBike_3), - obj_frame_tiles(gMapObjectPic_MayMachBike_4), - obj_frame_tiles(gMapObjectPic_MayMachBike_5), - obj_frame_tiles(gMapObjectPic_MayMachBike_6), - obj_frame_tiles(gMapObjectPic_MayMachBike_7), - obj_frame_tiles(gMapObjectPic_MayMachBike_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_MayAcroBike[] = { - obj_frame_tiles(gMapObjectPic_MayAcroBike_0), - obj_frame_tiles(gMapObjectPic_MayAcroBike_1), - obj_frame_tiles(gMapObjectPic_MayAcroBike_2), - obj_frame_tiles(gMapObjectPic_MayAcroBike_3), - obj_frame_tiles(gMapObjectPic_MayAcroBike_4), - obj_frame_tiles(gMapObjectPic_MayAcroBike_5), - obj_frame_tiles(gMapObjectPic_MayAcroBike_6), - obj_frame_tiles(gMapObjectPic_MayAcroBike_7), - obj_frame_tiles(gMapObjectPic_MayAcroBike_8), - obj_frame_tiles(gMapObjectPic_MayAcroBike_9), - obj_frame_tiles(gMapObjectPic_MayAcroBike_10), - obj_frame_tiles(gMapObjectPic_MayAcroBike_11), - obj_frame_tiles(gMapObjectPic_MayAcroBike_12), - obj_frame_tiles(gMapObjectPic_MayAcroBike_13), - obj_frame_tiles(gMapObjectPic_MayAcroBike_14), - obj_frame_tiles(gMapObjectPic_MayAcroBike_15), - obj_frame_tiles(gMapObjectPic_MayAcroBike_16), - obj_frame_tiles(gMapObjectPic_MayAcroBike_17), - obj_frame_tiles(gMapObjectPic_MayAcroBike_18), - obj_frame_tiles(gMapObjectPic_MayAcroBike_19), - obj_frame_tiles(gMapObjectPic_MayAcroBike_20), - obj_frame_tiles(gMapObjectPic_MayAcroBike_21), - obj_frame_tiles(gMapObjectPic_MayAcroBike_22), - obj_frame_tiles(gMapObjectPic_MayAcroBike_23), - obj_frame_tiles(gMapObjectPic_MayAcroBike_24), - obj_frame_tiles(gMapObjectPic_MayAcroBike_25), - obj_frame_tiles(gMapObjectPic_MayAcroBike_26) -}; - -const struct SpriteFrameImage gMapObjectPicTable_MaySurfing[] = { - obj_frame_tiles(gMapObjectPic_MaySurfing_0), - obj_frame_tiles(gMapObjectPic_MaySurfing_1), - obj_frame_tiles(gMapObjectPic_MaySurfing_2), - obj_frame_tiles(gMapObjectPic_MaySurfing_0), - obj_frame_tiles(gMapObjectPic_MaySurfing_0), - obj_frame_tiles(gMapObjectPic_MaySurfing_1), - obj_frame_tiles(gMapObjectPic_MaySurfing_1), - obj_frame_tiles(gMapObjectPic_MaySurfing_2), - obj_frame_tiles(gMapObjectPic_MaySurfing_2), - obj_frame_tiles(gMapObjectPic_MaySurfing_3), - obj_frame_tiles(gMapObjectPic_MaySurfing_4), - obj_frame_tiles(gMapObjectPic_MaySurfing_5) -}; - -const struct SpriteFrameImage gMapObjectPicTable_MayUnderwater[] = { - obj_frame_tiles(gMapObjectPic_MayUnderwater_0), - obj_frame_tiles(gMapObjectPic_MayUnderwater_1), - obj_frame_tiles(gMapObjectPic_MayUnderwater_2), - obj_frame_tiles(gMapObjectPic_MayUnderwater_0), - obj_frame_tiles(gMapObjectPic_MayUnderwater_0), - obj_frame_tiles(gMapObjectPic_MayUnderwater_1), - obj_frame_tiles(gMapObjectPic_MayUnderwater_1), - obj_frame_tiles(gMapObjectPic_MayUnderwater_2), - obj_frame_tiles(gMapObjectPic_MayUnderwater_2) -}; - -const struct SpriteFrameImage gMapObjectPicTable_MayFieldMove[] = { - obj_frame_tiles(gMapObjectPic_MayFieldMove_0), - obj_frame_tiles(gMapObjectPic_MayFieldMove_1), - obj_frame_tiles(gMapObjectPic_MayFieldMove_2), - obj_frame_tiles(gMapObjectPic_MayFieldMove_3), - obj_frame_tiles(gMapObjectPic_MayFieldMove_4) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Cameraman[] = { - obj_frame_tiles(gMapObjectPic_Cameraman_0), - obj_frame_tiles(gMapObjectPic_Cameraman_1), - obj_frame_tiles(gMapObjectPic_Cameraman_2), - obj_frame_tiles(gMapObjectPic_Cameraman_3), - obj_frame_tiles(gMapObjectPic_Cameraman_4), - obj_frame_tiles(gMapObjectPic_Cameraman_5), - obj_frame_tiles(gMapObjectPic_Cameraman_6), - obj_frame_tiles(gMapObjectPic_Cameraman_7), - obj_frame_tiles(gMapObjectPic_Cameraman_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_MovingBox[] = { - obj_frame_tiles(gMapObjectPic_MovingBox) -}; - -const struct SpriteFrameImage gMapObjectPicTable_CableCar[] = { - obj_frame_tiles(gMapObjectPic_CableCar) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Scientist2[] = { - obj_frame_tiles(gMapObjectPic_Scientist2_0), - obj_frame_tiles(gMapObjectPic_Scientist2_1), - obj_frame_tiles(gMapObjectPic_Scientist2_2), - obj_frame_tiles(gMapObjectPic_Scientist2_3), - obj_frame_tiles(gMapObjectPic_Scientist2_4), - obj_frame_tiles(gMapObjectPic_Scientist2_5), - obj_frame_tiles(gMapObjectPic_Scientist2_6), - obj_frame_tiles(gMapObjectPic_Scientist2_7), - obj_frame_tiles(gMapObjectPic_Scientist2_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Man7[] = { - obj_frame_tiles(gMapObjectPic_Man7_0), - obj_frame_tiles(gMapObjectPic_Man7_1), - obj_frame_tiles(gMapObjectPic_Man7_2), - obj_frame_tiles(gMapObjectPic_Man7_3), - obj_frame_tiles(gMapObjectPic_Man7_4), - obj_frame_tiles(gMapObjectPic_Man7_5), - obj_frame_tiles(gMapObjectPic_Man7_6), - obj_frame_tiles(gMapObjectPic_Man7_7), - obj_frame_tiles(gMapObjectPic_Man7_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_AquaMemberM[] = { - obj_frame_tiles(gMapObjectPic_AquaMemberM_0), - obj_frame_tiles(gMapObjectPic_AquaMemberM_1), - obj_frame_tiles(gMapObjectPic_AquaMemberM_2), - obj_frame_tiles(gMapObjectPic_AquaMemberM_3), - obj_frame_tiles(gMapObjectPic_AquaMemberM_4), - obj_frame_tiles(gMapObjectPic_AquaMemberM_5), - obj_frame_tiles(gMapObjectPic_AquaMemberM_6), - obj_frame_tiles(gMapObjectPic_AquaMemberM_7), - obj_frame_tiles(gMapObjectPic_AquaMemberM_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_AquaMemberF[] = { - obj_frame_tiles(gMapObjectPic_AquaMemberF_0), - obj_frame_tiles(gMapObjectPic_AquaMemberF_1), - obj_frame_tiles(gMapObjectPic_AquaMemberF_2), - obj_frame_tiles(gMapObjectPic_AquaMemberF_3), - obj_frame_tiles(gMapObjectPic_AquaMemberF_4), - obj_frame_tiles(gMapObjectPic_AquaMemberF_5), - obj_frame_tiles(gMapObjectPic_AquaMemberF_6), - obj_frame_tiles(gMapObjectPic_AquaMemberF_7), - obj_frame_tiles(gMapObjectPic_AquaMemberF_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_MagmaMemberM[] = { - obj_frame_tiles(gMapObjectPic_MagmaMemberM_0), - obj_frame_tiles(gMapObjectPic_MagmaMemberM_1), - obj_frame_tiles(gMapObjectPic_MagmaMemberM_2), - obj_frame_tiles(gMapObjectPic_MagmaMemberM_3), - obj_frame_tiles(gMapObjectPic_MagmaMemberM_4), - obj_frame_tiles(gMapObjectPic_MagmaMemberM_5), - obj_frame_tiles(gMapObjectPic_MagmaMemberM_6), - obj_frame_tiles(gMapObjectPic_MagmaMemberM_7), - obj_frame_tiles(gMapObjectPic_MagmaMemberM_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_MagmaMemberF[] = { - obj_frame_tiles(gMapObjectPic_MagmaMemberF_0), - obj_frame_tiles(gMapObjectPic_MagmaMemberF_1), - obj_frame_tiles(gMapObjectPic_MagmaMemberF_2), - obj_frame_tiles(gMapObjectPic_MagmaMemberF_3), - obj_frame_tiles(gMapObjectPic_MagmaMemberF_4), - obj_frame_tiles(gMapObjectPic_MagmaMemberF_5), - obj_frame_tiles(gMapObjectPic_MagmaMemberF_6), - obj_frame_tiles(gMapObjectPic_MagmaMemberF_7), - obj_frame_tiles(gMapObjectPic_MagmaMemberF_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Sidney[] = { - obj_frame_tiles(gMapObjectPic_Sidney_0), - obj_frame_tiles(gMapObjectPic_Sidney_1), - obj_frame_tiles(gMapObjectPic_Sidney_2), - obj_frame_tiles(gMapObjectPic_Sidney_0), - obj_frame_tiles(gMapObjectPic_Sidney_0), - obj_frame_tiles(gMapObjectPic_Sidney_1), - obj_frame_tiles(gMapObjectPic_Sidney_1), - obj_frame_tiles(gMapObjectPic_Sidney_2), - obj_frame_tiles(gMapObjectPic_Sidney_2) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Phoebe[] = { - obj_frame_tiles(gMapObjectPic_Phoebe_0), - obj_frame_tiles(gMapObjectPic_Phoebe_1), - obj_frame_tiles(gMapObjectPic_Phoebe_2), - obj_frame_tiles(gMapObjectPic_Phoebe_0), - obj_frame_tiles(gMapObjectPic_Phoebe_0), - obj_frame_tiles(gMapObjectPic_Phoebe_1), - obj_frame_tiles(gMapObjectPic_Phoebe_1), - obj_frame_tiles(gMapObjectPic_Phoebe_2), - obj_frame_tiles(gMapObjectPic_Phoebe_2) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Glacia[] = { - obj_frame_tiles(gMapObjectPic_Glacia_0), - obj_frame_tiles(gMapObjectPic_Glacia_1), - obj_frame_tiles(gMapObjectPic_Glacia_2), - obj_frame_tiles(gMapObjectPic_Glacia_0), - obj_frame_tiles(gMapObjectPic_Glacia_0), - obj_frame_tiles(gMapObjectPic_Glacia_1), - obj_frame_tiles(gMapObjectPic_Glacia_1), - obj_frame_tiles(gMapObjectPic_Glacia_2), - obj_frame_tiles(gMapObjectPic_Glacia_2) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Drake[] = { - obj_frame_tiles(gMapObjectPic_Drake_0), - obj_frame_tiles(gMapObjectPic_Drake_1), - obj_frame_tiles(gMapObjectPic_Drake_2), - obj_frame_tiles(gMapObjectPic_Drake_0), - obj_frame_tiles(gMapObjectPic_Drake_0), - obj_frame_tiles(gMapObjectPic_Drake_1), - obj_frame_tiles(gMapObjectPic_Drake_1), - obj_frame_tiles(gMapObjectPic_Drake_2), - obj_frame_tiles(gMapObjectPic_Drake_2) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Roxanne[] = { - obj_frame_tiles(gMapObjectPic_Roxanne_0), - obj_frame_tiles(gMapObjectPic_Roxanne_1), - obj_frame_tiles(gMapObjectPic_Roxanne_2), - obj_frame_tiles(gMapObjectPic_Roxanne_0), - obj_frame_tiles(gMapObjectPic_Roxanne_0), - obj_frame_tiles(gMapObjectPic_Roxanne_1), - obj_frame_tiles(gMapObjectPic_Roxanne_1), - obj_frame_tiles(gMapObjectPic_Roxanne_2), - obj_frame_tiles(gMapObjectPic_Roxanne_2) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Brawly[] = { - obj_frame_tiles(gMapObjectPic_Brawly_0), - obj_frame_tiles(gMapObjectPic_Brawly_1), - obj_frame_tiles(gMapObjectPic_Brawly_2), - obj_frame_tiles(gMapObjectPic_Brawly_0), - obj_frame_tiles(gMapObjectPic_Brawly_0), - obj_frame_tiles(gMapObjectPic_Brawly_1), - obj_frame_tiles(gMapObjectPic_Brawly_1), - obj_frame_tiles(gMapObjectPic_Brawly_2), - obj_frame_tiles(gMapObjectPic_Brawly_2) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Wattson[] = { - obj_frame_tiles(gMapObjectPic_Wattson_0), - obj_frame_tiles(gMapObjectPic_Wattson_1), - obj_frame_tiles(gMapObjectPic_Wattson_2), - obj_frame_tiles(gMapObjectPic_Wattson_0), - obj_frame_tiles(gMapObjectPic_Wattson_0), - obj_frame_tiles(gMapObjectPic_Wattson_1), - obj_frame_tiles(gMapObjectPic_Wattson_1), - obj_frame_tiles(gMapObjectPic_Wattson_2), - obj_frame_tiles(gMapObjectPic_Wattson_2) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Flannery[] = { - obj_frame_tiles(gMapObjectPic_Flannery_0), - obj_frame_tiles(gMapObjectPic_Flannery_1), - obj_frame_tiles(gMapObjectPic_Flannery_2), - obj_frame_tiles(gMapObjectPic_Flannery_0), - obj_frame_tiles(gMapObjectPic_Flannery_0), - obj_frame_tiles(gMapObjectPic_Flannery_1), - obj_frame_tiles(gMapObjectPic_Flannery_1), - obj_frame_tiles(gMapObjectPic_Flannery_2), - obj_frame_tiles(gMapObjectPic_Flannery_2) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Norman[] = { - obj_frame_tiles(gMapObjectPic_Norman_0), - obj_frame_tiles(gMapObjectPic_Norman_1), - obj_frame_tiles(gMapObjectPic_Norman_2), - obj_frame_tiles(gMapObjectPic_Norman_3), - obj_frame_tiles(gMapObjectPic_Norman_4), - obj_frame_tiles(gMapObjectPic_Norman_5), - obj_frame_tiles(gMapObjectPic_Norman_6), - obj_frame_tiles(gMapObjectPic_Norman_7), - obj_frame_tiles(gMapObjectPic_Norman_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Winona[] = { - obj_frame_tiles(gMapObjectPic_Winona_0), - obj_frame_tiles(gMapObjectPic_Winona_1), - obj_frame_tiles(gMapObjectPic_Winona_2), - obj_frame_tiles(gMapObjectPic_Winona_0), - obj_frame_tiles(gMapObjectPic_Winona_0), - obj_frame_tiles(gMapObjectPic_Winona_1), - obj_frame_tiles(gMapObjectPic_Winona_1), - obj_frame_tiles(gMapObjectPic_Winona_2), - obj_frame_tiles(gMapObjectPic_Winona_2) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Liza[] = { - obj_frame_tiles(gMapObjectPic_Liza_0), - obj_frame_tiles(gMapObjectPic_Liza_1), - obj_frame_tiles(gMapObjectPic_Liza_2), - obj_frame_tiles(gMapObjectPic_Liza_0), - obj_frame_tiles(gMapObjectPic_Liza_0), - obj_frame_tiles(gMapObjectPic_Liza_1), - obj_frame_tiles(gMapObjectPic_Liza_1), - obj_frame_tiles(gMapObjectPic_Liza_2), - obj_frame_tiles(gMapObjectPic_Liza_2) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Tate[] = { - obj_frame_tiles(gMapObjectPic_Tate_0), - obj_frame_tiles(gMapObjectPic_Tate_1), - obj_frame_tiles(gMapObjectPic_Tate_2), - obj_frame_tiles(gMapObjectPic_Tate_0), - obj_frame_tiles(gMapObjectPic_Tate_0), - obj_frame_tiles(gMapObjectPic_Tate_1), - obj_frame_tiles(gMapObjectPic_Tate_1), - obj_frame_tiles(gMapObjectPic_Tate_2), - obj_frame_tiles(gMapObjectPic_Tate_2) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Wallace[] = { - obj_frame_tiles(gMapObjectPic_Wallace_0), - obj_frame_tiles(gMapObjectPic_Wallace_1), - obj_frame_tiles(gMapObjectPic_Wallace_2), - obj_frame_tiles(gMapObjectPic_Wallace_3), - obj_frame_tiles(gMapObjectPic_Wallace_4), - obj_frame_tiles(gMapObjectPic_Wallace_5), - obj_frame_tiles(gMapObjectPic_Wallace_6), - obj_frame_tiles(gMapObjectPic_Wallace_7), - obj_frame_tiles(gMapObjectPic_Wallace_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Steven[] = { - obj_frame_tiles(gMapObjectPic_Steven_0), - obj_frame_tiles(gMapObjectPic_Steven_1), - obj_frame_tiles(gMapObjectPic_Steven_2), - obj_frame_tiles(gMapObjectPic_Steven_3), - obj_frame_tiles(gMapObjectPic_Steven_4), - obj_frame_tiles(gMapObjectPic_Steven_5), - obj_frame_tiles(gMapObjectPic_Steven_6), - obj_frame_tiles(gMapObjectPic_Steven_7), - obj_frame_tiles(gMapObjectPic_Steven_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Wally[] = { - obj_frame_tiles(gMapObjectPic_Wally_0), - obj_frame_tiles(gMapObjectPic_Wally_1), - obj_frame_tiles(gMapObjectPic_Wally_2), - obj_frame_tiles(gMapObjectPic_Wally_3), - obj_frame_tiles(gMapObjectPic_Wally_4), - obj_frame_tiles(gMapObjectPic_Wally_5), - obj_frame_tiles(gMapObjectPic_Wally_6), - obj_frame_tiles(gMapObjectPic_Wally_7), - obj_frame_tiles(gMapObjectPic_Wally_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_LittleBoy3[] = { - obj_frame_tiles(gMapObjectPic_LittleBoy3_0), - obj_frame_tiles(gMapObjectPic_LittleBoy3_1), - obj_frame_tiles(gMapObjectPic_LittleBoy3_2), - obj_frame_tiles(gMapObjectPic_LittleBoy3_3), - obj_frame_tiles(gMapObjectPic_LittleBoy3_4), - obj_frame_tiles(gMapObjectPic_LittleBoy3_5), - obj_frame_tiles(gMapObjectPic_LittleBoy3_6), - obj_frame_tiles(gMapObjectPic_LittleBoy3_7), - obj_frame_tiles(gMapObjectPic_LittleBoy3_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_BrendanFishing[] = { - obj_frame_tiles(gMapObjectPic_BrendanFishing_0), - obj_frame_tiles(gMapObjectPic_BrendanFishing_1), - obj_frame_tiles(gMapObjectPic_BrendanFishing_2), - obj_frame_tiles(gMapObjectPic_BrendanFishing_3), - obj_frame_tiles(gMapObjectPic_BrendanFishing_4), - obj_frame_tiles(gMapObjectPic_BrendanFishing_5), - obj_frame_tiles(gMapObjectPic_BrendanFishing_6), - obj_frame_tiles(gMapObjectPic_BrendanFishing_7), - obj_frame_tiles(gMapObjectPic_BrendanFishing_8), - obj_frame_tiles(gMapObjectPic_BrendanFishing_9), - obj_frame_tiles(gMapObjectPic_BrendanFishing_10), - obj_frame_tiles(gMapObjectPic_BrendanFishing_11) -}; - -const struct SpriteFrameImage gMapObjectPicTable_MayFishing[] = { - obj_frame_tiles(gMapObjectPic_MayFishing_0), - obj_frame_tiles(gMapObjectPic_MayFishing_1), - obj_frame_tiles(gMapObjectPic_MayFishing_2), - obj_frame_tiles(gMapObjectPic_MayFishing_3), - obj_frame_tiles(gMapObjectPic_MayFishing_4), - obj_frame_tiles(gMapObjectPic_MayFishing_5), - obj_frame_tiles(gMapObjectPic_MayFishing_6), - obj_frame_tiles(gMapObjectPic_MayFishing_7), - obj_frame_tiles(gMapObjectPic_MayFishing_8), - obj_frame_tiles(gMapObjectPic_MayFishing_9), - obj_frame_tiles(gMapObjectPic_MayFishing_10), - obj_frame_tiles(gMapObjectPic_MayFishing_11) -}; - -const struct SpriteFrameImage gMapObjectPicTable_HotSpringsOldWoman[] = { - obj_frame_tiles(gMapObjectPic_HotSpringsOldWoman_0), - obj_frame_tiles(gMapObjectPic_HotSpringsOldWoman_1), - obj_frame_tiles(gMapObjectPic_HotSpringsOldWoman_2), - obj_frame_tiles(gMapObjectPic_HotSpringsOldWoman_3), - obj_frame_tiles(gMapObjectPic_HotSpringsOldWoman_4), - obj_frame_tiles(gMapObjectPic_HotSpringsOldWoman_5), - obj_frame_tiles(gMapObjectPic_HotSpringsOldWoman_6), - obj_frame_tiles(gMapObjectPic_HotSpringsOldWoman_7), - obj_frame_tiles(gMapObjectPic_HotSpringsOldWoman_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_SSTidal[] = { - obj_frame_tiles(gMapObjectPic_SSTidal), - obj_frame_tiles(gMapObjectPic_SSTidal), - obj_frame_tiles(gMapObjectPic_SSTidal), - obj_frame_tiles(gMapObjectPic_SSTidal), - obj_frame_tiles(gMapObjectPic_SSTidal), - obj_frame_tiles(gMapObjectPic_SSTidal), - obj_frame_tiles(gMapObjectPic_SSTidal), - obj_frame_tiles(gMapObjectPic_SSTidal), - obj_frame_tiles(gMapObjectPic_SSTidal) -}; - -const struct SpriteFrameImage gMapObjectPicTable_SubmarineShadow[] = { - obj_frame_tiles(gMapObjectPic_SubmarineShadow), - obj_frame_tiles(gMapObjectPic_SubmarineShadow), - obj_frame_tiles(gMapObjectPic_SubmarineShadow), - obj_frame_tiles(gMapObjectPic_SubmarineShadow), - obj_frame_tiles(gMapObjectPic_SubmarineShadow), - obj_frame_tiles(gMapObjectPic_SubmarineShadow), - obj_frame_tiles(gMapObjectPic_SubmarineShadow), - obj_frame_tiles(gMapObjectPic_SubmarineShadow), - obj_frame_tiles(gMapObjectPic_SubmarineShadow) -}; - -const struct SpriteFrameImage gMapObjectPicTable_PichuDoll[] = { - obj_frame_tiles(gMapObjectPic_PichuDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_PikachuDoll[] = { - obj_frame_tiles(gMapObjectPic_PikachuDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_MarillDoll[] = { - obj_frame_tiles(gMapObjectPic_MarillDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_TogepiDoll[] = { - obj_frame_tiles(gMapObjectPic_TogepiDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_CyndaquilDoll[] = { - obj_frame_tiles(gMapObjectPic_CyndaquilDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_ChikoritaDoll[] = { - obj_frame_tiles(gMapObjectPic_ChikoritaDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_TotodileDoll[] = { - obj_frame_tiles(gMapObjectPic_TotodileDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_JigglypuffDoll[] = { - obj_frame_tiles(gMapObjectPic_JigglypuffDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_MeowthDoll[] = { - obj_frame_tiles(gMapObjectPic_MeowthDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_ClefairyDoll[] = { - obj_frame_tiles(gMapObjectPic_ClefairyDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_DittoDoll[] = { - obj_frame_tiles(gMapObjectPic_DittoDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_SmoochumDoll[] = { - obj_frame_tiles(gMapObjectPic_SmoochumDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_TreeckoDoll[] = { - obj_frame_tiles(gMapObjectPic_TreeckoDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_TorchicDoll[] = { - obj_frame_tiles(gMapObjectPic_TorchicDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_MudkipDoll[] = { - obj_frame_tiles(gMapObjectPic_MudkipDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_DuskullDoll[] = { - obj_frame_tiles(gMapObjectPic_DuskullDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_WynautDoll[] = { - obj_frame_tiles(gMapObjectPic_WynautDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_BaltoyDoll[] = { - obj_frame_tiles(gMapObjectPic_BaltoyDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_KecleonDoll[] = { - obj_frame_tiles(gMapObjectPic_KecleonDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_AzurillDoll[] = { - obj_frame_tiles(gMapObjectPic_AzurillDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_SkittyDoll[] = { - obj_frame_tiles(gMapObjectPic_SkittyDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_SwabluDoll[] = { - obj_frame_tiles(gMapObjectPic_SwabluDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_GulpinDoll[] = { - obj_frame_tiles(gMapObjectPic_GulpinDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_LotadDoll[] = { - obj_frame_tiles(gMapObjectPic_LotadDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_SeedotDoll[] = { - obj_frame_tiles(gMapObjectPic_SeedotDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_PikaCushion[] = { - obj_frame_tiles(gMapObjectPic_PikaCushion) -}; - -const struct SpriteFrameImage gMapObjectPicTable_RoundCushion[] = { - obj_frame_tiles(gMapObjectPic_RoundCushion) -}; - -const struct SpriteFrameImage gMapObjectPicTable_KissCushion[] = { - obj_frame_tiles(gMapObjectPic_KissCushion) -}; - -const struct SpriteFrameImage gMapObjectPicTable_ZigzagCushion[] = { - obj_frame_tiles(gMapObjectPic_ZigzagCushion) -}; - -const struct SpriteFrameImage gMapObjectPicTable_SpinCushion[] = { - obj_frame_tiles(gMapObjectPic_SpinCushion) -}; - -const struct SpriteFrameImage gMapObjectPicTable_DiamondCushion[] = { - obj_frame_tiles(gMapObjectPic_DiamondCushion) -}; - -const struct SpriteFrameImage gMapObjectPicTable_BallCushion[] = { - obj_frame_tiles(gMapObjectPic_BallCushion) -}; - -const struct SpriteFrameImage gMapObjectPicTable_GrassCushion[] = { - obj_frame_tiles(gMapObjectPic_GrassCushion) -}; - -const struct SpriteFrameImage gMapObjectPicTable_FireCushion[] = { - obj_frame_tiles(gMapObjectPic_FireCushion) -}; - -const struct SpriteFrameImage gMapObjectPicTable_WaterCushion[] = { - obj_frame_tiles(gMapObjectPic_WaterCushion) -}; - -const struct SpriteFrameImage gMapObjectPicTable_BigSnorlaxDoll[] = { - obj_frame_tiles(gMapObjectPic_BigSnorlaxDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_BigRhydonDoll[] = { - obj_frame_tiles(gMapObjectPic_BigRhydonDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_BigLaprasDoll[] = { - obj_frame_tiles(gMapObjectPic_BigLaprasDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_BigVenusaurDoll[] = { - obj_frame_tiles(gMapObjectPic_BigVenusaurDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_BigCharizardDoll[] = { - obj_frame_tiles(gMapObjectPic_BigCharizardDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_BigBlastoiseDoll[] = { - obj_frame_tiles(gMapObjectPic_BigBlastoiseDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_BigWailmerDoll[] = { - obj_frame_tiles(gMapObjectPic_BigWailmerDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_BigRegirockDoll[] = { - obj_frame_tiles(gMapObjectPic_BigRegirockDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_BigRegiceDoll[] = { - obj_frame_tiles(gMapObjectPic_BigRegiceDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_BigRegisteelDoll[] = { - obj_frame_tiles(gMapObjectPic_BigRegisteelDoll) -}; - -const struct SpriteFrameImage gMapObjectPicTable_LatiasLatios[] = { - obj_frame_tiles(gMapObjectPic_LatiasLatios_0), - obj_frame_tiles(gMapObjectPic_LatiasLatios_0), - obj_frame_tiles(gMapObjectPic_LatiasLatios_0), - obj_frame_tiles(gMapObjectPic_LatiasLatios_1), - obj_frame_tiles(gMapObjectPic_LatiasLatios_2), - obj_frame_tiles(gMapObjectPic_LatiasLatios_1), - obj_frame_tiles(gMapObjectPic_LatiasLatios_2), - obj_frame_tiles(gMapObjectPic_LatiasLatios_1), - obj_frame_tiles(gMapObjectPic_LatiasLatios_2) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Boy5[] = { - obj_frame_tiles(gMapObjectPic_Boy5_0), - obj_frame_tiles(gMapObjectPic_Boy5_1), - obj_frame_tiles(gMapObjectPic_Boy5_2), - obj_frame_tiles(gMapObjectPic_Boy5_0), - obj_frame_tiles(gMapObjectPic_Boy5_0), - obj_frame_tiles(gMapObjectPic_Boy5_1), - obj_frame_tiles(gMapObjectPic_Boy5_1), - obj_frame_tiles(gMapObjectPic_Boy5_2), - obj_frame_tiles(gMapObjectPic_Boy5_2) -}; - -const struct SpriteFrameImage gMapObjectPicTable_ContestJudge[] = { - obj_frame_tiles(gMapObjectPic_ContestJudge_0), - obj_frame_tiles(gMapObjectPic_ContestJudge_1), - obj_frame_tiles(gMapObjectPic_ContestJudge_2), - obj_frame_tiles(gMapObjectPic_ContestJudge_3), - obj_frame_tiles(gMapObjectPic_ContestJudge_4), - obj_frame_tiles(gMapObjectPic_ContestJudge_5), - obj_frame_tiles(gMapObjectPic_ContestJudge_6), - obj_frame_tiles(gMapObjectPic_ContestJudge_7), - obj_frame_tiles(gMapObjectPic_ContestJudge_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_BrendanWatering[] = { - obj_frame_tiles(gMapObjectPic_BrendanWatering_0), - obj_frame_tiles(gMapObjectPic_BrendanWatering_1), - obj_frame_tiles(gMapObjectPic_BrendanWatering_2), - obj_frame_tiles(gMapObjectPic_BrendanWatering_3), - obj_frame_tiles(gMapObjectPic_BrendanWatering_3), - obj_frame_tiles(gMapObjectPic_BrendanWatering_4), - obj_frame_tiles(gMapObjectPic_BrendanWatering_4), - obj_frame_tiles(gMapObjectPic_BrendanWatering_5), - obj_frame_tiles(gMapObjectPic_BrendanWatering_5) -}; - -const struct SpriteFrameImage gMapObjectPicTable_MayWatering[] = { - obj_frame_tiles(gMapObjectPic_MayWatering_0), - obj_frame_tiles(gMapObjectPic_MayWatering_1), - obj_frame_tiles(gMapObjectPic_MayWatering_2), - obj_frame_tiles(gMapObjectPic_MayWatering_3), - obj_frame_tiles(gMapObjectPic_MayWatering_3), - obj_frame_tiles(gMapObjectPic_MayWatering_4), - obj_frame_tiles(gMapObjectPic_MayWatering_4), - obj_frame_tiles(gMapObjectPic_MayWatering_5), - obj_frame_tiles(gMapObjectPic_MayWatering_5) -}; - -const struct SpriteFrameImage gMapObjectPicTable_BrendanDecorating[] = { - obj_frame_tiles(gMapObjectPic_BrendanDecorating) -}; - -const struct SpriteFrameImage gMapObjectPicTable_MayDecorating[] = { - obj_frame_tiles(gMapObjectPic_MayDecorating) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Archie[] = { - obj_frame_tiles(gMapObjectPic_Archie_0), - obj_frame_tiles(gMapObjectPic_Archie_1), - obj_frame_tiles(gMapObjectPic_Archie_2), - obj_frame_tiles(gMapObjectPic_Archie_3), - obj_frame_tiles(gMapObjectPic_Archie_4), - obj_frame_tiles(gMapObjectPic_Archie_5), - obj_frame_tiles(gMapObjectPic_Archie_6), - obj_frame_tiles(gMapObjectPic_Archie_7), - obj_frame_tiles(gMapObjectPic_Archie_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Maxie[] = { - obj_frame_tiles(gMapObjectPic_Maxie_0), - obj_frame_tiles(gMapObjectPic_Maxie_1), - obj_frame_tiles(gMapObjectPic_Maxie_2), - obj_frame_tiles(gMapObjectPic_Maxie_3), - obj_frame_tiles(gMapObjectPic_Maxie_4), - obj_frame_tiles(gMapObjectPic_Maxie_5), - obj_frame_tiles(gMapObjectPic_Maxie_6), - obj_frame_tiles(gMapObjectPic_Maxie_7), - obj_frame_tiles(gMapObjectPic_Maxie_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Kyogre[] = { - obj_frame_tiles(gMapObjectPic_Kyogre_0), - obj_frame_tiles(gMapObjectPic_Kyogre_0), - obj_frame_tiles(gMapObjectPic_Kyogre_0), - obj_frame_tiles(gMapObjectPic_Kyogre_1), - obj_frame_tiles(gMapObjectPic_Kyogre_1), - obj_frame_tiles(gMapObjectPic_Kyogre_1), - obj_frame_tiles(gMapObjectPic_Kyogre_1), - obj_frame_tiles(gMapObjectPic_Kyogre_1), - obj_frame_tiles(gMapObjectPic_Kyogre_1) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Groudon[] = { - obj_frame_tiles(gMapObjectPic_Groudon_0), - obj_frame_tiles(gMapObjectPic_Groudon_0), - obj_frame_tiles(gMapObjectPic_Groudon_0), - obj_frame_tiles(gMapObjectPic_Groudon_1), - obj_frame_tiles(gMapObjectPic_Groudon_1), - obj_frame_tiles(gMapObjectPic_Groudon_1), - obj_frame_tiles(gMapObjectPic_Groudon_1), - obj_frame_tiles(gMapObjectPic_Groudon_1), - obj_frame_tiles(gMapObjectPic_Groudon_1) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Fossil[] = { - obj_frame_tiles(gMapObjectPic_Fossil) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Regi[] = { - obj_frame_tiles(gMapObjectPic_Regi), - obj_frame_tiles(gMapObjectPic_Regi), - obj_frame_tiles(gMapObjectPic_Regi), - obj_frame_tiles(gMapObjectPic_Regi), - obj_frame_tiles(gMapObjectPic_Regi), - obj_frame_tiles(gMapObjectPic_Regi), - obj_frame_tiles(gMapObjectPic_Regi), - obj_frame_tiles(gMapObjectPic_Regi), - obj_frame_tiles(gMapObjectPic_Regi) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Skitty[] = { - obj_frame_tiles(gMapObjectPic_Skitty_0), - obj_frame_tiles(gMapObjectPic_Skitty_1), - obj_frame_tiles(gMapObjectPic_Skitty_2), - obj_frame_tiles(gMapObjectPic_Skitty_0), - obj_frame_tiles(gMapObjectPic_Skitty_0), - obj_frame_tiles(gMapObjectPic_Skitty_1), - obj_frame_tiles(gMapObjectPic_Skitty_1), - obj_frame_tiles(gMapObjectPic_Skitty_2), - obj_frame_tiles(gMapObjectPic_Skitty_2) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Kecleon[] = { - obj_frame_tiles(gMapObjectPic_Kecleon_0), - obj_frame_tiles(gMapObjectPic_Kecleon_1), - obj_frame_tiles(gMapObjectPic_Kecleon_2), - obj_frame_tiles(gMapObjectPic_Kecleon_0), - obj_frame_tiles(gMapObjectPic_Kecleon_0), - obj_frame_tiles(gMapObjectPic_Kecleon_1), - obj_frame_tiles(gMapObjectPic_Kecleon_1), - obj_frame_tiles(gMapObjectPic_Kecleon_2), - obj_frame_tiles(gMapObjectPic_Kecleon_2) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Rayquaza[] = { - obj_frame_tiles(gMapObjectPic_Rayquaza_0), - obj_frame_tiles(gMapObjectPic_Rayquaza_0), - obj_frame_tiles(gMapObjectPic_Rayquaza_0), - obj_frame_tiles(gMapObjectPic_Rayquaza_1), - obj_frame_tiles(gMapObjectPic_Rayquaza_1), - obj_frame_tiles(gMapObjectPic_Rayquaza_1), - obj_frame_tiles(gMapObjectPic_Rayquaza_1), - obj_frame_tiles(gMapObjectPic_Rayquaza_1), - obj_frame_tiles(gMapObjectPic_Rayquaza_1) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Zigzagoon[] = { - obj_frame_tiles(gMapObjectPic_Zigzagoon_0), - obj_frame_tiles(gMapObjectPic_Zigzagoon_1), - obj_frame_tiles(gMapObjectPic_Zigzagoon_2), - obj_frame_tiles(gMapObjectPic_Zigzagoon_0), - obj_frame_tiles(gMapObjectPic_Zigzagoon_0), - obj_frame_tiles(gMapObjectPic_Zigzagoon_1), - obj_frame_tiles(gMapObjectPic_Zigzagoon_1), - obj_frame_tiles(gMapObjectPic_Zigzagoon_2), - obj_frame_tiles(gMapObjectPic_Zigzagoon_2) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Pikachu[] = { - obj_frame_tiles(gMapObjectPic_Pikachu_0), - obj_frame_tiles(gMapObjectPic_Pikachu_1), - obj_frame_tiles(gMapObjectPic_Pikachu_2), - obj_frame_tiles(gMapObjectPic_Pikachu_0), - obj_frame_tiles(gMapObjectPic_Pikachu_0), - obj_frame_tiles(gMapObjectPic_Pikachu_1), - obj_frame_tiles(gMapObjectPic_Pikachu_1), - obj_frame_tiles(gMapObjectPic_Pikachu_2), - obj_frame_tiles(gMapObjectPic_Pikachu_2) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Azumarill[] = { - obj_frame_tiles(gMapObjectPic_Azumarill_0), - obj_frame_tiles(gMapObjectPic_Azumarill_1), - obj_frame_tiles(gMapObjectPic_Azumarill_2), - obj_frame_tiles(gMapObjectPic_Azumarill_0), - obj_frame_tiles(gMapObjectPic_Azumarill_0), - obj_frame_tiles(gMapObjectPic_Azumarill_1), - obj_frame_tiles(gMapObjectPic_Azumarill_1), - obj_frame_tiles(gMapObjectPic_Azumarill_2), - obj_frame_tiles(gMapObjectPic_Azumarill_2) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Wingull[] = { - obj_frame_tiles(gMapObjectPic_Wingull_0), - obj_frame_tiles(gMapObjectPic_Wingull_1), - obj_frame_tiles(gMapObjectPic_Wingull_2), - obj_frame_tiles(gMapObjectPic_Wingull_3), - obj_frame_tiles(gMapObjectPic_Wingull_3), - obj_frame_tiles(gMapObjectPic_Wingull_4), - obj_frame_tiles(gMapObjectPic_Wingull_4), - obj_frame_tiles(gMapObjectPic_Wingull_5), - obj_frame_tiles(gMapObjectPic_Wingull_5) -}; - -const struct SpriteFrameImage gMapObjectPicTable_TuberMSwimming[] = { - obj_frame_tiles(gMapObjectPic_TuberMSwimming_0), - obj_frame_tiles(gMapObjectPic_TuberMSwimming_1), - obj_frame_tiles(gMapObjectPic_TuberMSwimming_2), - obj_frame_tiles(gMapObjectPic_TuberMSwimming_3), - obj_frame_tiles(gMapObjectPic_TuberMSwimming_4), - obj_frame_tiles(gMapObjectPic_TuberMSwimming_5), - obj_frame_tiles(gMapObjectPic_TuberMSwimming_6), - obj_frame_tiles(gMapObjectPic_TuberMSwimming_7), - obj_frame_tiles(gMapObjectPic_TuberMSwimming_8) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Azurill[] = { - obj_frame_tiles(gMapObjectPic_Azurill_0), - obj_frame_tiles(gMapObjectPic_Azurill_1), - obj_frame_tiles(gMapObjectPic_Azurill_2), - obj_frame_tiles(gMapObjectPic_Azurill_0), - obj_frame_tiles(gMapObjectPic_Azurill_0), - obj_frame_tiles(gMapObjectPic_Azurill_1), - obj_frame_tiles(gMapObjectPic_Azurill_1), - obj_frame_tiles(gMapObjectPic_Azurill_2), - obj_frame_tiles(gMapObjectPic_Azurill_2) -}; - -const struct SpriteFrameImage gMapObjectPicTable_Mom[] = { - obj_frame_tiles(gMapObjectPic_Mom_0), - obj_frame_tiles(gMapObjectPic_Mom_1), - obj_frame_tiles(gMapObjectPic_Mom_2), - obj_frame_tiles(gMapObjectPic_Mom_3), - obj_frame_tiles(gMapObjectPic_Mom_4), - obj_frame_tiles(gMapObjectPic_Mom_5), - obj_frame_tiles(gMapObjectPic_Mom_6), - obj_frame_tiles(gMapObjectPic_Mom_7), - obj_frame_tiles(gMapObjectPic_Mom_8), -}; - -#endif //POKERUBY_MAP_OBJECT_PIC_TABLES_H diff --git a/include/data/field_map_obj/map_object_subsprites.h b/include/data/field_map_obj/map_object_subsprites.h deleted file mode 100644 index f928db88a..000000000 --- a/include/data/field_map_obj/map_object_subsprites.h +++ /dev/null @@ -1,345 +0,0 @@ -// -// Created by scott on 6/17/2017. -// - -#ifndef POKERUBY_MAP_OBJECT_SUBSPRITES_H -#define POKERUBY_MAP_OBJECT_SUBSPRITES_H - -const struct Subsprite gMapObjectSubspriteTable_16x16_0[] = { - { -8, -8, 0, 1, 0, 2} -}; - -const struct Subsprite gMapObjectSubspriteTable_16x16_1[] = { - { -8, -8, 0, 1, 0, 1} -}; - -const struct Subsprite gMapObjectSubspriteTable_16x16_2[] = { - { -8, -8, 1, 0, 0, 2}, - { -8, 0, 1, 0, 2, 3} -}; - -const struct Subsprite gMapObjectSubspriteTable_16x16_3[] = { - { -8, -8, 0, 1, 0, 2}, - { -8, -8, 0, 1, 0, 3} -}; - -const struct Subsprite gMapObjectSubspriteTable_16x16_4[] = { - { -8, -8, 0, 1, 0, 1}, - { -8, -8, 0, 1, 0, 3} -}; - -const struct SubspriteTable gMapObjectSubspriteTables_16x16[] = { - {0, NULL}, - {1, gMapObjectSubspriteTable_16x16_0}, - {1, gMapObjectSubspriteTable_16x16_1}, - {2, gMapObjectSubspriteTable_16x16_2}, - {2, gMapObjectSubspriteTable_16x16_3}, - {2, gMapObjectSubspriteTable_16x16_4} -}; - -const struct Subsprite gMapObjectSubspriteTable_16x32_0[] = { - { -8, -16, 2, 2, 0, 2} -}; - -const struct Subsprite gMapObjectSubspriteTable_16x32_1[] = { - { -8, -16, 2, 2, 0, 1} -}; - -const struct Subsprite gMapObjectSubspriteTable_16x32_2[] = { - { -8, -16, 0, 1, 0, 2}, - { -8, 0, 1, 0, 4, 2}, - { -8, 8, 1, 0, 6, 3} -}; - -const struct Subsprite gMapObjectSubspriteTable_16x32_3[] = { - { -8, -16, 0, 1, 0, 2}, - { -8, 0, 0, 1, 4, 3} -}; - -const struct Subsprite gMapObjectSubspriteTable_16x32_4[] = { - { -8, -16, 0, 1, 0, 1}, - { -8, 0, 0, 1, 4, 3} -}; - -const struct SubspriteTable gMapObjectSubspriteTables_16x32[] = { - {0, NULL}, - {1, gMapObjectSubspriteTable_16x32_0}, - {1, gMapObjectSubspriteTable_16x32_1}, - {3, gMapObjectSubspriteTable_16x32_2}, - {2, gMapObjectSubspriteTable_16x32_3}, - {2, gMapObjectSubspriteTable_16x32_4} -}; - -const struct Subsprite gMapObjectSubspriteTable_32x32_0[] = { - {-16, -16, 0, 2, 0, 2} -}; - -const struct Subsprite gMapObjectSubspriteTable_32x32_1[] = { - {-16, -16, 0, 2, 0, 1} -}; - -const struct Subsprite gMapObjectSubspriteTable_32x32_2[] = { - {-16, -16, 1, 2, 0, 2}, - {-16, 0, 1, 1, 8, 2}, - {-16, 8, 1, 1, 12, 3} -}; - -const struct Subsprite gMapObjectSubspriteTable_32x32_3[] = { - {-16, -16, 1, 2, 0, 2}, - {-16, 0, 1, 2, 8, 3} -}; - -const struct Subsprite gMapObjectSubspriteTable_32x32_4[] = { - {-16, -16, 1, 2, 0, 1}, - {-16, 0, 1, 2, 8, 3} -}; - -const struct SubspriteTable gMapObjectSubspriteTables_32x32[] = { - {0, NULL}, - {1, gMapObjectSubspriteTable_32x32_0}, - {1, gMapObjectSubspriteTable_32x32_1}, - {3, gMapObjectSubspriteTable_32x32_2}, - {2, gMapObjectSubspriteTable_32x32_3}, - {2, gMapObjectSubspriteTable_32x32_4} -}; - -const struct Subsprite gMapObjectSubspriteTable_Truck_0[] = { - {-24, -24, 1, 1, 0, 2}, - { 8, -24, 1, 0, 4, 2}, - {-24, -16, 1, 1, 6, 2}, - { 8, -16, 1, 0, 10, 2}, - {-24, -8, 1, 1, 12, 2}, - { 8, -8, 1, 0, 16, 2}, - {-24, 0, 1, 1, 18, 2}, - { 8, 0, 1, 0, 22, 2}, - {-24, 8, 1, 1, 24, 2}, - { 8, 8, 1, 0, 28, 2}, - {-24, 16, 1, 1, 30, 2}, - { 8, 16, 1, 0, 34, 2} -}; - -const struct SubspriteTable gMapObjectSubspriteTables_Truck[] = { - {12, gMapObjectSubspriteTable_Truck_0}, - {12, gMapObjectSubspriteTable_Truck_0}, - {12, gMapObjectSubspriteTable_Truck_0}, - {12, gMapObjectSubspriteTable_Truck_0}, - {12, gMapObjectSubspriteTable_Truck_0}, - {12, gMapObjectSubspriteTable_Truck_0} -}; - -const struct Subsprite gMapObjectSubspriteTable_Unused_0[] = { - {-32, -16, 1, 3, 0, 2} -}; - -const struct Subsprite gMapObjectSubspriteTable_Unused_1[] = { - {-32, -16, 1, 3, 0, 1} -}; - -const struct Subsprite gMapObjectSubspriteTable_Unused_2[] = { - {-32, -16, 1, 3, 0, 2} -}; - -const struct Subsprite gMapObjectSubspriteTable_Unused_3[] = { - {-32, -16, 1, 3, 0, 2} -}; - -const struct SubspriteTable gMapObjectSubspriteTables_Unused[] = { - {0, NULL}, - {1, gMapObjectSubspriteTable_Unused_0}, - {1, gMapObjectSubspriteTable_Unused_1}, - {1, gMapObjectSubspriteTable_Unused_2}, - {1, gMapObjectSubspriteTable_Unused_3}, - {1, gMapObjectSubspriteTable_Unused_3} -}; - -const struct Subsprite gMapObjectSubspriteTable_CableCar_0[] = { - {-32, -32, 0, 3, 0, 2} -}; - -const struct Subsprite gMapObjectSubspriteTable_CableCar_1[] = { - {-32, -32, 0, 3, 0, 1} -}; - -const struct Subsprite gMapObjectSubspriteTable_CableCar_2[] = { - {-32, -32, 0, 3, 0, 2} -}; - -const struct Subsprite gMapObjectSubspriteTable_CableCar_3[] = { - {-32, -32, 0, 3, 0, 2} -}; - -const struct SubspriteTable gMapObjectSubspriteTables_CableCar[] = { - {0, NULL}, - {1, gMapObjectSubspriteTable_CableCar_0}, - {1, gMapObjectSubspriteTable_CableCar_1}, - {1, gMapObjectSubspriteTable_CableCar_2}, - {1, gMapObjectSubspriteTable_CableCar_3}, - {1, gMapObjectSubspriteTable_CableCar_3} -}; - -const struct Subsprite gMapObjectSubspriteTable_SSTidal_0[] = { - {-48, -20, 1, 1, 0, 2}, - {-16, -20, 1, 1, 4, 2}, - { 16, -20, 1, 1, 8, 2}, - {-48, -12, 1, 1, 12, 2}, - {-16, -12, 1, 1, 16, 2}, - { 16, -12, 1, 1, 20, 2}, - {-48, -4, 1, 1, 24, 2}, - {-16, -4, 1, 1, 28, 2}, - { 16, -4, 1, 1, 32, 2}, - {-48, 4, 1, 1, 36, 2}, - {-16, 4, 1, 1, 40, 2}, - { 16, 4, 1, 1, 44, 2}, - {-48, 12, 1, 1, 48, 2}, - {-16, 12, 1, 1, 52, 2}, - { 16, 12, 1, 1, 56, 2} -}; - -const struct Subsprite gMapObjectSubspriteTable_SSTidal_1[] = { - {-48, -20, 1, 1, 0, 1}, - {-16, -20, 1, 1, 4, 1}, - { 16, -20, 1, 1, 8, 1}, - {-48, -12, 1, 1, 12, 1}, - {-16, -12, 1, 1, 16, 1}, - { 16, -12, 1, 1, 20, 1}, - {-48, -4, 1, 1, 24, 1}, - {-16, -4, 1, 1, 28, 1}, - { 16, -4, 1, 1, 32, 1}, - {-48, 4, 1, 1, 36, 1}, - {-16, 4, 1, 1, 40, 1}, - { 16, 4, 1, 1, 44, 1}, - {-48, 12, 1, 1, 48, 1}, - {-16, 12, 1, 1, 52, 1}, - { 16, 12, 1, 1, 56, 1} -}; - -const struct Subsprite gMapObjectSubspriteTable_SSTidal_2[] = { - {-48, -20, 1, 1, 0, 2}, - {-16, -20, 1, 1, 4, 2}, - { 16, -20, 1, 1, 8, 2}, - {-48, -12, 1, 1, 12, 2}, - {-16, -12, 1, 1, 16, 2}, - { 16, -12, 1, 1, 20, 2}, - {-48, -4, 1, 1, 24, 2}, - {-16, -4, 1, 1, 28, 2}, - { 16, -4, 1, 1, 32, 2}, - {-48, 4, 1, 1, 36, 2}, - {-16, 4, 1, 1, 40, 2}, - { 16, 4, 1, 1, 44, 2}, - {-48, 12, 1, 1, 48, 2}, - {-16, 12, 1, 1, 52, 2}, - { 16, 12, 1, 1, 56, 2} -}; - -const struct Subsprite gMapObjectSubspriteTable_SSTidal_3[] = { - {-48, -20, 1, 1, 0, 1}, - {-16, -20, 1, 1, 4, 1}, - { 16, -20, 1, 1, 8, 1}, - {-48, -12, 1, 1, 12, 1}, - {-16, -12, 1, 1, 16, 1}, - { 16, -12, 1, 1, 20, 1}, - {-48, -4, 1, 1, 24, 2}, - {-16, -4, 1, 1, 28, 2}, - { 16, -4, 1, 1, 32, 2}, - {-48, 4, 1, 1, 36, 2}, - {-16, 4, 1, 1, 40, 2}, - { 16, 4, 1, 1, 44, 2}, - {-48, 12, 1, 1, 48, 2}, - {-16, 12, 1, 1, 52, 2}, - { 16, 12, 1, 1, 56, 2} -}; - -const struct SubspriteTable gMapObjectSubspriteTables_SSTidal[] = { - {15, gMapObjectSubspriteTable_SSTidal_0}, - {15, gMapObjectSubspriteTable_SSTidal_0}, - {15, gMapObjectSubspriteTable_SSTidal_1}, - {15, gMapObjectSubspriteTable_SSTidal_2}, - {15, gMapObjectSubspriteTable_SSTidal_3}, - {15, gMapObjectSubspriteTable_SSTidal_3} -}; - -const struct Subsprite gMapObjectSubspriteTable_SubmarineShadow_0[] = { - {-48, -20, 1, 1, 0, 2}, - {-16, -20, 1, 1, 4, 2}, - { 16, -20, 1, 0, 8, 2}, - { 32, -20, 0, 0, 10, 2}, - {-48, -12, 1, 1, 11, 2}, - {-16, -12, 1, 1, 15, 2}, - { 16, -12, 1, 0, 19, 2}, - { 32, -12, 0, 0, 21, 2}, - {-48, -4, 1, 1, 22, 2}, - {-16, -4, 1, 1, 26, 2}, - { 16, -4, 1, 0, 30, 2}, - { 32, -4, 0, 0, 32, 2}, - {-48, 4, 1, 1, 33, 2}, - {-16, 4, 1, 1, 37, 2}, - { 16, 4, 1, 0, 41, 2}, - { 32, 4, 0, 0, 43, 2} -}; - -const struct Subsprite gMapObjectSubspriteTable_SubmarineShadow_1[] = { - {-48, -20, 1, 1, 0, 1}, - {-16, -20, 1, 1, 4, 1}, - { 16, -20, 1, 0, 8, 1}, - { 32, -20, 0, 0, 10, 1}, - {-48, -12, 1, 1, 11, 1}, - {-16, -12, 1, 1, 15, 1}, - { 16, -12, 1, 0, 19, 1}, - { 32, -12, 0, 0, 21, 1}, - {-48, -4, 1, 1, 22, 1}, - {-16, -4, 1, 1, 26, 1}, - { 16, -4, 1, 0, 30, 1}, - { 32, -4, 0, 0, 32, 1}, - {-48, 4, 1, 1, 33, 1}, - {-16, 4, 1, 1, 37, 1}, - { 16, 4, 1, 0, 41, 1}, - { 32, 4, 0, 0, 43, 1} -}; - -const struct Subsprite gMapObjectSubspriteTable_SubmarineShadow_2[] = { - {-48, -20, 1, 1, 0, 2}, - {-16, -20, 1, 1, 4, 2}, - { 16, -20, 1, 0, 8, 2}, - { 32, -20, 0, 0, 10, 2}, - {-48, -12, 1, 1, 11, 2}, - {-16, -12, 1, 1, 15, 2}, - { 16, -12, 1, 0, 19, 2}, - { 32, -12, 0, 0, 21, 2}, - {-48, -4, 1, 1, 22, 2}, - {-16, -4, 1, 1, 26, 2}, - { 16, -4, 1, 0, 30, 2}, - { 32, -4, 0, 0, 32, 2}, - {-48, 4, 1, 1, 33, 2}, - {-16, 4, 1, 1, 37, 2}, - { 16, 4, 1, 0, 41, 2}, - { 32, 4, 0, 0, 43, 2} -}; - -const struct Subsprite gMapObjectSubspriteTable_SubmarineShadow_3[] = { - {-48, -20, 1, 1, 0, 1}, - {-16, -20, 1, 1, 4, 1}, - { 16, -20, 1, 0, 8, 1}, - { 32, -20, 0, 0, 10, 1}, - {-48, -12, 1, 1, 11, 1}, - {-16, -12, 1, 1, 15, 1}, - { 16, -12, 1, 0, 19, 1}, - { 32, -12, 0, 0, 21, 1}, - {-48, -4, 1, 1, 22, 2}, - {-16, -4, 1, 1, 26, 2}, - { 16, -4, 1, 0, 30, 2}, - { 32, -4, 0, 0, 32, 2}, - {-48, 4, 1, 1, 33, 2}, - {-16, 4, 1, 1, 37, 2}, - { 16, 4, 1, 0, 41, 2}, - { 32, 4, 0, 0, 43, 2} -}; - -const struct SubspriteTable gMapObjectSubspriteTables_SubmarineShadow[] = { - {16, gMapObjectSubspriteTable_SubmarineShadow_0}, - {16, gMapObjectSubspriteTable_SubmarineShadow_0}, - {16, gMapObjectSubspriteTable_SubmarineShadow_1}, - {16, gMapObjectSubspriteTable_SubmarineShadow_2}, - {16, gMapObjectSubspriteTable_SubmarineShadow_3}, - {16, gMapObjectSubspriteTable_SubmarineShadow_3} -}; -#endif //POKERUBY_MAP_OBJECT_SUBSPRITES_H diff --git a/include/data/pokemon/base_stats.h b/include/data/pokemon/base_stats.h deleted file mode 100644 index eadfbfe30..000000000 --- a/include/data/pokemon/base_stats.h +++ /dev/null @@ -1,7823 +0,0 @@ -// -// Created by Scott Norton on 6/27/17. -// - -#ifndef POKERUBY_BASE_STATS_H -#define POKERUBY_BASE_STATS_H - -const struct BaseStats gBaseStats[] = { - { // ?????????? - }, { - // Bulbasaur - 45, 49, 49, 45, 65, 65, - TYPE_GRASS, - TYPE_POISON, - 45, // catch rate - 64, // base exp. yield - 0, 0, 0, 0, 1, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_GRASS, - ABILITY_OVERGROW, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Ivysaur - 60, 62, 63, 60, 80, 80, - TYPE_GRASS, - TYPE_POISON, - 45, // catch rate - 141, // base exp. yield - 0, 0, 0, 0, 1, 1, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_GRASS, - ABILITY_OVERGROW, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Venusaur - 80, 82, 83, 80, 100, 100, - TYPE_GRASS, - TYPE_POISON, - 45, // catch rate - 208, // base exp. yield - 0, 0, 0, 0, 2, 1, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_GRASS, - ABILITY_OVERGROW, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Charmander - 39, 52, 43, 65, 60, 50, - TYPE_FIRE, - TYPE_FIRE, - 45, // catch rate - 65, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_DRAGON, - ABILITY_BLAZE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Charmeleon - 58, 64, 58, 80, 80, 65, - TYPE_FIRE, - TYPE_FIRE, - 45, // catch rate - 142, // base exp. yield - 0, 0, 0, 1, 1, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_DRAGON, - ABILITY_BLAZE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Charizard - 78, 84, 78, 100, 109, 85, - TYPE_FIRE, - TYPE_FLYING, - 45, // catch rate - 209, // base exp. yield - 0, 0, 0, 0, 3, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_DRAGON, - ABILITY_BLAZE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Squirtle - 44, 48, 65, 43, 50, 64, - TYPE_WATER, - TYPE_WATER, - 45, // catch rate - 66, // base exp. yield - 0, 0, 1, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_WATER_1, - ABILITY_TORRENT, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Wartortle - 59, 63, 80, 58, 65, 80, - TYPE_WATER, - TYPE_WATER, - 45, // catch rate - 143, // base exp. yield - 0, 0, 1, 0, 0, 1, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_WATER_1, - ABILITY_TORRENT, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Blastoise - 79, 83, 100, 78, 85, 105, - TYPE_WATER, - TYPE_WATER, - 45, // catch rate - 210, // base exp. yield - 0, 0, 0, 0, 0, 3, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_WATER_1, - ABILITY_TORRENT, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Caterpie - 45, 30, 35, 45, 20, 20, - TYPE_BUG, - TYPE_BUG, - 255, // catch rate - 53, // base exp. yield - 1, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_SHIELD_DUST, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Metapod - 50, 20, 55, 30, 25, 25, - TYPE_BUG, - TYPE_BUG, - 120, // catch rate - 72, // base exp. yield - 0, 0, 2, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_SHED_SKIN, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Butterfree - 60, 45, 50, 70, 80, 80, - TYPE_BUG, - TYPE_FLYING, - 45, // catch rate - 160, // base exp. yield - 0, 0, 0, 0, 2, 1, - ITEM_NONE, - ITEM_SILVER_POWDER, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_COMPOUND_EYES, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_WHITE - }, { // Weedle - 40, 35, 30, 50, 20, 20, - TYPE_BUG, - TYPE_POISON, - 255, // catch rate - 52, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_SHIELD_DUST, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Kakuna - 45, 25, 50, 35, 25, 25, - TYPE_BUG, - TYPE_POISON, - 120, // catch rate - 71, // base exp. yield - 0, 0, 2, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_SHED_SKIN, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Beedrill - 65, 80, 40, 75, 45, 80, - TYPE_BUG, - TYPE_POISON, - 45, // catch rate - 159, // base exp. yield - 0, 2, 0, 0, 0, 1, - ITEM_NONE, - ITEM_POISON_BARB, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_SWARM, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Pidgey - 40, 45, 40, 56, 35, 35, - TYPE_NORMAL, - TYPE_FLYING, - 255, // catch rate - 55, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_FLYING, - EGG_GROUP_FLYING, - ABILITY_KEEN_EYE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Pidgeotto - 63, 60, 55, 71, 50, 50, - TYPE_NORMAL, - TYPE_FLYING, - 120, // catch rate - 113, // base exp. yield - 0, 0, 0, 2, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_FLYING, - EGG_GROUP_FLYING, - ABILITY_KEEN_EYE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Pidgeot - 83, 80, 75, 91, 70, 70, - TYPE_NORMAL, - TYPE_FLYING, - 45, // catch rate - 172, // base exp. yield - 0, 0, 0, 3, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_FLYING, - EGG_GROUP_FLYING, - ABILITY_KEEN_EYE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Rattata - 30, 56, 35, 72, 25, 35, - TYPE_NORMAL, - TYPE_NORMAL, - 255, // catch rate - 57, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_RUN_AWAY, - ABILITY_GUTS, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Raticate - 55, 81, 60, 97, 50, 70, - TYPE_NORMAL, - TYPE_NORMAL, - 127, // catch rate - 116, // base exp. yield - 0, 0, 0, 2, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_RUN_AWAY, - ABILITY_GUTS, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Spearow - 40, 60, 30, 70, 31, 31, - TYPE_NORMAL, - TYPE_FLYING, - 255, // catch rate - 58, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FLYING, - EGG_GROUP_FLYING, - ABILITY_KEEN_EYE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Fearow - 65, 90, 65, 100, 61, 61, - TYPE_NORMAL, - TYPE_FLYING, - 90, // catch rate - 162, // base exp. yield - 0, 0, 0, 2, 0, 0, - ITEM_NONE, - ITEM_SHARP_BEAK, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FLYING, - EGG_GROUP_FLYING, - ABILITY_KEEN_EYE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Ekans - 35, 60, 44, 55, 40, 54, - TYPE_POISON, - TYPE_POISON, - 255, // catch rate - 62, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_DRAGON, - ABILITY_INTIMIDATE, - ABILITY_SHED_SKIN, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Arbok - 60, 85, 69, 80, 65, 79, - TYPE_POISON, - TYPE_POISON, - 90, // catch rate - 147, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_DRAGON, - ABILITY_INTIMIDATE, - ABILITY_SHED_SKIN, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Pikachu - 35, 55, 30, 90, 50, 40, - TYPE_ELECTRIC, - TYPE_ELECTRIC, - 190, // catch rate - 82, // base exp. yield - 0, 0, 0, 2, 0, 0, - ITEM_ORAN_BERRY, - ITEM_LIGHT_BALL, - 127, // gender - 10, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FAIRY, - ABILITY_STATIC, - ABILITY_NONE, - 6, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Raichu - 60, 90, 55, 100, 90, 80, - TYPE_ELECTRIC, - TYPE_ELECTRIC, - 75, // catch rate - 122, // base exp. yield - 0, 0, 0, 3, 0, 0, - ITEM_NONE, - ITEM_ORAN_BERRY, - 127, // gender - 10, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FAIRY, - ABILITY_STATIC, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Sandshrew - 50, 75, 85, 40, 20, 30, - TYPE_GROUND, - TYPE_GROUND, - 255, // catch rate - 93, // base exp. yield - 0, 0, 1, 0, 0, 0, - ITEM_NONE, - ITEM_QUICK_CLAW, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_SAND_VEIL, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Sandslash - 75, 100, 110, 65, 45, 55, - TYPE_GROUND, - TYPE_GROUND, - 90, // catch rate - 163, // base exp. yield - 0, 0, 2, 0, 0, 0, - ITEM_NONE, - ITEM_QUICK_CLAW, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_SAND_VEIL, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Nidoran♀ - 55, 47, 52, 41, 40, 40, - TYPE_POISON, - TYPE_POISON, - 235, // catch rate - 59, // base exp. yield - 1, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 254, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_FIELD, - ABILITY_POISON_POINT, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Nidorina - 70, 62, 67, 56, 55, 55, - TYPE_POISON, - TYPE_POISON, - 120, // catch rate - 117, // base exp. yield - 2, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 254, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_POISON_POINT, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Nidoqueen - 90, 82, 87, 76, 75, 85, - TYPE_POISON, - TYPE_GROUND, - 45, // catch rate - 194, // base exp. yield - 3, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 254, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_POISON_POINT, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Nidoran♂ - 46, 57, 40, 50, 40, 40, - TYPE_POISON, - TYPE_POISON, - 235, // catch rate - 60, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 0, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_FIELD, - ABILITY_POISON_POINT, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Nidorino - 61, 72, 57, 65, 55, 55, - TYPE_POISON, - TYPE_POISON, - 120, // catch rate - 118, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 0, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_FIELD, - ABILITY_POISON_POINT, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Nidoking - 81, 92, 77, 85, 85, 75, - TYPE_POISON, - TYPE_GROUND, - 45, // catch rate - 195, // base exp. yield - 0, 3, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 0, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_FIELD, - ABILITY_POISON_POINT, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Clefairy - 70, 45, 48, 35, 60, 65, - TYPE_NORMAL, - TYPE_NORMAL, - 150, // catch rate - 68, // base exp. yield - 2, 0, 0, 0, 0, 0, - ITEM_LEPPA_BERRY, - ITEM_MOON_STONE, - 191, // gender - 10, // egg cycles - 140, // base friendship - GROWTH_FAST, - EGG_GROUP_FAIRY, - EGG_GROUP_FAIRY, - ABILITY_CUTE_CHARM, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PINK - }, { // Clefable - 95, 70, 73, 60, 85, 90, - TYPE_NORMAL, - TYPE_NORMAL, - 25, // catch rate - 129, // base exp. yield - 3, 0, 0, 0, 0, 0, - ITEM_LEPPA_BERRY, - ITEM_MOON_STONE, - 191, // gender - 10, // egg cycles - 140, // base friendship - GROWTH_FAST, - EGG_GROUP_FAIRY, - EGG_GROUP_FAIRY, - ABILITY_CUTE_CHARM, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PINK - }, { // Vulpix - 38, 41, 40, 65, 50, 65, - TYPE_FIRE, - TYPE_FIRE, - 190, // catch rate - 63, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_RAWST_BERRY, - ITEM_RAWST_BERRY, - 191, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_FLASH_FIRE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Ninetales - 73, 76, 75, 100, 81, 100, - TYPE_FIRE, - TYPE_FIRE, - 75, // catch rate - 178, // base exp. yield - 0, 0, 0, 1, 0, 1, - ITEM_RAWST_BERRY, - ITEM_RAWST_BERRY, - 191, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_FLASH_FIRE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Jigglypuff - 115, 45, 20, 20, 45, 25, - TYPE_NORMAL, - TYPE_NORMAL, - 170, // catch rate - 76, // base exp. yield - 2, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 191, // gender - 10, // egg cycles - 70, // base friendship - GROWTH_FAST, - EGG_GROUP_FAIRY, - EGG_GROUP_FAIRY, - ABILITY_CUTE_CHARM, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PINK - }, { // Wigglytuff - 140, 70, 45, 45, 75, 50, - TYPE_NORMAL, - TYPE_NORMAL, - 50, // catch rate - 109, // base exp. yield - 3, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 191, // gender - 10, // egg cycles - 70, // base friendship - GROWTH_FAST, - EGG_GROUP_FAIRY, - EGG_GROUP_FAIRY, - ABILITY_CUTE_CHARM, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PINK - }, { // Zubat - 40, 45, 35, 55, 30, 40, - TYPE_POISON, - TYPE_FLYING, - 255, // catch rate - 54, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FLYING, - EGG_GROUP_FLYING, - ABILITY_INNER_FOCUS, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Golbat - 75, 80, 70, 90, 65, 75, - TYPE_POISON, - TYPE_FLYING, - 90, // catch rate - 171, // base exp. yield - 0, 0, 0, 2, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FLYING, - EGG_GROUP_FLYING, - ABILITY_INNER_FOCUS, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Oddish - 45, 50, 55, 30, 75, 65, - TYPE_GRASS, - TYPE_POISON, - 255, // catch rate - 78, // base exp. yield - 0, 0, 0, 0, 1, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_GRASS, - EGG_GROUP_GRASS, - ABILITY_CHLOROPHYLL, - ABILITY_NONE, - 4, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Gloom - 60, 65, 70, 40, 85, 75, - TYPE_GRASS, - TYPE_POISON, - 120, // catch rate - 132, // base exp. yield - 0, 0, 0, 0, 2, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_GRASS, - EGG_GROUP_GRASS, - ABILITY_CHLOROPHYLL, - ABILITY_NONE, - 6, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Vileplume - 75, 80, 85, 50, 100, 90, - TYPE_GRASS, - TYPE_POISON, - 45, // catch rate - 184, // base exp. yield - 0, 0, 0, 0, 3, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_GRASS, - EGG_GROUP_GRASS, - ABILITY_CHLOROPHYLL, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Paras - 35, 70, 55, 25, 45, 55, - TYPE_BUG, - TYPE_GRASS, - 190, // catch rate - 70, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_TINY_MUSHROOM, - ITEM_BIG_MUSHROOM, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_BUG, - EGG_GROUP_GRASS, - ABILITY_EFFECT_SPORE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Parasect - 60, 95, 80, 30, 60, 80, - TYPE_BUG, - TYPE_GRASS, - 75, // catch rate - 128, // base exp. yield - 0, 2, 1, 0, 0, 0, - ITEM_TINY_MUSHROOM, - ITEM_BIG_MUSHROOM, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_BUG, - EGG_GROUP_GRASS, - ABILITY_EFFECT_SPORE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Venonat - 60, 55, 50, 45, 40, 55, - TYPE_BUG, - TYPE_POISON, - 190, // catch rate - 75, // base exp. yield - 0, 0, 0, 0, 0, 1, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_COMPOUND_EYES, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Venomoth - 70, 65, 60, 90, 90, 75, - TYPE_BUG, - TYPE_POISON, - 75, // catch rate - 138, // base exp. yield - 0, 0, 0, 1, 1, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_SHIELD_DUST, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Diglett - 10, 55, 25, 95, 35, 45, - TYPE_GROUND, - TYPE_GROUND, - 255, // catch rate - 81, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_SAND_VEIL, - ABILITY_ARENA_TRAP, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Dugtrio - 35, 80, 50, 120, 50, 70, - TYPE_GROUND, - TYPE_GROUND, - 50, // catch rate - 153, // base exp. yield - 0, 0, 0, 2, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_SAND_VEIL, - ABILITY_ARENA_TRAP, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Meowth - 40, 45, 35, 90, 40, 40, - TYPE_NORMAL, - TYPE_NORMAL, - 255, // catch rate - 69, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_PICKUP, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Persian - 65, 70, 60, 115, 65, 65, - TYPE_NORMAL, - TYPE_NORMAL, - 90, // catch rate - 148, // base exp. yield - 0, 0, 0, 2, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_LIMBER, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Psyduck - 50, 52, 48, 55, 65, 50, - TYPE_WATER, - TYPE_WATER, - 190, // catch rate - 80, // base exp. yield - 0, 0, 0, 0, 1, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_WATER_1, - EGG_GROUP_FIELD, - ABILITY_DAMP, - ABILITY_CLOUD_NINE, - 6, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Golduck - 80, 82, 78, 85, 95, 80, - TYPE_WATER, - TYPE_WATER, - 75, // catch rate - 174, // base exp. yield - 0, 0, 0, 0, 2, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_WATER_1, - EGG_GROUP_FIELD, - ABILITY_DAMP, - ABILITY_CLOUD_NINE, - 8, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Mankey - 40, 80, 35, 70, 35, 45, - TYPE_FIGHTING, - TYPE_FIGHTING, - 190, // catch rate - 74, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_VITAL_SPIRIT, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Primeape - 65, 105, 60, 95, 60, 70, - TYPE_FIGHTING, - TYPE_FIGHTING, - 75, // catch rate - 149, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_VITAL_SPIRIT, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Growlithe - 55, 70, 45, 60, 70, 50, - TYPE_FIRE, - TYPE_FIRE, - 190, // catch rate - 91, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_RAWST_BERRY, - ITEM_RAWST_BERRY, - 63, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_INTIMIDATE, - ABILITY_FLASH_FIRE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Arcanine - 90, 110, 80, 95, 100, 80, - TYPE_FIRE, - TYPE_FIRE, - 75, // catch rate - 213, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_RAWST_BERRY, - ITEM_RAWST_BERRY, - 63, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_INTIMIDATE, - ABILITY_FLASH_FIRE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Poliwag - 40, 50, 40, 90, 40, 40, - TYPE_WATER, - TYPE_WATER, - 255, // catch rate - 77, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_WATER_1, - EGG_GROUP_WATER_1, - ABILITY_WATER_ABSORB, - ABILITY_DAMP, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE, TRUE - }, { // Poliwhirl - 65, 65, 65, 90, 50, 50, - TYPE_WATER, - TYPE_WATER, - 120, // catch rate - 131, // base exp. yield - 0, 0, 0, 2, 0, 0, - ITEM_NONE, - ITEM_KINGS_ROCK, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_WATER_1, - EGG_GROUP_WATER_1, - ABILITY_WATER_ABSORB, - ABILITY_DAMP, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE, TRUE - }, { // Poliwrath - 90, 85, 95, 70, 70, 90, - TYPE_WATER, - TYPE_FIGHTING, - 45, // catch rate - 185, // base exp. yield - 0, 0, 3, 0, 0, 0, - ITEM_NONE, - ITEM_KINGS_ROCK, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_WATER_1, - EGG_GROUP_WATER_1, - ABILITY_WATER_ABSORB, - ABILITY_DAMP, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE, TRUE - }, { // Abra - 25, 20, 15, 90, 105, 55, - TYPE_PSYCHIC, - TYPE_PSYCHIC, - 200, // catch rate - 73, // base exp. yield - 0, 0, 0, 0, 1, 0, - ITEM_NONE, - ITEM_TWISTED_SPOON, - 63, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_HUMAN_LIKE, - EGG_GROUP_HUMAN_LIKE, - ABILITY_SYNCHRONIZE, - ABILITY_INNER_FOCUS, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Kadabra - 40, 35, 30, 105, 120, 70, - TYPE_PSYCHIC, - TYPE_PSYCHIC, - 100, // catch rate - 145, // base exp. yield - 0, 0, 0, 0, 2, 0, - ITEM_NONE, - ITEM_TWISTED_SPOON, - 63, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_HUMAN_LIKE, - EGG_GROUP_HUMAN_LIKE, - ABILITY_SYNCHRONIZE, - ABILITY_INNER_FOCUS, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Alakazam - 55, 50, 45, 120, 135, 85, - TYPE_PSYCHIC, - TYPE_PSYCHIC, - 50, // catch rate - 186, // base exp. yield - 0, 0, 0, 0, 3, 0, - ITEM_NONE, - ITEM_TWISTED_SPOON, - 63, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_HUMAN_LIKE, - EGG_GROUP_HUMAN_LIKE, - ABILITY_SYNCHRONIZE, - ABILITY_INNER_FOCUS, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Machop - 70, 80, 50, 35, 35, 35, - TYPE_FIGHTING, - TYPE_FIGHTING, - 180, // catch rate - 88, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 63, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_HUMAN_LIKE, - EGG_GROUP_HUMAN_LIKE, - ABILITY_GUTS, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Machoke - 80, 100, 70, 45, 50, 60, - TYPE_FIGHTING, - TYPE_FIGHTING, - 90, // catch rate - 146, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 63, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_HUMAN_LIKE, - EGG_GROUP_HUMAN_LIKE, - ABILITY_GUTS, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Machamp - 90, 130, 80, 55, 65, 85, - TYPE_FIGHTING, - TYPE_FIGHTING, - 45, // catch rate - 193, // base exp. yield - 0, 3, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 63, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_HUMAN_LIKE, - EGG_GROUP_HUMAN_LIKE, - ABILITY_GUTS, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Bellsprout - 50, 75, 35, 40, 70, 30, - TYPE_GRASS, - TYPE_POISON, - 255, // catch rate - 84, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_GRASS, - EGG_GROUP_GRASS, - ABILITY_CHLOROPHYLL, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Weepinbell - 65, 90, 50, 55, 85, 45, - TYPE_GRASS, - TYPE_POISON, - 120, // catch rate - 151, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_GRASS, - EGG_GROUP_GRASS, - ABILITY_CHLOROPHYLL, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Victreebel - 80, 105, 65, 70, 100, 60, - TYPE_GRASS, - TYPE_POISON, - 45, // catch rate - 191, // base exp. yield - 0, 3, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_GRASS, - EGG_GROUP_GRASS, - ABILITY_CHLOROPHYLL, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Tentacool - 40, 40, 35, 70, 50, 100, - TYPE_WATER, - TYPE_POISON, - 190, // catch rate - 105, // base exp. yield - 0, 0, 0, 0, 0, 1, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_WATER_3, - EGG_GROUP_WATER_3, - ABILITY_CLEAR_BODY, - ABILITY_LIQUID_OOZE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Tentacruel - 80, 70, 65, 100, 80, 120, - TYPE_WATER, - TYPE_POISON, - 60, // catch rate - 205, // base exp. yield - 0, 0, 0, 0, 0, 2, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_WATER_3, - EGG_GROUP_WATER_3, - ABILITY_CLEAR_BODY, - ABILITY_LIQUID_OOZE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Geodude - 40, 80, 100, 20, 30, 30, - TYPE_ROCK, - TYPE_GROUND, - 255, // catch rate - 86, // base exp. yield - 0, 0, 1, 0, 0, 0, - ITEM_NONE, - ITEM_EVERSTONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MINERAL, - EGG_GROUP_MINERAL, - ABILITY_ROCK_HEAD, - ABILITY_STURDY, - 4, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Graveler - 55, 95, 115, 35, 45, 45, - TYPE_ROCK, - TYPE_GROUND, - 120, // catch rate - 134, // base exp. yield - 0, 0, 2, 0, 0, 0, - ITEM_NONE, - ITEM_EVERSTONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MINERAL, - EGG_GROUP_MINERAL, - ABILITY_ROCK_HEAD, - ABILITY_STURDY, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Golem - 80, 110, 130, 45, 55, 65, - TYPE_ROCK, - TYPE_GROUND, - 45, // catch rate - 177, // base exp. yield - 0, 0, 3, 0, 0, 0, - ITEM_NONE, - ITEM_EVERSTONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MINERAL, - EGG_GROUP_MINERAL, - ABILITY_ROCK_HEAD, - ABILITY_STURDY, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Ponyta - 50, 85, 55, 90, 65, 65, - TYPE_FIRE, - TYPE_FIRE, - 190, // catch rate - 152, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_RUN_AWAY, - ABILITY_FLASH_FIRE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Rapidash - 65, 100, 70, 105, 80, 80, - TYPE_FIRE, - TYPE_FIRE, - 60, // catch rate - 192, // base exp. yield - 0, 0, 0, 2, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_RUN_AWAY, - ABILITY_FLASH_FIRE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Slowpoke - 90, 65, 65, 15, 40, 40, - TYPE_WATER, - TYPE_PSYCHIC, - 190, // catch rate - 99, // base exp. yield - 1, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_KINGS_ROCK, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_MONSTER, - EGG_GROUP_WATER_1, - ABILITY_OBLIVIOUS, - ABILITY_OWN_TEMPO, - 0, // Safari Zone flee rate - BODY_COLOR_PINK - }, { // Slowbro - 95, 75, 110, 30, 100, 80, - TYPE_WATER, - TYPE_PSYCHIC, - 75, // catch rate - 164, // base exp. yield - 0, 0, 2, 0, 0, 0, - ITEM_NONE, - ITEM_KINGS_ROCK, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_MONSTER, - EGG_GROUP_WATER_1, - ABILITY_OBLIVIOUS, - ABILITY_OWN_TEMPO, - 0, // Safari Zone flee rate - BODY_COLOR_PINK - }, { // Magnemite - 25, 35, 70, 45, 95, 55, - TYPE_ELECTRIC, - TYPE_STEEL, - 190, // catch rate - 89, // base exp. yield - 0, 0, 0, 0, 1, 0, - ITEM_NONE, - ITEM_METAL_COAT, - 255, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_MINERAL, - EGG_GROUP_MINERAL, - ABILITY_MAGNET_PULL, - ABILITY_STURDY, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Magneton - 50, 60, 95, 70, 120, 70, - TYPE_ELECTRIC, - TYPE_STEEL, - 60, // catch rate - 161, // base exp. yield - 0, 0, 0, 0, 2, 0, - ITEM_NONE, - ITEM_METAL_COAT, - 255, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_MINERAL, - EGG_GROUP_MINERAL, - ABILITY_MAGNET_PULL, - ABILITY_STURDY, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Farfetch'd - 52, 65, 55, 60, 58, 62, - TYPE_NORMAL, - TYPE_FLYING, - 45, // catch rate - 94, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_STICK, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FLYING, - EGG_GROUP_FIELD, - ABILITY_KEEN_EYE, - ABILITY_INNER_FOCUS, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Doduo - 35, 85, 45, 75, 35, 35, - TYPE_NORMAL, - TYPE_FLYING, - 190, // catch rate - 96, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_SHARP_BEAK, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FLYING, - EGG_GROUP_FLYING, - ABILITY_RUN_AWAY, - ABILITY_EARLY_BIRD, - 8, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Dodrio - 60, 110, 70, 100, 60, 60, - TYPE_NORMAL, - TYPE_FLYING, - 45, // catch rate - 158, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_SHARP_BEAK, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FLYING, - EGG_GROUP_FLYING, - ABILITY_RUN_AWAY, - ABILITY_EARLY_BIRD, - 10, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Seel - 65, 45, 55, 45, 45, 70, - TYPE_WATER, - TYPE_WATER, - 190, // catch rate - 100, // base exp. yield - 0, 0, 0, 0, 0, 1, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_WATER_1, - EGG_GROUP_FIELD, - ABILITY_THICK_FAT, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_WHITE - }, { // Dewgong - 90, 70, 80, 70, 70, 95, - TYPE_WATER, - TYPE_ICE, - 75, // catch rate - 176, // base exp. yield - 0, 0, 0, 0, 0, 2, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_WATER_1, - EGG_GROUP_FIELD, - ABILITY_THICK_FAT, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_WHITE - }, { // Grimer - 80, 80, 50, 25, 40, 50, - TYPE_POISON, - TYPE_POISON, - 190, // catch rate - 90, // base exp. yield - 1, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NUGGET, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_AMORPHOUS, - EGG_GROUP_AMORPHOUS, - ABILITY_STENCH, - ABILITY_STICKY_HOLD, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Muk - 105, 105, 75, 50, 65, 100, - TYPE_POISON, - TYPE_POISON, - 75, // catch rate - 157, // base exp. yield - 1, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NUGGET, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_AMORPHOUS, - EGG_GROUP_AMORPHOUS, - ABILITY_STENCH, - ABILITY_STICKY_HOLD, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Shellder - 30, 65, 100, 40, 45, 25, - TYPE_WATER, - TYPE_WATER, - 190, // catch rate - 97, // base exp. yield - 0, 0, 1, 0, 0, 0, - ITEM_PEARL, - ITEM_BIG_PEARL, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_WATER_3, - EGG_GROUP_WATER_3, - ABILITY_SHELL_ARMOR, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Cloyster - 50, 95, 180, 70, 85, 45, - TYPE_WATER, - TYPE_ICE, - 60, // catch rate - 203, // base exp. yield - 0, 0, 2, 0, 0, 0, - ITEM_PEARL, - ITEM_BIG_PEARL, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_WATER_3, - EGG_GROUP_WATER_3, - ABILITY_SHELL_ARMOR, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Gastly - 30, 35, 30, 80, 100, 35, - TYPE_GHOST, - TYPE_POISON, - 190, // catch rate - 95, // base exp. yield - 0, 0, 0, 0, 1, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_AMORPHOUS, - EGG_GROUP_AMORPHOUS, - ABILITY_LEVITATE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Haunter - 45, 50, 45, 95, 115, 55, - TYPE_GHOST, - TYPE_POISON, - 90, // catch rate - 126, // base exp. yield - 0, 0, 0, 0, 2, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_AMORPHOUS, - EGG_GROUP_AMORPHOUS, - ABILITY_LEVITATE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Gengar - 60, 65, 60, 110, 130, 75, - TYPE_GHOST, - TYPE_POISON, - 45, // catch rate - 190, // base exp. yield - 0, 0, 0, 0, 3, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_AMORPHOUS, - EGG_GROUP_AMORPHOUS, - ABILITY_LEVITATE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Onix - 35, 45, 160, 70, 30, 45, - TYPE_ROCK, - TYPE_GROUND, - 45, // catch rate - 108, // base exp. yield - 0, 0, 1, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 25, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_MINERAL, - EGG_GROUP_MINERAL, - ABILITY_ROCK_HEAD, - ABILITY_STURDY, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Drowzee - 60, 48, 45, 42, 43, 90, - TYPE_PSYCHIC, - TYPE_PSYCHIC, - 190, // catch rate - 102, // base exp. yield - 0, 0, 0, 0, 0, 1, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_HUMAN_LIKE, - EGG_GROUP_HUMAN_LIKE, - ABILITY_INSOMNIA, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Hypno - 85, 73, 70, 67, 73, 115, - TYPE_PSYCHIC, - TYPE_PSYCHIC, - 75, // catch rate - 165, // base exp. yield - 0, 0, 0, 0, 0, 2, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_HUMAN_LIKE, - EGG_GROUP_HUMAN_LIKE, - ABILITY_INSOMNIA, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Krabby - 30, 105, 90, 50, 25, 25, - TYPE_WATER, - TYPE_WATER, - 225, // catch rate - 115, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_WATER_3, - EGG_GROUP_WATER_3, - ABILITY_HYPER_CUTTER, - ABILITY_SHELL_ARMOR, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Kingler - 55, 130, 115, 75, 50, 50, - TYPE_WATER, - TYPE_WATER, - 60, // catch rate - 206, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_WATER_3, - EGG_GROUP_WATER_3, - ABILITY_HYPER_CUTTER, - ABILITY_SHELL_ARMOR, - 0, // Safari Zone flee rate - BODY_COLOR_RED, TRUE - }, { // Voltorb - 40, 30, 50, 100, 55, 55, - TYPE_ELECTRIC, - TYPE_ELECTRIC, - 190, // catch rate - 103, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_MINERAL, - EGG_GROUP_MINERAL, - ABILITY_SOUNDPROOF, - ABILITY_STATIC, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Electrode - 60, 50, 70, 140, 80, 80, - TYPE_ELECTRIC, - TYPE_ELECTRIC, - 60, // catch rate - 150, // base exp. yield - 0, 0, 0, 2, 0, 0, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_MINERAL, - EGG_GROUP_MINERAL, - ABILITY_SOUNDPROOF, - ABILITY_STATIC, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Exeggcute - 60, 40, 80, 40, 60, 45, - TYPE_GRASS, - TYPE_PSYCHIC, - 90, // catch rate - 98, // base exp. yield - 0, 0, 1, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_GRASS, - EGG_GROUP_GRASS, - ABILITY_CHLOROPHYLL, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PINK - }, { // Exeggutor - 95, 95, 85, 55, 125, 65, - TYPE_GRASS, - TYPE_PSYCHIC, - 45, // catch rate - 212, // base exp. yield - 0, 0, 0, 0, 2, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_GRASS, - EGG_GROUP_GRASS, - ABILITY_CHLOROPHYLL, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Cubone - 50, 50, 95, 35, 40, 50, - TYPE_GROUND, - TYPE_GROUND, - 190, // catch rate - 87, // base exp. yield - 0, 0, 1, 0, 0, 0, - ITEM_NONE, - ITEM_THICK_CLUB, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_MONSTER, - EGG_GROUP_MONSTER, - ABILITY_ROCK_HEAD, - ABILITY_LIGHTNING_ROD, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Marowak - 60, 80, 110, 45, 50, 80, - TYPE_GROUND, - TYPE_GROUND, - 75, // catch rate - 124, // base exp. yield - 0, 0, 2, 0, 0, 0, - ITEM_NONE, - ITEM_THICK_CLUB, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_MONSTER, - EGG_GROUP_MONSTER, - ABILITY_ROCK_HEAD, - ABILITY_LIGHTNING_ROD, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Hitmonlee - 50, 120, 53, 87, 35, 110, - TYPE_FIGHTING, - TYPE_FIGHTING, - 45, // catch rate - 139, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 0, // gender - 25, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_HUMAN_LIKE, - EGG_GROUP_HUMAN_LIKE, - ABILITY_LIMBER, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Hitmonchan - 50, 105, 79, 76, 35, 110, - TYPE_FIGHTING, - TYPE_FIGHTING, - 45, // catch rate - 140, // base exp. yield - 0, 0, 0, 0, 0, 2, - ITEM_NONE, - ITEM_NONE, - 0, // gender - 25, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_HUMAN_LIKE, - EGG_GROUP_HUMAN_LIKE, - ABILITY_KEEN_EYE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Lickitung - 90, 55, 75, 30, 60, 75, - TYPE_NORMAL, - TYPE_NORMAL, - 45, // catch rate - 127, // base exp. yield - 2, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_MONSTER, - EGG_GROUP_MONSTER, - ABILITY_OWN_TEMPO, - ABILITY_OBLIVIOUS, - 0, // Safari Zone flee rate - BODY_COLOR_PINK - }, { // Koffing - 40, 65, 95, 35, 60, 45, - TYPE_POISON, - TYPE_POISON, - 190, // catch rate - 114, // base exp. yield - 0, 0, 1, 0, 0, 0, - ITEM_NONE, - ITEM_SMOKE_BALL, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_AMORPHOUS, - EGG_GROUP_AMORPHOUS, - ABILITY_LEVITATE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Weezing - 65, 90, 120, 60, 85, 70, - TYPE_POISON, - TYPE_POISON, - 60, // catch rate - 173, // base exp. yield - 0, 0, 2, 0, 0, 0, - ITEM_NONE, - ITEM_SMOKE_BALL, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_AMORPHOUS, - EGG_GROUP_AMORPHOUS, - ABILITY_LEVITATE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Rhyhorn - 80, 85, 95, 25, 30, 30, - TYPE_GROUND, - TYPE_ROCK, - 120, // catch rate - 135, // base exp. yield - 0, 0, 1, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_FIELD, - ABILITY_LIGHTNING_ROD, - ABILITY_ROCK_HEAD, - 4, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Rhydon - 105, 130, 120, 40, 45, 45, - TYPE_GROUND, - TYPE_ROCK, - 60, // catch rate - 204, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_FIELD, - ABILITY_LIGHTNING_ROD, - ABILITY_ROCK_HEAD, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Chansey - 250, 5, 5, 50, 35, 105, - TYPE_NORMAL, - TYPE_NORMAL, - 30, // catch rate - 255, // base exp. yield - 2, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_LUCKY_EGG, - 254, // gender - 40, // egg cycles - 140, // base friendship - GROWTH_FAST, - EGG_GROUP_FAIRY, - EGG_GROUP_FAIRY, - ABILITY_NATURAL_CURE, - ABILITY_SERENE_GRACE, - 0, // Safari Zone flee rate - BODY_COLOR_PINK - }, { // Tangela - 65, 55, 115, 60, 100, 40, - TYPE_GRASS, - TYPE_GRASS, - 45, // catch rate - 166, // base exp. yield - 0, 0, 1, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_GRASS, - EGG_GROUP_GRASS, - ABILITY_CHLOROPHYLL, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Kangaskhan - 105, 95, 80, 90, 40, 80, - TYPE_NORMAL, - TYPE_NORMAL, - 45, // catch rate - 175, // base exp. yield - 2, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 254, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_MONSTER, - EGG_GROUP_MONSTER, - ABILITY_EARLY_BIRD, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Horsea - 30, 40, 70, 60, 70, 25, - TYPE_WATER, - TYPE_WATER, - 225, // catch rate - 83, // base exp. yield - 0, 0, 0, 0, 1, 0, - ITEM_NONE, - ITEM_DRAGON_SCALE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_WATER_1, - EGG_GROUP_DRAGON, - ABILITY_SWIFT_SWIM, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Seadra - 55, 65, 95, 85, 95, 45, - TYPE_WATER, - TYPE_WATER, - 75, // catch rate - 155, // base exp. yield - 0, 0, 1, 0, 1, 0, - ITEM_NONE, - ITEM_DRAGON_SCALE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_WATER_1, - EGG_GROUP_DRAGON, - ABILITY_POISON_POINT, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Goldeen - 45, 67, 60, 63, 35, 50, - TYPE_WATER, - TYPE_WATER, - 225, // catch rate - 111, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_WATER_2, - EGG_GROUP_WATER_2, - ABILITY_SWIFT_SWIM, - ABILITY_WATER_VEIL, - 4, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Seaking - 80, 92, 65, 68, 65, 80, - TYPE_WATER, - TYPE_WATER, - 60, // catch rate - 170, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_WATER_2, - EGG_GROUP_WATER_2, - ABILITY_SWIFT_SWIM, - ABILITY_WATER_VEIL, - 6, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Staryu - 30, 45, 55, 85, 70, 55, - TYPE_WATER, - TYPE_WATER, - 225, // catch rate - 106, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_STARDUST, - ITEM_STAR_PIECE, - 255, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_WATER_3, - EGG_GROUP_WATER_3, - ABILITY_ILLUMINATE, - ABILITY_NATURAL_CURE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Starmie - 60, 75, 85, 115, 100, 85, - TYPE_WATER, - TYPE_PSYCHIC, - 60, // catch rate - 207, // base exp. yield - 0, 0, 0, 2, 0, 0, - ITEM_STARDUST, - ITEM_STAR_PIECE, - 255, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_WATER_3, - EGG_GROUP_WATER_3, - ABILITY_ILLUMINATE, - ABILITY_NATURAL_CURE, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Mr. mime - 40, 45, 65, 90, 100, 120, - TYPE_PSYCHIC, - TYPE_PSYCHIC, - 45, // catch rate - 136, // base exp. yield - 0, 0, 0, 0, 0, 2, - ITEM_NONE, - ITEM_LEPPA_BERRY, - 127, // gender - 25, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_HUMAN_LIKE, - EGG_GROUP_HUMAN_LIKE, - ABILITY_SOUNDPROOF, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PINK - }, { // Scyther - 70, 110, 80, 105, 55, 80, - TYPE_BUG, - TYPE_FLYING, - 45, // catch rate - 187, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 25, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_SWARM, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Jynx - 65, 50, 35, 95, 115, 95, - TYPE_ICE, - TYPE_PSYCHIC, - 45, // catch rate - 137, // base exp. yield - 0, 0, 0, 0, 2, 0, - ITEM_ASPEAR_BERRY, - ITEM_ASPEAR_BERRY, - 254, // gender - 25, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_HUMAN_LIKE, - EGG_GROUP_HUMAN_LIKE, - ABILITY_OBLIVIOUS, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Electabuzz - 65, 83, 57, 105, 95, 85, - TYPE_ELECTRIC, - TYPE_ELECTRIC, - 45, // catch rate - 156, // base exp. yield - 0, 0, 0, 2, 0, 0, - ITEM_NONE, - ITEM_NONE, - 63, // gender - 25, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_HUMAN_LIKE, - EGG_GROUP_HUMAN_LIKE, - ABILITY_STATIC, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW, TRUE - }, { // Magmar - 65, 95, 57, 93, 100, 85, - TYPE_FIRE, - TYPE_FIRE, - 45, // catch rate - 167, // base exp. yield - 0, 0, 0, 0, 2, 0, - ITEM_RAWST_BERRY, - ITEM_RAWST_BERRY, - 63, // gender - 25, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_HUMAN_LIKE, - EGG_GROUP_HUMAN_LIKE, - ABILITY_FLAME_BODY, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Pinsir - 65, 125, 100, 85, 55, 70, - TYPE_BUG, - TYPE_BUG, - 45, // catch rate - 200, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 25, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_HYPER_CUTTER, - ABILITY_NONE, - 8, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Tauros - 75, 100, 95, 110, 40, 70, - TYPE_NORMAL, - TYPE_NORMAL, - 45, // catch rate - 211, // base exp. yield - 0, 1, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 0, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_INTIMIDATE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Magikarp - 20, 10, 55, 80, 15, 20, - TYPE_WATER, - TYPE_WATER, - 255, // catch rate - 20, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 5, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_WATER_2, - EGG_GROUP_DRAGON, - ABILITY_SWIFT_SWIM, - ABILITY_NONE, - 4, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Gyarados - 95, 125, 79, 81, 60, 100, - TYPE_WATER, - TYPE_FLYING, - 45, // catch rate - 214, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 5, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_WATER_2, - EGG_GROUP_DRAGON, - ABILITY_INTIMIDATE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Lapras - 130, 85, 80, 60, 85, 95, - TYPE_WATER, - TYPE_ICE, - 45, // catch rate - 219, // base exp. yield - 2, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 40, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_WATER_1, - ABILITY_WATER_ABSORB, - ABILITY_SHELL_ARMOR, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Ditto - 48, 48, 48, 48, 48, 48, - TYPE_NORMAL, - TYPE_NORMAL, - 35, // catch rate - 61, // base exp. yield - 1, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_METAL_POWDER, - 255, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_DITTO, - EGG_GROUP_DITTO, - ABILITY_LIMBER, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Eevee - 55, 55, 50, 55, 45, 65, - TYPE_NORMAL, - TYPE_NORMAL, - 45, // catch rate - 92, // base exp. yield - 0, 0, 0, 0, 0, 1, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 35, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_RUN_AWAY, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Vaporeon - 130, 65, 60, 65, 110, 95, - TYPE_WATER, - TYPE_WATER, - 45, // catch rate - 196, // base exp. yield - 2, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 35, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_WATER_ABSORB, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Jolteon - 65, 65, 60, 130, 110, 95, - TYPE_ELECTRIC, - TYPE_ELECTRIC, - 45, // catch rate - 197, // base exp. yield - 0, 0, 0, 2, 0, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 35, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_VOLT_ABSORB, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Flareon - 65, 130, 60, 65, 95, 110, - TYPE_FIRE, - TYPE_FIRE, - 45, // catch rate - 198, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 35, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_FLASH_FIRE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Porygon - 65, 60, 70, 40, 85, 75, - TYPE_NORMAL, - TYPE_NORMAL, - 45, // catch rate - 130, // base exp. yield - 0, 0, 0, 0, 1, 0, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_MINERAL, - EGG_GROUP_MINERAL, - ABILITY_TRACE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PINK - }, { // Omanyte - 35, 40, 100, 35, 90, 55, - TYPE_ROCK, - TYPE_WATER, - 45, // catch rate - 120, // base exp. yield - 0, 0, 1, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 30, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_WATER_1, - EGG_GROUP_WATER_3, - ABILITY_SWIFT_SWIM, - ABILITY_SHELL_ARMOR, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Omastar - 70, 60, 125, 55, 115, 70, - TYPE_ROCK, - TYPE_WATER, - 45, // catch rate - 199, // base exp. yield - 0, 0, 2, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 30, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_WATER_1, - EGG_GROUP_WATER_3, - ABILITY_SWIFT_SWIM, - ABILITY_SHELL_ARMOR, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Kabuto - 30, 80, 90, 55, 55, 45, - TYPE_ROCK, - TYPE_WATER, - 45, // catch rate - 119, // base exp. yield - 0, 0, 1, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 30, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_WATER_1, - EGG_GROUP_WATER_3, - ABILITY_SWIFT_SWIM, - ABILITY_BATTLE_ARMOR, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Kabutops - 60, 115, 105, 80, 65, 70, - TYPE_ROCK, - TYPE_WATER, - 45, // catch rate - 201, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 30, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_WATER_1, - EGG_GROUP_WATER_3, - ABILITY_SWIFT_SWIM, - ABILITY_BATTLE_ARMOR, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Aerodactyl - 80, 105, 65, 130, 60, 75, - TYPE_ROCK, - TYPE_FLYING, - 45, // catch rate - 202, // base exp. yield - 0, 0, 0, 2, 0, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 35, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_FLYING, - EGG_GROUP_FLYING, - ABILITY_ROCK_HEAD, - ABILITY_PRESSURE, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Snorlax - 160, 110, 65, 30, 65, 110, - TYPE_NORMAL, - TYPE_NORMAL, - 25, // catch rate - 154, // base exp. yield - 2, 0, 0, 0, 0, 0, - ITEM_LEFTOVERS, - ITEM_LEFTOVERS, - 31, // gender - 40, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_MONSTER, - ABILITY_IMMUNITY, - ABILITY_THICK_FAT, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // Articuno - 90, 85, 100, 85, 95, 125, - TYPE_ICE, - TYPE_FLYING, - 3, // catch rate - 215, // base exp. yield - 0, 0, 0, 0, 0, 3, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 80, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_PRESSURE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Zapdos - 90, 90, 85, 100, 125, 90, - TYPE_ELECTRIC, - TYPE_FLYING, - 3, // catch rate - 216, // base exp. yield - 0, 0, 0, 0, 3, 0, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 80, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_PRESSURE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Moltres - 90, 100, 90, 90, 125, 85, - TYPE_FIRE, - TYPE_FLYING, - 3, // catch rate - 217, // base exp. yield - 0, 0, 0, 0, 3, 0, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 80, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_PRESSURE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Dratini - 41, 64, 45, 50, 50, 50, - TYPE_DRAGON, - TYPE_DRAGON, - 45, // catch rate - 67, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_DRAGON_SCALE, - 127, // gender - 40, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_WATER_1, - EGG_GROUP_DRAGON, - ABILITY_SHED_SKIN, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Dragonair - 61, 84, 65, 70, 70, 70, - TYPE_DRAGON, - TYPE_DRAGON, - 45, // catch rate - 144, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_DRAGON_SCALE, - 127, // gender - 40, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_WATER_1, - EGG_GROUP_DRAGON, - ABILITY_SHED_SKIN, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Dragonite - 91, 134, 95, 80, 100, 100, - TYPE_DRAGON, - TYPE_FLYING, - 45, // catch rate - 218, // base exp. yield - 0, 3, 0, 0, 0, 0, - ITEM_NONE, - ITEM_DRAGON_SCALE, - 127, // gender - 40, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_WATER_1, - EGG_GROUP_DRAGON, - ABILITY_INNER_FOCUS, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Mewtwo - 106, 110, 90, 130, 154, 90, - TYPE_PSYCHIC, - TYPE_PSYCHIC, - 3, // catch rate - 220, // base exp. yield - 0, 0, 0, 0, 3, 0, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_SLOW, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_PRESSURE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Mew - 100, 100, 100, 100, 100, 100, - TYPE_PSYCHIC, - TYPE_PSYCHIC, - 45, // catch rate - 64, // base exp. yield - 3, 0, 0, 0, 0, 0, - ITEM_LUM_BERRY, - ITEM_LUM_BERRY, - 255, // gender - 120, // egg cycles - 100, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_SYNCHRONIZE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PINK - }, { // Chikorita - 45, 49, 65, 45, 49, 65, - TYPE_GRASS, - TYPE_GRASS, - 45, // catch rate - 64, // base exp. yield - 0, 0, 0, 0, 0, 1, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_GRASS, - ABILITY_OVERGROW, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Bayleef - 60, 62, 80, 60, 63, 80, - TYPE_GRASS, - TYPE_GRASS, - 45, // catch rate - 141, // base exp. yield - 0, 0, 1, 0, 0, 1, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_GRASS, - ABILITY_OVERGROW, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Meganium - 80, 82, 100, 80, 83, 100, - TYPE_GRASS, - TYPE_GRASS, - 45, // catch rate - 208, // base exp. yield - 0, 0, 1, 0, 0, 2, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_GRASS, - ABILITY_OVERGROW, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Cyndaquil - 39, 52, 43, 65, 60, 50, - TYPE_FIRE, - TYPE_FIRE, - 45, // catch rate - 65, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_BLAZE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Quilava - 58, 64, 58, 80, 80, 65, - TYPE_FIRE, - TYPE_FIRE, - 45, // catch rate - 142, // base exp. yield - 0, 0, 0, 1, 1, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_BLAZE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Typhlosion - 78, 84, 78, 100, 109, 85, - TYPE_FIRE, - TYPE_FIRE, - 45, // catch rate - 209, // base exp. yield - 0, 0, 0, 0, 3, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_BLAZE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Totodile - 50, 65, 64, 43, 44, 48, - TYPE_WATER, - TYPE_WATER, - 45, // catch rate - 66, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_WATER_1, - ABILITY_TORRENT, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Croconaw - 65, 80, 80, 58, 59, 63, - TYPE_WATER, - TYPE_WATER, - 45, // catch rate - 143, // base exp. yield - 0, 1, 1, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_WATER_1, - ABILITY_TORRENT, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE, TRUE - }, { // Feraligatr - 85, 105, 100, 78, 79, 83, - TYPE_WATER, - TYPE_WATER, - 45, // catch rate - 210, // base exp. yield - 0, 2, 1, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_WATER_1, - ABILITY_TORRENT, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Sentret - 35, 46, 34, 20, 35, 45, - TYPE_NORMAL, - TYPE_NORMAL, - 255, // catch rate - 57, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_ORAN_BERRY, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_RUN_AWAY, - ABILITY_KEEN_EYE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Furret - 85, 76, 64, 90, 45, 55, - TYPE_NORMAL, - TYPE_NORMAL, - 90, // catch rate - 116, // base exp. yield - 0, 0, 0, 2, 0, 0, - ITEM_ORAN_BERRY, - ITEM_SITRUS_BERRY, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_RUN_AWAY, - ABILITY_KEEN_EYE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Hoothoot - 60, 30, 30, 50, 36, 56, - TYPE_NORMAL, - TYPE_FLYING, - 255, // catch rate - 58, // base exp. yield - 1, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FLYING, - EGG_GROUP_FLYING, - ABILITY_INSOMNIA, - ABILITY_KEEN_EYE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Noctowl - 100, 50, 50, 70, 76, 96, - TYPE_NORMAL, - TYPE_FLYING, - 90, // catch rate - 162, // base exp. yield - 2, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FLYING, - EGG_GROUP_FLYING, - ABILITY_INSOMNIA, - ABILITY_KEEN_EYE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Ledyba - 40, 20, 30, 55, 40, 80, - TYPE_BUG, - TYPE_FLYING, - 255, // catch rate - 54, // base exp. yield - 0, 0, 0, 0, 0, 1, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_FAST, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_SWARM, - ABILITY_EARLY_BIRD, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Ledian - 55, 35, 50, 85, 55, 110, - TYPE_BUG, - TYPE_FLYING, - 90, // catch rate - 134, // base exp. yield - 0, 0, 0, 0, 0, 2, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_FAST, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_SWARM, - ABILITY_EARLY_BIRD, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Spinarak - 40, 60, 40, 30, 40, 40, - TYPE_BUG, - TYPE_POISON, - 255, // catch rate - 54, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_FAST, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_SWARM, - ABILITY_INSOMNIA, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Ariados - 70, 90, 70, 40, 60, 60, - TYPE_BUG, - TYPE_POISON, - 90, // catch rate - 134, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_FAST, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_SWARM, - ABILITY_INSOMNIA, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Crobat - 85, 90, 80, 130, 70, 80, - TYPE_POISON, - TYPE_FLYING, - 90, // catch rate - 204, // base exp. yield - 0, 0, 0, 3, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FLYING, - EGG_GROUP_FLYING, - ABILITY_INNER_FOCUS, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Chinchou - 75, 38, 38, 67, 56, 56, - TYPE_WATER, - TYPE_ELECTRIC, - 190, // catch rate - 90, // base exp. yield - 1, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_YELLOW_SHARD, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_WATER_2, - EGG_GROUP_WATER_2, - ABILITY_VOLT_ABSORB, - ABILITY_ILLUMINATE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Lanturn - 125, 58, 58, 67, 76, 76, - TYPE_WATER, - TYPE_ELECTRIC, - 75, // catch rate - 156, // base exp. yield - 2, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_YELLOW_SHARD, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_WATER_2, - EGG_GROUP_WATER_2, - ABILITY_VOLT_ABSORB, - ABILITY_ILLUMINATE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Pichu - 20, 40, 15, 60, 35, 35, - TYPE_ELECTRIC, - TYPE_ELECTRIC, - 190, // catch rate - 42, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_ORAN_BERRY, - 127, // gender - 10, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_STATIC, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Cleffa - 50, 25, 28, 15, 45, 55, - TYPE_NORMAL, - TYPE_NORMAL, - 150, // catch rate - 37, // base exp. yield - 0, 0, 0, 0, 0, 1, - ITEM_LEPPA_BERRY, - ITEM_MOON_STONE, - 191, // gender - 10, // egg cycles - 140, // base friendship - GROWTH_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_CUTE_CHARM, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PINK - }, { // Igglybuff - 90, 30, 15, 15, 40, 20, - TYPE_NORMAL, - TYPE_NORMAL, - 170, // catch rate - 39, // base exp. yield - 1, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 191, // gender - 10, // egg cycles - 70, // base friendship - GROWTH_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_CUTE_CHARM, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PINK, TRUE - }, { // Togepi - 35, 20, 65, 20, 40, 65, - TYPE_NORMAL, - TYPE_NORMAL, - 190, // catch rate - 74, // base exp. yield - 0, 0, 0, 0, 0, 1, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 10, // egg cycles - 70, // base friendship - GROWTH_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_HUSTLE, - ABILITY_SERENE_GRACE, - 0, // Safari Zone flee rate - BODY_COLOR_WHITE - }, { // Togetic - 55, 40, 85, 40, 80, 105, - TYPE_NORMAL, - TYPE_FLYING, - 75, // catch rate - 114, // base exp. yield - 0, 0, 0, 0, 0, 2, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 10, // egg cycles - 70, // base friendship - GROWTH_FAST, - EGG_GROUP_FLYING, - EGG_GROUP_FAIRY, - ABILITY_HUSTLE, - ABILITY_SERENE_GRACE, - 0, // Safari Zone flee rate - BODY_COLOR_WHITE - }, { // Natu - 40, 50, 45, 70, 70, 45, - TYPE_PSYCHIC, - TYPE_FLYING, - 190, // catch rate - 73, // base exp. yield - 0, 0, 0, 0, 1, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FLYING, - EGG_GROUP_FLYING, - ABILITY_SYNCHRONIZE, - ABILITY_EARLY_BIRD, - 6, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Xatu - 65, 75, 70, 95, 95, 70, - TYPE_PSYCHIC, - TYPE_FLYING, - 75, // catch rate - 171, // base exp. yield - 0, 0, 0, 1, 1, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FLYING, - EGG_GROUP_FLYING, - ABILITY_SYNCHRONIZE, - ABILITY_EARLY_BIRD, - 8, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Mareep - 55, 40, 40, 35, 65, 45, - TYPE_ELECTRIC, - TYPE_ELECTRIC, - 235, // catch rate - 59, // base exp. yield - 0, 0, 0, 0, 1, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_FIELD, - ABILITY_STATIC, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_WHITE - }, { // Flaaffy - 70, 55, 55, 45, 80, 60, - TYPE_ELECTRIC, - TYPE_ELECTRIC, - 120, // catch rate - 117, // base exp. yield - 0, 0, 0, 0, 2, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_FIELD, - ABILITY_STATIC, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PINK - }, { // Ampharos - 90, 75, 75, 55, 115, 90, - TYPE_ELECTRIC, - TYPE_ELECTRIC, - 45, // catch rate - 194, // base exp. yield - 0, 0, 0, 0, 3, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_FIELD, - ABILITY_STATIC, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Bellossom - 75, 80, 85, 50, 90, 100, - TYPE_GRASS, - TYPE_GRASS, - 45, // catch rate - 184, // base exp. yield - 0, 0, 0, 0, 0, 3, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_GRASS, - EGG_GROUP_GRASS, - ABILITY_CHLOROPHYLL, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Marill - 70, 20, 50, 40, 20, 50, - TYPE_WATER, - TYPE_WATER, - 190, // catch rate - 58, // base exp. yield - 2, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 10, // egg cycles - 70, // base friendship - GROWTH_FAST, - EGG_GROUP_WATER_1, - EGG_GROUP_FAIRY, - ABILITY_THICK_FAT, - ABILITY_HUGE_POWER, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Azumarill - 100, 50, 80, 50, 50, 80, - TYPE_WATER, - TYPE_WATER, - 75, // catch rate - 153, // base exp. yield - 3, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 10, // egg cycles - 70, // base friendship - GROWTH_FAST, - EGG_GROUP_WATER_1, - EGG_GROUP_FAIRY, - ABILITY_THICK_FAT, - ABILITY_HUGE_POWER, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Sudowoodo - 70, 100, 115, 30, 30, 65, - TYPE_ROCK, - TYPE_ROCK, - 65, // catch rate - 135, // base exp. yield - 0, 0, 2, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_MINERAL, - EGG_GROUP_MINERAL, - ABILITY_STURDY, - ABILITY_ROCK_HEAD, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Politoed - 90, 75, 75, 70, 90, 100, - TYPE_WATER, - TYPE_WATER, - 45, // catch rate - 185, // base exp. yield - 0, 0, 0, 0, 0, 3, - ITEM_NONE, - ITEM_KINGS_ROCK, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_WATER_1, - EGG_GROUP_WATER_1, - ABILITY_WATER_ABSORB, - ABILITY_DAMP, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN, TRUE - }, { // Hoppip - 35, 35, 40, 50, 35, 55, - TYPE_GRASS, - TYPE_FLYING, - 255, // catch rate - 74, // base exp. yield - 0, 0, 0, 0, 0, 1, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_FAIRY, - EGG_GROUP_GRASS, - ABILITY_CHLOROPHYLL, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PINK - }, { // Skiploom - 55, 45, 50, 80, 45, 65, - TYPE_GRASS, - TYPE_FLYING, - 120, // catch rate - 136, // base exp. yield - 0, 0, 0, 2, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_FAIRY, - EGG_GROUP_GRASS, - ABILITY_CHLOROPHYLL, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Jumpluff - 75, 55, 70, 110, 55, 85, - TYPE_GRASS, - TYPE_FLYING, - 45, // catch rate - 176, // base exp. yield - 0, 0, 0, 3, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_FAIRY, - EGG_GROUP_GRASS, - ABILITY_CHLOROPHYLL, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Aipom - 55, 70, 55, 85, 40, 55, - TYPE_NORMAL, - TYPE_NORMAL, - 45, // catch rate - 94, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_RUN_AWAY, - ABILITY_PICKUP, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Sunkern - 30, 30, 30, 30, 30, 30, - TYPE_GRASS, - TYPE_GRASS, - 235, // catch rate - 52, // base exp. yield - 0, 0, 0, 0, 1, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_GRASS, - EGG_GROUP_GRASS, - ABILITY_CHLOROPHYLL, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Sunflora - 75, 75, 55, 30, 105, 85, - TYPE_GRASS, - TYPE_GRASS, - 120, // catch rate - 146, // base exp. yield - 0, 0, 0, 0, 2, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_GRASS, - EGG_GROUP_GRASS, - ABILITY_CHLOROPHYLL, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Yanma - 65, 65, 45, 95, 75, 45, - TYPE_BUG, - TYPE_FLYING, - 75, // catch rate - 147, // base exp. yield - 0, 0, 0, 2, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_SPEED_BOOST, - ABILITY_COMPOUND_EYES, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Wooper - 55, 45, 45, 15, 25, 25, - TYPE_WATER, - TYPE_GROUND, - 255, // catch rate - 52, // base exp. yield - 1, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_WATER_1, - EGG_GROUP_FIELD, - ABILITY_DAMP, - ABILITY_WATER_ABSORB, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Quagsire - 95, 85, 85, 35, 65, 65, - TYPE_WATER, - TYPE_GROUND, - 90, // catch rate - 137, // base exp. yield - 2, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_WATER_1, - EGG_GROUP_FIELD, - ABILITY_DAMP, - ABILITY_WATER_ABSORB, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Espeon - 65, 65, 60, 110, 130, 95, - TYPE_PSYCHIC, - TYPE_PSYCHIC, - 45, // catch rate - 197, // base exp. yield - 0, 0, 0, 0, 2, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 35, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_SYNCHRONIZE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Umbreon - 95, 65, 110, 65, 60, 130, - TYPE_DARK, - TYPE_DARK, - 45, // catch rate - 197, // base exp. yield - 0, 0, 0, 0, 0, 2, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 35, // egg cycles - 35, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_SYNCHRONIZE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // Murkrow - 60, 85, 42, 91, 85, 42, - TYPE_DARK, - TYPE_FLYING, - 30, // catch rate - 107, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 35, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_FLYING, - EGG_GROUP_FLYING, - ABILITY_INSOMNIA, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // Slowking - 95, 75, 80, 30, 100, 110, - TYPE_WATER, - TYPE_PSYCHIC, - 70, // catch rate - 164, // base exp. yield - 0, 0, 0, 0, 0, 3, - ITEM_NONE, - ITEM_KINGS_ROCK, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_MONSTER, - EGG_GROUP_WATER_1, - ABILITY_OBLIVIOUS, - ABILITY_OWN_TEMPO, - 0, // Safari Zone flee rate - BODY_COLOR_PINK - }, { // Misdreavus - 60, 60, 60, 85, 85, 85, - TYPE_GHOST, - TYPE_GHOST, - 45, // catch rate - 147, // base exp. yield - 0, 0, 0, 0, 1, 1, - ITEM_NONE, - ITEM_SPELL_TAG, - 127, // gender - 25, // egg cycles - 35, // base friendship - GROWTH_FAST, - EGG_GROUP_AMORPHOUS, - EGG_GROUP_AMORPHOUS, - ABILITY_LEVITATE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Unown - 48, 72, 48, 48, 72, 48, - TYPE_PSYCHIC, - TYPE_PSYCHIC, - 225, // catch rate - 61, // base exp. yield - 0, 1, 0, 0, 1, 0, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 40, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_LEVITATE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK, TRUE - }, { // Wobbuffet - 190, 33, 58, 33, 33, 58, - TYPE_PSYCHIC, - TYPE_PSYCHIC, - 45, // catch rate - 177, // base exp. yield - 2, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_AMORPHOUS, - EGG_GROUP_AMORPHOUS, - ABILITY_SHADOW_TAG, - ABILITY_NONE, - 4, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Girafarig - 70, 80, 65, 85, 90, 65, - TYPE_NORMAL, - TYPE_PSYCHIC, - 60, // catch rate - 149, // base exp. yield - 0, 0, 0, 0, 2, 0, - ITEM_NONE, - ITEM_PERSIM_BERRY, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_INNER_FOCUS, - ABILITY_EARLY_BIRD, - 4, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Pineco - 50, 65, 90, 15, 35, 35, - TYPE_BUG, - TYPE_BUG, - 190, // catch rate - 60, // base exp. yield - 0, 0, 1, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_STURDY, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Forretress - 75, 90, 140, 40, 60, 60, - TYPE_BUG, - TYPE_STEEL, - 75, // catch rate - 118, // base exp. yield - 0, 0, 2, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_STURDY, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Dunsparce - 100, 70, 70, 45, 65, 65, - TYPE_NORMAL, - TYPE_NORMAL, - 190, // catch rate - 75, // base exp. yield - 1, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_SERENE_GRACE, - ABILITY_RUN_AWAY, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Gligar - 65, 75, 105, 85, 35, 65, - TYPE_GROUND, - TYPE_FLYING, - 60, // catch rate - 108, // base exp. yield - 0, 0, 1, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_HYPER_CUTTER, - ABILITY_SAND_VEIL, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Steelix - 75, 85, 200, 30, 55, 65, - TYPE_STEEL, - TYPE_GROUND, - 25, // catch rate - 196, // base exp. yield - 0, 0, 2, 0, 0, 0, - ITEM_NONE, - ITEM_METAL_COAT, - 127, // gender - 25, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_MINERAL, - EGG_GROUP_MINERAL, - ABILITY_ROCK_HEAD, - ABILITY_STURDY, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Snubbull - 60, 80, 50, 30, 40, 40, - TYPE_NORMAL, - TYPE_NORMAL, - 190, // catch rate - 63, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 191, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FAIRY, - ABILITY_INTIMIDATE, - ABILITY_RUN_AWAY, - 0, // Safari Zone flee rate - BODY_COLOR_PINK - }, { // Granbull - 90, 120, 75, 45, 60, 60, - TYPE_NORMAL, - TYPE_NORMAL, - 75, // catch rate - 178, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 191, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FAIRY, - ABILITY_INTIMIDATE, - ABILITY_INTIMIDATE, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Qwilfish - 65, 95, 75, 85, 55, 55, - TYPE_WATER, - TYPE_POISON, - 45, // catch rate - 100, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_WATER_2, - EGG_GROUP_WATER_2, - ABILITY_POISON_POINT, - ABILITY_SWIFT_SWIM, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Scizor - 70, 130, 100, 65, 55, 80, - TYPE_BUG, - TYPE_STEEL, - 25, // catch rate - 200, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 25, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_SWARM, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Shuckle - 20, 10, 230, 5, 10, 230, - TYPE_BUG, - TYPE_ROCK, - 190, // catch rate - 80, // base exp. yield - 0, 0, 1, 0, 0, 1, - ITEM_ORAN_BERRY, - ITEM_ORAN_BERRY, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_STURDY, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Heracross - 80, 125, 75, 85, 40, 95, - TYPE_BUG, - TYPE_FIGHTING, - 45, // catch rate - 200, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 25, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_SWARM, - ABILITY_GUTS, - 8, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Sneasel - 55, 95, 55, 115, 35, 75, - TYPE_DARK, - TYPE_ICE, - 60, // catch rate - 132, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_QUICK_CLAW, - 127, // gender - 20, // egg cycles - 35, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_INNER_FOCUS, - ABILITY_KEEN_EYE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK, TRUE - }, { // Teddiursa - 60, 80, 50, 40, 50, 50, - TYPE_NORMAL, - TYPE_NORMAL, - 120, // catch rate - 124, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_PICKUP, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN, TRUE - }, { // Ursaring - 90, 130, 75, 55, 75, 75, - TYPE_NORMAL, - TYPE_NORMAL, - 60, // catch rate - 189, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_GUTS, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Slugma - 40, 40, 40, 20, 70, 40, - TYPE_FIRE, - TYPE_FIRE, - 190, // catch rate - 78, // base exp. yield - 0, 0, 0, 0, 1, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_AMORPHOUS, - EGG_GROUP_AMORPHOUS, - ABILITY_MAGMA_ARMOR, - ABILITY_FLAME_BODY, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Magcargo - 50, 50, 120, 30, 80, 80, - TYPE_FIRE, - TYPE_ROCK, - 75, // catch rate - 154, // base exp. yield - 0, 0, 2, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_AMORPHOUS, - EGG_GROUP_AMORPHOUS, - ABILITY_MAGMA_ARMOR, - ABILITY_FLAME_BODY, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Swinub - 50, 50, 40, 50, 30, 30, - TYPE_ICE, - TYPE_GROUND, - 225, // catch rate - 78, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_OBLIVIOUS, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Piloswine - 100, 100, 80, 50, 60, 60, - TYPE_ICE, - TYPE_GROUND, - 75, // catch rate - 160, // base exp. yield - 1, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_OBLIVIOUS, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Corsola - 55, 55, 85, 35, 65, 85, - TYPE_WATER, - TYPE_ROCK, - 60, // catch rate - 113, // base exp. yield - 0, 0, 1, 0, 0, 1, - ITEM_NONE, - ITEM_RED_SHARD, - 191, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_FAST, - EGG_GROUP_WATER_1, - EGG_GROUP_WATER_3, - ABILITY_HUSTLE, - ABILITY_NATURAL_CURE, - 0, // Safari Zone flee rate - BODY_COLOR_PINK - }, { // Remoraid - 35, 65, 35, 65, 65, 35, - TYPE_WATER, - TYPE_WATER, - 190, // catch rate - 78, // base exp. yield - 0, 0, 0, 0, 1, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_WATER_1, - EGG_GROUP_WATER_2, - ABILITY_HUSTLE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Octillery - 75, 105, 75, 45, 105, 75, - TYPE_WATER, - TYPE_WATER, - 75, // catch rate - 164, // base exp. yield - 0, 1, 0, 0, 1, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_WATER_1, - EGG_GROUP_WATER_2, - ABILITY_SUCTION_CUPS, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Delibird - 45, 55, 45, 75, 65, 45, - TYPE_ICE, - TYPE_FLYING, - 45, // catch rate - 183, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_FAST, - EGG_GROUP_WATER_1, - EGG_GROUP_FIELD, - ABILITY_VITAL_SPIRIT, - ABILITY_HUSTLE, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Mantine - 65, 40, 70, 70, 80, 140, - TYPE_WATER, - TYPE_FLYING, - 25, // catch rate - 168, // base exp. yield - 0, 0, 0, 0, 0, 2, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 25, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_WATER_1, - EGG_GROUP_WATER_1, - ABILITY_SWIFT_SWIM, - ABILITY_WATER_ABSORB, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Skarmory - 65, 80, 140, 70, 40, 70, - TYPE_STEEL, - TYPE_FLYING, - 25, // catch rate - 168, // base exp. yield - 0, 0, 2, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 25, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_FLYING, - EGG_GROUP_FLYING, - ABILITY_KEEN_EYE, - ABILITY_STURDY, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Houndour - 45, 60, 30, 65, 80, 50, - TYPE_DARK, - TYPE_FIRE, - 120, // catch rate - 114, // base exp. yield - 0, 0, 0, 0, 1, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_EARLY_BIRD, - ABILITY_FLASH_FIRE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // Houndoom - 75, 90, 50, 95, 110, 80, - TYPE_DARK, - TYPE_FIRE, - 45, // catch rate - 204, // base exp. yield - 0, 0, 0, 0, 2, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_EARLY_BIRD, - ABILITY_FLASH_FIRE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // Kingdra - 75, 95, 95, 85, 95, 95, - TYPE_WATER, - TYPE_DRAGON, - 45, // catch rate - 207, // base exp. yield - 0, 1, 0, 0, 1, 1, - ITEM_NONE, - ITEM_DRAGON_SCALE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_WATER_1, - EGG_GROUP_DRAGON, - ABILITY_SWIFT_SWIM, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Phanpy - 90, 60, 60, 40, 40, 40, - TYPE_GROUND, - TYPE_GROUND, - 120, // catch rate - 124, // base exp. yield - 1, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_PICKUP, - ABILITY_NONE, - 10, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Donphan - 90, 120, 120, 50, 60, 60, - TYPE_GROUND, - TYPE_GROUND, - 60, // catch rate - 189, // base exp. yield - 0, 1, 1, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_STURDY, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Porygon2 - 85, 80, 90, 60, 105, 95, - TYPE_NORMAL, - TYPE_NORMAL, - 45, // catch rate - 180, // base exp. yield - 0, 0, 0, 0, 2, 0, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_MINERAL, - EGG_GROUP_MINERAL, - ABILITY_TRACE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Stantler - 73, 95, 62, 85, 85, 65, - TYPE_NORMAL, - TYPE_NORMAL, - 45, // catch rate - 165, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_INTIMIDATE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Smeargle - 55, 20, 35, 75, 20, 45, - TYPE_NORMAL, - TYPE_NORMAL, - 45, // catch rate - 106, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_OWN_TEMPO, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_WHITE - }, { // Tyrogue - 35, 35, 35, 35, 35, 35, - TYPE_FIGHTING, - TYPE_FIGHTING, - 75, // catch rate - 91, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 0, // gender - 25, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_GUTS, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Hitmontop - 50, 95, 95, 70, 35, 110, - TYPE_FIGHTING, - TYPE_FIGHTING, - 45, // catch rate - 138, // base exp. yield - 0, 0, 0, 0, 0, 2, - ITEM_NONE, - ITEM_NONE, - 0, // gender - 25, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_HUMAN_LIKE, - EGG_GROUP_HUMAN_LIKE, - ABILITY_INTIMIDATE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Smoochum - 45, 30, 15, 65, 85, 65, - TYPE_ICE, - TYPE_PSYCHIC, - 45, // catch rate - 87, // base exp. yield - 0, 0, 0, 0, 1, 0, - ITEM_ASPEAR_BERRY, - ITEM_ASPEAR_BERRY, - 254, // gender - 25, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_OBLIVIOUS, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PINK - }, { // Elekid - 45, 63, 37, 95, 65, 55, - TYPE_ELECTRIC, - TYPE_ELECTRIC, - 45, // catch rate - 106, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 63, // gender - 25, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_STATIC, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW, TRUE - }, { // Magby - 45, 75, 37, 83, 70, 55, - TYPE_FIRE, - TYPE_FIRE, - 45, // catch rate - 117, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_RAWST_BERRY, - ITEM_RAWST_BERRY, - 63, // gender - 25, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_FLAME_BODY, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Miltank - 95, 80, 105, 100, 40, 70, - TYPE_NORMAL, - TYPE_NORMAL, - 45, // catch rate - 200, // base exp. yield - 0, 0, 2, 0, 0, 0, - ITEM_MOOMOO_MILK, - ITEM_MOOMOO_MILK, - 254, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_THICK_FAT, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PINK - }, { // Blissey - 255, 10, 10, 55, 75, 135, - TYPE_NORMAL, - TYPE_NORMAL, - 30, // catch rate - 255, // base exp. yield - 2, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_LUCKY_EGG, - 254, // gender - 40, // egg cycles - 140, // base friendship - GROWTH_FAST, - EGG_GROUP_FAIRY, - EGG_GROUP_FAIRY, - ABILITY_NATURAL_CURE, - ABILITY_SERENE_GRACE, - 0, // Safari Zone flee rate - BODY_COLOR_PINK - }, { // Raikou - 90, 85, 75, 115, 115, 100, - TYPE_ELECTRIC, - TYPE_ELECTRIC, - 3, // catch rate - 216, // base exp. yield - 0, 0, 0, 2, 1, 0, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 80, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_PRESSURE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Entei - 115, 115, 85, 100, 90, 75, - TYPE_FIRE, - TYPE_FIRE, - 3, // catch rate - 217, // base exp. yield - 1, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 80, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_PRESSURE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Suicune - 100, 75, 115, 85, 90, 115, - TYPE_WATER, - TYPE_WATER, - 3, // catch rate - 215, // base exp. yield - 0, 0, 1, 0, 0, 2, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 80, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_PRESSURE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Larvitar - 50, 64, 50, 41, 45, 50, - TYPE_ROCK, - TYPE_GROUND, - 45, // catch rate - 67, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 40, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_MONSTER, - ABILITY_GUTS, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Pupitar - 70, 84, 70, 51, 65, 70, - TYPE_ROCK, - TYPE_GROUND, - 45, // catch rate - 144, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 40, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_MONSTER, - ABILITY_SHED_SKIN, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Tyranitar - 100, 134, 110, 61, 95, 100, - TYPE_ROCK, - TYPE_DARK, - 45, // catch rate - 218, // base exp. yield - 0, 3, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 40, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_MONSTER, - ABILITY_SAND_STREAM, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Lugia - 106, 90, 130, 110, 90, 154, - TYPE_PSYCHIC, - TYPE_FLYING, - 3, // catch rate - 220, // base exp. yield - 0, 0, 0, 0, 0, 3, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_SLOW, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_PRESSURE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_WHITE - }, { // Ho-Oh - 106, 130, 90, 90, 110, 154, - TYPE_FIRE, - TYPE_FLYING, - 3, // catch rate - 220, // base exp. yield - 0, 0, 0, 0, 0, 3, - ITEM_SACRED_ASH, - ITEM_SACRED_ASH, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_SLOW, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_PRESSURE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Celebi - 100, 100, 100, 100, 100, 100, - TYPE_PSYCHIC, - TYPE_GRASS, - 45, // catch rate - 64, // base exp. yield - 3, 0, 0, 0, 0, 0, - ITEM_LUM_BERRY, - ITEM_LUM_BERRY, - 255, // gender - 120, // egg cycles - 100, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_NATURAL_CURE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // ? - 50, 150, 50, 150, 150, 50, - TYPE_NORMAL, - TYPE_NORMAL, - 3, // catch rate - 1, // base exp. yield - 2, 2, 2, 2, 2, 2, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_NONE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // ? - 50, 150, 50, 150, 150, 50, - TYPE_NORMAL, - TYPE_NORMAL, - 3, // catch rate - 1, // base exp. yield - 2, 2, 2, 2, 2, 2, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_NONE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // ? - 50, 150, 50, 150, 150, 50, - TYPE_NORMAL, - TYPE_NORMAL, - 3, // catch rate - 1, // base exp. yield - 2, 2, 2, 2, 2, 2, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_NONE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // ? - 50, 150, 50, 150, 150, 50, - TYPE_NORMAL, - TYPE_NORMAL, - 3, // catch rate - 1, // base exp. yield - 2, 2, 2, 2, 2, 2, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_NONE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // ? - 50, 150, 50, 150, 150, 50, - TYPE_NORMAL, - TYPE_NORMAL, - 3, // catch rate - 1, // base exp. yield - 2, 2, 2, 2, 2, 2, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_NONE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // ? - 50, 150, 50, 150, 150, 50, - TYPE_NORMAL, - TYPE_NORMAL, - 3, // catch rate - 1, // base exp. yield - 2, 2, 2, 2, 2, 2, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_NONE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // ? - 50, 150, 50, 150, 150, 50, - TYPE_NORMAL, - TYPE_NORMAL, - 3, // catch rate - 1, // base exp. yield - 2, 2, 2, 2, 2, 2, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_NONE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // ? - 50, 150, 50, 150, 150, 50, - TYPE_NORMAL, - TYPE_NORMAL, - 3, // catch rate - 1, // base exp. yield - 2, 2, 2, 2, 2, 2, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_NONE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // ? - 50, 150, 50, 150, 150, 50, - TYPE_NORMAL, - TYPE_NORMAL, - 3, // catch rate - 1, // base exp. yield - 2, 2, 2, 2, 2, 2, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_NONE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // ? - 50, 150, 50, 150, 150, 50, - TYPE_NORMAL, - TYPE_NORMAL, - 3, // catch rate - 1, // base exp. yield - 2, 2, 2, 2, 2, 2, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_NONE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // ? - 50, 150, 50, 150, 150, 50, - TYPE_NORMAL, - TYPE_NORMAL, - 3, // catch rate - 1, // base exp. yield - 2, 2, 2, 2, 2, 2, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_NONE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // ? - 50, 150, 50, 150, 150, 50, - TYPE_NORMAL, - TYPE_NORMAL, - 3, // catch rate - 1, // base exp. yield - 2, 2, 2, 2, 2, 2, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_NONE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // ? - 50, 150, 50, 150, 150, 50, - TYPE_NORMAL, - TYPE_NORMAL, - 3, // catch rate - 1, // base exp. yield - 2, 2, 2, 2, 2, 2, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_NONE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // ? - 50, 150, 50, 150, 150, 50, - TYPE_NORMAL, - TYPE_NORMAL, - 3, // catch rate - 1, // base exp. yield - 2, 2, 2, 2, 2, 2, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_NONE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // ? - 50, 150, 50, 150, 150, 50, - TYPE_NORMAL, - TYPE_NORMAL, - 3, // catch rate - 1, // base exp. yield - 2, 2, 2, 2, 2, 2, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_NONE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // ? - 50, 150, 50, 150, 150, 50, - TYPE_NORMAL, - TYPE_NORMAL, - 3, // catch rate - 1, // base exp. yield - 2, 2, 2, 2, 2, 2, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_NONE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // ? - 50, 150, 50, 150, 150, 50, - TYPE_NORMAL, - TYPE_NORMAL, - 3, // catch rate - 1, // base exp. yield - 2, 2, 2, 2, 2, 2, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_NONE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // ? - 50, 150, 50, 150, 150, 50, - TYPE_NORMAL, - TYPE_NORMAL, - 3, // catch rate - 1, // base exp. yield - 2, 2, 2, 2, 2, 2, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_NONE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // ? - 50, 150, 50, 150, 150, 50, - TYPE_NORMAL, - TYPE_NORMAL, - 3, // catch rate - 1, // base exp. yield - 2, 2, 2, 2, 2, 2, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_NONE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // ? - 50, 150, 50, 150, 150, 50, - TYPE_NORMAL, - TYPE_NORMAL, - 3, // catch rate - 1, // base exp. yield - 2, 2, 2, 2, 2, 2, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_NONE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // ? - 50, 150, 50, 150, 150, 50, - TYPE_NORMAL, - TYPE_NORMAL, - 3, // catch rate - 1, // base exp. yield - 2, 2, 2, 2, 2, 2, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_NONE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // ? - 50, 150, 50, 150, 150, 50, - TYPE_NORMAL, - TYPE_NORMAL, - 3, // catch rate - 1, // base exp. yield - 2, 2, 2, 2, 2, 2, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_NONE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // ? - 50, 150, 50, 150, 150, 50, - TYPE_NORMAL, - TYPE_NORMAL, - 3, // catch rate - 1, // base exp. yield - 2, 2, 2, 2, 2, 2, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_NONE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // ? - 50, 150, 50, 150, 150, 50, - TYPE_NORMAL, - TYPE_NORMAL, - 3, // catch rate - 1, // base exp. yield - 2, 2, 2, 2, 2, 2, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_NONE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // ? - 50, 150, 50, 150, 150, 50, - TYPE_NORMAL, - TYPE_NORMAL, - 3, // catch rate - 1, // base exp. yield - 2, 2, 2, 2, 2, 2, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_NONE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // Treecko - 40, 45, 35, 70, 65, 55, - TYPE_GRASS, - TYPE_GRASS, - 45, // catch rate - 65, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_DRAGON, - ABILITY_OVERGROW, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Grovyle - 50, 65, 45, 95, 85, 65, - TYPE_GRASS, - TYPE_GRASS, - 45, // catch rate - 141, // base exp. yield - 0, 0, 0, 2, 0, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_DRAGON, - ABILITY_OVERGROW, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Sceptile - 70, 85, 65, 120, 105, 85, - TYPE_GRASS, - TYPE_GRASS, - 45, // catch rate - 208, // base exp. yield - 0, 0, 0, 3, 0, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_DRAGON, - ABILITY_OVERGROW, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Torchic - 45, 60, 40, 45, 70, 50, - TYPE_FIRE, - TYPE_FIRE, - 45, // catch rate - 65, // base exp. yield - 0, 0, 0, 0, 1, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_BLAZE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Combusken - 60, 85, 60, 55, 85, 60, - TYPE_FIRE, - TYPE_FIGHTING, - 45, // catch rate - 142, // base exp. yield - 0, 1, 0, 0, 1, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_BLAZE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Blaziken - 80, 120, 70, 80, 110, 70, - TYPE_FIRE, - TYPE_FIGHTING, - 45, // catch rate - 209, // base exp. yield - 0, 3, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_BLAZE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Mudkip - 50, 70, 50, 40, 50, 50, - TYPE_WATER, - TYPE_WATER, - 45, // catch rate - 65, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_WATER_1, - ABILITY_TORRENT, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Marshtomp - 70, 85, 70, 50, 60, 70, - TYPE_WATER, - TYPE_GROUND, - 45, // catch rate - 143, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_WATER_1, - ABILITY_TORRENT, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Swampert - 100, 110, 90, 60, 85, 90, - TYPE_WATER, - TYPE_GROUND, - 45, // catch rate - 210, // base exp. yield - 0, 3, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_WATER_1, - ABILITY_TORRENT, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Poochyena - 35, 55, 35, 35, 30, 30, - TYPE_DARK, - TYPE_DARK, - 255, // catch rate - 55, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_PECHA_BERRY, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_RUN_AWAY, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Mightyena - 70, 90, 70, 70, 60, 60, - TYPE_DARK, - TYPE_DARK, - 127, // catch rate - 128, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_PECHA_BERRY, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_INTIMIDATE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Zigzagoon - 38, 30, 41, 60, 30, 41, - TYPE_NORMAL, - TYPE_NORMAL, - 255, // catch rate - 60, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_ORAN_BERRY, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_PICKUP, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Linoone - 78, 70, 61, 100, 50, 61, - TYPE_NORMAL, - TYPE_NORMAL, - 90, // catch rate - 128, // base exp. yield - 0, 0, 0, 2, 0, 0, - ITEM_ORAN_BERRY, - ITEM_SITRUS_BERRY, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_PICKUP, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_WHITE - }, { // Wurmple - 45, 45, 35, 20, 20, 30, - TYPE_BUG, - TYPE_BUG, - 255, // catch rate - 54, // base exp. yield - 1, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_SHIELD_DUST, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Silcoon - 50, 35, 55, 15, 25, 25, - TYPE_BUG, - TYPE_BUG, - 120, // catch rate - 71, // base exp. yield - 0, 0, 2, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_SHED_SKIN, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_WHITE - }, { // Beautifly - 60, 70, 50, 65, 90, 50, - TYPE_BUG, - TYPE_FLYING, - 45, // catch rate - 161, // base exp. yield - 0, 0, 0, 0, 3, 0, - ITEM_NONE, - ITEM_SILVER_POWDER, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_SWARM, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Cascoon - 50, 35, 55, 15, 25, 25, - TYPE_BUG, - TYPE_BUG, - 120, // catch rate - 72, // base exp. yield - 0, 0, 2, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_SHED_SKIN, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Dustox - 60, 50, 70, 65, 50, 90, - TYPE_BUG, - TYPE_POISON, - 45, // catch rate - 160, // base exp. yield - 0, 0, 0, 0, 0, 3, - ITEM_NONE, - ITEM_SILVER_POWDER, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_SHIELD_DUST, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Lotad - 40, 30, 30, 30, 40, 50, - TYPE_WATER, - TYPE_GRASS, - 255, // catch rate - 74, // base exp. yield - 0, 0, 0, 0, 0, 1, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_WATER_1, - EGG_GROUP_GRASS, - ABILITY_SWIFT_SWIM, - ABILITY_RAIN_DISH, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Lombre - 60, 50, 50, 50, 60, 70, - TYPE_WATER, - TYPE_GRASS, - 120, // catch rate - 141, // base exp. yield - 0, 0, 0, 0, 0, 2, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_WATER_1, - EGG_GROUP_GRASS, - ABILITY_SWIFT_SWIM, - ABILITY_RAIN_DISH, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Ludicolo - 80, 70, 70, 70, 90, 100, - TYPE_WATER, - TYPE_GRASS, - 45, // catch rate - 181, // base exp. yield - 0, 0, 0, 0, 0, 3, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_WATER_1, - EGG_GROUP_GRASS, - ABILITY_SWIFT_SWIM, - ABILITY_RAIN_DISH, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Seedot - 40, 40, 50, 30, 30, 30, - TYPE_GRASS, - TYPE_GRASS, - 255, // catch rate - 74, // base exp. yield - 0, 0, 1, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_FIELD, - EGG_GROUP_GRASS, - ABILITY_CHLOROPHYLL, - ABILITY_EARLY_BIRD, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Nuzleaf - 70, 70, 40, 60, 60, 40, - TYPE_GRASS, - TYPE_DARK, - 120, // catch rate - 141, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_FIELD, - EGG_GROUP_GRASS, - ABILITY_CHLOROPHYLL, - ABILITY_EARLY_BIRD, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Shiftry - 90, 100, 60, 80, 90, 60, - TYPE_GRASS, - TYPE_DARK, - 45, // catch rate - 181, // base exp. yield - 0, 3, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_FIELD, - EGG_GROUP_GRASS, - ABILITY_CHLOROPHYLL, - ABILITY_EARLY_BIRD, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Nincada - 31, 45, 90, 40, 30, 30, - TYPE_BUG, - TYPE_GROUND, - 255, // catch rate - 65, // base exp. yield - 0, 0, 1, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_ERRATIC, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_COMPOUND_EYES, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Ninjask - 61, 90, 45, 160, 50, 50, - TYPE_BUG, - TYPE_FLYING, - 120, // catch rate - 155, // base exp. yield - 0, 0, 0, 2, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_ERRATIC, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_SPEED_BOOST, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Shedinja - 1, 90, 45, 40, 30, 30, - TYPE_BUG, - TYPE_GHOST, - 45, // catch rate - 95, // base exp. yield - 2, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_ERRATIC, - EGG_GROUP_MINERAL, - EGG_GROUP_MINERAL, - ABILITY_WONDER_GUARD, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Taillow - 40, 55, 30, 85, 30, 30, - TYPE_NORMAL, - TYPE_FLYING, - 200, // catch rate - 59, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_FLYING, - EGG_GROUP_FLYING, - ABILITY_GUTS, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Swellow - 60, 85, 60, 125, 50, 50, - TYPE_NORMAL, - TYPE_FLYING, - 45, // catch rate - 162, // base exp. yield - 0, 0, 0, 2, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_FLYING, - EGG_GROUP_FLYING, - ABILITY_GUTS, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Shroomish - 60, 40, 60, 35, 40, 60, - TYPE_GRASS, - TYPE_GRASS, - 255, // catch rate - 65, // base exp. yield - 1, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_FLUCTUATING, - EGG_GROUP_FAIRY, - EGG_GROUP_GRASS, - ABILITY_EFFECT_SPORE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Breloom - 60, 130, 80, 70, 60, 60, - TYPE_GRASS, - TYPE_FIGHTING, - 90, // catch rate - 165, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_FLUCTUATING, - EGG_GROUP_FAIRY, - EGG_GROUP_GRASS, - ABILITY_EFFECT_SPORE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Spinda - 60, 60, 60, 60, 60, 60, - TYPE_NORMAL, - TYPE_NORMAL, - 255, // catch rate - 85, // base exp. yield - 0, 0, 0, 0, 1, 0, - ITEM_NONE, - ITEM_CHESTO_BERRY, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_HUMAN_LIKE, - ABILITY_OWN_TEMPO, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN, TRUE - }, { // Wingull - 40, 30, 30, 85, 55, 30, - TYPE_WATER, - TYPE_FLYING, - 190, // catch rate - 64, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_WATER_1, - EGG_GROUP_FLYING, - ABILITY_KEEN_EYE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_WHITE - }, { // Pelipper - 60, 50, 100, 65, 85, 70, - TYPE_WATER, - TYPE_FLYING, - 45, // catch rate - 164, // base exp. yield - 0, 0, 2, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_WATER_1, - EGG_GROUP_FLYING, - ABILITY_KEEN_EYE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Surskit - 40, 30, 32, 65, 50, 52, - TYPE_BUG, - TYPE_WATER, - 200, // catch rate - 63, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_WATER_1, - EGG_GROUP_BUG, - ABILITY_SWIFT_SWIM, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Masquerain - 70, 60, 62, 60, 80, 82, - TYPE_BUG, - TYPE_FLYING, - 75, // catch rate - 128, // base exp. yield - 0, 0, 0, 0, 1, 1, - ITEM_NONE, - ITEM_SILVER_POWDER, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_WATER_1, - EGG_GROUP_BUG, - ABILITY_INTIMIDATE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Wailmer - 130, 70, 35, 60, 70, 35, - TYPE_WATER, - TYPE_WATER, - 125, // catch rate - 137, // base exp. yield - 1, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 40, // egg cycles - 70, // base friendship - GROWTH_FLUCTUATING, - EGG_GROUP_FIELD, - EGG_GROUP_WATER_2, - ABILITY_WATER_VEIL, - ABILITY_OBLIVIOUS, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Wailord - 170, 90, 45, 60, 90, 45, - TYPE_WATER, - TYPE_WATER, - 60, // catch rate - 206, // base exp. yield - 2, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 40, // egg cycles - 70, // base friendship - GROWTH_FLUCTUATING, - EGG_GROUP_FIELD, - EGG_GROUP_WATER_2, - ABILITY_WATER_VEIL, - ABILITY_OBLIVIOUS, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Skitty - 50, 45, 45, 50, 35, 35, - TYPE_NORMAL, - TYPE_NORMAL, - 255, // catch rate - 65, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_LEPPA_BERRY, - 191, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FAIRY, - ABILITY_CUTE_CHARM, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PINK - }, { // Delcatty - 70, 65, 65, 70, 55, 55, - TYPE_NORMAL, - TYPE_NORMAL, - 60, // catch rate - 138, // base exp. yield - 1, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_LEPPA_BERRY, - 191, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FAIRY, - ABILITY_CUTE_CHARM, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Kecleon - 60, 90, 70, 40, 60, 120, - TYPE_NORMAL, - TYPE_NORMAL, - 200, // catch rate - 132, // base exp. yield - 0, 0, 0, 0, 0, 1, - ITEM_NONE, - ITEM_PERSIM_BERRY, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_COLOR_CHANGE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Baltoy - 40, 40, 55, 55, 40, 70, - TYPE_GROUND, - TYPE_PSYCHIC, - 255, // catch rate - 58, // base exp. yield - 0, 0, 0, 0, 0, 1, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_MINERAL, - EGG_GROUP_MINERAL, - ABILITY_LEVITATE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Claydol - 60, 70, 105, 75, 70, 120, - TYPE_GROUND, - TYPE_PSYCHIC, - 90, // catch rate - 189, // base exp. yield - 0, 0, 0, 0, 0, 2, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_MINERAL, - EGG_GROUP_MINERAL, - ABILITY_LEVITATE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // Nosepass - 30, 45, 135, 30, 45, 90, - TYPE_ROCK, - TYPE_ROCK, - 255, // catch rate - 108, // base exp. yield - 0, 0, 1, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_MINERAL, - EGG_GROUP_MINERAL, - ABILITY_STURDY, - ABILITY_MAGNET_PULL, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Torkoal - 70, 85, 140, 20, 85, 70, - TYPE_FIRE, - TYPE_FIRE, - 90, // catch rate - 161, // base exp. yield - 0, 0, 2, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_WHITE_SMOKE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Sableye - 50, 75, 75, 50, 65, 65, - TYPE_DARK, - TYPE_GHOST, - 45, // catch rate - 98, // base exp. yield - 0, 1, 1, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 25, // egg cycles - 35, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_HUMAN_LIKE, - EGG_GROUP_HUMAN_LIKE, - ABILITY_KEEN_EYE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Barboach - 50, 48, 43, 60, 46, 41, - TYPE_WATER, - TYPE_GROUND, - 190, // catch rate - 92, // base exp. yield - 1, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_WATER_2, - EGG_GROUP_WATER_2, - ABILITY_OBLIVIOUS, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Whiscash - 110, 78, 73, 60, 76, 71, - TYPE_WATER, - TYPE_GROUND, - 75, // catch rate - 158, // base exp. yield - 2, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_WATER_2, - EGG_GROUP_WATER_2, - ABILITY_OBLIVIOUS, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Luvdisc - 43, 30, 55, 97, 40, 65, - TYPE_WATER, - TYPE_WATER, - 225, // catch rate - 110, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_HEART_SCALE, - ITEM_NONE, - 191, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_FAST, - EGG_GROUP_WATER_2, - EGG_GROUP_WATER_2, - ABILITY_SWIFT_SWIM, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PINK - }, { // Corphish - 43, 80, 65, 35, 50, 35, - TYPE_WATER, - TYPE_WATER, - 205, // catch rate - 111, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_FLUCTUATING, - EGG_GROUP_WATER_1, - EGG_GROUP_WATER_3, - ABILITY_HYPER_CUTTER, - ABILITY_SHELL_ARMOR, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Crawdaunt - 63, 120, 85, 55, 90, 55, - TYPE_WATER, - TYPE_DARK, - 155, // catch rate - 161, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_FLUCTUATING, - EGG_GROUP_WATER_1, - EGG_GROUP_WATER_3, - ABILITY_HYPER_CUTTER, - ABILITY_SHELL_ARMOR, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Feebas - 20, 15, 20, 80, 10, 55, - TYPE_WATER, - TYPE_WATER, - 255, // catch rate - 61, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_ERRATIC, - EGG_GROUP_WATER_1, - EGG_GROUP_DRAGON, - ABILITY_SWIFT_SWIM, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Milotic - 95, 60, 79, 81, 100, 125, - TYPE_WATER, - TYPE_WATER, - 60, // catch rate - 213, // base exp. yield - 0, 0, 0, 0, 0, 2, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_ERRATIC, - EGG_GROUP_WATER_1, - EGG_GROUP_DRAGON, - ABILITY_MARVEL_SCALE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PINK - }, { // Carvanha - 45, 90, 20, 65, 65, 20, - TYPE_WATER, - TYPE_DARK, - 225, // catch rate - 88, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_WATER_2, - EGG_GROUP_WATER_2, - ABILITY_ROUGH_SKIN, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Sharpedo - 70, 120, 40, 95, 95, 40, - TYPE_WATER, - TYPE_DARK, - 60, // catch rate - 175, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_WATER_2, - EGG_GROUP_WATER_2, - ABILITY_ROUGH_SKIN, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Trapinch - 45, 100, 45, 10, 45, 45, - TYPE_GROUND, - TYPE_GROUND, - 255, // catch rate - 73, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_SOFT_SAND, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_HYPER_CUTTER, - ABILITY_ARENA_TRAP, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Vibrava - 50, 70, 50, 70, 50, 50, - TYPE_GROUND, - TYPE_DRAGON, - 120, // catch rate - 126, // base exp. yield - 0, 1, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_LEVITATE, - ABILITY_LEVITATE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Flygon - 80, 100, 80, 100, 80, 80, - TYPE_GROUND, - TYPE_DRAGON, - 45, // catch rate - 197, // base exp. yield - 0, 1, 0, 2, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_BUG, - EGG_GROUP_BUG, - ABILITY_LEVITATE, - ABILITY_LEVITATE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Makuhita - 72, 60, 30, 25, 20, 30, - TYPE_FIGHTING, - TYPE_FIGHTING, - 180, // catch rate - 87, // base exp. yield - 1, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 63, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_FLUCTUATING, - EGG_GROUP_HUMAN_LIKE, - EGG_GROUP_HUMAN_LIKE, - ABILITY_THICK_FAT, - ABILITY_GUTS, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Hariyama - 144, 120, 60, 50, 40, 60, - TYPE_FIGHTING, - TYPE_FIGHTING, - 200, // catch rate - 184, // base exp. yield - 2, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_KINGS_ROCK, - 63, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_FLUCTUATING, - EGG_GROUP_HUMAN_LIKE, - EGG_GROUP_HUMAN_LIKE, - ABILITY_THICK_FAT, - ABILITY_GUTS, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Electrike - 40, 45, 40, 65, 65, 40, - TYPE_ELECTRIC, - TYPE_ELECTRIC, - 120, // catch rate - 104, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_STATIC, - ABILITY_LIGHTNING_ROD, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Manectric - 70, 75, 60, 105, 105, 60, - TYPE_ELECTRIC, - TYPE_ELECTRIC, - 45, // catch rate - 168, // base exp. yield - 0, 0, 0, 2, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_STATIC, - ABILITY_LIGHTNING_ROD, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Numel - 60, 60, 40, 35, 65, 45, - TYPE_FIRE, - TYPE_GROUND, - 255, // catch rate - 88, // base exp. yield - 0, 0, 0, 0, 1, 0, - ITEM_RAWST_BERRY, - ITEM_RAWST_BERRY, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_OBLIVIOUS, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Camerupt - 70, 100, 70, 40, 105, 75, - TYPE_FIRE, - TYPE_GROUND, - 150, // catch rate - 175, // base exp. yield - 0, 1, 0, 0, 1, 0, - ITEM_RAWST_BERRY, - ITEM_RAWST_BERRY, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_MAGMA_ARMOR, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Spheal - 70, 40, 50, 25, 55, 50, - TYPE_ICE, - TYPE_WATER, - 255, // catch rate - 75, // base exp. yield - 1, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_WATER_1, - EGG_GROUP_FIELD, - ABILITY_THICK_FAT, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Sealeo - 90, 60, 70, 45, 75, 70, - TYPE_ICE, - TYPE_WATER, - 120, // catch rate - 128, // base exp. yield - 2, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_WATER_1, - EGG_GROUP_FIELD, - ABILITY_THICK_FAT, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Walrein - 110, 80, 90, 65, 95, 90, - TYPE_ICE, - TYPE_WATER, - 45, // catch rate - 192, // base exp. yield - 3, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_WATER_1, - EGG_GROUP_FIELD, - ABILITY_THICK_FAT, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Cacnea - 50, 85, 40, 35, 85, 40, - TYPE_GRASS, - TYPE_GRASS, - 190, // catch rate - 97, // base exp. yield - 0, 0, 0, 0, 1, 0, - ITEM_NONE, - ITEM_POISON_BARB, - 127, // gender - 20, // egg cycles - 35, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_GRASS, - EGG_GROUP_HUMAN_LIKE, - ABILITY_SAND_VEIL, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Cacturne - 70, 115, 60, 55, 115, 60, - TYPE_GRASS, - TYPE_DARK, - 60, // catch rate - 177, // base exp. yield - 0, 1, 0, 0, 1, 0, - ITEM_NONE, - ITEM_POISON_BARB, - 127, // gender - 20, // egg cycles - 35, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_GRASS, - EGG_GROUP_HUMAN_LIKE, - ABILITY_SAND_VEIL, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Snorunt - 50, 50, 50, 50, 50, 50, - TYPE_ICE, - TYPE_ICE, - 190, // catch rate - 74, // base exp. yield - 1, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FAIRY, - EGG_GROUP_MINERAL, - ABILITY_INNER_FOCUS, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Glalie - 80, 80, 80, 80, 80, 80, - TYPE_ICE, - TYPE_ICE, - 75, // catch rate - 187, // base exp. yield - 2, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NEVER_MELT_ICE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FAIRY, - EGG_GROUP_MINERAL, - ABILITY_INNER_FOCUS, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Lunatone - 70, 55, 65, 70, 95, 85, - TYPE_ROCK, - TYPE_PSYCHIC, - 45, // catch rate - 150, // base exp. yield - 0, 0, 0, 0, 2, 0, - ITEM_NONE, - ITEM_MOON_STONE, - 255, // gender - 25, // egg cycles - 70, // base friendship - GROWTH_FAST, - EGG_GROUP_MINERAL, - EGG_GROUP_MINERAL, - ABILITY_LEVITATE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Solrock - 70, 95, 85, 70, 55, 65, - TYPE_ROCK, - TYPE_PSYCHIC, - 45, // catch rate - 150, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_SUN_STONE, - 255, // gender - 25, // egg cycles - 70, // base friendship - GROWTH_FAST, - EGG_GROUP_MINERAL, - EGG_GROUP_MINERAL, - ABILITY_LEVITATE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Azurill - 50, 20, 40, 20, 20, 40, - TYPE_NORMAL, - TYPE_NORMAL, - 150, // catch rate - 33, // base exp. yield - 1, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 191, // gender - 10, // egg cycles - 70, // base friendship - GROWTH_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_THICK_FAT, - ABILITY_HUGE_POWER, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Spoink - 60, 25, 35, 60, 70, 80, - TYPE_PSYCHIC, - TYPE_PSYCHIC, - 255, // catch rate - 89, // base exp. yield - 0, 0, 0, 0, 0, 1, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_THICK_FAT, - ABILITY_OWN_TEMPO, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // Grumpig - 80, 45, 65, 80, 90, 110, - TYPE_PSYCHIC, - TYPE_PSYCHIC, - 60, // catch rate - 164, // base exp. yield - 0, 0, 0, 0, 0, 2, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_THICK_FAT, - ABILITY_OWN_TEMPO, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Plusle - 60, 50, 40, 95, 85, 75, - TYPE_ELECTRIC, - TYPE_ELECTRIC, - 200, // catch rate - 120, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FAIRY, - EGG_GROUP_FAIRY, - ABILITY_PLUS, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Minun - 60, 40, 50, 95, 75, 85, - TYPE_ELECTRIC, - TYPE_ELECTRIC, - 200, // catch rate - 120, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FAIRY, - EGG_GROUP_FAIRY, - ABILITY_MINUS, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Mawile - 50, 85, 85, 50, 55, 55, - TYPE_STEEL, - TYPE_STEEL, - 45, // catch rate - 98, // base exp. yield - 0, 1, 1, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_FAST, - EGG_GROUP_FIELD, - EGG_GROUP_FAIRY, - ABILITY_HYPER_CUTTER, - ABILITY_INTIMIDATE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // Meditite - 30, 40, 55, 60, 40, 55, - TYPE_FIGHTING, - TYPE_PSYCHIC, - 180, // catch rate - 91, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_HUMAN_LIKE, - EGG_GROUP_HUMAN_LIKE, - ABILITY_PURE_POWER, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Medicham - 60, 60, 75, 80, 60, 75, - TYPE_FIGHTING, - TYPE_PSYCHIC, - 90, // catch rate - 153, // base exp. yield - 0, 0, 0, 2, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_HUMAN_LIKE, - EGG_GROUP_HUMAN_LIKE, - ABILITY_PURE_POWER, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Swablu - 45, 40, 60, 50, 40, 75, - TYPE_NORMAL, - TYPE_FLYING, - 255, // catch rate - 74, // base exp. yield - 0, 0, 0, 0, 0, 1, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_ERRATIC, - EGG_GROUP_FLYING, - EGG_GROUP_DRAGON, - ABILITY_NATURAL_CURE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Altaria - 75, 70, 90, 80, 70, 105, - TYPE_DRAGON, - TYPE_FLYING, - 45, // catch rate - 188, // base exp. yield - 0, 0, 0, 0, 0, 2, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_ERRATIC, - EGG_GROUP_FLYING, - EGG_GROUP_DRAGON, - ABILITY_NATURAL_CURE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Wynaut - 95, 23, 48, 23, 23, 48, - TYPE_PSYCHIC, - TYPE_PSYCHIC, - 125, // catch rate - 44, // base exp. yield - 1, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_SHADOW_TAG, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Duskull - 20, 40, 90, 25, 30, 90, - TYPE_GHOST, - TYPE_GHOST, - 190, // catch rate - 97, // base exp. yield - 0, 0, 1, 0, 0, 1, - ITEM_NONE, - ITEM_SPELL_TAG, - 127, // gender - 25, // egg cycles - 35, // base friendship - GROWTH_FAST, - EGG_GROUP_AMORPHOUS, - EGG_GROUP_AMORPHOUS, - ABILITY_LEVITATE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // Dusclops - 40, 70, 130, 25, 60, 130, - TYPE_GHOST, - TYPE_GHOST, - 90, // catch rate - 179, // base exp. yield - 0, 0, 1, 0, 0, 2, - ITEM_NONE, - ITEM_SPELL_TAG, - 127, // gender - 25, // egg cycles - 35, // base friendship - GROWTH_FAST, - EGG_GROUP_AMORPHOUS, - EGG_GROUP_AMORPHOUS, - ABILITY_PRESSURE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // Roselia - 50, 60, 45, 65, 100, 80, - TYPE_GRASS, - TYPE_POISON, - 150, // catch rate - 152, // base exp. yield - 0, 0, 0, 0, 1, 0, - ITEM_NONE, - ITEM_POISON_BARB, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_FAIRY, - EGG_GROUP_GRASS, - ABILITY_NATURAL_CURE, - ABILITY_POISON_POINT, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN, TRUE - }, { // Slakoth - 60, 60, 60, 30, 35, 35, - TYPE_NORMAL, - TYPE_NORMAL, - 255, // catch rate - 83, // base exp. yield - 1, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_TRUANT, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Vigoroth - 80, 80, 80, 90, 55, 55, - TYPE_NORMAL, - TYPE_NORMAL, - 120, // catch rate - 126, // base exp. yield - 0, 0, 0, 2, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_VITAL_SPIRIT, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_WHITE - }, { // Slaking - 150, 160, 100, 100, 95, 65, - TYPE_NORMAL, - TYPE_NORMAL, - 45, // catch rate - 210, // base exp. yield - 3, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_TRUANT, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Gulpin - 70, 43, 53, 40, 43, 53, - TYPE_POISON, - TYPE_POISON, - 225, // catch rate - 75, // base exp. yield - 1, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_BIG_PEARL, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_FLUCTUATING, - EGG_GROUP_AMORPHOUS, - EGG_GROUP_AMORPHOUS, - ABILITY_LIQUID_OOZE, - ABILITY_STICKY_HOLD, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Swalot - 100, 73, 83, 55, 73, 83, - TYPE_POISON, - TYPE_POISON, - 75, // catch rate - 168, // base exp. yield - 2, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_BIG_PEARL, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_FLUCTUATING, - EGG_GROUP_AMORPHOUS, - EGG_GROUP_AMORPHOUS, - ABILITY_LIQUID_OOZE, - ABILITY_STICKY_HOLD, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Tropius - 99, 68, 83, 51, 72, 87, - TYPE_GRASS, - TYPE_FLYING, - 200, // catch rate - 169, // base exp. yield - 2, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 25, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_GRASS, - ABILITY_CHLOROPHYLL, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Whismur - 64, 51, 23, 28, 51, 23, - TYPE_NORMAL, - TYPE_NORMAL, - 190, // catch rate - 68, // base exp. yield - 1, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_CHESTO_BERRY, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_FIELD, - ABILITY_SOUNDPROOF, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PINK - }, { // Loudred - 84, 71, 43, 48, 71, 43, - TYPE_NORMAL, - TYPE_NORMAL, - 120, // catch rate - 126, // base exp. yield - 2, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_CHESTO_BERRY, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_FIELD, - ABILITY_SOUNDPROOF, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Exploud - 104, 91, 63, 68, 91, 63, - TYPE_NORMAL, - TYPE_NORMAL, - 45, // catch rate - 184, // base exp. yield - 3, 0, 0, 0, 0, 0, - ITEM_NONE, - ITEM_CHESTO_BERRY, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_FIELD, - ABILITY_SOUNDPROOF, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Clamperl - 35, 64, 85, 32, 74, 55, - TYPE_WATER, - TYPE_WATER, - 255, // catch rate - 142, // base exp. yield - 0, 0, 1, 0, 0, 0, - ITEM_NONE, - ITEM_BLUE_SHARD, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_ERRATIC, - EGG_GROUP_WATER_1, - EGG_GROUP_WATER_1, - ABILITY_SHELL_ARMOR, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Huntail - 55, 104, 105, 52, 94, 75, - TYPE_WATER, - TYPE_WATER, - 60, // catch rate - 178, // base exp. yield - 0, 1, 1, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_ERRATIC, - EGG_GROUP_WATER_1, - EGG_GROUP_WATER_1, - ABILITY_SWIFT_SWIM, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Gorebyss - 55, 84, 105, 52, 114, 75, - TYPE_WATER, - TYPE_WATER, - 60, // catch rate - 178, // base exp. yield - 0, 0, 0, 0, 2, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_ERRATIC, - EGG_GROUP_WATER_1, - EGG_GROUP_WATER_1, - ABILITY_SWIFT_SWIM, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PINK - }, { // Absol - 65, 130, 60, 75, 75, 60, - TYPE_DARK, - TYPE_DARK, - 30, // catch rate - 174, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 25, // egg cycles - 35, // base friendship - GROWTH_MEDIUM_SLOW, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_PRESSURE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_WHITE, TRUE - }, { // Shuppet - 44, 75, 35, 45, 63, 33, - TYPE_GHOST, - TYPE_GHOST, - 225, // catch rate - 97, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_SPELL_TAG, - 127, // gender - 25, // egg cycles - 35, // base friendship - GROWTH_FAST, - EGG_GROUP_AMORPHOUS, - EGG_GROUP_AMORPHOUS, - ABILITY_INSOMNIA, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // Banette - 64, 115, 65, 65, 83, 63, - TYPE_GHOST, - TYPE_GHOST, - 45, // catch rate - 179, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_SPELL_TAG, - 127, // gender - 25, // egg cycles - 35, // base friendship - GROWTH_FAST, - EGG_GROUP_AMORPHOUS, - EGG_GROUP_AMORPHOUS, - ABILITY_INSOMNIA, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK - }, { // Seviper - 73, 100, 60, 65, 100, 60, - TYPE_POISON, - TYPE_POISON, - 90, // catch rate - 165, // base exp. yield - 0, 1, 0, 0, 1, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_FLUCTUATING, - EGG_GROUP_FIELD, - EGG_GROUP_DRAGON, - ABILITY_SHED_SKIN, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLACK, TRUE - }, { // Zangoose - 73, 115, 60, 90, 60, 60, - TYPE_NORMAL, - TYPE_NORMAL, - 90, // catch rate - 165, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 70, // base friendship - GROWTH_ERRATIC, - EGG_GROUP_FIELD, - EGG_GROUP_FIELD, - ABILITY_IMMUNITY, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_WHITE, TRUE - }, { // Relicanth - 100, 90, 130, 55, 45, 65, - TYPE_WATER, - TYPE_ROCK, - 25, // catch rate - 198, // base exp. yield - 1, 0, 1, 0, 0, 0, - ITEM_NONE, - ITEM_GREEN_SHARD, - 31, // gender - 40, // egg cycles - 70, // base friendship - GROWTH_SLOW, - EGG_GROUP_WATER_1, - EGG_GROUP_WATER_2, - ABILITY_SWIFT_SWIM, - ABILITY_ROCK_HEAD, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Aron - 50, 70, 100, 30, 40, 40, - TYPE_STEEL, - TYPE_ROCK, - 180, // catch rate - 96, // base exp. yield - 0, 0, 1, 0, 0, 0, - ITEM_NONE, - ITEM_HARD_STONE, - 127, // gender - 35, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_MONSTER, - ABILITY_STURDY, - ABILITY_ROCK_HEAD, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Lairon - 60, 90, 140, 40, 50, 50, - TYPE_STEEL, - TYPE_ROCK, - 90, // catch rate - 152, // base exp. yield - 0, 0, 2, 0, 0, 0, - ITEM_NONE, - ITEM_HARD_STONE, - 127, // gender - 35, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_MONSTER, - ABILITY_STURDY, - ABILITY_ROCK_HEAD, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Aggron - 70, 110, 180, 50, 60, 60, - TYPE_STEEL, - TYPE_ROCK, - 45, // catch rate - 205, // base exp. yield - 0, 0, 3, 0, 0, 0, - ITEM_NONE, - ITEM_HARD_STONE, - 127, // gender - 35, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_MONSTER, - EGG_GROUP_MONSTER, - ABILITY_STURDY, - ABILITY_ROCK_HEAD, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Castform - 70, 70, 70, 70, 70, 70, - TYPE_NORMAL, - TYPE_NORMAL, - 45, // catch rate - 145, // base exp. yield - 1, 0, 0, 0, 0, 0, - ITEM_MYSTIC_WATER, - ITEM_MYSTIC_WATER, - 127, // gender - 25, // egg cycles - 70, // base friendship - GROWTH_MEDIUM_FAST, - EGG_GROUP_FAIRY, - EGG_GROUP_AMORPHOUS, - ABILITY_FORECAST, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_WHITE - }, { // Volbeat - 65, 73, 55, 85, 47, 75, - TYPE_BUG, - TYPE_BUG, - 150, // catch rate - 146, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 0, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_ERRATIC, - EGG_GROUP_BUG, - EGG_GROUP_HUMAN_LIKE, - ABILITY_ILLUMINATE, - ABILITY_SWARM, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Illumise - 65, 47, 55, 85, 73, 75, - TYPE_BUG, - TYPE_BUG, - 150, // catch rate - 146, // base exp. yield - 0, 0, 0, 1, 0, 0, - ITEM_NONE, - ITEM_NONE, - 254, // gender - 15, // egg cycles - 70, // base friendship - GROWTH_FLUCTUATING, - EGG_GROUP_BUG, - EGG_GROUP_HUMAN_LIKE, - ABILITY_OBLIVIOUS, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Lileep - 66, 41, 77, 23, 61, 87, - TYPE_ROCK, - TYPE_GRASS, - 45, // catch rate - 121, // base exp. yield - 0, 0, 0, 0, 0, 1, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 30, // egg cycles - 70, // base friendship - GROWTH_ERRATIC, - EGG_GROUP_WATER_3, - EGG_GROUP_WATER_3, - ABILITY_SUCTION_CUPS, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_PURPLE - }, { // Cradily - 86, 81, 97, 43, 81, 107, - TYPE_ROCK, - TYPE_GRASS, - 45, // catch rate - 201, // base exp. yield - 0, 0, 0, 0, 0, 2, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 30, // egg cycles - 70, // base friendship - GROWTH_ERRATIC, - EGG_GROUP_WATER_3, - EGG_GROUP_WATER_3, - ABILITY_SUCTION_CUPS, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Anorith - 45, 95, 50, 75, 40, 50, - TYPE_ROCK, - TYPE_BUG, - 45, // catch rate - 119, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 30, // egg cycles - 70, // base friendship - GROWTH_ERRATIC, - EGG_GROUP_WATER_3, - EGG_GROUP_WATER_3, - ABILITY_BATTLE_ARMOR, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Armaldo - 75, 125, 100, 45, 70, 80, - TYPE_ROCK, - TYPE_BUG, - 45, // catch rate - 200, // base exp. yield - 0, 2, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 31, // gender - 30, // egg cycles - 70, // base friendship - GROWTH_ERRATIC, - EGG_GROUP_WATER_3, - EGG_GROUP_WATER_3, - ABILITY_BATTLE_ARMOR, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Ralts - 28, 25, 25, 40, 45, 35, - TYPE_PSYCHIC, - TYPE_PSYCHIC, - 235, // catch rate - 70, // base exp. yield - 0, 0, 0, 0, 1, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_AMORPHOUS, - EGG_GROUP_AMORPHOUS, - ABILITY_SYNCHRONIZE, - ABILITY_TRACE, - 0, // Safari Zone flee rate - BODY_COLOR_WHITE - }, { // Kirlia - 38, 35, 35, 50, 65, 55, - TYPE_PSYCHIC, - TYPE_PSYCHIC, - 120, // catch rate - 140, // base exp. yield - 0, 0, 0, 0, 2, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_AMORPHOUS, - EGG_GROUP_AMORPHOUS, - ABILITY_SYNCHRONIZE, - ABILITY_TRACE, - 0, // Safari Zone flee rate - BODY_COLOR_WHITE - }, { // Gardevoir - 68, 65, 65, 80, 125, 115, - TYPE_PSYCHIC, - TYPE_PSYCHIC, - 45, // catch rate - 208, // base exp. yield - 0, 0, 0, 0, 3, 0, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 20, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_AMORPHOUS, - EGG_GROUP_AMORPHOUS, - ABILITY_SYNCHRONIZE, - ABILITY_TRACE, - 0, // Safari Zone flee rate - BODY_COLOR_WHITE - }, { // Bagon - 45, 75, 60, 50, 40, 30, - TYPE_DRAGON, - TYPE_DRAGON, - 45, // catch rate - 89, // base exp. yield - 0, 1, 0, 0, 0, 0, - ITEM_NONE, - ITEM_DRAGON_SCALE, - 127, // gender - 40, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_DRAGON, - EGG_GROUP_DRAGON, - ABILITY_ROCK_HEAD, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Shelgon - 65, 95, 100, 50, 60, 50, - TYPE_DRAGON, - TYPE_DRAGON, - 45, // catch rate - 144, // base exp. yield - 0, 0, 2, 0, 0, 0, - ITEM_NONE, - ITEM_DRAGON_SCALE, - 127, // gender - 40, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_DRAGON, - EGG_GROUP_DRAGON, - ABILITY_ROCK_HEAD, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_WHITE - }, { // Salamence - 95, 135, 80, 100, 110, 80, - TYPE_DRAGON, - TYPE_FLYING, - 45, // catch rate - 218, // base exp. yield - 0, 3, 0, 0, 0, 0, - ITEM_NONE, - ITEM_DRAGON_SCALE, - 127, // gender - 40, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_DRAGON, - EGG_GROUP_DRAGON, - ABILITY_INTIMIDATE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Beldum - 40, 55, 80, 30, 35, 60, - TYPE_STEEL, - TYPE_PSYCHIC, - 3, // catch rate - 103, // base exp. yield - 0, 0, 1, 0, 0, 0, - ITEM_NONE, - ITEM_METAL_COAT, - 255, // gender - 40, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_MINERAL, - EGG_GROUP_MINERAL, - ABILITY_CLEAR_BODY, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Metang - 60, 75, 100, 50, 55, 80, - TYPE_STEEL, - TYPE_PSYCHIC, - 3, // catch rate - 153, // base exp. yield - 0, 0, 2, 0, 0, 0, - ITEM_NONE, - ITEM_METAL_COAT, - 255, // gender - 40, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_MINERAL, - EGG_GROUP_MINERAL, - ABILITY_CLEAR_BODY, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Metagross - 80, 135, 130, 70, 95, 90, - TYPE_STEEL, - TYPE_PSYCHIC, - 3, // catch rate - 210, // base exp. yield - 0, 0, 3, 0, 0, 0, - ITEM_NONE, - ITEM_METAL_COAT, - 255, // gender - 40, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_MINERAL, - EGG_GROUP_MINERAL, - ABILITY_CLEAR_BODY, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Regirock - 80, 100, 200, 50, 50, 100, - TYPE_ROCK, - TYPE_ROCK, - 3, // catch rate - 217, // base exp. yield - 0, 0, 3, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 80, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_CLEAR_BODY, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BROWN - }, { // Regice - 80, 50, 100, 50, 100, 200, - TYPE_ICE, - TYPE_ICE, - 3, // catch rate - 216, // base exp. yield - 0, 0, 0, 0, 0, 3, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 80, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_CLEAR_BODY, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Registeel - 80, 75, 150, 50, 75, 150, - TYPE_STEEL, - TYPE_STEEL, - 3, // catch rate - 215, // base exp. yield - 0, 0, 2, 0, 0, 1, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 80, // egg cycles - 35, // base friendship - GROWTH_SLOW, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_CLEAR_BODY, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GRAY - }, { // Kyogre - 100, 100, 90, 90, 150, 140, - TYPE_WATER, - TYPE_WATER, - 5, // catch rate - 218, // base exp. yield - 0, 0, 0, 0, 3, 0, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_SLOW, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_DRIZZLE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Groudon - 100, 150, 140, 90, 100, 90, - TYPE_GROUND, - TYPE_GROUND, - 5, // catch rate - 218, // base exp. yield - 0, 3, 0, 0, 0, 0, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_SLOW, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_DROUGHT, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Rayquaza - 105, 150, 90, 95, 150, 90, - TYPE_DRAGON, - TYPE_FLYING, - 3, // catch rate - 220, // base exp. yield - 0, 2, 0, 0, 1, 0, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_SLOW, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_AIR_LOCK, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_GREEN - }, { // Latias - 80, 80, 90, 110, 110, 130, - TYPE_DRAGON, - TYPE_PSYCHIC, - 3, // catch rate - 211, // base exp. yield - 0, 0, 0, 0, 0, 3, - ITEM_NONE, - ITEM_NONE, - 254, // gender - 120, // egg cycles - 90, // base friendship - GROWTH_SLOW, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_LEVITATE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_RED - }, { // Latios - 80, 90, 80, 110, 130, 110, - TYPE_DRAGON, - TYPE_PSYCHIC, - 3, // catch rate - 211, // base exp. yield - 0, 0, 0, 0, 3, 0, - ITEM_NONE, - ITEM_NONE, - 0, // gender - 120, // egg cycles - 90, // base friendship - GROWTH_SLOW, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_LEVITATE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - }, { // Jirachi - 100, 100, 100, 100, 100, 100, - TYPE_STEEL, - TYPE_PSYCHIC, - 3, // catch rate - 215, // base exp. yield - 3, 0, 0, 0, 0, 0, - ITEM_STAR_PIECE, - ITEM_STAR_PIECE, - 255, // gender - 120, // egg cycles - 100, // base friendship - GROWTH_SLOW, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_SERENE_GRACE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_YELLOW - }, { // Deoxys - 50, 150, 50, 150, 150, 50, - TYPE_PSYCHIC, - TYPE_PSYCHIC, - 3, // catch rate - 215, // base exp. yield - 0, 1, 0, 1, 1, 0, - ITEM_NONE, - ITEM_NONE, - 255, // gender - 120, // egg cycles - 0, // base friendship - GROWTH_SLOW, - EGG_GROUP_UNDISCOVERED, - EGG_GROUP_UNDISCOVERED, - ABILITY_PRESSURE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_RED, TRUE - }, { // Chimecho - 65, 50, 70, 65, 95, 80, - TYPE_PSYCHIC, - TYPE_PSYCHIC, - 45, // catch rate - 147, // base exp. yield - 0, 0, 0, 0, 1, 1, - ITEM_NONE, - ITEM_NONE, - 127, // gender - 25, // egg cycles - 70, // base friendship - GROWTH_FAST, - EGG_GROUP_AMORPHOUS, - EGG_GROUP_AMORPHOUS, - ABILITY_LEVITATE, - ABILITY_NONE, - 0, // Safari Zone flee rate - BODY_COLOR_BLUE - } -}; - -#endif //POKERUBY_BASE_STATS_H diff --git a/include/data/pokemon/cry_ids.h b/include/data/pokemon/cry_ids.h deleted file mode 100644 index d965a41cf..000000000 --- a/include/data/pokemon/cry_ids.h +++ /dev/null @@ -1,146 +0,0 @@ -// -// Created by Scott Norton on 6/27/17. -// - -#ifndef POKERUBY_CRY_IDS_H -#define POKERUBY_CRY_IDS_H - -const u16 gSpeciesIdToCryId[] = { - 273, // TREECKO - 274, // GROVYLE - 275, // SCEPTILE - 270, // TORCHIC - 271, // COMBUSKEN - 272, // BLAZIKEN - 276, // MUDKIP - 277, // MARSHTOMP - 278, // SWAMPERT - 359, // POOCHYENA - 360, // MIGHTYENA - 378, // ZIGZAGOON - 375, // LINOONE - 290, // WURMPLE - 291, // SILCOON - 292, // BEAUTIFLY - 293, // CASCOON - 294, // DUSTOX - 283, // LOTAD - 284, // LOMBRE - 285, // LUDICOLO - 286, // SEEDOT - 287, // NUZLEAF - 288, // SHIFTRY - 301, // NINCADA - 302, // NINJASK - 303, // SHEDINJA - 266, // TAILLOW - 267, // SWELLOW - 374, // SHROOMISH - 373, // BRELOOM - 269, // SPINDA - 280, // WINGULL - 279, // PELIPPER - 310, // SURSKIT - 311, // MASQUERAIN - 377, // WAILMER - 381, // WAILORD - 312, // SKITTY - 313, // DELCATTY - 251, // KECLEON - 329, // BALTOY - 330, // CLAYDOL - 306, // NOSEPASS - 253, // TORKOAL - 362, // SABLEYE - 318, // BARBOACH - 319, // WHISCASH - 368, // LUVDISC - 320, // CORPHISH - 321, // CRAWDAUNT - 333, // FEEBAS - 334, // MILOTIC - 289, // CARVANHA - 260, // SHARPEDO - 324, // TRAPINCH - 325, // VIBRAVA - 326, // FLYGON - 304, // MAKUHITA - 305, // HARIYAMA - 254, // ELECTRIKE - 255, // MANECTRIC - 316, // NUMEL - 317, // CAMERUPT - 338, // SPHEAL - 339, // SEALEO - 340, // WALREIN - 327, // CACNEA - 328, // CACTURNE - 383, // SNORUNT - 307, // GLALIE - 331, // LUNATONE - 332, // SOLROCK - 262, // AZURILL - 322, // SPOINK - 323, // GRUMPIG - 308, // PLUSLE - 309, // MINUN - 363, // MAWILE - 336, // MEDITITE - 337, // MEDICHAM - 263, // SWABLU - 264, // ALTARIA - 258, // WYNAUT - 256, // DUSKULL - 361, // DUSCLOPS - 252, // ROSELIA - 298, // SLAKOTH - 299, // VIGOROTH - 300, // SLAKING - 314, // GULPIN - 315, // SWALOT - 376, // TROPIUS - 382, // WHISMUR - 380, // LOUDRED - 379, // EXPLOUD - 341, // CLAMPERL - 342, // HUNTAIL - 343, // GOREBYSS - 335, // ABSOL - 282, // SHUPPET - 281, // BANETTE - 259, // SEVIPER - 261, // ZANGOOSE - 367, // RELICANTH - 364, // ARON - 365, // LAIRON - 366, // AGGRON - 356, // CASTFORM - 357, // VOLBEAT - 358, // ILLUMISE - 344, // LILEEP - 345, // CRADILY - 346, // ANORITH - 347, // ARMALDO - 295, // RALTS - 296, // KIRLIA - 297, // GARDEVOIR - 351, // BAGON - 352, // SHELGON - 372, // SALAMENCE - 348, // BELDUM - 349, // METANG - 350, // METAGROSS - 353, // REGIROCK - 354, // REGICE - 355, // REGISTEEL - 370, // KYOGRE - 369, // GROUDON - 371, // RAYQUAZA - 257, // LATIAS - 384, // LATIOS - 385, // JIRACHI - 386, // DEOXYS - 387 // CHIMECHO -}; - -#endif //POKERUBY_CRY_IDS_H diff --git a/include/data/pokemon/dex_order.h b/include/data/pokemon/dex_order.h deleted file mode 100644 index 6f8582533..000000000 --- a/include/data/pokemon/dex_order.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// Created by Scott Norton on 6/27/17. -// - -#ifndef POKERUBY_DEX_ORDER_H -#define POKERUBY_DEX_ORDER_H - -const u16 gSpeciesToHoennPokedexNum[] = {203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 156, 157, 112, 113, 227, 228, 229, 230, 231, 232, 233, 234, 153, 154, 138, 139, 63, 64, 88, 89, 90, 235, 236, 237, 238, 239, 240, 241, 242, 158, 159, 243, 244, 245, 246, 247, 248, 249, 39, 40, 41, 73, 74, 75, 250, 251, 252, 66, 67, 57, 58, 59, 253, 254, 255, 256, 82, 83, 257, 92, 93, 258, 259, 106, 107, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 84, 85, 270, 271, 272, 273, 274, 275, 276, 108, 109, 169, 170, 277, 278, 279, 184, 185, 50, 51, 143, 144, 280, 281, 282, 283, 284, 167, 285, 52, 53, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 65, 181, 182, 155, 324, 137, 325, 326, 162, 163, 327, 328, 329, 91, 55, 56, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 161, 164, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 168, 357, 358, 359, 103, 104, 360, 361, 180, 362, 363, 364, 365, 115, 366, 367, 186, 165, 166, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 42, 43, 44, 25, 26, 34, 35, 114, 27, 28, 32, 33, 99, 100, 61, 62, 145, 131, 132, 60, 105, 68, 127, 128, 183, 129, 130, 140, 141, 97, 98, 116, 117, 118, 48, 49, 78, 79, 101, 102, 173, 174, 175, 119, 120, 171, 172, 125, 126, 54, 110, 111, 80, 81, 69, 76, 77, 121, 122, 160, 148, 149, 94, 36, 37, 38, 95, 96, 150, 45, 46, 47, 176, 177, 178, 152, 146, 147, 124, 123, 179, 70, 71, 72, 142, 86, 87, 133, 134, 135, 136, 29, 30, 31, 187, 188, 189, 190, 191, 192, 193, 194, 195, 198, 199, 200, 196, 197, 201, 202, 151 -}; - -const u16 gSpeciesToNationalPokedexNum[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 290, 291, 292, 276, 277, 285, 286, 327, 278, 279, 283, 284, 320, 321, 300, 301, 352, 343, 344, 299, 324, 302, 339, 340, 370, 341, 342, 349, 350, 318, 319, 328, 329, 330, 296, 297, 309, 310, 322, 323, 363, 364, 365, 331, 332, 361, 362, 337, 338, 298, 325, 326, 311, 312, 303, 307, 308, 333, 334, 360, 355, 356, 315, 287, 288, 289, 316, 317, 357, 293, 294, 295, 366, 367, 368, 359, 353, 354, 336, 335, 369, 304, 305, 306, 351, 313, 314, 345, 346, 347, 348, 280, 281, 282, 371, 372, 373, 374, 375, 376, 377, 378, 379, 382, 383, 384, 380, 381, 385, 386, 358}; - -const u16 gHoennToNationalOrder[] = {252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 63, 64, 65, 290, 291, 292, 293, 294, 295, 296, 297, 118, 119, 129, 130, 298, 183, 184, 74, 75, 76, 299, 300, 301, 41, 42, 169, 72, 73, 302, 303, 304, 305, 306, 66, 67, 68, 307, 308, 309, 310, 311, 312, 81, 82, 100, 101, 313, 314, 43, 44, 45, 182, 84, 85, 315, 316, 317, 318, 319, 320, 321, 322, 323, 218, 219, 324, 88, 89, 109, 110, 325, 326, 27, 28, 327, 227, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 174, 39, 40, 349, 350, 351, 120, 121, 352, 353, 354, 355, 356, 357, 358, 359, 37, 38, 172, 25, 26, 54, 55, 360, 202, 177, 178, 203, 231, 232, 127, 214, 111, 112, 361, 362, 363, 364, 365, 366, 367, 368, 369, 222, 170, 171, 370, 116, 117, 230, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 29, 30, 31, 32, 33, 34, 35, 36, 46, 47, 48, 49, 50, 51, 52, 53, 56, 57, 58, 59, 60, 61, 62, 69, 70, 71, 77, 78, 79, 80, 83, 86, 87, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 102, 103, 104, 105, 106, 107, 108, 113, 114, 115, 122, 123, 124, 125, 126, 128, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 173, 175, 176, 179, 180, 181, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 215, 216, 217, 220, 221, 223, 224, 225, 226, 228, 229, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411}; - -#endif //POKERUBY_DEX_ORDER_H diff --git a/include/data/pokemon/evolution.h b/include/data/pokemon/evolution.h deleted file mode 100644 index 51e993347..000000000 --- a/include/data/pokemon/evolution.h +++ /dev/null @@ -1,608 +0,0 @@ -// -// Created by Scott Norton on 6/27/17. -// - -#ifndef POKERUBY_EVOLUTION_H -#define POKERUBY_EVOLUTION_H - -const struct EvolutionData gEvolutionTable[] = { - {{ // ?????????? - }}, {{ // Bulbasaur - {EVO_LEVEL, 16, SPECIES_IVYSAUR}, - }}, {{ // Ivysaur - {EVO_LEVEL, 32, SPECIES_VENUSAUR}, - }}, {{ // Venusaur - }}, {{ // Charmander - {EVO_LEVEL, 16, SPECIES_CHARMELEON}, - }}, {{ // Charmeleon - {EVO_LEVEL, 36, SPECIES_CHARIZARD}, - }}, {{ // Charizard - }}, {{ // Squirtle - {EVO_LEVEL, 16, SPECIES_WARTORTLE}, - }}, {{ // Wartortle - {EVO_LEVEL, 36, SPECIES_BLASTOISE}, - }}, {{ // Blastoise - }}, {{ // Caterpie - {EVO_LEVEL, 7, SPECIES_METAPOD}, - }}, {{ // Metapod - {EVO_LEVEL, 10, SPECIES_BUTTERFREE}, - }}, {{ // Butterfree - }}, {{ // Weedle - {EVO_LEVEL, 7, SPECIES_KAKUNA}, - }}, {{ // Kakuna - {EVO_LEVEL, 10, SPECIES_BEEDRILL}, - }}, {{ // Beedrill - }}, {{ // Pidgey - {EVO_LEVEL, 18, SPECIES_PIDGEOTTO}, - }}, {{ // Pidgeotto - {EVO_LEVEL, 36, SPECIES_PIDGEOT}, - }}, {{ // Pidgeot - }}, {{ // Rattata - {EVO_LEVEL, 20, SPECIES_RATICATE}, - }}, {{ // Raticate - }}, {{ // Spearow - {EVO_LEVEL, 20, SPECIES_FEAROW}, - }}, {{ // Fearow - }}, {{ // Ekans - {EVO_LEVEL, 22, SPECIES_ARBOK}, - }}, {{ // Arbok - }}, {{ // Pikachu - {EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_RAICHU}, - }}, {{ // Raichu - }}, {{ // Sandshrew - {EVO_LEVEL, 22, SPECIES_SANDSLASH}, - }}, {{ // Sandslash - }}, {{ // Nidoran♀ - {EVO_LEVEL, 16, SPECIES_NIDORINA}, - }}, {{ // Nidorina - {EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOQUEEN}, - }}, {{ // Nidoqueen - }}, {{ // Nidoran♂ - {EVO_LEVEL, 16, SPECIES_NIDORINO}, - }}, {{ // Nidorino - {EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOKING}, - }}, {{ // Nidoking - }}, {{ // Clefairy - {EVO_ITEM, ITEM_MOON_STONE, SPECIES_CLEFABLE}, - }}, {{ // Clefable - }}, {{ // Vulpix - {EVO_ITEM, ITEM_FIRE_STONE, SPECIES_NINETALES}, - }}, {{ // Ninetales - }}, {{ // Jigglypuff - {EVO_ITEM, ITEM_MOON_STONE, SPECIES_WIGGLYTUFF}, - }}, {{ // Wigglytuff - }}, {{ // Zubat - {EVO_LEVEL, 22, SPECIES_GOLBAT}, - }}, {{ // Golbat - {EVO_FRIENDSHIP, 0, SPECIES_CROBAT}, - }}, {{ // Oddish - {EVO_LEVEL, 21, SPECIES_GLOOM}, - }}, {{ // Gloom - {EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VILEPLUME}, - {EVO_ITEM, ITEM_SUN_STONE, SPECIES_BELLOSSOM}, - }}, {{ // Vileplume - }}, {{ // Paras - {EVO_LEVEL, 24, SPECIES_PARASECT}, - }}, {{ // Parasect - }}, {{ // Venonat - {EVO_LEVEL, 31, SPECIES_VENOMOTH}, - }}, {{ // Venomoth - }}, {{ // Diglett - {EVO_LEVEL, 26, SPECIES_DUGTRIO}, - }}, {{ // Dugtrio - }}, {{ // Meowth - {EVO_LEVEL, 28, SPECIES_PERSIAN}, - }}, {{ // Persian - }}, {{ // Psyduck - {EVO_LEVEL, 33, SPECIES_GOLDUCK}, - }}, {{ // Golduck - }}, {{ // Mankey - {EVO_LEVEL, 28, SPECIES_PRIMEAPE}, - }}, {{ // Primeape - }}, {{ // Growlithe - {EVO_ITEM, ITEM_FIRE_STONE, SPECIES_ARCANINE}, - }}, {{ // Arcanine - }}, {{ // Poliwag - {EVO_LEVEL, 25, SPECIES_POLIWHIRL}, - }}, {{ // Poliwhirl - {EVO_ITEM, ITEM_WATER_STONE, SPECIES_POLIWRATH}, - {EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_POLITOED}, - }}, {{ // Poliwrath - }}, {{ // Abra - {EVO_LEVEL, 16, SPECIES_KADABRA}, - }}, {{ // Kadabra - {EVO_TRADE, 0, SPECIES_ALAKAZAM}, - }}, {{ // Alakazam - }}, {{ // Machop - {EVO_LEVEL, 28, SPECIES_MACHOKE}, - }}, {{ // Machoke - {EVO_TRADE, 0, SPECIES_MACHAMP}, - }}, {{ // Machamp - }}, {{ // Bellsprout - {EVO_LEVEL, 21, SPECIES_WEEPINBELL}, - }}, {{ // Weepinbell - {EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VICTREEBEL}, - }}, {{ // Victreebel - }}, {{ // Tentacool - {EVO_LEVEL, 30, SPECIES_TENTACRUEL}, - }}, {{ // Tentacruel - }}, {{ // Geodude - {EVO_LEVEL, 25, SPECIES_GRAVELER}, - }}, {{ // Graveler - {EVO_TRADE, 0, SPECIES_GOLEM}, - }}, {{ // Golem - }}, {{ // Ponyta - {EVO_LEVEL, 40, SPECIES_RAPIDASH}, - }}, {{ // Rapidash - }}, {{ // Slowpoke - {EVO_LEVEL, 37, SPECIES_SLOWBRO}, - {EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_SLOWKING}, - }}, {{ // Slowbro - }}, {{ // Magnemite - {EVO_LEVEL, 30, SPECIES_MAGNETON}, - }}, {{ // Magneton - }}, {{ // Farfetch'd - }}, {{ // Doduo - {EVO_LEVEL, 31, SPECIES_DODRIO}, - }}, {{ // Dodrio - }}, {{ // Seel - {EVO_LEVEL, 34, SPECIES_DEWGONG}, - }}, {{ // Dewgong - }}, {{ // Grimer - {EVO_LEVEL, 38, SPECIES_MUK}, - }}, {{ // Muk - }}, {{ // Shellder - {EVO_ITEM, ITEM_WATER_STONE, SPECIES_CLOYSTER}, - }}, {{ // Cloyster - }}, {{ // Gastly - {EVO_LEVEL, 25, SPECIES_HAUNTER}, - }}, {{ // Haunter - {EVO_TRADE, 0, SPECIES_GENGAR}, - }}, {{ // Gengar - }}, {{ // Onix - {EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_STEELIX}, - }}, {{ // Drowzee - {EVO_LEVEL, 26, SPECIES_HYPNO}, - }}, {{ // Hypno - }}, {{ // Krabby - {EVO_LEVEL, 28, SPECIES_KINGLER}, - }}, {{ // Kingler - }}, {{ // Voltorb - {EVO_LEVEL, 30, SPECIES_ELECTRODE}, - }}, {{ // Electrode - }}, {{ // Exeggcute - {EVO_ITEM, ITEM_LEAF_STONE, SPECIES_EXEGGUTOR}, - }}, {{ // Exeggutor - }}, {{ // Cubone - {EVO_LEVEL, 28, SPECIES_MAROWAK}, - }}, {{ // Marowak - }}, {{ // Hitmonlee - }}, {{ // Hitmonchan - }}, {{ // Lickitung - }}, {{ // Koffing - {EVO_LEVEL, 35, SPECIES_WEEZING}, - }}, {{ // Weezing - }}, {{ // Rhyhorn - {EVO_LEVEL, 42, SPECIES_RHYDON}, - }}, {{ // Rhydon - }}, {{ // Chansey - {EVO_FRIENDSHIP, 0, SPECIES_BLISSEY}, - }}, {{ // Tangela - }}, {{ // Kangaskhan - }}, {{ // Horsea - {EVO_LEVEL, 32, SPECIES_SEADRA}, - }}, {{ // Seadra - {EVO_TRADE_ITEM, ITEM_DRAGON_SCALE, SPECIES_KINGDRA}, - }}, {{ // Goldeen - {EVO_LEVEL, 33, SPECIES_SEAKING}, - }}, {{ // Seaking - }}, {{ // Staryu - {EVO_ITEM, ITEM_WATER_STONE, SPECIES_STARMIE}, - }}, {{ // Starmie - }}, {{ // Mr. mime - }}, {{ // Scyther - {EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_SCIZOR}, - }}, {{ // Jynx - }}, {{ // Electabuzz - }}, {{ // Magmar - }}, {{ // Pinsir - }}, {{ // Tauros - }}, {{ // Magikarp - {EVO_LEVEL, 20, SPECIES_GYARADOS}, - }}, {{ // Gyarados - }}, {{ // Lapras - }}, {{ // Ditto - }}, {{ // Eevee - {EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_JOLTEON}, - {EVO_ITEM, ITEM_WATER_STONE, SPECIES_VAPOREON}, - {EVO_ITEM, ITEM_FIRE_STONE, SPECIES_FLAREON}, - {EVO_FRIENDSHIP_DAY, 0, SPECIES_ESPEON}, - {EVO_FRIENDSHIP_NIGHT, 0, SPECIES_UMBREON}, - }}, {{ // Vaporeon - }}, {{ // Jolteon - }}, {{ // Flareon - }}, {{ // Porygon - {EVO_TRADE_ITEM, ITEM_UP_GRADE, SPECIES_PORYGON2}, - }}, {{ // Omanyte - {EVO_LEVEL, 40, SPECIES_OMASTAR}, - }}, {{ // Omastar - }}, {{ // Kabuto - {EVO_LEVEL, 40, SPECIES_KABUTOPS}, - }}, {{ // Kabutops - }}, {{ // Aerodactyl - }}, {{ // Snorlax - }}, {{ // Articuno - }}, {{ // Zapdos - }}, {{ // Moltres - }}, {{ // Dratini - {EVO_LEVEL, 30, SPECIES_DRAGONAIR}, - }}, {{ // Dragonair - {EVO_LEVEL, 55, SPECIES_DRAGONITE}, - }}, {{ // Dragonite - }}, {{ // Mewtwo - }}, {{ // Mew - }}, {{ // Chikorita - {EVO_LEVEL, 16, SPECIES_BAYLEEF}, - }}, {{ // Bayleef - {EVO_LEVEL, 32, SPECIES_MEGANIUM}, - }}, {{ // Meganium - }}, {{ // Cyndaquil - {EVO_LEVEL, 14, SPECIES_QUILAVA}, - }}, {{ // Quilava - {EVO_LEVEL, 36, SPECIES_TYPHLOSION}, - }}, {{ // Typhlosion - }}, {{ // Totodile - {EVO_LEVEL, 18, SPECIES_CROCONAW}, - }}, {{ // Croconaw - {EVO_LEVEL, 30, SPECIES_FERALIGATR}, - }}, {{ // Feraligatr - }}, {{ // Sentret - {EVO_LEVEL, 15, SPECIES_FURRET}, - }}, {{ // Furret - }}, {{ // Hoothoot - {EVO_LEVEL, 20, SPECIES_NOCTOWL}, - }}, {{ // Noctowl - }}, {{ // Ledyba - {EVO_LEVEL, 18, SPECIES_LEDIAN}, - }}, {{ // Ledian - }}, {{ // Spinarak - {EVO_LEVEL, 22, SPECIES_ARIADOS}, - }}, {{ // Ariados - }}, {{ // Crobat - }}, {{ // Chinchou - {EVO_LEVEL, 27, SPECIES_LANTURN}, - }}, {{ // Lanturn - }}, {{ // Pichu - {EVO_FRIENDSHIP, 0, SPECIES_PIKACHU}, - }}, {{ // Cleffa - {EVO_FRIENDSHIP, 0, SPECIES_CLEFAIRY}, - }}, {{ // Igglybuff - {EVO_FRIENDSHIP, 0, SPECIES_JIGGLYPUFF}, - }}, {{ // Togepi - {EVO_FRIENDSHIP, 0, SPECIES_TOGETIC}, - }}, {{ // Togetic - }}, {{ // Natu - {EVO_LEVEL, 25, SPECIES_XATU}, - }}, {{ // Xatu - }}, {{ // Mareep - {EVO_LEVEL, 15, SPECIES_FLAAFFY}, - }}, {{ // Flaaffy - {EVO_LEVEL, 30, SPECIES_AMPHAROS}, - }}, {{ // Ampharos - }}, {{ // Bellossom - }}, {{ // Marill - {EVO_LEVEL, 18, SPECIES_AZUMARILL}, - }}, {{ // Azumarill - }}, {{ // Sudowoodo - }}, {{ // Politoed - }}, {{ // Hoppip - {EVO_LEVEL, 18, SPECIES_SKIPLOOM}, - }}, {{ // Skiploom - {EVO_LEVEL, 27, SPECIES_JUMPLUFF}, - }}, {{ // Jumpluff - }}, {{ // Aipom - }}, {{ // Sunkern - {EVO_ITEM, ITEM_SUN_STONE, SPECIES_SUNFLORA}, - }}, {{ // Sunflora - }}, {{ // Yanma - }}, {{ // Wooper - {EVO_LEVEL, 20, SPECIES_QUAGSIRE}, - }}, {{ // Quagsire - }}, {{ // Espeon - }}, {{ // Umbreon - }}, {{ // Murkrow - }}, {{ // Slowking - }}, {{ // Misdreavus - }}, {{ // Unown - }}, {{ // Wobbuffet - }}, {{ // Girafarig - }}, {{ // Pineco - {EVO_LEVEL, 31, SPECIES_FORRETRESS}, - }}, {{ // Forretress - }}, {{ // Dunsparce - }}, {{ // Gligar - }}, {{ // Steelix - }}, {{ // Snubbull - {EVO_LEVEL, 23, SPECIES_GRANBULL}, - }}, {{ // Granbull - }}, {{ // Qwilfish - }}, {{ // Scizor - }}, {{ // Shuckle - }}, {{ // Heracross - }}, {{ // Sneasel - }}, {{ // Teddiursa - {EVO_LEVEL, 30, SPECIES_URSARING}, - }}, {{ // Ursaring - }}, {{ // Slugma - {EVO_LEVEL, 38, SPECIES_MAGCARGO}, - }}, {{ // Magcargo - }}, {{ // Swinub - {EVO_LEVEL, 33, SPECIES_PILOSWINE}, - }}, {{ // Piloswine - }}, {{ // Corsola - }}, {{ // Remoraid - {EVO_LEVEL, 25, SPECIES_OCTILLERY}, - }}, {{ // Octillery - }}, {{ // Delibird - }}, {{ // Mantine - }}, {{ // Skarmory - }}, {{ // Houndour - {EVO_LEVEL, 24, SPECIES_HOUNDOOM}, - }}, {{ // Houndoom - }}, {{ // Kingdra - }}, {{ // Phanpy - {EVO_LEVEL, 25, SPECIES_DONPHAN}, - }}, {{ // Donphan - }}, {{ // Porygon2 - }}, {{ // Stantler - }}, {{ // Smeargle - }}, {{ // Tyrogue - {EVO_LEVEL_ATK_LT_DEF, 20, SPECIES_HITMONCHAN}, - {EVO_LEVEL_ATK_GT_DEF, 20, SPECIES_HITMONLEE}, - {EVO_LEVEL_ATK_EQ_DEF, 20, SPECIES_HITMONTOP}, - }}, {{ // Hitmontop - }}, {{ // Smoochum - {EVO_LEVEL, 30, SPECIES_JYNX}, - }}, {{ // Elekid - {EVO_LEVEL, 30, SPECIES_ELECTABUZZ}, - }}, {{ // Magby - {EVO_LEVEL, 30, SPECIES_MAGMAR}, - }}, {{ // Miltank - }}, {{ // Blissey - }}, {{ // Raikou - }}, {{ // Entei - }}, {{ // Suicune - }}, {{ // Larvitar - {EVO_LEVEL, 30, SPECIES_PUPITAR}, - }}, {{ // Pupitar - {EVO_LEVEL, 55, SPECIES_TYRANITAR}, - }}, {{ // Tyranitar - }}, {{ // Lugia - }}, {{ // Ho-Oh - }}, {{ // Celebi - }}, {{ // ? - }}, {{ // ? - }}, {{ // ? - }}, {{ // ? - }}, {{ // ? - }}, {{ // ? - }}, {{ // ? - }}, {{ // ? - }}, {{ // ? - }}, {{ // ? - }}, {{ // ? - }}, {{ // ? - }}, {{ // ? - }}, {{ // ? - }}, {{ // ? - }}, {{ // ? - }}, {{ // ? - }}, {{ // ? - }}, {{ // ? - }}, {{ // ? - }}, {{ // ? - }}, {{ // ? - }}, {{ // ? - }}, {{ // ? - }}, {{ // ? - }}, {{ // Treecko - {EVO_LEVEL, 16, SPECIES_GROVYLE}, - }}, {{ // Grovyle - {EVO_LEVEL, 36, SPECIES_SCEPTILE}, - }}, {{ // Sceptile - }}, {{ // Torchic - {EVO_LEVEL, 16, SPECIES_COMBUSKEN}, - }}, {{ // Combusken - {EVO_LEVEL, 36, SPECIES_BLAZIKEN}, - }}, {{ // Blaziken - }}, {{ // Mudkip - {EVO_LEVEL, 16, SPECIES_MARSHTOMP}, - }}, {{ // Marshtomp - {EVO_LEVEL, 36, SPECIES_SWAMPERT}, - }}, {{ // Swampert - }}, {{ // Poochyena - {EVO_LEVEL, 18, SPECIES_MIGHTYENA}, - }}, {{ // Mightyena - }}, {{ // Zigzagoon - {EVO_LEVEL, 20, SPECIES_LINOONE}, - }}, {{ // Linoone - }}, {{ // Wurmple - {EVO_LEVEL_SILCOON, 7, SPECIES_SILCOON}, - {EVO_LEVEL_CASCOON, 7, SPECIES_CASCOON}, - }}, {{ // Silcoon - {EVO_LEVEL, 10, SPECIES_BEAUTIFLY}, - }}, {{ // Beautifly - }}, {{ // Cascoon - {EVO_LEVEL, 10, SPECIES_DUSTOX}, - }}, {{ // Dustox - }}, {{ // Lotad - {EVO_LEVEL, 14, SPECIES_LOMBRE}, - }}, {{ // Lombre - {EVO_ITEM, ITEM_WATER_STONE, SPECIES_LUDICOLO}, - }}, {{ // Ludicolo - }}, {{ // Seedot - {EVO_LEVEL, 14, SPECIES_NUZLEAF}, - }}, {{ // Nuzleaf - {EVO_ITEM, ITEM_LEAF_STONE, SPECIES_SHIFTRY}, - }}, {{ // Shiftry - }}, {{ // Nincada - {EVO_LEVEL_NINJASK, 20, SPECIES_NINJASK}, - {EVO_LEVEL_SHEDINJA, 20, SPECIES_SHEDINJA}, - }}, {{ // Ninjask - }}, {{ // Shedinja - }}, {{ // Taillow - {EVO_LEVEL, 22, SPECIES_SWELLOW}, - }}, {{ // Swellow - }}, {{ // Shroomish - {EVO_LEVEL, 23, SPECIES_BRELOOM}, - }}, {{ // Breloom - }}, {{ // Spinda - }}, {{ // Wingull - {EVO_LEVEL, 25, SPECIES_PELIPPER}, - }}, {{ // Pelipper - }}, {{ // Surskit - {EVO_LEVEL, 22, SPECIES_MASQUERAIN}, - }}, {{ // Masquerain - }}, {{ // Wailmer - {EVO_LEVEL, 40, SPECIES_WAILORD}, - }}, {{ // Wailord - }}, {{ // Skitty - {EVO_ITEM, ITEM_MOON_STONE, SPECIES_DELCATTY}, - }}, {{ // Delcatty - }}, {{ // Kecleon - }}, {{ // Baltoy - {EVO_LEVEL, 36, SPECIES_CLAYDOL}, - }}, {{ // Claydol - }}, {{ // Nosepass - }}, {{ // Torkoal - }}, {{ // Sableye - }}, {{ // Barboach - {EVO_LEVEL, 30, SPECIES_WHISCASH}, - }}, {{ // Whiscash - }}, {{ // Luvdisc - }}, {{ // Corphish - {EVO_LEVEL, 30, SPECIES_CRAWDAUNT}, - }}, {{ // Crawdaunt - }}, {{ // Feebas - {EVO_BEAUTY, 170, SPECIES_MILOTIC}, - }}, {{ // Milotic - }}, {{ // Carvanha - {EVO_LEVEL, 30, SPECIES_SHARPEDO}, - }}, {{ // Sharpedo - }}, {{ // Trapinch - {EVO_LEVEL, 35, SPECIES_VIBRAVA}, - }}, {{ // Vibrava - {EVO_LEVEL, 45, SPECIES_FLYGON}, - }}, {{ // Flygon - }}, {{ // Makuhita - {EVO_LEVEL, 24, SPECIES_HARIYAMA}, - }}, {{ // Hariyama - }}, {{ // Electrike - {EVO_LEVEL, 26, SPECIES_MANECTRIC}, - }}, {{ // Manectric - }}, {{ // Numel - {EVO_LEVEL, 33, SPECIES_CAMERUPT}, - }}, {{ // Camerupt - }}, {{ // Spheal - {EVO_LEVEL, 32, SPECIES_SEALEO}, - }}, {{ // Sealeo - {EVO_LEVEL, 44, SPECIES_WALREIN}, - }}, {{ // Walrein - }}, {{ // Cacnea - {EVO_LEVEL, 32, SPECIES_CACTURNE}, - }}, {{ // Cacturne - }}, {{ // Snorunt - {EVO_LEVEL, 42, SPECIES_GLALIE}, - }}, {{ // Glalie - }}, {{ // Lunatone - }}, {{ // Solrock - }}, {{ // Azurill - {EVO_FRIENDSHIP, 0, SPECIES_MARILL}, - }}, {{ // Spoink - {EVO_LEVEL, 32, SPECIES_GRUMPIG}, - }}, {{ // Grumpig - }}, {{ // Plusle - }}, {{ // Minun - }}, {{ // Mawile - }}, {{ // Meditite - {EVO_LEVEL, 37, SPECIES_MEDICHAM}, - }}, {{ // Medicham - }}, {{ // Swablu - {EVO_LEVEL, 35, SPECIES_ALTARIA}, - }}, {{ // Altaria - }}, {{ // Wynaut - {EVO_LEVEL, 15, SPECIES_WOBBUFFET}, - }}, {{ // Duskull - {EVO_LEVEL, 37, SPECIES_DUSCLOPS}, - }}, {{ // Dusclops - }}, {{ // Roselia - }}, {{ // Slakoth - {EVO_LEVEL, 18, SPECIES_VIGOROTH}, - }}, {{ // Vigoroth - {EVO_LEVEL, 36, SPECIES_SLAKING}, - }}, {{ // Slaking - }}, {{ // Gulpin - {EVO_LEVEL, 26, SPECIES_SWALOT}, - }}, {{ // Swalot - }}, {{ // Tropius - }}, {{ // Whismur - {EVO_LEVEL, 20, SPECIES_LOUDRED}, - }}, {{ // Loudred - {EVO_LEVEL, 40, SPECIES_EXPLOUD}, - }}, {{ // Exploud - }}, {{ // Clamperl - {EVO_TRADE_ITEM, ITEM_DEEP_SEA_TOOTH, SPECIES_HUNTAIL}, - {EVO_TRADE_ITEM, ITEM_DEEP_SEA_SCALE, SPECIES_GOREBYSS}, - }}, {{ // Huntail - }}, {{ // Gorebyss - }}, {{ // Absol - }}, {{ // Shuppet - {EVO_LEVEL, 37, SPECIES_BANETTE}, - }}, {{ // Banette - }}, {{ // Seviper - }}, {{ // Zangoose - }}, {{ // Relicanth - }}, {{ // Aron - {EVO_LEVEL, 32, SPECIES_LAIRON}, - }}, {{ // Lairon - {EVO_LEVEL, 42, SPECIES_AGGRON}, - }}, {{ // Aggron - }}, {{ // Castform - }}, {{ // Volbeat - }}, {{ // Illumise - }}, {{ // Lileep - {EVO_LEVEL, 40, SPECIES_CRADILY}, - }}, {{ // Cradily - }}, {{ // Anorith - {EVO_LEVEL, 40, SPECIES_ARMALDO}, - }}, {{ // Armaldo - }}, {{ // Ralts - {EVO_LEVEL, 20, SPECIES_KIRLIA}, - }}, {{ // Kirlia - {EVO_LEVEL, 30, SPECIES_GARDEVOIR}, - }}, {{ // Gardevoir - }}, {{ // Bagon - {EVO_LEVEL, 30, SPECIES_SHELGON}, - }}, {{ // Shelgon - {EVO_LEVEL, 50, SPECIES_SALAMENCE}, - }}, {{ // Salamence - }}, {{ // Beldum - {EVO_LEVEL, 20, SPECIES_METANG}, - }}, {{ // Metang - {EVO_LEVEL, 45, SPECIES_METAGROSS}, - }}, {{ // Metagross - }}, {{ // Regirock - }}, {{ // Regice - }}, {{ // Registeel - }}, {{ // Kyogre - }}, {{ // Groudon - }}, {{ // Rayquaza - }}, {{ // Latias - }}, {{ // Latios - }}, {{ // Jirachi - }}, {{ // Deoxys - }}, {{ // Chimecho - }} -}; - -#endif //POKERUBY_EVOLUTION_H diff --git a/include/data/pokemon/experience_tables.h b/include/data/pokemon/experience_tables.h deleted file mode 100644 index 70c5e88ed..000000000 --- a/include/data/pokemon/experience_tables.h +++ /dev/null @@ -1,828 +0,0 @@ -// -// Created by Scott Norton on 6/27/17. -// - -#ifndef POKERUBY_EXPERIENCE_TABLES_H -#define POKERUBY_EXPERIENCE_TABLES_H - -const u32 gExperienceTables[][101] = { - { // Medium Fast - 0, // 0 - 1, // 1 - 8, // 2 - 27, // 3 - 64, // 4 - 125, // 5 - 216, // 6 - 343, // 7 - 512, // 8 - 729, // 9 - 1000, // 10 - 1331, // 11 - 1728, // 12 - 2197, // 13 - 2744, // 14 - 3375, // 15 - 4096, // 16 - 4913, // 17 - 5832, // 18 - 6859, // 19 - 8000, // 20 - 9261, // 21 - 10648, // 22 - 12167, // 23 - 13824, // 24 - 15625, // 25 - 17576, // 26 - 19683, // 27 - 21952, // 28 - 24389, // 29 - 27000, // 30 - 29791, // 31 - 32768, // 32 - 35937, // 33 - 39304, // 34 - 42875, // 35 - 46656, // 36 - 50653, // 37 - 54872, // 38 - 59319, // 39 - 64000, // 40 - 68921, // 41 - 74088, // 42 - 79507, // 43 - 85184, // 44 - 91125, // 45 - 97336, // 46 - 103823, // 47 - 110592, // 48 - 117649, // 49 - 125000, // 50 - 132651, // 51 - 140608, // 52 - 148877, // 53 - 157464, // 54 - 166375, // 55 - 175616, // 56 - 185193, // 57 - 195112, // 58 - 205379, // 59 - 216000, // 60 - 226981, // 61 - 238328, // 62 - 250047, // 63 - 262144, // 64 - 274625, // 65 - 287496, // 66 - 300763, // 67 - 314432, // 68 - 328509, // 69 - 343000, // 70 - 357911, // 71 - 373248, // 72 - 389017, // 73 - 405224, // 74 - 421875, // 75 - 438976, // 76 - 456533, // 77 - 474552, // 78 - 493039, // 79 - 512000, // 80 - 531441, // 81 - 551368, // 82 - 571787, // 83 - 592704, // 84 - 614125, // 85 - 636056, // 86 - 658503, // 87 - 681472, // 88 - 704969, // 89 - 729000, // 90 - 753571, // 91 - 778688, // 92 - 804357, // 93 - 830584, // 94 - 857375, // 95 - 884736, // 96 - 912673, // 97 - 941192, // 98 - 970299, // 99 - 1000000 // 100 - }, { // Erratic - 0, // 0 - 1, // 1 - 15, // 2 - 52, // 3 - 122, // 4 - 237, // 5 - 406, // 6 - 637, // 7 - 942, // 8 - 1326, // 9 - 1800, // 10 - 2369, // 11 - 3041, // 12 - 3822, // 13 - 4719, // 14 - 5737, // 15 - 6881, // 16 - 8155, // 17 - 9564, // 18 - 11111, // 19 - 12800, // 20 - 14632, // 21 - 16610, // 22 - 18737, // 23 - 21012, // 24 - 23437, // 25 - 26012, // 26 - 28737, // 27 - 31610, // 28 - 34632, // 29 - 37800, // 30 - 41111, // 31 - 44564, // 32 - 48155, // 33 - 51881, // 34 - 55737, // 35 - 59719, // 36 - 63822, // 37 - 68041, // 38 - 72369, // 39 - 76800, // 40 - 81326, // 41 - 85942, // 42 - 90637, // 43 - 95406, // 44 - 100237, // 45 - 105122, // 46 - 110052, // 47 - 115015, // 48 - 120001, // 49 - 125000, // 50 - 131324, // 51 - 137795, // 52 - 144410, // 53 - 151165, // 54 - 158056, // 55 - 165079, // 56 - 172229, // 57 - 179503, // 58 - 186894, // 59 - 194400, // 60 - 202013, // 61 - 209728, // 62 - 217540, // 63 - 225443, // 64 - 233431, // 65 - 241496, // 66 - 249633, // 67 - 257834, // 68 - 267406, // 69 - 276458, // 70 - 286328, // 71 - 296358, // 72 - 305767, // 73 - 316074, // 74 - 326531, // 75 - 336255, // 76 - 346965, // 77 - 357812, // 78 - 367807, // 79 - 378880, // 80 - 390077, // 81 - 400293, // 82 - 411686, // 83 - 423190, // 84 - 433572, // 85 - 445239, // 86 - 457001, // 87 - 467489, // 88 - 479378, // 89 - 491346, // 90 - 501878, // 91 - 513934, // 92 - 526049, // 93 - 536557, // 94 - 548720, // 95 - 560922, // 96 - 571333, // 97 - 583539, // 98 - 591882, // 99 - 600000 // 100 - }, { // Fluctuating - 0, // 0 - 1, // 1 - 4, // 2 - 13, // 3 - 32, // 4 - 65, // 5 - 112, // 6 - 178, // 7 - 276, // 8 - 393, // 9 - 540, // 10 - 745, // 11 - 967, // 12 - 1230, // 13 - 1591, // 14 - 1957, // 15 - 2457, // 16 - 3046, // 17 - 3732, // 18 - 4526, // 19 - 5440, // 20 - 6482, // 21 - 7666, // 22 - 9003, // 23 - 10506, // 24 - 12187, // 25 - 14060, // 26 - 16140, // 27 - 18439, // 28 - 20974, // 29 - 23760, // 30 - 26811, // 31 - 30146, // 32 - 33780, // 33 - 37731, // 34 - 42017, // 35 - 46656, // 36 - 50653, // 37 - 55969, // 38 - 60505, // 39 - 66560, // 40 - 71677, // 41 - 78533, // 42 - 84277, // 43 - 91998, // 44 - 98415, // 45 - 107069, // 46 - 114205, // 47 - 123863, // 48 - 131766, // 49 - 142500, // 50 - 151222, // 51 - 163105, // 52 - 172697, // 53 - 185807, // 54 - 196322, // 55 - 210739, // 56 - 222231, // 57 - 238036, // 58 - 250562, // 59 - 267840, // 60 - 281456, // 61 - 300293, // 62 - 315059, // 63 - 335544, // 64 - 351520, // 65 - 373744, // 66 - 390991, // 67 - 415050, // 68 - 433631, // 69 - 459620, // 70 - 479600, // 71 - 507617, // 72 - 529063, // 73 - 559209, // 74 - 582187, // 75 - 614566, // 76 - 639146, // 77 - 673863, // 78 - 700115, // 79 - 737280, // 80 - 765275, // 81 - 804997, // 82 - 834809, // 83 - 877201, // 84 - 908905, // 85 - 954084, // 86 - 987754, // 87 - 1035837, // 88 - 1071552, // 89 - 1122660, // 90 - 1160499, // 91 - 1214753, // 92 - 1254796, // 93 - 1312322, // 94 - 1354652, // 95 - 1415577, // 96 - 1460276, // 97 - 1524731, // 98 - 1571884, // 99 - 1640000 // 100 - }, { // Medium Slow - 0, // 0 - 1, // 1 - 9, // 2 - 57, // 3 - 96, // 4 - 135, // 5 - 179, // 6 - 236, // 7 - 314, // 8 - 419, // 9 - 560, // 10 - 742, // 11 - 973, // 12 - 1261, // 13 - 1612, // 14 - 2035, // 15 - 2535, // 16 - 3120, // 17 - 3798, // 18 - 4575, // 19 - 5460, // 20 - 6458, // 21 - 7577, // 22 - 8825, // 23 - 10208, // 24 - 11735, // 25 - 13411, // 26 - 15244, // 27 - 17242, // 28 - 19411, // 29 - 21760, // 30 - 24294, // 31 - 27021, // 32 - 29949, // 33 - 33084, // 34 - 36435, // 35 - 40007, // 36 - 43808, // 37 - 47846, // 38 - 52127, // 39 - 56660, // 40 - 61450, // 41 - 66505, // 42 - 71833, // 43 - 77440, // 44 - 83335, // 45 - 89523, // 46 - 96012, // 47 - 102810, // 48 - 109923, // 49 - 117360, // 50 - 125126, // 51 - 133229, // 52 - 141677, // 53 - 150476, // 54 - 159635, // 55 - 169159, // 56 - 179056, // 57 - 189334, // 58 - 199999, // 59 - 211060, // 60 - 222522, // 61 - 234393, // 62 - 246681, // 63 - 259392, // 64 - 272535, // 65 - 286115, // 66 - 300140, // 67 - 314618, // 68 - 329555, // 69 - 344960, // 70 - 360838, // 71 - 377197, // 72 - 394045, // 73 - 411388, // 74 - 429235, // 75 - 447591, // 76 - 466464, // 77 - 485862, // 78 - 505791, // 79 - 526260, // 80 - 547274, // 81 - 568841, // 82 - 590969, // 83 - 613664, // 84 - 636935, // 85 - 660787, // 86 - 685228, // 87 - 710266, // 88 - 735907, // 89 - 762160, // 90 - 789030, // 91 - 816525, // 92 - 844653, // 93 - 873420, // 94 - 902835, // 95 - 932903, // 96 - 963632, // 97 - 995030, // 98 - 1027103, // 99 - 1059860 // 100 - }, { // Fast - 0, // 0 - 1, // 1 - 6, // 2 - 21, // 3 - 51, // 4 - 100, // 5 - 172, // 6 - 274, // 7 - 409, // 8 - 583, // 9 - 800, // 10 - 1064, // 11 - 1382, // 12 - 1757, // 13 - 2195, // 14 - 2700, // 15 - 3276, // 16 - 3930, // 17 - 4665, // 18 - 5487, // 19 - 6400, // 20 - 7408, // 21 - 8518, // 22 - 9733, // 23 - 11059, // 24 - 12500, // 25 - 14060, // 26 - 15746, // 27 - 17561, // 28 - 19511, // 29 - 21600, // 30 - 23832, // 31 - 26214, // 32 - 28749, // 33 - 31443, // 34 - 34300, // 35 - 37324, // 36 - 40522, // 37 - 43897, // 38 - 47455, // 39 - 51200, // 40 - 55136, // 41 - 59270, // 42 - 63605, // 43 - 68147, // 44 - 72900, // 45 - 77868, // 46 - 83058, // 47 - 88473, // 48 - 94119, // 49 - 100000, // 50 - 106120, // 51 - 112486, // 52 - 119101, // 53 - 125971, // 54 - 133100, // 55 - 140492, // 56 - 148154, // 57 - 156089, // 58 - 164303, // 59 - 172800, // 60 - 181584, // 61 - 190662, // 62 - 200037, // 63 - 209715, // 64 - 219700, // 65 - 229996, // 66 - 240610, // 67 - 251545, // 68 - 262807, // 69 - 274400, // 70 - 286328, // 71 - 298598, // 72 - 311213, // 73 - 324179, // 74 - 337500, // 75 - 351180, // 76 - 365226, // 77 - 379641, // 78 - 394431, // 79 - 409600, // 80 - 425152, // 81 - 441094, // 82 - 457429, // 83 - 474163, // 84 - 491300, // 85 - 508844, // 86 - 526802, // 87 - 545177, // 88 - 563975, // 89 - 583200, // 90 - 602856, // 91 - 622950, // 92 - 643485, // 93 - 664467, // 94 - 685900, // 95 - 707788, // 96 - 730138, // 97 - 752953, // 98 - 776239, // 99 - 800000 // 100 - }, { // Slow - 0, // 0 - 1, // 1 - 10, // 2 - 33, // 3 - 80, // 4 - 156, // 5 - 270, // 6 - 428, // 7 - 640, // 8 - 911, // 9 - 1250, // 10 - 1663, // 11 - 2160, // 12 - 2746, // 13 - 3430, // 14 - 4218, // 15 - 5120, // 16 - 6141, // 17 - 7290, // 18 - 8573, // 19 - 10000, // 20 - 11576, // 21 - 13310, // 22 - 15208, // 23 - 17280, // 24 - 19531, // 25 - 21970, // 26 - 24603, // 27 - 27440, // 28 - 30486, // 29 - 33750, // 30 - 37238, // 31 - 40960, // 32 - 44921, // 33 - 49130, // 34 - 53593, // 35 - 58320, // 36 - 63316, // 37 - 68590, // 38 - 74148, // 39 - 80000, // 40 - 86151, // 41 - 92610, // 42 - 99383, // 43 - 106480, // 44 - 113906, // 45 - 121670, // 46 - 129778, // 47 - 138240, // 48 - 147061, // 49 - 156250, // 50 - 165813, // 51 - 175760, // 52 - 186096, // 53 - 196830, // 54 - 207968, // 55 - 219520, // 56 - 231491, // 57 - 243890, // 58 - 256723, // 59 - 270000, // 60 - 283726, // 61 - 297910, // 62 - 312558, // 63 - 327680, // 64 - 343281, // 65 - 359370, // 66 - 375953, // 67 - 393040, // 68 - 410636, // 69 - 428750, // 70 - 447388, // 71 - 466560, // 72 - 486271, // 73 - 506530, // 74 - 527343, // 75 - 548720, // 76 - 570666, // 77 - 593190, // 78 - 616298, // 79 - 640000, // 80 - 664301, // 81 - 689210, // 82 - 714733, // 83 - 740880, // 84 - 767656, // 85 - 795070, // 86 - 823128, // 87 - 851840, // 88 - 881211, // 89 - 911250, // 90 - 941963, // 91 - 973360, // 92 - 1005446, // 93 - 1038230, // 94 - 1071718, // 95 - 1105920, // 96 - 1140841, // 97 - 1176490, // 98 - 1212873, // 99 - 1250000 // 100 - }, { // Medium Fast copy 2 (unused? to-do: investigate) - 0, // 0 - 1, // 1 - 8, // 2 - 27, // 3 - 64, // 4 - 125, // 5 - 216, // 6 - 343, // 7 - 512, // 8 - 729, // 9 - 1000, // 10 - 1331, // 11 - 1728, // 12 - 2197, // 13 - 2744, // 14 - 3375, // 15 - 4096, // 16 - 4913, // 17 - 5832, // 18 - 6859, // 19 - 8000, // 20 - 9261, // 21 - 10648, // 22 - 12167, // 23 - 13824, // 24 - 15625, // 25 - 17576, // 26 - 19683, // 27 - 21952, // 28 - 24389, // 29 - 27000, // 30 - 29791, // 31 - 32768, // 32 - 35937, // 33 - 39304, // 34 - 42875, // 35 - 46656, // 36 - 50653, // 37 - 54872, // 38 - 59319, // 39 - 64000, // 40 - 68921, // 41 - 74088, // 42 - 79507, // 43 - 85184, // 44 - 91125, // 45 - 97336, // 46 - 103823, // 47 - 110592, // 48 - 117649, // 49 - 125000, // 50 - 132651, // 51 - 140608, // 52 - 148877, // 53 - 157464, // 54 - 166375, // 55 - 175616, // 56 - 185193, // 57 - 195112, // 58 - 205379, // 59 - 216000, // 60 - 226981, // 61 - 238328, // 62 - 250047, // 63 - 262144, // 64 - 274625, // 65 - 287496, // 66 - 300763, // 67 - 314432, // 68 - 328509, // 69 - 343000, // 70 - 357911, // 71 - 373248, // 72 - 389017, // 73 - 405224, // 74 - 421875, // 75 - 438976, // 76 - 456533, // 77 - 474552, // 78 - 493039, // 79 - 512000, // 80 - 531441, // 81 - 551368, // 82 - 571787, // 83 - 592704, // 84 - 614125, // 85 - 636056, // 86 - 658503, // 87 - 681472, // 88 - 704969, // 89 - 729000, // 90 - 753571, // 91 - 778688, // 92 - 804357, // 93 - 830584, // 94 - 857375, // 95 - 884736, // 96 - 912673, // 97 - 941192, // 98 - 970299, // 99 - 1000000 // 100 - }, { // Medium Fast copy 3 (unused? to-do: investigate) - 0, // 0 - 1, // 1 - 8, // 2 - 27, // 3 - 64, // 4 - 125, // 5 - 216, // 6 - 343, // 7 - 512, // 8 - 729, // 9 - 1000, // 10 - 1331, // 11 - 1728, // 12 - 2197, // 13 - 2744, // 14 - 3375, // 15 - 4096, // 16 - 4913, // 17 - 5832, // 18 - 6859, // 19 - 8000, // 20 - 9261, // 21 - 10648, // 22 - 12167, // 23 - 13824, // 24 - 15625, // 25 - 17576, // 26 - 19683, // 27 - 21952, // 28 - 24389, // 29 - 27000, // 30 - 29791, // 31 - 32768, // 32 - 35937, // 33 - 39304, // 34 - 42875, // 35 - 46656, // 36 - 50653, // 37 - 54872, // 38 - 59319, // 39 - 64000, // 40 - 68921, // 41 - 74088, // 42 - 79507, // 43 - 85184, // 44 - 91125, // 45 - 97336, // 46 - 103823, // 47 - 110592, // 48 - 117649, // 49 - 125000, // 50 - 132651, // 51 - 140608, // 52 - 148877, // 53 - 157464, // 54 - 166375, // 55 - 175616, // 56 - 185193, // 57 - 195112, // 58 - 205379, // 59 - 216000, // 60 - 226981, // 61 - 238328, // 62 - 250047, // 63 - 262144, // 64 - 274625, // 65 - 287496, // 66 - 300763, // 67 - 314432, // 68 - 328509, // 69 - 343000, // 70 - 357911, // 71 - 373248, // 72 - 389017, // 73 - 405224, // 74 - 421875, // 75 - 438976, // 76 - 456533, // 77 - 474552, // 78 - 493039, // 79 - 512000, // 80 - 531441, // 81 - 551368, // 82 - 571787, // 83 - 592704, // 84 - 614125, // 85 - 636056, // 86 - 658503, // 87 - 681472, // 88 - 704969, // 89 - 729000, // 90 - 753571, // 91 - 778688, // 92 - 804357, // 93 - 830584, // 94 - 857375, // 95 - 884736, // 96 - 912673, // 97 - 941192, // 98 - 970299, // 99 - 1000000 // 100 - } -}; - -#endif //POKERUBY_EXPERIENCE_TABLES_H diff --git a/include/data/pokemon/item_effects.h b/include/data/pokemon/item_effects.h deleted file mode 100644 index b07573933..000000000 --- a/include/data/pokemon/item_effects.h +++ /dev/null @@ -1,824 +0,0 @@ -// -// Created by Scott Norton on 6/27/17. -// - -#ifndef POKERUBY_ITEM_EFFECTS_H -#define POKERUBY_ITEM_EFFECTS_H - -const u8 gItemEffect_Potion[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 20 -}; - -const u8 gItemEffect_Antidote[] = { - 0x00, - 0x00, - 0x00, - 0x10, - 0x00, - 0x00 -}; - -const u8 gItemEffect_BurnHeal[] = { - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00 -}; - -const u8 gItemEffect_IceHeal[] = { - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00 -}; - -const u8 gItemEffect_Awakening[] = { - 0x00, - 0x00, - 0x00, - 0x20, - 0x00, - 0x00 -}; - -const u8 gItemEffect_ParalyzeHeal[] = { - 0x00, - 0x00, - 0x00, - 0x02, - 0x00, - 0x00 -}; - -const u8 gItemEffect_FullRestore[] = { - 0x00, - 0x00, - 0x00, - 0x3f, - 0x04, - 0x00, - 0xff -}; - -const u8 gItemEffect_MaxPotion[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0xff -}; - -const u8 gItemEffect_HyperPotion[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 200 -}; - -const u8 gItemEffect_SuperPotion[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 50 -}; - -const u8 gItemEffect_FullHeal[] = { - 0x00, - 0x00, - 0x00, - 0x3f, - 0x00, - 0x00 -}; - -const u8 gItemEffect_Revive[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x44, - 0x00, - 0xfe -}; - -const u8 gItemEffect_MaxRevive[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x44, - 0x00, - 0xff -}; - -const u8 gItemEffect_FreshWater[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 50 -}; - -const u8 gItemEffect_SodaPop[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 60 -}; - -const u8 gItemEffect_Lemonade[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 80 -}; - -const u8 gItemEffect_MoomooMilk[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 100 -}; - -const u8 gItemEffect_EnergyPowder[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xe0, - 50, - 0xfb, - 0xfb, - 0xf6 -}; - -const u8 gItemEffect_EnergyRoot[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0xe0, - 200, - 0xf6, - 0xf6, - 0xf1 -}; - -const u8 gItemEffect_HealPowder[] = { - 0x00, - 0x00, - 0x00, - 0x3f, - 0x00, - 0xe0, - 0xfb, - 0xfb, - 0xf6 -}; - -const u8 gItemEffect_RevivalHerb[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x44, - 0xe0, - 0xfe, - 0xf1, - 0xf1, - 0xec -}; - -const u8 gItemEffect_Ether[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x0a -}; - -const u8 gItemEffect_MaxEther[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x7f -}; - -const u8 gItemEffect_Elixir[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x0a -}; - -const u8 gItemEffect_MaxElixir[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x7f -}; - -const u8 gItemEffect_LavaCookie[] = { - 0x00, - 0x00, - 0x00, - 0x3f, - 0x00, - 0x00 -}; - -const u8 gItemEffect_BlueFlute[] = { - 0x00, - 0x00, - 0x00, - 0x20, - 0x00, - 0x00 -}; - -const u8 gItemEffect_YellowFlute[] = { - 0x00, - 0x00, - 0x00, - 0x01, - 0x00, - 0x00 -}; - -const u8 gItemEffect_RedFlute[] = { - 0x80, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00 -}; - -const u8 gItemEffect_BerryJuice[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 20 -}; - -const u8 gItemEffect_SacredAsh[] = { - 0x40, - 0x00, - 0x00, - 0x00, - 0x44, - 0x00, - 0xff -}; - -const u8 gItemEffect_HPUp[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x01, - 0xe0, - 0x0a, - 0x05, - 0x03, - 0x02 -}; - -const u8 gItemEffect_Protein[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x02, - 0xe0, - 0x0a, - 0x05, - 0x03, - 0x02 -}; - -const u8 gItemEffect_Iron[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xe1, - 0x0a, - 0x05, - 0x03, - 0x02 -}; - -const u8 gItemEffect_Carbos[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xe2, - 0x0a, - 0x05, - 0x03, - 0x02 -}; - -const u8 gItemEffect_Calcium[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xe8, - 0x0a, - 0x05, - 0x03, - 0x02 -}; - -const u8 gItemEffect_RareCandy[] = { - 0x00, - 0x00, - 0x00, - 0x40, - 0x44, - 0xe0, - 253, - 0x05, - 0x03, - 0x02 -}; - -const u8 gItemEffect_PPUp[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x20, - 0xe0, - 0x05, - 0x03, - 0x02 -}; - -const u8 gItemEffect_Zinc[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xe4, - 0x0a, - 0x05, - 0x03, - 0x02 -}; - -const u8 gItemEffect_PPMax[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xf0, - 0x05, - 0x03, - 0x02 -}; - -const u8 gItemEffect_GuardSpec[] = { - 0x00, - 0x00, - 0x00, - 0x80, - 0x00, - 0x60, - 0x01, - 0x01 -}; - -const u8 gItemEffect_DireHit[] = { - 0x20, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x01, - 0x01 -}; - -const u8 gItemEffect_XAttack[] = { - 0x01, - 0x00, - 0x00, - 0x00, - 0x00, - 0x60, - 0x01, - 0x01 -}; - -const u8 gItemEffect_XDefend[] = { - 0x00, - 0x10, - 0x00, - 0x00, - 0x00, - 0x60, - 0x01, - 0x01 -}; - -const u8 gItemEffect_XSpeed[] = { - 0x00, - 0x01, - 0x00, - 0x00, - 0x00, - 0x60, - 0x01, - 0x01 -}; - -const u8 gItemEffect_XAccuracy[] = { - 0x00, - 0x00, - 0x10, - 0x00, - 0x00, - 0x60, - 0x01, - 0x01 -}; - -const u8 gItemEffect_XSpecial[] = { - 0x00, - 0x00, - 0x01, - 0x00, - 0x00, - 0x60, - 0x01, - 0x01 -}; - -const u8 gItemEffect_SunStone[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x80, - 0x00 -}; - -const u8 gItemEffect_MoonStone[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x80, - 0x00 -}; - -const u8 gItemEffect_FireStone[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x80, - 0x00 -}; - -const u8 gItemEffect_ThunderStone[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x80, - 0x00 -}; - -const u8 gItemEffect_WaterStone[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x80, - 0x00 -}; - -const u8 gItemEffect_LeafStone[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x80, - 0x00 -}; - -const u8 gItemEffect_CheriBerry[] = { - 0x00, - 0x00, - 0x00, - 0x02, - 0x00, - 0x00 -}; - -const u8 gItemEffect_ChestoBerry[] = { - 0x00, - 0x00, - 0x00, - 0x20, - 0x00, - 0x00 -}; - -const u8 gItemEffect_PechaBerry[] = { - 0x00, - 0x00, - 0x00, - 0x10, - 0x00, - 0x00 -}; - -const u8 gItemEffect_RawstBerry[] = { - 0x00, - 0x00, - 0x00, - 0x08, - 0x00, - 0x00 -}; - -const u8 gItemEffect_AspearBerry[] = { - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00 -}; - -const u8 gItemEffect_LeppaBerry[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x18, - 0x00, - 0x0a -}; - -const u8 gItemEffect_OranBerry[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 10 -}; - -const u8 gItemEffect_PersimBerry[] = { - 0x00, - 0x00, - 0x00, - 0x01, - 0x00, - 0x00 -}; - -const u8 gItemEffect_LumBerry[] = { - 0x00, - 0x00, - 0x00, - 0x3f, - 0x00, - 0x00 -}; - -const u8 gItemEffect_SitrusBerry[] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 30 -}; - -const u8 *const gItemEffectTable[] = { - gItemEffect_Potion, - gItemEffect_Antidote, - gItemEffect_BurnHeal, - gItemEffect_IceHeal, - gItemEffect_Awakening, - gItemEffect_ParalyzeHeal, - gItemEffect_FullRestore, - gItemEffect_MaxPotion, - gItemEffect_HyperPotion, - gItemEffect_SuperPotion, - gItemEffect_FullHeal, - gItemEffect_Revive, - gItemEffect_MaxRevive, - gItemEffect_FreshWater, - gItemEffect_SodaPop, - gItemEffect_Lemonade, - gItemEffect_MoomooMilk, - gItemEffect_EnergyPowder, - gItemEffect_EnergyRoot, - gItemEffect_HealPowder, - gItemEffect_RevivalHerb, - gItemEffect_Ether, - gItemEffect_MaxEther, - gItemEffect_Elixir, - gItemEffect_MaxElixir, - gItemEffect_LavaCookie, - gItemEffect_BlueFlute, - gItemEffect_YellowFlute, - gItemEffect_RedFlute, - NULL, - NULL, - gItemEffect_BerryJuice, - gItemEffect_SacredAsh, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - gItemEffect_HPUp, - gItemEffect_Protein, - gItemEffect_Iron, - gItemEffect_Carbos, - gItemEffect_Calcium, - gItemEffect_RareCandy, - gItemEffect_PPUp, - gItemEffect_Zinc, - gItemEffect_PPMax, - NULL, - gItemEffect_GuardSpec, - gItemEffect_DireHit, - gItemEffect_XAttack, - gItemEffect_XDefend, - gItemEffect_XSpeed, - gItemEffect_XAccuracy, - gItemEffect_XSpecial, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - gItemEffect_SunStone, - gItemEffect_MoonStone, - gItemEffect_FireStone, - gItemEffect_ThunderStone, - gItemEffect_WaterStone, - gItemEffect_LeafStone, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - gItemEffect_CheriBerry, - gItemEffect_ChestoBerry, - gItemEffect_PechaBerry, - gItemEffect_RawstBerry, - gItemEffect_AspearBerry, - gItemEffect_LeppaBerry, - gItemEffect_OranBerry, - gItemEffect_PersimBerry, - gItemEffect_LumBerry, - gItemEffect_SitrusBerry, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -#endif //POKERUBY_ITEM_EFFECTS_H diff --git a/include/data/pokemon/level_up_learnset_pointers.h b/include/data/pokemon/level_up_learnset_pointers.h deleted file mode 100644 index 753947d51..000000000 --- a/include/data/pokemon/level_up_learnset_pointers.h +++ /dev/null @@ -1,423 +0,0 @@ -// -// Created by Scott Norton on 6/27/17. -// - -#ifndef POKERUBY_LEVEL_UP_LEARNSET_POINTERS_H -#define POKERUBY_LEVEL_UP_LEARNSET_POINTERS_H - -const u16 *const gLevelUpLearnsets[] = { - gBulbasaurLevelUpLearnset, - gBulbasaurLevelUpLearnset, - gIvysaurLevelUpLearnset, - gVenusaurLevelUpLearnset, - gCharmanderLevelUpLearnset, - gCharmeleonLevelUpLearnset, - gCharizardLevelUpLearnset, - gSquirtleLevelUpLearnset, - gWartortleLevelUpLearnset, - gBlastoiseLevelUpLearnset, - gCaterpieLevelUpLearnset, - gMetapodLevelUpLearnset, - gButterfreeLevelUpLearnset, - gWeedleLevelUpLearnset, - gKakunaLevelUpLearnset, - gBeedrillLevelUpLearnset, - gPidgeyLevelUpLearnset, - gPidgeottoLevelUpLearnset, - gPidgeotLevelUpLearnset, - gRattataLevelUpLearnset, - gRaticateLevelUpLearnset, - gSpearowLevelUpLearnset, - gFearowLevelUpLearnset, - gEkansLevelUpLearnset, - gArbokLevelUpLearnset, - gPikachuLevelUpLearnset, - gRaichuLevelUpLearnset, - gSandshrewLevelUpLearnset, - gSandslashLevelUpLearnset, - gNidoranFLevelUpLearnset, - gNidorinaLevelUpLearnset, - gNidoqueenLevelUpLearnset, - gNidoranMLevelUpLearnset, - gNidorinoLevelUpLearnset, - gNidokingLevelUpLearnset, - gClefairyLevelUpLearnset, - gClefableLevelUpLearnset, - gVulpixLevelUpLearnset, - gNinetalesLevelUpLearnset, - gJigglypuffLevelUpLearnset, - gWigglytuffLevelUpLearnset, - gZubatLevelUpLearnset, - gGolbatLevelUpLearnset, - gOddishLevelUpLearnset, - gGloomLevelUpLearnset, - gVileplumeLevelUpLearnset, - gParasLevelUpLearnset, - gParasectLevelUpLearnset, - gVenonatLevelUpLearnset, - gVenomothLevelUpLearnset, - gDiglettLevelUpLearnset, - gDugtrioLevelUpLearnset, - gMeowthLevelUpLearnset, - gPersianLevelUpLearnset, - gPsyduckLevelUpLearnset, - gGolduckLevelUpLearnset, - gMankeyLevelUpLearnset, - gPrimeapeLevelUpLearnset, - gGrowlitheLevelUpLearnset, - gArcanineLevelUpLearnset, - gPoliwagLevelUpLearnset, - gPoliwhirlLevelUpLearnset, - gPoliwrathLevelUpLearnset, - gAbraLevelUpLearnset, - gKadabraLevelUpLearnset, - gAlakazamLevelUpLearnset, - gMachopLevelUpLearnset, - gMachokeLevelUpLearnset, - gMachampLevelUpLearnset, - gBellsproutLevelUpLearnset, - gWeepinbellLevelUpLearnset, - gVictreebelLevelUpLearnset, - gTentacoolLevelUpLearnset, - gTentacruelLevelUpLearnset, - gGeodudeLevelUpLearnset, - gGravelerLevelUpLearnset, - gGolemLevelUpLearnset, - gPonytaLevelUpLearnset, - gRapidashLevelUpLearnset, - gSlowpokeLevelUpLearnset, - gSlowbroLevelUpLearnset, - gMagnemiteLevelUpLearnset, - gMagnetonLevelUpLearnset, - gFarfetchdLevelUpLearnset, - gDoduoLevelUpLearnset, - gDodrioLevelUpLearnset, - gSeelLevelUpLearnset, - gDewgongLevelUpLearnset, - gGrimerLevelUpLearnset, - gMukLevelUpLearnset, - gShellderLevelUpLearnset, - gCloysterLevelUpLearnset, - gGastlyLevelUpLearnset, - gHaunterLevelUpLearnset, - gGengarLevelUpLearnset, - gOnixLevelUpLearnset, - gDrowzeeLevelUpLearnset, - gHypnoLevelUpLearnset, - gKrabbyLevelUpLearnset, - gKinglerLevelUpLearnset, - gVoltorbLevelUpLearnset, - gElectrodeLevelUpLearnset, - gExeggcuteLevelUpLearnset, - gExeggutorLevelUpLearnset, - gCuboneLevelUpLearnset, - gMarowakLevelUpLearnset, - gHitmonleeLevelUpLearnset, - gHitmonchanLevelUpLearnset, - gLickitungLevelUpLearnset, - gKoffingLevelUpLearnset, - gWeezingLevelUpLearnset, - gRhyhornLevelUpLearnset, - gRhydonLevelUpLearnset, - gChanseyLevelUpLearnset, - gTangelaLevelUpLearnset, - gKangaskhanLevelUpLearnset, - gHorseaLevelUpLearnset, - gSeadraLevelUpLearnset, - gGoldeenLevelUpLearnset, - gSeakingLevelUpLearnset, - gStaryuLevelUpLearnset, - gStarmieLevelUpLearnset, - gMrmimeLevelUpLearnset, - gScytherLevelUpLearnset, - gJynxLevelUpLearnset, - gElectabuzzLevelUpLearnset, - gMagmarLevelUpLearnset, - gPinsirLevelUpLearnset, - gTaurosLevelUpLearnset, - gMagikarpLevelUpLearnset, - gGyaradosLevelUpLearnset, - gLaprasLevelUpLearnset, - gDittoLevelUpLearnset, - gEeveeLevelUpLearnset, - gVaporeonLevelUpLearnset, - gJolteonLevelUpLearnset, - gFlareonLevelUpLearnset, - gPorygonLevelUpLearnset, - gOmanyteLevelUpLearnset, - gOmastarLevelUpLearnset, - gKabutoLevelUpLearnset, - gKabutopsLevelUpLearnset, - gAerodactylLevelUpLearnset, - gSnorlaxLevelUpLearnset, - gArticunoLevelUpLearnset, - gZapdosLevelUpLearnset, - gMoltresLevelUpLearnset, - gDratiniLevelUpLearnset, - gDragonairLevelUpLearnset, - gDragoniteLevelUpLearnset, - gMewtwoLevelUpLearnset, - gMewLevelUpLearnset, - gChikoritaLevelUpLearnset, - gBayleefLevelUpLearnset, - gMeganiumLevelUpLearnset, - gCyndaquilLevelUpLearnset, - gQuilavaLevelUpLearnset, - gTyphlosionLevelUpLearnset, - gTotodileLevelUpLearnset, - gCroconawLevelUpLearnset, - gFeraligatrLevelUpLearnset, - gSentretLevelUpLearnset, - gFurretLevelUpLearnset, - gHoothootLevelUpLearnset, - gNoctowlLevelUpLearnset, - gLedybaLevelUpLearnset, - gLedianLevelUpLearnset, - gSpinarakLevelUpLearnset, - gAriadosLevelUpLearnset, - gCrobatLevelUpLearnset, - gChinchouLevelUpLearnset, - gLanturnLevelUpLearnset, - gPichuLevelUpLearnset, - gCleffaLevelUpLearnset, - gIgglybuffLevelUpLearnset, - gTogepiLevelUpLearnset, - gTogeticLevelUpLearnset, - gNatuLevelUpLearnset, - gXatuLevelUpLearnset, - gMareepLevelUpLearnset, - gFlaaffyLevelUpLearnset, - gAmpharosLevelUpLearnset, - gBellossomLevelUpLearnset, - gMarillLevelUpLearnset, - gAzumarillLevelUpLearnset, - gSudowoodoLevelUpLearnset, - gPolitoedLevelUpLearnset, - gHoppipLevelUpLearnset, - gSkiploomLevelUpLearnset, - gJumpluffLevelUpLearnset, - gAipomLevelUpLearnset, - gSunkernLevelUpLearnset, - gSunfloraLevelUpLearnset, - gYanmaLevelUpLearnset, - gWooperLevelUpLearnset, - gQuagsireLevelUpLearnset, - gEspeonLevelUpLearnset, - gUmbreonLevelUpLearnset, - gMurkrowLevelUpLearnset, - gSlowkingLevelUpLearnset, - gMisdreavusLevelUpLearnset, - gUnownLevelUpLearnset, - gWobbuffetLevelUpLearnset, - gGirafarigLevelUpLearnset, - gPinecoLevelUpLearnset, - gForretressLevelUpLearnset, - gDunsparceLevelUpLearnset, - gGligarLevelUpLearnset, - gSteelixLevelUpLearnset, - gSnubbullLevelUpLearnset, - gGranbullLevelUpLearnset, - gQwilfishLevelUpLearnset, - gScizorLevelUpLearnset, - gShuckleLevelUpLearnset, - gHeracrossLevelUpLearnset, - gSneaselLevelUpLearnset, - gTeddiursaLevelUpLearnset, - gUrsaringLevelUpLearnset, - gSlugmaLevelUpLearnset, - gMagcargoLevelUpLearnset, - gSwinubLevelUpLearnset, - gPiloswineLevelUpLearnset, - gCorsolaLevelUpLearnset, - gRemoraidLevelUpLearnset, - gOctilleryLevelUpLearnset, - gDelibirdLevelUpLearnset, - gMantineLevelUpLearnset, - gSkarmoryLevelUpLearnset, - gHoundourLevelUpLearnset, - gHoundoomLevelUpLearnset, - gKingdraLevelUpLearnset, - gPhanpyLevelUpLearnset, - gDonphanLevelUpLearnset, - gPorygon2LevelUpLearnset, - gStantlerLevelUpLearnset, - gSmeargleLevelUpLearnset, - gTyrogueLevelUpLearnset, - gHitmontopLevelUpLearnset, - gSmoochumLevelUpLearnset, - gElekidLevelUpLearnset, - gMagbyLevelUpLearnset, - gMiltankLevelUpLearnset, - gBlisseyLevelUpLearnset, - gRaikouLevelUpLearnset, - gEnteiLevelUpLearnset, - gSuicuneLevelUpLearnset, - gLarvitarLevelUpLearnset, - gPupitarLevelUpLearnset, - gTyranitarLevelUpLearnset, - gLugiaLevelUpLearnset, - gHoOhLevelUpLearnset, - gCelebiLevelUpLearnset, - gSpecies252LevelUpLearnset, - gSpecies253LevelUpLearnset, - gSpecies254LevelUpLearnset, - gSpecies255LevelUpLearnset, - gSpecies256LevelUpLearnset, - gSpecies257LevelUpLearnset, - gSpecies258LevelUpLearnset, - gSpecies259LevelUpLearnset, - gSpecies260LevelUpLearnset, - gSpecies261LevelUpLearnset, - gSpecies262LevelUpLearnset, - gSpecies263LevelUpLearnset, - gSpecies264LevelUpLearnset, - gSpecies265LevelUpLearnset, - gSpecies266LevelUpLearnset, - gSpecies267LevelUpLearnset, - gSpecies268LevelUpLearnset, - gSpecies269LevelUpLearnset, - gSpecies270LevelUpLearnset, - gSpecies271LevelUpLearnset, - gSpecies272LevelUpLearnset, - gSpecies273LevelUpLearnset, - gSpecies274LevelUpLearnset, - gSpecies275LevelUpLearnset, - gSpecies276LevelUpLearnset, - gTreeckoLevelUpLearnset, - gGrovyleLevelUpLearnset, - gSceptileLevelUpLearnset, - gTorchicLevelUpLearnset, - gCombuskenLevelUpLearnset, - gBlazikenLevelUpLearnset, - gMudkipLevelUpLearnset, - gMarshtompLevelUpLearnset, - gSwampertLevelUpLearnset, - gPoochyenaLevelUpLearnset, - gMightyenaLevelUpLearnset, - gZigzagoonLevelUpLearnset, - gLinooneLevelUpLearnset, - gWurmpleLevelUpLearnset, - gSilcoonLevelUpLearnset, - gBeautiflyLevelUpLearnset, - gCascoonLevelUpLearnset, - gDustoxLevelUpLearnset, - gLotadLevelUpLearnset, - gLombreLevelUpLearnset, - gLudicoloLevelUpLearnset, - gSeedotLevelUpLearnset, - gNuzleafLevelUpLearnset, - gShiftryLevelUpLearnset, - gNincadaLevelUpLearnset, - gNinjaskLevelUpLearnset, - gShedinjaLevelUpLearnset, - gTaillowLevelUpLearnset, - gSwellowLevelUpLearnset, - gShroomishLevelUpLearnset, - gBreloomLevelUpLearnset, - gSpindaLevelUpLearnset, - gWingullLevelUpLearnset, - gPelipperLevelUpLearnset, - gSurskitLevelUpLearnset, - gMasquerainLevelUpLearnset, - gWailmerLevelUpLearnset, - gWailordLevelUpLearnset, - gSkittyLevelUpLearnset, - gDelcattyLevelUpLearnset, - gKecleonLevelUpLearnset, - gBaltoyLevelUpLearnset, - gClaydolLevelUpLearnset, - gNosepassLevelUpLearnset, - gTorkoalLevelUpLearnset, - gSableyeLevelUpLearnset, - gBarboachLevelUpLearnset, - gWhiscashLevelUpLearnset, - gLuvdiscLevelUpLearnset, - gCorphishLevelUpLearnset, - gCrawdauntLevelUpLearnset, - gFeebasLevelUpLearnset, - gMiloticLevelUpLearnset, - gCarvanhaLevelUpLearnset, - gSharpedoLevelUpLearnset, - gTrapinchLevelUpLearnset, - gVibravaLevelUpLearnset, - gFlygonLevelUpLearnset, - gMakuhitaLevelUpLearnset, - gHariyamaLevelUpLearnset, - gElectrikeLevelUpLearnset, - gManectricLevelUpLearnset, - gNumelLevelUpLearnset, - gCameruptLevelUpLearnset, - gSphealLevelUpLearnset, - gSealeoLevelUpLearnset, - gWalreinLevelUpLearnset, - gCacneaLevelUpLearnset, - gCacturneLevelUpLearnset, - gSnoruntLevelUpLearnset, - gGlalieLevelUpLearnset, - gLunatoneLevelUpLearnset, - gSolrockLevelUpLearnset, - gAzurillLevelUpLearnset, - gSpoinkLevelUpLearnset, - gGrumpigLevelUpLearnset, - gPlusleLevelUpLearnset, - gMinunLevelUpLearnset, - gMawileLevelUpLearnset, - gMedititeLevelUpLearnset, - gMedichamLevelUpLearnset, - gSwabluLevelUpLearnset, - gAltariaLevelUpLearnset, - gWynautLevelUpLearnset, - gDuskullLevelUpLearnset, - gDusclopsLevelUpLearnset, - gRoseliaLevelUpLearnset, - gSlakothLevelUpLearnset, - gVigorothLevelUpLearnset, - gSlakingLevelUpLearnset, - gGulpinLevelUpLearnset, - gSwalotLevelUpLearnset, - gTropiusLevelUpLearnset, - gWhismurLevelUpLearnset, - gLoudredLevelUpLearnset, - gExploudLevelUpLearnset, - gClamperlLevelUpLearnset, - gHuntailLevelUpLearnset, - gGorebyssLevelUpLearnset, - gAbsolLevelUpLearnset, - gShuppetLevelUpLearnset, - gBanetteLevelUpLearnset, - gSeviperLevelUpLearnset, - gZangooseLevelUpLearnset, - gRelicanthLevelUpLearnset, - gAronLevelUpLearnset, - gLaironLevelUpLearnset, - gAggronLevelUpLearnset, - gCastformLevelUpLearnset, - gVolbeatLevelUpLearnset, - gIllumiseLevelUpLearnset, - gLileepLevelUpLearnset, - gCradilyLevelUpLearnset, - gAnorithLevelUpLearnset, - gArmaldoLevelUpLearnset, - gRaltsLevelUpLearnset, - gKirliaLevelUpLearnset, - gGardevoirLevelUpLearnset, - gBagonLevelUpLearnset, - gShelgonLevelUpLearnset, - gSalamenceLevelUpLearnset, - gBeldumLevelUpLearnset, - gMetangLevelUpLearnset, - gMetagrossLevelUpLearnset, - gRegirockLevelUpLearnset, - gRegiceLevelUpLearnset, - gRegisteelLevelUpLearnset, - gKyogreLevelUpLearnset, - gGroudonLevelUpLearnset, - gRayquazaLevelUpLearnset, - gLatiasLevelUpLearnset, - gLatiosLevelUpLearnset, - gJirachiLevelUpLearnset, - gDeoxysLevelUpLearnset, - gChimechoLevelUpLearnset -}; - -#endif //POKERUBY_LEVEL_UP_LEARNSET_POINTERS_H diff --git a/include/data/pokemon/level_up_learnsets.h b/include/data/pokemon/level_up_learnsets.h deleted file mode 100644 index 5b79f4bc0..000000000 --- a/include/data/pokemon/level_up_learnsets.h +++ /dev/null @@ -1,5627 +0,0 @@ -// -// Created by Scott Norton on 6/27/17. -// - -#ifndef POKERUBY_LEVEL_UP_LEARNSETS_H -#define POKERUBY_LEVEL_UP_LEARNSETS_H - -#define LEVEL_UP_MOVE(lvl, move) ((lvl << 9) | move) -#define LEVEL_UP_END 0xffff - -const u16 gBulbasaurLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 4, MOVE_GROWL), - LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED), - LEVEL_UP_MOVE(10, MOVE_VINE_WHIP), - LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), - LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE(20, MOVE_RAZOR_LEAF), - LEVEL_UP_MOVE(25, MOVE_SWEET_SCENT), - LEVEL_UP_MOVE(32, MOVE_GROWTH), - LEVEL_UP_MOVE(39, MOVE_SYNTHESIS), - LEVEL_UP_MOVE(46, MOVE_SOLAR_BEAM), - LEVEL_UP_END -}; - -const u16 gIvysaurLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), - LEVEL_UP_MOVE( 4, MOVE_GROWL), - LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED), - LEVEL_UP_MOVE(10, MOVE_VINE_WHIP), - LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), - LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE(22, MOVE_RAZOR_LEAF), - LEVEL_UP_MOVE(29, MOVE_SWEET_SCENT), - LEVEL_UP_MOVE(38, MOVE_GROWTH), - LEVEL_UP_MOVE(47, MOVE_SYNTHESIS), - LEVEL_UP_MOVE(56, MOVE_SOLAR_BEAM), - LEVEL_UP_END -}; - -const u16 gVenusaurLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), - LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), - LEVEL_UP_MOVE( 4, MOVE_GROWL), - LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED), - LEVEL_UP_MOVE(10, MOVE_VINE_WHIP), - LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), - LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE(22, MOVE_RAZOR_LEAF), - LEVEL_UP_MOVE(29, MOVE_SWEET_SCENT), - LEVEL_UP_MOVE(41, MOVE_GROWTH), - LEVEL_UP_MOVE(53, MOVE_SYNTHESIS), - LEVEL_UP_MOVE(65, MOVE_SOLAR_BEAM), - LEVEL_UP_END -}; - -const u16 gCharmanderLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 7, MOVE_EMBER), - LEVEL_UP_MOVE(13, MOVE_SMOKESCREEN), - LEVEL_UP_MOVE(19, MOVE_RAGE), - LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(31, MOVE_FLAMETHROWER), - LEVEL_UP_MOVE(37, MOVE_SLASH), - LEVEL_UP_MOVE(43, MOVE_DRAGON_RAGE), - LEVEL_UP_MOVE(49, MOVE_FIRE_SPIN), - LEVEL_UP_END -}; - -const u16 gCharmeleonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_EMBER), - LEVEL_UP_MOVE( 7, MOVE_EMBER), - LEVEL_UP_MOVE(13, MOVE_SMOKESCREEN), - LEVEL_UP_MOVE(20, MOVE_RAGE), - LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), - LEVEL_UP_MOVE(41, MOVE_SLASH), - LEVEL_UP_MOVE(48, MOVE_DRAGON_RAGE), - LEVEL_UP_MOVE(55, MOVE_FIRE_SPIN), - LEVEL_UP_END -}; - -const u16 gCharizardLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_EMBER), - LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 7, MOVE_EMBER), - LEVEL_UP_MOVE(13, MOVE_SMOKESCREEN), - LEVEL_UP_MOVE(20, MOVE_RAGE), - LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), - LEVEL_UP_MOVE(36, MOVE_WING_ATTACK), - LEVEL_UP_MOVE(44, MOVE_SLASH), - LEVEL_UP_MOVE(54, MOVE_DRAGON_RAGE), - LEVEL_UP_MOVE(64, MOVE_FIRE_SPIN), - LEVEL_UP_END -}; - -const u16 gSquirtleLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 7, MOVE_BUBBLE), - LEVEL_UP_MOVE(10, MOVE_WITHDRAW), - LEVEL_UP_MOVE(13, MOVE_WATER_GUN), - LEVEL_UP_MOVE(18, MOVE_BITE), - LEVEL_UP_MOVE(23, MOVE_RAPID_SPIN), - LEVEL_UP_MOVE(28, MOVE_PROTECT), - LEVEL_UP_MOVE(33, MOVE_RAIN_DANCE), - LEVEL_UP_MOVE(40, MOVE_SKULL_BASH), - LEVEL_UP_MOVE(47, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -const u16 gWartortleLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_BUBBLE), - LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 7, MOVE_BUBBLE), - LEVEL_UP_MOVE(10, MOVE_WITHDRAW), - LEVEL_UP_MOVE(13, MOVE_WATER_GUN), - LEVEL_UP_MOVE(19, MOVE_BITE), - LEVEL_UP_MOVE(25, MOVE_RAPID_SPIN), - LEVEL_UP_MOVE(31, MOVE_PROTECT), - LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE), - LEVEL_UP_MOVE(45, MOVE_SKULL_BASH), - LEVEL_UP_MOVE(53, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -const u16 gBlastoiseLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_BUBBLE), - LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), - LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 7, MOVE_BUBBLE), - LEVEL_UP_MOVE(10, MOVE_WITHDRAW), - LEVEL_UP_MOVE(13, MOVE_WATER_GUN), - LEVEL_UP_MOVE(19, MOVE_BITE), - LEVEL_UP_MOVE(25, MOVE_RAPID_SPIN), - LEVEL_UP_MOVE(31, MOVE_PROTECT), - LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), - LEVEL_UP_MOVE(55, MOVE_SKULL_BASH), - LEVEL_UP_MOVE(68, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -const u16 gCaterpieLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), - LEVEL_UP_END -}; - -const u16 gMetapodLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 7, MOVE_HARDEN), - LEVEL_UP_END -}; - -const u16 gButterfreeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE(10, MOVE_CONFUSION), - LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), - LEVEL_UP_MOVE(14, MOVE_STUN_SPORE), - LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE(18, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(23, MOVE_WHIRLWIND), - LEVEL_UP_MOVE(28, MOVE_GUST), - LEVEL_UP_MOVE(34, MOVE_PSYBEAM), - LEVEL_UP_MOVE(40, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(47, MOVE_SILVER_WIND), - LEVEL_UP_END -}; - -const u16 gWeedleLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POISON_STING), - LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), - LEVEL_UP_END -}; - -const u16 gKakunaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 7, MOVE_HARDEN), - LEVEL_UP_END -}; - -const u16 gBeedrillLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), - LEVEL_UP_MOVE(10, MOVE_FURY_ATTACK), - LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(20, MOVE_TWINEEDLE), - LEVEL_UP_MOVE(25, MOVE_RAGE), - LEVEL_UP_MOVE(30, MOVE_PURSUIT), - LEVEL_UP_MOVE(35, MOVE_PIN_MISSILE), - LEVEL_UP_MOVE(40, MOVE_AGILITY), - LEVEL_UP_MOVE(45, MOVE_ENDEAVOR), - LEVEL_UP_END -}; - -const u16 gPidgeyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 9, MOVE_GUST), - LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(19, MOVE_WHIRLWIND), - LEVEL_UP_MOVE(25, MOVE_WING_ATTACK), - LEVEL_UP_MOVE(31, MOVE_FEATHER_DANCE), - LEVEL_UP_MOVE(39, MOVE_AGILITY), - LEVEL_UP_MOVE(47, MOVE_MIRROR_MOVE), - LEVEL_UP_END -}; - -const u16 gPidgeottoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_GUST), - LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 9, MOVE_GUST), - LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(20, MOVE_WHIRLWIND), - LEVEL_UP_MOVE(27, MOVE_WING_ATTACK), - LEVEL_UP_MOVE(34, MOVE_FEATHER_DANCE), - LEVEL_UP_MOVE(43, MOVE_AGILITY), - LEVEL_UP_MOVE(52, MOVE_MIRROR_MOVE), - LEVEL_UP_END -}; - -const u16 gPidgeotLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_GUST), - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 9, MOVE_GUST), - LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(20, MOVE_WHIRLWIND), - LEVEL_UP_MOVE(27, MOVE_WING_ATTACK), - LEVEL_UP_MOVE(34, MOVE_FEATHER_DANCE), - LEVEL_UP_MOVE(48, MOVE_AGILITY), - LEVEL_UP_MOVE(62, MOVE_MIRROR_MOVE), - LEVEL_UP_END -}; - -const u16 gRattataLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(13, MOVE_HYPER_FANG), - LEVEL_UP_MOVE(20, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(27, MOVE_PURSUIT), - LEVEL_UP_MOVE(34, MOVE_SUPER_FANG), - LEVEL_UP_MOVE(41, MOVE_ENDEAVOR), - LEVEL_UP_END -}; - -const u16 gRaticateLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(13, MOVE_HYPER_FANG), - LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(30, MOVE_PURSUIT), - LEVEL_UP_MOVE(40, MOVE_SUPER_FANG), - LEVEL_UP_MOVE(50, MOVE_ENDEAVOR), - LEVEL_UP_END -}; - -const u16 gSpearowLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_PECK), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 7, MOVE_LEER), - LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK), - LEVEL_UP_MOVE(19, MOVE_PURSUIT), - LEVEL_UP_MOVE(25, MOVE_AERIAL_ACE), - LEVEL_UP_MOVE(31, MOVE_MIRROR_MOVE), - LEVEL_UP_MOVE(37, MOVE_DRILL_PECK), - LEVEL_UP_MOVE(43, MOVE_AGILITY), - LEVEL_UP_END -}; - -const u16 gFearowLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_PECK), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 7, MOVE_LEER), - LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK), - LEVEL_UP_MOVE(26, MOVE_PURSUIT), - LEVEL_UP_MOVE(32, MOVE_MIRROR_MOVE), - LEVEL_UP_MOVE(40, MOVE_DRILL_PECK), - LEVEL_UP_MOVE(47, MOVE_AGILITY), - LEVEL_UP_END -}; - -const u16 gEkansLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WRAP), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 8, MOVE_POISON_STING), - LEVEL_UP_MOVE(13, MOVE_BITE), - LEVEL_UP_MOVE(20, MOVE_GLARE), - LEVEL_UP_MOVE(25, MOVE_SCREECH), - LEVEL_UP_MOVE(32, MOVE_ACID), - LEVEL_UP_MOVE(37, MOVE_STOCKPILE), - LEVEL_UP_MOVE(37, MOVE_SWALLOW), - LEVEL_UP_MOVE(37, MOVE_SPIT_UP), - LEVEL_UP_MOVE(44, MOVE_HAZE), - LEVEL_UP_END -}; - -const u16 gArbokLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WRAP), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_POISON_STING), - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE( 8, MOVE_POISON_STING), - LEVEL_UP_MOVE(13, MOVE_BITE), - LEVEL_UP_MOVE(20, MOVE_GLARE), - LEVEL_UP_MOVE(28, MOVE_SCREECH), - LEVEL_UP_MOVE(38, MOVE_ACID), - LEVEL_UP_MOVE(46, MOVE_STOCKPILE), - LEVEL_UP_MOVE(46, MOVE_SWALLOW), - LEVEL_UP_MOVE(46, MOVE_SPIT_UP), - LEVEL_UP_MOVE(56, MOVE_HAZE), - LEVEL_UP_END -}; - -const u16 gPikachuLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(15, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE(20, MOVE_SLAM), - LEVEL_UP_MOVE(26, MOVE_THUNDERBOLT), - LEVEL_UP_MOVE(33, MOVE_AGILITY), - LEVEL_UP_MOVE(41, MOVE_THUNDER), - LEVEL_UP_MOVE(50, MOVE_LIGHT_SCREEN), - LEVEL_UP_END -}; - -const u16 gRaichuLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT), - LEVEL_UP_END -}; - -const u16 gSandshrewLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 6, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(17, MOVE_POISON_STING), - LEVEL_UP_MOVE(23, MOVE_SLASH), - LEVEL_UP_MOVE(30, MOVE_SWIFT), - LEVEL_UP_MOVE(37, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(45, MOVE_SAND_TOMB), - LEVEL_UP_MOVE(53, MOVE_SANDSTORM), - LEVEL_UP_END -}; - -const u16 gSandslashLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 6, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(17, MOVE_POISON_STING), - LEVEL_UP_MOVE(24, MOVE_SLASH), - LEVEL_UP_MOVE(33, MOVE_SWIFT), - LEVEL_UP_MOVE(42, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(52, MOVE_SAND_TOMB), - LEVEL_UP_MOVE(62, MOVE_SANDSTORM), - LEVEL_UP_END -}; - -const u16 gNidoranFLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE(17, MOVE_POISON_STING), - LEVEL_UP_MOVE(20, MOVE_BITE), - LEVEL_UP_MOVE(23, MOVE_HELPING_HAND), - LEVEL_UP_MOVE(30, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(38, MOVE_FLATTER), - LEVEL_UP_MOVE(47, MOVE_CRUNCH), - LEVEL_UP_END -}; - -const u16 gNidorinaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE(18, MOVE_POISON_STING), - LEVEL_UP_MOVE(22, MOVE_BITE), - LEVEL_UP_MOVE(26, MOVE_HELPING_HAND), - LEVEL_UP_MOVE(34, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(43, MOVE_FLATTER), - LEVEL_UP_MOVE(53, MOVE_CRUNCH), - LEVEL_UP_END -}; - -const u16 gNidoqueenLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE( 1, MOVE_POISON_STING), - LEVEL_UP_MOVE(23, MOVE_BODY_SLAM), - LEVEL_UP_END -}; - -const u16 gNidoranMLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_PECK), - LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE(17, MOVE_POISON_STING), - LEVEL_UP_MOVE(20, MOVE_HORN_ATTACK), - LEVEL_UP_MOVE(23, MOVE_HELPING_HAND), - LEVEL_UP_MOVE(30, MOVE_FURY_ATTACK), - LEVEL_UP_MOVE(38, MOVE_FLATTER), - LEVEL_UP_MOVE(47, MOVE_HORN_DRILL), - LEVEL_UP_END -}; - -const u16 gNidorinoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_PECK), - LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE(18, MOVE_POISON_STING), - LEVEL_UP_MOVE(22, MOVE_HORN_ATTACK), - LEVEL_UP_MOVE(26, MOVE_HELPING_HAND), - LEVEL_UP_MOVE(34, MOVE_FURY_ATTACK), - LEVEL_UP_MOVE(43, MOVE_FLATTER), - LEVEL_UP_MOVE(53, MOVE_HORN_DRILL), - LEVEL_UP_END -}; - -const u16 gNidokingLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_PECK), - LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE( 1, MOVE_POISON_STING), - LEVEL_UP_MOVE(23, MOVE_THRASH), - LEVEL_UP_END -}; - -const u16 gClefairyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 5, MOVE_ENCORE), - LEVEL_UP_MOVE( 9, MOVE_SING), - LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP), - LEVEL_UP_MOVE(17, MOVE_FOLLOW_ME), - LEVEL_UP_MOVE(21, MOVE_MINIMIZE), - LEVEL_UP_MOVE(25, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE(29, MOVE_METRONOME), - LEVEL_UP_MOVE(33, MOVE_COSMIC_POWER), - LEVEL_UP_MOVE(37, MOVE_MOONLIGHT), - LEVEL_UP_MOVE(41, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE(45, MOVE_METEOR_MASH), - LEVEL_UP_END -}; - -const u16 gClefableLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SING), - LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), - LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), - LEVEL_UP_MOVE( 1, MOVE_METRONOME), - LEVEL_UP_END -}; - -const u16 gVulpixLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_EMBER), - LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 9, MOVE_ROAR), - LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(17, MOVE_WILL_O_WISP), - LEVEL_UP_MOVE(21, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(25, MOVE_IMPRISON), - LEVEL_UP_MOVE(29, MOVE_FLAMETHROWER), - LEVEL_UP_MOVE(33, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(37, MOVE_GRUDGE), - LEVEL_UP_MOVE(41, MOVE_FIRE_SPIN), - LEVEL_UP_END -}; - -const u16 gNinetalesLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_EMBER), - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(45, MOVE_FIRE_SPIN), - LEVEL_UP_END -}; - -const u16 gJigglypuffLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SING), - LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 9, MOVE_POUND), - LEVEL_UP_MOVE(14, MOVE_DISABLE), - LEVEL_UP_MOVE(19, MOVE_ROLLOUT), - LEVEL_UP_MOVE(24, MOVE_DOUBLE_SLAP), - LEVEL_UP_MOVE(29, MOVE_REST), - LEVEL_UP_MOVE(34, MOVE_BODY_SLAM), - LEVEL_UP_MOVE(39, MOVE_MIMIC), - LEVEL_UP_MOVE(44, MOVE_HYPER_VOICE), - LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -const u16 gWigglytuffLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SING), - LEVEL_UP_MOVE( 1, MOVE_DISABLE), - LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), - LEVEL_UP_END -}; - -const u16 gZubatLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), - LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(11, MOVE_ASTONISH), - LEVEL_UP_MOVE(16, MOVE_BITE), - LEVEL_UP_MOVE(21, MOVE_WING_ATTACK), - LEVEL_UP_MOVE(26, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(31, MOVE_AIR_CUTTER), - LEVEL_UP_MOVE(36, MOVE_MEAN_LOOK), - LEVEL_UP_MOVE(41, MOVE_POISON_FANG), - LEVEL_UP_MOVE(46, MOVE_HAZE), - LEVEL_UP_END -}; - -const u16 gGolbatLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCREECH), - LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), - LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(11, MOVE_ASTONISH), - LEVEL_UP_MOVE(16, MOVE_BITE), - LEVEL_UP_MOVE(21, MOVE_WING_ATTACK), - LEVEL_UP_MOVE(28, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(35, MOVE_AIR_CUTTER), - LEVEL_UP_MOVE(42, MOVE_MEAN_LOOK), - LEVEL_UP_MOVE(49, MOVE_POISON_FANG), - LEVEL_UP_MOVE(56, MOVE_HAZE), - LEVEL_UP_END -}; - -const u16 gOddishLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ABSORB), - LEVEL_UP_MOVE( 7, MOVE_SWEET_SCENT), - LEVEL_UP_MOVE(14, MOVE_POISON_POWDER), - LEVEL_UP_MOVE(16, MOVE_STUN_SPORE), - LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE(23, MOVE_ACID), - LEVEL_UP_MOVE(32, MOVE_MOONLIGHT), - LEVEL_UP_MOVE(39, MOVE_PETAL_DANCE), - LEVEL_UP_END -}; - -const u16 gGloomLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ABSORB), - LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), - LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 7, MOVE_SWEET_SCENT), - LEVEL_UP_MOVE(14, MOVE_POISON_POWDER), - LEVEL_UP_MOVE(16, MOVE_STUN_SPORE), - LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE(24, MOVE_ACID), - LEVEL_UP_MOVE(35, MOVE_MOONLIGHT), - LEVEL_UP_MOVE(44, MOVE_PETAL_DANCE), - LEVEL_UP_END -}; - -const u16 gVileplumeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ABSORB), - LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), - LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), - LEVEL_UP_MOVE(44, MOVE_PETAL_DANCE), - LEVEL_UP_END -}; - -const u16 gParasLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), - LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), - LEVEL_UP_MOVE(19, MOVE_LEECH_LIFE), - LEVEL_UP_MOVE(25, MOVE_SPORE), - LEVEL_UP_MOVE(31, MOVE_SLASH), - LEVEL_UP_MOVE(37, MOVE_GROWTH), - LEVEL_UP_MOVE(43, MOVE_GIGA_DRAIN), - LEVEL_UP_MOVE(49, MOVE_AROMATHERAPY), - LEVEL_UP_END -}; - -const u16 gParasectLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), - LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), - LEVEL_UP_MOVE(19, MOVE_LEECH_LIFE), - LEVEL_UP_MOVE(27, MOVE_SPORE), - LEVEL_UP_MOVE(35, MOVE_SLASH), - LEVEL_UP_MOVE(43, MOVE_GROWTH), - LEVEL_UP_MOVE(51, MOVE_GIGA_DRAIN), - LEVEL_UP_MOVE(59, MOVE_AROMATHERAPY), - LEVEL_UP_END -}; - -const u16 gVenonatLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_DISABLE), - LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), - LEVEL_UP_MOVE( 9, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(17, MOVE_CONFUSION), - LEVEL_UP_MOVE(20, MOVE_POISON_POWDER), - LEVEL_UP_MOVE(25, MOVE_LEECH_LIFE), - LEVEL_UP_MOVE(28, MOVE_STUN_SPORE), - LEVEL_UP_MOVE(33, MOVE_PSYBEAM), - LEVEL_UP_MOVE(36, MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE(41, MOVE_PSYCHIC), - LEVEL_UP_END -}; - -const u16 gVenomothLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SILVER_WIND), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_DISABLE), - LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), - LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 9, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(17, MOVE_CONFUSION), - LEVEL_UP_MOVE(20, MOVE_POISON_POWDER), - LEVEL_UP_MOVE(25, MOVE_LEECH_LIFE), - LEVEL_UP_MOVE(28, MOVE_STUN_SPORE), - LEVEL_UP_MOVE(31, MOVE_GUST), - LEVEL_UP_MOVE(36, MOVE_PSYBEAM), - LEVEL_UP_MOVE(42, MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE(52, MOVE_PSYCHIC), - LEVEL_UP_END -}; - -const u16 gDiglettLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 5, MOVE_GROWL), - LEVEL_UP_MOVE( 9, MOVE_MAGNITUDE), - LEVEL_UP_MOVE(17, MOVE_DIG), - LEVEL_UP_MOVE(25, MOVE_MUD_SLAP), - LEVEL_UP_MOVE(33, MOVE_SLASH), - LEVEL_UP_MOVE(41, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(49, MOVE_FISSURE), - LEVEL_UP_END -}; - -const u16 gDugtrioLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 5, MOVE_GROWL), - LEVEL_UP_MOVE( 9, MOVE_MAGNITUDE), - LEVEL_UP_MOVE(17, MOVE_DIG), - LEVEL_UP_MOVE(25, MOVE_MUD_SLAP), - LEVEL_UP_MOVE(26, MOVE_SAND_TOMB), - LEVEL_UP_MOVE(38, MOVE_SLASH), - LEVEL_UP_MOVE(51, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(64, MOVE_FISSURE), - LEVEL_UP_END -}; - -const u16 gMeowthLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE(11, MOVE_BITE), - LEVEL_UP_MOVE(20, MOVE_PAY_DAY), - LEVEL_UP_MOVE(28, MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE(35, MOVE_SCREECH), - LEVEL_UP_MOVE(41, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(46, MOVE_SLASH), - LEVEL_UP_MOVE(50, MOVE_FAKE_OUT), - LEVEL_UP_END -}; - -const u16 gPersianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE(11, MOVE_BITE), - LEVEL_UP_MOVE(20, MOVE_PAY_DAY), - LEVEL_UP_MOVE(29, MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE(38, MOVE_SCREECH), - LEVEL_UP_MOVE(46, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(53, MOVE_SLASH), - LEVEL_UP_MOVE(59, MOVE_FAKE_OUT), - LEVEL_UP_END -}; - -const u16 gPsyduckLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE(10, MOVE_DISABLE), - LEVEL_UP_MOVE(16, MOVE_CONFUSION), - LEVEL_UP_MOVE(23, MOVE_SCREECH), - LEVEL_UP_MOVE(31, MOVE_PSYCH_UP), - LEVEL_UP_MOVE(40, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -const u16 gGolduckLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_DISABLE), - LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE(10, MOVE_DISABLE), - LEVEL_UP_MOVE(16, MOVE_CONFUSION), - LEVEL_UP_MOVE(23, MOVE_SCREECH), - LEVEL_UP_MOVE(31, MOVE_PSYCH_UP), - LEVEL_UP_MOVE(44, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -const u16 gMankeyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 9, MOVE_LOW_KICK), - LEVEL_UP_MOVE(15, MOVE_KARATE_CHOP), - LEVEL_UP_MOVE(21, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(27, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(33, MOVE_SEISMIC_TOSS), - LEVEL_UP_MOVE(39, MOVE_CROSS_CHOP), - LEVEL_UP_MOVE(45, MOVE_SCREECH), - LEVEL_UP_MOVE(51, MOVE_THRASH), - LEVEL_UP_END -}; - -const u16 gPrimeapeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), - LEVEL_UP_MOVE( 1, MOVE_RAGE), - LEVEL_UP_MOVE( 9, MOVE_LOW_KICK), - LEVEL_UP_MOVE(15, MOVE_KARATE_CHOP), - LEVEL_UP_MOVE(21, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(27, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(28, MOVE_RAGE), - LEVEL_UP_MOVE(36, MOVE_SEISMIC_TOSS), - LEVEL_UP_MOVE(45, MOVE_CROSS_CHOP), - LEVEL_UP_MOVE(54, MOVE_SCREECH), - LEVEL_UP_MOVE(63, MOVE_THRASH), - LEVEL_UP_END -}; - -const u16 gGrowlitheLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE( 1, MOVE_ROAR), - LEVEL_UP_MOVE( 7, MOVE_EMBER), - LEVEL_UP_MOVE(13, MOVE_LEER), - LEVEL_UP_MOVE(19, MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(31, MOVE_FLAME_WHEEL), - LEVEL_UP_MOVE(37, MOVE_HELPING_HAND), - LEVEL_UP_MOVE(43, MOVE_AGILITY), - LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER), - LEVEL_UP_END -}; - -const u16 gArcanineLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE( 1, MOVE_ROAR), - LEVEL_UP_MOVE( 1, MOVE_EMBER), - LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE(49, MOVE_EXTREME_SPEED), - LEVEL_UP_END -}; - -const u16 gPoliwagLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BUBBLE), - LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS), - LEVEL_UP_MOVE(13, MOVE_WATER_GUN), - LEVEL_UP_MOVE(19, MOVE_DOUBLE_SLAP), - LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE), - LEVEL_UP_MOVE(31, MOVE_BODY_SLAM), - LEVEL_UP_MOVE(37, MOVE_BELLY_DRUM), - LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -const u16 gPoliwhirlLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BUBBLE), - LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS), - LEVEL_UP_MOVE(13, MOVE_WATER_GUN), - LEVEL_UP_MOVE(19, MOVE_DOUBLE_SLAP), - LEVEL_UP_MOVE(27, MOVE_RAIN_DANCE), - LEVEL_UP_MOVE(35, MOVE_BODY_SLAM), - LEVEL_UP_MOVE(43, MOVE_BELLY_DRUM), - LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -const u16 gPoliwrathLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), - LEVEL_UP_MOVE( 1, MOVE_SUBMISSION), - LEVEL_UP_MOVE(35, MOVE_SUBMISSION), - LEVEL_UP_MOVE(51, MOVE_MIND_READER), - LEVEL_UP_END -}; - -const u16 gAbraLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TELEPORT), - LEVEL_UP_END -}; - -const u16 gKadabraLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TELEPORT), - LEVEL_UP_MOVE( 1, MOVE_KINESIS), - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE(16, MOVE_CONFUSION), - LEVEL_UP_MOVE(18, MOVE_DISABLE), - LEVEL_UP_MOVE(21, MOVE_PSYBEAM), - LEVEL_UP_MOVE(23, MOVE_REFLECT), - LEVEL_UP_MOVE(25, MOVE_RECOVER), - LEVEL_UP_MOVE(30, MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE(33, MOVE_ROLE_PLAY), - LEVEL_UP_MOVE(36, MOVE_PSYCHIC), - LEVEL_UP_MOVE(43, MOVE_TRICK), - LEVEL_UP_END -}; - -const u16 gAlakazamLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TELEPORT), - LEVEL_UP_MOVE( 1, MOVE_KINESIS), - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE(16, MOVE_CONFUSION), - LEVEL_UP_MOVE(18, MOVE_DISABLE), - LEVEL_UP_MOVE(21, MOVE_PSYBEAM), - LEVEL_UP_MOVE(23, MOVE_REFLECT), - LEVEL_UP_MOVE(25, MOVE_RECOVER), - LEVEL_UP_MOVE(30, MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE(33, MOVE_CALM_MIND), - LEVEL_UP_MOVE(36, MOVE_PSYCHIC), - LEVEL_UP_MOVE(43, MOVE_TRICK), - LEVEL_UP_END -}; - -const u16 gMachopLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(13, MOVE_KARATE_CHOP), - LEVEL_UP_MOVE(19, MOVE_SEISMIC_TOSS), - LEVEL_UP_MOVE(22, MOVE_FORESIGHT), - LEVEL_UP_MOVE(25, MOVE_REVENGE), - LEVEL_UP_MOVE(31, MOVE_VITAL_THROW), - LEVEL_UP_MOVE(37, MOVE_SUBMISSION), - LEVEL_UP_MOVE(40, MOVE_CROSS_CHOP), - LEVEL_UP_MOVE(43, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(49, MOVE_DYNAMIC_PUNCH), - LEVEL_UP_END -}; - -const u16 gMachokeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(13, MOVE_KARATE_CHOP), - LEVEL_UP_MOVE(19, MOVE_SEISMIC_TOSS), - LEVEL_UP_MOVE(22, MOVE_FORESIGHT), - LEVEL_UP_MOVE(25, MOVE_REVENGE), - LEVEL_UP_MOVE(33, MOVE_VITAL_THROW), - LEVEL_UP_MOVE(41, MOVE_SUBMISSION), - LEVEL_UP_MOVE(46, MOVE_CROSS_CHOP), - LEVEL_UP_MOVE(51, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(59, MOVE_DYNAMIC_PUNCH), - LEVEL_UP_END -}; - -const u16 gMachampLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(13, MOVE_KARATE_CHOP), - LEVEL_UP_MOVE(19, MOVE_SEISMIC_TOSS), - LEVEL_UP_MOVE(22, MOVE_FORESIGHT), - LEVEL_UP_MOVE(25, MOVE_REVENGE), - LEVEL_UP_MOVE(33, MOVE_VITAL_THROW), - LEVEL_UP_MOVE(41, MOVE_SUBMISSION), - LEVEL_UP_MOVE(46, MOVE_CROSS_CHOP), - LEVEL_UP_MOVE(51, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(59, MOVE_DYNAMIC_PUNCH), - LEVEL_UP_END -}; - -const u16 gBellsproutLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), - LEVEL_UP_MOVE( 6, MOVE_GROWTH), - LEVEL_UP_MOVE(11, MOVE_WRAP), - LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE(17, MOVE_POISON_POWDER), - LEVEL_UP_MOVE(19, MOVE_STUN_SPORE), - LEVEL_UP_MOVE(23, MOVE_ACID), - LEVEL_UP_MOVE(30, MOVE_SWEET_SCENT), - LEVEL_UP_MOVE(37, MOVE_RAZOR_LEAF), - LEVEL_UP_MOVE(45, MOVE_SLAM), - LEVEL_UP_END -}; - -const u16 gWeepinbellLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), - LEVEL_UP_MOVE( 1, MOVE_GROWTH), - LEVEL_UP_MOVE( 1, MOVE_WRAP), - LEVEL_UP_MOVE( 6, MOVE_GROWTH), - LEVEL_UP_MOVE(11, MOVE_WRAP), - LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE(17, MOVE_POISON_POWDER), - LEVEL_UP_MOVE(19, MOVE_STUN_SPORE), - LEVEL_UP_MOVE(24, MOVE_ACID), - LEVEL_UP_MOVE(33, MOVE_SWEET_SCENT), - LEVEL_UP_MOVE(42, MOVE_RAZOR_LEAF), - LEVEL_UP_MOVE(54, MOVE_SLAM), - LEVEL_UP_END -}; - -const u16 gVictreebelLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), - LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), - LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), - LEVEL_UP_END -}; - -const u16 gTentacoolLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POISON_STING), - LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(12, MOVE_CONSTRICT), - LEVEL_UP_MOVE(19, MOVE_ACID), - LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), - LEVEL_UP_MOVE(30, MOVE_WRAP), - LEVEL_UP_MOVE(36, MOVE_BARRIER), - LEVEL_UP_MOVE(43, MOVE_SCREECH), - LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -const u16 gTentacruelLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POISON_STING), - LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), - LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(12, MOVE_CONSTRICT), - LEVEL_UP_MOVE(19, MOVE_ACID), - LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), - LEVEL_UP_MOVE(30, MOVE_WRAP), - LEVEL_UP_MOVE(38, MOVE_BARRIER), - LEVEL_UP_MOVE(47, MOVE_SCREECH), - LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -const u16 gGeodudeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), - LEVEL_UP_MOVE(11, MOVE_ROCK_THROW), - LEVEL_UP_MOVE(16, MOVE_MAGNITUDE), - LEVEL_UP_MOVE(21, MOVE_SELF_DESTRUCT), - LEVEL_UP_MOVE(26, MOVE_ROLLOUT), - LEVEL_UP_MOVE(31, MOVE_ROCK_BLAST), - LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(41, MOVE_EXPLOSION), - LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -const u16 gGravelerLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), - LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), - LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), - LEVEL_UP_MOVE(11, MOVE_ROCK_THROW), - LEVEL_UP_MOVE(16, MOVE_MAGNITUDE), - LEVEL_UP_MOVE(21, MOVE_SELF_DESTRUCT), - LEVEL_UP_MOVE(29, MOVE_ROLLOUT), - LEVEL_UP_MOVE(37, MOVE_ROCK_BLAST), - LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(53, MOVE_EXPLOSION), - LEVEL_UP_MOVE(62, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -const u16 gGolemLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), - LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), - LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), - LEVEL_UP_MOVE(11, MOVE_ROCK_THROW), - LEVEL_UP_MOVE(16, MOVE_MAGNITUDE), - LEVEL_UP_MOVE(21, MOVE_SELF_DESTRUCT), - LEVEL_UP_MOVE(29, MOVE_ROLLOUT), - LEVEL_UP_MOVE(37, MOVE_ROCK_BLAST), - LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(53, MOVE_EXPLOSION), - LEVEL_UP_MOVE(62, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -const u16 gPonytaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 5, MOVE_GROWL), - LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE(14, MOVE_EMBER), - LEVEL_UP_MOVE(19, MOVE_STOMP), - LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN), - LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(38, MOVE_AGILITY), - LEVEL_UP_MOVE(45, MOVE_BOUNCE), - LEVEL_UP_MOVE(53, MOVE_FIRE_BLAST), - LEVEL_UP_END -}; - -const u16 gRapidashLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_EMBER), - LEVEL_UP_MOVE( 5, MOVE_GROWL), - LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE(14, MOVE_EMBER), - LEVEL_UP_MOVE(19, MOVE_STOMP), - LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN), - LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(38, MOVE_AGILITY), - LEVEL_UP_MOVE(40, MOVE_FURY_ATTACK), - LEVEL_UP_MOVE(50, MOVE_BOUNCE), - LEVEL_UP_MOVE(63, MOVE_FIRE_BLAST), - LEVEL_UP_END -}; - -const u16 gSlowpokeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_CURSE), - LEVEL_UP_MOVE( 1, MOVE_YAWN), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 6, MOVE_GROWL), - LEVEL_UP_MOVE(15, MOVE_WATER_GUN), - LEVEL_UP_MOVE(20, MOVE_CONFUSION), - LEVEL_UP_MOVE(29, MOVE_DISABLE), - LEVEL_UP_MOVE(34, MOVE_HEADBUTT), - LEVEL_UP_MOVE(43, MOVE_AMNESIA), - LEVEL_UP_MOVE(48, MOVE_PSYCHIC), - LEVEL_UP_END -}; - -const u16 gSlowbroLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_CURSE), - LEVEL_UP_MOVE( 1, MOVE_YAWN), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 6, MOVE_GROWL), - LEVEL_UP_MOVE(15, MOVE_WATER_GUN), - LEVEL_UP_MOVE(20, MOVE_CONFUSION), - LEVEL_UP_MOVE(29, MOVE_DISABLE), - LEVEL_UP_MOVE(34, MOVE_HEADBUTT), - LEVEL_UP_MOVE(37, MOVE_WITHDRAW), - LEVEL_UP_MOVE(46, MOVE_AMNESIA), - LEVEL_UP_MOVE(54, MOVE_PSYCHIC), - LEVEL_UP_END -}; - -const u16 gMagnemiteLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE(11, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(16, MOVE_SONIC_BOOM), - LEVEL_UP_MOVE(21, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE(26, MOVE_SPARK), - LEVEL_UP_MOVE(32, MOVE_LOCK_ON), - LEVEL_UP_MOVE(38, MOVE_SWIFT), - LEVEL_UP_MOVE(44, MOVE_SCREECH), - LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON), - LEVEL_UP_END -}; - -const u16 gMagnetonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE(11, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(16, MOVE_SONIC_BOOM), - LEVEL_UP_MOVE(21, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE(26, MOVE_SPARK), - LEVEL_UP_MOVE(35, MOVE_LOCK_ON), - LEVEL_UP_MOVE(44, MOVE_TRI_ATTACK), - LEVEL_UP_MOVE(53, MOVE_SCREECH), - LEVEL_UP_MOVE(62, MOVE_ZAP_CANNON), - LEVEL_UP_END -}; - -const u16 gFarfetchdLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_PECK), - LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(11, MOVE_LEER), - LEVEL_UP_MOVE(16, MOVE_FURY_ATTACK), - LEVEL_UP_MOVE(21, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE(26, MOVE_FURY_CUTTER), - LEVEL_UP_MOVE(31, MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE(36, MOVE_AGILITY), - LEVEL_UP_MOVE(41, MOVE_SLASH), - LEVEL_UP_MOVE(46, MOVE_FALSE_SWIPE), - LEVEL_UP_END -}; - -const u16 gDoduoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_PECK), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 9, MOVE_PURSUIT), - LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK), - LEVEL_UP_MOVE(21, MOVE_TRI_ATTACK), - LEVEL_UP_MOVE(25, MOVE_RAGE), - LEVEL_UP_MOVE(33, MOVE_UPROAR), - LEVEL_UP_MOVE(37, MOVE_DRILL_PECK), - LEVEL_UP_MOVE(45, MOVE_AGILITY), - LEVEL_UP_END -}; - -const u16 gDodrioLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_PECK), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_PURSUIT), - LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 9, MOVE_PURSUIT), - LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK), - LEVEL_UP_MOVE(21, MOVE_TRI_ATTACK), - LEVEL_UP_MOVE(25, MOVE_RAGE), - LEVEL_UP_MOVE(38, MOVE_UPROAR), - LEVEL_UP_MOVE(47, MOVE_DRILL_PECK), - LEVEL_UP_MOVE(60, MOVE_AGILITY), - LEVEL_UP_END -}; - -const u16 gSeelLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), - LEVEL_UP_MOVE( 9, MOVE_GROWL), - LEVEL_UP_MOVE(17, MOVE_ICY_WIND), - LEVEL_UP_MOVE(21, MOVE_AURORA_BEAM), - LEVEL_UP_MOVE(29, MOVE_REST), - LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(41, MOVE_ICE_BEAM), - LEVEL_UP_MOVE(49, MOVE_SAFEGUARD), - LEVEL_UP_END -}; - -const u16 gDewgongLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), - LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM), - LEVEL_UP_MOVE( 9, MOVE_GROWL), - LEVEL_UP_MOVE(17, MOVE_ICY_WIND), - LEVEL_UP_MOVE(21, MOVE_AURORA_BEAM), - LEVEL_UP_MOVE(29, MOVE_REST), - LEVEL_UP_MOVE(34, MOVE_SHEER_COLD), - LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(51, MOVE_ICE_BEAM), - LEVEL_UP_MOVE(64, MOVE_SAFEGUARD), - LEVEL_UP_END -}; - -const u16 gGrimerLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 4, MOVE_HARDEN), - LEVEL_UP_MOVE( 8, MOVE_DISABLE), - LEVEL_UP_MOVE(13, MOVE_SLUDGE), - LEVEL_UP_MOVE(19, MOVE_MINIMIZE), - LEVEL_UP_MOVE(26, MOVE_SCREECH), - LEVEL_UP_MOVE(34, MOVE_ACID_ARMOR), - LEVEL_UP_MOVE(43, MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE(53, MOVE_MEMENTO), - LEVEL_UP_END -}; - -const u16 gMukLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 4, MOVE_HARDEN), - LEVEL_UP_MOVE( 8, MOVE_DISABLE), - LEVEL_UP_MOVE(13, MOVE_SLUDGE), - LEVEL_UP_MOVE(19, MOVE_MINIMIZE), - LEVEL_UP_MOVE(26, MOVE_SCREECH), - LEVEL_UP_MOVE(34, MOVE_ACID_ARMOR), - LEVEL_UP_MOVE(47, MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE(61, MOVE_MEMENTO), - LEVEL_UP_END -}; - -const u16 gShellderLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), - LEVEL_UP_MOVE( 9, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(17, MOVE_AURORA_BEAM), - LEVEL_UP_MOVE(25, MOVE_PROTECT), - LEVEL_UP_MOVE(33, MOVE_LEER), - LEVEL_UP_MOVE(41, MOVE_CLAMP), - LEVEL_UP_MOVE(49, MOVE_ICE_BEAM), - LEVEL_UP_END -}; - -const u16 gCloysterLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), - LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM), - LEVEL_UP_MOVE( 1, MOVE_PROTECT), - LEVEL_UP_MOVE(33, MOVE_SPIKES), - LEVEL_UP_MOVE(41, MOVE_SPIKE_CANNON), - LEVEL_UP_END -}; - -const u16 gGastlyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 1, MOVE_LICK), - LEVEL_UP_MOVE( 8, MOVE_SPITE), - LEVEL_UP_MOVE(13, MOVE_MEAN_LOOK), - LEVEL_UP_MOVE(16, MOVE_CURSE), - LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE(28, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(33, MOVE_DREAM_EATER), - LEVEL_UP_MOVE(36, MOVE_DESTINY_BOND), - LEVEL_UP_END -}; - -const u16 gHaunterLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 1, MOVE_LICK), - LEVEL_UP_MOVE( 1, MOVE_SPITE), - LEVEL_UP_MOVE( 8, MOVE_SPITE), - LEVEL_UP_MOVE(13, MOVE_MEAN_LOOK), - LEVEL_UP_MOVE(16, MOVE_CURSE), - LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE(25, MOVE_SHADOW_PUNCH), - LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(39, MOVE_DREAM_EATER), - LEVEL_UP_MOVE(48, MOVE_DESTINY_BOND), - LEVEL_UP_END -}; - -const u16 gGengarLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 1, MOVE_LICK), - LEVEL_UP_MOVE( 1, MOVE_SPITE), - LEVEL_UP_MOVE( 8, MOVE_SPITE), - LEVEL_UP_MOVE(13, MOVE_MEAN_LOOK), - LEVEL_UP_MOVE(16, MOVE_CURSE), - LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE(25, MOVE_SHADOW_PUNCH), - LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(39, MOVE_DREAM_EATER), - LEVEL_UP_MOVE(48, MOVE_DESTINY_BOND), - LEVEL_UP_END -}; - -const u16 gOnixLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_SCREECH), - LEVEL_UP_MOVE( 9, MOVE_BIND), - LEVEL_UP_MOVE(13, MOVE_ROCK_THROW), - LEVEL_UP_MOVE(21, MOVE_HARDEN), - LEVEL_UP_MOVE(25, MOVE_RAGE), - LEVEL_UP_MOVE(33, MOVE_SANDSTORM), - LEVEL_UP_MOVE(37, MOVE_SLAM), - LEVEL_UP_MOVE(45, MOVE_IRON_TAIL), - LEVEL_UP_MOVE(49, MOVE_SAND_TOMB), - LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -const u16 gDrowzeeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), - LEVEL_UP_MOVE(10, MOVE_DISABLE), - LEVEL_UP_MOVE(18, MOVE_CONFUSION), - LEVEL_UP_MOVE(25, MOVE_HEADBUTT), - LEVEL_UP_MOVE(31, MOVE_POISON_GAS), - LEVEL_UP_MOVE(36, MOVE_MEDITATE), - LEVEL_UP_MOVE(40, MOVE_PSYCHIC), - LEVEL_UP_MOVE(43, MOVE_PSYCH_UP), - LEVEL_UP_MOVE(45, MOVE_FUTURE_SIGHT), - LEVEL_UP_END -}; - -const u16 gHypnoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 1, MOVE_DISABLE), - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE(10, MOVE_DISABLE), - LEVEL_UP_MOVE(18, MOVE_CONFUSION), - LEVEL_UP_MOVE(25, MOVE_HEADBUTT), - LEVEL_UP_MOVE(33, MOVE_POISON_GAS), - LEVEL_UP_MOVE(40, MOVE_MEDITATE), - LEVEL_UP_MOVE(49, MOVE_PSYCHIC), - LEVEL_UP_MOVE(55, MOVE_PSYCH_UP), - LEVEL_UP_MOVE(60, MOVE_FUTURE_SIGHT), - LEVEL_UP_END -}; - -const u16 gKrabbyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BUBBLE), - LEVEL_UP_MOVE( 5, MOVE_LEER), - LEVEL_UP_MOVE(12, MOVE_VICE_GRIP), - LEVEL_UP_MOVE(16, MOVE_HARDEN), - LEVEL_UP_MOVE(23, MOVE_MUD_SHOT), - LEVEL_UP_MOVE(27, MOVE_STOMP), - LEVEL_UP_MOVE(34, MOVE_GUILLOTINE), - LEVEL_UP_MOVE(41, MOVE_PROTECT), - LEVEL_UP_MOVE(45, MOVE_CRABHAMMER), - LEVEL_UP_END -}; - -const u16 gKinglerLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BUBBLE), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_VICE_GRIP), - LEVEL_UP_MOVE( 5, MOVE_LEER), - LEVEL_UP_MOVE(12, MOVE_VICE_GRIP), - LEVEL_UP_MOVE(16, MOVE_HARDEN), - LEVEL_UP_MOVE(23, MOVE_MUD_SHOT), - LEVEL_UP_MOVE(27, MOVE_STOMP), - LEVEL_UP_MOVE(38, MOVE_GUILLOTINE), - LEVEL_UP_MOVE(49, MOVE_PROTECT), - LEVEL_UP_MOVE(57, MOVE_CRABHAMMER), - LEVEL_UP_END -}; - -const u16 gVoltorbLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_CHARGE), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 8, MOVE_SCREECH), - LEVEL_UP_MOVE(15, MOVE_SONIC_BOOM), - LEVEL_UP_MOVE(21, MOVE_SPARK), - LEVEL_UP_MOVE(27, MOVE_SELF_DESTRUCT), - LEVEL_UP_MOVE(32, MOVE_ROLLOUT), - LEVEL_UP_MOVE(37, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE(42, MOVE_SWIFT), - LEVEL_UP_MOVE(46, MOVE_EXPLOSION), - LEVEL_UP_MOVE(49, MOVE_MIRROR_COAT), - LEVEL_UP_END -}; - -const u16 gElectrodeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_CHARGE), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_SCREECH), - LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), - LEVEL_UP_MOVE( 8, MOVE_SCREECH), - LEVEL_UP_MOVE(15, MOVE_SONIC_BOOM), - LEVEL_UP_MOVE(21, MOVE_SPARK), - LEVEL_UP_MOVE(27, MOVE_SELF_DESTRUCT), - LEVEL_UP_MOVE(34, MOVE_ROLLOUT), - LEVEL_UP_MOVE(41, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE(48, MOVE_SWIFT), - LEVEL_UP_MOVE(54, MOVE_EXPLOSION), - LEVEL_UP_MOVE(59, MOVE_MIRROR_COAT), - LEVEL_UP_END -}; - -const u16 gExeggcuteLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BARRAGE), - LEVEL_UP_MOVE( 1, MOVE_UPROAR), - LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 7, MOVE_REFLECT), - LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), - LEVEL_UP_MOVE(19, MOVE_CONFUSION), - LEVEL_UP_MOVE(25, MOVE_STUN_SPORE), - LEVEL_UP_MOVE(31, MOVE_POISON_POWDER), - LEVEL_UP_MOVE(37, MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM), - LEVEL_UP_END -}; - -const u16 gExeggutorLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BARRAGE), - LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE(19, MOVE_STOMP), - LEVEL_UP_MOVE(31, MOVE_EGG_BOMB), - LEVEL_UP_END -}; - -const u16 gCuboneLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 9, MOVE_BONE_CLUB), - LEVEL_UP_MOVE(13, MOVE_HEADBUTT), - LEVEL_UP_MOVE(17, MOVE_LEER), - LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(25, MOVE_BONEMERANG), - LEVEL_UP_MOVE(29, MOVE_RAGE), - LEVEL_UP_MOVE(33, MOVE_FALSE_SWIPE), - LEVEL_UP_MOVE(37, MOVE_THRASH), - LEVEL_UP_MOVE(41, MOVE_BONE_RUSH), - LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -const u16 gMarowakLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB), - LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), - LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 9, MOVE_BONE_CLUB), - LEVEL_UP_MOVE(13, MOVE_HEADBUTT), - LEVEL_UP_MOVE(17, MOVE_LEER), - LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(25, MOVE_BONEMERANG), - LEVEL_UP_MOVE(32, MOVE_RAGE), - LEVEL_UP_MOVE(39, MOVE_FALSE_SWIPE), - LEVEL_UP_MOVE(46, MOVE_THRASH), - LEVEL_UP_MOVE(53, MOVE_BONE_RUSH), - LEVEL_UP_MOVE(61, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -const u16 gHitmonleeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_REVENGE), - LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE( 6, MOVE_MEDITATE), - LEVEL_UP_MOVE(11, MOVE_ROLLING_KICK), - LEVEL_UP_MOVE(16, MOVE_JUMP_KICK), - LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), - LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(26, MOVE_HI_JUMP_KICK), - LEVEL_UP_MOVE(31, MOVE_MIND_READER), - LEVEL_UP_MOVE(36, MOVE_FORESIGHT), - LEVEL_UP_MOVE(41, MOVE_ENDURE), - LEVEL_UP_MOVE(46, MOVE_MEGA_KICK), - LEVEL_UP_MOVE(51, MOVE_REVERSAL), - LEVEL_UP_END -}; - -const u16 gHitmonchanLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_REVENGE), - LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH), - LEVEL_UP_MOVE( 7, MOVE_AGILITY), - LEVEL_UP_MOVE(13, MOVE_PURSUIT), - LEVEL_UP_MOVE(20, MOVE_MACH_PUNCH), - LEVEL_UP_MOVE(26, MOVE_THUNDER_PUNCH), - LEVEL_UP_MOVE(26, MOVE_ICE_PUNCH), - LEVEL_UP_MOVE(26, MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE(32, MOVE_SKY_UPPERCUT), - LEVEL_UP_MOVE(38, MOVE_MEGA_PUNCH), - LEVEL_UP_MOVE(44, MOVE_DETECT), - LEVEL_UP_MOVE(50, MOVE_COUNTER), - LEVEL_UP_END -}; - -const u16 gLickitungLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_LICK), - LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(12, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE(18, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE(23, MOVE_STOMP), - LEVEL_UP_MOVE(29, MOVE_WRAP), - LEVEL_UP_MOVE(34, MOVE_DISABLE), - LEVEL_UP_MOVE(40, MOVE_SLAM), - LEVEL_UP_MOVE(45, MOVE_SCREECH), - LEVEL_UP_MOVE(51, MOVE_REFRESH), - LEVEL_UP_END -}; - -const u16 gKoffingLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 9, MOVE_SMOG), - LEVEL_UP_MOVE(17, MOVE_SELF_DESTRUCT), - LEVEL_UP_MOVE(21, MOVE_SLUDGE), - LEVEL_UP_MOVE(25, MOVE_SMOKESCREEN), - LEVEL_UP_MOVE(33, MOVE_HAZE), - LEVEL_UP_MOVE(41, MOVE_EXPLOSION), - LEVEL_UP_MOVE(45, MOVE_DESTINY_BOND), - LEVEL_UP_MOVE(49, MOVE_MEMENTO), - LEVEL_UP_END -}; - -const u16 gWeezingLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_SMOG), - LEVEL_UP_MOVE( 1, MOVE_SELF_DESTRUCT), - LEVEL_UP_MOVE( 9, MOVE_SMOG), - LEVEL_UP_MOVE(17, MOVE_SELF_DESTRUCT), - LEVEL_UP_MOVE(21, MOVE_SLUDGE), - LEVEL_UP_MOVE(25, MOVE_SMOKESCREEN), - LEVEL_UP_MOVE(33, MOVE_HAZE), - LEVEL_UP_MOVE(44, MOVE_EXPLOSION), - LEVEL_UP_MOVE(51, MOVE_DESTINY_BOND), - LEVEL_UP_MOVE(58, MOVE_MEMENTO), - LEVEL_UP_END -}; - -const u16 gRhyhornLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE(10, MOVE_STOMP), - LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK), - LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(29, MOVE_ROCK_BLAST), - LEVEL_UP_MOVE(38, MOVE_HORN_DRILL), - LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(52, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(57, MOVE_MEGAHORN), - LEVEL_UP_END -}; - -const u16 gRhydonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_STOMP), - LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), - LEVEL_UP_MOVE(10, MOVE_STOMP), - LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK), - LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(29, MOVE_ROCK_BLAST), - LEVEL_UP_MOVE(38, MOVE_HORN_DRILL), - LEVEL_UP_MOVE(46, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(58, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(66, MOVE_MEGAHORN), - LEVEL_UP_END -}; - -const u16 gChanseyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 9, MOVE_REFRESH), - LEVEL_UP_MOVE(13, MOVE_SOFT_BOILED), - LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP), - LEVEL_UP_MOVE(23, MOVE_MINIMIZE), - LEVEL_UP_MOVE(29, MOVE_SING), - LEVEL_UP_MOVE(35, MOVE_EGG_BOMB), - LEVEL_UP_MOVE(41, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE(49, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -const u16 gTangelaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_INGRAIN), - LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), - LEVEL_UP_MOVE( 4, MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE(10, MOVE_ABSORB), - LEVEL_UP_MOVE(13, MOVE_GROWTH), - LEVEL_UP_MOVE(19, MOVE_POISON_POWDER), - LEVEL_UP_MOVE(22, MOVE_VINE_WHIP), - LEVEL_UP_MOVE(28, MOVE_BIND), - LEVEL_UP_MOVE(31, MOVE_MEGA_DRAIN), - LEVEL_UP_MOVE(37, MOVE_STUN_SPORE), - LEVEL_UP_MOVE(40, MOVE_SLAM), - LEVEL_UP_MOVE(46, MOVE_TICKLE), - LEVEL_UP_END -}; - -const u16 gKangaskhanLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 7, MOVE_BITE), - LEVEL_UP_MOVE(13, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), - LEVEL_UP_MOVE(25, MOVE_MEGA_PUNCH), - LEVEL_UP_MOVE(31, MOVE_RAGE), - LEVEL_UP_MOVE(37, MOVE_ENDURE), - LEVEL_UP_MOVE(43, MOVE_DIZZY_PUNCH), - LEVEL_UP_MOVE(49, MOVE_REVERSAL), - LEVEL_UP_END -}; - -const u16 gHorseaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BUBBLE), - LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN), - LEVEL_UP_MOVE(15, MOVE_LEER), - LEVEL_UP_MOVE(22, MOVE_WATER_GUN), - LEVEL_UP_MOVE(29, MOVE_TWISTER), - LEVEL_UP_MOVE(36, MOVE_AGILITY), - LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE(50, MOVE_DRAGON_DANCE), - LEVEL_UP_END -}; - -const u16 gSeadraLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BUBBLE), - LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN), - LEVEL_UP_MOVE(15, MOVE_LEER), - LEVEL_UP_MOVE(22, MOVE_WATER_GUN), - LEVEL_UP_MOVE(29, MOVE_TWISTER), - LEVEL_UP_MOVE(40, MOVE_AGILITY), - LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE(62, MOVE_DRAGON_DANCE), - LEVEL_UP_END -}; - -const u16 gGoldeenLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_PECK), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), - LEVEL_UP_MOVE(10, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(15, MOVE_HORN_ATTACK), - LEVEL_UP_MOVE(24, MOVE_FLAIL), - LEVEL_UP_MOVE(29, MOVE_FURY_ATTACK), - LEVEL_UP_MOVE(38, MOVE_WATERFALL), - LEVEL_UP_MOVE(43, MOVE_HORN_DRILL), - LEVEL_UP_MOVE(52, MOVE_AGILITY), - LEVEL_UP_END -}; - -const u16 gSeakingLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_PECK), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), - LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(10, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(15, MOVE_HORN_ATTACK), - LEVEL_UP_MOVE(24, MOVE_FLAIL), - LEVEL_UP_MOVE(29, MOVE_FURY_ATTACK), - LEVEL_UP_MOVE(41, MOVE_WATERFALL), - LEVEL_UP_MOVE(49, MOVE_HORN_DRILL), - LEVEL_UP_MOVE(61, MOVE_AGILITY), - LEVEL_UP_END -}; - -const u16 gStaryuLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), - LEVEL_UP_MOVE(10, MOVE_RAPID_SPIN), - LEVEL_UP_MOVE(15, MOVE_RECOVER), - LEVEL_UP_MOVE(19, MOVE_CAMOUFLAGE), - LEVEL_UP_MOVE(24, MOVE_SWIFT), - LEVEL_UP_MOVE(28, MOVE_BUBBLE_BEAM), - LEVEL_UP_MOVE(33, MOVE_MINIMIZE), - LEVEL_UP_MOVE(37, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE(42, MOVE_COSMIC_POWER), - LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -const u16 gStarmieLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), - LEVEL_UP_MOVE( 1, MOVE_RECOVER), - LEVEL_UP_MOVE( 1, MOVE_SWIFT), - LEVEL_UP_MOVE(33, MOVE_CONFUSE_RAY), - LEVEL_UP_END -}; - -const u16 gMrmimeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BARRIER), - LEVEL_UP_MOVE( 5, MOVE_CONFUSION), - LEVEL_UP_MOVE( 9, MOVE_SUBSTITUTE), - LEVEL_UP_MOVE(13, MOVE_MEDITATE), - LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP), - LEVEL_UP_MOVE(21, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE(21, MOVE_REFLECT), - LEVEL_UP_MOVE(25, MOVE_ENCORE), - LEVEL_UP_MOVE(29, MOVE_PSYBEAM), - LEVEL_UP_MOVE(33, MOVE_RECYCLE), - LEVEL_UP_MOVE(37, MOVE_TRICK), - LEVEL_UP_MOVE(41, MOVE_ROLE_PLAY), - LEVEL_UP_MOVE(45, MOVE_PSYCHIC), - LEVEL_UP_MOVE(49, MOVE_BATON_PASS), - LEVEL_UP_MOVE(53, MOVE_SAFEGUARD), - LEVEL_UP_END -}; - -const u16 gScytherLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(11, MOVE_PURSUIT), - LEVEL_UP_MOVE(16, MOVE_FALSE_SWIPE), - LEVEL_UP_MOVE(21, MOVE_AGILITY), - LEVEL_UP_MOVE(26, MOVE_WING_ATTACK), - LEVEL_UP_MOVE(31, MOVE_SLASH), - LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE(41, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE(46, MOVE_FURY_CUTTER), - LEVEL_UP_END -}; - -const u16 gJynxLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 1, MOVE_LICK), - LEVEL_UP_MOVE( 1, MOVE_LOVELY_KISS), - LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 9, MOVE_LOVELY_KISS), - LEVEL_UP_MOVE(13, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE(21, MOVE_DOUBLE_SLAP), - LEVEL_UP_MOVE(25, MOVE_ICE_PUNCH), - LEVEL_UP_MOVE(35, MOVE_MEAN_LOOK), - LEVEL_UP_MOVE(41, MOVE_FAKE_TEARS), - LEVEL_UP_MOVE(51, MOVE_BODY_SLAM), - LEVEL_UP_MOVE(57, MOVE_PERISH_SONG), - LEVEL_UP_MOVE(67, MOVE_BLIZZARD), - LEVEL_UP_END -}; - -const u16 gElectabuzzLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), - LEVEL_UP_MOVE( 9, MOVE_THUNDER_PUNCH), - LEVEL_UP_MOVE(17, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE(25, MOVE_SWIFT), - LEVEL_UP_MOVE(36, MOVE_SCREECH), - LEVEL_UP_MOVE(47, MOVE_THUNDERBOLT), - LEVEL_UP_MOVE(58, MOVE_THUNDER), - LEVEL_UP_END -}; - -const u16 gMagmarLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_EMBER), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_SMOG), - LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE( 7, MOVE_LEER), - LEVEL_UP_MOVE(13, MOVE_SMOG), - LEVEL_UP_MOVE(19, MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE(25, MOVE_SMOKESCREEN), - LEVEL_UP_MOVE(33, MOVE_SUNNY_DAY), - LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER), - LEVEL_UP_MOVE(49, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(57, MOVE_FIRE_BLAST), - LEVEL_UP_END -}; - -const u16 gPinsirLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_VICE_GRIP), - LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 7, MOVE_BIND), - LEVEL_UP_MOVE(13, MOVE_SEISMIC_TOSS), - LEVEL_UP_MOVE(19, MOVE_HARDEN), - LEVEL_UP_MOVE(25, MOVE_REVENGE), - LEVEL_UP_MOVE(31, MOVE_BRICK_BREAK), - LEVEL_UP_MOVE(37, MOVE_GUILLOTINE), - LEVEL_UP_MOVE(43, MOVE_SUBMISSION), - LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), - LEVEL_UP_END -}; - -const u16 gTaurosLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 8, MOVE_RAGE), - LEVEL_UP_MOVE(13, MOVE_HORN_ATTACK), - LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(26, MOVE_PURSUIT), - LEVEL_UP_MOVE(34, MOVE_REST), - LEVEL_UP_MOVE(43, MOVE_THRASH), - LEVEL_UP_MOVE(53, MOVE_TAKE_DOWN), - LEVEL_UP_END -}; - -const u16 gMagikarpLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SPLASH), - LEVEL_UP_MOVE(15, MOVE_TACKLE), - LEVEL_UP_MOVE(30, MOVE_FLAIL), - LEVEL_UP_END -}; - -const u16 gGyaradosLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_THRASH), - LEVEL_UP_MOVE(20, MOVE_BITE), - LEVEL_UP_MOVE(25, MOVE_DRAGON_RAGE), - LEVEL_UP_MOVE(30, MOVE_LEER), - LEVEL_UP_MOVE(35, MOVE_TWISTER), - LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE(45, MOVE_RAIN_DANCE), - LEVEL_UP_MOVE(50, MOVE_DRAGON_DANCE), - LEVEL_UP_MOVE(55, MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -const u16 gLaprasLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_SING), - LEVEL_UP_MOVE( 7, MOVE_MIST), - LEVEL_UP_MOVE(13, MOVE_BODY_SLAM), - LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(25, MOVE_PERISH_SONG), - LEVEL_UP_MOVE(31, MOVE_ICE_BEAM), - LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE), - LEVEL_UP_MOVE(43, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE(55, MOVE_SHEER_COLD), - LEVEL_UP_END -}; - -const u16 gDittoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TRANSFORM), - LEVEL_UP_END -}; - -const u16 gEeveeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(16, MOVE_GROWL), - LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(30, MOVE_BITE), - LEVEL_UP_MOVE(36, MOVE_BATON_PASS), - LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), - LEVEL_UP_END -}; - -const u16 gVaporeonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(16, MOVE_WATER_GUN), - LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(30, MOVE_BITE), - LEVEL_UP_MOVE(36, MOVE_AURORA_BEAM), - LEVEL_UP_MOVE(42, MOVE_HAZE), - LEVEL_UP_MOVE(47, MOVE_ACID_ARMOR), - LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -const u16 gJolteonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(16, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(30, MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE(36, MOVE_PIN_MISSILE), - LEVEL_UP_MOVE(42, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE(47, MOVE_AGILITY), - LEVEL_UP_MOVE(52, MOVE_THUNDER), - LEVEL_UP_END -}; - -const u16 gFlareonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(16, MOVE_EMBER), - LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(30, MOVE_BITE), - LEVEL_UP_MOVE(36, MOVE_FIRE_SPIN), - LEVEL_UP_MOVE(42, MOVE_SMOG), - LEVEL_UP_MOVE(47, MOVE_LEER), - LEVEL_UP_MOVE(52, MOVE_FLAMETHROWER), - LEVEL_UP_END -}; - -const u16 gPorygonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_CONVERSION), - LEVEL_UP_MOVE( 9, MOVE_AGILITY), - LEVEL_UP_MOVE(12, MOVE_PSYBEAM), - LEVEL_UP_MOVE(20, MOVE_RECOVER), - LEVEL_UP_MOVE(24, MOVE_SHARPEN), - LEVEL_UP_MOVE(32, MOVE_LOCK_ON), - LEVEL_UP_MOVE(36, MOVE_TRI_ATTACK), - LEVEL_UP_MOVE(44, MOVE_RECYCLE), - LEVEL_UP_MOVE(48, MOVE_ZAP_CANNON), - LEVEL_UP_END -}; - -const u16 gOmanyteLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), - LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), - LEVEL_UP_MOVE(13, MOVE_BITE), - LEVEL_UP_MOVE(19, MOVE_WATER_GUN), - LEVEL_UP_MOVE(25, MOVE_MUD_SHOT), - LEVEL_UP_MOVE(31, MOVE_LEER), - LEVEL_UP_MOVE(37, MOVE_PROTECT), - LEVEL_UP_MOVE(43, MOVE_TICKLE), - LEVEL_UP_MOVE(49, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -const u16 gOmastarLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), - LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE(13, MOVE_BITE), - LEVEL_UP_MOVE(19, MOVE_WATER_GUN), - LEVEL_UP_MOVE(25, MOVE_MUD_SHOT), - LEVEL_UP_MOVE(31, MOVE_LEER), - LEVEL_UP_MOVE(37, MOVE_PROTECT), - LEVEL_UP_MOVE(40, MOVE_SPIKE_CANNON), - LEVEL_UP_MOVE(46, MOVE_TICKLE), - LEVEL_UP_MOVE(55, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(65, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -const u16 gKabutoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE(13, MOVE_ABSORB), - LEVEL_UP_MOVE(19, MOVE_LEER), - LEVEL_UP_MOVE(25, MOVE_MUD_SHOT), - LEVEL_UP_MOVE(31, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(37, MOVE_ENDURE), - LEVEL_UP_MOVE(43, MOVE_METAL_SOUND), - LEVEL_UP_MOVE(49, MOVE_MEGA_DRAIN), - LEVEL_UP_MOVE(55, MOVE_ANCIENT_POWER), - LEVEL_UP_END -}; - -const u16 gKabutopsLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 1, MOVE_ABSORB), - LEVEL_UP_MOVE(13, MOVE_ABSORB), - LEVEL_UP_MOVE(19, MOVE_LEER), - LEVEL_UP_MOVE(25, MOVE_MUD_SHOT), - LEVEL_UP_MOVE(31, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(37, MOVE_ENDURE), - LEVEL_UP_MOVE(40, MOVE_SLASH), - LEVEL_UP_MOVE(46, MOVE_METAL_SOUND), - LEVEL_UP_MOVE(55, MOVE_MEGA_DRAIN), - LEVEL_UP_MOVE(65, MOVE_ANCIENT_POWER), - LEVEL_UP_END -}; - -const u16 gAerodactylLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), - LEVEL_UP_MOVE( 8, MOVE_AGILITY), - LEVEL_UP_MOVE(15, MOVE_BITE), - LEVEL_UP_MOVE(22, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(29, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(50, MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -const u16 gSnorlaxLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 6, MOVE_AMNESIA), - LEVEL_UP_MOVE(10, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE(15, MOVE_BELLY_DRUM), - LEVEL_UP_MOVE(19, MOVE_HEADBUTT), - LEVEL_UP_MOVE(24, MOVE_YAWN), - LEVEL_UP_MOVE(28, MOVE_REST), - LEVEL_UP_MOVE(28, MOVE_SNORE), - LEVEL_UP_MOVE(33, MOVE_BODY_SLAM), - LEVEL_UP_MOVE(37, MOVE_BLOCK), - LEVEL_UP_MOVE(42, MOVE_COVET), - LEVEL_UP_MOVE(46, MOVE_ROLLOUT), - LEVEL_UP_MOVE(51, MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -const u16 gArticunoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_GUST), - LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE(13, MOVE_MIST), - LEVEL_UP_MOVE(25, MOVE_AGILITY), - LEVEL_UP_MOVE(37, MOVE_MIND_READER), - LEVEL_UP_MOVE(49, MOVE_ICE_BEAM), - LEVEL_UP_MOVE(61, MOVE_REFLECT), - LEVEL_UP_MOVE(73, MOVE_BLIZZARD), - LEVEL_UP_MOVE(85, MOVE_SHEER_COLD), - LEVEL_UP_END -}; - -const u16 gZapdosLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_PECK), - LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE(13, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE(25, MOVE_AGILITY), - LEVEL_UP_MOVE(37, MOVE_DETECT), - LEVEL_UP_MOVE(49, MOVE_DRILL_PECK), - LEVEL_UP_MOVE(61, MOVE_CHARGE), - LEVEL_UP_MOVE(73, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE(85, MOVE_THUNDER), - LEVEL_UP_END -}; - -const u16 gMoltresLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_EMBER), - LEVEL_UP_MOVE(13, MOVE_FIRE_SPIN), - LEVEL_UP_MOVE(25, MOVE_AGILITY), - LEVEL_UP_MOVE(37, MOVE_ENDURE), - LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER), - LEVEL_UP_MOVE(61, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(73, MOVE_HEAT_WAVE), - LEVEL_UP_MOVE(85, MOVE_SKY_ATTACK), - LEVEL_UP_END -}; - -const u16 gDratiniLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WRAP), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE(15, MOVE_TWISTER), - LEVEL_UP_MOVE(22, MOVE_DRAGON_RAGE), - LEVEL_UP_MOVE(29, MOVE_SLAM), - LEVEL_UP_MOVE(36, MOVE_AGILITY), - LEVEL_UP_MOVE(43, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(50, MOVE_OUTRAGE), - LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -const u16 gDragonairLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WRAP), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 1, MOVE_TWISTER), - LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE(15, MOVE_TWISTER), - LEVEL_UP_MOVE(22, MOVE_DRAGON_RAGE), - LEVEL_UP_MOVE(29, MOVE_SLAM), - LEVEL_UP_MOVE(38, MOVE_AGILITY), - LEVEL_UP_MOVE(47, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(56, MOVE_OUTRAGE), - LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -const u16 gDragoniteLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WRAP), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 1, MOVE_TWISTER), - LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE(15, MOVE_TWISTER), - LEVEL_UP_MOVE(22, MOVE_DRAGON_RAGE), - LEVEL_UP_MOVE(29, MOVE_SLAM), - LEVEL_UP_MOVE(38, MOVE_AGILITY), - LEVEL_UP_MOVE(47, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(55, MOVE_WING_ATTACK), - LEVEL_UP_MOVE(61, MOVE_OUTRAGE), - LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -const u16 gMewtwoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE( 1, MOVE_DISABLE), - LEVEL_UP_MOVE(11, MOVE_BARRIER), - LEVEL_UP_MOVE(22, MOVE_SWIFT), - LEVEL_UP_MOVE(33, MOVE_PSYCH_UP), - LEVEL_UP_MOVE(44, MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE(55, MOVE_MIST), - LEVEL_UP_MOVE(66, MOVE_PSYCHIC), - LEVEL_UP_MOVE(77, MOVE_AMNESIA), - LEVEL_UP_MOVE(88, MOVE_RECOVER), - LEVEL_UP_MOVE(99, MOVE_SAFEGUARD), - LEVEL_UP_END -}; - -const u16 gMewLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE(10, MOVE_TRANSFORM), - LEVEL_UP_MOVE(20, MOVE_MEGA_PUNCH), - LEVEL_UP_MOVE(30, MOVE_METRONOME), - LEVEL_UP_MOVE(40, MOVE_PSYCHIC), - LEVEL_UP_MOVE(50, MOVE_ANCIENT_POWER), - LEVEL_UP_END -}; - -const u16 gChikoritaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 8, MOVE_RAZOR_LEAF), - LEVEL_UP_MOVE(12, MOVE_REFLECT), - LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), - LEVEL_UP_MOVE(22, MOVE_SYNTHESIS), - LEVEL_UP_MOVE(29, MOVE_BODY_SLAM), - LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE(43, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(50, MOVE_SOLAR_BEAM), - LEVEL_UP_END -}; - -const u16 gBayleefLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), - LEVEL_UP_MOVE( 1, MOVE_REFLECT), - LEVEL_UP_MOVE( 8, MOVE_RAZOR_LEAF), - LEVEL_UP_MOVE(12, MOVE_REFLECT), - LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), - LEVEL_UP_MOVE(23, MOVE_SYNTHESIS), - LEVEL_UP_MOVE(31, MOVE_BODY_SLAM), - LEVEL_UP_MOVE(39, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE(47, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(55, MOVE_SOLAR_BEAM), - LEVEL_UP_END -}; - -const u16 gMeganiumLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), - LEVEL_UP_MOVE( 1, MOVE_REFLECT), - LEVEL_UP_MOVE( 8, MOVE_RAZOR_LEAF), - LEVEL_UP_MOVE(12, MOVE_REFLECT), - LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), - LEVEL_UP_MOVE(23, MOVE_SYNTHESIS), - LEVEL_UP_MOVE(31, MOVE_BODY_SLAM), - LEVEL_UP_MOVE(41, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE(51, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(61, MOVE_SOLAR_BEAM), - LEVEL_UP_END -}; - -const u16 gCyndaquilLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), - LEVEL_UP_MOVE(12, MOVE_EMBER), - LEVEL_UP_MOVE(19, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(27, MOVE_FLAME_WHEEL), - LEVEL_UP_MOVE(36, MOVE_SWIFT), - LEVEL_UP_MOVE(46, MOVE_FLAMETHROWER), - LEVEL_UP_END -}; - -const u16 gQuilavaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), - LEVEL_UP_MOVE(12, MOVE_EMBER), - LEVEL_UP_MOVE(21, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(31, MOVE_FLAME_WHEEL), - LEVEL_UP_MOVE(42, MOVE_SWIFT), - LEVEL_UP_MOVE(54, MOVE_FLAMETHROWER), - LEVEL_UP_END -}; - -const u16 gTyphlosionLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 1, MOVE_EMBER), - LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), - LEVEL_UP_MOVE(12, MOVE_EMBER), - LEVEL_UP_MOVE(21, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(31, MOVE_FLAME_WHEEL), - LEVEL_UP_MOVE(45, MOVE_SWIFT), - LEVEL_UP_MOVE(60, MOVE_FLAMETHROWER), - LEVEL_UP_END -}; - -const u16 gTotodileLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 7, MOVE_RAGE), - LEVEL_UP_MOVE(13, MOVE_WATER_GUN), - LEVEL_UP_MOVE(20, MOVE_BITE), - LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(35, MOVE_SLASH), - LEVEL_UP_MOVE(43, MOVE_SCREECH), - LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -const u16 gCroconawLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_RAGE), - LEVEL_UP_MOVE( 7, MOVE_RAGE), - LEVEL_UP_MOVE(13, MOVE_WATER_GUN), - LEVEL_UP_MOVE(21, MOVE_BITE), - LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(37, MOVE_SLASH), - LEVEL_UP_MOVE(45, MOVE_SCREECH), - LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -const u16 gFeraligatrLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_RAGE), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 7, MOVE_RAGE), - LEVEL_UP_MOVE(13, MOVE_WATER_GUN), - LEVEL_UP_MOVE(21, MOVE_BITE), - LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(38, MOVE_SLASH), - LEVEL_UP_MOVE(47, MOVE_SCREECH), - LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -const u16 gSentretLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(17, MOVE_HELPING_HAND), - LEVEL_UP_MOVE(24, MOVE_SLAM), - LEVEL_UP_MOVE(31, MOVE_FOLLOW_ME), - LEVEL_UP_MOVE(40, MOVE_REST), - LEVEL_UP_MOVE(49, MOVE_AMNESIA), - LEVEL_UP_END -}; - -const u16 gFurretLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(19, MOVE_HELPING_HAND), - LEVEL_UP_MOVE(28, MOVE_SLAM), - LEVEL_UP_MOVE(37, MOVE_FOLLOW_ME), - LEVEL_UP_MOVE(48, MOVE_REST), - LEVEL_UP_MOVE(59, MOVE_AMNESIA), - LEVEL_UP_END -}; - -const u16 gHoothootLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 6, MOVE_FORESIGHT), - LEVEL_UP_MOVE(11, MOVE_PECK), - LEVEL_UP_MOVE(16, MOVE_HYPNOSIS), - LEVEL_UP_MOVE(22, MOVE_REFLECT), - LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(34, MOVE_CONFUSION), - LEVEL_UP_MOVE(48, MOVE_DREAM_EATER), - LEVEL_UP_END -}; - -const u16 gNoctowlLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), - LEVEL_UP_MOVE( 1, MOVE_PECK), - LEVEL_UP_MOVE( 6, MOVE_FORESIGHT), - LEVEL_UP_MOVE(11, MOVE_PECK), - LEVEL_UP_MOVE(16, MOVE_HYPNOSIS), - LEVEL_UP_MOVE(25, MOVE_REFLECT), - LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(41, MOVE_CONFUSION), - LEVEL_UP_MOVE(57, MOVE_DREAM_EATER), - LEVEL_UP_END -}; - -const u16 gLedybaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH), - LEVEL_UP_MOVE(22, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE(22, MOVE_REFLECT), - LEVEL_UP_MOVE(22, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(29, MOVE_BATON_PASS), - LEVEL_UP_MOVE(36, MOVE_SWIFT), - LEVEL_UP_MOVE(43, MOVE_AGILITY), - LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -const u16 gLedianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH), - LEVEL_UP_MOVE(24, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE(24, MOVE_REFLECT), - LEVEL_UP_MOVE(24, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(33, MOVE_BATON_PASS), - LEVEL_UP_MOVE(42, MOVE_SWIFT), - LEVEL_UP_MOVE(51, MOVE_AGILITY), - LEVEL_UP_MOVE(60, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -const u16 gSpinarakLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POISON_STING), - LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), - LEVEL_UP_MOVE( 6, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(11, MOVE_CONSTRICT), - LEVEL_UP_MOVE(17, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE(23, MOVE_LEECH_LIFE), - LEVEL_UP_MOVE(30, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(37, MOVE_SPIDER_WEB), - LEVEL_UP_MOVE(45, MOVE_AGILITY), - LEVEL_UP_MOVE(53, MOVE_PSYCHIC), - LEVEL_UP_END -}; - -const u16 gAriadosLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POISON_STING), - LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), - LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), - LEVEL_UP_MOVE( 6, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(11, MOVE_CONSTRICT), - LEVEL_UP_MOVE(17, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE(25, MOVE_LEECH_LIFE), - LEVEL_UP_MOVE(34, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(43, MOVE_SPIDER_WEB), - LEVEL_UP_MOVE(53, MOVE_AGILITY), - LEVEL_UP_MOVE(63, MOVE_PSYCHIC), - LEVEL_UP_END -}; - -const u16 gCrobatLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCREECH), - LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), - LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(11, MOVE_ASTONISH), - LEVEL_UP_MOVE(16, MOVE_BITE), - LEVEL_UP_MOVE(21, MOVE_WING_ATTACK), - LEVEL_UP_MOVE(28, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(35, MOVE_AIR_CUTTER), - LEVEL_UP_MOVE(42, MOVE_MEAN_LOOK), - LEVEL_UP_MOVE(49, MOVE_POISON_FANG), - LEVEL_UP_MOVE(56, MOVE_HAZE), - LEVEL_UP_END -}; - -const u16 gChinchouLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BUBBLE), - LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(13, MOVE_FLAIL), - LEVEL_UP_MOVE(17, MOVE_WATER_GUN), - LEVEL_UP_MOVE(25, MOVE_SPARK), - LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(41, MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE(49, MOVE_CHARGE), - LEVEL_UP_END -}; - -const u16 gLanturnLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BUBBLE), - LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(13, MOVE_FLAIL), - LEVEL_UP_MOVE(17, MOVE_WATER_GUN), - LEVEL_UP_MOVE(25, MOVE_SPARK), - LEVEL_UP_MOVE(32, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE(61, MOVE_CHARGE), - LEVEL_UP_END -}; - -const u16 gPichuLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE( 1, MOVE_CHARM), - LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE(11, MOVE_SWEET_KISS), - LEVEL_UP_END -}; - -const u16 gCleffaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 1, MOVE_CHARM), - LEVEL_UP_MOVE( 4, MOVE_ENCORE), - LEVEL_UP_MOVE( 8, MOVE_SING), - LEVEL_UP_MOVE(13, MOVE_SWEET_KISS), - LEVEL_UP_END -}; - -const u16 gIgglybuffLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SING), - LEVEL_UP_MOVE( 1, MOVE_CHARM), - LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 9, MOVE_POUND), - LEVEL_UP_MOVE(14, MOVE_SWEET_KISS), - LEVEL_UP_END -}; - -const u16 gTogepiLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_CHARM), - LEVEL_UP_MOVE( 6, MOVE_METRONOME), - LEVEL_UP_MOVE(11, MOVE_SWEET_KISS), - LEVEL_UP_MOVE(16, MOVE_YAWN), - LEVEL_UP_MOVE(21, MOVE_ENCORE), - LEVEL_UP_MOVE(26, MOVE_FOLLOW_ME), - LEVEL_UP_MOVE(31, MOVE_WISH), - LEVEL_UP_MOVE(36, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(41, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -const u16 gTogeticLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_CHARM), - LEVEL_UP_MOVE( 6, MOVE_METRONOME), - LEVEL_UP_MOVE(11, MOVE_SWEET_KISS), - LEVEL_UP_MOVE(16, MOVE_YAWN), - LEVEL_UP_MOVE(21, MOVE_ENCORE), - LEVEL_UP_MOVE(26, MOVE_FOLLOW_ME), - LEVEL_UP_MOVE(31, MOVE_WISH), - LEVEL_UP_MOVE(36, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(41, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -const u16 gNatuLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_PECK), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE(10, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE(20, MOVE_TELEPORT), - LEVEL_UP_MOVE(30, MOVE_WISH), - LEVEL_UP_MOVE(30, MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE(40, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(50, MOVE_PSYCHIC), - LEVEL_UP_END -}; - -const u16 gXatuLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_PECK), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE(10, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE(20, MOVE_TELEPORT), - LEVEL_UP_MOVE(35, MOVE_WISH), - LEVEL_UP_MOVE(35, MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE(50, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(65, MOVE_PSYCHIC), - LEVEL_UP_END -}; - -const u16 gMareepLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE(16, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE(23, MOVE_COTTON_SPORE), - LEVEL_UP_MOVE(30, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE(37, MOVE_THUNDER), - LEVEL_UP_END -}; - -const u16 gFlaaffyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE(18, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE(27, MOVE_COTTON_SPORE), - LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE(45, MOVE_THUNDER), - LEVEL_UP_END -}; - -const u16 gAmpharosLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE(18, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE(27, MOVE_COTTON_SPORE), - LEVEL_UP_MOVE(30, MOVE_THUNDER_PUNCH), - LEVEL_UP_MOVE(42, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE(57, MOVE_THUNDER), - LEVEL_UP_END -}; - -const u16 gBellossomLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ABSORB), - LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), - LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), - LEVEL_UP_MOVE(44, MOVE_PETAL_DANCE), - LEVEL_UP_MOVE(55, MOVE_SOLAR_BEAM), - LEVEL_UP_END -}; - -const u16 gMarillLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE(10, MOVE_WATER_GUN), - LEVEL_UP_MOVE(15, MOVE_ROLLOUT), - LEVEL_UP_MOVE(21, MOVE_BUBBLE_BEAM), - LEVEL_UP_MOVE(28, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(36, MOVE_RAIN_DANCE), - LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -const u16 gAzumarillLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE(10, MOVE_WATER_GUN), - LEVEL_UP_MOVE(15, MOVE_ROLLOUT), - LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), - LEVEL_UP_MOVE(34, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(45, MOVE_RAIN_DANCE), - LEVEL_UP_MOVE(57, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -const u16 gSudowoodoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), - LEVEL_UP_MOVE( 1, MOVE_MIMIC), - LEVEL_UP_MOVE( 9, MOVE_FLAIL), - LEVEL_UP_MOVE(17, MOVE_LOW_KICK), - LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE(33, MOVE_BLOCK), - LEVEL_UP_MOVE(41, MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE(49, MOVE_SLAM), - LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -const u16 gPolitoedLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), - LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), - LEVEL_UP_MOVE(35, MOVE_PERISH_SONG), - LEVEL_UP_MOVE(51, MOVE_SWAGGER), - LEVEL_UP_END -}; - -const u16 gHoppipLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SPLASH), - LEVEL_UP_MOVE( 5, MOVE_SYNTHESIS), - LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE(10, MOVE_TACKLE), - LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), - LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), - LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), - LEVEL_UP_MOVE(25, MOVE_COTTON_SPORE), - LEVEL_UP_MOVE(30, MOVE_MEGA_DRAIN), - LEVEL_UP_END -}; - -const u16 gSkiploomLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SPLASH), - LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 5, MOVE_SYNTHESIS), - LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE(10, MOVE_TACKLE), - LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), - LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), - LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE(22, MOVE_LEECH_SEED), - LEVEL_UP_MOVE(29, MOVE_COTTON_SPORE), - LEVEL_UP_MOVE(36, MOVE_MEGA_DRAIN), - LEVEL_UP_END -}; - -const u16 gJumpluffLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SPLASH), - LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 5, MOVE_SYNTHESIS), - LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE(10, MOVE_TACKLE), - LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), - LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), - LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE(22, MOVE_LEECH_SEED), - LEVEL_UP_MOVE(33, MOVE_COTTON_SPORE), - LEVEL_UP_MOVE(44, MOVE_MEGA_DRAIN), - LEVEL_UP_END -}; - -const u16 gAipomLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(13, MOVE_ASTONISH), - LEVEL_UP_MOVE(18, MOVE_BATON_PASS), - LEVEL_UP_MOVE(25, MOVE_TICKLE), - LEVEL_UP_MOVE(31, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(38, MOVE_SWIFT), - LEVEL_UP_MOVE(43, MOVE_SCREECH), - LEVEL_UP_MOVE(50, MOVE_AGILITY), - LEVEL_UP_END -}; - -const u16 gSunkernLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ABSORB), - LEVEL_UP_MOVE( 6, MOVE_GROWTH), - LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), - LEVEL_UP_MOVE(18, MOVE_INGRAIN), - LEVEL_UP_MOVE(25, MOVE_ENDEAVOR), - LEVEL_UP_MOVE(30, MOVE_SUNNY_DAY), - LEVEL_UP_MOVE(37, MOVE_SYNTHESIS), - LEVEL_UP_MOVE(42, MOVE_GIGA_DRAIN), - LEVEL_UP_END -}; - -const u16 gSunfloraLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ABSORB), - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 6, MOVE_GROWTH), - LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), - LEVEL_UP_MOVE(18, MOVE_INGRAIN), - LEVEL_UP_MOVE(25, MOVE_BULLET_SEED), - LEVEL_UP_MOVE(30, MOVE_SUNNY_DAY), - LEVEL_UP_MOVE(37, MOVE_PETAL_DANCE), - LEVEL_UP_MOVE(42, MOVE_SOLAR_BEAM), - LEVEL_UP_END -}; - -const u16 gYanmaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), - LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE(19, MOVE_SONIC_BOOM), - LEVEL_UP_MOVE(25, MOVE_DETECT), - LEVEL_UP_MOVE(31, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(37, MOVE_UPROAR), - LEVEL_UP_MOVE(43, MOVE_WING_ATTACK), - LEVEL_UP_MOVE(49, MOVE_SCREECH), - LEVEL_UP_END -}; - -const u16 gWooperLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE(11, MOVE_SLAM), - LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), - LEVEL_UP_MOVE(21, MOVE_AMNESIA), - LEVEL_UP_MOVE(31, MOVE_YAWN), - LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(41, MOVE_RAIN_DANCE), - LEVEL_UP_MOVE(51, MOVE_MIST), - LEVEL_UP_MOVE(51, MOVE_HAZE), - LEVEL_UP_END -}; - -const u16 gQuagsireLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE(11, MOVE_SLAM), - LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), - LEVEL_UP_MOVE(23, MOVE_AMNESIA), - LEVEL_UP_MOVE(35, MOVE_YAWN), - LEVEL_UP_MOVE(42, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(49, MOVE_RAIN_DANCE), - LEVEL_UP_MOVE(61, MOVE_MIST), - LEVEL_UP_MOVE(61, MOVE_HAZE), - LEVEL_UP_END -}; - -const u16 gEspeonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(16, MOVE_CONFUSION), - LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(30, MOVE_SWIFT), - LEVEL_UP_MOVE(36, MOVE_PSYBEAM), - LEVEL_UP_MOVE(42, MOVE_PSYCH_UP), - LEVEL_UP_MOVE(47, MOVE_PSYCHIC), - LEVEL_UP_MOVE(52, MOVE_MORNING_SUN), - LEVEL_UP_END -}; - -const u16 gUmbreonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(16, MOVE_PURSUIT), - LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(36, MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE(42, MOVE_MEAN_LOOK), - LEVEL_UP_MOVE(47, MOVE_SCREECH), - LEVEL_UP_MOVE(52, MOVE_MOONLIGHT), - LEVEL_UP_END -}; - -const u16 gMurkrowLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_PECK), - LEVEL_UP_MOVE( 9, MOVE_ASTONISH), - LEVEL_UP_MOVE(14, MOVE_PURSUIT), - LEVEL_UP_MOVE(22, MOVE_HAZE), - LEVEL_UP_MOVE(27, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE(35, MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE(40, MOVE_TAUNT), - LEVEL_UP_MOVE(48, MOVE_MEAN_LOOK), - LEVEL_UP_END -}; - -const u16 gSlowkingLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_CURSE), - LEVEL_UP_MOVE( 1, MOVE_YAWN), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 6, MOVE_GROWL), - LEVEL_UP_MOVE(15, MOVE_WATER_GUN), - LEVEL_UP_MOVE(20, MOVE_CONFUSION), - LEVEL_UP_MOVE(29, MOVE_DISABLE), - LEVEL_UP_MOVE(34, MOVE_HEADBUTT), - LEVEL_UP_MOVE(43, MOVE_SWAGGER), - LEVEL_UP_MOVE(48, MOVE_PSYCHIC), - LEVEL_UP_END -}; - -const u16 gMisdreavusLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), - LEVEL_UP_MOVE( 6, MOVE_SPITE), - LEVEL_UP_MOVE(11, MOVE_ASTONISH), - LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(23, MOVE_MEAN_LOOK), - LEVEL_UP_MOVE(30, MOVE_PSYBEAM), - LEVEL_UP_MOVE(37, MOVE_PAIN_SPLIT), - LEVEL_UP_MOVE(45, MOVE_PERISH_SONG), - LEVEL_UP_MOVE(53, MOVE_GRUDGE), - LEVEL_UP_END -}; - -const u16 gUnownLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_HIDDEN_POWER), - LEVEL_UP_END -}; - -const u16 gWobbuffetLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_COUNTER), - LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), - LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), - LEVEL_UP_END -}; - -const u16 gGirafarigLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 7, MOVE_ASTONISH), - LEVEL_UP_MOVE(13, MOVE_CONFUSION), - LEVEL_UP_MOVE(19, MOVE_STOMP), - LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE(31, MOVE_AGILITY), - LEVEL_UP_MOVE(37, MOVE_BATON_PASS), - LEVEL_UP_MOVE(43, MOVE_PSYBEAM), - LEVEL_UP_MOVE(49, MOVE_CRUNCH), - LEVEL_UP_END -}; - -const u16 gPinecoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_PROTECT), - LEVEL_UP_MOVE( 8, MOVE_SELF_DESTRUCT), - LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(22, MOVE_RAPID_SPIN), - LEVEL_UP_MOVE(29, MOVE_BIDE), - LEVEL_UP_MOVE(36, MOVE_EXPLOSION), - LEVEL_UP_MOVE(43, MOVE_SPIKES), - LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -const u16 gForretressLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_PROTECT), - LEVEL_UP_MOVE( 1, MOVE_SELF_DESTRUCT), - LEVEL_UP_MOVE( 8, MOVE_SELF_DESTRUCT), - LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(22, MOVE_RAPID_SPIN), - LEVEL_UP_MOVE(29, MOVE_BIDE), - LEVEL_UP_MOVE(39, MOVE_EXPLOSION), - LEVEL_UP_MOVE(49, MOVE_SPIKES), - LEVEL_UP_MOVE(59, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -const u16 gDunsparceLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_RAGE), - LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE(11, MOVE_YAWN), - LEVEL_UP_MOVE(14, MOVE_GLARE), - LEVEL_UP_MOVE(21, MOVE_SPITE), - LEVEL_UP_MOVE(24, MOVE_PURSUIT), - LEVEL_UP_MOVE(31, MOVE_SCREECH), - LEVEL_UP_MOVE(34, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(41, MOVE_ENDEAVOR), - LEVEL_UP_END -}; - -const u16 gGligarLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POISON_STING), - LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(13, MOVE_HARDEN), - LEVEL_UP_MOVE(20, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(28, MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE(36, MOVE_SLASH), - LEVEL_UP_MOVE(44, MOVE_SCREECH), - LEVEL_UP_MOVE(52, MOVE_GUILLOTINE), - LEVEL_UP_END -}; - -const u16 gSteelixLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_SCREECH), - LEVEL_UP_MOVE( 9, MOVE_BIND), - LEVEL_UP_MOVE(13, MOVE_ROCK_THROW), - LEVEL_UP_MOVE(21, MOVE_HARDEN), - LEVEL_UP_MOVE(25, MOVE_RAGE), - LEVEL_UP_MOVE(33, MOVE_SANDSTORM), - LEVEL_UP_MOVE(37, MOVE_SLAM), - LEVEL_UP_MOVE(45, MOVE_IRON_TAIL), - LEVEL_UP_MOVE(49, MOVE_CRUNCH), - LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -const u16 gSnubbullLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 8, MOVE_CHARM), - LEVEL_UP_MOVE(13, MOVE_BITE), - LEVEL_UP_MOVE(19, MOVE_LICK), - LEVEL_UP_MOVE(26, MOVE_ROAR), - LEVEL_UP_MOVE(34, MOVE_RAGE), - LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(53, MOVE_CRUNCH), - LEVEL_UP_END -}; - -const u16 gGranbullLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 8, MOVE_CHARM), - LEVEL_UP_MOVE(13, MOVE_BITE), - LEVEL_UP_MOVE(19, MOVE_LICK), - LEVEL_UP_MOVE(28, MOVE_ROAR), - LEVEL_UP_MOVE(38, MOVE_RAGE), - LEVEL_UP_MOVE(49, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(61, MOVE_CRUNCH), - LEVEL_UP_END -}; - -const u16 gQwilfishLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SPIKES), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_POISON_STING), - LEVEL_UP_MOVE(10, MOVE_HARDEN), - LEVEL_UP_MOVE(10, MOVE_MINIMIZE), - LEVEL_UP_MOVE(19, MOVE_WATER_GUN), - LEVEL_UP_MOVE(28, MOVE_PIN_MISSILE), - LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -const u16 gScizorLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(11, MOVE_PURSUIT), - LEVEL_UP_MOVE(16, MOVE_FALSE_SWIPE), - LEVEL_UP_MOVE(21, MOVE_AGILITY), - LEVEL_UP_MOVE(26, MOVE_METAL_CLAW), - LEVEL_UP_MOVE(31, MOVE_SLASH), - LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE(41, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE(46, MOVE_FURY_CUTTER), - LEVEL_UP_END -}; - -const u16 gShuckleLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), - LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), - LEVEL_UP_MOVE( 9, MOVE_WRAP), - LEVEL_UP_MOVE(14, MOVE_ENCORE), - LEVEL_UP_MOVE(23, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(28, MOVE_BIDE), - LEVEL_UP_MOVE(37, MOVE_REST), - LEVEL_UP_END -}; - -const u16 gHeracrossLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 6, MOVE_HORN_ATTACK), - LEVEL_UP_MOVE(11, MOVE_ENDURE), - LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK), - LEVEL_UP_MOVE(23, MOVE_BRICK_BREAK), - LEVEL_UP_MOVE(30, MOVE_COUNTER), - LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(45, MOVE_REVERSAL), - LEVEL_UP_MOVE(53, MOVE_MEGAHORN), - LEVEL_UP_END -}; - -const u16 gSneaselLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_TAUNT), - LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(15, MOVE_SCREECH), - LEVEL_UP_MOVE(22, MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(36, MOVE_AGILITY), - LEVEL_UP_MOVE(43, MOVE_ICY_WIND), - LEVEL_UP_MOVE(50, MOVE_SLASH), - LEVEL_UP_MOVE(57, MOVE_BEAT_UP), - LEVEL_UP_MOVE(64, MOVE_METAL_CLAW), - LEVEL_UP_END -}; - -const u16 gTeddiursaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 7, MOVE_LICK), - LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(19, MOVE_FAKE_TEARS), - LEVEL_UP_MOVE(25, MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE(31, MOVE_REST), - LEVEL_UP_MOVE(37, MOVE_SLASH), - LEVEL_UP_MOVE(43, MOVE_SNORE), - LEVEL_UP_MOVE(49, MOVE_THRASH), - LEVEL_UP_END -}; - -const u16 gUrsaringLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_LICK), - LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE( 7, MOVE_LICK), - LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(19, MOVE_FAKE_TEARS), - LEVEL_UP_MOVE(25, MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE(31, MOVE_REST), - LEVEL_UP_MOVE(37, MOVE_SLASH), - LEVEL_UP_MOVE(43, MOVE_SNORE), - LEVEL_UP_MOVE(49, MOVE_THRASH), - LEVEL_UP_END -}; - -const u16 gSlugmaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_YAWN), - LEVEL_UP_MOVE( 1, MOVE_SMOG), - LEVEL_UP_MOVE( 8, MOVE_EMBER), - LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), - LEVEL_UP_MOVE(22, MOVE_HARDEN), - LEVEL_UP_MOVE(29, MOVE_AMNESIA), - LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), - LEVEL_UP_MOVE(43, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE(50, MOVE_BODY_SLAM), - LEVEL_UP_END -}; - -const u16 gMagcargoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_YAWN), - LEVEL_UP_MOVE( 1, MOVE_SMOG), - LEVEL_UP_MOVE( 1, MOVE_EMBER), - LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), - LEVEL_UP_MOVE( 8, MOVE_EMBER), - LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), - LEVEL_UP_MOVE(22, MOVE_HARDEN), - LEVEL_UP_MOVE(29, MOVE_AMNESIA), - LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), - LEVEL_UP_MOVE(48, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE(60, MOVE_BODY_SLAM), - LEVEL_UP_END -}; - -const u16 gSwinubLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE(19, MOVE_ENDURE), - LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(37, MOVE_MIST), - LEVEL_UP_MOVE(46, MOVE_BLIZZARD), - LEVEL_UP_MOVE(55, MOVE_AMNESIA), - LEVEL_UP_END -}; - -const u16 gPiloswineLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 1, MOVE_ENDURE), - LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE(19, MOVE_ENDURE), - LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(33, MOVE_FURY_ATTACK), - LEVEL_UP_MOVE(42, MOVE_MIST), - LEVEL_UP_MOVE(56, MOVE_BLIZZARD), - LEVEL_UP_MOVE(70, MOVE_AMNESIA), - LEVEL_UP_END -}; - -const u16 gCorsolaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 6, MOVE_HARDEN), - LEVEL_UP_MOVE(12, MOVE_BUBBLE), - LEVEL_UP_MOVE(17, MOVE_RECOVER), - LEVEL_UP_MOVE(17, MOVE_REFRESH), - LEVEL_UP_MOVE(23, MOVE_BUBBLE_BEAM), - LEVEL_UP_MOVE(28, MOVE_SPIKE_CANNON), - LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), - LEVEL_UP_MOVE(39, MOVE_MIRROR_COAT), - LEVEL_UP_MOVE(45, MOVE_ANCIENT_POWER), - LEVEL_UP_END -}; - -const u16 gRemoraidLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE(11, MOVE_LOCK_ON), - LEVEL_UP_MOVE(22, MOVE_PSYBEAM), - LEVEL_UP_MOVE(22, MOVE_AURORA_BEAM), - LEVEL_UP_MOVE(22, MOVE_BUBBLE_BEAM), - LEVEL_UP_MOVE(33, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(44, MOVE_ICE_BEAM), - LEVEL_UP_MOVE(55, MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -const u16 gOctilleryLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE(11, MOVE_CONSTRICT), - LEVEL_UP_MOVE(22, MOVE_PSYBEAM), - LEVEL_UP_MOVE(22, MOVE_AURORA_BEAM), - LEVEL_UP_MOVE(22, MOVE_BUBBLE_BEAM), - LEVEL_UP_MOVE(25, MOVE_OCTAZOOKA), - LEVEL_UP_MOVE(38, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(54, MOVE_ICE_BEAM), - LEVEL_UP_MOVE(70, MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -const u16 gDelibirdLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_PRESENT), - LEVEL_UP_END -}; - -const u16 gMantineLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_BUBBLE), - LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(15, MOVE_BUBBLE_BEAM), - LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(29, MOVE_AGILITY), - LEVEL_UP_MOVE(36, MOVE_WING_ATTACK), - LEVEL_UP_MOVE(43, MOVE_WATER_PULSE), - LEVEL_UP_MOVE(50, MOVE_CONFUSE_RAY), - LEVEL_UP_END -}; - -const u16 gSkarmoryLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_PECK), - LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(13, MOVE_SWIFT), - LEVEL_UP_MOVE(16, MOVE_AGILITY), - LEVEL_UP_MOVE(26, MOVE_FURY_ATTACK), - LEVEL_UP_MOVE(29, MOVE_AIR_CUTTER), - LEVEL_UP_MOVE(32, MOVE_STEEL_WING), - LEVEL_UP_MOVE(42, MOVE_SPIKES), - LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), - LEVEL_UP_END -}; - -const u16 gHoundourLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_EMBER), - LEVEL_UP_MOVE( 7, MOVE_HOWL), - LEVEL_UP_MOVE(13, MOVE_SMOG), - LEVEL_UP_MOVE(19, MOVE_ROAR), - LEVEL_UP_MOVE(25, MOVE_BITE), - LEVEL_UP_MOVE(31, MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE(37, MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), - LEVEL_UP_MOVE(49, MOVE_CRUNCH), - LEVEL_UP_END -}; - -const u16 gHoundoomLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_EMBER), - LEVEL_UP_MOVE( 1, MOVE_HOWL), - LEVEL_UP_MOVE( 7, MOVE_HOWL), - LEVEL_UP_MOVE(13, MOVE_SMOG), - LEVEL_UP_MOVE(19, MOVE_ROAR), - LEVEL_UP_MOVE(27, MOVE_BITE), - LEVEL_UP_MOVE(35, MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE(43, MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE(51, MOVE_FLAMETHROWER), - LEVEL_UP_MOVE(59, MOVE_CRUNCH), - LEVEL_UP_END -}; - -const u16 gKingdraLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BUBBLE), - LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN), - LEVEL_UP_MOVE(15, MOVE_LEER), - LEVEL_UP_MOVE(22, MOVE_WATER_GUN), - LEVEL_UP_MOVE(29, MOVE_TWISTER), - LEVEL_UP_MOVE(40, MOVE_AGILITY), - LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE(62, MOVE_DRAGON_DANCE), - LEVEL_UP_END -}; - -const u16 gPhanpyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE(17, MOVE_FLAIL), - LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(33, MOVE_ROLLOUT), - LEVEL_UP_MOVE(41, MOVE_ENDURE), - LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -const u16 gDonphanLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE(17, MOVE_FLAIL), - LEVEL_UP_MOVE(25, MOVE_FURY_ATTACK), - LEVEL_UP_MOVE(33, MOVE_ROLLOUT), - LEVEL_UP_MOVE(41, MOVE_RAPID_SPIN), - LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), - LEVEL_UP_END -}; - -const u16 gPorygon2LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_CONVERSION), - LEVEL_UP_MOVE( 9, MOVE_AGILITY), - LEVEL_UP_MOVE(12, MOVE_PSYBEAM), - LEVEL_UP_MOVE(20, MOVE_RECOVER), - LEVEL_UP_MOVE(24, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE(32, MOVE_LOCK_ON), - LEVEL_UP_MOVE(36, MOVE_TRI_ATTACK), - LEVEL_UP_MOVE(44, MOVE_RECYCLE), - LEVEL_UP_MOVE(48, MOVE_ZAP_CANNON), - LEVEL_UP_END -}; - -const u16 gStantlerLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 7, MOVE_LEER), - LEVEL_UP_MOVE(13, MOVE_ASTONISH), - LEVEL_UP_MOVE(19, MOVE_HYPNOSIS), - LEVEL_UP_MOVE(25, MOVE_STOMP), - LEVEL_UP_MOVE(31, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(43, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(49, MOVE_CALM_MIND), - LEVEL_UP_END -}; - -const u16 gSmeargleLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SKETCH), - LEVEL_UP_MOVE(11, MOVE_SKETCH), - LEVEL_UP_MOVE(21, MOVE_SKETCH), - LEVEL_UP_MOVE(31, MOVE_SKETCH), - LEVEL_UP_MOVE(41, MOVE_SKETCH), - LEVEL_UP_MOVE(51, MOVE_SKETCH), - LEVEL_UP_MOVE(61, MOVE_SKETCH), - LEVEL_UP_MOVE(71, MOVE_SKETCH), - LEVEL_UP_MOVE(81, MOVE_SKETCH), - LEVEL_UP_MOVE(91, MOVE_SKETCH), - LEVEL_UP_END -}; - -const u16 gTyrogueLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -const u16 gHitmontopLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_REVENGE), - LEVEL_UP_MOVE( 1, MOVE_ROLLING_KICK), - LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(13, MOVE_PURSUIT), - LEVEL_UP_MOVE(19, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(20, MOVE_TRIPLE_KICK), - LEVEL_UP_MOVE(25, MOVE_RAPID_SPIN), - LEVEL_UP_MOVE(31, MOVE_COUNTER), - LEVEL_UP_MOVE(37, MOVE_AGILITY), - LEVEL_UP_MOVE(43, MOVE_DETECT), - LEVEL_UP_MOVE(49, MOVE_ENDEAVOR), - LEVEL_UP_END -}; - -const u16 gSmoochumLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 1, MOVE_LICK), - LEVEL_UP_MOVE( 9, MOVE_SWEET_KISS), - LEVEL_UP_MOVE(13, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE(21, MOVE_CONFUSION), - LEVEL_UP_MOVE(25, MOVE_SING), - LEVEL_UP_MOVE(33, MOVE_MEAN_LOOK), - LEVEL_UP_MOVE(37, MOVE_FAKE_TEARS), - LEVEL_UP_MOVE(45, MOVE_PSYCHIC), - LEVEL_UP_MOVE(49, MOVE_PERISH_SONG), - LEVEL_UP_MOVE(57, MOVE_BLIZZARD), - LEVEL_UP_END -}; - -const u16 gElekidLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 9, MOVE_THUNDER_PUNCH), - LEVEL_UP_MOVE(17, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE(25, MOVE_SWIFT), - LEVEL_UP_MOVE(33, MOVE_SCREECH), - LEVEL_UP_MOVE(41, MOVE_THUNDERBOLT), - LEVEL_UP_MOVE(49, MOVE_THUNDER), - LEVEL_UP_END -}; - -const u16 gMagbyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_EMBER), - LEVEL_UP_MOVE( 7, MOVE_LEER), - LEVEL_UP_MOVE(13, MOVE_SMOG), - LEVEL_UP_MOVE(19, MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE(25, MOVE_SMOKESCREEN), - LEVEL_UP_MOVE(31, MOVE_SUNNY_DAY), - LEVEL_UP_MOVE(37, MOVE_FLAMETHROWER), - LEVEL_UP_MOVE(43, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(49, MOVE_FIRE_BLAST), - LEVEL_UP_END -}; - -const u16 gMiltankLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 4, MOVE_GROWL), - LEVEL_UP_MOVE( 8, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE(13, MOVE_STOMP), - LEVEL_UP_MOVE(19, MOVE_MILK_DRINK), - LEVEL_UP_MOVE(26, MOVE_BIDE), - LEVEL_UP_MOVE(34, MOVE_ROLLOUT), - LEVEL_UP_MOVE(43, MOVE_BODY_SLAM), - LEVEL_UP_MOVE(53, MOVE_HEAL_BELL), - LEVEL_UP_END -}; - -const u16 gBlisseyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 7, MOVE_REFRESH), - LEVEL_UP_MOVE(10, MOVE_SOFT_BOILED), - LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP), - LEVEL_UP_MOVE(18, MOVE_MINIMIZE), - LEVEL_UP_MOVE(23, MOVE_SING), - LEVEL_UP_MOVE(28, MOVE_EGG_BOMB), - LEVEL_UP_MOVE(33, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE(40, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -const u16 gRaikouLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE(21, MOVE_ROAR), - LEVEL_UP_MOVE(31, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(41, MOVE_SPARK), - LEVEL_UP_MOVE(51, MOVE_REFLECT), - LEVEL_UP_MOVE(61, MOVE_CRUNCH), - LEVEL_UP_MOVE(71, MOVE_THUNDER), - LEVEL_UP_MOVE(81, MOVE_CALM_MIND), - LEVEL_UP_END -}; - -const u16 gEnteiLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE(11, MOVE_EMBER), - LEVEL_UP_MOVE(21, MOVE_ROAR), - LEVEL_UP_MOVE(31, MOVE_FIRE_SPIN), - LEVEL_UP_MOVE(41, MOVE_STOMP), - LEVEL_UP_MOVE(51, MOVE_FLAMETHROWER), - LEVEL_UP_MOVE(61, MOVE_SWAGGER), - LEVEL_UP_MOVE(71, MOVE_FIRE_BLAST), - LEVEL_UP_MOVE(81, MOVE_CALM_MIND), - LEVEL_UP_END -}; - -const u16 gSuicuneLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE(11, MOVE_BUBBLE_BEAM), - LEVEL_UP_MOVE(21, MOVE_RAIN_DANCE), - LEVEL_UP_MOVE(31, MOVE_GUST), - LEVEL_UP_MOVE(41, MOVE_AURORA_BEAM), - LEVEL_UP_MOVE(51, MOVE_MIST), - LEVEL_UP_MOVE(61, MOVE_MIRROR_COAT), - LEVEL_UP_MOVE(71, MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE(81, MOVE_CALM_MIND), - LEVEL_UP_END -}; - -const u16 gLarvitarLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 8, MOVE_SANDSTORM), - LEVEL_UP_MOVE(15, MOVE_SCREECH), - LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE(29, MOVE_THRASH), - LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(43, MOVE_CRUNCH), - LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -const u16 gPupitarLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_SANDSTORM), - LEVEL_UP_MOVE( 1, MOVE_SCREECH), - LEVEL_UP_MOVE( 8, MOVE_SANDSTORM), - LEVEL_UP_MOVE(15, MOVE_SCREECH), - LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE(29, MOVE_THRASH), - LEVEL_UP_MOVE(38, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(47, MOVE_CRUNCH), - LEVEL_UP_MOVE(56, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -const u16 gTyranitarLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_SANDSTORM), - LEVEL_UP_MOVE( 1, MOVE_SCREECH), - LEVEL_UP_MOVE( 8, MOVE_SANDSTORM), - LEVEL_UP_MOVE(15, MOVE_SCREECH), - LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE(29, MOVE_THRASH), - LEVEL_UP_MOVE(38, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(47, MOVE_CRUNCH), - LEVEL_UP_MOVE(61, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -const u16 gLugiaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), - LEVEL_UP_MOVE(11, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(22, MOVE_GUST), - LEVEL_UP_MOVE(33, MOVE_RECOVER), - LEVEL_UP_MOVE(44, MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE(55, MOVE_RAIN_DANCE), - LEVEL_UP_MOVE(66, MOVE_SWIFT), - LEVEL_UP_MOVE(77, MOVE_AEROBLAST), - LEVEL_UP_MOVE(88, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(99, MOVE_FUTURE_SIGHT), - LEVEL_UP_END -}; - -const u16 gHoOhLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), - LEVEL_UP_MOVE(11, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(22, MOVE_GUST), - LEVEL_UP_MOVE(33, MOVE_RECOVER), - LEVEL_UP_MOVE(44, MOVE_FIRE_BLAST), - LEVEL_UP_MOVE(55, MOVE_SUNNY_DAY), - LEVEL_UP_MOVE(66, MOVE_SWIFT), - LEVEL_UP_MOVE(77, MOVE_SACRED_FIRE), - LEVEL_UP_MOVE(88, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(99, MOVE_FUTURE_SIGHT), - LEVEL_UP_END -}; - -const u16 gCelebiLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE( 1, MOVE_RECOVER), - LEVEL_UP_MOVE( 1, MOVE_HEAL_BELL), - LEVEL_UP_MOVE(10, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(30, MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE(40, MOVE_BATON_PASS), - LEVEL_UP_MOVE(50, MOVE_PERISH_SONG), - LEVEL_UP_END -}; - -const u16 gSpecies252LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -const u16 gSpecies253LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -const u16 gSpecies254LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -const u16 gSpecies255LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -const u16 gSpecies256LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -const u16 gSpecies257LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -const u16 gSpecies258LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -const u16 gSpecies259LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -const u16 gSpecies260LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -const u16 gSpecies261LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -const u16 gSpecies262LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -const u16 gSpecies263LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -const u16 gSpecies264LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -const u16 gSpecies265LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -const u16 gSpecies266LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -const u16 gSpecies267LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -const u16 gSpecies268LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -const u16 gSpecies269LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -const u16 gSpecies270LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -const u16 gSpecies271LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -const u16 gSpecies272LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -const u16 gSpecies273LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -const u16 gSpecies274LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -const u16 gSpecies275LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -const u16 gSpecies276LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -const u16 gTreeckoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 6, MOVE_ABSORB), - LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(16, MOVE_PURSUIT), - LEVEL_UP_MOVE(21, MOVE_SCREECH), - LEVEL_UP_MOVE(26, MOVE_MEGA_DRAIN), - LEVEL_UP_MOVE(31, MOVE_AGILITY), - LEVEL_UP_MOVE(36, MOVE_SLAM), - LEVEL_UP_MOVE(41, MOVE_DETECT), - LEVEL_UP_MOVE(46, MOVE_GIGA_DRAIN), - LEVEL_UP_END -}; - -const u16 gGrovyleLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_ABSORB), - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 6, MOVE_ABSORB), - LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER), - LEVEL_UP_MOVE(17, MOVE_PURSUIT), - LEVEL_UP_MOVE(23, MOVE_SCREECH), - LEVEL_UP_MOVE(29, MOVE_LEAF_BLADE), - LEVEL_UP_MOVE(35, MOVE_AGILITY), - LEVEL_UP_MOVE(41, MOVE_SLAM), - LEVEL_UP_MOVE(47, MOVE_DETECT), - LEVEL_UP_MOVE(53, MOVE_FALSE_SWIPE), - LEVEL_UP_END -}; - -const u16 gSceptileLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_ABSORB), - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 6, MOVE_ABSORB), - LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER), - LEVEL_UP_MOVE(17, MOVE_PURSUIT), - LEVEL_UP_MOVE(23, MOVE_SCREECH), - LEVEL_UP_MOVE(29, MOVE_LEAF_BLADE), - LEVEL_UP_MOVE(35, MOVE_AGILITY), - LEVEL_UP_MOVE(43, MOVE_SLAM), - LEVEL_UP_MOVE(51, MOVE_DETECT), - LEVEL_UP_MOVE(59, MOVE_FALSE_SWIPE), - LEVEL_UP_END -}; - -const u16 gTorchicLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(10, MOVE_EMBER), - LEVEL_UP_MOVE(16, MOVE_PECK), - LEVEL_UP_MOVE(19, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN), - LEVEL_UP_MOVE(28, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(34, MOVE_SLASH), - LEVEL_UP_MOVE(37, MOVE_MIRROR_MOVE), - LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), - LEVEL_UP_END -}; - -const u16 gCombuskenLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 1, MOVE_EMBER), - LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(13, MOVE_EMBER), - LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE(17, MOVE_PECK), - LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(28, MOVE_BULK_UP), - LEVEL_UP_MOVE(32, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(39, MOVE_SLASH), - LEVEL_UP_MOVE(43, MOVE_MIRROR_MOVE), - LEVEL_UP_MOVE(50, MOVE_SKY_UPPERCUT), - LEVEL_UP_END -}; - -const u16 gBlazikenLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 1, MOVE_EMBER), - LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(13, MOVE_EMBER), - LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE(17, MOVE_PECK), - LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(28, MOVE_BULK_UP), - LEVEL_UP_MOVE(32, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(36, MOVE_BLAZE_KICK), - LEVEL_UP_MOVE(42, MOVE_SLASH), - LEVEL_UP_MOVE(49, MOVE_MIRROR_MOVE), - LEVEL_UP_MOVE(59, MOVE_SKY_UPPERCUT), - LEVEL_UP_END -}; - -const u16 gMudkipLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP), - LEVEL_UP_MOVE(10, MOVE_WATER_GUN), - LEVEL_UP_MOVE(15, MOVE_BIDE), - LEVEL_UP_MOVE(19, MOVE_FORESIGHT), - LEVEL_UP_MOVE(24, MOVE_MUD_SPORT), - LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(33, MOVE_WHIRLPOOL), - LEVEL_UP_MOVE(37, MOVE_PROTECT), - LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE(46, MOVE_ENDEAVOR), - LEVEL_UP_END -}; - -const u16 gMarshtompLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP), - LEVEL_UP_MOVE(10, MOVE_WATER_GUN), - LEVEL_UP_MOVE(15, MOVE_BIDE), - LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), - LEVEL_UP_MOVE(20, MOVE_FORESIGHT), - LEVEL_UP_MOVE(25, MOVE_MUD_SPORT), - LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(37, MOVE_MUDDY_WATER), - LEVEL_UP_MOVE(42, MOVE_PROTECT), - LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(53, MOVE_ENDEAVOR), - LEVEL_UP_END -}; - -const u16 gSwampertLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP), - LEVEL_UP_MOVE(10, MOVE_WATER_GUN), - LEVEL_UP_MOVE(15, MOVE_BIDE), - LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), - LEVEL_UP_MOVE(20, MOVE_FORESIGHT), - LEVEL_UP_MOVE(25, MOVE_MUD_SPORT), - LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(39, MOVE_MUDDY_WATER), - LEVEL_UP_MOVE(46, MOVE_PROTECT), - LEVEL_UP_MOVE(52, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(61, MOVE_ENDEAVOR), - LEVEL_UP_END -}; - -const u16 gPoochyenaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 5, MOVE_HOWL), - LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(13, MOVE_BITE), - LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE(21, MOVE_ROAR), - LEVEL_UP_MOVE(25, MOVE_SWAGGER), - LEVEL_UP_MOVE(29, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(37, MOVE_TAUNT), - LEVEL_UP_MOVE(41, MOVE_CRUNCH), - LEVEL_UP_MOVE(45, MOVE_THIEF), - LEVEL_UP_END -}; - -const u16 gMightyenaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_HOWL), - LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE( 5, MOVE_HOWL), - LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(13, MOVE_BITE), - LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE(22, MOVE_ROAR), - LEVEL_UP_MOVE(27, MOVE_SWAGGER), - LEVEL_UP_MOVE(32, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(42, MOVE_TAUNT), - LEVEL_UP_MOVE(47, MOVE_CRUNCH), - LEVEL_UP_MOVE(52, MOVE_THIEF), - LEVEL_UP_END -}; - -const u16 gZigzagoonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 9, MOVE_HEADBUTT), - LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE(21, MOVE_MUD_SPORT), - LEVEL_UP_MOVE(25, MOVE_PIN_MISSILE), - LEVEL_UP_MOVE(29, MOVE_COVET), - LEVEL_UP_MOVE(33, MOVE_FLAIL), - LEVEL_UP_MOVE(37, MOVE_REST), - LEVEL_UP_MOVE(41, MOVE_BELLY_DRUM), - LEVEL_UP_END -}; - -const u16 gLinooneLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), - LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 9, MOVE_HEADBUTT), - LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE(23, MOVE_MUD_SPORT), - LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(35, MOVE_COVET), - LEVEL_UP_MOVE(41, MOVE_SLASH), - LEVEL_UP_MOVE(47, MOVE_REST), - LEVEL_UP_MOVE(53, MOVE_BELLY_DRUM), - LEVEL_UP_END -}; - -const u16 gWurmpleLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), - LEVEL_UP_MOVE( 5, MOVE_POISON_STING), - LEVEL_UP_END -}; - -const u16 gSilcoonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 7, MOVE_HARDEN), - LEVEL_UP_END -}; - -const u16 gBeautiflyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ABSORB), - LEVEL_UP_MOVE(10, MOVE_ABSORB), - LEVEL_UP_MOVE(13, MOVE_GUST), - LEVEL_UP_MOVE(17, MOVE_STUN_SPORE), - LEVEL_UP_MOVE(20, MOVE_MORNING_SUN), - LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), - LEVEL_UP_MOVE(27, MOVE_WHIRLWIND), - LEVEL_UP_MOVE(31, MOVE_ATTRACT), - LEVEL_UP_MOVE(34, MOVE_SILVER_WIND), - LEVEL_UP_MOVE(38, MOVE_GIGA_DRAIN), - LEVEL_UP_END -}; - -const u16 gCascoonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 7, MOVE_HARDEN), - LEVEL_UP_END -}; - -const u16 gDustoxLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE(10, MOVE_CONFUSION), - LEVEL_UP_MOVE(13, MOVE_GUST), - LEVEL_UP_MOVE(17, MOVE_PROTECT), - LEVEL_UP_MOVE(20, MOVE_MOONLIGHT), - LEVEL_UP_MOVE(24, MOVE_PSYBEAM), - LEVEL_UP_MOVE(27, MOVE_WHIRLWIND), - LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE(34, MOVE_SILVER_WIND), - LEVEL_UP_MOVE(38, MOVE_TOXIC), - LEVEL_UP_END -}; - -const u16 gLotadLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 3, MOVE_GROWL), - LEVEL_UP_MOVE( 7, MOVE_ABSORB), - LEVEL_UP_MOVE(13, MOVE_NATURE_POWER), - LEVEL_UP_MOVE(21, MOVE_MIST), - LEVEL_UP_MOVE(31, MOVE_RAIN_DANCE), - LEVEL_UP_MOVE(43, MOVE_MEGA_DRAIN), - LEVEL_UP_END -}; - -const u16 gLombreLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 3, MOVE_GROWL), - LEVEL_UP_MOVE( 7, MOVE_ABSORB), - LEVEL_UP_MOVE(13, MOVE_NATURE_POWER), - LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), - LEVEL_UP_MOVE(25, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(31, MOVE_WATER_SPORT), - LEVEL_UP_MOVE(37, MOVE_THIEF), - LEVEL_UP_MOVE(43, MOVE_UPROAR), - LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -const u16 gLudicoloLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_ABSORB), - LEVEL_UP_MOVE( 1, MOVE_NATURE_POWER), - LEVEL_UP_END -}; - -const u16 gSeedotLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BIDE), - LEVEL_UP_MOVE( 3, MOVE_HARDEN), - LEVEL_UP_MOVE( 7, MOVE_GROWTH), - LEVEL_UP_MOVE(13, MOVE_NATURE_POWER), - LEVEL_UP_MOVE(21, MOVE_SYNTHESIS), - LEVEL_UP_MOVE(31, MOVE_SUNNY_DAY), - LEVEL_UP_MOVE(43, MOVE_EXPLOSION), - LEVEL_UP_END -}; - -const u16 gNuzleafLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 3, MOVE_HARDEN), - LEVEL_UP_MOVE( 7, MOVE_GROWTH), - LEVEL_UP_MOVE(13, MOVE_NATURE_POWER), - LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), - LEVEL_UP_MOVE(25, MOVE_TORMENT), - LEVEL_UP_MOVE(31, MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE(37, MOVE_RAZOR_WIND), - LEVEL_UP_MOVE(43, MOVE_SWAGGER), - LEVEL_UP_MOVE(49, MOVE_EXTRASENSORY), - LEVEL_UP_END -}; - -const u16 gShiftryLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 1, MOVE_GROWTH), - LEVEL_UP_MOVE( 1, MOVE_NATURE_POWER), - LEVEL_UP_END -}; - -const u16 gNincadaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), - LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(19, MOVE_MIND_READER), - LEVEL_UP_MOVE(25, MOVE_FALSE_SWIPE), - LEVEL_UP_MOVE(31, MOVE_MUD_SLAP), - LEVEL_UP_MOVE(38, MOVE_METAL_CLAW), - LEVEL_UP_MOVE(45, MOVE_DIG), - LEVEL_UP_END -}; - -const u16 gNinjaskLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), - LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), - LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(19, MOVE_MIND_READER), - LEVEL_UP_MOVE(20, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER), - LEVEL_UP_MOVE(20, MOVE_SCREECH), - LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE(31, MOVE_SLASH), - LEVEL_UP_MOVE(38, MOVE_AGILITY), - LEVEL_UP_MOVE(45, MOVE_BATON_PASS), - LEVEL_UP_END -}; - -const u16 gShedinjaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), - LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(19, MOVE_MIND_READER), - LEVEL_UP_MOVE(25, MOVE_SPITE), - LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(38, MOVE_SHADOW_BALL), - LEVEL_UP_MOVE(45, MOVE_GRUDGE), - LEVEL_UP_END -}; - -const u16 gTaillowLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_PECK), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), - LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE(26, MOVE_ENDEAVOR), - LEVEL_UP_MOVE(34, MOVE_AERIAL_ACE), - LEVEL_UP_MOVE(43, MOVE_AGILITY), - LEVEL_UP_END -}; - -const u16 gSwellowLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_PECK), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), - LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), - LEVEL_UP_MOVE(38, MOVE_AERIAL_ACE), - LEVEL_UP_MOVE(49, MOVE_AGILITY), - LEVEL_UP_END -}; - -const u16 gShroomishLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ABSORB), - LEVEL_UP_MOVE( 4, MOVE_TACKLE), - LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), - LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), - LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN), - LEVEL_UP_MOVE(22, MOVE_HEADBUTT), - LEVEL_UP_MOVE(28, MOVE_POISON_POWDER), - LEVEL_UP_MOVE(36, MOVE_GROWTH), - LEVEL_UP_MOVE(45, MOVE_GIGA_DRAIN), - LEVEL_UP_MOVE(54, MOVE_SPORE), - LEVEL_UP_END -}; - -const u16 gBreloomLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ABSORB), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), - LEVEL_UP_MOVE( 4, MOVE_TACKLE), - LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), - LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), - LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN), - LEVEL_UP_MOVE(22, MOVE_HEADBUTT), - LEVEL_UP_MOVE(23, MOVE_MACH_PUNCH), - LEVEL_UP_MOVE(28, MOVE_COUNTER), - LEVEL_UP_MOVE(36, MOVE_SKY_UPPERCUT), - LEVEL_UP_MOVE(45, MOVE_MIND_READER), - LEVEL_UP_MOVE(54, MOVE_DYNAMIC_PUNCH), - LEVEL_UP_END -}; - -const u16 gSpindaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 5, MOVE_UPROAR), - LEVEL_UP_MOVE(12, MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE(16, MOVE_PSYBEAM), - LEVEL_UP_MOVE(23, MOVE_HYPNOSIS), - LEVEL_UP_MOVE(27, MOVE_DIZZY_PUNCH), - LEVEL_UP_MOVE(34, MOVE_TEETER_DANCE), - LEVEL_UP_MOVE(38, MOVE_PSYCH_UP), - LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(49, MOVE_FLAIL), - LEVEL_UP_MOVE(56, MOVE_THRASH), - LEVEL_UP_END -}; - -const u16 gWingullLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), - LEVEL_UP_MOVE(21, MOVE_MIST), - LEVEL_UP_MOVE(31, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(43, MOVE_PURSUIT), - LEVEL_UP_MOVE(55, MOVE_AGILITY), - LEVEL_UP_END -}; - -const u16 gPelipperLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), - LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), - LEVEL_UP_MOVE( 3, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), - LEVEL_UP_MOVE(21, MOVE_MIST), - LEVEL_UP_MOVE(25, MOVE_PROTECT), - LEVEL_UP_MOVE(33, MOVE_STOCKPILE), - LEVEL_UP_MOVE(33, MOVE_SWALLOW), - LEVEL_UP_MOVE(47, MOVE_SPIT_UP), - LEVEL_UP_MOVE(61, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -const u16 gSurskitLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BUBBLE), - LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT), - LEVEL_UP_MOVE(19, MOVE_WATER_SPORT), - LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), - LEVEL_UP_MOVE(31, MOVE_AGILITY), - LEVEL_UP_MOVE(37, MOVE_MIST), - LEVEL_UP_MOVE(37, MOVE_HAZE), - LEVEL_UP_END -}; - -const u16 gMasquerainLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BUBBLE), - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), - LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), - LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT), - LEVEL_UP_MOVE(19, MOVE_WATER_SPORT), - LEVEL_UP_MOVE(26, MOVE_GUST), - LEVEL_UP_MOVE(33, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(40, MOVE_STUN_SPORE), - LEVEL_UP_MOVE(47, MOVE_SILVER_WIND), - LEVEL_UP_MOVE(53, MOVE_WHIRLWIND), - LEVEL_UP_END -}; - -const u16 gWailmerLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SPLASH), - LEVEL_UP_MOVE( 5, MOVE_GROWL), - LEVEL_UP_MOVE(10, MOVE_WATER_GUN), - LEVEL_UP_MOVE(14, MOVE_ROLLOUT), - LEVEL_UP_MOVE(19, MOVE_WHIRLPOOL), - LEVEL_UP_MOVE(23, MOVE_ASTONISH), - LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), - LEVEL_UP_MOVE(32, MOVE_MIST), - LEVEL_UP_MOVE(37, MOVE_REST), - LEVEL_UP_MOVE(41, MOVE_WATER_SPOUT), - LEVEL_UP_MOVE(46, MOVE_AMNESIA), - LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -const u16 gWailordLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SPLASH), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), - LEVEL_UP_MOVE( 5, MOVE_GROWL), - LEVEL_UP_MOVE(10, MOVE_WATER_GUN), - LEVEL_UP_MOVE(14, MOVE_ROLLOUT), - LEVEL_UP_MOVE(19, MOVE_WHIRLPOOL), - LEVEL_UP_MOVE(23, MOVE_ASTONISH), - LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), - LEVEL_UP_MOVE(32, MOVE_MIST), - LEVEL_UP_MOVE(37, MOVE_REST), - LEVEL_UP_MOVE(44, MOVE_WATER_SPOUT), - LEVEL_UP_MOVE(52, MOVE_AMNESIA), - LEVEL_UP_MOVE(59, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -const u16 gSkittyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 7, MOVE_ATTRACT), - LEVEL_UP_MOVE(13, MOVE_SING), - LEVEL_UP_MOVE(15, MOVE_DOUBLE_SLAP), - LEVEL_UP_MOVE(19, MOVE_ASSIST), - LEVEL_UP_MOVE(25, MOVE_CHARM), - LEVEL_UP_MOVE(27, MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE(31, MOVE_COVET), - LEVEL_UP_MOVE(37, MOVE_HEAL_BELL), - LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -const u16 gDelcattyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_ATTRACT), - LEVEL_UP_MOVE( 1, MOVE_SING), - LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), - LEVEL_UP_END -}; - -const u16 gKecleonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_THIEF), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 1, MOVE_LICK), - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 4, MOVE_BIND), - LEVEL_UP_MOVE( 7, MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(17, MOVE_PSYBEAM), - LEVEL_UP_MOVE(24, MOVE_SCREECH), - LEVEL_UP_MOVE(31, MOVE_SLASH), - LEVEL_UP_MOVE(40, MOVE_SUBSTITUTE), - LEVEL_UP_MOVE(49, MOVE_ANCIENT_POWER), - LEVEL_UP_END -}; - -const u16 gBaltoyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE( 3, MOVE_HARDEN), - LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), - LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), - LEVEL_UP_MOVE(11, MOVE_PSYBEAM), - LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB), - LEVEL_UP_MOVE(19, MOVE_SELF_DESTRUCT), - LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(31, MOVE_SANDSTORM), - LEVEL_UP_MOVE(37, MOVE_COSMIC_POWER), - LEVEL_UP_MOVE(45, MOVE_EXPLOSION), - LEVEL_UP_END -}; - -const u16 gClaydolLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TELEPORT), - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), - LEVEL_UP_MOVE( 3, MOVE_HARDEN), - LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), - LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), - LEVEL_UP_MOVE(11, MOVE_PSYBEAM), - LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB), - LEVEL_UP_MOVE(19, MOVE_SELF_DESTRUCT), - LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(31, MOVE_SANDSTORM), - LEVEL_UP_MOVE(36, MOVE_HYPER_BEAM), - LEVEL_UP_MOVE(42, MOVE_COSMIC_POWER), - LEVEL_UP_MOVE(55, MOVE_EXPLOSION), - LEVEL_UP_END -}; - -const u16 gNosepassLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 7, MOVE_HARDEN), - LEVEL_UP_MOVE(13, MOVE_ROCK_THROW), - LEVEL_UP_MOVE(16, MOVE_BLOCK), - LEVEL_UP_MOVE(22, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE(31, MOVE_SANDSTORM), - LEVEL_UP_MOVE(37, MOVE_REST), - LEVEL_UP_MOVE(43, MOVE_ZAP_CANNON), - LEVEL_UP_MOVE(46, MOVE_LOCK_ON), - LEVEL_UP_END -}; - -const u16 gTorkoalLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_EMBER), - LEVEL_UP_MOVE( 4, MOVE_SMOG), - LEVEL_UP_MOVE( 7, MOVE_CURSE), - LEVEL_UP_MOVE(14, MOVE_SMOKESCREEN), - LEVEL_UP_MOVE(17, MOVE_FIRE_SPIN), - LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), - LEVEL_UP_MOVE(27, MOVE_PROTECT), - LEVEL_UP_MOVE(30, MOVE_FLAMETHROWER), - LEVEL_UP_MOVE(33, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE(40, MOVE_AMNESIA), - LEVEL_UP_MOVE(43, MOVE_FLAIL), - LEVEL_UP_MOVE(46, MOVE_HEAT_WAVE), - LEVEL_UP_END -}; - -const u16 gSableyeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 5, MOVE_FORESIGHT), - LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE(13, MOVE_ASTONISH), - LEVEL_UP_MOVE(17, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(21, MOVE_FAKE_OUT), - LEVEL_UP_MOVE(25, MOVE_DETECT), - LEVEL_UP_MOVE(29, MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE(33, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE(37, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), - LEVEL_UP_MOVE(45, MOVE_MEAN_LOOK), - LEVEL_UP_END -}; - -const u16 gBarboachLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), - LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), - LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT), - LEVEL_UP_MOVE(11, MOVE_WATER_GUN), - LEVEL_UP_MOVE(16, MOVE_MAGNITUDE), - LEVEL_UP_MOVE(21, MOVE_AMNESIA), - LEVEL_UP_MOVE(26, MOVE_REST), - LEVEL_UP_MOVE(26, MOVE_SNORE), - LEVEL_UP_MOVE(31, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE(41, MOVE_FISSURE), - LEVEL_UP_END -}; - -const u16 gWhiscashLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TICKLE), - LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), - LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), - LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), - LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), - LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT), - LEVEL_UP_MOVE(11, MOVE_WATER_GUN), - LEVEL_UP_MOVE(16, MOVE_MAGNITUDE), - LEVEL_UP_MOVE(21, MOVE_AMNESIA), - LEVEL_UP_MOVE(26, MOVE_REST), - LEVEL_UP_MOVE(26, MOVE_SNORE), - LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(46, MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE(56, MOVE_FISSURE), - LEVEL_UP_END -}; - -const u16 gLuvdiscLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 4, MOVE_CHARM), - LEVEL_UP_MOVE(12, MOVE_WATER_GUN), - LEVEL_UP_MOVE(16, MOVE_AGILITY), - LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(28, MOVE_ATTRACT), - LEVEL_UP_MOVE(36, MOVE_SWEET_KISS), - LEVEL_UP_MOVE(40, MOVE_FLAIL), - LEVEL_UP_MOVE(48, MOVE_SAFEGUARD), - LEVEL_UP_END -}; - -const u16 gCorphishLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BUBBLE), - LEVEL_UP_MOVE( 7, MOVE_HARDEN), - LEVEL_UP_MOVE(10, MOVE_VICE_GRIP), - LEVEL_UP_MOVE(13, MOVE_LEER), - LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), - LEVEL_UP_MOVE(23, MOVE_PROTECT), - LEVEL_UP_MOVE(26, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE(32, MOVE_TAUNT), - LEVEL_UP_MOVE(35, MOVE_CRABHAMMER), - LEVEL_UP_MOVE(38, MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE(44, MOVE_GUILLOTINE), - LEVEL_UP_END -}; - -const u16 gCrawdauntLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BUBBLE), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 1, MOVE_VICE_GRIP), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 7, MOVE_HARDEN), - LEVEL_UP_MOVE(10, MOVE_VICE_GRIP), - LEVEL_UP_MOVE(13, MOVE_LEER), - LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), - LEVEL_UP_MOVE(23, MOVE_PROTECT), - LEVEL_UP_MOVE(26, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE(34, MOVE_TAUNT), - LEVEL_UP_MOVE(39, MOVE_CRABHAMMER), - LEVEL_UP_MOVE(44, MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE(52, MOVE_GUILLOTINE), - LEVEL_UP_END -}; - -const u16 gFeebasLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SPLASH), - LEVEL_UP_MOVE(15, MOVE_TACKLE), - LEVEL_UP_MOVE(30, MOVE_FLAIL), - LEVEL_UP_END -}; - -const u16 gMiloticLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 5, MOVE_WRAP), - LEVEL_UP_MOVE(10, MOVE_WATER_SPORT), - LEVEL_UP_MOVE(15, MOVE_REFRESH), - LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), - LEVEL_UP_MOVE(25, MOVE_TWISTER), - LEVEL_UP_MOVE(30, MOVE_RECOVER), - LEVEL_UP_MOVE(35, MOVE_RAIN_DANCE), - LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE(45, MOVE_ATTRACT), - LEVEL_UP_MOVE(50, MOVE_SAFEGUARD), - LEVEL_UP_END -}; - -const u16 gCarvanhaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE( 7, MOVE_RAGE), - LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(22, MOVE_CRUNCH), - LEVEL_UP_MOVE(28, MOVE_SCREECH), - LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(37, MOVE_SWAGGER), - LEVEL_UP_MOVE(43, MOVE_AGILITY), - LEVEL_UP_END -}; - -const u16 gSharpedoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE( 1, MOVE_RAGE), - LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 7, MOVE_RAGE), - LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(22, MOVE_CRUNCH), - LEVEL_UP_MOVE(28, MOVE_SCREECH), - LEVEL_UP_MOVE(33, MOVE_SLASH), - LEVEL_UP_MOVE(38, MOVE_TAUNT), - LEVEL_UP_MOVE(43, MOVE_SWAGGER), - LEVEL_UP_MOVE(48, MOVE_SKULL_BASH), - LEVEL_UP_MOVE(53, MOVE_AGILITY), - LEVEL_UP_END -}; - -const u16 gTrapinchLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(17, MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), - LEVEL_UP_MOVE(33, MOVE_CRUNCH), - LEVEL_UP_MOVE(41, MOVE_DIG), - LEVEL_UP_MOVE(49, MOVE_SANDSTORM), - LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -const u16 gVibravaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), - LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(17, MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), - LEVEL_UP_MOVE(33, MOVE_CRUNCH), - LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), - LEVEL_UP_MOVE(41, MOVE_SCREECH), - LEVEL_UP_MOVE(49, MOVE_SANDSTORM), - LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -const u16 gFlygonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), - LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(17, MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), - LEVEL_UP_MOVE(33, MOVE_CRUNCH), - LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), - LEVEL_UP_MOVE(41, MOVE_SCREECH), - LEVEL_UP_MOVE(53, MOVE_SANDSTORM), - LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -const u16 gMakuhitaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(10, MOVE_ARM_THRUST), - LEVEL_UP_MOVE(13, MOVE_VITAL_THROW), - LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), - LEVEL_UP_MOVE(22, MOVE_WHIRLWIND), - LEVEL_UP_MOVE(28, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE(31, MOVE_SMELLING_SALT), - LEVEL_UP_MOVE(37, MOVE_BELLY_DRUM), - LEVEL_UP_MOVE(40, MOVE_ENDURE), - LEVEL_UP_MOVE(46, MOVE_SEISMIC_TOSS), - LEVEL_UP_MOVE(49, MOVE_REVERSAL), - LEVEL_UP_END -}; - -const u16 gHariyamaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), - LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(10, MOVE_ARM_THRUST), - LEVEL_UP_MOVE(13, MOVE_VITAL_THROW), - LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), - LEVEL_UP_MOVE(22, MOVE_WHIRLWIND), - LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE(33, MOVE_SMELLING_SALT), - LEVEL_UP_MOVE(40, MOVE_BELLY_DRUM), - LEVEL_UP_MOVE(44, MOVE_ENDURE), - LEVEL_UP_MOVE(51, MOVE_SEISMIC_TOSS), - LEVEL_UP_MOVE(55, MOVE_REVERSAL), - LEVEL_UP_END -}; - -const u16 gElectrikeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 9, MOVE_LEER), - LEVEL_UP_MOVE(12, MOVE_HOWL), - LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(20, MOVE_SPARK), - LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE(28, MOVE_ROAR), - LEVEL_UP_MOVE(33, MOVE_BITE), - LEVEL_UP_MOVE(36, MOVE_THUNDER), - LEVEL_UP_MOVE(41, MOVE_CHARGE), - LEVEL_UP_END -}; - -const u16 gManectricLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_HOWL), - LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 9, MOVE_LEER), - LEVEL_UP_MOVE(12, MOVE_HOWL), - LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(20, MOVE_SPARK), - LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE(31, MOVE_ROAR), - LEVEL_UP_MOVE(39, MOVE_BITE), - LEVEL_UP_MOVE(45, MOVE_THUNDER), - LEVEL_UP_MOVE(53, MOVE_CHARGE), - LEVEL_UP_END -}; - -const u16 gNumelLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE(11, MOVE_EMBER), - LEVEL_UP_MOVE(19, MOVE_MAGNITUDE), - LEVEL_UP_MOVE(25, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(31, MOVE_AMNESIA), - LEVEL_UP_MOVE(35, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER), - LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -const u16 gCameruptLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_EMBER), - LEVEL_UP_MOVE( 1, MOVE_MAGNITUDE), - LEVEL_UP_MOVE(11, MOVE_EMBER), - LEVEL_UP_MOVE(19, MOVE_MAGNITUDE), - LEVEL_UP_MOVE(25, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(31, MOVE_AMNESIA), - LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE(37, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(45, MOVE_ERUPTION), - LEVEL_UP_MOVE(55, MOVE_FISSURE), - LEVEL_UP_END -}; - -const u16 gSphealLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 7, MOVE_ENCORE), - LEVEL_UP_MOVE(13, MOVE_ICE_BALL), - LEVEL_UP_MOVE(19, MOVE_BODY_SLAM), - LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM), - LEVEL_UP_MOVE(31, MOVE_HAIL), - LEVEL_UP_MOVE(37, MOVE_REST), - LEVEL_UP_MOVE(37, MOVE_SNORE), - LEVEL_UP_MOVE(43, MOVE_BLIZZARD), - LEVEL_UP_MOVE(49, MOVE_SHEER_COLD), - LEVEL_UP_END -}; - -const u16 gSealeoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 1, MOVE_ENCORE), - LEVEL_UP_MOVE( 7, MOVE_ENCORE), - LEVEL_UP_MOVE(13, MOVE_ICE_BALL), - LEVEL_UP_MOVE(19, MOVE_BODY_SLAM), - LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM), - LEVEL_UP_MOVE(31, MOVE_HAIL), - LEVEL_UP_MOVE(39, MOVE_REST), - LEVEL_UP_MOVE(39, MOVE_SNORE), - LEVEL_UP_MOVE(47, MOVE_BLIZZARD), - LEVEL_UP_MOVE(55, MOVE_SHEER_COLD), - LEVEL_UP_END -}; - -const u16 gWalreinLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 1, MOVE_ENCORE), - LEVEL_UP_MOVE( 7, MOVE_ENCORE), - LEVEL_UP_MOVE(13, MOVE_ICE_BALL), - LEVEL_UP_MOVE(19, MOVE_BODY_SLAM), - LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM), - LEVEL_UP_MOVE(31, MOVE_HAIL), - LEVEL_UP_MOVE(39, MOVE_REST), - LEVEL_UP_MOVE(39, MOVE_SNORE), - LEVEL_UP_MOVE(50, MOVE_BLIZZARD), - LEVEL_UP_MOVE(61, MOVE_SHEER_COLD), - LEVEL_UP_END -}; - -const u16 gCacneaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POISON_STING), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 5, MOVE_ABSORB), - LEVEL_UP_MOVE( 9, MOVE_GROWTH), - LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), - LEVEL_UP_MOVE(17, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(21, MOVE_PIN_MISSILE), - LEVEL_UP_MOVE(25, MOVE_INGRAIN), - LEVEL_UP_MOVE(29, MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE(33, MOVE_SPIKES), - LEVEL_UP_MOVE(37, MOVE_NEEDLE_ARM), - LEVEL_UP_MOVE(41, MOVE_COTTON_SPORE), - LEVEL_UP_MOVE(45, MOVE_SANDSTORM), - LEVEL_UP_END -}; - -const u16 gCacturneLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POISON_STING), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_ABSORB), - LEVEL_UP_MOVE( 1, MOVE_GROWTH), - LEVEL_UP_MOVE( 5, MOVE_ABSORB), - LEVEL_UP_MOVE( 9, MOVE_GROWTH), - LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), - LEVEL_UP_MOVE(17, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(21, MOVE_PIN_MISSILE), - LEVEL_UP_MOVE(25, MOVE_INGRAIN), - LEVEL_UP_MOVE(29, MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE(35, MOVE_SPIKES), - LEVEL_UP_MOVE(41, MOVE_NEEDLE_ARM), - LEVEL_UP_MOVE(47, MOVE_COTTON_SPORE), - LEVEL_UP_MOVE(53, MOVE_SANDSTORM), - LEVEL_UP_END -}; - -const u16 gSnoruntLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 7, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE(10, MOVE_BITE), - LEVEL_UP_MOVE(16, MOVE_ICY_WIND), - LEVEL_UP_MOVE(19, MOVE_HEADBUTT), - LEVEL_UP_MOVE(25, MOVE_PROTECT), - LEVEL_UP_MOVE(28, MOVE_CRUNCH), - LEVEL_UP_MOVE(34, MOVE_ICE_BEAM), - LEVEL_UP_MOVE(37, MOVE_HAIL), - LEVEL_UP_MOVE(43, MOVE_BLIZZARD), - LEVEL_UP_END -}; - -const u16 gGlalieLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE( 7, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE(10, MOVE_BITE), - LEVEL_UP_MOVE(16, MOVE_ICY_WIND), - LEVEL_UP_MOVE(19, MOVE_HEADBUTT), - LEVEL_UP_MOVE(25, MOVE_PROTECT), - LEVEL_UP_MOVE(28, MOVE_CRUNCH), - LEVEL_UP_MOVE(34, MOVE_ICE_BEAM), - LEVEL_UP_MOVE(42, MOVE_HAIL), - LEVEL_UP_MOVE(53, MOVE_BLIZZARD), - LEVEL_UP_MOVE(61, MOVE_SHEER_COLD), - LEVEL_UP_END -}; - -const u16 gLunatoneLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 7, MOVE_CONFUSION), - LEVEL_UP_MOVE(13, MOVE_ROCK_THROW), - LEVEL_UP_MOVE(19, MOVE_HYPNOSIS), - LEVEL_UP_MOVE(25, MOVE_PSYWAVE), - LEVEL_UP_MOVE(31, MOVE_COSMIC_POWER), - LEVEL_UP_MOVE(37, MOVE_PSYCHIC), - LEVEL_UP_MOVE(43, MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE(49, MOVE_EXPLOSION), - LEVEL_UP_END -}; - -const u16 gSolrockLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 7, MOVE_CONFUSION), - LEVEL_UP_MOVE(13, MOVE_ROCK_THROW), - LEVEL_UP_MOVE(19, MOVE_FIRE_SPIN), - LEVEL_UP_MOVE(25, MOVE_PSYWAVE), - LEVEL_UP_MOVE(31, MOVE_COSMIC_POWER), - LEVEL_UP_MOVE(37, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM), - LEVEL_UP_MOVE(49, MOVE_EXPLOSION), - LEVEL_UP_END -}; - -const u16 gAzurillLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SPLASH), - LEVEL_UP_MOVE( 3, MOVE_CHARM), - LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE(10, MOVE_BUBBLE), - LEVEL_UP_MOVE(15, MOVE_SLAM), - LEVEL_UP_MOVE(21, MOVE_WATER_GUN), - LEVEL_UP_END -}; - -const u16 gSpoinkLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SPLASH), - LEVEL_UP_MOVE( 7, MOVE_PSYWAVE), - LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE(16, MOVE_PSYBEAM), - LEVEL_UP_MOVE(19, MOVE_PSYCH_UP), - LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(28, MOVE_MAGIC_COAT), - LEVEL_UP_MOVE(34, MOVE_PSYCHIC), - LEVEL_UP_MOVE(37, MOVE_REST), - LEVEL_UP_MOVE(37, MOVE_SNORE), - LEVEL_UP_MOVE(43, MOVE_BOUNCE), - LEVEL_UP_END -}; - -const u16 gGrumpigLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SPLASH), - LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), - LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), - LEVEL_UP_MOVE( 7, MOVE_PSYWAVE), - LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE(16, MOVE_PSYBEAM), - LEVEL_UP_MOVE(19, MOVE_PSYCH_UP), - LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(28, MOVE_MAGIC_COAT), - LEVEL_UP_MOVE(37, MOVE_PSYCHIC), - LEVEL_UP_MOVE(43, MOVE_REST), - LEVEL_UP_MOVE(43, MOVE_SNORE), - LEVEL_UP_MOVE(55, MOVE_BOUNCE), - LEVEL_UP_END -}; - -const u16 gPlusleLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), - LEVEL_UP_MOVE(19, MOVE_SPARK), - LEVEL_UP_MOVE(22, MOVE_ENCORE), - LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS), - LEVEL_UP_MOVE(31, MOVE_CHARGE), - LEVEL_UP_MOVE(37, MOVE_THUNDER), - LEVEL_UP_MOVE(40, MOVE_BATON_PASS), - LEVEL_UP_MOVE(47, MOVE_AGILITY), - LEVEL_UP_END -}; - -const u16 gMinunLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), - LEVEL_UP_MOVE(19, MOVE_SPARK), - LEVEL_UP_MOVE(22, MOVE_ENCORE), - LEVEL_UP_MOVE(28, MOVE_CHARM), - LEVEL_UP_MOVE(31, MOVE_CHARGE), - LEVEL_UP_MOVE(37, MOVE_THUNDER), - LEVEL_UP_MOVE(40, MOVE_BATON_PASS), - LEVEL_UP_MOVE(47, MOVE_AGILITY), - LEVEL_UP_END -}; - -const u16 gMawileLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 6, MOVE_FAKE_TEARS), - LEVEL_UP_MOVE(11, MOVE_BITE), - LEVEL_UP_MOVE(16, MOVE_SWEET_SCENT), - LEVEL_UP_MOVE(21, MOVE_VICE_GRIP), - LEVEL_UP_MOVE(26, MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE(31, MOVE_BATON_PASS), - LEVEL_UP_MOVE(36, MOVE_CRUNCH), - LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE(46, MOVE_STOCKPILE), - LEVEL_UP_MOVE(46, MOVE_SWALLOW), - LEVEL_UP_MOVE(46, MOVE_SPIT_UP), - LEVEL_UP_END -}; - -const u16 gMedititeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BIDE), - LEVEL_UP_MOVE( 4, MOVE_MEDITATE), - LEVEL_UP_MOVE( 9, MOVE_CONFUSION), - LEVEL_UP_MOVE(12, MOVE_DETECT), - LEVEL_UP_MOVE(18, MOVE_HIDDEN_POWER), - LEVEL_UP_MOVE(22, MOVE_MIND_READER), - LEVEL_UP_MOVE(28, MOVE_CALM_MIND), - LEVEL_UP_MOVE(32, MOVE_HI_JUMP_KICK), - LEVEL_UP_MOVE(38, MOVE_PSYCH_UP), - LEVEL_UP_MOVE(42, MOVE_REVERSAL), - LEVEL_UP_MOVE(48, MOVE_RECOVER), - LEVEL_UP_END -}; - -const u16 gMedichamLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), - LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), - LEVEL_UP_MOVE( 1, MOVE_BIDE), - LEVEL_UP_MOVE( 1, MOVE_MEDITATE), - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE( 1, MOVE_DETECT), - LEVEL_UP_MOVE( 4, MOVE_MEDITATE), - LEVEL_UP_MOVE( 9, MOVE_CONFUSION), - LEVEL_UP_MOVE(12, MOVE_DETECT), - LEVEL_UP_MOVE(18, MOVE_HIDDEN_POWER), - LEVEL_UP_MOVE(22, MOVE_MIND_READER), - LEVEL_UP_MOVE(28, MOVE_CALM_MIND), - LEVEL_UP_MOVE(32, MOVE_HI_JUMP_KICK), - LEVEL_UP_MOVE(40, MOVE_PSYCH_UP), - LEVEL_UP_MOVE(46, MOVE_REVERSAL), - LEVEL_UP_MOVE(54, MOVE_RECOVER), - LEVEL_UP_END -}; - -const u16 gSwabluLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_PECK), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 8, MOVE_ASTONISH), - LEVEL_UP_MOVE(11, MOVE_SING), - LEVEL_UP_MOVE(18, MOVE_FURY_ATTACK), - LEVEL_UP_MOVE(21, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(28, MOVE_MIST), - LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(38, MOVE_MIRROR_MOVE), - LEVEL_UP_MOVE(41, MOVE_REFRESH), - LEVEL_UP_MOVE(48, MOVE_PERISH_SONG), - LEVEL_UP_END -}; - -const u16 gAltariaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_PECK), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 1, MOVE_SING), - LEVEL_UP_MOVE( 8, MOVE_ASTONISH), - LEVEL_UP_MOVE(11, MOVE_SING), - LEVEL_UP_MOVE(18, MOVE_FURY_ATTACK), - LEVEL_UP_MOVE(21, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(28, MOVE_MIST), - LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), - LEVEL_UP_MOVE(40, MOVE_DRAGON_DANCE), - LEVEL_UP_MOVE(45, MOVE_REFRESH), - LEVEL_UP_MOVE(54, MOVE_PERISH_SONG), - LEVEL_UP_MOVE(59, MOVE_SKY_ATTACK), - LEVEL_UP_END -}; - -const u16 gWynautLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SPLASH), - LEVEL_UP_MOVE( 1, MOVE_CHARM), - LEVEL_UP_MOVE( 1, MOVE_ENCORE), - LEVEL_UP_MOVE(15, MOVE_COUNTER), - LEVEL_UP_MOVE(15, MOVE_MIRROR_COAT), - LEVEL_UP_MOVE(15, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(15, MOVE_DESTINY_BOND), - LEVEL_UP_END -}; - -const u16 gDuskullLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE( 5, MOVE_DISABLE), - LEVEL_UP_MOVE(12, MOVE_FORESIGHT), - LEVEL_UP_MOVE(16, MOVE_ASTONISH), - LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(27, MOVE_PURSUIT), - LEVEL_UP_MOVE(34, MOVE_CURSE), - LEVEL_UP_MOVE(38, MOVE_WILL_O_WISP), - LEVEL_UP_MOVE(45, MOVE_MEAN_LOOK), - LEVEL_UP_MOVE(49, MOVE_FUTURE_SIGHT), - LEVEL_UP_END -}; - -const u16 gDusclopsLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BIND), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE( 1, MOVE_DISABLE), - LEVEL_UP_MOVE( 5, MOVE_DISABLE), - LEVEL_UP_MOVE(12, MOVE_FORESIGHT), - LEVEL_UP_MOVE(16, MOVE_ASTONISH), - LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(27, MOVE_PURSUIT), - LEVEL_UP_MOVE(34, MOVE_CURSE), - LEVEL_UP_MOVE(37, MOVE_SHADOW_PUNCH), - LEVEL_UP_MOVE(41, MOVE_WILL_O_WISP), - LEVEL_UP_MOVE(51, MOVE_MEAN_LOOK), - LEVEL_UP_MOVE(58, MOVE_FUTURE_SIGHT), - LEVEL_UP_END -}; - -const u16 gRoseliaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ABSORB), - LEVEL_UP_MOVE( 5, MOVE_GROWTH), - LEVEL_UP_MOVE( 9, MOVE_POISON_STING), - LEVEL_UP_MOVE(13, MOVE_STUN_SPORE), - LEVEL_UP_MOVE(17, MOVE_MEGA_DRAIN), - LEVEL_UP_MOVE(21, MOVE_LEECH_SEED), - LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF), - LEVEL_UP_MOVE(29, MOVE_GRASS_WHISTLE), - LEVEL_UP_MOVE(33, MOVE_GIGA_DRAIN), - LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), - LEVEL_UP_MOVE(41, MOVE_INGRAIN), - LEVEL_UP_MOVE(45, MOVE_TOXIC), - LEVEL_UP_MOVE(49, MOVE_PETAL_DANCE), - LEVEL_UP_MOVE(53, MOVE_AROMATHERAPY), - LEVEL_UP_MOVE(57, MOVE_SYNTHESIS), - LEVEL_UP_END -}; - -const u16 gSlakothLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_YAWN), - LEVEL_UP_MOVE( 7, MOVE_ENCORE), - LEVEL_UP_MOVE(13, MOVE_SLACK_OFF), - LEVEL_UP_MOVE(19, MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE(25, MOVE_AMNESIA), - LEVEL_UP_MOVE(31, MOVE_COVET), - LEVEL_UP_MOVE(37, MOVE_COUNTER), - LEVEL_UP_MOVE(43, MOVE_FLAIL), - LEVEL_UP_END -}; - -const u16 gVigorothLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 1, MOVE_ENCORE), - LEVEL_UP_MOVE( 1, MOVE_UPROAR), - LEVEL_UP_MOVE( 7, MOVE_ENCORE), - LEVEL_UP_MOVE(13, MOVE_UPROAR), - LEVEL_UP_MOVE(19, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(25, MOVE_ENDURE), - LEVEL_UP_MOVE(31, MOVE_SLASH), - LEVEL_UP_MOVE(37, MOVE_COUNTER), - LEVEL_UP_MOVE(43, MOVE_FOCUS_PUNCH), - LEVEL_UP_MOVE(49, MOVE_REVERSAL), - LEVEL_UP_END -}; - -const u16 gSlakingLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_YAWN), - LEVEL_UP_MOVE( 1, MOVE_ENCORE), - LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), - LEVEL_UP_MOVE( 7, MOVE_ENCORE), - LEVEL_UP_MOVE(13, MOVE_SLACK_OFF), - LEVEL_UP_MOVE(19, MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE(25, MOVE_AMNESIA), - LEVEL_UP_MOVE(31, MOVE_COVET), - LEVEL_UP_MOVE(36, MOVE_SWAGGER), - LEVEL_UP_MOVE(37, MOVE_COUNTER), - LEVEL_UP_MOVE(43, MOVE_FLAIL), - LEVEL_UP_END -}; - -const u16 gGulpinLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 6, MOVE_YAWN), - LEVEL_UP_MOVE( 9, MOVE_POISON_GAS), - LEVEL_UP_MOVE(14, MOVE_SLUDGE), - LEVEL_UP_MOVE(17, MOVE_AMNESIA), - LEVEL_UP_MOVE(23, MOVE_ENCORE), - LEVEL_UP_MOVE(28, MOVE_TOXIC), - LEVEL_UP_MOVE(34, MOVE_STOCKPILE), - LEVEL_UP_MOVE(34, MOVE_SPIT_UP), - LEVEL_UP_MOVE(34, MOVE_SWALLOW), - LEVEL_UP_MOVE(39, MOVE_SLUDGE_BOMB), - LEVEL_UP_END -}; - -const u16 gSwalotLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 1, MOVE_YAWN), - LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), - LEVEL_UP_MOVE( 1, MOVE_SLUDGE), - LEVEL_UP_MOVE( 6, MOVE_YAWN), - LEVEL_UP_MOVE( 9, MOVE_POISON_GAS), - LEVEL_UP_MOVE(14, MOVE_SLUDGE), - LEVEL_UP_MOVE(17, MOVE_AMNESIA), - LEVEL_UP_MOVE(23, MOVE_ENCORE), - LEVEL_UP_MOVE(26, MOVE_BODY_SLAM), - LEVEL_UP_MOVE(31, MOVE_TOXIC), - LEVEL_UP_MOVE(40, MOVE_STOCKPILE), - LEVEL_UP_MOVE(40, MOVE_SPIT_UP), - LEVEL_UP_MOVE(40, MOVE_SWALLOW), - LEVEL_UP_MOVE(48, MOVE_SLUDGE_BOMB), - LEVEL_UP_END -}; - -const u16 gTropiusLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_GUST), - LEVEL_UP_MOVE( 7, MOVE_GROWTH), - LEVEL_UP_MOVE(11, MOVE_RAZOR_LEAF), - LEVEL_UP_MOVE(17, MOVE_STOMP), - LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT), - LEVEL_UP_MOVE(27, MOVE_WHIRLWIND), - LEVEL_UP_MOVE(31, MOVE_MAGICAL_LEAF), - LEVEL_UP_MOVE(37, MOVE_BODY_SLAM), - LEVEL_UP_MOVE(41, MOVE_SOLAR_BEAM), - LEVEL_UP_MOVE(47, MOVE_SYNTHESIS), - LEVEL_UP_END -}; - -const u16 gWhismurLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 5, MOVE_UPROAR), - LEVEL_UP_MOVE(11, MOVE_ASTONISH), - LEVEL_UP_MOVE(15, MOVE_HOWL), - LEVEL_UP_MOVE(21, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(25, MOVE_STOMP), - LEVEL_UP_MOVE(31, MOVE_SCREECH), - LEVEL_UP_MOVE(35, MOVE_ROAR), - LEVEL_UP_MOVE(41, MOVE_REST), - LEVEL_UP_MOVE(41, MOVE_SLEEP_TALK), - LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), - LEVEL_UP_END -}; - -const u16 gLoudredLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 1, MOVE_UPROAR), - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 1, MOVE_HOWL), - LEVEL_UP_MOVE( 5, MOVE_UPROAR), - LEVEL_UP_MOVE(11, MOVE_ASTONISH), - LEVEL_UP_MOVE(15, MOVE_HOWL), - LEVEL_UP_MOVE(23, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(29, MOVE_STOMP), - LEVEL_UP_MOVE(37, MOVE_SCREECH), - LEVEL_UP_MOVE(43, MOVE_ROAR), - LEVEL_UP_MOVE(51, MOVE_REST), - LEVEL_UP_MOVE(51, MOVE_SLEEP_TALK), - LEVEL_UP_MOVE(57, MOVE_HYPER_VOICE), - LEVEL_UP_END -}; - -const u16 gExploudLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 1, MOVE_UPROAR), - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 1, MOVE_HOWL), - LEVEL_UP_MOVE( 5, MOVE_UPROAR), - LEVEL_UP_MOVE(11, MOVE_ASTONISH), - LEVEL_UP_MOVE(15, MOVE_HOWL), - LEVEL_UP_MOVE(23, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(29, MOVE_STOMP), - LEVEL_UP_MOVE(37, MOVE_SCREECH), - LEVEL_UP_MOVE(40, MOVE_HYPER_BEAM), - LEVEL_UP_MOVE(45, MOVE_ROAR), - LEVEL_UP_MOVE(55, MOVE_REST), - LEVEL_UP_MOVE(55, MOVE_SLEEP_TALK), - LEVEL_UP_MOVE(63, MOVE_HYPER_VOICE), - LEVEL_UP_END -}; - -const u16 gClamperlLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_CLAMP), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), - LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), - LEVEL_UP_END -}; - -const u16 gHuntailLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), - LEVEL_UP_MOVE( 8, MOVE_BITE), - LEVEL_UP_MOVE(15, MOVE_SCREECH), - LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), - LEVEL_UP_MOVE(29, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(36, MOVE_CRUNCH), - LEVEL_UP_MOVE(43, MOVE_BATON_PASS), - LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -const u16 gGorebyssLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), - LEVEL_UP_MOVE( 8, MOVE_CONFUSION), - LEVEL_UP_MOVE(15, MOVE_AGILITY), - LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), - LEVEL_UP_MOVE(29, MOVE_AMNESIA), - LEVEL_UP_MOVE(36, MOVE_PSYCHIC), - LEVEL_UP_MOVE(43, MOVE_BATON_PASS), - LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -const u16 gAbsolLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 5, MOVE_LEER), - LEVEL_UP_MOVE( 9, MOVE_TAUNT), - LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(17, MOVE_RAZOR_WIND), - LEVEL_UP_MOVE(21, MOVE_BITE), - LEVEL_UP_MOVE(26, MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE(31, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE(36, MOVE_SLASH), - LEVEL_UP_MOVE(41, MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE(46, MOVE_PERISH_SONG), - LEVEL_UP_END -}; - -const u16 gShuppetLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE( 8, MOVE_SCREECH), - LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE(20, MOVE_CURSE), - LEVEL_UP_MOVE(25, MOVE_SPITE), - LEVEL_UP_MOVE(32, MOVE_WILL_O_WISP), - LEVEL_UP_MOVE(37, MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL), - LEVEL_UP_MOVE(49, MOVE_SNATCH), - LEVEL_UP_MOVE(56, MOVE_GRUDGE), - LEVEL_UP_END -}; - -const u16 gBanetteLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE( 1, MOVE_SCREECH), - LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE( 1, MOVE_CURSE), - LEVEL_UP_MOVE( 8, MOVE_SCREECH), - LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE(20, MOVE_CURSE), - LEVEL_UP_MOVE(25, MOVE_SPITE), - LEVEL_UP_MOVE(32, MOVE_WILL_O_WISP), - LEVEL_UP_MOVE(39, MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), - LEVEL_UP_MOVE(55, MOVE_SNATCH), - LEVEL_UP_MOVE(64, MOVE_GRUDGE), - LEVEL_UP_END -}; - -const u16 gSeviperLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WRAP), - LEVEL_UP_MOVE( 7, MOVE_LICK), - LEVEL_UP_MOVE(10, MOVE_BITE), - LEVEL_UP_MOVE(16, MOVE_POISON_TAIL), - LEVEL_UP_MOVE(19, MOVE_SCREECH), - LEVEL_UP_MOVE(25, MOVE_GLARE), - LEVEL_UP_MOVE(28, MOVE_CRUNCH), - LEVEL_UP_MOVE(34, MOVE_POISON_FANG), - LEVEL_UP_MOVE(37, MOVE_SWAGGER), - LEVEL_UP_MOVE(43, MOVE_HAZE), - LEVEL_UP_END -}; - -const u16 gZangooseLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 4, MOVE_LEER), - LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(10, MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE(13, MOVE_FURY_CUTTER), - LEVEL_UP_MOVE(19, MOVE_SLASH), - LEVEL_UP_MOVE(25, MOVE_PURSUIT), - LEVEL_UP_MOVE(31, MOVE_CRUSH_CLAW), - LEVEL_UP_MOVE(37, MOVE_TAUNT), - LEVEL_UP_MOVE(46, MOVE_DETECT), - LEVEL_UP_MOVE(55, MOVE_FALSE_SWIPE), - LEVEL_UP_END -}; - -const u16 gRelicanthLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 8, MOVE_WATER_GUN), - LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB), - LEVEL_UP_MOVE(22, MOVE_YAWN), - LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(36, MOVE_MUD_SPORT), - LEVEL_UP_MOVE(43, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(50, MOVE_REST), - LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(64, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -const u16 gAronLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 4, MOVE_HARDEN), - LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), - LEVEL_UP_MOVE(10, MOVE_HEADBUTT), - LEVEL_UP_MOVE(13, MOVE_METAL_CLAW), - LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE(21, MOVE_ROAR), - LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(29, MOVE_IRON_TAIL), - LEVEL_UP_MOVE(34, MOVE_PROTECT), - LEVEL_UP_MOVE(39, MOVE_METAL_SOUND), - LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -const u16 gLaironLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), - LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), - LEVEL_UP_MOVE( 4, MOVE_HARDEN), - LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), - LEVEL_UP_MOVE(10, MOVE_HEADBUTT), - LEVEL_UP_MOVE(13, MOVE_METAL_CLAW), - LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE(21, MOVE_ROAR), - LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(29, MOVE_IRON_TAIL), - LEVEL_UP_MOVE(37, MOVE_PROTECT), - LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), - LEVEL_UP_MOVE(53, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -const u16 gAggronLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), - LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), - LEVEL_UP_MOVE( 4, MOVE_HARDEN), - LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), - LEVEL_UP_MOVE(10, MOVE_HEADBUTT), - LEVEL_UP_MOVE(13, MOVE_METAL_CLAW), - LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE(21, MOVE_ROAR), - LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(29, MOVE_IRON_TAIL), - LEVEL_UP_MOVE(37, MOVE_PROTECT), - LEVEL_UP_MOVE(50, MOVE_METAL_SOUND), - LEVEL_UP_MOVE(63, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -const u16 gCastformLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE(10, MOVE_WATER_GUN), - LEVEL_UP_MOVE(10, MOVE_EMBER), - LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE(20, MOVE_RAIN_DANCE), - LEVEL_UP_MOVE(20, MOVE_SUNNY_DAY), - LEVEL_UP_MOVE(20, MOVE_HAIL), - LEVEL_UP_MOVE(30, MOVE_WEATHER_BALL), - LEVEL_UP_END -}; - -const u16 gVolbeatLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 5, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE( 9, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE(13, MOVE_MOONLIGHT), - LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(21, MOVE_TAIL_GLOW), - LEVEL_UP_MOVE(25, MOVE_SIGNAL_BEAM), - LEVEL_UP_MOVE(29, MOVE_PROTECT), - LEVEL_UP_MOVE(33, MOVE_HELPING_HAND), - LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -const u16 gIllumiseLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT), - LEVEL_UP_MOVE( 9, MOVE_CHARM), - LEVEL_UP_MOVE(13, MOVE_MOONLIGHT), - LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(21, MOVE_WISH), - LEVEL_UP_MOVE(25, MOVE_ENCORE), - LEVEL_UP_MOVE(29, MOVE_FLATTER), - LEVEL_UP_MOVE(33, MOVE_HELPING_HAND), - LEVEL_UP_MOVE(37, MOVE_COVET), - LEVEL_UP_END -}; - -const u16 gLileepLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 8, MOVE_CONSTRICT), - LEVEL_UP_MOVE(15, MOVE_ACID), - LEVEL_UP_MOVE(22, MOVE_INGRAIN), - LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(36, MOVE_AMNESIA), - LEVEL_UP_MOVE(43, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(50, MOVE_STOCKPILE), - LEVEL_UP_MOVE(50, MOVE_SPIT_UP), - LEVEL_UP_MOVE(50, MOVE_SWALLOW), - LEVEL_UP_END -}; - -const u16 gCradilyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), - LEVEL_UP_MOVE( 1, MOVE_ACID), - LEVEL_UP_MOVE( 1, MOVE_INGRAIN), - LEVEL_UP_MOVE( 8, MOVE_CONSTRICT), - LEVEL_UP_MOVE(15, MOVE_ACID), - LEVEL_UP_MOVE(22, MOVE_INGRAIN), - LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(36, MOVE_AMNESIA), - LEVEL_UP_MOVE(48, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(60, MOVE_STOCKPILE), - LEVEL_UP_MOVE(60, MOVE_SPIT_UP), - LEVEL_UP_MOVE(60, MOVE_SWALLOW), - LEVEL_UP_END -}; - -const u16 gAnorithLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 7, MOVE_HARDEN), - LEVEL_UP_MOVE(13, MOVE_MUD_SPORT), - LEVEL_UP_MOVE(19, MOVE_WATER_GUN), - LEVEL_UP_MOVE(25, MOVE_METAL_CLAW), - LEVEL_UP_MOVE(31, MOVE_PROTECT), - LEVEL_UP_MOVE(37, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(43, MOVE_FURY_CUTTER), - LEVEL_UP_MOVE(49, MOVE_SLASH), - LEVEL_UP_MOVE(55, MOVE_ROCK_BLAST), - LEVEL_UP_END -}; - -const u16 gArmaldoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 7, MOVE_HARDEN), - LEVEL_UP_MOVE(13, MOVE_MUD_SPORT), - LEVEL_UP_MOVE(19, MOVE_WATER_GUN), - LEVEL_UP_MOVE(25, MOVE_METAL_CLAW), - LEVEL_UP_MOVE(31, MOVE_PROTECT), - LEVEL_UP_MOVE(37, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(46, MOVE_FURY_CUTTER), - LEVEL_UP_MOVE(55, MOVE_SLASH), - LEVEL_UP_MOVE(64, MOVE_ROCK_BLAST), - LEVEL_UP_END -}; - -const u16 gRaltsLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 6, MOVE_CONFUSION), - LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE(16, MOVE_TELEPORT), - LEVEL_UP_MOVE(21, MOVE_CALM_MIND), - LEVEL_UP_MOVE(26, MOVE_PSYCHIC), - LEVEL_UP_MOVE(31, MOVE_IMPRISON), - LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE(41, MOVE_HYPNOSIS), - LEVEL_UP_MOVE(46, MOVE_DREAM_EATER), - LEVEL_UP_END -}; - -const u16 gKirliaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE( 1, MOVE_TELEPORT), - LEVEL_UP_MOVE( 6, MOVE_CONFUSION), - LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE(16, MOVE_TELEPORT), - LEVEL_UP_MOVE(21, MOVE_CALM_MIND), - LEVEL_UP_MOVE(26, MOVE_PSYCHIC), - LEVEL_UP_MOVE(33, MOVE_IMPRISON), - LEVEL_UP_MOVE(40, MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE(47, MOVE_HYPNOSIS), - LEVEL_UP_MOVE(54, MOVE_DREAM_EATER), - LEVEL_UP_END -}; - -const u16 gGardevoirLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE( 1, MOVE_TELEPORT), - LEVEL_UP_MOVE( 6, MOVE_CONFUSION), - LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE(16, MOVE_TELEPORT), - LEVEL_UP_MOVE(21, MOVE_CALM_MIND), - LEVEL_UP_MOVE(26, MOVE_PSYCHIC), - LEVEL_UP_MOVE(33, MOVE_IMPRISON), - LEVEL_UP_MOVE(42, MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE(51, MOVE_HYPNOSIS), - LEVEL_UP_MOVE(60, MOVE_DREAM_EATER), - LEVEL_UP_END -}; - -const u16 gBagonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_RAGE), - LEVEL_UP_MOVE( 5, MOVE_BITE), - LEVEL_UP_MOVE( 9, MOVE_LEER), - LEVEL_UP_MOVE(17, MOVE_HEADBUTT), - LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(25, MOVE_EMBER), - LEVEL_UP_MOVE(33, MOVE_DRAGON_BREATH), - LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(41, MOVE_CRUNCH), - LEVEL_UP_MOVE(49, MOVE_DRAGON_CLAW), - LEVEL_UP_MOVE(53, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -const u16 gShelgonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_RAGE), - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), - LEVEL_UP_MOVE( 5, MOVE_BITE), - LEVEL_UP_MOVE( 9, MOVE_LEER), - LEVEL_UP_MOVE(17, MOVE_HEADBUTT), - LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(25, MOVE_EMBER), - LEVEL_UP_MOVE(30, MOVE_PROTECT), - LEVEL_UP_MOVE(38, MOVE_DRAGON_BREATH), - LEVEL_UP_MOVE(47, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(56, MOVE_CRUNCH), - LEVEL_UP_MOVE(69, MOVE_DRAGON_CLAW), - LEVEL_UP_MOVE(78, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -const u16 gSalamenceLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_RAGE), - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), - LEVEL_UP_MOVE( 5, MOVE_BITE), - LEVEL_UP_MOVE( 9, MOVE_LEER), - LEVEL_UP_MOVE(17, MOVE_HEADBUTT), - LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(25, MOVE_EMBER), - LEVEL_UP_MOVE(30, MOVE_PROTECT), - LEVEL_UP_MOVE(38, MOVE_DRAGON_BREATH), - LEVEL_UP_MOVE(47, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(50, MOVE_FLY), - LEVEL_UP_MOVE(61, MOVE_CRUNCH), - LEVEL_UP_MOVE(79, MOVE_DRAGON_CLAW), - LEVEL_UP_MOVE(93, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -const u16 gBeldumLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), - LEVEL_UP_END -}; - -const u16 gMetangLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(20, MOVE_CONFUSION), - LEVEL_UP_MOVE(20, MOVE_METAL_CLAW), - LEVEL_UP_MOVE(26, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(32, MOVE_PURSUIT), - LEVEL_UP_MOVE(38, MOVE_PSYCHIC), - LEVEL_UP_MOVE(44, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE(50, MOVE_METEOR_MASH), - LEVEL_UP_MOVE(56, MOVE_AGILITY), - LEVEL_UP_MOVE(62, MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -const u16 gMetagrossLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), - LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(20, MOVE_CONFUSION), - LEVEL_UP_MOVE(20, MOVE_METAL_CLAW), - LEVEL_UP_MOVE(26, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(32, MOVE_PURSUIT), - LEVEL_UP_MOVE(38, MOVE_PSYCHIC), - LEVEL_UP_MOVE(44, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE(55, MOVE_METEOR_MASH), - LEVEL_UP_MOVE(66, MOVE_AGILITY), - LEVEL_UP_MOVE(77, MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -const u16 gRegirockLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), - LEVEL_UP_MOVE( 9, MOVE_ROCK_THROW), - LEVEL_UP_MOVE(17, MOVE_CURSE), - LEVEL_UP_MOVE(25, MOVE_SUPERPOWER), - LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE(49, MOVE_ZAP_CANNON), - LEVEL_UP_MOVE(57, MOVE_LOCK_ON), - LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -const u16 gRegiceLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), - LEVEL_UP_MOVE( 9, MOVE_ICY_WIND), - LEVEL_UP_MOVE(17, MOVE_CURSE), - LEVEL_UP_MOVE(25, MOVE_SUPERPOWER), - LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(41, MOVE_AMNESIA), - LEVEL_UP_MOVE(49, MOVE_ZAP_CANNON), - LEVEL_UP_MOVE(57, MOVE_LOCK_ON), - LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -const u16 gRegisteelLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), - LEVEL_UP_MOVE( 9, MOVE_METAL_CLAW), - LEVEL_UP_MOVE(17, MOVE_CURSE), - LEVEL_UP_MOVE(25, MOVE_SUPERPOWER), - LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE(41, MOVE_AMNESIA), - LEVEL_UP_MOVE(49, MOVE_ZAP_CANNON), - LEVEL_UP_MOVE(57, MOVE_LOCK_ON), - LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -const u16 gKyogreLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE), - LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), - LEVEL_UP_MOVE(30, MOVE_CALM_MIND), - LEVEL_UP_MOVE(35, MOVE_ICE_BEAM), - LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE(50, MOVE_REST), - LEVEL_UP_MOVE(60, MOVE_SHEER_COLD), - LEVEL_UP_MOVE(65, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(75, MOVE_WATER_SPOUT), - LEVEL_UP_END -}; - -const u16 gGroudonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), - LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(20, MOVE_SLASH), - LEVEL_UP_MOVE(30, MOVE_BULK_UP), - LEVEL_UP_MOVE(35, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(45, MOVE_FIRE_BLAST), - LEVEL_UP_MOVE(50, MOVE_REST), - LEVEL_UP_MOVE(60, MOVE_FISSURE), - LEVEL_UP_MOVE(65, MOVE_SOLAR_BEAM), - LEVEL_UP_MOVE(75, MOVE_ERUPTION), - LEVEL_UP_END -}; - -const u16 gRayquazaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TWISTER), - LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(20, MOVE_DRAGON_CLAW), - LEVEL_UP_MOVE(30, MOVE_DRAGON_DANCE), - LEVEL_UP_MOVE(35, MOVE_CRUNCH), - LEVEL_UP_MOVE(45, MOVE_FLY), - LEVEL_UP_MOVE(50, MOVE_REST), - LEVEL_UP_MOVE(60, MOVE_EXTREME_SPEED), - LEVEL_UP_MOVE(65, MOVE_OUTRAGE), - LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -const u16 gLatiasLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), - LEVEL_UP_MOVE( 5, MOVE_WISH), - LEVEL_UP_MOVE(10, MOVE_HELPING_HAND), - LEVEL_UP_MOVE(15, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), - LEVEL_UP_MOVE(25, MOVE_WATER_SPORT), - LEVEL_UP_MOVE(30, MOVE_REFRESH), - LEVEL_UP_MOVE(35, MOVE_MIST_BALL), - LEVEL_UP_MOVE(40, MOVE_PSYCHIC), - LEVEL_UP_MOVE(45, MOVE_RECOVER), - LEVEL_UP_MOVE(50, MOVE_CHARM), - LEVEL_UP_END -}; - -const u16 gLatiosLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), - LEVEL_UP_MOVE( 5, MOVE_MEMENTO), - LEVEL_UP_MOVE(10, MOVE_HELPING_HAND), - LEVEL_UP_MOVE(15, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), - LEVEL_UP_MOVE(25, MOVE_PROTECT), - LEVEL_UP_MOVE(30, MOVE_REFRESH), - LEVEL_UP_MOVE(35, MOVE_LUSTER_PURGE), - LEVEL_UP_MOVE(40, MOVE_PSYCHIC), - LEVEL_UP_MOVE(45, MOVE_RECOVER), - LEVEL_UP_MOVE(50, MOVE_DRAGON_DANCE), - LEVEL_UP_END -}; - -const u16 gJirachiLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WISH), - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE( 5, MOVE_REST), - LEVEL_UP_MOVE(10, MOVE_SWIFT), - LEVEL_UP_MOVE(15, MOVE_HELPING_HAND), - LEVEL_UP_MOVE(20, MOVE_PSYCHIC), - LEVEL_UP_MOVE(25, MOVE_REFRESH), - LEVEL_UP_MOVE(30, MOVE_REST), - LEVEL_UP_MOVE(35, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(40, MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE(45, MOVE_COSMIC_POWER), - LEVEL_UP_MOVE(50, MOVE_DOOM_DESIRE), - LEVEL_UP_END -}; - -const u16 gDeoxysLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_WRAP), - LEVEL_UP_MOVE( 5, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE(10, MOVE_TELEPORT), - LEVEL_UP_MOVE(15, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE(20, MOVE_PURSUIT), - LEVEL_UP_MOVE(25, MOVE_PSYCHIC), - LEVEL_UP_MOVE(30, MOVE_SNATCH), - LEVEL_UP_MOVE(35, MOVE_COSMIC_POWER), - LEVEL_UP_MOVE(40, MOVE_RECOVER), - LEVEL_UP_MOVE(45, MOVE_PSYCHO_BOOST), - LEVEL_UP_MOVE(50, MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -const u16 gChimechoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WRAP), - LEVEL_UP_MOVE( 6, MOVE_GROWL), - LEVEL_UP_MOVE( 9, MOVE_ASTONISH), - LEVEL_UP_MOVE(14, MOVE_CONFUSION), - LEVEL_UP_MOVE(17, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(22, MOVE_UPROAR), - LEVEL_UP_MOVE(25, MOVE_YAWN), - LEVEL_UP_MOVE(30, MOVE_PSYWAVE), - LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(38, MOVE_HEAL_BELL), - LEVEL_UP_MOVE(41, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(46, MOVE_PSYCHIC), - LEVEL_UP_END -}; - -#endif //POKERUBY_LEVEL_UP_LEARNSETS_H diff --git a/include/data/pokemon/nature_stats.h b/include/data/pokemon/nature_stats.h deleted file mode 100644 index 27bd98f9d..000000000 --- a/include/data/pokemon/nature_stats.h +++ /dev/null @@ -1,37 +0,0 @@ -// -// Created by Scott Norton on 6/27/17. -// - -#ifndef POKERUBY_NATURE_STATS_H -#define POKERUBY_NATURE_STATS_H - -const s8 gNatureStatTable[][5] = { - // Atk Def Spd Sp.Atk Sp.Def - { 0, 0, 0, 0, 0}, // Hardy - { 1, -1, 0, 0, 0}, // Lonely - { 1, 0, -1, 0, 0}, // Brave - { 1, 0, 0, -1, 0}, // Adamant - { 1, 0, 0, 0, -1}, // Naughty - { -1, 1, 0, 0, 0}, // Bold - { 0, 0, 0, 0, 0}, // Docile - { 0, 1, -1, 0, 0}, // Relaxed - { 0, 1, 0, -1, 0}, // Impish - { 0, 1, 0, 0, -1}, // Lax - { -1, 0, 1, 0, 0}, // Timid - { 0, -1, 1, 0, 0}, // Hasty - { 0, 0, 0, 0, 0}, // Serious - { 0, 0, 1, -1, 0}, // Jolly - { 0, 0, 1, 0, -1}, // Naive - { -1, 0, 0, 1, 0}, // Modest - { 0, -1, 0, 1, 0}, // Mild - { 0, 0, -1, 1, 0}, // Quiet - { 0, 0, 0, 0, 0}, // Bashful - { 0, 0, 0, 1, -1}, // Rash - { -1, 0, 0, 0, 1}, // Calm - { 0, -1, 0, 0, 1}, // Gentle - { 0, 0, -1, 0, 1}, // Sassy - { 0, 0, 0, -1, 1}, // Careful - { 0, 0, 0, 0, 0} // Quirky -}; - -#endif //POKERUBY_NATURE_STATS_H diff --git a/include/data/pokemon/spinda_spots.h b/include/data/pokemon/spinda_spots.h deleted file mode 100644 index 234cdf00e..000000000 --- a/include/data/pokemon/spinda_spots.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// Created by Scott Norton on 6/27/17. -// - -#ifndef POKERUBY_SPINDA_SPOTS_H -#define POKERUBY_SPINDA_SPOTS_H - -const struct SpindaSpot gSpindaSpotGraphics[] = { - {16, 14, INCBIN_U16("graphics/spinda_spots/spot_0.bin")}, - {40, 15, INCBIN_U16("graphics/spinda_spots/spot_1.bin")}, - {22, 32, INCBIN_U16("graphics/spinda_spots/spot_2.bin")}, - {34, 33, INCBIN_U16("graphics/spinda_spots/spot_3.bin")} -}; - -#endif //POKERUBY_SPINDA_SPOTS_H diff --git a/include/data/pokemon/tmhm_learnsets.h b/include/data/pokemon/tmhm_learnsets.h deleted file mode 100644 index fa48f7f5c..000000000 --- a/include/data/pokemon/tmhm_learnsets.h +++ /dev/null @@ -1,431 +0,0 @@ -// -// Created by Scott Norton on 6/27/17. -// - -#ifndef POKERUBY_TMHM_LEARNSETS_H -#define POKERUBY_TMHM_LEARNSETS_H - -// TO-DO: Rewrite this declaration to allow assignment of TM/HM learns by name. -// These are 58-bit numbers aligned to 64 bits. The least significant bit represents TM01, -// while the most significant bit represents HM08. - -asm( - ".align 2\n" - ".global gTMHMLearnsets\n" - "gTMHMLearnsets:\n" - - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?????????? - ".8byte 0b0011100100000111100000100010000100001101010000011100100000\n" // Bulbasaur - ".8byte 0b0011100100000111100000100010000100001101010000011100100000\n" // Ivysaur - ".8byte 0b0011100100000111100000100010000110001101010100011100110000\n" // Venusaur - ".8byte 0b0010100110000111101010010011001100010100010000011000100011\n" // Charmander - ".8byte 0b0010100110000111101010010011001100010100010000011000100011\n" // Charmeleon - ".8byte 0b0010101110010111101010010011001110010100010100011000110011\n" // Charizard - ".8byte 0b1110110000000111100000000011001100010100110011001001100101\n" // Squirtle - ".8byte 0b1110110000000111100000000011001100010100110011001001100101\n" // Wartortle - ".8byte 0b1110110000000111100000000011001110010100110111001001110101\n" // Blastoise - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Caterpie - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Metapod - ".8byte 0b0001000000101111101000000010110100001111110100011000100000\n" // Butterfree - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Weedle - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Kakuna - ".8byte 0b0010000100001111101000100011000100001101010100011000100000\n" // Beedrill - ".8byte 0b0000001000011111101000000010000100000100110000011000100000\n" // Pidgey - ".8byte 0b0000001000011111101000000010000100000100110000011000100000\n" // Pidgeotto - ".8byte 0b0000001000011111101000000010000100000100110100011000100000\n" // Pidgeot - ".8byte 0b0010000100001111100000001010101101110100110011111000100000\n" // Rattata - ".8byte 0b0010100100001111100000001010101101110100110111111000110000\n" // Raticate - ".8byte 0b0000001000011111101000000010000100000100110000011000100000\n" // Spearow - ".8byte 0b0000001000011111101000000010000100000100110100011000100000\n" // Fearow - ".8byte 0b0000100001001111110000100010001110010101110000011000100000\n" // Ekans - ".8byte 0b0000100001001111110000100010001110010101110100011000100000\n" // Arbok - ".8byte 0b0011100000000111100000001011001101110100111000001000100001\n" // Pikachu - ".8byte 0b0011100000001111100000001011001101110100111100001000100001\n" // Raichu - ".8byte 0b0010100100001111101101000011001110010100010000011000100001\n" // Sandshrew - ".8byte 0b0010100100001111101101000011001110010100010100011000100001\n" // Sandslash - ".8byte 0b0010100100001111101000101010001101110100110011011000100100\n" // Nidoran♀ - ".8byte 0b0010100100001111101000101010001101110100110011011000100100\n" // Nidorina - ".8byte 0b0010110100001111111111111011101111110100110111111000110101\n" // Nidoqueen - ".8byte 0b0010100100001111100000101010001101110100110011011000100100\n" // Nidoran♂ - ".8byte 0b0010100100001111100000101010001101110100110011011000100100\n" // Nidorino - ".8byte 0b0010110100001111110111111011101111110100110111111000110101\n" // Nidoking - ".8byte 0b0001100001000111100010011111111101111110111011011000101101\n" // Clefairy - ".8byte 0b0001100001000111100010011111111101111110111111011000101101\n" // Clefable - ".8byte 0b0000000010000111100010010010001100010110010000011000110000\n" // Vulpix - ".8byte 0b0000000010000111100010010010001100010110010100011000110000\n" // Ninetales - ".8byte 0b0001100001000111100010011111111101101110111011011000100101\n" // Jigglypuff - ".8byte 0b0001100001000111100010011111111101101110111111011000100101\n" // Wigglytuff - ".8byte 0b0000000001011111111000100010100100000101110000111000100000\n" // Zubat - ".8byte 0b0000000001011111111000100010100100000101110100111000100000\n" // Golbat - ".8byte 0b0001000100000111100000100010000100001101010000011100100000\n" // Oddish - ".8byte 0b0001000100000111100000100010000100001101010000011100100000\n" // Gloom - ".8byte 0b0001000100000111100000100010000100001101010100011100100000\n" // Vileplume - ".8byte 0b0011000100001111101000100010001100001101010000011100100000\n" // Paras - ".8byte 0b0011000100001111101000100010001100001101010100011100100000\n" // Parasect - ".8byte 0b0001000000101111100000100010010100001101010000011000100000\n" // Venonat - ".8byte 0b0001000000101111101000100010010100001101010100011000100000\n" // Venomoth - ".8byte 0b0010000100001111101100100010001110000100010000011000100000\n" // Diglett - ".8byte 0b0010000100001111101100100010001110000100010100011000100000\n" // Dugtrio - ".8byte 0b0001000101001111111000001010101101110100110000111000100100\n" // Meowth - ".8byte 0b0001000101001111111000001010101101110100110100111000110100\n" // Persian - ".8byte 0b1111110000000111101000000011001100010100110011001001101101\n" // Psyduck - ".8byte 0b1111110000000111101000000011001100010100110111001001101101\n" // Golduck - ".8byte 0b0010100010001111101100000011001111110100110000111010100001\n" // Mankey - ".8byte 0b0010100010001111101100000011001111110100110100111010100001\n" // Primeape - ".8byte 0b0010100010001111101010010010001100010100010000011000110000\n" // Growlithe - ".8byte 0b0010100010001111101010010010001100010100010100011000110000\n" // Arcanine - ".8byte 0b1100010000001111100000000010011100000100110011001001100100\n" // Poliwag - ".8byte 0b1110110000001111100000000011011110000100110011001001100101\n" // Poliwhirl - ".8byte 0b1110110000001111100100000011011110000100110111001011100101\n" // Poliwrath - ".8byte 0b0001000001101111110000001110110100010110111000111000101001\n" // Abra - ".8byte 0b0001000001101111110000001110110100010110111000111000101001\n" // Kadabra - ".8byte 0b0001000001101111110000001110110100010110111100111000101001\n" // Alakazam - ".8byte 0b0010100000001111100110010011001110000100110000011010100001\n" // Machop - ".8byte 0b0010100000001111100110010011001110000100110000011010100001\n" // Machoke - ".8byte 0b0010100000001111100110010011001110000100110100011010100001\n" // Machamp - ".8byte 0b0001000100001111100000100010000100001101010000011100100000\n" // Bellsprout - ".8byte 0b0001000100001111100000100010000100001101010000011100100000\n" // Weepinbell - ".8byte 0b0001000100001111100000100010000100001101010100011100100000\n" // Victreebel - ".8byte 0b1100010100001111100000100010000100000101110011001001100100\n" // Tentacool - ".8byte 0b1100010100001111100000100010000100000101110111001001100100\n" // Tentacruel - ".8byte 0b0010100000000111100111010011001110000100010000011000100001\n" // Geodude - ".8byte 0b0010100000000111100111010011001110000100010000011000100001\n" // Graveler - ".8byte 0b0010100000000111100111010011001110000100010100011000110001\n" // Golem - ".8byte 0b0000100010000111100010010010000100011100010000011000100000\n" // Ponyta - ".8byte 0b0000100010000111100010010010000100011100010100011000100000\n" // Rapidash - ".8byte 0b1001110000100111100010010010111110010110110011011001101100\n" // Slowpoke - ".8byte 0b1011110000100111100010010011111110010110110111011001101101\n" // Slowbro - ".8byte 0b0001000000000011100000001110000101100100110000011000100000\n" // Magnemite - ".8byte 0b0001000000000011100000001110000101100100110100011000100000\n" // Magneton - ".8byte 0b0000001100011111101000000010000100010100010000011000100000\n" // Farfetch'd - ".8byte 0b0000001000011111101000000010000100000100010000011000100000\n" // Doduo - ".8byte 0b0000001000011111111000000010000100000100010100111000100000\n" // Dodrio - ".8byte 0b1100010000001111100000000010000100000110110011001001100100\n" // Seel - ".8byte 0b1100010000001111100000000010000100000110110111001001100100\n" // Dewgong - ".8byte 0b0000000000001111110110111010001101100101110000111000100000\n" // Grimer - ".8byte 0b0010100000001111110110111011001101100101110100111000100001\n" // Muk - ".8byte 0b1000010000000111100000000010000100000100110011001001100100\n" // Shellder - ".8byte 0b1000010000000111110000000010000100000100110111001001100100\n" // Cloyster - ".8byte 0b0000000001101111110000100010110100100101110000111000100000\n" // Gastly - ".8byte 0b0000000001101111110000100010110100100101110000111000100000\n" // Haunter - ".8byte 0b0010100001101111110000100011110101100101110100111000100001\n" // Gengar - ".8byte 0b0010100000000111110101000010001110010100010000111000110000\n" // Onix - ".8byte 0b0001000001101111110000000111110100000110111000111000101001\n" // Drowzee - ".8byte 0b0001000001101111110000000111110100000110111100111000101001\n" // Hypno - ".8byte 0b1010110100001111100100000010001100000100110011001001100100\n" // Krabby - ".8byte 0b1010110100001111100100000010001100000100110111001001100100\n" // Kingler - ".8byte 0b0001000000001011110000001010000101100100111000101000100000\n" // Voltorb - ".8byte 0b0001000000001011110000001010000101100100111100101000100000\n" // Electrode - ".8byte 0b0001100000101111100000100110010100001101011000011100100000\n" // Exeggcute - ".8byte 0b0001100000101111100000100110010100001101011100011100100000\n" // Exeggutor - ".8byte 0b0010100000001111101111010011001110010100010011011000100001\n" // Cubone - ".8byte 0b0010100000001111101111010011001110010100010111011000100001\n" // Marowak - ".8byte 0b0010100000001111100100000011000110000100110000011010100001\n" // Hitmonlee - ".8byte 0b0010100000001111100100000011000110000100110000011010100001\n" // Hitmonchan - ".8byte 0b0010110100001111100111011011101111111100110111011000100101\n" // Lickitung - ".8byte 0b0001000000001111110010111010100101100100110000111000100000\n" // Koffing - ".8byte 0b0001000000001111110010111010100101100100110100111000100000\n" // Weezing - ".8byte 0b0010100000001111100111011010001111110100110011011000110000\n" // Rhyhorn - ".8byte 0b0010110100001111100111011011001111110100110111011000110001\n" // Rhydon - ".8byte 0b0011100001100111100111011011110111111110111111011001101101\n" // Chansey - ".8byte 0b0011000100001111100000100010000100001101010100011100100000\n" // Tangela - ".8byte 0b0010110100001111101111011011101111111100110111011001110101\n" // Kangaskhan - ".8byte 0b1100010000000111100000000010000100000100110011001001100100\n" // Horsea - ".8byte 0b1100010000000111100000000010000100000100110111001001100100\n" // Seadra - ".8byte 0b1100010000000111100000000010000100000100110011001001100100\n" // Goldeen - ".8byte 0b1100010000000111100000000010000100000100110111001001100100\n" // Seaking - ".8byte 0b1101010000000011100000000110010101100100111011001001100100\n" // Staryu - ".8byte 0b1101010000100011100000000110010101100100111111001001100100\n" // Starmie - ".8byte 0b0001000001101111110000001111110101101110111100111000101001\n" // Mr. mime - ".8byte 0b0010000100011111101000000010000100000100110100011000100000\n" // Scyther - ".8byte 0b0001000000101111110000000111110100000100111111101001101101\n" // Jynx - ".8byte 0b0011100000001111100000001011010101110100111100001000100001\n" // Electabuzz - ".8byte 0b0010100000001111100010010011010100010100010100011000100001\n" // Magmar - ".8byte 0b0010100100001111100100000011001110000100110100011010100001\n" // Pinsir - ".8byte 0b0010110000000111100111011010000111111100110111011000100100\n" // Tauros - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Magikarp - ".8byte 0b1110110000000111110011010010000111100100110111101001110100\n" // Gyarados - ".8byte 0b1110110000000111100000001010010101110110110111001001110100\n" // Lapras - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Ditto - ".8byte 0b0000000000000111100000000010101100010100110000011000100000\n" // Eevee - ".8byte 0b1100010000000111100000000010101100010100110111011001110100\n" // Vaporeon - ".8byte 0b0001000000000111100000001010101101110100110100011000110000\n" // Jolteon - ".8byte 0b0000000010000111100010010010101100010100110100011000110000\n" // Flareon - ".8byte 0b0001000000001011101000001010110101111100110111011000100000\n" // Porygon - ".8byte 0b1110010000001111100101000010000100000100110011001001100100\n" // Omanyte - ".8byte 0b1110010000001111100101000010000100000100110111001001100100\n" // Omastar - ".8byte 0b0110010000001111101101000010001100000101110011001001100100\n" // Kabuto - ".8byte 0b1110010100001111101101000011001100000101110111001001100100\n" // Kabutops - ".8byte 0b0010101000011111111111010010000110010100110100111000110010\n" // Aerodactyl - ".8byte 0b0000110000000111100111011011110111101100110111011000100101\n" // Snorlax - ".8byte 0b0010001000010011101001000110000100000100110111011001110100\n" // Articuno - ".8byte 0b0011001000010011101001001010000101100100111100011000110000\n" // Zapdos - ".8byte 0b0010001010010011101011010010000100000110110100011000110000\n" // Moltres - ".8byte 0b0100010000000111100010011010000101110110110111011001100100\n" // Dratini - ".8byte 0b0100010000000111100010011010000101110110110111011001100100\n" // Dragonair - ".8byte 0b1110111100010111101111011011000111110110110111011001110111\n" // Dragonite - ".8byte 0b0011100001100011111111011111110111111110111111111011101101\n" // Mewtwo - ".8byte 0b1111111111111111111111111111111111111111111111111111111111\n" // Mew - ".8byte 0b0001000100000111100000000110000100011111011000011100100000\n" // Chikorita - ".8byte 0b0011100100000111100000000110000100011111011000011100100000\n" // Bayleef - ".8byte 0b0011100100000111100000000110000110011111011100011100100000\n" // Meganium - ".8byte 0b0000000110000111101010010010001100000100010000011000100000\n" // Cyndaquil - ".8byte 0b0010100110000111101010010011001100000100010000011000110001\n" // Quilava - ".8byte 0b0010100110000111101010010011001110000100010100011000110001\n" // Typhlosion - ".8byte 0b1100010100000111101000000011001100010100110011001001100101\n" // Totodile - ".8byte 0b1110110100000111101000000011001100010100110011001001110101\n" // Croconaw - ".8byte 0b1110110100000111101000000011001110010100110111001001110111\n" // Feraligatr - ".8byte 0b0000010100001111100000011011101100111100110001011000100101\n" // Sentret - ".8byte 0b0010110100001111100000011011101101111100110111011000100101\n" // Furret - ".8byte 0b0001001000011111101000000110110100000100110000011000100000\n" // Hoothoot - ".8byte 0b0001001000011111101000000110110100000100110100011000100000\n" // Noctowl - ".8byte 0b0001000000001111101000000111001100001111011000011000100001\n" // Ledyba - ".8byte 0b0001000000001111101000000111001100001111011100011000100001\n" // Ledian - ".8byte 0b0001000000001111100000100010011100001101010000011000100000\n" // Spinarak - ".8byte 0b0001000000001111100000100010011100001101010100011000100000\n" // Ariados - ".8byte 0b0000001001011111111000100010100100000101110100111000100000\n" // Crobat - ".8byte 0b1101010000000111100000001010000101100100110011001001100100\n" // Chinchou - ".8byte 0b1101010000000111100000001010000101100100110111001001100100\n" // Lanturn - ".8byte 0b0001000000000111100000001010000101110100111000001000100000\n" // Pichu - ".8byte 0b0001000000000111100010011110111100011110111000011000100100\n" // Cleffa - ".8byte 0b0001000000000111100010011110111100001110111000011000100100\n" // Igglybuff - ".8byte 0b0011000000000111100010011110110100001110111000011000100100\n" // Togepi - ".8byte 0b0011001000010111101010011111110100001110111100011000100101\n" // Togetic - ".8byte 0b0001000000111111101000000110110100001101111000011000101000\n" // Natu - ".8byte 0b0001001000111111101000000110110100001101111100011000101000\n" // Xatu - ".8byte 0b0001000000000111100000001010000101110100111000001000100000\n" // Mareep - ".8byte 0b0011100000000111100000001011000101110100111000001000100001\n" // Flaaffy - ".8byte 0b0011100000000111100000001011000101110100111100001000100001\n" // Ampharos - ".8byte 0b0001000100000111100000100010000100001111010100011100100000\n" // Bellossom - ".8byte 0b1110110000000111100000000011001100010100110011001001100101\n" // Marill - ".8byte 0b1110110000000111100000000011001100010100110111001001100101\n" // Azumarill - ".8byte 0b0010100000001111100101000011001110000100010000111000101001\n" // Sudowoodo - ".8byte 0b1110110000001111100000000011011110000100110111001001100101\n" // Politoed - ".8byte 0b0001000000000111101000000010000100001101010000011100100000\n" // Hoppip - ".8byte 0b0001000000000111101000000010000100001101010000011100100000\n" // Skiploom - ".8byte 0b0001000000000111101000000010000100001101010100011100100000\n" // Jumpluff - ".8byte 0b0010100101001111101000001011101101111100110000111000100101\n" // Aipom - ".8byte 0b0001000100000111100000100010000100001111011000011100100000\n" // Sunkern - ".8byte 0b0001000100000111100000100010000100001111011100011100100000\n" // Sunflora - ".8byte 0b0001000000011111101000000010110100001101010000011000100000\n" // Yanma - ".8byte 0b1111010000000111100001100010001110010100110011001001100100\n" // Wooper - ".8byte 0b1111110000000111100101100011001110010100110111001001100101\n" // Quagsire - ".8byte 0b0001000100100111100000000110111100010100111100011000101000\n" // Espeon - ".8byte 0b0001000101000111110000000010111100010100110100111000100000\n" // Umbreon - ".8byte 0b0000001001011111111000000010100100000100110000111000101000\n" // Murkrow - ".8byte 0b1011110000100111100010010011111110010110110111011001101101\n" // Slowking - ".8byte 0b0001000001101111111000001010110101100100110000111000101000\n" // Misdreavus - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Unown - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Wobbuffet - ".8byte 0b0011100000101111100000001110110111110100111000011000101000\n" // Girafarig - ".8byte 0b0010100000000111100001000110001110001101011000011000100000\n" // Pineco - ".8byte 0b0010100000000111100001000110001110001101011100011000100000\n" // Forretress - ".8byte 0b0010100000001111100110011010101111111100110011011000101100\n" // Dunsparce - ".8byte 0b0010100100011111101101100010001110010100110000011000100000\n" // Gligar - ".8byte 0b0010100100000111110101000010001110010100010100111000110000\n" // Steelix - ".8byte 0b0010100010001111110010111011101111101100110000111010110101\n" // Snubbull - ".8byte 0b0010100010001111110110111011101111111100110100111010110101\n" // Granbull - ".8byte 0b1100010000000111100000101010100100000100110011001001100100\n" // Qwilfish - ".8byte 0b0010100100011111101001000010000100000100110100011000100000\n" // Scizor - ".8byte 0b0011100000000111100101100010001110000110010000011000100000\n" // Shuckle - ".8byte 0b0010100100001111100100000011001110000100110100011010100001\n" // Heracross - ".8byte 0b0010110101001111111000000011101100010100110011111001101001\n" // Sneasel - ".8byte 0b0010100100001111111000000011001110000100110000111010110001\n" // Teddiursa - ".8byte 0b0010100100001111111100000011001110000100110100111010110001\n" // Ursaring - ".8byte 0b0010000010000111100010010110000100000100011000011000100000\n" // Slugma - ".8byte 0b0010100010000111100111010110000110000100011100011000100000\n" // Magcargo - ".8byte 0b0010100000000111100101000110001110000100111011001001110000\n" // Swinub - ".8byte 0b0010100000000111100101000110001110000100111111001001110000\n" // Piloswine - ".8byte 0b0010110000000111100101000110111110000110111011011001101100\n" // Corsola - ".8byte 0b1100010000001111100010010010010100000100110111011000100100\n" // Remoraid - ".8byte 0b1100010000001111100010110010010100000100110111011100100100\n" // Octillery - ".8byte 0b0000001000001111101000000010000100000100110011001001100101\n" // Delibird - ".8byte 0b1100010000000111101000000010000110000100110011001001100100\n" // Mantine - ".8byte 0b0010001100011111111001000010000100000100010000111000110000\n" // Skarmory - ".8byte 0b0010000011001111110010110010100100011100010000111000110000\n" // Houndour - ".8byte 0b0010100011001111110010110010100100011100010100111000110000\n" // Houndoom - ".8byte 0b1100010000000111100000000010000100000100110111001001100100\n" // Kingdra - ".8byte 0b0010100000000111100101000010000110010100010000011000110000\n" // Phanpy - ".8byte 0b0010100000000111100101000010000110010100010100011000110000\n" // Donphan - ".8byte 0b0001000000001011101000001010110101111100110111011000100000\n" // Porygon2 - ".8byte 0b0001000000101111100000001110110111111100111000011000111000\n" // Stantler - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Smeargle - ".8byte 0b0010100000001111100000000011000110000100110000011010100000\n" // Tyrogue - ".8byte 0b0010100000001111100001000011001110000100110000011010100000\n" // Hitmontop - ".8byte 0b0001000000101111100000000110110100000100111011001001101100\n" // Smoochum - ".8byte 0b0011000000001111100000001011010101100100111000001000100001\n" // Elekid - ".8byte 0b0010000000001111100010010011010100010100010000011000100001\n" // Magby - ".8byte 0b0010110000000111100101001011100111111100110111011000100101\n" // Miltank - ".8byte 0b0011100001100111100111011011110111111110111111011001101101\n" // Blissey - ".8byte 0b0011100100000011100001001110001101110100110100011000111000\n" // Raikou - ".8byte 0b0011100100000011100011010110001100011100110100011000111000\n" // Entei - ".8byte 0b1110010100000011100001000110001100010100110111011001111100\n" // Suicune - ".8byte 0b0010000000000111110001000011001110000100110100111000100000\n" // Larvitar - ".8byte 0b0010000000000111110001000011001110000100110100111000100000\n" // Pupitar - ".8byte 0b0010110100000111111111011011001111110100110111111000110111\n" // Tyranitar - ".8byte 0b1110111000110011101001001110110111110111111111011001111100\n" // Lugia - ".8byte 0b0011101010010011101011011110110111101111111100011000111000\n" // Ho-Oh - ".8byte 0b0001000100100011101001001110110100001111111100011000101100\n" // Celebi - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ? - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ? - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ? - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ? - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ? - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ? - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ? - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ? - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ? - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ? - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ? - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ? - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ? - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ? - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ? - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ? - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ? - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ? - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ? - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ? - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ? - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ? - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ? - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ? - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ? - ".8byte 0b0011100100000111101100000011001100011111010000011100100001\n" // Treecko - ".8byte 0b0011100100000111101100000011001100011111010000011100100001\n" // Grovyle - ".8byte 0b0011100100000111101100000011001110011111010100011100110011\n" // Sceptile - ".8byte 0b0010100110000111101110010010001100000100010000011000100000\n" // Torchic - ".8byte 0b0010100110000111101110010011001100000100010000011010100001\n" // Combusken - ".8byte 0b0010100110000111101110010011001110000100010100011010110001\n" // Blaziken - ".8byte 0b1110110000000111100100000010001100010100110011001001100100\n" // Mudkip - ".8byte 0b1110110000000111100100000010001110010100110011001001100100\n" // Marshtomp - ".8byte 0b1110110000000111100100000011001110010100110111001001110101\n" // Swampert - ".8byte 0b0010000001001111110000000010101100010100110000111000110000\n" // Poochyena - ".8byte 0b0010100001001111110000000010101100010100110100111000110000\n" // Mightyena - ".8byte 0b0010010100001111100000001010101101110100110011011000100100\n" // Zigzagoon - ".8byte 0b0010110100001111100000001010101101110100110111011000110100\n" // Linoone - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Wurmple - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Silcoon - ".8byte 0b0001000000001111101000000010110100001111010100011000100000\n" // Beautifly - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Cascoon - ".8byte 0b0001000000001111101000100010110100001101011100011000100000\n" // Dustox - ".8byte 0b0001010000001111100000000010000100001101110011011101100100\n" // Lotad - ".8byte 0b1111110000001111100000000011000100001101110011011101100100\n" // Lombre - ".8byte 0b1111110000001111100000000011000100001101110111011101100101\n" // Ludicolo - ".8byte 0b0011000000000111100000000010101100001101010000011100100000\n" // Seedot - ".8byte 0b0011100100001111110100000011101100001101010100011100100000\n" // Nuzleaf - ".8byte 0b0011100100001111111100000011101100001101010100011100100000\n" // Shiftry - ".8byte 0b0001000100000011101001000010101100001101010000011000100000\n" // Nincada - ".8byte 0b0001000100001111101001000010101100001101010100011000100000\n" // Ninjask - ".8byte 0b0001000100001011101001000010101100001101010100011000100000\n" // Shedinja - ".8byte 0b0000001000011111101000000010000100000100110000011000100000\n" // Taillow - ".8byte 0b0000001000011111101000000010000100000100110100011000100000\n" // Swellow - ".8byte 0b0001000001000111100000100010000100001111010000011100100000\n" // Shroomish - ".8byte 0b0011100101000111100000100011000100011111010100011110100001\n" // Breloom - ".8byte 0b0011100001101111100100001011111100000110110000011000101101\n" // Spinda - ".8byte 0b0000001000011111101000001010000100000100110011001001100100\n" // Wingull - ".8byte 0b0000011000011111101000001010000100000100110111001001100100\n" // Pelipper - ".8byte 0b0001000000001111100000000010100100001101110011011000100100\n" // Surskit - ".8byte 0b0001000000001111101000000010100100001101110111011000100100\n" // Masquerain - ".8byte 0b1110110000000111100100000010000110000100110011001001110100\n" // Wailmer - ".8byte 0b1110110000000111100100000010000110000100110111001001110100\n" // Wailord - ".8byte 0b0001000000000111100000001010101101111110110011011000101100\n" // Skitty - ".8byte 0b0011100000000111100000001010101101111110110111011000101100\n" // Delcatty - ".8byte 0b0011100101101111101110011011101101111100110011011000100101\n" // Kecleon - ".8byte 0b0001000000100011100101000110111110001100111001011000100000\n" // Baltoy - ".8byte 0b0011100000100011100101000110111110001100111101011000100000\n" // Claydol - ".8byte 0b0010100000000111110101001010000111100100010000111000100000\n" // Nosepass - ".8byte 0b0010100010000111100010110010000100010100010000011000100000\n" // Torkoal - ".8byte 0b0011000101001111111100001011111100000100110000111000101101\n" // Sableye - ".8byte 0b1100010000000111100101000010000110000100110011001001100100\n" // Barboach - ".8byte 0b1110110000000111100101000010000110000100110111001001100100\n" // Whiscash - ".8byte 0b1100010000000111100000000010000100000110110011001001100100\n" // Luvdisc - ".8byte 0b0110110100000111101100100011001100000100110011101001100100\n" // Corphish - ".8byte 0b1110110100000111101100100011001100000100110111101001100100\n" // Crawdaunt - ".8byte 0b1100010000000111100000000010000100000100110011001001100100\n" // Feebas - ".8byte 0b1100010000000111100000000010000100010110110111001001100100\n" // Milotic - ".8byte 0b1100010000001111110000000010000100000100110011101001100100\n" // Carvanha - ".8byte 0b1110110000001111110100000010000110000100110111101001110100\n" // Sharpedo - ".8byte 0b0010100000000111100101000010001110001101010100011000100000\n" // Trapinch - ".8byte 0b0010101000010111100101000010001110001101010100011000100000\n" // Vibrava - ".8byte 0b0010101000010111100111010010001110011101010100011000100010\n" // Flygon - ".8byte 0b0010110000000111100100000011001110000100110000011010100001\n" // Makuhita - ".8byte 0b0010110000000111100100000011001110000100110100011010100001\n" // Hariyama - ".8byte 0b0001100000001111100000001010000101110100110000001000110000\n" // Electrike - ".8byte 0b0001100000001111100000001010000101110100110100001000110000\n" // Manectric - ".8byte 0b0010100010000111100111010010001110000100010000011000100000\n" // Numel - ".8byte 0b0010100010000111100111010010001110000100010100011000110000\n" // Camerupt - ".8byte 0b1110110000000111100100000010000110010100110011001001100100\n" // Spheal - ".8byte 0b1110110000000111100100000010000110010100110011001001110100\n" // Sealeo - ".8byte 0b1110110000000111100100000010000110010100110111001001110100\n" // Walrein - ".8byte 0b0001000100000111100001000010000100001101010000011100100001\n" // Cacnea - ".8byte 0b0001100100000111100001000010000100001101010100011100100001\n" // Cacturne - ".8byte 0b0001000000000111100000000010100100000110111011001001100100\n" // Snorunt - ".8byte 0b0001000000000111110000000010100110000110111111101001100100\n" // Glalie - ".8byte 0b0001000000100011100101000110110110000110111101001000101000\n" // Lunatone - ".8byte 0b0001000010100011100111010110110110001110011100011000101000\n" // Solrock - ".8byte 0b0100010000000111100000000010000100010100110011001001100100\n" // Azurill - ".8byte 0b0001000001101111110000001110110100010100111000111000101000\n" // Spoink - ".8byte 0b0001000001101111110000001110110100010100111100111000101001\n" // Grumpig - ".8byte 0b0001000000000111100000001010000101110100111000001000100000\n" // Plusle - ".8byte 0b0001000000000111100000001010000101110100111000001000100000\n" // Minun - ".8byte 0b0010100000000111110111110011000100001100110101111000100001\n" // Mawile - ".8byte 0b0011100000000111100100000111110100000100111000011010101001\n" // Meditite - ".8byte 0b0011100000000111100100000111110100000100111100011010101001\n" // Medicham - ".8byte 0b0000001000011111101000000010000100001110110001011000100000\n" // Swablu - ".8byte 0b0010001000011111101010010010000110011110110101011000110010\n" // Altaria - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Wynaut - ".8byte 0b0001000001101111110000000010110100000100110011111000101000\n" // Duskull - ".8byte 0b0011100001101111110100000010110110000100110111111000101001\n" // Dusclops - ".8byte 0b0001000100000111100000100010100100001101010000011100100000\n" // Roselia - ".8byte 0b0010100100000111101010011011100101101100110011011010100101\n" // Slakoth - ".8byte 0b0010100100000111101010011011100111101100110011111010110101\n" // Vigoroth - ".8byte 0b0010100100000111101010011011100111101100110111111010110101\n" // Slaking - ".8byte 0b0010100001000111100000101010100100001101110001011100100100\n" // Gulpin - ".8byte 0b0010100001000111100000101010100100001101110101011100100100\n" // Swalot - ".8byte 0b0011101100010111101000000010000110001111010100011100110000\n" // Tropius - ".8byte 0b0000000000000111100010011010100100001100110011011000110100\n" // Whismur - ".8byte 0b0010100010000111110010011011100110001100110011111000110100\n" // Loudred - ".8byte 0b0010100010000111110010011011100110001100110111111000110100\n" // Exploud - ".8byte 0b1100010000000111100000000010000100000100110011001001100100\n" // Clamperl - ".8byte 0b1100010001000111100100000010000100000100110111001001100100\n" // Huntail - ".8byte 0b1100010000000111100000000010110100000110110111001001100100\n" // Gorebyss - ".8byte 0b0011100101001111111011011010100101110100110111111001101100\n" // Absol - ".8byte 0b0001000001101111110000001010110101100100110000111000101000\n" // Shuppet - ".8byte 0b0001000001101111110000001010110101100100110100111000101000\n" // Banette - ".8byte 0b0010100001001111100000110010001110010101110000111000100000\n" // Seviper - ".8byte 0b0010100000001111101010011011101101111101110011111000110101\n" // Zangoose - ".8byte 0b1110010000000111100101000010000110000110110111001001101100\n" // Relicanth - ".8byte 0b0010100100000111101101001010001110010100110000011000110100\n" // Aron - ".8byte 0b0010100100000111101101001010001110010100110000011000110100\n" // Lairon - ".8byte 0b0010110100000111101111011011001111111100110111111000110111\n" // Aggron - ".8byte 0b0001000000001111100011011010100101101100110011011001100100\n" // Castform - ".8byte 0b0001000000001111101000001011100101101101111000011000100101\n" // Volbeat - ".8byte 0b0001000000001111101000001011100101101101111000011000100101\n" // Illumise - ".8byte 0b0000000000000111100001100010000100001101010000011100100000\n" // Lileep - ".8byte 0b0010100000000111100101100010000110001101010100011100100000\n" // Cradily - ".8byte 0b0010000100000111101101000011001100000100010000011000100100\n" // Anorith - ".8byte 0b0010100100000111101101000011001110010100010100011000100100\n" // Armaldo - ".8byte 0b0001000001101111110000001110110100100110111000111000101000\n" // Ralts - ".8byte 0b0001000001101111110000001110110100100110111000111000101000\n" // Kirlia - ".8byte 0b0001000001101111110000001110110100100110111100111000101000\n" // Gardevoir - ".8byte 0b0010100100000111101110010011000100000100110000011000110010\n" // Bagon - ".8byte 0b0010100100000111101110010011000100000100110000011000110010\n" // Shelgon - ".8byte 0b0010101100010111101110010011000110010100110100011000110010\n" // Salamence - ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Beldum - ".8byte 0b0011100100000011101101100111110110000100111100011000100000\n" // Metang - ".8byte 0b0011100100000011101101100111110110000100111100011000100000\n" // Metagross - ".8byte 0b0010100000000011100101001011001111100110010100011000100001\n" // Regirock - ".8byte 0b0010100000000011100000001011000111100110110111001001100001\n" // Regice - ".8byte 0b0010100000000011101101001011000111100110110100011000100001\n" // Registeel - ".8byte 0b1110110000000011100100001011000111100110110111001001111100\n" // Kyogre - ".8byte 0b0010100110000011101111011011001111111110010100011010110010\n" // Groudon - ".8byte 0b1110111010000011101011011011000111111100110111011010110110\n" // Rayquaza - ".8byte 0b1101011100010111101001001110110111101110111101011000111110\n" // Latias - ".8byte 0b1101011100010111101001001110110111101110111101011000111110\n" // Latios - ".8byte 0b0001000000100011101001001110110101100110111100011000101100\n" // Jirachi - ".8byte 0b0011100101100011111100001111110101101110111101111000101101\n" // Deoxys - ".8byte 0b0001000001100111110000001110110100000110111000111000101000\n" // Chimecho -); - -#endif //POKERUBY_TMHM_LEARNSETS_H diff --git a/include/data/pokemon/trainer_class_lookups.h b/include/data/pokemon/trainer_class_lookups.h deleted file mode 100644 index 0aea322a0..000000000 --- a/include/data/pokemon/trainer_class_lookups.h +++ /dev/null @@ -1,168 +0,0 @@ -// -// Created by Scott Norton on 6/27/17. -// - -#ifndef POKERUBY_TRAINER_CLASS_LOOKUPS_H -#define POKERUBY_TRAINER_CLASS_LOOKUPS_H - -const u8 gTrainerClassToPicIndex[] = { - TRAINER_PIC_ARCHIE, // AQUA_LEADER - TRAINER_PIC_AQUA_GRUNT_M, // TEAM_AQUA_M - TRAINER_PIC_AQUA_GRUNT_F, // TEAM_AQUA_F - TRAINER_PIC_AROMA_LADY, // AROMA_LADY - TRAINER_PIC_RUIN_MANIAC, // RUIN_MANIAC - TRAINER_PIC_INTERVIEWER, // INTERVIEWER - TRAINER_PIC_TUBER_F, // TUBER_F - TRAINER_PIC_TUBER_M, // TUBER_M - TRAINER_PIC_COOL_TRAINER_M, // COOL_TRAINER_M - TRAINER_PIC_COOL_TRAINER_F, // COOL_TRAINER_F - TRAINER_PIC_HEX_MANIAC, // HEX_MANIAC - TRAINER_PIC_LADY, // LADY - TRAINER_PIC_BEAUTY, // BEAUTY - TRAINER_PIC_RICH_BOY, // RICH_BOY - TRAINER_PIC_POKEMANIAC, // POKEMANIAC - TRAINER_PIC_SWIMMER_M, // SWIMMER_M - TRAINER_PIC_BLACK_BELT, // BLACK_BELT - TRAINER_PIC_GUITARIST, // GUITARIST - TRAINER_PIC_KINDLER, // KINDLER - TRAINER_PIC_CAMPER, // CAMPER - TRAINER_PIC_BUG_MANIAC, // BUG_MANIAC - TRAINER_PIC_PSYCHIC_M, // PSYCHIC_M - TRAINER_PIC_PSYCHIC_F, // PSYCHIC_F - TRAINER_PIC_GENTLEMAN, // GENTLEMAN - TRAINER_PIC_SIDNEY, // ELITE_FOUR_M - TRAINER_PIC_PHOEBE, // ELITE_FOUR_F - TRAINER_PIC_ROXANNE, // LEADER_F - TRAINER_PIC_BRAWLY, // LEADER_M - TRAINER_PIC_TATE_AND_LIZA, // LEADER_MF - TRAINER_PIC_SCHOOL_KID_M, // SCHOOL_KID_M - TRAINER_PIC_SCHOOL_KID_F, // SCHOOL_KID_F - TRAINER_PIC_SR_AND_JR, // SR_AND_JR - TRAINER_PIC_POKEFAN_M, // POKEFAN_M - TRAINER_PIC_POKEFAN_F, // POKEFAN_F - TRAINER_PIC_EXPERT_M, // EXPERT_M - TRAINER_PIC_EXPERT_F, // EXPERT_F - TRAINER_PIC_YOUNGSTER, // YOUNGSTER - TRAINER_PIC_STEVEN, // CHAMPION - TRAINER_PIC_FISHERMAN, // FISHERMAN - TRAINER_PIC_CYCLING_TRIATHLETE_M, // CYCLING_TRIATHLETE_M - TRAINER_PIC_CYCLING_TRIATHLETE_F, // CYCLING_TRIATHLETE_F - TRAINER_PIC_RUNNING_TRIATHLETE_M, // RUNNING_TRIATHLETE_M - TRAINER_PIC_RUNNING_TRIATHLETE_F, // RUNNING_TRIATHLETE_F - TRAINER_PIC_SWIMMING_TRIATHLETE_M, // SWIMMING_TRIATHLETE_M - TRAINER_PIC_SWIMMING_TRIATHLETE_F, // SWIMMING_TRIATHLETE_F - TRAINER_PIC_DRAGON_TAMER, // DRAGON_TAMER - TRAINER_PIC_BIRD_KEEPER, // BIRD_KEEPER - TRAINER_PIC_NINJA_BOY, // NINJA_BOY - TRAINER_PIC_BATTLE_GIRL, // BATTLE_GIRL - TRAINER_PIC_PARASOL_LADY, // PARASOL_LADY - TRAINER_PIC_SWIMMER_F, // SWIMMER_F - TRAINER_PIC_PICNICKER, // PICNICKER - TRAINER_PIC_TWINS, // TWINS - TRAINER_PIC_SAILOR, // SAILOR - TRAINER_PIC_YOUNGSTER, // BOARDER_1 - TRAINER_PIC_YOUNGSTER, // BOARDER_2 - TRAINER_PIC_COLLECTOR, // COLLECTOR - TRAINER_PIC_WALLY, // WALLY - TRAINER_PIC_BRENDAN, // BRENDAN_1 - TRAINER_PIC_BRENDAN, // BRENDAN_2 - TRAINER_PIC_BRENDAN, // BRENDAN_3 - TRAINER_PIC_MAY, // MAY_1 - TRAINER_PIC_MAY, // MAY_2 - TRAINER_PIC_MAY, // MAY_3 - TRAINER_PIC_POKEMON_BREEDER_M, // POKEMON_BREEDER_M - TRAINER_PIC_POKEMON_BREEDER_F, // POKEMON_BREEDER_F - TRAINER_PIC_POKEMON_RANGER_M, // POKEMON_RANGER_M - TRAINER_PIC_POKEMON_RANGER_F, // POKEMON_RANGER_F - TRAINER_PIC_MAXIE, // MAGMA_LEADER - TRAINER_PIC_MAGMA_GRUNT_M, // TEAM_MAGMA_M - TRAINER_PIC_MAGMA_GRUNT_F, // TEAM_MAGMA_F - TRAINER_PIC_LASS, // LASS - TRAINER_PIC_BUG_CATCHER, // BUG_CATCHER - TRAINER_PIC_HIKER, // HIKER - TRAINER_PIC_YOUNG_COUPLE, // YOUNG_COUPLE - TRAINER_PIC_OLD_COUPLE, // OLD_COUPLE - TRAINER_PIC_SIS_AND_BRO // SIS_AND_BRO -}; - -const u8 gTrainerClassToNameIndex[] = { - TRAINER_CLASS_NAME_AQUA_LEADER, // AQUA_LEADER - TRAINER_CLASS_NAME_TEAM_AQUA, // TEAM_AQUA_M - TRAINER_CLASS_NAME_TEAM_AQUA, // TEAM_AQUA_F - TRAINER_CLASS_NAME_AROMA_LADY, // AROMA_LADY - TRAINER_CLASS_NAME_RUIN_MANIAC, // RUIN_MANIAC - TRAINER_CLASS_NAME_INTERVIEWER, // INTERVIEWER - TRAINER_CLASS_NAME_TUBER_F, // TUBER_F - TRAINER_CLASS_NAME_TUBER_M, // TUBER_M - TRAINER_CLASS_NAME_COOL_TRAINER, // COOL_TRAINER_M - TRAINER_CLASS_NAME_COOL_TRAINER, // COOL_TRAINER_F - TRAINER_CLASS_NAME_HEX_MANIAC, // HEX_MANIAC - TRAINER_CLASS_NAME_LADY, // LADY - TRAINER_CLASS_NAME_BEAUTY, // BEAUTY - TRAINER_CLASS_NAME_RICH_BOY, // RICH_BOY - TRAINER_CLASS_NAME_POKEMANIAC, // POKEMANIAC - TRAINER_CLASS_NAME_SWIMMER_M, // SWIMMER_M - TRAINER_CLASS_NAME_BLACK_BELT, // BLACK_BELT - TRAINER_CLASS_NAME_GUITARIST, // GUITARIST - TRAINER_CLASS_NAME_KINDLER, // KINDLER - TRAINER_CLASS_NAME_CAMPER, // CAMPER - TRAINER_CLASS_NAME_BUG_MANIAC, // BUG_MANIAC - TRAINER_CLASS_NAME_PSYCHIC, // PSYCHIC_M - TRAINER_CLASS_NAME_PSYCHIC, // PSYCHIC_F - TRAINER_CLASS_NAME_GENTLEMAN, // GENTLEMAN - TRAINER_CLASS_NAME_ELITE_FOUR, // ELITE_FOUR_M - TRAINER_CLASS_NAME_ELITE_FOUR, // ELITE_FOUR_F - TRAINER_CLASS_NAME_LEADER, // LEADER_F - TRAINER_CLASS_NAME_LEADER, // LEADER_M - TRAINER_CLASS_NAME_LEADER, // LEADER_MF - TRAINER_CLASS_NAME_SCHOOL_KID, // SCHOOL_KID_M - TRAINER_CLASS_NAME_SCHOOL_KID, // SCHOOL_KID_F - TRAINER_CLASS_NAME_SR_AND_JR, // SR_AND_JR - TRAINER_CLASS_NAME_POKEFAN, // POKEFAN_M - TRAINER_CLASS_NAME_POKEFAN, // POKEFAN_F - TRAINER_CLASS_NAME_EXPERT, // EXPERT_M - TRAINER_CLASS_NAME_EXPERT, // EXPERT_F - TRAINER_CLASS_NAME_YOUNGSTER, // YOUNGSTER - TRAINER_CLASS_NAME_CHAMPION, // CHAMPION - TRAINER_CLASS_NAME_FISHERMAN, // FISHERMAN - TRAINER_CLASS_NAME_TRIATHLETE, // CYCLING_TRIATHLETE_M - TRAINER_CLASS_NAME_TRIATHLETE, // CYCLING_TRIATHLETE_F - TRAINER_CLASS_NAME_TRIATHLETE, // RUNNING_TRIATHLETE_M - TRAINER_CLASS_NAME_TRIATHLETE, // RUNNING_TRIATHLETE_F - TRAINER_CLASS_NAME_TRIATHLETE, // SWIMMING_TRIATHLETE_M - TRAINER_CLASS_NAME_TRIATHLETE, // SWIMMING_TRIATHLETE_F - TRAINER_CLASS_NAME_DRAGON_TAMER, // DRAGON_TAMER - TRAINER_CLASS_NAME_BIRD_KEEPER, // BIRD_KEEPER - TRAINER_CLASS_NAME_NINJA_BOY, // NINJA_BOY - TRAINER_CLASS_NAME_BATTLE_GIRL, // BATTLE_GIRL - TRAINER_CLASS_NAME_PARASOL_LADY, // PARASOL_LADY - TRAINER_CLASS_NAME_SWIMMER_F, // SWIMMER_F - TRAINER_CLASS_NAME_PICNICKER, // PICNICKER - TRAINER_CLASS_NAME_TWINS, // TWINS - TRAINER_CLASS_NAME_SAILOR, // SAILOR - TRAINER_CLASS_NAME_BOARDER, // BOARDER_1 - TRAINER_CLASS_NAME_BOARDER, // BOARDER_2 - TRAINER_CLASS_NAME_COLLECTOR, // COLLECTOR - TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // WALLY - TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // BRENDAN_1 - TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // BRENDAN_2 - TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // BRENDAN_3 - TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // MAY_1 - TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // MAY_2 - TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // MAY_3 - TRAINER_CLASS_NAME_POKEMON_BREEDER, // POKEMON_BREEDER_M - TRAINER_CLASS_NAME_POKEMON_BREEDER, // POKEMON_BREEDER_F - TRAINER_CLASS_NAME_POKEMON_RANGER, // POKEMON_RANGER_M - TRAINER_CLASS_NAME_POKEMON_RANGER, // POKEMON_RANGER_F - TRAINER_CLASS_NAME_MAGMA_LEADER, // MAGMA_LEADER - TRAINER_CLASS_NAME_TEAM_MAGMA, // TEAM_MAGMA_M - TRAINER_CLASS_NAME_TEAM_MAGMA, // TEAM_MAGMA_F - TRAINER_CLASS_NAME_LASS, // LASS - TRAINER_CLASS_NAME_BUG_CATCHER, // BUG_CATCHER - TRAINER_CLASS_NAME_HIKER, // HIKER - TRAINER_CLASS_NAME_YOUNG_COUPLE, // YOUNG_COUPLE - TRAINER_CLASS_NAME_OLD_COUPLE, // OLD_COUPLE - TRAINER_CLASS_NAME_SIS_AND_BRO // SIS_AND_BRO -}; - -#endif //POKERUBY_TRAINER_CLASS_LOOKUPS_H diff --git a/include/data2.h b/include/data2.h index 2837a4451..97cb4fd7a 100644 --- a/include/data2.h +++ b/include/data2.h @@ -3,12 +3,7 @@ #include "sprite.h" -struct UnknownStructD2 -{ - u32 unk0; - u32 unk4; - u32 unk8; -}; +struct UnknownTaskStruct; struct MonCoords { @@ -27,7 +22,7 @@ extern const struct SpriteFrameImage gSpriteImageTable_81E7A70[]; extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E7B70[]; extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E7BEC[]; -extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E7C18; +extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E7C18[]; extern const union AnimCmd *const gSpriteAnimTable_81E7C64[]; extern struct MonCoords gMonFrontPicCoords[]; extern struct MonCoords gMonBackPicCoords[]; @@ -44,10 +39,10 @@ extern u8 gEnemyMonElevation[]; extern const u8 gTrainerClassNames[][13]; extern const struct Trainer gTrainers[]; extern u8 gSpeciesNames[][11]; -extern u8 gMoveNames[][13]; +extern const u8 gMoveNames[][13]; extern const u8 gAbilityNames[][13]; extern const u8 gTypeNames[][7]; -extern const struct UnknownStructD2 gUnknown_081F9674; +extern const struct UnknownTaskStruct gUnknown_081F9674; extern const u8 gUnknown_081F96C8[]; extern struct CompressedSpriteSheet gUnknown_081FAEA4; extern struct CompressedSpritePalette gUnknown_081FAEAC; diff --git a/include/daycare.h b/include/daycare.h index b90c50610..c612113b9 100644 --- a/include/daycare.h +++ b/include/daycare.h @@ -1,14 +1,17 @@ #ifndef GUARD_DAYCARE_H #define GUARD_DAYCARE_H -u8 Daycare_CountPokemon(struct BoxPokemon *); -void sub_8041324(struct BoxPokemon *, struct RecordMixing_UnknownStruct *); -void sub_8041790(int i); -u16 sub_8041870(u16); -void sub_8041940(void); -void sub_8041950(void); -void sub_8042044(struct Pokemon *mon, u16, u8); -u8 sub_80422A0(void); -u8 daycare_relationship_score_from_savegame(void); +u8 *GetMonNick(struct Pokemon *, u8 *); +u8 *GetBoxMonNick(struct BoxPokemon *, u8 *); +u8 CountPokemonInDaycare(struct DayCare *); +void InitDaycareMailRecordMixing(struct BoxPokemon *, struct RecordMixingDayCareMail *); +void Debug_AddDaycareSteps(u16 i); +u16 GetEggSpecies(u16); +void TriggerPendingDaycareEgg(void); +void TriggerPendingDaycareMaleEgg(void); +void CreateEgg(struct Pokemon *mon, u16, u8); +u8 ShouldEggHatch(void); +u8 GetDaycareCompatibilityScoreFromSave(void); +bool8 NameHasGenderSymbol(const u8 *, u8); #endif // GUARD_DAYCARE_H diff --git a/include/decompress.h b/include/decompress.h index 84c1f29c0..01f66971c 100644 --- a/include/decompress.h +++ b/include/decompress.h @@ -3,7 +3,7 @@ #include "sprite.h" -void sub_800D238(const void *src, void *dest); +void LZDecompressWram(const void *src, void *dest); void LZDecompressVram(const void *src, void *dest); void LoadCompressedObjectPic(const struct CompressedSpriteSheet *a); void LoadCompressedObjectPicOverrideBuffer(const struct CompressedSpriteSheet *a, void *buffer); diff --git a/include/decoration.h b/include/decoration.h index 2e72e305a..972e82faf 100644 --- a/include/decoration.h +++ b/include/decoration.h @@ -3,130 +3,6 @@ #include "task.h" -enum DecoId { - /*000*/ DECOR_NONE, - /*001*/ DECOR_SMALL_DESK, - /*002*/ DECOR_POKEMON_DESK, - /*003*/ DECOR_HEAVY_DESK, - /*004*/ DECOR_RAGGED_DESK, - /*005*/ DECOR_COMFORT_DESK, - /*006*/ DECOR_PRETTY_DESK, - /*007*/ DECOR_BRICK_DESK, - /*008*/ DECOR_CAMP_DESK, - /*009*/ DECOR_HARD_DESK, - /*010*/ DECOR_SMALL_CHAIR, - /*011*/ DECOR_POKEMON_CHAIR, - /*012*/ DECOR_HEAVY_CHAIR, - /*013*/ DECOR_PRETTY_CHAIR, - /*014*/ DECOR_COMFORT_CHAIR, - /*015*/ DECOR_RAGGED_CHAIR, - /*016*/ DECOR_BRICK_CHAIR, - /*017*/ DECOR_CAMP_CHAIR, - /*018*/ DECOR_HARD_CHAIR, - /*019*/ DECOR_RED_PLANT, - /*020*/ DECOR_TROPICAL_PLANT, - /*021*/ DECOR_PRETTY_FLOWERS, - /*022*/ DECOR_COLORFUL_PLANT, - /*023*/ DECOR_BIG_PLANT, - /*024*/ DECOR_GORGEOUS_PLANT, - /*025*/ DECOR_RED_BRICK, - /*026*/ DECOR_YELLOW_BRICK, - /*027*/ DECOR_BLUE_BRICK, - /*028*/ DECOR_RED_BALLOON, - /*029*/ DECOR_BLUE_BALLOON, - /*030*/ DECOR_YELLOW_BALLOON, - /*031*/ DECOR_RED_TENT, - /*032*/ DECOR_BLUE_TENT, - /*033*/ DECOR_SOLID_BOARD, - /*034*/ DECOR_SLIDE, - /*035*/ DECOR_FENCE_LENGTH, - /*036*/ DECOR_FENCE_WIDTH, - /*037*/ DECOR_TIRE, - /*038*/ DECOR_STAND, - /*039*/ DECOR_MUD_BALL, - /*040*/ DECOR_BREAKABLE_DOOR, - /*041*/ DECOR_SAND_ORNAMENT, - /*042*/ DECOR_SILVER_SHIELD, - /*043*/ DECOR_GOLD_SHIELD, - /*044*/ DECOR_GLASS_ORNAMENT, - /*045*/ DECOR_TV, - /*046*/ DECOR_ROUND_TV, - /*047*/ DECOR_CUTE_TV, - /*048*/ DECOR_GLITTER_MAT, - /*049*/ DECOR_JUMP_MAT, - /*050*/ DECOR_SPIN_MAT, - /*051*/ DECOR_C_LOW_NOTE_MAT, - /*052*/ DECOR_D_NOTE_MAT, - /*053*/ DECOR_E_NOTE_MAT, - /*054*/ DECOR_F_NOTE_MAT, - /*055*/ DECOR_G_NOTE_MAT, - /*056*/ DECOR_A_NOTE_MAT, - /*057*/ DECOR_B_NOTE_MAT, - /*058*/ DECOR_C_HIGH_NOTE_MAT, - /*059*/ DECOR_SURF_MAT, - /*060*/ DECOR_THUNDER_MAT, - /*061*/ DECOR_FIRE_BLAST_MAT, - /*062*/ DECOR_POWDER_SNOW_MAT, - /*063*/ DECOR_ATTRACT_MAT, - /*064*/ DECOR_FISSURE_MAT, - /*065*/ DECOR_SPIKES_MAT, - /*066*/ DECOR_BALL_POSTER, - /*067*/ DECOR_GREEN_POSTER, - /*068*/ DECOR_RED_POSTER, - /*069*/ DECOR_BLUE_POSTER, - /*070*/ DECOR_CUTE_POSTER, - /*071*/ DECOR_PIKA_POSTER, - /*072*/ DECOR_LONG_POSTER, - /*073*/ DECOR_SEA_POSTER, - /*074*/ DECOR_SKY_POSTER, - /*075*/ DECOR_KISS_POSTER, - /*076*/ DECOR_PICHU_DOLL, - /*077*/ DECOR_PIKACHU_DOLL, - /*078*/ DECOR_MARILL_DOLL, - /*079*/ DECOR_TOGEPI_DOLL, - /*080*/ DECOR_CYNDAQUIL_DOLL, - /*081*/ DECOR_CHIKORITA_DOLL, - /*082*/ DECOR_TOTODILE_DOLL, - /*083*/ DECOR_JIGGLYPUFF_DOLL, - /*084*/ DECOR_MEOWTH_DOLL, - /*085*/ DECOR_CLEFAIRY_DOLL, - /*086*/ DECOR_DITTO_DOLL, - /*087*/ DECOR_SMOOCHUM_DOLL, - /*088*/ DECOR_TREECKO_DOLL, - /*089*/ DECOR_TORCHIC_DOLL, - /*090*/ DECOR_MUDKIP_DOLL, - /*091*/ DECOR_DUSKULL_DOLL, - /*092*/ DECOR_WYNAUT_DOLL, - /*093*/ DECOR_BALTOY_DOLL, - /*094*/ DECOR_KECLEON_DOLL, - /*095*/ DECOR_AZURILL_DOLL, - /*096*/ DECOR_SKITTY_DOLL, - /*097*/ DECOR_SWABLU_DOLL, - /*098*/ DECOR_GULPIN_DOLL, - /*099*/ DECOR_LOTAD_DOLL, - /*100*/ DECOR_SEEDOT_DOLL, - /*101*/ DECOR_PIKA_CUSHION, - /*102*/ DECOR_ROUND_CUSHION, - /*103*/ DECOR_KISS_CUSHION, - /*104*/ DECOR_ZIGZAG_CUSHION, - /*105*/ DECOR_SPIN_CUSHION, - /*106*/ DECOR_DIAMOND_CUSHION, - /*107*/ DECOR_BALL_CUSHION, - /*108*/ DECOR_GRASS_CUSHION, - /*109*/ DECOR_FIRE_CUSHION, - /*110*/ DECOR_WATER_CUSHION, - /*111*/ DECOR_SNORLAX_DOLL, - /*112*/ DECOR_RHYDON_DOLL, - /*113*/ DECOR_LAPRAS_DOLL, - /*114*/ DECOR_VENUSAUR_DOLL, - /*115*/ DECOR_CHARIZARD_DOLL, - /*116*/ DECOR_BLASTOISE_DOLL, - /*117*/ DECOR_WAILMER_DOLL, - /*118*/ DECOR_REGIROCK_DOLL, - /*119*/ DECOR_REGICE_DOLL, - /*120*/ DECOR_REGISTEEL_DOLL -}; - enum DecorPerm { /* * The nomenclature here describes collision and placement permissions, in that order. @@ -204,9 +80,6 @@ struct UnkStruct_803EC860 extern const struct UnkStruct_803EC860 gUnknown_083EC860[]; -extern u8 ewram[]; -#define ewram_1f000 (*(struct DecoPCPointers *)(ewram + 0x1f000)) - struct UnkStruct_02038900 { /*0x000; 0x02038900*/ const struct Decoration *decoration; @@ -291,7 +164,9 @@ extern void sub_8134104(u8); // src/decoration_inventory extern bool8 sub_807D770(void); extern void sub_8109DAC(u8); // src/trader extern void ReshowPlayerPC(u8); // src/player_pc +void Task_SecretBasePC_Decoration(u8); +void Task_SecretBasePC_Decoration(u8 taskId); void sub_80FE2B4(void); void Task_DecorationPCProcessMenuInput(u8); void sub_80FE394(void); diff --git a/include/dewford_trend.h b/include/dewford_trend.h index 26075d633..16b2bdd75 100644 --- a/include/dewford_trend.h +++ b/include/dewford_trend.h @@ -1,10 +1,8 @@ #ifndef GUARD_DEWFORDTREND_H #define GUARD_DEWFORDTREND_H -#define ARRAY_2007800 ((struct EasyChatPair *)(unk_2000000 + 0x7800)) -#define ARRAY_2007900 ((struct EasyChatPair *)(unk_2000000 + 0x7900)) - void InitDewfordTrend(void); +bool8 sub_80FA364(u16 *a); void sub_80FA4E4(void *, u32, u8); void UpdateDewfordTrendPerDay(u16); diff --git a/include/diploma.h b/include/diploma.h index 81e9e3bb2..8d730fa05 100644 --- a/include/diploma.h +++ b/include/diploma.h @@ -1,6 +1,6 @@ #ifndef GUARD_DIPLOMA_H #define GUARD_DIPLOMA_H -void sub_8145D88(void); +void CB2_ShowDiploma(void); #endif // GUARD_DIPLOMA_H diff --git a/include/easy_chat.h b/include/easy_chat.h index 03e9bb737..c68a3fa02 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -1,48 +1,142 @@ #ifndef GUARD_EASYCHAT_H #define GUARD_EASYCHAT_H -enum { - EC_GROUP_POKEMON, - EC_GROUP_TRAINER, - EC_GROUP_STATUS, - EC_GROUP_BATTLE, - EC_GROUP_GREETINGS, - EC_GROUP_PEOPLE, - EC_GROUP_VOICES, - EC_GROUP_SPEECH, - EC_GROUP_ENDINGS, - EC_GROUP_FEELINGS, - EC_GROUP_CONDITIONS, - EC_GROUP_ACTIONS, - EC_GROUP_LIFESTYLE, - EC_GROUP_HOBBIES, - EC_GROUP_TIME, - EC_GROUP_MISC, - EC_GROUP_ADJECTIVES, - EC_GROUP_EVENTS, - EC_GROUP_MOVE_1, - EC_GROUP_MOVE_2, - EC_GROUP_TRENDY_SAYING, - EC_GROUP_POKEMON_2, +struct Sprite; + +struct UnknownEasyChatStruct1 +{ + u16 unk0; + u16 unk2; + u16 unk4; + u16 unk6; + void *unk8; +}; + +struct Shared1000 +{ + void (*unk0)(void); // main cb 2 + u16 *unk4; + u8 unk8; + u8 unk9; + u8 unkA; // length of unkC array + u8 unkB; // reporter talked to (Gabby or Ty) + u16 unkC[9]; + void (*unk20)(void); + u16 unk24; + u8 unk26; + u8 unk27; + u16 unk28; + u8 unk2A[11][2]; + u8 unk40[4][14]; + u8 unk78[5]; + u8 unk7D; + u8 unk7E[5]; + s8 unk83; + s8 unk84; + s8 unk85; + s8 unk86; + bool8 unk87; + u16 unk88; + u16 unk8A; + u8 unk8C[(0x96-0x8C)/2][2]; + u8 unk96; + u8 filler97; + struct Sprite *unk98; + struct Sprite *unk9C; + struct Sprite *unkA0; + struct Sprite *unkA4; + struct Sprite *unkA8; + struct Sprite *unkAC[2]; + struct Sprite *unkB4[2]; + u8 unkBC; + u8 fillerBD; + u16 unkBE; + u8 fillerC0[2]; + u16 unkC2; // length of unkC8 and unk148 arrays + u16 unkC4; + u8 fillerC6[2]; + u16 unkC8[(0x148-0xC8)/16][8]; + struct UnknownEasyChatStruct1 unk148[(0x1A8-0x148)/12]; + s8 unk1A8; + s8 unk1A9; + s8 unk1AA[0xB5-0xAA]; + s8 unk1B5; + s8 unk1B6; + s8 unk1B7; + u8 unk1B8; + u8 unk1B9; + u16 unk1BA; + u16 unk1BC; + u8 unk1BE; + s8 unk1BF; + s8 unk1C0; + u8 filler1C1[3]; + void (*unk1C4)(void); + u8 unk1C8[0x500]; + u8 unk6C8[0xB78-0x6C8]; +#if GERMAN + u16 unkB78[27][270]; +#else + u16 unkB78[27][255]; +#endif + u16 unk4142[(0x78-0x42)/2]; //0x446C + u16 unk4178[(0x41A4-0x4178)/2]; // unknown length + const u8 *ecWordStrings[0x16][0x100]; //0x44CE in german + s8 unk99A4; + s8 unk99A5; + s8 unk99A6[130]; + s8 unk9A28; + s8 unk9A29; + u16 unk9A2A[(0x9C32-0x9A2A)/4][2]; // unknown length + u8 unk9C32; + u8 filler9C33; + u16 unk9C34[3][9]; + u8 filler9C6A[2]; + s8 *unk9C6C; + u8 unk9C70; + s8 unk9C71; + u8 filler9C72[2]; + struct Sprite *unk9C74; + u8 filler9C78[4]; + u16 unk9C7C; // this is at 0x9FA8 in German + s16 unk9C7E; + u8 unk9C80[0xC9-0x80]; + u8 unk9CC9[0xD12-0xCC9]; + u8 unk9D12[0x5B-0x12]; + u8 unk9D5B[0xA4-0x5B]; + u8 unk9DA4[0xC9-0xA4]; + u8 unk9DC9[0xE14 - 0xDC9]; + u8 unk9E14[0xE41 - 0xE14]; + u8 unk9E41[0x6E - 0x41]; + u8 unk9E6E[0xEE - 0x6E]; + u8 unk9EEE[0xF6E - 0xEEE]; + u8 unk9F6E[0x8E - 0x6E]; // unknown length + u8 unk9F8E[7]; // unknown length }; +extern u8 gUnknown_020388AC; + +// const pointer to shared1000. easy_chat might be two separate files. +extern struct Shared1000 *const gEasyChatStruct; +void sub_80E62A0(u8 arg0, u16 *arg1, void (*arg2)(void), u8 arg3); u16 sub_80EB72C(u16 group); void sub_80EB6FC(u16 *, u16); void InitEasyChatPhrases(void); u8 sub_80EAD7C(u8 group); u16 sub_80EAE88(u8); u8 sub_80EB37C(u16); -u8* sub_80EB3FC(u8 *, u16); +u8* EasyChat_GetWordText(u8 *, u16); u8 *ConvertEasyChatWordsToString(u8 *dst, u16 *words, u16, u16); u16 sub_80EB784(u16 group); u8 sub_80EB868(u8); void sub_80EB890(u8); u8 sub_80EB8C0(void); u16 sub_80EB8EC(void); +u8 *sub_80EB544(u8 *dst, u16 *words, u16 arg2, u16 arg3); #if GERMAN -u32 de_sub_80EB748(u32, u32); +u32 de_sub_80EB748(s32, s32); #endif #endif // GUARD_EASYCHAT_H diff --git a/include/event_data.h b/include/event_data.h index 98e4a6da3..5656ab8dc 100644 --- a/include/event_data.h +++ b/include/event_data.h @@ -1,12 +1,12 @@ #ifndef GUARD_EVENT_DATA_H #define GUARD_EVENT_DATA_H -#include "flags.h" -#include "vars.h" +#include "constants/flags.h" +#include "constants/vars.h" void InitEventData(void); void ClearTempFieldEventData(void); -void ClearUpperFlags(void); +void ClearDailyFlags(void); void DisableNationalPokedex(void); void EnableNationalPokedex(void); bool32 IsNationalPokedexEnabled(void); @@ -22,7 +22,7 @@ bool8 VarSet(u16 id, u16 value); u8 VarGetFieldObjectGraphicsId(u8 id); u8 *GetFlagPointer(u16 id); u8 FlagSet(u16 id); -u8 FlagReset(u16 id); +u8 FlagClear(u16 id); bool8 FlagGet(u16 id); extern u16 gSpecialVar_0x8000; @@ -37,8 +37,8 @@ extern u16 gSpecialVar_0x8008; extern u16 gSpecialVar_0x8009; extern u16 gSpecialVar_0x800A; extern u16 gSpecialVar_0x800B; -extern u16 gScriptResult; -extern u16 gScriptLastTalked; -extern u16 gScriptFacing; +extern u16 gSpecialVar_Result; +extern u16 gSpecialVar_LastTalked; +extern u16 gSpecialVar_Facing; #endif // GUARD_EVENT_DATA_H diff --git a/include/evolution_graphics.h b/include/evolution_graphics.h index c217f22af..a960f637b 100644 --- a/include/evolution_graphics.h +++ b/include/evolution_graphics.h @@ -6,8 +6,10 @@ void LoadEvoSparkleSpriteAndPal(void); u8 LaunchTask_PreEvoSparklesSet1(u16 arg0); u8 LaunchTask_PreEvoSparklesSet2(void); u8 LaunchTask_PostEvoSparklesSet1(void); -u8 LaunchTask_PostEvoSparklesSet2AndFlash(u16 arg0); -u8 LaunchTask_PostEvoSparklesSet2AndFlash_Trade(u16 arg0); +u8 LaunchTask_PostEvoSparklesSet2AndFlash(u16 species); +u8 LaunchTask_PostEvoSparklesSet2AndFlash_Trade(u16 species); u8 sub_8149E7C(u8 preEvoSpriteID, u8 postEvoSpriteID); +#define EvoGraphicsTaskEvoStop data[8] + #endif // GUARD_EVOLUTION_GRAPHICS_H diff --git a/include/evolution_scene.h b/include/evolution_scene.h new file mode 100644 index 000000000..48bd6ebe1 --- /dev/null +++ b/include/evolution_scene.h @@ -0,0 +1,10 @@ +#ifndef GUARD_EVOLUTION_SCENE_H +#define GUARD_EVOLUTION_SCENE_H + +void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, u8 partyID); +void BeginEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, u8 partyID); +void TradeEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8 preEvoSpriteID, u8 partyID); + +extern void (*gCB2_AfterEvolution)(void); + +#endif // GUARD_EVOLUTION_SCENE_H diff --git a/include/ewram.h b/include/ewram.h new file mode 100755 index 000000000..b07820090 --- /dev/null +++ b/include/ewram.h @@ -0,0 +1,274 @@ +#ifndef GUARD_EWRAM_H +#define GUARD_EWRAM_H + +extern u8 gSharedMem[]; +#define ewram_addr 0x02000000 // used in gSharedMem addr hacks + +// Note: we have duplicate ewram labels because its clear some memory +// regions overlap others but have different definitions. Until some +// dupes can be determined to be the same, they will be deliberate +// seperated. +#define eWeatherPaletteData (*(struct WeatherPaletteData *)gSharedMem) +#define BATTLE_STRUCT ((struct BattleStruct *) (gSharedMem + 0x0)) +#define ewram0_2 (*(struct Struct2000000 *)(gSharedMem + 0x0)) +#define namingScreenData (*(struct NamingScreenData *)(gSharedMem + 0x0)) +#define ewramBerryPic (gSharedMem + 0x0) +#define ewram0_3 (*(struct UnknownStruct3 *)(gSharedMem + 0x0)) +#define ewram0_4 (*(struct Unk2000000 *)(gSharedMem + 0x0)) +#define ewram0_5 (*(struct UnkStruct *)(gSharedMem + 0x0)) +#define eMatsudaDebugVar (gSharedMem[0x0]) +#define eBrendanSprite (gSharedMem + 0x0) +#define ewram0_6 (u32)(&gSharedMem[0]) +#define ewram0_7 (&gSharedMem[0]) +#define eSaveSection (struct SaveSection *)(gSharedMem + 0x0) +#define ewram0arr ((u8 (*)[32])gSharedMem) +#define eVoidSharedArr (void *)(ewram_addr + 0x0) +#define eVoidSharedArr2 (u32)(ewram_addr) // ew(ram) +#define eSlotMachine ((struct SlotMachineEwramStruct *)(gSharedMem + 0x0)) +#define ewram0_9(i) (u8 *)(ewram_addr + (i * 0x20)) +#define ewram0_10 (*(struct UnknownPokenav0*)(gSharedMem + 0)) +#define ewram0_11 (*(struct UnknownPokenav0_1*)(gSharedMem + 0)) +#define ewram4 (*(struct UnknownStruct8 *)(gSharedMem + 0x4)) +#define ewram520 ((struct UnknownStruct7 *)(gSharedMem + 0x00520)) +#define ewram520_2 (u8 *)(ewram_addr + 0x520) +#define eMaySprite (gSharedMem + 0x800) +#define ewram888 (gSharedMem + 0x888) +#define ewramBlankMapName (gSharedMem + 0xA48) +#define ewramA6E (gSharedMem[0xA6E]) +#define ewram01000 (*(struct Unk2001000 *)(gSharedMem + 0x1000)) +#define ewramBerryPicTemp (gSharedMem + 0x1000) +#define EWRAM_1000 (*(struct Struct2001000 *)(gSharedMem + 0x1000)) +#define gUnk20011fa (u8 *)(&gSharedMem[0x11FA]) +#define gUnk2002694 (u8 *)(&gSharedMem[0x2694]) +#define gUnk20026A6 (u8 *)(&gSharedMem[0x26A6]) +#define gUnk20026e4 (u8 *)(&gSharedMem[0x26E4]) +#define ewram4000 (gSharedMem + 0x4000) +#define gUnknown_02007000 (*(ewramStruct_02007000 *)(gSharedMem + 0x7000)) +#define ARRAY_2007800 ((struct EasyChatPair *)(gSharedMem + 0x7800)) +#define ARRAY_2007900 ((struct EasyChatPair *)(gSharedMem + 0x7900)) +#define ewram_2008000 (*(struct PlayerRecords *)(gSharedMem + 0x08000)) +#define ewram8000 (&gSharedMem[0x8000]) +#define ePokedexPalAddr1 (void *)(gSharedMem + 0x8000) +#define ewram8800 (&gSharedMem[0x8800]) +#define ewram9000 (&gSharedMem[0x9000]) +#define ewram9000_hack (void *)(ewram_addr + 0x9000) // TODO: Fix this. +#define ewram9800 (&gSharedMem[0x9800]) +#define ewramA000 (&gSharedMem[0xA000]) +#define ewramA800 (&gSharedMem[0xA800]) +#define ewramB000 (&gSharedMem[0xB000]) +#define ewramB800 (&gSharedMem[0xB800]) +#define TRANSITION_STRUCT (*(struct TransitionData *) (gSharedMem + 0xC000)) +#define ewramC000 (&gSharedMem[0xC000]) +#define ePokedexPalAddr2 (void *)(gSharedMem + 0xC000) +#define ewramC03C (&gSharedMem[0xC03C]) +#define ewramC800 (&gSharedMem[0xC800]) +#define ewramD000 (&gSharedMem[0xD000]) +#define ewramD800 (&gSharedMem[0xD800]) +#define ewramE000 (&gSharedMem[0xE000]) +#define ewramE800 (&gSharedMem[0xE800]) +#define ewramF000 (&gSharedMem[0xF000]) +#define ewramF800 (&gSharedMem[0xF800]) +#define ewram_2010000 (*(struct TradeEwramStruct *)(gSharedMem + 0x10000)) +#define ewram10000 (&gSharedMem[0x10000]) +#define eSlotMachineGfxBuffer (void *)(gSharedMem + 0x10000) // slot machine +#define ePokedexPalAddr3 (void *)(gSharedMem + 0x10000) +#define ewram10800 (&gSharedMem[0x10800]) +#define ewram11000 (&gSharedMem[0x11000]) +#define ewram11800 (&gSharedMem[0x11800]) +#define ewram12000 (&gSharedMem[0x12000]) +#define ewram12800 (&gSharedMem[0x12800]) +#define ewram13000 (&gSharedMem[0x13000]) +#define eSlotMachineReelTimeGfxBuffer (&gSharedMem[0x13200]) +#define ewram13800 (&gSharedMem[0x13800]) +#define EWRAM_14000 ((u8 *)(gSharedMem + 0x14000)) +#define ewram14000 (&gSharedMem[0x14000]) +#define ePokedexPalAddr4 (void *)(gSharedMem + 0x14000) +#define ewram14000arr(i, data) (gSharedMem[0x14000 + i + data]) +#define ewram14004arr(i, data) (gSharedMem[0x14004 + i + data]) +#define ewram14008arr(i, data) (gSharedMem[0x14008 + data + i]) +#define ewram14800 (&gSharedMem[0x14800]) +#define EWRAM_14800 ((u16 *)(gSharedMem + 0x14800)) +#define sEvoInfo ((*(struct EvoInfo*)(gSharedMem + 0x14800))) +#define EWRAM_15000 ((u8 *)(gSharedMem + 0x15000)) +#define ewram15000 (&gSharedMem[0x15000]) +#define ewram15000arr(i, data) (gSharedMem[0x15000 + data + i]) +#define ewram15800 (&gSharedMem[0x15800]) +#define ewram15DDE (gSharedMem[0x15DDE]) +#define ewram15DDF (gSharedMem[0x15DDF]) +#define ewram15DE0 ((*(struct ContestEntry*)(gSharedMem + 0x15DE0))) +#define ewram15E00 ((*(struct Unk2015E00*)(gSharedMem + 0x15E00))) +#define ewram16000 (gSharedMem[0x16000]) +#define ewram16000_2 (&gSharedMem[0x16000]) +#define ewram16001 (gSharedMem[0x16001]) +#define ewram16002 (gSharedMem[0x16002]) +#define ewram16003 (gSharedMem[0x16003]) +#define ewram16004arr(i, bank) (gSharedMem[0x16004 + i + bank * 2]) +#define ewram1600C (gSharedMem[0x1600C]) +#define ewram1600E (gSharedMem[0x1600E]) +#define ewram16010arr(bank) (gSharedMem[0x16010 + bank]) +#define ewram1601B (gSharedMem[0x1601B]) +#define eDynamicMoveType (gSharedMem[0x1601C]) +#define eFocusPunchBank (gSharedMem[0x1601D]) +#define eDmgMultiplier (gSharedMem[0x1601F]) +#define ewram16020 ((u8 *)(gSharedMem + 0x16020)) +#define ewram16020arr(i) (gSharedMem[0x16020 + i]) +#define ewram16054 (gSharedMem[0x16054]) +#define ewram16056 (gSharedMem[0x16056]) +#define ewram16058 (gSharedMem[0x16058]) +#define ewram16059 (gSharedMem[0x16059]) +#define ewram16060(bank) (gSharedMem[0x16060 + bank]) +#define BATTLE_PARTY_ID(bank) (gSharedMem[0x16064 + bank]) +#define ewram16064 (&gSharedMem[0x16064]) +#define ewram16064arr(bank) (gSharedMem[0x16064 + bank]) +#define ewram16068arr(i) (gSharedMem[0x16068 + i]) +#define UNK_201606C_ARRAY (gSharedMem + 0x1606C) // lazy define but whatever. +#define ewram1606Carr(i, a) (gSharedMem[0x1606C + i + a * 3]) +#define ewram16078 (gSharedMem[0x16078]) +#define ewram16084 (gSharedMem[0x16084]) +#define ewram16086 (gSharedMem[0x16086]) +#define ewram16087 (gSharedMem[0x16087]) +#define ewram16088 (gSharedMem[0x16088]) +#define ewram16088_2 (*(u8 *)(gSharedMem + 0x16088)) +#define ewram16089 (gSharedMem[0x16089]) +#define ewram16089_2 (*(u8 *)(gSharedMem + 0x16089)) +#define ewram1608Carr(bank) (gSharedMem[0x1608C + bank]) +#define EWRAM_1609D (gSharedMem[0x1609D]) +#define ewram160A1 (gSharedMem[0x160A1]) +#define ewram160A4 (gSharedMem[0x160A4]) +#define ewram160A5 (gSharedMem[0x160A5]) +#define ewram160A6 (gSharedMem[0x160A6]) +#define ewram160A8 (gSharedMem[0x160A8]) +#define ewram160A9 (gSharedMem[0x160A9]) +#define ewram160AA (gSharedMem[0x160AA]) +#define ewram160AB (gSharedMem[0x160AB]) +#define ewram160AC ((u8 *)(gSharedMem + 0x160AC)) +#define ewram160ACarr(i) (gSharedMem[0x160AC + i]) +#define ewram160ACarr2(i, bank) (gSharedMem[0x160AC + i + bank * 2]) +#define ewram160BC ((u16 *)(gSharedMem + 0x160BC)) // hp +#define ewram160BCarr(bank) (gSharedMem[0x160BC + bank * 2]) +#define ewram160C0 (gSharedMem[0x160C0]) +#define ewram160C2_Flags ((u16 *)(gSharedMem + 0x160C2)) +#define ewram160C4_Callback ((MainCallback *)(gSharedMem + 0x160C4)) +#define ewram160C8 (gSharedMem[0x160C8]) +#define ewram160C8arr(bank) (gSharedMem[0x160C8 + (bank / 2)]) +#define ewram160C9 (gSharedMem[0x160C9]) +#define ewram160CB (gSharedMem[0x160CB]) +#define ewram160CC ((u8 *)(gSharedMem + 0x160CC)) +#define ewram160CCarr(i) (gSharedMem[0x160CC + i]) +#define USED_HELD_ITEM(bank) ((((u16*)(&gSharedMem[0x160CC + bank * 2])))) +#define USED_HELD_ITEMS(bank) (*(u16 *)&gSharedMem[0x160CC + 2 * (bank)]) +#define ewram160D4(bank) (gSharedMem[0x160D4 + (bank / 2) * 2]) +#define ewram160D8(bank) (gSharedMem[0x160D8 + (bank / 2)]) +#define ewram160DA(bank) (gSharedMem[0x160DA + (bank / 2)]) +#define ewram160DD (gSharedMem[0x160DD]) +#define ewram160E0(i) (gSharedMem[0x160E0 + i]) +#define ewram160E6 (gSharedMem[0x160E6]) +#define ewram160E7 (gSharedMem[0x160E7]) +#define CHOICED_MOVE(bank) (((u16*)(&gSharedMem[0x160E8 + bank * 2]))) +#define ewram160E8 ((u8 *)(gSharedMem + 0x160E8)) +#define ewram160E8arr(i) (gSharedMem[0x160E8 + i]) +#define ewram160E8arr2(i, bank) (gSharedMem[0x160E8 + i + bank * 2]) +#define ewram160F0 ((u8 *)(gSharedMem + 0x160F0)) +#define ewram160F0arr(i) (gSharedMem[0x160F0 + i]) +#define ewram160F8 (gSharedMem[0x160F8]) +#define ewram160F9 (gSharedMem[0x160F9]) +#define eStatHp (gSharedMem[0x160FA]) +#define ewram160FB (gSharedMem[0x160FB]) +#define ewram16100 ((u8 *)(gSharedMem + 0x16100)) +#define ewram16100arr(i) (gSharedMem[0x16100 + i]) +#define ewram16100arr2(i, bank) (gSharedMem[0x16100 + i + bank * 4]) +#define ewram16108 ((u8 *)(gSharedMem + 0x16108)) +#define ewram16108arr(i) (gSharedMem[0x16108 + i]) +#define ewram16110 (gSharedMem[0x16110]) +#define ewram16111 (gSharedMem[0x16111]) +#define eMultihitMoveEffect (gSharedMem[0x16112]) +#define ewram16113 (gSharedMem[0x16113]) +#define ewram16400 (gSharedMem + 0x16400) +#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(gSharedMem + 0x16800)) +#define UNK_2016A00_STRUCT ((struct UnkBattleStruct1 *) (gSharedMem + 0x16A00)) +#define AI_STACK ((struct AI_Stack *) (gSharedMem + 0x16C00)) +#define AI_ARRAY_160CC(i) (gSharedMem[0x160CC + i * 2]) +#define ewram16800 (&gSharedMem[0x16800]) +#define ewram17000 (&gSharedMem[0x17000]) +#define eLearnMoveStruct (struct LearnMoveStruct *)(gSharedMem + 0x17000) +#define eSecretBaseRecord ((struct SecretBaseRecord *)(gSharedMem + 0x17000)) +#define eCableCar1 ((struct CableCarEwramStruct1 *)(gSharedMem + 0x17000)) +#define ewram17002 (&gSharedMem[0x17002]) +#define eFlashFireArr (*(struct Struct2017100 *)(gSharedMem + 0x17100)) +#define B_BATTLESCRIPTS_STACK ((struct scriptsStack *) (gSharedMem + 0x17110)) +#define ewram17130 (gSharedMem[0x17130]) +#define B_FUNCTION_STACK ((struct funcStack *) (gSharedMem + 0x17140)) +#define ewram17160 (gSharedMem[0x17160]) +#define ewram17800 ((struct Struct2017800 *) (gSharedMem + 0x17800)) +#define ewram17800_2 (&gSharedMem[0x17800]) +#define EWRAM_17800 ((struct UnknownStruct1 *)(gSharedMem + 0x17800)) +#define eTransformStatuses ((struct TransformStatus *)(gSharedMem + 0x17800)) +#define ewram17810 ((struct Struct2017810 *) (gSharedMem + 0x17810)) +#define EWRAM_17810 ((struct UnknownStruct3 *)(gSharedMem + 0x17810)) +#define ewram17840 (*(struct Struct2017840 *) (gSharedMem + 0x17840)) +#define ewram17850 ((struct UnknownStruct5 *)(gSharedMem + 0x17850)) +#define ewram17E00 ((u16 *)(gSharedMem + 0x17E00)) +#define ewram_2018000 (*(struct PlayerRecords *)(gSharedMem + 0x18000)) +#define EWRAM_18000 ((u16 *)(gSharedMem + 0x18000)) +#define ewram18000 ((u16 *)(gSharedMem + 0x18000)) +#define ewram18000_2 (&gSharedMem[0x18000]) +#define ewram18000_3 *(struct Pokemon **)(gSharedMem + 0x18000) +#define eBerryBlenderData (struct BerryBlenderData*)(&gSharedMem[0x18000]) +#define eEggHatchData (struct EggHatchData*)(&gSharedMem[0x18000]) +#define ePokedexView1 (struct PokedexView *)(gSharedMem + 0x18000) +#define UNK_2018000_STRUCT (*(struct UnknownStruct2018000 *)(gSharedMem + 0x18000)) +#define pssData (*(struct PokemonSummaryScreenStruct *)(gSharedMem + 0x18000)) +#define ewram18300 ((u16 *)(gSharedMem + 0x18300)) +#define ewram18800 (&gSharedMem[0x18800]) +#define ePokedexView2 (struct PokedexView *)(gSharedMem + 0x18800) +#define ewram189a0 ((u16 *)(gSharedMem + 0x189A0)) +#define ewram18a20 ((u16 *)(gSharedMem + 0x18A20)) +#define ewram18a32 ((u16 *)(gSharedMem + 0x18A32)) +#define ewram18a80 ((u16 *)(gSharedMem + 0x18a80)) +#define ewram19000 (&gSharedMem[0x19000]) +#define eCableCar2 ((struct CableCarEwramStruct2 *)(gSharedMem + 0x19000)) +#define ePokedexView3 (struct PokedexView *)(gSharedMem + 0x19000) +#define eRoulette ((struct Roulette *)(gSharedMem + 0x19000)) +#define EWRAM_19348 (*(u16 *)(gSharedMem + 0x19348)) +#define ewram19800 (&gSharedMem[0x19800]) +#define ePokedexView4 (struct PokedexView *)(gSharedMem + 0x19800) +#define ewram1A000 (&gSharedMem[0x1A000]) +#define ewram1A800 (&gSharedMem[0x1A800]) +#define ewram1B000 (*(struct Unk201B000 *)(gSharedMem + 0x1B000)) +#define ewram1B000_alt (*(struct Struct201B000 *)(gSharedMem + 0x1B000)) +#define EWRAM_1B000 ewram1B000_alt // FIXME +#define EWRAM_1B000_2 (*(struct Struct201B000 *)(gSharedMem + 0x1B000)) +#define ewram1B000_2 (&gSharedMem[0x1B000]) +#define ewram1B800 (&gSharedMem[0x1B800]) +#define EWRAM_1C000 (*(struct Struct201C000 *)(gSharedMem + 0x1C000)) +#define ewram1C000 (*(struct Unk201C000 *)(gSharedMem + 0x1C000)) +#define ewram1c000 (*(struct Unk201C000 *)(gSharedMem + 0x1C000)) // FIXME, names too similar +#define eHallOfFameMons1 (struct HallofFameMons*)(&gSharedMem[0x1C000]) +#define EWRAM_1C800 (*(struct Unk201C800 *)(gSharedMem + 0x1C800)) +#define ewram1D000 ((struct Pokemon *)(gSharedMem + 0x1D000)) +#define ewram1D000_2 ((u16 *)(gSharedMem + 0x1D000)) +#define ewram1D400 ((u16 *)(gSharedMem + 0x1D400)) +#define ewramSavedItemsPocket ((struct ItemSlot *)(gSharedMem + 0x1E000)) // saved items pocket (for Wally battle) +#define ewram1E000(i) (gSharedMem[0x1E000 + i]) +#define eHallOfFameMons2 (struct HallofFameMons*)(&gSharedMem[0x1E000]) +#define eHallOfFame (struct HallOfFame *)(gSharedMem + 0x1E000) +#define HALL_OF_FAME_SHEET_0 ((u8 *)(gSharedMem + 0x1E000)) +#define ewram1E000_2 (const u8 *)(gSharedMem + 0x1E000) +#define HALL_OF_FAME_SHEET_1 ((u8 *)(gSharedMem + 0x1E800)) +#define ewram_1f000 (*(struct DecoPCPointers *)(gSharedMem + 0x1f000)) +#define ewramSavedPokeballsPocket ((struct ItemSlot *)(gSharedMem + 0x1F000)) // saved Pokeballs pocket (for Wally battle) +#define HALL_OF_FAME_SHEET_2 ((u8 *)(gSharedMem + 0x1F000)) +#define EWRAM_1F800 ((u16 *)(gSharedMem + 0x1F800)) +#define ewram_1F800_2 (const u16 *)(gSharedMem + 0x1F800) +#define ewram1FE00 (*(struct Unk201FE00 *)(gSharedMem + 0x1FE00)) +#define eMailboxInfo (*(struct MailboxStruct *)(gSharedMem + 0x1FE00)) +#define eCutGrassSpriteArray (gSharedMem + 0x1FFF0) // 8 sprite IDs +#define ewram1FFFC (gSharedMem[0x1FFFC]) +#define ewram1FFFD (gSharedMem[0x1FFFD]) +#define gHelperState (gSharedMem[0x1FFFE]) +#define ewram1FFFE (gSharedMem[0x1FFFE]) +#define gReshowState (gSharedMem[0x1FFFF]) +#define ewramBagSetupStep (gSharedMem[0x1FFFF]) +#define ewram1FFFF (gSharedMem[0x1FFFF]) + +#endif diff --git a/include/field_camera.h b/include/field_camera.h index 4ce207541..17126d190 100644 --- a/include/field_camera.h +++ b/include/field_camera.h @@ -11,7 +11,7 @@ struct CameraSomething s32 unk14; }; -extern struct Camera gUnknown_0202E844; +extern struct Camera gCamera; void move_tilemap_camera_to_upper_left_corner(void); void sub_8057A58(void); diff --git a/include/field_control_avatar.h b/include/field_control_avatar.h index a85e02132..2d5693e40 100644 --- a/include/field_control_avatar.h +++ b/include/field_control_avatar.h @@ -30,7 +30,7 @@ u8 *sub_80682A8(struct MapPosition *, u8, u8); void overworld_poison_timer_set(void); void prev_quest_postbuffer_cursor_backup_reset(void); u8 *sub_8068E24(struct MapPosition *); -u8 *GetFieldObjectScriptPointerForComparison(); +u8 *GetFieldObjectScriptPointerPlayerFacing(void); bool8 mapheader_trigger_activate_at__run_now(struct MapPosition *); bool8 sub_8068870(u16 a); bool8 sub_8068894(void); diff --git a/include/field_door.h b/include/field_door.h index 1759e0dc1..091aac27f 100644 --- a/include/field_door.h +++ b/include/field_door.h @@ -5,8 +5,8 @@ struct DoorGraphics { u16 metatileNum; u8 unk2; - void *tiles; - void *palette; + const void *tiles; + const void *palette; }; struct DoorAnimFrame @@ -20,6 +20,6 @@ void FieldSetDoorClosed(u32, u32); s8 FieldAnimateDoorClose(u32, u32); s8 FieldAnimateDoorOpen(u32, u32); bool8 FieldIsDoorAnimationRunning(void); -u32 sub_8058790(u32 x, u32 y); +u32 GetDoorSoundEffect(u32 x, u32 y); #endif diff --git a/include/field_effect.h b/include/field_effect.h index f43b15afb..bb859074f 100644 --- a/include/field_effect.h +++ b/include/field_effect.h @@ -67,7 +67,7 @@ enum FieldEffectScriptIdx FLDEFF_CUT_GRASS, FLDEFF_FIELD_MOVE_SHOW_MON_INIT, FLDEFF_USE_FLY_ANCIENT_TOMB, - FLDEFF_PCTURN_ON, + FLDEFF_SECRET_BASE_PC_TURN_ON, FLDEFF_HALL_OF_FAME_RECORD, FLDEFF_USE_TELEPORT }; @@ -252,7 +252,8 @@ void FreeResourcesAndDestroySprite(struct Sprite *sprite); void MultiplyInvertedPaletteRGBComponents(u16, u8, u8, u8); void sub_80878A8(void); void sub_8087BA8(void); +void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b); -extern u32 gUnknown_0202FF84[8]; +extern s32 gFieldEffectArguments[8]; #endif // GUARD_FIELD_EFFECT_H diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h index a1dd53a2b..7bba24fa6 100644 --- a/include/field_effect_helpers.h +++ b/include/field_effect_helpers.h @@ -1,6 +1,8 @@ #ifndef GUARD_FIELD_EFFECT_HELPERS_H #define GUARD_FIELD_EFFECT_HELPERS_H +extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; + void sub_812869C(struct MapObject *); bool8 sub_81286C4(struct MapObject *); void oamc_shadow(struct Sprite *); @@ -26,6 +28,9 @@ void sub_8126BC4(u8 unk_1B, u8 r6, s16 x, s16 y); void sub_8127ED0(u8, u8); void sub_8127F28(u8, u8, s16); u8 sub_8128124(u8 id); -void ash(s16, s16, u16, u8); +void ash(s16, s16, u16, s16); +void SetUpReflection(struct MapObject *mapObj, struct Sprite *sprite, u8 a); +u32 oe_exec_and_other_stuff(u8 fieldEffectId, struct MapObject *mapObject); +u8 sub_8126FF0(u8, u8, u8, s16, s16); #endif // GUARD_FIELD_EFFECT_HELPERS_H diff --git a/include/field_fadetransition.h b/include/field_fadetransition.h index 111dc92a6..4377367f7 100644 --- a/include/field_fadetransition.h +++ b/include/field_fadetransition.h @@ -13,7 +13,7 @@ void sub_8080A3C(void); void sub_8080AC4(void); void mapldr_default(); void sub_8080B60(void); -void atk17_seteffectuser(void); +void atk17_seteffectsecondary(void); void sub_8080E28(void); void sub_8080E44(void); bool32 sub_8080E70(void); diff --git a/include/field_map_obj.h b/include/field_map_obj.h index d2a1a9b1f..cf3be36b2 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -3,22 +3,24 @@ #include "sprite.h" +extern const u8 gUnknown_0830FD14[]; + #define fieldmap_object_cb(setup, callback, table) \ static u8 callback(struct MapObject *, struct Sprite *);\ void setup(struct Sprite *sprite)\ {\ - meta_step(&gMapObjects[sprite->data0], sprite, callback);\ + meta_step(&gMapObjects[sprite->data[0]], sprite, callback);\ }\ static u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\ {\ - return table[sprite->data1](mapObject, sprite);\ + return table[sprite->data[1]](mapObject, sprite);\ } #define fieldmap_object_null_cb(setup, callback) \ static u8 callback(struct MapObject *, struct Sprite *);\ void setup(struct Sprite *sprite)\ {\ - meta_step(&gMapObjects[sprite->data0], sprite, callback);\ + meta_step(&gMapObjects[sprite->data[0]], sprite, callback);\ }\ static u8 callback(struct MapObject *mapObject, struct Sprite *sprite)\ {\ @@ -36,6 +38,9 @@ extern const u16 gMapObjectPalette19[]; extern const u32 gMapObjectPic_MovingBox[32]; extern const struct SpriteFrameImage gMapObjectPicTable_PechaBerryTree[]; +extern const u8 gFieldEffectPic_CutGrass[]; +extern const u16 gFieldEffectObjectPalette6[]; + void sub_805C058(struct MapObject *mapObject, s16 a, s16 b); void FieldObjectSetDirection(struct MapObject *pObject, u8 unk_18); void MoveCoords(u8 direction, s16 *x, s16 *y); @@ -54,17 +59,15 @@ u8 sub_805CCAC(s16 a0, s16 a1, s16 a2, s16 a3); u8 sub_805CCE8(s16 a0, s16 a1, s16 a2, s16 a3); u8 sub_805CD24(s16 a0, s16 a1, s16 a2, s16 a3); -u8 sub_805F3EC(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); -u8 sub_805F3F0(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); -u8 sub_805F438(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); -u8 sub_805F4F0(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); -u8 sub_805F5A8(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); -u8 sub_805F660(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); -u8 cph_IM_DIFFERENT(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); -u8 sub_805F760(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); -u8 oac_hopping(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); -u8 sub_805F3EC(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); -u8 sub_805F3EC(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)); +u8 sub_805F3EC(struct MapObject *, struct Sprite *, u8, bool8(u8)); +u8 sub_805F3F0(struct MapObject *, struct Sprite *, u8, bool8(u8)); +u8 sub_805F438(struct MapObject *, struct Sprite *, u8, bool8(u8)); +u8 sub_805F4F0(struct MapObject *, struct Sprite *, u8, bool8(u8)); +u8 sub_805F5A8(struct MapObject *, struct Sprite *, u8, bool8(u8)); +u8 sub_805F660(struct MapObject *, struct Sprite *, u8, bool8(u8)); +u8 cph_IM_DIFFERENT(struct MapObject *, struct Sprite *, u8, bool8(u8)); +u8 sub_805F760(struct MapObject *, struct Sprite *, u8, bool8(u8)); +u8 oac_hopping(struct MapObject *, struct Sprite *, u8, bool8(u8)); extern struct CameraSomething gUnknown_03004880; extern u16 gUnknown_03004898; @@ -318,7 +321,7 @@ u8 get_go_fast_image_anim_num(u8); u8 get_go_faster_image_anim_num(u8); u8 sub_805FD78(u8); -int state_to_direction(u8, u8, u8); +u32 state_to_direction(u8, u32, u32); void sub_805AA98(); void sub_805AAB0(void); @@ -334,7 +337,7 @@ void RemoveFieldObjectInternal(struct MapObject *); u8 SpawnSpecialFieldObject(struct MapObjectTemplate *); u8 show_sprite(u8, u8, u8); void MakeObjectTemplateFromFieldObjectTemplate(struct MapObjectTemplate *mapObjTemplate, struct SpriteTemplate *sprTemplate, const struct SubspriteTable **subspriteTables); -u8 AddPseudoFieldObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 c, s16 d, u8 subpriority); +u8 AddPseudoFieldObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority); u8 sub_805B410(u8, u8, s16, s16, u8, u8); void sub_805B55C(s16 a, s16 b); void sub_805B710(u16 i, u16 i1); @@ -344,7 +347,7 @@ void FieldObjectTurnByLocalIdAndMap(u8, u8, u8, u8); const struct MapObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8); void FieldObjectHandleDynamicGraphicsId(struct MapObject *); void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8); -void FieldObjectGetLocalIdAndMap(struct MapObject *, u8 *, u8 *, u8 *); +void FieldObjectGetLocalIdAndMap(struct MapObject *, void *, void *, void *); void sub_805BCC0(s16 x, s16 y); void sub_805BCF0(u8, u8, u8, u8); void sub_805BD48(u8, u8, u8); @@ -379,14 +382,14 @@ u8 sub_805FDF8(u8); u8 sub_805FE08(u8); void npc_set_running_behaviour_etc(struct MapObject *, u8); u8 npc_running_behaviour_by_direction(u8); -u8 npc_block_way(struct MapObject *, s16, s16, u8); +u8 npc_block_way(struct MapObject *, s16, s16, u32); u8 sub_8060024(struct MapObject *, s16, s16, u8); -u8 sub_8060234(u8, u8, u8); +bool8 IsBerryTreeSparkling(u8, u8, u8); void sub_8060288(u8, u8, u8); void sub_8060388(s16, s16, s16 *, s16 *); void sub_80603CC(s16 x, s16 y, s16 *pInt, s16 *pInt1); void GetFieldObjectMovingCameraOffset(s16 *, s16 *); -void FieldObjectMoveDestCoords(struct MapObject *pObject, u8 unk_19, s16 *pInt, s16 *pInt1); +void FieldObjectMoveDestCoords(struct MapObject *pObject, u32 unk_19, s16 *pInt, s16 *pInt1); bool8 FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(struct MapObject *); bool8 FieldObjectIsSpecialAnimActive(struct MapObject *); bool8 FieldObjectSetSpecialAnim(struct MapObject *, u8); @@ -396,21 +399,23 @@ void FieldObjectClearAnim(struct MapObject *); bool8 FieldObjectCheckIfSpecialAnimFinishedOrInactive(struct MapObject *); u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *); u8 FieldObjectGetSpecialAnim(struct MapObject *); -u8 GetFaceDirectionAnimId(u8); -u8 GetSimpleGoAnimId(u8); -u8 GetGoSpeed0AnimId(u8 a); -u8 sub_8060744(u8 a); -u8 d2s_08064034(u8 a); -u8 sub_806079C(u8 a); -u8 sub_80607F4(u8 a); -u8 GetJumpLedgeAnimId(u8 a); -u8 sub_806084C(u8); -u8 sub_8060878(u8); -u8 sub_80608D0(u8); -u8 GetStepInPlaceDelay32AnimId(u8 a); -u8 GetStepInPlaceDelay16AnimId(u8); -u8 GetStepInPlaceDelay8AnimId(u8 a); -u8 GetStepInPlaceDelay4AnimId(u8 a); +u8 GetFaceDirectionAnimId(u32); +u8 GetSimpleGoAnimId(u32); +u8 GetGoSpeed0AnimId(u32); +u8 sub_8060744(u32); +u8 d2s_08064034(u32); +u8 sub_806079C(u32); +u8 sub_80607C8(u32); +u8 sub_80607F4(u32); +u8 GetJumpLedgeAnimId(u32); +u8 sub_806084C(u32); +u8 sub_8060878(u32); +u8 sub_80608A4(u32); +u8 sub_80608D0(u32); +u8 GetStepInPlaceDelay32AnimId(u32); +u8 GetStepInPlaceDelay16AnimId(u32); +u8 GetStepInPlaceDelay8AnimId(u32); +u8 GetStepInPlaceDelay4AnimId(u32); u8 FieldObjectFaceOppositeDirection(struct MapObject *, u8); u8 sub_80609D8(u8); u8 sub_8060A04(u8); @@ -427,5 +432,9 @@ void sub_80634D0(struct MapObject *, struct Sprite *); u8 SpawnSpecialFieldObjectParametrized(u8, u8, u8, s16, s16, u8); void CameraObjectSetFollowedObjectId(u8); u8 sub_805ADDC(u8); +void sub_8060320(u32, s16 *, s16 *, s16, s16); +u8 obj_unfreeze(struct Sprite *, s16, s16, u8); +u16 npc_paltag_by_palslot(u8); +void sub_8060470(s16 *, s16 *, s16, s16); #endif // GUARD_FIELD_MAP_OBJ_H diff --git a/include/field_map_obj_helpers.h b/include/field_map_obj_helpers.h index fd29a9a7f..f760bf153 100644 --- a/include/field_map_obj_helpers.h +++ b/include/field_map_obj_helpers.h @@ -18,4 +18,6 @@ void DoShadowFieldEffect(struct MapObject *mapObject); u8 sub_8064704(struct Sprite *); u8 sub_806478C(struct Sprite *); void obj_anim_image_set_and_seek(struct Sprite *sprite, u8 a2, u8 a3); +void DoRippleFieldEffect(struct MapObject *mapObj, struct Sprite *sprite); + #endif diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index 86b1af3fb..1b25aad24 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -19,7 +19,7 @@ u8 ForcedMovement_SlideSouth(void); u8 ForcedMovement_SlideNorth(void); u8 ForcedMovement_SlideWest(void); u8 ForcedMovement_SlideEast(void); -u8 sub_8058C04(void); +u8 ForcedMovement_MatJump(void); u8 sub_8058C10(void); u8 ForcedMovement_MuddySlope(void); void PlayerNotOnBikeNotMoving(u8 direction, u16 heldKeys); @@ -37,23 +37,23 @@ void sub_80591F4(struct MapObject *a); void sub_8059204(void); u8 player_get_x22(void); void PlayerSetAnimId(u8 a, u8 b); -void PlayerGoSpeed0(u8 a); -void sub_80593C4(u8 a); +void PlayerGoSpeed1(u8 a); +void PlayerGoSpeed2(u8 a); void npc_use_some_d2s(u8 a); -void sub_80593F4(u8 a); +void PlayerGoSpeed4(u8 a); void sub_805940C(u8 a); void PlayerOnBikeCollide(u8); void PlayerFaceDirection(u8 a); void PlayerTurnInPlace(u8 a); void PlayerJumpLedge(u8 a); void sub_80594C0(void); -void sub_8059504(u8 a); +void PlayerIdleWheelie(u8 a); void PlayerStartWheelie(u8 a); -void sub_8059534(u8 a); -void sub_805954C(u8 a); -void sub_8059570(u8 a); -void sub_8059594(u8 a); -void sub_80595B8(u8 a); +void PlayerEndWheelie(u8 a); +void PlayerStandingHoppingWheelie(u8 a); +void PlayerMovingHoppingWheelie(u8 a); +void PlayerLedgeHoppingWheelie(u8 a); +void PlayerAcroTurnJump(u8 a); void sub_80595DC(u8 a); void sub_8059600(u8 a); void sub_8059618(u8 a); @@ -64,7 +64,7 @@ u8 player_get_direction_lower_nybble(void); u8 player_get_direction_upper_nybble(void); u8 PlayerGetZCoord(void); u8 TestPlayerAvatarFlags(u8); -// sub_80597D0 +u8 sub_80597D0(void); u8 GetPlayerAvatarObjectId(void); void sub_80597E8(void); void sub_80597F4(void); @@ -83,11 +83,11 @@ void sub_8059B88(u8); void sub_8059BF4(void); // sub_8059C3C void sub_8059C94(u8); -// sub_8059D08 +void sub_8059D08(u8); u8 sub_8059E84(struct Task *task, struct MapObject *b, struct MapObject *c); u8 sub_8059EA4(struct Task *task, struct MapObject *b, struct MapObject *c); u8 sub_8059F40(struct Task *task, struct MapObject *b, struct MapObject *c); -u8 sub_805A000(struct Task *task, struct MapObject *mapObject); +u8 PlayerAvatar_DoSecretBaseMatJump(struct Task *task, struct MapObject *mapObject); u8 sub_805A0D8(struct Task *task, struct MapObject *mapObject); u8 sub_805A100(struct Task *task, struct MapObject *mapObject); u8 sub_805A178(struct Task *task, struct MapObject *mapObject); diff --git a/include/field_poison.h b/include/field_poison.h index 8e8e2746f..df0b31434 100644 --- a/include/field_poison.h +++ b/include/field_poison.h @@ -1,6 +1,6 @@ #ifndef GUARD_FIELD_POISON_H #define GUARD_FIELD_POISON_H -s32 overworld_poison(void); +s32 DoPoisonFieldEffect(void); #endif // GUARD_FIELD_POISON_H diff --git a/include/field_special_scene.h b/include/field_special_scene.h index d674f09df..240e9ecb6 100644 --- a/include/field_special_scene.h +++ b/include/field_special_scene.h @@ -1,8 +1,8 @@ #ifndef GUARD_FIELD_SPECIAL_SCENE_H #define GUARD_FIELD_SPECIAL_SCENE_H -s32 GetTruckCameraBobbingY(int a1); -s32 GetTruckBoxMovement(int a1); +s16 GetTruckCameraBobbingY(int a1); +s16 GetTruckBoxMovement(int a1); void Task_Truck1(u8 taskId); void Task_Truck2(u8 taskId); void Task_Truck3(u8 taskId); diff --git a/include/field_specials.h b/include/field_specials.h index d61aa3b20..52325879c 100644 --- a/include/field_specials.h +++ b/include/field_specials.h @@ -25,5 +25,6 @@ void ScriptShowElevatorMenu(void); void SetShoalItemFlag(u16); u8 GetLeadMonIndex(void); void ResetFanClub(void); +u8 sub_810FB10(u8 a0); #endif // GUARD_FIELD_SPECIALS_H diff --git a/include/field_weather.h b/include/field_weather.h index 409f76028..267650a2a 100644 --- a/include/field_weather.h +++ b/include/field_weather.h @@ -1,15 +1,130 @@ #ifndef GUARD_WEATHER_H #define GUARD_WEATHER_H -void sub_807C828(void); +struct Sprite; + +struct Weather +{ + union + { + struct + { + struct Sprite *rainSprites[24]; + struct Sprite *snowflakeSprites[101]; + struct Sprite *cloudSprites[3]; + } s1; + struct + { + u8 filler0[0xA0]; + struct Sprite *fog1Sprites[20]; + struct Sprite *ashSprites[20]; + struct Sprite *fog2Sprites[20]; + struct Sprite *sandstormSprites1[20]; + struct Sprite *sandstormSprites2[5]; + } s2; + } sprites; + u8 unknown_200[2][32]; + u8 filler_240[0x460-0x240]; + u8 unk460[2][32]; + u8 filler4A0[0x6B6-0x4A0]; + s8 unknown_6B6; + u8 filler_6B7[0xC0-0xB7]; + s8 unknown_6C0; + s8 unknown_6C1; + u8 unknown_6C2; + u8 unknown_6C3; + u16 unknown_6C4; + u8 unknown_6C6; + u8 unknown_6C7; + u8 unknown_6C8; + u8 unknown_6C9; + u8 unknown_6CA; + u8 unknown_6CB; + u16 initStep; + u16 finishStep; + u8 currWeather; + u8 nextWeather; + u8 weatherGfxLoaded; + u8 unknown_6D3; + u8 unknown_6D4; + u8 unknown_6D5; + u16 unknown_6D6; + u8 unknown_6D8; + u8 unknown_6D9; + u8 rainSpriteCount; + u8 unknown_6DB; + u8 unknown_6DC; + u8 rainStrength; + /*0x6DE*/ u8 cloudSpritesCreated; + u8 filler_6DF[1]; + u16 unknown_6E0; + u16 unknown_6E2; + u8 snowflakeSpriteCount; + u8 unknown_6E5; + u16 unknown_6E6; + u16 thunderCounter; + u8 unknown_6EA; + u8 unknown_6EB; + u8 unknown_6EC; + u8 unknown_6ED; + u16 fog1ScrollPosX; + u16 unknown_6F0; + u16 unknown_6F2; + u8 unknown_6F4[6]; + u8 unknown_6FA; + u8 fog1SpritesCreated; + u16 unknown_6FC; + u16 unknown_6FE; + u8 ashSpritesCreated; + u8 filler_701[3]; + u32 unknown_704; + u32 unknown_708; + u8 filler_70C[2]; + u16 unknown_70E; + u16 unknown_710; + u16 unknown_712; + u16 unknown_714; + u8 sandstormSprites1Created; + u8 sandstormSprites2Created; + u16 unknown_718; + u16 unknown_71A; + u16 unknown_71C; + u16 unknown_71E; + u16 unknown_720; + u16 unknown_722; + u8 fog2SpritesCreated; + u8 filler_725[1]; + u16 unknown_726; + u16 unknown_728; + u16 unknown_72A; + u16 unknown_72C; + u8 unknown_72E; + u8 filler_72F; + u16 currBlendEVA; + u16 currBlendEVB; + u16 targetBlendEVA; + u16 targetBlendEVB; + u8 unknown_738; + u8 unknown_739; + u8 blendDelay; + u8 filler_73B[0x3C-0x3B]; + s16 unknown_73C; + s16 unknown_73E; + s16 unknown_740; + s16 unknown_742; + u8 filler_744[0xD-4]; + s8 unknown_74D; + u8 unknown_74E; +}; + +void StartWeather(void); void DoWeatherEffect(u8 effect); void sub_807C988(u8 effect); void sub_807C9B4(u8 effect); -void sub_807C9E4(u8); -void sub_807CA34(u8); +void Task_WeatherInit(u8); +void Task_WeatherMain(u8); void sub_807CAE8(void); void nullsub_38(void); -u32 sub_807CB0C(void); void sub_807CB10(void); void sub_807CC24(void); void sub_807CCAC(void); @@ -20,8 +135,9 @@ void nullsub_39(void); // ASM void sub_807CEBC(u8, u8, s8); -void sub_807D1BC(u8, u8, u8, u8, u16); -void sub_807D304(int, u8, u16); +//void sub_807D1BC(u8, u8, u8, u8, u16); +void sub_807D1BC(u8 a, u8 a2, s8 c, u8 d, u16 e); +void sub_807D304(s8 a, u8 arg2, u16 c); void sub_807D424(u8, u16); // ... void fade_screen(u8, u8); @@ -29,7 +145,7 @@ void fade_screen(u8, u8); void sub_807D78C(u8 tag); void sub_807D874(u8); // ... -void sub_807DB64(u8, u8); +void Weather_SetBlendCoeffs(u8, u8); // ... void sub_807DE68(void); // ... @@ -37,14 +153,18 @@ void PlayRainSoundEffect(void); // ... void SetSav1Weather(u32); u8 GetSav1Weather(void); -void sub_80806E4(void); +void SetSav1WeatherFromCurrMapHeader(void); // ... void DoCurrentWeather(void); void sub_8080750(); -u8 sub_807D770(void); +bool8 sub_807D770(void); bool8 sub_807DDFC(void); void SetWeather(u32); void UpdateWeatherPerDay(u16); +extern struct Weather gWeather; + +extern struct Weather *const gWeatherPtr; + #endif // GUARD_WEATHER_H diff --git a/include/flags.h b/include/flags.h deleted file mode 100644 index a60de6ea0..000000000 --- a/include/flags.h +++ /dev/null @@ -1,91 +0,0 @@ -#ifndef GUARD_FLAGS_H -#define GUARD_FLAGS_H - -#define TRAINER_FLAG_START 0x500 - -// SYSTEM FLAGS - -#define SYS_POKEMON_GET 0x800 -#define SYS_POKEDEX_GET 0x801 -#define SYS_POKENAV_GET 0x802 -#define SYS_GAME_CLEAR 0x804 -#define SYS_CHAT_USED 0x805 -#define SYS_HIPSTER_MEET 0x806 - -// badges -#define BADGE01_GET 0x807 -#define BADGE02_GET 0x808 -#define BADGE03_GET 0x809 -#define BADGE04_GET 0x80A -#define BADGE05_GET 0x80B -#define BADGE06_GET 0x80C -#define BADGE07_GET 0x80D -#define BADGE08_GET 0x80E - -// cities and towns -#define FLAG_VISITED_LITTLEROOT_TOWN 0x80F -#define FLAG_VISITED_OLDALE_TOWN 0x810 -#define FLAG_VISITED_DEWFORD_TOWN 0x811 -#define FLAG_VISITED_LAVARIDGE_TOWN 0x812 -#define FLAG_VISITED_FALLARBOR_TOWN 0x813 -#define FLAG_VISITED_VERDANTURF_TOWN 0x814 -#define FLAG_VISITED_PACIFIDLOG_TOWN 0x815 -#define FLAG_VISITED_PETALBURG_CITY 0x816 -#define FLAG_VISITED_SLATEPORT_CITY 0x817 -#define FLAG_VISITED_MAUVILLE_CITY 0x818 -#define FLAG_VISITED_RUSTBORO_CITY 0x819 -#define FLAG_VISITED_FORTREE_CITY 0x81A -#define FLAG_VISITED_LILYCOVE_CITY 0x81B -#define FLAG_VISITED_MOSSDEEP_CITY 0x81C -#define FLAG_VISITED_SOOTOPOLIS_CITY 0x81D -#define FLAG_VISITED_EVER_GRANDE_CITY 0x81E - -#define SYS_USE_FLASH 0x828 -#define SYS_USE_STRENGTH 0x829 -#define SYS_WEATHER_CTRL 0x82A -#define SYS_CYCLING_ROAD 0x82B -#define SYS_SAFARI_MODE 0x82C -#define SYS_CRUISE_MODE 0x82D - -#define SYS_TV_HOME 0x830 -#define SYS_TV_WATCH 0x831 -#define SYS_TV_START 0x832 -#define SYS_POPWORD_INPUT 0x833 -#define SYS_MIX_RECORD 0x834 -#define SYS_CLOCK_SET 0x835 -#define SYS_NATIONAL_DEX 0x836 -#define SYS_CAVE_SHIP 0x837 -#define SYS_CAVE_WONDER 0x838 -#define SYS_CAVE_BATTLE 0x839 -#define SYS_SHOAL_TIDE 0x83A -#define SYS_RIBBON_GET 0x83B - -#define FLAG_UNLOCK_BATTLE_TOWER 0x848 -#define FLAG_UNLOCK_SOUTHERN_ISLAND 0x849 - -#define SYS_PC_LANETTE 0x84B -#define SYS_EXDATA_ENABLE 0x84C -#define SYS_ENC_UP_ITEM 0x84D -#define SYS_ENC_DOWN_ITEM 0x84E -#define SYS_BRAILLE_DIG 0x84F -#define SYS_BRAILLE_STRENGTH 0x850 -#define SYS_BRAILLE_WAIT 0x851 -#define SYS_BRAILLE_FLY 0x852 -#define SYS_HAS_EON_TICKET 0x853 - -#define SYS_POKEMON_LEAGUE_FLY 0x854 - -#define SYS_TV_LATI 0x85D - -#define SYS_SHOAL_ITEM 0x85F -#define SYS_B_DASH 0x860 // got Running Shoes -#define SYS_CTRL_OBJ_DELETE 0x861 -#define SYS_RESET_RTC_ENABLE 0x862 - -// SPECIAL FLAGS (unknown purpose) - -#define SPECIAL_FLAG_1 0x4001 - -#endif // GUARD_FLAGS_H - -bool8 FlagGet(u16 flag); diff --git a/include/fldeff_80C5CD4.h b/include/fldeff_80C5CD4.h deleted file mode 100644 index 413e8ad96..000000000 --- a/include/fldeff_80C5CD4.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef GUARD_FLDEFF_80C5CD4_H -#define GUARD_FLDEFF_80C5CD4_H - -void DoFieldPoisonEffect(void); -bool32 FieldPoisonEffectIsRunning(void); -void CreateRecordMixingSprite(void); -void DestroyRecordMixingSprite(void); - -#endif // GUARD_FLDEFF_80C5CD4_H diff --git a/include/fldeff_decoration.h b/include/fldeff_decoration.h new file mode 100644 index 000000000..50b075b89 --- /dev/null +++ b/include/fldeff_decoration.h @@ -0,0 +1,9 @@ +#ifndef GUARD_FLDEFF_DECORATION_H +#define GUARD_FLDEFF_DECORATION_H + +void sub_80C68A4(s16 metatileId, s16 x, s16 y); +void sub_80C6A54(s16 x, s16 y); +void DoDecorationSoundEffect(s16 metatileId); +void DoYellowCave4Sparkle(void); + +#endif // GUARD_FLDEFF_DECORATION_H diff --git a/include/fldeff_poison.h b/include/fldeff_poison.h new file mode 100644 index 000000000..fe3308ba9 --- /dev/null +++ b/include/fldeff_poison.h @@ -0,0 +1,7 @@ +#ifndef GUARD_FLDEFF_POISON_H +#define GUARD_FLDEFF_POISON_H + +void DoFieldPoisonEffect(void); +bool32 FieldPoisonEffectIsRunning(void); + +#endif // GUARD_FLDEFF_POISON_H diff --git a/include/fldeff_recordmixing.h b/include/fldeff_recordmixing.h new file mode 100644 index 000000000..550705eb6 --- /dev/null +++ b/include/fldeff_recordmixing.h @@ -0,0 +1,7 @@ +#ifndef GUARD_FLDEFF_RECORDMIXING_H +#define GUARD_FLDEFF_RECORDMIXING_H + +u8 CreateRecordMixingSprite(void); +void DestroyRecordMixingSprite(void); + +#endif // GUARD_FLDEFF_RECORDMIXING_H diff --git a/include/gba/defines.h b/include/gba/defines.h index 0f7f06755..7fd429d9e 100644 --- a/include/gba/defines.h +++ b/include/gba/defines.h @@ -29,15 +29,16 @@ #define BG_VRAM VRAM #define BG_VRAM_SIZE 0x10000 -#define BG_CHAR_ADDR(n) (BG_VRAM + (0x4000 * (n))) -#define BG_SCREEN_ADDR(n) (BG_VRAM + (0x800 * (n))) +#define BG_CHAR_ADDR(n) (void *)(BG_VRAM + (0x4000 * (n))) +#define BG_SCREEN_ADDR(n) (void *)(BG_VRAM + (0x800 * (n))) +#define BG_TILE_ADDR(n) (void *)(BG_VRAM + (0x80 * (n))) // text-mode BG -#define OBJ_VRAM0 (VRAM + 0x10000) +#define OBJ_VRAM0 (void *)(VRAM + 0x10000) #define OBJ_VRAM0_SIZE 0x8000 // bitmap-mode BG -#define OBJ_VRAM1 (VRAM + 0x14000) +#define OBJ_VRAM1 (void *)(VRAM + 0x14000) #define OBJ_VRAM1_SIZE 0x4000 #define OAM 0x7000000 diff --git a/include/gba/flash_internal.h b/include/gba/flash_internal.h index cbcfb5466..39e14ef73 100644 --- a/include/gba/flash_internal.h +++ b/include/gba/flash_internal.h @@ -35,7 +35,7 @@ struct FlashType { struct FlashSetupInfo { u16 (*programFlashByte)(u16, u32, u8); - u16 (*programFlashSector)(u16, u8 *); + u16 (*programFlashSector)(u16, void *); u16 (*eraseFlashChip)(void); u16 (*eraseFlashSector)(u16); u16 (*WaitForFlashWrite)(u8, u8 *, u8); @@ -46,7 +46,7 @@ struct FlashSetupInfo extern u16 gFlashNumRemainingBytes; extern u16 (*ProgramFlashByte)(u16, u32, u8); -extern u16 (*ProgramFlashSector)(u16, u8 *); +extern u16 (*ProgramFlashSector)(u16, void *); extern u16 (*EraseFlashChip)(void); extern u16 (*EraseFlashSector)(u16); extern u16 (*WaitForFlashWrite)(u8, u8 *, u8); @@ -67,15 +67,15 @@ void SetReadFlash1(u16 *dest); void StopFlashTimer(void); u16 SetFlashTimerIntr(u8 timerNum, void (**intrFunc)(void)); u32 ProgramFlashSectorAndVerify(u16 sectorNum, u8 *src); -void ReadFlash(u16 sectorNum, u32 offset, u8 *dest, u32 size); -u32 ProgramFlashSectorAndVerifyNBytes(u16 sectorNum, u8 *src, u32 n); +void ReadFlash(u16 sectorNum, u32 offset, void *dest, u32 size); +u32 ProgramFlashSectorAndVerifyNBytes(u16 sectorNum, void *dataSrc, u32 n); u16 WaitForFlashWrite_Common(u8 phase, u8 *addr, u8 lastData); u16 EraseFlashChip_MX(void); u16 EraseFlashSector_MX(u16 sectorNum); u16 ProgramFlashByte_MX(u16 sectorNum, u32 offset, u8 data); -u16 ProgramFlashSector_MX(u16 sectorNum, u8 *src); +u16 ProgramFlashSector_MX(u16 sectorNum, void *src); // agb_flash_1m u16 IdentifyFlash(void); diff --git a/include/gba/io_reg.h b/include/gba/io_reg.h index d483d4ddc..6dbe5e8ed 100644 --- a/include/gba/io_reg.h +++ b/include/gba/io_reg.h @@ -539,7 +539,28 @@ #define BGCNT_AFF1024x1024 0xC000 // BLDCNT - +// Bits 0-5 select layers for the 1st target +#define BLDCNT_TGT1_BG0 (1 << 0) +#define BLDCNT_TGT1_BG1 (1 << 1) +#define BLDCNT_TGT1_BG2 (1 << 2) +#define BLDCNT_TGT1_BG3 (1 << 3) +#define BLDCNT_TGT1_OBJ (1 << 4) +#define BLDCNT_TGT1_BD (1 << 5) +// Bits 6-7 select the special effect +#define BLDCNT_EFFECT_NONE (0 << 6) // no special effect +#define BLDCNT_EFFECT_BLEND (1 << 6) // 1st+2nd targets mixed (controlled by BLDALPHA) +#define BLDCNT_EFFECT_LIGHTEN (2 << 6) // 1st target becomes whiter (controlled by BLDY) +#define BLDCNT_EFFECT_DARKEN (3 << 6) // 1st target becomes blacker (controlled by BLDY) +// Bits 8-13 select layers for the 2nd target +#define BLDCNT_TGT2_BG0 (1 << 8) +#define BLDCNT_TGT2_BG1 (1 << 9) +#define BLDCNT_TGT2_BG2 (1 << 10) +#define BLDCNT_TGT2_BG3 (1 << 11) +#define BLDCNT_TGT2_OBJ (1 << 12) +#define BLDCNT_TGT2_BD (1 << 13) + +// BLDALPHA +#define BLDALPHA_BLEND(target1, target2) (((target2) << 8) | (target1)) // SOUNDCNT_H #define SOUND_CGB_MIX_QUARTER 0x0000 diff --git a/include/gba/m4a_internal.h b/include/gba/m4a_internal.h index 572b77711..ff92fcc40 100644 --- a/include/gba/m4a_internal.h +++ b/include/gba/m4a_internal.h @@ -404,10 +404,6 @@ void SampleFreqSet(u32 freq); void m4aSoundVSyncOn(void); void m4aSoundVSyncOff(void); -void m4aMPlayTempoControl(struct MusicPlayerInfo *mplayInfo, u16 tempo); -void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 volume); -void m4aMPlayPitchControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 pitch); -void m4aMPlayPanpotControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s8 pan); void ClearModM(struct MusicPlayerTrack *track); void m4aMPlayModDepthSet(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u8 modDepth); void m4aMPlayLFOSpeedSet(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u8 lfoSpeed); diff --git a/include/gba/macro.h b/include/gba/macro.h index 230fb4383..dcad009e1 100644 --- a/include/gba/macro.h +++ b/include/gba/macro.h @@ -84,4 +84,87 @@ dmaRegs[5]; \ } +#define DmaCopyLarge(dmaNum, src, dest, size, block, bit) \ +{ \ + const void *_src = src; \ + void *_dest = (void *)(dest); \ + u32 _size = size; \ + while (1) \ + { \ + DmaCopy##bit(dmaNum, _src, _dest, (block)); \ + _src += (block); \ + _dest += (block); \ + _size -= (block); \ + if (_size <= (block)) \ + { \ + DmaCopy##bit(dmaNum, _src, _dest, _size); \ + break; \ + } \ + } \ +} + +#define DmaClearLarge(dmaNum, dest, size, block, bit) \ +{ \ + const void *_dest = dest; \ + u32 _size = size; \ + while (1) \ + { \ + DmaFill##bit(dmaNum, 0, _dest, (block)); \ + _dest += (block); \ + _size -= (block); \ + if (_size <= (block)) \ + { \ + DmaFill##bit(dmaNum, 0, _dest, _size); \ + break; \ + } \ + } \ +} + +#define DmaCopyLarge16(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 16) +#define DmaCopyLarge32(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 32) + +#define DmaClearLarge16(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 16) +#define DmaClearLarge32(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 32) + +#define DmaCopyDefvars(dmaNum, src, dest, size, bit) \ +{ \ + const void *_src = src; \ + void *_dest = (void *)(dest); \ + u32 _size = size; \ + DmaCopy##bit(dmaNum, _src, _dest, _size); \ +} + +#define DmaCopy16Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 16) +#define DmaCopy32Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 32) + +#define DmaFillLarge(dmaNum, fillval, dest, size, block, bit) \ +{ \ + void *_dest = (void *)(dest); \ + u32 _size = (u32)(size); \ + while (1) \ + { \ + DmaFill##bit(dmaNum, fillval, _dest, (block)); \ + _dest += (block); \ + _size -= (block); \ + if (_size <= (block)) \ + { \ + DmaFill##bit(dmaNum, fillval, _dest, _size); \ + break; \ + } \ + } \ +} + +#define DmaFill16Large(dmaNum, fillval, dest, size, block) DmaFillLarge(dmaNum, fillval, dest, size, block, 16) +#define DmaFill32Large(dmaNum, fillval, dest, size, block) DmaFillLarge(dmaNum, fillval, dest, size, block, 32) + +#define DmaFillDefvars(dmaNum, fillval, dest, size, bit) \ +{ \ + void *_dest = (void *)(dest); \ + u32 _size = (u##bit)(size); \ + DmaFill##bit(dmaNum, fillval, _dest, _size); \ +} + +#define DmaFill16Defvars(dmaNum, fillval, dest, size) DmaFillDefvars(dmaNum, fillval, dest, size, 16) +#define DmaFill32Defvars(dmaNum, fillval, dest, size) DmaFillDefvars(dmaNum, fillval, dest, size, 32) + #endif // GUARD_GBA_MACRO_H diff --git a/include/gba/types.h b/include/gba/types.h index 480619d21..33ae7df9a 100644 --- a/include/gba/types.h +++ b/include/gba/types.h @@ -28,6 +28,17 @@ typedef u8 bool8; typedef u16 bool16; typedef u32 bool32; +struct BgCnt +{ + u16 priority:2; + u16 charBaseBlock:2; + u16 dummy:4; + u16 screenBaseBlock:5; + u16 areaOverflowMode:1; + u16 screenSize:2; +}; +typedef volatile struct BgCnt vBgCnt; + struct PlttData { u16 r:5; // red diff --git a/include/global.berry.h b/include/global.berry.h index 6632e55e2..21a0dd500 100644 --- a/include/global.berry.h +++ b/include/global.berry.h @@ -3,33 +3,33 @@ struct Berry { - const u8 name[7]; - u8 firmness; - u16 size; - u8 maxYield; - u8 minYield; - const u8 *description1; - const u8 *description2; - u8 stageDuration; - u8 spicy; - u8 dry; - u8 sweet; - u8 bitter; - u8 sour; - u8 smoothness; + /*0x00*/ const u8 name[7]; + /*0x07*/ u8 firmness; + /*0x08*/ u16 size; + /*0x0A*/ u8 maxYield; + /*0x0B*/ u8 minYield; + /*0x0C*/ const u8 *description1; + /*0x10*/ const u8 *description2; + /*0x14*/ u8 stageDuration; + /*0x15*/ u8 spicy; + /*0x16*/ u8 dry; + /*0x17*/ u8 sweet; + /*0x18*/ u8 bitter; + /*0x19*/ u8 sour; + /*0x1A*/ u8 smoothness; }; struct EnigmaBerry { - struct Berry berry; - u8 pic[(6 * 6) * TILE_SIZE_4BPP]; - u16 palette[16]; - u8 description1[45]; - u8 description2[45]; - u8 itemEffect[18]; - u8 holdEffect; - u8 holdEffectParam; - u32 checksum; + /*0x000*/ struct Berry berry; + /*0x01B*/ u8 pic[(6 * 6) * TILE_SIZE_4BPP]; + /*0x49C*/ u16 palette[16]; + /*0x4BC*/ u8 description1[45]; + /*0x4E9*/ u8 description2[45]; + /*0x516*/ u8 itemEffect[18]; + /*0x528*/ u8 holdEffect; + /*0x529*/ u8 holdEffectParam; + /*0x52C*/ u32 checksum; }; struct BattleEnigmaBerry @@ -42,16 +42,21 @@ struct BattleEnigmaBerry struct BerryTree { - u8 berry; - u8 stage:7; - u8 growthSparkle:1; - u16 minutesUntilNextStage; - u8 berryYield; - u8 regrowthCount:4; - u8 watered1:1; - u8 watered2:1; - u8 watered3:1; - u8 watered4:1; + /*0x00*/ u8 berry; + /*0x01*/ u8 stage:7; + /* + A berry sparkle is a state that a berry tree + can be in after growing within the player's + viewport. + */ + /*0x01*/ bool8 growthSparkle:1; + /*0x02*/ u16 minutesUntilNextStage; + /*0x04*/ u8 berryYield; + /*0x05*/ u8 regrowthCount:4; + /*0x05*/ u8 watered1:1; + /*0x05*/ u8 watered2:1; + /*0x05*/ u8 watered3:1; + /*0x05*/ u8 watered4:1; }; #endif // GUARD_GLOBAL_BERRY_H diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index 4029132e8..a828cf131 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -14,16 +14,16 @@ enum // map types enum { - MAP_TYPE_0, - MAP_TYPE_TOWN, - MAP_TYPE_CITY, - MAP_TYPE_ROUTE, - MAP_TYPE_UNDERGROUND, - MAP_TYPE_UNDERWATER, - MAP_TYPE_6, - MAP_TYPE_7, - MAP_TYPE_INDOOR, - MAP_TYPE_SECRET_BASE + MAP_TYPE_0, // 0 + MAP_TYPE_TOWN, // 1 + MAP_TYPE_CITY, // 2 + MAP_TYPE_ROUTE, // 3 + MAP_TYPE_UNDERGROUND, // 4 + MAP_TYPE_UNDERWATER, // 5 + MAP_TYPE_6, // 6 + MAP_TYPE_7, // 7 + MAP_TYPE_INDOOR, // 8 + MAP_TYPE_SECRET_BASE // 9 }; // map battle scenes @@ -111,17 +111,17 @@ struct CoordEvent struct BgEvent { - u16 x, y; - u8 unk4; - u8 kind; - // 0x2 padding for the union beginning. - union { // carried over from diego's FR/LG work, seems to be the same struct + /*0x00*/u16 x; + /*0x02*/u16 y; + /*0x04*/u8 unk4; + /*0x05*/u8 kind; + /*0x08*/union { // carried over from diego's FR/LG work, seems to be the same struct // in gen 3, "kind" (0x3 in BgEvent struct) determines the method to read the union. u8 *script; - // hidden item type probably + // hidden item type struct { - u8 filler6[0x2]; + u16 item; u16 hiddenItemId; // flag offset to determine flag lookup } hiddenItem; @@ -224,7 +224,14 @@ struct MapObject /*0x14*/ struct Coords16 coords3; /*0x18*/ u8 mapobj_unk_18:4; //current direction? /*0x18*/ u8 placeholder18:4; - /*0x19*/ u8 mapobj_unk_19; + /*0x19*/ union __attribute__((packed)) { + u8 as_byte; + struct __attribute__((packed)) { + u8 x:4; + u8 y:4; + } __attribute((aligned (1))) as_nybbles; + } __attribute((aligned (1))) range; + // /*0x19*/ u8 mapobj_unk_19; /*0x1A*/ u8 mapobj_unk_1A; /*0x1B*/ u8 mapobj_unk_1B; /*0x1C*/ u8 mapobj_unk_1C; @@ -237,68 +244,6 @@ struct MapObject /*size = 0x24*/ }; -// THIS IS NEEDED TO MAKE TRAINER_SEE.C MATCH, PLEASE DO NOT REMOVE UNLESS YOU FIX CHECKPATHBETWEENTRAINERANDPLAYER -struct MapObject2 -{ - /*0x00*/ u32 active:1; - u32 mapobj_bit_1:1; - u32 mapobj_bit_2:1; - u32 mapobj_bit_3:1; - u32 mapobj_bit_4:1; - u32 mapobj_bit_5:1; - u32 mapobj_bit_6:1; - u32 mapobj_bit_7:1; - /*0x01*/ u32 mapobj_bit_8:1; - u32 mapobj_bit_9:1; - u32 mapobj_bit_10:1; - u32 mapobj_bit_11:1; - u32 mapobj_bit_12:1; - u32 mapobj_bit_13:1; - u32 mapobj_bit_14:1; - u32 mapobj_bit_15:1; - /*0x02*/ u32 mapobj_bit_16:1; - u32 mapobj_bit_17:1; - u32 mapobj_bit_18:1; - u32 mapobj_bit_19:1; - u32 mapobj_bit_20:1; - u32 mapobj_bit_21:1; - u32 mapobj_bit_22:1; - u32 mapobj_bit_23:1; - /*0x03*/ u32 mapobj_bit_24:1; - u32 mapobj_bit_25:1; - u32 mapobj_bit_26:1; - u32 mapobj_bit_27:1; - u32 mapobj_bit_28:1; - u32 mapobj_bit_29:1; - u32 mapobj_bit_30:1; - u32 mapobj_bit_31:1; - /*0x04*/ u8 spriteId; - /*0x05*/ u8 graphicsId; - /*0x06*/ u8 animPattern; - /*0x07*/ u8 trainerType; - /*0x08*/ u8 localId; - /*0x09*/ u8 mapNum; - /*0x0A*/ u8 mapGroup; - /*0x0B*/ u8 mapobj_unk_0B_0:4; - u8 elevation:4; - /*0x0C*/ struct Coords16 coords1; - /*0x10*/ struct Coords16 coords2; - /*0x14*/ struct Coords16 coords3; - /*0x18*/ u8 mapobj_unk_18:4; - /*0x18*/ u8 placeholder18:4; - /*0x19*/ u8 mapobj_unk_19:4; - /*0x19*/ u8 mapobj_unk_19b:4; - /*0x1A*/ u8 mapobj_unk_1A; - /*0x1B*/ u8 mapobj_unk_1B; - /*0x1C*/ u8 mapobj_unk_1C; - /*0x1D*/ u8 trainerRange_berryTreeId; - /*0x1E*/ u8 mapobj_unk_1E; - /*0x1F*/ u8 mapobj_unk_1F; - /*0x20*/ u8 mapobj_unk_20; - /*0x21*/ u8 mapobj_unk_21; - /*size = 0x24*/ -}; - struct MapObjectGraphicsInfo { /*0x00*/ u16 tileTag; @@ -353,25 +298,42 @@ enum COLLISION_LEDGE_JUMP = 6 }; +// player running states +enum +{ + NOT_MOVING, + TURN_DIRECTION, // not the same as turning! turns your avatar without moving. also known as a turn frame in some circles + MOVING, +}; + +// player tile transition states +enum +{ + T_NOT_MOVING, + T_TILE_TRANSITION, + T_TILE_CENTER, // player is on a frame in which they are centered on a tile during which the player either stops or keeps their momentum and keeps going, changing direction if necessary. +}; + struct PlayerAvatar /* 0x202E858 */ { /*0x00*/ u8 flags; - /*0x01*/ u8 bike; - /*0x02*/ u8 running2; - /*0x03*/ u8 running1; + /*0x01*/ u8 unk1; // used to be named bike, but its definitely not that. seems to be some transition flags + /*0x02*/ u8 runningState; // this is a static running state. 00 is not moving, 01 is turn direction, 02 is moving. + /*0x03*/ u8 tileTransitionState; // this is a transition running state: 00 is not moving, 01 is transition between tiles, 02 means you are on the frame in which you have centered on a tile but are about to keep moving, even if changing directions. 2 is also used for a ledge hop, since you are transitioning. /*0x04*/ u8 spriteId; /*0x05*/ u8 mapObjectId; - /*0x06*/ u8 unk6; + /*0x06*/ bool8 preventStep; /*0x07*/ u8 gender; - u8 acroBikeState; - u8 unk9; - u8 bikeFrameCounter; - u8 unkB; - u32 unkC; - u32 unk10; - u8 unk14[8]; - u8 unk1C[8]; - // TODO: rest of struct + /*0x08*/ u8 acroBikeState; // 00 is normal, 01 is turning, 02 is standing wheelie, 03 is hopping wheelie + /*0x09*/ u8 newDirBackup; // during bike movement, the new direction as opposed to player's direction is backed up here. + /*0x0A*/ u8 bikeFrameCounter; // on the mach bike, when this value is 1, the bike is moving but not accelerating yet for 1 tile. on the acro bike, this acts as a timer for acro bike. + /*0x0B*/ u8 bikeSpeed; + // acro bike only + /*0x0C*/ u32 directionHistory; // up/down/left/right history is stored in each nybble, but using the field directions and not the io inputs. + /*0x10*/ u32 abStartSelectHistory; // same as above but for A + B + start + select only + // these two are timer history arrays which [0] is the active timer for acro bike. every element is backed up to the next element upon update. + /*0x14*/ u8 dirTimerHistory[8]; + /*0x1C*/ u8 abStartSelectTimerHistory[8]; }; struct Camera diff --git a/include/global.h b/include/global.h index f076274cc..eea1574b7 100644 --- a/include/global.h +++ b/include/global.h @@ -5,7 +5,7 @@ #include "config.h" // IDE support -#ifdef __APPLE__ +#if defined(__APPLE__) || defined(__CYGWIN__) #define _(x) x #define __(x) x #define INCBIN_U8 {0} @@ -14,9 +14,9 @@ #define INCBIN_S8 {0} #define INCBIN_S16 {0} #define INCBIN_S32 {0} -void * memcpy (void *, const void *, size_t); -void * memset (void *, int, size_t); -int strcmp (const char *, const char *); +void *memcpy (void *, const void *, size_t); +void *memset (void *, int, size_t); +int strcmp (const char *, const char *); #endif // Prevent cross-jump optimization. @@ -27,21 +27,14 @@ int strcmp (const char *, const char *); #define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided\n") -#define nonmatching(fndec, x) {\ -__attribute__((naked))\ -fndec\ -{\ - asm_unified(x);\ -}\ -} - #define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0])) +#define POKEMON_SLOTS_NUMBER 412 #define POKEMON_NAME_LENGTH 10 #define OT_NAME_LENGTH 7 -#define min(a, b) (a >= b ? a : b) -#define max(a, b) (a <= b ? a : b) +#define min(a, b) ((a) < (b) ? (a) : (b)) +#define max(a, b) ((a) >= (b) ? (a) : (b)) // why does GF hate 2d arrays #define MULTI_DIM_ARR(x, dim, y) ((x) * dim + (y)) @@ -49,10 +42,28 @@ fndec\ // dim access enums enum { - B_8 = 1, - B_16 = 2, - B_32 = 4 -}; + B_8 = 1, + B_16 = 2, + B_32 = 4 +}; + +// There are many quirks in the source code which have overarching behavioral differences from +// a number of other files. For example, diploma.c seems to declare rodata before each use while +// other files declare out of order and must be at the beginning. There are also a number of +// macros which differ from one file to the next due to the method of obtaining the result, such +// as these below. Because of this, there is a theory (Two Team Theory) that states that these +// programming projects had more than 1 "programming team" which utilized different macros for +// each of the files that were worked on. +#define T1_READ_8(ptr) ((ptr)[0]) +#define T1_READ_16(ptr) ((ptr)[0] | ((ptr)[1] << 8)) +#define T1_READ_32(ptr) ((ptr)[0] | ((ptr)[1] << 8) | ((ptr)[2] << 16) | ((ptr)[3] << 24)) +#define T1_READ_PTR(ptr) (u8*) T1_READ_32(ptr) + +// T2_READ_8 is a duplicate to remain consistent with each group. +#define T2_READ_8(ptr) ((ptr)[0]) +#define T2_READ_16(ptr) ((ptr)[0] + ((ptr)[1] << 8)) +#define T2_READ_32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24)) +#define T2_READ_PTR(ptr) (void*) T2_READ_32(ptr) enum { @@ -129,13 +140,13 @@ struct UCoords16 struct SecretBaseRecord { - /*ID?*/ /*0x1A08*/ u8 sbr_field_0; + /*0x1A08*/ u8 secretBaseId; /*0x1A09*/ u8 sbr_field_1_0:4; /*0x1A09*/ u8 gender:1; /*0x1A09*/ u8 sbr_field_1_5:1; /*0x1A09*/ u8 sbr_field_1_6:2; - /*0x1A0A*/ u8 sbr_field_2[7]; // 0xFF bytes? - /*0x1A12*/ u8 trainerId[4]; // byte 0 is used for determining trainer class + /*0x1A0A*/ u8 playerName[OT_NAME_LENGTH]; + /*0x1A11*/ u8 trainerId[4]; // byte 0 is used for determining trainer class /*0x1A16*/ u16 sbr_field_e; /*0x1A18*/ u8 sbr_field_10; /*0x1A19*/ u8 sbr_field_11; @@ -149,7 +160,7 @@ struct SecretBaseRecord /*0x1AA2*/ u8 partyEVs[6]; }; -#include "game_stat.h" +#include "constants/game_stat.h" #include "global.fieldmap.h" #include "global.berry.h" #include "pokemon.h" @@ -211,12 +222,6 @@ struct RamScript struct RamScriptData data; }; -struct SB1_2EFC_Struct -{ - u16 var; - u8 unknown[0x1E]; -}; - struct EasyChatPair { u16 unk0_0:7; @@ -228,8 +233,8 @@ struct EasyChatPair struct TVShowCommon { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; /*0x02*/ u8 pad02[20]; /*0x16*/ u16 var16[3]; /*0x1C*/ u8 srcTrainerId3Lo; @@ -244,8 +249,8 @@ struct TVShowCommon struct TVShowFanClubLetter { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; /*0x02*/ u16 species; /*0x04*/ u16 pad04[6]; /*0x10*/ u8 playerName[8]; @@ -254,8 +259,8 @@ struct TVShowFanClubLetter struct TVShowRecentHappenings { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; /*0x02*/ u16 var02; /*0x04*/ u16 var04[6]; /*0x10*/ u8 playerName[8]; @@ -265,8 +270,8 @@ struct TVShowRecentHappenings struct TVShowFanclubOpinions { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; /*0x02*/ u16 var02; /*0x04*/ u8 var04A:4; /*0x04*/ u8 var04B:4; @@ -281,16 +286,16 @@ struct TVShowFanclubOpinions struct TVShowUnknownType04 { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; /*0x02*/ u8 pad02[4]; /*0x06*/ u16 var06; }; struct TVShowNameRaterShow { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; /*0x02*/ u16 species; /*0x04*/ u8 pokemonName[11]; /*0x0F*/ u8 trainerName[11]; @@ -303,8 +308,8 @@ struct TVShowNameRaterShow struct TVShowBravoTrainerPokemonProfiles { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; /*0x02*/ u16 species; /*0x04*/ u16 var04[2]; /*0x08*/ u8 pokemonNickname[11]; @@ -320,8 +325,8 @@ struct TVShowBravoTrainerPokemonProfiles struct TVShowBravoTrainerBattleTowerSpotlight { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; /*0x02*/ u8 trainerName[8]; /*0x0A*/ u16 species; /*0x0C*/ u8 pokemonName[8]; @@ -336,8 +341,8 @@ struct TVShowBravoTrainerBattleTowerSpotlight struct TVShowPokemonToday { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; /*0x02*/ u8 language; /*0x03*/ u8 language2; /*0x04*/ u8 nickname[11]; @@ -349,8 +354,8 @@ struct TVShowPokemonToday struct TVShowSmartShopper { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; /*0x02*/ u8 priceReduced; /*0x03*/ u8 language; /*0x04*/ u8 pad04[2]; @@ -362,8 +367,8 @@ struct TVShowSmartShopper struct TVShowPokemonTodayFailed { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; /*0x02*/ u8 language; /*0x03*/ u8 pad03[9]; /*0x0c*/ u16 species; @@ -376,8 +381,8 @@ struct TVShowPokemonTodayFailed struct TVShowPokemonAngler { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; /*0x02*/ u8 var02; /*0x03*/ u8 var03; /*0x04*/ u16 var04; @@ -388,8 +393,8 @@ struct TVShowPokemonAngler struct TVShowWorldOfMasters { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; /*0x02*/ u16 var02; /*0x04*/ u16 var04; /*0x06*/ u16 var06; @@ -402,8 +407,8 @@ struct TVShowWorldOfMasters struct TVShowMassOutbreak { - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; /*0x02*/ u8 var02; /*0x03*/ u8 var03; /*0x04*/ u16 moves[4]; @@ -415,7 +420,7 @@ struct TVShowMassOutbreak /*0x13*/ u8 probability; /*0x14*/ u8 level; /*0x15*/ u8 var15; - /*0x16*/ u16 var16; + /*0x16*/ u16 daysLeft; /*0x18*/ u8 language; u8 pad19[11]; }; @@ -447,69 +452,75 @@ struct MailStruct /*0x20*/ u16 itemId; }; -struct UnkMauvilleOldManStruct + +// Mauville Pokemon Center men + +struct MauvilleManCommon +{ + u8 id; +}; + +struct MauvilleManBard { - u8 unk_2D94; - u8 unk_2D95; - /*0x2D96*/ u16 mauvilleOldMan_ecArray[6]; - /*0x2DA2*/ u16 mauvilleOldMan_ecArray2[6]; - /*0x2DAE*/ u8 playerName[8]; - /*0x2DB6*/ u8 filler_2DB6[0x3]; - /*0x2DB9*/ u8 playerTrainerId[4]; - u8 unk_2DBD; + /*0x00*/ u8 id; + /*0x02*/ u16 songLyrics[6]; + /*0x0E*/ u16 temporaryLyrics[6]; + /*0x1A*/ u8 playerName[8]; + /*0x22*/ u8 filler_2DB6[0x3]; + /*0x25*/ u8 playerTrainerId[4]; + /*0x29*/ bool8 hasChangedSong; }; /*size = 0x2C*/ -struct UnkMauvilleOldManStruct2 +struct MauvilleManHipster { - u8 filler0; - u8 unk1; - u8 unk2; - u16 mauvilleOldMan_ecArray[10]; - u8 mauvilleOldMan_ecArray2[12]; - u8 fillerF[0x2]; -}; /*size = 0x2C*/ + u8 id; + bool8 alreadySpoken; +}; -struct MauvilleOldManTrader +struct MauvilleManTrader { - u8 unk0; + u8 id; u8 unk1[4]; u8 unk5[4][11]; - u8 unk31; + bool8 alreadyTraded; }; -typedef union OldMan -{ - struct UnkMauvilleOldManStruct oldMan1; - struct UnkMauvilleOldManStruct2 oldMan2; - struct MauvilleOldManTrader trader; - u8 filler[0x40]; -} OldMan; - -struct Unk_SB_Access_Struct1 +struct MauvilleManStoryteller { - u8 filler0[0xF8]; - struct SB1_2EFC_Struct sb1_2EFC_struct[5]; + u8 id; + bool8 alreadyRecorded; + u8 filler2[2]; + u8 gameStatIDs[4]; + u8 trainerNames[4][7]; + u8 statValues[4][4]; }; -struct Unk_SB_Access_Struct2 +struct MauvilleManGiddy { - /*0x0000*/ struct SB1_2EFC_Struct sb1_2EFC_struct2[12]; // each is 0x20 - /*0x2F84*/ u8 filler[0x18]; -}; + /*0x00*/ u8 id; + /*0x01*/ u8 taleCounter; + /*0x02*/ u8 questionNum; + /*0x04*/ u16 randomWords[10]; + /*0x18*/ u8 questionList[12]; +}; /*size = 0x2C*/ -/*0x2E04*/ -typedef union SB_Struct + +union MauvilleMan { - struct Unk_SB_Access_Struct1 unkSB1; - struct Unk_SB_Access_Struct2 unkSB2; -} SB_Struct; -// size is 0x198 + struct MauvilleManCommon common; + struct MauvilleManBard bard; + struct MauvilleManHipster hipster; + struct MauvilleManTrader trader; + struct MauvilleManStoryteller storyteller; + struct MauvilleManGiddy giddy; + u8 filler[0x40]; // needed to pad out the struct +}; -struct UnknownSaveStruct2ABC +struct PokeNews { - u8 val0; - u8 val1; - u16 val2; + u8 kind; + u8 state; + u16 days; }; struct GabbyAndTyData @@ -534,18 +545,34 @@ struct GabbyAndTyData /*2b1b*/ u8 valB_5:3; }; -struct RecordMixing_UnknownStructSub +struct DayCareMail +{ + /*0x00*/ struct MailStruct message; + /*0x24*/ u8 names[19]; +}; + +struct DayCareStepCountersEtc { + u32 steps[2]; + u16 pendingEggPersonality; + u8 eggCycleStepsRemaining; +}; + +struct RecordMixingDayCareMail { - u32 unk0; - u8 data[0x34]; - //u8 data[0x38]; + struct DayCareMail mail[2]; + u32 numDaycareMons; + u16 itemsHeld[2]; // marks whether or not each daycare mon is currently holding an item. }; -struct RecordMixing_UnknownStruct +struct DayCareMisc { - struct RecordMixing_UnknownStructSub data[2]; - u32 unk70; - u16 unk74[0x2]; + struct DayCareMail mail[2]; + struct DayCareStepCountersEtc countersEtc; +}; + +struct DayCare { + struct BoxPokemon mons[2]; + struct DayCareMisc misc; }; struct LinkBattleRecord @@ -571,18 +598,33 @@ struct RecordMixingGift struct RecordMixingGiftData data; }; +struct ContestWinner +{ + /*0x00*/ u32 personality; // personality + /*0x04*/ u32 otId; // otId + /*0x08*/ u16 species; // species + /*0x0A*/ u8 contestCategory; + /*0x0B*/ u8 nickname[0x16-0xB]; + /*0x16*/ u8 trainerName[0x20-0x16]; +}; + +// there should be enough flags for all 412 slots +// each slot takes up 8 flags +// if the value is not divisible by 8, we need to account for the reminder as well +#define DEX_FLAGS_NO ((POKEMON_SLOTS_NUMBER / 8) + ((POKEMON_SLOTS_NUMBER % 8) ? 1 : 0)) + struct SaveBlock1 /* 0x02025734 */ { /*0x00*/ struct Coords16 pos; /*0x04*/ struct WarpData location; /*0x0C*/ struct WarpData warp1; /*0x14*/ struct WarpData warp2; - /*0x1C*/ struct WarpData warp3; + /*0x1C*/ struct WarpData lastHealLocation; /*0x24*/ struct WarpData warp4; - /*0x2C*/ u16 battleMusic; + /*0x2C*/ u16 savedMusic; /*0x2E*/ u8 weather; /*0x2F*/ u8 filler_2F; - /*0x30*/ u8 flashUsed; + /*0x30*/ u8 flashLevel; // flash level on current map, 0 being normal and 4 being the darkest /*0x32*/ u16 mapDataId; /*0x34*/ u16 mapView[0x100]; /*0x234*/ u8 playerPartyCount; @@ -597,7 +639,7 @@ struct SaveBlock1 /* 0x02025734 */ /*0x640*/ struct ItemSlot bagPocket_TMHM[64]; /*0x740*/ struct ItemSlot bagPocket_Berries[46]; /*0x7F8*/ struct Pokeblock pokeblocks[40]; - /*0x938*/ u8 unk938[52]; // pokedex related + /*0x938*/ u8 dexSeen2[DEX_FLAGS_NO]; /*0x96C*/ u16 berryBlenderRecords[3]; /*0x972*/ u8 filler_972[0x6]; /*0x978*/ u16 trainerRematchStepCounter; @@ -621,7 +663,7 @@ struct SaveBlock1 /* 0x02025734 */ /*0x272C*/ u8 decorCushion[10]; /*0x2736*/ u8 padding_2736[2]; /*0x2738*/ TVShow tvShows[25]; - /*0x2ABC*/ struct UnknownSaveStruct2ABC unknown_2ABC[16]; + /*0x2ABC*/ struct PokeNews pokeNews[16]; /*0x2AFC*/ u16 outbreakPokemonSpecies; /*0x2AFE*/ u8 outbreakLocationMapNum; /*0x2AFF*/ u8 outbreakLocationMapGroup; @@ -633,31 +675,29 @@ struct SaveBlock1 /* 0x02025734 */ /*0x2B0D*/ u8 outbreakPokemonProbability; /*0x2B0E*/ u16 outbreakUnk5; /*0x2B10*/ struct GabbyAndTyData gabbyAndTyData; - /*0x2B1C*/ u16 unk2B1C[6]; - /*0x2B28*/ u16 unk2B28[6]; - /*0x2B34*/ u16 unk2B34[6]; - /*0x2B40*/ u16 unk2B40[6]; + /*0x2B1C*/ struct { + /*0x2B1C*/ u16 unk2B1C[6]; + /*0x2B28*/ u16 unk2B28[6]; + /*0x2B34*/ u16 unk2B34[6]; + /*0x2B40*/ u16 unk2B40[6]; + } easyChats; /*0x2B4C*/ struct MailStruct mail[16]; - /*0x2D8C*/ u8 unk2D8C[4]; + /*0x2D8C*/ u8 unk2D8C[4]; // What is this? Apparently it's supposed to be 64 bytes in size. /*0x2D90*/ u8 filler_2D90[0x4]; - /*0x2D94*/ OldMan oldMan; + /*0x2D94*/ union MauvilleMan mauvilleMan; /*0x2DD4*/ struct EasyChatPair easyChatPairs[5]; //Dewford trend [0] and some other stuff - /*0x2DFC*/ u8 filler_2DFC[0x8]; - /*0x2E04*/ SB_Struct sbStruct; - /*0x2F9C*/ struct BoxPokemon daycareData[2]; - /*0x303C*/ struct RecordMixing_UnknownStruct filler_303C; - /*0x30AC*/ u8 filler_30B4[0x2]; - /*0x30B6*/ u8 filler_30B6; - /*0x30B7*/ u8 filler_30B7[1]; + /*0x2DFC*/ struct ContestWinner contestWinners[8]; + /*0x2EFC*/ struct ContestWinner museumPortraits[5]; + /*0x2F9C*/ struct DayCare daycare; /*0x30B8*/ struct LinkBattleRecord linkBattleRecords[5]; /*0x3108*/ u8 filler_3108[8]; - /*0x3110*/ u8 giftRibbons[7]; - /*0x3117*/ u8 filler_311B[0x2D]; + /*0x3110*/ u8 giftRibbons[11]; + /*0x3117*/ u8 filler_311B[0x29]; /*0x3144*/ struct Roamer roamer; /*0x3160*/ struct EnigmaBerry enigmaBerry; /*0x3690*/ struct RamScript ramScript; /*0x3A7C*/ struct RecordMixingGift recordMixingGift; - /*0x3A8C*/ u8 unk3A8C[52]; //pokedex related + /*0x3A8C*/ u8 dexSeen3[DEX_FLAGS_NO]; }; extern struct SaveBlock1 gSaveBlock1; @@ -679,30 +719,78 @@ struct Pokedex /*0x04*/ u32 unownPersonality; // set when you first see Unown /*0x08*/ u32 spindaPersonality; // set when you first see Spinda /*0x0C*/ u32 unknown3; - /*0x10*/ u8 owned[52]; - /*0x44*/ u8 seen[52]; + /*0x10*/ u8 owned[DEX_FLAGS_NO]; + /*0x44*/ u8 seen[DEX_FLAGS_NO]; }; -struct SaveBlock2_Sub +struct BattleTowerTrainer { - /*0x0000, 0x00A8*/ u8 filler_000[0x3D8]; - /*0x03D8, 0x0480*/ u16 var_480; - /*0x03DA, 0x0482*/ u16 var_482; - /*0x03DC, 0x0484*/ u8 filler_3DC[0x14]; - /*0x03F0, 0x0498*/ u8 ereaderTrainer[0xBC]; - /*0x04AC, 0x0554*/ u8 var_4AC; - /*0x04AD, 0x0555*/ u8 var_4AD; + u8 trainerClass; + u8 name[8]; + u8 teamFlags; + struct { + u16 easyChat[6]; + } greeting; +}; + +struct BattleTowerRecord // record mixing +{ + /*0x00*/u8 battleTowerLevelType; // 0 = level 50, 1 = level 100 + /*0x01*/u8 trainerClass; + /*0x02*/u16 winStreak; + /*0x04*/u8 name[8]; + /*0x0C*/u8 trainerId[4]; + /*0x10*/struct { + u16 easyChat[6]; + } greeting; + /*0x1C*/struct UnknownPokemonStruct party[3]; + /*0xA0*/u32 checksum; +}; + +struct BattleTowerEReaderTrainer +{ + /*0x00*/u8 unk0; + /*0x01*/u8 trainerClass; + /*0x02*/u16 winStreak; + /*0x04*/u8 name[8]; + /*0x0C*/u8 trainerId[4]; + /*0x10*/struct { + u16 easyChat[6]; + } greeting; + /*0x1C*/struct { + u16 easyChat[6]; + } farewellPlayerLost; + /*0x28*/struct { + u16 easyChat[6]; + } farewellPlayerWon; + /*0x34*/struct UnknownPokemonStruct party[3]; + /*0xB8*/u32 checksum; +}; + +struct BattleTowerData +{ + /*0x0000, 0x00A8*/ struct BattleTowerRecord playerRecord; + /*0x00A4, 0x014C*/ struct BattleTowerRecord records[5]; // from record mixing + /*0x03D8, 0x0480*/ u16 firstMonSpecies; // species of the first pokemon in the player's battle tower party + /*0x03DA, 0x0482*/ u16 defeatedBySpecies; // species of the pokemon that defated the player + /*0x03DC, 0x0484*/ u8 defeatedByTrainerName[8]; + /*0x03E4, 0x048C*/ u8 firstMonNickname[POKEMON_NAME_LENGTH]; // nickname of the first pokemon in the player's battle tower party + /*0x03F0, 0x0498*/ struct BattleTowerEReaderTrainer ereaderTrainer; + /*0x04AC, 0x0554*/ u8 battleTowerLevelType:1; // 0 = level 50; 1 = level 100 + /*0x04AC, 0x0554*/ u8 unk_554:1; + /*0x04AD, 0x0555*/ u8 battleOutcome; /*0x04AE, 0x0556*/ u8 var_4AE[2]; - /*0x04B0, 0x0558*/ u16 var_4B0; - /*0x04B2, 0x055A*/ u16 var_4B2; - /*0x04B4, 0x055C*/ u16 var_4B4; - /*0x04B6, 0x055E*/ u16 var_4B6; - /*0x04B8, 0x0560*/ u16 recordWinStreak[2]; - /*0x04BC, 0x0564*/ u8 filler_4BC[0xC]; - /*0x04C8, 0x0570*/ u16 var_4C8; - /*0x04CA, 0x0572*/ u16 var_4CA; - /*0x04CC, 0x0574*/ u16 winStreak[2]; - /*0x04D0, 0x0578*/ u8 var_4D0; + /*0x04B0, 0x0558*/ u16 curChallengeBattleNum[2]; // 1-based index of battle in the current challenge. (challenges consist of 7 battles) + /*0x04B4, 0x055C*/ u16 curStreakChallengesNum[2]; // 1-based index of the current challenge in the current streak. + /*0x04B8, 0x0560*/ u16 recordWinStreaks[2]; + /*0x04BC, 0x0564*/ u8 battleTowerTrainerId; // index for gBattleTowerTrainers table + /*0x04BD, 0x0565*/ u8 selectedPartyMons[0x3]; // indices of the 3 selected player party mons. + /*0x04C0, 0x0568*/ u16 prizeItem; + /*0x04C2, 0x056A*/ u8 filler_4C2[0x6]; + /*0x04C8, 0x0570*/ u16 totalBattleTowerWins; + /*0x04CA, 0x0572*/ u16 bestBattleTowerWinStreak; + /*0x04CC, 0x0574*/ u16 currentWinStreaks[2]; + /*0x04D0, 0x0578*/ u8 lastStreakLevelType; // 0 = level 50, 1 = level 100. level type of the last streak. Used by tv to report the level mode. /*0x04D1, 0x0579*/ u8 filler_4D1[0x317]; }; @@ -727,7 +815,7 @@ struct SaveBlock2 /* 0x02024EA4 */ /*0x90*/ u8 filler_90[0x8]; /*0x98*/ struct Time localTimeOffset; /*0xA0*/ struct Time lastBerryTreeUpdate; - /*0xA8*/ struct SaveBlock2_Sub filler_A8; + /*0xA8*/ struct BattleTowerData battleTower; }; struct MapPosition @@ -755,5 +843,6 @@ struct HallOfFame extern struct HallOfFame gHallOfFame; extern struct SaveBlock2 gSaveBlock2; +extern u8 ewram[]; #endif // GUARD_GLOBAL_H diff --git a/include/graphics.h b/include/graphics.h index 5632cb831..00a210350 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -28,8 +28,38 @@ extern const u8 gInterfaceGfx_PremierBall[]; extern const u8 gInterfacePal_PremierBall[]; extern const u8 gUnknown_08D030D0[]; +extern const u8 gUnknown_08D17144[]; +extern const u8 gUnknown_08D1725C[]; +extern const u8 gUnknown_08D17424[]; +extern const u8 gUnknown_08D17C3C[]; +extern const u8 gContestMiscGfx[]; +extern const u8 gContestAudienceGfx[]; +extern const u8 gContestJudgeSymbolsGfx[]; +extern const u8 gContest3Pal[]; +extern const u8 gTiles_8D1975C[]; +extern const u8 gUnknown_08D1977C[]; +extern const u8 gUnknown_08D1A250[]; +extern const u8 gUnknown_08D1A364[]; +extern const u8 gUnknown_08D1A490[]; +extern const u8 gUnknown_08D1A618[]; + +extern const u8 gContestJudgeGfx[]; +extern const u8 gContest2Pal[]; + extern const u8 gMonFootprint_QuestionMark[]; +extern const u8 gContestNextTurnGfx[]; +extern const u8 gContestNextTurnNumbersGfx[]; +extern const u8 gContestNextTurnRandomGfx[]; +extern const u8 gBattleAnimSpriteSheet_264[]; +extern const u8 gBattleAnimSpritePalette_264[]; +extern const u8 gBattleAnimSpritePalette_265[]; +extern const u8 gBattleAnimSpritePalette_067[]; +extern const u8 gBattleAnimSpritePalette_068[]; +extern const u8 gContestApplauseGfx[]; +extern const u8 gContestApplauseMeterGfx[]; +extern const u16 gContestPal[]; + // data/graphics/pokemon/graphics.inc extern const u8 gMonFrontPic_Bulbasaur[]; extern const u8 gMonPalette_Bulbasaur[]; @@ -2551,6 +2581,44 @@ extern const u8 gBerryPalette_Lansat[]; extern const u8 gBerryPalette_Starf[]; extern const u8 gBerryPalette_Enigma[]; +// data/graphics.s +extern const u16 gMailPalette_Orange[]; +extern const u16 gMailPalette_Harbor[]; +extern const u16 gMailPalette_Glitter[]; +extern const u16 gMailPalette_Mech[]; +extern const u16 gMailPalette_Wood[]; +extern const u16 gMailPalette_Wave[]; +extern const u16 gMailPalette_Bead[]; +extern const u16 gMailPalette_Shadow[]; +extern const u16 gMailPalette_Tropic[]; +extern const u16 gMailPalette_Dream[]; +extern const u16 gMailPalette_Fab[]; +extern const u16 gMailPalette_Retro[]; +extern const u8 gMailTiles_Orange[]; +extern const u8 gMailTiles_Harbor[]; +extern const u8 gMailTiles_Glitter[]; +extern const u8 gMailTiles_Mech[]; +extern const u8 gMailTiles_Wood[]; +extern const u8 gMailTiles_Wave[]; +extern const u8 gMailTiles_Bead[]; +extern const u8 gMailTiles_Shadow[]; +extern const u8 gMailTiles_Tropic[]; +extern const u8 gMailTiles_Dream[]; +extern const u8 gMailTiles_Fab[]; +extern const u8 gMailTiles_Retro[]; +extern const u8 gMailTilemap_Orange[]; +extern const u8 gMailTilemap_Harbor[]; +extern const u8 gMailTilemap_Glitter[]; +extern const u8 gMailTilemap_Mech[]; +extern const u8 gMailTilemap_Wood[]; +extern const u8 gMailTilemap_Wave[]; +extern const u8 gMailTilemap_Bead[]; +extern const u8 gMailTilemap_Shadow[]; +extern const u8 gMailTilemap_Tropic[]; +extern const u8 gMailTilemap_Dream[]; +extern const u8 gMailTilemap_Fab[]; +extern const u8 gMailTilemap_Retro[]; + extern const u8 gUnknown_08E96EC8[]; extern const u8 gMenuTrainerCard_Gfx[]; @@ -2564,4 +2632,115 @@ extern const u8 gUnknown_08E8CFC0[]; extern const u8 gUnknown_08E8D4C0[]; extern const u8 gUnknown_08E8D9C0[]; +extern const u8 gUnknown_08EA1DEC[]; +extern const u16 gUnknown_08EA0328[]; +extern const u16 gUnknown_08EA02C8[]; +extern const u16 gUnknown_08EA0348[]; +extern const u16 gUnknown_08EA15C8[]; +extern const u16 gTradeMonBoxTilemap[]; +extern const u8 gUnknown_08D00000[]; +extern const u16 gUnknown_08D00524[]; +extern const u8 gUnknown_08D004E0[]; + +extern const u8 gNamingScreenBackButtonTiles[]; +extern const u8 gNamingScreenOKButtonTiles[]; +extern const u8 gNamingScreenChangeKeyboardBoxTiles[]; +extern const u8 gNamingScreenChangeKeyboardButtonTiles[]; +extern const u8 gNamingScreenLowerTextTiles[]; +extern const u8 gNamingScreenUpperTextTiles[]; +extern const u8 gNamingScreenOthersTextTiles[]; +extern const u8 gNamingScreenCursorTiles[]; +extern const u8 gNamingScreenActiveCursorSmallTiles[]; +extern const u8 gNamingScreenActiveCursorBigTiles[]; +extern const u8 gNamingScreenRightPointingTriangleTiles[]; +extern const u8 gNamingScreenUnderscoreTiles[]; +extern const u16 gNamingScreenPalettes[][16]; + +extern const u8 gMenuWordGroupIndicator_Gfx[]; +extern const u8 gMenuWordGroupFrame_Gfx[]; +extern const u16 gMenuWordGroupIndicator_Pal[]; +extern const u16 gMenuWordGroupFrame1_Pal[]; +extern const u16 gMenuWordGroupFrame2_Pal[]; + +extern const u8 gUnknown_08E94510[]; +extern const u8 gUnknown_08E94550[]; +extern const u8 gUnknown_08E94590[]; +extern const u8 gUnknown_08E945D0[]; +extern const u8 gUnknown_08E94AD0[]; +extern const u8 gUnknown_08E953D0[]; +extern const u8 gUnknown_08E954B0[]; +extern const u8 gUnknown_08E95774[]; +extern const u16 gUnknown_08E95A18[]; +extern const u16 gUnknown_08E95AB8[]; +extern const u16 gUnknown_08E95FB8[]; + +extern const u16 gSlotMachineSpritePalette0[]; +extern const u16 gSlotMachineSpritePalette1[]; +extern const u16 gSlotMachineSpritePalette2[]; +extern const u16 gSlotMachineSpritePalette3[]; +extern const u16 gSlotMachineSpritePalette4[]; +extern const u16 gSlotMachineSpritePalette5[]; +extern const u16 gSlotMachineSpritePalette6[]; +extern const u8 gSlotMachine_Gfx[]; + +extern const u8 gSlotMachineReelSymbol1Tiles[]; +extern const u8 gSlotMachineReelSymbol2Tiles[]; +extern const u8 gSlotMachineReelSymbol3Tiles[]; +extern const u8 gSlotMachineReelSymbol4Tiles[]; +extern const u8 gSlotMachineReelSymbol5Tiles[]; +extern const u8 gSlotMachineReelSymbol6Tiles[]; +extern const u8 gSlotMachineReelSymbol7Tiles[]; +extern const u8 gSlotMachineNumber0Tiles[]; +extern const u8 gSlotMachineNumber1Tiles[]; +extern const u8 gSlotMachineNumber2Tiles[]; +extern const u8 gSlotMachineNumber3Tiles[]; +extern const u8 gSlotMachineNumber4Tiles[]; +extern const u8 gSlotMachineNumber5Tiles[]; +extern const u8 gSlotMachineNumber6Tiles[]; +extern const u8 gSlotMachineNumber7Tiles[]; +extern const u8 gSlotMachineNumber8Tiles[]; +extern const u8 gSlotMachineNumber9Tiles[]; +extern const u8 gSpriteImage_8E98828[]; +extern const u8 gSpriteImage_8E98848[]; +extern const u8 gSpriteImage_8E98868[]; +extern const u8 gSpriteImage_8E988E8[]; +extern const u8 gSpriteImage_8E98968[]; +extern const u8 gSpriteImage_8E989E8[]; +extern const u8 gSpriteImage_8E98A68[]; +extern const u8 gSpriteImage_8E98AE8[]; +extern const u8 gSpriteImage_8E98B68[]; +extern const u8 gSpriteImage_8E98BE8[]; +extern const u8 gSpriteImage_8E98CE8[]; +extern const u8 gSpriteImage_8E98DE8[]; +extern const u8 gSpriteImage_8E98FE8[]; +extern const u8 gSpriteImage_8E991E8[]; +extern const u8 gSpriteImage_8E993E8[]; +extern const u8 gUnknownPalette_08E997E8[]; +extern const u8 gSpriteImage_8E99808[]; +extern const u8 gSlotMachineReelTimeLights_Gfx[]; +extern const u8 gUnknown_08E99FB0[]; +extern const u8 gUnknown_08E9A100[]; +extern const u8 gUnknown_08E9A300[]; +extern const u8 gUnknown_08E9AB00[]; +extern const u8 gUnknown_08E9AB40[]; +extern const u8 gUnknown_08E9AB60[]; +extern const u8 gUnknown_08E9ABB4[]; +extern const u8 gUnknown_08E9AC2C[]; +extern const u8 gUnknown_08E9AC4C[]; + +extern const u8 gInterviewOutlineCursorTiles[]; +extern const u8 gTitleScreenPressStart_Gfx[]; +extern const u16 gTitleScreenLogoShinePalette[]; +extern const u8 gUnknown_08E9D8CC[]; +extern const u8 gVersionTiles[]; +extern const u16 gUnknown_08E9F624[]; +extern const u8 gUnknown_08E9F7E4[]; + +extern const u8 gCableCar_Gfx[]; +extern const u8 gCableCarDoor_Gfx[]; +extern const u8 gCableCarCord_Gfx[]; +extern const u16 gCableCar_Pal[]; +extern const u16 gCableCarBG_Pal[]; +extern const u8 gCableCarBG_Gfx[]; + #endif // GUARD_GRAPHICS_H diff --git a/include/heated_rock.h b/include/heated_rock.h new file mode 100644 index 000000000..26856fe7f --- /dev/null +++ b/include/heated_rock.h @@ -0,0 +1,10 @@ +#ifndef GUARD_HEATED_ROCK_H +#define GUARD_HEATED_ROCK_H + +// heated_rock (moves heated rock sprites) +// Used in Eruption. + +u16 sub_80D5940(u8 spriteId); +void sub_80D5994(struct Sprite *sprite, s16 x, s16 y); + +#endif // GUARD_HEATED_ROCK_H
\ No newline at end of file diff --git a/include/intro_credits_graphics.h b/include/intro_credits_graphics.h index 2718d2f9f..303f50095 100644 --- a/include/intro_credits_graphics.h +++ b/include/intro_credits_graphics.h @@ -1,14 +1,14 @@ #ifndef GUARD_INTRO_CREDITS_GRAPHICS_H #define GUARD_INTRO_CREDITS_GRAPHICS_H -extern const struct CompressedSpriteSheet gIntro2BrendanSpriteSheet; -extern const struct CompressedSpriteSheet gIntro2MaySpriteSheet; -extern const struct CompressedSpriteSheet gIntro2BicycleSpriteSheet; -extern const struct CompressedSpriteSheet gIntro2LatiosSpriteSheet; -extern const struct CompressedSpriteSheet gIntro2LatiasSpriteSheet; +extern const struct CompressedSpriteSheet gIntro2BrendanSpriteSheet[]; +extern const struct CompressedSpriteSheet gIntro2MaySpriteSheet[]; +extern const struct CompressedSpriteSheet gIntro2BicycleSpriteSheet[]; +extern const struct CompressedSpriteSheet gIntro2LatiosSpriteSheet[]; +extern const struct CompressedSpriteSheet gIntro2LatiasSpriteSheet[]; extern const struct SpritePalette gIntro2SpritePalettes[]; -extern const struct CompressedSpriteSheet gUnknown_08416E24; -extern const struct CompressedSpriteSheet gUnknown_08416E34; +extern const struct CompressedSpriteSheet gUnknown_08416E24[]; +extern const struct CompressedSpriteSheet gUnknown_08416E34[]; void load_intro_part2_graphics(u8 a); void sub_8148C78(u8 a); diff --git a/include/item_use.h b/include/item_use.h index 1558f7691..ee7939824 100644 --- a/include/item_use.h +++ b/include/item_use.h @@ -1,7 +1,7 @@ #ifndef GUARD_ITEM_USE_H #define GUARD_ITEM_USE_H -extern u16 gScriptItemId; +extern u16 gSpecialVar_ItemId; void ItemUseOutOfBattle_Mail(u8); void ItemUseOutOfBattle_Bike(u8); @@ -38,7 +38,7 @@ void sub_80C9FC0(u8); void ItemUseOutOfBattle_Repel(u8); void ItemUseOutOfBattle_BlackWhiteFlute(u8); void task08_080A1C44(u8); -u8 sub_80CA1C8(void); +u8 CanUseEscapeRopeOnCurrMap(void); void ItemUseOutOfBattle_EscapeRope(u8); void ItemUseOutOfBattle_EvolutionStone(u8); void ItemUseInBattle_PokeBall(u8); @@ -49,5 +49,6 @@ void ItemUseInBattle_Escape(u8); void ItemUseOutOfBattle_EnigmaBerry(u8); void ItemUseInBattle_EnigmaBerry(u8); void ItemUseOutOfBattle_CannotUse(u8); +u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId); #endif // GUARD_ITEM_USE_H diff --git a/include/items.h b/include/items.h deleted file mode 100644 index 69515f18e..000000000 --- a/include/items.h +++ /dev/null @@ -1,389 +0,0 @@ -#ifndef GUARD_ITEMS_H -#define GUARD_ITEMS_H - -enum -{ - ITEM_NONE, // 0x000 - ITEM_MASTER_BALL, // 0x001 - ITEM_ULTRA_BALL, // 0x002 - ITEM_GREAT_BALL, // 0x003 - ITEM_POKE_BALL, // 0x004 - ITEM_SAFARI_BALL, // 0x005 - ITEM_NET_BALL, // 0x006 - ITEM_DIVE_BALL, // 0x007 - ITEM_NEST_BALL, // 0x008 - ITEM_REPEAT_BALL, // 0x009 - ITEM_TIMER_BALL, // 0x00a - ITEM_LUXURY_BALL, // 0x00b - ITEM_PREMIER_BALL, // 0x00c - ITEM_POTION, // 0x00d - ITEM_ANTIDOTE, // 0x00e - ITEM_BURN_HEAL, // 0x00f - ITEM_ICE_HEAL, // 0x010 - ITEM_AWAKENING, // 0x011 - ITEM_PARALYZE_HEAL, // 0x012 - ITEM_FULL_RESTORE, // 0x013 - ITEM_MAX_POTION, // 0x014 - ITEM_HYPER_POTION, // 0x015 - ITEM_SUPER_POTION, // 0x016 - ITEM_FULL_HEAL, // 0x017 - ITEM_REVIVE, // 0x018 - ITEM_MAX_REVIVE, // 0x019 - ITEM_FRESH_WATER, // 0x01a - ITEM_SODA_POP, // 0x01b - ITEM_LEMONADE, // 0x01c - ITEM_MOOMOO_MILK, // 0x01d - ITEM_ENERGY_POWDER, // 0x01e - ITEM_ENERGY_ROOT, // 0x01f - ITEM_HEAL_POWDER, // 0x020 - ITEM_REVIVAL_HERB, // 0x021 - ITEM_ETHER, // 0x022 - ITEM_MAX_ETHER, // 0x023 - ITEM_ELIXIR, // 0x024 - ITEM_MAX_ELIXIR, // 0x025 - ITEM_LAVA_COOKIE, // 0x026 - ITEM_BLUE_FLUTE, // 0x027 - ITEM_YELLOW_FLUTE, // 0x028 - ITEM_RED_FLUTE, // 0x029 - ITEM_BLACK_FLUTE, // 0x02a - ITEM_WHITE_FLUTE, // 0x02b - ITEM_BERRY_JUICE, // 0x02c - ITEM_SACRED_ASH, // 0x02d - ITEM_SHOAL_SALT, // 0x02e - ITEM_SHOAL_SHELL, // 0x02f - ITEM_RED_SHARD, // 0x030 - ITEM_BLUE_SHARD, // 0x031 - ITEM_YELLOW_SHARD, // 0x032 - ITEM_GREEN_SHARD, // 0x033 - ITEM_034, - ITEM_035, - ITEM_036, - ITEM_037, - ITEM_038, - ITEM_039, - ITEM_03A, - ITEM_03B, - ITEM_03C, - ITEM_03D, - ITEM_03E, - ITEM_HP_UP, // 0x03f - ITEM_PROTEIN, // 0x040 - ITEM_IRON, // 0x041 - ITEM_CARBOS, // 0x042 - ITEM_CALCIUM, // 0x043 - ITEM_RARE_CANDY, // 0x044 - ITEM_PP_UP, // 0x045 - ITEM_ZINC, // 0x046 - ITEM_PP_MAX, // 0x047 - ITEM_048, - ITEM_GUARD_SPEC, // 0x049 - ITEM_DIRE_HIT, // 0x04a - ITEM_X_ATTACK, // 0x04b - ITEM_X_DEFEND, // 0x04c - ITEM_X_SPEED, // 0x04d - ITEM_X_ACCURACY, // 0x04e - ITEM_X_SPECIAL, // 0x04f - ITEM_POKE_DOLL, // 0x050 - ITEM_FLUFFY_TAIL, // 0x051 - ITEM_052, - ITEM_SUPER_REPEL, // 0x053 - ITEM_MAX_REPEL, // 0x054 - ITEM_ESCAPE_ROPE, // 0x055 - ITEM_REPEL, // 0x056 - ITEM_057, - ITEM_058, - ITEM_059, - ITEM_05A, - ITEM_05B, - ITEM_05C, - ITEM_SUN_STONE, // 0x05d - ITEM_MOON_STONE, // 0x05e - ITEM_FIRE_STONE, // 0x05f - ITEM_THUNDER_STONE, // 0x060 - ITEM_WATER_STONE, // 0x061 - ITEM_LEAF_STONE, // 0x062 - ITEM_063, - ITEM_064, - ITEM_065, - ITEM_066, - ITEM_TINY_MUSHROOM, // 0x067 - ITEM_BIG_MUSHROOM, // 0x068 - ITEM_069, - ITEM_PEARL, // 0x06a - ITEM_BIG_PEARL, // 0x06b - ITEM_STARDUST, // 0x06c - ITEM_STAR_PIECE, // 0x06d - ITEM_NUGGET, // 0x06e - ITEM_HEART_SCALE, // 0x06f - ITEM_070, - ITEM_071, - ITEM_072, - ITEM_073, - ITEM_074, - ITEM_075, - ITEM_076, - ITEM_077, - ITEM_078, - ITEM_ORANGE_MAIL, // 0x079 - ITEM_HARBOR_MAIL, // 0x07a - ITEM_GLITTER_MAIL, // 0x07b - ITEM_MECH_MAIL, // 0x07c - ITEM_WOOD_MAIL, // 0x07d - ITEM_WAVE_MAIL, // 0x07e - ITEM_BEAD_MAIL, // 0x07f - ITEM_SHADOW_MAIL, // 0x080 - ITEM_TROPIC_MAIL, // 0x081 - ITEM_DREAM_MAIL, // 0x082 - ITEM_FAB_MAIL, // 0x083 - ITEM_RETRO_MAIL, // 0x084 - ITEM_CHERI_BERRY, // 0x085 - ITEM_CHESTO_BERRY, // 0x086 - ITEM_PECHA_BERRY, // 0x087 - ITEM_RAWST_BERRY, // 0x088 - ITEM_ASPEAR_BERRY, // 0x089 - ITEM_LEPPA_BERRY, // 0x08a - ITEM_ORAN_BERRY, // 0x08b - ITEM_PERSIM_BERRY, // 0x08c - ITEM_LUM_BERRY, // 0x08d - ITEM_SITRUS_BERRY, // 0x08e - ITEM_FIGY_BERRY, // 0x08f - ITEM_WIKI_BERRY, // 0x090 - ITEM_MAGO_BERRY, // 0x091 - ITEM_AGUAV_BERRY, // 0x092 - ITEM_IAPAPA_BERRY, // 0x093 - ITEM_RAZZ_BERRY, // 0x094 - ITEM_BLUK_BERRY, // 0x095 - ITEM_NANAB_BERRY, // 0x096 - ITEM_WEPEAR_BERRY, // 0x097 - ITEM_PINAP_BERRY, // 0x098 - ITEM_POMEG_BERRY, // 0x099 - ITEM_KELPSY_BERRY, // 0x09a - ITEM_QUALOT_BERRY, // 0x09b - ITEM_HONDEW_BERRY, // 0x09c - ITEM_GREPA_BERRY, // 0x09d - ITEM_TAMATO_BERRY, // 0x09e - ITEM_CORNN_BERRY, // 0x09f - ITEM_MAGOST_BERRY, // 0x0a0 - ITEM_RABUTA_BERRY, // 0x0a1 - ITEM_NOMEL_BERRY, // 0x0a2 - ITEM_SPELON_BERRY, // 0x0a3 - ITEM_PAMTRE_BERRY, // 0x0a4 - ITEM_WATMEL_BERRY, // 0x0a5 - ITEM_DURIN_BERRY, // 0x0a6 - ITEM_BELUE_BERRY, // 0x0a7 - ITEM_LIECHI_BERRY, // 0x0a8 - ITEM_GANLON_BERRY, // 0x0a9 - ITEM_SALAC_BERRY, // 0x0aa - ITEM_PETAYA_BERRY, // 0x0ab - ITEM_APICOT_BERRY, // 0x0ac - ITEM_LANSAT_BERRY, // 0x0ad - ITEM_STARF_BERRY, // 0x0ae - ITEM_ENIGMA_BERRY, // 0x0af - ITEM_0B0, - ITEM_0B1, - ITEM_0B2, - ITEM_BRIGHT_POWDER, // 0x0b3 - ITEM_WHITE_HERB, // 0x0b4 - ITEM_MACHO_BRACE, // 0x0b5 - ITEM_EXP_SHARE, // 0x0b6 - ITEM_QUICK_CLAW, // 0x0b7 - ITEM_SOOTHE_BELL, // 0x0b8 - ITEM_MENTAL_HERB, // 0x0b9 - ITEM_CHOICE_BAND, // 0x0ba - ITEM_KINGS_ROCK, // 0x0bb - ITEM_SILVER_POWDER, // 0x0bc - ITEM_AMULET_COIN, // 0x0bd - ITEM_CLEANSE_TAG, // 0x0be - ITEM_SOUL_DEW, // 0x0bf - ITEM_DEEP_SEA_TOOTH, // 0x0c0 - ITEM_DEEP_SEA_SCALE, // 0x0c1 - ITEM_SMOKE_BALL, // 0x0c2 - ITEM_EVERSTONE, // 0x0c3 - ITEM_FOCUS_BAND, // 0x0c4 - ITEM_LUCKY_EGG, // 0x0c5 - ITEM_SCOPE_LENS, // 0x0c6 - ITEM_METAL_COAT, // 0x0c7 - ITEM_LEFTOVERS, // 0x0c8 - ITEM_DRAGON_SCALE, // 0x0c9 - ITEM_LIGHT_BALL, // 0x0ca - ITEM_SOFT_SAND, // 0x0cb - ITEM_HARD_STONE, // 0x0cc - ITEM_MIRACLE_SEED, // 0x0cd - ITEM_BLACK_GLASSES, // 0x0ce - ITEM_BLACK_BELT, // 0x0cf - ITEM_MAGNET, // 0x0d0 - ITEM_MYSTIC_WATER, // 0x0d1 - ITEM_SHARP_BEAK, // 0x0d2 - ITEM_POISON_BARB, // 0x0d3 - ITEM_NEVER_MELT_ICE, // 0x0d4 - ITEM_SPELL_TAG, // 0x0d5 - ITEM_TWISTED_SPOON, // 0x0d6 - ITEM_CHARCOAL, // 0x0d7 - ITEM_DRAGON_FANG, // 0x0d8 - ITEM_SILK_SCARF, // 0x0d9 - ITEM_UP_GRADE, // 0x0da - ITEM_SHELL_BELL, // 0x0db - ITEM_SEA_INCENSE, // 0x0dc - ITEM_LAX_INCENSE, // 0x0dd - ITEM_LUCKY_PUNCH, // 0x0de - ITEM_METAL_POWDER, // 0x0df - ITEM_THICK_CLUB, // 0x0e0 - ITEM_STICK, // 0x0e1 - ITEM_0E2, - ITEM_0E3, - ITEM_0E4, - ITEM_0E5, - ITEM_0E6, - ITEM_0E7, - ITEM_0E8, - ITEM_0E9, - ITEM_0EA, - ITEM_0EB, - ITEM_0EC, - ITEM_0ED, - ITEM_0EE, - ITEM_0EF, - ITEM_0F0, - ITEM_0F1, - ITEM_0F2, - ITEM_0F3, - ITEM_0F4, - ITEM_0F5, - ITEM_0F6, - ITEM_0F7, - ITEM_0F8, - ITEM_0F9, - ITEM_0FA, - ITEM_0FB, - ITEM_0FC, - ITEM_0FD, - ITEM_RED_SCARF, // 0x0fe - ITEM_BLUE_SCARF, // 0x0ff - ITEM_PINK_SCARF, // 0x100 - ITEM_GREEN_SCARF, // 0x101 - ITEM_YELLOW_SCARF, // 0x102 - ITEM_MACH_BIKE, // 0x103 - ITEM_COIN_CASE, // 0x104 - ITEM_ITEMFINDER, // 0x105 - ITEM_OLD_ROD, // 0x106 - ITEM_GOOD_ROD, // 0x107 - ITEM_SUPER_ROD, // 0x108 - ITEM_SS_TICKET, // 0x109 - ITEM_CONTEST_PASS, // 0x10a - ITEM_10B, - ITEM_WAILMER_PAIL, // 0x10c - ITEM_DEVON_GOODS, // 0x10d - ITEM_SOOT_SACK, // 0x10e - ITEM_BASEMENT_KEY, // 0x10f - ITEM_ACRO_BIKE, // 0x110 - ITEM_POKEBLOCK_CASE, // 0x111 - ITEM_LETTER, // 0x112 - ITEM_EON_TICKET, // 0x113 - ITEM_RED_ORB, // 0x114 - ITEM_BLUE_ORB, // 0x115 - ITEM_SCANNER, // 0x116 - ITEM_GO_GOGGLES, // 0x117 - ITEM_METEORITE, // 0x118 - ITEM_ROOM_1_KEY, // 0x119 - ITEM_ROOM_2_KEY, // 0x11a - ITEM_ROOM_4_KEY, // 0x11b - ITEM_ROOM_6_KEY, // 0x11c - ITEM_STORAGE_KEY, // 0x11d - ITEM_ROOT_FOSSIL, // 0x11e - ITEM_CLAW_FOSSIL, // 0x11f - ITEM_DEVON_SCOPE, // 0x120 - ITEM_TM01, // 0x121 - ITEM_TM02, // 0x122 - ITEM_TM03, // 0x123 - ITEM_TM04, // 0x124 - ITEM_TM05, // 0x125 - ITEM_TM06, // 0x126 - ITEM_TM07, // 0x127 - ITEM_TM08, // 0x128 - ITEM_TM09, // 0x129 - ITEM_TM10, // 0x12a - ITEM_TM11, // 0x12b - ITEM_TM12, // 0x12c - ITEM_TM13, // 0x12d - ITEM_TM14, // 0x12e - ITEM_TM15, // 0x12f - ITEM_TM16, // 0x130 - ITEM_TM17, // 0x131 - ITEM_TM18, // 0x132 - ITEM_TM19, // 0x133 - ITEM_TM20, // 0x134 - ITEM_TM21, // 0x135 - ITEM_TM22, // 0x136 - ITEM_TM23, // 0x137 - ITEM_TM24, // 0x138 - ITEM_TM25, // 0x139 - ITEM_TM26, // 0x13a - ITEM_TM27, // 0x13b - ITEM_TM28, // 0x13c - ITEM_TM29, // 0x13d - ITEM_TM30, // 0x13e - ITEM_TM31, // 0x13f - ITEM_TM32, // 0x140 - ITEM_TM33, // 0x141 - ITEM_TM34, // 0x142 - ITEM_TM35, // 0x143 - ITEM_TM36, // 0x144 - ITEM_TM37, // 0x145 - ITEM_TM38, // 0x146 - ITEM_TM39, // 0x147 - ITEM_TM40, // 0x148 - ITEM_TM41, // 0x149 - ITEM_TM42, // 0x14a - ITEM_TM43, // 0x14b - ITEM_TM44, // 0x14c - ITEM_TM45, // 0x14d - ITEM_TM46, // 0x14e - ITEM_TM47, // 0x14f - ITEM_TM48, // 0x150 - ITEM_TM49, // 0x151 - ITEM_TM50, // 0x152 - ITEM_HM01, // 0x153 - ITEM_HM02, // 0x154 - ITEM_HM03, // 0x155 - ITEM_HM04, // 0x156 - ITEM_HM05, // 0x157 - ITEM_HM06, // 0x158 - ITEM_HM07, // 0x159 - ITEM_HM08, // 0x15a - ITEM_15B, - ITEM_15C, - - // FireRed/LeafGreen - ITEM_OAKS_PARCEL, // 0x15d - ITEM_POKE_FLUTE, // 0x15e - ITEM_SECRET_KEY, // 0x15f - ITEM_BIKE_VOUCHER, // 0x160 - ITEM_GOLD_TEETH, // 0x161 - ITEM_OLD_AMBER, // 0x162 - ITEM_CARD_KEY, // 0x163 - ITEM_LIFT_KEY, // 0x164 - ITEM_HELIX_FOSSIL, // 0x165 - ITEM_DOME_FOSSIL, // 0x166 - ITEM_SILPH_SCOPE, // 0x167 - ITEM_BICYCLE, // 0x168 - ITEM_TOWN_MAP, // 0x169 - ITEM_VS_SEEKER, // 0x16a - ITEM_FAME_CHECKER, // 0x16b - ITEM_TM_CASE, // 0x16c - ITEM_BERRY_POUCH, // 0x16d - ITEM_TEACHY_TV, // 0x16e - ITEM_TRI_PASS, // 0x16f - ITEM_RAINBOW_PASS, // 0x170 - ITEM_TEA, // 0x171 - ITEM_MYSTIC_TICKET, // 0x172 - ITEM_AURORA_TICKET, // 0x173 - ITEM_POWDER_JAR, // 0x174 - ITEM_RUBY, // 0x175 - ITEM_SAPPHIRE, // 0x176 - - // Emerald - ITEM_MAGMA_EMBLEM, // 0x177 - ITEM_OLD_SEA_MAP, // 0x178 -}; - -#endif // GUARD_ITEMS_H diff --git a/include/landmark.h b/include/landmark.h index eee5ac8c2..395905033 100644 --- a/include/landmark.h +++ b/include/landmark.h @@ -1,6 +1,6 @@ #ifndef GUARD_LANDMARK_H #define GUARD_LANDMARK_H -u8 *GetLandmarkName(u8 mapSection, u8 id, u8 count); +const u8 *GetLandmarkName(u8 mapSection, u8 id, u8 count); #endif // GUARD_LANDMARK_H diff --git a/include/learn_move.h b/include/learn_move.h index 85fbf046e..fca236ec9 100644 --- a/include/learn_move.h +++ b/include/learn_move.h @@ -1,6 +1,6 @@ #ifndef GUARD_LEARN_MOVE_H #define GUARD_LEARN_MOVE_H -void sub_8132670(void); +void TeachMoveTutorMove(void); #endif // GUARD_LEARN_MOVE_H diff --git a/include/m4a.h b/include/m4a.h index b6c8f9072..57a749a58 100644 --- a/include/m4a.h +++ b/include/m4a.h @@ -8,6 +8,7 @@ void m4aSoundVSync(void); void m4aSoundInit(void); void m4aSoundMain(void); void m4aSongNumStart(u16); +void m4aSongNumStartOrChange(u16); void m4aSongNumStop(u16 n); void m4aMPlayAllStop(void); void m4aMPlayContinue(struct MusicPlayerInfo *mplayInfo); @@ -16,4 +17,9 @@ void m4aMPlayFadeOutTemporarily(struct MusicPlayerInfo *mplayInfo, u16 speed); void m4aMPlayFadeIn(struct MusicPlayerInfo *mplayInfo, u16 speed); void m4aMPlayImmInit(struct MusicPlayerInfo *mplayInfo); +void m4aMPlayTempoControl(struct MusicPlayerInfo *mplayInfo, u16 tempo); +void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 volume); +void m4aMPlayPitchControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s16 pitch); +void m4aMPlayPanpotControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s8 pan); + #endif //GUARD_M4A_H diff --git a/include/mail_data.h b/include/mail_data.h index df4b385a1..2659c0d37 100644 --- a/include/mail_data.h +++ b/include/mail_data.h @@ -11,6 +11,6 @@ u8 GiveMailToMon2(struct Pokemon *, struct MailStruct *); void TakeMailFromMon(struct Pokemon *); u8 TakeMailFromMon2(struct Pokemon *); bool8 ItemIsMail(u16); -bool8 ItemIsMail(u16); +bool8 MonHasMail(struct Pokemon *); #endif // GUARD_MAIL_DATA_H diff --git a/include/map_constants.h b/include/map_constants.h deleted file mode 100644 index f525f43a3..000000000 --- a/include/map_constants.h +++ /dev/null @@ -1,1098 +0,0 @@ -#ifndef GUARD_MAP_CONSTANTS_H -#define GUARD_MAP_CONSTANTS_H - -//-------------------------------------------------- -// Map Group 0 -//-------------------------------------------------- - -enum -{ - MAP_ID_PETALBURG_CITY, - MAP_ID_SLATEPORT_CITY, - MAP_ID_MAUVILLE_CITY, - MAP_ID_RUSTBORO_CITY, - MAP_ID_FORTREE_CITY, - MAP_ID_LILYCOVE_CITY, - MAP_ID_MOSSDEEP_CITY, - MAP_ID_SOOTOPOLIS_CITY, - MAP_ID_EVER_GRANDE_CITY, - MAP_ID_LITTLEROOT_TOWN, - MAP_ID_OLDALE_TOWN, - MAP_ID_DEWFORD_TOWN, - MAP_ID_LAVARIDGE_TOWN, - MAP_ID_FALLARBOR_TOWN, - MAP_ID_VERDANTURF_TOWN, - MAP_ID_PACIFIDLOG_TOWN, - MAP_ID_ROUTE101, - MAP_ID_ROUTE102, - MAP_ID_ROUTE103, - MAP_ID_ROUTE104, - MAP_ID_ROUTE105, - MAP_ID_ROUTE106, - MAP_ID_ROUTE107, - MAP_ID_ROUTE108, - MAP_ID_ROUTE109, - MAP_ID_ROUTE110, - MAP_ID_ROUTE111, - MAP_ID_ROUTE112, - MAP_ID_ROUTE113, - MAP_ID_ROUTE114, - MAP_ID_ROUTE115, - MAP_ID_ROUTE116, - MAP_ID_ROUTE117, - MAP_ID_ROUTE118, - MAP_ID_ROUTE119, - MAP_ID_ROUTE120, - MAP_ID_ROUTE121, - MAP_ID_ROUTE122, - MAP_ID_ROUTE123, - MAP_ID_ROUTE124, - MAP_ID_ROUTE125, - MAP_ID_ROUTE126, - MAP_ID_ROUTE127, - MAP_ID_ROUTE128, - MAP_ID_ROUTE129, - MAP_ID_ROUTE130, - MAP_ID_ROUTE131, - MAP_ID_ROUTE132, - MAP_ID_ROUTE133, - MAP_ID_ROUTE134, - MAP_ID_UNDERWATER1, - MAP_ID_UNDERWATER2, - MAP_ID_UNDERWATER3, - MAP_ID_UNDERWATER4, -}; - -#define MAP_GROUP_PETALBURG_CITY 0 -#define MAP_GROUP_SLATEPORT_CITY 0 -#define MAP_GROUP_MAUVILLE_CITY 0 -#define MAP_GROUP_RUSTBORO_CITY 0 -#define MAP_GROUP_FORTREE_CITY 0 -#define MAP_GROUP_LILYCOVE_CITY 0 -#define MAP_GROUP_MOSSDEEP_CITY 0 -#define MAP_GROUP_SOOTOPOLIS_CITY 0 -#define MAP_GROUP_EVER_GRANDE_CITY 0 -#define MAP_GROUP_LITTLEROOT_TOWN 0 -#define MAP_GROUP_OLDALE_TOWN 0 -#define MAP_GROUP_DEWFORD_TOWN 0 -#define MAP_GROUP_LAVARIDGE_TOWN 0 -#define MAP_GROUP_FALLARBOR_TOWN 0 -#define MAP_GROUP_VERDANTURF_TOWN 0 -#define MAP_GROUP_PACIFIDLOG_TOWN 0 -#define MAP_GROUP_ROUTE101 0 -#define MAP_GROUP_ROUTE102 0 -#define MAP_GROUP_ROUTE103 0 -#define MAP_GROUP_ROUTE104 0 -#define MAP_GROUP_ROUTE105 0 -#define MAP_GROUP_ROUTE106 0 -#define MAP_GROUP_ROUTE107 0 -#define MAP_GROUP_ROUTE108 0 -#define MAP_GROUP_ROUTE109 0 -#define MAP_GROUP_ROUTE110 0 -#define MAP_GROUP_ROUTE111 0 -#define MAP_GROUP_ROUTE112 0 -#define MAP_GROUP_ROUTE113 0 -#define MAP_GROUP_ROUTE114 0 -#define MAP_GROUP_ROUTE115 0 -#define MAP_GROUP_ROUTE116 0 -#define MAP_GROUP_ROUTE117 0 -#define MAP_GROUP_ROUTE118 0 -#define MAP_GROUP_ROUTE119 0 -#define MAP_GROUP_ROUTE120 0 -#define MAP_GROUP_ROUTE121 0 -#define MAP_GROUP_ROUTE122 0 -#define MAP_GROUP_ROUTE123 0 -#define MAP_GROUP_ROUTE124 0 -#define MAP_GROUP_ROUTE125 0 -#define MAP_GROUP_ROUTE126 0 -#define MAP_GROUP_ROUTE127 0 -#define MAP_GROUP_ROUTE128 0 -#define MAP_GROUP_ROUTE129 0 -#define MAP_GROUP_ROUTE130 0 -#define MAP_GROUP_ROUTE131 0 -#define MAP_GROUP_ROUTE132 0 -#define MAP_GROUP_ROUTE133 0 -#define MAP_GROUP_ROUTE134 0 -#define MAP_GROUP_UNDERWATER1 0 -#define MAP_GROUP_UNDERWATER2 0 -#define MAP_GROUP_UNDERWATER3 0 -#define MAP_GROUP_UNDERWATER4 0 - -//-------------------------------------------------- -// Map Group 1 -//-------------------------------------------------- - -enum -{ - MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F, - MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F, - MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_1F, - MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_2F, - MAP_ID_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB, -}; - -#define MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F 1 -#define MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F 1 -#define MAP_GROUP_LITTLEROOT_TOWN_MAYS_HOUSE_1F 1 -#define MAP_GROUP_LITTLEROOT_TOWN_MAYS_HOUSE_2F 1 -#define MAP_GROUP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB 1 - -//-------------------------------------------------- -// Map Group 2 -//-------------------------------------------------- - -enum -{ - MAP_ID_OLDALE_TOWN_HOUSE1, - MAP_ID_OLDALE_TOWN_HOUSE2, - MAP_ID_OLDALE_TOWN_POKEMON_CENTER_1F, - MAP_ID_OLDALE_TOWN_POKEMON_CENTER_2F, - MAP_ID_OLDALE_TOWN_MART, -}; - -#define MAP_GROUP_OLDALE_TOWN_HOUSE1 2 -#define MAP_GROUP_OLDALE_TOWN_HOUSE2 2 -#define MAP_GROUP_OLDALE_TOWN_POKEMON_CENTER_1F 2 -#define MAP_GROUP_OLDALE_TOWN_POKEMON_CENTER_2F 2 -#define MAP_GROUP_OLDALE_TOWN_MART 2 - -//-------------------------------------------------- -// Map Group 3 -//-------------------------------------------------- - -enum -{ - MAP_ID_DEWFORD_TOWN_HOUSE1, - MAP_ID_DEWFORD_TOWN_POKEMON_CENTER_1F, - MAP_ID_DEWFORD_TOWN_POKEMON_CENTER_2F, - MAP_ID_DEWFORD_TOWN_GYM, - MAP_ID_DEWFORD_TOWN_HALL, - MAP_ID_DEWFORD_TOWN_HOUSE2, -}; - -#define MAP_GROUP_DEWFORD_TOWN_HOUSE1 3 -#define MAP_GROUP_DEWFORD_TOWN_POKEMON_CENTER_1F 3 -#define MAP_GROUP_DEWFORD_TOWN_POKEMON_CENTER_2F 3 -#define MAP_GROUP_DEWFORD_TOWN_GYM 3 -#define MAP_GROUP_DEWFORD_TOWN_HALL 3 -#define MAP_GROUP_DEWFORD_TOWN_HOUSE2 3 - -//-------------------------------------------------- -// Map Group 4 -//-------------------------------------------------- - -enum -{ - MAP_ID_LAVARIDGE_TOWN_HERB_SHOP, - MAP_ID_LAVARIDGE_TOWN_GYM_1F, - MAP_ID_LAVARIDGE_TOWN_GYM_B1F, - MAP_ID_LAVARIDGE_TOWN_HOUSE, - MAP_ID_LAVARIDGE_TOWN_MART, - MAP_ID_LAVARIDGE_TOWN_POKEMON_CENTER_1F, - MAP_ID_LAVARIDGE_TOWN_POKEMON_CENTER_2F, -}; - -#define MAP_GROUP_LAVARIDGE_TOWN_HERB_SHOP 4 -#define MAP_GROUP_LAVARIDGE_TOWN_GYM_1F 4 -#define MAP_GROUP_LAVARIDGE_TOWN_GYM_B1F 4 -#define MAP_GROUP_LAVARIDGE_TOWN_HOUSE 4 -#define MAP_GROUP_LAVARIDGE_TOWN_MART 4 -#define MAP_GROUP_LAVARIDGE_TOWN_POKEMON_CENTER_1F 4 -#define MAP_GROUP_LAVARIDGE_TOWN_POKEMON_CENTER_2F 4 - -//-------------------------------------------------- -// Map Group 5 -//-------------------------------------------------- - -enum -{ - MAP_ID_FALLARBOR_TOWN_MART, - MAP_ID_FALLARBOR_TOWN_CONTEST_LOBBY, - MAP_ID_FALLARBOR_TOWN_CONTEST_HALL, - MAP_ID_FALLARBOR_TOWN_POKEMON_CENTER_1F, - MAP_ID_FALLARBOR_TOWN_POKEMON_CENTER_2F, - MAP_ID_FALLARBOR_TOWN_HOUSE1, - MAP_ID_FALLARBOR_TOWN_HOUSE2, -}; - -#define MAP_GROUP_FALLARBOR_TOWN_MART 5 -#define MAP_GROUP_FALLARBOR_TOWN_CONTEST_LOBBY 5 -#define MAP_GROUP_FALLARBOR_TOWN_CONTEST_HALL 5 -#define MAP_GROUP_FALLARBOR_TOWN_POKEMON_CENTER_1F 5 -#define MAP_GROUP_FALLARBOR_TOWN_POKEMON_CENTER_2F 5 -#define MAP_GROUP_FALLARBOR_TOWN_HOUSE1 5 -#define MAP_GROUP_FALLARBOR_TOWN_HOUSE2 5 - -//-------------------------------------------------- -// Map Group 6 -//-------------------------------------------------- - -enum -{ - MAP_ID_VERDANTURF_TOWN_CONTEST_LOBBY, - MAP_ID_VERDANTURF_TOWN_CONTEST_HALL, - MAP_ID_VERDANTURF_TOWN_MART, - MAP_ID_VERDANTURF_TOWN_POKEMON_CENTER_1F, - MAP_ID_VERDANTURF_TOWN_POKEMON_CENTER_2F, - MAP_ID_VERDANTURF_TOWN_WANDAS_HOUSE, - MAP_ID_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE, - MAP_ID_VERDANTURF_TOWN_HOUSE, -}; - -#define MAP_GROUP_VERDANTURF_TOWN_CONTEST_LOBBY 6 -#define MAP_GROUP_VERDANTURF_TOWN_CONTEST_HALL 6 -#define MAP_GROUP_VERDANTURF_TOWN_MART 6 -#define MAP_GROUP_VERDANTURF_TOWN_POKEMON_CENTER_1F 6 -#define MAP_GROUP_VERDANTURF_TOWN_POKEMON_CENTER_2F 6 -#define MAP_GROUP_VERDANTURF_TOWN_WANDAS_HOUSE 6 -#define MAP_GROUP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE 6 -#define MAP_GROUP_VERDANTURF_TOWN_HOUSE 6 - -//-------------------------------------------------- -// Map Group 7 -//-------------------------------------------------- - -enum -{ - MAP_ID_PACIFIDLOG_TOWN_POKEMON_CENTER_1F, - MAP_ID_PACIFIDLOG_TOWN_POKEMON_CENTER_2F, - MAP_ID_PACIFIDLOG_TOWN_HOUSE1, - MAP_ID_PACIFIDLOG_TOWN_HOUSE2, - MAP_ID_PACIFIDLOG_TOWN_HOUSE3, - MAP_ID_PACIFIDLOG_TOWN_HOUSE4, - MAP_ID_PACIFIDLOG_TOWN_HOUSE5, -}; - -#define MAP_GROUP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F 7 -#define MAP_GROUP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F 7 -#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE1 7 -#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE2 7 -#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE3 7 -#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE4 7 -#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE5 7 - -//-------------------------------------------------- -// Map Group 8 -//-------------------------------------------------- - -enum -{ - MAP_ID_PETALBURG_CITY_WALLYS_HOUSE, - MAP_ID_PETALBURG_CITY_GYM, - MAP_ID_PETALBURG_CITY_HOUSE1, - MAP_ID_PETALBURG_CITY_HOUSE2, - MAP_ID_PETALBURG_CITY_POKEMON_CENTER_1F, - MAP_ID_PETALBURG_CITY_POKEMON_CENTER_2F, - MAP_ID_PETALBURG_CITY_MART, -}; - -#define MAP_GROUP_PETALBURG_CITY_WALLYS_HOUSE 8 -#define MAP_GROUP_PETALBURG_CITY_GYM 8 -#define MAP_GROUP_PETALBURG_CITY_HOUSE1 8 -#define MAP_GROUP_PETALBURG_CITY_HOUSE2 8 -#define MAP_GROUP_PETALBURG_CITY_POKEMON_CENTER_1F 8 -#define MAP_GROUP_PETALBURG_CITY_POKEMON_CENTER_2F 8 -#define MAP_GROUP_PETALBURG_CITY_MART 8 - -//-------------------------------------------------- -// Map Group 9 -//-------------------------------------------------- - -enum -{ - MAP_ID_SLATEPORT_CITY_STERNS_SHIPYARD_1F, - MAP_ID_SLATEPORT_CITY_STERNS_SHIPYARD_2F, - MAP_ID_SLATEPORT_CITY_CONTEST_LOBBY, - MAP_ID_SLATEPORT_CITY_CONTEST_HALL, - MAP_ID_SLATEPORT_CITY_HOUSE1, - MAP_ID_SLATEPORT_CITY_POKEMON_FAN_CLUB, - MAP_ID_SLATEPORT_CITY_OCEANIC_MUSEUM_1F, - MAP_ID_SLATEPORT_CITY_OCEANIC_MUSEUM_2F, - MAP_ID_SLATEPORT_CITY_HARBOR, - MAP_ID_SLATEPORT_CITY_HOUSE2, - MAP_ID_SLATEPORT_CITY_POKEMON_CENTER_1F, - MAP_ID_SLATEPORT_CITY_POKEMON_CENTER_2F, - MAP_ID_SLATEPORT_CITY_MART, -}; - -#define MAP_GROUP_SLATEPORT_CITY_STERNS_SHIPYARD_1F 9 -#define MAP_GROUP_SLATEPORT_CITY_STERNS_SHIPYARD_2F 9 -#define MAP_GROUP_SLATEPORT_CITY_CONTEST_LOBBY 9 -#define MAP_GROUP_SLATEPORT_CITY_CONTEST_HALL 9 -#define MAP_GROUP_SLATEPORT_CITY_HOUSE1 9 -#define MAP_GROUP_SLATEPORT_CITY_POKEMON_FAN_CLUB 9 -#define MAP_GROUP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F 9 -#define MAP_GROUP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F 9 -#define MAP_GROUP_SLATEPORT_CITY_HARBOR 9 -#define MAP_GROUP_SLATEPORT_CITY_HOUSE2 9 -#define MAP_GROUP_SLATEPORT_CITY_POKEMON_CENTER_1F 9 -#define MAP_GROUP_SLATEPORT_CITY_POKEMON_CENTER_2F 9 -#define MAP_GROUP_SLATEPORT_CITY_MART 9 - -//-------------------------------------------------- -// Map Group 10 -//-------------------------------------------------- - -enum -{ - MAP_ID_MAUVILLE_CITY_GYM, - MAP_ID_MAUVILLE_CITY_BIKE_SHOP, - MAP_ID_MAUVILLE_CITY_HOUSE1, - MAP_ID_MAUVILLE_CITY_GAME_CORNER, - MAP_ID_MAUVILLE_CITY_HOUSE2, - MAP_ID_MAUVILLE_CITY_POKEMON_CENTER_1F, - MAP_ID_MAUVILLE_CITY_POKEMON_CENTER_2F, - MAP_ID_MAUVILLE_CITY_MART, -}; - -#define MAP_GROUP_MAUVILLE_CITY_GYM 10 -#define MAP_GROUP_MAUVILLE_CITY_BIKE_SHOP 10 -#define MAP_GROUP_MAUVILLE_CITY_HOUSE1 10 -#define MAP_GROUP_MAUVILLE_CITY_GAME_CORNER 10 -#define MAP_GROUP_MAUVILLE_CITY_HOUSE2 10 -#define MAP_GROUP_MAUVILLE_CITY_POKEMON_CENTER_1F 10 -#define MAP_GROUP_MAUVILLE_CITY_POKEMON_CENTER_2F 10 -#define MAP_GROUP_MAUVILLE_CITY_MART 10 - -//-------------------------------------------------- -// Map Group 11 -//-------------------------------------------------- - -enum -{ - MAP_ID_RUSTBORO_CITY_DEVON_CORP_1F, - MAP_ID_RUSTBORO_CITY_DEVON_CORP_2F, - MAP_ID_RUSTBORO_CITY_DEVON_CORP_3F, - MAP_ID_RUSTBORO_CITY_GYM, - MAP_ID_RUSTBORO_CITY_POKEMON_SCHOOL, - MAP_ID_RUSTBORO_CITY_POKEMON_CENTER_1F, - MAP_ID_RUSTBORO_CITY_POKEMON_CENTER_2F, - MAP_ID_RUSTBORO_CITY_MART, - MAP_ID_RUSTBORO_CITY_FLAT1_1F, - MAP_ID_RUSTBORO_CITY_FLAT1_2F, - MAP_ID_RUSTBORO_CITY_HOUSE1, - MAP_ID_RUSTBORO_CITY_CUTTERS_HOUSE, - MAP_ID_RUSTBORO_CITY_HOUSE2, - MAP_ID_RUSTBORO_CITY_FLAT2_1F, - MAP_ID_RUSTBORO_CITY_FLAT2_2F, - MAP_ID_RUSTBORO_CITY_FLAT2_3F, - MAP_ID_RUSTBORO_CITY_HOUSE3, -}; - -#define MAP_GROUP_RUSTBORO_CITY_DEVON_CORP_1F 11 -#define MAP_GROUP_RUSTBORO_CITY_DEVON_CORP_2F 11 -#define MAP_GROUP_RUSTBORO_CITY_DEVON_CORP_3F 11 -#define MAP_GROUP_RUSTBORO_CITY_GYM 11 -#define MAP_GROUP_RUSTBORO_CITY_POKEMON_SCHOOL 11 -#define MAP_GROUP_RUSTBORO_CITY_POKEMON_CENTER_1F 11 -#define MAP_GROUP_RUSTBORO_CITY_POKEMON_CENTER_2F 11 -#define MAP_GROUP_RUSTBORO_CITY_MART 11 -#define MAP_GROUP_RUSTBORO_CITY_FLAT1_1F 11 -#define MAP_GROUP_RUSTBORO_CITY_FLAT1_2F 11 -#define MAP_GROUP_RUSTBORO_CITY_HOUSE1 11 -#define MAP_GROUP_RUSTBORO_CITY_CUTTERS_HOUSE 11 -#define MAP_GROUP_RUSTBORO_CITY_HOUSE2 11 -#define MAP_GROUP_RUSTBORO_CITY_FLAT2_1F 11 -#define MAP_GROUP_RUSTBORO_CITY_FLAT2_2F 11 -#define MAP_GROUP_RUSTBORO_CITY_FLAT2_3F 11 -#define MAP_GROUP_RUSTBORO_CITY_HOUSE3 11 - -//-------------------------------------------------- -// Map Group 12 -//-------------------------------------------------- - -enum -{ - MAP_ID_FORTREE_CITY_HOUSE1, - MAP_ID_FORTREE_CITY_GYM, - MAP_ID_FORTREE_CITY_POKEMON_CENTER_1F, - MAP_ID_FORTREE_CITY_POKEMON_CENTER_2F, - MAP_ID_FORTREE_CITY_MART, - MAP_ID_FORTREE_CITY_HOUSE2, - MAP_ID_FORTREE_CITY_HOUSE3, - MAP_ID_FORTREE_CITY_HOUSE4, - MAP_ID_FORTREE_CITY_HOUSE5, - MAP_ID_FORTREE_CITY_DECORATION_SHOP, -}; - -#define MAP_GROUP_FORTREE_CITY_HOUSE1 12 -#define MAP_GROUP_FORTREE_CITY_GYM 12 -#define MAP_GROUP_FORTREE_CITY_POKEMON_CENTER_1F 12 -#define MAP_GROUP_FORTREE_CITY_POKEMON_CENTER_2F 12 -#define MAP_GROUP_FORTREE_CITY_MART 12 -#define MAP_GROUP_FORTREE_CITY_HOUSE2 12 -#define MAP_GROUP_FORTREE_CITY_HOUSE3 12 -#define MAP_GROUP_FORTREE_CITY_HOUSE4 12 -#define MAP_GROUP_FORTREE_CITY_HOUSE5 12 -#define MAP_GROUP_FORTREE_CITY_DECORATION_SHOP 12 - -//-------------------------------------------------- -// Map Group 13 -//-------------------------------------------------- - -enum -{ - MAP_ID_LILYCOVE_CITY_COVE_LILY_MOTEL_1F, - MAP_ID_LILYCOVE_CITY_COVE_LILY_MOTEL_2F, - MAP_ID_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F, - MAP_ID_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F, - MAP_ID_LILYCOVE_CITY_CONTEST_LOBBY, - MAP_ID_LILYCOVE_CITY_CONTEST_HALL, - MAP_ID_LILYCOVE_CITY_POKEMON_CENTER_1F, - MAP_ID_LILYCOVE_CITY_POKEMON_CENTER_2F, - MAP_ID_LILYCOVE_CITY_UNUSED_MART, - MAP_ID_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB, - MAP_ID_LILYCOVE_CITY_HARBOR, - MAP_ID_LILYCOVE_CITY_EMPTY_MAP, - MAP_ID_LILYCOVE_CITY_MOVE_DELETERS_HOUSE, - MAP_ID_LILYCOVE_CITY_HOUSE1, - MAP_ID_LILYCOVE_CITY_HOUSE2, - MAP_ID_LILYCOVE_CITY_HOUSE3, - MAP_ID_LILYCOVE_CITY_HOUSE4, - MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_1F, - MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_2F, - MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_3F, - MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_4F, - MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_5F, - MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP, - MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR, -}; - -#define MAP_GROUP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F 13 -#define MAP_GROUP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F 13 -#define MAP_GROUP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F 13 -#define MAP_GROUP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F 13 -#define MAP_GROUP_LILYCOVE_CITY_CONTEST_LOBBY 13 -#define MAP_GROUP_LILYCOVE_CITY_CONTEST_HALL 13 -#define MAP_GROUP_LILYCOVE_CITY_POKEMON_CENTER_1F 13 -#define MAP_GROUP_LILYCOVE_CITY_POKEMON_CENTER_2F 13 -#define MAP_GROUP_LILYCOVE_CITY_UNUSED_MART 13 -#define MAP_GROUP_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB 13 -#define MAP_GROUP_LILYCOVE_CITY_HARBOR 13 -#define MAP_GROUP_LILYCOVE_CITY_EMPTY_MAP 13 -#define MAP_GROUP_LILYCOVE_CITY_MOVE_DELETERS_HOUSE 13 -#define MAP_GROUP_LILYCOVE_CITY_HOUSE1 13 -#define MAP_GROUP_LILYCOVE_CITY_HOUSE2 13 -#define MAP_GROUP_LILYCOVE_CITY_HOUSE3 13 -#define MAP_GROUP_LILYCOVE_CITY_HOUSE4 13 -#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_1F 13 -#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_2F 13 -#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_3F 13 -#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_4F 13 -#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_5F 13 -#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP 13 -#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR 13 - -//-------------------------------------------------- -// Map Group 14 -//-------------------------------------------------- - -enum -{ - MAP_ID_MOSSDEEP_CITY_GYM, - MAP_ID_MOSSDEEP_CITY_HOUSE1, - MAP_ID_MOSSDEEP_CITY_HOUSE2, - MAP_ID_MOSSDEEP_CITY_POKEMON_CENTER_1F, - MAP_ID_MOSSDEEP_CITY_POKEMON_CENTER_2F, - MAP_ID_MOSSDEEP_CITY_MART, - MAP_ID_MOSSDEEP_CITY_HOUSE3, - MAP_ID_MOSSDEEP_CITY_STEVENS_HOUSE, - MAP_ID_MOSSDEEP_CITY_HOUSE4, - MAP_ID_MOSSDEEP_CITY_SPACE_CENTER_1F, - MAP_ID_MOSSDEEP_CITY_SPACE_CENTER_2F, - MAP_ID_MOSSDEEP_CITY_GAME_CORNER_1F, - MAP_ID_MOSSDEEP_CITY_GAME_CORNER_B1F, -}; - -#define MAP_GROUP_MOSSDEEP_CITY_GYM 14 -#define MAP_GROUP_MOSSDEEP_CITY_HOUSE1 14 -#define MAP_GROUP_MOSSDEEP_CITY_HOUSE2 14 -#define MAP_GROUP_MOSSDEEP_CITY_POKEMON_CENTER_1F 14 -#define MAP_GROUP_MOSSDEEP_CITY_POKEMON_CENTER_2F 14 -#define MAP_GROUP_MOSSDEEP_CITY_MART 14 -#define MAP_GROUP_MOSSDEEP_CITY_HOUSE3 14 -#define MAP_GROUP_MOSSDEEP_CITY_STEVENS_HOUSE 14 -#define MAP_GROUP_MOSSDEEP_CITY_HOUSE4 14 -#define MAP_GROUP_MOSSDEEP_CITY_SPACE_CENTER_1F 14 -#define MAP_GROUP_MOSSDEEP_CITY_SPACE_CENTER_2F 14 -#define MAP_GROUP_MOSSDEEP_CITY_GAME_CORNER_1F 14 -#define MAP_GROUP_MOSSDEEP_CITY_GAME_CORNER_B1F 14 - -//-------------------------------------------------- -// Map Group 15 -//-------------------------------------------------- - -enum -{ - MAP_ID_SOOTOPOLIS_CITY_GYM_1F, - MAP_ID_SOOTOPOLIS_CITY_GYM_B1F, - MAP_ID_SOOTOPOLIS_CITY_POKEMON_CENTER_1F, - MAP_ID_SOOTOPOLIS_CITY_POKEMON_CENTER_2F, - MAP_ID_SOOTOPOLIS_CITY_MART, - MAP_ID_SOOTOPOLIS_CITY_HOUSE1, - MAP_ID_SOOTOPOLIS_CITY_HOUSE2, - MAP_ID_SOOTOPOLIS_CITY_HOUSE3, - MAP_ID_SOOTOPOLIS_CITY_HOUSE4, - MAP_ID_SOOTOPOLIS_CITY_HOUSE5, - MAP_ID_SOOTOPOLIS_CITY_HOUSE6, - MAP_ID_SOOTOPOLIS_CITY_HOUSE7, - MAP_ID_SOOTOPOLIS_CITY_HOUSE8, -}; - -#define MAP_GROUP_SOOTOPOLIS_CITY_GYM_1F 15 -#define MAP_GROUP_SOOTOPOLIS_CITY_GYM_B1F 15 -#define MAP_GROUP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F 15 -#define MAP_GROUP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F 15 -#define MAP_GROUP_SOOTOPOLIS_CITY_MART 15 -#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE1 15 -#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE2 15 -#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE3 15 -#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE4 15 -#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE5 15 -#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE6 15 -#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE7 15 -#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE8 15 - -//-------------------------------------------------- -// Map Group 16 -//-------------------------------------------------- - -enum -{ - MAP_ID_EVER_GRANDE_CITY_SIDNEYS_ROOM, - MAP_ID_EVER_GRANDE_CITY_PHOEBES_ROOM, - MAP_ID_EVER_GRANDE_CITY_GLACIAS_ROOM, - MAP_ID_EVER_GRANDE_CITY_DRAKES_ROOM, - MAP_ID_EVER_GRANDE_CITY_CHAMPIONS_ROOM, - MAP_ID_EVER_GRANDE_CITY_CORRIDOR1, - MAP_ID_EVER_GRANDE_CITY_CORRIDOR2, - MAP_ID_EVER_GRANDE_CITY_CORRIDOR3, - MAP_ID_EVER_GRANDE_CITY_CORRIDOR4, - MAP_ID_EVER_GRANDE_CITY_CORRIDOR5, - MAP_ID_EVER_GRANDE_CITY_POKEMON_LEAGUE, - MAP_ID_EVER_GRANDE_CITY_HALL_OF_FAME, - MAP_ID_EVER_GRANDE_CITY_POKEMON_CENTER_1F, - MAP_ID_EVER_GRANDE_CITY_POKEMON_CENTER_2F, -}; - -#define MAP_GROUP_EVER_GRANDE_CITY_SIDNEYS_ROOM 16 -#define MAP_GROUP_EVER_GRANDE_CITY_PHOEBES_ROOM 16 -#define MAP_GROUP_EVER_GRANDE_CITY_GLACIAS_ROOM 16 -#define MAP_GROUP_EVER_GRANDE_CITY_DRAKES_ROOM 16 -#define MAP_GROUP_EVER_GRANDE_CITY_CHAMPIONS_ROOM 16 -#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR1 16 -#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR2 16 -#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR3 16 -#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR4 16 -#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR5 16 -#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_LEAGUE 16 -#define MAP_GROUP_EVER_GRANDE_CITY_HALL_OF_FAME 16 -#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_CENTER_1F 16 -#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_CENTER_2F 16 - -//-------------------------------------------------- -// Map Group 17 -//-------------------------------------------------- - -enum -{ - MAP_ID_ROUTE104_MR_BRINEYS_HOUSE, - MAP_ID_ROUTE104_PRETTY_PETAL_FLOWER_SHOP, -}; - -#define MAP_GROUP_ROUTE104_MR_BRINEYS_HOUSE 17 -#define MAP_GROUP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP 17 - -//-------------------------------------------------- -// Map Group 18 -//-------------------------------------------------- - -enum -{ - MAP_ID_ROUTE111_WINSTRATE_FAMILYS_HOUSE, - MAP_ID_ROUTE111_OLD_LADYS_REST_STOP, -}; - -#define MAP_GROUP_ROUTE111_WINSTRATE_FAMILYS_HOUSE 18 -#define MAP_GROUP_ROUTE111_OLD_LADYS_REST_STOP 18 - -//-------------------------------------------------- -// Map Group 19 -//-------------------------------------------------- - -enum -{ - MAP_ID_ROUTE112_CABLE_CAR_STATION, - MAP_ID_MT_CHIMNEY_CABLE_CAR_STATION, -}; - -#define MAP_GROUP_ROUTE112_CABLE_CAR_STATION 19 -#define MAP_GROUP_MT_CHIMNEY_CABLE_CAR_STATION 19 - -//-------------------------------------------------- -// Map Group 20 -//-------------------------------------------------- - -enum -{ - MAP_ID_ROUTE114_FOSSIL_MANIACS_HOUSE, - MAP_ID_ROUTE114_FOSSIL_MANIACS_TUNNEL, - MAP_ID_ROUTE114_LANETTES_HOUSE, -}; - -#define MAP_GROUP_ROUTE114_FOSSIL_MANIACS_HOUSE 20 -#define MAP_GROUP_ROUTE114_FOSSIL_MANIACS_TUNNEL 20 -#define MAP_GROUP_ROUTE114_LANETTES_HOUSE 20 - -//-------------------------------------------------- -// Map Group 21 -//-------------------------------------------------- - -enum -{ - MAP_ID_ROUTE116_TUNNELERS_REST_HOUSE, -}; - -#define MAP_GROUP_ROUTE116_TUNNELERS_REST_HOUSE 21 - -//-------------------------------------------------- -// Map Group 22 -//-------------------------------------------------- - -enum -{ - MAP_ID_ROUTE117_POKEMON_DAY_CARE, -}; - -#define MAP_GROUP_ROUTE117_POKEMON_DAY_CARE 22 - -//-------------------------------------------------- -// Map Group 23 -//-------------------------------------------------- - -enum -{ - MAP_ID_ROUTE121_SAFARI_ZONE_ENTRANCE, -}; - -#define MAP_GROUP_ROUTE121_SAFARI_ZONE_ENTRANCE 23 - -//-------------------------------------------------- -// Map Group 24 -//-------------------------------------------------- - -enum -{ - MAP_ID_METEOR_FALLS_1F_1R, - MAP_ID_METEOR_FALLS_1F_2R, - MAP_ID_METEOR_FALLS_B1F_1R, - MAP_ID_METEOR_FALLS_B1F_2R, - MAP_ID_RUSTURF_TUNNEL, - MAP_ID_UNDERWATER_SOOTOPOLIS_CITY, - MAP_ID_DESERT_RUINS, - MAP_ID_GRANITE_CAVE_1F, - MAP_ID_GRANITE_CAVE_B1F, - MAP_ID_GRANITE_CAVE_B2F, - MAP_ID_GRANITE_CAVE_STEVENS_ROOM, - MAP_ID_PETALBURG_WOODS, - MAP_ID_MT_CHIMNEY, - MAP_ID_JAGGED_PASS, - MAP_ID_FIERY_PATH, - MAP_ID_MT_PYRE_1F, - MAP_ID_MT_PYRE_2F, - MAP_ID_MT_PYRE_3F, - MAP_ID_MT_PYRE_4F, - MAP_ID_MT_PYRE_5F, - MAP_ID_MT_PYRE_6F, - MAP_ID_MT_PYRE_EXTERIOR, - MAP_ID_MT_PYRE_SUMMIT, - MAP_ID_AQUA_HIDEOUT_1F, - MAP_ID_AQUA_HIDEOUT_B1F, - MAP_ID_AQUA_HIDEOUT_B2F, - MAP_ID_UNDERWATER_SEAFLOOR_CAVERN, - MAP_ID_SEAFLOOR_CAVERN_ENTRANCE, - MAP_ID_SEAFLOOR_CAVERN_ROOM1, - MAP_ID_SEAFLOOR_CAVERN_ROOM2, - MAP_ID_SEAFLOOR_CAVERN_ROOM3, - MAP_ID_SEAFLOOR_CAVERN_ROOM4, - MAP_ID_SEAFLOOR_CAVERN_ROOM5, - MAP_ID_SEAFLOOR_CAVERN_ROOM6, - MAP_ID_SEAFLOOR_CAVERN_ROOM7, - MAP_ID_SEAFLOOR_CAVERN_ROOM8, - MAP_ID_SEAFLOOR_CAVERN_ROOM9, - MAP_ID_CAVE_OF_ORIGIN_ENTRANCE, - MAP_ID_CAVE_OF_ORIGIN_1F, - MAP_ID_CAVE_OF_ORIGIN_B1F, - MAP_ID_CAVE_OF_ORIGIN_B2F, - MAP_ID_CAVE_OF_ORIGIN_B3F, - MAP_ID_CAVE_OF_ORIGIN_B4F, - MAP_ID_VICTORY_ROAD_1F, - MAP_ID_VICTORY_ROAD_B1F, - MAP_ID_VICTORY_ROAD_B2F, - MAP_ID_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM, - MAP_ID_SHOAL_CAVE_LOW_TIDE_INNER_ROOM, - MAP_ID_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM, - MAP_ID_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM, - MAP_ID_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM, - MAP_ID_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM, - MAP_ID_NEW_MAUVILLE_ENTRANCE, - MAP_ID_NEW_MAUVILLE_INSIDE, - MAP_ID_ABANDONED_SHIP_DECK, - MAP_ID_ABANDONED_SHIP_CORRIDORS_1F, - MAP_ID_ABANDONED_SHIP_ROOMS_1F, - MAP_ID_ABANDONED_SHIP_CORRIDORS_B1F, - MAP_ID_ABANDONED_SHIP_ROOMS_B1F, - MAP_ID_ABANDONED_SHIP_ROOMS2_B1F, - MAP_ID_ABANDONED_SHIP_UNDERWATER1, - MAP_ID_ABANDONED_SHIP_ROOM_B1F, - MAP_ID_ABANDONED_SHIP_ROOMS2_1F, - MAP_ID_ABANDONED_SHIP_CAPTAINS_OFFICE, - MAP_ID_ABANDONED_SHIP_UNDERWATER2, - MAP_ID_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS, - MAP_ID_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS, - MAP_ID_ISLAND_CAVE, - MAP_ID_ANCIENT_TOMB, - MAP_ID_UNDERWATER_ROUTE134, - MAP_ID_UNDERWATER_SEALED_CHAMBER, - MAP_ID_SEALED_CHAMBER_OUTER_ROOM, - MAP_ID_SEALED_CHAMBER_INNER_ROOM, - MAP_ID_SCORCHED_SLAB, - MAP_ID_MAGMA_HIDEOUT_1F, - MAP_ID_MAGMA_HIDEOUT_B1F, - MAP_ID_MAGMA_HIDEOUT_B2F, - MAP_ID_SKY_PILLAR_ENTRANCE, - MAP_ID_SKY_PILLAR_OUTSIDE, - MAP_ID_SKY_PILLAR_1F, - MAP_ID_SKY_PILLAR_2F, - MAP_ID_SKY_PILLAR_3F, - MAP_ID_SKY_PILLAR_4F, - MAP_ID_SHOAL_CAVE_LOW_TIDE_ICE_ROOM, - MAP_ID_SKY_PILLAR_5F, - MAP_ID_SKY_PILLAR_TOP, -}; - -#define MAP_GROUP_METEOR_FALLS_1F_1R 24 -#define MAP_GROUP_METEOR_FALLS_1F_2R 24 -#define MAP_GROUP_METEOR_FALLS_B1F_1R 24 -#define MAP_GROUP_METEOR_FALLS_B1F_2R 24 -#define MAP_GROUP_RUSTURF_TUNNEL 24 -#define MAP_GROUP_UNDERWATER_SOOTOPOLIS_CITY 24 -#define MAP_GROUP_DESERT_RUINS 24 -#define MAP_GROUP_GRANITE_CAVE_1F 24 -#define MAP_GROUP_GRANITE_CAVE_B1F 24 -#define MAP_GROUP_GRANITE_CAVE_B2F 24 -#define MAP_GROUP_GRANITE_CAVE_STEVENS_ROOM 24 -#define MAP_GROUP_PETALBURG_WOODS 24 -#define MAP_GROUP_MT_CHIMNEY 24 -#define MAP_GROUP_JAGGED_PASS 24 -#define MAP_GROUP_FIERY_PATH 24 -#define MAP_GROUP_MT_PYRE_1F 24 -#define MAP_GROUP_MT_PYRE_2F 24 -#define MAP_GROUP_MT_PYRE_3F 24 -#define MAP_GROUP_MT_PYRE_4F 24 -#define MAP_GROUP_MT_PYRE_5F 24 -#define MAP_GROUP_MT_PYRE_6F 24 -#define MAP_GROUP_MT_PYRE_EXTERIOR 24 -#define MAP_GROUP_MT_PYRE_SUMMIT 24 -#define MAP_GROUP_AQUA_HIDEOUT_1F 24 -#define MAP_GROUP_AQUA_HIDEOUT_B1F 24 -#define MAP_GROUP_AQUA_HIDEOUT_B2F 24 -#define MAP_GROUP_UNDERWATER_SEAFLOOR_CAVERN 24 -#define MAP_GROUP_SEAFLOOR_CAVERN_ENTRANCE 24 -#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM1 24 -#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM2 24 -#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM3 24 -#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM4 24 -#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM5 24 -#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM6 24 -#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM7 24 -#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM8 24 -#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM9 24 -#define MAP_GROUP_CAVE_OF_ORIGIN_ENTRANCE 24 -#define MAP_GROUP_CAVE_OF_ORIGIN_1F 24 -#define MAP_GROUP_CAVE_OF_ORIGIN_B1F 24 -#define MAP_GROUP_CAVE_OF_ORIGIN_B2F 24 -#define MAP_GROUP_CAVE_OF_ORIGIN_B3F 24 -#define MAP_GROUP_CAVE_OF_ORIGIN_B4F 24 -#define MAP_GROUP_VICTORY_ROAD_1F 24 -#define MAP_GROUP_VICTORY_ROAD_B1F 24 -#define MAP_GROUP_VICTORY_ROAD_B2F 24 -#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM 24 -#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM 24 -#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM 24 -#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM 24 -#define MAP_GROUP_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM 24 -#define MAP_GROUP_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM 24 -#define MAP_GROUP_NEW_MAUVILLE_ENTRANCE 24 -#define MAP_GROUP_NEW_MAUVILLE_INSIDE 24 -#define MAP_GROUP_ABANDONED_SHIP_DECK 24 -#define MAP_GROUP_ABANDONED_SHIP_CORRIDORS_1F 24 -#define MAP_GROUP_ABANDONED_SHIP_ROOMS_1F 24 -#define MAP_GROUP_ABANDONED_SHIP_CORRIDORS_B1F 24 -#define MAP_GROUP_ABANDONED_SHIP_ROOMS_B1F 24 -#define MAP_GROUP_ABANDONED_SHIP_ROOMS2_B1F 24 -#define MAP_GROUP_ABANDONED_SHIP_UNDERWATER1 24 -#define MAP_GROUP_ABANDONED_SHIP_ROOM_B1F 24 -#define MAP_GROUP_ABANDONED_SHIP_ROOMS2_1F 24 -#define MAP_GROUP_ABANDONED_SHIP_CAPTAINS_OFFICE 24 -#define MAP_GROUP_ABANDONED_SHIP_UNDERWATER2 24 -#define MAP_GROUP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS 24 -#define MAP_GROUP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS 24 -#define MAP_GROUP_ISLAND_CAVE 24 -#define MAP_GROUP_ANCIENT_TOMB 24 -#define MAP_GROUP_UNDERWATER_ROUTE134 24 -#define MAP_GROUP_UNDERWATER_SEALED_CHAMBER 24 -#define MAP_GROUP_SEALED_CHAMBER_OUTER_ROOM 24 -#define MAP_GROUP_SEALED_CHAMBER_INNER_ROOM 24 -#define MAP_GROUP_SCORCHED_SLAB 24 -#define MAP_GROUP_MAGMA_HIDEOUT_1F 24 -#define MAP_GROUP_MAGMA_HIDEOUT_B1F 24 -#define MAP_GROUP_MAGMA_HIDEOUT_B2F 24 -#define MAP_GROUP_SKY_PILLAR_ENTRANCE 24 -#define MAP_GROUP_SKY_PILLAR_OUTSIDE 24 -#define MAP_GROUP_SKY_PILLAR_1F 24 -#define MAP_GROUP_SKY_PILLAR_2F 24 -#define MAP_GROUP_SKY_PILLAR_3F 24 -#define MAP_GROUP_SKY_PILLAR_4F 24 -#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM 24 -#define MAP_GROUP_SKY_PILLAR_5F 24 -#define MAP_GROUP_SKY_PILLAR_TOP 24 - -//-------------------------------------------------- -// Map Group 25 -//-------------------------------------------------- - -enum -{ - MAP_ID_SECRET_BASE_RED_CAVE1, - MAP_ID_SECRET_BASE_BROWN_CAVE1, - MAP_ID_SECRET_BASE_BLUE_CAVE1, - MAP_ID_SECRET_BASE_YELLOW_CAVE1, - MAP_ID_SECRET_BASE_TREE1, - MAP_ID_SECRET_BASE_SHRUB1, - MAP_ID_SECRET_BASE_RED_CAVE2, - MAP_ID_SECRET_BASE_BROWN_CAVE2, - MAP_ID_SECRET_BASE_BLUE_CAVE2, - MAP_ID_SECRET_BASE_YELLOW_CAVE2, - MAP_ID_SECRET_BASE_TREE2, - MAP_ID_SECRET_BASE_SHRUB2, - MAP_ID_SECRET_BASE_RED_CAVE3, - MAP_ID_SECRET_BASE_BROWN_CAVE3, - MAP_ID_SECRET_BASE_BLUE_CAVE3, - MAP_ID_SECRET_BASE_YELLOW_CAVE3, - MAP_ID_SECRET_BASE_TREE3, - MAP_ID_SECRET_BASE_SHRUB3, - MAP_ID_SECRET_BASE_RED_CAVE4, - MAP_ID_SECRET_BASE_BROWN_CAVE4, - MAP_ID_SECRET_BASE_BLUE_CAVE4, - MAP_ID_SECRET_BASE_YELLOW_CAVE4, - MAP_ID_SECRET_BASE_TREE4, - MAP_ID_SECRET_BASE_SHRUB4, - MAP_ID_SINGLE_BATTLE_COLOSSEUM, - MAP_ID_TRADE_CENTER, - MAP_ID_RECORD_CORNER, - MAP_ID_DOUBLE_BATTLE_COLOSSEUM, - MAP_ID_LINK_CONTEST_ROOM1, - MAP_ID_UNKNOWN_MAP_25_29, - MAP_ID_UNKNOWN_MAP_25_30, - MAP_ID_UNKNOWN_MAP_25_31, - MAP_ID_UNKNOWN_MAP_25_32, - MAP_ID_UNKNOWN_MAP_25_33, - MAP_ID_UNKNOWN_MAP_25_34, - MAP_ID_LINK_CONTEST_ROOM2, - MAP_ID_LINK_CONTEST_ROOM3, - MAP_ID_LINK_CONTEST_ROOM4, - MAP_ID_LINK_CONTEST_ROOM5, - MAP_ID_LINK_CONTEST_ROOM6, - MAP_ID_INSIDE_OF_TRUCK, - MAP_ID_SS_TIDAL_CORRIDOR, - MAP_ID_SS_TIDAL_LOWER_DECK, - MAP_ID_SS_TIDAL_ROOMS, -}; - -#define MAP_GROUP_SECRET_BASE_RED_CAVE1 25 -#define MAP_GROUP_SECRET_BASE_BROWN_CAVE1 25 -#define MAP_GROUP_SECRET_BASE_BLUE_CAVE1 25 -#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE1 25 -#define MAP_GROUP_SECRET_BASE_TREE1 25 -#define MAP_GROUP_SECRET_BASE_SHRUB1 25 -#define MAP_GROUP_SECRET_BASE_RED_CAVE2 25 -#define MAP_GROUP_SECRET_BASE_BROWN_CAVE2 25 -#define MAP_GROUP_SECRET_BASE_BLUE_CAVE2 25 -#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE2 25 -#define MAP_GROUP_SECRET_BASE_TREE2 25 -#define MAP_GROUP_SECRET_BASE_SHRUB2 25 -#define MAP_GROUP_SECRET_BASE_RED_CAVE3 25 -#define MAP_GROUP_SECRET_BASE_BROWN_CAVE3 25 -#define MAP_GROUP_SECRET_BASE_BLUE_CAVE3 25 -#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE3 25 -#define MAP_GROUP_SECRET_BASE_TREE3 25 -#define MAP_GROUP_SECRET_BASE_SHRUB3 25 -#define MAP_GROUP_SECRET_BASE_RED_CAVE4 25 -#define MAP_GROUP_SECRET_BASE_BROWN_CAVE4 25 -#define MAP_GROUP_SECRET_BASE_BLUE_CAVE4 25 -#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE4 25 -#define MAP_GROUP_SECRET_BASE_TREE4 25 -#define MAP_GROUP_SECRET_BASE_SHRUB4 25 -#define MAP_GROUP_SINGLE_BATTLE_COLOSSEUM 25 -#define MAP_GROUP_TRADE_CENTER 25 -#define MAP_GROUP_RECORD_CORNER 25 -#define MAP_GROUP_DOUBLE_BATTLE_COLOSSEUM 25 -#define MAP_GROUP_LINK_CONTEST_ROOM1 25 -#define MAP_GROUP_UNKNOWN_MAP_25_29 25 -#define MAP_GROUP_UNKNOWN_MAP_25_30 25 -#define MAP_GROUP_UNKNOWN_MAP_25_31 25 -#define MAP_GROUP_UNKNOWN_MAP_25_32 25 -#define MAP_GROUP_UNKNOWN_MAP_25_33 25 -#define MAP_GROUP_UNKNOWN_MAP_25_34 25 -#define MAP_GROUP_LINK_CONTEST_ROOM2 25 -#define MAP_GROUP_LINK_CONTEST_ROOM3 25 -#define MAP_GROUP_LINK_CONTEST_ROOM4 25 -#define MAP_GROUP_LINK_CONTEST_ROOM5 25 -#define MAP_GROUP_LINK_CONTEST_ROOM6 25 -#define MAP_GROUP_INSIDE_OF_TRUCK 25 -#define MAP_GROUP_SS_TIDAL_CORRIDOR 25 -#define MAP_GROUP_SS_TIDAL_LOWER_DECK 25 -#define MAP_GROUP_SS_TIDAL_ROOMS 25 - -//-------------------------------------------------- -// Map Group 26 -//-------------------------------------------------- - -enum -{ - MAP_ID_SAFARI_ZONE_NORTHWEST, - MAP_ID_SAFARI_ZONE_NORTHEAST, - MAP_ID_SAFARI_ZONE_SOUTHWEST, - MAP_ID_SAFARI_ZONE_SOUTHEAST, - MAP_ID_BATTLE_TOWER_OUTSIDE, - MAP_ID_BATTLE_TOWER_LOBBY, - MAP_ID_BATTLE_TOWER_ELEVATOR, - MAP_ID_BATTLE_TOWER_CORRIDOR, - MAP_ID_BATTLE_TOWER_BATTLE_ROOM, - MAP_ID_SOUTHERN_ISLAND_EXTERIOR, - MAP_ID_SOUTHERN_ISLAND_INTERIOR, - MAP_ID_SAFARI_ZONE_REST_HOUSE, -}; - -#define MAP_GROUP_SAFARI_ZONE_NORTHWEST 26 -#define MAP_GROUP_SAFARI_ZONE_NORTHEAST 26 -#define MAP_GROUP_SAFARI_ZONE_SOUTHWEST 26 -#define MAP_GROUP_SAFARI_ZONE_SOUTHEAST 26 -#define MAP_GROUP_BATTLE_TOWER_OUTSIDE 26 -#define MAP_GROUP_BATTLE_TOWER_LOBBY 26 -#define MAP_GROUP_BATTLE_TOWER_ELEVATOR 26 -#define MAP_GROUP_BATTLE_TOWER_CORRIDOR 26 -#define MAP_GROUP_BATTLE_TOWER_BATTLE_ROOM 26 -#define MAP_GROUP_SOUTHERN_ISLAND_EXTERIOR 26 -#define MAP_GROUP_SOUTHERN_ISLAND_INTERIOR 26 -#define MAP_GROUP_SAFARI_ZONE_REST_HOUSE 26 - -//-------------------------------------------------- -// Map Group 27 -//-------------------------------------------------- - -enum -{ - MAP_ID_ROUTE104_PROTOTYPE, - MAP_ID_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP, -}; - -#define MAP_GROUP_ROUTE104_PROTOTYPE 27 -#define MAP_GROUP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP 27 - -//-------------------------------------------------- -// Map Group 28 -//-------------------------------------------------- - -enum -{ - MAP_ID_ROUTE109_SEASHORE_HOUSE, -}; - -#define MAP_GROUP_ROUTE109_SEASHORE_HOUSE 28 - -//-------------------------------------------------- -// Map Group 29 -//-------------------------------------------------- - -enum -{ - MAP_ID_ROUTE110_TRICK_HOUSE_ENTRANCE, - MAP_ID_ROUTE110_TRICK_HOUSE_END, - MAP_ID_ROUTE110_TRICK_HOUSE_CORRIDOR, - MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE1, - MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE2, - MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE3, - MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE4, - MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE5, - MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE6, - MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE7, - MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE8, - MAP_ID_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE, - MAP_ID_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE, -}; - -#define MAP_GROUP_ROUTE110_TRICK_HOUSE_ENTRANCE 29 -#define MAP_GROUP_ROUTE110_TRICK_HOUSE_END 29 -#define MAP_GROUP_ROUTE110_TRICK_HOUSE_CORRIDOR 29 -#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE1 29 -#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE2 29 -#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE3 29 -#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE4 29 -#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE5 29 -#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE6 29 -#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE7 29 -#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE8 29 -#define MAP_GROUP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE 29 -#define MAP_GROUP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE 29 - -//-------------------------------------------------- -// Map Group 30 -//-------------------------------------------------- - -enum -{ - MAP_ID_ROUTE113_GLASS_WORKSHOP, -}; - -#define MAP_GROUP_ROUTE113_GLASS_WORKSHOP 30 - -//-------------------------------------------------- -// Map Group 31 -//-------------------------------------------------- - -enum -{ - MAP_ID_ROUTE123_BERRY_MASTERS_HOUSE, -}; - -#define MAP_GROUP_ROUTE123_BERRY_MASTERS_HOUSE 31 - -//-------------------------------------------------- -// Map Group 32 -//-------------------------------------------------- - -enum -{ - MAP_ID_ROUTE119_WEATHER_INSTITUTE_1F, - MAP_ID_ROUTE119_WEATHER_INSTITUTE_2F, - MAP_ID_ROUTE119_HOUSE, -}; - -#define MAP_GROUP_ROUTE119_WEATHER_INSTITUTE_1F 32 -#define MAP_GROUP_ROUTE119_WEATHER_INSTITUTE_2F 32 -#define MAP_GROUP_ROUTE119_HOUSE 32 - -//-------------------------------------------------- -// Map Group 33 -//-------------------------------------------------- - -enum -{ - MAP_ID_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE, -}; - -#define MAP_GROUP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE 33 - -#endif // GUARD_MAP_CONSTANTS_H diff --git a/include/map_obj_lock.h b/include/map_obj_lock.h index f7352be22..9fb57743e 100644 --- a/include/map_obj_lock.h +++ b/include/map_obj_lock.h @@ -7,7 +7,7 @@ bool8 sub_8064CFC(void); void ScriptFreezeMapObjects(void); void sub_8064D38(u8 taskId); bool8 sub_8064DB4(void); -void sub_8064DD8(void); +void LockSelectedMapObject(void); void sub_8064E2C(void); void unref_sub_8064E5C(void); void sub_8064EAC(void); diff --git a/include/map_object_constants.h b/include/map_object_constants.h deleted file mode 100644 index 79482b54a..000000000 --- a/include/map_object_constants.h +++ /dev/null @@ -1,239 +0,0 @@ -#ifndef GUARD_MAP_OBJECT_CONSTANTS_H -#define GUARD_MAP_OBJECT_CONSTANTS_H - -enum -{ - MAP_OBJ_GFX_BRENDAN_NORMAL, - MAP_OBJ_GFX_BRENDAN_MACH_BIKE, - MAP_OBJ_GFX_BRENDAN_SURFING, - MAP_OBJ_GFX_BRENDAN_FIELD_MOVE, - MAP_OBJ_GFX_QUINTY_PLUMP, - MAP_OBJ_GFX_LITTLE_BOY_1, - MAP_OBJ_GFX_LITTLE_GIRL_1, - MAP_OBJ_GFX_BOY_1, - MAP_OBJ_GFX_GIRL_1, - MAP_OBJ_GFX_BOY_2, - MAP_OBJ_GFX_GIRL_2, - MAP_OBJ_GFX_LITTLE_BOY_2, - MAP_OBJ_GFX_LITTLE_GIRL_2, - MAP_OBJ_GFX_BOY_3, - MAP_OBJ_GFX_GIRL_3, - MAP_OBJ_GFX_BOY_4, - MAP_OBJ_GFX_WOMAN_1, - MAP_OBJ_GFX_FAT_MAN, - MAP_OBJ_GFX_WOMAN_2, - MAP_OBJ_GFX_MAN_1, - MAP_OBJ_GFX_WOMAN_3, - MAP_OBJ_GFX_OLD_MAN_1, - MAP_OBJ_GFX_OLD_WOMAN_1, - MAP_OBJ_GFX_MAN_2, - MAP_OBJ_GFX_WOMAN_4, - MAP_OBJ_GFX_MAN_3, - MAP_OBJ_GFX_WOMAN_5, - MAP_OBJ_GFX_COOK, - MAP_OBJ_GFX_WOMAN_6, - MAP_OBJ_GFX_OLD_MAN_2, - MAP_OBJ_GFX_OLD_WOMAN_2, - MAP_OBJ_GFX_CAMPER, - MAP_OBJ_GFX_PICNICKER, - MAP_OBJ_GFX_MAN_4, - MAP_OBJ_GFX_WOMAN_7, - MAP_OBJ_GFX_YOUNGSTER, - MAP_OBJ_GFX_BUG_CATCHER, - MAP_OBJ_GFX_PSYCHIC_M, - MAP_OBJ_GFX_SCHOOL_KID_M, - MAP_OBJ_GFX_MANIAC, - MAP_OBJ_GFX_HEX_MANIAC, - MAP_OBJ_GFX_WOMAN_8, - MAP_OBJ_GFX_SWIMMER_M, - MAP_OBJ_GFX_SWIMMER_F, - MAP_OBJ_GFX_BLACK_BELT, - MAP_OBJ_GFX_BEAUTY, - MAP_OBJ_GFX_SCIENTIST_1, - MAP_OBJ_GFX_LASS, - MAP_OBJ_GFX_GENTLEMAN, - MAP_OBJ_GFX_SAILOR, - MAP_OBJ_GFX_FISHERMAN, - MAP_OBJ_GFX_RUNNING_TRIATHLETE_M, - MAP_OBJ_GFX_RUNNING_TRIATHLETE_F, - MAP_OBJ_GFX_TUBER_F, - MAP_OBJ_GFX_TUBER_M, - MAP_OBJ_GFX_HIKER, - MAP_OBJ_GFX_CYCLING_TRIATHLETE_M, - MAP_OBJ_GFX_CYCLING_TRIATHLETE_F, - MAP_OBJ_GFX_NURSE, - MAP_OBJ_GFX_ITEM_BALL, - MAP_OBJ_GFX_BERRY_TREE, - MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES, - MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES, - MAP_OBJ_GFX_BRENDAN_ACRO_BIKE, - MAP_OBJ_GFX_PROF_BIRCH, - MAP_OBJ_GFX_MAN_5, - MAP_OBJ_GFX_MAN_6, - MAP_OBJ_GFX_REPORTER_M, - MAP_OBJ_GFX_REPORTER_F, - MAP_OBJ_GFX_BARD, - MAP_OBJ_GFX_HIPSTER, - MAP_OBJ_GFX_TRADER, - MAP_OBJ_GFX_STORYTELLER, - MAP_OBJ_GFX_GIDDY, - MAP_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_1, - MAP_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_2, - MAP_OBJ_GFX_UNUSED_NATU_DOLL, - MAP_OBJ_GFX_UNUSED_MAGNEMITE_DOLL, - MAP_OBJ_GFX_UNUSED_SQUIRTLE_DOLL, - MAP_OBJ_GFX_UNUSED_WOOPER_DOLL, - MAP_OBJ_GFX_UNUSED_PIKACHU_DOLL, - MAP_OBJ_GFX_UNUSED_PORYGON2_DOLL, - MAP_OBJ_GFX_CUTTABLE_TREE, - MAP_OBJ_GFX_MART_EMPLOYEE, - MAP_OBJ_GFX_ROOFTOP_SALE_WOMAN, - MAP_OBJ_GFX_TEALA, - MAP_OBJ_GFX_BREAKABLE_ROCK, - MAP_OBJ_GFX_PUSHABLE_BOULDER, - MAP_OBJ_GFX_MR_BRINEYS_BOAT, - MAP_OBJ_GFX_MAY_NORMAL, - MAP_OBJ_GFX_MAY_MACH_BIKE, - MAP_OBJ_GFX_MAY_ACRO_BIKE, - MAP_OBJ_GFX_MAY_SURFING, - MAP_OBJ_GFX_MAY_FIELD_MOVE, - MAP_OBJ_GFX_TRUCK, - MAP_OBJ_GFX_MACHOKE_CARRYING_BOX, - MAP_OBJ_GFX_MACHOKE_FACING_AWAY, - MAP_OBJ_GFX_BIRCHS_BAG, - MAP_OBJ_GFX_POOCHYENA, - MAP_OBJ_GFX_ARTIST, - MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL, - MAP_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE, - MAP_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE, - MAP_OBJ_GFX_RIVAL_BRENDAN_SURFING, - MAP_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE, - MAP_OBJ_GFX_RIVAL_MAY_NORMAL, - MAP_OBJ_GFX_RIVAL_MAY_MACH_BIKE, - MAP_OBJ_GFX_RIVAL_MAY_ACRO_BIKE, - MAP_OBJ_GFX_RIVAL_MAY_SURFING, - MAP_OBJ_GFX_RIVAL_MAY_FIELD_MOVE, - MAP_OBJ_GFX_CAMERAMAN, - MAP_OBJ_GFX_BRENDAN_UNDERWATER, - MAP_OBJ_GFX_MAY_UNDERWATER, - MAP_OBJ_GFX_MOVING_BOX, - MAP_OBJ_GFX_CABLE_CAR, - MAP_OBJ_GFX_SCIENTIST_2, - MAP_OBJ_GFX_MAN_7, - MAP_OBJ_GFX_AQUA_MEMBER_M, - MAP_OBJ_GFX_AQUA_MEMBER_F, - MAP_OBJ_GFX_MAGMA_MEMBER_M, - MAP_OBJ_GFX_MAGMA_MEMBER_F, - MAP_OBJ_GFX_SIDNEY, - MAP_OBJ_GFX_PHOEBE, - MAP_OBJ_GFX_GLACIA, - MAP_OBJ_GFX_DRAKE, - MAP_OBJ_GFX_ROXANNE, - MAP_OBJ_GFX_BRAWLY, - MAP_OBJ_GFX_WATTSON, - MAP_OBJ_GFX_FLANNERY, - MAP_OBJ_GFX_NORMAN, - MAP_OBJ_GFX_WINONA, - MAP_OBJ_GFX_LIZA, - MAP_OBJ_GFX_TATE, - MAP_OBJ_GFX_WALLACE, - MAP_OBJ_GFX_STEVEN, - MAP_OBJ_GFX_WALLY, - MAP_OBJ_GFX_LITTLE_BOY_3, - MAP_OBJ_GFX_BRENDAN_FISHING, - MAP_OBJ_GFX_MAY_FISHING, - MAP_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN, - MAP_OBJ_GFX_SS_TIDAL, - MAP_OBJ_GFX_SUBMARINE_SHADOW, - MAP_OBJ_GFX_PICHU_DOLL, - MAP_OBJ_GFX_PIKACHU_DOLL, - MAP_OBJ_GFX_MARILL_DOLL, - MAP_OBJ_GFX_TOGEPI_DOLL, - MAP_OBJ_GFX_CYNDAQUIL_DOLL, - MAP_OBJ_GFX_CHIKORITA_DOLL, - MAP_OBJ_GFX_TOTODILE_DOLL, - MAP_OBJ_GFX_JIGGLYPUFF_DOLL, - MAP_OBJ_GFX_MEOWTH_DOLL, - MAP_OBJ_GFX_CLEFAIRY_DOLL, - MAP_OBJ_GFX_DITTO_DOLL, - MAP_OBJ_GFX_SMOOCHUM_DOLL, - MAP_OBJ_GFX_TREECKO_DOLL, - MAP_OBJ_GFX_TORCHIC_DOLL, - MAP_OBJ_GFX_MUDKIP_DOLL, - MAP_OBJ_GFX_DUSKULL_DOLL, - MAP_OBJ_GFX_WYNAUT_DOLL, - MAP_OBJ_GFX_BALTOY_DOLL, - MAP_OBJ_GFX_KECLEON_DOLL, - MAP_OBJ_GFX_AZURILL_DOLL, - MAP_OBJ_GFX_SKITTY_DOLL, - MAP_OBJ_GFX_SWABLU_DOLL, - MAP_OBJ_GFX_GULPIN_DOLL, - MAP_OBJ_GFX_LOTAD_DOLL, - MAP_OBJ_GFX_SEEDOT_DOLL, - MAP_OBJ_GFX_PIKA_CUSHION, - MAP_OBJ_GFX_ROUND_CUSHION, - MAP_OBJ_GFX_KISS_CUSHION, - MAP_OBJ_GFX_ZIGZAG_CUSHION, - MAP_OBJ_GFX_SPIN_CUSHION, - MAP_OBJ_GFX_DIAMOND_CUSHION, - MAP_OBJ_GFX_BALL_CUSHION, - MAP_OBJ_GFX_GRASS_CUSHION, - MAP_OBJ_GFX_FIRE_CUSHION, - MAP_OBJ_GFX_WATER_CUSHION, - MAP_OBJ_GFX_BIG_SNORLAX_DOLL, - MAP_OBJ_GFX_BIG_RHYDON_DOLL, - MAP_OBJ_GFX_BIG_LAPRAS_DOLL, - MAP_OBJ_GFX_BIG_VENUSAUR_DOLL, - MAP_OBJ_GFX_BIG_CHARIZARD_DOLL, - MAP_OBJ_GFX_BIG_BLASTOISE_DOLL, - MAP_OBJ_GFX_BIG_WAILMER_DOLL, - MAP_OBJ_GFX_BIG_REGIROCK_DOLL, - MAP_OBJ_GFX_BIG_REGICE_DOLL, - MAP_OBJ_GFX_BIG_REGISTEEL_DOLL, - MAP_OBJ_GFX_LATIAS, - MAP_OBJ_GFX_LATIOS, - MAP_OBJ_GFX_BOY_5, - MAP_OBJ_GFX_CONTEST_JUDGE, - MAP_OBJ_GFX_BRENDAN_WATERING, - MAP_OBJ_GFX_MAY_WATERING, - MAP_OBJ_GFX_BRENDAN_DECORATING, - MAP_OBJ_GFX_MAY_DECORATING, - MAP_OBJ_GFX_ARCHIE, - MAP_OBJ_GFX_MAXIE, - MAP_OBJ_GFX_KYOGRE_1, - MAP_OBJ_GFX_GROUDON_1, - MAP_OBJ_GFX_FOSSIL, - MAP_OBJ_GFX_REGIROCK, - MAP_OBJ_GFX_REGICE, - MAP_OBJ_GFX_REGISTEEL, - MAP_OBJ_GFX_SKITTY, - MAP_OBJ_GFX_KECLEON_1, - MAP_OBJ_GFX_KYOGRE_2, - MAP_OBJ_GFX_GROUDON_2, - MAP_OBJ_GFX_RAYQUAZA, - MAP_OBJ_GFX_ZIGZAGOON, - MAP_OBJ_GFX_PIKACHU, - MAP_OBJ_GFX_AZUMARILL, - MAP_OBJ_GFX_WINGULL, - MAP_OBJ_GFX_KECLEON_2, - MAP_OBJ_GFX_TUBER_M_SWIMMING, - MAP_OBJ_GFX_AZURILL, - MAP_OBJ_GFX_MOM, - MAP_OBJ_GFX_LINK_BRENDAN, - MAP_OBJ_GFX_LINK_MAY, -}; - -enum { - SHADOW_SIZE_S, - SHADOW_SIZE_M, - SHADOW_SIZE_L, - SHADOW_SIZE_XL -}; - -enum { - TRACKS_NONE, - TRACKS_FOOT, - TRACKS_BIKE_TIRE -}; - -#endif // GUARD_MAP_OBJECT_CONSTANTS_H diff --git a/include/matsuda_debug_menu.h b/include/matsuda_debug_menu.h index 5df53d688..60f2dc48c 100644 --- a/include/matsuda_debug_menu.h +++ b/include/matsuda_debug_menu.h @@ -7,5 +7,31 @@ void sub_80AB184(void); void sub_80AA280(u8); void sub_80AA5E8(u8); void sub_80AA658(u8); +u8 MatsudaDebugMenu_Contest(void); +u8 MatsudaDebugMenu_ContestResults(void); +u8 MatsudaDebugMenu_ContestComm(void); +u8 MatsudaDebugMenu_CommTest(void); +u8 MatsudaDebugMenu_SetHighScore(void); +u8 MatsudaDebugMenu_ResetHighScore(void); +u8 MatsudaDebugMenu_SetArtMuseumItems(void); +void sub_80AA754(struct Sprite *sprite); +void sub_80AA8C8(struct Sprite *, s8); +void sub_80AA8D8(struct Sprite *, s8); +void sub_80AA8E8(struct Sprite *, s8); +void sub_80AA8F8(struct Sprite *, s8); +void sub_80AAC5C(struct Sprite *, s8); +void sub_80AAC5C(struct Sprite *, s8); +void sub_80AA930(struct Sprite *, s8); +void sub_80AA974(struct Sprite *, s8); +void sub_80AA9B8(struct Sprite *, s8); +void sub_80AA9FC(struct Sprite *, s8); +void sub_80AAA40(struct Sprite *, s8); +void sub_80AAA84(struct Sprite *, s8); +void sub_80AAAF0(struct Sprite *, s8); +void sub_80AAB30(struct Sprite *, s8); +void sub_80AAB70(struct Sprite *, s8); +void sub_80AABB0(struct Sprite *, s8); +void sub_80AABF0(struct Sprite *, s8); +void sub_80AAD44(struct Sprite *, s8); #endif diff --git a/include/mauville_old_man.h b/include/mauville_man.h index 473fcf5c8..622cd1bfb 100644 --- a/include/mauville_old_man.h +++ b/include/mauville_man.h @@ -1,11 +1,10 @@ #ifndef GUARD_MAUVILLE_OLD_MAN_H #define GUARD_MAUVILLE_OLD_MAN_H -void SetMauvilleOldMan(void); -void sub_80F7DC0(void); +#include "constants/mauville_man.h" + +void SetupMauvilleOldMan(void); void sub_80F7F30(void); -void sub_80F7F80(u8); void sub_80F83D0(void); -void sub_80F83F8(void); #endif // GUARD_MAUVILLE_OLD_MAN_H diff --git a/include/menu.h b/include/menu.h index e1bb4f1e4..9a5ca62a0 100644 --- a/include/menu.h +++ b/include/menu.h @@ -1,6 +1,7 @@ #ifndef GUARD_MENU_H #define GUARD_MENU_H +#include "task.h" #include "text.h" struct MenuAction @@ -12,7 +13,7 @@ struct MenuAction struct MenuAction2 { const u8 *text; - void (*func)(u8); + TaskFunc func; }; extern const struct MenuAction gMenuYesNoItems[]; @@ -43,7 +44,7 @@ u16 unref_sub_8071F98(u8, u8); void unref_sub_8071FBC(u16, u8, u8, u8, u8); void MenuDisplayMessageBox(void); void MenuPrintMessage(const u8 *, u8, u8); -void sub_8072044(const u8 *); +void MenuPrintMessageDefaultCoords(const u8 *); void MenuSetText(const u8 *); u8 MenuUpdateWindowText(void); u8 unref_sub_8072098(void); @@ -59,7 +60,7 @@ void sub_807274C(u8, u8, u8, u8, const struct MenuAction[], u8, u32); s8 sub_80727CC(void); u8 sub_807288C(u8); void PrintMenuItems(u8, u8, u8, const struct MenuAction[]); -void PrintMenuItemsReordered(u8, u8, u8, const struct MenuAction[], const u8*); +void PrintMenuItemsReordered(u8 left, u8 top, u8 menuItemCount, const struct MenuAction2 menuItems[], const u8 *order); void InitYesNoMenu(u8, u8, u8); void DisplayYesNoMenu(u8, u8, u32); s8 ProcessMenuInputNoWrap_(void); diff --git a/include/money.h b/include/money.h index 06ac00e92..9f4ef71bc 100644 --- a/include/money.h +++ b/include/money.h @@ -2,16 +2,16 @@ #define GUARD_MONEY_H bool8 IsEnoughMoney(u32, u32); -void sub_80B79B8(u32 *, u32); -void sub_80B79E0(u32 *, u32); -void sub_80B79F8(u8 *buffer, u32 arg1, u8 arg2); -void sub_80B7A94(u32 arg0, u8 arg1, u8 x, u8 y); +void AddMoney(u32 *, u32); +void RemoveMoney(u32 *, u32); +void GetMoneyAmountText(u8 *buffer, u32 arg1, u8 arg2); +void PrintMoneyAmount(u32 arg0, u8 arg1, u8 x, u8 y); void sub_80B7AEC(u32, u8 left, u8 top); void sub_80B7B34(u8, u8, int); -void sub_80B7BEC(u32, u8, u8); -void sub_80B7C14(u32, u8, u8); -void RemoveMoneyLabelObject(u8, u8); -bool8 sub_80B7CE8(void); -void sub_80B7D0C(void); +void UpdateMoneyWindow(u32, u8, u8); +void OpenMoneyWindow(u32, u8, u8); +void CloseMoneyWindow(u8, u8); +bool8 HasEnoughMoneyFor(void); +void PayMoneyFor(void); #endif // GUARD_MONEY_H diff --git a/include/mori_debug_menu.h b/include/mori_debug_menu.h index f1dc0de93..9b0a39fe3 100644 --- a/include/mori_debug_menu.h +++ b/include/mori_debug_menu.h @@ -3,14 +3,14 @@ bool8 sub_8083D4C(void); u8 MoriDebugMenu_SearchChild(u8 a1, u8 a2, u8 *ptr); -s8 MoriDebugMenu_Egg(void); -s8 MoriDebugMenu_MaleEgg(void); -s8 MoriDebugMenu_1000Steps(void); -s8 MoriDebugMenu_10000Steps(void); -s8 MoriDebugMenu_MoveTutor(void); -s8 MoriDebugMenu_BreedEgg(void); -s8 MoriDebugMenu_LongName(void); -s8 MoriDebugMenu_PokeblockCase(void); +u8 MoriDebugMenu_Egg(void); +u8 MoriDebugMenu_MaleEgg(void); +u8 MoriDebugMenu_1000Steps(void); +u8 MoriDebugMenu_10000Steps(void); +u8 MoriDebugMenu_MoveTutor(void); +u8 MoriDebugMenu_BreedEgg(void); +u8 MoriDebugMenu_LongName(void); +u8 MoriDebugMenu_PokeblockCase(void); bool8 MoriDebugMenuProcessInput(void); s8 InitMoriDebugMenu(void); diff --git a/include/moves.h b/include/moves.h deleted file mode 100644 index e3b6d3113..000000000 --- a/include/moves.h +++ /dev/null @@ -1,363 +0,0 @@ -#ifndef GUARD_MOVES_H -#define GUARD_MOVES_H - -enum -{ - MOVE_NONE, - MOVE_POUND, - MOVE_KARATE_CHOP, - MOVE_DOUBLE_SLAP, - MOVE_COMET_PUNCH, - MOVE_MEGA_PUNCH, - MOVE_PAY_DAY, - MOVE_FIRE_PUNCH, - MOVE_ICE_PUNCH, - MOVE_THUNDER_PUNCH, - MOVE_SCRATCH, - MOVE_VICE_GRIP, - MOVE_GUILLOTINE, - MOVE_RAZOR_WIND, - MOVE_SWORDS_DANCE, - MOVE_CUT, - MOVE_GUST, - MOVE_WING_ATTACK, - MOVE_WHIRLWIND, - MOVE_FLY, - MOVE_BIND, - MOVE_SLAM, - MOVE_VINE_WHIP, - MOVE_STOMP, - MOVE_DOUBLE_KICK, - MOVE_MEGA_KICK, - MOVE_JUMP_KICK, - MOVE_ROLLING_KICK, - MOVE_SAND_ATTACK, - MOVE_HEADBUTT, - MOVE_HORN_ATTACK, - MOVE_FURY_ATTACK, - MOVE_HORN_DRILL, - MOVE_TACKLE, - MOVE_BODY_SLAM, - MOVE_WRAP, - MOVE_TAKE_DOWN, - MOVE_THRASH, - MOVE_DOUBLE_EDGE, - MOVE_TAIL_WHIP, - MOVE_POISON_STING, - MOVE_TWINEEDLE, - MOVE_PIN_MISSILE, - MOVE_LEER, - MOVE_BITE, - MOVE_GROWL, - MOVE_ROAR, - MOVE_SING, - MOVE_SUPERSONIC, - MOVE_SONIC_BOOM, - MOVE_DISABLE, - MOVE_ACID, - MOVE_EMBER, - MOVE_FLAMETHROWER, - MOVE_MIST, - MOVE_WATER_GUN, - MOVE_HYDRO_PUMP, - MOVE_SURF, - MOVE_ICE_BEAM, - MOVE_BLIZZARD, - MOVE_PSYBEAM, - MOVE_BUBBLE_BEAM, - MOVE_AURORA_BEAM, - MOVE_HYPER_BEAM, - MOVE_PECK, - MOVE_DRILL_PECK, - MOVE_SUBMISSION, - MOVE_LOW_KICK, - MOVE_COUNTER, - MOVE_SEISMIC_TOSS, - MOVE_STRENGTH, - MOVE_ABSORB, - MOVE_MEGA_DRAIN, - MOVE_LEECH_SEED, - MOVE_GROWTH, - MOVE_RAZOR_LEAF, - MOVE_SOLAR_BEAM, - MOVE_POISON_POWDER, - MOVE_STUN_SPORE, - MOVE_SLEEP_POWDER, - MOVE_PETAL_DANCE, - MOVE_STRING_SHOT, - MOVE_DRAGON_RAGE, - MOVE_FIRE_SPIN, - MOVE_THUNDER_SHOCK, - MOVE_THUNDERBOLT, - MOVE_THUNDER_WAVE, - MOVE_THUNDER, - MOVE_ROCK_THROW, - MOVE_EARTHQUAKE, - MOVE_FISSURE, - MOVE_DIG, - MOVE_TOXIC, - MOVE_CONFUSION, - MOVE_PSYCHIC, - MOVE_HYPNOSIS, - MOVE_MEDITATE, - MOVE_AGILITY, - MOVE_QUICK_ATTACK, - MOVE_RAGE, - MOVE_TELEPORT, - MOVE_NIGHT_SHADE, - MOVE_MIMIC, - MOVE_SCREECH, - MOVE_DOUBLE_TEAM, - MOVE_RECOVER, - MOVE_HARDEN, - MOVE_MINIMIZE, - MOVE_SMOKESCREEN, - MOVE_CONFUSE_RAY, - MOVE_WITHDRAW, - MOVE_DEFENSE_CURL, - MOVE_BARRIER, - MOVE_LIGHT_SCREEN, - MOVE_HAZE, - MOVE_REFLECT, - MOVE_FOCUS_ENERGY, - MOVE_BIDE, - MOVE_METRONOME, - MOVE_MIRROR_MOVE, - MOVE_SELF_DESTRUCT, - MOVE_EGG_BOMB, - MOVE_LICK, - MOVE_SMOG, - MOVE_SLUDGE, - MOVE_BONE_CLUB, - MOVE_FIRE_BLAST, - MOVE_WATERFALL, - MOVE_CLAMP, - MOVE_SWIFT, - MOVE_SKULL_BASH, - MOVE_SPIKE_CANNON, - MOVE_CONSTRICT, - MOVE_AMNESIA, - MOVE_KINESIS, - MOVE_SOFT_BOILED, - MOVE_HI_JUMP_KICK, - MOVE_GLARE, - MOVE_DREAM_EATER, - MOVE_POISON_GAS, - MOVE_BARRAGE, - MOVE_LEECH_LIFE, - MOVE_LOVELY_KISS, - MOVE_SKY_ATTACK, - MOVE_TRANSFORM, - MOVE_BUBBLE, - MOVE_DIZZY_PUNCH, - MOVE_SPORE, - MOVE_FLASH, - MOVE_PSYWAVE, - MOVE_SPLASH, - MOVE_ACID_ARMOR, - MOVE_CRABHAMMER, - MOVE_EXPLOSION, - MOVE_FURY_SWIPES, - MOVE_BONEMERANG, - MOVE_REST, - MOVE_ROCK_SLIDE, - MOVE_HYPER_FANG, - MOVE_SHARPEN, - MOVE_CONVERSION, - MOVE_TRI_ATTACK, - MOVE_SUPER_FANG, - MOVE_SLASH, - MOVE_SUBSTITUTE, - MOVE_STRUGGLE, - MOVE_SKETCH, - MOVE_TRIPLE_KICK, - MOVE_THIEF, - MOVE_SPIDER_WEB, - MOVE_MIND_READER, - MOVE_NIGHTMARE, - MOVE_FLAME_WHEEL, - MOVE_SNORE, - MOVE_CURSE, - MOVE_FLAIL, - MOVE_CONVERSION_2, - MOVE_AEROBLAST, - MOVE_COTTON_SPORE, - MOVE_REVERSAL, - MOVE_SPITE, - MOVE_POWDER_SNOW, - MOVE_PROTECT, - MOVE_MACH_PUNCH, - MOVE_SCARY_FACE, - MOVE_FAINT_ATTACK, - MOVE_SWEET_KISS, - MOVE_BELLY_DRUM, - MOVE_SLUDGE_BOMB, - MOVE_MUD_SLAP, - MOVE_OCTAZOOKA, - MOVE_SPIKES, - MOVE_ZAP_CANNON, - MOVE_FORESIGHT, - MOVE_DESTINY_BOND, - MOVE_PERISH_SONG, - MOVE_ICY_WIND, - MOVE_DETECT, - MOVE_BONE_RUSH, - MOVE_LOCK_ON, - MOVE_OUTRAGE, - MOVE_SANDSTORM, - MOVE_GIGA_DRAIN, - MOVE_ENDURE, - MOVE_CHARM, - MOVE_ROLLOUT, - MOVE_FALSE_SWIPE, - MOVE_SWAGGER, - MOVE_MILK_DRINK, - MOVE_SPARK, - MOVE_FURY_CUTTER, - MOVE_STEEL_WING, - MOVE_MEAN_LOOK, - MOVE_ATTRACT, - MOVE_SLEEP_TALK, - MOVE_HEAL_BELL, - MOVE_RETURN, - MOVE_PRESENT, - MOVE_FRUSTRATION, - MOVE_SAFEGUARD, - MOVE_PAIN_SPLIT, - MOVE_SACRED_FIRE, - MOVE_MAGNITUDE, - MOVE_DYNAMIC_PUNCH, - MOVE_MEGAHORN, - MOVE_DRAGON_BREATH, - MOVE_BATON_PASS, - MOVE_ENCORE, - MOVE_PURSUIT, - MOVE_RAPID_SPIN, - MOVE_SWEET_SCENT, - MOVE_IRON_TAIL, - MOVE_METAL_CLAW, - MOVE_VITAL_THROW, - MOVE_MORNING_SUN, - MOVE_SYNTHESIS, - MOVE_MOONLIGHT, - MOVE_HIDDEN_POWER, - MOVE_CROSS_CHOP, - MOVE_TWISTER, - MOVE_RAIN_DANCE, - MOVE_SUNNY_DAY, - MOVE_CRUNCH, - MOVE_MIRROR_COAT, - MOVE_PSYCH_UP, - MOVE_EXTREME_SPEED, - MOVE_ANCIENT_POWER, - MOVE_SHADOW_BALL, - MOVE_FUTURE_SIGHT, - MOVE_ROCK_SMASH, - MOVE_WHIRLPOOL, - MOVE_BEAT_UP, - MOVE_FAKE_OUT, - MOVE_UPROAR, - MOVE_STOCKPILE, - MOVE_SPIT_UP, - MOVE_SWALLOW, - MOVE_HEAT_WAVE, - MOVE_HAIL, - MOVE_TORMENT, - MOVE_FLATTER, - MOVE_WILL_O_WISP, - MOVE_MEMENTO, - MOVE_FACADE, - MOVE_FOCUS_PUNCH, - MOVE_SMELLING_SALT, - MOVE_FOLLOW_ME, - MOVE_NATURE_POWER, - MOVE_CHARGE, - MOVE_TAUNT, - MOVE_HELPING_HAND, - MOVE_TRICK, - MOVE_ROLE_PLAY, - MOVE_WISH, - MOVE_ASSIST, - MOVE_INGRAIN, - MOVE_SUPERPOWER, - MOVE_MAGIC_COAT, - MOVE_RECYCLE, - MOVE_REVENGE, - MOVE_BRICK_BREAK, - MOVE_YAWN, - MOVE_KNOCK_OFF, - MOVE_ENDEAVOR, - MOVE_ERUPTION, - MOVE_SKILL_SWAP, - MOVE_IMPRISON, - MOVE_REFRESH, - MOVE_GRUDGE, - MOVE_SNATCH, - MOVE_SECRET_POWER, - MOVE_DIVE, - MOVE_ARM_THRUST, - MOVE_CAMOUFLAGE, - MOVE_TAIL_GLOW, - MOVE_LUSTER_PURGE, - MOVE_MIST_BALL, - MOVE_FEATHER_DANCE, - MOVE_TEETER_DANCE, - MOVE_BLAZE_KICK, - MOVE_MUD_SPORT, - MOVE_ICE_BALL, - MOVE_NEEDLE_ARM, - MOVE_SLACK_OFF, - MOVE_HYPER_VOICE, - MOVE_POISON_FANG, - MOVE_CRUSH_CLAW, - MOVE_BLAST_BURN, - MOVE_HYDRO_CANNON, - MOVE_METEOR_MASH, - MOVE_ASTONISH, - MOVE_WEATHER_BALL, - MOVE_AROMATHERAPY, - MOVE_FAKE_TEARS, - MOVE_AIR_CUTTER, - MOVE_OVERHEAT, - MOVE_ODOR_SLEUTH, - MOVE_ROCK_TOMB, - MOVE_SILVER_WIND, - MOVE_METAL_SOUND, - MOVE_GRASS_WHISTLE, - MOVE_TICKLE, - MOVE_COSMIC_POWER, - MOVE_WATER_SPOUT, - MOVE_SIGNAL_BEAM, - MOVE_SHADOW_PUNCH, - MOVE_EXTRASENSORY, - MOVE_SKY_UPPERCUT, - MOVE_SAND_TOMB, - MOVE_SHEER_COLD, - MOVE_MUDDY_WATER, - MOVE_BULLET_SEED, - MOVE_AERIAL_ACE, - MOVE_ICICLE_SPEAR, - MOVE_IRON_DEFENSE, - MOVE_BLOCK, - MOVE_HOWL, - MOVE_DRAGON_CLAW, - MOVE_FRENZY_PLANT, - MOVE_BULK_UP, - MOVE_BOUNCE, - MOVE_MUD_SHOT, - MOVE_POISON_TAIL, - MOVE_COVET, - MOVE_VOLT_TACKLE, - MOVE_MAGICAL_LEAF, - MOVE_WATER_SPORT, - MOVE_CALM_MIND, - MOVE_LEAF_BLADE, - MOVE_DRAGON_DANCE, - MOVE_ROCK_BLAST, - MOVE_SHOCK_WAVE, - MOVE_WATER_PULSE, - MOVE_DOOM_DESIRE, - MOVE_PSYCHO_BOOST, -}; - -#endif // GUARD_MOVES_H
\ No newline at end of file diff --git a/include/mystery_event_msg.h b/include/mystery_event_msg.h new file mode 100644 index 000000000..5523be694 --- /dev/null +++ b/include/mystery_event_msg.h @@ -0,0 +1,16 @@ +#ifndef GUARD_MYSTERY_EVENT_MSG_H +#define GUARD_MYSTERY_EVENT_MSG_H + +extern const u8 gOtherText_BerryObtainedDadHasIt[]; +extern const u8 gOtherText_BerryTransformed[]; +extern const u8 gOtherText_BerryAlreadyObtained[]; +extern const u8 gOtherText_SpecialRibbonReceived[]; +extern const u8 gOtherText_DexUpgraded[]; +extern const u8 gOtherText_RareWordAdded[]; +extern const u8 gOtherText_PokeWasSentOver[]; +extern const u8 gOtherText_PartyIsFull[]; +extern const u8 gOtherText_NewTrainerInHoenn[]; +extern const u8 gOtherText_NewAdversaryInBattleTower[]; +extern const u8 gOtherText_DataCannotUseVersion[]; + +#endif //GUARD_MYSTERY_EVENT_MSG_H diff --git a/include/new_game.h b/include/new_game.h index f59154af4..5be7f6265 100644 --- a/include/new_game.h +++ b/include/new_game.h @@ -6,7 +6,7 @@ void copy_word_to_mem(u8 *copyTo, u8 *copyFrom); void InitPlayerTrainerId(void); void SetDefaultOptions(void); void ClearPokedexFlags(void); -void sub_8052DA8(void); +void ResetContestAndMuseumWinners(void); void sub_8052DE4(void); void WarpToTruck(void); void ClearSav2(void); diff --git a/include/opponent_constants.h b/include/opponent_constants.h deleted file mode 100644 index 1829facaa..000000000 --- a/include/opponent_constants.h +++ /dev/null @@ -1,702 +0,0 @@ -#ifndef GUARD_OPPONENT_CONSTANTS_H -#define GUARD_OPPONENT_CONSTANTS_H - -enum -{ - OPPONENT_NONE, - OPPONENT_ARCHIE_1, - OPPONENT_GRUNT_1, - OPPONENT_GRUNT_2, - OPPONENT_GRUNT_3, - OPPONENT_GRUNT_4, - OPPONENT_GRUNT_5, - OPPONENT_GRUNT_6, - OPPONENT_GRUNT_7, - OPPONENT_GRUNT_8, - OPPONENT_GRUNT_9, - OPPONENT_GRUNT_10, - OPPONENT_GRUNT_11, - OPPONENT_GRUNT_12, - OPPONENT_GRUNT_13, - OPPONENT_GRUNT_14, - OPPONENT_GRUNT_15, - OPPONENT_GRUNT_16, - OPPONENT_GRUNT_17, - OPPONENT_GRUNT_18, - OPPONENT_GRUNT_19, - OPPONENT_GRUNT_20, - OPPONENT_GRUNT_21, - OPPONENT_GRUNT_22, - OPPONENT_GRUNT_23, - OPPONENT_GRUNT_24, - OPPONENT_GRUNT_25, - OPPONENT_GRUNT_26, - OPPONENT_GRUNT_27, - OPPONENT_ANONYMOUS_1, - OPPONENT_MATT_1, - OPPONENT_MATT_2, - OPPONENT_SHELLY_1, - OPPONENT_SHELLY_2, - OPPONENT_ARCHIE_2, - OPPONENT_ARCHIE_3, - OPPONENT_DAISY, - OPPONENT_ROSE_1, - OPPONENT_LILY, - OPPONENT_VIOLET, - OPPONENT_ROSE_2, - OPPONENT_ROSE_3, - OPPONENT_ROSE_4, - OPPONENT_ROSE_5, - OPPONENT_DUSTY_1, - OPPONENT_CHIP, - OPPONENT_FOSTER, - OPPONENT_DUSTY_2, - OPPONENT_DUSTY_3, - OPPONENT_DUSTY_4, - OPPONENT_DUSTY_5, - OPPONENT_GABBY_AND_TY_1, - OPPONENT_GABBY_AND_TY_2, - OPPONENT_GABBY_AND_TY_3, - OPPONENT_GABBY_AND_TY_4, - OPPONENT_GABBY_AND_TY_5, - OPPONENT_GABBY_AND_TY_6, - OPPONENT_LOLA_1, - OPPONENT_CARMEN, - OPPONENT_GWEN, - OPPONENT_LOLA_2, - OPPONENT_LOLA_3, - OPPONENT_LOLA_4, - OPPONENT_LOLA_5, - OPPONENT_RICKY_1, - OPPONENT_SIMON, - OPPONENT_CHARLIE, - OPPONENT_RICKY_2, - OPPONENT_RICKY_3, - OPPONENT_RICKY_4, - OPPONENT_RICKY_5, - OPPONENT_RANDALL, - OPPONENT_PARKER, - OPPONENT_GEORGE, - OPPONENT_BERKE, - OPPONENT_CLYDE, - OPPONENT_VINCENT, - OPPONENT_LEROY, - OPPONENT_WILTON_1, - OPPONENT_EDGAR, - OPPONENT_ALBERT, - OPPONENT_SAMUEL, - OPPONENT_VITO, - OPPONENT_OWEN, - OPPONENT_WILTON_2, - OPPONENT_WILTON_3, - OPPONENT_WILTON_4, - OPPONENT_WILTON_5, - OPPONENT_WARREN, - OPPONENT_MARY, - OPPONENT_LORI, - OPPONENT_JODY, - OPPONENT_WENDY, - OPPONENT_ELAINE, - OPPONENT_BROOKE_1, - OPPONENT_JENNIFER, - OPPONENT_HOPE, - OPPONENT_SHANNON, - OPPONENT_MICHELLE, - OPPONENT_CAROLINE, - OPPONENT_JULIE, - OPPONENT_BROOKE_2, - OPPONENT_BROOKE_3, - OPPONENT_BROOKE_4, - OPPONENT_BROOKE_5, - OPPONENT_PATRICIA, - OPPONENT_KINDRA, - OPPONENT_TAMMY, - OPPONENT_VALERIE_1, - OPPONENT_TASHA, - OPPONENT_VALERIE_2, - OPPONENT_VALERIE_3, - OPPONENT_VALERIE_4, - OPPONENT_VALERIE_5, - OPPONENT_CINDY_1, - OPPONENT_ANONYMOUS_2, - OPPONENT_BRIANNA_1, - OPPONENT_CINDY_2, - OPPONENT_BRIANNA_2, - OPPONENT_ANETTE, - OPPONENT_CINDY_3, - OPPONENT_CINDY_4, - OPPONENT_CINDY_5, - OPPONENT_CINDY_6, - OPPONENT_MELISSA, - OPPONENT_SHEILA, - OPPONENT_SHIRLEY, - OPPONENT_JESSICA_1, - OPPONENT_CONNIE, - OPPONENT_BRIDGET, - OPPONENT_OLIVIA, - OPPONENT_TIFFANY, - OPPONENT_JESSICA_2, - OPPONENT_JESSICA_3, - OPPONENT_JESSICA_4, - OPPONENT_JESSICA_5, - OPPONENT_WINSTON_1, - OPPONENT_ANONYMOUS_3, - OPPONENT_GARRET, - OPPONENT_WINSTON_2, - OPPONENT_WINSTON_3, - OPPONENT_WINSTON_4, - OPPONENT_WINSTON_5, - OPPONENT_STEVE_1, - OPPONENT_CHRIS, - OPPONENT_MARK, - OPPONENT_KENN, - OPPONENT_STEVE_2, - OPPONENT_STEVE_3, - OPPONENT_STEVE_4, - OPPONENT_STEVE_5, - OPPONENT_LUIS, - OPPONENT_AUSTIN, - OPPONENT_DOUGLAS, - OPPONENT_DARRIN, - OPPONENT_TONY_1, - OPPONENT_JEROME, - OPPONENT_MATTHEW, - OPPONENT_DAVID, - OPPONENT_SPENCER, - OPPONENT_ROLAND, - OPPONENT_CODY, - OPPONENT_STAN, - OPPONENT_BARRY, - OPPONENT_DEAN, - OPPONENT_RODNEY, - OPPONENT_RICHARD, - OPPONENT_HERMAN, - OPPONENT_ANONYMOUS_4, - OPPONENT_GILBERT, - OPPONENT_FRANKLIN, - OPPONENT_DANNY, - OPPONENT_JACK, - OPPONENT_DUDLEY, - OPPONENT_CHAD, - OPPONENT_TONY_2, - OPPONENT_TONY_3, - OPPONENT_TONY_4, - OPPONENT_TONY_5, - OPPONENT_HIDEKI, - OPPONENT_HITOSHI, - OPPONENT_KIYO, - OPPONENT_KOICHI, - OPPONENT_NOB_1, - OPPONENT_NOB_2, - OPPONENT_NOB_3, - OPPONENT_NOB_4, - OPPONENT_NOB_5, - OPPONENT_YUJI, - OPPONENT_DAISUKE, - OPPONENT_ATSUSHI, - OPPONENT_KIRK, - OPPONENT_SCOTT, - OPPONENT_HARVEY, - OPPONENT_SHAWN, - OPPONENT_RANDY, - OPPONENT_DALTON_1, - OPPONENT_DALTON_2, - OPPONENT_DALTON_3, - OPPONENT_DALTON_4, - OPPONENT_DALTON_5, - OPPONENT_COLE, - OPPONENT_FLINT, - OPPONENT_AXLE, - OPPONENT_JAKE, - OPPONENT_ANDY, - OPPONENT_BERNIE_1, - OPPONENT_BERNIE_2, - OPPONENT_BERNIE_3, - OPPONENT_BERNIE_4, - OPPONENT_BERNIE_5, - OPPONENT_DREW, - OPPONENT_CLIFF, - OPPONENT_LARRY, - OPPONENT_SHANE, - OPPONENT_JUSTIN, - OPPONENT_ETHAN_1, - OPPONENT_JEFF, - OPPONENT_TRAVIS, - OPPONENT_ETHAN_2, - OPPONENT_ETHAN_3, - OPPONENT_ETHAN_4, - OPPONENT_ETHAN_5, - OPPONENT_BRENT, - OPPONENT_DONALD, - OPPONENT_TAYLOR, - OPPONENT_BRANDON_1, - OPPONENT_DEREK, - OPPONENT_BRANDON_2, - OPPONENT_BRANDON_3, - OPPONENT_BRANDON_4, - OPPONENT_BRANDON_5, - OPPONENT_EDWARD, - OPPONENT_PRESTON, - OPPONENT_VIRGIL, - OPPONENT_FRITZ, - OPPONENT_WILLIAM, - OPPONENT_JOSHUA, - OPPONENT_CAMERON_1, - OPPONENT_CAMERON_2, - OPPONENT_CAMERON_3, - OPPONENT_CAMERON_4, - OPPONENT_CAMERON_5, - OPPONENT_JACLYN, - OPPONENT_HANNAH, - OPPONENT_SAMANTHA, - OPPONENT_MAURA, - OPPONENT_KAYLA, - OPPONENT_ALEXIS, - OPPONENT_JACKI_1, - OPPONENT_JACKI_2, - OPPONENT_JACKI_3, - OPPONENT_JACKI_4, - OPPONENT_JACKI_5, - OPPONENT_WALTER_1, - OPPONENT_TUCKER, - OPPONENT_THOMAS, - OPPONENT_WALTER_2, - OPPONENT_WALTER_3, - OPPONENT_WALTER_4, - OPPONENT_WALTER_5, - OPPONENT_SIDNEY, - OPPONENT_PHOEBE, - OPPONENT_GLACIA, - OPPONENT_DRAKE, - OPPONENT_ROXANNE, - OPPONENT_BRAWLY, - OPPONENT_WATTSON, - OPPONENT_FLANNERY, - OPPONENT_NORMAN, - OPPONENT_WINONA, - OPPONENT_TATE_AND_LIZA, - OPPONENT_WALLACE, - OPPONENT_JERRY_1, - OPPONENT_TED, - OPPONENT_PAUL, - OPPONENT_JERRY_2, - OPPONENT_JERRY_3, - OPPONENT_JERRY_4, - OPPONENT_JERRY_5, - OPPONENT_KAREN_1, - OPPONENT_GEORGIA, - OPPONENT_KAREN_2, - OPPONENT_KAREN_3, - OPPONENT_KAREN_4, - OPPONENT_KAREN_5, - OPPONENT_KATE_AND_JOY, - OPPONENT_ANNA_AND_MEG_1, - OPPONENT_ANNA_AND_MEG_2, - OPPONENT_ANNA_AND_MEG_3, - OPPONENT_ANNA_AND_MEG_4, - OPPONENT_ANNA_AND_MEG_5, - OPPONENT_VICTOR, - OPPONENT_MIGUEL_1, - OPPONENT_COLTON, - OPPONENT_MIGUEL_2, - OPPONENT_MIGUEL_3, - OPPONENT_MIGUEL_4, - OPPONENT_MIGUEL_5, - OPPONENT_VICTORIA, - OPPONENT_VANESSA, - OPPONENT_MARISSA, - OPPONENT_ISABEL_1, - OPPONENT_ISABEL_2, - OPPONENT_ISABEL_3, - OPPONENT_ISABEL_4, - OPPONENT_ISABEL_5, - OPPONENT_TIMOTHY_1, - OPPONENT_TIMOTHY_2, - OPPONENT_TIMOTHY_3, - OPPONENT_TIMOTHY_4, - OPPONENT_TIMOTHY_5, - OPPONENT_VICKY, - OPPONENT_SHELBY_1, - OPPONENT_SHELBY_2, - OPPONENT_SHELBY_3, - OPPONENT_SHELBY_4, - OPPONENT_SHELBY_5, - OPPONENT_CALVIN_1, - OPPONENT_BILLY, - OPPONENT_JOSH, - OPPONENT_TOMMY, - OPPONENT_JOEY, - OPPONENT_BEN, - OPPONENT_ANONYMOUS_5, - OPPONENT_KEVIN, - OPPONENT_NEAL, - OPPONENT_DILLON, - OPPONENT_CALVIN_2, - OPPONENT_CALVIN_3, - OPPONENT_CALVIN_4, - OPPONENT_CALVIN_5, - OPPONENT_EDDIE, - OPPONENT_ALLEN, - OPPONENT_TIMMY, - OPPONENT_STEVEN, - OPPONENT_ANDREW, - OPPONENT_IVAN, - OPPONENT_CLAUDE, - OPPONENT_ELLIOT_1, - OPPONENT_NED, - OPPONENT_DALE, - OPPONENT_NOLAN, - OPPONENT_BARNY, - OPPONENT_WADE, - OPPONENT_CARTER, - OPPONENT_ELLIOT_2, - OPPONENT_ELLIOT_3, - OPPONENT_ELLIOT_4, - OPPONENT_ELLIOT_5, - OPPONENT_RONALD, - OPPONENT_JACOB, - OPPONENT_ANTHONY, - OPPONENT_BENJAMIN_1, - OPPONENT_BENJAMIN_2, - OPPONENT_BENJAMIN_3, - OPPONENT_BENJAMIN_4, - OPPONENT_BENJAMIN_5, - OPPONENT_ABIGAIL_1, - OPPONENT_JASMINE, - OPPONENT_ABIGAIL_2, - OPPONENT_ABIGAIL_3, - OPPONENT_ABIGAIL_4, - OPPONENT_ABIGAIL_5, - OPPONENT_DYLAN_1, - OPPONENT_DYLAN_2, - OPPONENT_DYLAN_3, - OPPONENT_DYLAN_4, - OPPONENT_DYLAN_5, - OPPONENT_MARIA_1, - OPPONENT_MARIA_2, - OPPONENT_MARIA_3, - OPPONENT_MARIA_4, - OPPONENT_MARIA_5, - OPPONENT_CALEB, - OPPONENT_ANONYMOUS_6, - OPPONENT_ISAIAH_1, - OPPONENT_ANONYMOUS_7, - OPPONENT_CHASE, - OPPONENT_ISAIAH_2, - OPPONENT_ISAIAH_3, - OPPONENT_ISAIAH_4, - OPPONENT_ISAIAH_5, - OPPONENT_ANONYMOUS_8, - OPPONENT_CONNOR, - OPPONENT_ANONYMOUS_9, - OPPONENT_KATELYN_1, - OPPONENT_ALLISON, - OPPONENT_KATELYN_2, - OPPONENT_KATELYN_3, - OPPONENT_KATELYN_4, - OPPONENT_KATELYN_5, - OPPONENT_NICOLAS_1, - OPPONENT_NICOLAS_2, - OPPONENT_NICOLAS_3, - OPPONENT_NICOLAS_4, - OPPONENT_NICOLAS_5, - OPPONENT_AARON, - OPPONENT_PERRY, - OPPONENT_HUGH, - OPPONENT_PHIL, - OPPONENT_JARED, - OPPONENT_ANONYMOUS_10, - OPPONENT_TANNER, - OPPONENT_WILL, - OPPONENT_COLIN, - OPPONENT_ROBERT_1, - OPPONENT_BENNY, - OPPONENT_CHESTER, - OPPONENT_ROBERT_2, - OPPONENT_ROBERT_3, - OPPONENT_ROBERT_4, - OPPONENT_ROBERT_5, - OPPONENT_ALEX, - OPPONENT_BECK, - OPPONENT_YASU, - OPPONENT_TAKASHI, - OPPONENT_MAKOTO, - OPPONENT_HIDEO_1, - OPPONENT_LAO_1, - OPPONENT_LUNG, - OPPONENT_LAO_2, - OPPONENT_LAO_3, - OPPONENT_LAO_4, - OPPONENT_LAO_5, - OPPONENT_TESSA, - OPPONENT_LAURA, - OPPONENT_CYNDY_1, - OPPONENT_CORA, - OPPONENT_JILL, - OPPONENT_CYNDY_2, - OPPONENT_CYNDY_3, - OPPONENT_CYNDY_4, - OPPONENT_CYNDY_5, - OPPONENT_MADELINE_1, - OPPONENT_CLARISSA, - OPPONENT_ANGELICA, - OPPONENT_MADELINE_2, - OPPONENT_MADELINE_3, - OPPONENT_MADELINE_4, - OPPONENT_MADELINE_5, - OPPONENT_BEVERLY, - OPPONENT_DAWN, - OPPONENT_NICOLE, - OPPONENT_DENISE, - OPPONENT_BETH, - OPPONENT_TARA, - OPPONENT_MISSY, - OPPONENT_ALICE, - OPPONENT_JENNY_1, - OPPONENT_GRACE, - OPPONENT_TANYA, - OPPONENT_SHARON, - OPPONENT_NIKKI, - OPPONENT_BRENDA, - OPPONENT_KATIE, - OPPONENT_SUSIE, - OPPONENT_KARA, - OPPONENT_DANA, - OPPONENT_ERIN, - OPPONENT_DEBRA, - OPPONENT_LINDA, - OPPONENT_KAYLEE, - OPPONENT_LAUREL, - OPPONENT_DARCY, - OPPONENT_JENNY_2, - OPPONENT_JENNY_3, - OPPONENT_JENNY_4, - OPPONENT_JENNY_5, - OPPONENT_HEIDI, - OPPONENT_BECKY, - OPPONENT_CAROL, - OPPONENT_NANCY, - OPPONENT_MARTHA, - OPPONENT_DIANA_1, - OPPONENT_NINA, - OPPONENT_IRENE, - OPPONENT_DIANA_2, - OPPONENT_DIANA_3, - OPPONENT_DIANA_4, - OPPONENT_DIANA_5, - OPPONENT_AMY_AND_LIV_1, - OPPONENT_AMY_AND_LIV_2, - OPPONENT_GINA_AND_MIA_1, - OPPONENT_MIU_AND_YUKI, - OPPONENT_AMY_AND_LIV_3, - OPPONENT_GINA_AND_MIA_2, - OPPONENT_AMY_AND_LIV_4, - OPPONENT_AMY_AND_LIV_5, - OPPONENT_AMY_AND_LIV_6, - OPPONENT_HUEY, - OPPONENT_EDMOND, - OPPONENT_ERNEST_1, - OPPONENT_DWAYNE, - OPPONENT_PHILLIP, - OPPONENT_LEONARD, - OPPONENT_DUNCAN, - OPPONENT_ERNEST_2, - OPPONENT_ERNEST_3, - OPPONENT_ERNEST_4, - OPPONENT_ERNEST_5, - OPPONENT_ANONYMOUS_11, - OPPONENT_ANONYMOUS_12, - OPPONENT_ANONYMOUS_13, - OPPONENT_SONNY, - OPPONENT_DONOVAN, - OPPONENT_GERALD, - OPPONENT_KELVIN, - OPPONENT_KODY, - OPPONENT_TEVIN, - OPPONENT_DAMON, - OPPONENT_PABLO, - OPPONENT_EDWIN_1, - OPPONENT_HECTOR_1, - OPPONENT_HECTOR_2, - OPPONENT_EDWIN_2, - OPPONENT_EDWIN_3, - OPPONENT_EDWIN_4, - OPPONENT_EDWIN_5, - OPPONENT_WALLY_1, - OPPONENT_BRENDAN_1, - OPPONENT_BRENDAN_2, - OPPONENT_BRENDAN_3, - OPPONENT_BRENDAN_4, - OPPONENT_BRENDAN_5, - OPPONENT_BRENDAN_6, - OPPONENT_BRENDAN_7, - OPPONENT_BRENDAN_8, - OPPONENT_BRENDAN_9, - OPPONENT_MAY_1, - OPPONENT_MAY_2, - OPPONENT_MAY_3, - OPPONENT_MAY_4, - OPPONENT_MAY_5, - OPPONENT_MAY_6, - OPPONENT_MAY_7, - OPPONENT_MAY_8, - OPPONENT_MAY_9, - OPPONENT_ISAAC_1, - OPPONENT_RILEY, - OPPONENT_AIDAN, - OPPONENT_ISAAC_2, - OPPONENT_ISAAC_3, - OPPONENT_ISAAC_4, - OPPONENT_ISAAC_5, - OPPONENT_LYDIA_1, - OPPONENT_ALEXIA, - OPPONENT_DANIELLE, - OPPONENT_LYDIA_2, - OPPONENT_LYDIA_3, - OPPONENT_LYDIA_4, - OPPONENT_LYDIA_5, - OPPONENT_JACKSON_1, - OPPONENT_CARLOS, - OPPONENT_SEBASTIAN, - OPPONENT_JACKSON_2, - OPPONENT_JACKSON_3, - OPPONENT_JACKSON_4, - OPPONENT_JACKSON_5, - OPPONENT_CATHERINE_1, - OPPONENT_JENNA, - OPPONENT_SOPHIA, - OPPONENT_CATHERINE_2, - OPPONENT_CATHERINE_3, - OPPONENT_CATHERINE_4, - OPPONENT_CATHERINE_5, - OPPONENT_MAXIE_1, - OPPONENT_GRUNT_28, - OPPONENT_GRUNT_29, - OPPONENT_GRUNT_30, - OPPONENT_GRUNT_31, - OPPONENT_GRUNT_32, - OPPONENT_GRUNT_33, - OPPONENT_GRUNT_34, - OPPONENT_GRUNT_35, - OPPONENT_GRUNT_36, - OPPONENT_GRUNT_37, - OPPONENT_GRUNT_38, - OPPONENT_GRUNT_39, - OPPONENT_GRUNT_40, - OPPONENT_GRUNT_41, - OPPONENT_GRUNT_42, - OPPONENT_GRUNT_43, - OPPONENT_GRUNT_44, - OPPONENT_GRUNT_45, - OPPONENT_GRUNT_46, - OPPONENT_GRUNT_47, - OPPONENT_GRUNT_48, - OPPONENT_GRUNT_49, - OPPONENT_GRUNT_50, - OPPONENT_GRUNT_51, - OPPONENT_GRUNT_52, - OPPONENT_GRUNT_53, - OPPONENT_GRUNT_54, - OPPONENT_ANONYMOUS_14, - OPPONENT_ANONYMOUS_15, - OPPONENT_TABITHA_1, - OPPONENT_TABITHA_2, - OPPONENT_ANONYMOUS_16, - OPPONENT_COURTNEY_1, - OPPONENT_COURTNEY_2, - OPPONENT_MAXIE_2, - OPPONENT_MAXIE_3, - OPPONENT_TIANA, - OPPONENT_HALEY_1, - OPPONENT_JANICE, - OPPONENT_VIVI, - OPPONENT_HALEY_2, - OPPONENT_HALEY_3, - OPPONENT_HALEY_4, - OPPONENT_HALEY_5, - OPPONENT_SALLY, - OPPONENT_ROBIN, - OPPONENT_ANDREA, - OPPONENT_CRISSY, - OPPONENT_RICK, - OPPONENT_LYLE, - OPPONENT_JOSE, - OPPONENT_DOUG, - OPPONENT_GREG, - OPPONENT_KENT, - OPPONENT_JAMES_1, - OPPONENT_JAMES_2, - OPPONENT_JAMES_3, - OPPONENT_JAMES_4, - OPPONENT_JAMES_5, - OPPONENT_BRICE, - OPPONENT_TRENT_1, - OPPONENT_LENNY, - OPPONENT_LUCAS_1, - OPPONENT_ALAN, - OPPONENT_CLARK, - OPPONENT_ERIC, - OPPONENT_LUCAS_2, - OPPONENT_MIKE_1, - OPPONENT_MIKE_2, - OPPONENT_TRENT_2, - OPPONENT_TRENT_3, - OPPONENT_TRENT_4, - OPPONENT_TRENT_5, - OPPONENT_DEZ_AND_LUKE, - OPPONENT_LEA_AND_JED, - OPPONENT_LOIS_AND_HAL_1, - OPPONENT_LOIS_AND_HAL_2, - OPPONENT_LOIS_AND_HAL_3, - OPPONENT_LOIS_AND_HAL_4, - OPPONENT_LOIS_AND_HAL_5, - OPPONENT_JOHANNA, - OPPONENT_ZANE, - OPPONENT_VIVIAN, - OPPONENT_SADIE, - OPPONENT_HIDEO_2, - OPPONENT_KEIGO, - OPPONENT_TSUNAO, - OPPONENT_TERRELL, - OPPONENT_KYLEE, - OPPONENT_WALLY_2, - OPPONENT_WALLY_3, - OPPONENT_WALLY_4, - OPPONENT_WALLY_5, - OPPONENT_WALLY_6, - OPPONENT_BRENDAN_10, - OPPONENT_BRENDAN_11, - OPPONENT_BRENDAN_12, - OPPONENT_MAY_10, - OPPONENT_MAY_11, - OPPONENT_MAY_12, - OPPONENT_JONAH, - OPPONENT_HENRY, - OPPONENT_ROGER, - OPPONENT_ALEXA, - OPPONENT_RUBEN, - OPPONENT_KOJI, - OPPONENT_WAYNE, - OPPONENT_BYRON, - OPPONENT_REED, - OPPONENT_TISHA, - OPPONENT_TORI_AND_TIA, - OPPONENT_KIM_AND_IRIS, - OPPONENT_TYRA_AND_IVY, - OPPONENT_MEL_AND_PAUL, - OPPONENT_JOHN_AND_JAY_1, - OPPONENT_JOHN_AND_JAY_2, - OPPONENT_JOHN_AND_JAY_3, - OPPONENT_JOHN_AND_JAY_4, - OPPONENT_JOHN_AND_JAY_5, - OPPONENT_RELI_AND_IAN, - OPPONENT_RITA_AND_SAM_1, - OPPONENT_RITA_AND_SAM_2, - OPPONENT_RITA_AND_SAM_3, - OPPONENT_RITA_AND_SAM_4, - OPPONENT_RITA_AND_SAM_5, - OPPONENT_LISA_AND_RAY, - OPPONENT_EUGENE, -}; - -#endif // GUARD_OPPONENT_CONSTANTS_H diff --git a/include/rom4.h b/include/overworld.h index daccad7e9..0954f1b63 100644 --- a/include/rom4.h +++ b/include/overworld.h @@ -22,42 +22,42 @@ struct UCoords32 u32 x, y; }; -extern struct UCoords32 gUnknown_0821664C[]; +extern const struct UCoords32 gUnknown_0821664C[]; extern void (*gFieldCallback)(void); // sub_8052F5C -void flag_var_implications_of_teleport_(void); -void new_game(void); -void sub_8053014(void); -void sub_8053050(void); +void Overworld_ResetStateAfterFly(void); +void Overworld_ResetStateAfterTeleport(void); +void Overworld_ResetStateAfterDigEscRope(void); +void Overworld_ResetStateAfterWhiteOut(void); // sub_805308C void ResetGameStats(void); void IncrementGameStat(u8 index); u32 GetGameStat(u8 index); void SetGameStat(u8, u32); -// sub_8053154 -// sub_8053198 -void update_saveblock1_field_object_coords(u8, s16, s16); -void update_saveblock1_field_object_movement_behavior(u8, u8); +// LoadMapObjTemplatesFromHeader +// LoadSaveblockMapObjScripts +void Overworld_SetMapObjTemplateCoords(u8, s16, s16); +void Overworld_SetMapObjTemplateMovementType(u8, u8); // mapdata_load_assets_to_gpu_and_full_redraw // get_mapdata_header -// warp_shift -// warp_set +// ApplyCurrentWarp +// SetWarpData // warp_data_is_not_neg_1 -struct MapHeader * const get_mapheader_by_bank_and_number(u16 mapGroup, u16 mapNum); +struct MapHeader * const Overworld_GetMapHeaderByGroupAndId(u16 mapGroup, u16 mapNum); struct MapHeader * const warp1_get_mapheader(void); // set_current_map_header_from_sav1_save_old_name -// sub_805338C +// LoadSaveblockMapHeader // sub_80533CC void warp_in(void); -void warp1_set(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); +void Overworld_SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); void warp1_set_2(s8 mapGroup, s8 mapNum, s8 warpId); void saved_warp2_set(int unused, s8 mapGroup, s8 mapNum, s8 warpId); void saved_warp2_set_2(int unused, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused); void sub_8053538(u8); -void sub_8053570(void); -void sub_8053588(u8); +void Overworld_SetWarpDestToLastHealLoc(void); +void Overworld_SetHealLocationWarp(u8); void sub_80535C4(s16 a1, s16 a2); void sub_805363C(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); void sub_8053678(void); @@ -69,7 +69,7 @@ void sub_8053720(s16, s16); // unref_sub_8053790 void sub_80537CC(u8); void gpu_sync_bg_hide(); -// sub_8053818 +// GetMapConnection // sub_8053850 bool8 sub_80538B0(u16 x, u16 y); bool8 sub_80538D0(u16 x, u16 y); @@ -81,37 +81,37 @@ void walkrun_find_lowest_active_bit_in_bitfield(void); u8 sub_8053B00(struct UnkPlayerStruct *playerStruct, u16 a2, u8 a3); u8 sub_8053B60(struct UnkPlayerStruct *playerStruct, u8, u16, u8); u16 cur_mapdata_block_role_at_screen_center_acc_to_sav1(void); -bool32 IsBikingAllowedByMap(void); -void sub_8053C98(void); -void sub_8053CE4(s32 a1); -u8 sav1_get_flash_used_on_map(void); +bool32 Overworld_IsBikingAllowed(void); +void SetDefaultFlashLevel(void); +void Overworld_SetFlashLevel(s32 a1); +u8 Overworld_GetFlashLevel(void); void sub_8053D14(u16); // sub_8053D30 // sub_8053D6C -// sub_8053D9C -// sav1_map_get_music -// warp1_target_get_music -// call_map_music_set_to_zero -void sub_8053E90(void); -void sav1_set_battle_music_maybe(u16); -void sav1_reset_battle_music_maybe(void); +// GetLocationMusic +// GetCurrLocationDefaultMusic +// GetWarpDestinationMusic +// Overworld_ResetMapMusic +void Overworld_PlaySpecialMapMusic(void); +void Overworld_SetSavedMusic(u16); +void Overworld_ClearSavedMusic(void); void sub_8053F0C(void); -void sub_8053F84(void); -void sub_8053FB0(u16); -// is_warp1_light_level_8_or_9 +void Overworld_ChangeMusicToDefault(void); +void Overworld_ChangeMusicTo(u16); +// GetMapMusicFadeoutSpeed void sub_8053FF8(void); bool8 sub_8054034(void); -void sub_8054044(void); -// sub_8054050 -void sub_80540D0(s16 *, u16 *); -void sub_8054164(void); -u8 get_map_light_level_by_bank_and_number(s8 mapGroup, s8 mapNum); -// get_map_light_level_from_warp -u8 sav1_map_get_light_level(void); -u8 get_map_light_from_warp0(void); -bool8 is_light_level_1_2_3_5_or_6(u8 a1); -bool8 is_light_level_1_2_3_or_6(u8 a1); -u8 is_light_level_8_or_9(u8); +void Overworld_FadeOutMapMusic(void); +// PlayAmbientCry +void UpdateAmbientCry(s16 *, u16 *); +void ChooseAmbientCrySpecies(void); +u8 GetMapTypeByGroupAndId(s8 mapGroup, s8 mapNum); +// GetMapTypeByWarpData +u8 Overworld_GetMapTypeOfSaveblockLocation(void); +u8 get_map_type_from_warp0(void); +bool8 is_map_type_1_2_3_5_or_6(u8 a1); +bool8 Overworld_MapTypeAllowsTeleportAndFly(u8 a1); +u8 Overworld_MapTypeIsIndoors(u8); // unref_sub_8054260 u8 sav1_map_get_name(); // sav1_map_get_battletype @@ -119,8 +119,8 @@ u8 sav1_map_get_name(); bool32 is_c1_link_related_active(void); // c1_overworld_normal // c1_overworld -// c2_overworld_basic -void sub_8054398(void); +// OverworldBasic +void CB2_OverworldBasic(void); void c2_overworld(void); // set_callback1 // sub_80543DC @@ -233,5 +233,6 @@ u8 npc_something3(u8, u8); u8 LinkPlayerDetectCollision(u8, u8, s16, s16); void CreateLinkPlayerSprite(u8); void SpriteCB_LinkPlayer(struct Sprite *); +void sub_805465C(void); #endif // GUARD_ROM4_H diff --git a/include/party_menu.h b/include/party_menu.h index 9ce476869..3998054da 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -1,36 +1,53 @@ #ifndef GUARD_PARTY_MENU_H #define GUARD_PARTY_MENU_H +#include "menu.h" #include "task.h" -struct PartyMenuItem + +enum { - const u8 *text; - TaskFunc func; + PARTY_MENU_TYPE_STANDARD, + PARTY_MENU_TYPE_BATTLE, + PARTY_MENU_TYPE_CONTEST, + PARTY_MENU_TYPE_IN_GAME_TRADE, + PARTY_MENU_TYPE_BATTLE_TOWER, + PARTY_MENU_TYPE_LINK_MULTI_BATTLE, + PARTY_MENU_TYPE_DAYCARE, + PARTY_MENU_TYPE_MOVE_TUTOR, +}; + +// The party menu screen is presented differently depending on which menu layout is set. +enum +{ + PARTY_MENU_LAYOUT_STANDARD, + PARTY_MENU_LAYOUT_DOUBLE_BATTLE, + PARTY_MENU_LAYOUT_LINK_DOUBLE_BATTLE, + PARTY_MENU_LAYOUT_MULTI_BATTLE, }; struct PartyPopupMenu { - u8 unk0; - u8 unk1; - const u8 *unk4; + /*0x0*/u8 numChoices; // number of menu choices + /*0x1*/u8 width; // menu width (number of characters it can fit horizontally) + /*0x4*/const u8 *items; // menu item ids (ids for a MenuAction2 array) }; // TODO: Unify these two structs -#define DATA_COUNT (6) struct Unk201B000 { - //u8 filler0[0x260]; struct Pokemon unk0[6]; - u8 filler258[1]; - u8 unk259; - u8 filler25A[6]; - u8 unk260; + u8 menuType; + u8 promptTextId; + u8 filler25A[2]; + TaskFunc menuHandler; + u8 menuHandlerTaskId; u8 unk261; u8 unk262; u8 unk263; - s16 unk264[DATA_COUNT * 2]; // This may be a union + // Stat growth upon level-up. First 6 bytes = old stats, Second 6 bytes = new stats. + s16 statGrowths[NUM_STATS * 2]; u8 filler27C[2]; s16 unk27E; s16 unk280; @@ -40,77 +57,111 @@ struct Unk201B000 struct Struct201B000 { u8 filler0[0x259]; - u8 unk259; + u8 promptTextId; u8 filler25A[6]; - u8 unk260; + u8 menuHandlerTaskId; u8 unk261; u8 unk262; - s16 unk264; - s16 unk266; - u8 filler268[10]; + s16 setupState; + s16 monIndex; + s16 unk268; + u8 filler26A[8]; u16 unk272; u8 filler274[14]; u16 unk282; }; -extern u8 ewram[]; -#define ewram1B000 (*(struct Unk201B000 *)(ewram + 0x1B000)) -#define ewram1B000_alt (*(struct Struct201B000 *)(ewram + 0x1B000)) -#define EWRAM_1B000 ewram1B000_alt +struct Unk2001000 +{ + u8 unk0; + u8 unk1; + u8 unk2; + u8 unk3; + u8 unk4; + u8 unk5; + u8 unk6; + u8 unk7; + s16 unk8; + s16 unkA; + TaskFunc unkC; + u16 array[53561]; +}; -void sub_806AEDC(void); -void sub_806AF4C(); -void OpenPartyMenu(u8, u8); -void OpenPartyMenu(); -u8 sub_806B124(void); -u8 IsLinkDoubleBattle(void); -u8 sub_806B58C(u8); -u8 sub_806B58C(u8); +struct UnknownPokemonStruct2 +{ + /*0x00*/ u16 species; + /*0x02*/ u16 heldItem; + /*0x04*/ u8 nickname[11]; + /*0x0F*/ u8 level; + /*0x10*/ u16 hp; + /*0x12*/ u16 maxhp; + /*0x14*/ u32 status; + /*0x18*/ u32 personality; + /*0x1C*/ u8 gender; + /*0x1D*/ u8 language; +}; + +void CB2_PartyMenuMain(void); +void ChangeBattleTowerPartyMenuSelection(u8 taskId, s8 directionPressed); +void SetPartyMenuSettings(u8 menuType, u8 battleTypeFlags, TaskFunc menuHandlerFunc, u8 textId); +void OpenPartyMenu(u8 menuType, u8 battleFlags); +bool8 InitPartyMenu(void); +bool8 IsLinkDoubleBattle(void); +u8 DrawPartyMonBackground(u8); +void sub_806B908(void); void sub_806BC3C(u8, u8); +void sub_806BCE8(void); u8 sub_806BD58(u8, u8); u8 sub_806BD58(u8, u8); -u16 sub_806BD80(); // undefined args in battle_party_menu.c -void task_pc_turn_off(); -void sub_806BF74(); -void sub_806C994(); -u8 sub_806CA38(u8); -void sub_806CB74(u8 taskId); +u16 HandleDefaultPartyMenuInput(u8 taskId); +u16 HandleBattleTowerPartyMenuInput(u8 taskId); +void task_pc_turn_off(const u8 *a, u8 b); +void ChangePartyMenuSelection(u8 taskId, s8 directionPressed); +void SelectBattleTowerOKButton(u8 taskId); +void sub_806C994(u8 taskId, u8 b); +u8 sub_806CA38(u8 taskID); +void HandlePartyMenuSwitchPokemonInput(u8 taskId); void sub_806CCE4(void); void sub_806CD44(u8 taskId); -void sub_806D538(); -void sub_806D538(); -void sub_806D538(); +void sub_806D3B4(u8 taskId, u16 species1, u16 species2); +void sub_806D4AC(u8 taskId, u16 species, u8 c); +void sub_806D50C(u8 taskId, u8 monIndex); +void PrintPartyMenuPromptText(u8 textId, u8 b); void sub_806D5A4(void); -void SetMonIconAnim(); -void TryCreatePartyMenuMonIcon(u8, u8, struct Pokemon *); -void LoadHeldItemIconGraphics(void); +void SetMonIconAnim(u8 spriteId, struct Pokemon *pokemon); +void CreatePartyMenuMonIcon(u8 taskId, u8 monIndex, u8 c, struct Pokemon *pokemon); +void TryCreatePartyMenuMonIcon(u8 a, u8 monIndex, struct Pokemon *pokemon); void LoadHeldItemIconGraphics(void); -void CreateHeldItemIcons_806DC34(); // undefined args -void CreateHeldItemIcons_806DC34(); -u8 GetMonIconSpriteId_maybe(); -void SetHeldItemIconVisibility(); -void TryPrintPartyMenuMonNickname(); +void PartyMenuTryGiveMonHeldItem(u8 taskId, u16 newItem, TaskFunc c); +void SetMonIconSpriteId(u8 taskId, u8 monIndex, u8 spriteId); +void CreateHeldItemIcon_806DCD4(u8 taskId, u8 monIndex, u16 item); +void CreateHeldItemIcons_806DC34(u8 taskId); +void CreateHeldItemIcons(u8 *a, u8 *b, u8 c); +void SetHeldItemIconVisibility(u8 a, u8 monIndex); +void PartyMenuDoPrintMonNickname(u8 monIndex, int b, const u8 *nameBuffer); +void PrintPartyMenuMonNickname(u8 monIndex, u8 b, struct Pokemon *pokemon); void PrintPartyMenuMonNicknames(void); -void PrintPartyMenuMonNicknames(void); -void GetMonNickname(struct Pokemon *mon, u8 *nickname); -void PartyMenuClearLevelStatusTilemap(); -void PartyMenuPrintMonLevelOrStatus(); -void PartyMenuPrintMonsLevelOrStatus(void); +void CreateMonIcon_LinkMultiBattle(u8 taskId, u8 monIndex, u8 menuType, struct UnknownPokemonStruct2 *pokemon); +u8 *GetMonNickname(struct Pokemon *pokemon, u8 *stringBuffer); +void PartyMenuPutStatusTilemap(u8 monIndex, u8 b, u8 status); +void PartyMenuDoPrintLevel(u8 monIndex, u8 b, u8 level); +void PartyMenuPrintLevel(u8 monIndex, u8 b, struct Pokemon *pokemon); +void PartyMenuPrintMonLevelOrStatus(u8 monIndex, struct Pokemon *pokemon); void PartyMenuPrintMonsLevelOrStatus(void); -void PartyMenuDoPrintHP(u8, int, u16, u16); +void PartyMenuDoPrintGenderIcon(u16 species, u8 gender, u8 c, u8 monIndex, u8 *nickname); +void PartyMenuPrintGenderIcon(u8 monIndex, u8 b, struct Pokemon *pokemon); +void PartyMenuDoPrintHP(u8 monIndex, u8 b, u16 currentHP, u16 maxHP); void PartyMenuTryPrintMonsHP(void); void nullsub_13(void); +void PartyMenuDoDrawHPBar(u8 monIndex, u8 b, u16 currentHP, u16 maxHP); +void PartyMenuDrawHPBar(u8 monIndex, u8 b, struct Pokemon *pokemon); +void PartyMenuTryDrawHPBar(u8 monIndex, struct Pokemon *pokemon); void PartyMenuDrawHPBars(void); -void sub_806E6F0(); -void sub_806E750(u8, const struct PartyPopupMenu *, const struct PartyMenuItem *, int); -void sub_806E7D0(u8, const struct PartyPopupMenu *); -TaskFunc PartyMenuGetPopupMenuFunc(u8, const struct PartyPopupMenu *, const struct PartyMenuItem *, u8); -void sub_8070968(); -void sub_8070A20(); -void Task_RareCandy3(u8); -void sub_8070C54(); -void DoEvolutionStoneItemEffect(u8, u16, TaskFunc); -u8 GetItemEffectType(); +void SwapPokemon(struct Pokemon *a, struct Pokemon *b); +void SetPartyPopupMenuOffsets(u8 menuIndex, u8 *left, u8 *top, const struct PartyPopupMenu *menu); +void ShowPartyPopupMenu(u8 menuIndex, const struct PartyPopupMenu *menu, const struct MenuAction2 *menuActions, u8 cursorPos); +void ClosePartyPopupMenu(u8 index, const struct PartyPopupMenu *menu); +TaskFunc PartyMenuGetPopupMenuFunc(u8 menuIndex, const struct PartyPopupMenu *menus, const struct MenuAction2 *menuActions, u8 itemIndex); u8 sub_806E834(const u8 *message, u8 arg1); void sub_806E8D0(u8 taskId, u16 b, TaskFunc c); void party_menu_link_mon_held_item_object(u8); @@ -150,6 +201,21 @@ void DoPPUpItemEffect(u8, u16, TaskFunc); void DoRareCandyItemEffect(u8, u16, TaskFunc); void Task_RareCandy1(u8); void Task_RareCandy2(u8); -void sub_8070848(u8 taskId); +void PrintStatGrowthsInLevelUpWindow(u8 taskId); +void PrintNewStatsInLevelUpWindow(u8 taskId); +void RedrawPokemonInfoInMenu(u8, struct Pokemon *); +void Task_RareCandy3(u8); +void TeachMonMoveInPartyMenu(u8); +void DoEvolutionStoneItemEffect(u8 taskId, u16 evolutionStoneItem, TaskFunc c); +u8 GetItemEffectType(u16 item); +void SetupDefaultPartyMenuSwitchPokemon(u8 taskId); +void sub_806CD5C(u8 taskId); +void DoTakeMail(u8 taskId, TaskFunc func); +void PartyMenuTryGiveMonHeldItem_806ECE8(u8 taskId, TaskFunc func); +void PartyMenuTryGiveMonMail(u8 taskId, TaskFunc func); +void sub_806D668(u8 monIndex); +void TaughtMove(u8 taskId); +void StopTryingToTeachMove_806F588(u8 taskId); +bool8 IsHMMove(u16 move); #endif // GUARD_PARTY_MENU_H diff --git a/include/player_pc.h b/include/player_pc.h index 8debeda88..625155b57 100644 --- a/include/player_pc.h +++ b/include/player_pc.h @@ -13,13 +13,14 @@ #define SWAP_ITEM_INDEX data[8] #define SWITCH_MODE_ACTIVE data[9] +// this is potentially an ewram access occuring in high ewram. TODO: investigate this further. #define NEW_GAME_PC_ITEMS(i, type) ((u16)((u16 *)gNewGamePCItems + type)[i * 2]) // defined and used in the above macro enum { - ITEM_ID, - QUANTITY + PC_ITEM_ID, + PC_QUANTITY }; // player PC menu options diff --git a/include/pokeball.h b/include/pokeball.h index 19f813415..0a709c869 100644 --- a/include/pokeball.h +++ b/include/pokeball.h @@ -7,5 +7,6 @@ void CreatePokeballSprite(u8 r0, u8 r1, u8 r2, u8 r3, u8 s1, u8 s2, u8 s3, u32 s void sub_804777C(u8); void sub_80478DC(u8); void sub_804794C(u8); +u8 sub_8047580(u8, u8, u8, u8, u8, u8, u8, u32); #endif // GUARD_POKEBALL_H diff --git a/include/pokedex.h b/include/pokedex.h index 1bc63a4ff..d8416889a 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -9,10 +9,20 @@ void CB2_InitPokedex(void); u8 sub_809070C(u16 dexNum, u32 b, u32 c); const u8 *GetPokemonCategory(u16); u16 GetPokedexHeightWeight(u16 dexNum, u8 data); -s8 GetNationalPokedexFlag(u16, u8); + +enum +{ + FLAG_GET_SEEN, + FLAG_GET_CAUGHT, + FLAG_SET_SEEN, + FLAG_SET_CAUGHT +}; + +s8 GetSetPokedexFlag(u16, u8); + u16 GetNationalPokedexCount(u8); u16 GetHoennPokedexCount(u8); -bool8 sub_8090FC0(void); +bool8 CompletedHoennPokedex(void); u16 sub_8090FF4(void); #endif // GUARD_POKEDEX_H diff --git a/include/pokemon.h b/include/pokemon.h index 594295b40..71b35e65c 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -32,7 +32,7 @@ #define MON_DATA_HP_EV 26 #define MON_DATA_ATK_EV 27 #define MON_DATA_DEF_EV 28 -#define MON_DATA_SPD_EV 29 +#define MON_DATA_SPEED_EV 29 #define MON_DATA_SPATK_EV 30 #define MON_DATA_SPDEF_EV 31 #define MON_DATA_FRIENDSHIP 32 @@ -45,7 +45,7 @@ #define MON_DATA_HP_IV 39 #define MON_DATA_ATK_IV 40 #define MON_DATA_DEF_IV 41 -#define MON_DATA_SPD_IV 42 +#define MON_DATA_SPEED_IV 42 #define MON_DATA_SPATK_IV 43 #define MON_DATA_SPDEF_IV 44 #define MON_DATA_IS_EGG 45 @@ -64,7 +64,7 @@ #define MON_DATA_MAX_HP 58 #define MON_DATA_ATK 59 #define MON_DATA_DEF 60 -#define MON_DATA_SPD 61 +#define MON_DATA_SPEED 61 #define MON_DATA_SPATK 62 #define MON_DATA_SPDEF 63 #define MON_DATA_MAIL 64 @@ -89,10 +89,12 @@ #define MON_DATA_83 83 #define MON_DATA_ATK2 84 #define MON_DATA_DEF2 85 -#define MON_DATA_SPD2 86 +#define MON_DATA_SPEED2 86 #define MON_DATA_SPATK2 87 #define MON_DATA_SPDEF2 88 +#define MAX_LEVEL 100 + #define MON_MALE 0x00 #define MON_FEMALE 0xFE #define MON_GENDERLESS 0xFF @@ -286,29 +288,29 @@ struct Pokemon struct UnknownPokemonStruct { - u16 species; - u16 heldItem; - u16 moves[4]; - u8 level; - u8 ppBonuses; - u8 hpEV; - u8 attackEV; - u8 defenseEV; - u8 speedEV; - u8 spAttackEV; - u8 spDefenseEV; - u32 otId; - u32 hpIV:5; - u32 attackIV:5; - u32 defenseIV:5; - u32 speedIV:5; - u32 spAttackIV:5; - u32 spDefenseIV:5; - u32 gap:1; - u32 altAbility:1; - u32 personality; - u8 nickname[POKEMON_NAME_LENGTH + 1]; - u8 friendship; + /*0x00*/u16 species; + /*0x02*/u16 heldItem; + /*0x04*/u16 moves[4]; + /*0x0C*/u8 level; + /*0x0D*/u8 ppBonuses; + /*0x0E*/u8 hpEV; + /*0x0F*/u8 attackEV; + /*0x10*/u8 defenseEV; + /*0x11*/u8 speedEV; + /*0x12*/u8 spAttackEV; + /*0x13*/u8 spDefenseEV; + /*0x14*/u32 otId; + /*0x18*/u32 hpIV:5; + /*0x18*/u32 attackIV:5; + /*0x19*/u32 defenseIV:5; + /*0x19*/u32 speedIV:5; + /*0x1A*/u32 spAttackIV:5; + /*0x1A*/u32 spDefenseIV:5; + /*0x1B*/u32 gap:1; + /*0x1B*/u32 altAbility:1; + /*0x1C*/u32 personality; + /*0x20*/u8 nickname[POKEMON_NAME_LENGTH + 1]; + /*0x2B*/u8 friendship; }; struct BattlePokemon @@ -361,6 +363,16 @@ enum STAT_STAGE_EVASION, // 7 }; +enum +{ + STAT_HP, // 0 + STAT_ATK, // 1 + STAT_DEF, // 2 + STAT_SPD, // 3 + STAT_SPATK, // 4 + STAT_SPDEF, // 5 +}; + struct BaseStats { /*0x00*/ u8 baseHP; @@ -391,7 +403,7 @@ struct BaseStats /*0x17*/ u8 ability2; /*0x18*/ u8 safariZoneFleeRate; /*0x19*/ u8 bodyColor:7; - u8 unk19_7:1; + u8 noFlip:1; }; struct BattleMove @@ -403,7 +415,7 @@ struct BattleMove u8 pp; u8 secondaryEffectChance; u8 target; - u8 priority; + s8 priority; u8 flags; u8 pad[3]; }; @@ -510,7 +522,7 @@ void sub_803ADE8(struct Pokemon *mon, struct UnknownPokemonStruct *src); void sub_803AF78(struct Pokemon *mon, struct UnknownPokemonStruct *dest); u16 CalculateBoxMonChecksum(struct BoxPokemon *boxMon); void CalculateMonStats(struct Pokemon *mon); -void sub_803B4B4(struct Pokemon *src, struct Pokemon *dest); +void sub_803B4B4(const struct BoxPokemon *src, struct Pokemon *dest); u8 GetLevelFromMonExp(struct Pokemon *mon); u8 GetLevelFromBoxMonExp(struct BoxPokemon *boxMon); u16 GiveMoveToMon(struct Pokemon *mon, u16 move); @@ -520,7 +532,7 @@ void SetMonMoveSlot(struct Pokemon *mon, u16 move, u8 slot); void SetBattleMonMoveSlot(struct BattlePokemon *mon, u16 move, u8 slot); void GiveMonInitialMoveset(struct Pokemon *mon); void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon); -u16 sub_803B7C8(struct Pokemon *mon, u8 a2); +u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove); void DeleteFirstMoveAndGiveMoveToMon(struct Pokemon *mon, u16 move); void DeleteFirstMoveAndGiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move); @@ -539,11 +551,13 @@ union PokemonSubstruct *GetSubstruct(struct BoxPokemon *boxMon, u32 personality, // but they are not used since some code erroneously omits the third arg. // u32 GetMonData(struct Pokemon *mon, s32 field, u8 *data); // u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data); +// void SetMonData(struct Pokemon *mon, s32 field, const void *dataArg); +// void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *dataArg); u32 GetMonData(); u32 GetBoxMonData(); +void SetMonData(); +void SetBoxMonData(); -void SetMonData(struct Pokemon *mon, s32 field, const u8 *data); -void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const u8 *data); void CopyMon(void *dest, void *src, size_t size); u8 GiveMonToPlayer(struct Pokemon *mon); u8 SendMonToPC(struct Pokemon *mon); @@ -566,12 +580,15 @@ void CopyPlayerPartyMonToBattleData(u8 battleIndex, u8 partyIndex); u8 GetNature(struct Pokemon *mon); u8 GetNatureFromPersonality(u32 personality); +u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem); + u16 nature_stat_mod(u8 nature, u16 n, u8 statIndex); void MonRestorePP(struct Pokemon *); u8 *sub_803F378(u16 itemId); +u16 SpeciesToPokedexNum(u16 species); u16 NationalPokedexNumToSpecies(u16 nationalNum); u16 NationalToHoennOrder(u16); u16 SpeciesToNationalPokedexNum(u16); @@ -589,15 +606,27 @@ u8 sub_8040574(struct Pokemon *party); void ClearBattleMonForms(void); void sub_80408BC(); void current_map_music_set__default_for_battle(u16); -const u8 *pokemon_get_pal(struct Pokemon *mon); -const u8 *species_and_otid_get_pal(u16, u32, u32); -const struct CompressedSpritePalette *sub_80409C8(u16, u32, u32); +const u8 *GetMonSpritePal(struct Pokemon *mon); +const u8 *GetMonSpritePalFromOtIdPersonality(u16, u32, u32); +const struct CompressedSpritePalette *GetMonSpritePalStructFromOtIdPersonality(u16, u32, u32); bool8 IsOtherTrainer(u32, u8 *); void sub_8040B8C(void); void SetWildMonHeldItem(void); u8 *sub_8040D08(); -bool32 sub_8040D3C(u16 species, u8 *name, u8 language); +bool32 ShouldHideGenderIconForLanguage(u16 species, u8 *name, u8 language); +bool32 ShouldHideGenderIcon(u16 species, u8 *name); s8 sub_8040A54(struct Pokemon *, u8); u16 GetMonEVCount(struct Pokemon *); +u16 GetEvolutionTargetSpecies(struct Pokemon *, u8, u16); +const struct CompressedSpritePalette *GetMonSpritePalStruct(struct Pokemon *); +bool8 IsPokeSpriteNotFlipped(u16); +u8 GetLevelUpMovesBySpecies(u16, u16 *); +u8 TryIncrementMonLevel(struct Pokemon *); +bool8 IsShiny(struct Pokemon *mon); +void RandomlyGivePartyPokerus(struct Pokemon *party); +void PartySpreadPokerus(struct Pokemon *party); + +struct Sprite *sub_80F7920(u16, u16, const u16 *); + #endif // GUARD_POKEMON_H diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h index 98f984564..7e26c1c9b 100644 --- a/include/pokemon_icon.h +++ b/include/pokemon_icon.h @@ -1,7 +1,8 @@ #ifndef GUARD_POKEMON_ICON_H #define GUARD_POKEMON_ICON_H -u8 CreateMonIcon(); +u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality); +u8 UpdateMonIconFrame(struct Sprite *sprite); u8 sub_809D3A4(u16 arg0, void (*)(struct Sprite *), int, u8 arg3, u32 arg4); u16 GetUnownLetterByPersonality(u32); u16 sub_809D4A8(u16); @@ -9,6 +10,7 @@ void sub_809D510(struct Sprite *); void sub_809D51C(void); void sub_809D580(u16); void sub_809D608(u16); -void UpdateMonIconFrame(struct Sprite *sprite); +void sub_809D62C(struct Sprite *sprite); +void sub_809D824(struct Sprite *sprite, u8 animNum); #endif // GUARD_POKEMON_ICON_H diff --git a/include/pokemon_menu.h b/include/pokemon_menu.h index fc43a44c6..57a313d89 100644 --- a/include/pokemon_menu.h +++ b/include/pokemon_menu.h @@ -1,15 +1,51 @@ #ifndef GUARD_POKEMON_MENU_H #define GUARD_POKEMON_MENU_H +#include "menu.h" + +#define POKEMENU_FIRST_FIELD_MOVE_ID 10 + +enum +{ + POKEMENU_SUMMARY, // 0 + POKEMENU_SWITCH, // 1 + POKEMENU_ITEM, // 2 + POKEMENU_CANCEL, // 3 + POKEMENU_GIVE_ITEM, // 4 + POKEMENU_TAKE_ITEM, // 5 + POKEMENU_TAKE_MAIL, // 6 + POKEMENU_MAIL, // 7 + POKEMENU_READ_MAIL, // 8 + POKEMENU_CANCEL_SUBMENU, // 9 + POKEMENU_CUT, // 10 + POKEMENU_FLASH, // 11 + POKEMENU_ROCK_SMASH, // 12 + POKEMENU_STRENGTH, // 13 + POKEMENU_SURF, // 14 + POKEMENU_FLY, // 15 + POKEMENU_DIVE, // 16 + POKEMENU_WATERFALL, // 17 + POKEMENU_TELEPORT, // 18 + POKEMENU_DIG, // 19 + POKEMENU_SECRET_POWER, // 20 + POKEMENU_MILK_DRINK, // 21 + POKEMENU_SOFT_BOILED, // 22 + POKEMENU_SWEET_SCENT, // 23 +}; + +extern u8 gLastFieldPokeMenuOpened; +extern void (*gUnknown_03005CE4)(void); + +void HandleDefaultPartyMenu(u8 taskID); +void sub_808B5B4(u32 taskID); void sub_8089A70(void); -void sub_808A004(); -void sub_808AB90(void); -void sub_808AB90(void); // unknown args -void sub_808AB90(void); +void sub_8089C50(u8 arg0, u8 arg1, u8 arg2, u8 noOfOptions, const struct MenuAction2 *menuActions, const u8 *order); +void DoPokemonMenu_Switch(u8 taskID); +void FieldCallback_Teleport(void); void sub_808AD58(void); void sub_808B020(void); -void sub_808B0C0(u8); +void sub_808B0C0(u8 taskID); void sub_808B508(u8); -void sub_808B564(); +void sub_808B564(void); #endif // GUARD_POKEMON_MENU_H diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index bd4e7915b..9fe3436ef 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -2,5 +2,7 @@ #define GUARD_POKEMON_STORAGE_SYSTEM_H void ResetPokemonStorageSystem(void); +void BoxMonRestorePP(struct BoxPokemon *); +void party_compaction(void); #endif // GUARD_POKEMON_STORAGE_SYSTEM_H diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h index c1b99c367..945e810a3 100644 --- a/include/pokemon_summary_screen.h +++ b/include/pokemon_summary_screen.h @@ -1,11 +1,65 @@ #ifndef GUARD_POKEMON_SUMMARY_SCREEN_H #define GUARD_POKEMON_SUMMARY_SCREEN_H +#include "main.h" +#include "task.h" + extern const u8 *const gNatureNames[]; -void ShowPokemonSummaryScreen(struct Pokemon *, u8, u8, void (*)(void), int); -void sub_809D9F0(struct Pokemon *party, u8, u8, void *, u32); -void sub_809D9F0(struct Pokemon *, u8, u8, void *, u32); +// The Pokemon Summary Screen can operate in different modes. Certain features, +// such as move re-ordering, are available in the different modes. +enum PokemonSummaryScreenMode +{ + PSS_MODE_NORMAL, + PSS_MODE_MOVES_ONLY, + PSS_MODE_SELECT_MOVE, + PSS_MODE_UNKNOWN, // TODO: this mode might be used by pokemon_storage_system + PSS_MODE_NO_MOVE_ORDER_EDIT, + PSS_MODE_PC_NORMAL, + PSS_MODE_PC_MOVES_ONLY, +}; + +enum PokemonSummaryScreenPage +{ + PSS_PAGE_INFO, + PSS_PAGE_SKILLS, + PSS_PAGE_BATTLE_MOVES, + PSS_PAGE_CONTEST_MOVES, +}; + +struct PokemonSummaryScreenStruct +{ + /*0x00*/ union { + struct Pokemon *partyMons; + struct BoxPokemon *boxMons; + } monList; + /*0x04*/ MainCallback callback; + /*0x08*/ u8 mode; // see enum PokemonSummaryScreenMode + /*0x09*/ u8 monIndex; + /*0x0A*/ u8 maxMonIndex; + /*0x0B*/ u8 page; // enum PokemonSummaryScreenPage + /*0x0C*/ u8 monSpriteId; + /*0x0D*/ u8 ballSpriteId; + /*0x0E*/ bool8 usingPC; + /*0x0F*/ u8 inputHandlingTaskId; + /*0x10*/ struct Pokemon loadedMon; + /*0x74*/ u8 loadGfxState; + /*0x75*/ u8 firstPage; + /*0x76*/ u8 lastPage; + /*0x77*/ u8 unk77; + /*0x78*/ u8 unk78; + /*0x79*/ u8 selectedMoveIndex; + /*0x7A*/ u8 switchMoveIndex; + /*0x7B*/ bool8 disableMoveOrderEditing; + /*0x7C*/ u16 moveToLearn; + /*0x7E*/ u8 headerTextId; // used as index into sPageHeaderTexts + /*0x7F*/ u8 headerActionTextId; // used as index into sPageHeaderTexts + /*0x80*/ u8 bgToggle; + /*0x84*/ TaskFunc unk84; +}; + +void ShowPokemonSummaryScreen(struct Pokemon *, u8, u8, MainCallback, u8); +void ShowSelectMovePokemonSummaryScreen(struct Pokemon *, u8, u8, MainCallback, u16); u8 sub_809FA30(void); u8 pokemon_ailments_get_primary(u32); u8 GetMonStatusAndPokerus(); @@ -14,4 +68,5 @@ u8 *PokemonSummaryScreen_CopyPokemonLevel(u8 *dest, u8 level); u8 PokemonSummaryScreen_CheckOT(struct Pokemon *pokemon); bool8 CheckPartyPokerus(struct Pokemon *, u8); + #endif // GUARD_POKEMON_SUMMARY_SCREEN_H diff --git a/include/pokenav.h b/include/pokenav.h index 70cc4135f..f77f93e2d 100644 --- a/include/pokenav.h +++ b/include/pokenav.h @@ -1,6 +1,8 @@ #ifndef GUARD_POKENAV_H #define GUARD_POKENAV_H +#include "region_map.h" + struct UnkPokenavStruct_Sub { /*0x0*/ u16 unk0; /*0x2*/ u8 filler2[6]; @@ -30,28 +32,61 @@ struct UnkPokenavStruct_Sub2 { /*0x26*/ u16 unk26; }; +struct UnkPokenavStruct_Sub3 { + /*0x00*/s16 unk0; +}; + struct UnkUsePokeblockSub { /*0*/ u8 fil0[2]; /*2*/ u8 partyIdx:5; + /*2*/ u16 unk2:9; }; struct UnkPokenavStruct { - /*0x0000*/ u8 filler0000[0x30c]; - /*0x0000*/ u16 unk030C; - /*0x0000*/ u8 filler030E[0x6a9e]; + /*0x0000*/ u8 filler0000[0x306]; + /*0x0306*/ u16 unk306; + /*0x0306*/ u8 filler0308[0x4]; + /*0x030C*/ union { // TODO: what? + u16 val; + struct UnkPokenavStruct_Sub3 unk030C; + } unk030C; + /*0x0310*/ u8 filler030E[0x6a90]; + /*0x6DA0*/ u16 unk6DA0; + /*0x6DA2*/ u16 unk6DA2; + /*0x6DA4*/ u16 taskId6DA4; + /*0x6DA6*/ u8 filler6DA6[0x6]; /*0x6DAC*/ u8 unk6DAC; - /*0x6DAD*/ u8 filler6DAD[0x8fd]; + /*0x6DAD*/ u8 filler6DAD[0x6B]; + /*0x6E18*/ struct RegionMap regionMap; + /*0x7698*/ u16 unk7698; + /*0x769A*/ u16 unk769A; + /*0x769C*/ u8 unk769C; + /*0x769D*/ u8 unk769D; + /*0x769E*/ u8 unk769E; + /*0x769F*/ u8 filler769F[0xB]; /*0x76AA*/ u8 unk76AA; /*0x76AB*/ u8 filler76AB[0x10bd]; /*0x8768*/ struct UnkPokenavStruct_Sub2 *unk8768; - /*0x876C*/ u8 filler876C[0x6e]; + /*0x876C*/ u8 filler876C[0x2]; + /*0x876E*/ u8 unk876E; + /*0x876F*/ u8 filler876F[0x7]; + /*0x8776*/ u16 unk8776; + /*0x8778*/ u16 unk8778; + /*0x877A*/ u8 filler877A[0xE]; + /*0x8788*/ u8 unk8788[0x40]; + /*0x87C8*/ u8 unk87C8; + /*0x87C9*/ u8 filler87C9; + /*0x87CA*/ u8 unk87CA; + /*0x87CB*/ u8 filler87CB[0xF]; /*0x87DA*/ s16 unk87DA; /*0x87DC*/ s16 unk87DC; /*0x87DE*/ s16 unk87DE; /*0x87E0*/ void *unk87E0; /*0x87E4*/ u8 filler87E4[0x44]; /*0x8828*/ u8 unk8828; - /*0x8829*/ u8 filler8829[0x113]; + /*0x8829*/ u8 unk8829[3][64]; + /*0x88E9*/ u8 unk88E9[3][24]; + /*0x8931*/ u8 unk8931[11]; /*0x893C*/ struct UnkUsePokeblockSub unk893c[0x1ab]; /*0x8fe8*/ u8 fil8fe8[1]; /*0x8fe9*/ s8 unk8fe9; @@ -61,11 +96,20 @@ struct UnkPokenavStruct { /*0x9004*/ u8 unk9004[3][20]; /*0x9040*/ u8 unk9040[0x304]; /*0x9344*/ u8 unk9344; - /*0x9345*/ u8 filler9345[0x3ba3]; + /*0x9345*/ u8 filler9345[0x2955]; + /*0xBC9A*/ u8 unkBC9A; + /*0xBC9B*/ u8 unkBC9B; + /*0xBC9C*/ u8 unkBC9C[22][200]; + /*0xCDCC*/ const u8 *unkCDCC[16][2]; + /*0xCE4C*/ u16 unkCE4C; + /*0xCE4E*/ u16 unkCE4E; + /*0xCE50*/ u16 unkCE50; + /*0xCE52*/ u16 palettesCE52[30]; + /*0xCE8E*/ u16 palettesCE8E[0x2D]; /*0xCEE8*/ struct UnkPokenavStruct_Sub unkCEE8[78]; /*0xD158*/ u16 unkD158; /*0xD15A*/ u8 fillerD15A[6]; - /*0xD162*/ u16 unkD160; + /*0xD160*/ u16 unkD160; /*0xD162*/ u8 unkD162[2]; /*0xD164*/ struct UnkPokenavStruct_Sub1 unkD164; }; diff --git a/include/rng.h b/include/random.h index dec8c6e26..a928a97b5 100644 --- a/include/rng.h +++ b/include/random.h @@ -1,5 +1,5 @@ -#ifndef GUARD_RNG_H -#define GUARD_RNG_H +#ifndef GUARD_RANDOM_H +#define GUARD_RANDOM_H extern u32 gRngValue; @@ -12,4 +12,5 @@ u16 Random(void); //Sets the initial seed value of the pseudorandom number generator void SeedRng(u16 seed); -#endif // GUARD_RNG_H +#endif // GUARD_RANDOM_H + diff --git a/include/record_mixing.h b/include/record_mixing.h index ca60b04a7..96105f3f7 100644 --- a/include/record_mixing.h +++ b/include/record_mixing.h @@ -21,7 +21,7 @@ u16 *GetPlayerRecvBuffer(u8 player); void sub_80B9A78(void); void sub_80B9A88(u8 *a); void sub_80B9B1C(u8 *a, size_t size, u8 index); -void sub_80B9B70(u8 *a, size_t size, u8 index); +void sub_80B9B70(void *a, u32 size, u8 index); u8 sub_80B9BBC(u16 *a); void sub_80B9BC4(u8 *, size_t, u8[][2], u8 d, u8 e); u8 sub_80B9C4C(u8 *a); diff --git a/include/region_map.h b/include/region_map.h index 3d970fa0a..254307052 100644 --- a/include/region_map.h +++ b/include/region_map.h @@ -3,11 +3,11 @@ struct RegionMap { - u8 mapSecName[0x14]; - u16 mapSecId; - u8 unk16; - u8 everGrandeCityArea; - u8 (*inputCallback)(void); + u8 mapSectionName[20]; + /*0x14*/ u16 mapSectionId; + /*0x16*/ u8 unk16; + /*0x17*/ u8 everGrandeCityArea; + /*0x18*/ u8 (*inputCallback)(void); struct Sprite *cursorSprite; struct Sprite *playerIconSprite; s32 bg2x; @@ -62,10 +62,10 @@ void sub_80FAEC4(void); u8 sub_80FAFC0(void); void UpdateRegionMapVideoRegs(void); void sub_80FB2A4(s16, s16); -u16 sub_80FBA04(u16 mapSecId); +u16 sub_80FBA04(u16 mapSectionId); void CreateRegionMapCursor(u16, u16); void CreateRegionMapPlayerIcon(u16, u16); -const u8 *GetMapSectionName(u8 *dest, u16 mapSecId, u16 length); +const u8 *GetMapSectionName(u8 *dest, u16 mapSectionId, u16 length); const u8 *CopyMapName(u8 *dest, u16 b); const u8 *CopyLocationName(u8 *dest, u16 b); diff --git a/include/region_map_sections.h b/include/region_map_sections.h new file mode 100755 index 000000000..a3bd60b59 --- /dev/null +++ b/include/region_map_sections.h @@ -0,0 +1,60 @@ +#ifndef GUARD_REGIONMAPSEC_H +#define GUARD_REGIONMAPSEC_H + +enum +{ + MAPSEC_LittlerootTown, // 0x00 + MAPSEC_OldaleTown, // 0x01 + MAPSEC_DewfordTown, // 0x02 + MAPSEC_LavaridgeTown, // 0x03 + MAPSEC_FallarborTown, // 0x04 + MAPSEC_VerdanturfTown, // 0x05 + MAPSEC_PacifidlogTown, // 0x06 + MAPSEC_PetalburgCity, // 0x07 + MAPSEC_SlateportCity, // 0x08 + MAPSEC_MauvilleCity, // 0x09 + MAPSEC_RustboroCity, // 0x0A + MAPSEC_FortreeCity, // 0x0B + MAPSEC_LilycoveCity, // 0x0C + MAPSEC_MossdeepCity, // 0x0D + MAPSEC_SootopolisCity, // 0x0E + MAPSEC_EverGrandeCity, // 0x0F + MAPSEC_Route101, // 0x10 + MAPSEC_Route102, // 0x11 + MAPSEC_Route103, // 0x12 + MAPSEC_Route104, // 0x13 + MAPSEC_Route105, // 0x14 + MAPSEC_Route106, // 0x15 + MAPSEC_Route107, // 0x16 + MAPSEC_Route108, // 0x17 + MAPSEC_Route109, // 0x18 + MAPSEC_Route110, // 0x19 + MAPSEC_Route111, // 0x1A + MAPSEC_Route112, // 0x1B + MAPSEC_Route113, // 0x1C + MAPSEC_Route114, // 0x1D + MAPSEC_Route115, // 0x1E + MAPSEC_Route116, // 0x1F + MAPSEC_Route117, // 0x20 + MAPSEC_Route118, // 0x21 + MAPSEC_Route119, // 0x22 + MAPSEC_Route120, // 0x23 + MAPSEC_Route121, // 0x24 + MAPSEC_Route122, // 0x25 + MAPSEC_Route123, // 0x26 + MAPSEC_Route124, // 0x27 + MAPSEC_Route125, // 0x28 + MAPSEC_Route126, // 0x29 + MAPSEC_Route127, // 0x2A + MAPSEC_Route128, // 0x2B + MAPSEC_Route129, // 0x2C + MAPSEC_Route130, // 0x2D + MAPSEC_Route131, // 0x2E + MAPSEC_Route132, // 0x2F + MAPSEC_Route133, // 0x30 + MAPSEC_Route134, // 0x31 + MAPSEC_MtChimney = 0x38, // 0x38 + MAPSEC_Nothing = 0x58, // 0x58 +}; + +#endif // GUARD_REGIONMAPSEC_H diff --git a/include/roamer.h b/include/roamer.h index 9d5f3c4ed..86908bd00 100644 --- a/include/roamer.h +++ b/include/roamer.h @@ -7,5 +7,7 @@ void UpdateLocationHistoryForRoamer(void); void RoamerMoveToOtherLocationSet(void); void RoamerMove(); u8 TryStartRoamerEncounter(void); +void UpdateRoamerHPStatus(struct Pokemon *mon); +void SetRoamerInactive(void); #endif diff --git a/include/rom3.h b/include/rom3.h index 81bb56df1..19c6def25 100644 --- a/include/rom3.h +++ b/include/rom3.h @@ -1,6 +1,12 @@ #ifndef GUARD_ROM3_H #define GUARD_ROM3_H +struct HpAndStatus +{ + u16 hp; + u32 status; +}; + struct DisableStruct; void sub_800B858(void); @@ -55,7 +61,7 @@ void Emitcmd44(u8 a, u16 b); void EmitFaintingCry(u8 a); void EmitIntroSlide(u8 a, u8 b); void EmitTrainerBallThrow(u8 a); -void Emitcmd48(u8 a, u8 *b, u8 c); +void EmitDrawPartyStatusSummary(u8 a, struct HpAndStatus *hpAndStatus, u8 c); //0x30 void Emitcmd49(u8 a); void Emitcmd50(u8 a); void EmitSpriteInvisibility(u8 a, u8 b); diff --git a/include/rom6.h b/include/rom6.h index e7a3ba48e..8c3691624 100644 --- a/include/rom6.h +++ b/include/rom6.h @@ -1,6 +1,8 @@ #ifndef GUARD_ROM6_H #define GUARD_ROM6_H +extern struct MapPosition gUnknown_0203923C; + bool8 npc_before_player_of_type(u8); u8 oei_task_add(void); diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h index 11e94e1f5..21ec88a90 100644 --- a/include/rom_8077ABC.h +++ b/include/rom_8077ABC.h @@ -4,10 +4,16 @@ #include "sprite.h" #include "task.h" -u8 sub_8077ABC(u8, u8); +struct Struct_sub_8078914 { + u8 *field_0; + u8 *field_4; + u8 field_8; +}; + +u8 GetBankPosition(u8, u8); u8 sub_8077E44(u8 slot, u16 species, u8 a3); -u8 obj_id_for_side_relative_to_move(u8 side); -void oamt_set_x3A_32(struct Sprite *sprite, void(*callback)(struct Sprite *)); +u8 GetAnimBankSpriteId(u8 side); +void StoreSpriteCallbackInData(struct Sprite *sprite, void(*callback)(struct Sprite *)); void sub_8078314(struct Sprite *sprite); void sub_8078364(struct Sprite *sprite); void sub_8078458(struct Sprite *sprite); @@ -19,11 +25,10 @@ u8 GetBankSide(u8 slot); u8 GetBankSide(u8); u8 GetBankIdentity(u8); u8 GetBankIdentity(u8 slot); -u8 GetBankByPlayerAI(u8); -u8 GetBankByPlayerAI(u8); -u8 GetBankByPlayerAI(u8 state); -u8 sub_8078874(u8); -bool8 sub_8078874(u8); +u8 GetBankByIdentity(u8); +u8 GetBankByIdentity(u8); +u8 GetBankByIdentity(u8 state); +bool8 IsBankSpritePresent(u8); bool8 IsDoubleBattle(); u8 IsDoubleBattle(void); bool8 IsDoubleBattle(void); @@ -41,13 +46,17 @@ void sub_8078E70(u8 sprite, u8); void sub_8078F40(u8 sprite); void sub_8078F9C(u8 sprite); void sub_8079518(struct Sprite *sprite); +void sub_8079534(struct Sprite *sprite); void sub_80796F8(u8 task); void sub_80797EC(struct Task *task); void sub_8079814(u8 taskId); void sub_8079A64(u8 sprite); u16 sub_8079B10(u8 sprite); -void sub_8079BF4(s16 *bottom, s16 *top, void *ptr); +void sub_8079BF4(s16 *bottom, s16 *top, const void *ptr); void *sub_8079BFC(s16 bottom, s16 top); +// u8 a2 := u8 sprite +void sub_8079C08(struct Task *task, u8 a2, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7); +u8 sub_8079C74(struct Task *task); void sub_8079E24(); u8 sub_8079E90(u8 slot); u8 GetBankIdentity_permutated(u8 slot); @@ -55,5 +64,44 @@ void sub_807A784(u8 taskId); void sub_807A850(struct Task *task, u8 taskId); void sub_807A8D4(struct Sprite *sprite); void sub_807A960(struct Sprite *sprite); +void sub_8078A34(struct Sprite *sprite); +void sub_80787B0(struct Sprite *sprite, u8); +void sub_8078764(struct Sprite *sprite, u8); +void sub_8078B34(struct Sprite *sprite); +void sub_8078D60(struct Sprite *sprite); +void sub_80786EC(struct Sprite *sprite); +void sub_80782D8(struct Sprite *sprite); +void sub_8078CC0(struct Sprite *sprite); +void sub_8078600(struct Sprite *sprite); +void sub_8078504(struct Sprite *sprite); +void sub_807861C(struct Sprite *sprite); +void sub_8078650(struct Sprite *sprite); +void sub_8078394(struct Sprite *sprite); +void sub_80785E4(struct Sprite *sprite); +void sub_8078278(struct Sprite *sprite); +void sub_8078C00(struct Sprite *sprite); +void sub_8078114(struct Sprite *sprite); +void sub_8078174(struct Sprite *sprite); +void sub_80793C4(struct Sprite *sprite); +void sub_807A3FC(u8 slot, u8 a2, s16 *a3, s16 *a4); +u8 sub_8079ED4(u8 slot); +int sub_807A100(u8 slot, u8 a2); +u16 sub_80790F0(s16 a, s16 b); +void sub_8078FDC(struct Sprite *sprite, bool8 a2, s16 xScale, s16 yScale, u16 rotation); +void sub_807867C(struct Sprite *sprite, s16 a2); +u8 sub_8077EE4(u8 slot, u8 a2); +u32 sub_80791A8(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7); +u32 sub_80792C0(u8 a1, u8 a2, u8 a3, u8 a4); +s16 duplicate_obj_of_side_rel2move_in_transparent_mode(u8 a1); +void obj_delete_but_dont_free_vram(struct Sprite *sprite); +void sub_8079108(u16 a1, bool8 a2); +void sub_80798F4(struct Task *task, u8 a2, const void *a3); +bool8 sub_807992C(struct Task *task); +u8 sub_8077FC0(u8 slot); +void move_anim_8074EE0(struct Sprite *sprite); +bool8 sub_8078718(struct Sprite *sprite); +bool8 sub_8078CE8(struct Sprite *sprite); +void oamt_add_pos2_onto_pos1(struct Sprite *sprite); +void sub_8078BD4(struct Sprite *sprite); #endif // GUARD_ROM_8077ABC_H diff --git a/include/roulette.h b/include/roulette.h new file mode 100644 index 000000000..7d114a073 --- /dev/null +++ b/include/roulette.h @@ -0,0 +1,38 @@ +#ifndef GUARD_ROULETTE_H +#define GUARD_ROULETTE_H + +struct UnkStruct1 +{ + u16 var00; + u16 var02; + u8 var04; + u8 var05; + u8 var06; + s8 var07_0:5; + s8 var07_5:2; + s8 var07_7:1; +}; + +struct UnkStruct3 +{ + u8 var00_0:7; + u8 var00_7:1; + u8 var01; + s8 var02; + s8 var03; + struct UnkStruct1 var04; +}; + +struct UnkStruct0 +{ + u8 var00; + u8 var01; + u16 var02; //flag for each UnkStruct3 + struct UnkStruct3 var04[0x10]; +}; + +s16 sub_81174C4(s16, s16); +s16 sub_81174E0(s16); +void PlayRoulette(void); + +#endif diff --git a/include/roulette_util.h b/include/roulette_util.h new file mode 100644 index 000000000..daeaeeeef --- /dev/null +++ b/include/roulette_util.h @@ -0,0 +1,14 @@ +#ifndef GUARD_ROULETTE_UTIL_H +#define GUARD_ROULETTE_UTIL_H + +#include "roulette.h" + +void sub_8124918(struct UnkStruct0 *); +u8 sub_812492C(struct UnkStruct0 *, u8, struct UnkStruct1 *); +void task_tutorial_controls_fadein(struct UnkStruct0 *); +void sub_8124CE8(struct UnkStruct0 *, u16); +void sub_8124D3C(struct UnkStruct0 *, u16); +void sub_8124DDC(u16 *, u16, u8, u8, u8, u8); +void sub_8124E2C(u16 *, u16 *, u8, u8, u8, u8); + +#endif diff --git a/include/save.h b/include/save.h index 6c47c6f60..c35ad547a 100644 --- a/include/save.h +++ b/include/save.h @@ -3,7 +3,7 @@ struct SaveSectionLocation { - void *data; + u8 *data; u16 size; }; diff --git a/include/script.h b/include/script.h index 2a738698c..5a899cf4a 100644 --- a/include/script.h +++ b/include/script.h @@ -11,7 +11,7 @@ struct ScriptContext u8 stackDepth; u8 mode; u8 comparisonResult; - u8 (*nativePtr)(void); + bool8 (*nativePtr)(void); const u8 *scriptPtr; const u8 *stack[20]; ScrCmdFunc *cmdTable; @@ -23,7 +23,7 @@ struct ScriptContext void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, void *cmdTableEnd); u8 SetupBytecodeScript(struct ScriptContext *ctx, const u8 *ptr); -void SetupNativeScript(struct ScriptContext *ctx, void *ptr); +void SetupNativeScript(struct ScriptContext *ctx, bool8 (*ptr)(void)); void StopScript(struct ScriptContext *ctx); u8 RunScriptCommand(struct ScriptContext *ctx); u8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr); @@ -42,16 +42,12 @@ void ScriptContext1_SetupScript(const u8 *ptr); void ScriptContext1_Stop(void); void EnableBothScriptContexts(void); void ScriptContext2_RunNewScript(const u8 *ptr); -u8 *mapheader_get_tagged_pointer(u8 tag); -void mapheader_run_script_by_tag(u8 tag); -u8 *mapheader_get_first_match_from_tagged_ptr_list(u8 tag); void mapheader_run_script_with_tag_x1(void); void mapheader_run_script_with_tag_x3(void); void mapheader_run_script_with_tag_x5(void); void mapheader_run_script_with_tag_x6(void); bool8 mapheader_run_first_tag2_script_list_match(void); void mapheader_run_first_tag4_script_list_match(void); -u32 CalculateRamScriptChecksum(void); void ClearRamScript(void); bool8 InitRamScript(u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objectId); u8 *GetRamScript(u8 objectId, u8 *script); diff --git a/include/script_menu.h b/include/script_menu.h index cc5c442ec..dca8c26a7 100644 --- a/include/script_menu.h +++ b/include/script_menu.h @@ -1,33 +1,19 @@ #ifndef GUARD_SCRIPTMENU_H #define GUARD_SCRIPTMENU_H -struct MultichoiceListStruct -{ - struct MenuAction *list; - u8 count; -}; +struct MenuAction; extern const u8 *const gUnknown_083CE048[]; -bool8 sub_80B5054(u8 left, u8 top, u8 var3, u8 var4); -bool8 sub_80B50B0(u8 left, u8 top, u8 var3, u8 var4, u8 var5); -u16 GetStringWidthInTilesForScriptMenu(const u8 *str); -void DrawMultichoiceMenu(u8, u8, u8, struct MenuAction *list, u8, u8); -void sub_80B5230(u8, u8, u8, u8, u8, u8); -void sub_80B52B4(u8); +bool8 ScriptMenu_Multichoice(u8 left, u8 top, u8 var3, u8 var4); +bool8 ScriptMenu_MultichoiceWithDefault(u8 left, u8 top, u8 var3, u8 var4, u8 var5); bool8 Multichoice(u8 var1, u8 var2, u8 var3, u8 var4); -void sub_80B53B4(u8, u8, u8, struct MenuAction *list, u8); -bool8 yes_no_box(u8 var1, u8 var2); -bool8 IsScriptActive(void); // unused -void task_yes_no_maybe(u8); -bool8 sub_80B5578(u8 left, u8 top, u8 multichoiceId, u8 a4, u8 columnCount); -void sub_80B5684(u8); -bool8 TryCreatePCMenu(void); -void CreatePCMenu(void); -void sub_80B5838(void); -void task_picbox(u8 taskId); -bool8 sub_80B58C4(u16 var1, u8 var2, u8 var3); -void *picbox_close(void); -bool8 sub_80B59AC(void); +bool8 ScriptMenu_YesNo(u8 var1, u8 var2); +bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 a4, u8 columnCount); +bool8 ScrSpecial_CreatePCMenu(void); +void ScriptMenu_CreatePCMenu(void); +void ScriptMenu_DisplayPCStartupPrompt(void); +bool8 ScriptMenu_ShowPokemonPic(u16 var1, u8 var2, u8 var3); +bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void); #endif diff --git a/include/script_movement.h b/include/script_movement.h index e3cdc25b3..17c1abed7 100644 --- a/include/script_movement.h +++ b/include/script_movement.h @@ -1,8 +1,8 @@ #ifndef GUARD_SCRIPT_MOVEMENT_H #define GUARD_SCRIPT_MOVEMENT_H -bool8 exec_movement(u8, u8, u8, u8 *); -bool8 sub_80A212C(u8, u8, u8); +bool8 ScriptMovement_StartObjectMovementScript(u8, u8, u8, const u8 *); +bool8 ScriptMovement_IsObjectMovementFinished(u8, u8, u8); void sub_80A2178(void); #endif // GUARD_SCRIPT_MOVEMENT_H diff --git a/include/script_pokemon_80C4.h b/include/script_pokemon_80C4.h index 629980a2d..fab07994e 100644 --- a/include/script_pokemon_80C4.h +++ b/include/script_pokemon_80C4.h @@ -8,10 +8,10 @@ void ReducePlayerPartyToThree(void); u8 sub_80C4D50(void); void ShowContestWinner(void); -void HealPlayerParty(); +void ScrSpecial_HealPlayerParty(); u8 ScriptGiveMon(u16, u8, u16, u32, u32, u8); u8 ScriptGiveEgg(u16); -void ScriptWildBattle(u16, u8, u16); +void CreateScriptedWildMon(u16, u8, u16); void ScriptSetMonMoveSlot(u8, u16, u8); #endif diff --git a/include/script_pokemon_80F9.h b/include/script_pokemon_80F9.h index d65c99c15..eed32f5cf 100644 --- a/include/script_pokemon_80F9.h +++ b/include/script_pokemon_80F9.h @@ -7,11 +7,13 @@ struct UnknownStruct2018000 u8 unk8; }; -extern struct UnknownStruct2018000 unk_2018000; - -void sub_80F9A8C(u8); +void OpenPartyMenuFromScriptContext(u8 taskId); void sub_80F9C00(void); void sub_80F9E1C(void); void sub_80F99CC(void); +void HandleSelectPartyMenu(u8 taskId); +bool8 SetupContestPartyMenu(void); +void HandleMoveTutorPartyMenu(u8 taskId); +bool8 SetupMoveTutorPartyMenu(void); #endif diff --git a/include/secret_base.h b/include/secret_base.h index bb747bb02..a3fa22c05 100644 --- a/include/secret_base.h +++ b/include/secret_base.h @@ -1,17 +1,24 @@ #ifndef GUARD_SECRET_BASE_H #define GUARD_SECRET_BASE_H +// Maximum number of secret bases the game can store. This include 1 for the player, and up to 19 others from linked players. +#define MAX_SECRET_BASES 20 + void ResetSecretBases(void); -void sub_80BB970(struct MapEvents *); +void sub_80BB5E4(void); +void sub_80BB63C(void); +void sub_80BB800(void); +void sub_80BB970(struct MapEvents *events); u8 sub_80BBB24(void); -void sub_80BBCCC(u8); -void sub_80BC038(); +void sub_80BBCCC(u8 flagIn); +void sub_80BBFD8(struct MapPosition *, struct MapEvents *); +void sub_80BC038(struct MapPosition *, struct MapEvents *); u8 sub_80BC050(); -u8 *GetSecretBaseMapName(u8 *); +u8 *GetSecretBaseMapName(u8 *dest); void sub_80BC300(); -const u8 sub_80BCCA4(u8); -u8 *sub_80BCCE8(void); -void sub_80BCF1C(u8); -void sub_80BD674(void *, u32, u8); +u8 sub_80BCCA4(u8 secretBaseIndex); +const u8 *GetSecretBaseTrainerLoseText(void); +void sub_80BCF1C(u8 taskId); +void sub_80BD674(void *playerRecords, u32 size, u8 c); #endif // GUARD_SECRET_BASE_H diff --git a/include/slot_machine.h b/include/slot_machine.h index c39aa7ca8..f886d9239 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -1,8 +1,79 @@ #ifndef GUARD_SLOT_MACHINE_H #define GUARD_SLOT_MACHINE_H -void PlaySlotMachine(u8, void *); +enum { + SLOT_MACHINE_TAG_7_RED, + SLOT_MACHINE_TAG_7_BLUE, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_CHERRY, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_REPLAY +}; + +enum { + SLOT_MACHINE_MATCHED_1CHERRY, + SLOT_MACHINE_MATCHED_2CHERRY, + SLOT_MACHINE_MATCHED_REPLAY, + SLOT_MACHINE_MATCHED_LOTAD, + SLOT_MACHINE_MATCHED_AZURILL, + SLOT_MACHINE_MATCHED_POWER, + SLOT_MACHINE_MATCHED_777_MIXED, + SLOT_MACHINE_MATCHED_777_RED, + SLOT_MACHINE_MATCHED_777_BLUE, + SLOT_MACHINE_MATCHED_NONE +}; + +struct SlotMachineEwramStruct { + /*0x00*/ u8 state; + /*0x01*/ u8 unk01; + /*0x02*/ u8 pikaPower; + /*0x03*/ u8 unk03; + /*0x04*/ u8 unk04; + /*0x05*/ u8 unk05; + /*0x06*/ u8 unk06; + /*0x07*/ u8 unk07; + /*0x08*/ u16 matchedSymbols; + /*0x0A*/ u8 unk0A; + /*0x0B*/ u8 unk0B; + /*0x0C*/ s16 coins; + /*0x0E*/ s16 payout; + /*0x10*/ s16 unk10; + /*0x12*/ s16 bet; + /*0x14*/ s16 unk14; + /*0x16*/ s16 unk16; + /*0x18*/ s16 unk18; + /*0x1A*/ s16 unk1A; + /*0x1C*/ s16 unk1C[3]; + /*0x22*/ u16 unk22[3]; + /*0x28*/ s16 reelPositions[3]; + /*0x2E*/ s16 unk2E[3]; + /*0x34*/ s16 unk34[3]; + /*0x3A*/ u8 reelTasks[3]; + /*0x3D*/ u8 unk3D; + /*0x3E*/ u8 unk3E; + /*0x3F*/ u8 unk3F; + /*0x40*/ u8 unk40; + /*0x41*/ u8 unk41; + /*0x42*/ u8 unk42; + /*0x43*/ u8 unk43; + /*0x44*/ u8 unk44[5]; + /*0x49*/ u8 unk49[2]; + /*0x49*/ u8 unk4B[3]; + /*0x4E*/ u8 unk4E[2]; + /*0x50*/ u8 unk50[2]; + /*0x52*/ u8 unk52[2]; + /*0x54*/ u8 unk54[4]; + /*0x58*/ u16 win0h; + /*0x5a*/ u16 win0v; + /*0x5c*/ u16 winIn; + /*0x5e*/ u16 winOut; + /*0x60*/ u16 backupMapMusic; + /*0x64*/ MainCallback prevMainCb; +}; + +void PlaySlotMachine(u8 arg0, MainCallback cb); void sub_8104DA4(void); -u8 sub_8105BB4(u8, u8, s16); +u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2); #endif // GUARD_SLOT_MACHINE_H diff --git a/include/songs.h b/include/songs.h deleted file mode 100644 index afd26d683..000000000 --- a/include/songs.h +++ /dev/null @@ -1,374 +0,0 @@ -#ifndef GUARD_SONGS_H -#define GUARD_SONGS_H - -enum -{ - /*0x00*/ SE_STOP, - /*0x01*/ SE_KAIFUKU, - /*0x02*/ SE_PC_LOGON, - /*0x03*/ SE_PC_OFF, - /*0x04*/ SE_PC_ON, - /*0x05*/ SE_SELECT, - /*0x06*/ SE_WIN_OPEN, - /*0x07*/ SE_WALL_HIT, - /*0x08*/ SE_DOOR, - /*0x09*/ SE_KAIDAN, - /*0x0A*/ SE_DANSA, - /*0x0B*/ SE_JITENSYA, - /*0x0C*/ SE_KOUKA_L, - /*0x0D*/ SE_KOUKA_M, - /*0x0E*/ SE_KOUKA_H, - /*0x0F*/ SE_BOWA2, - /*0x10*/ SE_POKE_DEAD, - /*0x11*/ SE_NIGERU, - /*0x12*/ SE_JIDO_DOA, - /*0x13*/ SE_NAMINORI, - /*0x14*/ SE_BAN, - /*0x15*/ SE_PIN, - /*0x16*/ SE_BOO, - /*0x17*/ SE_BOWA, - /*0x18*/ SE_JYUNI, - /*0x19*/ SE_A, - /*0x1A*/ SE_I, - /*0x1B*/ SE_U, - /*0x1C*/ SE_E, - /*0x1D*/ SE_O, - /*0x1E*/ SE_N, - /*0x1F*/ SE_SEIKAI, - /*0x20*/ SE_HAZURE, - /*0x21*/ SE_EXP, - /*0x22*/ SE_JITE_PYOKO, - /*0x23*/ SE_MU_PACHI, - /*0x24*/ SE_TK_KASYA, - /*0x25*/ SE_FU_ZAKU, - /*0x26*/ SE_FU_ZAKU2, - /*0x27*/ SE_FU_ZUZUZU, - /*0x28*/ SE_RU_GASHIN, - /*0x29*/ SE_RU_GASYAN, - /*0x2A*/ SE_RU_BARI, - /*0x2B*/ SE_RU_HYUU, - /*0x2C*/ SE_KI_GASYAN, - /*0x2D*/ SE_TK_WARPIN, - /*0x2E*/ SE_TK_WARPOUT, - /*0x2F*/ SE_TU_SAA, - /*0x30*/ SE_HI_TURUN, - /*0x31*/ SE_TRACK_MOVE, - /*0x32*/ SE_TRACK_STOP, - /*0x33*/ SE_TRACK_HAIK, - /*0x34*/ SE_TRACK_DOOR, - /*0x35*/ SE_MOTER, - /*0x36*/ SE_CARD, - /*0x37*/ SE_SAVE, - /*0x38*/ SE_KON, - /*0x39*/ SE_KON2, - /*0x3A*/ SE_KON3, - /*0x3B*/ SE_KON4, - /*0x3C*/ SE_SUIKOMU, - /*0x3D*/ SE_NAGERU, - SE_TOY_C, - SE_TOY_D, - SE_TOY_E, - SE_TOY_F, - SE_TOY_G, - SE_TOY_A, - SE_TOY_B, - SE_TOY_C1, - SE_MIZU, - SE_HASHI, - SE_DAUGI, - SE_PINPON, - SE_FUUSEN1, - SE_FUUSEN2, - SE_FUUSEN3, - SE_TOY_KABE, - SE_TOY_DANGO, - SE_DOKU, - SE_ESUKA, - SE_T_AME, - SE_T_AME_E, - SE_T_OOAME, - SE_T_OOAME_E, - SE_T_KOAME, - SE_T_KOAME_E, - SE_T_KAMI, - SE_T_KAMI2, - SE_ELEBETA, - /*0x5A*/ SE_HINSI, - /*0x5B*/ SE_EXPMAX, - /*0x5C*/ SE_TAMAKORO, - /*0x5D*/ SE_TAMAKORO_E, - /*0x5E*/ SE_BASABASA, - /*0x5F*/ SE_REGI, - SE_C_GAJI, - SE_C_MAKU_U, - SE_C_MAKU_D, - SE_C_PASI, - SE_C_SYU, - SE_C_PIKON, - /*0x66*/ SE_REAPOKE, - /*0x67*/ SE_OP_BASYU, - /*0x68*/ SE_BT_START, - SE_DENDOU, - SE_JIHANKI, - SE_TAMA, - SE_Z_SCROLL, - /*0x6D*/ SE_Z_PAGE, - /*0x6E*/ SE_PN_ON, - /*0x6F*/ SE_PN_OFF, - /*0x70*/ SE_Z_SEARCH, - /*0x71*/ SE_TAMAGO, - /*0x72*/ SE_TB_START, - /*0x73*/ SE_TB_KON, - /*0x74*/ SE_TB_KARA, - /*0x75*/ SE_BIDORO, - /*0x76*/ SE_W085, - /*0x77*/ SE_W085B, - /*0x78*/ SE_W231, - /*0x79*/ SE_W171, - /*0x7A*/ SE_W233, - /*0x7B*/ SE_W233B, - /*0x7C*/ SE_W145, - /*0x7D*/ SE_W145B, - /*0x7E*/ SE_W145C, - /*0x7F*/ SE_W240, - /*0x80*/ SE_W015, - /*0x81*/ SE_W081, - /*0x82*/ SE_W081B, - /*0x83*/ SE_W088, - /*0x84*/ SE_W016, - /*0x85*/ SE_W016B, - /*0x86*/ SE_W003, - /*0x87*/ SE_W104, - /*0x88*/ SE_W013, - /*0x89*/ SE_W196, - /*0x8A*/ SE_W086, - /*0x8B*/ SE_W004, - /*0x8C*/ SE_W025, - /*0x8D*/ SE_W025B, - SE_W152, - SE_W026, - SE_W172, - SE_W172B, - SE_W053, - SE_W007, - SE_W092, - SE_W221, - SE_W221B, - SE_W052, - SE_W036, - SE_W059, - SE_W059B, - SE_W010, - SE_W011, - SE_W017, - SE_W019, - SE_W028, - SE_W013B, - SE_W044, - SE_W029, - SE_W057, - SE_W056, - SE_W250, - SE_W030, - SE_W039, - SE_W054, - SE_W077, - SE_W020, - SE_W082, - SE_W047, - SE_W195, - SE_W006, - SE_W091, - SE_W146, - SE_W120, - SE_W153, - SE_W071B, - SE_W071, - SE_W103, - /*0xB6*/ SE_W062, - /*0xB7*/ SE_W062B, - /*0xB8*/ SE_W048, - /*0xB9*/ SE_W187, - /*0xBA*/ SE_W118, - /*0xBB*/ SE_W155, - /*0xBC*/ SE_W122, - /*0xBD*/ SE_W060, - /*0xBE*/ SE_W185, - /*0xBF*/ SE_W014, - /*0xC0*/ SE_W043, - /*0xC1*/ SE_W207, - /*0xC2*/ SE_W207B, - /*0xC3*/ SE_W215, - /*0xC4*/ SE_W109, - /*0xC5*/ SE_W173, - /*0xC6*/ SE_W280, - /*0xC7*/ SE_W202, - /*0xC8*/ SE_W060B, - /*0xC9*/ SE_W076, - /*0xCA*/ SE_W080, - /*0xCB*/ SE_W100, - /*0xCC*/ SE_W107, - SE_W166, - SE_W129, - SE_W115, - SE_W112, - SE_W197, - SE_W199, - SE_W236, - SE_W204, - SE_W268, - SE_W070, - SE_W063, - SE_W127, - SE_W179, - SE_W151, - SE_W201, - SE_W161, - SE_W161B, - SE_W227, - SE_W227B, - SE_W226, - SE_W208, - SE_W213, - SE_W213B, - SE_W234, - SE_W260, - SE_W328, - SE_W320, - SE_W255, - SE_W291, - SE_W089, - SE_W239, - SE_W230, - SE_W281, - SE_W327, - SE_W287, - SE_W257, - SE_W253, - SE_W258, - SE_W322, - SE_W298, - SE_W287B, - SE_W114, - SE_W063B, - BGM_STOP = 349, - BGM_TETSUJI, - BGM_FIELD13, - BGM_KACHI22, - BGM_KACHI2, - BGM_KACHI3, - BGM_KACHI5, - BGM_PCC, - BGM_NIBI, - BGM_SUIKUN, - BGM_DOORO1, - BGM_DOORO_X1, - BGM_DOORO_X3, - BGM_MACHI_S2, - BGM_MACHI_S4, - BGM_GIM, - BGM_NAMINORI, - BGM_DAN01, - /*0x16F*/ BGM_FANFA1, - /*0x170*/ BGM_ME_ASA, - /*0x171*/ BGM_ME_BACHI, - /*0x172*/ BGM_FANFA4, - /*0x173*/ BGM_FANFA5, - /*0x174*/ BGM_ME_WAZA, - /*0x175*/ BGM_BIJYUTU, - /*0x176*/ BGM_DOORO_X4, - /*0x177*/ BGM_FUNE_KAN, - /*0x178*/ BGM_ME_SHINKA, - /*0x179*/ BGM_SHINKA, - /*0x17A*/ BGM_ME_WASURE, - /*0x17B*/ BGM_SYOUJOEYE, - /*0x17C*/ BGM_BOYEYE, - /*0x17D*/ BGM_DAN02, - /*0x17E*/ BGM_MACHI_S3, - /*0x17F*/ BGM_ODAMAKI, - /*0x180*/ BGM_B_TOWER, - /*0x181*/ BGM_SWIMEYE, - /*0x182*/ BGM_DAN03, - /*0x183*/ BGM_ME_KINOMI, - /*0x184*/ BGM_ME_TAMA, - /*0x185*/ BGM_ME_B_BIG, - /*0x186*/ BGM_ME_B_SMALL, - /*0x187*/ BGM_ME_ZANNEN, - /*0x188*/ BGM_BD_TIME, - /*0x189*/ BGM_TEST1, - /*0x18A*/ BGM_TEST2, - /*0x18B*/ BGM_TEST3, - /*0x18C*/ BGM_TEST4, - /*0x18D*/ BGM_TEST, - /*0x18E*/ BGM_GOMACHI0, - /*0x18F*/ BGM_GOTOWN, - /*0x190*/ BGM_POKECEN, - /*0x191*/ BGM_NEXTROAD, - /*0x192*/ BGM_GRANROAD, - /*0x193*/ BGM_CYCLING, - BGM_FRIENDLY, - BGM_MISHIRO, - BGM_TOZAN, - BGM_GIRLEYE, - BGM_MINAMO, - BGM_ASHROAD, - BGM_EVENT0, - BGM_DEEPDEEP, - BGM_KACHI1, - BGM_TITLE3, - BGM_DEMO1, - BGM_GIRL_SUP, - BGM_HAGESHII, - BGM_KAKKOII, - BGM_KAZANBAI, - BGM_AQA_0, - BGM_TSURETEK, - BGM_BOY_SUP, - BGM_RAINBOW, - BGM_AYASII, - BGM_KACHI4, - BGM_ROPEWAY, - BGM_CASINO, - BGM_HIGHTOWN, - BGM_SAFARI, - BGM_C_ROAD, - BGM_AJITO, - BGM_M_BOAT, - BGM_M_DUNGON, - BGM_FINECITY, - BGM_MACHUPI, - BGM_P_SCHOOL, - BGM_DENDOU, - BGM_TONEKUSA, - BGM_MABOROSI, - BGM_CON_FAN, - BGM_CONTEST0, - BGM_MGM0, - BGM_T_BATTLE, - BGM_OOAME, - BGM_HIDERI, - BGM_RUNECITY, - BGM_CON_K, - BGM_EIKOU_R, - BGM_KARAKURI, - BGM_HUTAGO, - BGM_SITENNOU, - BGM_YAMA_EYE, - BGM_CONLOBBY, - BGM_INTER_V, - BGM_DAIGO, - BGM_THANKFOR, - BGM_END, - BGM_BATTLE27, // wild - BGM_BATTLE31, // aqua/magma grunt - BGM_BATTLE20, // trainer - BGM_BATTLE32, // gym leader - BGM_BATTLE33, // champion - BGM_BATTLE36, // regi - BGM_BATTLE34, // weather trio - BGM_BATTLE35, // rival - BGM_BATTLE38, // elite four - BGM_BATTLE30, // aqua/magma leader -}; - -#endif // GUARD_SONGS_H diff --git a/include/species.h b/include/species.h deleted file mode 100644 index e33481afd..000000000 --- a/include/species.h +++ /dev/null @@ -1,452 +0,0 @@ -#ifndef GUARD_SPECIES_H -#define GUARD_SPECIES_H - -enum { - SPECIES_NONE, // 0x000 - SPECIES_BULBASAUR, // 0x001 - SPECIES_IVYSAUR, // 0x002 - SPECIES_VENUSAUR, // 0x003 - SPECIES_CHARMANDER, // 0x004 - SPECIES_CHARMELEON, // 0x005 - SPECIES_CHARIZARD, // 0x006 - SPECIES_SQUIRTLE, // 0x007 - SPECIES_WARTORTLE, // 0x008 - SPECIES_BLASTOISE, // 0x009 - SPECIES_CATERPIE, // 0x00a - SPECIES_METAPOD, // 0x00b - SPECIES_BUTTERFREE, // 0x00c - SPECIES_WEEDLE, // 0x00d - SPECIES_KAKUNA, // 0x00e - SPECIES_BEEDRILL, // 0x00f - SPECIES_PIDGEY, // 0x010 - SPECIES_PIDGEOTTO, // 0x011 - SPECIES_PIDGEOT, // 0x012 - SPECIES_RATTATA, // 0x013 - SPECIES_RATICATE, // 0x014 - SPECIES_SPEAROW, // 0x015 - SPECIES_FEAROW, // 0x016 - SPECIES_EKANS, // 0x017 - SPECIES_ARBOK, // 0x018 - SPECIES_PIKACHU, // 0x019 - SPECIES_RAICHU, // 0x01a - SPECIES_SANDSHREW, // 0x01b - SPECIES_SANDSLASH, // 0x01c - SPECIES_NIDORAN_F, // 0x01d - SPECIES_NIDORINA, // 0x01e - SPECIES_NIDOQUEEN, // 0x01f - SPECIES_NIDORAN_M, // 0x020 - SPECIES_NIDORINO, // 0x021 - SPECIES_NIDOKING, // 0x022 - SPECIES_CLEFAIRY, // 0x023 - SPECIES_CLEFABLE, // 0x024 - SPECIES_VULPIX, // 0x025 - SPECIES_NINETALES, // 0x026 - SPECIES_JIGGLYPUFF, // 0x027 - SPECIES_WIGGLYTUFF, // 0x028 - SPECIES_ZUBAT, // 0x029 - SPECIES_GOLBAT, // 0x02a - SPECIES_ODDISH, // 0x02b - SPECIES_GLOOM, // 0x02c - SPECIES_VILEPLUME, // 0x02d - SPECIES_PARAS, // 0x02e - SPECIES_PARASECT, // 0x02f - SPECIES_VENONAT, // 0x030 - SPECIES_VENOMOTH, // 0x031 - SPECIES_DIGLETT, // 0x032 - SPECIES_DUGTRIO, // 0x033 - SPECIES_MEOWTH, // 0x034 - SPECIES_PERSIAN, // 0x035 - SPECIES_PSYDUCK, // 0x036 - SPECIES_GOLDUCK, // 0x037 - SPECIES_MANKEY, // 0x038 - SPECIES_PRIMEAPE, // 0x039 - SPECIES_GROWLITHE, // 0x03a - SPECIES_ARCANINE, // 0x03b - SPECIES_POLIWAG, // 0x03c - SPECIES_POLIWHIRL, // 0x03d - SPECIES_POLIWRATH, // 0x03e - SPECIES_ABRA, // 0x03f - SPECIES_KADABRA, // 0x040 - SPECIES_ALAKAZAM, // 0x041 - SPECIES_MACHOP, // 0x042 - SPECIES_MACHOKE, // 0x043 - SPECIES_MACHAMP, // 0x044 - SPECIES_BELLSPROUT, // 0x045 - SPECIES_WEEPINBELL, // 0x046 - SPECIES_VICTREEBEL, // 0x047 - SPECIES_TENTACOOL, // 0x048 - SPECIES_TENTACRUEL, // 0x049 - SPECIES_GEODUDE, // 0x04a - SPECIES_GRAVELER, // 0x04b - SPECIES_GOLEM, // 0x04c - SPECIES_PONYTA, // 0x04d - SPECIES_RAPIDASH, // 0x04e - SPECIES_SLOWPOKE, // 0x04f - SPECIES_SLOWBRO, // 0x050 - SPECIES_MAGNEMITE, // 0x051 - SPECIES_MAGNETON, // 0x052 - SPECIES_FARFETCHD, // 0x053 - SPECIES_DODUO, // 0x054 - SPECIES_DODRIO, // 0x055 - SPECIES_SEEL, // 0x056 - SPECIES_DEWGONG, // 0x057 - SPECIES_GRIMER, // 0x058 - SPECIES_MUK, // 0x059 - SPECIES_SHELLDER, // 0x05a - SPECIES_CLOYSTER, // 0x05b - SPECIES_GASTLY, // 0x05c - SPECIES_HAUNTER, // 0x05d - SPECIES_GENGAR, // 0x05e - SPECIES_ONIX, // 0x05f - SPECIES_DROWZEE, // 0x060 - SPECIES_HYPNO, // 0x061 - SPECIES_KRABBY, // 0x062 - SPECIES_KINGLER, // 0x063 - SPECIES_VOLTORB, // 0x064 - SPECIES_ELECTRODE, // 0x065 - SPECIES_EXEGGCUTE, // 0x066 - SPECIES_EXEGGUTOR, // 0x067 - SPECIES_CUBONE, // 0x068 - SPECIES_MAROWAK, // 0x069 - SPECIES_HITMONLEE, // 0x06a - SPECIES_HITMONCHAN, // 0x06b - SPECIES_LICKITUNG, // 0x06c - SPECIES_KOFFING, // 0x06d - SPECIES_WEEZING, // 0x06e - SPECIES_RHYHORN, // 0x06f - SPECIES_RHYDON, // 0x070 - SPECIES_CHANSEY, // 0x071 - SPECIES_TANGELA, // 0x072 - SPECIES_KANGASKHAN, // 0x073 - SPECIES_HORSEA, // 0x074 - SPECIES_SEADRA, // 0x075 - SPECIES_GOLDEEN, // 0x076 - SPECIES_SEAKING, // 0x077 - SPECIES_STARYU, // 0x078 - SPECIES_STARMIE, // 0x079 - SPECIES_MR_MIME, // 0x07a - SPECIES_SCYTHER, // 0x07b - SPECIES_JYNX, // 0x07c - SPECIES_ELECTABUZZ, // 0x07d - SPECIES_MAGMAR, // 0x07e - SPECIES_PINSIR, // 0x07f - SPECIES_TAUROS, // 0x080 - SPECIES_MAGIKARP, // 0x081 - SPECIES_GYARADOS, // 0x082 - SPECIES_LAPRAS, // 0x083 - SPECIES_DITTO, // 0x084 - SPECIES_EEVEE, // 0x085 - SPECIES_VAPOREON, // 0x086 - SPECIES_JOLTEON, // 0x087 - SPECIES_FLAREON, // 0x088 - SPECIES_PORYGON, // 0x089 - SPECIES_OMANYTE, // 0x08a - SPECIES_OMASTAR, // 0x08b - SPECIES_KABUTO, // 0x08c - SPECIES_KABUTOPS, // 0x08d - SPECIES_AERODACTYL, // 0x08e - SPECIES_SNORLAX, // 0x08f - SPECIES_ARTICUNO, // 0x090 - SPECIES_ZAPDOS, // 0x091 - SPECIES_MOLTRES, // 0x092 - SPECIES_DRATINI, // 0x093 - SPECIES_DRAGONAIR, // 0x094 - SPECIES_DRAGONITE, // 0x095 - SPECIES_MEWTWO, // 0x096 - SPECIES_MEW, // 0x097 - SPECIES_CHIKORITA, // 0x098 - SPECIES_BAYLEEF, // 0x099 - SPECIES_MEGANIUM, // 0x09a - SPECIES_CYNDAQUIL, // 0x09b - SPECIES_QUILAVA, // 0x09c - SPECIES_TYPHLOSION, // 0x09d - SPECIES_TOTODILE, // 0x09e - SPECIES_CROCONAW, // 0x09f - SPECIES_FERALIGATR, // 0x0a0 - SPECIES_SENTRET, // 0x0a1 - SPECIES_FURRET, // 0x0a2 - SPECIES_HOOTHOOT, // 0x0a3 - SPECIES_NOCTOWL, // 0x0a4 - SPECIES_LEDYBA, // 0x0a5 - SPECIES_LEDIAN, // 0x0a6 - SPECIES_SPINARAK, // 0x0a7 - SPECIES_ARIADOS, // 0x0a8 - SPECIES_CROBAT, // 0x0a9 - SPECIES_CHINCHOU, // 0x0aa - SPECIES_LANTURN, // 0x0ab - SPECIES_PICHU, // 0x0ac - SPECIES_CLEFFA, // 0x0ad - SPECIES_IGGLYBUFF, // 0x0ae - SPECIES_TOGEPI, // 0x0af - SPECIES_TOGETIC, // 0x0b0 - SPECIES_NATU, // 0x0b1 - SPECIES_XATU, // 0x0b2 - SPECIES_MAREEP, // 0x0b3 - SPECIES_FLAAFFY, // 0x0b4 - SPECIES_AMPHAROS, // 0x0b5 - SPECIES_BELLOSSOM, // 0x0b6 - SPECIES_MARILL, // 0x0b7 - SPECIES_AZUMARILL, // 0x0b8 - SPECIES_SUDOWOODO, // 0x0b9 - SPECIES_POLITOED, // 0x0ba - SPECIES_HOPPIP, // 0x0bb - SPECIES_SKIPLOOM, // 0x0bc - SPECIES_JUMPLUFF, // 0x0bd - SPECIES_AIPOM, // 0x0be - SPECIES_SUNKERN, // 0x0bf - SPECIES_SUNFLORA, // 0x0c0 - SPECIES_YANMA, // 0x0c1 - SPECIES_WOOPER, // 0x0c2 - SPECIES_QUAGSIRE, // 0x0c3 - SPECIES_ESPEON, // 0x0c4 - SPECIES_UMBREON, // 0x0c5 - SPECIES_MURKROW, // 0x0c6 - SPECIES_SLOWKING, // 0x0c7 - SPECIES_MISDREAVUS, // 0x0c8 - SPECIES_UNOWN, // 0x0c9 - SPECIES_WOBBUFFET, // 0x0ca - SPECIES_GIRAFARIG, // 0x0cb - SPECIES_PINECO, // 0x0cc - SPECIES_FORRETRESS, // 0x0cd - SPECIES_DUNSPARCE, // 0x0ce - SPECIES_GLIGAR, // 0x0cf - SPECIES_STEELIX, // 0x0d0 - SPECIES_SNUBBULL, // 0x0d1 - SPECIES_GRANBULL, // 0x0d2 - SPECIES_QWILFISH, // 0x0d3 - SPECIES_SCIZOR, // 0x0d4 - SPECIES_SHUCKLE, // 0x0d5 - SPECIES_HERACROSS, // 0x0d6 - SPECIES_SNEASEL, // 0x0d7 - SPECIES_TEDDIURSA, // 0x0d8 - SPECIES_URSARING, // 0x0d9 - SPECIES_SLUGMA, // 0x0da - SPECIES_MAGCARGO, // 0x0db - SPECIES_SWINUB, // 0x0dc - SPECIES_PILOSWINE, // 0x0dd - SPECIES_CORSOLA, // 0x0de - SPECIES_REMORAID, // 0x0df - SPECIES_OCTILLERY, // 0x0e0 - SPECIES_DELIBIRD, // 0x0e1 - SPECIES_MANTINE, // 0x0e2 - SPECIES_SKARMORY, // 0x0e3 - SPECIES_HOUNDOUR, // 0x0e4 - SPECIES_HOUNDOOM, // 0x0e5 - SPECIES_KINGDRA, // 0x0e6 - SPECIES_PHANPY, // 0x0e7 - SPECIES_DONPHAN, // 0x0e8 - SPECIES_PORYGON2, // 0x0e9 - SPECIES_STANTLER, // 0x0ea - SPECIES_SMEARGLE, // 0x0eb - SPECIES_TYROGUE, // 0x0ec - SPECIES_HITMONTOP, // 0x0ed - SPECIES_SMOOCHUM, // 0x0ee - SPECIES_ELEKID, // 0x0ef - SPECIES_MAGBY, // 0x0f0 - SPECIES_MILTANK, // 0x0f1 - SPECIES_BLISSEY, // 0x0f2 - SPECIES_RAIKOU, // 0x0f3 - SPECIES_ENTEI, // 0x0f4 - SPECIES_SUICUNE, // 0x0f5 - SPECIES_LARVITAR, // 0x0f6 - SPECIES_PUPITAR, // 0x0f7 - SPECIES_TYRANITAR, // 0x0f8 - SPECIES_LUGIA, // 0x0f9 - SPECIES_HO_OH, // 0x0fa - SPECIES_CELEBI, // 0x0fb - - SPECIES_OLD_UNOWN_B, - SPECIES_OLD_UNOWN_C, - SPECIES_OLD_UNOWN_D, - SPECIES_OLD_UNOWN_E, - SPECIES_OLD_UNOWN_F, - SPECIES_OLD_UNOWN_G, - SPECIES_OLD_UNOWN_H, - SPECIES_OLD_UNOWN_I, - SPECIES_OLD_UNOWN_J, - SPECIES_OLD_UNOWN_K, - SPECIES_OLD_UNOWN_L, - SPECIES_OLD_UNOWN_M, - SPECIES_OLD_UNOWN_N, - SPECIES_OLD_UNOWN_O, - SPECIES_OLD_UNOWN_P, - SPECIES_OLD_UNOWN_Q, - SPECIES_OLD_UNOWN_R, - SPECIES_OLD_UNOWN_S, - SPECIES_OLD_UNOWN_T, - SPECIES_OLD_UNOWN_U, - SPECIES_OLD_UNOWN_V, - SPECIES_OLD_UNOWN_W, - SPECIES_OLD_UNOWN_X, - SPECIES_OLD_UNOWN_Y, - SPECIES_OLD_UNOWN_Z, - - SPECIES_TREECKO, // 0x115 - SPECIES_GROVYLE, // 0x116 - SPECIES_SCEPTILE, // 0x117 - SPECIES_TORCHIC, // 0x118 - SPECIES_COMBUSKEN, // 0x119 - SPECIES_BLAZIKEN, // 0x11a - SPECIES_MUDKIP, // 0x11b - SPECIES_MARSHTOMP, // 0x11c - SPECIES_SWAMPERT, // 0x11d - SPECIES_POOCHYENA, // 0x11e - SPECIES_MIGHTYENA, // 0x11f - SPECIES_ZIGZAGOON, // 0x120 - SPECIES_LINOONE, // 0x121 - SPECIES_WURMPLE, // 0x122 - SPECIES_SILCOON, // 0x123 - SPECIES_BEAUTIFLY, // 0x124 - SPECIES_CASCOON, // 0x125 - SPECIES_DUSTOX, // 0x126 - SPECIES_LOTAD, // 0x127 - SPECIES_LOMBRE, // 0x128 - SPECIES_LUDICOLO, // 0x129 - SPECIES_SEEDOT, // 0x12a - SPECIES_NUZLEAF, // 0x12b - SPECIES_SHIFTRY, // 0x12c - SPECIES_NINCADA, // 0x12d - SPECIES_NINJASK, // 0x12e - SPECIES_SHEDINJA, // 0x12f - SPECIES_TAILLOW, // 0x130 - SPECIES_SWELLOW, // 0x131 - SPECIES_SHROOMISH, // 0x132 - SPECIES_BRELOOM, // 0x133 - SPECIES_SPINDA, // 0x134 - SPECIES_WINGULL, // 0x135 - SPECIES_PELIPPER, // 0x136 - SPECIES_SURSKIT, // 0x137 - SPECIES_MASQUERAIN, // 0x138 - SPECIES_WAILMER, // 0x139 - SPECIES_WAILORD, // 0x13a - SPECIES_SKITTY, // 0x13b - SPECIES_DELCATTY, // 0x13c - SPECIES_KECLEON, // 0x13d - SPECIES_BALTOY, // 0x13e - SPECIES_CLAYDOL, // 0x13f - SPECIES_NOSEPASS, // 0x140 - SPECIES_TORKOAL, // 0x141 - SPECIES_SABLEYE, // 0x142 - SPECIES_BARBOACH, // 0x143 - SPECIES_WHISCASH, // 0x144 - SPECIES_LUVDISC, // 0x145 - SPECIES_CORPHISH, // 0x146 - SPECIES_CRAWDAUNT, // 0x147 - SPECIES_FEEBAS, // 0x148 - SPECIES_MILOTIC, // 0x149 - SPECIES_CARVANHA, // 0x14a - SPECIES_SHARPEDO, // 0x14b - SPECIES_TRAPINCH, // 0x14c - SPECIES_VIBRAVA, // 0x14d - SPECIES_FLYGON, // 0x14e - SPECIES_MAKUHITA, // 0x14f - SPECIES_HARIYAMA, // 0x150 - SPECIES_ELECTRIKE, // 0x151 - SPECIES_MANECTRIC, // 0x152 - SPECIES_NUMEL, // 0x153 - SPECIES_CAMERUPT, // 0x154 - SPECIES_SPHEAL, // 0x155 - SPECIES_SEALEO, // 0x156 - SPECIES_WALREIN, // 0x157 - SPECIES_CACNEA, // 0x158 - SPECIES_CACTURNE, // 0x159 - SPECIES_SNORUNT, // 0x15a - SPECIES_GLALIE, // 0x15b - SPECIES_LUNATONE, // 0x15c - SPECIES_SOLROCK, // 0x15d - SPECIES_AZURILL, // 0x15e - SPECIES_SPOINK, // 0x15f - SPECIES_GRUMPIG, // 0x160 - SPECIES_PLUSLE, // 0x161 - SPECIES_MINUN, // 0x162 - SPECIES_MAWILE, // 0x163 - SPECIES_MEDITITE, // 0x164 - SPECIES_MEDICHAM, // 0x165 - SPECIES_SWABLU, // 0x166 - SPECIES_ALTARIA, // 0x167 - SPECIES_WYNAUT, // 0x168 - SPECIES_DUSKULL, // 0x169 - SPECIES_DUSCLOPS, // 0x16a - SPECIES_ROSELIA, // 0x16b - SPECIES_SLAKOTH, // 0x16c - SPECIES_VIGOROTH, // 0x16d - SPECIES_SLAKING, // 0x16e - SPECIES_GULPIN, // 0x16f - SPECIES_SWALOT, // 0x170 - SPECIES_TROPIUS, // 0x171 - SPECIES_WHISMUR, // 0x172 - SPECIES_LOUDRED, // 0x173 - SPECIES_EXPLOUD, // 0x174 - SPECIES_CLAMPERL, // 0x175 - SPECIES_HUNTAIL, // 0x176 - SPECIES_GOREBYSS, // 0x177 - SPECIES_ABSOL, // 0x178 - SPECIES_SHUPPET, // 0x179 - SPECIES_BANETTE, // 0x17a - SPECIES_SEVIPER, // 0x17b - SPECIES_ZANGOOSE, // 0x17c - SPECIES_RELICANTH, // 0x17d - SPECIES_ARON, // 0x17e - SPECIES_LAIRON, // 0x17f - SPECIES_AGGRON, // 0x180 - SPECIES_CASTFORM, // 0x181 - SPECIES_VOLBEAT, // 0x182 - SPECIES_ILLUMISE, // 0x183 - SPECIES_LILEEP, // 0x184 - SPECIES_CRADILY, // 0x185 - SPECIES_ANORITH, // 0x186 - SPECIES_ARMALDO, // 0x187 - SPECIES_RALTS, // 0x188 - SPECIES_KIRLIA, // 0x189 - SPECIES_GARDEVOIR, // 0x18a - SPECIES_BAGON, // 0x18b - SPECIES_SHELGON, // 0x18c - SPECIES_SALAMENCE, // 0x18d - SPECIES_BELDUM, // 0x18e - SPECIES_METANG, // 0x18f - SPECIES_METAGROSS, // 0x190 - SPECIES_REGIROCK, // 0x191 - SPECIES_REGICE, // 0x192 - SPECIES_REGISTEEL, // 0x193 - SPECIES_KYOGRE, // 0x194 - SPECIES_GROUDON, // 0x195 - SPECIES_RAYQUAZA, // 0x196 - SPECIES_LATIAS, // 0x197 - SPECIES_LATIOS, // 0x198 - SPECIES_JIRACHI, // 0x199 - SPECIES_DEOXYS, // 0x19a - SPECIES_CHIMECHO, // 0x19b - SPECIES_EGG, // 0x19c - - SPECIES_UNOWN_B, - SPECIES_UNOWN_C, - SPECIES_UNOWN_D, - SPECIES_UNOWN_E, - SPECIES_UNOWN_F, - SPECIES_UNOWN_G, - SPECIES_UNOWN_H, - SPECIES_UNOWN_I, - SPECIES_UNOWN_J, - SPECIES_UNOWN_K, - SPECIES_UNOWN_L, - SPECIES_UNOWN_M, - SPECIES_UNOWN_N, - SPECIES_UNOWN_O, - SPECIES_UNOWN_P, - SPECIES_UNOWN_Q, - SPECIES_UNOWN_R, - SPECIES_UNOWN_S, - SPECIES_UNOWN_T, - SPECIES_UNOWN_U, - SPECIES_UNOWN_V, - SPECIES_UNOWN_W, - SPECIES_UNOWN_X, - SPECIES_UNOWN_Y, - SPECIES_UNOWN_Z, - SPECIES_UNOWN_EMARK, - SPECIES_UNOWN_QMARK, -}; - -#define NUM_SPECIES SPECIES_EGG - -#endif // GUARD_SPECIES_H diff --git a/include/sprite.h b/include/sprite.h index 5682a7c1d..b72c09989 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -120,10 +120,6 @@ union AffineAnimCmd {.jump = {.type = AFFINEANIMCMDTYPE_JUMP, .target = _target}} #define AFFINEANIMCMD_END \ {.type = AFFINEANIMCMDTYPE_END} -#define AFFINEANIMCMD_LOOP(_count) \ - {.loop = {.type = AFFINEANIMCMDTYPE_LOOP, .count = _count}} -#define AFFINEANIMCMD_JUMP(_target) \ - {.jump = {.type = AFFINEANIMCMDTYPE_JUMP, .target = _target}} struct AffineAnimState { @@ -172,6 +168,8 @@ struct SpriteTemplate void (*callback)(struct Sprite *); }; +typedef void (*SpriteCallback)(struct Sprite *); + struct Sprite { /*0x00*/ struct OamData oam; @@ -180,7 +178,7 @@ struct Sprite /*0x10*/ const union AffineAnimCmd *const *affineAnims; /*0x14*/ const struct SpriteTemplate *template; /*0x18*/ const struct SubspriteTable *subspriteTables; - /*0x1C*/ void (*callback)(struct Sprite *); + /*0x1C*/ SpriteCallback callback; /*0x20*/ struct Coords16 pos1; /*0x24*/ struct Coords16 pos2; @@ -195,14 +193,7 @@ struct Sprite /*0x2D*/ u8 animLoopCounter; // general purpose data fields - /*0x2E*/ s16 data0; - /*0x30*/ s16 data1; - /*0x32*/ s16 data2; - /*0x34*/ s16 data3; - /*0x36*/ s16 data4; - /*0x38*/ s16 data5; - /*0x3A*/ s16 data6; - /*0x3C*/ s16 data7; + /*0x2E*/ s16 data[8]; /*0x3E*/ u16 inUse:1; //1 u16 coordOffsetEnabled:1; //2 @@ -229,12 +220,23 @@ struct Sprite /*0x43*/ u8 subpriority; }; +struct OamMatrix +{ + s16 a; + s16 b; + s16 c; + s16 d; +}; + extern const struct OamData gDummyOamData; extern const union AnimCmd *const gDummySpriteAnimTable[]; extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[]; extern s16 gSpriteCoordOffsetX; extern s16 gSpriteCoordOffsetY; +extern u8 gReservedSpritePaletteCount; + +extern u8 gOamLimit; extern struct Sprite gSprites[]; @@ -244,7 +246,7 @@ void BuildOamBuffer(void); u8 CreateSprite(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority); u8 CreateSpriteAtEnd(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority); u8 CreateInvisibleSprite(void (*callback)(struct Sprite *)); -u8 CreateSpriteAndAnimate(struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority); +u8 CreateSpriteAndAnimate(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority); void DestroySprite(struct Sprite *sprite); void ResetOamRange(u8 a, u8 b); void LoadOam(void); @@ -252,12 +254,12 @@ void SetOamMatrix(u8 matrixNum, u16 a, u16 b, u16 c, u16 d); void CalcCenterToCornerVec(struct Sprite *sprite, u8 shape, u8 size, u8 affineMode); void SpriteCallbackDummy(struct Sprite *sprite); void ProcessSpriteCopyRequests(void); -void RequestSpriteCopy(const u8 *src, u8 *dest, u16 size); +void RequestSpriteCopy(const void *src, u8 *dest, u16 size); void FreeSpriteTiles(struct Sprite *sprite); void FreeSpritePalette(struct Sprite *sprite); void FreeSpriteOamMatrix(struct Sprite *sprite); void DestroySpriteAndFreeResources(struct Sprite *sprite); -void sub_800142C(u32 a1, u32 a2, u16 *a3, u16 a4, u32 a5); +void DrawPartyMenuMonText(u32 a1, u32 a2, const u16 *a3, u16 a4, u32 a5); void AnimateSprite(struct Sprite *sprite); void StartSpriteAnim(struct Sprite *sprite, u8 animNum); void StartSpriteAnimIfDifferent(struct Sprite *sprite, u8 animNum); @@ -299,4 +301,6 @@ u8 SpriteTileAllocBitmapOp(u16 bit, u8 op); extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[]; +extern const struct SpriteTemplate gDummySpriteTemplate; + #endif // GUARD_SPRITE_H diff --git a/include/start_menu.h b/include/start_menu.h index 5169b3bf0..d3f77dc99 100644 --- a/include/start_menu.h +++ b/include/start_menu.h @@ -5,7 +5,7 @@ void CreateStartMenuTask(void (*func)(u8)); void sub_80712B4(u8 taskId); void sub_8071310(void); -void InitSaveDialog(void); +void ScrSpecial_DoSaveDialog(void); void sub_8071B28(void); #endif // GUARD_STARTER_CHOOSE_H diff --git a/include/string_util.h b/include/string_util.h index 7a4bfa4c1..55fa988b4 100644 --- a/include/string_util.h +++ b/include/string_util.h @@ -29,7 +29,7 @@ u8 *ConvertIntToHexStringN(u8 *dest, s32 value, enum StringConvertMode mode, u8 u8 *ConvertIntToDecimalString(u8 *dest, s32 value); u8 *StringExpandPlaceholders(u8 *dest, const u8 *src); u8 *StringBraille(u8 *dest, const u8 *src); -u8 *GetExpandedPlaceholder(u32 id); +const u8 *GetExpandedPlaceholder(u32 id); u8 *StringFill(u8 *dest, u8 c, u16 n); u8 *StringCopyPadded(u8 *dest, const u8 *src, u8 c, u16 n); u8 *StringFillWithTerminator(u8 *dest, u16 n); diff --git a/include/strings2.h b/include/strings2.h index 600bb2d31..8052c6c4a 100644 --- a/include/strings2.h +++ b/include/strings2.h @@ -319,4 +319,8 @@ extern const u8 gOtherText_OK[]; // wallclock extern const u8 gOtherText_CorrectTimePrompt[]; +#if GERMAN +extern const u8 deuOtherText_ForgotAndLearned[]; +#endif + #endif // GUARD_STRINGS2_H diff --git a/include/text.h b/include/text.h index 9a70dec11..ebc4ebe7e 100644 --- a/include/text.h +++ b/include/text.h @@ -2,6 +2,7 @@ #define GUARD_TEXT_H #define CHAR_SPACE 0x00 +#define CHAR_SONG_WORD_SEPARATOR 0x37 // separates words in the bard song. Not sure if it's used for anything else #define CHAR_0 0xA1 #define CHAR_QUESTION_MARK 0xAC #define CHAR_PERIOD 0xAD @@ -125,7 +126,7 @@ struct Window /*0x20*/ const u8 *text; /*0x24*/ u8 *tileData; /*0x28*/ u16 *tilemap; - /*0x2C*/ struct WindowConfig *config; + /*0x2C*/ const struct WindowConfig *config; }; extern vu16 *const gBGControlRegs[]; @@ -202,6 +203,7 @@ extern u8 gStringVar1[]; extern u8 gStringVar2[]; extern u8 gStringVar3[]; extern u8 gStringVar4[]; +extern u8 gTileBuffer[]; void LoadFontDefaultPalette(const struct WindowConfig *winConfig); void SetUpWindowConfig(const struct WindowConfig *winConfig); @@ -244,8 +246,8 @@ u8 sub_8004D38(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 l u8 sub_8004DB0(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top, u16 a6); u8 sub_8004E24(struct Window *win); void sub_8004E28(struct Window *win, u8 *foreground, u8 *background, u8 *shadow); -void sub_8004E3C(struct WindowConfig *winConfig, u8 *tileData, const u8 *text); -u8 GetStringWidthGivenWindowConfig(struct WindowConfig *winConfig, const u8 *s); +void sub_8004E3C(const struct WindowConfig *winConfig, u8 *tileData, const u8 *text); +u8 GetStringWidthGivenWindowConfig(const struct WindowConfig *winConfig, const u8 *s); void ConvertInternationalString(u8 *s, u8 language); void StripExtCtrlCodes(u8 *str); s32 StringCompareWithoutExtCtrlCodes(const u8 *str1, const u8 *str2); diff --git a/include/text_window.h b/include/text_window.h index afd645540..7df1453ca 100644 --- a/include/text_window.h +++ b/include/text_window.h @@ -5,8 +5,8 @@ struct FrameGraphics { - u8 *tiles; - u16 *palette; + const u8 *tiles; + const u16 *palette; }; u16 SetTextWindowBaseTileNum(u16 baseTileNum); diff --git a/include/trade.h b/include/trade.h new file mode 100644 index 000000000..46f58a802 --- /dev/null +++ b/include/trade.h @@ -0,0 +1,61 @@ + +#ifndef GUARD_TRADE_H +#define GUARD_TRADE_H + +struct TradeEwramSubstruct2 { + /*0x0000*/ u8 filler_0000; + /*0x0004*/ struct Window window; + /*0x0034*/ u8 textWindowBaseTileNum; + /*0x0038*/ struct Pokemon pokemon; + /*0x009c*/ u8 unk_009c; + /*0x009d*/ u8 unk_009d; + /*0x009e*/ u16 linkData[10]; + /*0x00b2*/ u8 unk_00b2; + /*0x00b3*/ u8 unk_00b3; + /*0x00b4*/ u16 unk_00b4; + /*0x00b6*/ u16 unk_00b6; + // Sprite indices + /*0x00b8*/ u8 pokePicSpriteIdxs[2]; + /*0x00ba*/ u8 unk_00ba; + /*0x00bb*/ u8 unk_00bb; + /*0x00bc*/ u8 unk_00bc; + /*0x00bd*/ u8 unk_00bd; + // Timer + /*0x00c0*/ u32 unk_00c0; + // Scene index + /*0x00c4*/ u16 unk_00c4; + /*0x00c6*/ u8 filler_00c6[0x3c]; + /*0x0102*/ u8 unk_0102; + /*0x0103*/ u8 unk_0103; + /*0x0104*/ u16 unk_0104; + /*0x0106*/ u16 unk_0106; + /*0x0108*/ u16 unk_0108; + /*0x010a*/ u16 unk_010a; + /*0x010c*/ u16 unk_010c; + /*0x010e*/ s16 unk_010e; + /*0x0110*/ s16 bg1vofs; + /*0x0112*/ s16 bg1hofs; + /*0x0114*/ s16 bg2vofs; + /*0x0116*/ s16 bg2hofs; + /*0x0118*/ u16 unk_0118; + /*0x011a*/ u16 unk_011a; + /*0x011c*/ u16 unk_011c; + /*0x011e*/ u8 isLinkTrade; + /*0x0120*/ u16 tradeSpecies[2]; + /*0x0124*/ u16 unk_0124; +}; + +extern struct TradeEwramSubstruct2 *gUnknown_03004828; +extern const u16 gUnknown_0820C9F8[][16]; +extern const u32 gUnknown_0820CA98[]; +extern const u16 gUnknown_0820F798[]; + +void sub_8047CD8(void); +void sub_804E174(void); +extern const u8 gOtherText_MaleSymbol3[2]; +extern const u8 gOtherText_FemaleSymbol3[2]; +extern const u8 gOtherText_GenderlessSymbol[2]; + +void sub_804E22C(void); + +#endif //POKERUBY_TRADE_H diff --git a/include/trader.h b/include/trader.h index 24a9f2a07..832a04b65 100644 --- a/include/trader.h +++ b/include/trader.h @@ -1,6 +1,7 @@ #ifndef GUARD_TRADER_H #define GUARD_TRADER_H -void sub_81099CC(void); +void TraderSetup(void); +void sub_8109A20(void); #endif // GUARD_TRADER_H diff --git a/include/trainer.h b/include/trainer.h index 2e0beb342..e8f2776d2 100644 --- a/include/trainer.h +++ b/include/trainer.h @@ -17,83 +17,83 @@ #define TRAINER_ENCOUNTER_MUSIC_RICH 13 // Rich Boys and Gentlemen enum { - TRAINER_CLASS_AQUA_LEADER, - TRAINER_CLASS_TEAM_AQUA_M, - TRAINER_CLASS_TEAM_AQUA_F, - TRAINER_CLASS_AROMA_LADY, - TRAINER_CLASS_RUIN_MANIAC, - TRAINER_CLASS_INTERVIEWER, - TRAINER_CLASS_TUBER_F, - TRAINER_CLASS_TUBER_M, - TRAINER_CLASS_COOL_TRAINER_M, - TRAINER_CLASS_COOL_TRAINER_F, - TRAINER_CLASS_HEX_MANIAC, - TRAINER_CLASS_LADY, - TRAINER_CLASS_BEAUTY, - TRAINER_CLASS_RICH_BOY, - TRAINER_CLASS_POKEMANIAC, - TRAINER_CLASS_SWIMMER_M, - TRAINER_CLASS_BLACK_BELT, - TRAINER_CLASS_GUITARIST, - TRAINER_CLASS_KINDLER, - TRAINER_CLASS_CAMPER, - TRAINER_CLASS_BUG_MANIAC, - TRAINER_CLASS_PSYCHIC_M, - TRAINER_CLASS_PSYCHIC_F, - TRAINER_CLASS_GENTLEMAN, - TRAINER_CLASS_ELITE_FOUR_M, - TRAINER_CLASS_ELITE_FOUR_F, - TRAINER_CLASS_LEADER_F, - TRAINER_CLASS_LEADER_M, - TRAINER_CLASS_LEADER_MF, - TRAINER_CLASS_SCHOOL_KID_M, - TRAINER_CLASS_SCHOOL_KID_F, - TRAINER_CLASS_SR_AND_JR, - TRAINER_CLASS_POKEFAN_M, - TRAINER_CLASS_POKEFAN_F, - TRAINER_CLASS_EXPERT_M, - TRAINER_CLASS_EXPERT_F, - TRAINER_CLASS_YOUNGSTER, - TRAINER_CLASS_CHAMPION, - TRAINER_CLASS_FISHERMAN, - TRAINER_CLASS_CYCLING_TRIATHLETE_M, - TRAINER_CLASS_CYCLING_TRIATHLETE_F, - TRAINER_CLASS_RUNNING_TRIATHLETE_M, - TRAINER_CLASS_RUNNING_TRIATHLETE_F, - TRAINER_CLASS_SWIMMING_TRIATHLETE_M, - TRAINER_CLASS_SWIMMING_TRIATHLETE_F, - TRAINER_CLASS_DRAGON_TAMER, - TRAINER_CLASS_BIRD_KEEPER, - TRAINER_CLASS_NINJA_BOY, - TRAINER_CLASS_BATTLE_GIRL, - TRAINER_CLASS_PARASOL_LADY, - TRAINER_CLASS_SWIMMER_F, - TRAINER_CLASS_PICNICKER, - TRAINER_CLASS_TWINS, - TRAINER_CLASS_SAILOR, - TRAINER_CLASS_BOARDER_1, - TRAINER_CLASS_BOARDER_2, - TRAINER_CLASS_COLLECTOR, - TRAINER_CLASS_WALLY, - TRAINER_CLASS_BRENDAN_1, - TRAINER_CLASS_BRENDAN_2, - TRAINER_CLASS_BRENDAN_3, - TRAINER_CLASS_MAY_1, - TRAINER_CLASS_MAY_2, - TRAINER_CLASS_MAY_3, - TRAINER_CLASS_POKEMON_BREEDER_M, - TRAINER_CLASS_POKEMON_BREEDER_F, - TRAINER_CLASS_POKEMON_RANGER_M, - TRAINER_CLASS_POKEMON_RANGER_F, - TRAINER_CLASS_MAGMA_LEADER, - TRAINER_CLASS_TEAM_MAGMA_M, - TRAINER_CLASS_TEAM_MAGMA_F, - TRAINER_CLASS_LASS, - TRAINER_CLASS_BUG_CATCHER, - TRAINER_CLASS_HIKER, - TRAINER_CLASS_YOUNG_COUPLE, - TRAINER_CLASS_OLD_COUPLE, - TRAINER_CLASS_SIS_AND_BRO + FACILITY_CLASS_AQUA_LEADER, + FACILITY_CLASS_TEAM_AQUA_M, + FACILITY_CLASS_TEAM_AQUA_F, + FACILITY_CLASS_AROMA_LADY, + FACILITY_CLASS_RUIN_MANIAC, + FACILITY_CLASS_INTERVIEWER, + FACILITY_CLASS_TUBER_F, + FACILITY_CLASS_TUBER_M, + FACILITY_CLASS_COOL_TRAINER_M, + FACILITY_CLASS_COOL_TRAINER_F, + FACILITY_CLASS_HEX_MANIAC, + FACILITY_CLASS_LADY, + FACILITY_CLASS_BEAUTY, + FACILITY_CLASS_RICH_BOY, + FACILITY_CLASS_POKEMANIAC, + FACILITY_CLASS_SWIMMER_M, + FACILITY_CLASS_BLACK_BELT, + FACILITY_CLASS_GUITARIST, + FACILITY_CLASS_KINDLER, + FACILITY_CLASS_CAMPER, + FACILITY_CLASS_BUG_MANIAC, + FACILITY_CLASS_PSYCHIC_M, + FACILITY_CLASS_PSYCHIC_F, + FACILITY_CLASS_GENTLEMAN, + FACILITY_CLASS_ELITE_FOUR_M, + FACILITY_CLASS_ELITE_FOUR_F, + FACILITY_CLASS_LEADER_F, + FACILITY_CLASS_LEADER_M, + FACILITY_CLASS_LEADER_MF, + FACILITY_CLASS_SCHOOL_KID_M, + FACILITY_CLASS_SCHOOL_KID_F, + FACILITY_CLASS_SR_AND_JR, + FACILITY_CLASS_POKEFAN_M, + FACILITY_CLASS_POKEFAN_F, + FACILITY_CLASS_EXPERT_M, + FACILITY_CLASS_EXPERT_F, + FACILITY_CLASS_YOUNGSTER, + FACILITY_CLASS_CHAMPION, + FACILITY_CLASS_FISHERMAN, + FACILITY_CLASS_CYCLING_TRIATHLETE_M, + FACILITY_CLASS_CYCLING_TRIATHLETE_F, + FACILITY_CLASS_RUNNING_TRIATHLETE_M, + FACILITY_CLASS_RUNNING_TRIATHLETE_F, + FACILITY_CLASS_SWIMMING_TRIATHLETE_M, + FACILITY_CLASS_SWIMMING_TRIATHLETE_F, + FACILITY_CLASS_DRAGON_TAMER, + FACILITY_CLASS_BIRD_KEEPER, + FACILITY_CLASS_NINJA_BOY, + FACILITY_CLASS_BATTLE_GIRL, + FACILITY_CLASS_PARASOL_LADY, + FACILITY_CLASS_SWIMMER_F, + FACILITY_CLASS_PICNICKER, + FACILITY_CLASS_TWINS, + FACILITY_CLASS_SAILOR, + FACILITY_CLASS_BOARDER_1, + FACILITY_CLASS_BOARDER_2, + FACILITY_CLASS_COLLECTOR, + FACILITY_CLASS_WALLY, + FACILITY_CLASS_BRENDAN_1, + FACILITY_CLASS_BRENDAN_2, + FACILITY_CLASS_BRENDAN_3, + FACILITY_CLASS_MAY_1, + FACILITY_CLASS_MAY_2, + FACILITY_CLASS_MAY_3, + FACILITY_CLASS_POKEMON_BREEDER_M, + FACILITY_CLASS_POKEMON_BREEDER_F, + FACILITY_CLASS_POKEMON_RANGER_M, + FACILITY_CLASS_POKEMON_RANGER_F, + FACILITY_CLASS_MAGMA_LEADER, + FACILITY_CLASS_TEAM_MAGMA_M, + FACILITY_CLASS_TEAM_MAGMA_F, + FACILITY_CLASS_LASS, + FACILITY_CLASS_BUG_CATCHER, + FACILITY_CLASS_HIKER, + FACILITY_CLASS_YOUNG_COUPLE, + FACILITY_CLASS_OLD_COUPLE, + FACILITY_CLASS_SIS_AND_BRO }; enum { @@ -183,64 +183,64 @@ enum { }; enum { - TRAINER_CLASS_NAME_POKEMON_TRAINER_1, - TRAINER_CLASS_NAME_POKEMON_TRAINER_2, - TRAINER_CLASS_NAME_AQUA_LEADER, - TRAINER_CLASS_NAME_TEAM_AQUA, - TRAINER_CLASS_NAME_AQUA_ADMIN, - TRAINER_CLASS_NAME_AROMA_LADY, - TRAINER_CLASS_NAME_RUIN_MANIAC, - TRAINER_CLASS_NAME_INTERVIEWER, - TRAINER_CLASS_NAME_TUBER_F, - TRAINER_CLASS_NAME_TUBER_M, - TRAINER_CLASS_NAME_COOL_TRAINER, - TRAINER_CLASS_NAME_HEX_MANIAC, - TRAINER_CLASS_NAME_LADY, - TRAINER_CLASS_NAME_BEAUTY, - TRAINER_CLASS_NAME_RICH_BOY, - TRAINER_CLASS_NAME_POKEMANIAC, - TRAINER_CLASS_NAME_SWIMMER_M, - TRAINER_CLASS_NAME_BLACK_BELT, - TRAINER_CLASS_NAME_GUITARIST, - TRAINER_CLASS_NAME_KINDLER, - TRAINER_CLASS_NAME_CAMPER, - TRAINER_CLASS_NAME_BUG_MANIAC, - TRAINER_CLASS_NAME_PSYCHIC, - TRAINER_CLASS_NAME_GENTLEMAN, - TRAINER_CLASS_NAME_ELITE_FOUR, - TRAINER_CLASS_NAME_LEADER, - TRAINER_CLASS_NAME_SCHOOL_KID, - TRAINER_CLASS_NAME_SR_AND_JR, - TRAINER_CLASS_NAME_WINSTRATE, - TRAINER_CLASS_NAME_POKEFAN, - TRAINER_CLASS_NAME_EXPERT, - TRAINER_CLASS_NAME_YOUNGSTER, - TRAINER_CLASS_NAME_CHAMPION, - TRAINER_CLASS_NAME_FISHERMAN, - TRAINER_CLASS_NAME_TRIATHLETE, - TRAINER_CLASS_NAME_DRAGON_TAMER, - TRAINER_CLASS_NAME_BIRD_KEEPER, - TRAINER_CLASS_NAME_NINJA_BOY, - TRAINER_CLASS_NAME_BATTLE_GIRL, - TRAINER_CLASS_NAME_PARASOL_LADY, - TRAINER_CLASS_NAME_SWIMMER_F, - TRAINER_CLASS_NAME_PICNICKER, - TRAINER_CLASS_NAME_TWINS, - TRAINER_CLASS_NAME_SAILOR, - TRAINER_CLASS_NAME_BOARDER, - TRAINER_CLASS_NAME_COLLECTOR, - TRAINER_CLASS_NAME_POKEMON_TRAINER_3, - TRAINER_CLASS_NAME_POKEMON_BREEDER, - TRAINER_CLASS_NAME_POKEMON_RANGER, - TRAINER_CLASS_NAME_MAGMA_LEADER, - TRAINER_CLASS_NAME_TEAM_MAGMA, - TRAINER_CLASS_NAME_MAGMA_ADMIN, - TRAINER_CLASS_NAME_LASS, - TRAINER_CLASS_NAME_BUG_CATCHER, - TRAINER_CLASS_NAME_HIKER, - TRAINER_CLASS_NAME_YOUNG_COUPLE, - TRAINER_CLASS_NAME_OLD_COUPLE, - TRAINER_CLASS_NAME_SIS_AND_BRO + TRAINER_CLASS_POKEMON_TRAINER_1, + TRAINER_CLASS_POKEMON_TRAINER_2, + TRAINER_CLASS_AQUA_LEADER, + TRAINER_CLASS_TEAM_AQUA, + TRAINER_CLASS_AQUA_ADMIN, + TRAINER_CLASS_AROMA_LADY, + TRAINER_CLASS_RUIN_MANIAC, + TRAINER_CLASS_INTERVIEWER, + TRAINER_CLASS_TUBER_F, + TRAINER_CLASS_TUBER_M, + TRAINER_CLASS_COOL_TRAINER, + TRAINER_CLASS_HEX_MANIAC, + TRAINER_CLASS_LADY, + TRAINER_CLASS_BEAUTY, + TRAINER_CLASS_RICH_BOY, + TRAINER_CLASS_POKEMANIAC, + TRAINER_CLASS_SWIMMER_M, + TRAINER_CLASS_BLACK_BELT, + TRAINER_CLASS_GUITARIST, + TRAINER_CLASS_KINDLER, + TRAINER_CLASS_CAMPER, + TRAINER_CLASS_BUG_MANIAC, + TRAINER_CLASS_PSYCHIC, + TRAINER_CLASS_GENTLEMAN, + TRAINER_CLASS_ELITE_FOUR, + TRAINER_CLASS_LEADER, + TRAINER_CLASS_SCHOOL_KID, + TRAINER_CLASS_SR_AND_JR, + TRAINER_CLASS_WINSTRATE, + TRAINER_CLASS_POKEFAN, + TRAINER_CLASS_EXPERT, + TRAINER_CLASS_YOUNGSTER, + TRAINER_CLASS_CHAMPION, + TRAINER_CLASS_FISHERMAN, + TRAINER_CLASS_TRIATHLETE, + TRAINER_CLASS_DRAGON_TAMER, + TRAINER_CLASS_BIRD_KEEPER, + TRAINER_CLASS_NINJA_BOY, + TRAINER_CLASS_BATTLE_GIRL, + TRAINER_CLASS_PARASOL_LADY, + TRAINER_CLASS_SWIMMER_F, + TRAINER_CLASS_PICNICKER, + TRAINER_CLASS_TWINS, + TRAINER_CLASS_SAILOR, + TRAINER_CLASS_BOARDER, + TRAINER_CLASS_COLLECTOR, + TRAINER_CLASS_POKEMON_TRAINER_3, + TRAINER_CLASS_POKEMON_BREEDER, + TRAINER_CLASS_POKEMON_RANGER, + TRAINER_CLASS_MAGMA_LEADER, + TRAINER_CLASS_TEAM_MAGMA, + TRAINER_CLASS_MAGMA_ADMIN, + TRAINER_CLASS_LASS, + TRAINER_CLASS_BUG_CATCHER, + TRAINER_CLASS_HIKER, + TRAINER_CLASS_YOUNG_COUPLE, + TRAINER_CLASS_OLD_COUPLE, + TRAINER_CLASS_SIS_AND_BRO }; #endif // GUARD_TRAINER_H diff --git a/include/trainer_see.h b/include/trainer_see.h index b80a41641..e36df981b 100644 --- a/include/trainer_see.h +++ b/include/trainer_see.h @@ -5,33 +5,7 @@ #include "task.h" bool8 CheckTrainers(void); -bool8 CheckTrainer(u8); -u8 TrainerCanApproachPlayer(struct MapObject *); -bool8 IsTrainerInRangeSouth(struct MapObject *trainerObj, s16 vision, s16 x, s16 y); -bool8 IsTrainerInRangeNorth(struct MapObject *trainerObj, s16 vision, s16 x, s16 y); -bool8 IsTrainerInRangeWest(struct MapObject *trainerObj, s16 vision, s16 x, s16 y); -bool8 IsTrainerInRangeEast(struct MapObject *trainerObj, s16 vision, s16 x, s16 y); -bool8 CheckPathBetweenTrainerAndPlayer(struct MapObject2 *, u8, u8); -void sub_80842C8(struct MapObject *, u8); -void sub_80842FC(void (*func)(u8)); -void RunTrainerSeeFuncList(u8); -u8 sub_8084394(void); -s8 sub_8084398(u8 taskId, struct Task *task, struct MapObject *trainerObj); -s8 sub_80843DC(u8 taskId, struct Task *task, struct MapObject *trainerObj); -s8 sub_808441C(u8 taskId, struct Task *task, struct MapObject *trainerObj); -s8 sub_8084478(u8 taskId, struct Task *task, struct MapObject *trainerObj); -s8 sub_8084534(u8 taskId, struct Task *task, struct MapObject *trainerObj); -s8 sub_8084578(u8 taskId, struct Task *task, struct MapObject *trainerObj); -s8 sub_80845AC(u8 taskId, struct Task *task, struct MapObject *trainerObj); -s8 sub_80845C8(u8 taskId, struct Task *task, struct MapObject *trainerObj); -s8 sub_80845FC(u8 taskId, struct Task *task, struct MapObject *trainerObj); -s8 sub_8084654(u8 taskId, struct Task *task, struct MapObject *trainerObj); -s8 sub_80846C8(u8 taskId, struct Task *task, struct MapObject *trainerObj); -void sub_80846E4(u8 taskId); void sub_8084794(struct MapObject *var); -void sub_80847C8(void); -void sub_80847D8(u8); -void sub_8084894(struct Sprite *sprite, u16 a2, u8 a3); -void objc_exclamation_mark_probably(struct Sprite *sprite); +void ScrSpecial_EndTrainerApproach(void); #endif // GUARD_TRAINER_SEE_H diff --git a/include/tv.h b/include/tv.h index 3243fff2c..2edccb365 100644 --- a/include/tv.h +++ b/include/tv.h @@ -18,8 +18,6 @@ enum TVSHOW_MASS_OUTBREAK = 41, }; -extern u8 *const gUnknown_083D1464[3]; - void ClearTVShowData(void); u8 sub_80BDEAC(u8 *); void sub_80BE028(void); @@ -28,6 +26,7 @@ void sub_80BE138(TVShow *show); void sub_80BE160(TVShow *show); void sub_80BE160(TVShow *); void sub_80BE188(void); +void sub_80BE23C(u16); void sub_80BE320(void); void StartMassOutbreak(void); void sub_80BE5FC(void); @@ -44,7 +43,7 @@ void sub_80BEA5C(u16); void sub_80BEA88(void); void sub_80BEA88(void); void sub_80BEB20(void); -int sub_80BEBC8(struct UnknownSaveStruct2ABC *arg0); +int sub_80BEBC8(struct PokeNews *arg0); extern void sub_80BEBF4(void); void sub_80BEC10(u8); bool8 GetPriceReduction(u8); @@ -81,7 +80,7 @@ void sub_80C01D4(void); void sub_80C03A8(u8 showidx); void sub_80C03C8(u16 species, u8 showidx); void sub_80C0408(void); -bool8 sub_80C06E8(struct UnknownSaveStruct2ABC *arg0, struct UnknownSaveStruct2ABC *arg1, s8 arg2); +bool8 sub_80C06E8(struct PokeNews *arg0, struct PokeNews *arg1, s8 arg2); void TVShowConvertInternationalString(u8 *, u8 *, u8); void DoTVShowTheNameRaterShow(void); void DoTVShowPokemonTodaySuccessfulCapture(void); @@ -107,5 +106,7 @@ void sub_80BE3BC(void); void UpdateTVShowsPerDay(u16); void sub_80C045C(); void sub_80BF088(u8, s32); +void sub_80BFD20(void); +void PutPokemonTodayCaughtOnAir(void); #endif // GUARD_TV_H diff --git a/include/unknown_task.h b/include/unknown_task.h index dc07767d6..011e5f5b5 100644 --- a/include/unknown_task.h +++ b/include/unknown_task.h @@ -1,14 +1,42 @@ #ifndef GUARD_UNKNOWN_TASK_H #define GUARD_UNKNOWN_TASK_H +struct UnknownTaskStruct +{ + volatile void *dest; + u32 control; + u8 unk8; + u8 unk9; +}; + +struct UnknownTaskStruct2 +{ + void *src[2]; + volatile void *dest; + u32 unkC; + void (*unk10)(void); + u8 srcBank; + u8 unk15; + u8 unk16; + u8 unk17; + u8 taskId; + u8 filler19[0x7]; +}; + +extern struct UnknownTaskStruct2 gUnknown_03004DC0; + +extern u16 gUnknown_03004DE0[][0x3C0]; + void remove_some_task(void); void remove_some_task(void); void dp12_8087EA4(void); void dp12_8087EA4(void); -void sub_80895F8(u32 i, u32 i1, u32 i2); -void sub_80895F8(); +//void sub_80895F8(u32 i, u32 i1, u32 i2); +//void sub_80895F8(); +void sub_80895F8(struct UnknownTaskStruct unk); void sub_8089668(void); void sub_8089668(); -void sub_8089944(int i, int i1, int i2, int i3, int i4, int i5, int i6); +//void sub_8089944(int i, int i1, int i2, int i3, int i4, int i5, int i6); +u8 sub_8089944(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7); #endif // GUARD_UNKNOWN_TASK_H diff --git a/include/use_pokeblock.h b/include/use_pokeblock.h new file mode 100644 index 000000000..978476d89 --- /dev/null +++ b/include/use_pokeblock.h @@ -0,0 +1,13 @@ +// +// Created by Scott Norton on 5/31/17. +// + +#ifndef POKERUBY_USE_POKEBLOCK_H +#define POKERUBY_USE_POKEBLOCK_H + +extern void *gUnknown_02030400; +extern s16 gUnknown_02039312; + +void sub_8136130(struct Pokeblock *, MainCallback); + +#endif //POKERUBY_USE_POKEBLOCK_H diff --git a/include/util.h b/include/util.h index cd50b75cc..676c3bd9b 100644 --- a/include/util.h +++ b/include/util.h @@ -10,5 +10,7 @@ u8 CreateInvisibleSpriteWithCallback(void (*)(struct Sprite *)); void StoreWordInTwoHalfwords(u16 *, u32); void LoadWordFromTwoHalfwords(u16 *, u32 *); u16 CalcCRC16(u8 *data, int length); +void DoBgAffineSet(struct BgAffineDstData *dest, u32 texX, u32 texY, s16 scrX, s16 scrY, s16 sx, s16 sy, u16 alpha); +void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output); #endif // GUARD_UTIL_H diff --git a/include/vars.h b/include/vars.h deleted file mode 100644 index efbb462a4..000000000 --- a/include/vars.h +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef GUARD_VARS_H -#define GUARD_VARS_H - -#define VAR_0x4000 0x4000 -#define VAR_0x4001 0x4001 -#define VAR_0x4002 0x4002 -#define VAR_0x4003 0x4003 -#define VAR_0x4004 0x4004 -#define VAR_0x4005 0x4005 -#define VAR_0x4006 0x4006 -#define VAR_0x4007 0x4007 -#define VAR_0x4008 0x4008 -#define VAR_0x4009 0x4009 -#define VAR_0x400A 0x400A -#define VAR_0x401F 0x401F -#define VAR_RECYCLE_GOODS 0x4020 -#define VAR_REPEL_STEP_COUNT 0x4021 -#define VAR_ICE_STEP_COUNT 0x4022 -#define VAR_FIRST_POKE 0x4023 -#define VAR_MIRAGE_RND_H 0x4024 -#define VAR_MIRAGE_RND_L 0x4025 -#define VAR_SECRET_BASE_MAP 0x4026 - -#define VAR_HAPPINESS_STEP_COUNTER 0x402A -#define VAR_POISON_STEP_COUNTER 0x402B -#define VAR_RESET_RTC_ENABLE 0x402C - -#define VAR_DAYS 0x4040 - -#define VAR_DEPT_STORE_FLOOR 0x4043 -#define VAR_POKELOT_PRIZE 0x4045 -#define VAR_NATIONAL_DEX 0x4046 -#define VAR_SHROOMISH_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_BARBOACH_SIZE_RECORD 0x404F - -#define VAR_0x4054 0x4054 - -#define VAR_0x4089 0x4089 -#define VAR_0x4095 0x4095 -#define VAR_0x4097 0x4097 -#define VAR_0x409a 0x409a -#define VAR_PORTHOLE 0x40B4 - -#define VAR_0x40BC 0x40BC -#define VAR_0x40C2 0x40C2 - -#endif // GUARD_VARS_H diff --git a/include/wild_encounter.h b/include/wild_encounter.h index a4485b08d..c9d7c3fa1 100644 --- a/include/wild_encounter.h +++ b/include/wild_encounter.h @@ -18,22 +18,22 @@ struct WildPokemonHeader { u8 mapGroup; u8 mapNum; - struct WildPokemonInfo *landMonsInfo; - struct WildPokemonInfo *waterMonsInfo; - struct WildPokemonInfo *rockSmashMonsInfo; - struct WildPokemonInfo *fishingMonsInfo; + const struct WildPokemonInfo *landMonsInfo; + const struct WildPokemonInfo *waterMonsInfo; + const struct WildPokemonInfo *rockSmashMonsInfo; + const struct WildPokemonInfo *fishingMonsInfo; }; -extern struct WildPokemonHeader gWildMonHeaders[]; +extern const struct WildPokemonHeader gWildMonHeaders[]; void DisableWildEncounters(bool8 disabled); bool8 StandardWildEncounter(u16 a, u16 b); -void RockSmashWildEncounter(void); +void ScrSpecial_RockSmashWildEncounter(void); bool8 SweetScentWildEncounter(void); -bool8 GetFishingWildMonListHeader(void); +bool8 DoesCurrentMapHaveFishingMons(void); void FishingWildEncounter(u8 rod); u16 GetLocalWildMon(bool8 *isWaterMon); -u16 GetMirageIslandMon(void); +u16 GetLocalWaterMon(void); bool8 UpdateRepelCounter(void); #endif // GUARD_WILD_ENCOUNTER_H |