summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/bard_music.h4
-rw-r--r--include/battle.h192
-rw-r--r--include/battle_ai_script_commands.h15
-rw-r--r--include/battle_anim.h4
-rw-r--r--include/battle_bg.h6
-rw-r--r--include/battle_controllers.h21
-rw-r--r--include/battle_frontier_1.h1
-rw-r--r--include/battle_frontier_2.h4
-rw-r--r--include/battle_gfx_sfx_util.h4
-rw-r--r--include/battle_interface.h10
-rw-r--r--include/battle_main.h12
-rw-r--r--include/battle_message.h27
-rw-r--r--include/battle_records.h12
-rw-r--r--include/battle_setup.h4
-rw-r--r--include/battle_tower.h41
-rw-r--r--include/battle_util.h65
-rw-r--r--include/berry.h16
-rw-r--r--include/bg.h2
-rw-r--r--include/bike.h4
-rw-r--r--include/braille_puzzles.h4
-rw-r--r--include/cable_club.h18
-rw-r--r--include/constants/abilities.h2
-rw-r--r--include/constants/battle.h4
-rw-r--r--include/constants/battle_frontier.h13
-rw-r--r--include/constants/battle_script_commands.h15
-rwxr-xr-xinclude/constants/bg_event_constants.h13
-rw-r--r--include/constants/decorations.h1
-rwxr-xr-xinclude/constants/event_object_movement_constants.h245
-rw-r--r--include/constants/event_objects.h263
-rw-r--r--include/constants/flags.h25
-rw-r--r--include/constants/heal_locations.h27
-rw-r--r--include/constants/items.h14
-rw-r--r--include/constants/map_objects.h263
-rwxr-xr-xinclude/constants/map_types.h25
-rw-r--r--include/constants/maps.h154
-rw-r--r--include/constants/moves.h2
-rw-r--r--include/constants/opponents.h1712
-rwxr-xr-xinclude/constants/secret_bases.h110
-rw-r--r--include/constants/trainers.h872
-rw-r--r--include/constants/vars.h99
-rw-r--r--include/contest.h15
-rw-r--r--include/data/battle_moves.h2
-rw-r--r--include/data/decoration/tiles.h90
-rw-r--r--include/data/item_icon_table.h414
-rw-r--r--include/data/items.h6079
-rw-r--r--include/data/pokemon/level_up_learnset_pointers.h826
-rw-r--r--include/data/pokemon/level_up_learnsets.h822
-rw-r--r--include/data/text/abilities.h4
-rw-r--r--include/data/text/item_descriptions.h329
-rw-r--r--include/data2.h5
-rw-r--r--include/decompress.h2
-rw-r--r--include/decoration.h5
-rw-r--r--include/dynamic_placeholder_text_util.h9
-rw-r--r--include/easy_chat.h33
-rw-r--r--include/event_data.h2
-rw-r--r--include/event_obj_lock.h11
-rw-r--r--include/event_object_movement.h406
-rw-r--r--include/event_scripts.h137
-rw-r--r--include/field_camera.h7
-rw-r--r--include/field_control_avatar.h3
-rw-r--r--include/field_effect.h167
-rw-r--r--include/field_effect_helpers.h25
-rw-r--r--include/field_ground_effect.h24
-rw-r--r--include/field_map_obj.h99
-rw-r--r--include/field_map_obj_helpers.h32
-rw-r--r--include/field_player_avatar.h13
-rw-r--r--include/field_region_map.h6
-rw-r--r--include/field_screen.h6
-rw-r--r--include/field_special_scene.h14
-rw-r--r--include/field_tasks.h5
-rw-r--r--include/fieldmap.h30
-rw-r--r--include/fldeff_80F9BCC.h3
-rw-r--r--include/fldeff_cut.h13
-rw-r--r--include/fldeff_groundshake.h6
-rw-r--r--include/gba/io_reg.h31
-rw-r--r--include/global.fieldmap.h159
-rw-r--r--include/global.h390
-rw-r--r--include/global.tv.h4
-rw-r--r--include/graphics.h520
-rw-r--r--include/heal_location.h17
-rw-r--r--include/international_string_util.h4
-rw-r--r--include/item.h59
-rw-r--r--include/item_menu.h5
-rw-r--r--include/item_use.h2
-rw-r--r--include/librfu.h15
-rw-r--r--include/lilycove_lady.h2
-rw-r--r--include/link.h14
-rw-r--r--include/link_rfu.h33
-rw-r--r--include/list_menu.h63
-rw-r--r--include/load_save.h24
-rw-r--r--include/map_name_popup.h2
-rw-r--r--include/map_obj_lock.h11
-rw-r--r--include/match_call.h15
-rw-r--r--include/mauville_old_man.h18
-rw-r--r--include/menu.h21
-rw-r--r--include/menu_helpers.h31
-rw-r--r--include/menu_indicators.h37
-rw-r--r--include/metatile_behavior.h4
-rw-r--r--include/mon_markings.h24
-rw-r--r--include/new_game.h5
-rw-r--r--include/overworld.h36
-rw-r--r--include/palette.h16
-rw-r--r--include/party_menu.h22
-rw-r--r--include/player_pc.h77
-rw-r--r--include/pokedex.h2
-rwxr-xr-xinclude/pokedex_area_screen.h6
-rwxr-xr-xinclude/pokedex_cry_screen.h19
-rw-r--r--include/pokemon.h40
-rw-r--r--include/pokemon_icon.h15
-rw-r--r--include/pokemon_storage_system.h2
-rw-r--r--include/pokenav.h10
-rw-r--r--include/record_mixing.h35
-rw-r--r--include/recorded_battle.h2
-rw-r--r--include/rom6.h2
-rw-r--r--include/rom_8011DC0.h1
-rw-r--r--include/rom_8034C54.h26
-rw-r--r--include/rom_81BE66C.h2
-rw-r--r--include/rotating_gate.h8
-rw-r--r--include/save.h3
-rw-r--r--include/script_menu.h4
-rw-r--r--include/secret_base.h6
-rw-r--r--include/sprite.h38
-rw-r--r--include/start_menu.h10
-rw-r--r--include/strings.h396
-rw-r--r--include/text.h27
-rw-r--r--include/text_window.h14
-rw-r--r--include/trade.h4
-rw-r--r--include/trader.h2
-rw-r--r--include/trainer_card.h39
-rw-r--r--include/trainer_see.h12
-rw-r--r--include/tv.h10
-rw-r--r--include/unk_text_util.h9
-rw-r--r--include/wallclock.h3
133 files changed, 12523 insertions, 3854 deletions
diff --git a/include/bard_music.h b/include/bard_music.h
index 7d9ca633e..9d3d0ad22 100644
--- a/include/bard_music.h
+++ b/include/bard_music.h
@@ -9,7 +9,7 @@ struct BardSound
/*0x00*/ u8 var00;
/*0x01*/ s8 var01;
/*0x02*/ u16 var02;
- /*0x04*/ u16 volume;
+ /*0x04*/ s16 volume;
/*0x06*/ u16 var06;
};
@@ -39,5 +39,7 @@ struct BardSong
// Exported ROM declarations
extern const u16 gUnknown_085F5490;
+const struct BardSound *GetWordSounds(u16 word);
+void GetWordPhonemes(struct BardSong *song, u16 word);
#endif //GUARD_BARD_MUSIC_H
diff --git a/include/battle.h b/include/battle.h
index ae8a1c98a..fae21908b 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -4,6 +4,7 @@
// should they be included here or included individually by every file?
#include "constants/battle.h"
#include "battle_main.h"
+#include "battle_message.h"
#include "battle_util.h"
#include "battle_script_commands.h"
#include "battle_ai_switch_items.h"
@@ -15,12 +16,6 @@
#define GET_BATTLER_SIDE(battler) (GetBattlerPosition(battler) & BIT_SIDE)
#define GET_BATTLER_SIDE2(battler) (GET_BATTLER_POSITION(battler) & BIT_SIDE)
-#define TRAINER_OPPONENT_3FE 0x3FE
-#define TRAINER_OPPONENT_C00 0xC00
-#define TRAINER_OPPONENT_800 0x800
-#define STEVEN_PARTNER_ID 0xC03
-#define SECRET_BASE_OPPONENT 0x400
-
// Battle Actions
// These determine what each battler will do in a turn
#define B_ACTION_USE_MOVE 0
@@ -33,7 +28,7 @@
#define B_ACTION_SAFARI_GO_NEAR 7
#define B_ACTION_SAFARI_RUN 8
// The exact purposes of these are unclear
-#define B_ACTION_UNKNOWN9 9
+#define B_ACTION_WALLY_THROW 9
#define B_ACTION_EXEC_SCRIPT 10 // when executing an action
#define B_ACTION_CANCEL_PARTNER 12 // when choosing an action
#define B_ACTION_FINISHED 12 // when executing an action
@@ -111,10 +106,10 @@ struct TrainerMonItemCustomMoves
union TrainerMonPtr
{
- struct TrainerMonNoItemDefaultMoves *NoItemDefaultMoves;
- struct TrainerMonNoItemCustomMoves *NoItemCustomMoves;
- struct TrainerMonItemDefaultMoves *ItemDefaultMoves;
- struct TrainerMonItemCustomMoves *ItemCustomMoves;
+ const struct TrainerMonNoItemDefaultMoves *NoItemDefaultMoves;
+ const struct TrainerMonNoItemCustomMoves *NoItemCustomMoves;
+ const struct TrainerMonItemDefaultMoves *ItemDefaultMoves;
+ const struct TrainerMonItemCustomMoves *ItemCustomMoves;
};
struct Trainer
@@ -150,29 +145,29 @@ struct DisableStruct
/*0x08*/ u8 protectUses;
/*0x09*/ u8 stockpileCounter;
/*0x0A*/ u8 substituteHP;
- /*0x0B*/ u8 disableTimer1 : 4;
- /*0x0B*/ u8 disableTimer2 : 4;
+ /*0x0B*/ u8 disableTimer1:4;
+ /*0x0B*/ u8 disableTimer2:4;
/*0x0C*/ u8 encoredMovePos;
/*0x0D*/ u8 unkD;
- /*0x0E*/ u8 encoreTimer1 : 4;
- /*0x0E*/ u8 encoreTimer2 : 4;
- /*0x0F*/ u8 perishSongTimer1 : 4;
- /*0x0F*/ u8 perishSongTimer2 : 4;
+ /*0x0E*/ u8 encoreTimer1:4;
+ /*0x0E*/ u8 encoreTimer2:4;
+ /*0x0F*/ u8 perishSongTimer1:4;
+ /*0x0F*/ u8 perishSongTimer2:4;
/*0x10*/ u8 furyCutterCounter;
- /*0x11*/ u8 rolloutCounter1 : 4;
- /*0x11*/ u8 rolloutCounter2 : 4;
- /*0x12*/ u8 chargeTimer1 : 4;
- /*0x12*/ u8 chargeTimer2 : 4;
+ /*0x11*/ u8 rolloutCounter1:4;
+ /*0x11*/ u8 rolloutCounter2:4;
+ /*0x12*/ u8 chargeTimer1:4;
+ /*0x12*/ u8 chargeTimer2:4;
/*0x13*/ u8 tauntTimer1:4;
/*0x13*/ u8 tauntTimer2:4;
/*0x14*/ u8 battlerPreventingEscape;
/*0x15*/ u8 battlerWithSureHit;
/*0x16*/ u8 isFirstTurn;
/*0x17*/ u8 unk17;
- /*0x18*/ u8 truantCounter : 1;
- /*0x18*/ u8 truantUnknownBit : 1;
- /*0x18*/ u8 unk18_a_2 : 2;
- /*0x18*/ u8 unk18_b : 4;
+ /*0x18*/ u8 truantCounter:1;
+ /*0x18*/ u8 truantUnknownBit:1;
+ /*0x18*/ u8 unk18_a_2:2;
+ /*0x18*/ u8 unk18_b:4;
/*0x19*/ u8 rechargeCounter;
/*0x1A*/ u8 unk1A[2];
};
@@ -182,7 +177,7 @@ struct ProtectStruct
/* field_0 */
u32 protected:1;
u32 endured:1;
- u32 onlyStruggle:1;
+ u32 noValidMoves:1;
u32 helpingHand:1;
u32 bounceMove:1;
u32 stealMove:1;
@@ -201,12 +196,12 @@ struct ProtectStruct
u32 flag2Unknown:1; // 0x2
u32 flinchImmobility:1; // 0x4
u32 notFirstStrike:1; // 0x8
- u32 flag_x10 : 1; // 0x10
- u32 flag_x20 : 1; // 0x20
- u32 flag_x40 : 1; // 0x40
- u32 flag_x80 : 1; // 0x80
+ u32 flag_x10:1; // 0x10
+ u32 flag_x20:1; // 0x20
+ u32 flag_x40:1; // 0x40
+ u32 flag_x80:1; // 0x80
/* field_3 */
- u32 field3 : 8;
+ u32 field3:8;
/* field_4 */ u32 physicalDmg;
/* field_8 */ u32 specialDmg;
@@ -217,14 +212,14 @@ struct ProtectStruct
struct SpecialStatus
{
- u8 statLowered : 1; // 0x1
- u8 lightningRodRedirected : 1; // 0x2
- u8 restoredBankSprite: 1; // 0x4
- u8 intimidatedPoke : 1; // 0x8
- u8 traced : 1; // 0x10
- u8 flag20 : 1;
- u8 flag40 : 1;
- u8 focusBanded : 1;
+ u8 statLowered:1; // 0x1
+ u8 lightningRodRedirected:1; // 0x2
+ u8 restoredBattlerSprite: 1; // 0x4
+ u8 intimidatedMon:1; // 0x8
+ u8 traced:1; // 0x10
+ u8 flag20:1;
+ u8 flag40:1;
+ u8 focusBanded:1;
u8 field1[3];
s32 dmg;
s32 physicalDmg;
@@ -336,20 +331,20 @@ struct BattleResults
u8 unk5_0:1; // 0x5
u8 usedMasterBall:1; // 0x5
u8 caughtMonBall:4; // 0x5
- u8 unk5_6:1; // 0x5
+ u8 shinyWildMon:1; // 0x5
u8 unk5_7:1; // 0x5
u16 playerMon1Species; // 0x6
- u8 playerMon1Name[11]; // 0x8
+ u8 playerMon1Name[POKEMON_NAME_LENGTH + 1]; // 0x8
u8 battleTurnCounter; // 0x13
- u8 playerMon2Name[11]; // 0x14
- u8 field_1F; // 0x1F
+ u8 playerMon2Name[POKEMON_NAME_LENGTH + 1]; // 0x14
+ u8 pokeblockThrows; // 0x1F
u16 lastOpponentSpecies; // 0x20
u16 lastUsedMovePlayer; // 0x22
u16 lastUsedMoveOpponent; // 0x24
u16 playerMon2Species; // 0x26
u16 caughtMonSpecies; // 0x28
- u8 caughtMonNick[10]; // 0x2A
- u8 filler34[2]; // 0x34
+ u8 caughtMonNick[POKEMON_NAME_LENGTH + 1]; // 0x2A
+ u8 filler35[1]; // 0x35
u8 catchAttempts[11]; // 0x36
};
@@ -428,7 +423,7 @@ struct BattleTv_Mon
struct BattleTv
{
- struct BattleTv_Mon mon[2][6]; // [side][partyId]
+ struct BattleTv_Mon mon[2][PARTY_SIZE]; // [side][partyId]
struct BattleTv_Position pos[2][2]; // [side][flank]
struct BattleTv_Side side[2]; // [side]
};
@@ -461,7 +456,7 @@ struct BattleStruct
u8 field_46;
u8 field_47;
u8 focusPunchBattlerId;
- u8 field_49;
+ u8 battlerPreventingSwitchout;
u8 moneyMultiplier;
u8 savedTurnActionNumber;
u8 switchInAbilitiesCounter;
@@ -478,10 +473,10 @@ struct BattleStruct
u8 runTries;
u8 caughtMonNick[11];
u8 field_78;
- u8 field_79;
- u8 field_7A;
- u8 field_7B;
- u8 field_7C;
+ u8 safariGoNearCounter;
+ u8 safariPkblThrowCounter;
+ u8 safariEscapeFactor;
+ u8 safariCatchFactor;
u8 field_7D;
u8 field_7E;
u8 formToChangeInto;
@@ -514,7 +509,7 @@ struct BattleStruct
u8 field_A7;
u16 hpOnSwitchout[2];
u32 savedBattleTypeFlags;
- u8 field_B0;
+ u8 abilityPreventingSwitchout;
u8 hpScale;
u8 synchronizeMoveEffect;
bool8 anyMonHasTransformed;
@@ -525,7 +520,7 @@ struct BattleStruct
u8 AI_itemFlags[2];
u16 choicedMove[MAX_BATTLERS_COUNT];
u16 changedItems[MAX_BATTLERS_COUNT];
- u8 intimidateBank;
+ u8 intimidateBattler;
u8 switchInItemsCounter;
u8 field_DA;
u8 turnSideTracker;
@@ -560,8 +555,8 @@ struct BattleStruct
typeArg = gBattleMoves[move].type; \
}
-#define IS_MOVE_PHYSICAL(moveType)(moveType < TYPE_MYSTERY)
-#define IS_MOVE_SPECIAL(moveType)(moveType > TYPE_MYSTERY)
+#define IS_TYPE_PHYSICAL(moveType)(moveType < TYPE_MYSTERY)
+#define IS_TYPE_SPECIAL(moveType)(moveType > TYPE_MYSTERY)
#define TARGET_TURN_DAMAGED ((gSpecialStatuses[gBattlerTarget].physicalDmg != 0 || gSpecialStatuses[gBattlerTarget].specialDmg != 0))
@@ -573,10 +568,11 @@ struct BattleStruct
}
#define GET_STAT_BUFF_ID(n)((n & 0xF)) // first four bits 0x1, 0x2, 0x4, 0x8
+#define GET_STAT_BUFF_VALUE2(n)((n & 0xF0))
#define GET_STAT_BUFF_VALUE(n)(((n >> 4) & 7)) // 0x10, 0x20, 0x40
#define STAT_BUFF_NEGATIVE 0x80 // 0x80, the sign bit
-#define SET_STAT_BUFF_VALUE(n)(((s8)(((s8)(n) << 4)) & 0xF0))
+#define SET_STAT_BUFF_VALUE(n)((((n) << 4) & 0xF0))
#define SET_STATCHANGER(statId, stage, goesDown)(gBattleScripting.statChanger = (statId) + (stage << 4) + (goesDown << 7))
@@ -597,7 +593,7 @@ struct BattleScripting
u8 animTurn;
u8 animTargetsHit;
u8 statChanger;
- u8 field_1B;
+ bool8 statAnimPlayed;
u8 atk23_state;
u8 battleStyle;
u8 atk6C_state;
@@ -606,34 +602,22 @@ struct BattleScripting
u8 reshowMainState;
u8 reshowHelperState;
u8 field_23;
- u8 field_24;
+ u8 windowsType; // 0 - normal, 1 - battle arena
u8 multiplayerId;
};
-enum
-{
- BACK_PIC_BRENDAN,
- BACK_PIC_MAY,
- BACK_PIC_RED,
- BACK_PIC_LEAF,
- BACK_PIC_RS_BRENDAN,
- BACK_PIC_RS_MAY,
- BACK_PIC_WALLY,
- BACK_PIC_STEVEN
-};
-
// rom_80A5C6C
u8 GetBattlerSide(u8 battler);
-u8 GetBattlerPosition(u8 bank);
-u8 GetBattlerAtPosition(u8 bank);
+u8 GetBattlerPosition(u8 battler);
+u8 GetBattlerAtPosition(u8 battler);
struct BattleSpriteInfo
{
- u16 invisible : 1; // 0x1
- u16 lowHpSong : 1; // 0x2
- u16 behindSubstitute : 1; // 0x4
- u16 flag_x8 : 1; // 0x8
- u16 hpNumbersNoBars : 1; // 0x10
+ u16 invisible:1; // 0x1
+ u16 lowHpSong:1; // 0x2
+ u16 behindSubstitute:1; // 0x4
+ u16 flag_x8:1; // 0x8
+ u16 hpNumbersNoBars:1; // 0x10
u16 transformSpecies;
};
@@ -647,12 +631,12 @@ struct BattleAnimationInfo
u8 field_6;
u8 field_7;
u8 ballThrowCaseId;
- u8 field_9_x1 : 1;
- u8 field_9_x2 : 1;
- u8 field_9_x1C : 3;
- u8 field_9_x20 : 1;
- u8 field_9_x40 : 1;
- u8 field_9_x80 : 1;
+ u8 field_9_x1:1;
+ u8 field_9_x2:1;
+ u8 field_9_x1C:3;
+ u8 field_9_x20:1;
+ u8 field_9_x40:1;
+ u8 field_9_x80:1;
u8 field_A;
u8 field_B;
u8 field_C;
@@ -663,21 +647,21 @@ struct BattleAnimationInfo
struct BattleHealthboxInfo
{
- u8 flag_x1 : 1;
- u8 flag_x2 : 1;
- u8 flag_x4 : 1;
- u8 ballAnimActive : 1; // 0x8
- u8 statusAnimActive : 1; // x10
- u8 animFromTableActive : 1; // x20
- u8 specialAnimActive : 1; //x40
- u8 flag_x80 : 1;
- u8 field_1_x1 : 1;
- u8 field_1_x1E : 4;
- u8 field_1_x20 : 1;
- u8 field_1_x40 : 1;
- u8 field_1_x80 : 1;
- u8 field_2;
- u8 field_3;
+ u8 partyStatusSummaryShown:1;
+ u8 healthboxIsBouncing:1;
+ u8 battlerIsBouncing:1;
+ u8 ballAnimActive:1; // 0x8
+ u8 statusAnimActive:1; // x10
+ u8 animFromTableActive:1; // x20
+ u8 specialAnimActive:1; // x40
+ u8 flag_x80:1;
+ u8 field_1_x1:1;
+ u8 field_1_x1E:4;
+ u8 field_1_x20:1;
+ u8 field_1_x40:1;
+ u8 field_1_x80:1;
+ u8 healthboxBounceSpriteId;
+ u8 battlerBounceSpriteId;
u8 animationState;
u8 field_5;
u8 field_6;
@@ -692,9 +676,9 @@ struct BattleBarInfo
{
u8 healthboxSpriteId;
s32 maxValue;
- s32 currentValue;
+ s32 oldValue;
s32 receivedValue;
- s32 field_10;
+ s32 currValue;
};
struct BattleSpriteData
@@ -719,7 +703,11 @@ struct MonSpritesGfx
void *field_17C;
};
-// all battle variables are declared in battle_main.c
+// All battle variables are declared in battle_main.c
+extern u8 gDisplayedStringBattle[300];
+extern u8 gBattleTextBuff1[TEXT_BUFF_ARRAY_COUNT];
+extern u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT];
+extern u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT];
extern u32 gBattleTypeFlags;
extern u8 gBattleTerrain;
extern u32 gUnknown_02022FF4;
@@ -733,7 +721,7 @@ extern u8 gBattlersCount;
extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
extern u8 gBattlerPositions[MAX_BATTLERS_COUNT];
extern u8 gActionsByTurnOrder[MAX_BATTLERS_COUNT];
-extern u8 gBattleTurnOrder[MAX_BATTLERS_COUNT];
+extern u8 gBattlerByTurnOrder[MAX_BATTLERS_COUNT];
extern u8 gCurrentTurnActionNumber;
extern u8 gCurrentActionFuncId;
extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT];
diff --git a/include/battle_ai_script_commands.h b/include/battle_ai_script_commands.h
index 316f76de6..d23ad048a 100644
--- a/include/battle_ai_script_commands.h
+++ b/include/battle_ai_script_commands.h
@@ -1,13 +1,18 @@
#ifndef GUARD_BATTLE_AI_SCRIPT_COMMANDS_H
#define GUARD_BATTLE_AI_SCRIPT_COMMANDS_H
+// return values for BattleAI_ChooseMoveOrAction
+// 0 - 3 are move idx
+#define AI_CHOICE_FLEE 4
+#define AI_CHOICE_WATCH 5
+
void BattleAI_HandleItemUseBeforeAISetup(u8 defaultScoreMoves);
void BattleAI_SetupAIData(u8 defaultScoreMoves);
u8 BattleAI_ChooseMoveOrAction(void);
-void ClearBattlerMoveHistory(u8 bank);
-void RecordAbilityBattle(u8 bank, u8 abilityId);
-void ClearBattlerAbilityHistory(u8 bank);
-void RecordItemEffectBattle(u8 bank, u8 itemEffect);
-void ClearBankItemEffectHistory(u8 bank);
+void ClearBattlerMoveHistory(u8 battlerId);
+void RecordAbilityBattle(u8 battlerId, u8 abilityId);
+void ClearBattlerAbilityHistory(u8 battlerId);
+void RecordItemEffectBattle(u8 battlerId, u8 itemEffect);
+void ClearBattlerItemEffectHistory(u8 battlerId);
#endif // GUARD_BATTLE_AI_SCRIPT_COMMANDS_H
diff --git a/include/battle_anim.h b/include/battle_anim.h
index aa62db46d..d6d4c05d6 100644
--- a/include/battle_anim.h
+++ b/include/battle_anim.h
@@ -47,7 +47,7 @@ extern s16 gBattleAnimArgs[ANIM_ARGS_COUNT];
extern u8 gAnimMoveTurn;
extern u8 gBattleAnimAttacker;
extern u8 gBattleAnimTarget;
-extern u16 gAnimSpeciesByBanks[MAX_BATTLERS_COUNT];
+extern u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT];
extern u8 gUnknown_02038440;
void ClearBattleAnimationVars(void);
@@ -61,7 +61,7 @@ void sub_80A438C(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible);
bool8 IsContest(void);
s8 BattleAnimAdjustPanning(s8 pan);
s8 BattleAnimAdjustPanning2(s8 pan);
-s16 sub_80A52EC(s16 a);
+s16 KeepPanInRange(s16 a);
s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan);
// battle_anim_80FE840.s
diff --git a/include/battle_bg.h b/include/battle_bg.h
index 7fc09fbf7..dac41c992 100644
--- a/include/battle_bg.h
+++ b/include/battle_bg.h
@@ -1,13 +1,13 @@
#ifndef GUARD_BATTLE_BG_H
#define GUARD_BATTLE_BG_H
-void sub_8035658(void);
+void BattleInitBgsAndWindows(void);
void sub_80356D0(void);
-void ApplyPlayerChosenFrameToBattleMenu(void);
+void LoadBattleMenuWindowGfx(void);
void DrawMainBattleBackground(void);
void LoadBattleTextboxAndBackground(void);
void sub_8035D74(u8 taskId);
-void LoadBattleEntryBackground(void);
+void DrawBattleEntryBackground(void);
bool8 LoadChosenBattleElement(u8 caseId);
#endif // GUARD_BATTLE_BG_H
diff --git a/include/battle_controllers.h b/include/battle_controllers.h
index a0fc41b52..ff5a629af 100644
--- a/include/battle_controllers.h
+++ b/include/battle_controllers.h
@@ -65,6 +65,8 @@ enum
REQUEST_TOUGH_RIBBON_BATTLE,
};
+// Special arguments for Battle Controller functions.
+
#define RESET_ACTION_MOVE_SELECTION 0
#define RESET_ACTION_SELECTION 1
#define RESET_MOVE_SELECTION 2
@@ -76,14 +78,15 @@ enum
#define BALL_3_SHAKES_SUCCESS 4
#define BALL_TRAINER_BLOCK 5
-#define RET_VALUE_LEVELLED_UP 11
-
#define INSTANT_HP_BAR_DROP 32767
+// Special return values in gBattleBufferB from Battle Controller functions.
+#define RET_VALUE_LEVELED_UP 11
+
struct UnusedControllerStruct
{
- u8 field_0 : 7;
- u8 flag_x80 : 1;
+ u8 field_0:7;
+ u8 flag_x80:1;
};
struct HpAndStatus
@@ -160,8 +163,8 @@ enum
CONTROLLER_INTROSLIDE,
CONTROLLER_INTROTRAINERBALLTHROW,
CONTROLLER_DRAWPARTYSTATUSSUMMARY,
- CONTROLLER_49,
- CONTROLLER_50,
+ CONTROLLER_HIDEPARTYSTATUSSUMMARY,
+ CONTROLLER_ENDBOUNCE,
CONTROLLER_SPRITEINVISIBILITY,
CONTROLLER_BATTLEANIMATION,
CONTROLLER_LINKSTANDBYMSG,
@@ -230,13 +233,13 @@ void BtlController_EmitFaintingCry(u8 bufferId);
void BtlController_EmitIntroSlide(u8 bufferId, u8 terrainId);
void BtlController_EmitIntroTrainerBallThrow(u8 bufferId);
void BtlController_EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2);
-void BtlController_EmitCmd49(u8 bufferId);
-void BtlController_EmitCmd50(u8 bufferId);
+void BtlController_EmitHidePartyStatusSummary(u8 bufferId);
+void BtlController_EmitEndBounceEffect(u8 bufferId);
void BtlController_EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible);
void BtlController_EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument);
void BtlController_EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2);
void BtlController_EmitResetActionMoveSelection(u8 bufferId, u8 caseId);
-void BtlController_EmitCmd55(u8 bufferId, u8 arg1);
+void BtlController_EmitCmd55(u8 bufferId, u8 battleOutcome);
// player controller
void SetControllerToPlayer(void);
diff --git a/include/battle_frontier_1.h b/include/battle_frontier_1.h
index 5483b28ef..b9c633efc 100644
--- a/include/battle_frontier_1.h
+++ b/include/battle_frontier_1.h
@@ -2,6 +2,7 @@
#define GUARD_BATTLE_FRONTIER_1_H
bool32 sub_8196094(void);
+void sub_8197080(u8 *);
void sub_8196080(const u8 *str);
#endif // GUARD_BATTLE_FRONTIER_1_H
diff --git a/include/battle_frontier_2.h b/include/battle_frontier_2.h
index 638ff692e..d410749b9 100644
--- a/include/battle_frontier_2.h
+++ b/include/battle_frontier_2.h
@@ -7,5 +7,9 @@ u16 sub_81A89A0(u8);
void sub_81A8AF8(void);
bool8 InBattlePike(void);
void sub_819FA50(void);
+void sub_81AA078(u16*, u8);
+void sub_81A4C30(void);
+void sub_819A4F8(void);
+void sub_819DC00(void);
#endif // GUARD_BATTLE_FRONTIER_2_H
diff --git a/include/battle_gfx_sfx_util.h b/include/battle_gfx_sfx_util.h
index e1c6325b6..16253e760 100644
--- a/include/battle_gfx_sfx_util.h
+++ b/include/battle_gfx_sfx_util.h
@@ -35,7 +35,7 @@ void ClearBehindSubstituteBit(u8 battlerId);
void HandleLowHpMusicChange(struct Pokemon *mon, u8 battlerId);
void BattleStopLowHpSound(void);
u8 GetMonHPBarLevel(struct Pokemon *mon);
-void sub_805EAE8(void);
+void HandleBattleLowHpMusicChange(void);
void sub_805EB9C(u8 affineMode);
void LoadAndCreateEnemyShadowSprites(void);
void SpriteCB_SetInvisible(struct Sprite *sprite);
@@ -45,6 +45,6 @@ void sub_805EF14(void);
void ClearTemporarySpeciesSpriteData(u8 battlerId, bool8 dontClearSubstitute);
void AllocateMonSpritesGfx(void);
void FreeMonSpritesGfx(void);
-bool32 ShouldPlayNormalPokeCry(struct Pokemon *mon);
+bool32 ShouldPlayNormalMonCry(struct Pokemon *mon);
#endif // GUARD_BATTLE_GFX_SFX_UTIL
diff --git a/include/battle_interface.h b/include/battle_interface.h
index fe8c03f70..2d93811f1 100644
--- a/include/battle_interface.h
+++ b/include/battle_interface.h
@@ -29,12 +29,18 @@ enum
#define TAG_HEALTHBOX_OPPONENT1_TILE 0xD701
#define TAG_HEALTHBOX_OPPONENT2_TILE 0xD702
+#define TAG_HEALTHBAR_PLAYER1_TILE 0xD704
+#define TAG_HEALTHBAR_OPPONENT1_TILE 0xD705
+#define TAG_HEALTHBAR_PLAYER2_TILE 0xD706
+#define TAG_HEALTHBAR_OPPONENT2_TILE 0xD707
+
#define TAG_HEALTHBOX_SAFARI_TILE 0xD70B
#define TAG_STATUS_SUMMARY_BAR_TILE 0xD70C
#define TAG_STATUS_SUMMARY_BALLS_TILE 0xD714
#define TAG_HEALTHBOX_PAL 0xD6FF
+#define TAG_HEALTHBAR_PAL 0xD704
#define TAG_STATUS_SUMMARY_BAR_PAL 0xD710
#define TAG_STATUS_SUMMARY_BALLS_PAL 0xD712
@@ -66,9 +72,9 @@ void InitBattlerHealthboxCoords(u8 bank);
void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent);
void SwapHpBarsWithHpText(void);
u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 arg2, bool8 isBattleStart);
-void sub_8073C30(u8 taskId);
+void Task_HidePartyStatusSummary(u8 taskId);
void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elementId);
-s32 sub_8074AA0(u8 bank, u8 healthboxSpriteId, u8 whichBar, u8 arg3);
+s32 MoveBattleBar(u8 bank, u8 healthboxSpriteId, u8 whichBar, u8 arg3);
u8 GetScaledHPFraction(s16 hp, s16 maxhp, u8 scale);
u8 GetHPBarLevel(s16 hp, s16 maxhp);
diff --git a/include/battle_main.h b/include/battle_main.h
index a725b631f..27e61c8fc 100644
--- a/include/battle_main.h
+++ b/include/battle_main.h
@@ -25,6 +25,10 @@ struct TrainerMoney
#define TYPE_FORESIGHT 0xFE
#define TYPE_ENDTABLE 0xFF
+// defines for the 'DoBounceEffect' function
+#define BOUNCE_MON 0x0
+#define BOUNCE_HEALTHBOX 0x1
+
void CB2_InitBattle(void);
void BattleMainCB2(void);
void CB2_QuitRecordedBattle(void);
@@ -38,15 +42,15 @@ u32 sub_80391E0(u8 arrayId, u8 caseId);
u32 sub_80397C4(u32 setId, u32 tableId);
void oac_poke_opponent(struct Sprite *sprite);
void SpriteCallbackDummy_2(struct Sprite *sprite);
-void sub_8039934(struct Sprite *sprite);
+void SpriteCB_FaintOpponentMon(struct Sprite *sprite);
void sub_8039AD8(struct Sprite *sprite);
void sub_8039B2C(struct Sprite *sprite);
void sub_8039B58(struct Sprite *sprite);
void sub_8039BB4(struct Sprite *sprite);
void sub_80105DC(struct Sprite *sprite);
void sub_8039C00(struct Sprite *sprite);
-void dp11b_obj_instanciate(u8 battlerId, u8 b, s8 c, s8 d);
-void dp11b_obj_free(u8 battlerId, bool8 b);
+void DoBounceEffect(u8 battlerId, u8 b, s8 c, s8 d);
+void EndBounceEffect(u8 battlerId, bool8 b);
void sub_8039E44(struct Sprite *sprite);
void sub_8039E60(struct Sprite *sprite);
void sub_8039E84(struct Sprite *sprite);
@@ -80,6 +84,6 @@ extern const u8 gStatusConditionString_IceJpn[8];
extern const u8 gStatusConditionString_ConfusionJpn[8];
extern const u8 gStatusConditionString_LoveJpn[8];
-extern const u8 * const gStatusConditionStringsTable[7][2];
+extern const u8 *const gStatusConditionStringsTable[7][2];
#endif // GUARD_BATTLE_MAIN_H
diff --git a/include/battle_message.h b/include/battle_message.h
index bf9b590af..147bfa501 100644
--- a/include/battle_message.h
+++ b/include/battle_message.h
@@ -1,8 +1,9 @@
#ifndef GUARD_BATTLE_MESSAGE_H
#define GUARD_BATTLE_MESSAGE_H
-// for 0xFD
+#define TEXT_BUFF_ARRAY_COUNT 16
+// for 0xFD
#define B_TXT_BUFF1 0x0
#define B_TXT_BUFF2 0x1
#define B_TXT_COPY_VAR_1 0x2
@@ -194,7 +195,7 @@
textVar[4] = B_BUFF_EOS; \
}
-struct StringInfoBattle
+struct BattleMsgData
{
u16 currentMove;
u16 originallyUsedMove;
@@ -203,25 +204,20 @@ struct StringInfoBattle
u8 scrActive;
u8 unk1605E;
u8 hpScale;
- u8 StringBank;
+ u8 itemEffectBattler;
u8 moveType;
- u8 abilities[4];
- u8 textBuffs[3][0x10];
+ u8 abilities[MAX_BATTLERS_COUNT];
+ u8 textBuffs[3][TEXT_BUFF_ARRAY_COUNT];
};
void BufferStringBattle(u16 stringID);
u32 BattleStringExpandPlaceholdersToDisplayedString(const u8* src);
u32 BattleStringExpandPlaceholders(const u8* src, u8* dst);
-void BattleHandleAddTextPrinter(const u8* text, u8 arg1);
+void BattlePutTextOnWindow(const u8* text, u8 arg1);
void SetPpNumbersPaletteInMoveSelection(void);
u8 GetCurrentPpToMaxPpState(u8 currentPp, u8 maxPp);
-#define TEXT_BUFF_ARRAY_COUNT 16
-
-extern u8 gDisplayedStringBattle[300];
-extern u8 gBattleTextBuff1[TEXT_BUFF_ARRAY_COUNT];
-extern u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT];
-extern u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT];
+extern struct BattleMsgData *gBattleMsgDataPtr;
extern const u8* const gBattleStringsTable[];
extern const u8* const gStatNamesTable[];
@@ -252,6 +248,13 @@ extern const u8 gText_BattleSwitchWhich4[];
extern const u8 gText_BattleSwitchWhich5[];
extern const u8 gText_SafariBalls[];
extern const u8 gText_SafariBallLeft[];
+extern const u8 gText_Sleep[];
+extern const u8 gText_Poison[];
+extern const u8 gText_Burn[];
+extern const u8 gText_Paralysis[];
+extern const u8 gText_Ice[];
+extern const u8 gText_Confusion[];
+extern const u8 gText_Love[];
extern const u8 gText_SpaceAndSpace[];
extern const u8 gText_CommaSpace[];
extern const u8 gText_Space2[];
diff --git a/include/battle_records.h b/include/battle_records.h
new file mode 100644
index 000000000..88ff6adc9
--- /dev/null
+++ b/include/battle_records.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_BATTLE_RECORDS_H
+#define GUARD_BATTLE_RECORDS_H
+
+extern u8 gRecordsWindowId;
+
+void ClearPlayerLinkBattleRecords(void);
+void UpdatePlayerLinkBattleRecords(s32 battlerId);
+void ShowLinkBattleRecords(void);
+void RemoveRecordsWindow(void);
+void ShowTrainerHillRecords(void);
+
+#endif // GUARD_BATTLE_RECORDS_H
diff --git a/include/battle_setup.h b/include/battle_setup.h
index e4bae6fdb..0caa3df27 100644
--- a/include/battle_setup.h
+++ b/include/battle_setup.h
@@ -51,8 +51,8 @@ void ChooseStarter(void);
void ResetTrainerOpponentIds(void);
void SetMapVarsToTrainer(void);
const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data);
-void ConfigureAndSetUpOneTrainerBattle(u8 trainerMapObjId, const u8 *trainerScript);
-void ConfigureTwoTrainersBattle(u8 trainerMapObjId, const u8 *trainerScript);
+void ConfigureAndSetUpOneTrainerBattle(u8 trainerEventObjId, const u8 *trainerScript);
+void ConfigureTwoTrainersBattle(u8 trainerEventObjId, const u8 *trainerScript);
void SetUpTwoTrainersBattle(void);
bool32 GetTrainerFlagFromScriptPointer(const u8 *data);
void sub_80B16D8(void);
diff --git a/include/battle_tower.h b/include/battle_tower.h
index 25b439c1b..e1655f2c6 100644
--- a/include/battle_tower.h
+++ b/include/battle_tower.h
@@ -1,6 +1,47 @@
#ifndef GUARD_BATTLE_TOWER_H
#define GUARD_BATTLE_TOWER_H
+struct RSBattleTowerRecord
+{
+ /*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;
+ /*0xA4*/ u16 unk_11c8;
+};
+
+union BattleTowerRecord
+{
+ struct RSBattleTowerRecord ruby_sapphire;
+ struct EmeraldBattleTowerRecord emerald;
+};
+
+struct BattleFrontierTrainer
+{
+ u32 trainerClass;
+ u8 trainerName[8];
+ u16 speechBefore[6];
+ u16 speechWin[6];
+ u16 speechLose[6];
+ u16 *btMonPool;
+};
+
+extern struct BattleFrontierTrainer *gUnknown_0203BC88;
+
u16 sub_8164FCC(u8, u8);
+void sub_81659DC(struct RSBattleTowerRecord *a0, struct RSBattleTowerRecord *a1);
+bool32 sub_816587C(union BattleTowerRecord *, union BattleTowerRecord *);
+void CalcEmeraldBattleTowerChecksum(struct EmeraldBattleTowerRecord *);
+void sub_81628A0(union BattleTowerRecord *);
+void sub_8162614(u16 trainerId, u8);
+void ConvertBattleFrontierTrainerSpeechToString(u16 *words);
+void GetFrontierTrainerName(u8 *dest, u16 trainerIdx);
+void GetEreaderTrainerName(u8 *dest);
#endif //GUARD_BATTLE_TOWER_H
diff --git a/include/battle_util.h b/include/battle_util.h
index e5c1aaf18..be9b5f1fe 100644
--- a/include/battle_util.h
+++ b/include/battle_util.h
@@ -8,41 +8,36 @@
#define MOVE_LIMITATION_TAUNT (1 << 4)
#define MOVE_LIMITATION_IMPRISION (1 << 5)
-#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_SIDE 0x10
-#define ABILITYEFFECT_COUNT_BANK_SIDE 0x11
-#define ABILITYEFFECT_COUNT_ON_FIELD 0x12
-#define ABILITYEFFECT_CHECK_ON_FIELD 0x13
-#define ABILITYEFFECT_SWITCH_IN_WEATHER 0xFF
+#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_BATTLER_SIDE 0xD
+#define ABILITYEFFECT_FIELD_SPORT 0xE
+#define ABILITYEFFECT_CHECK_FIELD_EXCEPT_BATTLER 0xF
+#define ABILITYEFFECT_COUNT_OTHER_SIDE 0x10
+#define ABILITYEFFECT_COUNT_BATTLER_SIDE 0x11
+#define ABILITYEFFECT_COUNT_ON_FIELD 0x12
+#define ABILITYEFFECT_CHECK_ON_FIELD 0x13
+#define ABILITYEFFECT_SWITCH_IN_WEATHER 0xFF
-#define ITEMEFFECT_ON_SWITCH_IN 0x0
+#define ABILITY_ON_OPPOSING_FIELD(battlerId, abilityId)(AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, battlerId, abilityId, 0, 0))
+#define ABILITY_ON_FIELD(abilityId)(AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, abilityId, 0, 0))
+#define ABILITY_ON_FIELD2(abilityId)(AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, abilityId, 0, 0))
-#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 WEATHER_HAS_EFFECT2 ((!AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, ABILITY_AIR_LOCK, 0, 0)))
+#define ITEMEFFECT_ON_SWITCH_IN 0x0
-#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
+#define WEATHER_HAS_EFFECT ((!ABILITY_ON_FIELD(ABILITY_CLOUD_NINE) && !ABILITY_ON_FIELD(ABILITY_AIR_LOCK)))
+#define WEATHER_HAS_EFFECT2 ((!ABILITY_ON_FIELD2(ABILITY_CLOUD_NINE) && !ABILITY_ON_FIELD2(ABILITY_AIR_LOCK)))
u8 GetBattlerForBattleScript(u8 caseId);
void PressurePPLose(u8 bankDef, u8 bankAtk, u16 move);
@@ -64,13 +59,13 @@ u8 TrySetCantSelectMoveBattleScript(void);
u8 CheckMoveLimitations(u8 battlerId, u8 unusableMoves, u8 check);
bool8 AreAllMovesUnusable(void);
u8 GetImprisonedMovesCount(u8 battlerId, u16 move);
-u8 UpdateTurnCounters(void);
-u8 TurnBasedEffects(void);
+u8 DoFieldEndTurnEffects(void);
+u8 DoBattlerEndTurnEffects(void);
bool8 HandleWishPerishSongOnTurnEnd(void);
bool8 HandleFaintedMonActions(void);
void TryClearRageStatuses(void);
u8 AtkCanceller_UnableToUseMove(void);
-bool8 sub_80423F4(u8 battlerId, u8 r1, u8 r2);
+bool8 HasNoMonsToSwitch(u8 battlerId, u8 r1, u8 r2);
u8 CastformDataTypeChange(u8 battlerId);
u8 AbilityBattleEffects(u8 caseID, u8 battlerId, u8 ability, u8 special, u16 moveArg);
void BattleScriptExecute(const u8* BS_ptr);
diff --git a/include/berry.h b/include/berry.h
index 425a664c9..1a8b7fa25 100644
--- a/include/berry.h
+++ b/include/berry.h
@@ -23,9 +23,9 @@ enum
#define NUM_BERRIES 44
-extern const u8 *const gBerryTreeFieldObjectGraphicsIdTablePointers[NUM_BERRIES];
-extern const struct SpriteFrameImage *const gBerryTreePicTablePointers[NUM_BERRIES];
-extern const u8 *const gBerryTreePaletteSlotTablePointers[NUM_BERRIES];
+extern const u8 *const gBerryTreeEventObjectGraphicsIdTablePointers[];
+extern const struct SpriteFrameImage *const gBerryTreePicTablePointers[];
+extern const u8 *const gBerryTreePaletteSlotTablePointers[];
void ClearEnigmaBerries(void);
void SetEnigmaBerry(u8 *src);
@@ -33,7 +33,7 @@ u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry);
bool32 IsEnigmaBerryValid(void);
const struct Berry *GetBerryInfo(u8 berry);
struct BerryTree *GetBerryTreeInfo(u8 id);
-bool32 FieldObjectInteractionWaterBerryTree(void);
+bool32 EventObjectInteractionWaterBerryTree(void);
bool8 IsPlayerFacingPlantedBerryTree(void);
bool8 TryToWaterBerryTree(void);
void ClearBerryTrees(void);
@@ -54,10 +54,10 @@ u8 CalcBerryYield(struct BerryTree *tree);
u8 GetBerryCountByBerryTreeId(u8 id);
u16 GetStageDurationByBerryType(u8);
void Bag_ChooseBerry(void);
-void FieldObjectInteractionGetBerryTreeData(void);
-void FieldObjectInteractionPlantBerryTree(void);
-void FieldObjectInteractionPickBerryTree(void);
-void FieldObjectInteractionRemoveBerryTree(void);
+void EventObjectInteractionGetBerryTreeData(void);
+void EventObjectInteractionPlantBerryTree(void);
+void EventObjectInteractionPickBerryTree(void);
+void EventObjectInteractionRemoveBerryTree(void);
u8 PlayerHasBerries(void);
void ResetBerryTreeSparkleFlags(void);
diff --git a/include/bg.h b/include/bg.h
index de3897fa4..ea84c1573 100644
--- a/include/bg.h
+++ b/include/bg.h
@@ -68,7 +68,7 @@ void UnsetBgTilemapBuffer(u8 bg);
void* GetBgTilemapBuffer(u8 bg);
void CopyToBgTilemapBuffer(u8 bg, const void *src, u16 mode, u16 destOffset);
void CopyBgTilemapBufferToVram(u8 bg);
-void CopyToBgTilemapBufferRect(u8 bg, void* src, u8 destX, u8 destY, u8 width, u8 height);
+void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 width, u8 height);
void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette);
void CopyRectToBgTilemapBufferRect(u8 bg, const void *src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2);
void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height);
diff --git a/include/bike.h b/include/bike.h
index e625ad438..46b668169 100644
--- a/include/bike.h
+++ b/include/bike.h
@@ -63,6 +63,10 @@ enum
ACRO_TRANS_WHEELIE_LOWERING_MOVING,
};
+// Exported RAM declarations
+extern bool8 gUnusedBikeCameraAheadPanback;
+
+// Exported ROM declarations
void MovePlayerOnBike(u8 direction, u16 newKeys, u16 heldKeys);
void Bike_TryAcroBikeHistoryUpdate(u16 newKeys, u16 heldKeys);
bool8 RS_IsRunningDisallowed(u8 tile);
diff --git a/include/braille_puzzles.h b/include/braille_puzzles.h
index 780abeeba..d4c5a24d8 100644
--- a/include/braille_puzzles.h
+++ b/include/braille_puzzles.h
@@ -2,6 +2,10 @@
#define GUARD_BRAILLE_PUZZLES_H
bool8 ShouldDoBrailleFlyEffect(void);
+bool8 ShouldDoBrailleStrengthEffect(void);
+bool8 ShouldDoBrailleDigEffect(void);
+void DoBrailleDigEffect(void);
void sub_8179918(void);
+void sub_8179834(void);
#endif // GUARD_BRAILLE_PUZZLES_H
diff --git a/include/cable_club.h b/include/cable_club.h
new file mode 100644
index 000000000..8be376721
--- /dev/null
+++ b/include/cable_club.h
@@ -0,0 +1,18 @@
+#ifndef GUARD_CABLE_CLUB_H
+#define GUARD_CABLE_CLUB_H
+
+#include "task.h"
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+
+void sub_80B37D4(TaskFunc taskFunc);
+u8 sub_80B3050(void);
+void sub_80B360C(void);
+bool32 sub_80B2AF4(u16 *arg0, u16 *arg1);
+void sub_80B3AF8(u8 taskId);
+
+#endif //GUARD_CABLE_CLUB_H
diff --git a/include/constants/abilities.h b/include/constants/abilities.h
index 4e2c4056c..4ad54c86f 100644
--- a/include/constants/abilities.h
+++ b/include/constants/abilities.h
@@ -80,4 +80,6 @@
#define ABILITY_CACOPHONY 76
#define ABILITY_AIR_LOCK 77
+#define ABILITIES_COUNT 78
+
#endif // GUARD_CONSTANTS_ABILITIES_H
diff --git a/include/constants/battle.h b/include/constants/battle.h
index f3d7a8e0e..b3f9d919a 100644
--- a/include/constants/battle.h
+++ b/include/constants/battle.h
@@ -130,7 +130,7 @@
#define STATUS2_TORMENT 0x80000000
// Seems like per-battler statuses. Not quite sure how to categorize these
-#define STATUS3_LEECHSEED_BANK 0x3
+#define STATUS3_LEECHSEED_BATTLER 0x3
#define STATUS3_LEECHSEED 0x4
#define STATUS3_ALWAYS_HITS 0x18 // two bits
#define STATUS3_PERISH_SONG 0x20
@@ -159,7 +159,7 @@
#define HITMARKER_NO_ATTACKSTRING 0x00000200
#define HITMARKER_ATTACKSTRING_PRINTED 0x00000400
#define HITMARKER_NO_PPDEDUCT 0x00000800
-#define HITMARKER_PURSUIT_TRAP 0x00001000
+#define HITMARKER_SWAP_ATTACKER_TARGET 0x00001000
#define HITMARKER_IGNORE_SAFEGUARD 0x00002000
#define HITMARKER_SYNCHRONISE_EFFECT 0x00004000
#define HITMARKER_RUN 0x00008000
diff --git a/include/constants/battle_frontier.h b/include/constants/battle_frontier.h
new file mode 100644
index 000000000..4145805c4
--- /dev/null
+++ b/include/constants/battle_frontier.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_CONSTANTS_BATTLE_FRONTIER_H
+#define GUARD_CONSTANTS_BATTLE_FRONTIER_H
+
+// Battle Frontier facility ids.
+#define FRONTIER_FACILITY_TOWER 0
+#define FRONTIER_FACILITY_DOME 1
+#define FRONTIER_FACILITY_PALACE 2
+#define FRONTIER_FACILITY_ARENA 3
+#define FRONTIER_FACILITY_FACTORY 4
+#define FRONTIER_FACILITY_PIKE 5
+#define FRONTIER_FACILITY_PYRAMID 6
+
+#endif // GUARD_CONSTANTS_BATTLE_FRONTIER_H
diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h
index a1a4ed50a..84ec9d512 100644
--- a/include/constants/battle_script_commands.h
+++ b/include/constants/battle_script_commands.h
@@ -17,7 +17,7 @@
#define sB_ANIM_TURN gBattleScripting + 0x18
#define sB_ANIM_TARGETS_HIT gBattleScripting + 0x19
#define sSTATCHANGER gBattleScripting + 0x1A
-#define sFIELD_1B gBattleScripting + 0x1B
+#define sSTAT_ANIM_PLAYED gBattleScripting + 0x1B
#define sGIVEEXP_STATE gBattleScripting + 0x1C
#define sBATTLE_STYLE gBattleScripting + 0x1D
#define sLVLBOX_STATE gBattleScripting + 0x1E
@@ -37,7 +37,7 @@
#define BS_ATTACKER 1
#define BS_EFFECT_BATTLER 2
#define BS_FAINTED 3
-#define BS_BANK_0 7
+#define BS_BATTLER_0 7
#define BS_ATTACKER_WITH_PARTNER 4 // for atk98_status_icon_update
#define BS_ATTACKER_SIDE 8 // for atk1E_jumpifability
#define BS_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability
@@ -91,7 +91,16 @@
// atk48
#define ATK48_STAT_NEGATIVE 0x1
#define ATK48_STAT_BY_TWO 0x2
-#define ATK48_BIT_x4 0x4
+#define ATK48_ONLY_MULTIPLE 0x4
#define ATK48_DONT_CHECK_LOWER 0x8
+#define BIT_HP 0x1
+#define BIT_ATK 0x2
+#define BIT_DEF 0x4
+#define BIT_SPEED 0x8
+#define BIT_SPATK 0x10
+#define BIT_SPDEF 0x20
+#define BIT_ACC 0x40
+#define BIT_EVASION 0x80
+
#endif // GUARD_CONSTANTS_BATTLE_SCRIPT_COMMANDS_H
diff --git a/include/constants/bg_event_constants.h b/include/constants/bg_event_constants.h
new file mode 100755
index 000000000..a915bc509
--- /dev/null
+++ b/include/constants/bg_event_constants.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_CONSTANTS_BG_EVENT_H
+#define GUARD_CONSTANTS_BG_EVENT_H
+
+#define BG_EVENT_PLAYER_FACING_ANY 0
+#define BG_EVENT_PLAYER_FACING_NORTH 1
+#define BG_EVENT_PLAYER_FACING_SOUTH 2
+#define BG_EVENT_PLAYER_FACING_EAST 3
+#define BG_EVENT_PLAYER_FACING_WEST 4
+
+#define BG_EVENT_HIDDEN_ITEM 7
+#define BG_EVENT_SECRET_BASE 8
+
+#endif // GUARD_CONSTANTS_BG_EVENT_H
diff --git a/include/constants/decorations.h b/include/constants/decorations.h
index 2e3558721..b9f626d24 100644
--- a/include/constants/decorations.h
+++ b/include/constants/decorations.h
@@ -122,5 +122,6 @@
#define DECOR_REGIROCK_DOLL 118
#define DECOR_REGICE_DOLL 119
#define DECOR_REGISTEEL_DOLL 120
+#define NUM_DECORATIONS DECOR_REGISTEEL_DOLL
#endif // GUARD_CONSTANTS_DECORATIONS_H
diff --git a/include/constants/event_object_movement_constants.h b/include/constants/event_object_movement_constants.h
new file mode 100755
index 000000000..2a80f9a09
--- /dev/null
+++ b/include/constants/event_object_movement_constants.h
@@ -0,0 +1,245 @@
+#ifndef GUARD_CONSTANTS_EVENTOBJMV_H
+#define GUARD_CONSTANTS_EVENTOBJMV_H
+
+#define MOVEMENT_TYPE_NONE 0x0
+#define MOVEMENT_TYPE_LOOK_AROUND 0x1
+#define MOVEMENT_TYPE_WANDER_AROUND 0x2
+#define MOVEMENT_TYPE_WANDER_UP_AND_DOWN 0x3
+#define MOVEMENT_TYPE_WANDER_DOWN_AND_UP 0x4
+#define MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT 0x5
+#define MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT 0x6
+#define MOVEMENT_TYPE_FACE_UP 0x7
+#define MOVEMENT_TYPE_FACE_DOWN 0x8
+#define MOVEMENT_TYPE_FACE_LEFT 0x9
+#define MOVEMENT_TYPE_FACE_RIGHT 0xA
+#define MOVEMENT_TYPE_PLAYER 0xB
+#define MOVEMENT_TYPE_BERRY_TREE_GROWTH 0xC
+#define MOVEMENT_TYPE_FACE_DOWN_AND_UP 0xD
+#define MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT 0xE
+#define MOVEMENT_TYPE_FACE_UP_AND_LEFT 0xF
+#define MOVEMENT_TYPE_FACE_UP_AND_RIGHT 0x10
+#define MOVEMENT_TYPE_FACE_DOWN_AND_LEFT 0x11
+#define MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT 0x12
+#define MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT 0x13
+#define MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT 0x14
+#define MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT 0x15
+#define MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT 0x16
+#define MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE 0x17
+#define MOVEMENT_TYPE_ROTATE_CLOCKWISE 0x18
+#define MOVEMENT_TYPE_WALK_UP_AND_DOWN 0x19
+#define MOVEMENT_TYPE_WALK_DOWN_AND_UP 0x1A
+#define MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT 0x1B
+#define MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT 0x1C
+#define MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN 0x1D
+#define MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP 0x1E
+#define MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT 0x1F
+#define MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT 0x20
+#define MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN 0x21
+#define MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP 0x22
+#define MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT 0x23
+#define MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT 0x24
+#define MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT 0x25
+#define MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT 0x26
+#define MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN 0x27
+#define MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP 0x28
+#define MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT 0x29
+#define MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT 0x2A
+#define MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN 0x2B
+#define MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP 0x2C
+#define MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT 0x2D
+#define MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT 0x2E
+#define MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP 0x2F
+#define MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN 0x30
+#define MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT 0x31
+#define MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT 0x32
+#define MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN 0x33
+#define MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP 0x34
+#define MOVEMENT_TYPE_COPY_PLAYER 0x35
+#define MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE 0x36
+#define MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE 0x37
+#define MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE 0x38
+#define MOVEMENT_TYPE_TREE_DISGUISE 0x39
+#define MOVEMENT_TYPE_MOUNTAIN_DISGUISE 0x3A
+#define MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS 0x3B
+#define MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS 0x3C
+#define MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS 0x3D
+#define MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS 0x3E
+#define MOVEMENT_TYPE_HIDDEN 0x3F
+#define MOVEMENT_TYPE_WALK_IN_PLACE_DOWN 0x40
+#define MOVEMENT_TYPE_WALK_IN_PLACE_UP 0x41
+#define MOVEMENT_TYPE_WALK_IN_PLACE_LEFT 0x42
+#define MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT 0x43
+#define MOVEMENT_TYPE_JOG_IN_PLACE_DOWN 0x44
+#define MOVEMENT_TYPE_JOG_IN_PLACE_UP 0x45
+#define MOVEMENT_TYPE_JOG_IN_PLACE_LEFT 0x46
+#define MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT 0x47
+#define MOVEMENT_TYPE_RUN_IN_PLACE_DOWN 0x48
+#define MOVEMENT_TYPE_RUN_IN_PLACE_UP 0x49
+#define MOVEMENT_TYPE_RUN_IN_PLACE_LEFT 0x4A
+#define MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT 0x4B
+#define MOVEMENT_TYPE_INVISIBLE 0x4C
+#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN 0x4D
+#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP 0x4E
+#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT 0x4F
+#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT 0x50
+
+#define MOVEMENT_ACTION_FACE_DOWN 0x0
+#define MOVEMENT_ACTION_FACE_UP 0x1
+#define MOVEMENT_ACTION_FACE_LEFT 0x2
+#define MOVEMENT_ACTION_FACE_RIGHT 0x3
+#define MOVEMENT_ACTION_WALK_SLOW_DOWN 0x4
+#define MOVEMENT_ACTION_WALK_SLOW_UP 0x5
+#define MOVEMENT_ACTION_WALK_SLOW_LEFT 0x6
+#define MOVEMENT_ACTION_WALK_SLOW_RIGHT 0x7
+#define MOVEMENT_ACTION_WALK_NORMAL_DOWN 0x8
+#define MOVEMENT_ACTION_WALK_NORMAL_UP 0x9
+#define MOVEMENT_ACTION_WALK_NORMAL_LEFT 0xA
+#define MOVEMENT_ACTION_WALK_NORMAL_RIGHT 0xB
+#define MOVEMENT_ACTION_JUMP_2_DOWN 0xC
+#define MOVEMENT_ACTION_JUMP_2_UP 0xD
+#define MOVEMENT_ACTION_JUMP_2_LEFT 0xE
+#define MOVEMENT_ACTION_JUMP_2_RIGHT 0xF
+#define MOVEMENT_ACTION_DELAY_1 0x10
+#define MOVEMENT_ACTION_DELAY_2 0x11
+#define MOVEMENT_ACTION_DELAY_4 0x12
+#define MOVEMENT_ACTION_DELAY_8 0x13
+#define MOVEMENT_ACTION_DELAY_16 0x14
+#define MOVEMENT_ACTION_WALK_FAST_DOWN 0x15
+#define MOVEMENT_ACTION_WALK_FAST_UP 0x16
+#define MOVEMENT_ACTION_WALK_FAST_LEFT 0x17
+#define MOVEMENT_ACTION_WALK_FAST_RIGHT 0x18
+#define MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN 0x19
+#define MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_UP 0x1A
+#define MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_LEFT 0x1B
+#define MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_RIGHT 0x1C
+#define MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_DOWN 0x1D
+#define MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_UP 0x1E
+#define MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_LEFT 0x1F
+#define MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_RIGHT 0x20
+#define MOVEMENT_ACTION_WALK_IN_PLACE_FAST_DOWN 0x21
+#define MOVEMENT_ACTION_WALK_IN_PLACE_FAST_UP 0x22
+#define MOVEMENT_ACTION_WALK_IN_PLACE_FAST_LEFT 0x23
+#define MOVEMENT_ACTION_WALK_IN_PLACE_FAST_RIGHT 0x24
+#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_DOWN 0x25
+#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_UP 0x26
+#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_LEFT 0x27
+#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_RIGHT 0x28
+#define MOVEMENT_ACTION_RIDE_WATER_CURRENT_DOWN 0x29
+#define MOVEMENT_ACTION_RIDE_WATER_CURRENT_UP 0x2A
+#define MOVEMENT_ACTION_RIDE_WATER_CURRENT_LEFT 0x2B
+#define MOVEMENT_ACTION_RIDE_WATER_CURRENT_RIGHT 0x2C
+#define MOVEMENT_ACTION_WALK_FASTEST_DOWN 0x2D
+#define MOVEMENT_ACTION_WALK_FASTEST_UP 0x2E
+#define MOVEMENT_ACTION_WALK_FASTEST_LEFT 0x2F
+#define MOVEMENT_ACTION_WALK_FASTEST_RIGHT 0x30
+#define MOVEMENT_ACTION_SLIDE_DOWN 0x31
+#define MOVEMENT_ACTION_SLIDE_UP 0x32
+#define MOVEMENT_ACTION_SLIDE_LEFT 0x33
+#define MOVEMENT_ACTION_SLIDE_RIGHT 0x34
+#define MOVEMENT_ACTION_PLAYER_RUN_DOWN 0x35
+#define MOVEMENT_ACTION_PLAYER_RUN_UP 0x36
+#define MOVEMENT_ACTION_PLAYER_RUN_LEFT 0x37
+#define MOVEMENT_ACTION_PLAYER_RUN_RIGHT 0x38
+#define MOVEMENT_ACTION_START_ANIM_IN_DIRECTION 0x39
+#define MOVEMENT_ACTION_JUMP_SPECIAL_DOWN 0x3A
+#define MOVEMENT_ACTION_JUMP_SPECIAL_UP 0x3B
+#define MOVEMENT_ACTION_JUMP_SPECIAL_LEFT 0x3C
+#define MOVEMENT_ACTION_JUMP_SPECIAL_RIGHT 0x3D
+#define MOVEMENT_ACTION_FACE_PLAYER 0x3E
+#define MOVEMENT_ACTION_FACE_AWAY_PLAYER 0x3F
+#define MOVEMENT_ACTION_LOCK_FACING_DIRECTION 0x40
+#define MOVEMENT_ACTION_UNLOCK_FACING_DIRECTION 0x41
+#define MOVEMENT_ACTION_JUMP_DOWN 0x42
+#define MOVEMENT_ACTION_JUMP_UP 0x43
+#define MOVEMENT_ACTION_JUMP_LEFT 0x44
+#define MOVEMENT_ACTION_JUMP_RIGHT 0x45
+#define MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN 0x46
+#define MOVEMENT_ACTION_JUMP_IN_PLACE_UP 0x47
+#define MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT 0x48
+#define MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT 0x49
+#define MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN_UP 0x4A
+#define MOVEMENT_ACTION_JUMP_IN_PLACE_UP_DOWN 0x4B
+#define MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT_RIGHT 0x4C
+#define MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT_LEFT 0x4D
+#define MOVEMENT_ACTION_FACE_ORIGINAL_DIRECTION 0x4E
+#define MOVEMENT_ACTION_NURSE_JOY_BOW_DOWN 0x4F
+#define MOVEMENT_ACTION_ENABLE_JUMP_LANDING_GROUND_EFFECT 0x50
+#define MOVEMENT_ACTION_DISABLE_JUMP_LANDING_GROUND_EFFECT 0x51
+#define MOVEMENT_ACTION_DISABLE_ANIMATION 0x52
+#define MOVEMENT_ACTION_RESTORE_ANIMATION 0x53
+#define MOVEMENT_ACTION_SET_INVISIBLE 0x54
+#define MOVEMENT_ACTION_SET_VISIBLE 0x55
+#define MOVEMENT_ACTION_EMOTE_EXCLAMATION_MARK 0x56
+#define MOVEMENT_ACTION_EMOTE_QUESTION_MARK 0x57
+#define MOVEMENT_ACTION_EMOTE_HEART 0x58
+#define MOVEMENT_ACTION_REVEAL_TRAINER 0x59
+#define MOVEMENT_ACTION_ROCK_SMASH_BREAK 0x5A
+#define MOVEMENT_ACTION_CUT_TREE 0x5B
+#define MOVEMENT_ACTION_SET_FIXED_PRIORITY 0x5C
+#define MOVEMENT_ACTION_CLEAR_FIXED_PRIORITY 0x5D
+#define MOVEMENT_ACTION_INIT_AFFINE_ANIM 0x5E
+#define MOVEMENT_ACTION_CLEAR_AFFINE_ANIM 0x5F
+#define MOVEMENT_ACTION_UNKNOWN1 0x60
+#define MOVEMENT_ACTION_UNKNOWN2 0x61
+#define MOVEMENT_ACTION_WALK_DOWN_START_AFFINE 0x62
+#define MOVEMENT_ACTION_WALK_DOWN_AFFINE 0x63
+#define MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN 0x64
+#define MOVEMENT_ACTION_ACRO_WHEELIE_FACE_UP 0x65
+#define MOVEMENT_ACTION_ACRO_WHEELIE_FACE_LEFT 0x66
+#define MOVEMENT_ACTION_ACRO_WHEELIE_FACE_RIGHT 0x67
+#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_DOWN 0x68
+#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_UP 0x69
+#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_LEFT 0x6A
+#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_RIGHT 0x6B
+#define MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_DOWN 0x6C
+#define MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_UP 0x6D
+#define MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_LEFT 0x6E
+#define MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_RIGHT 0x6F
+#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_DOWN 0x70
+#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_UP 0x71
+#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_LEFT 0x72
+#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_RIGHT 0x73
+#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_DOWN 0x74
+#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_UP 0x75
+#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_LEFT 0x76
+#define MOVEMENT_ACTION_ACRO_WHEELIE_HOP_RIGHT 0x77
+#define MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_DOWN 0x78
+#define MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_UP 0x79
+#define MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_LEFT 0x7A
+#define MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_RIGHT 0x7B
+#define MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_DOWN 0x7C
+#define MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_UP 0x7D
+#define MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_LEFT 0x7E
+#define MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_RIGHT 0x7F
+#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_DOWN 0x80
+#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_UP 0x81
+#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_LEFT 0x82
+#define MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_RIGHT 0x83
+#define MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_DOWN 0x84
+#define MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_UP 0x85
+#define MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_LEFT 0x86
+#define MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_RIGHT 0x87
+#define MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_DOWN 0x88
+#define MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_UP 0x89
+#define MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_LEFT 0x8A
+#define MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_RIGHT 0x8B
+#define MOVEMENT_ACTION_WALK_NORMAL_DIAGONAL_UP_LEFT 0x8C
+#define MOVEMENT_ACTION_WALK_NORMAL_DIAGONAL_UP_RIGHT 0x8D
+#define MOVEMENT_ACTION_WALK_NORMAL_DIAGONAL_DOWN_LEFT 0x8E
+#define MOVEMENT_ACTION_WALK_NORMAL_DIAGONAL_DOWN_RIGHT 0x8F
+#define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_LEFT 0x90
+#define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_RIGHT 0x91
+#define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_LEFT 0x92
+#define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_RIGHT 0x93
+#define MOVEMENT_ACTION_STORE_AND_LOCK_ANIM 0x94
+#define MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM 0x95
+#define MOVEMENT_ACTION_WALK_LEFT_AFFINE 0x96
+#define MOVEMENT_ACTION_WALK_RIGHT_AFFINE 0x97
+#define MOVEMENT_ACTION_LEVITATE 0x98
+#define MOVEMENT_ACTION_STOP_LEVITATE 0x99
+#define MOVEMENT_ACTION_DESTROY_EXTRA_TASK_IF_AT_TOP 0x9A
+#define MOVEMENT_ACTION_FIGURE_8 0x9B
+#define MOVEMENT_ACTION_FLY_UP 0x9C
+#define MOVEMENT_ACTION_FLY_DOWN 0x9D
+
+#endif // GUARD_CONSTANTS_EVENTOBJMV_H
diff --git a/include/constants/event_objects.h b/include/constants/event_objects.h
new file mode 100644
index 000000000..d04f0a1f9
--- /dev/null
+++ b/include/constants/event_objects.h
@@ -0,0 +1,263 @@
+#ifndef GUARD_CONSTANTS_EVENT_OBJECTS_H
+#define GUARD_CONSTANTS_EVENT_OBJECTS_H
+
+#define EVENT_OBJ_GFX_BRENDAN_NORMAL 0
+#define EVENT_OBJ_GFX_BRENDAN_MACH_BIKE 1
+#define EVENT_OBJ_GFX_BRENDAN_SURFING 2
+#define EVENT_OBJ_GFX_BRENDAN_FIELD_MOVE 3
+#define EVENT_OBJ_GFX_QUINTY_PLUMP 4
+#define EVENT_OBJ_GFX_LITTLE_BOY_1 5
+#define EVENT_OBJ_GFX_LITTLE_GIRL_1 6
+#define EVENT_OBJ_GFX_BOY_1 7
+#define EVENT_OBJ_GFX_GIRL_1 8
+#define EVENT_OBJ_GFX_BOY_2 9
+#define EVENT_OBJ_GFX_GIRL_2 10
+#define EVENT_OBJ_GFX_LITTLE_BOY_2 11
+#define EVENT_OBJ_GFX_LITTLE_GIRL_2 12
+#define EVENT_OBJ_GFX_BOY_3 13
+#define EVENT_OBJ_GFX_GIRL_3 14
+#define EVENT_OBJ_GFX_BOY_4 15
+#define EVENT_OBJ_GFX_WOMAN_1 16
+#define EVENT_OBJ_GFX_FAT_MAN 17
+#define EVENT_OBJ_GFX_WOMAN_2 18
+#define EVENT_OBJ_GFX_MAN_1 19
+#define EVENT_OBJ_GFX_WOMAN_3 20
+#define EVENT_OBJ_GFX_OLD_MAN_1 21
+#define EVENT_OBJ_GFX_OLD_WOMAN_1 22
+#define EVENT_OBJ_GFX_MAN_2 23
+#define EVENT_OBJ_GFX_WOMAN_4 24
+#define EVENT_OBJ_GFX_MAN_3 25
+#define EVENT_OBJ_GFX_WOMAN_5 26
+#define EVENT_OBJ_GFX_COOK 27
+#define EVENT_OBJ_GFX_WOMAN_6 28
+#define EVENT_OBJ_GFX_OLD_MAN_2 29
+#define EVENT_OBJ_GFX_OLD_WOMAN_2 30
+#define EVENT_OBJ_GFX_CAMPER 31
+#define EVENT_OBJ_GFX_PICNICKER 32
+#define EVENT_OBJ_GFX_MAN_4 33
+#define EVENT_OBJ_GFX_WOMAN_7 34
+#define EVENT_OBJ_GFX_YOUNGSTER 35
+#define EVENT_OBJ_GFX_BUG_CATCHER 36
+#define EVENT_OBJ_GFX_PSYCHIC_M 37
+#define EVENT_OBJ_GFX_SCHOOL_KID_M 38
+#define EVENT_OBJ_GFX_MANIAC 39
+#define EVENT_OBJ_GFX_HEX_MANIAC 40
+#define EVENT_OBJ_GFX_RAYQUAZA_1 41
+#define EVENT_OBJ_GFX_SWIMMER_M 42
+#define EVENT_OBJ_GFX_SWIMMER_F 43
+#define EVENT_OBJ_GFX_BLACK_BELT 44
+#define EVENT_OBJ_GFX_BEAUTY 45
+#define EVENT_OBJ_GFX_SCIENTIST_1 46
+#define EVENT_OBJ_GFX_LASS 47
+#define EVENT_OBJ_GFX_GENTLEMAN 48
+#define EVENT_OBJ_GFX_SAILOR 49
+#define EVENT_OBJ_GFX_FISHERMAN 50
+#define EVENT_OBJ_GFX_RUNNING_TRIATHLETE_M 51
+#define EVENT_OBJ_GFX_RUNNING_TRIATHLETE_F 52
+#define EVENT_OBJ_GFX_TUBER_F 53
+#define EVENT_OBJ_GFX_TUBER_M 54
+#define EVENT_OBJ_GFX_HIKER 55
+#define EVENT_OBJ_GFX_CYCLING_TRIATHLETE_M 56
+#define EVENT_OBJ_GFX_CYCLING_TRIATHLETE_F 57
+#define EVENT_OBJ_GFX_NURSE 58
+#define EVENT_OBJ_GFX_ITEM_BALL 59
+#define EVENT_OBJ_GFX_BERRY_TREE 60
+#define EVENT_OBJ_GFX_BERRY_TREE_EARLY_STAGES 61
+#define EVENT_OBJ_GFX_BERRY_TREE_LATE_STAGES 62
+#define EVENT_OBJ_GFX_BRENDAN_ACRO_BIKE 63
+#define EVENT_OBJ_GFX_PROF_BIRCH 64
+#define EVENT_OBJ_GFX_MAN_5 65
+#define EVENT_OBJ_GFX_MAN_6 66
+#define EVENT_OBJ_GFX_REPORTER_M 67
+#define EVENT_OBJ_GFX_REPORTER_F 68
+#define EVENT_OBJ_GFX_BARD 69
+#define EVENT_OBJ_GFX_ANABEL 70
+#define EVENT_OBJ_GFX_TUCKER 71
+#define EVENT_OBJ_GFX_GRETA 72
+#define EVENT_OBJ_GFX_SPENSER 73
+#define EVENT_OBJ_GFX_NOLAND 74
+#define EVENT_OBJ_GFX_LUCY 75
+#define EVENT_OBJ_GFX_UNUSED_NATU_DOLL 76
+#define EVENT_OBJ_GFX_UNUSED_MAGNEMITE_DOLL 77
+#define EVENT_OBJ_GFX_UNUSED_SQUIRTLE_DOLL 78
+#define EVENT_OBJ_GFX_UNUSED_WOOPER_DOLL 79
+#define EVENT_OBJ_GFX_UNUSED_PIKACHU_DOLL 80
+#define EVENT_OBJ_GFX_UNUSED_PORYGON2_DOLL 81
+#define EVENT_OBJ_GFX_CUTTABLE_TREE 82
+#define EVENT_OBJ_GFX_MART_EMPLOYEE 83
+#define EVENT_OBJ_GFX_ROOFTOP_SALE_WOMAN 84
+#define EVENT_OBJ_GFX_TEALA 85
+#define EVENT_OBJ_GFX_BREAKABLE_ROCK 86
+#define EVENT_OBJ_GFX_PUSHABLE_BOULDER 87
+#define EVENT_OBJ_GFX_MR_BRINEYS_BOAT 88
+#define EVENT_OBJ_GFX_MAY_NORMAL 89
+#define EVENT_OBJ_GFX_MAY_MACH_BIKE 90
+#define EVENT_OBJ_GFX_MAY_ACRO_BIKE 91
+#define EVENT_OBJ_GFX_MAY_SURFING 92
+#define EVENT_OBJ_GFX_MAY_FIELD_MOVE 93
+#define EVENT_OBJ_GFX_TRUCK 94
+#define EVENT_OBJ_GFX_VIGAROTH_CARRYING_BOX 95
+#define EVENT_OBJ_GFX_VIGAROTH_FACING_AWAY 96
+#define EVENT_OBJ_GFX_BIRCHS_BAG 97
+#define EVENT_OBJ_GFX_ZIGZAGOON_1 98
+#define EVENT_OBJ_GFX_ARTIST 99
+#define EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL 100
+#define EVENT_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE 101
+#define EVENT_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE 102
+#define EVENT_OBJ_GFX_RIVAL_BRENDAN_SURFING 103
+#define EVENT_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE 104
+#define EVENT_OBJ_GFX_RIVAL_MAY_NORMAL 105
+#define EVENT_OBJ_GFX_RIVAL_MAY_MACH_BIKE 106
+#define EVENT_OBJ_GFX_RIVAL_MAY_ACRO_BIKE 107
+#define EVENT_OBJ_GFX_RIVAL_MAY_SURFING 108
+#define EVENT_OBJ_GFX_RIVAL_MAY_FIELD_MOVE 109
+#define EVENT_OBJ_GFX_CAMERAMAN 110
+#define EVENT_OBJ_GFX_BRENDAN_UNDERWATER 111
+#define EVENT_OBJ_GFX_MAY_UNDERWATER 112
+#define EVENT_OBJ_GFX_MOVING_BOX 113
+#define EVENT_OBJ_GFX_CABLE_CAR 114
+#define EVENT_OBJ_GFX_SCIENTIST_2 115
+#define EVENT_OBJ_GFX_MAN_7 116
+#define EVENT_OBJ_GFX_AQUA_MEMBER_M 117
+#define EVENT_OBJ_GFX_AQUA_MEMBER_F 118
+#define EVENT_OBJ_GFX_MAGMA_MEMBER_M 119
+#define EVENT_OBJ_GFX_MAGMA_MEMBER_F 120
+#define EVENT_OBJ_GFX_SIDNEY 121
+#define EVENT_OBJ_GFX_PHOEBE 122
+#define EVENT_OBJ_GFX_GLACIA 123
+#define EVENT_OBJ_GFX_DRAKE 124
+#define EVENT_OBJ_GFX_ROXANNE 125
+#define EVENT_OBJ_GFX_BRAWLY 126
+#define EVENT_OBJ_GFX_WATTSON 127
+#define EVENT_OBJ_GFX_FLANNERY 128
+#define EVENT_OBJ_GFX_NORMAN 129
+#define EVENT_OBJ_GFX_WINONA 130
+#define EVENT_OBJ_GFX_LIZA 131
+#define EVENT_OBJ_GFX_TATE 132
+#define EVENT_OBJ_GFX_WALLACE 133
+#define EVENT_OBJ_GFX_STEVEN 134
+#define EVENT_OBJ_GFX_WALLY 135
+#define EVENT_OBJ_GFX_LITTLE_BOY_3 136
+#define EVENT_OBJ_GFX_BRENDAN_FISHING 137
+#define EVENT_OBJ_GFX_MAY_FISHING 138
+#define EVENT_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN 139
+#define EVENT_OBJ_GFX_SS_TIDAL 140
+#define EVENT_OBJ_GFX_SUBMARINE_SHADOW 141
+#define EVENT_OBJ_GFX_PICHU_DOLL 142
+#define EVENT_OBJ_GFX_PIKACHU_DOLL 143
+#define EVENT_OBJ_GFX_MARILL_DOLL 144
+#define EVENT_OBJ_GFX_TOGEPI_DOLL 145
+#define EVENT_OBJ_GFX_CYNDAQUIL_DOLL 146
+#define EVENT_OBJ_GFX_CHIKORITA_DOLL 147
+#define EVENT_OBJ_GFX_TOTODILE_DOLL 148
+#define EVENT_OBJ_GFX_JIGGLYPUFF_DOLL 149
+#define EVENT_OBJ_GFX_MEOWTH_DOLL 150
+#define EVENT_OBJ_GFX_CLEFAIRY_DOLL 151
+#define EVENT_OBJ_GFX_DITTO_DOLL 152
+#define EVENT_OBJ_GFX_SMOOCHUM_DOLL 153
+#define EVENT_OBJ_GFX_TREECKO_DOLL 154
+#define EVENT_OBJ_GFX_TORCHIC_DOLL 155
+#define EVENT_OBJ_GFX_MUDKIP_DOLL 156
+#define EVENT_OBJ_GFX_DUSKULL_DOLL 157
+#define EVENT_OBJ_GFX_WYNAUT_DOLL 158
+#define EVENT_OBJ_GFX_BALTOY_DOLL 159
+#define EVENT_OBJ_GFX_KECLEON_DOLL 160
+#define EVENT_OBJ_GFX_AZURILL_DOLL 161
+#define EVENT_OBJ_GFX_SKITTY_DOLL 162
+#define EVENT_OBJ_GFX_SWABLU_DOLL 163
+#define EVENT_OBJ_GFX_GULPIN_DOLL 164
+#define EVENT_OBJ_GFX_LOTAD_DOLL 165
+#define EVENT_OBJ_GFX_SEEDOT_DOLL 166
+#define EVENT_OBJ_GFX_PIKA_CUSHION 167
+#define EVENT_OBJ_GFX_ROUND_CUSHION 168
+#define EVENT_OBJ_GFX_KISS_CUSHION 169
+#define EVENT_OBJ_GFX_ZIGZAG_CUSHION 170
+#define EVENT_OBJ_GFX_SPIN_CUSHION 171
+#define EVENT_OBJ_GFX_DIAMOND_CUSHION 172
+#define EVENT_OBJ_GFX_BALL_CUSHION 173
+#define EVENT_OBJ_GFX_GRASS_CUSHION 174
+#define EVENT_OBJ_GFX_FIRE_CUSHION 175
+#define EVENT_OBJ_GFX_WATER_CUSHION 176
+#define EVENT_OBJ_GFX_BIG_SNORLAX_DOLL 177
+#define EVENT_OBJ_GFX_BIG_RHYDON_DOLL 178
+#define EVENT_OBJ_GFX_BIG_LAPRAS_DOLL 179
+#define EVENT_OBJ_GFX_BIG_VENUSAUR_DOLL 180
+#define EVENT_OBJ_GFX_BIG_CHARIZARD_DOLL 181
+#define EVENT_OBJ_GFX_BIG_BLASTOISE_DOLL 182
+#define EVENT_OBJ_GFX_BIG_WAILMER_DOLL 183
+#define EVENT_OBJ_GFX_BIG_REGIROCK_DOLL 184
+#define EVENT_OBJ_GFX_BIG_REGICE_DOLL 185
+#define EVENT_OBJ_GFX_BIG_REGISTEEL_DOLL 186
+#define EVENT_OBJ_GFX_LATIAS 187
+#define EVENT_OBJ_GFX_LATIOS 188
+#define EVENT_OBJ_GFX_BOY_5 189
+#define EVENT_OBJ_GFX_CONTEST_JUDGE 190
+#define EVENT_OBJ_GFX_BRENDAN_WATERING 191
+#define EVENT_OBJ_GFX_MAY_WATERING 192
+#define EVENT_OBJ_GFX_BRENDAN_DECORATING 193
+#define EVENT_OBJ_GFX_MAY_DECORATING 194
+#define EVENT_OBJ_GFX_ARCHIE 195
+#define EVENT_OBJ_GFX_MAXIE 196
+#define EVENT_OBJ_GFX_KYOGRE_1 197
+#define EVENT_OBJ_GFX_GROUDON_1 198
+#define EVENT_OBJ_GFX_FOSSIL 199
+#define EVENT_OBJ_GFX_REGIROCK 200
+#define EVENT_OBJ_GFX_REGICE 201
+#define EVENT_OBJ_GFX_REGISTEEL 202
+#define EVENT_OBJ_GFX_SKITTY 203
+#define EVENT_OBJ_GFX_KECLEON_1 204
+#define EVENT_OBJ_GFX_KYOGRE_2 205
+#define EVENT_OBJ_GFX_GROUDON_2 206
+#define EVENT_OBJ_GFX_RAYQUAZA_2 207
+#define EVENT_OBJ_GFX_ZIGZAGOON_2 208
+#define EVENT_OBJ_GFX_PIKACHU 209
+#define EVENT_OBJ_GFX_AZUMARILL 210
+#define EVENT_OBJ_GFX_WINGULL 211
+#define EVENT_OBJ_GFX_KECLEON_2 212
+#define EVENT_OBJ_GFX_TUBER_M_SWIMMING 213
+#define EVENT_OBJ_GFX_AZURILL 214
+#define EVENT_OBJ_GFX_MOM 215
+#define EVENT_OBJ_GFX_LINK_BRENDAN 216
+#define EVENT_OBJ_GFX_LINK_MAY 217
+#define EVENT_OBJ_GFX_JUAN 218
+#define EVENT_OBJ_GFX_SCOTT 219
+#define EVENT_OBJ_GFX_POOCHYENA 220
+#define EVENT_OBJ_GFX_KYOGRE_3 221
+#define EVENT_OBJ_GFX_GROUDON_3 222
+#define EVENT_OBJ_GFX_MYSTERY_GIFT_MAN 223
+#define EVENT_OBJ_GFX_TRICK_HOUSE_STATUE 224
+#define EVENT_OBJ_GFX_KIRLIA 225
+#define EVENT_OBJ_GFX_DUSCLOPS 226
+#define EVENT_OBJ_GFX_UNION_ROOM_NURSE 227
+#define EVENT_OBJ_GFX_SUDOWOODO 228
+#define EVENT_OBJ_GFX_MEW 229
+#define EVENT_OBJ_GFX_RED 230
+#define EVENT_OBJ_GFX_LEAF 231
+#define EVENT_OBJ_GFX_DEOXYS 232
+#define EVENT_OBJ_GFX_DEOXYS_TRIANGLE 233
+#define EVENT_OBJ_GFX_BRANDON 234
+#define EVENT_OBJ_GFX_LINK_RS_BRENDAN 235
+#define EVENT_OBJ_GFX_LINK_RS_MAY 236
+#define EVENT_OBJ_GFX_LUGIA 237
+#define EVENT_OBJ_GFX_HOOH 238
+#define EVENT_OBJ_GFX_BARD_2 239
+#define EVENT_OBJ_GFX_HIPSTER 240
+#define EVENT_OBJ_GFX_TRADER 241
+#define EVENT_OBJ_GFX_STORYTELLER 242
+#define EVENT_OBJ_GFX_GIDDY 243
+#define EVENT_OBJ_GFX_PLACEHOLDER_1 244
+#define EVENT_OBJ_GFX_PLACEHOLDER_2 245
+
+#define SHADOW_SIZE_S 0
+#define SHADOW_SIZE_M 1
+#define SHADOW_SIZE_L 2
+#define SHADOW_SIZE_XL 3
+
+#define F_INANIMATE (1 << 6)
+#define F_DISABLE_REFLECTION_PALETTE_LOAD (1 << 7)
+
+#define TRACKS_NONE 0
+#define TRACKS_FOOT 1
+#define TRACKS_BIKE_TIRE 2
+
+#endif // GUARD_CONSTANTS_EVENT_OBJECTS_H
diff --git a/include/constants/flags.h b/include/constants/flags.h
index 7f52018a1..6c1400410 100644
--- a/include/constants/flags.h
+++ b/include/constants/flags.h
@@ -199,7 +199,7 @@
#define FLAG_0x0C4 0xC4
#define FLAG_0x0C5 0xC5
#define FLAG_0x0C6 0xC6
-#define FLAG_0x0C7 0xC7
+#define FLAG_RUSTURF_TUNNEL_OPENED 0xC7
#define FLAG_0x0C8 0xC8
#define FLAG_0x0C9 0xC9
#define FLAG_0x0CA 0xCA
@@ -348,6 +348,7 @@
#define FLAG_0x159 0x159
#define FLAG_0x15A 0x15A
#define FLAG_0x15B 0x15B
+
#define FLAG_MATCH_CALL_REGISTERED 0x15C
#define FLAG_0x15D 0x15D
#define FLAG_0x15E 0x15E
@@ -531,10 +532,10 @@
#define FLAG_0x210 0x210
#define FLAG_0x211 0x211
#define FLAG_0x212 0x212
-#define FLAG_0x213 0x213
-#define FLAG_0x214 0x214
-#define FLAG_0x215 0x215
-#define FLAG_0x216 0x216
+#define FLAG_HIDDEN_ITEM_1F 0x213
+#define FLAG_HIDDEN_ITEM_20 0x214
+#define FLAG_HIDDEN_ITEM_21 0x215
+#define FLAG_HIDDEN_ITEM_22 0x216
#define FLAG_0x217 0x217
#define FLAG_0x218 0x218
#define FLAG_0x219 0x219
@@ -596,7 +597,7 @@
#define FLAG_0x251 0x251
#define FLAG_0x252 0x252
#define FLAG_0x253 0x253
-#define FLAG_0x254 0x254
+#define FLAG_HIDDEN_ITEM_BLACK_GLASSES 0x254
#define FLAG_0x255 0x255
#define FLAG_0x256 0x256
#define FLAG_0x257 0x257
@@ -789,10 +790,10 @@
#define FLAG_0x312 0x312
#define FLAG_0x313 0x313
#define FLAG_0x314 0x314
-#define FLAG_0x315 0x315
-#define FLAG_0x316 0x316
-#define FLAG_0x317 0x317
-#define FLAG_0x318 0x318
+#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_0x319 0x319
#define FLAG_0x31A 0x31A
#define FLAG_0x31B 0x31B
@@ -931,8 +932,8 @@
#define FLAG_0x3A0 0x3A0
#define FLAG_0x3A1 0x3A1
#define FLAG_0x3A2 0x3A2
-#define FLAG_0x3A3 0x3A3
-#define FLAG_0x3A4 0x3A4
+#define FLAG_HIDE_RUSTURF_TUNNEL_ROCK_1 0x3A3
+#define FLAG_HIDE_RUSTURF_TUNNEL_ROCK_2 0x3A4
#define FLAG_0x3A5 0x3A5
#define FLAG_0x3A6 0x3A6
#define FLAG_0x3A7 0x3A7
diff --git a/include/constants/heal_locations.h b/include/constants/heal_locations.h
new file mode 100644
index 000000000..64c8956a9
--- /dev/null
+++ b/include/constants/heal_locations.h
@@ -0,0 +1,27 @@
+#ifndef GUARD_CONSTANTS_HEAL_LOCATIONS_H
+#define GUARD_CONSTANTS_HEAL_LOCATIONS_H
+
+#define HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F 1
+#define HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE_2F 2
+#define HEAL_LOCATION_PETALBURG_CITY 3
+#define HEAL_LOCATION_SLATEPORT_CITY 4
+#define HEAL_LOCATION_MAUVILLE_CITY 5
+#define HEAL_LOCATION_RUSTBORO_CITY 6
+#define HEAL_LOCATION_FORTREE_CITY 7
+#define HEAL_LOCATION_LILYCOVE_CITY 8
+#define HEAL_LOCATION_MOSSDEEP_CITY 9
+#define HEAL_LOCATION_SOOTOPOLIS_CITY 10
+#define HEAL_LOCATION_EVER_GRANDE_CITY_1 11
+#define HEAL_LOCATION_LITTLEROOT_TOWN_1 12
+#define HEAL_LOCATION_LITTLEROOT_TOWN_2 13
+#define HEAL_LOCATION_OLDALE_TOWN 14
+#define HEAL_LOCATION_DEWFORD_TOWN 15
+#define HEAL_LOCATION_LAVARIDGE_TOWN 16
+#define HEAL_LOCATION_FALLARBOR_TOWN 17
+#define HEAL_LOCATION_VERDANTURF_TOWN 18
+#define HEAL_LOCATION_PACIFIDLOG_TOWN 19
+#define HEAL_LOCATION_EVER_GRANDE_CITY_2 20
+#define HEAL_LOCATION_SOUTHERN_ISLAND_EXTERIOR 21
+#define HEAL_LOCATION_BATTLE_FRONTIER_OUTSIDE_EAST 22
+
+#endif // GUARD_CONSTANTS_HEAL_LOCATIONS_H
diff --git a/include/constants/items.h b/include/constants/items.h
index 8717ecbd5..294499c8b 100644
--- a/include/constants/items.h
+++ b/include/constants/items.h
@@ -108,6 +108,8 @@
#define ITEM_064 100
#define ITEM_065 101
#define ITEM_066 102
+
+// Unusable
#define ITEM_TINY_MUSHROOM 103
#define ITEM_BIG_MUSHROOM 104
#define ITEM_069 105
@@ -126,6 +128,8 @@
#define ITEM_076 118
#define ITEM_077 119
#define ITEM_078 120
+
+// Mails
#define ITEM_ORANGE_MAIL 121
#define ITEM_HARBOR_MAIL 122
#define ITEM_GLITTER_MAIL 123
@@ -138,6 +142,8 @@
#define ITEM_DREAM_MAIL 130
#define ITEM_FAB_MAIL 131
#define ITEM_RETRO_MAIL 132
+
+// Berries
#define ITEM_CHERI_BERRY 133
#define ITEM_CHESTO_BERRY 134
#define ITEM_PECHA_BERRY 135
@@ -185,7 +191,7 @@
#define ITEM_0B1 177
#define ITEM_0B2 178
-// hold items
+// Battle Held items
#define ITEM_BRIGHT_POWDER 179
#define ITEM_WHITE_HERB 180
#define ITEM_MACHO_BRACE 181
@@ -261,6 +267,8 @@
#define ITEM_0FB 251
#define ITEM_0FC 252
#define ITEM_0FD 253
+
+// Contest held items
#define ITEM_RED_SCARF 254
#define ITEM_BLUE_SCARF 255
#define ITEM_PINK_SCARF 256
@@ -454,8 +462,8 @@
#define ITEM_MAGMA_EMBLEM 375
#define ITEM_OLD_SEA_MAP 376
-#define ITEM_LAST_ID 376
-#define ITEM_FIELD_ARROW ITEM_LAST_ID + 1
+#define ITEMS_COUNT 377
+#define ITEM_FIELD_ARROW ITEMS_COUNT
#define FIRST_BERRY_INDEX ITEM_CHERI_BERRY
#define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY
diff --git a/include/constants/map_objects.h b/include/constants/map_objects.h
deleted file mode 100644
index d5b983005..000000000
--- a/include/constants/map_objects.h
+++ /dev/null
@@ -1,263 +0,0 @@
-#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_RAYQUAZA_1 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_ANABEL 70
-#define MAP_OBJ_GFX_TUCKER 71
-#define MAP_OBJ_GFX_GRETA 72
-#define MAP_OBJ_GFX_SPENSER 73
-#define MAP_OBJ_GFX_NOLAND 74
-#define MAP_OBJ_GFX_LUCY 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_VIGAROTH_CARRYING_BOX 95
-#define MAP_OBJ_GFX_VIGAROTH_FACING_AWAY 96
-#define MAP_OBJ_GFX_BIRCHS_BAG 97
-#define MAP_OBJ_GFX_ZIGZAGOON_1 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_2 207
-#define MAP_OBJ_GFX_ZIGZAGOON_2 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
-#define MAP_OBJ_GFX_JUAN 218
-#define MAP_OBJ_GFX_SCOTT 219
-#define MAP_OBJ_GFX_POOCHYENA 220
-#define MAP_OBJ_GFX_KYOGRE_3 221
-#define MAP_OBJ_GFX_GROUDON_3 222
-#define MAP_OBJ_GFX_MYSTERY_GIFT_MAN 223
-#define MAP_OBJ_GFX_TRICK_HOUSE_STATUE 224
-#define MAP_OBJ_GFX_KIRLIA 225
-#define MAP_OBJ_GFX_DUSCLOPS 226
-#define MAP_OBJ_GFX_UNION_ROOM_NURSE 227
-#define MAP_OBJ_GFX_SUDOWOODO 228
-#define MAP_OBJ_GFX_MEW 229
-#define MAP_OBJ_GFX_RED 230
-#define MAP_OBJ_GFX_LEAF 231
-#define MAP_OBJ_GFX_DEOXYS 232
-#define MAP_OBJ_GFX_DEOXYS_TRIANGLE 233
-#define MAP_OBJ_GFX_BRANDON 234
-#define MAP_OBJ_GFX_LINK_RS_BRENDAN 235
-#define MAP_OBJ_GFX_LINK_RS_MAY 236
-#define MAP_OBJ_GFX_LUGIA 237
-#define MAP_OBJ_GFX_HOOH 238
-#define MAP_OBJ_GFX_BARD_2 239
-#define MAP_OBJ_GFX_HIPSTER 240
-#define MAP_OBJ_GFX_TRADER 241
-#define MAP_OBJ_GFX_STORYTELLER 242
-#define MAP_OBJ_GFX_GIDDY 243
-#define MAP_OBJ_GFX_PLACEHOLDER_1 244
-#define MAP_OBJ_GFX_PLACEHOLDER_2 245
-
-#define SHADOW_SIZE_S 0
-#define SHADOW_SIZE_M 1
-#define SHADOW_SIZE_L 2
-#define SHADOW_SIZE_XL 3
-
-#define F_INANIMATE (1 << 6)
-#define F_DISABLE_REFLECTION_PALETTE_LOAD (1 << 7)
-
-#define TRACKS_NONE 0
-#define TRACKS_FOOT 1
-#define TRACKS_BIKE_TIRE 2
-
-#endif // GUARD_CONSTANTS_MAP_OBJECTS_H
diff --git a/include/constants/map_types.h b/include/constants/map_types.h
new file mode 100755
index 000000000..504575859
--- /dev/null
+++ b/include/constants/map_types.h
@@ -0,0 +1,25 @@
+#ifndef GUARD_CONSTANTS_MAP_TYPES_H
+#define GUARD_CONSTANTS_MAP_TYPES_H
+
+#define MAP_TYPE_0 0
+#define MAP_TYPE_TOWN 1
+#define MAP_TYPE_CITY 2
+#define MAP_TYPE_ROUTE 3
+#define MAP_TYPE_UNDERGROUND 4
+#define MAP_TYPE_UNDERWATER 5
+#define MAP_TYPE_6 6
+#define MAP_TYPE_7 7
+#define MAP_TYPE_INDOOR 8
+#define MAP_TYPE_SECRET_BASE 9
+
+#define MAP_BATTLE_SCENE_NORMAL 0
+#define MAP_BATTLE_SCENE_GYM 1
+#define MAP_BATTLE_SCENE_MAGMA 2
+#define MAP_BATTLE_SCENE_AQUA 3
+#define MAP_BATTLE_SCENE_SIDNEY 4
+#define MAP_BATTLE_SCENE_PHOEBE 5
+#define MAP_BATTLE_SCENE_GLACIA 6
+#define MAP_BATTLE_SCENE_DRAKE 7
+#define MAP_BATTLE_SCENE_FRONTIER 8
+
+#endif // GUARD_CONSTANTS_MAP_TYPES_H
diff --git a/include/constants/maps.h b/include/constants/maps.h
index fb1cb82a8..bcb778422 100644
--- a/include/constants/maps.h
+++ b/include/constants/maps.h
@@ -228,21 +228,21 @@
#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))
-#define MAP_SOOTOPOLIS_CITY_HOUSE9_1F (13 | (15 << 8))
-#define MAP_SOOTOPOLIS_CITY_HOUSE9_B1F (14 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_GYM_1F (0 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_GYM_B1F (1 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F (2 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F (3 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_MART (4 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE1 (5 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE2 (6 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE3 (7 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE4 (8 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE5 (9 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE6 (10 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_HOUSE7 (11 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_LOTAD_AND_SEEDOT_HOUSE (12 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F (13 | (15 << 8))
+#define MAP_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_B1F (14 | (15 << 8))
// Map Group 16
#define MAP_EVER_GRANDE_CITY_SIDNEYS_ROOM (0 | (16 << 8))
@@ -250,11 +250,11 @@
#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_HALL1 (5 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_HALL2 (6 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_HALL3 (7 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_HALL4 (8 | (16 << 8))
+#define MAP_EVER_GRANDE_CITY_HALL5 (9 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F (10 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_HALL_OF_FAME (11 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_1F (12 | (16 << 8))
@@ -327,9 +327,9 @@
#define MAP_SEAFLOOR_CAVERN_ROOM9 (36 | (24 << 8))
#define MAP_CAVE_OF_ORIGIN_ENTRANCE (37 | (24 << 8))
#define MAP_CAVE_OF_ORIGIN_1F (38 | (24 << 8))
-#define MAP_CAVE_OF_ORIGIN_UNUSED_RS_B1F (39 | (24 << 8)) //
-#define MAP_CAVE_OF_ORIGIN_UNUSED_RS_B2F (40 | (24 << 8)) // Ruby/Sapphire leftovers
-#define MAP_CAVE_OF_ORIGIN_UNUSED_RS_B3F (41 | (24 << 8)) //
+#define MAP_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP1 (39 | (24 << 8)) //
+#define MAP_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP2 (40 | (24 << 8)) // Ruby/Sapphire leftovers
+#define MAP_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP3 (41 | (24 << 8)) //
#define MAP_CAVE_OF_ORIGIN_B1F (42 | (24 << 8))
#define MAP_VICTORY_ROAD_1F (43 | (24 << 8))
#define MAP_VICTORY_ROAD_B1F (44 | (24 << 8))
@@ -442,29 +442,29 @@
#define MAP_SS_TIDAL_CORRIDOR (41 | (25 << 8))
#define MAP_SS_TIDAL_LOWER_DECK (42 | (25 << 8))
#define MAP_SS_TIDAL_ROOMS (43 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_01 (44 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_02 (45 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_03 (46 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_04 (47 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_05 (48 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_06 (49 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_07 (50 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_08 (51 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_09 (52 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_10 (53 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_11 (54 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_12 (55 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_13 (56 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_14 (57 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_15 (58 | (25 << 8))
-#define MAP_BATTLE_PYRAMID_SQUARE_16 (59 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE01 (44 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE02 (45 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE03 (46 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE04 (47 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE05 (48 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE06 (49 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE07 (50 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE08 (51 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE09 (52 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE10 (53 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE11 (54 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE12 (55 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE13 (56 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE14 (57 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE15 (58 | (25 << 8))
+#define MAP_BATTLE_PYRAMID_SQUARE16 (59 | (25 << 8))
#define MAP_UNION_ROOM (60 | (25 << 8))
// Map Group 26
#define MAP_SAFARI_ZONE_NORTHWEST (0 | (26 << 8))
-#define MAP_SAFARI_ZONE_NORTHEAST (1 | (26 << 8))
+#define MAP_SAFARI_ZONE_NORTH (1 | (26 << 8))
#define MAP_SAFARI_ZONE_SOUTHWEST (2 | (26 << 8))
-#define MAP_SAFARI_ZONE_SOUTHEAST (3 | (26 << 8))
+#define MAP_SAFARI_ZONE_SOUTH (3 | (26 << 8))
#define MAP_BATTLE_FRONTIER_OUTSIDE_WEST (4 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY (5 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_ELEVATOR (6 | (26 << 8))
@@ -473,12 +473,12 @@
#define MAP_SOUTHERN_ISLAND_EXTERIOR (9 | (26 << 8))
#define MAP_SOUTHERN_ISLAND_INTERIOR (10 | (26 << 8))
#define MAP_SAFARI_ZONE_REST_HOUSE (11 | (26 << 8))
-#define MAP_SAFARI_ZONE_EM_1 (12 | (26 << 8))
-#define MAP_SAFARI_ZONE_EM_2 (13 | (26 << 8))
+#define MAP_SAFARI_ZONE_NORTHEAST (12 | (26 << 8))
+#define MAP_SAFARI_ZONE_SOUTHEAST (13 | (26 << 8))
#define MAP_BATTLE_FRONTIER_OUTSIDE_EAST (14 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM (15 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR_2 (16 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM_2 (17 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR2 (16 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM2 (17 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY (18 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR (19 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM (20 | (26 << 8))
@@ -498,22 +498,22 @@
#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY (34 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR (35 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM (36 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM_1 (37 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM_2 (38 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM_3 (39 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1 (37 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM2 (38 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3 (39 | (26 << 8))
#define MAP_BATTLE_FRONTIER_RANKING_HALL (40 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE_1 (41 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE1 (41 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_POINT_EXCHANGE_SERVICE_CORNER (42 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE_2 (43 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE_3 (44 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE_4 (45 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE2 (43 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE3 (44 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE4 (45 | (26 << 8))
#define MAP_BATTLE_FRONTIER_SCOTTS_HOUSE (46 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE_5 (47 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE_6 (48 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE_7 (49 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE5 (47 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE6 (48 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE7 (49 | (26 << 8))
#define MAP_BATTLE_FRONTIER_RECEPTION_GATE (50 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE_8 (51 | (26 << 8))
-#define MAP_BATTLE_FRONTIER_LOUNGE_9 (52 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE8 (51 | (26 << 8))
+#define MAP_BATTLE_FRONTIER_LOUNGE9 (52 | (26 << 8))
#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_1F (53 | (26 << 8))
#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_2F (54 | (26 << 8))
#define MAP_BATTLE_FRONTIER_MART (55 | (26 << 8))
@@ -530,24 +530,24 @@
#define MAP_NAVEL_ROCK_EXTERIOR (66 | (26 << 8))
#define MAP_NAVEL_ROCK_HARBOR (67 | (26 << 8))
#define MAP_NAVEL_ROCK_ENTRANCE (68 | (26 << 8))
-#define MAP_NAVEL_ROCK_B1F (69 | (26 << 8))
-#define MAP_NAVEL_ROCK_FORK (70 | (26 << 8))
-#define MAP_NAVEL_ROCK_UP_1 (71 | (26 << 8))
-#define MAP_NAVEL_ROCK_UP_2 (72 | (26 << 8))
-#define MAP_NAVEL_ROCK_UP_3 (73 | (26 << 8))
-#define MAP_NAVEL_ROCK_UP_4 (74 | (26 << 8))
-#define MAP_NAVEL_ROCK_TOP (75 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN_01 (76 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN_02 (77 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN_03 (78 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN_04 (79 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN_05 (80 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN_06 (81 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN_07 (82 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN_08 (83 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN_09 (84 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN_10 (85 | (26 << 8))
-#define MAP_NAVEL_ROCK_DOWN_11 (86 | (26 << 8))
+#define MAP_NAVEL_ROCK_B1F (69 | (26 << 8))
+#define MAP_NAVEL_ROCK_FORK (70 | (26 << 8))
+#define MAP_NAVEL_ROCK_UP1 (71 | (26 << 8))
+#define MAP_NAVEL_ROCK_UP2 (72 | (26 << 8))
+#define MAP_NAVEL_ROCK_UP3 (73 | (26 << 8))
+#define MAP_NAVEL_ROCK_UP4 (74 | (26 << 8))
+#define MAP_NAVEL_ROCK_TOP (75 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN01 (76 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN02 (77 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN03 (78 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN04 (79 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN05 (80 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN06 (81 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN07 (82 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN08 (83 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN09 (84 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN10 (85 | (26 << 8))
+#define MAP_NAVEL_ROCK_DOWN11 (86 | (26 << 8))
#define MAP_NAVEL_ROCK_BOTTOM (87 | (26 << 8))
#define MAP_TRAINER_HILL_ELEVATOR (88 | (26 << 8))
@@ -570,8 +570,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))
+#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE (11 | (29 << 8))
+#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE (12 | (29 << 8))
// Map Group 30
#define MAP_ROUTE113_GLASS_WORKSHOP (0 | (30 << 8))
diff --git a/include/constants/moves.h b/include/constants/moves.h
index f3a3acb90..85c02e3da 100644
--- a/include/constants/moves.h
+++ b/include/constants/moves.h
@@ -357,6 +357,6 @@
#define MOVE_DOOM_DESIRE 353
#define MOVE_PSYCHO_BOOST 354
-#define LAST_MOVE_INDEX MOVE_PSYCHO_BOOST
+#define MOVES_COUNT 355
#endif // GUARD_CONSTANTS_MOVES_H
diff --git a/include/constants/opponents.h b/include/constants/opponents.h
index 680a63763..9f74baf67 100644
--- a/include/constants/opponents.h
+++ b/include/constants/opponents.h
@@ -1,860 +1,862 @@
#ifndef GUARD_CONSTANTS_OPPONENTS_H
#define GUARD_CONSTANTS_OPPONENTS_H
-#define OPPONENT_NONE 0
-#define OPPONENT_SAWYER_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_GABRIELLE_1 9
-#define OPPONENT_GRUNT_8 10
-#define OPPONENT_MARCEL 11
-#define OPPONENT_ALBERTO 12
-#define OPPONENT_ED 13
-#define OPPONENT_GRUNT_9 14
-#define OPPONENT_DECLAN 15
-#define OPPONENT_GRUNT_10 16
-#define OPPONENT_GRUNT_11 17
-#define OPPONENT_GRUNT_12 18
-#define OPPONENT_GRUNT_13 19
-#define OPPONENT_GRUNT_14 20
-#define OPPONENT_GRUNT_15 21
-#define OPPONENT_GRUNT_16 22
-#define OPPONENT_GRUNT_17 23
-#define OPPONENT_GRUNT_18 24
-#define OPPONENT_GRUNT_19 25
-#define OPPONENT_GRUNT_20 26
-#define OPPONENT_GRUNT_21 27
-#define OPPONENT_GRUNT_22 28
-#define OPPONENT_FREDRICK 29
-#define OPPONENT_MATT_1 30
-#define OPPONENT_ZANDER 31
-#define OPPONENT_SHELLY_1 32
-#define OPPONENT_SHELLY_2 33
-#define OPPONENT_ARCHIE 34
-#define OPPONENT_LEAH 35
-#define OPPONENT_DAISY 36
-#define OPPONENT_ROSE_1 37
-#define OPPONENT_FELIX 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_AUSTINA 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_BRAXTON 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_ALEXIA 90
-#define OPPONENT_JODY 91
-#define OPPONENT_WENDY 92
-#define OPPONENT_KEIRA 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_DAPHNE 115
-#define OPPONENT_GRUNT_23 116
-#define OPPONENT_CINDY_2 117
-#define OPPONENT_BRIANNA 118
-#define OPPONENT_NAOMI 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_MOLLIE 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_THALIA_1 144
-#define OPPONENT_MARK 145
-#define OPPONENT_GRUNT_24 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_DOMINIK 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_NOLEN 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_SANTIAGO 168
-#define OPPONENT_GILBERT 169
-#define OPPONENT_FRANKLIN 170
-#define OPPONENT_KEVIN 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_TAKAO 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_GRUNT_25 192
-#define OPPONENT_GRUNT_26 193
-#define OPPONENT_SHAWN 194
-#define OPPONENT_FERNANDO_1 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_JEFF 202
-#define OPPONENT_AXLE 203
-#define OPPONENT_JACE 204
-#define OPPONENT_KEEGAN 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_BEAU 212
-#define OPPONENT_LARRY 213
-#define OPPONENT_SHANE 214
-#define OPPONENT_JUSTIN 215
-#define OPPONENT_ETHAN_1 216
-#define OPPONENT_AUTUMN 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_JEFFREY_1 226
-#define OPPONENT_DEREK 227
-#define OPPONENT_JEFFREY_2 228
-#define OPPONENT_JEFFREY_3 229
-#define OPPONENT_JEFFREY_4 230
-#define OPPONENT_JEFFREY_5 231
-#define OPPONENT_EDWARD 232
-#define OPPONENT_PRESTON 233
-#define OPPONENT_VIRGIL 234
-#define OPPONENT_BLAKE 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_MICAH 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_1 265
-#define OPPONENT_BRAWLY_1 266
-#define OPPONENT_WATTSON_1 267
-#define OPPONENT_FLANNERY_1 268
-#define OPPONENT_NORMAN_1 269
-#define OPPONENT_WINONA_1 270
-#define OPPONENT_TATE_AND_LIZA_1 271
-#define OPPONENT_JUAN_1 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_BETHANY 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_QUINCY 324
-#define OPPONENT_KATELYNN 325
-#define OPPONENT_JAYLEN 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_WALLACE 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_CAMDEN 374
-#define OPPONENT_DEMETRIUS 375
-#define OPPONENT_ISAIAH_1 376
-#define OPPONENT_PABLO_1 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_ISOBEL 383
-#define OPPONENT_DONNY 384
-#define OPPONENT_TALIA 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_HUMBERTO 402
-#define OPPONENT_PRESLEY 403
-#define OPPONENT_EDWARDO 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_DIANNE 417
-#define OPPONENT_JANI 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_JOCELYN 425
-#define OPPONENT_LAURA 426
-#define OPPONENT_CYNDY_1 427
-#define OPPONENT_CORA 428
-#define OPPONENT_PAULA 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_IMANI 442
-#define OPPONENT_KYLA 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_SIENNA 459
-#define OPPONENT_DEBRA 460
-#define OPPONENT_LINDA 461
-#define OPPONENT_KAYLEE 462
-#define OPPONENT_LAUREL 463
-#define OPPONENT_CARLEE 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_CEDRIC 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_ELI 501
-#define OPPONENT_ANNIKA 502
-#define OPPONENT_JAZMYN 503
-#define OPPONENT_JONAS 504
-#define OPPONENT_KAYLEY 505
-#define OPPONENT_AURON 506
-#define OPPONENT_KELVIN 507
-#define OPPONENT_MARLEY 508
-#define OPPONENT_REYNA 509
-#define OPPONENT_HUDSON 510
-#define OPPONENT_CONOR 511
-#define OPPONENT_EDWIN_1 512
-#define OPPONENT_HECTOR 513
-#define OPPONENT_TABITHA_1 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_DAVIS 539
-#define OPPONENT_MITCHELL 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_HALLE 546
-#define OPPONENT_GARRISON 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_LORENZO 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_JULIO 566
-#define OPPONENT_GRUNT_27 567
-#define OPPONENT_GRUNT_28 568
-#define OPPONENT_GRUNT_29 569
-#define OPPONENT_GRUNT_30 570
-#define OPPONENT_MARC 571
-#define OPPONENT_BRENDEN 572
-#define OPPONENT_LILITH 573
-#define OPPONENT_CRISTIAN 574
-#define OPPONENT_SYLVIA 575
-#define OPPONENT_LEONARDO 576
-#define OPPONENT_ATHENA 577
-#define OPPONENT_HARRISON 578
-#define OPPONENT_GRUNT_31 579
-#define OPPONENT_CLARENCE 580
-#define OPPONENT_TERRY 581
-#define OPPONENT_NATE 582
-#define OPPONENT_KATHLEEN 583
-#define OPPONENT_CLIFFORD 584
-#define OPPONENT_NICHOLAS 585
-#define OPPONENT_GRUNT_32 586
-#define OPPONENT_GRUNT_33 587
-#define OPPONENT_GRUNT_34 588
-#define OPPONENT_GRUNT_35 589
-#define OPPONENT_GRUNT_36 590
-#define OPPONENT_MACEY 591
-#define OPPONENT_BRENDAN_10 592
-#define OPPONENT_BRENDAN_11 593
-#define OPPONENT_PAXTON 594
-#define OPPONENT_ISABELLA 595
-#define OPPONENT_GRUNT_37 596
-#define OPPONENT_TABITHA_2 597
-#define OPPONENT_JONATHAN 598
-#define OPPONENT_BRENDAN_12 599
-#define OPPONENT_MAY_10 600
-#define OPPONENT_MAXIE_1 601
-#define OPPONENT_MAXIE_2 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_KIRA_AND_DAN_1 642
-#define OPPONENT_KIRA_AND_DAN_2 643
-#define OPPONENT_KIRA_AND_DAN_3 644
-#define OPPONENT_KIRA_AND_DAN_4 645
-#define OPPONENT_KIRA_AND_DAN_5 646
-#define OPPONENT_JOHANNA 647
-#define OPPONENT_GERALD 648
-#define OPPONENT_VIVIAN 649
-#define OPPONENT_DANIELLE 650
-#define OPPONENT_HIDEO 651
-#define OPPONENT_KEIGO 652
-#define OPPONENT_RILEY 653
-#define OPPONENT_FLINT 654
-#define OPPONENT_ASHLEY 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_13 661
-#define OPPONENT_BRENDAN_14 662
-#define OPPONENT_BRENDAN_15 663
-#define OPPONENT_MAY_11 664
-#define OPPONENT_MAY_12 665
-#define OPPONENT_MAY_13 666
-#define OPPONENT_JONAH 667
-#define OPPONENT_HENRY 668
-#define OPPONENT_ROGER 669
-#define OPPONENT_ALEXA 670
-#define OPPONENT_RUBEN 671
-#define OPPONENT_KOJI_1 672
-#define OPPONENT_WAYNE 673
-#define OPPONENT_AIDAN 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_LILA_AND_ROY_1 687
-#define OPPONENT_LILA_AND_ROY_2 688
-#define OPPONENT_LILA_AND_ROY_3 689
-#define OPPONENT_LILA_AND_ROY_4 690
-#define OPPONENT_LILA_AND_ROY_5 691
-#define OPPONENT_LISA_AND_RAY 692
-#define OPPONENT_CHRIS 693
-#define OPPONENT_DAWSON 694
-#define OPPONENT_SARAH 695
-#define OPPONENT_DARIAN 696
-#define OPPONENT_HAILEY 697
-#define OPPONENT_CHANDLER 698
-#define OPPONENT_KALEB 699
-#define OPPONENT_JOSEPH 700
-#define OPPONENT_ALYSSA 701
-#define OPPONENT_MARCOS 702
-#define OPPONENT_RHETT 703
-#define OPPONENT_TYRON 704
-#define OPPONENT_CELINA 705
-#define OPPONENT_BIANCA 706
-#define OPPONENT_HAYDEN 707
-#define OPPONENT_SOPHIE 708
-#define OPPONENT_COBY 709
-#define OPPONENT_LAWRENCE 710
-#define OPPONENT_WYATT 711
-#define OPPONENT_ANGELINA 712
-#define OPPONENT_KAI 713
-#define OPPONENT_CHARLOTTE 714
-#define OPPONENT_DEANDRE 715
-#define OPPONENT_GRUNT_38 716
-#define OPPONENT_GRUNT_39 717
-#define OPPONENT_GRUNT_40 718
-#define OPPONENT_GRUNT_41 719
-#define OPPONENT_GRUNT_42 720
-#define OPPONENT_GRUNT_43 721
-#define OPPONENT_GRUNT_44 722
-#define OPPONENT_GRUNT_45 723
-#define OPPONENT_GRUNT_46 724
-#define OPPONENT_GRUNT_47 725
-#define OPPONENT_GRUNT_48 726
-#define OPPONENT_GRUNT_49 727
-#define OPPONENT_GRUNT_50 728
-#define OPPONENT_GRUNT_51 729
-#define OPPONENT_GRUNT_52 730
-#define OPPONENT_GRUNT_53 731
-#define OPPONENT_TABITHA_3 732
-#define OPPONENT_DARCY 733
-#define OPPONENT_MAXIE_3 734
-#define OPPONENT_PETE 735
-#define OPPONENT_ISABELLE 736
-#define OPPONENT_ANDRES_1 737
-#define OPPONENT_JOSUE 738
-#define OPPONENT_CAMRON 739
-#define OPPONENT_CORY_1 740
-#define OPPONENT_CAROLINA 741
-#define OPPONENT_ELIJAH 742
-#define OPPONENT_CELIA 743
-#define OPPONENT_BRYAN 744
-#define OPPONENT_BRANDEN 745
-#define OPPONENT_BRYANT 746
-#define OPPONENT_SHAYLA 747
-#define OPPONENT_KYRA 748
-#define OPPONENT_JAIDEN 749
-#define OPPONENT_ALIX 750
-#define OPPONENT_HELENE 751
-#define OPPONENT_MARLENE 752
-#define OPPONENT_DEVAN 753
-#define OPPONENT_JOHNSON 754
-#define OPPONENT_MELINA 755
-#define OPPONENT_BRANDI 756
-#define OPPONENT_AISHA 757
-#define OPPONENT_MAKAYLA 758
-#define OPPONENT_FABIAN 759
-#define OPPONENT_DAYTON 760
-#define OPPONENT_RACHEL 761
-#define OPPONENT_LEONEL 762
-#define OPPONENT_CALLIE 763
-#define OPPONENT_CALE 764
-#define OPPONENT_MYLES 765
-#define OPPONENT_PAT 766
-#define OPPONENT_CRISTIN_1 767
-#define OPPONENT_MAY_14 768
-#define OPPONENT_MAY_15 769
-#define OPPONENT_ROXANNE_2 770
-#define OPPONENT_ROXANNE_3 771
-#define OPPONENT_ROXANNE_4 772
-#define OPPONENT_ROXANNE_5 773
-#define OPPONENT_BRAWLY_2 774
-#define OPPONENT_BRAWLY_3 775
-#define OPPONENT_BRAWLY_4 776
-#define OPPONENT_BRAWLY_5 777
-#define OPPONENT_WATTSON_2 778
-#define OPPONENT_WATTSON_3 779
-#define OPPONENT_WATTSON_4 780
-#define OPPONENT_WATTSON_5 781
-#define OPPONENT_FLANNERY_2 782
-#define OPPONENT_FLANNERY_3 783
-#define OPPONENT_FLANNERY_4 784
-#define OPPONENT_FLANNERY_5 785
-#define OPPONENT_NORMAN_2 786
-#define OPPONENT_NORMAN_3 787
-#define OPPONENT_NORMAN_4 788
-#define OPPONENT_NORMAN_5 789
-#define OPPONENT_WINONA_2 790
-#define OPPONENT_WINONA_3 791
-#define OPPONENT_WINONA_4 792
-#define OPPONENT_WINONA_5 793
-#define OPPONENT_TATE_AND_LIZA_2 794
-#define OPPONENT_TATE_AND_LIZA_3 795
-#define OPPONENT_TATE_AND_LIZA_4 796
-#define OPPONENT_TATE_AND_LIZA_5 797
-#define OPPONENT_JUAN_2 798
-#define OPPONENT_JUAN_3 799
-#define OPPONENT_JUAN_4 800
-#define OPPONENT_JUAN_5 801
-#define OPPONENT_ANGELO 802
-#define OPPONENT_DARIUS 803
-#define OPPONENT_STEVEN 804
-#define OPPONENT_ANABEL 805
-#define OPPONENT_TUCKER 806
-#define OPPONENT_SPENSER 807
-#define OPPONENT_GRETA 808
-#define OPPONENT_NOLAND 809
-#define OPPONENT_LUCY 810
-#define OPPONENT_BRANDON 811
-#define OPPONENT_ANDRES_2 812
-#define OPPONENT_ANDRES_3 813
-#define OPPONENT_ANDRES_4 814
-#define OPPONENT_ANDRES_5 815
-#define OPPONENT_CORY_2 816
-#define OPPONENT_CORY_3 817
-#define OPPONENT_CORY_4 818
-#define OPPONENT_CORY_5 819
-#define OPPONENT_PABLO_2 820
-#define OPPONENT_PABLO_3 821
-#define OPPONENT_PABLO_4 822
-#define OPPONENT_PABLO_5 823
-#define OPPONENT_KOJI_2 824
-#define OPPONENT_KOJI_3 825
-#define OPPONENT_KOJI_4 826
-#define OPPONENT_KOJI_5 827
-#define OPPONENT_CRISTIN_2 828
-#define OPPONENT_CRISTIN_3 829
-#define OPPONENT_CRISTIN_4 830
-#define OPPONENT_CRISTIN_5 831
-#define OPPONENT_FERNANDO_2 832
-#define OPPONENT_FERNANDO_3 833
-#define OPPONENT_FERNANDO_4 834
-#define OPPONENT_FERNANDO_5 835
-#define OPPONENT_SAWYER_2 836
-#define OPPONENT_SAWYER_3 837
-#define OPPONENT_SAWYER_4 838
-#define OPPONENT_SAWYER_5 839
-#define OPPONENT_GABRIELLE_2 840
-#define OPPONENT_GABRIELLE_3 841
-#define OPPONENT_GABRIELLE_4 842
-#define OPPONENT_GABRIELLE_5 843
-#define OPPONENT_THALIA_2 844
-#define OPPONENT_THALIA_3 845
-#define OPPONENT_THALIA_4 846
-#define OPPONENT_THALIA_5 847
-#define OPPONENT_MARIELA 848
-#define OPPONENT_ALVARO 848
-#define OPPONENT_EVERETT 850
-#define OPPONENT_RED 851
-#define OPPONENT_LEAF 852
-#define OPPONENT_BRENDAN_16 853
-#define OPPONENT_MAY_16 854
+#define TRAINER_NONE 0
+#define TRAINER_SAWYER_1 1
+#define TRAINER_GRUNT_1 2
+#define TRAINER_GRUNT_2 3
+#define TRAINER_GRUNT_3 4
+#define TRAINER_GRUNT_4 5
+#define TRAINER_GRUNT_5 6
+#define TRAINER_GRUNT_6 7
+#define TRAINER_GRUNT_7 8
+#define TRAINER_GABRIELLE_1 9
+#define TRAINER_GRUNT_8 10
+#define TRAINER_MARCEL 11
+#define TRAINER_ALBERTO 12
+#define TRAINER_ED 13
+#define TRAINER_GRUNT_9 14
+#define TRAINER_DECLAN 15
+#define TRAINER_GRUNT_10 16
+#define TRAINER_GRUNT_11 17
+#define TRAINER_GRUNT_12 18
+#define TRAINER_GRUNT_13 19
+#define TRAINER_GRUNT_14 20
+#define TRAINER_GRUNT_15 21
+#define TRAINER_GRUNT_16 22
+#define TRAINER_GRUNT_17 23
+#define TRAINER_GRUNT_18 24
+#define TRAINER_GRUNT_19 25
+#define TRAINER_GRUNT_20 26
+#define TRAINER_GRUNT_21 27
+#define TRAINER_GRUNT_22 28
+#define TRAINER_FREDRICK 29
+#define TRAINER_MATT 30
+#define TRAINER_ZANDER 31
+#define TRAINER_SHELLY_1 32
+#define TRAINER_SHELLY_2 33
+#define TRAINER_ARCHIE 34
+#define TRAINER_LEAH 35
+#define TRAINER_DAISY 36
+#define TRAINER_ROSE_1 37
+#define TRAINER_FELIX 38
+#define TRAINER_VIOLET 39
+#define TRAINER_ROSE_2 40
+#define TRAINER_ROSE_3 41
+#define TRAINER_ROSE_4 42
+#define TRAINER_ROSE_5 43
+#define TRAINER_DUSTY_1 44
+#define TRAINER_CHIP 45
+#define TRAINER_FOSTER 46
+#define TRAINER_DUSTY_2 47
+#define TRAINER_DUSTY_3 48
+#define TRAINER_DUSTY_4 49
+#define TRAINER_DUSTY_5 50
+#define TRAINER_GABBY_AND_TY_1 51
+#define TRAINER_GABBY_AND_TY_2 52
+#define TRAINER_GABBY_AND_TY_3 53
+#define TRAINER_GABBY_AND_TY_4 54
+#define TRAINER_GABBY_AND_TY_5 55
+#define TRAINER_GABBY_AND_TY_6 56
+#define TRAINER_LOLA_1 57
+#define TRAINER_AUSTINA 58
+#define TRAINER_GWEN 59
+#define TRAINER_LOLA_2 60
+#define TRAINER_LOLA_3 61
+#define TRAINER_LOLA_4 62
+#define TRAINER_LOLA_5 63
+#define TRAINER_RICKY_1 64
+#define TRAINER_SIMON 65
+#define TRAINER_CHARLIE 66
+#define TRAINER_RICKY_2 67
+#define TRAINER_RICKY_3 68
+#define TRAINER_RICKY_4 69
+#define TRAINER_RICKY_5 70
+#define TRAINER_RANDALL 71
+#define TRAINER_PARKER 72
+#define TRAINER_GEORGE 73
+#define TRAINER_BERKE 74
+#define TRAINER_BRAXTON 75
+#define TRAINER_VINCENT 76
+#define TRAINER_LEROY 77
+#define TRAINER_WILTON_1 78
+#define TRAINER_EDGAR 79
+#define TRAINER_ALBERT 80
+#define TRAINER_SAMUEL 81
+#define TRAINER_VITO 82
+#define TRAINER_OWEN 83
+#define TRAINER_WILTON_2 84
+#define TRAINER_WILTON_3 85
+#define TRAINER_WILTON_4 86
+#define TRAINER_WILTON_5 87
+#define TRAINER_WARREN 88
+#define TRAINER_MARY 89
+#define TRAINER_ALEXIA 90
+#define TRAINER_JODY 91
+#define TRAINER_WENDY 92
+#define TRAINER_KEIRA 93
+#define TRAINER_BROOKE_1 94
+#define TRAINER_JENNIFER 95
+#define TRAINER_HOPE 96
+#define TRAINER_SHANNON 97
+#define TRAINER_MICHELLE 98
+#define TRAINER_CAROLINE 99
+#define TRAINER_JULIE 100
+#define TRAINER_BROOKE_2 101
+#define TRAINER_BROOKE_3 102
+#define TRAINER_BROOKE_4 103
+#define TRAINER_BROOKE_5 104
+#define TRAINER_PATRICIA 105
+#define TRAINER_KINDRA 106
+#define TRAINER_TAMMY 107
+#define TRAINER_VALERIE_1 108
+#define TRAINER_TASHA 109
+#define TRAINER_VALERIE_2 110
+#define TRAINER_VALERIE_3 111
+#define TRAINER_VALERIE_4 112
+#define TRAINER_VALERIE_5 113
+#define TRAINER_CINDY_1 114
+#define TRAINER_DAPHNE 115
+#define TRAINER_GRUNT_23 116
+#define TRAINER_CINDY_2 117
+#define TRAINER_BRIANNA 118
+#define TRAINER_NAOMI 119
+#define TRAINER_CINDY_3 120
+#define TRAINER_CINDY_4 121
+#define TRAINER_CINDY_5 122
+#define TRAINER_CINDY_6 123
+#define TRAINER_MELISSA 124
+#define TRAINER_SHEILA 125
+#define TRAINER_SHIRLEY 126
+#define TRAINER_JESSICA_1 127
+#define TRAINER_CONNIE 128
+#define TRAINER_BRIDGET 129
+#define TRAINER_OLIVIA 130
+#define TRAINER_TIFFANY 131
+#define TRAINER_JESSICA_2 132
+#define TRAINER_JESSICA_3 133
+#define TRAINER_JESSICA_4 134
+#define TRAINER_JESSICA_5 135
+#define TRAINER_WINSTON_1 136
+#define TRAINER_MOLLIE 137
+#define TRAINER_GARRET 138
+#define TRAINER_WINSTON_2 139
+#define TRAINER_WINSTON_3 140
+#define TRAINER_WINSTON_4 141
+#define TRAINER_WINSTON_5 142
+#define TRAINER_STEVE_1 143
+#define TRAINER_THALIA_1 144
+#define TRAINER_MARK 145
+#define TRAINER_GRUNT_24 146
+#define TRAINER_STEVE_2 147
+#define TRAINER_STEVE_3 148
+#define TRAINER_STEVE_4 149
+#define TRAINER_STEVE_5 150
+#define TRAINER_LUIS 151
+#define TRAINER_DOMINIK 152
+#define TRAINER_DOUGLAS 153
+#define TRAINER_DARRIN 154
+#define TRAINER_TONY_1 155
+#define TRAINER_JEROME 156
+#define TRAINER_MATTHEW 157
+#define TRAINER_DAVID 158
+#define TRAINER_SPENCER 159
+#define TRAINER_ROLAND 160
+#define TRAINER_NOLEN 161
+#define TRAINER_STAN 162
+#define TRAINER_BARRY 163
+#define TRAINER_DEAN 164
+#define TRAINER_RODNEY 165
+#define TRAINER_RICHARD 166
+#define TRAINER_HERMAN 167
+#define TRAINER_SANTIAGO 168
+#define TRAINER_GILBERT 169
+#define TRAINER_FRANKLIN 170
+#define TRAINER_KEVIN 171
+#define TRAINER_JACK 172
+#define TRAINER_DUDLEY 173
+#define TRAINER_CHAD 174
+#define TRAINER_TONY_2 175
+#define TRAINER_TONY_3 176
+#define TRAINER_TONY_4 177
+#define TRAINER_TONY_5 178
+#define TRAINER_TAKAO 179
+#define TRAINER_HITOSHI 180
+#define TRAINER_KIYO 181
+#define TRAINER_KOICHI 182
+#define TRAINER_NOB_1 183
+#define TRAINER_NOB_2 184
+#define TRAINER_NOB_3 185
+#define TRAINER_NOB_4 186
+#define TRAINER_NOB_5 187
+#define TRAINER_YUJI 188
+#define TRAINER_DAISUKE 189
+#define TRAINER_ATSUSHI 190
+#define TRAINER_KIRK 191
+#define TRAINER_GRUNT_25 192
+#define TRAINER_GRUNT_26 193
+#define TRAINER_SHAWN 194
+#define TRAINER_FERNANDO_1 195
+#define TRAINER_DALTON_1 196
+#define TRAINER_DALTON_2 197
+#define TRAINER_DALTON_3 198
+#define TRAINER_DALTON_4 199
+#define TRAINER_DALTON_5 200
+#define TRAINER_COLE 201
+#define TRAINER_JEFF 202
+#define TRAINER_AXLE 203
+#define TRAINER_JACE 204
+#define TRAINER_KEEGAN 205
+#define TRAINER_BERNIE_1 206
+#define TRAINER_BERNIE_2 207
+#define TRAINER_BERNIE_3 208
+#define TRAINER_BERNIE_4 209
+#define TRAINER_BERNIE_5 210
+#define TRAINER_DREW 211
+#define TRAINER_BEAU 212
+#define TRAINER_LARRY 213
+#define TRAINER_SHANE 214
+#define TRAINER_JUSTIN 215
+#define TRAINER_ETHAN_1 216
+#define TRAINER_AUTUMN 217
+#define TRAINER_TRAVIS 218
+#define TRAINER_ETHAN_2 219
+#define TRAINER_ETHAN_3 220
+#define TRAINER_ETHAN_4 221
+#define TRAINER_ETHAN_5 222
+#define TRAINER_BRENT 223
+#define TRAINER_DONALD 224
+#define TRAINER_TAYLOR 225
+#define TRAINER_JEFFREY_1 226
+#define TRAINER_DEREK 227
+#define TRAINER_JEFFREY_2 228
+#define TRAINER_JEFFREY_3 229
+#define TRAINER_JEFFREY_4 230
+#define TRAINER_JEFFREY_5 231
+#define TRAINER_EDWARD 232
+#define TRAINER_PRESTON 233
+#define TRAINER_VIRGIL 234
+#define TRAINER_BLAKE 235
+#define TRAINER_WILLIAM 236
+#define TRAINER_JOSHUA 237
+#define TRAINER_CAMERON_1 238
+#define TRAINER_CAMERON_2 239
+#define TRAINER_CAMERON_3 240
+#define TRAINER_CAMERON_4 241
+#define TRAINER_CAMERON_5 242
+#define TRAINER_JACLYN 243
+#define TRAINER_HANNAH 244
+#define TRAINER_SAMANTHA 245
+#define TRAINER_MAURA 246
+#define TRAINER_KAYLA 247
+#define TRAINER_ALEXIS 248
+#define TRAINER_JACKI_1 249
+#define TRAINER_JACKI_2 250
+#define TRAINER_JACKI_3 251
+#define TRAINER_JACKI_4 252
+#define TRAINER_JACKI_5 253
+#define TRAINER_WALTER_1 254
+#define TRAINER_MICAH 255
+#define TRAINER_THOMAS 256
+#define TRAINER_WALTER_2 257
+#define TRAINER_WALTER_3 258
+#define TRAINER_WALTER_4 259
+#define TRAINER_WALTER_5 260
+#define TRAINER_SIDNEY 261
+#define TRAINER_PHOEBE 262
+#define TRAINER_GLACIA 263
+#define TRAINER_DRAKE 264
+#define TRAINER_ROXANNE_1 265
+#define TRAINER_BRAWLY_1 266
+#define TRAINER_WATTSON_1 267
+#define TRAINER_FLANNERY_1 268
+#define TRAINER_NORMAN_1 269
+#define TRAINER_WINONA_1 270
+#define TRAINER_TATE_AND_LIZA_1 271
+#define TRAINER_JUAN_1 272
+#define TRAINER_JERRY_1 273
+#define TRAINER_TED 274
+#define TRAINER_PAUL 275
+#define TRAINER_JERRY_2 276
+#define TRAINER_JERRY_3 277
+#define TRAINER_JERRY_4 278
+#define TRAINER_JERRY_5 279
+#define TRAINER_KAREN_1 280
+#define TRAINER_GEORGIA 281
+#define TRAINER_KAREN_2 282
+#define TRAINER_KAREN_3 283
+#define TRAINER_KAREN_4 284
+#define TRAINER_KAREN_5 285
+#define TRAINER_KATE_AND_JOY 286
+#define TRAINER_ANNA_AND_MEG_1 287
+#define TRAINER_ANNA_AND_MEG_2 288
+#define TRAINER_ANNA_AND_MEG_3 289
+#define TRAINER_ANNA_AND_MEG_4 290
+#define TRAINER_ANNA_AND_MEG_5 291
+#define TRAINER_VICTOR 292
+#define TRAINER_MIGUEL_1 293
+#define TRAINER_COLTON 294
+#define TRAINER_MIGUEL_2 295
+#define TRAINER_MIGUEL_3 296
+#define TRAINER_MIGUEL_4 297
+#define TRAINER_MIGUEL_5 298
+#define TRAINER_VICTORIA 299
+#define TRAINER_VANESSA 300
+#define TRAINER_BETHANY 301
+#define TRAINER_ISABEL_1 302
+#define TRAINER_ISABEL_2 303
+#define TRAINER_ISABEL_3 304
+#define TRAINER_ISABEL_4 305
+#define TRAINER_ISABEL_5 306
+#define TRAINER_TIMOTHY_1 307
+#define TRAINER_TIMOTHY_2 308
+#define TRAINER_TIMOTHY_3 309
+#define TRAINER_TIMOTHY_4 310
+#define TRAINER_TIMOTHY_5 311
+#define TRAINER_VICKY 312
+#define TRAINER_SHELBY_1 313
+#define TRAINER_SHELBY_2 314
+#define TRAINER_SHELBY_3 315
+#define TRAINER_SHELBY_4 316
+#define TRAINER_SHELBY_5 317
+#define TRAINER_CALVIN_1 318
+#define TRAINER_BILLY 319
+#define TRAINER_JOSH 320
+#define TRAINER_TOMMY 321
+#define TRAINER_JOEY 322
+#define TRAINER_BEN 323
+#define TRAINER_QUINCY 324
+#define TRAINER_KATELYNN 325
+#define TRAINER_JAYLEN 326
+#define TRAINER_DILLON 327
+#define TRAINER_CALVIN_2 328
+#define TRAINER_CALVIN_3 329
+#define TRAINER_CALVIN_4 330
+#define TRAINER_CALVIN_5 331
+#define TRAINER_EDDIE 332
+#define TRAINER_ALLEN 333
+#define TRAINER_TIMMY 334
+#define TRAINER_WALLACE 335
+#define TRAINER_ANDREW 336
+#define TRAINER_IVAN 337
+#define TRAINER_CLAUDE 338
+#define TRAINER_ELLIOT_1 339
+#define TRAINER_NED 340
+#define TRAINER_DALE 341
+#define TRAINER_NOLAN 342
+#define TRAINER_BARNY 343
+#define TRAINER_WADE 344
+#define TRAINER_CARTER 345
+#define TRAINER_ELLIOT_2 346
+#define TRAINER_ELLIOT_3 347
+#define TRAINER_ELLIOT_4 348
+#define TRAINER_ELLIOT_5 349
+#define TRAINER_RONALD 350
+#define TRAINER_JACOB 351
+#define TRAINER_ANTHONY 352
+#define TRAINER_BENJAMIN_1 353
+#define TRAINER_BENJAMIN_2 354
+#define TRAINER_BENJAMIN_3 355
+#define TRAINER_BENJAMIN_4 356
+#define TRAINER_BENJAMIN_5 357
+#define TRAINER_ABIGAIL_1 358
+#define TRAINER_JASMINE 359
+#define TRAINER_ABIGAIL_2 360
+#define TRAINER_ABIGAIL_3 361
+#define TRAINER_ABIGAIL_4 362
+#define TRAINER_ABIGAIL_5 363
+#define TRAINER_DYLAN_1 364
+#define TRAINER_DYLAN_2 365
+#define TRAINER_DYLAN_3 366
+#define TRAINER_DYLAN_4 367
+#define TRAINER_DYLAN_5 368
+#define TRAINER_MARIA_1 369
+#define TRAINER_MARIA_2 370
+#define TRAINER_MARIA_3 371
+#define TRAINER_MARIA_4 372
+#define TRAINER_MARIA_5 373
+#define TRAINER_CAMDEN 374
+#define TRAINER_DEMETRIUS 375
+#define TRAINER_ISAIAH_1 376
+#define TRAINER_PABLO_1 377
+#define TRAINER_CHASE 378
+#define TRAINER_ISAIAH_2 379
+#define TRAINER_ISAIAH_3 380
+#define TRAINER_ISAIAH_4 381
+#define TRAINER_ISAIAH_5 382
+#define TRAINER_ISOBEL 383
+#define TRAINER_DONNY 384
+#define TRAINER_TALIA 385
+#define TRAINER_KATELYN_1 386
+#define TRAINER_ALLISON 387
+#define TRAINER_KATELYN_2 388
+#define TRAINER_KATELYN_3 389
+#define TRAINER_KATELYN_4 390
+#define TRAINER_KATELYN_5 391
+#define TRAINER_NICOLAS_1 392
+#define TRAINER_NICOLAS_2 393
+#define TRAINER_NICOLAS_3 394
+#define TRAINER_NICOLAS_4 395
+#define TRAINER_NICOLAS_5 396
+#define TRAINER_AARON 397
+#define TRAINER_PERRY 398
+#define TRAINER_HUGH 399
+#define TRAINER_PHIL 400
+#define TRAINER_JARED 401
+#define TRAINER_HUMBERTO 402
+#define TRAINER_PRESLEY 403
+#define TRAINER_EDWARDO 404
+#define TRAINER_COLIN 405
+#define TRAINER_ROBERT_1 406
+#define TRAINER_BENNY 407
+#define TRAINER_CHESTER 408
+#define TRAINER_ROBERT_2 409
+#define TRAINER_ROBERT_3 410
+#define TRAINER_ROBERT_4 411
+#define TRAINER_ROBERT_5 412
+#define TRAINER_ALEX 413
+#define TRAINER_BECK 414
+#define TRAINER_YASU 415
+#define TRAINER_TAKASHI 416
+#define TRAINER_DIANNE 417
+#define TRAINER_JANI 418
+#define TRAINER_LAO_1 419
+#define TRAINER_LUNG 420
+#define TRAINER_LAO_2 421
+#define TRAINER_LAO_3 422
+#define TRAINER_LAO_4 423
+#define TRAINER_LAO_5 424
+#define TRAINER_JOCELYN 425
+#define TRAINER_LAURA 426
+#define TRAINER_CYNDY_1 427
+#define TRAINER_CORA 428
+#define TRAINER_PAULA 429
+#define TRAINER_CYNDY_2 430
+#define TRAINER_CYNDY_3 431
+#define TRAINER_CYNDY_4 432
+#define TRAINER_CYNDY_5 433
+#define TRAINER_MADELINE_1 434
+#define TRAINER_CLARISSA 435
+#define TRAINER_ANGELICA 436
+#define TRAINER_MADELINE_2 437
+#define TRAINER_MADELINE_3 438
+#define TRAINER_MADELINE_4 439
+#define TRAINER_MADELINE_5 440
+#define TRAINER_BEVERLY 441
+#define TRAINER_IMANI 442
+#define TRAINER_KYLA 443
+#define TRAINER_DENISE 444
+#define TRAINER_BETH 445
+#define TRAINER_TARA 446
+#define TRAINER_MISSY 447
+#define TRAINER_ALICE 448
+#define TRAINER_JENNY_1 449
+#define TRAINER_GRACE 450
+#define TRAINER_TANYA 451
+#define TRAINER_SHARON 452
+#define TRAINER_NIKKI 453
+#define TRAINER_BRENDA 454
+#define TRAINER_KATIE 455
+#define TRAINER_SUSIE 456
+#define TRAINER_KARA 457
+#define TRAINER_DANA 458
+#define TRAINER_SIENNA 459
+#define TRAINER_DEBRA 460
+#define TRAINER_LINDA 461
+#define TRAINER_KAYLEE 462
+#define TRAINER_LAUREL 463
+#define TRAINER_CARLEE 464
+#define TRAINER_JENNY_2 465
+#define TRAINER_JENNY_3 466
+#define TRAINER_JENNY_4 467
+#define TRAINER_JENNY_5 468
+#define TRAINER_HEIDI 469
+#define TRAINER_BECKY 470
+#define TRAINER_CAROL 471
+#define TRAINER_NANCY 472
+#define TRAINER_MARTHA 473
+#define TRAINER_DIANA_1 474
+#define TRAINER_CEDRIC 475
+#define TRAINER_IRENE 476
+#define TRAINER_DIANA_2 477
+#define TRAINER_DIANA_3 478
+#define TRAINER_DIANA_4 479
+#define TRAINER_DIANA_5 480
+#define TRAINER_AMY_AND_LIV_1 481
+#define TRAINER_AMY_AND_LIV_2 482
+#define TRAINER_GINA_AND_MIA_1 483
+#define TRAINER_MIU_AND_YUKI 484
+#define TRAINER_AMY_AND_LIV_3 485
+#define TRAINER_GINA_AND_MIA_2 486
+#define TRAINER_AMY_AND_LIV_4 487
+#define TRAINER_AMY_AND_LIV_5 488
+#define TRAINER_AMY_AND_LIV_6 489
+#define TRAINER_HUEY 490
+#define TRAINER_EDMOND 491
+#define TRAINER_ERNEST_1 492
+#define TRAINER_DWAYNE 493
+#define TRAINER_PHILLIP 494
+#define TRAINER_LEONARD 495
+#define TRAINER_DUNCAN 496
+#define TRAINER_ERNEST_2 497
+#define TRAINER_ERNEST_3 498
+#define TRAINER_ERNEST_4 499
+#define TRAINER_ERNEST_5 500
+#define TRAINER_ELI 501
+#define TRAINER_ANNIKA 502
+#define TRAINER_JAZMYN 503
+#define TRAINER_JONAS 504
+#define TRAINER_KAYLEY 505
+#define TRAINER_AURON 506
+#define TRAINER_KELVIN 507
+#define TRAINER_MARLEY 508
+#define TRAINER_REYNA 509
+#define TRAINER_HUDSON 510
+#define TRAINER_CONOR 511
+#define TRAINER_EDWIN_1 512
+#define TRAINER_HECTOR 513
+#define TRAINER_TABITHA_1 514
+#define TRAINER_EDWIN_2 515
+#define TRAINER_EDWIN_3 516
+#define TRAINER_EDWIN_4 517
+#define TRAINER_EDWIN_5 518
+#define TRAINER_WALLY_1 519
+#define TRAINER_BRENDAN_1 520
+#define TRAINER_BRENDAN_2 521
+#define TRAINER_BRENDAN_3 522
+#define TRAINER_BRENDAN_4 523
+#define TRAINER_BRENDAN_5 524
+#define TRAINER_BRENDAN_6 525
+#define TRAINER_BRENDAN_7 526
+#define TRAINER_BRENDAN_8 527
+#define TRAINER_BRENDAN_9 528
+#define TRAINER_MAY_1 529
+#define TRAINER_MAY_2 530
+#define TRAINER_MAY_3 531
+#define TRAINER_MAY_4 532
+#define TRAINER_MAY_5 533
+#define TRAINER_MAY_6 534
+#define TRAINER_MAY_7 535
+#define TRAINER_MAY_8 536
+#define TRAINER_MAY_9 537
+#define TRAINER_ISAAC_1 538
+#define TRAINER_DAVIS 539
+#define TRAINER_MITCHELL 540
+#define TRAINER_ISAAC_2 541
+#define TRAINER_ISAAC_3 542
+#define TRAINER_ISAAC_4 543
+#define TRAINER_ISAAC_5 544
+#define TRAINER_LYDIA_1 545
+#define TRAINER_HALLE 546
+#define TRAINER_GARRISON 547
+#define TRAINER_LYDIA_2 548
+#define TRAINER_LYDIA_3 549
+#define TRAINER_LYDIA_4 550
+#define TRAINER_LYDIA_5 551
+#define TRAINER_JACKSON_1 552
+#define TRAINER_LORENZO 553
+#define TRAINER_SEBASTIAN 554
+#define TRAINER_JACKSON_2 555
+#define TRAINER_JACKSON_3 556
+#define TRAINER_JACKSON_4 557
+#define TRAINER_JACKSON_5 558
+#define TRAINER_CATHERINE_1 559
+#define TRAINER_JENNA 560
+#define TRAINER_SOPHIA 561
+#define TRAINER_CATHERINE_2 562
+#define TRAINER_CATHERINE_3 563
+#define TRAINER_CATHERINE_4 564
+#define TRAINER_CATHERINE_5 565
+#define TRAINER_JULIO 566
+#define TRAINER_GRUNT_27 567
+#define TRAINER_GRUNT_28 568
+#define TRAINER_GRUNT_29 569
+#define TRAINER_GRUNT_30 570
+#define TRAINER_MARC 571
+#define TRAINER_BRENDEN 572
+#define TRAINER_LILITH 573
+#define TRAINER_CRISTIAN 574
+#define TRAINER_SYLVIA 575
+#define TRAINER_LEONARDO 576
+#define TRAINER_ATHENA 577
+#define TRAINER_HARRISON 578
+#define TRAINER_GRUNT_31 579
+#define TRAINER_CLARENCE 580
+#define TRAINER_TERRY 581
+#define TRAINER_NATE 582
+#define TRAINER_KATHLEEN 583
+#define TRAINER_CLIFFORD 584
+#define TRAINER_NICHOLAS 585
+#define TRAINER_GRUNT_32 586
+#define TRAINER_GRUNT_33 587
+#define TRAINER_GRUNT_34 588
+#define TRAINER_GRUNT_35 589
+#define TRAINER_GRUNT_36 590
+#define TRAINER_MACEY 591
+#define TRAINER_BRENDAN_10 592
+#define TRAINER_BRENDAN_11 593
+#define TRAINER_PAXTON 594
+#define TRAINER_ISABELLA 595
+#define TRAINER_GRUNT_37 596
+#define TRAINER_TABITHA_2 597
+#define TRAINER_JONATHAN 598
+#define TRAINER_BRENDAN_12 599
+#define TRAINER_MAY_10 600
+#define TRAINER_MAXIE_1 601
+#define TRAINER_MAXIE_2 602
+#define TRAINER_TIANA 603
+#define TRAINER_HALEY_1 604
+#define TRAINER_JANICE 605
+#define TRAINER_VIVI 606
+#define TRAINER_HALEY_2 607
+#define TRAINER_HALEY_3 608
+#define TRAINER_HALEY_4 609
+#define TRAINER_HALEY_5 610
+#define TRAINER_SALLY 611
+#define TRAINER_ROBIN 612
+#define TRAINER_ANDREA 613
+#define TRAINER_CRISSY 614
+#define TRAINER_RICK 615
+#define TRAINER_LYLE 616
+#define TRAINER_JOSE 617
+#define TRAINER_DOUG 618
+#define TRAINER_GREG 619
+#define TRAINER_KENT 620
+#define TRAINER_JAMES_1 621
+#define TRAINER_JAMES_2 622
+#define TRAINER_JAMES_3 623
+#define TRAINER_JAMES_4 624
+#define TRAINER_JAMES_5 625
+#define TRAINER_BRICE 626
+#define TRAINER_TRENT_1 627
+#define TRAINER_LENNY 628
+#define TRAINER_LUCAS_1 629
+#define TRAINER_ALAN 630
+#define TRAINER_CLARK 631
+#define TRAINER_ERIC 632
+#define TRAINER_LUCAS_2 633
+#define TRAINER_MIKE_1 634
+#define TRAINER_MIKE_2 635
+#define TRAINER_TRENT_2 636
+#define TRAINER_TRENT_3 637
+#define TRAINER_TRENT_4 638
+#define TRAINER_TRENT_5 639
+#define TRAINER_DEZ_AND_LUKE 640
+#define TRAINER_LEA_AND_JED 641
+#define TRAINER_KIRA_AND_DAN_1 642
+#define TRAINER_KIRA_AND_DAN_2 643
+#define TRAINER_KIRA_AND_DAN_3 644
+#define TRAINER_KIRA_AND_DAN_4 645
+#define TRAINER_KIRA_AND_DAN_5 646
+#define TRAINER_JOHANNA 647
+#define TRAINER_GERALD 648
+#define TRAINER_VIVIAN 649
+#define TRAINER_DANIELLE 650
+#define TRAINER_HIDEO 651
+#define TRAINER_KEIGO 652
+#define TRAINER_RILEY 653
+#define TRAINER_FLINT 654
+#define TRAINER_ASHLEY 655
+#define TRAINER_WALLY_2 656
+#define TRAINER_WALLY_3 657
+#define TRAINER_WALLY_4 658
+#define TRAINER_WALLY_5 659
+#define TRAINER_WALLY_6 660
+#define TRAINER_BRENDAN_13 661
+#define TRAINER_BRENDAN_14 662
+#define TRAINER_BRENDAN_15 663
+#define TRAINER_MAY_11 664
+#define TRAINER_MAY_12 665
+#define TRAINER_MAY_13 666
+#define TRAINER_JONAH 667
+#define TRAINER_HENRY 668
+#define TRAINER_ROGER 669
+#define TRAINER_ALEXA 670
+#define TRAINER_RUBEN 671
+#define TRAINER_KOJI_1 672
+#define TRAINER_WAYNE 673
+#define TRAINER_AIDAN 674
+#define TRAINER_REED 675
+#define TRAINER_TISHA 676
+#define TRAINER_TORI_AND_TIA 677
+#define TRAINER_KIM_AND_IRIS 678
+#define TRAINER_TYRA_AND_IVY 679
+#define TRAINER_MEL_AND_PAUL 680
+#define TRAINER_JOHN_AND_JAY_1 681
+#define TRAINER_JOHN_AND_JAY_2 682
+#define TRAINER_JOHN_AND_JAY_3 683
+#define TRAINER_JOHN_AND_JAY_4 684
+#define TRAINER_JOHN_AND_JAY_5 685
+#define TRAINER_RELI_AND_IAN 686
+#define TRAINER_LILA_AND_ROY_1 687
+#define TRAINER_LILA_AND_ROY_2 688
+#define TRAINER_LILA_AND_ROY_3 689
+#define TRAINER_LILA_AND_ROY_4 690
+#define TRAINER_LILA_AND_ROY_5 691
+#define TRAINER_LISA_AND_RAY 692
+#define TRAINER_CHRIS 693
+#define TRAINER_DAWSON 694
+#define TRAINER_SARAH 695
+#define TRAINER_DARIAN 696
+#define TRAINER_HAILEY 697
+#define TRAINER_CHANDLER 698
+#define TRAINER_KALEB 699
+#define TRAINER_JOSEPH 700
+#define TRAINER_ALYSSA 701
+#define TRAINER_MARCOS 702
+#define TRAINER_RHETT 703
+#define TRAINER_TYRON 704
+#define TRAINER_CELINA 705
+#define TRAINER_BIANCA 706
+#define TRAINER_HAYDEN 707
+#define TRAINER_SOPHIE 708
+#define TRAINER_COBY 709
+#define TRAINER_LAWRENCE 710
+#define TRAINER_WYATT 711
+#define TRAINER_ANGELINA 712
+#define TRAINER_KAI 713
+#define TRAINER_CHARLOTTE 714
+#define TRAINER_DEANDRE 715
+#define TRAINER_GRUNT_38 716
+#define TRAINER_GRUNT_39 717
+#define TRAINER_GRUNT_40 718
+#define TRAINER_GRUNT_41 719
+#define TRAINER_GRUNT_42 720
+#define TRAINER_GRUNT_43 721
+#define TRAINER_GRUNT_44 722
+#define TRAINER_GRUNT_45 723
+#define TRAINER_GRUNT_46 724
+#define TRAINER_GRUNT_47 725
+#define TRAINER_GRUNT_48 726
+#define TRAINER_GRUNT_49 727
+#define TRAINER_GRUNT_50 728
+#define TRAINER_GRUNT_51 729
+#define TRAINER_GRUNT_52 730
+#define TRAINER_GRUNT_53 731
+#define TRAINER_TABITHA_3 732
+#define TRAINER_DARCY 733
+#define TRAINER_MAXIE_3 734
+#define TRAINER_PETE 735
+#define TRAINER_ISABELLE 736
+#define TRAINER_ANDRES_1 737
+#define TRAINER_JOSUE 738
+#define TRAINER_CAMRON 739
+#define TRAINER_CORY_1 740
+#define TRAINER_CAROLINA 741
+#define TRAINER_ELIJAH 742
+#define TRAINER_CELIA 743
+#define TRAINER_BRYAN 744
+#define TRAINER_BRANDEN 745
+#define TRAINER_BRYANT 746
+#define TRAINER_SHAYLA 747
+#define TRAINER_KYRA 748
+#define TRAINER_JAIDEN 749
+#define TRAINER_ALIX 750
+#define TRAINER_HELENE 751
+#define TRAINER_MARLENE 752
+#define TRAINER_DEVAN 753
+#define TRAINER_JOHNSON 754
+#define TRAINER_MELINA 755
+#define TRAINER_BRANDI 756
+#define TRAINER_AISHA 757
+#define TRAINER_MAKAYLA 758
+#define TRAINER_FABIAN 759
+#define TRAINER_DAYTON 760
+#define TRAINER_RACHEL 761
+#define TRAINER_LEONEL 762
+#define TRAINER_CALLIE 763
+#define TRAINER_CALE 764
+#define TRAINER_MYLES 765
+#define TRAINER_PAT 766
+#define TRAINER_CRISTIN_1 767
+#define TRAINER_MAY_14 768
+#define TRAINER_MAY_15 769
+#define TRAINER_ROXANNE_2 770
+#define TRAINER_ROXANNE_3 771
+#define TRAINER_ROXANNE_4 772
+#define TRAINER_ROXANNE_5 773
+#define TRAINER_BRAWLY_2 774
+#define TRAINER_BRAWLY_3 775
+#define TRAINER_BRAWLY_4 776
+#define TRAINER_BRAWLY_5 777
+#define TRAINER_WATTSON_2 778
+#define TRAINER_WATTSON_3 779
+#define TRAINER_WATTSON_4 780
+#define TRAINER_WATTSON_5 781
+#define TRAINER_FLANNERY_2 782
+#define TRAINER_FLANNERY_3 783
+#define TRAINER_FLANNERY_4 784
+#define TRAINER_FLANNERY_5 785
+#define TRAINER_NORMAN_2 786
+#define TRAINER_NORMAN_3 787
+#define TRAINER_NORMAN_4 788
+#define TRAINER_NORMAN_5 789
+#define TRAINER_WINONA_2 790
+#define TRAINER_WINONA_3 791
+#define TRAINER_WINONA_4 792
+#define TRAINER_WINONA_5 793
+#define TRAINER_TATE_AND_LIZA_2 794
+#define TRAINER_TATE_AND_LIZA_3 795
+#define TRAINER_TATE_AND_LIZA_4 796
+#define TRAINER_TATE_AND_LIZA_5 797
+#define TRAINER_JUAN_2 798
+#define TRAINER_JUAN_3 799
+#define TRAINER_JUAN_4 800
+#define TRAINER_JUAN_5 801
+#define TRAINER_ANGELO 802
+#define TRAINER_DARIUS 803
+#define TRAINER_STEVEN 804
+#define TRAINER_ANABEL 805
+#define TRAINER_TUCKER 806
+#define TRAINER_SPENSER 807
+#define TRAINER_GRETA 808
+#define TRAINER_NOLAND 809
+#define TRAINER_LUCY 810
+#define TRAINER_BRANDON 811
+#define TRAINER_ANDRES_2 812
+#define TRAINER_ANDRES_3 813
+#define TRAINER_ANDRES_4 814
+#define TRAINER_ANDRES_5 815
+#define TRAINER_CORY_2 816
+#define TRAINER_CORY_3 817
+#define TRAINER_CORY_4 818
+#define TRAINER_CORY_5 819
+#define TRAINER_PABLO_2 820
+#define TRAINER_PABLO_3 821
+#define TRAINER_PABLO_4 822
+#define TRAINER_PABLO_5 823
+#define TRAINER_KOJI_2 824
+#define TRAINER_KOJI_3 825
+#define TRAINER_KOJI_4 826
+#define TRAINER_KOJI_5 827
+#define TRAINER_CRISTIN_2 828
+#define TRAINER_CRISTIN_3 829
+#define TRAINER_CRISTIN_4 830
+#define TRAINER_CRISTIN_5 831
+#define TRAINER_FERNANDO_2 832
+#define TRAINER_FERNANDO_3 833
+#define TRAINER_FERNANDO_4 834
+#define TRAINER_FERNANDO_5 835
+#define TRAINER_SAWYER_2 836
+#define TRAINER_SAWYER_3 837
+#define TRAINER_SAWYER_4 838
+#define TRAINER_SAWYER_5 839
+#define TRAINER_GABRIELLE_2 840
+#define TRAINER_GABRIELLE_3 841
+#define TRAINER_GABRIELLE_4 842
+#define TRAINER_GABRIELLE_5 843
+#define TRAINER_THALIA_2 844
+#define TRAINER_THALIA_3 845
+#define TRAINER_THALIA_4 846
+#define TRAINER_THALIA_5 847
+#define TRAINER_MARIELA 848
+#define TRAINER_ALVARO 849
+#define TRAINER_EVERETT 850
+#define TRAINER_RED 851
+#define TRAINER_LEAF 852
+#define TRAINER_BRENDAN_16 853
+#define TRAINER_MAY_16 854
+
+#define TRAINERS_COUNT 855
#endif // GUARD_CONSTANTS_OPPONENTS_H
diff --git a/include/constants/secret_bases.h b/include/constants/secret_bases.h
new file mode 100755
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/trainers.h b/include/constants/trainers.h
index a017b6975..57c7fd523 100644
--- a/include/constants/trainers.h
+++ b/include/constants/trainers.h
@@ -1,863 +1,14 @@
#ifndef GUARD_TRAINERS_H
#define GUARD_TRAINERS_H
-#define TRAINER_NONE 0
-#define TRAINER_SAWYER_1 1
-#define TRAINER_GRUNT_1 2
-#define TRAINER_GRUNT_2 3
-#define TRAINER_GRUNT_3 4
-#define TRAINER_GRUNT_4 5
-#define TRAINER_GRUNT_5 6
-#define TRAINER_GRUNT_6 7
-#define TRAINER_GRUNT_7 8
-#define TRAINER_GABRIELLE_1 9
-#define TRAINER_GRUNT_8 10
-#define TRAINER_MARCEL 11
-#define TRAINER_ALBERTO 12
-#define TRAINER_ED 13
-#define TRAINER_GRUNT_9 14
-#define TRAINER_DECLAN 15
-#define TRAINER_GRUNT_10 16
-#define TRAINER_GRUNT_11 17
-#define TRAINER_GRUNT_12 18
-#define TRAINER_GRUNT_13 19
-#define TRAINER_GRUNT_14 20
-#define TRAINER_GRUNT_15 21
-#define TRAINER_GRUNT_16 22
-#define TRAINER_GRUNT_17 23
-#define TRAINER_GRUNT_18 24
-#define TRAINER_GRUNT_19 25
-#define TRAINER_GRUNT_20 26
-#define TRAINER_GRUNT_21 27
-#define TRAINER_GRUNT_22 28
-#define TRAINER_FREDRICK 29
-#define TRAINER_MATT 30
-#define TRAINER_ZANDER 31
-#define TRAINER_SHELLY_1 32
-#define TRAINER_SHELLY_2 33
-#define TRAINER_ARCHIE 34
-#define TRAINER_LEAH 35
-#define TRAINER_DAISY 36
-#define TRAINER_ROSE_1 37
-#define TRAINER_FELIX 38
-#define TRAINER_VIOLET 39
-#define TRAINER_ROSE_2 40
-#define TRAINER_ROSE_3 41
-#define TRAINER_ROSE_4 42
-#define TRAINER_ROSE_5 43
-#define TRAINER_DUSTY_1 44
-#define TRAINER_CHIP 45
-#define TRAINER_FOSTER 46
-#define TRAINER_DUSTY_2 47
-#define TRAINER_DUSTY_3 48
-#define TRAINER_DUSTY_4 49
-#define TRAINER_DUSTY_5 50
-#define TRAINER_GABBY_AND_TY_1 51
-#define TRAINER_GABBY_AND_TY_2 52
-#define TRAINER_GABBY_AND_TY_3 53
-#define TRAINER_GABBY_AND_TY_4 54
-#define TRAINER_GABBY_AND_TY_5 55
-#define TRAINER_GABBY_AND_TY_6 56
-#define TRAINER_LOLA_1 57
-#define TRAINER_AUSTINA 58
-#define TRAINER_GWEN 59
-#define TRAINER_LOLA_2 60
-#define TRAINER_LOLA_3 61
-#define TRAINER_LOLA_4 62
-#define TRAINER_LOLA_5 63
-#define TRAINER_RICKY_1 64
-#define TRAINER_SIMON 65
-#define TRAINER_CHARLIE 66
-#define TRAINER_RICKY_2 67
-#define TRAINER_RICKY_3 68
-#define TRAINER_RICKY_4 69
-#define TRAINER_RICKY_5 70
-#define TRAINER_RANDALL 71
-#define TRAINER_PARKER 72
-#define TRAINER_GEORGE 73
-#define TRAINER_BERKE 74
-#define TRAINER_BRAXTON 75
-#define TRAINER_VINCENT 76
-#define TRAINER_LEROY 77
-#define TRAINER_WILTON_1 78
-#define TRAINER_EDGAR 79
-#define TRAINER_ALBERT 80
-#define TRAINER_SAMUEL 81
-#define TRAINER_VITO 82
-#define TRAINER_OWEN 83
-#define TRAINER_WILTON_2 84
-#define TRAINER_WILTON_3 85
-#define TRAINER_WILTON_4 86
-#define TRAINER_WILTON_5 87
-#define TRAINER_WARREN 88
-#define TRAINER_MARY 89
-#define TRAINER_ALEXIA 90
-#define TRAINER_JODY 91
-#define TRAINER_WENDY 92
-#define TRAINER_KEIRA 93
-#define TRAINER_BROOKE_1 94
-#define TRAINER_JENNIFER 95
-#define TRAINER_HOPE 96
-#define TRAINER_SHANNON 97
-#define TRAINER_MICHELLE 98
-#define TRAINER_CAROLINE 99
-#define TRAINER_JULIE 100
-#define TRAINER_BROOKE_2 101
-#define TRAINER_BROOKE_3 102
-#define TRAINER_BROOKE_4 103
-#define TRAINER_BROOKE_5 104
-#define TRAINER_PATRICIA 105
-#define TRAINER_KINDRA 106
-#define TRAINER_TAMMY 107
-#define TRAINER_VALERIE_1 108
-#define TRAINER_TASHA 109
-#define TRAINER_VALERIE_2 110
-#define TRAINER_VALERIE_3 111
-#define TRAINER_VALERIE_4 112
-#define TRAINER_VALERIE_5 113
-#define TRAINER_CINDY_1 114
-#define TRAINER_DAPHNE 115
-#define TRAINER_GRUNT_23 116
-#define TRAINER_CINDY_2 117
-#define TRAINER_BRIANNA 118
-#define TRAINER_NAOMI 119
-#define TRAINER_CINDY_3 120
-#define TRAINER_CINDY_4 121
-#define TRAINER_CINDY_5 122
-#define TRAINER_CINDY_6 123
-#define TRAINER_MELISSA 124
-#define TRAINER_SHEILA 125
-#define TRAINER_SHIRLEY 126
-#define TRAINER_JESSICA_1 127
-#define TRAINER_CONNIE 128
-#define TRAINER_BRIDGET 129
-#define TRAINER_OLIVIA 130
-#define TRAINER_TIFFANY 131
-#define TRAINER_JESSICA_2 132
-#define TRAINER_JESSICA_3 133
-#define TRAINER_JESSICA_4 134
-#define TRAINER_JESSICA_5 135
-#define TRAINER_WINSTON_1 136
-#define TRAINER_MOLLIE 137
-#define TRAINER_GARRET 138
-#define TRAINER_WINSTON_2 139
-#define TRAINER_WINSTON_3 140
-#define TRAINER_WINSTON_4 141
-#define TRAINER_WINSTON_5 142
-#define TRAINER_STEVE_1 143
-#define TRAINER_THALIA_1 144
-#define TRAINER_MARK 145
-#define TRAINER_GRUNT_24 146
-#define TRAINER_STEVE_2 147
-#define TRAINER_STEVE_3 148
-#define TRAINER_STEVE_4 149
-#define TRAINER_STEVE_5 150
-#define TRAINER_LUIS 151
-#define TRAINER_DOMINIK 152
-#define TRAINER_DOUGLAS 153
-#define TRAINER_DARRIN 154
-#define TRAINER_TONY_1 155
-#define TRAINER_JEROME 156
-#define TRAINER_MATTHEW 157
-#define TRAINER_DAVID 158
-#define TRAINER_SPENCER 159
-#define TRAINER_ROLAND 160
-#define TRAINER_NOLEN 161
-#define TRAINER_STAN 162
-#define TRAINER_BARRY 163
-#define TRAINER_DEAN 164
-#define TRAINER_RODNEY 165
-#define TRAINER_RICHARD 166
-#define TRAINER_HERMAN 167
-#define TRAINER_SANTIAGO 168
-#define TRAINER_GILBERT 169
-#define TRAINER_FRANKLIN 170
-#define TRAINER_KEVIN 171
-#define TRAINER_JACK 172
-#define TRAINER_DUDLEY 173
-#define TRAINER_CHAD 174
-#define TRAINER_TONY_2 175
-#define TRAINER_TONY_3 176
-#define TRAINER_TONY_4 177
-#define TRAINER_TONY_5 178
-#define TRAINER_TAKAO 179
-#define TRAINER_HITOSHI 180
-#define TRAINER_KIYO 181
-#define TRAINER_KOICHI 182
-#define TRAINER_NOB_1 183
-#define TRAINER_NOB_2 184
-#define TRAINER_NOB_3 185
-#define TRAINER_NOB_4 186
-#define TRAINER_NOB_5 187
-#define TRAINER_YUJI 188
-#define TRAINER_DAISUKE 189
-#define TRAINER_ATSUSHI 190
-#define TRAINER_KIRK 191
-#define TRAINER_GRUNT_25 192
-#define TRAINER_GRUNT_26 193
-#define TRAINER_SHAWN 194
-#define TRAINER_FERNANDO_1 195
-#define TRAINER_DALTON_1 196
-#define TRAINER_DALTON_2 197
-#define TRAINER_DALTON_3 198
-#define TRAINER_DALTON_4 199
-#define TRAINER_DALTON_5 200
-#define TRAINER_COLE 201
-#define TRAINER_JEFF 202
-#define TRAINER_AXLE 203
-#define TRAINER_JACE 204
-#define TRAINER_KEEGAN 205
-#define TRAINER_BERNIE_1 206
-#define TRAINER_BERNIE_2 207
-#define TRAINER_BERNIE_3 208
-#define TRAINER_BERNIE_4 209
-#define TRAINER_BERNIE_5 210
-#define TRAINER_DREW 211
-#define TRAINER_BEAU 212
-#define TRAINER_LARRY 213
-#define TRAINER_SHANE 214
-#define TRAINER_JUSTIN 215
-#define TRAINER_ETHAN_1 216
-#define TRAINER_AUTUMN 217
-#define TRAINER_TRAVIS 218
-#define TRAINER_ETHAN_2 219
-#define TRAINER_ETHAN_3 220
-#define TRAINER_ETHAN_4 221
-#define TRAINER_ETHAN_5 222
-#define TRAINER_BRENT 223
-#define TRAINER_DONALD 224
-#define TRAINER_TAYLOR 225
-#define TRAINER_JEFFREY_1 226
-#define TRAINER_DEREK 227
-#define TRAINER_JEFFREY_2 228
-#define TRAINER_JEFFREY_3 229
-#define TRAINER_JEFFREY_4 230
-#define TRAINER_JEFFREY_5 231
-#define TRAINER_EDWARD 232
-#define TRAINER_PRESTON 233
-#define TRAINER_VIRGIL 234
-#define TRAINER_BLAKE 235
-#define TRAINER_WILLIAM 236
-#define TRAINER_JOSHUA 237
-#define TRAINER_CAMERON_1 238
-#define TRAINER_CAMERON_2 239
-#define TRAINER_CAMERON_3 240
-#define TRAINER_CAMERON_4 241
-#define TRAINER_CAMERON_5 242
-#define TRAINER_JACLYN 243
-#define TRAINER_HANNAH 244
-#define TRAINER_SAMANTHA 245
-#define TRAINER_MAURA 246
-#define TRAINER_KAYLA 247
-#define TRAINER_ALEXIS 248
-#define TRAINER_JACKI_1 249
-#define TRAINER_JACKI_2 250
-#define TRAINER_JACKI_3 251
-#define TRAINER_JACKI_4 252
-#define TRAINER_JACKI_5 253
-#define TRAINER_WALTER_1 254
-#define TRAINER_MICAH 255
-#define TRAINER_THOMAS 256
-#define TRAINER_WALTER_2 257
-#define TRAINER_WALTER_3 258
-#define TRAINER_WALTER_4 259
-#define TRAINER_WALTER_5 260
-#define TRAINER_SIDNEY 261
-#define TRAINER_PHOEBE 262
-#define TRAINER_GLACIA 263
-#define TRAINER_DRAKE 264
-#define TRAINER_ROXANNE_1 265
-#define TRAINER_BRAWLY_1 266
-#define TRAINER_WATTSON_1 267
-#define TRAINER_FLANNERY_1 268
-#define TRAINER_NORMAN_1 269
-#define TRAINER_WINONA_1 270
-#define TRAINER_TATE_AND_LIZA_1 271
-#define TRAINER_JUAN_1 272
-#define TRAINER_JERRY_1 273
-#define TRAINER_TED 274
-#define TRAINER_PAUL 275
-#define TRAINER_JERRY_2 276
-#define TRAINER_JERRY_3 277
-#define TRAINER_JERRY_4 278
-#define TRAINER_JERRY_5 279
-#define TRAINER_KAREN_1 280
-#define TRAINER_GEORGIA 281
-#define TRAINER_KAREN_2 282
-#define TRAINER_KAREN_3 283
-#define TRAINER_KAREN_4 284
-#define TRAINER_KAREN_5 285
-#define TRAINER_KATE_AND_JOY 286
-#define TRAINER_ANNA_AND_MEG_1 287
-#define TRAINER_ANNA_AND_MEG_2 288
-#define TRAINER_ANNA_AND_MEG_3 289
-#define TRAINER_ANNA_AND_MEG_4 290
-#define TRAINER_ANNA_AND_MEG_5 291
-#define TRAINER_VICTOR 292
-#define TRAINER_MIGUEL_1 293
-#define TRAINER_COLTON 294
-#define TRAINER_MIGUEL_2 295
-#define TRAINER_MIGUEL_3 296
-#define TRAINER_MIGUEL_4 297
-#define TRAINER_MIGUEL_5 298
-#define TRAINER_VICTORIA 299
-#define TRAINER_VANESSA 300
-#define TRAINER_BETHANY 301
-#define TRAINER_ISABEL_1 302
-#define TRAINER_ISABEL_2 303
-#define TRAINER_ISABEL_3 304
-#define TRAINER_ISABEL_4 305
-#define TRAINER_ISABEL_5 306
-#define TRAINER_TIMOTHY_1 307
-#define TRAINER_TIMOTHY_2 308
-#define TRAINER_TIMOTHY_3 309
-#define TRAINER_TIMOTHY_4 310
-#define TRAINER_TIMOTHY_5 311
-#define TRAINER_VICKY 312
-#define TRAINER_SHELBY_1 313
-#define TRAINER_SHELBY_2 314
-#define TRAINER_SHELBY_3 315
-#define TRAINER_SHELBY_4 316
-#define TRAINER_SHELBY_5 317
-#define TRAINER_CALVIN_1 318
-#define TRAINER_BILLY 319
-#define TRAINER_JOSH 320
-#define TRAINER_TOMMY 321
-#define TRAINER_JOEY 322
-#define TRAINER_BEN 323
-#define TRAINER_QUINCY 324
-#define TRAINER_KATELYNN 325
-#define TRAINER_JAYLEN 326
-#define TRAINER_DILLON 327
-#define TRAINER_CALVIN_2 328
-#define TRAINER_CALVIN_3 329
-#define TRAINER_CALVIN_4 330
-#define TRAINER_CALVIN_5 331
-#define TRAINER_EDDIE 332
-#define TRAINER_ALLEN 333
-#define TRAINER_TIMMY 334
-#define TRAINER_WALLACE 335
-#define TRAINER_ANDREW 336
-#define TRAINER_IVAN 337
-#define TRAINER_CLAUDE 338
-#define TRAINER_ELLIOT_1 339
-#define TRAINER_NED 340
-#define TRAINER_DALE 341
-#define TRAINER_NOLAN 342
-#define TRAINER_BARNY 343
-#define TRAINER_WADE 344
-#define TRAINER_CARTER 345
-#define TRAINER_ELLIOT_2 346
-#define TRAINER_ELLIOT_3 347
-#define TRAINER_ELLIOT_4 348
-#define TRAINER_ELLIOT_5 349
-#define TRAINER_RONALD 350
-#define TRAINER_JACOB 351
-#define TRAINER_ANTHONY 352
-#define TRAINER_BENJAMIN_1 353
-#define TRAINER_BENJAMIN_2 354
-#define TRAINER_BENJAMIN_3 355
-#define TRAINER_BENJAMIN_4 356
-#define TRAINER_BENJAMIN_5 357
-#define TRAINER_ABIGAIL_1 358
-#define TRAINER_JASMINE 359
-#define TRAINER_ABIGAIL_2 360
-#define TRAINER_ABIGAIL_3 361
-#define TRAINER_ABIGAIL_4 362
-#define TRAINER_ABIGAIL_5 363
-#define TRAINER_DYLAN_1 364
-#define TRAINER_DYLAN_2 365
-#define TRAINER_DYLAN_3 366
-#define TRAINER_DYLAN_4 367
-#define TRAINER_DYLAN_5 368
-#define TRAINER_MARIA_1 369
-#define TRAINER_MARIA_2 370
-#define TRAINER_MARIA_3 371
-#define TRAINER_MARIA_4 372
-#define TRAINER_MARIA_5 373
-#define TRAINER_CAMDEN 374
-#define TRAINER_DEMETRIUS 375
-#define TRAINER_ISAIAH_1 376
-#define TRAINER_PABLO_1 377
-#define TRAINER_CHASE 378
-#define TRAINER_ISAIAH_2 379
-#define TRAINER_ISAIAH_3 380
-#define TRAINER_ISAIAH_4 381
-#define TRAINER_ISAIAH_5 382
-#define TRAINER_ISOBEL 383
-#define TRAINER_DONNY 384
-#define TRAINER_TALIA 385
-#define TRAINER_KATELYN_1 386
-#define TRAINER_ALLISON 387
-#define TRAINER_KATELYN_2 388
-#define TRAINER_KATELYN_3 389
-#define TRAINER_KATELYN_4 390
-#define TRAINER_KATELYN_5 391
-#define TRAINER_NICOLAS_1 392
-#define TRAINER_NICOLAS_2 393
-#define TRAINER_NICOLAS_3 394
-#define TRAINER_NICOLAS_4 395
-#define TRAINER_NICOLAS_5 396
-#define TRAINER_AARON 397
-#define TRAINER_PERRY 398
-#define TRAINER_HUGH 399
-#define TRAINER_PHIL 400
-#define TRAINER_JARED 401
-#define TRAINER_HUMBERTO 402
-#define TRAINER_PRESLEY 403
-#define TRAINER_EDWARDO 404
-#define TRAINER_COLIN 405
-#define TRAINER_ROBERT_1 406
-#define TRAINER_BENNY 407
-#define TRAINER_CHESTER 408
-#define TRAINER_ROBERT_2 409
-#define TRAINER_ROBERT_3 410
-#define TRAINER_ROBERT_4 411
-#define TRAINER_ROBERT_5 412
-#define TRAINER_ALEX 413
-#define TRAINER_BECK 414
-#define TRAINER_YASU 415
-#define TRAINER_TAKASHI 416
-#define TRAINER_DIANNE 417
-#define TRAINER_JANI 418
-#define TRAINER_LAO_1 419
-#define TRAINER_LUNG 420
-#define TRAINER_LAO_2 421
-#define TRAINER_LAO_3 422
-#define TRAINER_LAO_4 423
-#define TRAINER_LAO_5 424
-#define TRAINER_JOCELYN 425
-#define TRAINER_LAURA 426
-#define TRAINER_CYNDY_1 427
-#define TRAINER_CORA 428
-#define TRAINER_PAULA 429
-#define TRAINER_CYNDY_2 430
-#define TRAINER_CYNDY_3 431
-#define TRAINER_CYNDY_4 432
-#define TRAINER_CYNDY_5 433
-#define TRAINER_MADELINE_1 434
-#define TRAINER_CLARISSA 435
-#define TRAINER_ANGELICA 436
-#define TRAINER_MADELINE_2 437
-#define TRAINER_MADELINE_3 438
-#define TRAINER_MADELINE_4 439
-#define TRAINER_MADELINE_5 440
-#define TRAINER_BEVERLY 441
-#define TRAINER_IMANI 442
-#define TRAINER_KYLA 443
-#define TRAINER_DENISE 444
-#define TRAINER_BETH 445
-#define TRAINER_TARA 446
-#define TRAINER_MISSY 447
-#define TRAINER_ALICE 448
-#define TRAINER_JENNY_1 449
-#define TRAINER_GRACE 450
-#define TRAINER_TANYA 451
-#define TRAINER_SHARON 452
-#define TRAINER_NIKKI 453
-#define TRAINER_BRENDA 454
-#define TRAINER_KATIE 455
-#define TRAINER_SUSIE 456
-#define TRAINER_KARA 457
-#define TRAINER_DANA 458
-#define TRAINER_SIENNA 459
-#define TRAINER_DEBRA 460
-#define TRAINER_LINDA 461
-#define TRAINER_KAYLEE 462
-#define TRAINER_LAUREL 463
-#define TRAINER_CARLEE 464
-#define TRAINER_JENNY_2 465
-#define TRAINER_JENNY_3 466
-#define TRAINER_JENNY_4 467
-#define TRAINER_JENNY_5 468
-#define TRAINER_HEIDI 469
-#define TRAINER_BECKY 470
-#define TRAINER_CAROL 471
-#define TRAINER_NANCY 472
-#define TRAINER_MARTHA 473
-#define TRAINER_DIANA_1 474
-#define TRAINER_CEDRIC 475
-#define TRAINER_IRENE 476
-#define TRAINER_DIANA_2 477
-#define TRAINER_DIANA_3 478
-#define TRAINER_DIANA_4 479
-#define TRAINER_DIANA_5 480
-#define TRAINER_AMY_AND_LIV_1 481
-#define TRAINER_AMY_AND_LIV_2 482
-#define TRAINER_GINA_AND_MIA_1 483
-#define TRAINER_MIU_AND_YUKI 484
-#define TRAINER_AMY_AND_LIV_3 485
-#define TRAINER_GINA_AND_MIA_2 486
-#define TRAINER_AMY_AND_LIV_4 487
-#define TRAINER_AMY_AND_LIV_5 488
-#define TRAINER_AMY_AND_LIV_6 489
-#define TRAINER_HUEY 490
-#define TRAINER_EDMOND 491
-#define TRAINER_ERNEST_1 492
-#define TRAINER_DWAYNE 493
-#define TRAINER_PHILLIP 494
-#define TRAINER_LEONARD 495
-#define TRAINER_DUNCAN 496
-#define TRAINER_ERNEST_2 497
-#define TRAINER_ERNEST_3 498
-#define TRAINER_ERNEST_4 499
-#define TRAINER_ERNEST_5 500
-#define TRAINER_ELI 501
-#define TRAINER_ANNIKA 502
-#define TRAINER_JAZMYN 503
-#define TRAINER_JONAS 504
-#define TRAINER_KAYLEY 505
-#define TRAINER_AURON 506
-#define TRAINER_KELVIN 507
-#define TRAINER_MARLEY 508
-#define TRAINER_REYNA 509
-#define TRAINER_HUDSON 510
-#define TRAINER_CONOR 511
-#define TRAINER_EDWIN_1 512
-#define TRAINER_HECTOR 513
-#define TRAINER_TABITHA_1 514
-#define TRAINER_EDWIN_2 515
-#define TRAINER_EDWIN_3 516
-#define TRAINER_EDWIN_4 517
-#define TRAINER_EDWIN_5 518
-#define TRAINER_WALLY_1 519
-#define TRAINER_BRENDAN_1 520
-#define TRAINER_BRENDAN_2 521
-#define TRAINER_BRENDAN_3 522
-#define TRAINER_BRENDAN_4 523
-#define TRAINER_BRENDAN_5 524
-#define TRAINER_BRENDAN_6 525
-#define TRAINER_BRENDAN_7 526
-#define TRAINER_BRENDAN_8 527
-#define TRAINER_BRENDAN_9 528
-#define TRAINER_MAY_1 529
-#define TRAINER_MAY_2 530
-#define TRAINER_MAY_3 531
-#define TRAINER_MAY_4 532
-#define TRAINER_MAY_5 533
-#define TRAINER_MAY_6 534
-#define TRAINER_MAY_7 535
-#define TRAINER_MAY_8 536
-#define TRAINER_MAY_9 537
-#define TRAINER_ISAAC_1 538
-#define TRAINER_DAVIS 539
-#define TRAINER_MITCHELL 540
-#define TRAINER_ISAAC_2 541
-#define TRAINER_ISAAC_3 542
-#define TRAINER_ISAAC_4 543
-#define TRAINER_ISAAC_5 544
-#define TRAINER_LYDIA_1 545
-#define TRAINER_HALLE 546
-#define TRAINER_GARRISON 547
-#define TRAINER_LYDIA_2 548
-#define TRAINER_LYDIA_3 549
-#define TRAINER_LYDIA_4 550
-#define TRAINER_LYDIA_5 551
-#define TRAINER_JACKSON_1 552
-#define TRAINER_LORENZO 553
-#define TRAINER_SEBASTIAN 554
-#define TRAINER_JACKSON_2 555
-#define TRAINER_JACKSON_3 556
-#define TRAINER_JACKSON_4 557
-#define TRAINER_JACKSON_5 558
-#define TRAINER_CATHERINE_1 559
-#define TRAINER_JENNA 560
-#define TRAINER_SOPHIA 561
-#define TRAINER_CATHERINE_2 562
-#define TRAINER_CATHERINE_3 563
-#define TRAINER_CATHERINE_4 564
-#define TRAINER_CATHERINE_5 565
-#define TRAINER_JULIO 566
-#define TRAINER_GRUNT_27 567
-#define TRAINER_GRUNT_28 568
-#define TRAINER_GRUNT_29 569
-#define TRAINER_GRUNT_30 570
-#define TRAINER_MARC 571
-#define TRAINER_BRENDEN 572
-#define TRAINER_LILITH 573
-#define TRAINER_CRISTIAN 574
-#define TRAINER_SYLVIA 575
-#define TRAINER_LEONARDO 576
-#define TRAINER_ATHENA 577
-#define TRAINER_HARRISON 578
-#define TRAINER_GRUNT_31 579
-#define TRAINER_CLARENCE 580
-#define TRAINER_TERRY 581
-#define TRAINER_NATE 582
-#define TRAINER_KATHLEEN 583
-#define TRAINER_CLIFFORD 584
-#define TRAINER_NICHOLAS 585
-#define TRAINER_GRUNT_32 586
-#define TRAINER_GRUNT_33 587
-#define TRAINER_GRUNT_34 588
-#define TRAINER_GRUNT_35 589
-#define TRAINER_GRUNT_36 590
-#define TRAINER_MACEY 591
-#define TRAINER_BRENDAN_10 592
-#define TRAINER_BRENDAN_11 593
-#define TRAINER_PAXTON 594
-#define TRAINER_ISABELLA 595
-#define TRAINER_GRUNT_37 596
-#define TRAINER_TABITHA_2 597
-#define TRAINER_JONATHAN 598
-#define TRAINER_BRENDAN_12 599
-#define TRAINER_MAY_10 600
-#define TRAINER_MAXIE_1 601
-#define TRAINER_MAXIE_2 602
-#define TRAINER_TIANA 603
-#define TRAINER_HALEY_1 604
-#define TRAINER_JANICE 605
-#define TRAINER_VIVI 606
-#define TRAINER_HALEY_2 607
-#define TRAINER_HALEY_3 608
-#define TRAINER_HALEY_4 609
-#define TRAINER_HALEY_5 610
-#define TRAINER_SALLY 611
-#define TRAINER_ROBIN 612
-#define TRAINER_ANDREA 613
-#define TRAINER_CRISSY 614
-#define TRAINER_RICK 615
-#define TRAINER_LYLE 616
-#define TRAINER_JOSE 617
-#define TRAINER_DOUG 618
-#define TRAINER_GREG 619
-#define TRAINER_KENT 620
-#define TRAINER_JAMES_1 621
-#define TRAINER_JAMES_2 622
-#define TRAINER_JAMES_3 623
-#define TRAINER_JAMES_4 624
-#define TRAINER_JAMES_5 625
-#define TRAINER_BRICE 626
-#define TRAINER_TRENT_1 627
-#define TRAINER_LENNY 628
-#define TRAINER_LUCAS_1 629
-#define TRAINER_ALAN 630
-#define TRAINER_CLARK 631
-#define TRAINER_ERIC 632
-#define TRAINER_LUCAS_2 633
-#define TRAINER_MIKE_1 634
-#define TRAINER_MIKE_2 635
-#define TRAINER_TRENT_2 636
-#define TRAINER_TRENT_3 637
-#define TRAINER_TRENT_4 638
-#define TRAINER_TRENT_5 639
-#define TRAINER_DEZ_AND_LUKE 640
-#define TRAINER_LEA_AND_JED 641
-#define TRAINER_KIRA_AND_DAN_1 642
-#define TRAINER_KIRA_AND_DAN_2 643
-#define TRAINER_KIRA_AND_DAN_3 644
-#define TRAINER_KIRA_AND_DAN_4 645
-#define TRAINER_KIRA_AND_DAN_5 646
-#define TRAINER_JOHANNA 647
-#define TRAINER_GERALD 648
-#define TRAINER_VIVIAN 649
-#define TRAINER_DANIELLE 650
-#define TRAINER_HIDEO 651
-#define TRAINER_KEIGO 652
-#define TRAINER_RILEY 653
-#define TRAINER_FLINT 654
-#define TRAINER_ASHLEY 655
-#define TRAINER_WALLY_2 656
-#define TRAINER_WALLY_3 657
-#define TRAINER_WALLY_4 658
-#define TRAINER_WALLY_5 659
-#define TRAINER_WALLY_6 660
-#define TRAINER_BRENDAN_13 661
-#define TRAINER_BRENDAN_14 662
-#define TRAINER_BRENDAN_15 663
-#define TRAINER_MAY_11 664
-#define TRAINER_MAY_12 665
-#define TRAINER_MAY_13 666
-#define TRAINER_JONAH 667
-#define TRAINER_HENRY 668
-#define TRAINER_ROGER 669
-#define TRAINER_ALEXA 670
-#define TRAINER_RUBEN 671
-#define TRAINER_KOJI_1 672
-#define TRAINER_WAYNE 673
-#define TRAINER_AIDAN 674
-#define TRAINER_REED 675
-#define TRAINER_TISHA 676
-#define TRAINER_TORI_AND_TIA 677
-#define TRAINER_KIM_AND_IRIS 678
-#define TRAINER_TYRA_AND_IVY 679
-#define TRAINER_MEL_AND_PAUL 680
-#define TRAINER_JOHN_AND_JAY_1 681
-#define TRAINER_JOHN_AND_JAY_2 682
-#define TRAINER_JOHN_AND_JAY_3 683
-#define TRAINER_JOHN_AND_JAY_4 684
-#define TRAINER_JOHN_AND_JAY_5 685
-#define TRAINER_RELI_AND_IAN 686
-#define TRAINER_LILA_AND_ROY_1 687
-#define TRAINER_LILA_AND_ROY_2 688
-#define TRAINER_LILA_AND_ROY_3 689
-#define TRAINER_LILA_AND_ROY_4 690
-#define TRAINER_LILA_AND_ROY_5 691
-#define TRAINER_LISA_AND_RAY 692
-#define TRAINER_CHRIS 693
-#define TRAINER_DAWSON 694
-#define TRAINER_SARAH 695
-#define TRAINER_DARIAN 696
-#define TRAINER_HAILEY 697
-#define TRAINER_CHANDLER 698
-#define TRAINER_KALEB 699
-#define TRAINER_JOSEPH 700
-#define TRAINER_ALYSSA 701
-#define TRAINER_MARCOS 702
-#define TRAINER_RHETT 703
-#define TRAINER_TYRON 704
-#define TRAINER_CELINA 705
-#define TRAINER_BIANCA 706
-#define TRAINER_HAYDEN 707
-#define TRAINER_SOPHIE 708
-#define TRAINER_COBY 709
-#define TRAINER_LAWRENCE 710
-#define TRAINER_WYATT 711
-#define TRAINER_ANGELINA 712
-#define TRAINER_KAI 713
-#define TRAINER_CHARLOTTE 714
-#define TRAINER_DEANDRE 715
-#define TRAINER_GRUNT_38 716
-#define TRAINER_GRUNT_39 717
-#define TRAINER_GRUNT_40 718
-#define TRAINER_GRUNT_41 719
-#define TRAINER_GRUNT_42 720
-#define TRAINER_GRUNT_43 721
-#define TRAINER_GRUNT_44 722
-#define TRAINER_GRUNT_45 723
-#define TRAINER_GRUNT_46 724
-#define TRAINER_GRUNT_47 725
-#define TRAINER_GRUNT_48 726
-#define TRAINER_GRUNT_49 727
-#define TRAINER_GRUNT_50 728
-#define TRAINER_GRUNT_51 729
-#define TRAINER_GRUNT_52 730
-#define TRAINER_GRUNT_53 731
-#define TRAINER_TABITHA_3 732
-#define TRAINER_DARCY 733
-#define TRAINER_MAXIE_3 734
-#define TRAINER_PETE 735
-#define TRAINER_ISABELLE 736
-#define TRAINER_ANDRES_1 737
-#define TRAINER_JOSUE 738
-#define TRAINER_CAMRON 739
-#define TRAINER_CORY_1 740
-#define TRAINER_CAROLINA 741
-#define TRAINER_ELIJAH 742
-#define TRAINER_CELIA 743
-#define TRAINER_BRYAN 744
-#define TRAINER_BRANDEN 745
-#define TRAINER_BRYANT 746
-#define TRAINER_SHAYLA 747
-#define TRAINER_KYRA 748
-#define TRAINER_JAIDEN 749
-#define TRAINER_ALIX 750
-#define TRAINER_HELENE 751
-#define TRAINER_MARLENE 752
-#define TRAINER_DEVAN 753
-#define TRAINER_JOHNSON 754
-#define TRAINER_MELINA 755
-#define TRAINER_BRANDI 756
-#define TRAINER_AISHA 757
-#define TRAINER_MAKAYLA 758
-#define TRAINER_FABIAN 759
-#define TRAINER_DAYTON 760
-#define TRAINER_RACHEL 761
-#define TRAINER_LEONEL 762
-#define TRAINER_CALLIE 763
-#define TRAINER_CALE 764
-#define TRAINER_MYLES 765
-#define TRAINER_PAT 766
-#define TRAINER_CRISTIN_1 767
-#define TRAINER_MAY_14 768
-#define TRAINER_MAY_15 769
-#define TRAINER_ROXANNE_2 770
-#define TRAINER_ROXANNE_3 771
-#define TRAINER_ROXANNE_4 772
-#define TRAINER_ROXANNE_5 773
-#define TRAINER_BRAWLY_2 774
-#define TRAINER_BRAWLY_3 775
-#define TRAINER_BRAWLY_4 776
-#define TRAINER_BRAWLY_5 777
-#define TRAINER_WATTSON_2 778
-#define TRAINER_WATTSON_3 779
-#define TRAINER_WATTSON_4 780
-#define TRAINER_WATTSON_5 781
-#define TRAINER_FLANNERY_2 782
-#define TRAINER_FLANNERY_3 783
-#define TRAINER_FLANNERY_4 784
-#define TRAINER_FLANNERY_5 785
-#define TRAINER_NORMAN_2 786
-#define TRAINER_NORMAN_3 787
-#define TRAINER_NORMAN_4 788
-#define TRAINER_NORMAN_5 789
-#define TRAINER_WINONA_2 790
-#define TRAINER_WINONA_3 791
-#define TRAINER_WINONA_4 792
-#define TRAINER_WINONA_5 793
-#define TRAINER_TATE_AND_LIZA_2 794
-#define TRAINER_TATE_AND_LIZA_3 795
-#define TRAINER_TATE_AND_LIZA_4 796
-#define TRAINER_TATE_AND_LIZA_5 797
-#define TRAINER_JUAN_2 798
-#define TRAINER_JUAN_3 799
-#define TRAINER_JUAN_4 800
-#define TRAINER_JUAN_5 801
-#define TRAINER_ANGELO 802
-#define TRAINER_DARIUS 803
-#define TRAINER_STEVEN 804
-#define TRAINER_ANABEL 805
-#define TRAINER_TUCKER 806
-#define TRAINER_SPENSER 807
-#define TRAINER_GRETA 808
-#define TRAINER_NOLAND 809
-#define TRAINER_LUCY 810
-#define TRAINER_BRANDON 811
-#define TRAINER_ANDRES_2 812
-#define TRAINER_ANDRES_3 813
-#define TRAINER_ANDRES_4 814
-#define TRAINER_ANDRES_5 815
-#define TRAINER_CORY_2 816
-#define TRAINER_CORY_3 817
-#define TRAINER_CORY_4 818
-#define TRAINER_CORY_5 819
-#define TRAINER_PABLO_2 820
-#define TRAINER_PABLO_3 821
-#define TRAINER_PABLO_4 822
-#define TRAINER_PABLO_5 823
-#define TRAINER_KOJI_2 824
-#define TRAINER_KOJI_3 825
-#define TRAINER_KOJI_4 826
-#define TRAINER_KOJI_5 827
-#define TRAINER_CRISTIN_2 828
-#define TRAINER_CRISTIN_3 829
-#define TRAINER_CRISTIN_4 830
-#define TRAINER_CRISTIN_5 831
-#define TRAINER_FERNANDO_2 832
-#define TRAINER_FERNANDO_3 833
-#define TRAINER_FERNANDO_4 834
-#define TRAINER_FERNANDO_5 835
-#define TRAINER_SAWYER_2 836
-#define TRAINER_SAWYER_3 837
-#define TRAINER_SAWYER_4 838
-#define TRAINER_SAWYER_5 839
-#define TRAINER_GABRIELLE_2 840
-#define TRAINER_GABRIELLE_3 841
-#define TRAINER_GABRIELLE_4 842
-#define TRAINER_GABRIELLE_5 843
-#define TRAINER_THALIA_2 844
-#define TRAINER_THALIA_3 845
-#define TRAINER_THALIA_4 846
-#define TRAINER_THALIA_5 847
-#define TRAINER_MARIELA 848
-#define TRAINER_ALVARO 849
-#define TRAINER_EVERETT 850
-#define TRAINER_RED 851
-#define TRAINER_LEAF 852
-#define TRAINER_BRENDAN_16 853
-#define TRAINER_MAY_16 854
+#include "constants/opponents.h"
-#define NO_OF_TRAINERS 854
+// Special Trainer Ids.
+#define TRAINER_FRONTIER_BRAIN 1022
+#define TRAINER_SECRET_BASE 1024
+#define TRAINER_LINK_OPPONENT 2048
+#define TRAINER_OPPONENT_C00 3072
+#define TRAINER_STEVEN_PARTNER 3075
#define TRAINER_PIC_HIKER 0
#define TRAINER_PIC_AQUA_GRUNT_M 1
@@ -953,6 +104,15 @@
#define TRAINER_PIC_RUBY_SAPPHIRE_BRENDAN 91
#define TRAINER_PIC_RUBY_SAPPHIRE_MAY 92
+#define TRAINER_BACK_PIC_BRENDAN 0
+#define TRAINER_BACK_PIC_MAY 1
+#define TRAINER_BACK_PIC_RED 2
+#define TRAINER_BACK_PIC_LEAF 3
+#define TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN 4
+#define TRAINER_BACK_PIC_RUBY_SAPPHIRE_MAY 5
+#define TRAINER_BACK_PIC_WALLY 6
+#define TRAINER_BACK_PIC_STEVEN 7
+
#define FACILITY_CLASS_HIKER 0x0
#define FACILITY_CLASS_TEAM_AQUA_1 0x1
#define FACILITY_CLASS_PKMN_BREEDER_1 0x2
diff --git a/include/constants/vars.h b/include/constants/vars.h
index be21f1730..7cf232efe 100644
--- a/include/constants/vars.h
+++ b/include/constants/vars.h
@@ -3,48 +3,59 @@
#define VAR_0x3F20 0x3F20
-#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_0x400B 0x400B
-#define VAR_0x400C 0x400C
-#define VAR_0x400D 0x400D
-#define VAR_0x400E 0x400E
-#define VAR_0x400F 0x400F
-#define VAR_0x4010 0x4010
-#define VAR_0x4011 0x4011
-#define VAR_0x4012 0x4012
-#define VAR_0x4013 0x4013
-#define VAR_0x4014 0x4014
-#define VAR_0x4015 0x4015
-#define VAR_0x4016 0x4016
-#define VAR_0x4017 0x4017
-#define VAR_0x4018 0x4018
-#define VAR_0x4019 0x4019
-#define VAR_0x401A 0x401A
-#define VAR_0x401B 0x401B
-#define VAR_0x401C 0x401C
-#define VAR_0x401D 0x401D
-#define VAR_0x401E 0x401E
-#define VAR_0x401F 0x401F
+#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 VarGetEventObjectGraphicsId().
+#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_FIRST_POKE 0x4023
+#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_0x4027 0x4027
-#define VAR_0x4028 0x4028
-#define VAR_0x4029 0x4029
+#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
@@ -70,8 +81,8 @@
#define VAR_ALTERING_CAVE_WILD_SET 0x403E
#define VAR_0x403F 0x403F
#define VAR_DAYS 0x4040
-#define VAR_0x4041 0x4041
-#define VAR_0x4042 0x4042
+#define VAR_FANCLUB_UNKNOWN_1 0x4041
+#define VAR_FANCLUB_UNKNOWN_2 0x4042
#define VAR_DEPT_STORE_FLOOR 0x4043
#define VAR_0x4044 0x4044
#define VAR_POKELOT_PRIZE 0x4045
@@ -154,12 +165,12 @@
#define VAR_0x4092 0x4092
#define VAR_0x4093 0x4093
#define VAR_0x4094 0x4094
-#define VAR_0x4095 0x4095
+#define VAR_LILYCOVE_FAN_CLUB_STATE 0x4095
#define VAR_0x4096 0x4096
#define VAR_0x4097 0x4097
#define VAR_0x4098 0x4098
#define VAR_0x4099 0x4099
-#define VAR_0x409A 0x409A
+#define VAR_RUSTURF_TUNNEL_STATE 0x409A
#define VAR_0x409B 0x409B
#define VAR_0x409C 0x409C
#define VAR_0x409D 0x409D
@@ -174,7 +185,7 @@
#define VAR_0x40A6 0x40A6
#define VAR_0x40A7 0x40A7
#define VAR_0x40A8 0x40A8
-#define VAR_0x40A9 0x40A9
+#define VAR_CYCLING_CHALLENGE_STATE 0x40A9
#define VAR_0x40AA 0x40AA
#define VAR_0x40AB 0x40AB
#define VAR_0x40AC 0x40AC
@@ -185,7 +196,7 @@
#define VAR_0x40B1 0x40B1
#define VAR_0x40B2 0x40B2
#define VAR_WEATHER_INSTITUTE_STATE 0x40B3
-#define VAR_PORTHOLE 0x40B4
+#define VAR_PORTHOLE_STATE 0x40B4
#define VAR_0x40B5 0x40B5
#define VAR_0x40B6 0x40B6
#define VAR_0x40B7 0x40B7
@@ -199,7 +210,7 @@
#define VAR_0x40BF 0x40BF
#define VAR_0x40C0 0x40C0
#define VAR_0x40C1 0x40C1
-#define VAR_0x40C2 0x40C2
+#define VAR_PACIFIDLOG_TM_RECEIVED_DAY 0x40C2
#define VAR_0x40C3 0x40C3
#define VAR_0x40C4 0x40C4
#define VAR_0x40C5 0x40C5
@@ -262,6 +273,8 @@
#define VAR_0x40FE 0x40FE
#define VAR_0x40FF 0x40FF
+// special vars
+// They are commonly used as parameters to commands, or return values from commands.
#define VAR_0x8000 0x8000
#define VAR_0x8001 0x8001
#define VAR_0x8002 0x8002
diff --git a/include/contest.h b/include/contest.h
index d920117f3..c263882eb 100644
--- a/include/contest.h
+++ b/include/contest.h
@@ -1,6 +1,21 @@
#ifndef GUARD_CONTEST_H
#define GUARD_CONTEST_H
+struct ContestMove
+{
+ u8 effect;
+ u8 contestCategory:3;
+ u8 comboStarterId;
+ u8 comboMoves[4];
+};
+
+struct ContestEffect
+{
+ u8 effectType;
+ u8 appeal;
+ u8 jam;
+};
+
struct ContestStruct_02039E00
{
u16 unk_00;
diff --git a/include/data/battle_moves.h b/include/data/battle_moves.h
index 6489fe07f..00a6f7fdb 100644
--- a/include/data/battle_moves.h
+++ b/include/data/battle_moves.h
@@ -1,7 +1,7 @@
#ifndef GUARD_DATA_BATTLE_MOVES
#define GUARD_DATA_BATTLE_MOVES
-const struct BattleMove gBattleMoves[LAST_MOVE_INDEX + 1] =
+const struct BattleMove gBattleMoves[MOVES_COUNT] =
{
{ // MOVE_NONE
.effect = EFFECT_HIT,
diff --git a/include/data/decoration/tiles.h b/include/data/decoration/tiles.h
index 9a3f8a222..6b3ed699f 100644
--- a/include/data/decoration/tiles.h
+++ b/include/data/decoration/tiles.h
@@ -464,183 +464,183 @@ const u16 DecorGfx_KISS_POSTER[] = {
};
const u16 DecorGfx_PICHU_DOLL[] = {
- MAP_OBJ_GFX_PICHU_DOLL
+ EVENT_OBJ_GFX_PICHU_DOLL
};
const u16 DecorGfx_PIKACHU_DOLL[] = {
- MAP_OBJ_GFX_PIKACHU_DOLL
+ EVENT_OBJ_GFX_PIKACHU_DOLL
};
const u16 DecorGfx_MARILL_DOLL[] = {
- MAP_OBJ_GFX_MARILL_DOLL
+ EVENT_OBJ_GFX_MARILL_DOLL
};
const u16 DecorGfx_TOGEPI_DOLL[] = {
- MAP_OBJ_GFX_TOGEPI_DOLL
+ EVENT_OBJ_GFX_TOGEPI_DOLL
};
const u16 DecorGfx_CYNDAQUIL_DOLL[] = {
- MAP_OBJ_GFX_CYNDAQUIL_DOLL
+ EVENT_OBJ_GFX_CYNDAQUIL_DOLL
};
const u16 DecorGfx_CHIKORITA_DOLL[] = {
- MAP_OBJ_GFX_CHIKORITA_DOLL
+ EVENT_OBJ_GFX_CHIKORITA_DOLL
};
const u16 DecorGfx_TOTODILE_DOLL[] = {
- MAP_OBJ_GFX_TOTODILE_DOLL
+ EVENT_OBJ_GFX_TOTODILE_DOLL
};
const u16 DecorGfx_JIGGLYPUFF_DOLL[] = {
- MAP_OBJ_GFX_JIGGLYPUFF_DOLL
+ EVENT_OBJ_GFX_JIGGLYPUFF_DOLL
};
const u16 DecorGfx_MEOWTH_DOLL[] = {
- MAP_OBJ_GFX_MEOWTH_DOLL
+ EVENT_OBJ_GFX_MEOWTH_DOLL
};
const u16 DecorGfx_CLEFAIRY_DOLL[] = {
- MAP_OBJ_GFX_CLEFAIRY_DOLL
+ EVENT_OBJ_GFX_CLEFAIRY_DOLL
};
const u16 DecorGfx_DITTO_DOLL[] = {
- MAP_OBJ_GFX_DITTO_DOLL
+ EVENT_OBJ_GFX_DITTO_DOLL
};
const u16 DecorGfx_SMOOCHUM_DOLL[] = {
- MAP_OBJ_GFX_SMOOCHUM_DOLL
+ EVENT_OBJ_GFX_SMOOCHUM_DOLL
};
const u16 DecorGfx_TREECKO_DOLL[] = {
- MAP_OBJ_GFX_TREECKO_DOLL
+ EVENT_OBJ_GFX_TREECKO_DOLL
};
const u16 DecorGfx_TORCHIC_DOLL[] = {
- MAP_OBJ_GFX_TORCHIC_DOLL
+ EVENT_OBJ_GFX_TORCHIC_DOLL
};
const u16 DecorGfx_MUDKIP_DOLL[] = {
- MAP_OBJ_GFX_MUDKIP_DOLL
+ EVENT_OBJ_GFX_MUDKIP_DOLL
};
const u16 DecorGfx_DUSKULL_DOLL[] = {
- MAP_OBJ_GFX_DUSKULL_DOLL
+ EVENT_OBJ_GFX_DUSKULL_DOLL
};
const u16 DecorGfx_WYNAUT_DOLL[] = {
- MAP_OBJ_GFX_WYNAUT_DOLL
+ EVENT_OBJ_GFX_WYNAUT_DOLL
};
const u16 DecorGfx_BALTOY_DOLL[] = {
- MAP_OBJ_GFX_BALTOY_DOLL
+ EVENT_OBJ_GFX_BALTOY_DOLL
};
const u16 DecorGfx_KECLEON_DOLL[] = {
- MAP_OBJ_GFX_KECLEON_DOLL
+ EVENT_OBJ_GFX_KECLEON_DOLL
};
const u16 DecorGfx_AZURILL_DOLL[] = {
- MAP_OBJ_GFX_AZURILL_DOLL
+ EVENT_OBJ_GFX_AZURILL_DOLL
};
const u16 DecorGfx_SKITTY_DOLL[] = {
- MAP_OBJ_GFX_SKITTY_DOLL
+ EVENT_OBJ_GFX_SKITTY_DOLL
};
const u16 DecorGfx_SWABLU_DOLL[] = {
- MAP_OBJ_GFX_SWABLU_DOLL
+ EVENT_OBJ_GFX_SWABLU_DOLL
};
const u16 DecorGfx_GULPIN_DOLL[] = {
- MAP_OBJ_GFX_GULPIN_DOLL
+ EVENT_OBJ_GFX_GULPIN_DOLL
};
const u16 DecorGfx_LOTAD_DOLL[] = {
- MAP_OBJ_GFX_LOTAD_DOLL
+ EVENT_OBJ_GFX_LOTAD_DOLL
};
const u16 DecorGfx_SEEDOT_DOLL[] = {
- MAP_OBJ_GFX_SEEDOT_DOLL
+ EVENT_OBJ_GFX_SEEDOT_DOLL
};
const u16 DecorGfx_PIKA_CUSHION[] = {
- MAP_OBJ_GFX_PIKA_CUSHION
+ EVENT_OBJ_GFX_PIKA_CUSHION
};
const u16 DecorGfx_ROUND_CUSHION[] = {
- MAP_OBJ_GFX_ROUND_CUSHION
+ EVENT_OBJ_GFX_ROUND_CUSHION
};
const u16 DecorGfx_KISS_CUSHION[] = {
- MAP_OBJ_GFX_KISS_CUSHION
+ EVENT_OBJ_GFX_KISS_CUSHION
};
const u16 DecorGfx_ZIGZAG_CUSHION[] = {
- MAP_OBJ_GFX_ZIGZAG_CUSHION
+ EVENT_OBJ_GFX_ZIGZAG_CUSHION
};
const u16 DecorGfx_SPIN_CUSHION[] = {
- MAP_OBJ_GFX_SPIN_CUSHION
+ EVENT_OBJ_GFX_SPIN_CUSHION
};
const u16 DecorGfx_DIAMOND_CUSHION[] = {
- MAP_OBJ_GFX_DIAMOND_CUSHION
+ EVENT_OBJ_GFX_DIAMOND_CUSHION
};
const u16 DecorGfx_BALL_CUSHION[] = {
- MAP_OBJ_GFX_BALL_CUSHION
+ EVENT_OBJ_GFX_BALL_CUSHION
};
const u16 DecorGfx_GRASS_CUSHION[] = {
- MAP_OBJ_GFX_GRASS_CUSHION
+ EVENT_OBJ_GFX_GRASS_CUSHION
};
const u16 DecorGfx_FIRE_CUSHION[] = {
- MAP_OBJ_GFX_FIRE_CUSHION
+ EVENT_OBJ_GFX_FIRE_CUSHION
};
const u16 DecorGfx_WATER_CUSHION[] = {
- MAP_OBJ_GFX_WATER_CUSHION
+ EVENT_OBJ_GFX_WATER_CUSHION
};
const u16 DecorGfx_SNORLAX_DOLL[] = {
- MAP_OBJ_GFX_BIG_SNORLAX_DOLL
+ EVENT_OBJ_GFX_BIG_SNORLAX_DOLL
};
const u16 DecorGfx_RHYDON_DOLL[] = {
- MAP_OBJ_GFX_BIG_RHYDON_DOLL
+ EVENT_OBJ_GFX_BIG_RHYDON_DOLL
};
const u16 DecorGfx_LAPRAS_DOLL[] = {
- MAP_OBJ_GFX_BIG_LAPRAS_DOLL
+ EVENT_OBJ_GFX_BIG_LAPRAS_DOLL
};
const u16 DecorGfx_VENUSAUR_DOLL[] = {
- MAP_OBJ_GFX_BIG_VENUSAUR_DOLL
+ EVENT_OBJ_GFX_BIG_VENUSAUR_DOLL
};
const u16 DecorGfx_CHARIZARD_DOLL[] = {
- MAP_OBJ_GFX_BIG_CHARIZARD_DOLL
+ EVENT_OBJ_GFX_BIG_CHARIZARD_DOLL
};
const u16 DecorGfx_BLASTOISE_DOLL[] = {
- MAP_OBJ_GFX_BIG_BLASTOISE_DOLL
+ EVENT_OBJ_GFX_BIG_BLASTOISE_DOLL
};
const u16 DecorGfx_WAILMER_DOLL[] = {
- MAP_OBJ_GFX_BIG_WAILMER_DOLL
+ EVENT_OBJ_GFX_BIG_WAILMER_DOLL
};
const u16 DecorGfx_REGIROCK_DOLL[] = {
- MAP_OBJ_GFX_BIG_REGIROCK_DOLL
+ EVENT_OBJ_GFX_BIG_REGIROCK_DOLL
};
const u16 DecorGfx_REGICE_DOLL[] = {
- MAP_OBJ_GFX_BIG_REGICE_DOLL
+ EVENT_OBJ_GFX_BIG_REGICE_DOLL
};
const u16 DecorGfx_REGISTEEL_DOLL[] = {
- MAP_OBJ_GFX_BIG_REGISTEEL_DOLL
+ EVENT_OBJ_GFX_BIG_REGISTEEL_DOLL
};
#endif // GUARD_DATA_DECORATION_TILES
diff --git a/include/data/item_icon_table.h b/include/data/item_icon_table.h
new file mode 100644
index 000000000..0a24c0572
--- /dev/null
+++ b/include/data/item_icon_table.h
@@ -0,0 +1,414 @@
+#ifndef GUARD_DATA_ITEM_ICON_TABLE_H
+#define GUARD_DATA_ITEM_ICON_TABLE_H
+
+#include "global.h"
+#include "graphics.h"
+
+const u8 * const gItemIconTable[][2] =
+{
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+// Pokeballs
+ gItemIcon_MasterBall, gItemIconPalette_MasterBall,
+ gItemIcon_UltraBall, gItemIconPalette_UltraBall,
+ gItemIcon_GreatBall, gItemIconPalette_GreatBall,
+ gItemIcon_PokeBall, gItemIconPalette_PokeBall,
+ gItemIcon_SafariBall, gItemIconPalette_SafariBall,
+ gItemIcon_NetBall, gItemIconPalette_NetBall,
+ gItemIcon_DiveBall, gItemIconPalette_DiveBall,
+ gItemIcon_NestBall, gItemIconPalette_NestBall,
+ gItemIcon_RepeatBall, gItemIconPalette_RepeatBall,
+ gItemIcon_TimerBall, gItemIconPalette_RepeatBall,
+ gItemIcon_LuxuryBall, gItemIconPalette_LuxuryBall,
+ gItemIcon_PremierBall, gItemIconPalette_LuxuryBall,
+// Medicine
+ gItemIcon_Potion, gItemIconPalette_Potion,
+ gItemIcon_Antidote, gItemIconPalette_Antidote,
+ gItemIcon_StatusHeal, gItemIconPalette_BurnHeal,
+ gItemIcon_StatusHeal, gItemIconPalette_IceHeal,
+ gItemIcon_StatusHeal, gItemIconPalette_Awakening,
+ gItemIcon_StatusHeal, gItemIconPalette_ParalyzeHeal,
+ gItemIcon_LargePotion, gItemIconPalette_FullRestore,
+ gItemIcon_LargePotion, gItemIconPalette_MaxPotion,
+ gItemIcon_Potion, gItemIconPalette_HyperPotion,
+ gItemIcon_Potion, gItemIconPalette_SuperPotion,
+ gItemIcon_FullHeal, gItemIconPalette_FullHeal,
+ gItemIcon_Revive, gItemIconPalette_Revive,
+ gItemIcon_MaxRevive, gItemIconPalette_Revive,
+ gItemIcon_FreshWater, gItemIconPalette_FreshWater,
+ gItemIcon_SodaPop, gItemIconPalette_SodaPop,
+ gItemIcon_Lemonade, gItemIconPalette_Lemonade,
+ gItemIcon_MoomooMilk, gItemIconPalette_MoomooMilk,
+ gItemIcon_Powder, gItemIconPalette_EnergyPowder,
+ gItemIcon_EnergyRoot, gItemIconPalette_EnergyRoot,
+ gItemIcon_Powder, gItemIconPalette_HealPowder,
+ gItemIcon_RevivalHerb, gItemIconPalette_RevivalHerb,
+ gItemIcon_Ether, gItemIconPalette_Ether,
+ gItemIcon_Ether, gItemIconPalette_MaxEther,
+ gItemIcon_Ether, gItemIconPalette_Elixir,
+ gItemIcon_Ether, gItemIconPalette_MaxElixir,
+ gItemIcon_LavaCookie, gItemIconPalette_LavaCookieAndLetter,
+ gItemIcon_Flute, gItemIconPalette_BlueFlute,
+ gItemIcon_Flute, gItemIconPalette_YellowFlute,
+ gItemIcon_Flute, gItemIconPalette_RedFlute,
+ gItemIcon_Flute, gItemIconPalette_BlackFlute,
+ gItemIcon_Flute, gItemIconPalette_WhiteFlute,
+ gItemIcon_BerryJuice, gItemIconPalette_BerryJuice,
+ gItemIcon_SacredAsh, gItemIconPalette_SacredAsh,
+// Collectibles
+ gItemIcon_Powder, gItemIconPalette_ShoalSalt,
+ gItemIcon_ShoalShell, gItemIconPalette_Shell,
+ gItemIcon_Shard, gItemIconPalette_RedShard,
+ gItemIcon_Shard, gItemIconPalette_BlueShard,
+ gItemIcon_Shard, gItemIconPalette_YellowShard,
+ gItemIcon_Shard, gItemIconPalette_GreenShard,
+// ????????
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+// Vitamins
+ gItemIcon_HPUp, gItemIconPalette_HPUp,
+ gItemIcon_Vitamin, gItemIconPalette_Protein,
+ gItemIcon_Vitamin, gItemIconPalette_Iron,
+ gItemIcon_Vitamin, gItemIconPalette_Carbos,
+ gItemIcon_Vitamin, gItemIconPalette_Calcium,
+ gItemIcon_RareCandy, gItemIconPalette_RareCandy,
+ gItemIcon_PPUp, gItemIconPalette_PPUp,
+ gItemIcon_Vitamin, gItemIconPalette_Zinc,
+ gItemIcon_PPMax, gItemIconPalette_PPMax,
+// ????????
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+// Battle items
+ gItemIcon_BattleStatItem, gItemIconPalette_GuardSpec,
+ gItemIcon_BattleStatItem, gItemIconPalette_DireHit,
+ gItemIcon_BattleStatItem, gItemIconPalette_XAttack,
+ gItemIcon_BattleStatItem, gItemIconPalette_XDefend,
+ gItemIcon_BattleStatItem, gItemIconPalette_XSpeed,
+ gItemIcon_BattleStatItem, gItemIconPalette_XAccuracy,
+ gItemIcon_BattleStatItem, gItemIconPalette_XSpecial,
+ gItemIcon_PokeDoll, gItemIconPalette_PokeDoll,
+ gItemIcon_FluffyTail, gItemIconPalette_FluffyTail,
+// ????????
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+// Field items
+ gItemIcon_Repel, gItemIconPalette_SuperRepel,
+ gItemIcon_Repel, gItemIconPalette_MaxRepel,
+ gItemIcon_EscapeRope, gItemIconPalette_EscapeRope,
+ gItemIcon_Repel, gItemIconPalette_Repel,
+// ????????
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+// Evolution stones
+ gItemIcon_SunStone, gItemIconPalette_SunStone,
+ gItemIcon_MoonStone, gItemIconPalette_MoonStone,
+ gItemIcon_FireStone, gItemIconPalette_FireStone,
+ gItemIcon_ThunderStone, gItemIconPalette_ThunderStone,
+ gItemIcon_WaterStone, gItemIconPalette_WaterStone,
+ gItemIcon_LeafStone, gItemIconPalette_LeafStone,
+// ????????
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+// Valuables
+ gItemIcon_TinyMushroom, gItemIconPalette_Mushroom,
+ gItemIcon_BigMushroom, gItemIconPalette_Mushroom,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_Pearl, gItemIconPalette_Pearl,
+ gItemIcon_BigPearl, gItemIconPalette_Pearl,
+ gItemIcon_Stardust, gItemIconPalette_Star,
+ gItemIcon_StarPiece, gItemIconPalette_Star,
+ gItemIcon_Nugget, gItemIconPalette_Nugget,
+ gItemIcon_HeartScale, gItemIconPalette_HeartScale,
+// ????????
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+// Mail
+ gItemIcon_OrangeMail, gItemIconPalette_OrangeMail,
+ gItemIcon_HarborMail, gItemIconPalette_HarborMail,
+ gItemIcon_GlitterMail, gItemIconPalette_GlitterMail,
+ gItemIcon_MechMail, gItemIconPalette_MechMail,
+ gItemIcon_WoodMail, gItemIconPalette_WoodMail,
+ gItemIcon_WaveMail, gItemIconPalette_WaveMail,
+ gItemIcon_BeadMail, gItemIconPalette_BeadMail,
+ gItemIcon_ShadowMail, gItemIconPalette_ShadowMail,
+ gItemIcon_TropicMail, gItemIconPalette_TropicMail,
+ gItemIcon_DreamMail, gItemIconPalette_DreamMail,
+ gItemIcon_FabMail, gItemIconPalette_FabMail,
+ gItemIcon_RetroMail, gItemIconPalette_RetroMail,
+// Berries
+ gItemIcon_CheriBerry, gItemIconPalette_CheriBerry,
+ gItemIcon_ChestoBerry, gItemIconPalette_ChestoBerry,
+ gItemIcon_PechaBerry, gItemIconPalette_PechaBerry,
+ gItemIcon_RawstBerry, gItemIconPalette_RawstBerry,
+ gItemIcon_AspearBerry, gItemIconPalette_AspearBerry,
+ gItemIcon_LeppaBerry, gItemIconPalette_LeppaBerry,
+ gItemIcon_OranBerry, gItemIconPalette_OranBerry,
+ gItemIcon_PersimBerry, gItemIconPalette_PersimBerry,
+ gItemIcon_LumBerry, gItemIconPalette_LumBerry,
+ gItemIcon_SitrusBerry, gItemIconPalette_SitrusBerry,
+ gItemIcon_FigyBerry, gItemIconPalette_FigyBerry,
+ gItemIcon_WikiBerry, gItemIconPalette_WikiBerry,
+ gItemIcon_MagoBerry, gItemIconPalette_MagoBerry,
+ gItemIcon_AguavBerry, gItemIconPalette_AguavBerry,
+ gItemIcon_IapapaBerry, gItemIconPalette_IapapaBerry,
+ gItemIcon_RazzBerry, gItemIconPalette_RazzBerry,
+ gItemIcon_BlukBerry, gItemIconPalette_BlukBerry,
+ gItemIcon_NanabBerry, gItemIconPalette_NanabBerry,
+ gItemIcon_WepearBerry, gItemIconPalette_WepearBerry,
+ gItemIcon_PinapBerry, gItemIconPalette_PinapBerry,
+ gItemIcon_PomegBerry, gItemIconPalette_PomegBerry,
+ gItemIcon_KelpsyBerry, gItemIconPalette_KelpsyBerry,
+ gItemIcon_QualotBerry, gItemIconPalette_QualotBerry,
+ gItemIcon_HondewBerry, gItemIconPalette_HondewBerry,
+ gItemIcon_GrepaBerry, gItemIconPalette_GrepaBerry,
+ gItemIcon_TamatoBerry, gItemIconPalette_TamatoBerry,
+ gItemIcon_CornnBerry, gItemIconPalette_CornnBerry,
+ gItemIcon_MagostBerry, gItemIconPalette_MagostBerry,
+ gItemIcon_RabutaBerry, gItemIconPalette_RabutaBerry,
+ gItemIcon_NomelBerry, gItemIconPalette_NomelBerry,
+ gItemIcon_SpelonBerry, gItemIconPalette_SpelonBerry,
+ gItemIcon_PamtreBerry, gItemIconPalette_PamtreBerry,
+ gItemIcon_WatmelBerry, gItemIconPalette_WatmelBerry,
+ gItemIcon_DurinBerry, gItemIconPalette_DurinBerry,
+ gItemIcon_BelueBerry, gItemIconPalette_BelueBerry,
+ gItemIcon_LiechiBerry, gItemIconPalette_LiechiBerry,
+ gItemIcon_GanlonBerry, gItemIconPalette_GanlonBerry,
+ gItemIcon_SalacBerry, gItemIconPalette_SalacBerry,
+ gItemIcon_PetayaBerry, gItemIconPalette_PetayaBerry,
+ gItemIcon_ApicotBerry, gItemIconPalette_ApicotBerry,
+ gItemIcon_LansatBerry, gItemIconPalette_LansatBerry,
+ gItemIcon_StarfBerry, gItemIconPalette_StarfBerry,
+ gItemIcon_EnigmaBerry, gItemIconPalette_EnigmaBerry,
+// ????????
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+// Hold items
+ gItemIcon_BrightPowder, gItemIconPalette_BrightPowder,
+ gItemIcon_InBattleHerb, gItemIconPalette_WhiteHerb,
+ gItemIcon_MachoBrace, gItemIconPalette_MachoBrace,
+ gItemIcon_ExpShare, gItemIconPalette_ExpShare,
+ gItemIcon_QuickClaw, gItemIconPalette_QuickClaw,
+ gItemIcon_SootheBell, gItemIconPalette_SootheBell,
+ gItemIcon_InBattleHerb, gItemIconPalette_MentalHerb,
+ gItemIcon_ChoiceBand, gItemIconPalette_ChoiceBand,
+ gItemIcon_KingsRock, gItemIconPalette_KingsRock,
+ gItemIcon_SilverPowder, gItemIconPalette_SilverPowder,
+ gItemIcon_AmuletCoin, gItemIconPalette_AmuletCoin,
+ gItemIcon_CleanseTag, gItemIconPalette_CleanseTag,
+ gItemIcon_SoulDew, gItemIconPalette_SoulDew,
+ gItemIcon_DeepSeaTooth, gItemIconPalette_DeepSeaTooth,
+ gItemIcon_DeepSeaScale, gItemIconPalette_DeepSeaScale,
+ gItemIcon_SmokeBall, gItemIconPalette_SmokeBall,
+ gItemIcon_Everstone, gItemIconPalette_Everstone,
+ gItemIcon_FocusBand, gItemIconPalette_FocusBand,
+ gItemIcon_LuckyEgg, gItemIconPalette_LuckyEgg,
+ gItemIcon_ScopeLens, gItemIconPalette_ScopeLens,
+ gItemIcon_MetalCoat, gItemIconPalette_MetalCoat,
+ gItemIcon_Leftovers, gItemIconPalette_Leftovers,
+ gItemIcon_DragonScale, gItemIconPalette_DragonScale,
+ gItemIcon_LightBall, gItemIconPalette_LightBall,
+ gItemIcon_SoftSand, gItemIconPalette_SoftSand,
+ gItemIcon_HardStone, gItemIconPalette_HardStone,
+ gItemIcon_MiracleSeed, gItemIconPalette_MiracleSeed,
+ gItemIcon_BlackGlasses, gItemIconPalette_BlackTypeEnhancingItem,
+ gItemIcon_BlackBelt, gItemIconPalette_BlackTypeEnhancingItem,
+ gItemIcon_Magnet, gItemIconPalette_Magnet,
+ gItemIcon_MysticWater, gItemIconPalette_MysticWater,
+ gItemIcon_SharpBeak, gItemIconPalette_SharpBeak,
+ gItemIcon_PoisonBarb, gItemIconPalette_PoisonBarb,
+ gItemIcon_NeverMeltIce, gItemIconPalette_NeverMeltIce,
+ gItemIcon_SpellTag, gItemIconPalette_SpellTag,
+ gItemIcon_TwistedSpoon, gItemIconPalette_TwistedSpoon,
+ gItemIcon_Charcoal, gItemIconPalette_Charcoal,
+ gItemIcon_DragonFang, gItemIconPalette_DragonFang,
+ gItemIcon_SilkScarf, gItemIconPalette_SilkScarf,
+ gItemIcon_UpGrade, gItemIconPalette_UpGrade,
+ gItemIcon_ShellBell, gItemIconPalette_Shell,
+ gItemIcon_SeaIncense, gItemIconPalette_SeaIncense,
+ gItemIcon_LaxIncense, gItemIconPalette_LaxIncense,
+ gItemIcon_LuckyPunch, gItemIconPalette_LuckyPunch,
+ gItemIcon_MetalPowder, gItemIconPalette_MetalPowder,
+ gItemIcon_ThickClub, gItemIconPalette_ThickClub,
+ gItemIcon_Stick, gItemIconPalette_Stick,
+// ????????
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+// Contest hold items
+ gItemIcon_Scarf, gItemIconPalette_RedScarf,
+ gItemIcon_Scarf, gItemIconPalette_BlueScarf,
+ gItemIcon_Scarf, gItemIconPalette_PinkScarf,
+ gItemIcon_Scarf, gItemIconPalette_GreenScarf,
+ gItemIcon_Scarf, gItemIconPalette_YellowScarf,
+// Key items
+ gItemIcon_MachBike, gItemIconPalette_MachBike,
+ gItemIcon_CoinCase, gItemIconPalette_CoinCase,
+ gItemIcon_Itemfinder, gItemIconPalette_Itemfinder,
+ gItemIcon_OldRod, gItemIconPalette_OldRod,
+ gItemIcon_GoodRod, gItemIconPalette_GoodRod,
+ gItemIcon_SuperRod, gItemIconPalette_SuperRod,
+ gItemIcon_SSTicket, gItemIconPalette_SSTicket,
+ gItemIcon_ContestPass, gItemIconPalette_ContestPass,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_WailmerPail, gItemIconPalette_WailmerPail,
+ gItemIcon_DevonGoods, gItemIconPalette_DevonGoods,
+ gItemIcon_SootSack, gItemIconPalette_SootSack,
+ gItemIcon_BasementKey, gItemIconPalette_OldKey,
+ gItemIcon_AcroBike, gItemIconPalette_AcroBike,
+ gItemIcon_PokeblockCase, gItemIconPalette_PokeblockCase,
+ gItemIcon_Letter, gItemIconPalette_LavaCookieAndLetter,
+ gItemIcon_EonTicket, gItemIconPalette_EonTicket,
+ gItemIcon_Orb, gItemIconPalette_RedOrb,
+ gItemIcon_Orb, gItemIconPalette_BlueOrb,
+ gItemIcon_Scanner, gItemIconPalette_Scanner,
+ gItemIcon_GoGoggles, gItemIconPalette_GoGoggles,
+ gItemIcon_Meteorite, gItemIconPalette_Meteorite,
+ gItemIcon_Room1Key, gItemIconPalette_Key,
+ gItemIcon_Room2Key, gItemIconPalette_Key,
+ gItemIcon_Room4Key, gItemIconPalette_Key,
+ gItemIcon_Room6Key, gItemIconPalette_Key,
+ gItemIcon_StorageKey, gItemIconPalette_OldKey,
+ gItemIcon_RootFossil, gItemIconPalette_HoennFossil,
+ gItemIcon_ClawFossil, gItemIconPalette_HoennFossil,
+ gItemIcon_DevonScope, gItemIconPalette_DevonScope,
+// TMs/HMs
+ gItemIcon_TM, gItemIconPalette_FightingTMHM, // TM01
+ gItemIcon_TM, gItemIconPalette_DragonTMHM, // TM02
+ gItemIcon_TM, gItemIconPalette_WaterTMHM, // TM03
+ gItemIcon_TM, gItemIconPalette_PsychicTMHM, // TM04
+ gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM05
+ gItemIcon_TM, gItemIconPalette_PoisonTMHM, // TM06
+ gItemIcon_TM, gItemIconPalette_IceTMHM, // TM07
+ gItemIcon_TM, gItemIconPalette_FightingTMHM, // TM08
+ gItemIcon_TM, gItemIconPalette_GrassTMHM, // TM09
+ gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM10
+ gItemIcon_TM, gItemIconPalette_FireTMHM, // TM11
+ gItemIcon_TM, gItemIconPalette_DarkTMHM, // TM12
+ gItemIcon_TM, gItemIconPalette_IceTMHM, // TM13
+ gItemIcon_TM, gItemIconPalette_IceTMHM, // TM14
+ gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM15
+ gItemIcon_TM, gItemIconPalette_PsychicTMHM, // TM16
+ gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM17
+ gItemIcon_TM, gItemIconPalette_WaterTMHM, // TM18
+ gItemIcon_TM, gItemIconPalette_GrassTMHM, // TM19
+ gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM20
+ gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM21
+ gItemIcon_TM, gItemIconPalette_GrassTMHM, // TM22
+ gItemIcon_TM, gItemIconPalette_SteelTMHM, // TM23
+ gItemIcon_TM, gItemIconPalette_ElectricTMHM, // TM24
+ gItemIcon_TM, gItemIconPalette_ElectricTMHM, // TM25
+ gItemIcon_TM, gItemIconPalette_GroundTMHM, // TM26
+ gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM27
+ gItemIcon_TM, gItemIconPalette_GroundTMHM, // TM28
+ gItemIcon_TM, gItemIconPalette_PsychicTMHM, // TM29
+ gItemIcon_TM, gItemIconPalette_GhostTMHM, // TM30
+ gItemIcon_TM, gItemIconPalette_FightingTMHM, // TM31
+ gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM32
+ gItemIcon_TM, gItemIconPalette_PsychicTMHM, // TM33
+ gItemIcon_TM, gItemIconPalette_ElectricTMHM, // TM34
+ gItemIcon_TM, gItemIconPalette_FireTMHM, // TM35
+ gItemIcon_TM, gItemIconPalette_PoisonTMHM, // TM36
+ gItemIcon_TM, gItemIconPalette_RockTMHM, // TM37
+ gItemIcon_TM, gItemIconPalette_FireTMHM, // TM38
+ gItemIcon_TM, gItemIconPalette_RockTMHM, // TM39
+ gItemIcon_TM, gItemIconPalette_FlyingTMHM, // TM40
+ gItemIcon_TM, gItemIconPalette_DarkTMHM, // TM41
+ gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM42
+ gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM43
+ gItemIcon_TM, gItemIconPalette_PsychicTMHM, // TM44
+ gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM45
+ gItemIcon_TM, gItemIconPalette_DarkTMHM, // TM46
+ gItemIcon_TM, gItemIconPalette_SteelTMHM, // TM47
+ gItemIcon_TM, gItemIconPalette_PsychicTMHM, // TM48
+ gItemIcon_TM, gItemIconPalette_DarkTMHM, // TM49
+ gItemIcon_TM, gItemIconPalette_FireTMHM, // TM50
+ gItemIcon_HM, gItemIconPalette_NormalTMHM, // HM01
+ gItemIcon_HM, gItemIconPalette_FlyingTMHM, // HM02
+ gItemIcon_HM, gItemIconPalette_WaterTMHM, // HM03
+ gItemIcon_HM, gItemIconPalette_NormalTMHM, // HM04
+ gItemIcon_HM, gItemIconPalette_NormalTMHM, // HM05
+ gItemIcon_HM, gItemIconPalette_FightingTMHM, // HM06
+ gItemIcon_HM, gItemIconPalette_WaterTMHM, // HM07
+ gItemIcon_HM, gItemIconPalette_WaterTMHM, // HM08
+// ????????
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+ gItemIcon_QuestionMark, gItemIconPalette_QuestionMark,
+// FireRed/LeafGreen key items
+ gItemIcon_OaksParcel, gItemIconPalette_OaksParcel,
+ gItemIcon_PokeFlute, gItemIconPalette_PokeFlute,
+ gItemIcon_SecretKey, gItemIconPalette_SecretKey,
+ gItemIcon_BikeVoucher, gItemIconPalette_BikeVoucher,
+ gItemIcon_GoldTeeth, gItemIconPalette_GoldTeeth,
+ gItemIcon_OldAmber, gItemIconPalette_OldAmber,
+ gItemIcon_CardKey, gItemIconPalette_CardKey,
+ gItemIcon_LiftKey, gItemIconPalette_Key,
+ gItemIcon_HelixFossil, gItemIconPalette_KantoFossil,
+ gItemIcon_DomeFossil, gItemIconPalette_KantoFossil,
+ gItemIcon_SilphScope, gItemIconPalette_SilphScope,
+ gItemIcon_Bicycle, gItemIconPalette_Bicycle,
+ gItemIcon_TownMap, gItemIconPalette_TownMap,
+ gItemIcon_VSSeeker, gItemIconPalette_VSSeeker,
+ gItemIcon_FameChecker, gItemIconPalette_FameChecker,
+ gItemIcon_TMCase, gItemIconPalette_TMCase,
+ gItemIcon_BerryPouch, gItemIconPalette_BerryPouch,
+ gItemIcon_TeachyTV, gItemIconPalette_TeachyTV,
+ gItemIcon_TriPass, gItemIconPalette_TriPass,
+ gItemIcon_RainbowPass, gItemIconPalette_RainbowPass,
+ gItemIcon_Tea, gItemIconPalette_Tea,
+ gItemIcon_MysticTicket, gItemIconPalette_MysticTicket,
+ gItemIcon_AuroraTicket, gItemIconPalette_AuroraTicket,
+ gItemIcon_PowderJar, gItemIconPalette_PowderJar,
+ gItemIcon_Gem, gItemIconPalette_Ruby,
+ gItemIcon_Gem, gItemIconPalette_Sapphire,
+// Emerald-only key items
+ gItemIcon_MagmaEmblem, gItemIconPalette_MagmaEmblem,
+ gItemIcon_OldSeaMap, gItemIconPalette_OldSeaMap,
+// Return to field arrow
+ gItemIcon_ReturnToFieldArrow, gItemIconPalette_ReturnToFieldArrow,
+};
+#endif // GUARD_DATA_ITEM_ICON_TABLE_H
diff --git a/include/data/items.h b/include/data/items.h
new file mode 100644
index 000000000..49f981faf
--- /dev/null
+++ b/include/data/items.h
@@ -0,0 +1,6079 @@
+const struct Item gItems[] =
+{
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+
+//Pokeballs
+
+ {
+ .name = _("MASTER BALL"),
+ .itemId = ITEM_MASTER_BALL,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gMasterBallItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_POKE_BALLS,
+ .type = 0,
+ .fieldUseFunc = NULL,
+ .battleUsage = 2,
+ .battleUseFunc = ItemUseInBattle_PokeBall,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("ULTRA BALL"),
+ .itemId = ITEM_ULTRA_BALL,
+ .price = 1200,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gUltraBallItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_POKE_BALLS,
+ .type = 1,
+ .fieldUseFunc = NULL,
+ .battleUsage = 2,
+ .battleUseFunc = ItemUseInBattle_PokeBall,
+ .secondaryId = 1,
+ },
+ {
+ .name = _("GREAT BALL"),
+ .itemId = ITEM_GREAT_BALL,
+ .price = 600,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gGreatBallItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_POKE_BALLS,
+ .type = 2,
+ .fieldUseFunc = NULL,
+ .battleUsage = 2,
+ .battleUseFunc = ItemUseInBattle_PokeBall,
+ .secondaryId = 2,
+ },
+ {
+ .name = _("POKé BALL"),
+ .itemId = ITEM_POKE_BALL,
+ .price = 200,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gPokeBallItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_POKE_BALLS,
+ .type = 3,
+ .fieldUseFunc = NULL,
+ .battleUsage = 2,
+ .battleUseFunc = ItemUseInBattle_PokeBall,
+ .secondaryId = 3,
+ },
+ {
+ .name = _("SAFARI BALL"),
+ .itemId = ITEM_SAFARI_BALL,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gSafariBallItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_POKE_BALLS,
+ .type = 4,
+ .fieldUseFunc = NULL,
+ .battleUsage = 2,
+ .battleUseFunc = ItemUseInBattle_PokeBall,
+ .secondaryId = 4,
+ },
+ {
+ .name = _("NET BALL"),
+ .itemId = ITEM_NET_BALL,
+ .price = 1000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gNetBallItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_POKE_BALLS,
+ .type = 5,
+ .fieldUseFunc = NULL,
+ .battleUsage = 2,
+ .battleUseFunc = ItemUseInBattle_PokeBall,
+ .secondaryId = 5,
+ },
+ {
+ .name = _("DIVE BALL"),
+ .itemId = ITEM_DIVE_BALL,
+ .price = 1000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDiveBallItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_POKE_BALLS,
+ .type = 6,
+ .fieldUseFunc = NULL,
+ .battleUsage = 2,
+ .battleUseFunc = ItemUseInBattle_PokeBall,
+ .secondaryId = 6,
+ },
+ {
+ .name = _("NEST BALL"),
+ .itemId = ITEM_NEST_BALL,
+ .price = 1000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gNestBallItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_POKE_BALLS,
+ .type = 7,
+ .fieldUseFunc = NULL,
+ .battleUsage = 2,
+ .battleUseFunc = ItemUseInBattle_PokeBall,
+ .secondaryId = 7,
+ },
+ {
+ .name = _("REPEAT BALL"),
+ .itemId = ITEM_REPEAT_BALL,
+ .price = 1000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gRepeatBallItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_POKE_BALLS,
+ .type = 8,
+ .fieldUseFunc = NULL,
+ .battleUsage = 2,
+ .battleUseFunc = ItemUseInBattle_PokeBall,
+ .secondaryId = 8,
+ },
+ {
+ .name = _("TIMER BALL"),
+ .itemId = ITEM_TIMER_BALL,
+ .price = 1000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTimerBallItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_POKE_BALLS,
+ .type = 9,
+ .fieldUseFunc = NULL,
+ .battleUsage = 2,
+ .battleUseFunc = ItemUseInBattle_PokeBall,
+ .secondaryId = 9,
+ },
+ {
+ .name = _("LUXURY BALL"),
+ .itemId = ITEM_LUXURY_BALL,
+ .price = 1000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gLuxuryBallItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_POKE_BALLS,
+ .type = 10,
+ .fieldUseFunc = NULL,
+ .battleUsage = 2,
+ .battleUseFunc = ItemUseInBattle_PokeBall,
+ .secondaryId = 10,
+ },
+ {
+ .name = _("PREMIER BALL"),
+ .itemId = ITEM_PREMIER_BALL,
+ .price = 200,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gPremierBallItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_POKE_BALLS,
+ .type = 11,
+ .fieldUseFunc = NULL,
+ .battleUsage = 2,
+ .battleUseFunc = ItemUseInBattle_PokeBall,
+ .secondaryId = 11,
+ },
+
+//Medicine
+
+ {
+ .name = _("POTION"),
+ .itemId = ITEM_POTION,
+ .price = 300,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 20,
+ .description = gPotionItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("ANTIDOTE"),
+ .itemId = ITEM_ANTIDOTE,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gAntidoteItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("BURN HEAL"),
+ .itemId = ITEM_BURN_HEAL,
+ .price = 250,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gBurnHealItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("ICE HEAL"),
+ .itemId = ITEM_ICE_HEAL,
+ .price = 250,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gIceHealItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("AWAKENING"),
+ .itemId = ITEM_AWAKENING,
+ .price = 250,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gAwakeningItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("PARLYZ HEAL"),
+ .itemId = ITEM_PARALYZE_HEAL,
+ .price = 200,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gParalyzeHealItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("FULL RESTORE"),
+ .itemId = ITEM_FULL_RESTORE,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 255,
+ .description = gFullRestoreItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("MAX POTION"),
+ .itemId = ITEM_MAX_POTION,
+ .price = 2500,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 255,
+ .description = gMaxPotionItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("HYPER POTION"),
+ .itemId = ITEM_HYPER_POTION,
+ .price = 1200,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 200,
+ .description = gHyperPotionItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("SUPER POTION"),
+ .itemId = ITEM_SUPER_POTION,
+ .price = 700,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 50,
+ .description = gSuperPotionItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("FULL HEAL"),
+ .itemId = ITEM_FULL_HEAL,
+ .price = 600,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gFullHealItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("REVIVE"),
+ .itemId = ITEM_REVIVE,
+ .price = 1500,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gReviveItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("MAX REVIVE"),
+ .itemId = ITEM_MAX_REVIVE,
+ .price = 4000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gMaxReviveItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("FRESH WATER"),
+ .itemId = ITEM_FRESH_WATER,
+ .price = 200,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 50,
+ .description = gFreshWaterItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("SODA POP"),
+ .itemId = ITEM_SODA_POP,
+ .price = 300,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 60,
+ .description = gSodaPopItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("LEMONADE"),
+ .itemId = ITEM_LEMONADE,
+ .price = 350,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 80,
+ .description = gLemonadeItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("MOOMOO MILK"),
+ .itemId = ITEM_MOOMOO_MILK,
+ .price = 500,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 100,
+ .description = gMoomooMilkItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("ENERGYPOWDER"),
+ .itemId = ITEM_ENERGY_POWDER,
+ .price = 500,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gEnergyPowderItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("ENERGY ROOT"),
+ .itemId = ITEM_ENERGY_ROOT,
+ .price = 800,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gEnergyRootItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("HEAL POWDER"),
+ .itemId = ITEM_HEAL_POWDER,
+ .price = 450,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gHealPowderItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("REVIVAL HERB"),
+ .itemId = ITEM_REVIVAL_HERB,
+ .price = 2800,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gRevivalHerbItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("ETHER"),
+ .itemId = ITEM_ETHER,
+ .price = 1200,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 10,
+ .description = gEtherItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_PPRecovery,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_PPRecovery,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("MAX ETHER"),
+ .itemId = ITEM_MAX_ETHER,
+ .price = 2000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 255,
+ .description = gMaxEtherItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_PPRecovery,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_PPRecovery,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("ELIXIR"),
+ .itemId = ITEM_ELIXIR,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 10,
+ .description = gElixirItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_PPRecovery,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_PPRecovery,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("MAX ELIXIR"),
+ .itemId = ITEM_MAX_ELIXIR,
+ .price = 4500,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 255,
+ .description = gMaxElixirItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_PPRecovery,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_PPRecovery,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("LAVA COOKIE"),
+ .itemId = ITEM_LAVA_COOKIE,
+ .price = 200,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gLavaCookieItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("BLUE FLUTE"),
+ .itemId = ITEM_BLUE_FLUTE,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gBlueFluteItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("YELLOW FLUTE"),
+ .itemId = ITEM_YELLOW_FLUTE,
+ .price = 200,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gYellowFluteItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("RED FLUTE"),
+ .itemId = ITEM_RED_FLUTE,
+ .price = 300,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gRedFluteItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("BLACK FLUTE"),
+ .itemId = ITEM_BLACK_FLUTE,
+ .price = 400,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 50,
+ .description = gBlackFluteItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_BlackWhiteFlute,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("WHITE FLUTE"),
+ .itemId = ITEM_WHITE_FLUTE,
+ .price = 500,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 150,
+ .description = gWhiteFluteItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_BlackWhiteFlute,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("BERRY JUICE"),
+ .itemId = ITEM_BERRY_JUICE,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_RESTORE_HP,
+ .holdEffectParam = 20,
+ .description = gBerryJuiceItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("SACRED ASH"),
+ .itemId = ITEM_SACRED_ASH,
+ .price = 200,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gSacredAshItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_SacredAsh,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+
+//Collectibles
+
+ {
+ .name = _("SHOAL SALT"),
+ .itemId = ITEM_SHOAL_SALT,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gShoalSaltItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("SHOAL SHELL"),
+ .itemId = ITEM_SHOAL_SHELL,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gShoalShellItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("RED SHARD"),
+ .itemId = ITEM_RED_SHARD,
+ .price = 200,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gRedShardItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("BLUE SHARD"),
+ .itemId = ITEM_BLUE_SHARD,
+ .price = 200,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gBlueShardItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("YELLOW SHARD"),
+ .itemId = ITEM_YELLOW_SHARD,
+ .price = 200,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gYellowShardItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("GREEN SHARD"),
+ .itemId = ITEM_GREEN_SHARD,
+ .price = 200,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gGreenShardItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+
+//Vitamins
+
+ {
+ .name = _("HP UP"),
+ .itemId = ITEM_HP_UP,
+ .price = 9800,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gHPUpItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("PROTEIN"),
+ .itemId = ITEM_PROTEIN,
+ .price = 9800,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gProteinItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("IRON"),
+ .itemId = ITEM_IRON,
+ .price = 9800,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gIronItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("CARBOS"),
+ .itemId = ITEM_CARBOS,
+ .price = 9800,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gCarbosItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("CALCIUM"),
+ .itemId = ITEM_CALCIUM,
+ .price = 9800,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gCalciumItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("RARE CANDY"),
+ .itemId = ITEM_RARE_CANDY,
+ .price = 4800,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gRareCandyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_RareCandy,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("PP UP"),
+ .itemId = ITEM_PP_UP,
+ .price = 9800,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gPPUpItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_PPUp,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("ZINC"),
+ .itemId = ITEM_ZINC,
+ .price = 9800,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gZincItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("PP MAX"),
+ .itemId = ITEM_PP_MAX,
+ .price = 9800,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gPPMaxItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_PPUp,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+
+//Battle items
+
+ {
+ .name = _("GUARD SPEC."),
+ .itemId = ITEM_GUARD_SPEC,
+ .price = 700,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gGuardSpecItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 2,
+ .battleUseFunc = ItemUseInBattle_StatIncrease,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("DIRE HIT"),
+ .itemId = ITEM_DIRE_HIT,
+ .price = 650,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDireHitItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 2,
+ .battleUseFunc = ItemUseInBattle_StatIncrease,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("X ATTACK"),
+ .itemId = ITEM_X_ATTACK,
+ .price = 500,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gXAttackItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 2,
+ .battleUseFunc = ItemUseInBattle_StatIncrease,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("X DEFEND"),
+ .itemId = ITEM_X_DEFEND,
+ .price = 550,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gXDefendItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 2,
+ .battleUseFunc = ItemUseInBattle_StatIncrease,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("X SPEED"),
+ .itemId = ITEM_X_SPEED,
+ .price = 350,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gXSpeedItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 2,
+ .battleUseFunc = ItemUseInBattle_StatIncrease,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("X ACCURACY"),
+ .itemId = ITEM_X_ACCURACY,
+ .price = 950,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gXAccuracyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 2,
+ .battleUseFunc = ItemUseInBattle_StatIncrease,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("X SPECIAL"),
+ .itemId = ITEM_X_SPECIAL,
+ .price = 350,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gXSpecialItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 2,
+ .battleUseFunc = ItemUseInBattle_StatIncrease,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("POKé DOLL"),
+ .itemId = ITEM_POKE_DOLL,
+ .price = 1000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gPokeDollItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 2,
+ .battleUseFunc = ItemUseInBattle_Escape,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("FLUFFY TAIL"),
+ .itemId = ITEM_FLUFFY_TAIL,
+ .price = 1000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gFluffyTailItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 2,
+ .battleUseFunc = ItemUseInBattle_Escape,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+
+//Field items
+
+ {
+ .name = _("SUPER REPEL"),
+ .itemId = ITEM_SUPER_REPEL,
+ .price = 500,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 200,
+ .description = gSuperRepelItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_Repel,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("MAX REPEL"),
+ .itemId = ITEM_MAX_REPEL,
+ .price = 700,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 250,
+ .description = gMaxRepelItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_Repel,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("ESCAPE ROPE"),
+ .itemId = ITEM_ESCAPE_ROPE,
+ .price = 550,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gEscapeRopeItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 2,
+ .fieldUseFunc = ItemUseOutOfBattle_EscapeRope,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("REPEL"),
+ .itemId = ITEM_REPEL,
+ .price = 350,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 100,
+ .description = gRepelItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_Repel,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+
+//Evolution stones
+
+ {
+ .name = _("SUN STONE"),
+ .itemId = ITEM_SUN_STONE,
+ .price = 2100,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gSunStoneItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("MOON STONE"),
+ .itemId = ITEM_MOON_STONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gMoonStoneItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("FIRE STONE"),
+ .itemId = ITEM_FIRE_STONE,
+ .price = 2100,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gFireStoneItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("THUNDERSTONE"),
+ .itemId = ITEM_THUNDER_STONE,
+ .price = 2100,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gThunderStoneItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("WATER STONE"),
+ .itemId = ITEM_WATER_STONE,
+ .price = 2100,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gWaterStoneItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("LEAF STONE"),
+ .itemId = ITEM_LEAF_STONE,
+ .price = 2100,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gLeafStoneItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+
+//Valuable items
+
+ {
+ .name = _("TINYMUSHROOM"),
+ .itemId = ITEM_TINY_MUSHROOM,
+ .price = 500,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTinyMushroomItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("BIG MUSHROOM"),
+ .itemId = ITEM_BIG_MUSHROOM,
+ .price = 5000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gBigMushroomItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("PEARL"),
+ .itemId = ITEM_PEARL,
+ .price = 1400,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gPearlItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("BIG PEARL"),
+ .itemId = ITEM_BIG_PEARL,
+ .price = 7500,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gBigPearlItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("STARDUST"),
+ .itemId = ITEM_STARDUST,
+ .price = 2000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gStardustItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("STAR PIECE"),
+ .itemId = ITEM_STAR_PIECE,
+ .price = 9800,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gStarPieceItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("NUGGET"),
+ .itemId = ITEM_NUGGET,
+ .price = 10000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gNuggetItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("HEART SCALE"),
+ .itemId = ITEM_HEART_SCALE,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gHeartScaleItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+
+//Mail
+ {
+ .name = _("ORANGE MAIL"),
+ .itemId = ITEM_ORANGE_MAIL,
+ .price = 50,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gOrangeMailItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 0,
+ .fieldUseFunc = ItemUseOutOfBattle_Mail,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("HARBOR MAIL"),
+ .itemId = ITEM_HARBOR_MAIL,
+ .price = 50,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gHarborMailItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 0,
+ .fieldUseFunc = ItemUseOutOfBattle_Mail,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 1,
+ },
+ {
+ .name = _("GLITTER MAIL"),
+ .itemId = ITEM_GLITTER_MAIL,
+ .price = 50,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gGlitterMailItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 0,
+ .fieldUseFunc = ItemUseOutOfBattle_Mail,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 2,
+ },
+ {
+ .name = _("MECH MAIL"),
+ .itemId = ITEM_MECH_MAIL,
+ .price = 50,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gMechMailItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 0,
+ .fieldUseFunc = ItemUseOutOfBattle_Mail,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 3,
+ },
+ {
+ .name = _("WOOD MAIL"),
+ .itemId = ITEM_WOOD_MAIL,
+ .price = 50,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gWoodMailItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 0,
+ .fieldUseFunc = ItemUseOutOfBattle_Mail,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 4,
+ },
+ {
+ .name = _("WAVE MAIL"),
+ .itemId = ITEM_WAVE_MAIL,
+ .price = 50,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gWaveMailItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 0,
+ .fieldUseFunc = ItemUseOutOfBattle_Mail,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 5,
+ },
+ {
+ .name = _("BEAD MAIL"),
+ .itemId = ITEM_BEAD_MAIL,
+ .price = 50,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gBeadMailItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 0,
+ .fieldUseFunc = ItemUseOutOfBattle_Mail,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 6,
+ },
+ {
+ .name = _("SHADOW MAIL"),
+ .itemId = ITEM_SHADOW_MAIL,
+ .price = 50,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gShadowMailItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 0,
+ .fieldUseFunc = ItemUseOutOfBattle_Mail,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 7,
+ },
+ {
+ .name = _("TROPIC MAIL"),
+ .itemId = ITEM_TROPIC_MAIL,
+ .price = 50,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTropicMailItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 0,
+ .fieldUseFunc = ItemUseOutOfBattle_Mail,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 8,
+ },
+ {
+ .name = _("DREAM MAIL"),
+ .itemId = ITEM_DREAM_MAIL,
+ .price = 50,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDreamMailItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 0,
+ .fieldUseFunc = ItemUseOutOfBattle_Mail,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 9,
+ },
+ {
+ .name = _("FAB MAIL"),
+ .itemId = ITEM_FAB_MAIL,
+ .price = 50,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gFabMailItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 0,
+ .fieldUseFunc = ItemUseOutOfBattle_Mail,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 10,
+ },
+ {
+ .name = _("RETRO MAIL"),
+ .itemId = ITEM_RETRO_MAIL,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gRetroMailItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 0,
+ .fieldUseFunc = ItemUseOutOfBattle_Mail,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 11,
+ },
+
+//Berries
+
+ {
+ .name = _("CHERI BERRY"),
+ .itemId = ITEM_CHERI_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_CURE_PAR,
+ .holdEffectParam = 0,
+ .description = gCheriBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("CHESTO BERRY"),
+ .itemId = ITEM_CHESTO_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_CURE_SLP,
+ .holdEffectParam = 0,
+ .description = gChestoBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("PECHA BERRY"),
+ .itemId = ITEM_PECHA_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_CURE_PSN,
+ .holdEffectParam = 0,
+ .description = gPechaBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("RAWST BERRY"),
+ .itemId = ITEM_RAWST_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_CURE_BRN,
+ .holdEffectParam = 0,
+ .description = gRawstBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("ASPEAR BERRY"),
+ .itemId = ITEM_ASPEAR_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_CURE_FRZ,
+ .holdEffectParam = 0,
+ .description = gAspearBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("LEPPA BERRY"),
+ .itemId = ITEM_LEPPA_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_RESTORE_PP,
+ .holdEffectParam = 10,
+ .description = gLeppaBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_PPRecovery,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_PPRecovery,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("ORAN BERRY"),
+ .itemId = ITEM_ORAN_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_RESTORE_HP,
+ .holdEffectParam = 10,
+ .description = gOranBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("PERSIM BERRY"),
+ .itemId = ITEM_PERSIM_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_CURE_CONFUSION,
+ .holdEffectParam = 0,
+ .description = gPersimBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("LUM BERRY"),
+ .itemId = ITEM_LUM_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_CURE_STATUS,
+ .holdEffectParam = 0,
+ .description = gLumBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("SITRUS BERRY"),
+ .itemId = ITEM_SITRUS_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_RESTORE_HP,
+ .holdEffectParam = 30,
+ .description = gSitrusBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_Medicine,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_Medicine,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("FIGY BERRY"),
+ .itemId = ITEM_FIGY_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_CONFUSE_SPICY,
+ .holdEffectParam = 8,
+ .description = gFigyBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("WIKI BERRY"),
+ .itemId = ITEM_WIKI_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_CONFUSE_DRY,
+ .holdEffectParam = 8,
+ .description = gWikiBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("MAGO BERRY"),
+ .itemId = ITEM_MAGO_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_CONFUSE_SWEET,
+ .holdEffectParam = 8,
+ .description = gMagoBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("AGUAV BERRY"),
+ .itemId = ITEM_AGUAV_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_CONFUSE_BITTER,
+ .holdEffectParam = 8,
+ .description = gAguavBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("IAPAPA BERRY"),
+ .itemId = ITEM_IAPAPA_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_CONFUSE_SOUR,
+ .holdEffectParam = 8,
+ .description = gIapapaBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("RAZZ BERRY"),
+ .itemId = ITEM_RAZZ_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gRazzBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("BLUK BERRY"),
+ .itemId = ITEM_BLUK_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gBlukBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("NANAB BERRY"),
+ .itemId = ITEM_NANAB_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gNanabBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("WEPEAR BERRY"),
+ .itemId = ITEM_WEPEAR_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gWepearBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("PINAP BERRY"),
+ .itemId = ITEM_PINAP_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gPinapBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("POMEG BERRY"),
+ .itemId = ITEM_POMEG_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gPomegBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_ReduceEV,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("KELPSY BERRY"),
+ .itemId = ITEM_KELPSY_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gKelpsyBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_ReduceEV,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("QUALOT BERRY"),
+ .itemId = ITEM_QUALOT_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gQualotBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_ReduceEV,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("HONDEW BERRY"),
+ .itemId = ITEM_HONDEW_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gHondewBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_ReduceEV,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("GREPA BERRY"),
+ .itemId = ITEM_GREPA_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gGrepaBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_ReduceEV,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TAMATO BERRY"),
+ .itemId = ITEM_TAMATO_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTamatoBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_ReduceEV,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("CORNN BERRY"),
+ .itemId = ITEM_CORNN_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gCornnBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("MAGOST BERRY"),
+ .itemId = ITEM_MAGOST_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gMagostBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("RABUTA BERRY"),
+ .itemId = ITEM_RABUTA_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gRabutaBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("NOMEL BERRY"),
+ .itemId = ITEM_NOMEL_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gNomelBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("SPELON BERRY"),
+ .itemId = ITEM_SPELON_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gSpelonBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("PAMTRE BERRY"),
+ .itemId = ITEM_PAMTRE_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gPamtreBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("WATMEL BERRY"),
+ .itemId = ITEM_WATMEL_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gWatmelBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("DURIN BERRY"),
+ .itemId = ITEM_DURIN_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDurinBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("BELUE BERRY"),
+ .itemId = ITEM_BELUE_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gBelueBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("LIECHI BERRY"),
+ .itemId = ITEM_LIECHI_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_ATTACK_UP,
+ .holdEffectParam = 4,
+ .description = gLiechiBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("GANLON BERRY"),
+ .itemId = ITEM_GANLON_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_DEFENSE_UP,
+ .holdEffectParam = 4,
+ .description = gGanlonBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("SALAC BERRY"),
+ .itemId = ITEM_SALAC_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_SPEED_UP,
+ .holdEffectParam = 4,
+ .description = gSalacBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("PETAYA BERRY"),
+ .itemId = ITEM_PETAYA_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_SP_ATTACK_UP,
+ .holdEffectParam = 4,
+ .description = gPetayaBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("APICOT BERRY"),
+ .itemId = ITEM_APICOT_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_SP_DEFENSE_UP,
+ .holdEffectParam = 4,
+ .description = gApicotBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("LANSAT BERRY"),
+ .itemId = ITEM_LANSAT_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_CRITICAL_UP,
+ .holdEffectParam = 4,
+ .description = gLansatBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("STARF BERRY"),
+ .itemId = ITEM_STARF_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_RANDOM_STAT_UP,
+ .holdEffectParam = 4,
+ .description = gStarfBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("ENIGMA BERRY"),
+ .itemId = ITEM_ENIGMA_BERRY,
+ .price = 20,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gEnigmaBerryItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_BERRIES,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_EnigmaBerry,
+ .battleUsage = 1,
+ .battleUseFunc = ItemUseInBattle_EnigmaBerry,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+
+//Hold items
+
+ {
+ .name = _("BRIGHTPOWDER"),
+ .itemId = ITEM_BRIGHT_POWDER,
+ .price = 10,
+ .holdEffect = HOLD_EFFECT_EVASION_UP,
+ .holdEffectParam = 10,
+ .description = gBrightPowderItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("WHITE HERB"),
+ .itemId = ITEM_WHITE_HERB,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_RESTORE_STATS,
+ .holdEffectParam = 0,
+ .description = gWhiteHerbItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("MACHO BRACE"),
+ .itemId = ITEM_MACHO_BRACE,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_MACHO_BRACE,
+ .holdEffectParam = 0,
+ .description = gMachoBraceItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("EXP. SHARE"),
+ .itemId = ITEM_EXP_SHARE,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_EXP_SHARE,
+ .holdEffectParam = 0,
+ .description = gExpShareItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("QUICK CLAW"),
+ .itemId = ITEM_QUICK_CLAW,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_QUICK_CLAW,
+ .holdEffectParam = 20,
+ .description = gQuickClawItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("SOOTHE BELL"),
+ .itemId = ITEM_SOOTHE_BELL,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_HAPPINESS_UP,
+ .holdEffectParam = 0,
+ .description = gSootheBellItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("MENTAL HERB"),
+ .itemId = ITEM_MENTAL_HERB,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_CURE_ATTRACT,
+ .holdEffectParam = 0,
+ .description = gMentalHerbItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("CHOICE BAND"),
+ .itemId = ITEM_CHOICE_BAND,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_CHOICE_BAND,
+ .holdEffectParam = 0,
+ .description = gChoiceBandItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("KING’S ROCK"),
+ .itemId = ITEM_KINGS_ROCK,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_FLINCH,
+ .holdEffectParam = 10,
+ .description = gKingsRockItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("SILVERPOWDER"),
+ .itemId = ITEM_SILVER_POWDER,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_BUG_POWER,
+ .holdEffectParam = 10,
+ .description = gSilverPowderItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("AMULET COIN"),
+ .itemId = ITEM_AMULET_COIN,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_DOUBLE_PRIZE,
+ .holdEffectParam = 10,
+ .description = gAmuletCoinItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("CLEANSE TAG"),
+ .itemId = ITEM_CLEANSE_TAG,
+ .price = 200,
+ .holdEffect = HOLD_EFFECT_REPEL,
+ .holdEffectParam = 0,
+ .description = gCleanseTagItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("SOUL DEW"),
+ .itemId = ITEM_SOUL_DEW,
+ .price = 200,
+ .holdEffect = HOLD_EFFECT_SOUL_DEW,
+ .holdEffectParam = 0,
+ .description = gSoulDewItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("DEEPSEATOOTH"),
+ .itemId = ITEM_DEEP_SEA_TOOTH,
+ .price = 200,
+ .holdEffect = HOLD_EFFECT_DEEP_SEA_TOOTH,
+ .holdEffectParam = 0,
+ .description = gDeepSeaToothItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("DEEPSEASCALE"),
+ .itemId = ITEM_DEEP_SEA_SCALE,
+ .price = 200,
+ .holdEffect = HOLD_EFFECT_DEEP_SEA_SCALE,
+ .holdEffectParam = 0,
+ .description = gDeepSeaScaleItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("SMOKE BALL"),
+ .itemId = ITEM_SMOKE_BALL,
+ .price = 200,
+ .holdEffect = HOLD_EFFECT_CAN_ALWAYS_RUN,
+ .holdEffectParam = 0,
+ .description = gSmokeBallItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("EVERSTONE"),
+ .itemId = ITEM_EVERSTONE,
+ .price = 200,
+ .holdEffect = HOLD_EFFECT_PREVENT_EVOLVE,
+ .holdEffectParam = 0,
+ .description = gEverstoneItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("FOCUS BAND"),
+ .itemId = ITEM_FOCUS_BAND,
+ .price = 200,
+ .holdEffect = HOLD_EFFECT_FOCUS_BAND,
+ .holdEffectParam = 10,
+ .description = gFocusBandItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("LUCKY EGG"),
+ .itemId = ITEM_LUCKY_EGG,
+ .price = 200,
+ .holdEffect = HOLD_EFFECT_LUCKY_EGG,
+ .holdEffectParam = 0,
+ .description = gLuckyEggItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("SCOPE LENS"),
+ .itemId = ITEM_SCOPE_LENS,
+ .price = 200,
+ .holdEffect = HOLD_EFFECT_SCOPE_LENS,
+ .holdEffectParam = 0,
+ .description = gScopeLensItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("METAL COAT"),
+ .itemId = ITEM_METAL_COAT,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_STEEL_POWER,
+ .holdEffectParam = 10,
+ .description = gMetalCoatItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("LEFTOVERS"),
+ .itemId = ITEM_LEFTOVERS,
+ .price = 200,
+ .holdEffect = HOLD_EFFECT_LEFTOVERS,
+ .holdEffectParam = 10,
+ .description = gLeftoversItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("DRAGON SCALE"),
+ .itemId = ITEM_DRAGON_SCALE,
+ .price = 2100,
+ .holdEffect = HOLD_EFFECT_DRAGON_SCALE,
+ .holdEffectParam = 10,
+ .description = gDragonScaleItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("LIGHT BALL"),
+ .itemId = ITEM_LIGHT_BALL,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_LIGHT_BALL,
+ .holdEffectParam = 0,
+ .description = gLightBallItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("SOFT SAND"),
+ .itemId = ITEM_SOFT_SAND,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_GROUND_POWER,
+ .holdEffectParam = 10,
+ .description = gSoftSandItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("HARD STONE"),
+ .itemId = ITEM_HARD_STONE,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_ROCK_POWER,
+ .holdEffectParam = 10,
+ .description = gHardStoneItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("MIRACLE SEED"),
+ .itemId = ITEM_MIRACLE_SEED,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_GRASS_POWER,
+ .holdEffectParam = 10,
+ .description = gMiracleSeedItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("BLACKGLASSES"),
+ .itemId = ITEM_BLACK_GLASSES,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_DARK_POWER,
+ .holdEffectParam = 10,
+ .description = gBlackGlassesItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("BLACK BELT"),
+ .itemId = ITEM_BLACK_BELT,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_FIGHTING_POWER,
+ .holdEffectParam = 10,
+ .description = gBlackBeltItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("MAGNET"),
+ .itemId = ITEM_MAGNET,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_ELECTRIC_POWER,
+ .holdEffectParam = 10,
+ .description = gMagnetItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("MYSTIC WATER"),
+ .itemId = ITEM_MYSTIC_WATER,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_WATER_POWER,
+ .holdEffectParam = 10,
+ .description = gMysticWaterItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("SHARP BEAK"),
+ .itemId = ITEM_SHARP_BEAK,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_FLYING_POWER,
+ .holdEffectParam = 10,
+ .description = gSharpBeakItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("POISON BARB"),
+ .itemId = ITEM_POISON_BARB,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_POISON_POWER,
+ .holdEffectParam = 10,
+ .description = gPoisonBarbItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("NEVERMELTICE"),
+ .itemId = ITEM_NEVER_MELT_ICE,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_ICE_POWER,
+ .holdEffectParam = 10,
+ .description = gNeverMeltIceItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("SPELL TAG"),
+ .itemId = ITEM_SPELL_TAG,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_GHOST_POWER,
+ .holdEffectParam = 10,
+ .description = gSpellTagItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TWISTEDSPOON"),
+ .itemId = ITEM_TWISTED_SPOON,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_PSYCHIC_POWER,
+ .holdEffectParam = 10,
+ .description = gTwistedSpoonItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("CHARCOAL"),
+ .itemId = ITEM_CHARCOAL,
+ .price = 9800,
+ .holdEffect = HOLD_EFFECT_FIRE_POWER,
+ .holdEffectParam = 10,
+ .description = gCharcoalItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("DRAGON FANG"),
+ .itemId = ITEM_DRAGON_FANG,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_DRAGON_POWER,
+ .holdEffectParam = 10,
+ .description = gDragonFangItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("SILK SCARF"),
+ .itemId = ITEM_SILK_SCARF,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_NORMAL_POWER,
+ .holdEffectParam = 10,
+ .description = gSilkScarfItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("UP-GRADE"),
+ .itemId = ITEM_UP_GRADE,
+ .price = 2100,
+ .holdEffect = HOLD_EFFECT_UP_GRADE,
+ .holdEffectParam = 0,
+ .description = gUpGradeItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("SHELL BELL"),
+ .itemId = ITEM_SHELL_BELL,
+ .price = 200,
+ .holdEffect = HOLD_EFFECT_SHELL_BELL,
+ .holdEffectParam = 8,
+ .description = gShellBellItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("SEA INCENSE"),
+ .itemId = ITEM_SEA_INCENSE,
+ .price = 9600,
+ .holdEffect = HOLD_EFFECT_WATER_POWER,
+ .holdEffectParam = 5,
+ .description = gSeaIncenseItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("LAX INCENSE"),
+ .itemId = ITEM_LAX_INCENSE,
+ .price = 9600,
+ .holdEffect = HOLD_EFFECT_EVASION_UP,
+ .holdEffectParam = 5,
+ .description = gLaxIncenseItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("LUCKY PUNCH"),
+ .itemId = ITEM_LUCKY_PUNCH,
+ .price = 10,
+ .holdEffect = HOLD_EFFECT_LUCKY_PUNCH,
+ .holdEffectParam = 0,
+ .description = gLuckyPunchItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("METAL POWDER"),
+ .itemId = ITEM_METAL_POWDER,
+ .price = 10,
+ .holdEffect = HOLD_EFFECT_METAL_POWDER,
+ .holdEffectParam = 0,
+ .description = gMetalPowderItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("THICK CLUB"),
+ .itemId = ITEM_THICK_CLUB,
+ .price = 500,
+ .holdEffect = HOLD_EFFECT_THICK_CLUB,
+ .holdEffectParam = 0,
+ .description = gThickClubItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("STICK"),
+ .itemId = ITEM_STICK,
+ .price = 200,
+ .holdEffect = HOLD_EFFECT_STICK,
+ .holdEffectParam = 0,
+ .description = gStickItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("RED SCARF"),
+ .itemId = ITEM_RED_SCARF,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gRedScarfItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("BLUE SCARF"),
+ .itemId = ITEM_BLUE_SCARF,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gBlueScarfItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("PINK SCARF"),
+ .itemId = ITEM_PINK_SCARF,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gPinkScarfItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("GREEN SCARF"),
+ .itemId = ITEM_GREEN_SCARF,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gGreenScarfItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("YELLOW SCARF"),
+ .itemId = ITEM_YELLOW_SCARF,
+ .price = 100,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gYellowScarfItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+
+//Key items
+
+ {
+ .name = _("MACH BIKE"),
+ .itemId = ITEM_MACH_BIKE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gMachBikeItemDescription,
+ .importance = 1,
+ .unk19 = 1,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 2,
+ .fieldUseFunc = ItemUseOutOfBattle_Bike,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("COIN CASE"),
+ .itemId = ITEM_COIN_CASE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gCoinCaseItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CoinCase,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("ITEMFINDER"),
+ .itemId = ITEM_ITEMFINDER,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gItemfinderItemDescription,
+ .importance = 1,
+ .unk19 = 1,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 2,
+ .fieldUseFunc = ItemUseOutOfBattle_Itemfinder,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("OLD ROD"),
+ .itemId = ITEM_OLD_ROD,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gOldRodItemDescription,
+ .importance = 1,
+ .unk19 = 1,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 2,
+ .fieldUseFunc = ItemUseOutOfBattle_Rod,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("GOOD ROD"),
+ .itemId = ITEM_GOOD_ROD,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gGoodRodItemDescription,
+ .importance = 1,
+ .unk19 = 1,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 2,
+ .fieldUseFunc = ItemUseOutOfBattle_Rod,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 1,
+ },
+ {
+ .name = _("SUPER ROD"),
+ .itemId = ITEM_SUPER_ROD,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gSuperRodItemDescription,
+ .importance = 1,
+ .unk19 = 1,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 2,
+ .fieldUseFunc = ItemUseOutOfBattle_Rod,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 2,
+ },
+ {
+ .name = _("S.S. TICKET"),
+ .itemId = ITEM_SS_TICKET,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gSSTicketItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("CONTEST PASS"),
+ .itemId = ITEM_CONTEST_PASS,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gContestPassItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("WAILMER PAIL"),
+ .itemId = ITEM_WAILMER_PAIL,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gWailmerPailItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 2,
+ .fieldUseFunc = ItemUseOutOfBattle_WailmerPail,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("DEVON GOODS"),
+ .itemId = ITEM_DEVON_GOODS,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDevonGoodsItemDescription,
+ .importance = 2,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("SOOT SACK"),
+ .itemId = ITEM_SOOT_SACK,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gSootSackItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("BASEMENT KEY"),
+ .itemId = ITEM_BASEMENT_KEY,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gBasementKeyItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("ACRO BIKE"),
+ .itemId = ITEM_ACRO_BIKE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gAcroBikeItemDescription,
+ .importance = 1,
+ .unk19 = 1,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 2,
+ .fieldUseFunc = ItemUseOutOfBattle_Bike,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 1,
+ },
+ {
+ .name = _("{POKEBLOCK} CASE"),
+ .itemId = ITEM_POKEBLOCK_CASE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gPokeblockCaseItemDescription,
+ .importance = 1,
+ .unk19 = 1,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 3,
+ .fieldUseFunc = ItemUseOutOfBattle_PokeblockCase,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("LETTER"),
+ .itemId = ITEM_LETTER,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gLetterItemDescription,
+ .importance = 2,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("EON TICKET"),
+ .itemId = ITEM_EON_TICKET,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gEonTicketItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 1,
+ },
+ {
+ .name = _("RED ORB"),
+ .itemId = ITEM_RED_ORB,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gRedOrbItemDescription,
+ .importance = 2,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("BLUE ORB"),
+ .itemId = ITEM_BLUE_ORB,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gBlueOrbItemDescription,
+ .importance = 2,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("SCANNER"),
+ .itemId = ITEM_SCANNER,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gScannerItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("GO-GOGGLES"),
+ .itemId = ITEM_GO_GOGGLES,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gGoGogglesItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("METEORITE"),
+ .itemId = ITEM_METEORITE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gMeteoriteItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("RM. 1 KEY"),
+ .itemId = ITEM_ROOM_1_KEY,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gRoom1KeyItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("RM. 2 KEY"),
+ .itemId = ITEM_ROOM_2_KEY,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gRoom2KeyItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("RM. 4 KEY"),
+ .itemId = ITEM_ROOM_4_KEY,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gRoom4KeyItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("RM. 6 KEY"),
+ .itemId = ITEM_ROOM_6_KEY,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gRoom6KeyItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("STORAGE KEY"),
+ .itemId = ITEM_STORAGE_KEY,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gStorageKeyItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("ROOT FOSSIL"),
+ .itemId = ITEM_ROOT_FOSSIL,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gRootFossilItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("CLAW FOSSIL"),
+ .itemId = ITEM_CLAW_FOSSIL,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gClawFossilItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("DEVON SCOPE"),
+ .itemId = ITEM_DEVON_SCOPE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDevonScopeItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+
+//TMs/HMs
+
+ {
+ .name = _("TM01"),
+ .itemId = ITEM_TM01_FOCUS_PUNCH,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM01ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM02"),
+ .itemId = ITEM_TM02_DRAGON_CLAW,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM02ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM03"),
+ .itemId = ITEM_TM03_WATER_PULSE,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM03ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM04"),
+ .itemId = ITEM_TM04_CALM_MIND,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM04ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM05"),
+ .itemId = ITEM_TM05_ROAR,
+ .price = 1000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM05ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM06"),
+ .itemId = ITEM_TM06_TOXIC,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM06ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM07"),
+ .itemId = ITEM_TM07_HAIL,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM07ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM08"),
+ .itemId = ITEM_TM08_BULK_UP,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM08ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM09"),
+ .itemId = ITEM_TM09_BULLET_SEED,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM09ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM10"),
+ .itemId = ITEM_TM10_HIDDEN_POWER,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM10ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM11"),
+ .itemId = ITEM_TM11_SUNNY_DAY,
+ .price = 2000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM11ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM12"),
+ .itemId = ITEM_TM12_TAUNT,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM12ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM13"),
+ .itemId = ITEM_TM13_ICE_BEAM,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM13ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM14"),
+ .itemId = ITEM_TM14_BLIZZARD,
+ .price = 5500,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM14ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM15"),
+ .itemId = ITEM_TM15_HYPER_BEAM,
+ .price = 7500,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM15ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM16"),
+ .itemId = ITEM_TM16_LIGHT_SCREEN,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM16ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM17"),
+ .itemId = ITEM_TM17_PROTECT,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM17ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM18"),
+ .itemId = ITEM_TM18_RAIN_DANCE,
+ .price = 2000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM18ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM19"),
+ .itemId = ITEM_TM19_GIGA_DRAIN,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM19ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM20"),
+ .itemId = ITEM_TM20_SAFEGUARD,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM20ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM21"),
+ .itemId = ITEM_TM21_FRUSTRATION,
+ .price = 1000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM21ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM22"),
+ .itemId = ITEM_TM22_SOLARBEAM,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM22ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM23"),
+ .itemId = ITEM_TM23_IRON_TAIL,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM23ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM24"),
+ .itemId = ITEM_TM24_THUNDERBOLT,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM24ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM25"),
+ .itemId = ITEM_TM25_THUNDER,
+ .price = 5500,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM25ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM26"),
+ .itemId = ITEM_TM26_EARTHQUAKE,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM26ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM27"),
+ .itemId = ITEM_TM27_RETURN,
+ .price = 1000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM27ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM28"),
+ .itemId = ITEM_TM28_DIG,
+ .price = 2000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM28ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM29"),
+ .itemId = ITEM_TM29_PSYCHIC,
+ .price = 2000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM29ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM30"),
+ .itemId = ITEM_TM30_SHADOW_BALL,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM30ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM31"),
+ .itemId = ITEM_TM31_BRICK_BREAK,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM31ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM32"),
+ .itemId = ITEM_TM32_DOUBLE_TEAM,
+ .price = 2000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM32ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM33"),
+ .itemId = ITEM_TM33_REFLECT,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM33ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM34"),
+ .itemId = ITEM_TM34_SHOCK_WAVE,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM34ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM35"),
+ .itemId = ITEM_TM35_FLAMETHROWER,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM35ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM36"),
+ .itemId = ITEM_TM36_SLUDGE_BOMB,
+ .price = 1000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM36ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM37"),
+ .itemId = ITEM_TM37_SANDSTORM,
+ .price = 2000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM37ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM38"),
+ .itemId = ITEM_TM38_FIRE_BLAST,
+ .price = 5500,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM38ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM39"),
+ .itemId = ITEM_TM39_ROCK_TOMB,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM39ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM40"),
+ .itemId = ITEM_TM40_AERIAL_ACE,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM40ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM41"),
+ .itemId = ITEM_TM41_TORMENT,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM41ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM42"),
+ .itemId = ITEM_TM42_FACADE,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM42ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM43"),
+ .itemId = ITEM_TM43_SECRET_POWER,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM43ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM44"),
+ .itemId = ITEM_TM44_REST,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM44ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM45"),
+ .itemId = ITEM_TM45_ATTRACT,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM45ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM46"),
+ .itemId = ITEM_TM46_THIEF,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM46ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM47"),
+ .itemId = ITEM_TM47_STEEL_WING,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM47ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM48"),
+ .itemId = ITEM_TM48_SKILL_SWAP,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM48ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM49"),
+ .itemId = ITEM_TM49_SNATCH,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM49ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM50"),
+ .itemId = ITEM_TM50_OVERHEAT,
+ .price = 3000,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTM50ItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("HM01"),
+ .itemId = ITEM_HM01_CUT,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gHM01ItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("HM02"),
+ .itemId = ITEM_HM02_FLY,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gHM02ItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("HM03"),
+ .itemId = ITEM_HM03_SURF,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gHM03ItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("HM04"),
+ .itemId = ITEM_HM04_STRENGTH,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gHM04ItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("HM05"),
+ .itemId = ITEM_HM05_FLASH,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gHM05ItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("HM06"),
+ .itemId = ITEM_HM06_ROCK_SMASH,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gHM06ItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("HM07"),
+ .itemId = ITEM_HM07_WATERFALL,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gHM07ItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("HM08"),
+ .itemId = ITEM_HM08_DIVE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gHM08ItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_TM_HM,
+ .type = 1,
+ .fieldUseFunc = ItemUseOutOfBattle_TMHM,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("????????"),
+ .itemId = ITEM_NONE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDummyItemDescription,
+ .importance = 0,
+ .unk19 = 0,
+ .pocket = POCKET_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+
+//FireRed/LeafGreen key items
+
+ {
+ .name = _("OAK’S PARCEL"),
+ .itemId = ITEM_OAKS_PARCEL,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gOaksParcelItemDescription,
+ .importance = 2,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("POKé FLUTE"),
+ .itemId = ITEM_POKE_FLUTE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gPokeFluteItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("SECRET KEY"),
+ .itemId = ITEM_SECRET_KEY,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gSecretKeyItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("BIKE VOUCHER"),
+ .itemId = ITEM_BIKE_VOUCHER,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gBikeVoucherItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("GOLD TEETH"),
+ .itemId = ITEM_GOLD_TEETH,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gGoldTeethItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("OLD AMBER"),
+ .itemId = ITEM_OLD_AMBER,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gOldAmberItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("CARD KEY"),
+ .itemId = ITEM_CARD_KEY,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gCardKeyItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("LIFT KEY"),
+ .itemId = ITEM_LIFT_KEY,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gLiftKeyItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("HELIX FOSSIL"),
+ .itemId = ITEM_HELIX_FOSSIL,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gHelixFossilItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("DOME FOSSIL"),
+ .itemId = ITEM_DOME_FOSSIL,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gDomeFossilItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("SILPH SCOPE"),
+ .itemId = ITEM_SILPH_SCOPE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gSilphScopeItemDescription,
+ .importance = 1,
+ .unk19 = 0,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("BICYCLE"),
+ .itemId = ITEM_BICYCLE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gBicycleItemDescription,
+ .importance = 1,
+ .unk19 = 1,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 2,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TOWN MAP"),
+ .itemId = ITEM_TOWN_MAP,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTownMapItemDescription,
+ .importance = 1,
+ .unk19 = 1,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("VS SEEKER"),
+ .itemId = ITEM_VS_SEEKER,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gVSSeekerItemDescription,
+ .importance = 1,
+ .unk19 = 1,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 2,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("FAME CHECKER"),
+ .itemId = ITEM_FAME_CHECKER,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gFameCheckerItemDescription,
+ .importance = 1,
+ .unk19 = 1,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TM CASE"),
+ .itemId = ITEM_TM_CASE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTMCaseItemDescription,
+ .importance = 1,
+ .unk19 = 1,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("BERRY POUCH"),
+ .itemId = ITEM_BERRY_POUCH,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gBerryPouchItemDescription,
+ .importance = 1,
+ .unk19 = 1,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TEACHY TV"),
+ .itemId = ITEM_TEACHY_TV,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTeachyTVItemDescription,
+ .importance = 1,
+ .unk19 = 1,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 2,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TRI-PASS"),
+ .itemId = ITEM_TRI_PASS,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTriPassItemDescription,
+ .importance = 1,
+ .unk19 = 1,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("RAINBOW PASS"),
+ .itemId = ITEM_RAINBOW_PASS,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gRainbowPassItemDescription,
+ .importance = 1,
+ .unk19 = 1,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("TEA"),
+ .itemId = ITEM_TEA,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gTeaItemDescription,
+ .importance = 1,
+ .unk19 = 1,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("MYSTICTICKET"),
+ .itemId = ITEM_MYSTIC_TICKET,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gMysticTicketItemDescription,
+ .importance = 1,
+ .unk19 = 1,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("AURORATICKET"),
+ .itemId = ITEM_AURORA_TICKET,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gAuroraTicketItemDescription,
+ .importance = 1,
+ .unk19 = 1,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("POWDER JAR"),
+ .itemId = ITEM_POWDER_JAR,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gPowderJarItemDescription,
+ .importance = 1,
+ .unk19 = 1,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_PowderJar,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("RUBY"),
+ .itemId = ITEM_RUBY,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gRubyItemDescription,
+ .importance = 1,
+ .unk19 = 1,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("SAPPHIRE"),
+ .itemId = ITEM_SAPPHIRE,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gSapphireItemDescription,
+ .importance = 1,
+ .unk19 = 1,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+
+//Emerald-specific key items
+
+ {
+ .name = _("MAGMA EMBLEM"),
+ .itemId = ITEM_MAGMA_EMBLEM,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gMagmaEmblemItemDescription,
+ .importance = 1,
+ .unk19 = 1,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+ {
+ .name = _("OLD SEA MAP"),
+ .itemId = ITEM_OLD_SEA_MAP,
+ .price = 0,
+ .holdEffect = HOLD_EFFECT_NONE,
+ .holdEffectParam = 0,
+ .description = gOldSeaMapItemDescription,
+ .importance = 1,
+ .unk19 = 1,
+ .pocket = POCKET_KEY_ITEMS,
+ .type = 4,
+ .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .battleUsage = 0,
+ .battleUseFunc = NULL,
+ .secondaryId = 0,
+ },
+};
diff --git a/include/data/pokemon/level_up_learnset_pointers.h b/include/data/pokemon/level_up_learnset_pointers.h
index a56b1c09f..0f648526c 100644
--- a/include/data/pokemon/level_up_learnset_pointers.h
+++ b/include/data/pokemon/level_up_learnset_pointers.h
@@ -1,420 +1,420 @@
#ifndef POKEEMERALD_LEVEL_UP_LEARNSET_POINTERS_H
#define POKEEMERALD_LEVEL_UP_LEARNSET_POINTERS_H
-const u16 *const gLevelUpLearnsets[] =
+const u16 *const gLevelUpLearnsets[NUM_SPECIES] =
{
- 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
+ [SPECIES_NONE] = sBulbasaurLevelUpLearnset,
+ [SPECIES_BULBASAUR] = sBulbasaurLevelUpLearnset,
+ [SPECIES_IVYSAUR] = sIvysaurLevelUpLearnset,
+ [SPECIES_VENUSAUR] = sVenusaurLevelUpLearnset,
+ [SPECIES_CHARMANDER] = sCharmanderLevelUpLearnset,
+ [SPECIES_CHARMELEON] = sCharmeleonLevelUpLearnset,
+ [SPECIES_CHARIZARD] = sCharizardLevelUpLearnset,
+ [SPECIES_SQUIRTLE] = sSquirtleLevelUpLearnset,
+ [SPECIES_WARTORTLE] = sWartortleLevelUpLearnset,
+ [SPECIES_BLASTOISE] = sBlastoiseLevelUpLearnset,
+ [SPECIES_CATERPIE] = sCaterpieLevelUpLearnset,
+ [SPECIES_METAPOD] = sMetapodLevelUpLearnset,
+ [SPECIES_BUTTERFREE] = sButterfreeLevelUpLearnset,
+ [SPECIES_WEEDLE] = sWeedleLevelUpLearnset,
+ [SPECIES_KAKUNA] = sKakunaLevelUpLearnset,
+ [SPECIES_BEEDRILL] = sBeedrillLevelUpLearnset,
+ [SPECIES_PIDGEY] = sPidgeyLevelUpLearnset,
+ [SPECIES_PIDGEOTTO] = sPidgeottoLevelUpLearnset,
+ [SPECIES_PIDGEOT] = sPidgeotLevelUpLearnset,
+ [SPECIES_RATTATA] = sRattataLevelUpLearnset,
+ [SPECIES_RATICATE] = sRaticateLevelUpLearnset,
+ [SPECIES_SPEAROW] = sSpearowLevelUpLearnset,
+ [SPECIES_FEAROW] = sFearowLevelUpLearnset,
+ [SPECIES_EKANS] = sEkansLevelUpLearnset,
+ [SPECIES_ARBOK] = sArbokLevelUpLearnset,
+ [SPECIES_PIKACHU] = sPikachuLevelUpLearnset,
+ [SPECIES_RAICHU] = sRaichuLevelUpLearnset,
+ [SPECIES_SANDSHREW] = sSandshrewLevelUpLearnset,
+ [SPECIES_SANDSLASH] = sSandslashLevelUpLearnset,
+ [SPECIES_NIDORAN_F] = sNidoranFLevelUpLearnset,
+ [SPECIES_NIDORINA] = sNidorinaLevelUpLearnset,
+ [SPECIES_NIDOQUEEN] = sNidoqueenLevelUpLearnset,
+ [SPECIES_NIDORAN_M] = sNidoranMLevelUpLearnset,
+ [SPECIES_NIDORINO] = sNidorinoLevelUpLearnset,
+ [SPECIES_NIDOKING] = sNidokingLevelUpLearnset,
+ [SPECIES_CLEFAIRY] = sClefairyLevelUpLearnset,
+ [SPECIES_CLEFABLE] = sClefableLevelUpLearnset,
+ [SPECIES_VULPIX] = sVulpixLevelUpLearnset,
+ [SPECIES_NINETALES] = sNinetalesLevelUpLearnset,
+ [SPECIES_JIGGLYPUFF] = sJigglypuffLevelUpLearnset,
+ [SPECIES_WIGGLYTUFF] = sWigglytuffLevelUpLearnset,
+ [SPECIES_ZUBAT] = sZubatLevelUpLearnset,
+ [SPECIES_GOLBAT] = sGolbatLevelUpLearnset,
+ [SPECIES_ODDISH] = sOddishLevelUpLearnset,
+ [SPECIES_GLOOM] = sGloomLevelUpLearnset,
+ [SPECIES_VILEPLUME] = sVileplumeLevelUpLearnset,
+ [SPECIES_PARAS] = sParasLevelUpLearnset,
+ [SPECIES_PARASECT] = sParasectLevelUpLearnset,
+ [SPECIES_VENONAT] = sVenonatLevelUpLearnset,
+ [SPECIES_VENOMOTH] = sVenomothLevelUpLearnset,
+ [SPECIES_DIGLETT] = sDiglettLevelUpLearnset,
+ [SPECIES_DUGTRIO] = sDugtrioLevelUpLearnset,
+ [SPECIES_MEOWTH] = sMeowthLevelUpLearnset,
+ [SPECIES_PERSIAN] = sPersianLevelUpLearnset,
+ [SPECIES_PSYDUCK] = sPsyduckLevelUpLearnset,
+ [SPECIES_GOLDUCK] = sGolduckLevelUpLearnset,
+ [SPECIES_MANKEY] = sMankeyLevelUpLearnset,
+ [SPECIES_PRIMEAPE] = sPrimeapeLevelUpLearnset,
+ [SPECIES_GROWLITHE] = sGrowlitheLevelUpLearnset,
+ [SPECIES_ARCANINE] = sArcanineLevelUpLearnset,
+ [SPECIES_POLIWAG] = sPoliwagLevelUpLearnset,
+ [SPECIES_POLIWHIRL] = sPoliwhirlLevelUpLearnset,
+ [SPECIES_POLIWRATH] = sPoliwrathLevelUpLearnset,
+ [SPECIES_ABRA] = sAbraLevelUpLearnset,
+ [SPECIES_KADABRA] = sKadabraLevelUpLearnset,
+ [SPECIES_ALAKAZAM] = sAlakazamLevelUpLearnset,
+ [SPECIES_MACHOP] = sMachopLevelUpLearnset,
+ [SPECIES_MACHOKE] = sMachokeLevelUpLearnset,
+ [SPECIES_MACHAMP] = sMachampLevelUpLearnset,
+ [SPECIES_BELLSPROUT] = sBellsproutLevelUpLearnset,
+ [SPECIES_WEEPINBELL] = sWeepinbellLevelUpLearnset,
+ [SPECIES_VICTREEBEL] = sVictreebelLevelUpLearnset,
+ [SPECIES_TENTACOOL] = sTentacoolLevelUpLearnset,
+ [SPECIES_TENTACRUEL] = sTentacruelLevelUpLearnset,
+ [SPECIES_GEODUDE] = sGeodudeLevelUpLearnset,
+ [SPECIES_GRAVELER] = sGravelerLevelUpLearnset,
+ [SPECIES_GOLEM] = sGolemLevelUpLearnset,
+ [SPECIES_PONYTA] = sPonytaLevelUpLearnset,
+ [SPECIES_RAPIDASH] = sRapidashLevelUpLearnset,
+ [SPECIES_SLOWPOKE] = sSlowpokeLevelUpLearnset,
+ [SPECIES_SLOWBRO] = sSlowbroLevelUpLearnset,
+ [SPECIES_MAGNEMITE] = sMagnemiteLevelUpLearnset,
+ [SPECIES_MAGNETON] = sMagnetonLevelUpLearnset,
+ [SPECIES_FARFETCHD] = sFarfetchdLevelUpLearnset,
+ [SPECIES_DODUO] = sDoduoLevelUpLearnset,
+ [SPECIES_DODRIO] = sDodrioLevelUpLearnset,
+ [SPECIES_SEEL] = sSeelLevelUpLearnset,
+ [SPECIES_DEWGONG] = sDewgongLevelUpLearnset,
+ [SPECIES_GRIMER] = sGrimerLevelUpLearnset,
+ [SPECIES_MUK] = sMukLevelUpLearnset,
+ [SPECIES_SHELLDER] = sShellderLevelUpLearnset,
+ [SPECIES_CLOYSTER] = sCloysterLevelUpLearnset,
+ [SPECIES_GASTLY] = sGastlyLevelUpLearnset,
+ [SPECIES_HAUNTER] = sHaunterLevelUpLearnset,
+ [SPECIES_GENGAR] = sGengarLevelUpLearnset,
+ [SPECIES_ONIX] = sOnixLevelUpLearnset,
+ [SPECIES_DROWZEE] = sDrowzeeLevelUpLearnset,
+ [SPECIES_HYPNO] = sHypnoLevelUpLearnset,
+ [SPECIES_KRABBY] = sKrabbyLevelUpLearnset,
+ [SPECIES_KINGLER] = sKinglerLevelUpLearnset,
+ [SPECIES_VOLTORB] = sVoltorbLevelUpLearnset,
+ [SPECIES_ELECTRODE] = sElectrodeLevelUpLearnset,
+ [SPECIES_EXEGGCUTE] = sExeggcuteLevelUpLearnset,
+ [SPECIES_EXEGGUTOR] = sExeggutorLevelUpLearnset,
+ [SPECIES_CUBONE] = sCuboneLevelUpLearnset,
+ [SPECIES_MAROWAK] = sMarowakLevelUpLearnset,
+ [SPECIES_HITMONLEE] = sHitmonleeLevelUpLearnset,
+ [SPECIES_HITMONCHAN] = sHitmonchanLevelUpLearnset,
+ [SPECIES_LICKITUNG] = sLickitungLevelUpLearnset,
+ [SPECIES_KOFFING] = sKoffingLevelUpLearnset,
+ [SPECIES_WEEZING] = sWeezingLevelUpLearnset,
+ [SPECIES_RHYHORN] = sRhyhornLevelUpLearnset,
+ [SPECIES_RHYDON] = sRhydonLevelUpLearnset,
+ [SPECIES_CHANSEY] = sChanseyLevelUpLearnset,
+ [SPECIES_TANGELA] = sTangelaLevelUpLearnset,
+ [SPECIES_KANGASKHAN] = sKangaskhanLevelUpLearnset,
+ [SPECIES_HORSEA] = sHorseaLevelUpLearnset,
+ [SPECIES_SEADRA] = sSeadraLevelUpLearnset,
+ [SPECIES_GOLDEEN] = sGoldeenLevelUpLearnset,
+ [SPECIES_SEAKING] = sSeakingLevelUpLearnset,
+ [SPECIES_STARYU] = sStaryuLevelUpLearnset,
+ [SPECIES_STARMIE] = sStarmieLevelUpLearnset,
+ [SPECIES_MR_MIME] = sMrmimeLevelUpLearnset,
+ [SPECIES_SCYTHER] = sScytherLevelUpLearnset,
+ [SPECIES_JYNX] = sJynxLevelUpLearnset,
+ [SPECIES_ELECTABUZZ] = sElectabuzzLevelUpLearnset,
+ [SPECIES_MAGMAR] = sMagmarLevelUpLearnset,
+ [SPECIES_PINSIR] = sPinsirLevelUpLearnset,
+ [SPECIES_TAUROS] = sTaurosLevelUpLearnset,
+ [SPECIES_MAGIKARP] = sMagikarpLevelUpLearnset,
+ [SPECIES_GYARADOS] = sGyaradosLevelUpLearnset,
+ [SPECIES_LAPRAS] = sLaprasLevelUpLearnset,
+ [SPECIES_DITTO] = sDittoLevelUpLearnset,
+ [SPECIES_EEVEE] = sEeveeLevelUpLearnset,
+ [SPECIES_VAPOREON] = sVaporeonLevelUpLearnset,
+ [SPECIES_JOLTEON] = sJolteonLevelUpLearnset,
+ [SPECIES_FLAREON] = sFlareonLevelUpLearnset,
+ [SPECIES_PORYGON] = sPorygonLevelUpLearnset,
+ [SPECIES_OMANYTE] = sOmanyteLevelUpLearnset,
+ [SPECIES_OMASTAR] = sOmastarLevelUpLearnset,
+ [SPECIES_KABUTO] = sKabutoLevelUpLearnset,
+ [SPECIES_KABUTOPS] = sKabutopsLevelUpLearnset,
+ [SPECIES_AERODACTYL] = sAerodactylLevelUpLearnset,
+ [SPECIES_SNORLAX] = sSnorlaxLevelUpLearnset,
+ [SPECIES_ARTICUNO] = sArticunoLevelUpLearnset,
+ [SPECIES_ZAPDOS] = sZapdosLevelUpLearnset,
+ [SPECIES_MOLTRES] = sMoltresLevelUpLearnset,
+ [SPECIES_DRATINI] = sDratiniLevelUpLearnset,
+ [SPECIES_DRAGONAIR] = sDragonairLevelUpLearnset,
+ [SPECIES_DRAGONITE] = sDragoniteLevelUpLearnset,
+ [SPECIES_MEWTWO] = sMewtwoLevelUpLearnset,
+ [SPECIES_MEW] = sMewLevelUpLearnset,
+ [SPECIES_CHIKORITA] = sChikoritaLevelUpLearnset,
+ [SPECIES_BAYLEEF] = sBayleefLevelUpLearnset,
+ [SPECIES_MEGANIUM] = sMeganiumLevelUpLearnset,
+ [SPECIES_CYNDAQUIL] = sCyndaquilLevelUpLearnset,
+ [SPECIES_QUILAVA] = sQuilavaLevelUpLearnset,
+ [SPECIES_TYPHLOSION] = sTyphlosionLevelUpLearnset,
+ [SPECIES_TOTODILE] = sTotodileLevelUpLearnset,
+ [SPECIES_CROCONAW] = sCroconawLevelUpLearnset,
+ [SPECIES_FERALIGATR] = sFeraligatrLevelUpLearnset,
+ [SPECIES_SENTRET] = sSentretLevelUpLearnset,
+ [SPECIES_FURRET] = sFurretLevelUpLearnset,
+ [SPECIES_HOOTHOOT] = sHoothootLevelUpLearnset,
+ [SPECIES_NOCTOWL] = sNoctowlLevelUpLearnset,
+ [SPECIES_LEDYBA] = sLedybaLevelUpLearnset,
+ [SPECIES_LEDIAN] = sLedianLevelUpLearnset,
+ [SPECIES_SPINARAK] = sSpinarakLevelUpLearnset,
+ [SPECIES_ARIADOS] = sAriadosLevelUpLearnset,
+ [SPECIES_CROBAT] = sCrobatLevelUpLearnset,
+ [SPECIES_CHINCHOU] = sChinchouLevelUpLearnset,
+ [SPECIES_LANTURN] = sLanturnLevelUpLearnset,
+ [SPECIES_PICHU] = sPichuLevelUpLearnset,
+ [SPECIES_CLEFFA] = sCleffaLevelUpLearnset,
+ [SPECIES_IGGLYBUFF] = sIgglybuffLevelUpLearnset,
+ [SPECIES_TOGEPI] = sTogepiLevelUpLearnset,
+ [SPECIES_TOGETIC] = sTogeticLevelUpLearnset,
+ [SPECIES_NATU] = sNatuLevelUpLearnset,
+ [SPECIES_XATU] = sXatuLevelUpLearnset,
+ [SPECIES_MAREEP] = sMareepLevelUpLearnset,
+ [SPECIES_FLAAFFY] = sFlaaffyLevelUpLearnset,
+ [SPECIES_AMPHAROS] = sAmpharosLevelUpLearnset,
+ [SPECIES_BELLOSSOM] = sBellossomLevelUpLearnset,
+ [SPECIES_MARILL] = sMarillLevelUpLearnset,
+ [SPECIES_AZUMARILL] = sAzumarillLevelUpLearnset,
+ [SPECIES_SUDOWOODO] = sSudowoodoLevelUpLearnset,
+ [SPECIES_POLITOED] = sPolitoedLevelUpLearnset,
+ [SPECIES_HOPPIP] = sHoppipLevelUpLearnset,
+ [SPECIES_SKIPLOOM] = sSkiploomLevelUpLearnset,
+ [SPECIES_JUMPLUFF] = sJumpluffLevelUpLearnset,
+ [SPECIES_AIPOM] = sAipomLevelUpLearnset,
+ [SPECIES_SUNKERN] = sSunkernLevelUpLearnset,
+ [SPECIES_SUNFLORA] = sSunfloraLevelUpLearnset,
+ [SPECIES_YANMA] = sYanmaLevelUpLearnset,
+ [SPECIES_WOOPER] = sWooperLevelUpLearnset,
+ [SPECIES_QUAGSIRE] = sQuagsireLevelUpLearnset,
+ [SPECIES_ESPEON] = sEspeonLevelUpLearnset,
+ [SPECIES_UMBREON] = sUmbreonLevelUpLearnset,
+ [SPECIES_MURKROW] = sMurkrowLevelUpLearnset,
+ [SPECIES_SLOWKING] = sSlowkingLevelUpLearnset,
+ [SPECIES_MISDREAVUS] = sMisdreavusLevelUpLearnset,
+ [SPECIES_UNOWN] = sUnownLevelUpLearnset,
+ [SPECIES_WOBBUFFET] = sWobbuffetLevelUpLearnset,
+ [SPECIES_GIRAFARIG] = sGirafarigLevelUpLearnset,
+ [SPECIES_PINECO] = sPinecoLevelUpLearnset,
+ [SPECIES_FORRETRESS] = sForretressLevelUpLearnset,
+ [SPECIES_DUNSPARCE] = sDunsparceLevelUpLearnset,
+ [SPECIES_GLIGAR] = sGligarLevelUpLearnset,
+ [SPECIES_STEELIX] = sSteelixLevelUpLearnset,
+ [SPECIES_SNUBBULL] = sSnubbullLevelUpLearnset,
+ [SPECIES_GRANBULL] = sGranbullLevelUpLearnset,
+ [SPECIES_QWILFISH] = sQwilfishLevelUpLearnset,
+ [SPECIES_SCIZOR] = sScizorLevelUpLearnset,
+ [SPECIES_SHUCKLE] = sShuckleLevelUpLearnset,
+ [SPECIES_HERACROSS] = sHeracrossLevelUpLearnset,
+ [SPECIES_SNEASEL] = sSneaselLevelUpLearnset,
+ [SPECIES_TEDDIURSA] = sTeddiursaLevelUpLearnset,
+ [SPECIES_URSARING] = sUrsaringLevelUpLearnset,
+ [SPECIES_SLUGMA] = sSlugmaLevelUpLearnset,
+ [SPECIES_MAGCARGO] = sMagcargoLevelUpLearnset,
+ [SPECIES_SWINUB] = sSwinubLevelUpLearnset,
+ [SPECIES_PILOSWINE] = sPiloswineLevelUpLearnset,
+ [SPECIES_CORSOLA] = sCorsolaLevelUpLearnset,
+ [SPECIES_REMORAID] = sRemoraidLevelUpLearnset,
+ [SPECIES_OCTILLERY] = sOctilleryLevelUpLearnset,
+ [SPECIES_DELIBIRD] = sDelibirdLevelUpLearnset,
+ [SPECIES_MANTINE] = sMantineLevelUpLearnset,
+ [SPECIES_SKARMORY] = sSkarmoryLevelUpLearnset,
+ [SPECIES_HOUNDOUR] = sHoundourLevelUpLearnset,
+ [SPECIES_HOUNDOOM] = sHoundoomLevelUpLearnset,
+ [SPECIES_KINGDRA] = sKingdraLevelUpLearnset,
+ [SPECIES_PHANPY] = sPhanpyLevelUpLearnset,
+ [SPECIES_DONPHAN] = sDonphanLevelUpLearnset,
+ [SPECIES_PORYGON2] = sPorygon2LevelUpLearnset,
+ [SPECIES_STANTLER] = sStantlerLevelUpLearnset,
+ [SPECIES_SMEARGLE] = sSmeargleLevelUpLearnset,
+ [SPECIES_TYROGUE] = sTyrogueLevelUpLearnset,
+ [SPECIES_HITMONTOP] = sHitmontopLevelUpLearnset,
+ [SPECIES_SMOOCHUM] = sSmoochumLevelUpLearnset,
+ [SPECIES_ELEKID] = sElekidLevelUpLearnset,
+ [SPECIES_MAGBY] = sMagbyLevelUpLearnset,
+ [SPECIES_MILTANK] = sMiltankLevelUpLearnset,
+ [SPECIES_BLISSEY] = sBlisseyLevelUpLearnset,
+ [SPECIES_RAIKOU] = sRaikouLevelUpLearnset,
+ [SPECIES_ENTEI] = sEnteiLevelUpLearnset,
+ [SPECIES_SUICUNE] = sSuicuneLevelUpLearnset,
+ [SPECIES_LARVITAR] = sLarvitarLevelUpLearnset,
+ [SPECIES_PUPITAR] = sPupitarLevelUpLearnset,
+ [SPECIES_TYRANITAR] = sTyranitarLevelUpLearnset,
+ [SPECIES_LUGIA] = sLugiaLevelUpLearnset,
+ [SPECIES_HO_OH] = sHoOhLevelUpLearnset,
+ [SPECIES_CELEBI] = sCelebiLevelUpLearnset,
+ [SPECIES_OLD_UNOWN_B] = sSpecies252LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_C] = sSpecies253LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_D] = sSpecies254LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_E] = sSpecies255LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_F] = sSpecies256LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_G] = sSpecies257LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_H] = sSpecies258LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_I] = sSpecies259LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_J] = sSpecies260LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_K] = sSpecies261LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_L] = sSpecies262LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_M] = sSpecies263LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_N] = sSpecies264LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_O] = sSpecies265LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_P] = sSpecies266LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_Q] = sSpecies267LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_R] = sSpecies268LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_S] = sSpecies269LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_T] = sSpecies270LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_U] = sSpecies271LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_V] = sSpecies272LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_W] = sSpecies273LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_X] = sSpecies274LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_Y] = sSpecies275LevelUpLearnset,
+ [SPECIES_OLD_UNOWN_Z] = sSpecies276LevelUpLearnset,
+ [SPECIES_TREECKO] = sTreeckoLevelUpLearnset,
+ [SPECIES_GROVYLE] = sGrovyleLevelUpLearnset,
+ [SPECIES_SCEPTILE] = sSceptileLevelUpLearnset,
+ [SPECIES_TORCHIC] = sTorchicLevelUpLearnset,
+ [SPECIES_COMBUSKEN] = sCombuskenLevelUpLearnset,
+ [SPECIES_BLAZIKEN] = sBlazikenLevelUpLearnset,
+ [SPECIES_MUDKIP] = sMudkipLevelUpLearnset,
+ [SPECIES_MARSHTOMP] = sMarshtompLevelUpLearnset,
+ [SPECIES_SWAMPERT] = sSwampertLevelUpLearnset,
+ [SPECIES_POOCHYENA] = sPoochyenaLevelUpLearnset,
+ [SPECIES_MIGHTYENA] = sMightyenaLevelUpLearnset,
+ [SPECIES_ZIGZAGOON] = sZigzagoonLevelUpLearnset,
+ [SPECIES_LINOONE] = sLinooneLevelUpLearnset,
+ [SPECIES_WURMPLE] = sWurmpleLevelUpLearnset,
+ [SPECIES_SILCOON] = sSilcoonLevelUpLearnset,
+ [SPECIES_BEAUTIFLY] = sBeautiflyLevelUpLearnset,
+ [SPECIES_CASCOON] = sCascoonLevelUpLearnset,
+ [SPECIES_DUSTOX] = sDustoxLevelUpLearnset,
+ [SPECIES_LOTAD] = sLotadLevelUpLearnset,
+ [SPECIES_LOMBRE] = sLombreLevelUpLearnset,
+ [SPECIES_LUDICOLO] = sLudicoloLevelUpLearnset,
+ [SPECIES_SEEDOT] = sSeedotLevelUpLearnset,
+ [SPECIES_NUZLEAF] = sNuzleafLevelUpLearnset,
+ [SPECIES_SHIFTRY] = sShiftryLevelUpLearnset,
+ [SPECIES_NINCADA] = sNincadaLevelUpLearnset,
+ [SPECIES_NINJASK] = sNinjaskLevelUpLearnset,
+ [SPECIES_SHEDINJA] = sShedinjaLevelUpLearnset,
+ [SPECIES_TAILLOW] = sTaillowLevelUpLearnset,
+ [SPECIES_SWELLOW] = sSwellowLevelUpLearnset,
+ [SPECIES_SHROOMISH] = sShroomishLevelUpLearnset,
+ [SPECIES_BRELOOM] = sBreloomLevelUpLearnset,
+ [SPECIES_SPINDA] = sSpindaLevelUpLearnset,
+ [SPECIES_WINGULL] = sWingullLevelUpLearnset,
+ [SPECIES_PELIPPER] = sPelipperLevelUpLearnset,
+ [SPECIES_SURSKIT] = sSurskitLevelUpLearnset,
+ [SPECIES_MASQUERAIN] = sMasquerainLevelUpLearnset,
+ [SPECIES_WAILMER] = sWailmerLevelUpLearnset,
+ [SPECIES_WAILORD] = sWailordLevelUpLearnset,
+ [SPECIES_SKITTY] = sSkittyLevelUpLearnset,
+ [SPECIES_DELCATTY] = sDelcattyLevelUpLearnset,
+ [SPECIES_KECLEON] = sKecleonLevelUpLearnset,
+ [SPECIES_BALTOY] = sBaltoyLevelUpLearnset,
+ [SPECIES_CLAYDOL] = sClaydolLevelUpLearnset,
+ [SPECIES_NOSEPASS] = sNosepassLevelUpLearnset,
+ [SPECIES_TORKOAL] = sTorkoalLevelUpLearnset,
+ [SPECIES_SABLEYE] = sSableyeLevelUpLearnset,
+ [SPECIES_BARBOACH] = sBarboachLevelUpLearnset,
+ [SPECIES_WHISCASH] = sWhiscashLevelUpLearnset,
+ [SPECIES_LUVDISC] = sLuvdiscLevelUpLearnset,
+ [SPECIES_CORPHISH] = sCorphishLevelUpLearnset,
+ [SPECIES_CRAWDAUNT] = sCrawdauntLevelUpLearnset,
+ [SPECIES_FEEBAS] = sFeebasLevelUpLearnset,
+ [SPECIES_MILOTIC] = sMiloticLevelUpLearnset,
+ [SPECIES_CARVANHA] = sCarvanhaLevelUpLearnset,
+ [SPECIES_SHARPEDO] = sSharpedoLevelUpLearnset,
+ [SPECIES_TRAPINCH] = sTrapinchLevelUpLearnset,
+ [SPECIES_VIBRAVA] = sVibravaLevelUpLearnset,
+ [SPECIES_FLYGON] = sFlygonLevelUpLearnset,
+ [SPECIES_MAKUHITA] = sMakuhitaLevelUpLearnset,
+ [SPECIES_HARIYAMA] = sHariyamaLevelUpLearnset,
+ [SPECIES_ELECTRIKE] = sElectrikeLevelUpLearnset,
+ [SPECIES_MANECTRIC] = sManectricLevelUpLearnset,
+ [SPECIES_NUMEL] = sNumelLevelUpLearnset,
+ [SPECIES_CAMERUPT] = sCameruptLevelUpLearnset,
+ [SPECIES_SPHEAL] = sSphealLevelUpLearnset,
+ [SPECIES_SEALEO] = sSealeoLevelUpLearnset,
+ [SPECIES_WALREIN] = sWalreinLevelUpLearnset,
+ [SPECIES_CACNEA] = sCacneaLevelUpLearnset,
+ [SPECIES_CACTURNE] = sCacturneLevelUpLearnset,
+ [SPECIES_SNORUNT] = sSnoruntLevelUpLearnset,
+ [SPECIES_GLALIE] = sGlalieLevelUpLearnset,
+ [SPECIES_LUNATONE] = sLunatoneLevelUpLearnset,
+ [SPECIES_SOLROCK] = sSolrockLevelUpLearnset,
+ [SPECIES_AZURILL] = sAzurillLevelUpLearnset,
+ [SPECIES_SPOINK] = sSpoinkLevelUpLearnset,
+ [SPECIES_GRUMPIG] = sGrumpigLevelUpLearnset,
+ [SPECIES_PLUSLE] = sPlusleLevelUpLearnset,
+ [SPECIES_MINUN] = sMinunLevelUpLearnset,
+ [SPECIES_MAWILE] = sMawileLevelUpLearnset,
+ [SPECIES_MEDITITE] = sMedititeLevelUpLearnset,
+ [SPECIES_MEDICHAM] = sMedichamLevelUpLearnset,
+ [SPECIES_SWABLU] = sSwabluLevelUpLearnset,
+ [SPECIES_ALTARIA] = sAltariaLevelUpLearnset,
+ [SPECIES_WYNAUT] = sWynautLevelUpLearnset,
+ [SPECIES_DUSKULL] = sDuskullLevelUpLearnset,
+ [SPECIES_DUSCLOPS] = sDusclopsLevelUpLearnset,
+ [SPECIES_ROSELIA] = sRoseliaLevelUpLearnset,
+ [SPECIES_SLAKOTH] = sSlakothLevelUpLearnset,
+ [SPECIES_VIGOROTH] = sVigorothLevelUpLearnset,
+ [SPECIES_SLAKING] = sSlakingLevelUpLearnset,
+ [SPECIES_GULPIN] = sGulpinLevelUpLearnset,
+ [SPECIES_SWALOT] = sSwalotLevelUpLearnset,
+ [SPECIES_TROPIUS] = sTropiusLevelUpLearnset,
+ [SPECIES_WHISMUR] = sWhismurLevelUpLearnset,
+ [SPECIES_LOUDRED] = sLoudredLevelUpLearnset,
+ [SPECIES_EXPLOUD] = sExploudLevelUpLearnset,
+ [SPECIES_CLAMPERL] = sClamperlLevelUpLearnset,
+ [SPECIES_HUNTAIL] = sHuntailLevelUpLearnset,
+ [SPECIES_GOREBYSS] = sGorebyssLevelUpLearnset,
+ [SPECIES_ABSOL] = sAbsolLevelUpLearnset,
+ [SPECIES_SHUPPET] = sShuppetLevelUpLearnset,
+ [SPECIES_BANETTE] = sBanetteLevelUpLearnset,
+ [SPECIES_SEVIPER] = sSeviperLevelUpLearnset,
+ [SPECIES_ZANGOOSE] = sZangooseLevelUpLearnset,
+ [SPECIES_RELICANTH] = sRelicanthLevelUpLearnset,
+ [SPECIES_ARON] = sAronLevelUpLearnset,
+ [SPECIES_LAIRON] = sLaironLevelUpLearnset,
+ [SPECIES_AGGRON] = sAggronLevelUpLearnset,
+ [SPECIES_CASTFORM] = sCastformLevelUpLearnset,
+ [SPECIES_VOLBEAT] = sVolbeatLevelUpLearnset,
+ [SPECIES_ILLUMISE] = sIllumiseLevelUpLearnset,
+ [SPECIES_LILEEP] = sLileepLevelUpLearnset,
+ [SPECIES_CRADILY] = sCradilyLevelUpLearnset,
+ [SPECIES_ANORITH] = sAnorithLevelUpLearnset,
+ [SPECIES_ARMALDO] = sArmaldoLevelUpLearnset,
+ [SPECIES_RALTS] = sRaltsLevelUpLearnset,
+ [SPECIES_KIRLIA] = sKirliaLevelUpLearnset,
+ [SPECIES_GARDEVOIR] = sGardevoirLevelUpLearnset,
+ [SPECIES_BAGON] = sBagonLevelUpLearnset,
+ [SPECIES_SHELGON] = sShelgonLevelUpLearnset,
+ [SPECIES_SALAMENCE] = sSalamenceLevelUpLearnset,
+ [SPECIES_BELDUM] = sBeldumLevelUpLearnset,
+ [SPECIES_METANG] = sMetangLevelUpLearnset,
+ [SPECIES_METAGROSS] = sMetagrossLevelUpLearnset,
+ [SPECIES_REGIROCK] = sRegirockLevelUpLearnset,
+ [SPECIES_REGICE] = sRegiceLevelUpLearnset,
+ [SPECIES_REGISTEEL] = sRegisteelLevelUpLearnset,
+ [SPECIES_KYOGRE] = sKyogreLevelUpLearnset,
+ [SPECIES_GROUDON] = sGroudonLevelUpLearnset,
+ [SPECIES_RAYQUAZA] = sRayquazaLevelUpLearnset,
+ [SPECIES_LATIAS] = sLatiasLevelUpLearnset,
+ [SPECIES_LATIOS] = sLatiosLevelUpLearnset,
+ [SPECIES_JIRACHI] = sJirachiLevelUpLearnset,
+ [SPECIES_DEOXYS] = sDeoxysLevelUpLearnset,
+ [SPECIES_CHIMECHO] = sChimechoLevelUpLearnset,
};
#endif //POKEEMERALD_LEVEL_UP_LEARNSET_POINTERS_H
diff --git a/include/data/pokemon/level_up_learnsets.h b/include/data/pokemon/level_up_learnsets.h
index 4035dc66a..062873aee 100644
--- a/include/data/pokemon/level_up_learnsets.h
+++ b/include/data/pokemon/level_up_learnsets.h
@@ -4,7 +4,7 @@
#define LEVEL_UP_MOVE(lvl, move) ((lvl << 9) | move)
#define LEVEL_UP_END 0xffff
-const u16 gBulbasaurLevelUpLearnset[] = {
+static const u16 sBulbasaurLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 4, MOVE_GROWL),
LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED),
@@ -19,7 +19,7 @@ const u16 gBulbasaurLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gIvysaurLevelUpLearnset[] = {
+static const u16 sIvysaurLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
@@ -36,7 +36,7 @@ const u16 gIvysaurLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gVenusaurLevelUpLearnset[] = {
+static const u16 sVenusaurLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
@@ -54,7 +54,7 @@ const u16 gVenusaurLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCharmanderLevelUpLearnset[] = {
+static const u16 sCharmanderLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 7, MOVE_EMBER),
@@ -68,7 +68,7 @@ const u16 gCharmanderLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCharmeleonLevelUpLearnset[] = {
+static const u16 sCharmeleonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_EMBER),
@@ -83,7 +83,7 @@ const u16 gCharmeleonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCharizardLevelUpLearnset[] = {
+static const u16 sCharizardLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_EMBER),
@@ -100,7 +100,7 @@ const u16 gCharizardLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSquirtleLevelUpLearnset[] = {
+static const u16 sSquirtleLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 7, MOVE_BUBBLE),
@@ -115,7 +115,7 @@ const u16 gSquirtleLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gWartortleLevelUpLearnset[] = {
+static const u16 sWartortleLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
@@ -132,7 +132,7 @@ const u16 gWartortleLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gBlastoiseLevelUpLearnset[] = {
+static const u16 sBlastoiseLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
@@ -150,19 +150,19 @@ const u16 gBlastoiseLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCaterpieLevelUpLearnset[] = {
+static const u16 sCaterpieLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
LEVEL_UP_END
};
-const u16 gMetapodLevelUpLearnset[] = {
+static const u16 sMetapodLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 7, MOVE_HARDEN),
LEVEL_UP_END
};
-const u16 gButterfreeLevelUpLearnset[] = {
+static const u16 sButterfreeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
LEVEL_UP_MOVE(10, MOVE_CONFUSION),
LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
@@ -177,19 +177,19 @@ const u16 gButterfreeLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gWeedleLevelUpLearnset[] = {
+static const u16 sWeedleLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
LEVEL_UP_END
};
-const u16 gKakunaLevelUpLearnset[] = {
+static const u16 sKakunaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 7, MOVE_HARDEN),
LEVEL_UP_END
};
-const u16 gBeedrillLevelUpLearnset[] = {
+static const u16 sBeedrillLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK),
LEVEL_UP_MOVE(10, MOVE_FURY_ATTACK),
LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY),
@@ -202,7 +202,7 @@ const u16 gBeedrillLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPidgeyLevelUpLearnset[] = {
+static const u16 sPidgeyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK),
LEVEL_UP_MOVE( 9, MOVE_GUST),
@@ -215,7 +215,7 @@ const u16 gPidgeyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPidgeottoLevelUpLearnset[] = {
+static const u16 sPidgeottoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_GUST),
@@ -230,7 +230,7 @@ const u16 gPidgeottoLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPidgeotLevelUpLearnset[] = {
+static const u16 sPidgeotLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_GUST),
@@ -246,7 +246,7 @@ const u16 gPidgeotLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRattataLevelUpLearnset[] = {
+static const u16 sRattataLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
@@ -258,7 +258,7 @@ const u16 gRattataLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRaticateLevelUpLearnset[] = {
+static const u16 sRaticateLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
@@ -271,7 +271,7 @@ const u16 gRaticateLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSpearowLevelUpLearnset[] = {
+static const u16 sSpearowLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 7, MOVE_LEER),
@@ -284,7 +284,7 @@ const u16 gSpearowLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gFearowLevelUpLearnset[] = {
+static const u16 sFearowLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_LEER),
@@ -298,7 +298,7 @@ const u16 gFearowLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gEkansLevelUpLearnset[] = {
+static const u16 sEkansLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WRAP),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 8, MOVE_POISON_STING),
@@ -313,7 +313,7 @@ const u16 gEkansLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gArbokLevelUpLearnset[] = {
+static const u16 sArbokLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WRAP),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
@@ -330,7 +330,7 @@ const u16 gArbokLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPikachuLevelUpLearnset[] = {
+static const u16 sPikachuLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
@@ -345,7 +345,7 @@ const u16 gPikachuLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRaichuLevelUpLearnset[] = {
+static const u16 sRaichuLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
@@ -353,7 +353,7 @@ const u16 gRaichuLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSandshrewLevelUpLearnset[] = {
+static const u16 sSandshrewLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 6, MOVE_DEFENSE_CURL),
LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK),
@@ -366,7 +366,7 @@ const u16 gSandshrewLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSandslashLevelUpLearnset[] = {
+static const u16 sSandslashLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
@@ -381,7 +381,7 @@ const u16 gSandslashLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gNidoranFLevelUpLearnset[] = {
+static const u16 sNidoranFLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP),
@@ -395,7 +395,7 @@ const u16 gNidoranFLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gNidorinaLevelUpLearnset[] = {
+static const u16 sNidorinaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP),
@@ -409,7 +409,7 @@ const u16 gNidorinaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gNidoqueenLevelUpLearnset[] = {
+static const u16 sNidoqueenLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
@@ -418,7 +418,7 @@ const u16 gNidoqueenLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gNidoranMLevelUpLearnset[] = {
+static const u16 sNidoranMLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY),
@@ -432,7 +432,7 @@ const u16 gNidoranMLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gNidorinoLevelUpLearnset[] = {
+static const u16 sNidorinoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY),
@@ -446,7 +446,7 @@ const u16 gNidorinoLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gNidokingLevelUpLearnset[] = {
+static const u16 sNidokingLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
@@ -455,7 +455,7 @@ const u16 gNidokingLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gClefairyLevelUpLearnset[] = {
+static const u16 sClefairyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 5, MOVE_ENCORE),
@@ -472,7 +472,7 @@ const u16 gClefairyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gClefableLevelUpLearnset[] = {
+static const u16 sClefableLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SING),
LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
LEVEL_UP_MOVE( 1, MOVE_MINIMIZE),
@@ -480,7 +480,7 @@ const u16 gClefableLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gVulpixLevelUpLearnset[] = {
+static const u16 sVulpixLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_EMBER),
LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 9, MOVE_ROAR),
@@ -495,7 +495,7 @@ const u16 gVulpixLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gNinetalesLevelUpLearnset[] = {
+static const u16 sNinetalesLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_EMBER),
LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY),
@@ -504,7 +504,7 @@ const u16 gNinetalesLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gJigglypuffLevelUpLearnset[] = {
+static const u16 sJigglypuffLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SING),
LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
LEVEL_UP_MOVE( 9, MOVE_POUND),
@@ -519,7 +519,7 @@ const u16 gJigglypuffLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gWigglytuffLevelUpLearnset[] = {
+static const u16 sWigglytuffLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SING),
LEVEL_UP_MOVE( 1, MOVE_DISABLE),
LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
@@ -527,7 +527,7 @@ const u16 gWigglytuffLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gZubatLevelUpLearnset[] = {
+static const u16 sZubatLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC),
LEVEL_UP_MOVE(11, MOVE_ASTONISH),
@@ -541,7 +541,7 @@ const u16 gZubatLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGolbatLevelUpLearnset[] = {
+static const u16 sGolbatLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCREECH),
LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
@@ -558,7 +558,7 @@ const u16 gGolbatLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gOddishLevelUpLearnset[] = {
+static const u16 sOddishLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
LEVEL_UP_MOVE( 7, MOVE_SWEET_SCENT),
LEVEL_UP_MOVE(14, MOVE_POISON_POWDER),
@@ -570,7 +570,7 @@ const u16 gOddishLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGloomLevelUpLearnset[] = {
+static const u16 sGloomLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER),
@@ -584,7 +584,7 @@ const u16 gGloomLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gVileplumeLevelUpLearnset[] = {
+static const u16 sVileplumeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY),
LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
@@ -593,7 +593,7 @@ const u16 gVileplumeLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gParasLevelUpLearnset[] = {
+static const u16 sParasLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE),
LEVEL_UP_MOVE(13, MOVE_POISON_POWDER),
@@ -606,7 +606,7 @@ const u16 gParasLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gParasectLevelUpLearnset[] = {
+static const u16 sParasectLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER),
@@ -621,7 +621,7 @@ const u16 gParasectLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gVenonatLevelUpLearnset[] = {
+static const u16 sVenonatLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_DISABLE),
LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
@@ -636,7 +636,7 @@ const u16 gVenonatLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gVenomothLevelUpLearnset[] = {
+static const u16 sVenomothLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SILVER_WIND),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_DISABLE),
@@ -654,7 +654,7 @@ const u16 gVenomothLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDiglettLevelUpLearnset[] = {
+static const u16 sDiglettLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
LEVEL_UP_MOVE( 5, MOVE_GROWL),
@@ -667,7 +667,7 @@ const u16 gDiglettLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDugtrioLevelUpLearnset[] = {
+static const u16 sDugtrioLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
@@ -683,7 +683,7 @@ const u16 gDugtrioLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMeowthLevelUpLearnset[] = {
+static const u16 sMeowthLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE(11, MOVE_BITE),
@@ -696,7 +696,7 @@ const u16 gMeowthLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPersianLevelUpLearnset[] = {
+static const u16 sPersianLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_BITE),
@@ -710,7 +710,7 @@ const u16 gPersianLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPsyduckLevelUpLearnset[] = {
+static const u16 sPsyduckLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
@@ -723,7 +723,7 @@ const u16 gPsyduckLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGolduckLevelUpLearnset[] = {
+static const u16 sGolduckLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
@@ -738,7 +738,7 @@ const u16 gGolduckLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMankeyLevelUpLearnset[] = {
+static const u16 sMankeyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 9, MOVE_LOW_KICK),
@@ -752,7 +752,7 @@ const u16 gMankeyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPrimeapeLevelUpLearnset[] = {
+static const u16 sPrimeapeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
@@ -769,7 +769,7 @@ const u16 gPrimeapeLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGrowlitheLevelUpLearnset[] = {
+static const u16 sGrowlitheLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 1, MOVE_ROAR),
LEVEL_UP_MOVE( 7, MOVE_EMBER),
@@ -783,7 +783,7 @@ const u16 gGrowlitheLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gArcanineLevelUpLearnset[] = {
+static const u16 sArcanineLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 1, MOVE_ROAR),
LEVEL_UP_MOVE( 1, MOVE_EMBER),
@@ -792,7 +792,7 @@ const u16 gArcanineLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPoliwagLevelUpLearnset[] = {
+static const u16 sPoliwagLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS),
LEVEL_UP_MOVE(13, MOVE_WATER_GUN),
@@ -804,7 +804,7 @@ const u16 gPoliwagLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPoliwhirlLevelUpLearnset[] = {
+static const u16 sPoliwhirlLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
@@ -818,7 +818,7 @@ const u16 gPoliwhirlLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPoliwrathLevelUpLearnset[] = {
+static const u16 sPoliwrathLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
@@ -828,12 +828,12 @@ const u16 gPoliwrathLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gAbraLevelUpLearnset[] = {
+static const u16 sAbraLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
LEVEL_UP_END
};
-const u16 gKadabraLevelUpLearnset[] = {
+static const u16 sKadabraLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
LEVEL_UP_MOVE( 1, MOVE_KINESIS),
LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
@@ -849,7 +849,7 @@ const u16 gKadabraLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gAlakazamLevelUpLearnset[] = {
+static const u16 sAlakazamLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
LEVEL_UP_MOVE( 1, MOVE_KINESIS),
LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
@@ -865,7 +865,7 @@ const u16 gAlakazamLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMachopLevelUpLearnset[] = {
+static const u16 sMachopLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
@@ -881,7 +881,7 @@ const u16 gMachopLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMachokeLevelUpLearnset[] = {
+static const u16 sMachokeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
@@ -898,7 +898,7 @@ const u16 gMachokeLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMachampLevelUpLearnset[] = {
+static const u16 sMachampLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LOW_KICK),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
@@ -915,7 +915,7 @@ const u16 gMachampLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gBellsproutLevelUpLearnset[] = {
+static const u16 sBellsproutLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
LEVEL_UP_MOVE( 6, MOVE_GROWTH),
LEVEL_UP_MOVE(11, MOVE_WRAP),
@@ -929,7 +929,7 @@ const u16 gBellsproutLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gWeepinbellLevelUpLearnset[] = {
+static const u16 sWeepinbellLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
LEVEL_UP_MOVE( 1, MOVE_GROWTH),
LEVEL_UP_MOVE( 1, MOVE_WRAP),
@@ -945,7 +945,7 @@ const u16 gWeepinbellLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gVictreebelLevelUpLearnset[] = {
+static const u16 sVictreebelLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP),
LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER),
LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
@@ -953,7 +953,7 @@ const u16 gVictreebelLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTentacoolLevelUpLearnset[] = {
+static const u16 sTentacoolLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC),
LEVEL_UP_MOVE(12, MOVE_CONSTRICT),
@@ -966,7 +966,7 @@ const u16 gTentacoolLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTentacruelLevelUpLearnset[] = {
+static const u16 sTentacruelLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
@@ -981,7 +981,7 @@ const u16 gTentacruelLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGeodudeLevelUpLearnset[] = {
+static const u16 sGeodudeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT),
@@ -996,7 +996,7 @@ const u16 gGeodudeLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGravelerLevelUpLearnset[] = {
+static const u16 sGravelerLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
@@ -1013,7 +1013,7 @@ const u16 gGravelerLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGolemLevelUpLearnset[] = {
+static const u16 sGolemLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
@@ -1030,7 +1030,7 @@ const u16 gGolemLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPonytaLevelUpLearnset[] = {
+static const u16 sPonytaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 5, MOVE_GROWL),
LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP),
@@ -1044,7 +1044,7 @@ const u16 gPonytaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRapidashLevelUpLearnset[] = {
+static const u16 sRapidashLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
@@ -1062,7 +1062,7 @@ const u16 gRapidashLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSlowpokeLevelUpLearnset[] = {
+static const u16 sSlowpokeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CURSE),
LEVEL_UP_MOVE( 1, MOVE_YAWN),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
@@ -1076,7 +1076,7 @@ const u16 gSlowpokeLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSlowbroLevelUpLearnset[] = {
+static const u16 sSlowbroLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CURSE),
LEVEL_UP_MOVE( 1, MOVE_YAWN),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
@@ -1092,7 +1092,7 @@ const u16 gSlowbroLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMagnemiteLevelUpLearnset[] = {
+static const u16 sMagnemiteLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK),
@@ -1107,7 +1107,7 @@ const u16 gMagnemiteLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMagnetonLevelUpLearnset[] = {
+static const u16 sMagnetonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
@@ -1124,7 +1124,7 @@ const u16 gMagnetonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gFarfetchdLevelUpLearnset[] = {
+static const u16 sFarfetchdLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK),
LEVEL_UP_MOVE(11, MOVE_LEER),
@@ -1138,7 +1138,7 @@ const u16 gFarfetchdLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDoduoLevelUpLearnset[] = {
+static const u16 sDoduoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 9, MOVE_PURSUIT),
@@ -1151,7 +1151,7 @@ const u16 gDoduoLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDodrioLevelUpLearnset[] = {
+static const u16 sDodrioLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_PURSUIT),
@@ -1166,7 +1166,7 @@ const u16 gDodrioLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSeelLevelUpLearnset[] = {
+static const u16 sSeelLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
LEVEL_UP_MOVE( 9, MOVE_GROWL),
LEVEL_UP_MOVE(17, MOVE_ICY_WIND),
@@ -1178,7 +1178,7 @@ const u16 gSeelLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDewgongLevelUpLearnset[] = {
+static const u16 sDewgongLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_HEADBUTT),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_ICY_WIND),
@@ -1194,7 +1194,7 @@ const u16 gDewgongLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGrimerLevelUpLearnset[] = {
+static const u16 sGrimerLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 4, MOVE_HARDEN),
@@ -1208,7 +1208,7 @@ const u16 gGrimerLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMukLevelUpLearnset[] = {
+static const u16 sMukLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
@@ -1223,7 +1223,7 @@ const u16 gMukLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gShellderLevelUpLearnset[] = {
+static const u16 sShellderLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
LEVEL_UP_MOVE( 9, MOVE_SUPERSONIC),
@@ -1235,7 +1235,7 @@ const u16 gShellderLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCloysterLevelUpLearnset[] = {
+static const u16 sCloysterLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM),
@@ -1245,7 +1245,7 @@ const u16 gCloysterLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGastlyLevelUpLearnset[] = {
+static const u16 sGastlyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
LEVEL_UP_MOVE( 1, MOVE_LICK),
LEVEL_UP_MOVE( 8, MOVE_SPITE),
@@ -1258,7 +1258,7 @@ const u16 gGastlyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gHaunterLevelUpLearnset[] = {
+static const u16 sHaunterLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
LEVEL_UP_MOVE( 1, MOVE_LICK),
LEVEL_UP_MOVE( 1, MOVE_SPITE),
@@ -1273,7 +1273,7 @@ const u16 gHaunterLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGengarLevelUpLearnset[] = {
+static const u16 sGengarLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
LEVEL_UP_MOVE( 1, MOVE_LICK),
LEVEL_UP_MOVE( 1, MOVE_SPITE),
@@ -1288,7 +1288,7 @@ const u16 gGengarLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gOnixLevelUpLearnset[] = {
+static const u16 sOnixLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_SCREECH),
LEVEL_UP_MOVE( 9, MOVE_BIND),
@@ -1303,7 +1303,7 @@ const u16 gOnixLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDrowzeeLevelUpLearnset[] = {
+static const u16 sDrowzeeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
LEVEL_UP_MOVE(10, MOVE_DISABLE),
@@ -1317,7 +1317,7 @@ const u16 gDrowzeeLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gHypnoLevelUpLearnset[] = {
+static const u16 sHypnoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
LEVEL_UP_MOVE( 1, MOVE_DISABLE),
@@ -1333,7 +1333,7 @@ const u16 gHypnoLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gKrabbyLevelUpLearnset[] = {
+static const u16 sKrabbyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
LEVEL_UP_MOVE( 5, MOVE_LEER),
LEVEL_UP_MOVE(12, MOVE_VICE_GRIP),
@@ -1346,7 +1346,7 @@ const u16 gKrabbyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gKinglerLevelUpLearnset[] = {
+static const u16 sKinglerLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_VICE_GRIP),
@@ -1361,7 +1361,7 @@ const u16 gKinglerLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gVoltorbLevelUpLearnset[] = {
+static const u16 sVoltorbLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CHARGE),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 8, MOVE_SCREECH),
@@ -1376,7 +1376,7 @@ const u16 gVoltorbLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gElectrodeLevelUpLearnset[] = {
+static const u16 sElectrodeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CHARGE),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_SCREECH),
@@ -1393,7 +1393,7 @@ const u16 gElectrodeLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gExeggcuteLevelUpLearnset[] = {
+static const u16 sExeggcuteLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BARRAGE),
LEVEL_UP_MOVE( 1, MOVE_UPROAR),
LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
@@ -1407,7 +1407,7 @@ const u16 gExeggcuteLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gExeggutorLevelUpLearnset[] = {
+static const u16 sExeggutorLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BARRAGE),
LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
@@ -1416,7 +1416,7 @@ const u16 gExeggutorLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCuboneLevelUpLearnset[] = {
+static const u16 sCuboneLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 9, MOVE_BONE_CLUB),
@@ -1432,7 +1432,7 @@ const u16 gCuboneLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMarowakLevelUpLearnset[] = {
+static const u16 sMarowakLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB),
@@ -1451,7 +1451,7 @@ const u16 gMarowakLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gHitmonleeLevelUpLearnset[] = {
+static const u16 sHitmonleeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_REVENGE),
LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK),
LEVEL_UP_MOVE( 6, MOVE_MEDITATE),
@@ -1468,7 +1468,7 @@ const u16 gHitmonleeLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gHitmonchanLevelUpLearnset[] = {
+static const u16 sHitmonchanLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_REVENGE),
LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH),
LEVEL_UP_MOVE( 7, MOVE_AGILITY),
@@ -1484,7 +1484,7 @@ const u16 gHitmonchanLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLickitungLevelUpLearnset[] = {
+static const u16 sLickitungLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LICK),
LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC),
LEVEL_UP_MOVE(12, MOVE_DEFENSE_CURL),
@@ -1498,7 +1498,7 @@ const u16 gLickitungLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gKoffingLevelUpLearnset[] = {
+static const u16 sKoffingLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 9, MOVE_SMOG),
@@ -1512,7 +1512,7 @@ const u16 gKoffingLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gWeezingLevelUpLearnset[] = {
+static const u16 sWeezingLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_SMOG),
@@ -1528,7 +1528,7 @@ const u16 gWeezingLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRhyhornLevelUpLearnset[] = {
+static const u16 sRhyhornLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE(10, MOVE_STOMP),
@@ -1542,7 +1542,7 @@ const u16 gRhyhornLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRhydonLevelUpLearnset[] = {
+static const u16 sRhydonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_STOMP),
@@ -1558,7 +1558,7 @@ const u16 gRhydonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gChanseyLevelUpLearnset[] = {
+static const u16 sChanseyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
@@ -1574,7 +1574,7 @@ const u16 gChanseyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTangelaLevelUpLearnset[] = {
+static const u16 sTangelaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_INGRAIN),
LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
LEVEL_UP_MOVE( 4, MOVE_SLEEP_POWDER),
@@ -1590,7 +1590,7 @@ const u16 gTangelaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gKangaskhanLevelUpLearnset[] = {
+static const u16 sKangaskhanLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 7, MOVE_BITE),
@@ -1604,7 +1604,7 @@ const u16 gKangaskhanLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gHorseaLevelUpLearnset[] = {
+static const u16 sHorseaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN),
LEVEL_UP_MOVE(15, MOVE_LEER),
@@ -1616,7 +1616,7 @@ const u16 gHorseaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSeadraLevelUpLearnset[] = {
+static const u16 sSeadraLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
LEVEL_UP_MOVE( 1, MOVE_LEER),
@@ -1631,7 +1631,7 @@ const u16 gSeadraLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGoldeenLevelUpLearnset[] = {
+static const u16 sGoldeenLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
@@ -1645,7 +1645,7 @@ const u16 gGoldeenLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSeakingLevelUpLearnset[] = {
+static const u16 sSeakingLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
@@ -1660,7 +1660,7 @@ const u16 gSeakingLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gStaryuLevelUpLearnset[] = {
+static const u16 sStaryuLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 6, MOVE_WATER_GUN),
@@ -1676,7 +1676,7 @@ const u16 gStaryuLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gStarmieLevelUpLearnset[] = {
+static const u16 sStarmieLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN),
LEVEL_UP_MOVE( 1, MOVE_RECOVER),
@@ -1685,7 +1685,7 @@ const u16 gStarmieLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMrmimeLevelUpLearnset[] = {
+static const u16 sMrmimeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BARRIER),
LEVEL_UP_MOVE( 5, MOVE_CONFUSION),
LEVEL_UP_MOVE( 9, MOVE_SUBSTITUTE),
@@ -1704,7 +1704,7 @@ const u16 gMrmimeLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gScytherLevelUpLearnset[] = {
+static const u16 sScytherLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY),
@@ -1719,7 +1719,7 @@ const u16 gScytherLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gJynxLevelUpLearnset[] = {
+static const u16 sJynxLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_LICK),
LEVEL_UP_MOVE( 1, MOVE_LOVELY_KISS),
@@ -1736,7 +1736,7 @@ const u16 gJynxLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gElectabuzzLevelUpLearnset[] = {
+static const u16 sElectabuzzLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH),
@@ -1749,7 +1749,7 @@ const u16 gElectabuzzLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMagmarLevelUpLearnset[] = {
+static const u16 sMagmarLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_EMBER),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_SMOG),
@@ -1765,7 +1765,7 @@ const u16 gMagmarLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPinsirLevelUpLearnset[] = {
+static const u16 sPinsirLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_VICE_GRIP),
LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
LEVEL_UP_MOVE( 7, MOVE_BIND),
@@ -1779,7 +1779,7 @@ const u16 gPinsirLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTaurosLevelUpLearnset[] = {
+static const u16 sTaurosLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 8, MOVE_RAGE),
@@ -1792,14 +1792,14 @@ const u16 gTaurosLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMagikarpLevelUpLearnset[] = {
+static const u16 sMagikarpLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SPLASH),
LEVEL_UP_MOVE(15, MOVE_TACKLE),
LEVEL_UP_MOVE(30, MOVE_FLAIL),
LEVEL_UP_END
};
-const u16 gGyaradosLevelUpLearnset[] = {
+static const u16 sGyaradosLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_THRASH),
LEVEL_UP_MOVE(20, MOVE_BITE),
LEVEL_UP_MOVE(25, MOVE_DRAGON_RAGE),
@@ -1812,7 +1812,7 @@ const u16 gGyaradosLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLaprasLevelUpLearnset[] = {
+static const u16 sLaprasLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_SING),
@@ -1828,12 +1828,12 @@ const u16 gLaprasLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDittoLevelUpLearnset[] = {
+static const u16 sDittoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TRANSFORM),
LEVEL_UP_END
};
-const u16 gEeveeLevelUpLearnset[] = {
+static const u16 sEeveeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
@@ -1846,7 +1846,7 @@ const u16 gEeveeLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gVaporeonLevelUpLearnset[] = {
+static const u16 sVaporeonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
@@ -1861,7 +1861,7 @@ const u16 gVaporeonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gJolteonLevelUpLearnset[] = {
+static const u16 sJolteonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
@@ -1876,7 +1876,7 @@ const u16 gJolteonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gFlareonLevelUpLearnset[] = {
+static const u16 sFlareonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
@@ -1891,7 +1891,7 @@ const u16 gFlareonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPorygonLevelUpLearnset[] = {
+static const u16 sPorygonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_CONVERSION),
@@ -1906,7 +1906,7 @@ const u16 gPorygonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gOmanyteLevelUpLearnset[] = {
+static const u16 sOmanyteLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
LEVEL_UP_MOVE(13, MOVE_BITE),
@@ -1920,7 +1920,7 @@ const u16 gOmanyteLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gOmastarLevelUpLearnset[] = {
+static const u16 sOmastarLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
LEVEL_UP_MOVE( 1, MOVE_BITE),
@@ -1936,7 +1936,7 @@ const u16 gOmastarLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gKabutoLevelUpLearnset[] = {
+static const u16 sKabutoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE(13, MOVE_ABSORB),
@@ -1950,7 +1950,7 @@ const u16 gKabutoLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gKabutopsLevelUpLearnset[] = {
+static const u16 sKabutopsLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
@@ -1966,7 +1966,7 @@ const u16 gKabutopsLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gAerodactylLevelUpLearnset[] = {
+static const u16 sAerodactylLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
LEVEL_UP_MOVE( 8, MOVE_AGILITY),
LEVEL_UP_MOVE(15, MOVE_BITE),
@@ -1978,7 +1978,7 @@ const u16 gAerodactylLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSnorlaxLevelUpLearnset[] = {
+static const u16 sSnorlaxLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 6, MOVE_AMNESIA),
LEVEL_UP_MOVE(10, MOVE_DEFENSE_CURL),
@@ -1995,7 +1995,7 @@ const u16 gSnorlaxLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gArticunoLevelUpLearnset[] = {
+static const u16 sArticunoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GUST),
LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
LEVEL_UP_MOVE(13, MOVE_MIST),
@@ -2008,7 +2008,7 @@ const u16 gArticunoLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gZapdosLevelUpLearnset[] = {
+static const u16 sZapdosLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
LEVEL_UP_MOVE(13, MOVE_THUNDER_WAVE),
@@ -2021,7 +2021,7 @@ const u16 gZapdosLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMoltresLevelUpLearnset[] = {
+static const u16 sMoltresLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_EMBER),
LEVEL_UP_MOVE(13, MOVE_FIRE_SPIN),
@@ -2034,7 +2034,7 @@ const u16 gMoltresLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDratiniLevelUpLearnset[] = {
+static const u16 sDratiniLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WRAP),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE),
@@ -2048,7 +2048,7 @@ const u16 gDratiniLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDragonairLevelUpLearnset[] = {
+static const u16 sDragonairLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WRAP),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
@@ -2064,7 +2064,7 @@ const u16 gDragonairLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDragoniteLevelUpLearnset[] = {
+static const u16 sDragoniteLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WRAP),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
@@ -2081,7 +2081,7 @@ const u16 gDragoniteLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMewtwoLevelUpLearnset[] = {
+static const u16 sMewtwoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
LEVEL_UP_MOVE( 1, MOVE_DISABLE),
LEVEL_UP_MOVE(11, MOVE_BARRIER),
@@ -2096,7 +2096,7 @@ const u16 gMewtwoLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMewLevelUpLearnset[] = {
+static const u16 sMewLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE(10, MOVE_TRANSFORM),
LEVEL_UP_MOVE(20, MOVE_MEGA_PUNCH),
@@ -2106,7 +2106,7 @@ const u16 gMewLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gChikoritaLevelUpLearnset[] = {
+static const u16 sChikoritaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 8, MOVE_RAZOR_LEAF),
@@ -2120,7 +2120,7 @@ const u16 gChikoritaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gBayleefLevelUpLearnset[] = {
+static const u16 sBayleefLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
@@ -2136,7 +2136,7 @@ const u16 gBayleefLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMeganiumLevelUpLearnset[] = {
+static const u16 sMeganiumLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF),
@@ -2152,7 +2152,7 @@ const u16 gMeganiumLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCyndaquilLevelUpLearnset[] = {
+static const u16 sCyndaquilLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN),
@@ -2164,7 +2164,7 @@ const u16 gCyndaquilLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gQuilavaLevelUpLearnset[] = {
+static const u16 sQuilavaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
@@ -2177,7 +2177,7 @@ const u16 gQuilavaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTyphlosionLevelUpLearnset[] = {
+static const u16 sTyphlosionLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
@@ -2191,7 +2191,7 @@ const u16 gTyphlosionLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTotodileLevelUpLearnset[] = {
+static const u16 sTotodileLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 7, MOVE_RAGE),
@@ -2204,7 +2204,7 @@ const u16 gTotodileLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCroconawLevelUpLearnset[] = {
+static const u16 sCroconawLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_RAGE),
@@ -2218,7 +2218,7 @@ const u16 gCroconawLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gFeraligatrLevelUpLearnset[] = {
+static const u16 sFeraligatrLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_RAGE),
@@ -2233,7 +2233,7 @@ const u16 gFeraligatrLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSentretLevelUpLearnset[] = {
+static const u16 sSentretLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
@@ -2246,7 +2246,7 @@ const u16 gSentretLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gFurretLevelUpLearnset[] = {
+static const u16 sFurretLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
@@ -2261,7 +2261,7 @@ const u16 gFurretLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gHoothootLevelUpLearnset[] = {
+static const u16 sHoothootLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 6, MOVE_FORESIGHT),
@@ -2274,7 +2274,7 @@ const u16 gHoothootLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gNoctowlLevelUpLearnset[] = {
+static const u16 sNoctowlLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
@@ -2289,7 +2289,7 @@ const u16 gNoctowlLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLedybaLevelUpLearnset[] = {
+static const u16 sLedybaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC),
LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH),
@@ -2303,7 +2303,7 @@ const u16 gLedybaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLedianLevelUpLearnset[] = {
+static const u16 sLedianLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC),
@@ -2318,7 +2318,7 @@ const u16 gLedianLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSpinarakLevelUpLearnset[] = {
+static const u16 sSpinarakLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
LEVEL_UP_MOVE( 6, MOVE_SCARY_FACE),
@@ -2332,7 +2332,7 @@ const u16 gSpinarakLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gAriadosLevelUpLearnset[] = {
+static const u16 sAriadosLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT),
LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
@@ -2348,7 +2348,7 @@ const u16 gAriadosLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCrobatLevelUpLearnset[] = {
+static const u16 sCrobatLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCREECH),
LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
@@ -2365,7 +2365,7 @@ const u16 gCrobatLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gChinchouLevelUpLearnset[] = {
+static const u16 sChinchouLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC),
@@ -2379,7 +2379,7 @@ const u16 gChinchouLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLanturnLevelUpLearnset[] = {
+static const u16 sLanturnLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC),
@@ -2394,7 +2394,7 @@ const u16 gLanturnLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPichuLevelUpLearnset[] = {
+static const u16 sPichuLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
LEVEL_UP_MOVE( 1, MOVE_CHARM),
LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
@@ -2403,7 +2403,7 @@ const u16 gPichuLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCleffaLevelUpLearnset[] = {
+static const u16 sCleffaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_CHARM),
LEVEL_UP_MOVE( 4, MOVE_ENCORE),
@@ -2412,7 +2412,7 @@ const u16 gCleffaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gIgglybuffLevelUpLearnset[] = {
+static const u16 sIgglybuffLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SING),
LEVEL_UP_MOVE( 1, MOVE_CHARM),
LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
@@ -2421,7 +2421,7 @@ const u16 gIgglybuffLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTogepiLevelUpLearnset[] = {
+static const u16 sTogepiLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_CHARM),
LEVEL_UP_MOVE( 6, MOVE_METRONOME),
@@ -2435,7 +2435,7 @@ const u16 gTogepiLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTogeticLevelUpLearnset[] = {
+static const u16 sTogeticLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_CHARM),
LEVEL_UP_MOVE( 6, MOVE_METRONOME),
@@ -2449,7 +2449,7 @@ const u16 gTogeticLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gNatuLevelUpLearnset[] = {
+static const u16 sNatuLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE(10, MOVE_NIGHT_SHADE),
@@ -2461,7 +2461,7 @@ const u16 gNatuLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gXatuLevelUpLearnset[] = {
+static const u16 sXatuLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE(10, MOVE_NIGHT_SHADE),
@@ -2473,7 +2473,7 @@ const u16 gXatuLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMareepLevelUpLearnset[] = {
+static const u16 sMareepLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK),
@@ -2484,7 +2484,7 @@ const u16 gMareepLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gFlaaffyLevelUpLearnset[] = {
+static const u16 sFlaaffyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
@@ -2496,7 +2496,7 @@ const u16 gFlaaffyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gAmpharosLevelUpLearnset[] = {
+static const u16 sAmpharosLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK),
@@ -2510,7 +2510,7 @@ const u16 gAmpharosLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gBellossomLevelUpLearnset[] = {
+static const u16 sBellossomLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
@@ -2520,7 +2520,7 @@ const u16 gBellossomLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMarillLevelUpLearnset[] = {
+static const u16 sMarillLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL),
LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
@@ -2533,7 +2533,7 @@ const u16 gMarillLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gAzumarillLevelUpLearnset[] = {
+static const u16 sAzumarillLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
@@ -2549,7 +2549,7 @@ const u16 gAzumarillLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSudowoodoLevelUpLearnset[] = {
+static const u16 sSudowoodoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW),
LEVEL_UP_MOVE( 1, MOVE_MIMIC),
LEVEL_UP_MOVE( 9, MOVE_FLAIL),
@@ -2562,7 +2562,7 @@ const u16 gSudowoodoLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPolitoedLevelUpLearnset[] = {
+static const u16 sPolitoedLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS),
LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP),
@@ -2572,7 +2572,7 @@ const u16 gPolitoedLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gHoppipLevelUpLearnset[] = {
+static const u16 sHoppipLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SPLASH),
LEVEL_UP_MOVE( 5, MOVE_SYNTHESIS),
LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
@@ -2586,7 +2586,7 @@ const u16 gHoppipLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSkiploomLevelUpLearnset[] = {
+static const u16 sSkiploomLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SPLASH),
LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
@@ -2603,7 +2603,7 @@ const u16 gSkiploomLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gJumpluffLevelUpLearnset[] = {
+static const u16 sJumpluffLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SPLASH),
LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
@@ -2620,7 +2620,7 @@ const u16 gJumpluffLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gAipomLevelUpLearnset[] = {
+static const u16 sAipomLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK),
@@ -2634,7 +2634,7 @@ const u16 gAipomLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSunkernLevelUpLearnset[] = {
+static const u16 sSunkernLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
LEVEL_UP_MOVE( 6, MOVE_GROWTH),
LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN),
@@ -2646,7 +2646,7 @@ const u16 gSunkernLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSunfloraLevelUpLearnset[] = {
+static const u16 sSunfloraLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 6, MOVE_GROWTH),
@@ -2659,7 +2659,7 @@ const u16 gSunfloraLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gYanmaLevelUpLearnset[] = {
+static const u16 sYanmaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_FORESIGHT),
LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
@@ -2673,7 +2673,7 @@ const u16 gYanmaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gWooperLevelUpLearnset[] = {
+static const u16 sWooperLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE(11, MOVE_SLAM),
@@ -2687,7 +2687,7 @@ const u16 gWooperLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gQuagsireLevelUpLearnset[] = {
+static const u16 sQuagsireLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE(11, MOVE_SLAM),
@@ -2701,7 +2701,7 @@ const u16 gQuagsireLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gEspeonLevelUpLearnset[] = {
+static const u16 sEspeonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
@@ -2716,7 +2716,7 @@ const u16 gEspeonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gUmbreonLevelUpLearnset[] = {
+static const u16 sUmbreonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND),
@@ -2731,7 +2731,7 @@ const u16 gUmbreonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMurkrowLevelUpLearnset[] = {
+static const u16 sMurkrowLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 9, MOVE_ASTONISH),
LEVEL_UP_MOVE(14, MOVE_PURSUIT),
@@ -2743,7 +2743,7 @@ const u16 gMurkrowLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSlowkingLevelUpLearnset[] = {
+static const u16 sSlowkingLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CURSE),
LEVEL_UP_MOVE( 1, MOVE_YAWN),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
@@ -2757,7 +2757,7 @@ const u16 gSlowkingLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMisdreavusLevelUpLearnset[] = {
+static const u16 sMisdreavusLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
LEVEL_UP_MOVE( 6, MOVE_SPITE),
@@ -2771,12 +2771,12 @@ const u16 gMisdreavusLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gUnownLevelUpLearnset[] = {
+static const u16 sUnownLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_HIDDEN_POWER),
LEVEL_UP_END
};
-const u16 gWobbuffetLevelUpLearnset[] = {
+static const u16 sWobbuffetLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_COUNTER),
LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT),
LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD),
@@ -2784,7 +2784,7 @@ const u16 gWobbuffetLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGirafarigLevelUpLearnset[] = {
+static const u16 sGirafarigLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 7, MOVE_ASTONISH),
@@ -2798,7 +2798,7 @@ const u16 gGirafarigLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPinecoLevelUpLearnset[] = {
+static const u16 sPinecoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_PROTECT),
LEVEL_UP_MOVE( 8, MOVE_SELF_DESTRUCT),
@@ -2811,7 +2811,7 @@ const u16 gPinecoLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gForretressLevelUpLearnset[] = {
+static const u16 sForretressLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_PROTECT),
LEVEL_UP_MOVE( 1, MOVE_SELF_DESTRUCT),
@@ -2825,7 +2825,7 @@ const u16 gForretressLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDunsparceLevelUpLearnset[] = {
+static const u16 sDunsparceLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_RAGE),
LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL),
LEVEL_UP_MOVE(11, MOVE_YAWN),
@@ -2838,7 +2838,7 @@ const u16 gDunsparceLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGligarLevelUpLearnset[] = {
+static const u16 sGligarLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK),
LEVEL_UP_MOVE(13, MOVE_HARDEN),
@@ -2850,7 +2850,7 @@ const u16 gGligarLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSteelixLevelUpLearnset[] = {
+static const u16 sSteelixLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_SCREECH),
LEVEL_UP_MOVE( 9, MOVE_BIND),
@@ -2865,7 +2865,7 @@ const u16 gSteelixLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSnubbullLevelUpLearnset[] = {
+static const u16 sSnubbullLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
@@ -2879,7 +2879,7 @@ const u16 gSnubbullLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGranbullLevelUpLearnset[] = {
+static const u16 sGranbullLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE),
LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
@@ -2893,7 +2893,7 @@ const u16 gGranbullLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gQwilfishLevelUpLearnset[] = {
+static const u16 sQwilfishLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SPIKES),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
@@ -2906,7 +2906,7 @@ const u16 gQwilfishLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gScizorLevelUpLearnset[] = {
+static const u16 sScizorLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY),
@@ -2921,7 +2921,7 @@ const u16 gScizorLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gShuckleLevelUpLearnset[] = {
+static const u16 sShuckleLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
LEVEL_UP_MOVE( 1, MOVE_WITHDRAW),
LEVEL_UP_MOVE( 9, MOVE_WRAP),
@@ -2932,7 +2932,7 @@ const u16 gShuckleLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gHeracrossLevelUpLearnset[] = {
+static const u16 sHeracrossLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 6, MOVE_HORN_ATTACK),
@@ -2946,7 +2946,7 @@ const u16 gHeracrossLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSneaselLevelUpLearnset[] = {
+static const u16 sSneaselLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_TAUNT),
@@ -2962,7 +2962,7 @@ const u16 gSneaselLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTeddiursaLevelUpLearnset[] = {
+static const u16 sTeddiursaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 7, MOVE_LICK),
@@ -2976,7 +2976,7 @@ const u16 gTeddiursaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gUrsaringLevelUpLearnset[] = {
+static const u16 sUrsaringLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_LICK),
@@ -2992,7 +2992,7 @@ const u16 gUrsaringLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSlugmaLevelUpLearnset[] = {
+static const u16 sSlugmaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_YAWN),
LEVEL_UP_MOVE( 1, MOVE_SMOG),
LEVEL_UP_MOVE( 8, MOVE_EMBER),
@@ -3005,7 +3005,7 @@ const u16 gSlugmaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMagcargoLevelUpLearnset[] = {
+static const u16 sMagcargoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_YAWN),
LEVEL_UP_MOVE( 1, MOVE_SMOG),
LEVEL_UP_MOVE( 1, MOVE_EMBER),
@@ -3020,7 +3020,7 @@ const u16 gMagcargoLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSwinubLevelUpLearnset[] = {
+static const u16 sSwinubLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW),
@@ -3032,7 +3032,7 @@ const u16 gSwinubLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPiloswineLevelUpLearnset[] = {
+static const u16 sPiloswineLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
@@ -3047,7 +3047,7 @@ const u16 gPiloswineLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCorsolaLevelUpLearnset[] = {
+static const u16 sCorsolaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 6, MOVE_HARDEN),
LEVEL_UP_MOVE(12, MOVE_BUBBLE),
@@ -3061,7 +3061,7 @@ const u16 gCorsolaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRemoraidLevelUpLearnset[] = {
+static const u16 sRemoraidLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
LEVEL_UP_MOVE(11, MOVE_LOCK_ON),
LEVEL_UP_MOVE(22, MOVE_PSYBEAM),
@@ -3073,7 +3073,7 @@ const u16 gRemoraidLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gOctilleryLevelUpLearnset[] = {
+static const u16 sOctilleryLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
LEVEL_UP_MOVE(11, MOVE_CONSTRICT),
LEVEL_UP_MOVE(22, MOVE_PSYBEAM),
@@ -3086,12 +3086,12 @@ const u16 gOctilleryLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDelibirdLevelUpLearnset[] = {
+static const u16 sDelibirdLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PRESENT),
LEVEL_UP_END
};
-const u16 gMantineLevelUpLearnset[] = {
+static const u16 sMantineLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC),
@@ -3104,7 +3104,7 @@ const u16 gMantineLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSkarmoryLevelUpLearnset[] = {
+static const u16 sSkarmoryLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK),
@@ -3118,7 +3118,7 @@ const u16 gSkarmoryLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gHoundourLevelUpLearnset[] = {
+static const u16 sHoundourLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_EMBER),
LEVEL_UP_MOVE( 7, MOVE_HOWL),
@@ -3132,7 +3132,7 @@ const u16 gHoundourLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gHoundoomLevelUpLearnset[] = {
+static const u16 sHoundoomLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_EMBER),
LEVEL_UP_MOVE( 1, MOVE_HOWL),
@@ -3147,7 +3147,7 @@ const u16 gHoundoomLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gKingdraLevelUpLearnset[] = {
+static const u16 sKingdraLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN),
LEVEL_UP_MOVE( 1, MOVE_LEER),
@@ -3162,7 +3162,7 @@ const u16 gKingdraLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPhanpyLevelUpLearnset[] = {
+static const u16 sPhanpyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
@@ -3175,7 +3175,7 @@ const u16 gPhanpyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDonphanLevelUpLearnset[] = {
+static const u16 sDonphanLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
@@ -3188,7 +3188,7 @@ const u16 gDonphanLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPorygon2LevelUpLearnset[] = {
+static const u16 sPorygon2LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_CONVERSION),
@@ -3203,7 +3203,7 @@ const u16 gPorygon2LevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gStantlerLevelUpLearnset[] = {
+static const u16 sStantlerLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 7, MOVE_LEER),
LEVEL_UP_MOVE(13, MOVE_ASTONISH),
@@ -3216,7 +3216,7 @@ const u16 gStantlerLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSmeargleLevelUpLearnset[] = {
+static const u16 sSmeargleLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SKETCH),
LEVEL_UP_MOVE(11, MOVE_SKETCH),
LEVEL_UP_MOVE(21, MOVE_SKETCH),
@@ -3230,12 +3230,12 @@ const u16 gSmeargleLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTyrogueLevelUpLearnset[] = {
+static const u16 sTyrogueLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gHitmontopLevelUpLearnset[] = {
+static const u16 sHitmontopLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_REVENGE),
LEVEL_UP_MOVE( 1, MOVE_ROLLING_KICK),
LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
@@ -3250,7 +3250,7 @@ const u16 gHitmontopLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSmoochumLevelUpLearnset[] = {
+static const u16 sSmoochumLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_LICK),
LEVEL_UP_MOVE( 9, MOVE_SWEET_KISS),
@@ -3265,7 +3265,7 @@ const u16 gSmoochumLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gElekidLevelUpLearnset[] = {
+static const u16 sElekidLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 9, MOVE_THUNDER_PUNCH),
@@ -3277,7 +3277,7 @@ const u16 gElekidLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMagbyLevelUpLearnset[] = {
+static const u16 sMagbyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_EMBER),
LEVEL_UP_MOVE( 7, MOVE_LEER),
LEVEL_UP_MOVE(13, MOVE_SMOG),
@@ -3290,7 +3290,7 @@ const u16 gMagbyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMiltankLevelUpLearnset[] = {
+static const u16 sMiltankLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 4, MOVE_GROWL),
LEVEL_UP_MOVE( 8, MOVE_DEFENSE_CURL),
@@ -3303,7 +3303,7 @@ const u16 gMiltankLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gBlisseyLevelUpLearnset[] = {
+static const u16 sBlisseyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP),
@@ -3319,7 +3319,7 @@ const u16 gBlisseyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRaikouLevelUpLearnset[] = {
+static const u16 sRaikouLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK),
@@ -3333,7 +3333,7 @@ const u16 gRaikouLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gEnteiLevelUpLearnset[] = {
+static const u16 sEnteiLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE(11, MOVE_EMBER),
@@ -3347,7 +3347,7 @@ const u16 gEnteiLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSuicuneLevelUpLearnset[] = {
+static const u16 sSuicuneLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE(11, MOVE_BUBBLE_BEAM),
@@ -3361,7 +3361,7 @@ const u16 gSuicuneLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLarvitarLevelUpLearnset[] = {
+static const u16 sLarvitarLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 8, MOVE_SANDSTORM),
@@ -3375,7 +3375,7 @@ const u16 gLarvitarLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPupitarLevelUpLearnset[] = {
+static const u16 sPupitarLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_SANDSTORM),
@@ -3391,7 +3391,7 @@ const u16 gPupitarLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTyranitarLevelUpLearnset[] = {
+static const u16 sTyranitarLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_SANDSTORM),
@@ -3407,7 +3407,7 @@ const u16 gTyranitarLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLugiaLevelUpLearnset[] = {
+static const u16 sLugiaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND),
LEVEL_UP_MOVE(11, MOVE_SAFEGUARD),
LEVEL_UP_MOVE(22, MOVE_GUST),
@@ -3421,7 +3421,7 @@ const u16 gLugiaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gHoOhLevelUpLearnset[] = {
+static const u16 sHoOhLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND),
LEVEL_UP_MOVE(11, MOVE_SAFEGUARD),
LEVEL_UP_MOVE(22, MOVE_GUST),
@@ -3435,7 +3435,7 @@ const u16 gHoOhLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCelebiLevelUpLearnset[] = {
+static const u16 sCelebiLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED),
LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
LEVEL_UP_MOVE( 1, MOVE_RECOVER),
@@ -3448,132 +3448,132 @@ const u16 gCelebiLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSpecies252LevelUpLearnset[] = {
+static const u16 sSpecies252LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies253LevelUpLearnset[] = {
+static const u16 sSpecies253LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies254LevelUpLearnset[] = {
+static const u16 sSpecies254LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies255LevelUpLearnset[] = {
+static const u16 sSpecies255LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies256LevelUpLearnset[] = {
+static const u16 sSpecies256LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies257LevelUpLearnset[] = {
+static const u16 sSpecies257LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies258LevelUpLearnset[] = {
+static const u16 sSpecies258LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies259LevelUpLearnset[] = {
+static const u16 sSpecies259LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies260LevelUpLearnset[] = {
+static const u16 sSpecies260LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies261LevelUpLearnset[] = {
+static const u16 sSpecies261LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies262LevelUpLearnset[] = {
+static const u16 sSpecies262LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies263LevelUpLearnset[] = {
+static const u16 sSpecies263LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies264LevelUpLearnset[] = {
+static const u16 sSpecies264LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies265LevelUpLearnset[] = {
+static const u16 sSpecies265LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies266LevelUpLearnset[] = {
+static const u16 sSpecies266LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies267LevelUpLearnset[] = {
+static const u16 sSpecies267LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies268LevelUpLearnset[] = {
+static const u16 sSpecies268LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies269LevelUpLearnset[] = {
+static const u16 sSpecies269LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies270LevelUpLearnset[] = {
+static const u16 sSpecies270LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies271LevelUpLearnset[] = {
+static const u16 sSpecies271LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies272LevelUpLearnset[] = {
+static const u16 sSpecies272LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies273LevelUpLearnset[] = {
+static const u16 sSpecies273LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies274LevelUpLearnset[] = {
+static const u16 sSpecies274LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies275LevelUpLearnset[] = {
+static const u16 sSpecies275LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gSpecies276LevelUpLearnset[] = {
+static const u16 sSpecies276LevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_END
};
-const u16 gTreeckoLevelUpLearnset[] = {
+static const u16 sTreeckoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 6, MOVE_ABSORB),
@@ -3588,7 +3588,7 @@ const u16 gTreeckoLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGrovyleLevelUpLearnset[] = {
+static const u16 sGrovyleLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
@@ -3606,7 +3606,7 @@ const u16 gGrovyleLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSceptileLevelUpLearnset[] = {
+static const u16 sSceptileLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
@@ -3624,7 +3624,7 @@ const u16 gSceptileLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTorchicLevelUpLearnset[] = {
+static const u16 sTorchicLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY),
@@ -3639,7 +3639,7 @@ const u16 gTorchicLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCombuskenLevelUpLearnset[] = {
+static const u16 sCombuskenLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
@@ -3657,7 +3657,7 @@ const u16 gCombuskenLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gBlazikenLevelUpLearnset[] = {
+static const u16 sBlazikenLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH),
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
@@ -3677,7 +3677,7 @@ const u16 gBlazikenLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMudkipLevelUpLearnset[] = {
+static const u16 sMudkipLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP),
@@ -3693,7 +3693,7 @@ const u16 gMudkipLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMarshtompLevelUpLearnset[] = {
+static const u16 sMarshtompLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
@@ -3712,7 +3712,7 @@ const u16 gMarshtompLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSwampertLevelUpLearnset[] = {
+static const u16 sSwampertLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
@@ -3731,7 +3731,7 @@ const u16 gSwampertLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPoochyenaLevelUpLearnset[] = {
+static const u16 sPoochyenaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 5, MOVE_HOWL),
LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
@@ -3747,7 +3747,7 @@ const u16 gPoochyenaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMightyenaLevelUpLearnset[] = {
+static const u16 sMightyenaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_HOWL),
LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
@@ -3766,7 +3766,7 @@ const u16 gMightyenaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gZigzagoonLevelUpLearnset[] = {
+static const u16 sZigzagoonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP),
@@ -3782,7 +3782,7 @@ const u16 gZigzagoonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLinooneLevelUpLearnset[] = {
+static const u16 sLinooneLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
@@ -3800,20 +3800,20 @@ const u16 gLinooneLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gWurmpleLevelUpLearnset[] = {
+static const u16 sWurmpleLevelUpLearnset[] = {
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[] = {
+static const u16 sSilcoonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 7, MOVE_HARDEN),
LEVEL_UP_END
};
-const u16 gBeautiflyLevelUpLearnset[] = {
+static const u16 sBeautiflyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
LEVEL_UP_MOVE(10, MOVE_ABSORB),
LEVEL_UP_MOVE(13, MOVE_GUST),
@@ -3827,13 +3827,13 @@ const u16 gBeautiflyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCascoonLevelUpLearnset[] = {
+static const u16 sCascoonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 7, MOVE_HARDEN),
LEVEL_UP_END
};
-const u16 gDustoxLevelUpLearnset[] = {
+static const u16 sDustoxLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
LEVEL_UP_MOVE(10, MOVE_CONFUSION),
LEVEL_UP_MOVE(13, MOVE_GUST),
@@ -3847,7 +3847,7 @@ const u16 gDustoxLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLotadLevelUpLearnset[] = {
+static const u16 sLotadLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
LEVEL_UP_MOVE( 3, MOVE_GROWL),
LEVEL_UP_MOVE( 7, MOVE_ABSORB),
@@ -3858,7 +3858,7 @@ const u16 gLotadLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLombreLevelUpLearnset[] = {
+static const u16 sLombreLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
LEVEL_UP_MOVE( 3, MOVE_GROWL),
LEVEL_UP_MOVE( 7, MOVE_ABSORB),
@@ -3872,7 +3872,7 @@ const u16 gLombreLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLudicoloLevelUpLearnset[] = {
+static const u16 sLudicoloLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
@@ -3880,7 +3880,7 @@ const u16 gLudicoloLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSeedotLevelUpLearnset[] = {
+static const u16 sSeedotLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BIDE),
LEVEL_UP_MOVE( 3, MOVE_HARDEN),
LEVEL_UP_MOVE( 7, MOVE_GROWTH),
@@ -3891,7 +3891,7 @@ const u16 gSeedotLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gNuzleafLevelUpLearnset[] = {
+static const u16 sNuzleafLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 3, MOVE_HARDEN),
LEVEL_UP_MOVE( 7, MOVE_GROWTH),
@@ -3905,7 +3905,7 @@ const u16 gNuzleafLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gShiftryLevelUpLearnset[] = {
+static const u16 sShiftryLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 1, MOVE_GROWTH),
@@ -3913,7 +3913,7 @@ const u16 gShiftryLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gNincadaLevelUpLearnset[] = {
+static const u16 sNincadaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE),
@@ -3927,7 +3927,7 @@ const u16 gNincadaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gNinjaskLevelUpLearnset[] = {
+static const u16 sNinjaskLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE),
@@ -3946,7 +3946,7 @@ const u16 gNinjaskLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gShedinjaLevelUpLearnset[] = {
+static const u16 sShedinjaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE),
@@ -3960,7 +3960,7 @@ const u16 gShedinjaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTaillowLevelUpLearnset[] = {
+static const u16 sTaillowLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY),
@@ -3973,7 +3973,7 @@ const u16 gTaillowLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSwellowLevelUpLearnset[] = {
+static const u16 sSwellowLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
@@ -3988,7 +3988,7 @@ const u16 gSwellowLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gShroomishLevelUpLearnset[] = {
+static const u16 sShroomishLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
LEVEL_UP_MOVE( 4, MOVE_TACKLE),
LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE),
@@ -4002,7 +4002,7 @@ const u16 gShroomishLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gBreloomLevelUpLearnset[] = {
+static const u16 sBreloomLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE),
@@ -4020,7 +4020,7 @@ const u16 gBreloomLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSpindaLevelUpLearnset[] = {
+static const u16 sSpindaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 5, MOVE_UPROAR),
LEVEL_UP_MOVE(12, MOVE_FAINT_ATTACK),
@@ -4035,7 +4035,7 @@ const u16 gSpindaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gWingullLevelUpLearnset[] = {
+static const u16 sWingullLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC),
@@ -4047,7 +4047,7 @@ const u16 gWingullLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPelipperLevelUpLearnset[] = {
+static const u16 sPelipperLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT),
@@ -4064,7 +4064,7 @@ const u16 gPelipperLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSurskitLevelUpLearnset[] = {
+static const u16 sSurskitLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT),
@@ -4076,7 +4076,7 @@ const u16 gSurskitLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMasquerainLevelUpLearnset[] = {
+static const u16 sMasquerainLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT),
@@ -4092,7 +4092,7 @@ const u16 gMasquerainLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gWailmerLevelUpLearnset[] = {
+static const u16 sWailmerLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SPLASH),
LEVEL_UP_MOVE( 5, MOVE_GROWL),
LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
@@ -4108,7 +4108,7 @@ const u16 gWailmerLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gWailordLevelUpLearnset[] = {
+static const u16 sWailordLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SPLASH),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
@@ -4127,7 +4127,7 @@ const u16 gWailordLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSkittyLevelUpLearnset[] = {
+static const u16 sSkittyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP),
@@ -4143,7 +4143,7 @@ const u16 gSkittyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDelcattyLevelUpLearnset[] = {
+static const u16 sDelcattyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_ATTRACT),
LEVEL_UP_MOVE( 1, MOVE_SING),
@@ -4151,7 +4151,7 @@ const u16 gDelcattyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gKecleonLevelUpLearnset[] = {
+static const u16 sKecleonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_THIEF),
LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP),
LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
@@ -4168,7 +4168,7 @@ const u16 gKecleonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gBaltoyLevelUpLearnset[] = {
+static const u16 sBaltoyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
LEVEL_UP_MOVE( 3, MOVE_HARDEN),
LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN),
@@ -4183,7 +4183,7 @@ const u16 gBaltoyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gClaydolLevelUpLearnset[] = {
+static const u16 sClaydolLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TELEPORT),
LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
@@ -4202,7 +4202,7 @@ const u16 gClaydolLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gNosepassLevelUpLearnset[] = {
+static const u16 sNosepassLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 7, MOVE_HARDEN),
LEVEL_UP_MOVE(13, MOVE_ROCK_THROW),
@@ -4216,7 +4216,7 @@ const u16 gNosepassLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTorkoalLevelUpLearnset[] = {
+static const u16 sTorkoalLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_EMBER),
LEVEL_UP_MOVE( 4, MOVE_SMOG),
LEVEL_UP_MOVE( 7, MOVE_CURSE),
@@ -4232,7 +4232,7 @@ const u16 gTorkoalLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSableyeLevelUpLearnset[] = {
+static const u16 sSableyeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 5, MOVE_FORESIGHT),
@@ -4249,7 +4249,7 @@ const u16 gSableyeLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gBarboachLevelUpLearnset[] = {
+static const u16 sBarboachLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT),
LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT),
@@ -4264,7 +4264,7 @@ const u16 gBarboachLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gWhiscashLevelUpLearnset[] = {
+static const u16 sWhiscashLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TICKLE),
LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
@@ -4282,7 +4282,7 @@ const u16 gWhiscashLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLuvdiscLevelUpLearnset[] = {
+static const u16 sLuvdiscLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 4, MOVE_CHARM),
LEVEL_UP_MOVE(12, MOVE_WATER_GUN),
@@ -4295,7 +4295,7 @@ const u16 gLuvdiscLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCorphishLevelUpLearnset[] = {
+static const u16 sCorphishLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
LEVEL_UP_MOVE( 7, MOVE_HARDEN),
LEVEL_UP_MOVE(10, MOVE_VICE_GRIP),
@@ -4310,7 +4310,7 @@ const u16 gCorphishLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCrawdauntLevelUpLearnset[] = {
+static const u16 sCrawdauntLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BUBBLE),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 1, MOVE_VICE_GRIP),
@@ -4328,14 +4328,14 @@ const u16 gCrawdauntLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gFeebasLevelUpLearnset[] = {
+static const u16 sFeebasLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SPLASH),
LEVEL_UP_MOVE(15, MOVE_TACKLE),
LEVEL_UP_MOVE(30, MOVE_FLAIL),
LEVEL_UP_END
};
-const u16 gMiloticLevelUpLearnset[] = {
+static const u16 sMiloticLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
LEVEL_UP_MOVE( 5, MOVE_WRAP),
LEVEL_UP_MOVE(10, MOVE_WATER_SPORT),
@@ -4350,7 +4350,7 @@ const u16 gMiloticLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCarvanhaLevelUpLearnset[] = {
+static const u16 sCarvanhaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 7, MOVE_RAGE),
@@ -4364,7 +4364,7 @@ const u16 gCarvanhaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSharpedoLevelUpLearnset[] = {
+static const u16 sSharpedoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 1, MOVE_RAGE),
@@ -4382,7 +4382,7 @@ const u16 gSharpedoLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTrapinchLevelUpLearnset[] = {
+static const u16 sTrapinchLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK),
LEVEL_UP_MOVE(17, MOVE_FAINT_ATTACK),
@@ -4394,7 +4394,7 @@ const u16 gTrapinchLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gVibravaLevelUpLearnset[] = {
+static const u16 sVibravaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_FAINT_ATTACK),
@@ -4410,7 +4410,7 @@ const u16 gVibravaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gFlygonLevelUpLearnset[] = {
+static const u16 sFlygonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
LEVEL_UP_MOVE( 1, MOVE_FAINT_ATTACK),
@@ -4426,7 +4426,7 @@ const u16 gFlygonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMakuhitaLevelUpLearnset[] = {
+static const u16 sMakuhitaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK),
@@ -4443,7 +4443,7 @@ const u16 gMakuhitaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gHariyamaLevelUpLearnset[] = {
+static const u16 sHariyamaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK),
@@ -4462,7 +4462,7 @@ const u16 gHariyamaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gElectrikeLevelUpLearnset[] = {
+static const u16 sElectrikeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE),
LEVEL_UP_MOVE( 9, MOVE_LEER),
@@ -4477,7 +4477,7 @@ const u16 gElectrikeLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gManectricLevelUpLearnset[] = {
+static const u16 sManectricLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE),
LEVEL_UP_MOVE( 1, MOVE_LEER),
@@ -4495,7 +4495,7 @@ const u16 gManectricLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gNumelLevelUpLearnset[] = {
+static const u16 sNumelLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE(11, MOVE_EMBER),
@@ -4509,7 +4509,7 @@ const u16 gNumelLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCameruptLevelUpLearnset[] = {
+static const u16 sCameruptLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_EMBER),
@@ -4526,7 +4526,7 @@ const u16 gCameruptLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSphealLevelUpLearnset[] = {
+static const u16 sSphealLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
@@ -4542,7 +4542,7 @@ const u16 gSphealLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSealeoLevelUpLearnset[] = {
+static const u16 sSealeoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
@@ -4559,7 +4559,7 @@ const u16 gSealeoLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gWalreinLevelUpLearnset[] = {
+static const u16 sWalreinLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
@@ -4576,7 +4576,7 @@ const u16 gWalreinLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCacneaLevelUpLearnset[] = {
+static const u16 sCacneaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 5, MOVE_ABSORB),
@@ -4593,7 +4593,7 @@ const u16 gCacneaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCacturneLevelUpLearnset[] = {
+static const u16 sCacturneLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POISON_STING),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
@@ -4612,7 +4612,7 @@ const u16 gCacturneLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSnoruntLevelUpLearnset[] = {
+static const u16 sSnoruntLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 7, MOVE_DOUBLE_TEAM),
@@ -4627,7 +4627,7 @@ const u16 gSnoruntLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGlalieLevelUpLearnset[] = {
+static const u16 sGlalieLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
@@ -4645,7 +4645,7 @@ const u16 gGlalieLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLunatoneLevelUpLearnset[] = {
+static const u16 sLunatoneLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 7, MOVE_CONFUSION),
@@ -4659,7 +4659,7 @@ const u16 gLunatoneLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSolrockLevelUpLearnset[] = {
+static const u16 sSolrockLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 7, MOVE_CONFUSION),
@@ -4673,7 +4673,7 @@ const u16 gSolrockLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gAzurillLevelUpLearnset[] = {
+static const u16 sAzurillLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SPLASH),
LEVEL_UP_MOVE( 3, MOVE_CHARM),
LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP),
@@ -4683,7 +4683,7 @@ const u16 gAzurillLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSpoinkLevelUpLearnset[] = {
+static const u16 sSpoinkLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SPLASH),
LEVEL_UP_MOVE( 7, MOVE_PSYWAVE),
LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH),
@@ -4698,7 +4698,7 @@ const u16 gSpoinkLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGrumpigLevelUpLearnset[] = {
+static const u16 sGrumpigLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SPLASH),
LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH),
@@ -4716,7 +4716,7 @@ const u16 gGrumpigLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gPlusleLevelUpLearnset[] = {
+static const u16 sPlusleLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE),
LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK),
@@ -4731,7 +4731,7 @@ const u16 gPlusleLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMinunLevelUpLearnset[] = {
+static const u16 sMinunLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE),
LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK),
@@ -4746,7 +4746,7 @@ const u16 gMinunLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMawileLevelUpLearnset[] = {
+static const u16 sMawileLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
LEVEL_UP_MOVE( 6, MOVE_FAKE_TEARS),
LEVEL_UP_MOVE(11, MOVE_BITE),
@@ -4762,7 +4762,7 @@ const u16 gMawileLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMedititeLevelUpLearnset[] = {
+static const u16 sMedititeLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BIDE),
LEVEL_UP_MOVE( 4, MOVE_MEDITATE),
LEVEL_UP_MOVE( 9, MOVE_CONFUSION),
@@ -4777,7 +4777,7 @@ const u16 gMedititeLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMedichamLevelUpLearnset[] = {
+static const u16 sMedichamLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH),
LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH),
LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH),
@@ -4798,7 +4798,7 @@ const u16 gMedichamLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSwabluLevelUpLearnset[] = {
+static const u16 sSwabluLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 8, MOVE_ASTONISH),
@@ -4813,7 +4813,7 @@ const u16 gSwabluLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gAltariaLevelUpLearnset[] = {
+static const u16 sAltariaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PECK),
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
@@ -4832,7 +4832,7 @@ const u16 gAltariaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gWynautLevelUpLearnset[] = {
+static const u16 sWynautLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SPLASH),
LEVEL_UP_MOVE( 1, MOVE_CHARM),
LEVEL_UP_MOVE( 1, MOVE_ENCORE),
@@ -4843,7 +4843,7 @@ const u16 gWynautLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDuskullLevelUpLearnset[] = {
+static const u16 sDuskullLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE),
LEVEL_UP_MOVE( 5, MOVE_DISABLE),
@@ -4858,7 +4858,7 @@ const u16 gDuskullLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDusclopsLevelUpLearnset[] = {
+static const u16 sDusclopsLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_BIND),
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE),
@@ -4876,7 +4876,7 @@ const u16 gDusclopsLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRoseliaLevelUpLearnset[] = {
+static const u16 sRoseliaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ABSORB),
LEVEL_UP_MOVE( 5, MOVE_GROWTH),
LEVEL_UP_MOVE( 9, MOVE_POISON_STING),
@@ -4895,7 +4895,7 @@ const u16 gRoseliaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSlakothLevelUpLearnset[] = {
+static const u16 sSlakothLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_YAWN),
LEVEL_UP_MOVE( 7, MOVE_ENCORE),
@@ -4908,7 +4908,7 @@ const u16 gSlakothLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gVigorothLevelUpLearnset[] = {
+static const u16 sVigorothLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY),
LEVEL_UP_MOVE( 1, MOVE_ENCORE),
@@ -4924,7 +4924,7 @@ const u16 gVigorothLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSlakingLevelUpLearnset[] = {
+static const u16 sSlakingLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_YAWN),
LEVEL_UP_MOVE( 1, MOVE_ENCORE),
@@ -4940,7 +4940,7 @@ const u16 gSlakingLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGulpinLevelUpLearnset[] = {
+static const u16 sGulpinLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 6, MOVE_YAWN),
LEVEL_UP_MOVE( 9, MOVE_POISON_GAS),
@@ -4955,7 +4955,7 @@ const u16 gGulpinLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSwalotLevelUpLearnset[] = {
+static const u16 sSwalotLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_YAWN),
LEVEL_UP_MOVE( 1, MOVE_POISON_GAS),
@@ -4974,7 +4974,7 @@ const u16 gSwalotLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gTropiusLevelUpLearnset[] = {
+static const u16 sTropiusLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_GUST),
LEVEL_UP_MOVE( 7, MOVE_GROWTH),
@@ -4989,7 +4989,7 @@ const u16 gTropiusLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gWhismurLevelUpLearnset[] = {
+static const u16 sWhismurLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 5, MOVE_UPROAR),
LEVEL_UP_MOVE(11, MOVE_ASTONISH),
@@ -5004,7 +5004,7 @@ const u16 gWhismurLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLoudredLevelUpLearnset[] = {
+static const u16 sLoudredLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_UPROAR),
LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
@@ -5022,7 +5022,7 @@ const u16 gLoudredLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gExploudLevelUpLearnset[] = {
+static const u16 sExploudLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_POUND),
LEVEL_UP_MOVE( 1, MOVE_UPROAR),
LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
@@ -5041,7 +5041,7 @@ const u16 gExploudLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gClamperlLevelUpLearnset[] = {
+static const u16 sClamperlLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_CLAMP),
LEVEL_UP_MOVE( 1, MOVE_WATER_GUN),
LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL),
@@ -5049,7 +5049,7 @@ const u16 gClamperlLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gHuntailLevelUpLearnset[] = {
+static const u16 sHuntailLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL),
LEVEL_UP_MOVE( 8, MOVE_BITE),
LEVEL_UP_MOVE(15, MOVE_SCREECH),
@@ -5061,7 +5061,7 @@ const u16 gHuntailLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGorebyssLevelUpLearnset[] = {
+static const u16 sGorebyssLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL),
LEVEL_UP_MOVE( 8, MOVE_CONFUSION),
LEVEL_UP_MOVE(15, MOVE_AGILITY),
@@ -5073,7 +5073,7 @@ const u16 gGorebyssLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gAbsolLevelUpLearnset[] = {
+static const u16 sAbsolLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 5, MOVE_LEER),
LEVEL_UP_MOVE( 9, MOVE_TAUNT),
@@ -5088,7 +5088,7 @@ const u16 gAbsolLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gShuppetLevelUpLearnset[] = {
+static const u16 sShuppetLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF),
LEVEL_UP_MOVE( 8, MOVE_SCREECH),
LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE),
@@ -5102,7 +5102,7 @@ const u16 gShuppetLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gBanetteLevelUpLearnset[] = {
+static const u16 sBanetteLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF),
LEVEL_UP_MOVE( 1, MOVE_SCREECH),
LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE),
@@ -5119,7 +5119,7 @@ const u16 gBanetteLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSeviperLevelUpLearnset[] = {
+static const u16 sSeviperLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WRAP),
LEVEL_UP_MOVE( 7, MOVE_LICK),
LEVEL_UP_MOVE(10, MOVE_BITE),
@@ -5133,7 +5133,7 @@ const u16 gSeviperLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gZangooseLevelUpLearnset[] = {
+static const u16 sZangooseLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 4, MOVE_LEER),
LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK),
@@ -5148,7 +5148,7 @@ const u16 gZangooseLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRelicanthLevelUpLearnset[] = {
+static const u16 sRelicanthLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 8, MOVE_WATER_GUN),
@@ -5163,7 +5163,7 @@ const u16 gRelicanthLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gAronLevelUpLearnset[] = {
+static const u16 sAronLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 4, MOVE_HARDEN),
LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP),
@@ -5179,7 +5179,7 @@ const u16 gAronLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLaironLevelUpLearnset[] = {
+static const u16 sLaironLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
@@ -5198,7 +5198,7 @@ const u16 gLaironLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gAggronLevelUpLearnset[] = {
+static const u16 sAggronLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP),
@@ -5217,7 +5217,7 @@ const u16 gAggronLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCastformLevelUpLearnset[] = {
+static const u16 sCastformLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE(10, MOVE_WATER_GUN),
LEVEL_UP_MOVE(10, MOVE_EMBER),
@@ -5229,7 +5229,7 @@ const u16 gCastformLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gVolbeatLevelUpLearnset[] = {
+static const u16 sVolbeatLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 5, MOVE_CONFUSE_RAY),
LEVEL_UP_MOVE( 9, MOVE_DOUBLE_TEAM),
@@ -5243,7 +5243,7 @@ const u16 gVolbeatLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gIllumiseLevelUpLearnset[] = {
+static const u16 sIllumiseLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT),
LEVEL_UP_MOVE( 9, MOVE_CHARM),
@@ -5257,7 +5257,7 @@ const u16 gIllumiseLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLileepLevelUpLearnset[] = {
+static const u16 sLileepLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
LEVEL_UP_MOVE( 8, MOVE_CONSTRICT),
LEVEL_UP_MOVE(15, MOVE_ACID),
@@ -5271,7 +5271,7 @@ const u16 gLileepLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gCradilyLevelUpLearnset[] = {
+static const u16 sCradilyLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_ASTONISH),
LEVEL_UP_MOVE( 1, MOVE_CONSTRICT),
LEVEL_UP_MOVE( 1, MOVE_ACID),
@@ -5288,7 +5288,7 @@ const u16 gCradilyLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gAnorithLevelUpLearnset[] = {
+static const u16 sAnorithLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 7, MOVE_HARDEN),
LEVEL_UP_MOVE(13, MOVE_MUD_SPORT),
@@ -5302,7 +5302,7 @@ const u16 gAnorithLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gArmaldoLevelUpLearnset[] = {
+static const u16 sArmaldoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_SCRATCH),
LEVEL_UP_MOVE( 1, MOVE_HARDEN),
LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT),
@@ -5319,7 +5319,7 @@ const u16 gArmaldoLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRaltsLevelUpLearnset[] = {
+static const u16 sRaltsLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 6, MOVE_CONFUSION),
LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM),
@@ -5333,7 +5333,7 @@ const u16 gRaltsLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gKirliaLevelUpLearnset[] = {
+static const u16 sKirliaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
@@ -5350,7 +5350,7 @@ const u16 gKirliaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGardevoirLevelUpLearnset[] = {
+static const u16 sGardevoirLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_GROWL),
LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM),
@@ -5367,7 +5367,7 @@ const u16 gGardevoirLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gBagonLevelUpLearnset[] = {
+static const u16 sBagonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_RAGE),
LEVEL_UP_MOVE( 5, MOVE_BITE),
LEVEL_UP_MOVE( 9, MOVE_LEER),
@@ -5382,7 +5382,7 @@ const u16 gBagonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gShelgonLevelUpLearnset[] = {
+static const u16 sShelgonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_RAGE),
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 1, MOVE_LEER),
@@ -5401,7 +5401,7 @@ const u16 gShelgonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gSalamenceLevelUpLearnset[] = {
+static const u16 sSalamenceLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_RAGE),
LEVEL_UP_MOVE( 1, MOVE_BITE),
LEVEL_UP_MOVE( 1, MOVE_LEER),
@@ -5421,12 +5421,12 @@ const u16 gSalamenceLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gBeldumLevelUpLearnset[] = {
+static const u16 sBeldumLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
LEVEL_UP_END
};
-const u16 gMetangLevelUpLearnset[] = {
+static const u16 sMetangLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
LEVEL_UP_MOVE(20, MOVE_CONFUSION),
LEVEL_UP_MOVE(20, MOVE_METAL_CLAW),
@@ -5440,7 +5440,7 @@ const u16 gMetangLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gMetagrossLevelUpLearnset[] = {
+static const u16 sMetagrossLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN),
LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW),
@@ -5457,7 +5457,7 @@ const u16 gMetagrossLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRegirockLevelUpLearnset[] = {
+static const u16 sRegirockLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_EXPLOSION),
LEVEL_UP_MOVE( 9, MOVE_ROCK_THROW),
LEVEL_UP_MOVE(17, MOVE_CURSE),
@@ -5470,7 +5470,7 @@ const u16 gRegirockLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRegiceLevelUpLearnset[] = {
+static const u16 sRegiceLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_EXPLOSION),
LEVEL_UP_MOVE( 9, MOVE_ICY_WIND),
LEVEL_UP_MOVE(17, MOVE_CURSE),
@@ -5483,7 +5483,7 @@ const u16 gRegiceLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRegisteelLevelUpLearnset[] = {
+static const u16 sRegisteelLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_EXPLOSION),
LEVEL_UP_MOVE( 9, MOVE_METAL_CLAW),
LEVEL_UP_MOVE(17, MOVE_CURSE),
@@ -5497,7 +5497,7 @@ const u16 gRegisteelLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gKyogreLevelUpLearnset[] = {
+static const u16 sKyogreLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE),
LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE),
LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER),
@@ -5512,7 +5512,7 @@ const u16 gKyogreLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gGroudonLevelUpLearnset[] = {
+static const u16 sGroudonLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT),
LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE),
LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER),
@@ -5527,7 +5527,7 @@ const u16 gGroudonLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gRayquazaLevelUpLearnset[] = {
+static const u16 sRayquazaLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TWISTER),
LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE),
LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER),
@@ -5542,7 +5542,7 @@ const u16 gRayquazaLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLatiasLevelUpLearnset[] = {
+static const u16 sLatiasLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
LEVEL_UP_MOVE( 5, MOVE_WISH),
LEVEL_UP_MOVE(10, MOVE_HELPING_HAND),
@@ -5557,7 +5557,7 @@ const u16 gLatiasLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gLatiosLevelUpLearnset[] = {
+static const u16 sLatiosLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_PSYWAVE),
LEVEL_UP_MOVE( 5, MOVE_MEMENTO),
LEVEL_UP_MOVE(10, MOVE_HELPING_HAND),
@@ -5572,7 +5572,7 @@ const u16 gLatiosLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gJirachiLevelUpLearnset[] = {
+static const u16 sJirachiLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WISH),
LEVEL_UP_MOVE( 1, MOVE_CONFUSION),
LEVEL_UP_MOVE( 5, MOVE_REST),
@@ -5588,7 +5588,7 @@ const u16 gJirachiLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gDeoxysLevelUpLearnset[] = {
+static const u16 sDeoxysLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_LEER),
LEVEL_UP_MOVE( 1, MOVE_WRAP),
LEVEL_UP_MOVE( 5, MOVE_NIGHT_SHADE),
@@ -5604,7 +5604,7 @@ const u16 gDeoxysLevelUpLearnset[] = {
LEVEL_UP_END
};
-const u16 gChimechoLevelUpLearnset[] = {
+static const u16 sChimechoLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_WRAP),
LEVEL_UP_MOVE( 6, MOVE_GROWL),
LEVEL_UP_MOVE( 9, MOVE_ASTONISH),
diff --git a/include/data/text/abilities.h b/include/data/text/abilities.h
index 2efd76afc..3a1e989d2 100644
--- a/include/data/text/abilities.h
+++ b/include/data/text/abilities.h
@@ -80,7 +80,7 @@ static const u8 gShellArmorAbilityDescription[] = _("Blocks critical hits.");
static const u8 gCacophonyAbilityDescription[] = _("Avoids sound-based moves.");
static const u8 gAirLockAbilityDescription[] = _("Negates weather effects.");
-const u8 gAbilityNames[][ABILITY_NAME_LENGTH + 1] =
+const u8 gAbilityNames[ABILITIES_COUNT][ABILITY_NAME_LENGTH + 1] =
{
_("-------"),
_("STENCH"),
@@ -162,7 +162,7 @@ const u8 gAbilityNames[][ABILITY_NAME_LENGTH + 1] =
_("AIR LOCK"),
};
-const u8 *const gAbilityDescriptionPointers[] =
+const u8 *const gAbilityDescriptionPointers[ABILITIES_COUNT] =
{
gNoneAbilityDescription,
gStenchAbilityDescription,
diff --git a/include/data/text/item_descriptions.h b/include/data/text/item_descriptions.h
new file mode 100644
index 000000000..8683978d7
--- /dev/null
+++ b/include/data/text/item_descriptions.h
@@ -0,0 +1,329 @@
+#ifndef POKEEMERALD_DATA_TEXT_ITEM_DESCRIPTIONS_H
+#define POKEEMERALD_DATA_TEXT_ITEM_DESCRIPTIONS_H
+const u8 gDummyItemDescription[] = _("?????");
+//Pokeballs
+const u8 gMasterBallItemDescription[] = _("The best BALL that\ncatches a POKéMON\nwithout fail.");
+const u8 gUltraBallItemDescription[] = _("A better BALL with\na higher catch rate\nthan a GREAT BALL.");
+const u8 gGreatBallItemDescription[] = _("A good BALL with a\nhigher catch rate\nthan a POKé BALL.");
+const u8 gPokeBallItemDescription[] = _("A tool used for\ncatching wild\nPOKéMON.");
+const u8 gSafariBallItemDescription[] = _("A special BALL that\nis used only in the\nSAFARI ZONE.");
+const u8 gNetBallItemDescription[] = _("A BALL that works\nwell on WATER- and\nBUG-type POKéMON.");
+const u8 gDiveBallItemDescription[] = _("A BALL that works\nbetter on POKéMON\non the ocean floor.");
+const u8 gNestBallItemDescription[] = _("A BALL that works\nbetter on weaker\nPOKéMON.");
+const u8 gRepeatBallItemDescription[] = _("A BALL that works\nbetter on POKéMON\ncaught before.");
+const u8 gTimerBallItemDescription[] = _("A BALL that gains\npower in battles\ntaking many turns.");
+const u8 gLuxuryBallItemDescription[] = _("A cozy BALL that\nmakes POKéMON\nmore friendly.");
+const u8 gPremierBallItemDescription[] = _("A rare BALL made\nin commemoration\nof some event.");
+//Medicine
+const u8 gPotionItemDescription[] = _("Restores the HP of\na POKéMON by\n20 points.");
+const u8 gAntidoteItemDescription[] = _("Heals a poisoned\nPOKéMON.");
+const u8 gBurnHealItemDescription[] = _("Heals POKéMON\nof a burn.");
+const u8 gIceHealItemDescription[] = _("Defrosts a frozen\nPOKéMON.");
+const u8 gAwakeningItemDescription[] = _("Awakens a sleeping\nPOKéMON.");
+const u8 gParalyzeHealItemDescription[] = _("Heals a paralyzed\nPOKéMON.");
+const u8 gFullRestoreItemDescription[] = _("Fully restores the\nHP and status of a\nPOKéMON.");
+const u8 gMaxPotionItemDescription[] = _("Fully restores the\nHP of a POKéMON.");
+const u8 gHyperPotionItemDescription[] = _("Restores the HP of\na POKéMON by\n200 points.");
+const u8 gSuperPotionItemDescription[] = _("Restores the HP of\na POKéMON by\n50 points.");
+const u8 gFullHealItemDescription[] = _("Heals all the\nstatus problems of\none POKéMON.");
+const u8 gReviveItemDescription[] = _("Revives a fainted\nPOKéMON with half\nits HP.");
+const u8 gMaxReviveItemDescription[] = _("Revives a fainted\nPOKéMON with all\nits HP.");
+const u8 gFreshWaterItemDescription[] = _("A mineral water\nthat restores HP\nby 50 points.");
+const u8 gSodaPopItemDescription[] = _("A fizzy soda drink\nthat restores HP\nby 60 points.");
+const u8 gLemonadeItemDescription[] = _("A very sweet drink\nthat restores HP\nby 80 points.");
+const u8 gMoomooMilkItemDescription[] = _("A nutritious milk\nthat restores HP\nby 100 points.");
+const u8 gEnergyPowderItemDescription[] = _("A bitter powder\nthat restores HP\nby 50 points.");
+const u8 gEnergyRootItemDescription[] = _("A bitter root\nthat restores HP\nby 200 points.");
+const u8 gHealPowderItemDescription[] = _("A bitter powder\nthat heals all\nstatus problems.");
+const u8 gRevivalHerbItemDescription[] = _("A very bitter herb\nthat revives a\nfainted POKéMON.");
+const u8 gEtherItemDescription[] = _("Restores the PP\nof a selected move\nby 10.");
+const u8 gMaxEtherItemDescription[] = _("Fully restores the\nPP of a selected\nmove.");
+const u8 gElixirItemDescription[] = _("Restores the PP\nof all moves by 10.");
+const u8 gMaxElixirItemDescription[] = _("Fully restores the\nPP of a POKéMON’s\nmoves.");
+const u8 gLavaCookieItemDescription[] = _("A local specialty\nthat heals all\nstatus problems.");
+const u8 gBlueFluteItemDescription[] = _("A glass flute that\nawakens sleeping\nPOKéMON.");
+const u8 gYellowFluteItemDescription[] = _("A glass flute that\nsnaps POKéMON\nout of confusion.");
+const u8 gRedFluteItemDescription[] = _("A glass flute that\nsnaps POKéMON\nout of attraction.");
+const u8 gBlackFluteItemDescription[] = _("A glass flute that\nkeeps away wild\nPOKéMON.");
+const u8 gWhiteFluteItemDescription[] = _("A glass flute that\nlures wild POKéMON.");
+const u8 gBerryJuiceItemDescription[] = _("A 100% pure juice\nthat restores HP\nby 20 points.");
+const u8 gSacredAshItemDescription[] = _("Fully revives and\nrestores all\nfainted POKéMON.");
+//Collectibles
+const u8 gShoalSaltItemDescription[] = _("Salt obtained from\ndeep inside the\nSHOAL CAVE.");
+const u8 gShoalShellItemDescription[] = _("A seashell found\ndeep inside the\nSHOAL CAVE.");
+const u8 gRedShardItemDescription[] = _("A shard from an\nancient item. Can\nbe sold cheaply.");
+const u8 gBlueShardItemDescription[] = _("A shard from an\nancient item. Can\nbe sold cheaply.");
+const u8 gYellowShardItemDescription[] = _("A shard from an\nancient item. Can\nbe sold cheaply.");
+const u8 gGreenShardItemDescription[] = _("A shard from an\nancient item. Can\nbe sold cheaply.");
+//Vitamins
+const u8 gHPUpItemDescription[] = _("Raises the base HP\nof one POKéMON.");
+const u8 gProteinItemDescription[] = _("Raises the base\nATTACK stat of one\nPOKéMON.");
+const u8 gIronItemDescription[] = _("Raises the base\nDEFENSE stat of\none POKéMON.");
+const u8 gCarbosItemDescription[] = _("Raises the base\nSPEED stat of one\nPOKéMON.");
+const u8 gCalciumItemDescription[] = _("Raises the base\nSP. ATK stat of one\nPOKéMON.");
+const u8 gRareCandyItemDescription[] = _("Raises the level\nof a POKéMON by\none.");
+const u8 gPPUpItemDescription[] = _("Raises the maximum\nPP of a selected\nmove.");
+const u8 gZincItemDescription[] = _("Raises the base\nSP. DEF stat of one\nPOKéMON.");
+const u8 gPPMaxItemDescription[] = _("Raises the PP of a\nmove to its maximum\npoints.");
+//Battle items
+const u8 gGuardSpecItemDescription[] = _("Prevents stat\nreduction when\nused in battle.");
+const u8 gDireHitItemDescription[] = _("Raises the\ncritical-hit ratio\nduring one battle.");
+const u8 gXAttackItemDescription[] = _("Raises the stat\nATTACK during one\nbattle.");
+const u8 gXDefendItemDescription[] = _("Raises the stat\nDEFENSE during one\nbattle.");
+const u8 gXSpeedItemDescription[] = _("Raises the stat\nSPEED during one\nbattle.");
+const u8 gXAccuracyItemDescription[] = _("Raises accuracy\nof attack moves\nduring one battle.");
+const u8 gXSpecialItemDescription[] = _("Raises the stat\nSP. ATK during one\nbattle.");
+const u8 gPokeDollItemDescription[] = _("Use to flee from\nany battle with\na wild POKéMON.");
+const u8 gFluffyTailItemDescription[] = _("Use to flee from\nany battle with\na wild POKéMON.");
+//Field items
+const u8 gSuperRepelItemDescription[] = _("Repels weak wild\nPOKéMON for 200\nsteps.");
+const u8 gMaxRepelItemDescription[] = _("Repels weak wild\nPOKéMON for 250\nsteps.");
+const u8 gEscapeRopeItemDescription[] = _("Use to escape\ninstantly from a\ncave or a dungeon.");
+const u8 gRepelItemDescription[] = _("Repels weak wild\nPOKéMON for 100\nsteps.");
+//Evolution stones
+const u8 gSunStoneItemDescription[] = _("Makes certain\nspecies of POKéMON\nevolve.");
+const u8 gMoonStoneItemDescription[] = _("Makes certain\nspecies of POKéMON\nevolve.");
+const u8 gFireStoneItemDescription[] = _("Makes certain\nspecies of POKéMON\nevolve.");
+const u8 gThunderStoneItemDescription[] = _("Makes certain\nspecies of POKéMON\nevolve.");
+const u8 gWaterStoneItemDescription[] = _("Makes certain\nspecies of POKéMON\nevolve.");
+const u8 gLeafStoneItemDescription[] = _("Makes certain\nspecies of POKéMON\nevolve.");
+//Valuable items
+const u8 gTinyMushroomItemDescription[] = _("A plain mushroom\nthat would sell\nat a cheap price.");
+const u8 gBigMushroomItemDescription[] = _("A rare mushroom\nthat would sell at a\nhigh price.");
+const u8 gPearlItemDescription[] = _("A pretty pearl\nthat would sell at a\ncheap price.");
+const u8 gBigPearlItemDescription[] = _("A lovely large pearl\nthat would sell at a\nhigh price.");
+const u8 gStardustItemDescription[] = _("Beautiful red sand.\nCan be sold at a\nhigh price.");
+const u8 gStarPieceItemDescription[] = _("A red gem shard.\nIt would sell for a\nvery high price.");
+const u8 gNuggetItemDescription[] = _("A nugget of pure\ngold. Can be sold at\na high price.");
+const u8 gHeartScaleItemDescription[] = _("A lovely scale.\nIt is coveted by\ncollectors.");
+//Mail
+const u8 gOrangeMailItemDescription[] = _("A ZIGZAGOON-print\nMAIL to be held by\na POKéMON.");
+const u8 gHarborMailItemDescription[] = _("A WINGULL-print\nMAIL to be held by\na POKéMON.");
+const u8 gGlitterMailItemDescription[] = _("A PIKACHU-print\nMAIL to be held by\na POKéMON.");
+const u8 gMechMailItemDescription[] = _("A MAGNEMITE-print\nMAIL to be held by\na POKéMON.");
+const u8 gWoodMailItemDescription[] = _("A SLAKOTH-print\nMAIL to be held by\na POKéMON.");
+const u8 gWaveMailItemDescription[] = _("A WAILMER-print\nMAIL to be held by\na POKéMON.");
+const u8 gBeadMailItemDescription[] = _("MAIL featuring a\nsketch of the\nholding POKéMON.");
+const u8 gShadowMailItemDescription[] = _("A DUSKULL-print\nMAIL to be held by\na POKéMON.");
+const u8 gTropicMailItemDescription[] = _("A BELLOSSOM-print\nMAIL to be held by\na POKéMON.");
+const u8 gDreamMailItemDescription[] = _("MAIL featuring a\nsketch of the\nholding POKéMON.");
+const u8 gFabMailItemDescription[] = _("A gorgeous-print\nMAIL to be held\nby a POKéMON.");
+const u8 gRetroMailItemDescription[] = _("MAIL featuring the\ndrawings of three\nPOKéMON.");
+//Berries
+const u8 gCheriBerryItemDescription[] = _("A hold item that\nheals paralysis\nin battle.");
+const u8 gChestoBerryItemDescription[] = _("A hold item that\nawakens POKéMON\nin battle.");
+const u8 gPechaBerryItemDescription[] = _("A hold item that\nheals poisoning\nin battle.");
+const u8 gRawstBerryItemDescription[] = _("A hold item that\nheals a burn in\nbattle.");
+const u8 gAspearBerryItemDescription[] = _("A hold item that\ndefrosts POKéMON\nin battle.");
+const u8 gLeppaBerryItemDescription[] = _("A hold item that\nrestores 10 PP in\nbattle.");
+const u8 gOranBerryItemDescription[] = _("A hold item that\nrestores 10 HP in\nbattle.");
+const u8 gPersimBerryItemDescription[] = _("A hold item that\nheals confusion\nin battle.");
+const u8 gLumBerryItemDescription[] = _("A hold item that\nheals any status\nproblem in battle.");
+const u8 gSitrusBerryItemDescription[] = _("A hold item that\nrestores 30 HP in\nbattle.");
+const u8 gFigyBerryItemDescription[] = _("A hold item that\nrestores HP but\nmay confuse.");
+const u8 gWikiBerryItemDescription[] = _("A hold item that\nrestores HP but\nmay confuse.");
+const u8 gMagoBerryItemDescription[] = _("A hold item that\nrestores HP but\nmay confuse.");
+const u8 gAguavBerryItemDescription[] = _("A hold item that\nrestores HP but\nmay confuse.");
+const u8 gIapapaBerryItemDescription[] = _("A hold item that\nrestores HP but\nmay confuse.");
+const u8 gRazzBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow RAZZ.");
+const u8 gBlukBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow BLUK.");
+const u8 gNanabBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow NANAB.");
+const u8 gWepearBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow WEPEAR.");
+const u8 gPinapBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow PINAP.");
+const u8 gPomegBerryItemDescription[] = _("Makes a POKéMON\nfriendly but lowers\nbase HP.");
+const u8 gKelpsyBerryItemDescription[] = _("Makes a POKéMON\nfriendly but lowers\nbase ATTACK.");
+const u8 gQualotBerryItemDescription[] = _("Makes a POKéMON\nfriendly but lowers\nbase DEFENSE.");
+const u8 gHondewBerryItemDescription[] = _("Makes a POKéMON\nfriendly but lowers\nbase SP. ATK.");
+const u8 gGrepaBerryItemDescription[] = _("Makes a POKéMON\nfriendly but lowers\nbase SP. DEF.");
+const u8 gTamatoBerryItemDescription[] = _("Makes a POKéMON\nfriendly but lowers\nbase SPEED.");
+const u8 gCornnBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow CORNN.");
+const u8 gMagostBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow MAGOST.");
+const u8 gRabutaBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow RABUTA.");
+const u8 gNomelBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow NOMEL.");
+const u8 gSpelonBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow SPELON.");
+const u8 gPamtreBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow PAMTRE.");
+const u8 gWatmelBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow WATMEL.");
+const u8 gDurinBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow DURIN.");
+const u8 gBelueBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow BELUE.");
+const u8 gLiechiBerryItemDescription[] = _("A hold item that\nraises ATTACK in\na pinch.");
+const u8 gGanlonBerryItemDescription[] = _("A hold item that\nraises DEFENSE in\na pinch.");
+const u8 gSalacBerryItemDescription[] = _("A hold item that\nraises SPEED in\na pinch.");
+const u8 gPetayaBerryItemDescription[] = _("A hold item that\nraises SP. ATK in\na pinch.");
+const u8 gApicotBerryItemDescription[] = _("A hold item that\nraises SP. DEF in\na pinch.");
+const u8 gLansatBerryItemDescription[] = _("A hold item that\nups the critical-\nhit rate in a pinch.");
+const u8 gStarfBerryItemDescription[] = _("A hold item that\nsharply boosts a\nstat in a pinch.");
+const u8 gEnigmaBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow a mystery.");
+//Hold items
+const u8 gBrightPowderItemDescription[] = _("A hold item that\ncasts a glare to\nreduce accuracy.");
+const u8 gWhiteHerbItemDescription[] = _("A hold item that\nrestores any\nlowered stat.");
+const u8 gMachoBraceItemDescription[] = _("A hold item that\npromotes growth,\nbut reduces SPEED.");
+const u8 gExpShareItemDescription[] = _("A hold item that\ngets EXP. points\nfrom battles.");
+const u8 gQuickClawItemDescription[] = _("A hold item that\noccasionally allows\nthe first strike.");
+const u8 gSootheBellItemDescription[] = _("A hold item that\ncalms spirits and\nfosters friendship.");
+const u8 gMentalHerbItemDescription[] = _("A hold item that\nsnaps POKéMON out\nof infatuation.");
+const u8 gChoiceBandItemDescription[] = _("Raises a move’s\npower, but permits\nonly that move.");
+const u8 gKingsRockItemDescription[] = _("A hold item that\nmay cause flinching\nwhen the foe is hit.");
+const u8 gSilverPowderItemDescription[] = _("A hold item that\nraises the power of\nBUG-type moves.");
+const u8 gAmuletCoinItemDescription[] = _("Doubles money in\nbattle if the\nholder takes part.");
+const u8 gCleanseTagItemDescription[] = _("A hold item that\nhelps repel wild\nPOKéMON.");
+const u8 gSoulDewItemDescription[] = _("Hold item: raises\nSP. ATK & SP. DEF of\nLATIOS & LATIAS.");
+const u8 gDeepSeaToothItemDescription[] = _("A hold item that\nraises the SP. ATK\nof CLAMPERL.");
+const u8 gDeepSeaScaleItemDescription[] = _("A hold item that\nraises the SP. DEF\nof CLAMPERL.");
+const u8 gSmokeBallItemDescription[] = _("A hold item that\nassures fleeing\nfrom wild POKéMON.");
+const u8 gEverstoneItemDescription[] = _("A wondrous hold\nitem that prevents\nevolution.");
+const u8 gFocusBandItemDescription[] = _("A hold item that\noccasionally\nprevents fainting.");
+const u8 gLuckyEggItemDescription[] = _("A hold item that\nboosts EXP. points\nearned in battle.");
+const u8 gScopeLensItemDescription[] = _("A hold item that\nimproves the\ncritical-hit rate.");
+const u8 gMetalCoatItemDescription[] = _("A hold item that\nraises the power of\nSTEEL-type moves.");
+const u8 gLeftoversItemDescription[] = _("A hold item that\ngradually restores\nHP in battle.");
+const u8 gDragonScaleItemDescription[] = _("A strange scale\nheld by DRAGON-\ntype POKéMON.");
+const u8 gLightBallItemDescription[] = _("A hold item that\nraises the SP. ATK\nof PIKACHU.");
+const u8 gSoftSandItemDescription[] = _("A hold item that\nraises the power of\nGROUND-type moves.");
+const u8 gHardStoneItemDescription[] = _("A hold item that\nraises the power of\nROCK-type moves.");
+const u8 gMiracleSeedItemDescription[] = _("A hold item that\nraises the power of\nGRASS-type moves.");
+const u8 gBlackGlassesItemDescription[] = _("A hold item that\nraises the power of\nDARK-type moves.");
+const u8 gBlackBeltItemDescription[] = _("A hold item that\nboosts FIGHTING-\ntype moves.");
+const u8 gMagnetItemDescription[] = _("A hold item that\nboosts ELECTRIC-\ntype moves.");
+const u8 gMysticWaterItemDescription[] = _("A hold item that\nraises the power of\nWATER-type moves.");
+const u8 gSharpBeakItemDescription[] = _("A hold item that\nraises the power of\nFLYING-type moves.");
+const u8 gPoisonBarbItemDescription[] = _("A hold item that\nraises the power of\nPOISON-type moves.");
+const u8 gNeverMeltIceItemDescription[] = _("A hold item that\nraises the power of\nICE-type moves.");
+const u8 gSpellTagItemDescription[] = _("A hold item that\nraises the power of\nGHOST-type moves.");
+const u8 gTwistedSpoonItemDescription[] = _("A hold item that\nboosts PSYCHIC-\ntype moves.");
+const u8 gCharcoalItemDescription[] = _("A hold item that\nraises the power of\nFIRE-type moves.");
+const u8 gDragonFangItemDescription[] = _("A hold item that\nraises the power of\nDRAGON-type moves.");
+const u8 gSilkScarfItemDescription[] = _("A hold item that\nraises the power of\nNORMAL-type moves.");
+const u8 gUpGradeItemDescription[] = _("A peculiar box made\nby SILPH CO.");
+const u8 gShellBellItemDescription[] = _("A hold item that\nrestores HP upon\nstriking the foe.");
+const u8 gSeaIncenseItemDescription[] = _("A hold item that\nslightly boosts\nWATER-type moves.");
+const u8 gLaxIncenseItemDescription[] = _("A hold item that\nslightly lowers the\nfoe’s accuracy.");
+const u8 gLuckyPunchItemDescription[] = _("A hold item that\nraises CHANSEY’s\ncritical-hit rate.");
+const u8 gMetalPowderItemDescription[] = _("A hold item that\nraises DITTO’s\nDEFENSE.");
+const u8 gThickClubItemDescription[] = _("A hold item that \nraises CUBONE or\nMAROWAK’s ATTACK.");
+const u8 gStickItemDescription[] = _("A hold item that\nraises FARFETCH’D’s\ncritical-hit ratio.");
+const u8 gRedScarfItemDescription[] = _("A hold item that\nraises COOL in\nCONTESTS.");
+const u8 gBlueScarfItemDescription[] = _("A hold item that\nraises BEAUTY in\nCONTESTS.");
+const u8 gPinkScarfItemDescription[] = _("A hold item that\nraises CUTE in\nCONTESTS.");
+const u8 gGreenScarfItemDescription[] = _("A hold item that\nraises SMART in\nCONTESTS.");
+const u8 gYellowScarfItemDescription[] = _("A hold item that\nraises TOUGH in\nCONTESTS.");
+//Key items
+const u8 gMachBikeItemDescription[] = _("A folding bicycle\nthat doubles your\nspeed or better.");
+const u8 gCoinCaseItemDescription[] = _("A case that holds\nup to 9,999 COINS.");
+const u8 gItemfinderItemDescription[] = _("A device that\nsignals an invisible\nitem by sound.");
+const u8 gOldRodItemDescription[] = _("Use by any body of\nwater to fish for\nwild POKéMON.");
+const u8 gGoodRodItemDescription[] = _("A decent fishing\nrod for catching\nwild POKéMON.");
+const u8 gSuperRodItemDescription[] = _("The best fishing\nrod for catching\nwild POKéMON.");
+const u8 gSSTicketItemDescription[] = _("The ticket required\nfor sailing on a\nferry.");
+const u8 gContestPassItemDescription[] = _("The pass required\nfor entering\nPOKéMON CONTESTS.");
+const u8 gWailmerPailItemDescription[] = _("A tool used for\nwatering BERRIES\nand plants.");
+const u8 gDevonGoodsItemDescription[] = _("A package that\ncontains DEVON’s\nmachine parts.");
+const u8 gSootSackItemDescription[] = _("A sack used to\ngather and hold\nvolcanic ash.");
+const u8 gBasementKeyItemDescription[] = _("The key for NEW\nMAUVILLE beneath\nMAUVILLE CITY.");
+const u8 gAcroBikeItemDescription[] = _("A folding bicycle\ncapable of jumps\nand wheelies.");
+const u8 gPokeblockCaseItemDescription[] = _("A case for holding\n{POKEBLOCK}S made with\na BERRY BLENDER.");
+const u8 gLetterItemDescription[] = _("A letter to STEVEN\nfrom the PRESIDENT\nof the DEVON CORP.");
+const u8 gEonTicketItemDescription[] = _("The ticket for a\nferry to a distant\nsouthern island.");
+const u8 gRedOrbItemDescription[] = _("A red, glowing orb\nsaid to contain an\nancient power.");
+const u8 gBlueOrbItemDescription[] = _("A blue, glowing orb\nsaid to contain an\nancient power.");
+const u8 gScannerItemDescription[] = _("A device found\ninside the\nABANDONED SHIP.");
+const u8 gGoGogglesItemDescription[] = _("Nifty goggles that\nprotect eyes from\ndesert sandstorms.");
+const u8 gMeteoriteItemDescription[] = _("A meteorite found\nat METEOR FALLS.");
+const u8 gRoom1KeyItemDescription[] = _("A key that opens a\ndoor inside the\nABANDONED SHIP.");
+const u8 gRoom2KeyItemDescription[] = _("A key that opens a\ndoor inside the\nABANDONED SHIP.");
+const u8 gRoom4KeyItemDescription[] = _("A key that opens a\ndoor inside the\nABANDONED SHIP.");
+const u8 gRoom6KeyItemDescription[] = _("A key that opens a\ndoor inside the\nABANDONED SHIP.");
+const u8 gStorageKeyItemDescription[] = _("The key to the\nstorage inside the\nABANDONED SHIP.");
+const u8 gRootFossilItemDescription[] = _("A fossil of an\nancient, seafloor-\ndwelling POKéMON.");
+const u8 gClawFossilItemDescription[] = _("A fossil of an\nancient, seafloor-\ndwelling POKéMON.");
+const u8 gDevonScopeItemDescription[] = _("A device by DEVON\nthat signals any\nunseeable POKéMON.");
+//TMs/HMs
+const u8 gTM01ItemDescription[] = _("Powerful, but makes\nthe user flinch if\nhit by the foe.");
+const u8 gTM02ItemDescription[] = _("Hooks and slashes\nthe foe with long,\nsharp claws.");
+const u8 gTM03ItemDescription[] = _("Generates an\nultrasonic wave\nthat may confuse.");
+const u8 gTM04ItemDescription[] = _("Raises SP. ATK and\nSP. DEF by focusing\nthe mind.");
+const u8 gTM05ItemDescription[] = _("A savage roar that\nmakes the foe flee \nto end the battle.");
+const u8 gTM06ItemDescription[] = _("Poisons the foe\nwith a toxin that\ngradually worsens.");
+const u8 gTM07ItemDescription[] = _("Creates a hailstorm\nthat damages all\ntypes except ICE.");
+const u8 gTM08ItemDescription[] = _("Bulks up the body\nto boost both\nATTACK & DEFENSE.");
+const u8 gTM09ItemDescription[] = _("Shoots 2 to 5 seeds\nin a row to strike\nthe foe.");
+const u8 gTM10ItemDescription[] = _("The attack power\nvaries among\ndifferent POKéMON.");
+const u8 gTM11ItemDescription[] = _("Raises the power of\nFIRE-type moves\nfor 5 turns.");
+const u8 gTM12ItemDescription[] = _("Enrages the foe so\nit can only use\nattack moves.");
+const u8 gTM13ItemDescription[] = _("Fires an icy cold\nbeam that may\nfreeze the foe.");
+const u8 gTM14ItemDescription[] = _("A brutal snow-and-\nwind attack that\nmay freeze the foe.");
+const u8 gTM15ItemDescription[] = _("Powerful, but needs\nrecharging the\nnext turn.");
+const u8 gTM16ItemDescription[] = _("Creates a wall of\nlight that lowers\nSP. ATK damage.");
+const u8 gTM17ItemDescription[] = _("Negates all damage,\nbut may fail if used\nin succession.");
+const u8 gTM18ItemDescription[] = _("Raises the power of\nWATER-type moves\nfor 5 turns.");
+const u8 gTM19ItemDescription[] = _("Recovers half the\nHP of the damage \nthis move inflicts.");
+const u8 gTM20ItemDescription[] = _("Prevents status\nabnormality with a\nmystical power.");
+const u8 gTM21ItemDescription[] = _("The less the user\nlikes you, the more\npowerful this move.");
+const u8 gTM22ItemDescription[] = _("Absorbs sunlight in\nthe 1st turn, then\nattacks next turn.");
+const u8 gTM23ItemDescription[] = _("Slams the foe with\na hard tail. It may\nlower DEFENSE.");
+const u8 gTM24ItemDescription[] = _("A powerful electric\nattack that may\ncause paralysis.");
+const u8 gTM25ItemDescription[] = _("Strikes the foe\nwith a thunderbolt.\nIt may paralyze.");
+const u8 gTM26ItemDescription[] = _("Causes a quake\nthat has no effect\non flying foes.");
+const u8 gTM27ItemDescription[] = _("The more the user\nlikes you, the more\npowerful this move.");
+const u8 gTM28ItemDescription[] = _("Digs underground\nthe 1st turn, then\nstrikes next turn.");
+const u8 gTM29ItemDescription[] = _("A powerful psychic\nattack that may\nlower SP. DEF.");
+const u8 gTM30ItemDescription[] = _("Hurls a dark lump\nat the foe. It may\nlower SP. DEF.");
+const u8 gTM31ItemDescription[] = _("Destroys barriers\nlike LIGHT SCREEN\nand causes damage.");
+const u8 gTM32ItemDescription[] = _("Creates illusory\ncopies to enhance\nelusiveness.");
+const u8 gTM33ItemDescription[] = _("Creates a wall of\nlight that weakens\nphysical attacks.");
+const u8 gTM34ItemDescription[] = _("Zaps the foe with a\njolt of electricity\nthat never misses.");
+const u8 gTM35ItemDescription[] = _("Looses a stream of\nfire that may burn\nthe foe.");
+const u8 gTM36ItemDescription[] = _("Hurls sludge at the\nfoe. It may poison\nthe foe.");
+const u8 gTM37ItemDescription[] = _("Causes a sandstorm\nthat hits the foe\nover several turns.");
+const u8 gTM38ItemDescription[] = _("A powerful fire\nattack that may\nburn the foe.");
+const u8 gTM39ItemDescription[] = _("Stops the foe from\nmoving with rocks.\nMay lower SPEED.");
+const u8 gTM40ItemDescription[] = _("An extremely fast\nattack that can’t\nbe avoided.");
+const u8 gTM41ItemDescription[] = _("Prevents the foe\nfrom using the same\nmove in a row.");
+const u8 gTM42ItemDescription[] = _("Raises ATTACK when\npoisoned, burned,\nor paralyzed.");
+const u8 gTM43ItemDescription[] = _("Adds an effect to\nattack depending\non the location.");
+const u8 gTM44ItemDescription[] = _("The user sleeps for\n2 turns to restore\nhealth and status.");
+const u8 gTM45ItemDescription[] = _("Makes it tough to\nattack a foe of the\nopposite gender.");
+const u8 gTM46ItemDescription[] = _("While attacking,\nit may steal the\nfoe’s held item.");
+const u8 gTM47ItemDescription[] = _("Spreads hard-\nedged wings and\nslams into the foe.");
+const u8 gTM48ItemDescription[] = _("Switches abilities\nwith the foe on the\nturn this is used.");
+const u8 gTM49ItemDescription[] = _("Steals the effects\nof the move the foe\nis trying to use.");
+const u8 gTM50ItemDescription[] = _("Enables full-power\nattack, but sharply\nlowers SP. ATK.");
+
+const u8 gHM01ItemDescription[] = _("Attacks the foe\nwith sharp blades\nor claws.");
+const u8 gHM02ItemDescription[] = _("Flies up on the\nfirst turn, then\nattacks next turn.");
+const u8 gHM03ItemDescription[] = _("Creates a huge\nwave, then crashes\nit down on the foe.");
+const u8 gHM04ItemDescription[] = _("Builds enormous\npower, then slams\nthe foe.");
+const u8 gHM05ItemDescription[] = _("Looses a powerful\nblast of light that\nreduces accuracy.");
+const u8 gHM06ItemDescription[] = _("A rock-crushingly\ntough attack that\nmay lower DEFENSE.");
+const u8 gHM07ItemDescription[] = _("Attacks the foe\nwith enough power\nto climb waterfalls.");
+const u8 gHM08ItemDescription[] = _("Dives underwater\nthe 1st turn, then\nattacks next turn.");
+//FireRed/LeafGreen key items
+const u8 gOaksParcelItemDescription[] = _("A parcel for PROF.\nOAK from a POKéMON\nMART’s clerk.");
+const u8 gPokeFluteItemDescription[] = _("A sweet-sounding\nflute that awakens\nPOKéMON.");
+const u8 gSecretKeyItemDescription[] = _("The key to the\nCINNABAR ISLAND\nGYM’s entrance.");
+const u8 gBikeVoucherItemDescription[] = _("A voucher for\nobtaining a bicycle\nfrom the BIKE SHOP.");
+const u8 gGoldTeethItemDescription[] = _("Gold dentures lost\nby the SAFARI\nZONE’s WARDEN.");
+const u8 gOldAmberItemDescription[] = _("A stone containing\nthe genes of an\nancient POKéMON.");
+const u8 gCardKeyItemDescription[] = _("A card-type door\nkey used in SILPH\nCO’s office.");
+const u8 gLiftKeyItemDescription[] = _("An elevator key\nused in TEAM\nROCKET’s HIDEOUT.");
+const u8 gHelixFossilItemDescription[] = _("A piece of an\nancient marine\nPOKéMON’s seashell.");
+const u8 gDomeFossilItemDescription[] = _("A piece of an\nancient marine\nPOKéMON’s shell.");
+const u8 gSilphScopeItemDescription[] = _("SILPH CO’s scope\nmakes unseeable\nPOKéMON visible.");
+const u8 gBicycleItemDescription[] = _("A folding bicycle\nthat is faster than\nthe RUNNING SHOES.");
+const u8 gTownMapItemDescription[] = _("Can be viewed\nanytime. Shows your\npresent location.");
+const u8 gVSSeekerItemDescription[] = _("A rechargeable unit\nthat flags battle-\nready TRAINERS.");
+const u8 gFameCheckerItemDescription[] = _("Stores information\non famous people\nfor instant recall.");
+const u8 gTMCaseItemDescription[] = _("A convenient case \nthat holds TMs and\nHMs.");
+const u8 gBerryPouchItemDescription[] = _("A convenient\ncontainer that\nholds BERRIES.");
+const u8 gTeachyTVItemDescription[] = _("A TV set tuned to\nan advice program\nfor TRAINERS.");
+const u8 gTriPassItemDescription[] = _("A pass for ferries\nbetween ONE, TWO,\nand THREE ISLAND.");
+const u8 gRainbowPassItemDescription[] = _("For ferries serving\nVERMILION and the\nSEVII ISLANDS.");
+const u8 gTeaItemDescription[] = _("A thirst-quenching\ntea prepared by an\nold lady.");
+const u8 gMysticTicketItemDescription[] = _("A ticket required\nto board the ship\nto NAVEL ROCK.");
+const u8 gAuroraTicketItemDescription[] = _("A ticket required\nto board the ship\nto BIRTH ISLAND.");
+const u8 gPowderJarItemDescription[] = _("Stores BERRY\nPOWDER made using\na BERRY CRUSHER.");
+const u8 gRubyItemDescription[] = _("An exquisite, red-\nglowing gem that\nsymbolizes passion.");
+const u8 gSapphireItemDescription[] = _("A brilliant blue gem\nthat symbolizes\nhonesty.");
+//Emerald-specific key items
+const u8 gMagmaEmblemItemDescription[] = _("A medal-like item in\nthe same shape as\nTEAM MAGMA’s mark.");
+const u8 gOldSeaMapItemDescription[] = _("A faded sea chart\nthat shows the way\nto a certain island.");
+#endif // POKEEMERALD_DATA_TEXT_ITEM_DESCRIPTIONS_H
diff --git a/include/data2.h b/include/data2.h
index d71958201..af830a4c4 100644
--- a/include/data2.h
+++ b/include/data2.h
@@ -1,6 +1,8 @@
#ifndef GUARD_DATA2_H
#define GUARD_DATA2_H
+#define MOVE_NAME_LENGTH 12
+
struct MonCoords
{
// This would use a bitfield, but some function
@@ -13,10 +15,9 @@ extern struct MonCoords gTrainerBackPicCoords[];
extern struct MonCoords gTrainerFrontPicCoords[];
extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1];
-extern const u8 gMoveNames[][13];
+extern const u8 gMoveNames[][MOVE_NAME_LENGTH + 1];
extern struct CompressedSpriteSheet gUnknown_0831C620;
extern struct CompressedSpritePalette gUnknown_0831C628;
extern const struct SpriteTemplate gUnknown_0831C688;
-
#endif // GUARD_DATA2_H
diff --git a/include/decompress.h b/include/decompress.h
index 34a678cda..e98181c82 100644
--- a/include/decompress.h
+++ b/include/decompress.h
@@ -28,6 +28,6 @@ void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32
void LoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
void LoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
-u32 sub_8034974(const u8 *ptr);
+u32 GetDecompressedDataSize(const u8 *ptr);
#endif // GUARD_DECOMPRESS_H
diff --git a/include/decoration.h b/include/decoration.h
index c841bbfc1..f613c25d2 100644
--- a/include/decoration.h
+++ b/include/decoration.h
@@ -69,5 +69,10 @@ extern EWRAM_DATA u8 gCurDecorationIndex;
void sub_8126968(void);
void sub_8126AD8(u8 taskId);
void sub_8127D38(u16 mapX, u16 mapY, u16 decor);
+void sub_8126B2C(u8 taskId);
+void sub_8127208(u8 taskId);
+void sub_8127250(u8 *dest, u8 decorCat);
+bool8 IsSelectedDecorInThePC(void);
+u8 AddDecorationIconObject(u8 decor, s16 x, s16 y, u8 priority, u16 tilesTag, u16 paletteTag);
#endif //GUARD_DECORATION_H
diff --git a/include/dynamic_placeholder_text_util.h b/include/dynamic_placeholder_text_util.h
new file mode 100644
index 000000000..19bca71bb
--- /dev/null
+++ b/include/dynamic_placeholder_text_util.h
@@ -0,0 +1,9 @@
+#ifndef GUARD_DYNAMIC_PLACEHOLDER_TEXT_UTIL_H
+#define GUARD_DYNAMIC_PLACEHOLDER_TEXT_UTIL_H
+
+void DynamicPlaceholderTextUtil_Reset(void);
+void DynamicPlaceholderTextUtil_SetPlaceholderPtr(u8 idx, const u8 *ptr);
+u8 *DynamicPlaceholderTextUtil_ExpandPlaceholders(u8 *dest, const u8 *src);
+const u8 *DynamicPlaceholderTextUtil_GetPlaceholderPtr(u8 idx);
+
+#endif //GUARD_DYNAMIC_PLACEHOLDER_TEXT_UTIL_H
diff --git a/include/easy_chat.h b/include/easy_chat.h
index f0ac51c22..541fa6c1b 100644
--- a/include/easy_chat.h
+++ b/include/easy_chat.h
@@ -1,39 +1,16 @@
#ifndef GUARD_EASYCHAT_H
#define GUARD_EASYCHAT_H
-// Taken from Pokeruby, check if it's correct
-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,
-};
-
void InitEasyChatPhrases(void);
void easy_chat_input_maybe(void);
-void CopyEasyChatWord(u8 *dest, u16 word);
+u8 * CopyEasyChatWord(u8 *dest, u16 word);
bool32 sub_811F8D8(u16 word);
void InitializeEasyChatWordArray(u16 *words, u16 length);
void ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 length1, u16 length2);
bool8 ECWord_CheckIfOutsideOfValidRange(u16 word);
+u16 sub_811EE38(u16 group);
+u16 sub_811F01C(void);
+bool16 EasyChat_GetNumWordsInGroup(u8);
+u16 sub_811EE90(u16);
#endif // GUARD_EASYCHAT_H
diff --git a/include/event_data.h b/include/event_data.h
index f829d3b87..e09b32d44 100644
--- a/include/event_data.h
+++ b/include/event_data.h
@@ -24,7 +24,7 @@ bool32 CanResetRTC(void);
u16 *GetVarPointer(u16 id);
u16 VarGet(u16 id);
bool8 VarSet(u16 id, u16 value);
-u8 VarGetFieldObjectGraphicsId(u8 id);
+u8 VarGetEventObjectGraphicsId(u8 id);
u8 *GetFlagPointer(u16 id);
u8 FlagSet(u16 id);
u8 FlagClear(u16 id);
diff --git a/include/event_obj_lock.h b/include/event_obj_lock.h
new file mode 100644
index 000000000..59532fdcb
--- /dev/null
+++ b/include/event_obj_lock.h
@@ -0,0 +1,11 @@
+#ifndef GUARD_EVENT_OBJ_LOCK_H
+#define GUARD_EVENT_OBJ_LOCK_H
+
+bool8 sub_80983C4(void);
+void ScriptFreezeEventObjects(void);
+bool8 sub_809847C(void);
+void LockSelectedEventObject(void);
+void sub_8098630(void);
+bool8 sub_8098734(void);
+
+#endif // GUARD_EVENT_OBJ_LOCK_H
diff --git a/include/event_object_movement.h b/include/event_object_movement.h
new file mode 100644
index 000000000..c382ae4d8
--- /dev/null
+++ b/include/event_object_movement.h
@@ -0,0 +1,406 @@
+#ifndef GUARD_FIELD_EVENT_OBJ_H
+#define GUARD_FIELD_EVENT_OBJ_H
+
+#define NUM_OBJECT_GRAPHICS_INFO 239
+#define SPRITE_VAR 240
+
+enum SpinnerRunnerFollowPatterns
+{
+ RUNFOLLOW_ANY,
+ RUNFOLLOW_NORTH_SOUTH,
+ RUNFOLLOW_EAST_WEST,
+ RUNFOLLOW_NORTH_WEST,
+ RUNFOLLOW_NORTH_EAST,
+ RUNFOLLOW_SOUTH_WEST,
+ RUNFOLLOW_SOUTH_EAST,
+ RUNFOLLOW_NORTH_SOUTH_WEST,
+ RUNFOLLOW_NORTH_SOUTH_EAST,
+ RUNFOLLOW_NORTH_EAST_WEST,
+ RUNFOLLOW_SOUTH_EAST_WEST
+};
+
+struct UnkStruct_085094AC {
+ const union AnimCmd *const *anims;
+ u8 animPos[4];
+};
+
+#define GROUND_EFFECT_FLAG_TALL_GRASS_ON_SPAWN (1 << 0)
+#define GROUND_EFFECT_FLAG_TALL_GRASS_ON_MOVE (1 << 1)
+#define GROUND_EFFECT_FLAG_LONG_GRASS_ON_SPAWN (1 << 2)
+#define GROUND_EFFECT_FLAG_LONG_GRASS_ON_MOVE (1 << 3)
+#define GROUND_EFFECT_FLAG_ICE_REFLECTION (1 << 4)
+#define GROUND_EFFECT_FLAG_REFLECTION (1 << 5)
+#define GROUND_EFFECT_FLAG_SHALLOW_FLOWING_WATER (1 << 6)
+#define GROUND_EFFECT_FLAG_SAND (1 << 7)
+#define GROUND_EFFECT_FLAG_DEEP_SAND (1 << 8)
+#define GROUND_EFFECT_FLAG_RIPPLES (1 << 9)
+#define GROUND_EFFECT_FLAG_PUDDLE (1 << 10)
+#define GROUND_EFFECT_FLAG_SAND_PILE (1 << 11)
+#define GROUND_EFFECT_FLAG_LAND_IN_TALL_GRASS (1 << 12)
+#define GROUND_EFFECT_FLAG_LAND_IN_LONG_GRASS (1 << 13)
+#define GROUND_EFFECT_FLAG_LAND_IN_SHALLOW_WATER (1 << 14)
+#define GROUND_EFFECT_FLAG_LAND_IN_DEEP_WATER (1 << 15)
+#define GROUND_EFFECT_FLAG_LAND_ON_NORMAL_GROUND (1 << 16)
+#define GROUND_EFFECT_FLAG_SHORT_GRASS (1 << 17)
+#define GROUND_EFFECT_FLAG_HOT_SPRINGS (1 << 18)
+#define GROUND_EFFECT_FLAG_SEAWEED (1 << 19)
+
+#define movement_type_def(setup, table) \
+static u8 setup##_callback(struct EventObject *, struct Sprite *);\
+void setup(struct Sprite *sprite)\
+{\
+ UpdateEventObjectCurrentMovement(&gEventObjects[sprite->data[0]], sprite, setup##_callback);\
+}\
+static u8 setup##_callback(struct EventObject *eventObject, struct Sprite *sprite)\
+{\
+ return table[sprite->data[1]](eventObject, sprite);\
+}
+
+#define movement_type_empty_callback(setup) \
+static u8 setup##_callback(struct EventObject *, struct Sprite *);\
+void setup(struct Sprite *sprite)\
+{\
+ UpdateEventObjectCurrentMovement(&gEventObjects[sprite->data[0]], sprite, setup##_callback);\
+}\
+static u8 setup##_callback(struct EventObject *eventObject, struct Sprite *sprite)\
+{\
+ return 0;\
+}
+
+struct PairedPalettes
+{
+ u16 tag;
+ const u16 *data;
+};
+
+struct LockedAnimEventObjects
+{
+ u8 eventObjectIds[NUM_EVENT_OBJECTS];
+ u8 count;
+};
+
+extern const struct SpriteFrameImage gEventObjectPicTable_PechaBerryTree[];
+
+void sub_808D438(void);
+u8 GetMoveDirectionAnimNum(u8);
+u8 GetEventObjectIdByLocalIdAndMap(u8, u8, u8);
+bool8 TryGetEventObjectIdByLocalIdAndMap(u8, u8, u8, u8 *);
+u8 GetEventObjectIdByXY(s16, s16);
+void SetEventObjectDirection(struct EventObject *, u8);
+u8 GetFirstInactiveEventObjectId(void);
+void RemoveEventObjectByLocalIdAndMap(u8, u8, u8);
+void npc_load_two_palettes__no_record(u16, u8);
+void npc_load_two_palettes__and_record(u16, u8);
+void sub_808EBA8(u8, u8, u8, s16, s16);
+void pal_patch_for_npc(u16, u8);
+void sub_808E16C(s16, s16);
+void sub_808F28C(u8 localId, u8 mapNum, u8 mapGroup, u8 decorCat);
+void sub_8092FF0(s16, s16, s16 *, s16 *);
+u8 GetFaceDirectionAnimNum(u8);
+void sub_80930E0(s16 *, s16 *, s16, s16);
+void EventObjectClearHeldMovement(struct EventObject *);
+void EventObjectClearHeldMovementIfActive(struct EventObject *);
+void TrySpawnEventObjects(s16, s16);
+u8 sprite_new(u8, u8, s16, s16, u8, u8);
+u8 AddPseudoEventObject(u16, void (*)(struct Sprite *), s16, s16, u8);
+u8 show_sprite(u8, u8, u8);
+u8 SpawnSpecialEventObjectParameterized(u8, u8, u8, s16, s16, u8);
+u8 SpawnSpecialEventObject(struct EventObjectTemplate *);
+void sub_8093038(s16, s16, s16 *, s16 *);
+void CameraObjectReset1(void);
+void EventObjectSetGraphicsId(struct EventObject *, u8);
+void EventObjectTurn(struct EventObject *, u8);
+void EventObjectTurnByLocalIdAndMap(u8, u8, u8, u8);
+const struct EventObjectGraphicsInfo *GetEventObjectGraphicsInfo(u8);
+void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8);
+void gpu_pal_allocator_reset__manage_upper_four(void);
+void sub_808E82C(u8, u8, u8, s16, s16);
+void sub_808E7E4(u8, u8, u8);
+void sub_808E78C(u8, u8, u8, u8);
+void sub_808E75C(s16, s16);
+void EventObjectGetLocalIdAndMap(struct EventObject *eventObject, void *localId, void *mapNum, void *mapGroup);
+void ShiftEventObjectCoords(struct EventObject *, s16, s16);
+void sub_808EB08(struct EventObject *, s16, s16);
+void sub_808F254(u8, u8, u8);
+void UpdateEventObjectCurrentMovement(struct EventObject *, struct Sprite *, bool8(struct EventObject *, struct Sprite *));
+u8 EventObjectFaceOppositeDirection(struct EventObject *, u8);
+u8 GetOppositeDirection(u8);
+u8 GetWalkInPlaceFastestMovementAction(u32);
+u8 GetWalkInPlaceFastMovementAction(u32);
+u8 GetWalkInPlaceNormalMovementAction(u32);
+u8 GetWalkInPlaceSlowMovementAction(u32);
+u8 GetCollisionAtCoords(struct EventObject *, s16, s16, u32);
+void MoveCoords(u8, s16 *, s16 *);
+bool8 EventObjectIsHeldMovementActive(struct EventObject *);
+u8 EventObjectClearHeldMovementIfFinished(struct EventObject *);
+u8 GetEventObjectIdByXYZ(u16 x, u16 y, u8 z);
+void SetTrainerMovementType(struct EventObject *eventObject, u8 movementType);
+u8 GetTrainerFacingDirectionMovementType(u8 direction);
+const u8 *GetEventObjectScriptPointerByEventObjectId(u8 eventObjectId);
+u8 GetCollisionFlagsAtCoords(struct EventObject *eventObject, s16 x, s16 y, u8 direction);
+u8 GetFaceDirectionMovementAction(u32);
+u8 GetWalkNormalMovementAction(u32);
+u8 GetWalkFastMovementAction(u32);
+u8 GetWalkFastestMovementAction(u32);
+u8 GetJumpInPlaceMovementAction(u32);
+bool8 EventObjectSetHeldMovement(struct EventObject *eventObject, u8 specialAnimId);
+bool8 EventObjectIsMovementOverridden(struct EventObject *eventObject);
+u8 EventObjectCheckHeldMovementStatus(struct EventObject *eventObject);
+void TryOverrideTemplateCoordsForEventObject(const struct EventObject *eventObject, u8 movementType);
+void OverrideTemplateCoordsForEventObject(const struct EventObject *eventObject);
+void ShiftStillEventObjectCoords(struct EventObject *pObject);
+void EventObjectMoveDestCoords(struct EventObject *pObject, u32 unk_19, s16 *pInt, s16 *pInt1);
+u8 AddCameraObject(u8 linkedSpriteId);
+void UpdateEventObjectsForCameraUpdate(s16 x, s16 y);
+u8 GetWalkSlowMovementAction(u32);
+u8 GetJumpMovementAction(u32);
+bool8 AreZCoordsCompatible(u8, u8);
+u8 ZCoordToPriority(u8);
+void EventObjectUpdateZCoord(struct EventObject *pObject);
+void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8);
+bool8 IsZCoordMismatchAt(u8, s16, s16);
+void UpdateEventObjectSpriteSubpriorityAndVisibility(struct Sprite *);
+void UnfreezeEventObject(struct EventObject *);
+void oamt_npc_ministep_reset(struct Sprite *, u8, u8);
+u8 FindLockedEventObjectIndex(struct EventObject *);
+bool8 obj_npc_ministep(struct Sprite *sprite);
+bool8 sub_80976EC(struct Sprite *sprite);
+void sub_80976DC(struct Sprite *, u8);
+void sub_809783C(struct Sprite *, u8, u8, u8);
+void DoShadowFieldEffect(struct EventObject *);
+u8 sub_809785C(struct Sprite *);
+u8 sub_80978E4(struct Sprite *);
+void SetAndStartSpriteAnim(struct Sprite *, u8, u8);
+bool8 SpriteAnimEnded(struct Sprite *);
+void sub_8097750(struct Sprite *);
+bool8 sub_8097758(struct Sprite *);
+void CreateLevitateMovementTask(struct EventObject *);
+void DestroyExtraMovementTask(u8);
+void UnfreezeEventObjects(void);
+void FreezeEventObjectsExceptOne(u8 eventObjectId);
+void sub_8097B78(u8, u8);
+void sub_8098074(u8 var1, u8 var2);
+void FreezeEventObjects(void);
+bool8 FreezeEventObject(struct EventObject *eventObject);
+u8 GetMoveDirectionFastAnimNum(u8);
+u8 GetMoveDirectionFasterAnimNum(u8);
+u8 GetMoveDirectionFastestAnimNum(u8);
+void CameraObjectSetFollowedObjectId(u8 objectId);
+
+void MovementType_None(struct Sprite *);
+void MovementType_LookAround(struct Sprite *);
+void MovementType_WanderAround(struct Sprite *);
+void MovementType_WanderUpAndDown(struct Sprite *);
+void MovementType_WanderLeftAndRight(struct Sprite *);
+void MovementType_FaceDirection(struct Sprite *);
+void MovementType_Player(struct Sprite *);
+void MovementType_BerryTreeGrowth(struct Sprite *);
+void MovementType_FaceDownAndUp(struct Sprite *);
+void MovementType_FaceLeftAndRight(struct Sprite *);
+void MovementType_FaceUpAndLeft(struct Sprite *);
+void MovementType_FaceUpAndRight(struct Sprite *);
+void MovementType_FaceDownAndLeft(struct Sprite *);
+void MovementType_FaceDownAndRight(struct Sprite *);
+void MovementType_FaceDownUpAndLeft(struct Sprite *);
+void MovementType_FaceDownUpAndRight(struct Sprite *);
+void MovementType_FaceUpRightAndLeft(struct Sprite *);
+void MovementType_FaceDownRightAndLeft(struct Sprite *);
+void MovementType_RotateCounterclockwise(struct Sprite *);
+void MovementType_RotateClockwise(struct Sprite *);
+void MovementType_WalkBackAndForth(struct Sprite *);
+void MovementType_WalkSequenceUpRightLeftDown(struct Sprite *);
+void MovementType_WalkSequenceRightLeftDownUp(struct Sprite *);
+void MovementType_WalkSequenceDownUpRightLeft(struct Sprite *);
+void MovementType_WalkSequenceLeftDownUpRight(struct Sprite *);
+void MovementType_WalkSequenceUpLeftRightDown(struct Sprite *);
+void MovementType_WalkSequenceLeftRightDownUp(struct Sprite *);
+void MovementType_WalkSequenceDownUpLeftRight(struct Sprite *);
+void MovementType_WalkSequenceRightDownUpLeft(struct Sprite *);
+void MovementType_WalkSequenceLeftUpDownRight(struct Sprite *);
+void MovementType_WalkSequenceUpDownRightLeft(struct Sprite *);
+void MovementType_WalkSequenceRightLeftUpDown(struct Sprite *);
+void MovementType_WalkSequenceDownRightLeftUp(struct Sprite *);
+void MovementType_WalkSequenceRightUpDownLeft(struct Sprite *);
+void MovementType_WalkSequenceUpDownLeftRight(struct Sprite *);
+void MovementType_WalkSequenceLeftRightUpDown(struct Sprite *);
+void MovementType_WalkSequenceDownLeftRightUp(struct Sprite *);
+void MovementType_WalkSequenceUpLeftDownRight(struct Sprite *);
+void MovementType_WalkSequenceDownRightUpLeft(struct Sprite *);
+void MovementType_WalkSequenceLeftDownRightUp(struct Sprite *);
+void MovementType_WalkSequenceRightUpLeftDown(struct Sprite *);
+void MovementType_WalkSequenceUpRightDownLeft(struct Sprite *);
+void MovementType_WalkSequenceDownLeftUpRight(struct Sprite *);
+void MovementType_WalkSequenceLeftUpRightDown(struct Sprite *);
+void MovementType_WalkSequenceRightDownLeftUp(struct Sprite *);
+void MovementType_CopyPlayer(struct Sprite *);
+void MovementType_TreeDisguise(struct Sprite *);
+void MovementType_MountainDisguise(struct Sprite *);
+void MovementType_CopyPlayerInGrass(struct Sprite *);
+void MovementType_Hidden(struct Sprite *);
+void MovementType_WalkInPlace(struct Sprite *);
+void MovementType_JogInPlace(struct Sprite *);
+void MovementType_RunInPlace(struct Sprite *);
+void MovementType_Invisible(struct Sprite *);
+void MovementType_WalkSlowlyInPlace(struct Sprite *);
+u8 GetSlideMovementAction(u32);
+u8 GetJumpInPlaceMovementAction(u32);
+u8 GetJumpMovementAction(u32);
+u8 GetJump2MovementAction(u32);
+
+u8 MovementType_WanderAround_Step0(struct EventObject *, struct Sprite *);
+u8 MovementType_WanderAround_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_WanderAround_Step2(struct EventObject *, struct Sprite *);
+u8 MovementType_WanderAround_Step3(struct EventObject *, struct Sprite *);
+u8 MovementType_WanderAround_Step4(struct EventObject *, struct Sprite *);
+u8 MovementType_WanderAround_Step5(struct EventObject *, struct Sprite *);
+u8 MovementType_WanderAround_Step6(struct EventObject *, struct Sprite *);
+u8 GetVectorDirection(s16, s16, s16, s16);
+u8 GetLimitedVectorDirection_SouthNorth(s16, s16, s16, s16);
+u8 GetLimitedVectorDirection_WestEast(s16, s16, s16, s16);
+u8 GetLimitedVectorDirection_WestNorth(s16, s16, s16, s16);
+u8 GetLimitedVectorDirection_EastNorth(s16, s16, s16, s16);
+u8 GetLimitedVectorDirection_WestSouth(s16, s16, s16, s16);
+u8 GetLimitedVectorDirection_EastSouth(s16, s16, s16, s16);
+u8 GetLimitedVectorDirection_SouthNorthWest(s16, s16, s16, s16);
+u8 GetLimitedVectorDirection_SouthNorthEast(s16, s16, s16, s16);
+u8 GetLimitedVectorDirection_NorthWestEast(s16, s16, s16, s16);
+u8 GetLimitedVectorDirection_SouthWestEast(s16, s16, s16, s16);
+u8 MovementType_LookAround_Step0(struct EventObject *, struct Sprite *);
+u8 MovementType_LookAround_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_LookAround_Step2(struct EventObject *, struct Sprite *);
+u8 MovementType_LookAround_Step3(struct EventObject *, struct Sprite *);
+u8 MovementType_LookAround_Step4(struct EventObject *, struct Sprite *);
+u8 MovementType_WanderUpAndDown_Step0(struct EventObject *, struct Sprite *);
+u8 MovementType_WanderUpAndDown_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_WanderUpAndDown_Step2(struct EventObject *, struct Sprite *);
+u8 MovementType_WanderUpAndDown_Step3(struct EventObject *, struct Sprite *);
+u8 MovementType_WanderUpAndDown_Step4(struct EventObject *, struct Sprite *);
+u8 MovementType_WanderUpAndDown_Step5(struct EventObject *, struct Sprite *);
+u8 MovementType_WanderUpAndDown_Step6(struct EventObject *, struct Sprite *);
+u8 MovementType_WanderLeftAndRight_Step0(struct EventObject *, struct Sprite *);
+u8 MovementType_WanderLeftAndRight_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_WanderLeftAndRight_Step2(struct EventObject *, struct Sprite *);
+u8 MovementType_WanderLeftAndRight_Step3(struct EventObject *, struct Sprite *);
+u8 MovementType_WanderLeftAndRight_Step4(struct EventObject *, struct Sprite *);
+u8 MovementType_WanderLeftAndRight_Step5(struct EventObject *, struct Sprite *);
+u8 MovementType_WanderLeftAndRight_Step6(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDirection_Step0(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDirection_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDirection_Step2(struct EventObject *, struct Sprite *);
+u8 MovementType_BerryTreeGrowth_Step0(struct EventObject *, struct Sprite *);
+u8 MovementType_BerryTreeGrowth_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_BerryTreeGrowth_Step2(struct EventObject *, struct Sprite *);
+u8 MovementType_BerryTreeGrowth_Step3(struct EventObject *, struct Sprite *);
+u8 MovementType_BerryTreeGrowth_Step4(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownAndUp_Step0(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownAndUp_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownAndUp_Step2(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownAndUp_Step3(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownAndUp_Step4(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceLeftAndRight_Step0(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceLeftAndRight_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceLeftAndRight_Step2(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceLeftAndRight_Step3(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceLeftAndRight_Step4(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceUpAndLeft_Step0(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceUpAndLeft_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceUpAndLeft_Step2(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceUpAndLeft_Step3(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceUpAndLeft_Step4(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceUpAndRight_Step0(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceUpAndRight_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceUpAndRight_Step2(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceUpAndRight_Step3(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceUpAndRight_Step4(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownAndLeft_Step0(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownAndLeft_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownAndLeft_Step2(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownAndLeft_Step3(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownAndLeft_Step4(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownAndRight_Step0(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownAndRight_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownAndRight_Step2(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownAndRight_Step3(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownAndRight_Step4(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownUpAndLeft_Step0(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownUpAndLeft_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownUpAndLeft_Step2(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownUpAndLeft_Step3(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownUpAndLeft_Step4(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownUpAndRight_Step0(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownUpAndRight_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownUpAndRight_Step2(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownUpAndRight_Step3(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownUpAndRight_Step4(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceUpLeftAndRight_Step0(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceUpLeftAndRight_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceUpLeftAndRight_Step2(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceUpLeftAndRight_Step3(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceUpLeftAndRight_Step4(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownLeftAndRight_Step0(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownLeftAndRight_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownLeftAndRight_Step2(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownLeftAndRight_Step3(struct EventObject *, struct Sprite *);
+u8 MovementType_FaceDownLeftAndRight_Step4(struct EventObject *, struct Sprite *);
+u8 MovementType_RotateCounterclockwise_Step0(struct EventObject *, struct Sprite *);
+u8 MovementType_RotateCounterclockwise_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_RotateCounterclockwise_Step2(struct EventObject *, struct Sprite *);
+u8 MovementType_RotateCounterclockwise_Step3(struct EventObject *, struct Sprite *);
+u8 MovementType_RotateClockwise_Step0(struct EventObject *, struct Sprite *);
+u8 MovementType_RotateClockwise_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_RotateClockwise_Step2(struct EventObject *, struct Sprite *);
+u8 MovementType_RotateClockwise_Step3(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkBackAndForth_Step0(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkBackAndForth_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkBackAndForth_Step2(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkBackAndForth_Step3(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkSequence_Step0(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkSequence_Step2(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkSequenceUpRightLeftDown_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkSequenceRightLeftDownUp_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkSequenceDownUpRightLeft_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkSequenceLeftDownUpRight_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkSequenceUpLeftRightDown_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkSequenceLeftRightDownUp_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkSequenceDownUpLeftRight_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkSequenceRightDownUpLeft_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkSequenceLeftUpDownRight_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkSequenceUpDownRightLeft_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkSequenceRightLeftUpDown_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkSequenceDownRightLeftUp_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkSequenceRightUpDownLeft_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkSequenceUpDownLeftRight_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkSequenceLeftRightUpDown_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkSequenceDownLeftRightUp_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkSequenceUpLeftDownRight_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkSequenceDownRightUpLeft_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkSequenceLeftDownRightUp_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkSequenceRightUpLeftDown_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkSequenceUpRightDownLeft_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkSequenceDownLeftUpRight_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkSequenceLeftUpRightDown_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkSequenceRightDownLeftUp_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_CopyPlayer_Step0(struct EventObject *, struct Sprite *);
+u8 MovementType_CopyPlayer_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_CopyPlayer_Step2(struct EventObject *, struct Sprite *);
+bool8 CopyablePlayerMovement_None(struct EventObject *, struct Sprite *, u8, bool8(u8));
+bool8 CopyablePlayerMovement_FaceDirection(struct EventObject *, struct Sprite *, u8, bool8(u8));
+bool8 CopyablePlayerMovement_GoSpeed0(struct EventObject *, struct Sprite *, u8, bool8(u8));
+bool8 CopyablePlayerMovement_GoSpeed1(struct EventObject *, struct Sprite *, u8, bool8(u8));
+bool8 CopyablePlayerMovement_GoSpeed2(struct EventObject *, struct Sprite *, u8, bool8(u8));
+bool8 CopyablePlayerMovement_Slide(struct EventObject *, struct Sprite *, u8, bool8(u8));
+bool8 cph_IM_DIFFERENT(struct EventObject *, struct Sprite *, u8, bool8(u8));
+bool8 CopyablePlayerMovement_GoSpeed4(struct EventObject *, struct Sprite *, u8, bool8(u8));
+bool8 CopyablePlayerMovement_Jump(struct EventObject *, struct Sprite *, u8, bool8(u8));
+u8 MovementType_CopyPlayerInGrass_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_Hidden_Step0(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkInPlace_Step0(struct EventObject *, struct Sprite *);
+u8 MovementType_MoveInPlace_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_WalkSlowlyInPlace_Step0(struct EventObject *, struct Sprite *);
+u8 MovementType_JogInPlace_Step0(struct EventObject *, struct Sprite *);
+u8 MovementType_RunInPlace_Step0(struct EventObject *, struct Sprite *);
+u8 MovementType_Invisible_Step0(struct EventObject *, struct Sprite *);
+u8 MovementType_Invisible_Step1(struct EventObject *, struct Sprite *);
+u8 MovementType_Invisible_Step2(struct EventObject *, struct Sprite *);
+
+#endif //GUARD_FIELD_EVENT_OBJ_H
diff --git a/include/event_scripts.h b/include/event_scripts.h
index 4c5dfd544..c187682b0 100644
--- a/include/event_scripts.h
+++ b/include/event_scripts.h
@@ -382,9 +382,146 @@ extern const u8 SecretBase_RedCave1_Text_2751E1[];
extern const u8 SecretBase_RedCave1_Text_2754F6[];
extern const u8 SecretBase_RedCave1_Text_2758CC[];
+extern const u8 BattleFrontier_BattlePyramidEmptySquare_EventScript_252C88[];
+
//field effects
extern const u8 FieryPath_EventScript_2908FD[];
extern const u8 EventScript_290CAE[];
extern const u8 EventScript_2926F8[];
+extern const u8 Route111_EventScript_2907F0[];
+
+//player pc
+extern const u8 LittlerootTown_BrendansHouse_2F_EventScript_1F863F[];
+extern const u8 LittlerootTown_MaysHouse_2F_EventScript_1F958F[];
+
+//mauville_old_man
+extern const u8 gOtherText_Is[];
+extern const u8 gOtherText_DontYouAgree[];
+extern const u8 gText_SoPretty[];
+extern const u8 gText_SoDarling[];
+extern const u8 gText_SoRelaxed[];
+extern const u8 gText_SoSunny[];
+extern const u8 gText_SoDesirable[];
+extern const u8 gText_SoExciting[];
+extern const u8 gText_SoAmusing[];
+extern const u8 gText_SoMagical[];
+extern const u8 gUnknown_08294313[];
+extern const u8 gUnknown_08294359[];
+extern const u8 gUnknown_08294398[];
+extern const u8 gUnknown_082943DA[];
+extern const u8 gUnknown_0829441C[];
+extern const u8 gUnknown_08294460[];
+extern const u8 gUnknown_082944A0[];
+extern const u8 gUnknown_082944D5[];
+
+
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28E930[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28E947[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28E956[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28E9D7[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28E9EF[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28E9FE[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28EA7D[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28EA98[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28EAA8[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28EB19[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28EB31[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28EB3E[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28EBB5[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28EBCD[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28EBDD[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28EC60[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28EC79[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28EC81[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28ED04[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28ED21[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28ED30[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28EDA1[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28EDB5[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28EDCF[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28EE45[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28EE5D[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28EE6A[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28EEDD[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28EEF1[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28EF01[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28EF73[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28EF95[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28EFAA[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F045[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F05A[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F071[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F0F3[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F10D[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F125[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F1BE[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F1D5[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F1DE[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F24F[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F269[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F277[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F2FC[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F314[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F32A[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F3AD[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F3C6[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F3D2[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F44B[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F461[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F47C[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F50C[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F51B[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F538[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F5BE[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F5D1[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F5F2[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F678[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F694[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F6B4[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F751[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F76A[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F776[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F7F6[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F811[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F822[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F89C[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F8AF[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F8BC[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F92F[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F941[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F949[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F9D1[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F9EA[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28F9FD[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28FA81[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28FA99[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28FAA7[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28FB1D[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28FB35[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28FB47[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28FBC4[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28FBD9[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28FBEA[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28FC6B[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28FC85[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28FC98[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28FD1D[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28FD35[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28FD40[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28FDA2[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28FDBD[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28FDCE[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28FE57[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28FE72[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28FE88[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28FF0C[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28FF27[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28FF44[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28FFDD[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_28FFFA[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_29000D[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_290097[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_2900B5[];
+extern const u8 MauvilleCity_PokemonCenter_1F_Text_2900CB[];
#endif //GUARD_EVENT_SCRIPTS_H
diff --git a/include/field_camera.h b/include/field_camera.h
index 6ff8ce006..fcc19ce9a 100644
--- a/include/field_camera.h
+++ b/include/field_camera.h
@@ -6,22 +6,19 @@
struct CameraObject
{
void (*callback)(struct CameraObject *);
- u32 unk4;
+ u32 spriteId;
s32 unk8;
s32 unkC;
s32 x;
s32 y;
};
-extern struct CameraObject gUnknown_03005DD0;
-
// Exported RAM declarations
-
+extern struct CameraObject gUnknown_03005DD0;
extern u16 gUnknown_03005DEC;
extern u16 gUnknown_03005DE8;
// Exported ROM declarations
-
void DrawWholeMapView(void);
void CurrentMapDrawMetatileAt(int x, int y);
void sub_8089C08(s16 *a0, s16 *a1);
diff --git a/include/field_control_avatar.h b/include/field_control_avatar.h
index b915d1419..0ff1834ca 100644
--- a/include/field_control_avatar.h
+++ b/include/field_control_avatar.h
@@ -30,12 +30,13 @@ 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 *GetFieldObjectScriptPointerPlayerFacing(void);
+u8 *GetEventObjectScriptPointerPlayerFacing(void);
bool8 mapheader_trigger_activate_at__run_now(struct MapPosition *);
bool8 sub_8068870(u16 a);
bool8 sub_8068894(void);
bool8 sub_8068A64(struct MapPosition *, u16);
u8 sub_8068F18(void);
bool8 dive_warp(struct MapPosition *position, u16 b);
+void sub_809D2BC(void);
#endif // GUARD_FIELDCONTROLAVATAR_H
diff --git a/include/field_effect.h b/include/field_effect.h
index 700256f30..cdabd5c99 100644
--- a/include/field_effect.h
+++ b/include/field_effect.h
@@ -1,9 +1,17 @@
#ifndef GUARD_FIELD_EFFECTS_H
#define GUARD_FIELD_EFFECTS_H
+#include "task.h"
+
+extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[2];
+extern const struct SpritePalette gNewGameBirchObjectPaletteInfo;
+extern const struct CompressedSpriteSheet gTrainerFrontPicTable[2];
+extern const struct SpriteTemplate gNewGameBirchObjectTemplate;
+extern const struct OamData gNewGameBirchOamAttributes;
+
enum FieldEffectScriptIdx
{
- FLDEFF_EXCLAMATION_MARK_ICON_1,
+ FLDEFF_EXCLAMATION_MARK_ICON,
FLDEFF_USE_CUT_ON_GRASS,
FLDEFF_USE_CUT_ON_TREE,
FLDEFF_SHADOW,
@@ -36,7 +44,7 @@ enum FieldEffectScriptIdx
FLDEFF_NPCFLY_OUT,
FLDEFF_USE_FLY,
FLDEFF_FLY_IN,
- FLDEFF_EXCLAMATION_MARK_ICON_2,
+ FLDEFF_QUESTION_MARK_ICON,
FLDEFF_FEET_IN_FLOWING_WATER,
FLDEFF_BIKE_TIRE_TRACKS,
FLDEFF_SAND_DISGUISE,
@@ -66,10 +74,15 @@ enum FieldEffectScriptIdx
FLDEFF_USE_FLY_ANCIENT_TOMB,
FLDEFF_PCTURN_ON,
FLDEFF_HALL_OF_FAME_RECORD,
- FLDEFF_USE_TELEPORT
+ FLDEFF_USE_TELEPORT,
+ FLDEFF_64,
+ FLDEFF_65,
+ FLDEFF_66,
};
-extern u32 gFieldEffectArguments[8];
+extern s32 gFieldEffectArguments[8];
+extern void (*gPostMenuFieldCallback)(void);
+extern bool8 (*gFieldCallback2)(void);
u32 FieldEffectStart(u8);
bool8 FieldEffectActiveListContains(u8 id);
@@ -77,10 +90,150 @@ void sub_80B69DC(void);
u8 AddNewGameBirchObject(s16, s16, u8);
void FieldEffectStop(struct Sprite *sprite, u8 id);
u8 CreateTrainerSprite(u8 trainerSpriteID, s16 x, s16 y, u8 subpriority, u8 *buffer);
-void sub_80B7FC8(void);
+void CreateTeleportFieldEffectTask(void);
void FieldEffectActiveListRemove(u8 id);
void MultiplyInvertedPaletteRGBComponents(u16, u8, u8, u8);
-extern void (*gUnknown_0203CEEC)(void);
-extern bool8 (*gUnknown_03005DB0)(void);
+void FieldEffectActiveListAdd(u8 id);
+void FieldEffectScript_LoadTiles(u8 **script);
+void FieldEffectScript_LoadFadedPalette(u8 **script);
+void FieldEffectScript_LoadPalette(u8 **script);
+void FieldEffectScript_CallNative(u8 **script, u32 *val);
+void FieldEffectFreeTilesIfUnused(u16 tileStart);
+void FieldEffectFreePaletteIfUnused(u8 paletteNum);
+bool8 FieldEffectCmd_loadtiles(u8 **script, u32 *val);
+bool8 FieldEffectCmd_loadfadedpal(u8 **script, u32 *val);
+bool8 FieldEffectCmd_loadpal(u8 **script, u32 *val);
+bool8 FieldEffectCmd_callnative(u8 **script, u32 *val);
+bool8 FieldEffectCmd_end(u8 **script, u32 *val);
+bool8 FieldEffectCmd_loadgfx_callnative(u8 **script, u32 *val);
+bool8 FieldEffectCmd_loadtiles_callnative(u8 **script, u32 *val);
+bool8 FieldEffectCmd_loadfadedpal_callnative(u8 **script, u32 *val);
+
+void PokecenterHealEffect_0(struct Task *);
+void PokecenterHealEffect_1(struct Task *);
+void PokecenterHealEffect_2(struct Task *);
+void PokecenterHealEffect_3(struct Task *);
+
+void HallOfFameRecordEffect_0(struct Task *);
+void HallOfFameRecordEffect_1(struct Task *);
+void HallOfFameRecordEffect_2(struct Task *);
+void HallOfFameRecordEffect_3(struct Task *);
+
+void PokeballGlowEffect_0(struct Sprite *);
+void PokeballGlowEffect_1(struct Sprite *);
+void PokeballGlowEffect_2(struct Sprite *);
+void PokeballGlowEffect_3(struct Sprite *);
+void PokeballGlowEffect_4(struct Sprite *);
+void PokeballGlowEffect_5(struct Sprite *);
+void PokeballGlowEffect_6(struct Sprite *);
+void PokeballGlowEffect_7(struct Sprite *);
+
+bool8 sub_80B6BCC(struct Task *);
+bool8 sub_80B6C74(struct Task *);
+bool8 sub_80B6C90(struct Task *);
+bool8 sub_80B6D04(struct Task *);
+bool8 sub_80B6DBC(struct Task *);
+bool8 sub_80B6DD8(struct Task *);
+bool8 sub_80B6E18(struct Task *);
+
+bool8 sub_80B6EC0(struct Task *);
+bool8 sub_80B6EE0(struct Task *);
+bool8 sub_80B6F50(struct Task *);
+bool8 sub_80B6F74(struct Task *);
+bool8 sub_80B6F84(struct Task *);
+bool8 sub_80B6FA8(struct Task *);
+
+bool8 sub_80B7114(struct Task *);
+bool8 sub_80B7190(struct Task *);
+bool8 sub_80B71D0(struct Task *);
+bool8 sub_80B7230(struct Task *);
+bool8 sub_80B7270(struct Task *);
+bool8 sub_80B72D0(struct Task *);
+bool8 sub_80B72F4(struct Task *);
+
+bool8 sub_80B73D0(struct Task *, struct EventObject *);
+bool8 waterfall_1_do_anim_probably(struct Task *, struct EventObject *);
+bool8 waterfall_2_wait_anim_finish_probably(struct Task *, struct EventObject *);
+bool8 sub_80B7450(struct Task *, struct EventObject *);
+bool8 sub_80B7478(struct Task *, struct EventObject *);
+
+bool8 dive_1_lock(struct Task *);
+bool8 dive_2_unknown(struct Task *);
+bool8 dive_3_unknown(struct Task *);
+
+bool8 sub_80B764C(struct Task *, struct EventObject *, struct Sprite *);
+bool8 sub_80B7684(struct Task *, struct EventObject *, struct Sprite *);
+bool8 sub_80B76B8(struct Task *, struct EventObject *, struct Sprite *);
+bool8 sub_80B7704(struct Task *, struct EventObject *, struct Sprite *);
+bool8 sub_80B77F8(struct Task *, struct EventObject *, struct Sprite *);
+bool8 sub_80B7814(struct Task *, struct EventObject *, struct Sprite *);
+
+bool8 sub_80B78EC(struct Task *, struct EventObject *, struct Sprite *);
+bool8 sub_80B791C(struct Task *, struct EventObject *, struct Sprite *);
+bool8 sub_80B7968(struct Task *, struct EventObject *, struct Sprite *);
+bool8 sub_80B79BC(struct Task *, struct EventObject *, struct Sprite *);
+
+bool8 sub_80B7AE8(struct Task *, struct EventObject *, struct Sprite *);
+bool8 sub_80B7B18(struct Task *, struct EventObject *, struct Sprite *);
+bool8 sub_80B7B94(struct Task *, struct EventObject *, struct Sprite *);
+bool8 sub_80B7BCC(struct Task *, struct EventObject *, struct Sprite *);
+bool8 sub_80B7BF4(struct Task *, struct EventObject *, struct Sprite *);
+
+void sub_80B7D14(struct Task *);
+void sub_80B7D34(struct Task *);
+
+void sub_80B7EC4(struct Task *);
+void sub_80B7EE8(struct Task *);
+
+void sub_80B8280(struct Task *);
+void sub_80B830C(struct Task *);
+void sub_80B8410(struct Task *);
+
+void sub_80B8584(struct Task *);
+void sub_80B85F8(struct Task *);
+void sub_80B8660(struct Task *);
+void sub_80B86EC(struct Task *);
+void sub_80B871C(struct Task *);
+void sub_80B8770(struct Task *);
+void overworld_bg_setup_2(struct Task *);
+
+void sub_80B88E4(struct Task *);
+void sub_80B8920(struct Task *);
+void sub_80B898C(struct Task *);
+void sub_80B89DC(struct Task *);
+void sub_80B8A0C(struct Task *);
+void sub_80B8A44(struct Task *);
+void sub_80B8A64(struct Task *);
+
+void sub_80B8DB4(struct Task *);
+void sub_80B8E14(struct Task *);
+void sub_80B8E60(struct Task *);
+void sub_80B8EA8(struct Task *);
+void sub_80B8F24(struct Task *);
+
+void sub_80B9204(struct Task *);
+void sub_80B925C(struct Task *);
+void sub_80B92A0(struct Task *);
+void sub_80B92F8(struct Task *);
+void sub_80B933C(struct Task *);
+void sub_80B9390(struct Task *);
+void sub_80B9418(struct Task *);
+void sub_80B9474(struct Task *);
+void sub_80B9494(struct Task *);
+
+void sub_80B9804(struct Task *);
+void sub_80B98B8(struct Task *);
+void sub_80B9924(struct Task *);
+void sub_80B9978(struct Task *);
+void sub_80B99F0(struct Task *);
+void sub_80B9A28(struct Task *);
+void sub_80B9A60(struct Task *);
+
+void sub_80B9C28(s16*, u8);
+void sub_80B9C54(s16*, u8);
+void sub_80B9CDC(s16*, u8);
+
+void sub_80B7CAC(struct Sprite*);
+void sub_80B7A58(struct Sprite*);
#endif //GUARD_FIELD_EFFECTS_H
diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h
index 15928eba3..547f515eb 100644
--- a/include/field_effect_helpers.h
+++ b/include/field_effect_helpers.h
@@ -11,7 +11,28 @@
// Exported ROM declarations
u8 sub_8154228(void);
-bool8 sub_8155DA0(struct MapObject *);
-void sub_8155D78(struct MapObject *);
+bool8 sub_8155DA0(struct EventObject *);
+void sub_8155D78(struct EventObject *);
+void sub_81555AC(u8, u8);
+void ash(s16, s16, u16, s16);
+void SetUpReflection(struct EventObject*, struct Sprite*, u8);
+u32 StartFieldEffectForEventObject(u8, struct EventObject*);
+u8 sub_81546C8(u8, u8, u8, s16, s16);
+void sub_8155F80(struct Sprite*);
+void oamc_shadow(struct Sprite*);
+void unc_grass_normal(struct Sprite*);
+void sub_81561D0(struct Sprite*);
+void sub_8155460(struct Sprite*);
+void sub_8155658(struct Sprite*);
+void sub_8156194(struct Sprite*);
+void sub_8154C60(struct Sprite*);
+void sub_8154D90(struct Sprite*);
+void unc_grass_tall(struct Sprite*);
+void sub_81559BC(struct Sprite*);
+void sub_8155C88(struct Sprite*);
+void sub_8154A10(struct Sprite*);
+void sub_8155158(struct Sprite*);
+void sub_8155AEC(struct Sprite*);
+void sub_8155E50(struct Sprite*);
#endif //GUARD_FIELD_EFFECT_HELPERS_H
diff --git a/include/field_ground_effect.h b/include/field_ground_effect.h
deleted file mode 100644
index 89b14aed1..000000000
--- a/include/field_ground_effect.h
+++ /dev/null
@@ -1,24 +0,0 @@
-//
-// Created by scott on 9/6/2017.
-//
-
-#ifndef GUARD_FIELD_GROUND_EFFECT_H
-#define GUARD_FIELD_GROUND_EFFECT_H
-
-// Exported type declarations
-
-// Exported RAM declarations
-
-// Exported ROM declarations
-u8 ZCoordToPriority(u8);
-void FieldObjectUpdateZCoord(struct MapObject *pObject);
-void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8);
-void InitObjectPriorityByZCoord(struct Sprite *, u8);
-bool8 IsZCoordMismatchAt(u8, s16, s16);
-bool8 AreZCoordsCompatible(u8, u8);
-void FieldObjectUpdateSubpriority(struct MapObject *, struct Sprite *);
-void DoGroundEffects_OnSpawn(struct MapObject *, struct Sprite *);
-void DoGroundEffects_OnBeginStep(struct MapObject *, struct Sprite *);
-void DoGroundEffects_OnFinishStep(struct MapObject *, struct Sprite *);
-
-#endif //GUARD_FIELD_GROUND_EFFECT_H
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
deleted file mode 100644
index 8b7e296dd..000000000
--- a/include/field_map_obj.h
+++ /dev/null
@@ -1,99 +0,0 @@
-#ifndef GUARD_FIELD_MAP_OBJ_H
-#define GUARD_FIELD_MAP_OBJ_H
-
-#define NUM_OBJECT_GRAPHICS_INFO 239
-#define SPRITE_VAR 240
-
-// Exported struct declarations
-
-enum SpinnerRunnerFollowPatterns {
- RUNFOLLOW_ANY,
- RUNFOLLOW_NORTH_SOUTH,
- RUNFOLLOW_EAST_WEST,
- RUNFOLLOW_NORTH_WEST,
- RUNFOLLOW_NORTH_EAST,
- RUNFOLLOW_SOUTH_WEST,
- RUNFOLLOW_SOUTH_EAST,
- RUNFOLLOW_NORTH_SOUTH_WEST,
- RUNFOLLOW_NORTH_SOUTH_EAST,
- RUNFOLLOW_NORTH_EAST_WEST,
- RUNFOLLOW_SOUTH_EAST_WEST
-};
-
-// Exported RAM declarations
-
-// Exported ROM declarations
-
-void sub_808D438(void);
-u8 get_go_image_anim_num(u8);
-u8 GetFieldObjectIdByLocalIdAndMap(u8, u8, u8);
-bool8 TryGetFieldObjectIdByLocalIdAndMap(u8, u8, u8, u8 *);
-u8 GetFieldObjectIdByXY(s16, s16);
-void FieldObjectSetDirection(struct MapObject *, u8);
-u8 sub_808D4F4(void);
-void RemoveFieldObjectByLocalIdAndMap(u8, u8, u8);
-void npc_load_two_palettes__no_record(u16, u8);
-void npc_load_two_palettes__and_record(u16, u8);
-void sub_808EBA8(u8, u8, u8, s16, s16);
-void pal_patch_for_npc(u16, u8);
-void sub_808E16C(s16, s16);
-void sub_808F28C(u8 localId, u8 mapNum, u8 mapGroup, u8 decorCat);
-void sub_8092FF0(s16, s16, s16 *, s16 *);
-u8 FieldObjectDirectionToImageAnimId(u8);
-void sub_80930E0(s16 *, s16 *, s16, s16);
-void FieldObjectClearAnim(struct MapObject *);
-void FieldObjectClearAnimIfSpecialAnimActive(struct MapObject *);
-void SpawnFieldObjectsInView(s16, s16);
-u8 sprite_new(u8, u8, s16, s16, u8, u8);
-u8 AddPseudoFieldObject(u16, void (*)(struct Sprite *), s16, s16, u8);
-u8 show_sprite(u8, u8, u8);
-u8 SpawnSpecialFieldObjectParametrized(u8, u8, u8, s16, s16, u8);
-u8 SpawnSpecialFieldObject(struct MapObjectTemplate *);
-void sub_8093038(s16, s16, s16 *, s16 *);
-void CameraObjectReset1(void);
-void FieldObjectSetGraphicsId(struct MapObject *, u8);
-void FieldObjectTurn(struct MapObject *, u8);
-void FieldObjectTurnByLocalIdAndMap(u8, u8, u8, u8);
-const struct MapObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8);
-void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8);
-void gpu_pal_allocator_reset__manage_upper_four(void);
-void sub_808E82C(u8, u8, u8, s16, s16);
-void sub_808E7E4(u8, u8, u8);
-void sub_808E78C(u8, u8, u8, u8);
-void sub_808E75C(s16, s16);
-void FieldObjectGetLocalIdAndMap(struct MapObject *mapObject, void *localId, void *mapNum, void *mapGroup);
-void npc_coords_shift(struct MapObject *, s16, s16);
-void sub_808EB08(struct MapObject *, s16, s16);
-void sub_808F254(u8, u8, u8);
-void FieldObjectStep(struct MapObject *, struct Sprite *, bool8(struct MapObject *, struct Sprite *));
-u8 FieldObjectFaceOppositeDirection(struct MapObject *, u8);
-u8 GetOppositeDirection(u8);
-u8 GetStepInPlaceDelay4AnimId(u32);
-u8 GetStepInPlaceDelay8AnimId(u32);
-u8 GetStepInPlaceDelay16AnimId(u32);
-u8 GetStepInPlaceDelay32AnimId(u32);
-u8 npc_block_way(struct MapObject *, s16, s16, u32);
-void MoveCoords(u8, s16 *, s16 *);
-bool8 FieldObjectIsSpecialAnimActive(struct MapObject *);
-u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *);
-u8 GetFieldObjectIdByXYZ(u16 x, u16 y, u8 z);
-void npc_set_running_behaviour_etc(struct MapObject *mapObject, u8 animPattern);
-u8 npc_running_behaviour_by_direction(u8 direction);
-const u8 *GetFieldObjectScriptPointerByFieldObjectId(u8 mapObjectId);
-u8 sub_8092C8C(struct MapObject *mapObject, s16 x, s16 y, u8 direction);
-u8 GetFaceDirectionAnimId(u32);
-u8 GetGoSpeed0AnimId(u32);
-u8 sub_80934BC(u32);
-bool8 FieldObjectSetSpecialAnim(struct MapObject *mapObject, u8 specialAnimId);
-bool8 FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(struct MapObject *mapObject);
-u8 FieldObjectCheckIfSpecialAnimFinishedOrInactive(struct MapObject *mapObject);
-void sub_808F23C(const struct MapObject *mapObject, u8 movementType);
-void sub_808F208(const struct MapObject *mapObject);
-void npc_coords_shift_still(struct MapObject *pObject);
-void FieldObjectMoveDestCoords(struct MapObject *pObject, u32 unk_19, s16 *pInt, s16 *pInt1);
-
-// Exported data declarations
-
-extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[];
-
-#endif //GUARD_FIELD_MAP_OBJ_H
diff --git a/include/field_map_obj_helpers.h b/include/field_map_obj_helpers.h
deleted file mode 100644
index ae96b67d8..000000000
--- a/include/field_map_obj_helpers.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef GUARD_FIELD_MAP_OBJ_HELPERS_H
-#define GUARD_FIELD_MAP_OBJ_HELPERS_H
-
-// Exported type declarations
-
-// Exported RAM declarations
-extern u8 *gUnknown_020375B8;
-
-// Exported ROM declarations
-void sub_8097AC8(struct Sprite *);
-void npc_sync_anim_pause_bits(struct MapObject *);
-void oamt_npc_ministep_reset(struct Sprite *, u8, u8);
-u8 sub_8097F78(struct MapObject *);
-bool8 obj_npc_ministep(struct Sprite *sprite);
-bool8 sub_80976EC(struct Sprite *sprite);
-void sub_80976DC(struct Sprite *, u8);
-void sub_809783C(struct Sprite *, u8, u8, u8);
-void DoShadowFieldEffect(struct MapObject *);
-u8 sub_809785C(struct Sprite *);
-u8 sub_80978E4(struct Sprite *);
-void obj_anim_image_set_and_seek(struct Sprite *, u8, u8);
-bool8 sub_80979BC(struct Sprite *);
-void sub_8097750(struct Sprite *);
-bool8 sub_8097758(struct Sprite *);
-void sub_8097FA4(struct MapObject *);
-void sub_8098044(u8);
-void UnfreezeMapObjects(void);
-void FreezeMapObjectsExceptOne(u8 mapObjectId);
-void sub_8097B78(u8, u8);
-void FreezeMapObjects(void);
-
-#endif //GUARD_FIELD_MAP_OBJ_HELPERS_H
diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h
index b31da4062..8cd6c275b 100644
--- a/include/field_player_avatar.h
+++ b/include/field_player_avatar.h
@@ -8,9 +8,9 @@ u8 GetPlayerAvatarGenderByGraphicsId(u8);
bool8 TestPlayerAvatarFlags(u8);
u8 GetPlayerAvatarObjectId(void);
void PlayerGetDestCoords(s16 *, s16 *);
-u8 player_get_direction_lower_nybble(void);
-u8 player_get_direction_upper_nybble(void);
-u8 player_get_x22(void);
+u8 GetPlayerFacingDirection(void);
+u8 GetPlayerMovementDirection(void);
+u8 PlayerGetCopyableMovement(void);
void PlayerGoSpeed1(u8);
void PlayerGoSpeed2(u8);
void PlayerGoSpeed3(u8);
@@ -29,7 +29,7 @@ void PlayerAcroTurnJump(u8 a);
void PlayerSetAnimId(u8 a, u8 b);
bool8 IsPlayerCollidingWithFarawayIslandMew(u8 direction);
void PlayerOnBikeCollideWithFarawayIslandMew(u8 direction);
-u8 CheckForFieldObjectCollision(struct MapObject *a, s16 b, s16 c, u8 d, u8 e);
+u8 CheckForEventObjectCollision(struct EventObject *a, s16 b, s16 c, u8 d, u8 e);
u8 PlayerGetZCoord(void);
void SetPlayerAvatarTransitionFlags(u16 a);
void sub_808BCE8(void);
@@ -39,5 +39,10 @@ void sub_808BCF4(void);
void sub_808D074(u8);
void GetXYCoordsOneStepInFrontOfPlayer(s16 *xPtr, s16 *yPtr);
u8 GetRivalAvatarGraphicsIdByStateIdAndGender(u8, u8);
+void sub_808C114(void);
+u8 GetPlayerAvatarGraphicsIdByCurrentState(void);
+void SetPlayerAvatarStateMask(u8 a);
+u8 GetPlayerAvatarGraphicsIdByStateId(u8 a);
+u8 GetJumpSpecialMovementAction(u32);
#endif // GUARD_FIELD_PLAYER_AVATAR_H
diff --git a/include/field_region_map.h b/include/field_region_map.h
new file mode 100644
index 000000000..d50f1265c
--- /dev/null
+++ b/include/field_region_map.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_FIELD_REGION_MAP_H
+#define GUARD_FIELD_REGION_MAP_H
+
+void FieldInitRegionMap(MainCallback callback);
+
+#endif // GUARD_FIELD_REGION_MAP_H
diff --git a/include/field_screen.h b/include/field_screen.h
index 02e0a0a91..bf1502405 100644
--- a/include/field_screen.h
+++ b/include/field_screen.h
@@ -7,10 +7,14 @@
// Exported ROM declarations
void pal_fill_black(void);
-bool8 sub_80ABDFC(void);
+bool8 IsWeatherNotFadingIn(void);
void sub_80AF168(void);
+void sub_80AF2B4(u8 taskId);
void UpdateWeatherPerDay(u16 days);
void sub_80AC3D0(void);
void sub_80AC3E4(void);
+void PreservePaletteInWeather(u8);
+void sub_80AF128(void);
+void sub_80AB104(u8);
#endif //GUARD_FIELD_SCREEN_H
diff --git a/include/field_special_scene.h b/include/field_special_scene.h
new file mode 100644
index 000000000..240e9ecb6
--- /dev/null
+++ b/include/field_special_scene.h
@@ -0,0 +1,14 @@
+#ifndef GUARD_FIELD_SPECIAL_SCENE_H
+#define GUARD_FIELD_SPECIAL_SCENE_H
+
+s16 GetTruckCameraBobbingY(int a1);
+s16 GetTruckBoxMovement(int a1);
+void Task_Truck1(u8 taskId);
+void Task_Truck2(u8 taskId);
+void Task_Truck3(u8 taskId);
+void Task_HandleTruckSequence(u8 taskId);
+void ExecuteTruckSequence(void);
+void EndTruckSequence(u8);
+void sub_80C791C(void);
+
+#endif // GUARD_FIELD_SPECIAL_SCENE_H
diff --git a/include/field_tasks.h b/include/field_tasks.h
index 2a2a772d8..400ad054d 100644
--- a/include/field_tasks.h
+++ b/include/field_tasks.h
@@ -1,6 +1,9 @@
#ifndef GUARD_FIELD_TASKS_H
#define GUARD_FIELD_TASKS_H
-void ActivatePerStepCallback(u8);
+void SetUpFieldTasks(void);
+void ActivatePerStepCallback(u8 callbackId);
+void ResetFieldTasksArgs(void);
+void SetSootopolisGymCrackedIceMetatiles(void);
#endif // GUARD_FIELD_TASKS_H
diff --git a/include/fieldmap.h b/include/fieldmap.h
index 23654f536..05ffb2edc 100644
--- a/include/fieldmap.h
+++ b/include/fieldmap.h
@@ -1,20 +1,36 @@
#ifndef GUARD_FIELDMAP_H
#define GUARD_FIELDMAP_H
-extern struct MapCoords {
- int width;
- int height;
-} gUnknown_03005DC0;
+extern struct BackupMapLayout gUnknown_03005DC0;
u32 MapGridGetMetatileIdAt(int, int);
u32 MapGridGetMetatileBehaviorAt(int, int);
void MapGridSetMetatileIdAt(int, int, u16);
void MapGridSetMetatileEntryAt(int, int, u16);
void GetCameraCoords(u16*, u16*);
-bool8 MapGridIsImpassableAt(s16, s16);
-s32 GetMapBorderIdAt(s16, s16);
-bool32 CanCameraMoveInDirection(u8);
+bool8 MapGridIsImpassableAt(int, int);
+int GetMapBorderIdAt(int x, int y);
+int CanCameraMoveInDirection(int direction);
u16 GetBehaviorByMetatileId(u16 metatileId);
void sav1_camera_get_focus_coords(u16 *x, u16 *y);
+u8 MapGridGetMetatileLayerTypeAt(s32 x, s32 y);
+u8 MapGridGetZCoordAt(int x, int y);
+u8 CameraMove(s32 deltaX, s32 deltaY);
+void mapheader_copy_mapdata_with_padding(struct MapHeader *mapHeader);
+void map_copy_with_padding(u16 *map, u16 width, u16 height);
+void mapheader_copy_mapdata_of_adjacent_maps(struct MapHeader *);
+void fillSouthConnection(struct MapHeader const *, struct MapHeader const *, s32);
+void fillNorthConnection(struct MapHeader const *, struct MapHeader const *, s32);
+void fillWestConnection(struct MapHeader const *, struct MapHeader const *, s32);
+void fillEastConnection(struct MapHeader const *, struct MapHeader const *, s32);
+void mapdata_from_sav2(void);
+bool8 sub_8088BF0(u16*, u16, u8);
+struct MapConnection *sub_8088950(u8 direction, int x, int y);
+bool8 sub_80889A8(u8 direction, int x, int y, struct MapConnection *connection);
+bool8 sub_8088A0C(int x, int src_width, int dest_width, int offset);
+
+void SpriteCB_PokeballGlow(struct Sprite *);
+void SpriteCB_PokecenterMonitor(struct Sprite *);
+void SpriteCB_HallOfFameMonitor(struct Sprite *);
#endif //GUARD_FIELDMAP_H
diff --git a/include/fldeff_80F9BCC.h b/include/fldeff_80F9BCC.h
index d57665c68..ba775cd6d 100644
--- a/include/fldeff_80F9BCC.h
+++ b/include/fldeff_80F9BCC.h
@@ -9,6 +9,9 @@
void sub_80FA5E4(s16 id, s16 x, s16 y);
void sub_80FA794(s16 x, s16 y);
+void CreateRecordMixingSprite(void);
+void DestroyRecordMixingSprite(void);
void overworld_poison_effect(void);
+bool8 sub_80FADE4(u16, u8);
#endif //GUARD_FLDEFF_80F9BCC_H
diff --git a/include/fldeff_cut.h b/include/fldeff_cut.h
new file mode 100644
index 000000000..c89d3b6ca
--- /dev/null
+++ b/include/fldeff_cut.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_FLDEFF_CUT_H
+#define GUARD_FLDEFF_CUT_H
+
+extern const struct SpritePalette gFieldEffectObjectPaletteInfo6;
+
+bool8 SetUpFieldMove_Cut(void);
+bool8 FldEff_UseCutOnGrass(void);
+bool8 FldEff_UseCutOnTree(void);
+bool8 FldEff_CutGrass(void);
+void sub_80D423C(s16 x, s16 y);
+void sub_80D42B8(s16 x, s16 y);
+
+#endif // GUARD_FLDEFF_CUT_H
diff --git a/include/fldeff_groundshake.h b/include/fldeff_groundshake.h
new file mode 100644
index 000000000..c1629f9bd
--- /dev/null
+++ b/include/fldeff_groundshake.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_FLDEFF_GROUNDSHAKE_H
+#define GUARD_FLDEFF_GROUNDSHAKE_H
+
+void sub_81BE72C(void);
+
+#endif // GUARD_FLDEFF_GROUNDSHAKE_H
diff --git a/include/gba/io_reg.h b/include/gba/io_reg.h
index 03fe505b5..01d8c311e 100644
--- a/include/gba/io_reg.h
+++ b/include/gba/io_reg.h
@@ -545,6 +545,35 @@
#define BGCNT_AFF512x512 0x8000
#define BGCNT_AFF1024x1024 0xC000
+// WININ/OUT
+#define WININ_WIN0_BG0 (1 << 0)
+#define WININ_WIN0_BG1 (1 << 1)
+#define WININ_WIN0_BG2 (1 << 2)
+#define WININ_WIN0_BG3 (1 << 3)
+#define WININ_WIN0_OBJ (1 << 4)
+#define WININ_WIN0_CLR (1 << 5)
+#define WININ_WIN1_BG0 (1 << 8)
+#define WININ_WIN1_BG1 (1 << 9)
+#define WININ_WIN1_BG2 (1 << 10)
+#define WININ_WIN1_BG3 (1 << 11)
+#define WININ_WIN1_OBJ (1 << 12)
+#define WININ_WIN1_CLR (1 << 13)
+
+#define WINOUT_WIN01_BG0 (1 << 0)
+#define WINOUT_WIN01_BG1 (1 << 1)
+#define WINOUT_WIN01_BG2 (1 << 2)
+#define WINOUT_WIN01_BG3 (1 << 3)
+#define WINOUT_WIN01_OBJ (1 << 4)
+#define WINOUT_WIN01_CLR (1 << 5)
+#define WINOUT_WINOBJ_BG0 (1 << 8)
+#define WINOUT_WINOBJ_BG1 (1 << 9)
+#define WINOUT_WINOBJ_BG2 (1 << 10)
+#define WINOUT_WINOBJ_BG3 (1 << 11)
+#define WINOUT_WINOBJ_OBJ (1 << 12)
+#define WINOUT_WINOBJ_CLR (1 << 13)
+
+#define WINHV_COORDS(m, n) (((m) << 8) | (n))
+
// BLDCNT
// Bits 0-5 select layers for the 1st target
#define BLDCNT_TGT1_BG0 (1 << 0)
@@ -553,6 +582,7 @@
#define BLDCNT_TGT1_BG3 (1 << 3)
#define BLDCNT_TGT1_OBJ (1 << 4)
#define BLDCNT_TGT1_BD (1 << 5)
+#define BLDCNT_TGT1_ALL (BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD)
// 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)
@@ -565,6 +595,7 @@
#define BLDCNT_TGT2_BG3 (1 << 11)
#define BLDCNT_TGT2_OBJ (1 << 12)
#define BLDCNT_TGT2_BD (1 << 13)
+#define BLDCNT_TGT2_ALL (BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD)
// BLDALPHA
#define BLDALPHA_BLEND(target1, target2) (((target2) << 8) | (target1))
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h
index 94127c554..4bec8e0c7 100644
--- a/include/global.fieldmap.h
+++ b/include/global.fieldmap.h
@@ -1,7 +1,7 @@
#ifndef GUARD_GLOBAL_FIELDMAP_H
#define GUARD_GLOBAL_FIELDMAP_H
-#define NUM_FIELD_OBJECTS 16
+#define NUM_EVENT_OBJECTS 16
enum
{
@@ -13,35 +13,6 @@ enum
CONNECTION_EMERGE
};
-// 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 battle scenes
-enum
-{
- MAP_BATTLE_SCENE_NORMAL, // 0
- MAP_BATTLE_SCENE_GYM, // 1
- MAP_BATTLE_SCENE_MAGMA, // 2
- MAP_BATTLE_SCENE_AQUA, // 3
- MAP_BATTLE_SCENE_SIDNEY, // 4
- MAP_BATTLE_SCENE_PHOEBE, // 5
- MAP_BATTLE_SCENE_GLACIA, // 6
- MAP_BATTLE_SCENE_DRAKE, // 7
- MAP_BATTLE_SCENE_FRONTIER, // 8
-};
-
typedef void (*TilesetCB)(void);
struct Tileset
@@ -55,7 +26,7 @@ struct Tileset
/*0x14*/ TilesetCB callback;
};
-struct MapData
+struct MapLayout
{
/*0x00*/ s32 width;
/*0x04*/ s32 height;
@@ -65,14 +36,14 @@ struct MapData
/*0x14*/ struct Tileset *secondaryTileset;
};
-struct BackupMapData
+struct BackupMapLayout
{
s32 width;
s32 height;
u16 *map;
};
-struct MapObjectTemplate
+struct EventObjectTemplate
{
/*0x00*/ u8 localId;
/*0x01*/ u8 graphicsId;
@@ -81,14 +52,12 @@ struct MapObjectTemplate
/*0x06*/ s16 y;
/*0x08*/ u8 elevation;
/*0x09*/ u8 movementType;
- /*0x0A*/ u8 unkA_0:4;
- u8 unkA_4:4;
- ///*0x0B*/ u8 fillerB[1];
- /*0x0C*/ u16 unkC;
- /*0x0E*/ u16 unkE;
+ /*0x0A*/ u8 movementRangeX:4;
+ u8 movementRangeY:4;
+ /*0x0C*/ u16 trainerType;
+ /*0x0E*/ u16 trainerRange_berryTreeId;
/*0x10*/ const u8 *script;
/*0x14*/ u16 flagId;
- /*0x16*/ u8 filler_16[2];
}; /*size = 0x18*/
struct WarpEvent
@@ -135,12 +104,12 @@ struct BgEvent
struct MapEvents
{
- u8 mapObjectCount;
+ u8 eventObjectCount;
u8 warpCount;
u8 coordEventCount;
u8 bgEventCount;
- struct MapObjectTemplate *mapObjects;
+ struct EventObjectTemplate *eventObjects;
struct WarpEvent *warps;
struct CoordEvent *coordEvents;
struct BgEvent *bgEvents;
@@ -162,12 +131,12 @@ struct MapConnections
struct MapHeader
{
- /* 0x00 */ const struct MapData *mapData;
+ /* 0x00 */ const struct MapLayout *mapLayout;
/* 0x04 */ const struct MapEvents *events;
/* 0x08 */ const u8 *mapScripts;
/* 0x0C */ const struct MapConnections *connections;
/* 0x10 */ u16 music;
- /* 0x12 */ u16 mapDataId;
+ /* 0x12 */ u16 mapLayoutId;
/* 0x14 */ u8 regionMapSectionId;
/* 0x15 */ u8 cave;
/* 0x16 */ u8 weather;
@@ -178,54 +147,50 @@ struct MapHeader
/* 0x1B */ u8 battleType;
};
-struct MapObject
+struct EventObject
{
/*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;
+ u32 singleMovementActive:1;
+ u32 triggerGroundEffectsOnMove:1;
+ u32 triggerGroundEffectsOnStop:1;
+ u32 disableCoveringGroundEffects:1;
+ u32 landingJump:1;
+ u32 heldMovementActive:1;
+ u32 heldMovementFinished:1;
+ /*0x01*/ u32 frozen:1;
+ u32 facingDirectionLocked:1;
+ u32 disableAnim:1;
+ u32 enableAnim:1;
+ u32 inanimate:1;
+ u32 invisible:1;
+ u32 offScreen:1;
+ u32 trackedByCamera:1;
+ /*0x02*/ u32 isPlayer:1;
+ u32 hasReflection:1;
+ u32 inShortGrass:1;
+ u32 inShallowFlowingWater:1;
+ u32 inSandPile:1;
+ u32 inHotSprings:1;
+ u32 hasShadow:1;
+ u32 spriteAnimPausedBackup:1;
+ /*0x03*/ u32 spriteAffineAnimPausedBackup:1;
+ u32 disableJumpLandingGroundEffect:1;
+ u32 fixedPriority:1;
+ u32 unk3_3:1;
/*0x04*/ u8 spriteId;
/*0x05*/ u8 graphicsId;
- /*0x06*/ u8 animPattern;
+ /*0x06*/ u8 movementType;
/*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; // current direction?
- /*0x18*/ u8 placeholder18:4;
+ /*0x0B*/ u8 currentElevation:4;
+ u8 previousElevation:4;
+ /*0x0C*/ struct Coords16 initialCoords;
+ /*0x10*/ struct Coords16 currentCoords;
+ /*0x14*/ struct Coords16 previousCoords;
+ /*0x18*/ u8 facingDirection:4; // current direction?
+ /*0x18*/ u8 movementDirection:4;
/*0x19*/ union __attribute__((packed)) {
u8 as_byte;
struct __attribute__((packed)) {
@@ -233,19 +198,19 @@ struct MapObject
u8 y:4;
} __attribute__((aligned (1))) as_nybbles;
} __attribute__((aligned (1))) range;
- /*0x1A*/ u8 mapobj_unk_1A;
- /*0x1B*/ u8 mapobj_unk_1B;
- /*0x1C*/ u8 mapobj_unk_1C;
+ /*0x1A*/ u8 fieldEffectSpriteId;
+ /*0x1B*/ u8 warpArrowSpriteId;
+ /*0x1C*/ u8 movementActionId;
/*0x1D*/ u8 trainerRange_berryTreeId;
- /*0x1E*/ u8 mapobj_unk_1E;
- /*0x1F*/ u8 mapobj_unk_1F;
- /*0x20*/ u8 mapobj_unk_20;
- /*0x21*/ u8 mapobj_unk_21;
- /*0x22*/ u8 animId;
+ /*0x1E*/ u8 currentMetatileBehavior;
+ /*0x1F*/ u8 previousMetatileBehavior;
+ /*0x20*/ u8 previousMovementDirection;
+ /*0x21*/ u8 directionSequenceIndex;
+ /*0x22*/ u8 playerCopyableMovement;
/*size = 0x24*/
};
-struct MapObjectGraphicsInfo
+struct EventObjectGraphicsInfo
{
/*0x00*/ u16 tileTag;
/*0x02*/ u16 paletteTag1;
@@ -292,6 +257,10 @@ enum
DIR_NORTH,
DIR_WEST,
DIR_EAST,
+ DIR_SOUTHWEST,
+ DIR_SOUTHEAST,
+ DIR_NORTHWEST,
+ DIR_NORTHEAST,
};
enum
@@ -322,7 +291,7 @@ struct PlayerAvatar
/*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;
+ /*0x05*/ u8 eventObjectId;
/*0x06*/ bool8 preventStep;
/*0x07*/ u8 gender;
/*0x08*/ u8 acroBikeState; // 00 is normal, 01 is turning, 02 is standing wheelie, 03 is hopping wheelie
@@ -344,8 +313,8 @@ struct Camera
s32 y;
};
-extern struct MapObject gMapObjects[NUM_FIELD_OBJECTS];
-extern u8 gSelectedMapObject;
+extern struct EventObject gEventObjects[NUM_EVENT_OBJECTS];
+extern u8 gSelectedEventObject;
extern struct MapHeader gMapHeader;
extern struct PlayerAvatar gPlayerAvatar;
extern struct Camera gCamera;
diff --git a/include/global.h b/include/global.h
index f88203c90..2015d47cc 100644
--- a/include/global.h
+++ b/include/global.h
@@ -11,10 +11,10 @@
// to help in decompiling
#define asm_comment(x) asm volatile("@ -- " x " -- ")
#define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided")
-#define ASM_DIRECT __attribute__((naked))
+#define NAKED __attribute__((naked))
// IDE support
-#if defined (__APPLE__) || defined (__CYGWIN__)
+#if defined (__APPLE__) || defined (__CYGWIN__) || defined (_MSC_VER)
#define _(x) x
#define __(x) x
#define INCBIN_U8 {0}
@@ -23,7 +23,7 @@
#define INCBIN_S8 {0}
#define INCBIN_S16 {0}
#define INCBIN_S32 {0}
-#endif // __APPLE__
+#endif // IDE support
#define ARRAY_COUNT(array) (size_t)(sizeof(array) / sizeof((array)[0]))
@@ -35,14 +35,21 @@
// Converts a number to Q4.12 fixed-point format
#define Q_4_12(n) ((s16)((n) * 4096))
+// Converts a number to Q24.8 fixed-point format
+#define Q_24_8(n) ((s32)((n) * 256))
+
// Converts a Q8.8 fixed-point format number to a regular integer
#define Q_8_8_TO_INT(n) ((int)((n) / 256))
// Converts a Q4.12 fixed-point format number to a regular integer
#define Q_4_12_TO_INT(n) ((int)((n) / 4096))
+// Converts a Q24.8 fixed-point format number to a regular integer
+#define Q_24_8_TO_INT(n) ((int)((n) >> 8))
+
#define PARTY_SIZE 6
+#define POKEMON_SLOTS_NUMBER 412
#define POKEMON_NAME_LENGTH 10
#define OT_NAME_LENGTH 7
@@ -97,6 +104,33 @@ enum LanguageId
#define GAME_VERSION (VERSION_EMERALD)
#define GAME_LANGUAGE (LANGUAGE_ENGLISH)
+// capacities of various saveblock objects
+#define DAYCARE_MON_COUNT 2
+#define POKEBLOCKS_COUNT 40
+#define EVENT_OBJECTS_COUNT 16
+#define BERRY_TREES_COUNT 128
+#define FLAGS_COUNT 300
+#define VARS_COUNT 256
+#define MAIL_COUNT 16
+#define SECRET_BASES_COUNT 20
+#define TV_SHOWS_COUNT 25
+#define POKE_NEWS_COUNT 16
+#define PC_ITEMS_COUNT 50
+#define BAG_ITEMS_COUNT 30
+#define BAG_KEYITEMS_COUNT 30
+#define BAG_POKEBALLS_COUNT 16
+#define BAG_TMHM_COUNT 64
+#define BAG_BERRIES_COUNT 46
+
+#define PYRAMID_BAG_ITEMS_COUNT 10
+
+// string lengths
+#define ITEM_NAME_LENGTH 14
+#define POKEMON_NAME_LENGTH 10
+#define OT_NAME_LENGTH 7
+#define PLAYER_NAME_LENGTH 8
+#define MAIL_WORDS_COUNT 9
+
enum
{
MALE,
@@ -129,13 +163,14 @@ enum
OPTIONS_BATTLE_STYLE_SET
};
-enum
-{
- BAG_ITEMS = 1,
- BAG_POKEBALLS,
- BAG_TMsHMs,
- BAG_BERRIES,
- BAG_KEYITEMS
+struct Coords8 {
+ s8 x;
+ s8 y;
+};
+
+struct UCoords8 {
+ u8 x;
+ u8 y;
};
struct Coords16
@@ -170,6 +205,8 @@ struct Time
/*0x04*/ s8 seconds;
};
+#define DEX_FLAGS_NO ((POKEMON_SLOTS_NUMBER / 8) + ((POKEMON_SLOTS_NUMBER % 8) ? 1 : 0))
+
struct Pokedex
{
/*0x00*/ u8 order;
@@ -179,8 +216,8 @@ 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 PokemonJumpResults // possibly used in the game itself?
@@ -209,11 +246,11 @@ struct BerryPickingResults // possibly used in the game itself? Size may be wron
u8 field_F;
};
+// two arrays for lvl50 and open level
struct PyramidBag
{
- u16 items_Lvl50[10];
- u16 items_OpenLvl[10];
- u8 quantity[10];
+ u16 itemId[2][PYRAMID_BAG_ITEMS_COUNT];
+ u8 quantity[2][PYRAMID_BAG_ITEMS_COUNT];
};
struct BerryCrush
@@ -223,8 +260,6 @@ struct BerryCrush
u32 unk;
};
-#define PLAYER_NAME_LENGTH 8
-
struct UnknownSaveBlock2Struct
{
u8 field_0;
@@ -245,6 +280,138 @@ struct UnknownSaveBlock2Struct
u8 field_EB;
}; // sizeof = 0xEC
+struct UnkRecordMixingStruct
+{
+ u8 field_0[0x34];
+ u8 playerId[4];
+ u8 field_38[10];
+};
+
+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;
+};
+
+struct EmeraldBattleTowerRecord
+{
+ /*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*/ u8 filler_1c[0x18];
+ /*0x34*/ struct UnknownPokemonStruct party[4];
+ /*0xE4*/ u8 language;
+ /*0xE8*/ u32 checksum;
+};
+
+struct BattleFrontier
+{
+ /*0x64C*/ struct EmeraldBattleTowerRecord battleTower;
+ /*0x738*/ struct UnknownSaveBlock2Struct field_738[5]; // No idea here, it's probably wrong, no clue.
+ /*0xBD4*/ u16 field_BD4;
+ /*0xBD6*/ u16 field_BD6;
+ /*0xBD8*/ u8 field_BD8[11];
+ /*0xBE3*/ u8 field_BE3[8];
+ /*0xBEB*/ u8 field_BEB;
+ /*0xBEC*/ u8 filler_BEC[16];
+ /*0xBFC*/ u16 ecwords_BFC[6];
+ /*0xC08*/ u16 ecwords_C08[6];
+ /*0xC14*/ u16 ecwords_C14[6];
+ /*0xC20*/ u8 filler_C20[0x88];
+ /*0xCA8*/ u8 field_CA8;
+ /*0xCA9*/ u8 chosenLvl:2; // 0x1, 0x2 -> 0x3
+ /*0xCA9*/ u8 field_CA9_a:1; // 0x4
+ /*0xCA9*/ u8 field_CA9_b:1; // 0x8
+ /*0xCA9*/ u8 field_CA9_c:1; // 0x10
+ /*0xCA9*/ u8 field_CA9_d:1; // 0x20
+ /*0xCA9*/ u8 field_CA9_e:1; // 0x40
+ /*0xCA9*/ u8 field_CA9_f:1; // 0x80
+ /*0xCAA*/ u16 field_CAA[4];
+ /*0xCB2*/ u16 field_CB2;
+ /*0xCB4*/ u16 field_CB4[22];
+ /*0xCE0*/ u16 field_CE0[4][2];
+ /*0xCF0*/ u16 field_CF0[2];
+ /*0xCF4*/ u16 field_CF4[2];
+ /*0xCF8*/ u16 field_CF8[2];
+ /*0xCFC*/ u16 field_CFC[5];
+ /*0xD06*/ u8 field_D06;
+ /*0xD07*/ u8 field_D07;
+ /*0xD08*/ u8 filler_D08;
+ /*0xD09*/ u8 filler_D09;
+ /*0xD0A*/ u8 filler_D0A;
+ /*0xD0B*/ u8 filler_D0B;
+ /*0xD0C*/ u16 field_D0C[2];
+ /*0xD10*/ u8 filler_D10;
+ /*0xD11*/ u8 filler_D11;
+ /*0xD12*/ u8 filler_D12;
+ /*0xD13*/ u8 filler_D13;
+ /*0xD14*/ u16 field_D14[2];
+ /*0xD18*/ u8 field_D18[0xB0];
+ /*0xDC8*/ u16 field_DC8[2];
+ /*0xDCC*/ u8 filler_DCC[4];
+ /*0xDD0*/ u16 field_DD0[2];
+ /*0xDD4*/ u16 field_DD4[2];
+ /*0xDD8*/ u16 field_DD8;
+ /*0xDDA*/ u16 field_DDA[2];
+ /*0xDDE*/ u16 field_DDE[2];
+ /*0xDE2*/ u16 field_DE2[2];
+ /*0xDE6*/ u16 field_DE6;
+ /*0xDE8*/ u16 field_DE8;
+ /*0xDEA*/ u16 field_DEA[2];
+ /*0xDEE*/ u16 field_DEE;
+ /*0xDF0*/ u16 field_DF0;
+ /*0xDF2*/ u16 field_DF2;
+ /*0xDF4*/ u16 field_DF4;
+ /*0xDF6*/ u16 field_DF6;
+ /*0xDF8*/ u16 field_DF8;
+ /*0xDFA*/ u16 field_DFA;
+ /*0xDFC*/ u16 field_DFC;
+ /*0xDFE*/ u16 field_DFE;
+ /*0xE00*/ u16 field_E00;
+ /*0xE02*/ u16 field_E02;
+ /*0xE04*/ u16 field_E04[2];
+ /*0xE08*/ u16 field_E08[9];
+ /*0xE1A*/ u16 field_E1A[2];
+ /*0xE1E*/ u16 field_E1E[7];
+ /*0xE2C*/ struct PyramidBag pyramidBag;
+ /*0xE58*/ u16 field_E58;
+ /*0xE6A*/ u16 field_E6A;
+ /*0xE6C*/ u16 field_E6C;
+ /*0xE6E*/ u16 field_E6E;
+ /*0xE70*/ u8 field_E70[72];
+ /*0xEB8*/ u16 frontierBattlePoints;
+ /*0xEBA*/ u8 field_EBA[39];
+ /*0xEE1*/ u8 field_EE1[2][PLAYER_NAME_LENGTH];
+ /*0xEF1*/ u8 field_EF1[2][4];
+ /*0xEF9*/ u8 field_EF9[51];
+};
+
struct SaveBlock2
{
/*0x00*/ u8 playerName[PLAYER_NAME_LENGTH];
@@ -270,50 +437,19 @@ struct SaveBlock2
/*0xAC*/ u32 encryptionKey;
// TODO: fix and verify labels
- /*0xB0*/ u8 field_B0[316];
+ /*0xB0*/ u8 field_B0;
+ /*0xB1*/ u8 field_B1;
+ /*0xB2*/ u8 field_B2_0:3;
+ /*0xB2*/ u8 field_B2_1:2;
+ /*0xB3*/ u8 field_B3[0x29];
+ /*0xDC*/ struct UnkRecordMixingStruct field_DC[4];
/*0x1EC*/ struct BerryCrush berryCrush;
/*0x1FC*/ struct PokemonJumpResults pokeJump;
/*0x20C*/ struct BerryPickingResults berryPick;
/*0x21C*/ u8 field_21C[1032];
/*0x624*/ u16 contestLinkResults[20]; // 4 positions for 5 categories, possibly a struct or a 2d array
-
- // All below could be a one giant struct
-
- /*0x64C*/ u8 field_64C[236];
- /*0x738*/ struct UnknownSaveBlock2Struct field_738[5]; // No idea here, it's probably wrong, no clue.
- /*0xBD4*/ u16 field_BD4;
- /*0xBD6*/ u16 field_BD6;
- /*0xBD8*/ u8 field_BD8[11];
- /*0xBE3*/ u8 filler_BE3[8];
- /*0xBEB*/ u8 field_BEB;
- /*0xBE3*/ u8 filler_BEC[189];
- /*0xCA9*/ u8 frontierChosenLvl : 2; // 0x1, 0x2 -> 0x3
- /*0xCA9*/ u8 field_CA9_a : 1; // 0x4
- /*0xCA9*/ u8 field_CA9_b : 1; // 0x8
- /*0xCA9*/ u8 field_CA9_c : 1; // 0x10
- /*0xCA9*/ u8 field_CA9_d : 1; // 0x20
- /*0xCA9*/ u8 field_CA9_e : 1; // 0x40
- /*0xCA9*/ u8 field_CA9_f : 1; // 0x80
- /*0xCAA*/ u16 field_CAA[4];
- /*0xCB2*/ u16 battlePyramidWildHeaderId;
- /*0xCB4*/ u16 field_CB4[41];
- /*0xD06*/ u8 field_D06;
- /*0xD07*/ u8 field_D07;
- /*0xD08*/ u8 filler_D08[0x112];
- /*0xE1A*/ u16 battlePyramidFloor; // possibly?
- /*0xE1C*/ u8 field_E1C[16];
- /*0xE2C*/ struct PyramidBag pyramidBag;
- /*0x???*/ u8 field_notSure[13];
- /*0xE6E*/ u16 battleTentWinStreak;
- /*0xE70*/ u8 field_E70[72];
- /*0xEB8*/ u16 frontierBattlePoints;
- /*0xEBA*/ u8 field_EBA[39];
- /*0xEE1*/ u8 field_EE1;
- /*0xEE2*/ u8 field_EE2[7];
- /*0xEE9*/ u8 field_EE9;
- /*0xEEA*/ u8 field_EEA[66];
- // sizeof=0xF2C
-};
+ /*0x64C*/ struct BattleFrontier frontier;
+}; // sizeof=0xF2C
extern struct SaveBlock2 *gSaveBlock2Ptr;
@@ -417,8 +553,6 @@ struct EasyChatPair
u16 words[2];
}; /*size = 0x8*/
-#define MAIL_WORDS_COUNT 9
-
struct MailStruct
{
/*0x00*/ u16 words[MAIL_WORDS_COUNT];
@@ -428,41 +562,68 @@ struct MailStruct
/*0x20*/ u16 itemId;
};
-struct UnkMauvilleOldManStruct
+struct MauvilleManCommon
{
- 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;
+ u8 id;
+};
+
+struct MauvilleManBard
+{
+ /*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;
+ /*0x2A*/ u8 language;
}; /*size = 0x2C*/
-struct UnkMauvilleOldManStruct2
+struct MauvilleManStoryteller
{
- u8 filler0;
- u8 unk1;
- u8 unk2;
- u16 mauvilleOldMan_ecArray[10];
- u8 mauvilleOldMan_ecArray2[12];
- u8 fillerF[0x2];
+ u8 id;
+ bool8 alreadyRecorded;
+ u8 filler2[2];
+ u8 gameStatIDs[4];
+ u8 trainerNames[4][7];
+ u8 statValues[4][4];
+ u8 language[4];
+};
+
+struct MauvilleManGiddy
+{
+ /*0x00*/ u8 id;
+ /*0x01*/ u8 taleCounter;
+ /*0x02*/ u8 questionNum;
+ /*0x04*/ u16 randomWords[10];
+ /*0x18*/ u8 questionList[8];
+ /*0x20*/ u8 language;
}; /*size = 0x2C*/
+struct MauvilleManHipster
+{
+ u8 id;
+ bool8 alreadySpoken;
+ u8 language;
+};
+
struct MauvilleOldManTrader
{
- u8 unk0;
- u8 unk1[4];
- u8 unk5[4][11];
- u8 unk31;
+ u8 id;
+ u8 decorIds[4];
+ u8 playerNames[4][11];
+ u8 alreadyTraded;
+ u8 language[4];
};
typedef union OldMan
{
- struct UnkMauvilleOldManStruct oldMan1;
- struct UnkMauvilleOldManStruct2 oldMan2;
+ struct MauvilleManCommon common;
+ struct MauvilleManBard bard;
+ struct MauvilleManGiddy giddy;
+ struct MauvilleManHipster hipster;
struct MauvilleOldManTrader trader;
+ struct MauvilleManStoryteller storyteller;
u8 filler[0x40];
} OldMan;
@@ -480,6 +641,8 @@ struct RecordMixing_UnknownStruct
u16 unk74[0x2];
};
+#define LINK_B_RECORDS_COUNT 5
+
struct LinkBattleRecord
{
u8 name[8];
@@ -489,6 +652,12 @@ struct LinkBattleRecord
u16 draws;
};
+struct LinkBattleRecords
+{
+ struct LinkBattleRecord entries[LINK_B_RECORDS_COUNT];
+ u8 languages[LINK_B_RECORDS_COUNT];
+};
+
struct RecordMixingGiftData
{
u8 unk0;
@@ -514,9 +683,9 @@ struct ContestWinner
u8 contestRank;
};
-struct DaycareMiscMon
+struct DayCareMail
{
- struct MailStruct mail;
+ struct MailStruct message;
u8 OT_name[OT_NAME_LENGTH + 1];
u8 monName[POKEMON_NAME_LENGTH + 1];
u8 gameLanguage:4;
@@ -526,12 +695,10 @@ struct DaycareMiscMon
struct DaycareMon
{
struct BoxPokemon mon;
- struct DaycareMiscMon misc;
+ struct DayCareMail mail;
u32 steps;
};
-#define DAYCARE_MON_COUNT 2
-
struct DayCare
{
struct DaycareMon mons[DAYCARE_MON_COUNT];
@@ -539,12 +706,6 @@ struct DayCare
u8 stepCounter;
};
-struct DayCareMail
-{
- /*0x00*/ struct MailStruct message;
- /*0x24*/ u8 names[19];
-};
-
struct RecordMixingDayCareMail
{
struct DayCareMail mail[DAYCARE_MON_COUNT];
@@ -552,13 +713,6 @@ struct RecordMixingDayCareMail
bool16 holdsItem[DAYCARE_MON_COUNT];
};
-#define POKEBLOCKS_COUNT 40
-#define MAP_OBJECTS_COUNT 16
-#define BERRY_TREES_COUNT 128
-#define FLAGS_COUNT 300
-#define VARS_COUNT 256
-#define MAIL_COUNT 16
-
enum
{
LILYCOVE_LADY_QUIZ,
@@ -607,12 +761,13 @@ struct LilycoveLadyContest
/*0x00e*/ u8 language;
};
-typedef union // TODO
+typedef union
{
struct LilycoveLadyQuiz quiz;
struct LilycoveLadyFavour favour;
struct LilycoveLadyContest contest;
u8 id;
+ u8 pad[0x40];
} LilycoveLady;
struct WaldaPhrase
@@ -642,32 +797,32 @@ struct SaveBlock1
/*0x2E*/ u8 weather;
/*0x2F*/ u8 filler_2F;
/*0x30*/ u8 flashLevel;
- /*0x32*/ u16 mapDataId;
+ /*0x32*/ u16 mapLayoutId;
/*0x34*/ u16 mapView[0x100];
/*0x234*/ u8 playerPartyCount;
- /*0x238*/ struct Pokemon playerParty[6];
+ /*0x238*/ struct Pokemon playerParty[PARTY_SIZE];
/*0x490*/ u32 money;
/*0x494*/ u16 coins;
/*0x496*/ u16 registeredItem; // registered for use with SELECT button
- /*0x498*/ struct ItemSlot pcItems[50];
- /*0x560*/ struct ItemSlot bagPocket_Items[30];
- /*0x5D8*/ struct ItemSlot bagPocket_KeyItems[30];
- /*0x650*/ struct ItemSlot bagPocket_PokeBalls[16];
- /*0x690*/ struct ItemSlot bagPocket_TMHM[64];
- /*0x790*/ struct ItemSlot bagPocket_Berries[46];
+ /*0x498*/ struct ItemSlot pcItems[PC_ITEMS_COUNT];
+ /*0x560*/ struct ItemSlot bagPocket_Items[BAG_ITEMS_COUNT];
+ /*0x5D8*/ struct ItemSlot bagPocket_KeyItems[BAG_KEYITEMS_COUNT];
+ /*0x650*/ struct ItemSlot bagPocket_PokeBalls[BAG_POKEBALLS_COUNT];
+ /*0x690*/ struct ItemSlot bagPocket_TMHM[BAG_TMHM_COUNT];
+ /*0x790*/ struct ItemSlot bagPocket_Berries[BAG_BERRIES_COUNT];
/*0x848*/ struct Pokeblock pokeblocks[POKEBLOCKS_COUNT];
- /*0x988*/ u8 seen1[52];
+ /*0x988*/ u8 seen1[DEX_FLAGS_NO];
/*0x9BC*/ u16 berryBlenderRecords[3];
/*0x9C2*/ u8 field_9C2[6];
/*0x9C8*/ u16 trainerRematchStepCounter;
/*0x9CA*/ u8 trainerRematches[100];
- /*0xA30*/ struct MapObject mapObjects[MAP_OBJECTS_COUNT];
- /*0xC70*/ struct MapObjectTemplate mapObjectTemplates[64];
+ /*0xA30*/ struct EventObject eventObjects[EVENT_OBJECTS_COUNT];
+ /*0xC70*/ struct EventObjectTemplate eventObjectTemplates[64];
/*0x1270*/ u8 flags[FLAGS_COUNT];
/*0x139C*/ u16 vars[VARS_COUNT];
/*0x159C*/ u32 gameStats[NUM_GAME_STATS];
/*0x169C*/ struct BerryTree berryTrees[BERRY_TREES_COUNT];
- /*0x1A9C*/ struct SecretBaseRecord secretBases[20];
+ /*0x1A9C*/ struct SecretBaseRecord secretBases[SECRET_BASES_COUNT];
/*0x271C*/ u8 playerRoomDecor[12];
/*0x2728*/ u8 playerRoomDecorPos[12];
/*0x2734*/ u8 decorDesk[10];
@@ -679,8 +834,8 @@ struct SaveBlock1
/*0x????*/ u8 decorDoll[40];
/*0x????*/ u8 decorCushion[10];
/*0x27CA*/ u8 padding_27CA[2];
- /*0x27CC*/ TVShow tvShows[25];
- /*0x2B50*/ PokeNews pokeNews[16];
+ /*0x27CC*/ TVShow tvShows[TV_SHOWS_COUNT];
+ /*0x2B50*/ PokeNews pokeNews[POKE_NEWS_COUNT];
/*0x2B90*/ u16 outbreakPokemonSpecies;
/*0x2B92*/ u8 outbreakLocationMapNum;
/*0x2B93*/ u8 outbreakLocationMapGroup;
@@ -703,18 +858,15 @@ struct SaveBlock1
/*0x2e64*/ struct EasyChatPair easyChatPairs[5]; //Dewford trend [0] and some other stuff
/*0x2e90*/ struct ContestWinner contestWinners[13]; // 0 - 5 used in contest hall, 6 - 7 unused?, 8 - 12 museum
/*0x3030*/ struct DayCare daycare;
- /*0x3150*/ struct LinkBattleRecord linkBattleRecords[5];
- /*0x31A0*/ u8 unk_31A0;
- /*0x31A1*/ u8 filler_31A1[7];
+ /*0x3150*/ struct LinkBattleRecords linkBattleRecords;
/*0x31A8*/ u8 giftRibbons[52];
/*0x31DC*/ struct Roamer roamer;
/*0x31F8*/ struct EnigmaBerry enigmaBerry;
/*0x322C*/ u8 field_322C[1276];
/*0x3728*/ struct RamScript ramScript;
/*0x3B14*/ struct RecordMixingGift recordMixingGift;
- /*0x3B24*/ u8 seen2[52];
+ /*0x3B24*/ u8 seen2[DEX_FLAGS_NO];
/*0x3B58*/ LilycoveLady lilycoveLady;
- /*0x3B88*/ u8 filler_3B88[0x10];
/*0x3B98*/ struct UnkSaveSubstruct_3b98 unk_3B98[20];
/*0x3C88*/ u8 filler_3C88[0xE8];
/*0x3D70*/ struct WaldaPhrase waldaPhrase;
@@ -727,7 +879,7 @@ struct MapPosition
{
s16 x;
s16 y;
- u8 height;
+ s8 height;
};
struct UnkStruct_8054FF8
diff --git a/include/global.tv.h b/include/global.tv.h
index 81f181cf3..805922d5c 100644
--- a/include/global.tv.h
+++ b/include/global.tv.h
@@ -301,7 +301,7 @@ typedef union // size = 0x24
/*0x06*/ u8 nGoldSymbols;
/*0x07*/ u8 location;
/*0x08*/ u16 battlePoints;
- /*0x0a*/ u16 mapDataId;
+ /*0x0a*/ u16 mapLayoutId;
/*0x0c*/ u8 language;
/*0x0d*/ u8 filler_0d[6];
/*0x13*/ u8 playerName[8];
@@ -326,7 +326,7 @@ typedef union // size = 0x24
/*0x02*/ u16 item;
/*0x04*/ u8 location;
/*0x05*/ u8 language;
- /*0x06*/ u16 mapDataId;
+ /*0x06*/ u16 mapLayoutId;
/*0x08*/ u8 filler_08[11];
/*0x13*/ u8 playerName[8];
} treasureInvestigators;
diff --git a/include/graphics.h b/include/graphics.h
index 9afcb75ad..2dc5e99bf 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -2651,8 +2651,27 @@ extern const u8 gBattleTerrainPalette_StadiumGlacia[];
extern const u8 gBattleTerrainPalette_StadiumDrake[];
extern const u8 gBattleTerrainPalette_StadiumWallace[];
+// pokedex
extern const u8 gPokedexMenu2_Gfx[];
-extern const u8 gPokedexText_Pal[];
+extern const u16 gPokedexText_Pal[];
+extern const u8 gPokedexMenu_Gfx[];
+extern const u8 gUnknown_08DC2C5C[];
+extern const u8 gUnknown_08DC2DAC[];
+extern const u8 gUnknown_08DC2A08[];
+extern const u8 gUnknown_08DC2B1C[];
+extern const u16 gPokedexHoennBg_Pal[];
+extern const u16 gPokedexText_Pal[];
+extern const u16 gPokedexNationalBg_Pal[];
+extern const u8 gUnknown_08DC3080[];
+extern const u8 gUnknown_08DC3198[];
+extern const u8 gUnknown_08DC2E6C[];
+extern const u8 gUnknown_08DC2F5C[];
+extern const u8 gUnknown_08DC2FEC[];
+extern const u16 gPokedexCaughtScreenFade_Pal[];
+extern const u8 gPokedexSearchMenu_Gfx[];
+extern const u8 gPokedexSearch2_Tilemap[];
+extern const u8 gPokedexSearch1_Tilemap[];
+extern const u16 gPokedexSearchMenu_Pal[];
// berry tag screen
extern const u8 gUnknown_08D9BB44[];
@@ -2713,6 +2732,501 @@ extern const u8 gRaySceneHushBg_Pal[];
extern const u8 gRaySceneHushBg_Gfx[];
extern const u8 gRaySceneHushRing_Gfx[];
+// Item icons
+extern const u8 gItemIcon_QuestionMark[];
+extern const u8 gItemIconPalette_QuestionMark[];
+// Pokeballs
+extern const u8 gItemIcon_MasterBall[];
+extern const u8 gItemIconPalette_MasterBall[];
+extern const u8 gItemIcon_UltraBall[];
+extern const u8 gItemIconPalette_UltraBall[];
+extern const u8 gItemIcon_GreatBall[];
+extern const u8 gItemIconPalette_GreatBall[];
+extern const u8 gItemIcon_PokeBall[];
+extern const u8 gItemIconPalette_PokeBall[];
+extern const u8 gItemIcon_SafariBall[];
+extern const u8 gItemIconPalette_SafariBall[];
+extern const u8 gItemIcon_NetBall[];
+extern const u8 gItemIconPalette_NetBall[];
+extern const u8 gItemIcon_DiveBall[];
+extern const u8 gItemIconPalette_DiveBall[];
+extern const u8 gItemIcon_NestBall[];
+extern const u8 gItemIconPalette_NestBall[];
+extern const u8 gItemIcon_RepeatBall[];
+extern const u8 gItemIconPalette_RepeatBall[];
+extern const u8 gItemIcon_TimerBall[];
+extern const u8 gItemIcon_LuxuryBall[];
+extern const u8 gItemIconPalette_LuxuryBall[];
+extern const u8 gItemIcon_PremierBall[];
+// Medicine
+extern const u8 gItemIcon_Potion[];
+extern const u8 gItemIconPalette_Potion[];
+extern const u8 gItemIcon_Antidote[];
+extern const u8 gItemIconPalette_Antidote[];
+extern const u8 gItemIcon_StatusHeal[];
+extern const u8 gItemIconPalette_BurnHeal[];
+extern const u8 gItemIconPalette_IceHeal[];
+extern const u8 gItemIconPalette_Awakening[];
+extern const u8 gItemIconPalette_ParalyzeHeal[];
+extern const u8 gItemIcon_LargePotion[];
+extern const u8 gItemIconPalette_FullRestore[];
+extern const u8 gItemIconPalette_MaxPotion[];
+extern const u8 gItemIconPalette_HyperPotion[];
+extern const u8 gItemIconPalette_SuperPotion[];
+extern const u8 gItemIcon_FullHeal[];
+extern const u8 gItemIconPalette_FullHeal[];
+extern const u8 gItemIcon_Revive[];
+extern const u8 gItemIconPalette_Revive[];
+extern const u8 gItemIcon_MaxRevive[];
+extern const u8 gItemIcon_FreshWater[];
+extern const u8 gItemIconPalette_FreshWater[];
+extern const u8 gItemIcon_SodaPop[];
+extern const u8 gItemIconPalette_SodaPop[];
+extern const u8 gItemIcon_Lemonade[];
+extern const u8 gItemIconPalette_Lemonade[];
+extern const u8 gItemIcon_MoomooMilk[];
+extern const u8 gItemIconPalette_MoomooMilk[];
+extern const u8 gItemIcon_Powder[];
+extern const u8 gItemIconPalette_EnergyPowder[];
+extern const u8 gItemIcon_EnergyRoot[];
+extern const u8 gItemIconPalette_EnergyRoot[];
+extern const u8 gItemIconPalette_HealPowder[];
+extern const u8 gItemIcon_RevivalHerb[];
+extern const u8 gItemIconPalette_RevivalHerb[];
+extern const u8 gItemIcon_Ether[];
+extern const u8 gItemIconPalette_Ether[];
+extern const u8 gItemIconPalette_MaxEther[];
+extern const u8 gItemIconPalette_Elixir[];
+extern const u8 gItemIconPalette_MaxElixir[];
+extern const u8 gItemIcon_LavaCookie[];
+extern const u8 gItemIconPalette_LavaCookieAndLetter[];
+extern const u8 gItemIcon_Flute[];
+extern const u8 gItemIconPalette_BlueFlute[];
+extern const u8 gItemIconPalette_YellowFlute[];
+extern const u8 gItemIconPalette_RedFlute[];
+extern const u8 gItemIconPalette_BlackFlute[];
+extern const u8 gItemIconPalette_WhiteFlute[];
+extern const u8 gItemIcon_BerryJuice[];
+extern const u8 gItemIconPalette_BerryJuice[];
+extern const u8 gItemIcon_SacredAsh[];
+extern const u8 gItemIconPalette_SacredAsh[];
+// Collectibles
+extern const u8 gItemIconPalette_ShoalSalt[];
+extern const u8 gItemIcon_ShoalShell[];
+extern const u8 gItemIconPalette_Shell[];
+extern const u8 gItemIcon_Shard[];
+extern const u8 gItemIconPalette_RedShard[];
+extern const u8 gItemIconPalette_BlueShard[];
+extern const u8 gItemIconPalette_YellowShard[];
+extern const u8 gItemIconPalette_GreenShard[];
+// Vitamins
+extern const u8 gItemIcon_HPUp[];
+extern const u8 gItemIconPalette_HPUp[];
+extern const u8 gItemIcon_Vitamin[];
+extern const u8 gItemIconPalette_Protein[];
+extern const u8 gItemIconPalette_Iron[];
+extern const u8 gItemIconPalette_Carbos[];
+extern const u8 gItemIconPalette_Calcium[];
+extern const u8 gItemIcon_RareCandy[];
+extern const u8 gItemIconPalette_RareCandy[];
+extern const u8 gItemIcon_PPUp[];
+extern const u8 gItemIconPalette_PPUp[];
+extern const u8 gItemIconPalette_Zinc[];
+extern const u8 gItemIcon_PPMax[];
+extern const u8 gItemIconPalette_PPMax[];
+// Battle items
+extern const u8 gItemIcon_BattleStatItem[];
+extern const u8 gItemIconPalette_GuardSpec[];
+extern const u8 gItemIconPalette_DireHit[];
+extern const u8 gItemIconPalette_XAttack[];
+extern const u8 gItemIconPalette_XDefend[];
+extern const u8 gItemIconPalette_XSpeed[];
+extern const u8 gItemIconPalette_XAccuracy[];
+extern const u8 gItemIconPalette_XSpecial[];
+extern const u8 gItemIcon_PokeDoll[];
+extern const u8 gItemIconPalette_PokeDoll[];
+extern const u8 gItemIcon_FluffyTail[];
+extern const u8 gItemIconPalette_FluffyTail[];
+// Field items
+extern const u8 gItemIcon_Repel[];
+extern const u8 gItemIconPalette_SuperRepel[];
+extern const u8 gItemIconPalette_MaxRepel[];
+extern const u8 gItemIcon_EscapeRope[];
+extern const u8 gItemIconPalette_EscapeRope[];
+extern const u8 gItemIcon_Repel[];
+extern const u8 gItemIconPalette_Repel[];
+// Evolution stones
+extern const u8 gItemIcon_SunStone[];
+extern const u8 gItemIconPalette_SunStone[];
+extern const u8 gItemIcon_MoonStone[];
+extern const u8 gItemIconPalette_MoonStone[];
+extern const u8 gItemIcon_FireStone[];
+extern const u8 gItemIconPalette_FireStone[];
+extern const u8 gItemIcon_ThunderStone[];
+extern const u8 gItemIconPalette_ThunderStone[];
+extern const u8 gItemIcon_WaterStone[];
+extern const u8 gItemIconPalette_WaterStone[];
+extern const u8 gItemIcon_LeafStone[];
+extern const u8 gItemIconPalette_LeafStone[];
+// Valuables
+extern const u8 gItemIcon_TinyMushroom[];
+extern const u8 gItemIconPalette_Mushroom[];
+extern const u8 gItemIcon_BigMushroom[];
+extern const u8 gItemIcon_Pearl[];
+extern const u8 gItemIconPalette_Pearl[];
+extern const u8 gItemIcon_BigPearl[];
+extern const u8 gItemIcon_Stardust[];
+extern const u8 gItemIconPalette_Star[];
+extern const u8 gItemIcon_StarPiece[];
+extern const u8 gItemIcon_Nugget[];
+extern const u8 gItemIconPalette_Nugget[];
+extern const u8 gItemIcon_HeartScale[];
+extern const u8 gItemIconPalette_HeartScale[];
+// Mail
+extern const u8 gItemIcon_OrangeMail[];
+extern const u8 gItemIconPalette_OrangeMail[];
+extern const u8 gItemIcon_HarborMail[];
+extern const u8 gItemIconPalette_HarborMail[];
+extern const u8 gItemIcon_GlitterMail[];
+extern const u8 gItemIconPalette_GlitterMail[];
+extern const u8 gItemIcon_MechMail[];
+extern const u8 gItemIconPalette_MechMail[];
+extern const u8 gItemIcon_WoodMail[];
+extern const u8 gItemIconPalette_WoodMail[];
+extern const u8 gItemIcon_WaveMail[];
+extern const u8 gItemIconPalette_WaveMail[];
+extern const u8 gItemIcon_BeadMail[];
+extern const u8 gItemIconPalette_BeadMail[];
+extern const u8 gItemIcon_ShadowMail[];
+extern const u8 gItemIconPalette_ShadowMail[];
+extern const u8 gItemIcon_TropicMail[];
+extern const u8 gItemIconPalette_TropicMail[];
+extern const u8 gItemIcon_DreamMail[];
+extern const u8 gItemIconPalette_DreamMail[];
+extern const u8 gItemIcon_FabMail[];
+extern const u8 gItemIconPalette_FabMail[];
+extern const u8 gItemIcon_RetroMail[];
+extern const u8 gItemIconPalette_RetroMail[];
+// Berries
+extern const u8 gItemIcon_CheriBerry[];
+extern const u8 gItemIconPalette_CheriBerry[];
+extern const u8 gItemIcon_ChestoBerry[];
+extern const u8 gItemIconPalette_ChestoBerry[];
+extern const u8 gItemIcon_PechaBerry[];
+extern const u8 gItemIconPalette_PechaBerry[];
+extern const u8 gItemIcon_RawstBerry[];
+extern const u8 gItemIconPalette_RawstBerry[];
+extern const u8 gItemIcon_AspearBerry[];
+extern const u8 gItemIconPalette_AspearBerry[];
+extern const u8 gItemIcon_LeppaBerry[];
+extern const u8 gItemIconPalette_LeppaBerry[];
+extern const u8 gItemIcon_OranBerry[];
+extern const u8 gItemIconPalette_OranBerry[];
+extern const u8 gItemIcon_PersimBerry[];
+extern const u8 gItemIconPalette_PersimBerry[];
+extern const u8 gItemIcon_LumBerry[];
+extern const u8 gItemIconPalette_LumBerry[];
+extern const u8 gItemIcon_SitrusBerry[];
+extern const u8 gItemIconPalette_SitrusBerry[];
+extern const u8 gItemIcon_FigyBerry[];
+extern const u8 gItemIconPalette_FigyBerry[];
+extern const u8 gItemIcon_WikiBerry[];
+extern const u8 gItemIconPalette_WikiBerry[];
+extern const u8 gItemIcon_MagoBerry[];
+extern const u8 gItemIconPalette_MagoBerry[];
+extern const u8 gItemIcon_AguavBerry[];
+extern const u8 gItemIconPalette_AguavBerry[];
+extern const u8 gItemIcon_IapapaBerry[];
+extern const u8 gItemIconPalette_IapapaBerry[];
+extern const u8 gItemIcon_RazzBerry[];
+extern const u8 gItemIconPalette_RazzBerry[];
+extern const u8 gItemIcon_BlukBerry[];
+extern const u8 gItemIconPalette_BlukBerry[];
+extern const u8 gItemIcon_NanabBerry[];
+extern const u8 gItemIconPalette_NanabBerry[];
+extern const u8 gItemIcon_WepearBerry[];
+extern const u8 gItemIconPalette_WepearBerry[];
+extern const u8 gItemIcon_PinapBerry[];
+extern const u8 gItemIconPalette_PinapBerry[];
+extern const u8 gItemIcon_PomegBerry[];
+extern const u8 gItemIconPalette_PomegBerry[];
+extern const u8 gItemIcon_KelpsyBerry[];
+extern const u8 gItemIconPalette_KelpsyBerry[];
+extern const u8 gItemIcon_QualotBerry[];
+extern const u8 gItemIconPalette_QualotBerry[];
+extern const u8 gItemIcon_HondewBerry[];
+extern const u8 gItemIconPalette_HondewBerry[];
+extern const u8 gItemIcon_GrepaBerry[];
+extern const u8 gItemIconPalette_GrepaBerry[];
+extern const u8 gItemIcon_TamatoBerry[];
+extern const u8 gItemIconPalette_TamatoBerry[];
+extern const u8 gItemIcon_CornnBerry[];
+extern const u8 gItemIconPalette_CornnBerry[];
+extern const u8 gItemIcon_MagostBerry[];
+extern const u8 gItemIconPalette_MagostBerry[];
+extern const u8 gItemIcon_RabutaBerry[];
+extern const u8 gItemIconPalette_RabutaBerry[];
+extern const u8 gItemIcon_NomelBerry[];
+extern const u8 gItemIconPalette_NomelBerry[];
+extern const u8 gItemIcon_SpelonBerry[];
+extern const u8 gItemIconPalette_SpelonBerry[];
+extern const u8 gItemIcon_PamtreBerry[];
+extern const u8 gItemIconPalette_PamtreBerry[];
+extern const u8 gItemIcon_WatmelBerry[];
+extern const u8 gItemIconPalette_WatmelBerry[];
+extern const u8 gItemIcon_DurinBerry[];
+extern const u8 gItemIconPalette_DurinBerry[];
+extern const u8 gItemIcon_BelueBerry[];
+extern const u8 gItemIconPalette_BelueBerry[];
+extern const u8 gItemIcon_LiechiBerry[];
+extern const u8 gItemIconPalette_LiechiBerry[];
+extern const u8 gItemIcon_GanlonBerry[];
+extern const u8 gItemIconPalette_GanlonBerry[];
+extern const u8 gItemIcon_SalacBerry[];
+extern const u8 gItemIconPalette_SalacBerry[];
+extern const u8 gItemIcon_PetayaBerry[];
+extern const u8 gItemIconPalette_PetayaBerry[];
+extern const u8 gItemIcon_ApicotBerry[];
+extern const u8 gItemIconPalette_ApicotBerry[];
+extern const u8 gItemIcon_LansatBerry[];
+extern const u8 gItemIconPalette_LansatBerry[];
+extern const u8 gItemIcon_StarfBerry[];
+extern const u8 gItemIconPalette_StarfBerry[];
+extern const u8 gItemIcon_EnigmaBerry[];
+extern const u8 gItemIconPalette_EnigmaBerry[];
+// Hold items
+extern const u8 gItemIcon_BrightPowder[];
+extern const u8 gItemIconPalette_BrightPowder[];
+extern const u8 gItemIcon_InBattleHerb[];
+extern const u8 gItemIconPalette_WhiteHerb[];
+extern const u8 gItemIcon_MachoBrace[];
+extern const u8 gItemIconPalette_MachoBrace[];
+extern const u8 gItemIcon_ExpShare[];
+extern const u8 gItemIconPalette_ExpShare[];
+extern const u8 gItemIcon_QuickClaw[];
+extern const u8 gItemIconPalette_QuickClaw[];
+extern const u8 gItemIcon_SootheBell[];
+extern const u8 gItemIconPalette_SootheBell[];
+extern const u8 gItemIcon_InBattleHerb[];
+extern const u8 gItemIconPalette_MentalHerb[];
+extern const u8 gItemIcon_ChoiceBand[];
+extern const u8 gItemIconPalette_ChoiceBand[];
+extern const u8 gItemIcon_KingsRock[];
+extern const u8 gItemIconPalette_KingsRock[];
+extern const u8 gItemIcon_SilverPowder[];
+extern const u8 gItemIconPalette_SilverPowder[];
+extern const u8 gItemIcon_AmuletCoin[];
+extern const u8 gItemIconPalette_AmuletCoin[];
+extern const u8 gItemIcon_CleanseTag[];
+extern const u8 gItemIconPalette_CleanseTag[];
+extern const u8 gItemIcon_SoulDew[];
+extern const u8 gItemIconPalette_SoulDew[];
+extern const u8 gItemIcon_DeepSeaTooth[];
+extern const u8 gItemIconPalette_DeepSeaTooth[];
+extern const u8 gItemIcon_DeepSeaScale[];
+extern const u8 gItemIconPalette_DeepSeaScale[];
+extern const u8 gItemIcon_SmokeBall[];
+extern const u8 gItemIconPalette_SmokeBall[];
+extern const u8 gItemIcon_Everstone[];
+extern const u8 gItemIconPalette_Everstone[];
+extern const u8 gItemIcon_FocusBand[];
+extern const u8 gItemIconPalette_FocusBand[];
+extern const u8 gItemIcon_LuckyEgg[];
+extern const u8 gItemIconPalette_LuckyEgg[];
+extern const u8 gItemIcon_ScopeLens[];
+extern const u8 gItemIconPalette_ScopeLens[];
+extern const u8 gItemIcon_MetalCoat[];
+extern const u8 gItemIconPalette_MetalCoat[];
+extern const u8 gItemIcon_Leftovers[];
+extern const u8 gItemIconPalette_Leftovers[];
+extern const u8 gItemIcon_DragonScale[];
+extern const u8 gItemIconPalette_DragonScale[];
+extern const u8 gItemIcon_LightBall[];
+extern const u8 gItemIconPalette_LightBall[];
+extern const u8 gItemIcon_SoftSand[];
+extern const u8 gItemIconPalette_SoftSand[];
+extern const u8 gItemIcon_HardStone[];
+extern const u8 gItemIconPalette_HardStone[];
+extern const u8 gItemIcon_MiracleSeed[];
+extern const u8 gItemIconPalette_MiracleSeed[];
+extern const u8 gItemIcon_BlackGlasses[];
+extern const u8 gItemIconPalette_BlackTypeEnhancingItem[];
+extern const u8 gItemIcon_BlackBelt[];
+extern const u8 gItemIconPalette_BlackTypeEnhancingItem[];
+extern const u8 gItemIcon_Magnet[];
+extern const u8 gItemIconPalette_Magnet[];
+extern const u8 gItemIcon_MysticWater[];
+extern const u8 gItemIconPalette_MysticWater[];
+extern const u8 gItemIcon_SharpBeak[];
+extern const u8 gItemIconPalette_SharpBeak[];
+extern const u8 gItemIcon_PoisonBarb[];
+extern const u8 gItemIconPalette_PoisonBarb[];
+extern const u8 gItemIcon_NeverMeltIce[];
+extern const u8 gItemIconPalette_NeverMeltIce[];
+extern const u8 gItemIcon_SpellTag[];
+extern const u8 gItemIconPalette_SpellTag[];
+extern const u8 gItemIcon_TwistedSpoon[];
+extern const u8 gItemIconPalette_TwistedSpoon[];
+extern const u8 gItemIcon_Charcoal[];
+extern const u8 gItemIconPalette_Charcoal[];
+extern const u8 gItemIcon_DragonFang[];
+extern const u8 gItemIconPalette_DragonFang[];
+extern const u8 gItemIcon_SilkScarf[];
+extern const u8 gItemIconPalette_SilkScarf[];
+extern const u8 gItemIcon_UpGrade[];
+extern const u8 gItemIconPalette_UpGrade[];
+extern const u8 gItemIcon_ShellBell[];
+extern const u8 gItemIconPalette_Shell[];
+extern const u8 gItemIcon_SeaIncense[];
+extern const u8 gItemIconPalette_SeaIncense[];
+extern const u8 gItemIcon_LaxIncense[];
+extern const u8 gItemIconPalette_LaxIncense[];
+extern const u8 gItemIcon_LuckyPunch[];
+extern const u8 gItemIconPalette_LuckyPunch[];
+extern const u8 gItemIcon_MetalPowder[];
+extern const u8 gItemIconPalette_MetalPowder[];
+extern const u8 gItemIcon_ThickClub[];
+extern const u8 gItemIconPalette_ThickClub[];
+extern const u8 gItemIcon_Stick[];
+extern const u8 gItemIconPalette_Stick[];
+// Contest hold items
+extern const u8 gItemIcon_Scarf[];
+extern const u8 gItemIconPalette_RedScarf[];
+extern const u8 gItemIconPalette_BlueScarf[];
+extern const u8 gItemIconPalette_PinkScarf[];
+extern const u8 gItemIconPalette_GreenScarf[];
+extern const u8 gItemIconPalette_YellowScarf[];
+// Key items
+extern const u8 gItemIcon_MachBike[];
+extern const u8 gItemIconPalette_MachBike[];
+extern const u8 gItemIcon_CoinCase[];
+extern const u8 gItemIconPalette_CoinCase[];
+extern const u8 gItemIcon_Itemfinder[];
+extern const u8 gItemIconPalette_Itemfinder[];
+extern const u8 gItemIcon_OldRod[];
+extern const u8 gItemIconPalette_OldRod[];
+extern const u8 gItemIcon_GoodRod[];
+extern const u8 gItemIconPalette_GoodRod[];
+extern const u8 gItemIcon_SuperRod[];
+extern const u8 gItemIconPalette_SuperRod[];
+extern const u8 gItemIcon_SSTicket[];
+extern const u8 gItemIconPalette_SSTicket[];
+extern const u8 gItemIcon_ContestPass[];
+extern const u8 gItemIconPalette_ContestPass[];
+extern const u8 gItemIcon_WailmerPail[];
+extern const u8 gItemIconPalette_WailmerPail[];
+extern const u8 gItemIcon_DevonGoods[];
+extern const u8 gItemIconPalette_DevonGoods[];
+extern const u8 gItemIcon_SootSack[];
+extern const u8 gItemIconPalette_SootSack[];
+extern const u8 gItemIcon_BasementKey[];
+extern const u8 gItemIconPalette_OldKey[];
+extern const u8 gItemIcon_AcroBike[];
+extern const u8 gItemIconPalette_AcroBike[];
+extern const u8 gItemIcon_PokeblockCase[];
+extern const u8 gItemIconPalette_PokeblockCase[];
+extern const u8 gItemIcon_Letter[];
+extern const u8 gItemIcon_EonTicket[];
+extern const u8 gItemIconPalette_EonTicket[];
+extern const u8 gItemIcon_Orb[];
+extern const u8 gItemIconPalette_RedOrb[];
+extern const u8 gItemIconPalette_BlueOrb[];
+extern const u8 gItemIcon_Scanner[];
+extern const u8 gItemIconPalette_Scanner[];
+extern const u8 gItemIcon_GoGoggles[];
+extern const u8 gItemIconPalette_GoGoggles[];
+extern const u8 gItemIcon_Meteorite[];
+extern const u8 gItemIconPalette_Meteorite[];
+extern const u8 gItemIcon_Room1Key[];
+extern const u8 gItemIconPalette_Key[];
+extern const u8 gItemIcon_Room2Key[];
+extern const u8 gItemIcon_Room4Key[];
+extern const u8 gItemIcon_Room6Key[];
+extern const u8 gItemIcon_StorageKey[];
+extern const u8 gItemIcon_RootFossil[];
+extern const u8 gItemIconPalette_HoennFossil[];
+extern const u8 gItemIcon_ClawFossil[];
+extern const u8 gItemIcon_DevonScope[];
+extern const u8 gItemIconPalette_DevonScope[];
+// TMs/HMs
+extern const u8 gItemIcon_TM[];
+extern const u8 gItemIconPalette_FightingTMHM[];
+extern const u8 gItemIconPalette_DragonTMHM[];
+extern const u8 gItemIconPalette_WaterTMHM[];
+extern const u8 gItemIconPalette_PsychicTMHM[];
+extern const u8 gItemIconPalette_NormalTMHM[];
+extern const u8 gItemIconPalette_PoisonTMHM[];
+extern const u8 gItemIconPalette_IceTMHM[];
+extern const u8 gItemIconPalette_GrassTMHM[];
+extern const u8 gItemIconPalette_FireTMHM[];
+extern const u8 gItemIconPalette_DarkTMHM[];
+extern const u8 gItemIconPalette_SteelTMHM[];
+extern const u8 gItemIconPalette_ElectricTMHM[];
+extern const u8 gItemIconPalette_GroundTMHM[];
+extern const u8 gItemIconPalette_GhostTMHM[];
+extern const u8 gItemIconPalette_RockTMHM[];
+extern const u8 gItemIconPalette_FlyingTMHM[];
+extern const u8 gItemIcon_HM[];
+// FireRed/LeafGreen key items
+extern const u8 gItemIcon_OaksParcel[];
+extern const u8 gItemIconPalette_OaksParcel[];
+extern const u8 gItemIcon_PokeFlute[];
+extern const u8 gItemIconPalette_PokeFlute[];
+extern const u8 gItemIcon_SecretKey[];
+extern const u8 gItemIconPalette_SecretKey[];
+extern const u8 gItemIcon_BikeVoucher[];
+extern const u8 gItemIconPalette_BikeVoucher[];
+extern const u8 gItemIcon_GoldTeeth[];
+extern const u8 gItemIconPalette_GoldTeeth[];
+extern const u8 gItemIcon_OldAmber[];
+extern const u8 gItemIconPalette_OldAmber[];
+extern const u8 gItemIcon_CardKey[];
+extern const u8 gItemIconPalette_CardKey[];
+extern const u8 gItemIcon_LiftKey[];
+extern const u8 gItemIconPalette_Key[];
+extern const u8 gItemIcon_HelixFossil[];
+extern const u8 gItemIconPalette_KantoFossil[];
+extern const u8 gItemIcon_DomeFossil[];
+extern const u8 gItemIcon_SilphScope[];
+extern const u8 gItemIconPalette_SilphScope[];
+extern const u8 gItemIcon_Bicycle[];
+extern const u8 gItemIconPalette_Bicycle[];
+extern const u8 gItemIcon_TownMap[];
+extern const u8 gItemIconPalette_TownMap[];
+extern const u8 gItemIcon_VSSeeker[];
+extern const u8 gItemIconPalette_VSSeeker[];
+extern const u8 gItemIcon_FameChecker[];
+extern const u8 gItemIconPalette_FameChecker[];
+extern const u8 gItemIcon_TMCase[];
+extern const u8 gItemIconPalette_TMCase[];
+extern const u8 gItemIcon_BerryPouch[];
+extern const u8 gItemIconPalette_BerryPouch[];
+extern const u8 gItemIcon_TeachyTV[];
+extern const u8 gItemIconPalette_TeachyTV[];
+extern const u8 gItemIcon_TriPass[];
+extern const u8 gItemIconPalette_TriPass[];
+extern const u8 gItemIcon_RainbowPass[];
+extern const u8 gItemIconPalette_RainbowPass[];
+extern const u8 gItemIcon_Tea[];
+extern const u8 gItemIconPalette_Tea[];
+extern const u8 gItemIcon_MysticTicket[];
+extern const u8 gItemIconPalette_MysticTicket[];
+extern const u8 gItemIcon_AuroraTicket[];
+extern const u8 gItemIconPalette_AuroraTicket[];
+extern const u8 gItemIcon_PowderJar[];
+extern const u8 gItemIconPalette_PowderJar[];
+extern const u8 gItemIcon_Gem[];
+extern const u8 gItemIconPalette_Ruby[];
+extern const u8 gItemIconPalette_Sapphire[];
+// Emerald-only key items
+extern const u8 gItemIcon_MagmaEmblem[];
+extern const u8 gItemIconPalette_MagmaEmblem[];
+extern const u8 gItemIcon_OldSeaMap[];
+extern const u8 gItemIconPalette_OldSeaMap[];
+
+extern const u8 gItemIcon_ReturnToFieldArrow[];
+extern const u8 gItemIconPalette_ReturnToFieldArrow[];
+
//menu graphics
extern const u16 gFireRedMenuElements1_Pal[16];
extern const u16 gFireRedMenuElements2_Pal[16];
@@ -2864,4 +3378,8 @@ extern const u8 gBerryPalette_Enigma[];
//credits
extern const u8 gCreditsCopyrightEnd_Gfx[];
+//pokenav condition marker
+extern const u8 gPokenavConditionMarker_Gfx[];
+extern const u16 gPokenavConditionMarker_Pal[];
+
#endif //GUARD_GRAPHICS_H
diff --git a/include/heal_location.h b/include/heal_location.h
index 1f966f1ae..46f0d785a 100644
--- a/include/heal_location.h
+++ b/include/heal_location.h
@@ -1,13 +1,6 @@
#ifndef GUARD_HEAL_LOCATION_H
#define GUARD_HEAL_LOCATION_H
-// Exported type declarations
-
-struct UnkStruct_0859F534 {
- const union AffineAnimCmd *const *const affineAnims;
- void (* callback)(struct Sprite *sprite);
-};
-
struct HealLocation
{
s8 group;
@@ -16,10 +9,8 @@ struct HealLocation
u16 y;
};
-// Exported RAM declarations
-
-// Exported ROM declarations
-
-const struct HealLocation *GetHealLocationPointer(u32 loc);
+u32 GetHealLocationIndexByMap(u16 mapGroup, u16 mapNum);
+const struct HealLocation *GetHealLocationByMap(u16 mapGroup, u16 mapNum);
+const struct HealLocation *GetHealLocation(u32 index);
-#endif //GUARD_HEAL_LOCATION_H
+#endif // GUARD_HEAL_LOCATION_H
diff --git a/include/international_string_util.h b/include/international_string_util.h
index f4ba827e3..426a2d48c 100644
--- a/include/international_string_util.h
+++ b/include/international_string_util.h
@@ -10,12 +10,12 @@ s32 GetStringRightAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth);
s32 GetStringCenterAlignXOffsetWithLetterSpacing(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing);
s32 GetStringWidthDifference(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing);
s32 GetMaxWidthInMenuTable(const struct MenuAction *str, s32 arg1);
-s32 sub_81DB3D8(const struct MenuAction *str, u8* arg1, s32 arg2);
+s32 sub_81DB3D8(const struct MenuAction *str, const u8* arg1, s32 arg2);
// sub_81DB41C
// CopyMonCategoryText
// sub_81DB494
void PadNameString(u8 *dst, u8 padWith);
-// sub_81DB554
+void sub_81DB554(u8 *, u8);
// sub_81DB5AC
u32 sub_81DB604(const u8 *);
// sub_81DB620
diff --git a/include/item.h b/include/item.h
index d81a3de33..881d3a3d4 100644
--- a/include/item.h
+++ b/include/item.h
@@ -1,11 +1,32 @@
-#ifndef ITEM_H
-#define ITEM_H
+#ifndef GUARD_ITEM_H
+#define GUARD_ITEM_H
+
+// These constants are used in gItems
+enum
+{
+ POCKET_NONE,
+ POCKET_ITEMS,
+ POCKET_POKE_BALLS,
+ POCKET_TM_HM,
+ POCKET_BERRIES,
+ POCKET_KEY_ITEMS,
+};
+
+enum
+{
+ ITEMS_POCKET,
+ BALLS_POCKET,
+ TMHM_POCKET,
+ BERRIES_POCKET,
+ KEYITEMS_POCKET,
+ POCKETS_COUNT
+};
typedef void (*ItemUseFunc)(u8);
struct Item
{
- u8 name[14];
+ u8 name[ITEM_NAME_LENGTH];
u16 itemId;
u16 price;
u8 holdEffect;
@@ -29,28 +50,41 @@ struct BagPocket
extern struct BagPocket gBagPockets[];
-void GetBerryCountString(u8* dst, const u8* berryName, u32 quantity);
-void CopyItemName(u16 itemId, u8 *string);
-void CopyItemNameHandlePlural(u16 itemId, u8 *string, u32 quantity);
+void ApplyNewEncryptionKeyToBagItems(u32 newKey);
+void ApplyNewEncryptionKeyToBagItems_(u32 newKey);
+void SetBagItemsPointers(void);
+void CopyItemName(u16 itemId, u8 *dst);
+void CopyItemNameHandlePlural(u16 itemId, u8 *dst, u32 quantity);
+void GetBerryCountString(u8 *dst, const u8 *berryName, u32 quantity);
bool8 IsBagPocketNonEmpty(u8 pocket);
bool8 CheckBagHasItem(u16 itemId, u16 count);
+bool8 HasAtLeastOneBerry(void);
bool8 CheckBagHasSpace(u16 itemId, u16 count);
bool8 AddBagItem(u16 itemId, u16 count);
bool8 RemoveBagItem(u16 itemId, u16 count);
u8 GetPocketByItemId(u16 itemId);
-void ClearItemSlots(struct ItemSlot *itemSlots, u8 b);
+void ClearItemSlots(struct ItemSlot *itemSlots, u8 itemCount);
u8 CountUsedPCItemSlots(void);
bool8 CheckPCHasItem(u16 itemId, u16 count);
bool8 AddPCItem(u16 itemId, u16 count);
void RemovePCItem(u8 index, u16 count);
+void CompactPCItems(void);
void SwapRegisteredBike(void);
-const struct Item *ItemId_GetItem(u16 itemId);
+u16 BagGetItemIdByPocketPosition(u8 pocketId, u16 pocketPos);
+u16 BagGetQuantityByPocketPosition(u8 pocketId, u16 pocketPos);
+void CompactItemsInBagPocket(struct BagPocket *bagPocket);
+void SortBerriesOrTMHMs(struct BagPocket *bagPocket);
+void MoveItemSlotInList(struct ItemSlot* itemSlots_, u32 from, u32 to_);
+void ClearBag(void);
+u16 CountTotalItemQuantityInBag(u16 itemId);
+bool8 AddPyramidBagItem(u16 itemId, u16 count);
+bool8 RemovePyramidBagItem(u16 itemId, u16 count);
+const u8 *ItemId_GetName(u16 itemId);
u16 ItemId_GetId(u16 itemId);
u16 ItemId_GetPrice(u16 itemId);
u8 ItemId_GetHoldEffect(u16 itemId);
u8 ItemId_GetHoldEffectParam(u16 itemId);
const u8 *ItemId_GetDescription(u16 itemId);
-bool32 ItemId_CopyDescription(u8 *a, u32 itemId, u32 c);
u8 ItemId_GetImportance(u16 itemId);
u8 ItemId_GetUnknownValue(u16 itemId);
u8 ItemId_GetPocket(u16 itemId);
@@ -59,10 +93,5 @@ ItemUseFunc ItemId_GetFieldFunc(u16 itemId);
u8 ItemId_GetBattleUsage(u16 itemId);
ItemUseFunc ItemId_GetBattleFunc(u16 itemId);
u8 ItemId_GetSecondaryId(u16 itemId);
-u16 itemid_get_market_price(u16 itemId);
-u16 BagGetItemIdByPocketPosition(u8 pocketId, u16 pocketPos);
-void sub_80D6FB4(struct BagPocket*);
-void sub_80D6F64(struct BagPocket*);
-void sub_80D702C(struct ItemSlot*, s16, u16);
-#endif // ITEM_H
+#endif // GUARD_ITEM_H
diff --git a/include/item_menu.h b/include/item_menu.h
index 9cffaa6c7..8a474bc0f 100644
--- a/include/item_menu.h
+++ b/include/item_menu.h
@@ -7,7 +7,7 @@ struct BagStruct
void (*bagCallback)(void);
u8 location;
u8 pocket;
- u8 unk6[2];
+ u16 unk6;
u16 cursorPosition[5];
u16 scrollPosition[5];
};
@@ -51,8 +51,11 @@ extern struct UnkBagStruct *gUnknown_0203CE54;
extern u16 gSpecialVar_ItemId;
// Exported ROM declarations
+void sub_81AAC14(void);
void sub_81AAC50(void);
void sub_81AAC70(void);
void bag_menu_mail_related(void);
+void CB2_BagMenuFromStartMenu(void);
+u8 sub_81ABB2C(u8 pocketId);
#endif //GUARD_item_menu_H
diff --git a/include/item_use.h b/include/item_use.h
index beee6b8d0..7874f7ee9 100644
--- a/include/item_use.h
+++ b/include/item_use.h
@@ -21,11 +21,13 @@ void DisplayItemRespondingMessageAndExitItemfinder(u8);
void RotatePlayerAndExitItemfinder(u8);
void ItemUseOutOfBattle_PokeblockCase(u8);
void ItemUseOutOfBattle_CoinCase(u8);
+void ItemUseOutOfBattle_PowderJar(u8);
void ItemUseOutOfBattle_SSTicket(u8);
void sub_80C9D00(u8);
void ItemUseOutOfBattle_WailmerPail(u8);
void sub_80C9D74(u8);
void ItemUseOutOfBattle_Medicine(u8);
+void ItemUseOutOfBattle_ReduceEV(u8);
void ItemUseOutOfBattle_SacredAsh(u8);
void ItemUseOutOfBattle_PPRecovery(u8);
void ItemUseOutOfBattle_PPUp(u8);
diff --git a/include/librfu.h b/include/librfu.h
index aae7df4e9..9d131f027 100644
--- a/include/librfu.h
+++ b/include/librfu.h
@@ -47,7 +47,7 @@ enum
RFU_UNK3A,
RFU_UNK3B,
RFU_UNK3C,
- RFU_STOP_MODE, //3D
+ RFU_STOP_MODE, // 3D
};
struct RfuPacket8
@@ -67,7 +67,7 @@ union RfuPacket
struct RfuPacket8 rfuPacket8;
};
-struct __attribute__((packed)) UnkLinkRfuStruct_02022B14
+struct UnkLinkRfuStruct_02022B14Substruct
{
u16 unk_00_0:4;
u16 unk_00_4:1;
@@ -79,9 +79,14 @@ struct __attribute__((packed)) UnkLinkRfuStruct_02022B14
u16 unk_01_2:4;
u16 unk_01_6:2;
u8 playerTrainerId[2];
+};
+
+struct __attribute__((packed)) UnkLinkRfuStruct_02022B14
+{
+ struct UnkLinkRfuStruct_02022B14Substruct unk_00;
u8 unk_04[4];
- u16 unk_08_0:10;
- u16 unk_09_2:6;
+ u16 species:10;
+ u16 type:6;
u8 unk_0a_0:7;
u8 unk_0a_7:1;
u8 playerGender:1;
@@ -200,8 +205,6 @@ extern struct RfuUnk1* gUnknown_03007870[4];
extern void* sub_82E53F4;
extern void rfu_STC_clearAPIVariables(void);
-struct UnkLinkRfuStruct_02022B14;
-
void STWI_init_all(struct RfuIntrStruct *interruptStruct, IntrFunc *interrupt, bool8 copyInterruptToRam);
void rfu_REQ_stopMode(void);
void rfu_waitREQComplete(void);
diff --git a/include/lilycove_lady.h b/include/lilycove_lady.h
index 084e5722e..f26285d68 100644
--- a/include/lilycove_lady.h
+++ b/include/lilycove_lady.h
@@ -6,7 +6,7 @@ void SetLilycoveLady(void);
void sub_818DA78(void);
void sub_818DEF4(void);
void sub_818E564(void);
-void sub_818E570(const struct LilycoveLadyQuiz *quiz);
+void sub_818E570(const LilycoveLady *lilycoveLady);
bool8 GivePokeblockToContestLady(struct Pokeblock *pokeblock);
void sub_818E7E0(u8 *dest1, u8 *dest2);
void sub_818E81C(u8 *dest);
diff --git a/include/link.h b/include/link.h
index 0fa4d39c2..b1b5a6d04 100644
--- a/include/link.h
+++ b/include/link.h
@@ -122,7 +122,7 @@ struct LinkPlayer
/* 0x08 */ u8 name[11];
/* 0x13 */ u8 gender;
/* 0x14 */ u32 linkType;
- /* 0x18 */ u16 lp_field_18; // battle bank in battles
+ /* 0x18 */ u16 id; // battler id in battles
/* 0x1A */ u16 language;
};
@@ -201,7 +201,7 @@ extern u32 gLinkStatus;
void c2_mystery_gift(void);
void sub_801867C(void);
-bool8 sub_80093CC(void);
+bool8 IsWirelessAdapterConnected(void);
void Task_DestroySelf(u8 taskId);
void OpenLink(void);
void CloseLink(void);
@@ -257,6 +257,7 @@ void sub_800AAF4(void);
void sub_800AF18(u32 status, u8 lastSendQueueCount, u8 lastRecvQueueCount, u8 unk_06);
void sub_800B348(void);
void sub_800B3A4(u32 who);
+bool32 sub_800A07C(void);
extern u16 gLinkPartnersHeldKeys[6];
extern u32 gLinkDebugSeed;
@@ -292,4 +293,13 @@ extern u32 gFiller_03004138;
extern u32 gFiller_0300413C;
extern u32 gFiller_03003080;
+bool32 Link_AnyPartnersPlayingRubyOrSapphire(void);
+bool32 sub_800A03C(void);
+void sub_8009628(u8);
+u8 sub_800AA48(void);
+void sub_8009FAC(void);
+bool8 sub_800A4D8(u8 a0);
+u8 sub_800A9D8(void);
+u8 sub_800A0C8(s32, s32);
+
#endif // GUARD_LINK_H
diff --git a/include/link_rfu.h b/include/link_rfu.h
index a6084b138..c3ca75604 100644
--- a/include/link_rfu.h
+++ b/include/link_rfu.h
@@ -231,5 +231,38 @@ struct UnkLinkRfuStruct_02022B14 *sub_800F7DC(void);
void sub_8011068(u8 a0);
void sub_8011170(u32 a0);
void sub_8011A64(u8 a0, u16 a1);
+u8 sub_801048C(bool32 a0);
+void sub_800DF90(struct UnkLinkRfuStruct_02022B14 *buff1, u8 *buff2);
+void sub_8010F84(u8 a0, u32 a1, u32 a2);
+void sub_8011C10(u32 a0);
+bool32 sub_8012240(void);
+void sub_800EF38(void);
+bool32 sub_80105EC(void);
+bool32 sub_801064C(u16 a0, const u8 *a1);
+void sub_8010688(u8 a0, u16 a1, const u8 *a2);
+u32 sub_8010714(u16 a0, const u8 *a1);
+void sub_8011DC0(const u8 *a0, u16 a1);
+bool8 sub_800EF1C(void);
+bool32 sub_800EF58(bool32 a0);
+void sub_800E084(void);
+void sub_801103C(void);
+void sub_8011C5C(void);
+void sub_80106D4(void);
+void sub_800E3A8(void);
+void sub_800ED10(void);
+void sub_800ED28(void);
+void sub_8011090(u8 a0, u32 a1, u32 a2);
+void sub_8011FC8(u8 *a0, u16 a1);
+void sub_8010FA0(bool32 a0, bool32 a1);
+void sub_8010F60(void);
+void sub_8010FCC(u32 a0, u32 a1, u32 a2);
+void sub_8011C84(void);
+void sub_8012188(const u8 *a0, struct UnkLinkRfuStruct_02022B14 *arg1, u8 arg2);
+bool32 sub_8011B90(void);
+void sub_800FE50(u16 *a0);
+bool32 sub_800E540(u16 id, u8 *name);
+void sub_8011DE0(u32 arg0);
+u8 sub_801100C(int a0);
+void sub_800EF7C(void);
#endif //GUARD_LINK_RFU_H
diff --git a/include/list_menu.h b/include/list_menu.h
index 0aa66a524..d38980213 100644
--- a/include/list_menu.h
+++ b/include/list_menu.h
@@ -3,11 +3,19 @@
#define LIST_NOTHING_CHOSEN -1
#define LIST_B_PRESSED -2
+#define LIST_HEADER -3
#define LIST_NO_MULTIPLE_SCROLL 0
#define LIST_MULTIPLE_SCROLL_DPAD 1
#define LIST_MULTIPLE_SCROLL_L_R 2
+enum {
+ SCROLL_ARROW_LEFT,
+ SCROLL_ARROW_RIGHT,
+ SCROLL_ARROW_UP,
+ SCROLL_ARROW_DOWN
+};
+
struct ListMenu;
struct ListMenuItem
@@ -19,20 +27,20 @@ struct ListMenuItem
struct ListMenuTemplate
{
const struct ListMenuItem *items;
- void (* moveCursorFunc)(s32, bool8, struct ListMenu *);
- void (* unk_08)(u8 windowId, s32 itemId, u8 y);
+ void (* moveCursorFunc)(s32 itemIndex, bool8 onInit, struct ListMenu *list);
+ void (* itemPrintFunc)(u8 windowId, s32 itemId, u8 y);
u16 totalItems;
u16 maxShowed;
u8 windowId;
- u8 unk_11;
- u8 unk_12;
+ u8 header_X;
+ u8 item_X;
u8 cursor_X;
u8 upText_Y:4; // x1, x2, x4, x8 = xF
u8 cursorPal:4; // x10, x20, x40, x80 = xF0
u8 fillValue:4; // x1, x2, x4, x8 = xF
u8 cursorShadowPal:4; // x10, x20, x40, x80 = xF0
u8 lettersSpacing:3;
- u8 unk_16_3:3;
+ u8 itemVerticalPadding:3;
u8 scrollMultiple:2; // x40, x80 = xC0
u8 fontId:6; // x1, x2, x4, x8, x10, x20 = x3F
u8 cursorKind:2; // x40, x80
@@ -45,11 +53,11 @@ struct ListMenu
u16 selectedRow;
u8 unk_1C;
u8 unk_1D;
- u8 unk_1E;
+ u8 taskId;
u8 unk_1F;
};
-struct UnknownListMenuWindowStruct
+struct ListMenuWindowRect
{
u8 x;
u8 y;
@@ -58,21 +66,54 @@ struct UnknownListMenuWindowStruct
u8 palNum;
};
+struct ScrollArrowsTemplate
+{
+ u8 firstArrowType;
+ u8 firstX;
+ u8 firstY;
+ u8 secondArrowType;
+ u8 secondX;
+ u8 secondY;
+ u16 fullyUpThreshold;
+ u16 fullyDownThreshold;
+ u16 tileTag;
+ u16 palTag;
+ u8 palNum;
+};
+
+struct CursorStruct
+{
+ u8 left;
+ u8 top;
+ u16 rowWidth;
+ u16 rowHeight;
+ u16 tileTag;
+ u16 palTag;
+ u8 palNum;
+};
+
+extern struct ScrollArrowsTemplate gTempScrollArrowTemplate;
extern struct ListMenuTemplate gMultiuseListMenuTemplate;
s32 DoMysteryGiftListMenu(struct WindowTemplate *windowTemplate, struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum);
u8 ListMenuInit(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow);
-u8 ListMenuInitWithWindows(struct ListMenuTemplate *listMenuTemplate, struct UnknownListMenuWindowStruct *arg1, u16 scrollOffset, u16 selectedRow);
+u8 ListMenuInitInRect(struct ListMenuTemplate *listMenuTemplate, struct ListMenuWindowRect *arg1, u16 scrollOffset, u16 selectedRow);
s32 ListMenuHandleInputGetItemId(u8 listTaskId);
void DestroyListMenuTask(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow);
-void sub_81AE70C(u8 listTaskId);
+void RedrawListMenu(u8 listTaskId);
void ChangeListMenuPals(u8 listTaskId, u8 cursorPal, u8 fillValue, u8 cursorShadowPal);
void ChangeListMenuCoords(u8 listTaskId, u8 x, u8 y);
s32 ListMenuTestInput(struct ListMenuTemplate *template, u32 scrollOffset, u32 selectedRow, u16 keys, u16 *newScrollOffset, u16 *newSelectedRow);
void ListMenuGetCurrentItemArrayId(u8 listTaskId, u16 *arrayId);
void ListMenuGetScrollAndRow(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow);
u16 ListMenuGetYCoordForPrintingArrowCursor(u8 listTaskId);
-void sub_81AF028(u8 cursorPal, u8 fillValue, u8 cursorShadowPal);
-void sub_81AF078(s32 arg0, u8 arg1, struct ListMenu *list);
+void ListMenuOverrideSetColors(u8 cursorPal, u8 fillValue, u8 cursorShadowPal);
+void ListMenuDefaultCursorMoveFunc(s32 arg0, u8 arg1, struct ListMenu *list);
+s32 ListMenuGetUnkIndicatorsStructFields(u8 taskId, u8 field);
+void ListMenuSetUnkIndicatorsStructField(u8 taskId, u8 field, s32 value);
+u8 AddScrollIndicatorArrowPair(const struct ScrollArrowsTemplate *arrowInfo, u16 *arg1);
+u8 AddScrollIndicatorArrowPairParameterized(u32 arrowType, s32 commonPos, s32 firstPos, s32 secondPos, s32 fullyDownThreshold, s32 tileTag, s32 palTag, u16 *currItemPtr);
+void RemoveScrollIndicatorArrowPair(u8 taskId);
+void Task_ScrollIndicatorArrowPairOnMainMenu(u8 taskId);
#endif //GUARD_LIST_MENU_H
diff --git a/include/load_save.h b/include/load_save.h
index 92c99fd90..5fb5f6c42 100644
--- a/include/load_save.h
+++ b/include/load_save.h
@@ -1,25 +1,35 @@
#ifndef GUARD_LOAD_SAVE_H
#define GUARD_LOAD_SAVE_H
-extern bool32 gFlashMemoryPresent;
+extern struct SaveBlock1 gSaveblock1;
extern struct SaveBlock2 gSaveblock2;
extern struct PokemonStorage gPokemonStorage;
+extern bool32 gFlashMemoryPresent;
+extern struct SaveBlock1 *gSaveBlock1Ptr;
+extern struct SaveBlock2 *gSaveBlock2Ptr;
+extern struct PokemonStorage *gPokemonStoragePtr;
+
+void CheckForFlashMemory(void);
void ClearSav2(void);
void ClearSav1(void);
-void CheckForFlashMemory(void);
+void SetSaveBlocksPointers(u16 offset);
void MoveSaveBlocks_ResetHeap(void);
-bool32 GetSecretBase2Field_9(void);
+u32 GetSecretBase2Field_9(void);
void ClearSecretBase2Field_9(void);
-void SetSecretBase2Field_9(void);
-void SetSecretBase2Field_9_AndHideBG(void);
-void ClearSecretBase2Field_9_2(void);
+void sub_8076D48(void);
+void sub_8076D5C(void);
+void sav2_gender2_inplace_and_xFE(void);
void SavePlayerParty(void);
void LoadPlayerParty(void);
+void SaveEventObjects(void);
+void LoadEventObjects(void);
void SaveSerializedGame(void);
void LoadSerializedGame(void);
void LoadPlayerBag(void);
void SavePlayerBag(void);
-void SetSaveBlocksPointers(u16);
+void ApplyNewEncryptionKeyToHword(u16 *hWord, u32 newKey);
+void ApplyNewEncryptionKeyToWord(u32 *word, u32 newKey);
+void ApplyNewEncryptionKeyToAllEncryptedData(u32 encryptionKey);
#endif // GUARD_LOAD_SAVE_H
diff --git a/include/map_name_popup.h b/include/map_name_popup.h
index 8a9043a3f..85d2f0795 100644
--- a/include/map_name_popup.h
+++ b/include/map_name_popup.h
@@ -7,5 +7,5 @@
// Exported ROM declarations
void HideMapNamePopUpWindow(void);
-
+void ShowMapNamePopup(void);
#endif //GUARD_MAP_NAME_POPUP_H
diff --git a/include/map_obj_lock.h b/include/map_obj_lock.h
deleted file mode 100644
index a10648f2f..000000000
--- a/include/map_obj_lock.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef GUARD_MAP_OBJ_LOCK_H
-#define GUARD_MAP_OBJ_LOCK_H
-
-bool8 sub_80983C4(void);
-void ScriptFreezeMapObjects(void);
-bool8 sub_809847C(void);
-void LockSelectedMapObject(void);
-void sub_8098630(void);
-bool8 sub_8098734(void);
-
-#endif // GUARD_MAP_OBJ_LOCK_H
diff --git a/include/match_call.h b/include/match_call.h
new file mode 100644
index 000000000..1f431bfaf
--- /dev/null
+++ b/include/match_call.h
@@ -0,0 +1,15 @@
+#ifndef GUARD_MATCH_CALL_H
+#define GUARD_MATCH_CALL_H
+
+enum {
+ MATCH_CALL_TYPE_NON_TRAINER,
+ MATCH_CALL_TYPE_TRAINER,
+ MATCH_CALL_TYPE_WALLY,
+ MATCH_CALL_TYPE_BIRCH,
+ MATCH_CALL_TYPE_MAY_BRENDAN,
+ MATCH_CALL_TYPE_GYMLEADER_ELITEFOUR
+};
+
+s32 GetRematchIdxByTrainerIdx(s32 trainerIdx);
+
+#endif //GUARD_MATCH_CALL_H
diff --git a/include/mauville_old_man.h b/include/mauville_old_man.h
index aefc76083..9d71e81aa 100644
--- a/include/mauville_old_man.h
+++ b/include/mauville_old_man.h
@@ -2,7 +2,25 @@
#ifndef GUARD_MAUVILLE_OLD_MAN_H
#define GUARD_MAUVILLE_OLD_MAN_H
+enum MauvilleOldManType
+{
+ MAUVILLE_MAN_BARD,
+ MAUVILLE_MAN_HIPSTER,
+ MAUVILLE_MAN_TRADER,
+ MAUVILLE_MAN_STORYTELLER,
+ MAUVILLE_MAN_GIDDY
+};
+
+extern struct BardSong gBardSong;
+
void SetMauvilleOldMan(void);
+u8 GetCurrentMauvilleOldMan(void);
+void ScrSpecial_SetMauvilleOldManEventObjGfx(void);
u8 sub_81201C8(void);
+void sub_8120B70(OldMan *dest);
+void sub_8120670(void);
+void SanitizeReceivedRubyOldMan(union OldMan * oldMan, u32 r1, u32 r6);
+void SanitizeReceivedEmeraldOldMan(union OldMan * oldMan, u32 unused, u32 a2);
+void ResetMauvilleOldManFlag(void);
#endif // GUARD_MAUVILLE_OLD_MAN_H
diff --git a/include/menu.h b/include/menu.h
index c2f15422a..4cc43dd4c 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -1,3 +1,4 @@
+
#ifndef GUARD_MENU_H
#define GUARD_MENU_H
@@ -27,8 +28,9 @@ void NewMenuHelpers_DrawDialogueFrame(u8, u8);
void sub_819746C(u8 windowId, bool8 copyToVram);
void NewMenuHelpers_DrawStdWindowFrame(u8, u8);
u16 AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 fgColor, u8 bgColor, u8 shadowColor);
+void PrintPlayerNameOnWindow(u8, const u8*, u16, u16);
void DisplayItemMessageOnField(u8 taskId, const u8 *src, TaskFunc callback);
-void sub_8197434(u8 a0, u8 a1);
+void sub_8197434(u8 windowId, bool8 copyToVram);
void SetStandardWindowBorderStyle(u8 a0, u8 a1);
void sub_8197930(void);
u8 GetPlayerTextSpeed(void);
@@ -49,10 +51,11 @@ void blit_move_info_icon(u8 winId, u8 a2, u16 x, u16 y);
void reset_temp_tile_data_buffers(void);
void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, int size, u16 offset, u8 mode);
bool8 free_temp_tile_data_buffers_if_possible(void);
-struct WindowTemplate sub_8198A50(u8, u8, u8, u8, u8, u8, u16);
+struct WindowTemplate CreateWindowTemplate(u8, u8, u8, u8, u8, u8, u16);
void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos);
void copy_decompressed_tile_data_to_vram_autofree(u8 bgId, const void *src, int size, u16 offset, u8 mode);
s8 ProcessMenuInputNoWrap_(void);
+s8 ProcessMenuInput_other(void);
void do_scheduled_bg_tilemap_copies_to_vram(void);
void clear_scheduled_bg_copies_to_vram(void);
void AddTextPrinterParameterized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const u8 *color, s8 speed, const u8 *str);
@@ -67,6 +70,20 @@ void AddItemMenuActionTextPrinters (u8, u8, u8, u8, u8, u8, u8, const struct Men
void sub_8198DBC(u8, u8, u8, u8, u8, u8, u8, const struct MenuAction*, const u8*);
u8 sub_8199944(u8, u8, u8, u8, u8);
u8 sub_8199134(s8, s8);
+u8 GetStartMenuWindowId(void);
void sub_819A2BC(u8, u8);
+u8 MoveMenuCursor(s8 cursorDelta);
+void NewMenuHelpers_DrawStdWindowFrame(u8 windowId, bool8 CopyToVram);
+u8 sub_81979C4(u8 a1);
+u8 sub_81983AC(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numChoices, u8 initialCursorPos);
+void sub_819786C(u8 windowId, bool8 copyToVram);
+void AddTextPrinterForMessage_2(bool8 allowSkippingDelayWithButtonPress);
+void RemoveStartMenuWindow(void);
+void sub_8197948(u8 initialCursorPos);
+void sub_819A344(u8 a0, u8 *dest, u8 color);
+void RemoveMapNamePopUpWindow(void);
+u8 GetMapNamePopUpWindowId(void);
+u8 AddMapNamePopUpWindow(void);
+void sub_8199F74(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 letterSpacing, u8 lineSpacing);
#endif // GUARD_MENU_H
diff --git a/include/menu_helpers.h b/include/menu_helpers.h
index e744c293c..387a89fdd 100644
--- a/include/menu_helpers.h
+++ b/include/menu_helpers.h
@@ -14,28 +14,27 @@ struct YesNoFuncTable
// Exported RAM declarations
// Exported ROM declarations
-
-void sub_812225C(u16 *, u16 *, u8, u8);
-void sub_8122298(u16 *, u16 *, u8, u8, u8);
-void sub_8121F68(u8 taskId, const struct YesNoFuncTable *data);
-bool8 sub_81221AC(void);
-bool8 sub_81221EC(void);
void ResetVramOamAndBgCntRegs(void);
-void SetVBlankHBlankCallbacksToNull(void);
void ResetAllBgsCoordinates(void);
+void SetVBlankHBlankCallbacksToNull(void);
+void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 arg2, u8 arg3, u8 fontId, u8 textSpeed, const u8 *string, void *taskFunc);
bool16 RunTextPrintersRetIsActive(u8 textPrinterId);
-void sub_8122344(void *arg0, u8 arg1);
-void LoadListMenuArrowsGfx(void);
-void sub_81223FC(u8 *a0, u8 count, u8 a2);
-void sub_8122448(u8 *a0, u8 count, u16 x, u16 y);
-void DisplayMessageAndContinueTask(u8 taskId, u8 arg1, u16 arg2, u8 arg3, u8 arg4, u8 textSpeed, const u8 *string, void *taskFunc);
+void sub_8121F68(u8 taskId, const struct YesNoFuncTable *data);
void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 arg2, u8 arg3, u8 arg4, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo);
+bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1);
u8 GetLRKeysState(void);
u8 sub_812210C(void);
-bool8 sub_81221EC(void);
+bool8 sub_8122148(u16 itemId);
+bool8 itemid_80BF6D8_mail_related(u16 itemId);
bool8 sub_81221AC(void);
-bool8 sub_8122148(u16);
-bool8 AdjustQuantityAccordingToDPadInput(s16*, u16);
-bool8 itemid_80BF6D8_mail_related(u16);
+bool8 sub_81221EC(void);
+void sub_812220C(struct ItemSlot *slots, u8 count, u8 *arg2, u8 *usedSlotsCount, u8 maxUsedSlotsCount);
+void sub_812225C(u16 *arg0, u16 *arg1, u8 arg2, u8 arg3);
+void sub_8122298(u16 *arg0, u16 *arg1, u8 arg2, u8 arg3, u8 arg4);
+void LoadListMenuArrowsGfx(void);
+void sub_8122344(u8 *spriteIds, u8 count);
+void sub_81223B0(u8 *spriteIds, u8 count);
+void sub_81223FC(u8 *spriteIds, u8 count, bool8 invisible);
+void sub_8122448(u8 *spriteIds, u8 count, s16 x, u16 y);
#endif //GUARD_MENU_HELPERS_H
diff --git a/include/menu_indicators.h b/include/menu_indicators.h
deleted file mode 100644
index a099cffab..000000000
--- a/include/menu_indicators.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef GUARD_MENU_INDICATORS_H
-#define GUARD_MENU_INDICATORS_H
-
-// Exported type declarations
-
-// Exported RAM declarations
-
-// Exported ROM declarations
-
-struct ArrowStruct
-{
- u8 unk0[6];
- u16 unk6[4];
- u8 unkE;
-};
-
-struct CursorStruct
-{
- u8 unk0;
- u8 unk1;
- u16 unk2;
- u16 unk4;
- u16 unk6;
- u16 unk8;
- u8 unkA;
-};
-
-void Task_ScrollIndicatorArrowPairOnMainMenu(u8);
-u8 AddScrollIndicatorArrowPairParametrized(u8, u8, u8, u8, s32, u16, u16, u16 *);
-void RemoveScrollIndicatorArrowPair(u8);
-u8 AddScrollIndicatorArrowPair(const struct ArrowStruct*, void*);
-void sub_81AF15C(u8, u8, u8);
-void ListMenuRemoveCursorObject(u8 taskId, u32 cursorKind);
-void ListMenuUpdateCursorObject(u8 taskId, u16 x, u16 y, u32 cursorKind);
-u8 ListMenuAddCursorObjectInternal(struct CursorStruct *cursor, u32 cursorKind);
-
-#endif //GUARD_MENU_INDICATORS_H
diff --git a/include/metatile_behavior.h b/include/metatile_behavior.h
index d6743b788..86a67ab3e 100644
--- a/include/metatile_behavior.h
+++ b/include/metatile_behavior.h
@@ -1,7 +1,7 @@
#ifndef GUARD_METATILE_BEHAVIOR
#define GUARD_METATILE_BEHAVIOR
-bool8 ShouldDoJumpLandingDustEffect(u8);
+bool8 MetatileBehavior_IsATile(u8);
bool8 MetatileBehavior_IsEncounterTile(u8);
bool8 MetatileBehavior_IsJumpEast(u8);
bool8 MetatileBehavior_IsJumpWest(u8);
@@ -74,7 +74,7 @@ bool8 MetatileBehavior_IsPuddle(u8);
bool8 MetatileBehavior_IsTallGrass(u8);
bool8 MetatileBehavior_IsLongGrass(u8);
bool8 MetatileBehavior_IsBerryTreeSoil(u8);
-bool8 MetatileBehavior_IsAsh(u8);
+bool8 MetatileBehavior_IsAshGrass(u8);
bool8 MetatileBehavior_IsUnusedFootprintMetatile(u8);
bool8 MetatileBehavior_IsBridge(u8);
u8 MetatileBehavior_GetBridgeSth(u8);
diff --git a/include/mon_markings.h b/include/mon_markings.h
new file mode 100644
index 000000000..852e8b4eb
--- /dev/null
+++ b/include/mon_markings.h
@@ -0,0 +1,24 @@
+#ifndef POKEEMERALD_MON_MARKINGS_H
+#define POKEEMERALD_MON_MARKINGS_H
+
+struct PokemonMarkMenu
+{
+ /*0x0000*/ u16 baseTileTag;
+ /*0x0002*/ u16 basePaletteTag;
+ /*0x0004*/ u8 markings; // bit flags
+ /*0x0005*/ s8 cursorPos;
+ /*0x0006*/ bool8 markingsArray[4];
+ /*0x000A*/ u8 cursorBaseY;
+ /*0x000B*/ bool8 spriteSheetLoadRequired;
+ /*0x000C*/ struct Sprite *menuWindowSprites[2]; // upper and lower halves of menu window
+ /*0x0014*/ struct Sprite *menuMarkingSprites[4];
+ /*0x0024*/ struct Sprite *unkSprite;
+ /*0x0028*/ struct Sprite *menuTextSprite;
+ /*0x002C*/ const u8 *frameTiles;
+ /*0x0030*/ const u16 *framePalette;
+ /*0x0034*/ u8 menuWindowSpriteTiles[0x1000];
+ /*0x1034*/ u8 filler1030[0x80];
+ /*0x10B4*/ u8 tileLoadState;
+}; // 10b8
+
+#endif //POKEEMERALD_MON_MARKINGS_H
diff --git a/include/new_game.h b/include/new_game.h
index 2088d1826..7e1169ec3 100644
--- a/include/new_game.h
+++ b/include/new_game.h
@@ -4,12 +4,7 @@
void WriteUnalignedWord(u32 var, u8 *dataPtr);
u32 ReadUnalignedWord(u8* dataPtr);
void CopyUnalignedWord(u8 *copyTo, u8 *copyFrom);
-void InitPlayerTrainerId(void);
-void SetDefaultOptions(void);
-void ClearPokedexFlags(void);
-void WarpToTruck(void);
void NewGameInitData(void);
-void ResetMiniGamesResults(void);
void sub_808447C(void);
void Sav2_ClearSetDefault(void);
diff --git a/include/overworld.h b/include/overworld.h
index 7f0a1795f..341e44278 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -7,17 +7,25 @@ struct UnkPlayerStruct
u8 player_field_1;
};
-struct LinkPlayerMapObject
+struct LinkPlayerEventObject
{
u8 active;
u8 linkPlayerId;
- u8 mapObjId;
+ u8 eventObjId;
u8 mode;
};
+// Exported RAM declarations
extern struct WarpData gUnknown_020322DC;
-extern struct LinkPlayerMapObject gLinkPlayerMapObjects[4];
+extern struct LinkPlayerEventObject gLinkPlayerEventObjects[4];
+extern u16 *gBGTilemapBuffers1;
+extern u16 *gBGTilemapBuffers2;
+extern u16 *gBGTilemapBuffers3;
+
+extern void (*gFieldCallback)(void);
+
+// Exported ROM declarations
extern const struct UCoords32 gUnknown_08339D64[];
void DoWhiteOut(void);
@@ -29,17 +37,17 @@ void IncrementGameStat(u8 index);
u32 GetGameStat(u8 index);
void SetGameStat(u8 index, u32 value);
void ApplyNewEncryptionKeyToGameStats(u32 newKey);
-void LoadMapObjTemplatesFromHeader(void);
-void LoadSaveblockMapObjScripts(void);
-void Overworld_SetMapObjTemplateCoords(u8 localId, s16 x, s16 y);
-void Overworld_SetMapObjTemplateMovementType(u8 localId, u8 movementType);
-const struct MapData *get_mapdata_header(void);
+void LoadEventObjTemplatesFromHeader(void);
+void LoadSaveblockEventObjScripts(void);
+void Overworld_SetEventObjTemplateCoords(u8 localId, s16 x, s16 y);
+void Overworld_SetEventObjTemplateMovementType(u8 localId, u8 movementType);
+const struct MapLayout *GetMapLayout(void);
void ApplyCurrentWarp(void);
void set_warp2_warp3_to_neg_1(void);
void SetWarpData(struct WarpData *warp, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
bool32 warp_data_is_not_neg_1(struct WarpData *warp);
-const struct MapHeader *Overworld_GetMapHeaderByGroupAndId(u16 mapGroup, u16 mapNum);
-const struct MapHeader *warp1_get_mapheader(void);
+struct MapHeader const *const Overworld_GetMapHeaderByGroupAndId(u16 mapGroup, u16 mapNum);
+struct MapHeader const *const warp1_get_mapheader(void);
void set_current_map_header_from_sav1_save_old_name(void);
void LoadSaveblockMapHeader(void);
void update_camera_pos_from_warpid(void);
@@ -74,7 +82,7 @@ bool32 Overworld_IsBikingAllowed(void);
void SetDefaultFlashLevel(void);
void Overworld_SetFlashLevel(s32 flashLevel);
u8 Overworld_GetFlashLevel(void);
-void sub_8085524(u16 mapDataId);
+void sub_8085524(u16 mapLayoutId);
void sub_8085540(u8 var);
u8 sub_808554C(void);
u16 GetLocationMusic(struct WarpData *warp);
@@ -95,7 +103,7 @@ u8 GetMapTypeByGroupAndId(s8 mapGroup, s8 mapNum);
u8 GetMapTypeByWarpData(struct WarpData *warp);
u8 Overworld_GetMapTypeOfSaveblockLocation(void);
u8 get_map_light_from_warp0(void);
-bool8 is_light_level_1_2_3_5_or_6(u8 mapType);
+bool8 is_map_type_1_2_3_5_or_6(u8 mapType);
bool8 Overworld_MapTypeAllowsTeleportAndFly(u8 mapType);
bool8 Overworld_MapTypeIsIndoors(u8 mapType);
u8 sav1_saved_warp2_map_get_name(void);
@@ -118,8 +126,8 @@ void CB2_ReturnToFieldLocal(void);
void CB2_ReturnToFieldLink(void);
void c2_8056854(void);
void CB2_ReturnToFieldWithOpenMenu(void);
-void sub_80861B0(void);
void CB2_ReturnToFieldContinueScript(void);
+void CB2_ReturnToFieldContinueScriptPlayMapMusic(void);
void sub_80861E8(void);
void CB2_ContinueSavedGame(void);
void sub_8086C2C(void);
@@ -133,6 +141,6 @@ bool32 sub_8087598(void);
bool32 sub_80875C8(void);
bool32 sub_8087634(void);
bool32 sub_808766C(void);
-void ZeroAllLinkPlayerMapObjects(void);
+void ClearLinkPlayerEventObjects(void);
#endif // GUARD_OVERWORLD_H
diff --git a/include/palette.h b/include/palette.h
index 41cef4048..d14fa1fcd 100644
--- a/include/palette.h
+++ b/include/palette.h
@@ -1,8 +1,6 @@
#ifndef GUARD_PALETTE_H
#define GUARD_PALETTE_H
-#include "global.h"
-
#define gPaletteFade_selectedPalettes (gPaletteFade.multipurpose1) // normal and fast fade
#define gPaletteFade_blendCnt (gPaletteFade.multipurpose1) // hardware fade
#define gPaletteFade_delay (gPaletteFade.multipurpose2) // normal and hardware fade
@@ -26,16 +24,16 @@ struct PaletteFadeControl
u16 y:5; // blend coefficient
u16 targetY:5; // target blend coefficient
u16 blendColor:15;
- u16 active:1;
+ bool16 active:1;
u16 multipurpose2:6;
- u16 yDec:1; // whether blend coefficient is decreasing
- u16 bufferTransferDisabled:1;
+ bool16 yDec:1; // whether blend coefficient is decreasing
+ bool16 bufferTransferDisabled:1;
u16 mode:2;
- u16 shouldResetBlendRegisters:1;
- u16 hardwareFadeFinishing:1;
+ bool16 shouldResetBlendRegisters:1;
+ bool16 hardwareFadeFinishing:1;
u16 softwareFadeFinishingCounter:5;
- u16 softwareFadeFinishing:1;
- u16 objPaletteToggle:1;
+ bool16 softwareFadeFinishing:1;
+ bool16 objPaletteToggle:1;
u8 deltaY:4; // rate of change of blend coefficient
};
diff --git a/include/party_menu.h b/include/party_menu.h
index 1ce12d98f..cb2c38891 100644
--- a/include/party_menu.h
+++ b/include/party_menu.h
@@ -1,6 +1,8 @@
#ifndef GUARD_PARTY_MENU_H
#define GUARD_PARTY_MENU_H
+
#include "task.h"
+
enum
{
AILMENT_NONE,
@@ -11,6 +13,16 @@ enum
AILMENT_BRN
};
+enum
+{
+ PARTY_CHOOSE_MON,
+ PARTY_MUST_CHOOSE_MON,
+ PARTY_CANT_SWITCH,
+ PARTY_USE_ITEM_ON,
+ PARTY_ABILITY_PREVENTS,
+ PARTY_GIVE_ITEM,
+};
+
struct Struct203CEC8
{
u8 filler[0x9];
@@ -22,13 +34,15 @@ struct Struct203CEC8
extern struct Struct203CEC8 gUnknown_0203CEC8;
+extern const u16 gUnknown_0861500C[];
+
bool8 pokemon_has_move(struct Pokemon *, u16);
void sub_81B58A8(void);
void DoWallyTutorialBagMenu(void);
u8 pokemon_ailments_get_primary(u32 status);
u8 *GetMonNickname(struct Pokemon *mon, u8 *dst);
u8 GetCursorSelectionMonId(void);
-bool8 FieldCallback_Teleport(void);
+bool8 FieldCallback_PrepareFadeInFromMenu(void);
void sub_81B7F60(void);
void sub_81B0FCC(u8 partyIdx, u8 a);
@@ -37,5 +51,11 @@ void display_pokemon_menu_message(u8 windowId);
void sub_81B1F18(u8 taskId, u8 pokemonIdx, s8 a, s16 hp, TaskFunc func);
void sub_81B1B5C(void *a, u8 b);
u8 sub_81B1BD4();
+void sub_81B8448();
+void sub_81B8518(u8 unused);
+u8 sub_81B1360(void);
+void sub_81B8904(u8 arg0, void (*callback)(void));
+void OpenPartyMenuInBattle(u8 caseId);
+u16 ItemIdToBattleMoveId(u16 itemId);
#endif // GUARD_PARTY_MENU_H
diff --git a/include/player_pc.h b/include/player_pc.h
index cc2e85b2b..bd060faa8 100644
--- a/include/player_pc.h
+++ b/include/player_pc.h
@@ -1,13 +1,88 @@
#ifndef GUARD_PLAYER_PC_H
#define GUARD_PLAYER_PC_H
+// local task defines
+#define PAGE_INDEX data[0]
+#define ITEMS_ABOVE_TOP data[1]
+#define NUM_ITEMS data[1]
+#define NUM_QUANTITY_ROLLER data[3]
+#define NUM_PAGE_ITEMS data[4]
+// not used
+#define CURRENT_ITEM_STORAGE_MENU data[3]
+// not used
+#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
+{
+ PC_ITEM_ID,
+ PC_QUANTITY
+};
+
+// player PC menu options
+enum
+{
+ PLAYERPC_MENU_ITEMSTORAGE,
+ PLAYERPC_MENU_MAILBOX,
+ PLAYERPC_MENU_DECORATION,
+ PLAYERPC_MENU_TURNOFF
+};
+
+// item storage menus
+enum
+{
+ ITEMPC_MENU_WITHDRAW,
+ ITEMPC_MENU_DEPOSIT,
+ ITEMPC_MENU_TOSS,
+ ITEMPC_MENU_EXIT
+};
+
+// mailbox mail options
+enum
+{
+ MAILBOX_READ,
+ MAILBOX_MOVE_TO_BAG,
+ MAILBOX_GIVE,
+ MAILBOX_CANCEL,
+};
+
+// special item description handlers
+enum
+{
+ ITEMPC_SWITCH_WHICH_ITEM = 0xFFF7,
+ ITEMPC_OKAY_TO_THROW_AWAY,
+ ITEMPC_TOO_IMPORTANT,
+ ITEMPC_NO_MORE_ROOM,
+ ITEMPC_THREW_AWAY_ITEM,
+ ITEMPC_HOW_MANY_TO_TOSS,
+ ITEMPC_WITHDREW_THING,
+ ITEMPC_HOW_MANY_TO_WITHDRAW,
+ ITEMPC_GO_BACK_TO_PREV
+};
+
+struct PlayerPCItemPageStruct
+{
+ u16 cursorPos;
+ u16 itemsAbove;
+ u8 pageItems;
+ u8 count;
+ u8 filler[3];
+ u8 scrollIndicatorId;
+};
+
// Exported type declarations
// Exported RAM declarations
+extern struct PlayerPCItemPageStruct playerPCItemPageInfo;
// Exported ROM declarations
+extern const struct MenuAction gMailboxMailOptions[];
-void sub_816B060(u8 taskId);
+void ReshowPlayerPC(u8 taskId);
void sub_816B31C(void);
#endif //GUARD_PLAYER_PC_H
diff --git a/include/pokedex.h b/include/pokedex.h
index 19e1162e2..f9e236588 100644
--- a/include/pokedex.h
+++ b/include/pokedex.h
@@ -2,7 +2,7 @@
#define GUARD_POKEDEX_H
void ResetPokedex(void);
-void CopyMonCategoryText(u16 species, u8 *dst);
+void CopyMonCategoryText(u32 species, u8 *dst);
u16 GetPokedexHeightWeight(u16 dexNum, u8 data);
u16 GetNationalPokedexCount(u8);
u16 GetHoennPokedexCount(u8);
diff --git a/include/pokedex_area_screen.h b/include/pokedex_area_screen.h
new file mode 100755
index 000000000..2fb5ade51
--- /dev/null
+++ b/include/pokedex_area_screen.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_POKEDEX_AREA_SCREEN_H
+#define GUARD_POKEDEX_AREA_SCREEN_H
+
+void sub_813D3D8(u16, u8*);
+
+#endif // GUARD_POKEDEX_AREA_SCREEN_H
diff --git a/include/pokedex_cry_screen.h b/include/pokedex_cry_screen.h
new file mode 100755
index 000000000..6b5cc13f2
--- /dev/null
+++ b/include/pokedex_cry_screen.h
@@ -0,0 +1,19 @@
+#ifndef GUARD_POKEDEX_CRY_SCREEN_H
+#define GUARD_POKEDEX_CRY_SCREEN_H
+
+struct CryRelatedStruct
+{
+ u16 unk0;
+ u8 unk2;
+ u8 paletteNo;
+ u8 xPos;
+ u8 yPos;
+};
+
+bool8 sub_8145354(struct CryRelatedStruct*, u8);
+void sub_814545C(u8);
+void sub_8145534(u16);
+void sub_8145914(void);
+bool8 sub_8145850(struct CryRelatedStruct*, u8);
+
+#endif
diff --git a/include/pokemon.h b/include/pokemon.h
index cd79a217d..a60ad66be 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -240,33 +240,6 @@ struct PokemonStorage
/*0x83C2*/ u8 boxWallpapers[14];
};
-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;
-};
-
struct UnknownPokemonSubStruct2
{
u16 species;
@@ -465,7 +438,7 @@ extern u8 gPlayerPartyCount;
extern struct Pokemon gPlayerParty[PARTY_SIZE];
extern u8 gEnemyPartyCount;
extern struct Pokemon gEnemyParty[PARTY_SIZE];
-extern struct SpriteTemplate gUnknown_0202499C;
+extern struct SpriteTemplate gMultiuseSpriteTemplate;
extern struct PokemonStorage* gPokemonStoragePtr;
extern const struct BattleMove gBattleMoves[];
@@ -482,6 +455,7 @@ extern const u8 gUnknown_08329D2A[];
extern const u8 gStatStageRatios[][2];
extern const u16 gUnknown_08329D54[];
extern const struct SpriteTemplate gUnknown_08329D98[];
+extern const struct CompressedSpritePalette gMonPaletteTable[];
void ZeroBoxMonData(struct BoxPokemon *boxMon);
void ZeroMonData(struct Pokemon *mon);
@@ -531,9 +505,9 @@ u8 GetDefaultMoveTarget(u8 battlerId);
u8 GetMonGender(struct Pokemon *mon);
u8 GetBoxMonGender(struct BoxPokemon *boxMon);
u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality);
-void sub_806A068(u16 species, u8 battlerPosition);
-void sub_806A12C(u16 trainerSpriteId, u8 battlerPosition);
-void sub_806A1C0(u16 arg0, u8 battlerPosition);
+void SetMultiuseSpriteTemplateToPokemon(u16 species, u8 battlerPosition);
+void SetMultiuseSpriteTemplateToTrainerBack(u16 trainerSpriteId, u8 battlerPosition);
+void SetMultiuseSpriteTemplateToTrainerFront(u16 arg0, u8 battlerPosition);
// These are full type signatures for GetMonData() and GetBoxMonData(),
// but they are not used since some code erroneously omits the third arg.
@@ -582,7 +556,7 @@ void sub_806D544(u16 species, u32 personality, u8 *dest);
void DrawSpindaSpots(u16 species, u32 personality, u8 *dest, u8 a4);
void EvolutionRenameMon(struct Pokemon *mon, u16 oldSpecies, u16 newSpecies);
bool8 sub_806D7EC(void);
-bool16 sub_806D82C(u8 id);
+bool16 GetLinkTrainerFlankId(u8 id);
s32 GetBattlerMultiplayerId(u16 a1);
u8 GetTrainerEncounterMusicId(u16 trainerOpponentId);
u16 ModifyStatByNature(u8 nature, u16 n, u8 statIndex);
@@ -619,7 +593,7 @@ bool8 IsTradedMon(struct Pokemon *mon);
bool8 IsOtherTrainer(u32 otId, u8 *otName);
void MonRestorePP(struct Pokemon *mon);
void BoxMonRestorePP(struct BoxPokemon *boxMon);
-void sub_806E994(void);
+void SetMonPreventsSwitchingString(void);
void SetWildMonHeldItem(void);
bool8 IsMonShiny(struct Pokemon *mon);
bool8 IsShinyOtIdPersonality(u32 otId, u32 personality);
diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h
index e7fc81ce4..f1c8a3e61 100644
--- a/include/pokemon_icon.h
+++ b/include/pokemon_icon.h
@@ -1,15 +1,20 @@
#ifndef GUARD_POKEMON_ICON_H
#define GUARD_POKEMON_ICON_H
+const u8 *GetMonIconTiles(u16 species, bool32);
const u8 *GetMonIconPtr(u16 speciesId, u32 personality, u32 frameNo);
const u16 *GetValidMonIconPalettePtr(u16 speciesId);
u16 GetUnownLetterByPersonality(u32 personality);
u16 sub_80D2E84(u16 speciesId);
-void sub_80D2F04(void);
-void sub_80D2F68(u16 iconId);
-u8 sub_80D2D78(u16 iconId, void callback(struct Sprite *), u16 x, u16 y, u16 a4, u8 a5);
-void sub_80D2FF0(u16 iconId);
+void LoadMonIconPalettes(void);
+void LoadMonIconPalette(u16 species);
+void FreeMonIconPalettes(void);
+u8 sub_80D2D78(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, bool32 extra);
+void FreeMonIconPalette(u16 species);
void sub_80D2EF8(struct Sprite *sprite);
-u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, int a7);
+u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, bool32 extra);
+u8 UpdateMonIconFrame(struct Sprite *sprite);
+void LoadMonIconPalette(u16 species);
+void sub_80D328C(struct Sprite *sprite);
#endif // GUARD_POKEMON_ICON_H
diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h
index 9fcfdba96..990331e86 100644
--- a/include/pokemon_storage_system.h
+++ b/include/pokemon_storage_system.h
@@ -9,5 +9,7 @@ struct BoxPokemon *GetBoxedMonPtr(u8, u8);
void SetBoxMonNickFromAnyBox(u8, u8, u8 *);
void CompactPartySlots(void);
u32 GetBoxMonDataFromAnyBox(u8 boxId, u8 monPosition, u32 request);
+bool8 CheckFreePokemonStorageSpace(void);
+u8 StorageGetCurrentBox(void);
#endif // GUARD_POKEMON_STORAGE_SYSTEM_H
diff --git a/include/pokenav.h b/include/pokenav.h
index ebe3b325c..2bca4db94 100644
--- a/include/pokenav.h
+++ b/include/pokenav.h
@@ -1,5 +1,6 @@
#ifndef GUARD_POKENAV_H
#define GUARD_POKENAV_H
+#include "player_pc.h"
bool8 sub_81D5C18(void);
bool8 sub_81D20BC(void *arg0);
@@ -13,5 +14,14 @@ void sub_81D3480(void *arg0, u8 arg1);
void sub_81D2754(void *arg0, void *arg1);
void sub_81D1F84(void *arg0, void *arg1, void *arg2);
const u8 *sub_81D62AC(void);
+u8 sub_81D1C84(u8);
+u8 sub_81D1DC0(struct PlayerPCItemPageStruct *);
+void sub_81D1E90(struct PlayerPCItemPageStruct *);
+void sub_81D1EC0(void);
+void sub_81D1D04(u8);
+bool8 sub_81D1C44(u8);
+void sub_81D5FB4(u16*);
+bool8 sub_81D4A58(struct EventObject*);
+
#endif //GUARD_POKENAV_H
diff --git a/include/record_mixing.h b/include/record_mixing.h
new file mode 100644
index 000000000..3cd4d649e
--- /dev/null
+++ b/include/record_mixing.h
@@ -0,0 +1,35 @@
+#ifndef GUARD_RECORD_MIXING_H
+#define GUARD_RECORD_MIXING_H
+
+// Exported type declarations
+struct UnkRecordMixingStruct2a
+{
+ u8 playerId[4];
+ u16 field_4;
+ u8 playerName[PLAYER_NAME_LENGTH];
+ u8 language;
+};
+
+struct UnkRecordMixingStruct2b
+{
+ u8 playerId1[4];
+ u8 playerId2[4];
+ u16 field_8;
+ u8 playerName1[PLAYER_NAME_LENGTH];
+ u8 playerName2[PLAYER_NAME_LENGTH];
+ u8 language;
+};
+
+struct UnkRecordMixingStruct2
+{
+ struct UnkRecordMixingStruct2a field_0[9][2];
+ struct UnkRecordMixingStruct2b field_120[2];
+};
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+void sub_80E6BE8(void);
+void sub_80E8260(struct UnkRecordMixingStruct2 *arg0);
+
+#endif //GUARD_RECORD_MIXING_H
diff --git a/include/recorded_battle.h b/include/recorded_battle.h
index 8b1fa258d..81c88a15e 100644
--- a/include/recorded_battle.h
+++ b/include/recorded_battle.h
@@ -16,7 +16,7 @@ void sub_81851A8(u8 *arg0);
bool32 CanCopyRecordedBattleSaveData(void);
u32 MoveRecordedBattleToSaveData(void);
void PlayRecordedBattle(void (*CB2_After)(void));
-u8 sub_8185EA0(void);
+u8 GetRecordedBattleFrontierFacility(void);
u8 sub_8185EAC(void);
void RecordedBattle_SaveParties(void);
u8 GetActiveBattlerLinkPlayerGender(void);
diff --git a/include/rom6.h b/include/rom6.h
index 058504fe2..96c3b3ca2 100644
--- a/include/rom6.h
+++ b/include/rom6.h
@@ -12,7 +12,7 @@ void UpdateFrontierManiac(u16 days);
void UpdateFrontierGambler(u16 days);
void SetShoalItemFlag(u16 days);
-bool8 npc_before_player_of_type(u8);
+bool8 CheckObjectGraphicsInFrontOfPlayer(u8);
u8 oei_task_add(void);
#endif //GUARD_ROM6_H
diff --git a/include/rom_8011DC0.h b/include/rom_8011DC0.h
index fd8c35f56..f71e5d97d 100644
--- a/include/rom_8011DC0.h
+++ b/include/rom_8011DC0.h
@@ -8,5 +8,6 @@
// Exported ROM declarations
void sub_8018438(void);
+u16 mevent_081445C0(u8);
#endif //GUARD_rom_8011DC0_H
diff --git a/include/rom_8034C54.h b/include/rom_8034C54.h
new file mode 100644
index 000000000..9ad84ca13
--- /dev/null
+++ b/include/rom_8034C54.h
@@ -0,0 +1,26 @@
+#ifndef GUARD_ROM_8034C54_H
+#define GUARD_ROM_8034C54_H
+
+struct UnkStruct3
+{
+ u8 field_0_0:2;
+ u8 shape:2;
+ u8 size:2;
+ u8 priority:2;
+ u8 field_1;
+ u8 xDelta;
+ s16 x;
+ s16 y;
+ const struct SpriteSheet *spriteSheet;
+ const struct SpritePalette *spritePal;
+};
+
+bool32 sub_8034C54(u32 count);
+void sub_8034CC8(void);
+bool32 sub_8034D14(u32 id, s32 arg1, const struct UnkStruct3 *arg2);
+void sub_8035044(u32 id, s32 arg1);
+void sub_80353DC(u32 id);
+void sub_803547C(u32 id, bool32 arg1);
+u8 sub_80355F8(u32 arg0, u32 arg1);
+
+#endif // GUARD_ROM_8034C54_H
diff --git a/include/rom_81BE66C.h b/include/rom_81BE66C.h
index 5b4f80249..900daf4e7 100644
--- a/include/rom_81BE66C.h
+++ b/include/rom_81BE66C.h
@@ -6,7 +6,7 @@
#define GUARD_ROM_81BE66C_H
bool32 InTrainerHill(void);
-bool8 FieldObjectIsFarawayIslandMew(struct MapObject *);
+bool8 EventObjectIsFarawayIslandMew(struct EventObject *);
u32 sub_81D427C(void);
#endif //GUARD_ROM_81BE66C_H
diff --git a/include/rotating_gate.h b/include/rotating_gate.h
new file mode 100644
index 000000000..50a838953
--- /dev/null
+++ b/include/rotating_gate.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_ROTATING_GATE_H
+#define GUARD_ROTATING_GATE_H
+
+void RotatingGatePuzzleCameraUpdate(s16, s16);
+void RotatingGate_InitPuzzleAndGraphics();
+u32 CheckForRotatingGatePuzzleCollision(u8, s16, s16);
+
+#endif // GUARD_ROTATING_GATE_H
diff --git a/include/save.h b/include/save.h
index f06db2955..7b271129a 100644
--- a/include/save.h
+++ b/include/save.h
@@ -90,6 +90,9 @@ u8 sub_8153430(void);
bool8 sub_8153474(void);
u8 Save_LoadGameData(u8 a1);
u16 sub_815355C(void);
+u8 sub_81534D0(u8);
+u8 sub_8153430(void);
+bool8 sub_8153474(void);
u32 TryCopySpecialSaveSection(u8 sector, u8* dst);
u32 sub_8153634(u8 sector, u8* src);
void sub_8153688(u8 taskId);
diff --git a/include/script_menu.h b/include/script_menu.h
index 717eda041..c50bef00f 100644
--- a/include/script_menu.h
+++ b/include/script_menu.h
@@ -9,5 +9,9 @@ bool8 ScriptMenu_YesNo(u8 var1, u8 var2);
bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 a4, u8 columnCount);
bool8 ScriptMenu_ShowPokemonPic(u16 var1, u8 var2, u8 var3);
bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void);
+s32 convert_pixel_width_to_tile_width(s32);
+u8 CreateWindowFromRect(u8, u8, u8, u8);
+void sub_80E2A78(u8);
+u32 display_text_and_get_width(const u8*, u32);
#endif //GUARD_SCRIPT_MENU_H
diff --git a/include/secret_base.h b/include/secret_base.h
index b2502889c..c20533698 100644
--- a/include/secret_base.h
+++ b/include/secret_base.h
@@ -8,7 +8,13 @@
// Exported ROM declarations
void sub_80E9578(void);
void sub_80E980C(void);
+void sub_80EB18C(struct SecretBaseRecord *dest);
+void sub_80E9914(void);
u8 *GetSecretBaseMapName(u8 *dest);
const u8 *GetSecretBaseTrainerLoseText(void);
+void sub_80E8EE0(struct MapEvents const *events);
+void sub_80E9238(u8 flagIn);
+bool8 CurrentMapIsSecretBase(void);
+void sub_80EA3E4(u8 taskId);
#endif //GUARD_SECRET_BASE_H
diff --git a/include/sprite.h b/include/sprite.h
index b5a1b6ae5..f972d09cc 100644
--- a/include/sprite.h
+++ b/include/sprite.h
@@ -2,6 +2,7 @@
#define GUARD_SPRITE_H
#define MAX_SPRITES 64
+#define SPRITE_INVALID_TAG 0xFFFF
struct SpriteSheet
{
@@ -186,29 +187,29 @@ struct Sprite
/*0x2A*/ u8 animNum;
/*0x2B*/ u8 animCmdIndex;
/*0x2C*/ u8 animDelayCounter:6;
- u8 animPaused:1;
- u8 affineAnimPaused:1;
+ bool8 animPaused:1;
+ bool8 affineAnimPaused:1;
/*0x2D*/ u8 animLoopCounter;
// general purpose data fields
/*0x2E*/ s16 data[8];
- /*0x3E*/ u16 inUse:1; //1
- u16 coordOffsetEnabled:1; //2
- u16 invisible:1; //4
- u16 flags_3:1; //8
- u16 flags_4:1; //0x10
- u16 flags_5:1; //0x20
- u16 flags_6:1; //0x40
- u16 flags_7:1; //0x80
- /*0x3F*/ u16 hFlip:1; //1
- u16 vFlip:1; //2
- u16 animBeginning:1; //4
- u16 affineAnimBeginning:1; //8
- u16 animEnded:1; //0x10
- u16 affineAnimEnded:1; //0x20
- u16 usingSheet:1; //0x40
- u16 flags_f:1; //0x80
+ /*0x3E*/ bool16 inUse:1; //1
+ bool16 coordOffsetEnabled:1; //2
+ bool16 invisible:1; //4
+ bool16 flags_3:1; //8
+ bool16 flags_4:1; //0x10
+ bool16 flags_5:1; //0x20
+ bool16 flags_6:1; //0x40
+ bool16 flags_7:1; //0x80
+ /*0x3F*/ bool16 hFlip:1; //1
+ bool16 vFlip:1; //2
+ bool16 animBeginning:1; //4
+ bool16 affineAnimBeginning:1; //8
+ bool16 animEnded:1; //0x10
+ bool16 affineAnimEnded:1; //0x20
+ bool16 usingSheet:1; //0x40
+ bool16 flags_f:1; //0x80
/*0x40*/ u16 sheetTileStart;
@@ -229,6 +230,7 @@ struct OamMatrix
extern const struct OamData gDummyOamData;
extern const union AnimCmd *const gDummySpriteAnimTable[];
extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[];
+extern const struct SpriteTemplate gDummySpriteTemplate;
extern s16 gSpriteCoordOffsetX;
extern s16 gSpriteCoordOffsetY;
diff --git a/include/start_menu.h b/include/start_menu.h
index 6c7cb3237..5551b149d 100644
--- a/include/start_menu.h
+++ b/include/start_menu.h
@@ -1,6 +1,16 @@
#ifndef GUARD_START_MENU_H
#define GUARD_START_MENU_H
+extern bool8 (*gMenuCallback)(void); // Defined in sym_common.txt
+
+void sub_809FA18(void);
+void sub_809FA34(u8 taskId);
+void ShowStartMenu(void);
+void sub_809FDD4(void);
+void SaveGame(void);
+void sub_80A0514(void);
+void sub_80A08CC(void);
+void HideStartMenu(void);
void AppendToList(u8* list, u8* pos, u8 newEntry);
#endif // GUARD_START_MENU_H
diff --git a/include/strings.h b/include/strings.h
index ceb994900..528f70f69 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -74,6 +74,10 @@ extern const u8 gText_DecorationWillBeDiscarded[];
extern const u8 gText_CantThrowAwayInUse[];
extern const u8 gText_DecorationThrownAway[];
+extern const u8 gText_PokeBalls[];
+extern const u8 gText_Berries[];
+extern const u8 gText_Berry[];
+
extern const u8 gText_Desk[];
extern const u8 gText_Chair[];
extern const u8 gText_Plant[];
@@ -106,6 +110,8 @@ extern const u8 gText_MoveCloserToLinkPartner[];
extern const u8 gText_CommErrorCheckConnections[];
extern const u8 gText_ABtnTitleScreen[];
extern const u8 gText_ABtnRegistrationCounter[];
+extern const u8 gText_MixingRecords[];
+extern const u8 gText_RecordMixingComplete[];
extern const u8 gText_EmptyString2[];
extern const u8 gText_Confirm3[];
extern const u8 gText_Cancel4[];
@@ -197,6 +203,23 @@ extern const u8 gText_Peak[];
extern const u8 gText_SafariBallStock[];
extern const u8 gText_BattlePyramidFloor[];
+// save menu texts
+extern const u8 gText_ConfirmSave[];
+extern const u8 gText_DifferentSaveFile[];
+extern const u8 gText_AlreadySavedFile[];
+extern const u8 gText_SavingDontTurnOff[];
+extern const u8 gText_PlayerSavedGame[];
+extern const u8 gText_SaveError[];
+extern const u8 gText_SavingDontTurnOffPower[];
+extern const u8 gText_SavingPlayer[];
+extern const u8 gText_SavingBadges[];
+extern const u8 gText_SavingPokedex[];
+extern const u8 gText_SavingTime[];
+
+// Battle pyramid menu texts
+extern const u8 gText_BattlePyramidConfirmRest[];
+extern const u8 gText_BattlePyramidConfirmRetire[];
+
// option menu texts
extern const u8 gText_TextSpeedSlow[];
extern const u8 gText_TextSpeedMid[];
@@ -319,7 +342,7 @@ extern const u8 gText_Var1DotVar2[];
extern const u8 gText_ThreeMarks[];
extern const u8 gText_FirmSlash[];
-//item menu screen text
+// item menu screen text
extern const u8 gText_CloseBag[];
extern const u8 gText_ClearTo11Var1Clear5Var2[];
extern const u8 gText_UnkF908Var1Clear7Var2[];
@@ -345,11 +368,27 @@ extern const u8 gText_DepositedVar2Var1s[];
extern const u8 gText_NoRoomForItems[];
extern const u8 gText_ThreeDashes[];
-//party menu text
+// party menu text
extern const u8 gText_PkmnHPRestoredByVar2[];
extern const u8 gText_CantBeUsedOnPkmn[];
-//birch dex rating text
+//pokedex text
+extern const u8 gText_CryOf[];
+extern const u8 gText_SizeComparedTo[];
+extern const u8 gText_PokedexRegistration[];
+extern const u8 gText_UnkCtrlF908Clear01[];
+extern const u8 sText_TenDashes2[];
+extern const u8 gText_5MarksPokemon[];
+extern const u8 gText_UnkHeight[];
+extern const u8 gText_UnkWeight[];
+extern const u8 gText_HTHeight[];
+extern const u8 gText_WTWeight[];
+extern const u8 gText_SearchingPleaseWait[];
+extern const u8 gText_SearchCompleted[];
+extern const u8 gUnknown_085E8785[];
+extern const u8 gText_SelectorArrow[];
+
+// birch dex rating text
extern const u8 gBirchDexRatingText_LessThan10[];
extern const u8 gBirchDexRatingText_LessThan20[];
extern const u8 gBirchDexRatingText_LessThan30[];
@@ -372,4 +411,355 @@ extern const u8 gBirchDexRatingText_LessThan190[];
extern const u8 gBirchDexRatingText_LessThan200[];
extern const u8 gBirchDexRatingText_DexCompleted[];
+// player pc text
+extern const u8 gText_WhatWouldYouLike[];
+extern const u8 gText_NoMailHere[];
+
+extern const u8 gText_TakeOutItemsFromPC[];
+extern const u8 gText_StoreItemsInPC[];
+extern const u8 gText_ThrowAwayItemsInPC[];
+extern const u8 gText_GoBackPrevMenu[];
+
+extern const u8 gText_ItemStorage[];
+extern const u8 gText_Mailbox[];
+extern const u8 gText_Decoration[];
+extern const u8 gText_TurnOff[];
+
+extern const u8 gText_WithdrawItem[];
+extern const u8 gText_DepositItem[];
+extern const u8 gText_TossItem[];
+extern const u8 gText_Cancel[];
+
+extern const u8 gText_Read[];
+extern const u8 gText_MoveToBag[];
+extern const u8 gText_Give2[];
+extern const u8 gText_Cancel2[];
+
+extern const u8 gText_NoItems[];
+extern const u8 gText_WhatToDoWithVar1sMail[];
+extern const u8 gText_MessageWillBeLost[];
+extern const u8 gText_BagIsFull[];
+
+extern const u8 gText_MailToBagMessageErased[];
+extern const u8 gText_GoBackPrevMenu[];
+extern const u8 gText_WithdrawHowManyItems[];
+extern const u8 gText_WithdrawXItems[];
+extern const u8 gText_TossHowManyVar1s[];
+extern const u8 gText_ThrewAwayVar2Var1s[];
+extern const u8 gText_NoRoomInBag[];
+extern const u8 gText_TooImportantToToss[];
+extern const u8 gText_ConfirmTossItems[];
+extern const u8 gText_MoveVar1Where[];
+
+extern const u8 gText_Friend[];
+extern const u8 gText_Tristan[];
+extern const u8 gText_Philip[];
+extern const u8 gText_Dennis[];
+extern const u8 gText_Roberto[];
+extern const u8 gText_FiveMarks[];
+
+extern const u8 gText_TotalRecordWLD[];
+extern const u8 gText_PlayersBattleResults[];
+extern const u8 gText_WinLoseDraw[];
+
+extern const u8 gText_99TimesPlus[];
+extern const u8 gText_1MinutePlus[];
+extern const u8 gText_SpaceSeconds[];
+extern const u8 gText_SpaceTimes[];
+
+extern const u8 gText_BigGuy[];
+extern const u8 gText_BigGirl[];
+extern const u8 gText_Son[];
+extern const u8 gText_Daughter[];
+
+extern const u8 gText_1F[];
+extern const u8 gText_2F[];
+extern const u8 gText_3F[];
+extern const u8 gText_4F[];
+extern const u8 gText_5F[];
+extern const u8 gText_6F[];
+extern const u8 gText_7F[];
+extern const u8 gText_8F[];
+extern const u8 gText_9F[];
+extern const u8 gText_10F[];
+extern const u8 gText_11F[];
+extern const u8 gText_B1F[];
+extern const u8 gText_B2F[];
+extern const u8 gText_B3F[];
+extern const u8 gText_B4F[];
+extern const u8 gText_Rooftop[];
+extern const u8 gText_ElevatorNowOn[];
+
+extern const u8 gText_Exit[];
+
+extern const u8 gText_BlueFlute[];
+extern const u8 gText_YellowFlute[];
+extern const u8 gText_RedFlute[];
+extern const u8 gText_WhiteFlute[];
+extern const u8 gText_BlackFlute[];
+extern const u8 gText_PrettyChair[];
+extern const u8 gText_PrettyDesk[];
+extern const u8 gText_Exit[];
+
+extern const u8 gText_0Pts[];
+extern const u8 gText_10Pts[];
+extern const u8 gText_20Pts[];
+extern const u8 gText_30Pts[];
+extern const u8 gText_40Pts[];
+extern const u8 gText_50Pts[];
+extern const u8 gText_60Pts[];
+extern const u8 gText_70Pts[];
+extern const u8 gText_80Pts[];
+extern const u8 gText_90Pts[];
+extern const u8 gText_100Pts[];
+extern const u8 gText_QuestionMark[];
+
+extern const u8 gText_KissPoster16BP[];
+extern const u8 gText_KissCushion32BP[];
+extern const u8 gText_SmoochumDoll32BP[];
+extern const u8 gText_TogepiDoll48BP[];
+extern const u8 gText_MeowthDoll48BP[];
+extern const u8 gText_ClefairyDoll48BP[];
+extern const u8 gText_DittoDoll48BP[];
+extern const u8 gText_CyndaquilDoll80BP[];
+extern const u8 gText_ChikoritaDoll80BP[];
+extern const u8 gText_TotodileDoll80BP[];
+extern const u8 gText_Exit[];
+
+extern const u8 gText_LaprasDoll128BP[];
+extern const u8 gText_SnorlaxDoll128BP[];
+extern const u8 gText_VenusaurDoll256BP[];
+extern const u8 gText_CharizardDoll256BP[];
+extern const u8 gText_BlastoiseDoll256BP[];
+extern const u8 gText_Exit[];
+
+extern const u8 gText_Protein1BP[];
+extern const u8 gText_Calcium1BP[];
+extern const u8 gText_Iron1BP[];
+extern const u8 gText_Zinc1BP[];
+extern const u8 gText_Carbos1BP[];
+extern const u8 gText_HpUp1BP[];
+extern const u8 gText_Exit[];
+
+extern const u8 gText_Leftovers48BP[];
+extern const u8 gText_WhiteHerb48BP[];
+extern const u8 gText_QuickClaw48BP[];
+extern const u8 gText_MentalHerb48BP[];
+extern const u8 gText_BrightPowder64BP[];
+extern const u8 gText_ChoiceBand64BP[];
+extern const u8 gText_KingsRock64BP[];
+extern const u8 gText_FocusBand64BP[];
+extern const u8 gText_ScopeLens64BP[];
+extern const u8 gText_Exit[];
+
+extern const u8 gText_EnergyPowder50[];
+extern const u8 gText_EnergyRoot80[];
+extern const u8 gText_HealPowder50[];
+extern const u8 gText_RevivalHerb300[];
+extern const u8 gText_Protein1000[];
+extern const u8 gText_Iron1000[];
+extern const u8 gText_Carbos1000[];
+extern const u8 gText_Calcium1000[];
+extern const u8 gText_Zinc1000[];
+extern const u8 gText_HPUp1000[];
+extern const u8 gText_PPUp3000[];
+extern const u8 gText_Exit[];
+
+extern const u8 gText_BattleTower2[];
+extern const u8 gText_BattleDome[];
+extern const u8 gText_BattlePalace[];
+extern const u8 gText_BattleArena[];
+extern const u8 gText_BattleFactory[];
+extern const u8 gText_BattlePike[];
+extern const u8 gText_BattlePyramid[];
+extern const u8 gText_RankingHall[];
+extern const u8 gText_ExchangeService[];
+extern const u8 gText_Exit[];
+
+extern const u8 gText_Softboiled16BP[];
+extern const u8 gText_SeismicToss24BP[];
+extern const u8 gText_DreamEater24BP[];
+extern const u8 gText_MegaPunch24BP[];
+extern const u8 gText_MegaKick48BP[];
+extern const u8 gText_BodySlam48BP[];
+extern const u8 gText_RockSlide48BP[];
+extern const u8 gText_Counter48BP[];
+extern const u8 gText_ThunderWave48BP[];
+extern const u8 gText_SwordsDance48BP[];
+extern const u8 gText_Exit[];
+
+extern const u8 gText_DefenseCurl16BP[];
+extern const u8 gText_Snore24BP[];
+extern const u8 gText_MudSlap24BP[];
+extern const u8 gText_Swift24BP[];
+extern const u8 gText_IcyWind24BP[];
+extern const u8 gText_Endure48BP[];
+extern const u8 gText_PsychUp48BP[];
+extern const u8 gText_IcePunch48BP[];
+extern const u8 gText_ThunderPunch48BP[];
+extern const u8 gText_FirePunch48BP[];
+extern const u8 gText_Exit[];
+
+extern const u8 gText_SlateportCity[];
+extern const u8 gText_BattleFrontier[];
+extern const u8 gText_SouthernIsland[];
+extern const u8 gText_NavelRock[];
+extern const u8 gText_BirthIsland[];
+extern const u8 gText_FarawayIsland[];
+extern const u8 gText_Exit[];
+
+extern const u8 gText_BattleTrainers[];
+extern const u8 gText_BattleBasics[];
+extern const u8 gText_PokemonNature[];
+extern const u8 gText_PokemonMoves[];
+extern const u8 gText_Underpowered[];
+extern const u8 gText_WhenInDanger[];
+extern const u8 gText_Exit[];
+
+extern const u8 BattleFrontier_Lounge2_Text_260971[];
+extern const u8 BattleFrontier_Lounge2_Text_260A1E[];
+extern const u8 BattleFrontier_Lounge2_Text_260AE7[];
+extern const u8 BattleFrontier_Lounge2_Text_2619AC[];
+extern const u8 BattleFrontier_Lounge2_Text_261A91[];
+extern const u8 BattleFrontier_Lounge2_Text_261B0C[];
+extern const u8 BattleFrontier_Lounge2_Text_261B95[];
+extern const u8 BattleFrontier_Lounge2_Text_261B95[];
+extern const u8 BattleFrontier_Lounge2_Text_261B95[];
+extern const u8 BattleFrontier_Lounge2_Text_261C1A[];
+extern const u8 BattleFrontier_Lounge2_Text_261C1A[];
+extern const u8 BattleFrontier_Lounge2_Text_261C1A[];
+extern const u8 BattleFrontier_Lounge2_Text_260BC4[];
+extern const u8 BattleFrontier_Lounge2_Text_260C6D[];
+extern const u8 BattleFrontier_Lounge2_Text_260D3A[];
+extern const u8 BattleFrontier_Lounge2_Text_260E1E[];
+extern const u8 BattleFrontier_Lounge2_Text_260EC7[];
+extern const u8 BattleFrontier_Lounge2_Text_260F74[];
+extern const u8 BattleFrontier_Lounge2_Text_2614E6[];
+extern const u8 BattleFrontier_Lounge2_Text_261591[];
+extern const u8 BattleFrontier_Lounge2_Text_26166F[];
+extern const u8 BattleFrontier_Lounge2_Text_261282[];
+extern const u8 BattleFrontier_Lounge2_Text_261329[];
+extern const u8 BattleFrontier_Lounge2_Text_261403[];
+extern const u8 BattleFrontier_Lounge2_Text_261026[];
+extern const u8 BattleFrontier_Lounge2_Text_2610CC[];
+extern const u8 BattleFrontier_Lounge2_Text_261194[];
+extern const u8 BattleFrontier_Lounge2_Text_26174D[];
+extern const u8 BattleFrontier_Lounge2_Text_2617F9[];
+extern const u8 BattleFrontier_Lounge2_Text_2618C4[];
+
+extern const u8 BattleFrontier_Lounge5_Text_26468D[];
+extern const u8 BattleFrontier_Lounge5_Text_2646E5[];
+extern const u8 BattleFrontier_Lounge5_Text_264741[];
+extern const u8 BattleFrontier_Lounge5_Text_2647A4[];
+extern const u8 BattleFrontier_Lounge5_Text_2647FC[];
+extern const u8 BattleFrontier_Lounge5_Text_264858[];
+extern const u8 BattleFrontier_Lounge5_Text_2648BE[];
+extern const u8 BattleFrontier_Lounge5_Text_264916[];
+extern const u8 BattleFrontier_Lounge5_Text_264972[];
+extern const u8 BattleFrontier_Lounge5_Text_2649D5[];
+extern const u8 BattleFrontier_Lounge5_Text_264A3F[];
+extern const u8 BattleFrontier_Lounge5_Text_264A9B[];
+extern const u8 BattleFrontier_Lounge5_Text_264AF3[];
+extern const u8 BattleFrontier_Lounge5_Text_264B5D[];
+extern const u8 BattleFrontier_Lounge5_Text_2648BE[];
+extern const u8 BattleFrontier_Lounge5_Text_264BC3[];
+extern const u8 BattleFrontier_Lounge5_Text_264C36[];
+extern const u8 BattleFrontier_Lounge5_Text_2648BE[];
+extern const u8 BattleFrontier_Lounge5_Text_264C95[];
+extern const u8 BattleFrontier_Lounge5_Text_264D01[];
+extern const u8 BattleFrontier_Lounge5_Text_264D6B[];
+extern const u8 BattleFrontier_Lounge5_Text_264DD7[];
+extern const u8 BattleFrontier_Lounge5_Text_264E33[];
+extern const u8 BattleFrontier_Lounge5_Text_264E8F[];
+extern const u8 BattleFrontier_Lounge5_Text_2648BE[];
+
+extern const u8 BattleFrontier_Lounge3_Text_262261[];
+extern const u8 BattleFrontier_Lounge3_Text_26230D[];
+extern const u8 BattleFrontier_Lounge3_Text_2623B9[];
+extern const u8 BattleFrontier_Lounge3_Text_262464[];
+extern const u8 BattleFrontier_Lounge3_Text_26250E[];
+extern const u8 BattleFrontier_Lounge3_Text_2625B8[];
+extern const u8 BattleFrontier_Lounge3_Text_26266A[];
+extern const u8 BattleFrontier_Lounge3_Text_26271C[];
+extern const u8 BattleFrontier_Lounge3_Text_2627C9[];
+extern const u8 BattleFrontier_Lounge3_Text_262876[];
+extern const u8 BattleFrontier_Lounge3_Text_26291A[];
+extern const u8 BattleFrontier_Lounge3_Text_2629BC[];
+
+extern const u8 BattleFrontier_Lounge3_Text_262C04[];
+extern const u8 BattleFrontier_Lounge3_Text_262C90[];
+extern const u8 BattleFrontier_Lounge3_Text_262D1C[];
+extern const u8 BattleFrontier_Lounge3_Text_262DA7[];
+extern const u8 BattleFrontier_Lounge3_Text_262E34[];
+extern const u8 BattleFrontier_Lounge3_Text_262EC1[];
+extern const u8 BattleFrontier_Lounge3_Text_262F56[];
+extern const u8 BattleFrontier_Lounge3_Text_262FEB[];
+extern const u8 BattleFrontier_Lounge3_Text_263078[];
+extern const u8 BattleFrontier_Lounge3_Text_263105[];
+extern const u8 BattleFrontier_Lounge3_Text_26318C[];
+extern const u8 BattleFrontier_Lounge3_Text_263211[];
+
+extern const u8 gText_BP[];
+
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2601AA[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2601D0[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260201[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26022F[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26025B[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260287[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2602B5[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2602E0[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26030F[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26033E[];
+
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C[];
+
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260397[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2603BE[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2603E6[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26040E[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260436[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26045C[];
+
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26047A[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2604AC[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2604D8[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_26050F[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260542[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260575[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2605A8[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_2605E2[];
+extern const u8 BattleFrontier_BattlePointExchangeServiceCorner_Text_260613[];
+
+extern const u8 BattleFrontier_Lounge7_Text_265E30[];
+extern const u8 BattleFrontier_Lounge7_Text_265E5B[];
+extern const u8 BattleFrontier_Lounge7_Text_265E8A[];
+extern const u8 BattleFrontier_Lounge7_Text_265EC0[];
+extern const u8 BattleFrontier_Lounge7_Text_265EED[];
+extern const u8 BattleFrontier_Lounge7_Text_265F1C[];
+extern const u8 BattleFrontier_Lounge7_Text_265F47[];
+extern const u8 BattleFrontier_Lounge7_Text_265F77[];
+extern const u8 BattleFrontier_Lounge7_Text_265FAA[];
+extern const u8 BattleFrontier_Lounge7_Text_265FDD[];
+
+extern const u8 BattleFrontier_Lounge7_Text_26600A[];
+extern const u8 BattleFrontier_Lounge7_Text_26603E[];
+extern const u8 BattleFrontier_Lounge7_Text_266070[];
+extern const u8 BattleFrontier_Lounge7_Text_2660A6[];
+extern const u8 BattleFrontier_Lounge7_Text_2660D0[];
+extern const u8 BattleFrontier_Lounge7_Text_2660FF[];
+extern const u8 BattleFrontier_Lounge7_Text_26612D[];
+extern const u8 BattleFrontier_Lounge7_Text_26615F[];
+extern const u8 BattleFrontier_Lounge7_Text_266185[];
+extern const u8 BattleFrontier_Lounge7_Text_2661B5[];
+
+extern const u8 gText_YourPartnerHasRetired[];
+
+extern const u8 gText_Wallace[];
+extern const u8 gText_Steven[];
+extern const u8 gText_Brawly[];
+extern const u8 gText_Winona[];
+extern const u8 gText_Phoebe[];
+extern const u8 gText_Glacia[];
+
#endif //GUARD_STRINGS_H
diff --git a/include/text.h b/include/text.h
index 81c066426..92def780c 100644
--- a/include/text.h
+++ b/include/text.h
@@ -2,7 +2,17 @@
#define GUARD_TEXT_H
#define CHAR_SPACE 0x00
+#define CHAR_PLUS 0x2E
#define CHAR_0 0xA1
+#define CHAR_1 0xA2
+#define CHAR_2 0xA3
+#define CHAR_3 0xA4
+#define CHAR_4 0xA5
+#define CHAR_5 0xA6
+#define CHAR_6 0xA7
+#define CHAR_7 0xA8
+#define CHAR_8 0xA9
+#define CHAR_9 0xAA
#define CHAR_QUESTION_MARK 0xAC
#define CHAR_PERIOD 0xAD
#define CHAR_HYPHEN 0xAE
@@ -82,6 +92,12 @@
#define TEXT_COLOR_TRANSPARENT 0x0
#define TEXT_COLOR_WHITE 0x1
#define TEXT_COLOR_DARK_GREY 0x2
+// 0x3
+#define TEXT_COLOR_RED 0x4
+// 0x5
+#define TEXT_COLOR_GREEN 0x6
+// 0x7
+#define TEXT_COLOR_BLUE 0x8
// battle placeholders are located in battle_message.h
@@ -92,6 +108,17 @@
#define TEXT_SPEED_FF 0xFF
+enum {
+ FONTATTR_MAX_LETTER_WIDTH,
+ FONTATTR_MAX_LETTER_HEIGHT,
+ FONTATTR_LETTER_SPACING,
+ FONTATTR_LINE_SPACING,
+ FONTATTR_COLOR_LOWNIBBLE, // dunno what this is yet
+ FONTATTR_COLOR_FOREGROUND,
+ FONTATTR_COLOR_BACKGROUND,
+ FONTATTR_COLOR_SHADOW
+};
+
struct TextPrinterSubStruct
{
u8 font_type:4; // 0x14
diff --git a/include/text_window.h b/include/text_window.h
index e6a753fcb..53a6df2e9 100644
--- a/include/text_window.h
+++ b/include/text_window.h
@@ -5,18 +5,18 @@
struct TilesPal
{
- const u32 *tiles;
+ const u8 *tiles;
const u16 *pal;
};
-extern const u32 gTextWindowFrame1_Gfx[];
+extern const u8 gTextWindowFrame1_Gfx[];
extern const u16 gTextWindowFrame1_Pal[];
-const struct TilesPal* GetWindowFrameTilesPal(u8 id);
-void copy_textbox_border_tile_patterns_to_vram(u8 windowId, u16 destOffset, u8 palOffset);
-void sub_809882C(u8 windowId, u16 destOffset, u8 palOffset);
-void sub_80987D4(u8 windowId, u8 frameId, u16 destOffset, u8 palOffset);
-void box_border_load_tiles_and_pal(u8 windowId, u16 destOffset, u8 palOffset);
+const struct TilesPal *GetWindowFrameTilesPal(u8 id);
+void LoadMessageBoxGfx(u8 windowId, u16 destOffset, u8 palOffset);
+void LoadUserWindowBorderGfx(u8 windowId, u16 destOffset, u8 palOffset);
+void LoadWindowGfx(u8 windowId, u8 frameId, u16 destOffset, u8 palOffset);
+void LoadUserWindowBorderGfx_(u8 windowId, u16 destOffset, u8 palOffset);
void sub_8098858(u8 windowId, u16 tileNum, u8 palNum);
void sub_80989E0(u8 windowId, u16 tileNum, u8 palNum);
void rbox_fill_rectangle(u8 windowId);
diff --git a/include/trade.h b/include/trade.h
index 15438ff3f..af4da0015 100644
--- a/include/trade.h
+++ b/include/trade.h
@@ -7,6 +7,8 @@
// Exported ROM declarations
-int sub_807A728(void);
+s32 sub_807A728(void);
+void sub_80773AC(void);
+void sub_807AE50(void);
#endif //GUARD_TRADE_H
diff --git a/include/trader.h b/include/trader.h
index 71fd1f7c2..c07ea81bd 100644
--- a/include/trader.h
+++ b/include/trader.h
@@ -7,5 +7,7 @@
void sub_8133DA0(u8 taskId);
void sub_8133E1C(u8 taskId);
+void TraderSetup(void);
+void Trader_ResetFlag(void);
#endif //GUARD_TRADER_H
diff --git a/include/trainer_card.h b/include/trainer_card.h
new file mode 100644
index 000000000..af603444f
--- /dev/null
+++ b/include/trainer_card.h
@@ -0,0 +1,39 @@
+#ifndef GUARD_TRAINER_CARD_H
+#define GUARD_TRAINER_CARD_H
+
+struct TrainerCard
+{
+ /*0x00*/ u8 gender;
+ /*0x01*/ u8 stars;
+ /*0x02*/ bool8 hasPokedex;
+ /*0x03*/ bool8 var_3;
+ /*0x04*/ bool8 var_4;
+ /*0x05*/ u8 var_5;
+ /*0x06*/ u16 firstHallOfFameA;
+ /*0x08*/ u16 firstHallOfFameB;
+ /*0x0A*/ u16 firstHallOfFameC;
+ /*0x0C*/ u16 pokedexSeen;
+ /*0x0E*/ u16 trainerId;
+ /*0x10*/ u16 playTimeHours;
+ /*0x12*/ u16 playTimeMinutes;
+ /*0x14*/ u16 linkBattleWins;
+ /*0x16*/ u16 linkBattleLosses;
+ /*0x18*/ u16 battleTowerWins;
+ /*0x1A*/ u16 battleTowerLosses;
+ /*0x1C*/ u16 contestsWithFriends;
+ /*0x1E*/ u16 pokeblocksWithFriends;
+ /*0x20*/ u16 pokemonTrades;
+ /*0x22*/ u16 var_22;
+ /*0x24*/ u32 money;
+ /*0x28*/ u16 var_28[4];
+ /*0x30*/ u8 playerName[8];
+ /*0x38*/ u8 emeraldAddedUnknownFields[0x64-0x38];
+};
+
+extern struct TrainerCard gTrainerCards[4];
+
+void sub_80C3120(struct TrainerCard *arg0, u16 *arg1, u8 gameVersion);
+void sub_80C4E74(u8 arg0, void (*callback)(void));
+void sub_80C30A4(u16 *arg0);
+
+#endif // GUARD_TRAINER_CARD_H
diff --git a/include/trainer_see.h b/include/trainer_see.h
index 847380782..43f8b82d2 100644
--- a/include/trainer_see.h
+++ b/include/trainer_see.h
@@ -3,7 +3,7 @@
struct ApproachingTrainer
{
- u8 mapObjectId;
+ u8 eventObjectId;
u8 radius; // plus 1
const u8 *trainerScriptPtr;
u8 taskId;
@@ -17,14 +17,14 @@ extern u8 gUnknown_030060AC;
extern u8 gApproachingTrainerId;
bool8 CheckForTrainersWantingBattle(void);
-void sub_80B4578(struct MapObject *var);
+void sub_80B4578(struct EventObject *var);
void EndTrainerApproach(void);
void sub_80B45D0(void);
-u8 FldEff_ExclamationMarkIcon1(void);
-u8 FldEff_ExclamationMarkIcon2(void);
+u8 FldEff_ExclamationMarkIcon(void);
+u8 FldEff_QuestionMarkIcon(void);
u8 FldEff_HeartIcon(void);
-u8 GetCurrentApproachingTrainerMapObjectId(void);
-u8 GetChosenApproachingTrainerMapObjectId(u8 arrayId);
+u8 GetCurrentApproachingTrainerEventObjectId(void);
+u8 GetChosenApproachingTrainerEventObjectId(u8 arrayId);
void sub_80B4808(void);
#endif // GUARD_TRAINER_SEE_H
diff --git a/include/tv.h b/include/tv.h
index 19c900ba8..554bbad85 100644
--- a/include/tv.h
+++ b/include/tv.h
@@ -16,7 +16,7 @@ void sub_80EED10(void);
void sub_80EED34(void);
void sub_80EED60(u16 delta);
void sub_80F01B8(void);
-void sub_80F01E8(void *src, u32 size, u8 masterIdx);
+void ReceiveTvShowsData(void *src, u32 size, u8 masterIdx);
void sub_80EE4DC(struct Pokemon *pokemon, u8 ribbonMonDataIdx);
u32 GetPlayerIDAsU32(void);
bool8 GetPriceReduction(u8 newsKind);
@@ -30,7 +30,7 @@ void sub_80EEA70(void);
void sub_80EDB44(void);
void sub_80EDC60(const u16 *words);
void sub_80EDA80(void);
-void sub_80F0C7C(void *src, u32 size, u8 masterIdx);
+void ReceivePokeNewsData(void *src, u32 size, u8 masterIdx);
void sub_80F0BB8(void);
void sub_80ED950(bool8 flag);
void sub_80EEC80(void);
@@ -39,11 +39,15 @@ void sub_80EECC8(void);
void sub_80EECEC(void);
void sub_80F1208(TVShow *shows);
void sub_80EE44C(u8 nMonsCaught, u8 nPkblkUsed);
+void sub_80F14F8(TVShow *shows);
+size_t sub_80EF370(int value);
+bool8 Put3CheersForPokeblocksOnTheAir(const u8 *partnersName, u8 flavor, u8 unused, u8 sheen, u8 language);
void SetPokemonAnglerSpecies(u16 species);
void UpdateTVShowsPerDay(u16 days);
void PutPokemonTodayCaughtOnAir(void);
void TV_PutSecretBaseVisitOnTheAir(void);
-bool8 Put3CheersForPokeblocksOnTheAir(const u8 *partnersName, u8 flavor, u8 unused, u8 sheen, u8 language);
void PutBattleUpdateOnTheAir(u8 opponentLinkPlayerId, u16 move, u16 speciesPlayer, u16 speciesOpponent);
+void UpdateTVScreensOnMap(int, int);
+void TV_PrintIntToStringVar(u8 varIdx, int value);
#endif //GUARD_TV_H
diff --git a/include/unk_text_util.h b/include/unk_text_util.h
deleted file mode 100644
index 72243a90e..000000000
--- a/include/unk_text_util.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef GUARD_UNK_TEXT_UTIL_H
-#define GUARD_UNK_TEXT_UTIL_H
-
-void UnkTextUtil_Reset(void);
-void UnkTextUtil_SetPtrI(u8 idx, const u8 *ptr);
-u8 *UnkTextUtil_StringExpandPlaceholders(u8 *dest, const u8 *src);
-const u8 *UnkTextUtil_GetPtrI(u8 idx);
-
-#endif //GUARD_UNK_TEXT_UTIL_H
diff --git a/include/wallclock.h b/include/wallclock.h
index 48697c19f..208af9324 100644
--- a/include/wallclock.h
+++ b/include/wallclock.h
@@ -1,6 +1,7 @@
#ifndef GUARD_WALLCLOCK_H
#define GUARD_WALLCLOCK_H
-void Cb2_StartWallClock(void);
+void CB2_StartWallClock(void);
+void CB2_ViewWallClock(void);
#endif //GUARD_WALLCLOCK_H