diff options
Diffstat (limited to 'include')
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 |