diff options
Diffstat (limited to 'include')
47 files changed, 699 insertions, 503 deletions
| diff --git a/include/battle_anim.h b/include/battle_anim.h index 34bd774fe..ad160e74d 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -75,8 +75,8 @@ int GetAnimBgAttribute(u8 bgId, u8 attributeId);  // battle_anim_mons.c  void TranslateSpriteInEllipseOverDuration(struct Sprite *sprite); -void AnimUnused_80A8AEC(struct Sprite *sprite); -void AnimUnused_80A8A6C(struct Sprite *sprite); +void AnimTranslateLinearAndFlicker(struct Sprite *sprite); +void AnimTranslateLinearAndFlicker_Flipped(struct Sprite *sprite);  void AnimWeatherBallUp(struct Sprite *sprite);  void AnimWeatherBallDown(struct Sprite *sprite);  void AnimSpinningSparkle(struct Sprite *sprite); @@ -143,7 +143,7 @@ void TranslateSpriteLinear(struct Sprite *sprite);  void AnimSpriteOnMonPos(struct Sprite *sprite);  void InitAnimLinearTranslationWithSpeedAndPos(struct Sprite *sprite);  void TranslateSpriteInCircleOverDuration(struct Sprite *sprite); -void SetGreyscaleOrOriginalPalette(u16 palNum, bool8 restoreOriginal); +void SetGrayscaleOrOriginalPalette(u16 palNum, bool8 restoreOriginal);  void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds);  bool8 RunAffineAnimFromTaskData(struct Task *task);  void AnimThrowProjectile(struct Sprite *sprite); diff --git a/include/battle_pyramid_bag.h b/include/battle_pyramid_bag.h index df111b939..b8b3eb20f 100644 --- a/include/battle_pyramid_bag.h +++ b/include/battle_pyramid_bag.h @@ -3,48 +3,72 @@  #include "list_menu.h" -struct PyramidBagResources +enum { +    PYRAMIDBAG_LOC_FIELD, +    PYRAMIDBAG_LOC_BATTLE, +    PYRAMIDBAG_LOC_PARTY, +    PYRAMIDBAG_LOC_CHOOSE_TOSS, +    PYRAMIDBAG_LOC_PREV, +}; + +enum { +    PBAG_SPRITE_BAG, +    PBAG_SPRITE_ITEM_ICON, +    PBAG_SPRITE_ITEM_ICON_ALT, +    PBAG_SPRITE_SWAP_LINE_START, // Swap line consists of 8 sprites +    PBAG_SPRITE_SWAP_LINE_2, +    PBAG_SPRITE_SWAP_LINE_3, +    PBAG_SPRITE_SWAP_LINE_4, +    PBAG_SPRITE_SWAP_LINE_5, +    PBAG_SPRITE_SWAP_LINE_6, +    PBAG_SPRITE_SWAP_LINE_7, +    PBAG_SPRITE_SWAP_LINE_END, +    PBAG_SPRITE_COUNT +}; +#define NUM_SWAP_LINE_SPRITES (1 + PBAG_SPRITE_SWAP_LINE_END - PBAG_SPRITE_SWAP_LINE_START) + +struct PyramidBagMenu  { -    void (*callback2)(void); -    u8 tilemapBuffer[0x800]; -    u8 itemsSpriteIds[PYRAMID_BAG_ITEMS_COUNT + 1]; +    void (*newScreenCallback)(void); +    u8 tilemapBuffer[BG_SCREEN_SIZE]; +    u8 spriteIds[PBAG_SPRITE_COUNT];      u8 windowIds[5]; -    u8 unk814; -    u8 unk815; +    u8 toSwapPos; +    bool8 isAltIcon; // Two item icons loaded at a time. Tracks which to show next      u8 scrollIndicatorsTaskId;      const u8 *menuActionIds; -    u8 filler81C[0x820 - 0x81C]; +    u8 unused1[4];      u8 menuActionsCount;      u8 listMenuCount;      u8 listMenuMaxShown;      struct ListMenuItem bagListItems[PYRAMID_BAG_ITEMS_COUNT + 1];      u8 itemStrings[PYRAMID_BAG_ITEMS_COUNT + 1][ITEM_NAME_LENGTH + 10];      s16 state; -    u8 filler986[0x98C - 0x986]; +    u8 unused2[4];  }; -struct PyramidBagCursorData +struct PyramidBagMenuState  { -    void (*callback)(void); -    u8 unk4; +    void (*exitCallback)(void); +    u8 location;      u16 cursorPosition;      u16 scrollPosition;  }; -extern struct PyramidBagResources *gPyramidBagResources; -extern struct PyramidBagCursorData gPyramidBagCursorData; +extern struct PyramidBagMenu *gPyramidBagMenu; +extern struct PyramidBagMenuState gPyramidBagMenuState;  void InitBattlePyramidBagCursorPosition(void);  void CB2_PyramidBagMenuFromStartMenu(void);  void CB2_ReturnToPyramidBagMenu(void); -void sub_81C5924(void); -void sub_81C59BC(void); +void UpdatePyramidBagList(void); +void UpdatePyramidBagCursorPos(void);  void sub_81C4EFC(void); -void GoToBattlePyramidBagMenu(u8 a0, void (*callback)(void)); +void GoToBattlePyramidBagMenu(u8 location, void (*exitCallback)(void));  void Task_CloseBattlePyramidBagMessage(u8 taskId);  void TryStoreHeldItemsInPyramidBag(void);  void ChooseItemsToTossFromPyramidBag(void); -void CloseBattlePyramidBagAndSetCallback(u8 taskId); +void CloseBattlePyramidBag(u8 taskId);  void DisplayItemMessageInBattlePyramid(u8 taskId, const u8 *str, void (*callback)(u8 taskId));  #endif // GUARD_BATTLE_PYRAMID_BAG_H diff --git a/include/constants/battle_ai.h b/include/constants/battle_ai.h index 4c3a45dc6..5ade58d50 100644 --- a/include/constants/battle_ai.h +++ b/include/constants/battle_ai.h @@ -29,24 +29,24 @@  #define AI_WEATHER_HAIL 3  // get_how_powerful_move_is -#define MOVE_POWER_DISCOURAGED  0 +#define MOVE_POWER_OTHER        0  #define MOVE_NOT_MOST_POWERFUL  1  #define MOVE_MOST_POWERFUL      2  // script's table id to bit -#define AI_SCRIPT_CHECK_BAD_MOVE (1 << 0) -#define AI_SCRIPT_TRY_TO_FAINT (1 << 1) -#define AI_SCRIPT_CHECK_VIABILITY (1 << 2) -#define AI_SCRIPT_SETUP_FIRST_TURN (1 << 3) -#define AI_SCRIPT_RISKY (1 << 4) -#define AI_SCRIPT_PREFER_STRONGEST_MOVE (1 << 5) -#define AI_SCRIPT_PREFER_BATON_PASS (1 << 6) -#define AI_SCRIPT_DOUBLE_BATTLE (1 << 7) -#define AI_SCRIPT_HP_AWARE (1 << 8) -#define AI_SCRIPT_UNKNOWN (1 << 9) +#define AI_SCRIPT_CHECK_BAD_MOVE        (1 << 0) +#define AI_SCRIPT_TRY_TO_FAINT          (1 << 1) +#define AI_SCRIPT_CHECK_VIABILITY       (1 << 2) +#define AI_SCRIPT_SETUP_FIRST_TURN      (1 << 3) +#define AI_SCRIPT_RISKY                 (1 << 4) +#define AI_SCRIPT_PREFER_POWER_EXTREMES (1 << 5) +#define AI_SCRIPT_PREFER_BATON_PASS     (1 << 6) +#define AI_SCRIPT_DOUBLE_BATTLE         (1 << 7) +#define AI_SCRIPT_HP_AWARE              (1 << 8) +#define AI_SCRIPT_TRY_SUNNY_DAY_START   (1 << 9)  // 10 - 28 are not used -#define AI_SCRIPT_ROAMING (1 << 29) -#define AI_SCRIPT_SAFARI (1 << 30) -#define AI_SCRIPT_FIRST_BATTLE (1 << 31) +#define AI_SCRIPT_ROAMING               (1 << 29) +#define AI_SCRIPT_SAFARI                (1 << 30) +#define AI_SCRIPT_FIRST_BATTLE          (1 << 31)  #endif // GUARD_CONSTANTS_BATTLE_AI_H diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index 5f8900bf6..4622876cc 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -410,33 +410,4 @@  #define ANIM_WEATHER_SANDSTORM 3  #define ANIM_WEATHER_HAIL 4 -// Battle mon back animations. -#define BACK_ANIM_NONE                         0x00 -#define BACK_ANIM_H_SLIDE_QUICK                0x01 -#define BACK_ANIM_H_SLIDE                      0x02 -#define BACK_ANIM_H_SLIDE_WITH_V_COMPRESS_1    0x03 -#define BACK_ANIM_H_SLIDE_WITH_V_COMPRESS_2    0x04 -#define BACK_ANIM_SHRINK_GROW_1                0x05 -#define BACK_ANIM_GROW_1                       0x06 -#define BACK_ANIM_CIRCLE_MOVE_COUNTERCLOCKWISE 0x07 -#define BACK_ANIM_HORIZONTAL_SHAKE             0x08 -#define BACK_ANIM_VERTICAL_SHAKE               0x09 -#define BACK_ANIM_V_SHAKE_WITH_H_SLIDE         0x0a -#define BACK_ANIM_VERTICAL_STRETCH             0x0b -#define BACK_ANIM_HORIZONTAL_STRETCH           0x0c -#define BACK_ANIM_GROW_2                       0x0d -#define BACK_ANIM_V_SHAKE_WITH_PAUSE           0x0e -#define BACK_ANIM_CIRCLE_MOVE_CLOCKWISE        0x0f -#define BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL  0x10 -#define BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE  0x11 -#define BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE    0x12 -#define BACK_ANIM_DIP_RIGHT_SIDE               0x13 -#define BACK_ANIM_SHRINK_GROW_2                0x14 -#define BACK_ANIM_JOLT_RIGHT                   0x15 -#define BACK_ANIM_FLASH_YELLOW_WITH_SHAKE      0x16 -#define BACK_ANIM_FADE_RED_WITH_SHAKE          0x17 -#define BACK_ANIM_FADE_GREEN_WITH_SHAKE        0x18 -#define BACK_ANIM_FADE_BLUE_WITH_SHAKE         0x19 - -  #endif // GUARD_CONSTANTS_BATTLE_ANIM_H diff --git a/include/constants/battle_frontier.h b/include/constants/battle_frontier.h index bbe6db81c..68c5a42ef 100644 --- a/include/constants/battle_frontier.h +++ b/include/constants/battle_frontier.h @@ -78,6 +78,21 @@  #define FRONTIER_MANIAC_MESSAGE_COUNT 3 +// Frontier TV Show +#define FRONTIER_SHOW_TOWER_SINGLES      1 +#define FRONTIER_SHOW_TOWER_DOUBLES      2 +#define FRONTIER_SHOW_TOWER_MULTIS       3 +#define FRONTIER_SHOW_TOWER_LINK_MULTIS  4 +#define FRONTIER_SHOW_DOME_SINGLES       5 +#define FRONTIER_SHOW_DOME_DOUBLES       6 +#define FRONTIER_SHOW_FACTORY_SINGLES    7 +#define FRONTIER_SHOW_FACTORY_DOUBLES    8 +#define FRONTIER_SHOW_PIKE               9 +#define FRONTIER_SHOW_ARENA              10 +#define FRONTIER_SHOW_PALACE_SINGLES     11 +#define FRONTIER_SHOW_PALACE_DOUBLES     12 +#define FRONTIER_SHOW_PYRAMID            13 +  // Frontier Gambler  #define FRONTIER_GAMBLER_WAITING     0  #define FRONTIER_GAMBLER_PLACED_BET  1 diff --git a/include/constants/battle_string_ids.h b/include/constants/battle_string_ids.h index f22541272..c8d37aac6 100644 --- a/include/constants/battle_string_ids.h +++ b/include/constants/battle_string_ids.h @@ -502,7 +502,7 @@  #define B_MSG_TRANSFORMED      0  #define B_MSG_TRANSFORM_FAILED 1 -// gSubsituteUsedStringIds +// gSubstituteUsedStringIds  #define B_MSG_SET_SUBSTITUTE    0  #define B_MSG_SUBSTITUTE_FAILED 1 diff --git a/include/constants/contest.h b/include/constants/contest.h index 9eb6b26e4..775dcbe62 100644 --- a/include/constants/contest.h +++ b/include/constants/contest.h @@ -4,6 +4,7 @@  #define APPLAUSE_METER_SIZE 5  #define CONTEST_NUM_APPEALS 5  #define CONTEST_LAST_APPEAL (CONTEST_NUM_APPEALS - 1) +#define MAX_CONTEST_MOVE_HEARTS 8  #define LINK_CONTEST_FLAG_IS_LINK       (1 << 0)  #define LINK_CONTEST_FLAG_IS_WIRELESS   (1 << 1) @@ -22,7 +23,9 @@  #define CONTEST_TYPE_NPC_MASTER  (CONTEST_RANK_MASTER + 1)  #define CONTEST_TYPE_LINK        (CONTEST_RANK_LINK + 1) -#define CONTEST_WINNER_ARTIST 0  // Winner shown by the artist, painting not necessarily saved +// IDs below - 1 are indexes into gSaveBlock1Ptr->contestWinners[] +// CONTEST_WINNER_ARTIST is for the winner of the most recent contest, and is not saved. +#define CONTEST_WINNER_ARTIST 0  #define CONTEST_WINNER_HALL_1 1  #define CONTEST_WINNER_HALL_2 2  #define CONTEST_WINNER_HALL_3 3 @@ -30,8 +33,8 @@  #define CONTEST_WINNER_HALL_5 5  #define CONTEST_WINNER_HALL_6 6  #define NUM_CONTEST_HALL_WINNERS 6 -#define CONTEST_WINNER_7 7 -#define CONTEST_WINNER_8 8 +#define CONTEST_WINNER_HALL_UNUSED_1 7 // These two have data for gDefaultContestWinners +#define CONTEST_WINNER_HALL_UNUSED_2 8 // but there are only 6 paintings in the Contest Hall  #define CONTEST_WINNER_MUSEUM_COOL   9  #define CONTEST_WINNER_MUSEUM_BEAUTY 10  #define CONTEST_WINNER_MUSEUM_CUTE   11 @@ -39,6 +42,14 @@  #define CONTEST_WINNER_MUSEUM_TOUGH  13  // NUM_CONTEST_WINNERS in constants/global.h +#define MUSEUM_CONTEST_WINNERS_START (CONTEST_WINNER_MUSEUM_COOL - 1) + +#define CONTEST_SAVE_FOR_MUSEUM ((u8)-1) +#define CONTEST_SAVE_FOR_ARTIST ((u8)-2) + +// The number of possible captions for a Contest painting, per category +#define NUM_PAINTING_CAPTIONS 3 +  #define CANT_ENTER_CONTEST             0  #define CAN_ENTER_CONTEST_EQUAL_RANK   1  #define CAN_ENTER_CONTEST_HIGH_RANK    2 diff --git a/include/constants/easy_chat.h b/include/constants/easy_chat.h index 069f17fcb..f98cedbb7 100644 --- a/include/constants/easy_chat.h +++ b/include/constants/easy_chat.h @@ -9,7 +9,7 @@  #define EASY_CHAT_TYPE_INTERVIEW               5  #define EASY_CHAT_TYPE_BARD_SONG               6  #define EASY_CHAT_TYPE_FAN_CLUB                7 -#define EASY_CHAT_TYPE_UNK_8                   8 +#define EASY_CHAT_TYPE_DUMMY_SHOW              8  #define EASY_CHAT_TYPE_TRENDY_PHRASE           9  #define EASY_CHAT_TYPE_GABBY_AND_TY            10  #define EASY_CHAT_TYPE_CONTEST_INTERVIEW       11 diff --git a/include/constants/event_objects.h b/include/constants/event_objects.h index 7a224940f..1958c792e 100644 --- a/include/constants/event_objects.h +++ b/include/constants/event_objects.h @@ -279,7 +279,37 @@  #define FIRST_DECORATION_SPRITE_GFX OBJ_EVENT_GFX_PICHU_DOLL +// Special object event local ids  #define OBJ_EVENT_ID_PLAYER 0xFF  #define OBJ_EVENT_ID_CAMERA 0x7F +// Object event local ids referenced in C files +#define LOCALID_ROUTE111_PLAYER_FALLING 45 +#define LOCALID_BIRTH_ISLAND_EXTERIOR_ROCK 1 +#define LOCALID_FARAWAY_ISLAND_MEW 1 +#define LOCALID_UNION_ROOM_PLAYER_4 2 +#define LOCALID_UNION_ROOM_PLAYER_8 3 +#define LOCALID_UNION_ROOM_PLAYER_7 4 +#define LOCALID_UNION_ROOM_PLAYER_6 5 +#define LOCALID_UNION_ROOM_PLAYER_5 6 +#define LOCALID_UNION_ROOM_PLAYER_3 7 +#define LOCALID_UNION_ROOM_PLAYER_2 8 +#define LOCALID_UNION_ROOM_PLAYER_1 9 +#define LOCALID_BATTLE_TOWER_LOBBY_REPORTER 5 +#define LOCALID_TRUCK_BOX_TOP 1 +#define LOCALID_TRUCK_BOX_BOTTOM_L 2 +#define LOCALID_TRUCK_BOX_BOTTOM_R 3 +#define LOCALID_OLDALE_MART_CLERK 1 +#define LOCALID_LAVARIDGE_MART_CLERK 1 +#define LOCALID_FALLARBOR_MART_CLERK 1 +#define LOCALID_VERDANTURF_MART_CLERK 1 +#define LOCALID_PETALBURG_MART_CLERK 1 +#define LOCALID_SLATEPORT_MART_CLERK 1 +#define LOCALID_MAUVILLE_MART_CLERK 1 +#define LOCALID_RUSTBORO_MART_CLERK 1 +#define LOCALID_FORTREE_MART_CLERK 1 +#define LOCALID_MOSSDEEP_MART_CLERK 1 +#define LOCALID_SOOTOPOLIS_MART_CLERK 1 +#define LOCALID_BATTLE_FRONTIER_MART_CLERK 1 +  #endif  // GUARD_CONSTANTS_EVENT_OBJECTS_H diff --git a/include/constants/flags.h b/include/constants/flags.h index 48606962a..6702fa5ee 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -535,120 +535,120 @@  #define FLAG_MYSTERY_EVENT_14                0x1F2  #define FLAG_MYSTERY_EVENT_15                0x1F3 -// Hidden Items -- sorted by location +// Hidden Items  #define FLAG_HIDDEN_ITEMS_START                                                         0x1F4 +#define FLAG_HIDDEN_ITEM_LAVARIDGE_TOWN_ICE_HEAL             (FLAG_HIDDEN_ITEMS_START + 0x00)  #define FLAG_HIDDEN_ITEM_TRICK_HOUSE_NUGGET                  (FLAG_HIDDEN_ITEMS_START + 0x01) +#define FLAG_HIDDEN_ITEM_ROUTE_111_STARDUST                  (FLAG_HIDDEN_ITEMS_START + 0x02) +#define FLAG_HIDDEN_ITEM_ROUTE_113_ETHER                     (FLAG_HIDDEN_ITEMS_START + 0x03) +#define FLAG_HIDDEN_ITEM_ROUTE_114_CARBOS                    (FLAG_HIDDEN_ITEMS_START + 0x04) +#define FLAG_HIDDEN_ITEM_ROUTE_119_CALCIUM                   (FLAG_HIDDEN_ITEMS_START + 0x05) +#define FLAG_HIDDEN_ITEM_ROUTE_119_ULTRA_BALL                (FLAG_HIDDEN_ITEMS_START + 0x06) +#define FLAG_HIDDEN_ITEM_ROUTE_123_SUPER_REPEL               (FLAG_HIDDEN_ITEMS_START + 0x07)  #define FLAG_HIDDEN_ITEM_UNDERWATER_124_CARBOS               (FLAG_HIDDEN_ITEMS_START + 0x08)  #define FLAG_HIDDEN_ITEM_UNDERWATER_124_GREEN_SHARD          (FLAG_HIDDEN_ITEMS_START + 0x09)  #define FLAG_HIDDEN_ITEM_UNDERWATER_124_PEARL                (FLAG_HIDDEN_ITEMS_START + 0x0A)  #define FLAG_HIDDEN_ITEM_UNDERWATER_124_BIG_PEARL            (FLAG_HIDDEN_ITEMS_START + 0x0B) +#define FLAG_HIDDEN_ITEM_UNDERWATER_126_BLUE_SHARD           (FLAG_HIDDEN_ITEMS_START + 0x0C)  #define FLAG_HIDDEN_ITEM_UNDERWATER_124_HEART_SCALE_1        (FLAG_HIDDEN_ITEMS_START + 0x0D) -#define FLAG_HIDDEN_ITEM_UNDERWATER_124_CALCIUM              (FLAG_HIDDEN_ITEMS_START + 0x24) -#define FLAG_HIDDEN_ITEM_UNDERWATER_124_HEART_SCALE_2        (FLAG_HIDDEN_ITEMS_START + 0x26)  #define FLAG_HIDDEN_ITEM_UNDERWATER_126_HEART_SCALE          (FLAG_HIDDEN_ITEMS_START + 0x0E)  #define FLAG_HIDDEN_ITEM_UNDERWATER_126_ULTRA_BALL           (FLAG_HIDDEN_ITEMS_START + 0x0F)  #define FLAG_HIDDEN_ITEM_UNDERWATER_126_STARDUST             (FLAG_HIDDEN_ITEMS_START + 0x10)  #define FLAG_HIDDEN_ITEM_UNDERWATER_126_PEARL                (FLAG_HIDDEN_ITEMS_START + 0x11) -#define FLAG_HIDDEN_ITEM_UNDERWATER_126_IRON                 (FLAG_HIDDEN_ITEMS_START + 0x13)  #define FLAG_HIDDEN_ITEM_UNDERWATER_126_YELLOW_SHARD         (FLAG_HIDDEN_ITEMS_START + 0x12) +#define FLAG_HIDDEN_ITEM_UNDERWATER_126_IRON                 (FLAG_HIDDEN_ITEMS_START + 0x13)  #define FLAG_HIDDEN_ITEM_UNDERWATER_126_BIG_PEARL            (FLAG_HIDDEN_ITEMS_START + 0x14) -#define FLAG_HIDDEN_ITEM_UNDERWATER_126_BLUE_SHARD           (FLAG_HIDDEN_ITEMS_START + 0x0C)  #define FLAG_HIDDEN_ITEM_UNDERWATER_127_STAR_PIECE           (FLAG_HIDDEN_ITEMS_START + 0x15)  #define FLAG_HIDDEN_ITEM_UNDERWATER_127_HP_UP                (FLAG_HIDDEN_ITEMS_START + 0x16)  #define FLAG_HIDDEN_ITEM_UNDERWATER_127_HEART_SCALE          (FLAG_HIDDEN_ITEMS_START + 0x17)  #define FLAG_HIDDEN_ITEM_UNDERWATER_127_RED_SHARD            (FLAG_HIDDEN_ITEMS_START + 0x18)  #define FLAG_HIDDEN_ITEM_UNDERWATER_128_PROTEIN              (FLAG_HIDDEN_ITEMS_START + 0x19)  #define FLAG_HIDDEN_ITEM_UNDERWATER_128_PEARL                (FLAG_HIDDEN_ITEMS_START + 0x1A) +#define FLAG_HIDDEN_ITEM_LILYCOVE_CITY_HEART_SCALE           (FLAG_HIDDEN_ITEMS_START + 0x1B)  #define FLAG_HIDDEN_ITEM_FALLARBOR_TOWN_NUGGET               (FLAG_HIDDEN_ITEMS_START + 0x1C) -#define FLAG_HIDDEN_ITEM_LAVARIDGE_TOWN_ICE_HEAL             (FLAG_HIDDEN_ITEMS_START + 0x00) +#define FLAG_HIDDEN_ITEM_MT_PYRE_EXTERIOR_ULTRA_BALL         (FLAG_HIDDEN_ITEMS_START + 0x1D) +#define FLAG_HIDDEN_ITEM_ROUTE_113_TM_32                     (FLAG_HIDDEN_ITEMS_START + 0x1E)  #define FLAG_HIDDEN_ITEM_ABANDONED_SHIP_RM_1_KEY             (FLAG_HIDDEN_ITEMS_START + 0x1F)  #define FLAG_HIDDEN_ITEM_ABANDONED_SHIP_RM_2_KEY             (FLAG_HIDDEN_ITEMS_START + 0x20)  #define FLAG_HIDDEN_ITEM_ABANDONED_SHIP_RM_4_KEY             (FLAG_HIDDEN_ITEMS_START + 0x21)  #define FLAG_HIDDEN_ITEM_ABANDONED_SHIP_RM_6_KEY             (FLAG_HIDDEN_ITEMS_START + 0x22) -#define FLAG_HIDDEN_ITEM_ARTISAN_CAVE_B1F_CALCIUM            (FLAG_HIDDEN_ITEMS_START + 0x65) -#define FLAG_HIDDEN_ITEM_ARTISAN_CAVE_B1F_ZINC               (FLAG_HIDDEN_ITEMS_START + 0x66) -#define FLAG_HIDDEN_ITEM_ARTISAN_CAVE_B1F_PROTEIN            (FLAG_HIDDEN_ITEMS_START + 0x67) -#define FLAG_HIDDEN_ITEM_ARTISAN_CAVE_B1F_IRON               (FLAG_HIDDEN_ITEMS_START + 0x68) -#define FLAG_HIDDEN_ITEM_GRANITE_CAVE_B2F_EVERSTONE_1        (FLAG_HIDDEN_ITEMS_START + 0x30) -#define FLAG_HIDDEN_ITEM_GRANITE_CAVE_B2F_EVERSTONE_2        (FLAG_HIDDEN_ITEMS_START + 0x31) -#define FLAG_HIDDEN_ITEM_JAGGED_PASS_GREAT_BALL              (FLAG_HIDDEN_ITEMS_START + 0x4C) -#define FLAG_HIDDEN_ITEM_JAGGED_PASS_FULL_HEAL               (FLAG_HIDDEN_ITEMS_START + 0x4D) -#define FLAG_HIDDEN_ITEM_LILYCOVE_CITY_HEART_SCALE           (FLAG_HIDDEN_ITEMS_START + 0x1B) -#define FLAG_HIDDEN_ITEM_LILYCOVE_CITY_PP_UP                 (FLAG_HIDDEN_ITEMS_START + 0x2B) -#define FLAG_HIDDEN_ITEM_LILYCOVE_CITY_POKE_BALL             (FLAG_HIDDEN_ITEMS_START + 0x4B) -#define FLAG_HIDDEN_ITEM_MT_PYRE_EXTERIOR_ULTRA_BALL         (FLAG_HIDDEN_ITEMS_START + 0x1D) -#define FLAG_HIDDEN_ITEM_MT_PYRE_EXTERIOR_MAX_ETHER          (FLAG_HIDDEN_ITEMS_START + 0x4E) -#define FLAG_HIDDEN_ITEM_MT_PYRE_SUMMIT_ZINC                 (FLAG_HIDDEN_ITEMS_START + 0x4F) -#define FLAG_HIDDEN_ITEM_MT_PYRE_SUMMIT_RARE_CANDY           (FLAG_HIDDEN_ITEMS_START + 0x50) -#define FLAG_HIDDEN_ITEM_NAVEL_ROCK_TOP_SACRED_ASH           (FLAG_HIDDEN_ITEMS_START + 0x6D) -#define FLAG_HIDDEN_ITEM_PETALBURG_CITY_RARE_CANDY           (FLAG_HIDDEN_ITEMS_START + 0x5F) -#define FLAG_HIDDEN_ITEM_PETALBURG_WOODS_POTION              (FLAG_HIDDEN_ITEMS_START + 0x3A) -#define FLAG_HIDDEN_ITEM_PETALBURG_WOODS_TINY_MUSHROOM_1     (FLAG_HIDDEN_ITEMS_START + 0x3B) -#define FLAG_HIDDEN_ITEM_PETALBURG_WOODS_TINY_MUSHROOM_2     (FLAG_HIDDEN_ITEMS_START + 0x3C) -#define FLAG_HIDDEN_ITEM_PETALBURG_WOODS_POKE_BALL           (FLAG_HIDDEN_ITEMS_START + 0x3D) -#define FLAG_HIDDEN_ITEM_VICTORY_ROAD_B2F_ELIXIR             (FLAG_HIDDEN_ITEMS_START + 0x52) -#define FLAG_HIDDEN_ITEM_VICTORY_ROAD_B2F_MAX_REPEL          (FLAG_HIDDEN_ITEMS_START + 0x53) -#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_NORTH_EAST_RARE_CANDY   (FLAG_HIDDEN_ITEMS_START + 0x6A) -#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_NORTH_EAST_ZINC         (FLAG_HIDDEN_ITEMS_START + 0x6B) -#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_SOUTH_EAST_PP_UP        (FLAG_HIDDEN_ITEMS_START + 0x6C) -#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_SOUTH_EAST_FULL_RESTORE (FLAG_HIDDEN_ITEMS_START + 0x69)  #define FLAG_HIDDEN_ITEM_SS_TIDAL_LOWER_DECK_LEFTOVERS       (FLAG_HIDDEN_ITEMS_START + 0x23) -#define FLAG_HIDDEN_ITEM_VICTORY_ROAD_1F_ULTRA_BALL          (FLAG_HIDDEN_ITEMS_START + 0x51) -#define FLAG_HIDDEN_ITEM_ROUTE_104_SUPER_POTION              (FLAG_HIDDEN_ITEMS_START + 0x2C) -#define FLAG_HIDDEN_ITEM_ROUTE_104_POKE_BALL                 (FLAG_HIDDEN_ITEMS_START + 0x3E) +#define FLAG_HIDDEN_ITEM_UNDERWATER_124_CALCIUM              (FLAG_HIDDEN_ITEMS_START + 0x24)  #define FLAG_HIDDEN_ITEM_ROUTE_104_POTION                    (FLAG_HIDDEN_ITEMS_START + 0x25) -#define FLAG_HIDDEN_ITEM_ROUTE_104_ANTIDOTE                  (FLAG_HIDDEN_ITEMS_START + 0x55) -#define FLAG_HIDDEN_ITEM_ROUTE_104_HEART_SCALE               (FLAG_HIDDEN_ITEMS_START + 0x58) -#define FLAG_HIDDEN_ITEM_ROUTE_105_HEART_SCALE               (FLAG_HIDDEN_ITEMS_START + 0x59) -#define FLAG_HIDDEN_ITEM_ROUTE_105_BIG_PEARL                 (FLAG_HIDDEN_ITEMS_START + 0x6F) -#define FLAG_HIDDEN_ITEM_ROUTE_106_POKE_BALL                 (FLAG_HIDDEN_ITEMS_START + 0x3F) +#define FLAG_HIDDEN_ITEM_UNDERWATER_124_HEART_SCALE_2        (FLAG_HIDDEN_ITEMS_START + 0x26) +#define FLAG_HIDDEN_ITEM_ROUTE_121_HP_UP                     (FLAG_HIDDEN_ITEMS_START + 0x27) +#define FLAG_HIDDEN_ITEM_ROUTE_121_NUGGET                    (FLAG_HIDDEN_ITEMS_START + 0x28) +#define FLAG_HIDDEN_ITEM_ROUTE_123_REVIVE                    (FLAG_HIDDEN_ITEMS_START + 0x29) +#define FLAG_HIDDEN_ITEM_ROUTE_113_REVIVE                    (FLAG_HIDDEN_ITEMS_START + 0x2A) +#define FLAG_HIDDEN_ITEM_LILYCOVE_CITY_PP_UP                 (FLAG_HIDDEN_ITEMS_START + 0x2B) +#define FLAG_HIDDEN_ITEM_ROUTE_104_SUPER_POTION              (FLAG_HIDDEN_ITEMS_START + 0x2C) +#define FLAG_HIDDEN_ITEM_ROUTE_116_SUPER_POTION              (FLAG_HIDDEN_ITEMS_START + 0x2D)  #define FLAG_HIDDEN_ITEM_ROUTE_106_STARDUST                  (FLAG_HIDDEN_ITEMS_START + 0x2E)  #define FLAG_HIDDEN_ITEM_ROUTE_106_HEART_SCALE               (FLAG_HIDDEN_ITEMS_START + 0x2F) -#define FLAG_HIDDEN_ITEM_ROUTE_108_RARE_CANDY                (FLAG_HIDDEN_ITEMS_START + 0x56) +#define FLAG_HIDDEN_ITEM_GRANITE_CAVE_B2F_EVERSTONE_1        (FLAG_HIDDEN_ITEMS_START + 0x30) +#define FLAG_HIDDEN_ITEM_GRANITE_CAVE_B2F_EVERSTONE_2        (FLAG_HIDDEN_ITEMS_START + 0x31)  #define FLAG_HIDDEN_ITEM_ROUTE_109_REVIVE                    (FLAG_HIDDEN_ITEMS_START + 0x32) -#define FLAG_HIDDEN_ITEM_ROUTE_109_HEART_SCALE_1             (FLAG_HIDDEN_ITEMS_START + 0x34)  #define FLAG_HIDDEN_ITEM_ROUTE_109_GREAT_BALL                (FLAG_HIDDEN_ITEMS_START + 0x33) -#define FLAG_HIDDEN_ITEM_ROUTE_109_ETHER                     (FLAG_HIDDEN_ITEMS_START + 0x40) -#define FLAG_HIDDEN_ITEM_ROUTE_109_HEART_SCALE_2             (FLAG_HIDDEN_ITEMS_START + 0x5A) -#define FLAG_HIDDEN_ITEM_ROUTE_109_HEART_SCALE_3             (FLAG_HIDDEN_ITEMS_START + 0x5B) -#define FLAG_HIDDEN_ITEM_ROUTE_110_REVIVE                    (FLAG_HIDDEN_ITEMS_START + 0x36) +#define FLAG_HIDDEN_ITEM_ROUTE_109_HEART_SCALE_1             (FLAG_HIDDEN_ITEMS_START + 0x34)  #define FLAG_HIDDEN_ITEM_ROUTE_110_GREAT_BALL                (FLAG_HIDDEN_ITEMS_START + 0x35) -#define FLAG_HIDDEN_ITEM_ROUTE_110_POKE_BALL                 (FLAG_HIDDEN_ITEMS_START + 0x41) +#define FLAG_HIDDEN_ITEM_ROUTE_110_REVIVE                    (FLAG_HIDDEN_ITEMS_START + 0x36)  #define FLAG_HIDDEN_ITEM_ROUTE_110_FULL_HEAL                 (FLAG_HIDDEN_ITEMS_START + 0x37) -#define FLAG_HIDDEN_ITEM_ROUTE_111_STARDUST                  (FLAG_HIDDEN_ITEMS_START + 0x02)  #define FLAG_HIDDEN_ITEM_ROUTE_111_PROTEIN                   (FLAG_HIDDEN_ITEMS_START + 0x38)  #define FLAG_HIDDEN_ITEM_ROUTE_111_RARE_CANDY                (FLAG_HIDDEN_ITEMS_START + 0x39) -#define FLAG_HIDDEN_ITEM_ROUTE_113_ETHER                     (FLAG_HIDDEN_ITEMS_START + 0x03) -#define FLAG_HIDDEN_ITEM_ROUTE_113_TM_32                     (FLAG_HIDDEN_ITEMS_START + 0x1E) -#define FLAG_HIDDEN_ITEM_ROUTE_113_NUGGET                    (FLAG_HIDDEN_ITEMS_START + 0x62) -#define FLAG_HIDDEN_ITEM_ROUTE_114_CARBOS                    (FLAG_HIDDEN_ITEMS_START + 0x04) -#define FLAG_HIDDEN_ITEM_ROUTE_113_REVIVE                    (FLAG_HIDDEN_ITEMS_START + 0x2A) -#define FLAG_HIDDEN_ITEM_ROUTE_115_HEART_SCALE               (FLAG_HIDDEN_ITEMS_START + 0x61) -#define FLAG_HIDDEN_ITEM_ROUTE_116_SUPER_POTION              (FLAG_HIDDEN_ITEMS_START + 0x2D) -#define FLAG_HIDDEN_ITEM_ROUTE_116_BLACK_GLASSES             (FLAG_HIDDEN_ITEMS_START + 0x60) -#define FLAG_HIDDEN_ITEM_ROUTE_117_REPEL                     (FLAG_HIDDEN_ITEMS_START + 0x48) +#define FLAG_HIDDEN_ITEM_PETALBURG_WOODS_POTION              (FLAG_HIDDEN_ITEMS_START + 0x3A) +#define FLAG_HIDDEN_ITEM_PETALBURG_WOODS_TINY_MUSHROOM_1     (FLAG_HIDDEN_ITEMS_START + 0x3B) +#define FLAG_HIDDEN_ITEM_PETALBURG_WOODS_TINY_MUSHROOM_2     (FLAG_HIDDEN_ITEMS_START + 0x3C) +#define FLAG_HIDDEN_ITEM_PETALBURG_WOODS_POKE_BALL           (FLAG_HIDDEN_ITEMS_START + 0x3D) +#define FLAG_HIDDEN_ITEM_ROUTE_104_POKE_BALL                 (FLAG_HIDDEN_ITEMS_START + 0x3E) +#define FLAG_HIDDEN_ITEM_ROUTE_106_POKE_BALL                 (FLAG_HIDDEN_ITEMS_START + 0x3F) +#define FLAG_HIDDEN_ITEM_ROUTE_109_ETHER                     (FLAG_HIDDEN_ITEMS_START + 0x40) +#define FLAG_HIDDEN_ITEM_ROUTE_110_POKE_BALL                 (FLAG_HIDDEN_ITEMS_START + 0x41)  #define FLAG_HIDDEN_ITEM_ROUTE_118_HEART_SCALE               (FLAG_HIDDEN_ITEMS_START + 0x42)  #define FLAG_HIDDEN_ITEM_ROUTE_118_IRON                      (FLAG_HIDDEN_ITEMS_START + 0x43) -#define FLAG_HIDDEN_ITEM_ROUTE_119_CALCIUM                   (FLAG_HIDDEN_ITEMS_START + 0x05) -#define FLAG_HIDDEN_ITEM_ROUTE_119_ULTRA_BALL                (FLAG_HIDDEN_ITEMS_START + 0x06)  #define FLAG_HIDDEN_ITEM_ROUTE_119_FULL_HEAL                 (FLAG_HIDDEN_ITEMS_START + 0x44) -#define FLAG_HIDDEN_ITEM_ROUTE_119_MAX_ETHER                 (FLAG_HIDDEN_ITEMS_START + 0x57) -#define FLAG_HIDDEN_ITEM_ROUTE_120_RARE_CANDY_1              (FLAG_HIDDEN_ITEMS_START + 0x47) -#define FLAG_HIDDEN_ITEM_ROUTE_120_REVIVE                    (FLAG_HIDDEN_ITEMS_START + 0x54)  #define FLAG_HIDDEN_ITEM_ROUTE_120_RARE_CANDY_2              (FLAG_HIDDEN_ITEMS_START + 0x45)  #define FLAG_HIDDEN_ITEM_ROUTE_120_ZINC                      (FLAG_HIDDEN_ITEMS_START + 0x46) -#define FLAG_HIDDEN_ITEM_ROUTE_121_HP_UP                     (FLAG_HIDDEN_ITEMS_START + 0x27) -#define FLAG_HIDDEN_ITEM_ROUTE_121_NUGGET                    (FLAG_HIDDEN_ITEMS_START + 0x28) +#define FLAG_HIDDEN_ITEM_ROUTE_120_RARE_CANDY_1              (FLAG_HIDDEN_ITEMS_START + 0x47) +#define FLAG_HIDDEN_ITEM_ROUTE_117_REPEL                     (FLAG_HIDDEN_ITEMS_START + 0x48)  #define FLAG_HIDDEN_ITEM_ROUTE_121_FULL_HEAL                 (FLAG_HIDDEN_ITEMS_START + 0x49) -#define FLAG_HIDDEN_ITEM_ROUTE_121_MAX_REVIVE                (FLAG_HIDDEN_ITEMS_START + 0x64) -#define FLAG_HIDDEN_ITEM_ROUTE_123_SUPER_REPEL               (FLAG_HIDDEN_ITEMS_START + 0x07) -#define FLAG_HIDDEN_ITEM_ROUTE_123_REVIVE                    (FLAG_HIDDEN_ITEMS_START + 0x29)  #define FLAG_HIDDEN_ITEM_ROUTE_123_HYPER_POTION              (FLAG_HIDDEN_ITEMS_START + 0x4A) -#define FLAG_HIDDEN_ITEM_ROUTE_123_PP_UP                     (FLAG_HIDDEN_ITEMS_START + 0x63) -#define FLAG_HIDDEN_ITEM_ROUTE_123_RARE_CANDY                (FLAG_HIDDEN_ITEMS_START + 0x6E) +#define FLAG_HIDDEN_ITEM_LILYCOVE_CITY_POKE_BALL             (FLAG_HIDDEN_ITEMS_START + 0x4B) +#define FLAG_HIDDEN_ITEM_JAGGED_PASS_GREAT_BALL              (FLAG_HIDDEN_ITEMS_START + 0x4C) +#define FLAG_HIDDEN_ITEM_JAGGED_PASS_FULL_HEAL               (FLAG_HIDDEN_ITEMS_START + 0x4D) +#define FLAG_HIDDEN_ITEM_MT_PYRE_EXTERIOR_MAX_ETHER          (FLAG_HIDDEN_ITEMS_START + 0x4E) +#define FLAG_HIDDEN_ITEM_MT_PYRE_SUMMIT_ZINC                 (FLAG_HIDDEN_ITEMS_START + 0x4F) +#define FLAG_HIDDEN_ITEM_MT_PYRE_SUMMIT_RARE_CANDY           (FLAG_HIDDEN_ITEMS_START + 0x50) +#define FLAG_HIDDEN_ITEM_VICTORY_ROAD_1F_ULTRA_BALL          (FLAG_HIDDEN_ITEMS_START + 0x51) +#define FLAG_HIDDEN_ITEM_VICTORY_ROAD_B2F_ELIXIR             (FLAG_HIDDEN_ITEMS_START + 0x52) +#define FLAG_HIDDEN_ITEM_VICTORY_ROAD_B2F_MAX_REPEL          (FLAG_HIDDEN_ITEMS_START + 0x53) +#define FLAG_HIDDEN_ITEM_ROUTE_120_REVIVE                    (FLAG_HIDDEN_ITEMS_START + 0x54) +#define FLAG_HIDDEN_ITEM_ROUTE_104_ANTIDOTE                  (FLAG_HIDDEN_ITEMS_START + 0x55) +#define FLAG_HIDDEN_ITEM_ROUTE_108_RARE_CANDY                (FLAG_HIDDEN_ITEMS_START + 0x56) +#define FLAG_HIDDEN_ITEM_ROUTE_119_MAX_ETHER                 (FLAG_HIDDEN_ITEMS_START + 0x57) +#define FLAG_HIDDEN_ITEM_ROUTE_104_HEART_SCALE               (FLAG_HIDDEN_ITEMS_START + 0x58) +#define FLAG_HIDDEN_ITEM_ROUTE_105_HEART_SCALE               (FLAG_HIDDEN_ITEMS_START + 0x59) +#define FLAG_HIDDEN_ITEM_ROUTE_109_HEART_SCALE_2             (FLAG_HIDDEN_ITEMS_START + 0x5A) +#define FLAG_HIDDEN_ITEM_ROUTE_109_HEART_SCALE_3             (FLAG_HIDDEN_ITEMS_START + 0x5B)  #define FLAG_HIDDEN_ITEM_ROUTE_128_HEART_SCALE_1             (FLAG_HIDDEN_ITEMS_START + 0x5C)  #define FLAG_HIDDEN_ITEM_ROUTE_128_HEART_SCALE_2             (FLAG_HIDDEN_ITEMS_START + 0x5D)  #define FLAG_HIDDEN_ITEM_ROUTE_128_HEART_SCALE_3             (FLAG_HIDDEN_ITEMS_START + 0x5E) +#define FLAG_HIDDEN_ITEM_PETALBURG_CITY_RARE_CANDY           (FLAG_HIDDEN_ITEMS_START + 0x5F) +#define FLAG_HIDDEN_ITEM_ROUTE_116_BLACK_GLASSES             (FLAG_HIDDEN_ITEMS_START + 0x60) +#define FLAG_HIDDEN_ITEM_ROUTE_115_HEART_SCALE               (FLAG_HIDDEN_ITEMS_START + 0x61) +#define FLAG_HIDDEN_ITEM_ROUTE_113_NUGGET                    (FLAG_HIDDEN_ITEMS_START + 0x62) +#define FLAG_HIDDEN_ITEM_ROUTE_123_PP_UP                     (FLAG_HIDDEN_ITEMS_START + 0x63) +#define FLAG_HIDDEN_ITEM_ROUTE_121_MAX_REVIVE                (FLAG_HIDDEN_ITEMS_START + 0x64) +#define FLAG_HIDDEN_ITEM_ARTISAN_CAVE_B1F_CALCIUM            (FLAG_HIDDEN_ITEMS_START + 0x65) +#define FLAG_HIDDEN_ITEM_ARTISAN_CAVE_B1F_ZINC               (FLAG_HIDDEN_ITEMS_START + 0x66) +#define FLAG_HIDDEN_ITEM_ARTISAN_CAVE_B1F_PROTEIN            (FLAG_HIDDEN_ITEMS_START + 0x67) +#define FLAG_HIDDEN_ITEM_ARTISAN_CAVE_B1F_IRON               (FLAG_HIDDEN_ITEMS_START + 0x68) +#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_SOUTH_EAST_FULL_RESTORE (FLAG_HIDDEN_ITEMS_START + 0x69) +#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_NORTH_EAST_RARE_CANDY   (FLAG_HIDDEN_ITEMS_START + 0x6A) +#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_NORTH_EAST_ZINC         (FLAG_HIDDEN_ITEMS_START + 0x6B) +#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_SOUTH_EAST_PP_UP        (FLAG_HIDDEN_ITEMS_START + 0x6C) +#define FLAG_HIDDEN_ITEM_NAVEL_ROCK_TOP_SACRED_ASH           (FLAG_HIDDEN_ITEMS_START + 0x6D) +#define FLAG_HIDDEN_ITEM_ROUTE_123_RARE_CANDY                (FLAG_HIDDEN_ITEMS_START + 0x6E) +#define FLAG_HIDDEN_ITEM_ROUTE_105_BIG_PEARL                 (FLAG_HIDDEN_ITEMS_START + 0x6F)  #define FLAG_UNUSED_0x264  0x264 // Unused Flag  #define FLAG_UNUSED_0x265  0x265 // Unused Flag @@ -799,7 +799,7 @@  #define FLAG_HIDE_LITTLEROOT_TOWN_PLAYERS_HOUSE_VIGOROTH_1          0x2F2  #define FLAG_HIDE_LITTLEROOT_TOWN_PLAYERS_HOUSE_VIGOROTH_2          0x2F3  #define FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_1F_TEAM_MAGMA          0x2F4 -#define FLAG_HIDE_LITTLE_ROOT_TOWN_PLAYERS_BEDROOM_MOM              0x2F5 +#define FLAG_HIDE_LITTLEROOT_TOWN_PLAYERS_BEDROOM_MOM               0x2F5  #define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_MOM                0x2F6  #define FLAG_HIDE_LITTLEROOT_TOWN_MAYS_HOUSE_MOM                    0x2F7  #define FLAG_HIDE_LITTLEROOT_TOWN_BRENDANS_HOUSE_RIVAL_BEDROOM      0x2F8 diff --git a/include/constants/item.h b/include/constants/item.h index 3277f2379..a224291fa 100644 --- a/include/constants/item.h +++ b/include/constants/item.h @@ -16,9 +16,4 @@  #define KEYITEMS_POCKET    4  #define POCKETS_COUNT      5 -// The TM/HM pocket is the largest pocket, so the maximum amount of items -// in a pocket is its count + 1 for the cancel option -#define MAX_POCKET_ITEMS   (BAG_TMHM_COUNT + 1) - -  #endif // GUARD_ITEM_CONSTANTS_H diff --git a/include/constants/items.h b/include/constants/items.h index 8f77e80de..c596dd3b8 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -199,9 +199,11 @@  #define FIRST_BERRY_INDEX ITEM_CHERI_BERRY  #define LAST_BERRY_INDEX  ITEM_ENIGMA_BERRY -#define ITEM_0B0 176 -#define ITEM_0B1 177 -#define ITEM_0B2 178 +#define ITEM_UNUSED_BERRY_1 176 +#define ITEM_UNUSED_BERRY_2 177 +#define ITEM_UNUSED_BERRY_3 178 + +#define MAX_BERRY_INDEX ITEM_UNUSED_BERRY_3  // Battle Held items  #define ITEM_BRIGHT_POWDER 179 @@ -531,6 +533,6 @@  #define ITEM_B_USE_OTHER    2  // Check if the item is one that can be used on a Pokemon. -#define ITEM_HAS_EFFECT(item) ((item) >= ITEM_POTION && (item) <= ITEM_0B2) +#define ITEM_HAS_EFFECT(item) ((item) >= ITEM_POTION && (item) <= MAX_BERRY_INDEX)  #endif  // GUARD_CONSTANTS_ITEMS_H diff --git a/include/constants/map_groups.h b/include/constants/map_groups.h index c650600e8..eaf40a525 100755 --- a/include/constants/map_groups.h +++ b/include/constants/map_groups.h @@ -5,7 +5,7 @@  // DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json  // -// Map Group 0 +// gMapGroup_TownsAndRoutes  #define MAP_PETALBURG_CITY      (0 | (0 << 8))  #define MAP_SLATEPORT_CITY      (1 | (0 << 8))  #define MAP_MAUVILLE_CITY       (2 | (0 << 8)) @@ -64,21 +64,21 @@  #define MAP_UNDERWATER_ROUTE105 (55 | (0 << 8))  #define MAP_UNDERWATER_ROUTE125 (56 | (0 << 8)) -// Map Group 1 +// gMapGroup_IndoorLittleroot  #define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F    (0 | (1 << 8))  #define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F    (1 | (1 << 8))  #define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_1F        (2 | (1 << 8))  #define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_2F        (3 | (1 << 8))  #define MAP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB (4 | (1 << 8)) -// Map Group 2 +// gMapGroup_IndoorOldale  #define MAP_OLDALE_TOWN_HOUSE1            (0 | (2 << 8))  #define MAP_OLDALE_TOWN_HOUSE2            (1 | (2 << 8))  #define MAP_OLDALE_TOWN_POKEMON_CENTER_1F (2 | (2 << 8))  #define MAP_OLDALE_TOWN_POKEMON_CENTER_2F (3 | (2 << 8))  #define MAP_OLDALE_TOWN_MART              (4 | (2 << 8)) -// Map Group 3 +// gMapGroup_IndoorDewford  #define MAP_DEWFORD_TOWN_HOUSE1            (0 | (3 << 8))  #define MAP_DEWFORD_TOWN_POKEMON_CENTER_1F (1 | (3 << 8))  #define MAP_DEWFORD_TOWN_POKEMON_CENTER_2F (2 | (3 << 8)) @@ -86,7 +86,7 @@  #define MAP_DEWFORD_TOWN_HALL              (4 | (3 << 8))  #define MAP_DEWFORD_TOWN_HOUSE2            (5 | (3 << 8)) -// Map Group 4 +// gMapGroup_IndoorLavaridge  #define MAP_LAVARIDGE_TOWN_HERB_SHOP         (0 | (4 << 8))  #define MAP_LAVARIDGE_TOWN_GYM_1F            (1 | (4 << 8))  #define MAP_LAVARIDGE_TOWN_GYM_B1F           (2 | (4 << 8)) @@ -95,7 +95,7 @@  #define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F (5 | (4 << 8))  #define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_2F (6 | (4 << 8)) -// Map Group 5 +// gMapGroup_IndoorFallarbor  #define MAP_FALLARBOR_TOWN_MART                    (0 | (5 << 8))  #define MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY       (1 | (5 << 8))  #define MAP_FALLARBOR_TOWN_BATTLE_TENT_CORRIDOR    (2 | (5 << 8)) @@ -105,7 +105,7 @@  #define MAP_FALLARBOR_TOWN_COZMOS_HOUSE            (6 | (5 << 8))  #define MAP_FALLARBOR_TOWN_MOVE_RELEARNERS_HOUSE   (7 | (5 << 8)) -// Map Group 6 +// gMapGroup_IndoorVerdanturf  #define MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY       (0 | (6 << 8))  #define MAP_VERDANTURF_TOWN_BATTLE_TENT_CORRIDOR    (1 | (6 << 8))  #define MAP_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM (2 | (6 << 8)) @@ -116,7 +116,7 @@  #define MAP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE (7 | (6 << 8))  #define MAP_VERDANTURF_TOWN_HOUSE                   (8 | (6 << 8)) -// Map Group 7 +// gMapGroup_IndoorPacifidlog  #define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F (0 | (7 << 8))  #define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F (1 | (7 << 8))  #define MAP_PACIFIDLOG_TOWN_HOUSE1            (2 | (7 << 8)) @@ -125,7 +125,7 @@  #define MAP_PACIFIDLOG_TOWN_HOUSE4            (5 | (7 << 8))  #define MAP_PACIFIDLOG_TOWN_HOUSE5            (6 | (7 << 8)) -// Map Group 8 +// gMapGroup_IndoorPetalburg  #define MAP_PETALBURG_CITY_WALLYS_HOUSE      (0 | (8 << 8))  #define MAP_PETALBURG_CITY_GYM               (1 | (8 << 8))  #define MAP_PETALBURG_CITY_HOUSE1            (2 | (8 << 8)) @@ -134,7 +134,7 @@  #define MAP_PETALBURG_CITY_POKEMON_CENTER_2F (5 | (8 << 8))  #define MAP_PETALBURG_CITY_MART              (6 | (8 << 8)) -// Map Group 9 +// gMapGroup_IndoorSlateport  #define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_1F      (0 | (9 << 8))  #define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_2F      (1 | (9 << 8))  #define MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY       (2 | (9 << 8)) @@ -150,7 +150,7 @@  #define MAP_SLATEPORT_CITY_POKEMON_CENTER_2F       (12 | (9 << 8))  #define MAP_SLATEPORT_CITY_MART                    (13 | (9 << 8)) -// Map Group 10 +// gMapGroup_IndoorMauville  #define MAP_MAUVILLE_CITY_GYM               (0 | (10 << 8))  #define MAP_MAUVILLE_CITY_BIKE_SHOP         (1 | (10 << 8))  #define MAP_MAUVILLE_CITY_HOUSE1            (2 | (10 << 8)) @@ -160,7 +160,7 @@  #define MAP_MAUVILLE_CITY_POKEMON_CENTER_2F (6 | (10 << 8))  #define MAP_MAUVILLE_CITY_MART              (7 | (10 << 8)) -// Map Group 11 +// gMapGroup_IndoorRustboro  #define MAP_RUSTBORO_CITY_DEVON_CORP_1F     (0 | (11 << 8))  #define MAP_RUSTBORO_CITY_DEVON_CORP_2F     (1 | (11 << 8))  #define MAP_RUSTBORO_CITY_DEVON_CORP_3F     (2 | (11 << 8)) @@ -179,7 +179,7 @@  #define MAP_RUSTBORO_CITY_FLAT2_3F          (15 | (11 << 8))  #define MAP_RUSTBORO_CITY_HOUSE3            (16 | (11 << 8)) -// Map Group 12 +// gMapGroup_IndoorFortree  #define MAP_FORTREE_CITY_HOUSE1            (0 | (12 << 8))  #define MAP_FORTREE_CITY_GYM               (1 | (12 << 8))  #define MAP_FORTREE_CITY_POKEMON_CENTER_1F (2 | (12 << 8)) @@ -191,7 +191,7 @@  #define MAP_FORTREE_CITY_HOUSE5            (8 | (12 << 8))  #define MAP_FORTREE_CITY_DECORATION_SHOP   (9 | (12 << 8)) -// Map Group 13 +// gMapGroup_IndoorLilycove  #define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F        (0 | (13 << 8))  #define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F        (1 | (13 << 8))  #define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F        (2 | (13 << 8)) @@ -216,7 +216,7 @@  #define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP  (21 | (13 << 8))  #define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR (22 | (13 << 8)) -// Map Group 14 +// gMapGroup_IndoorMossdeep  #define MAP_MOSSDEEP_CITY_GYM               (0 | (14 << 8))  #define MAP_MOSSDEEP_CITY_HOUSE1            (1 | (14 << 8))  #define MAP_MOSSDEEP_CITY_HOUSE2            (2 | (14 << 8)) @@ -231,7 +231,7 @@  #define MAP_MOSSDEEP_CITY_GAME_CORNER_1F    (11 | (14 << 8))  #define MAP_MOSSDEEP_CITY_GAME_CORNER_B1F   (12 | (14 << 8)) -// Map Group 15 +// gMapGroup_IndoorSootopolis  #define MAP_SOOTOPOLIS_CITY_GYM_1F                   (0 | (15 << 8))  #define MAP_SOOTOPOLIS_CITY_GYM_B1F                  (1 | (15 << 8))  #define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F        (2 | (15 << 8)) @@ -248,7 +248,7 @@  #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 +// gMapGroup_IndoorEverGrande  #define MAP_EVER_GRANDE_CITY_SIDNEYS_ROOM      (0 | (16 << 8))  #define MAP_EVER_GRANDE_CITY_PHOEBES_ROOM      (1 | (16 << 8))  #define MAP_EVER_GRANDE_CITY_GLACIAS_ROOM      (2 | (16 << 8)) @@ -265,33 +265,33 @@  #define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_2F (13 | (16 << 8))  #define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_2F (14 | (16 << 8)) -// Map Group 17 +// gMapGroup_IndoorRoute104  #define MAP_ROUTE104_MR_BRINEYS_HOUSE         (0 | (17 << 8))  #define MAP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP (1 | (17 << 8)) -// Map Group 18 +// gMapGroup_IndoorRoute111  #define MAP_ROUTE111_WINSTRATE_FAMILYS_HOUSE (0 | (18 << 8))  #define MAP_ROUTE111_OLD_LADYS_REST_STOP     (1 | (18 << 8)) -// Map Group 19 +// gMapGroup_IndoorRoute112  #define MAP_ROUTE112_CABLE_CAR_STATION   (0 | (19 << 8))  #define MAP_MT_CHIMNEY_CABLE_CAR_STATION (1 | (19 << 8)) -// Map Group 20 +// gMapGroup_IndoorRoute114  #define MAP_ROUTE114_FOSSIL_MANIACS_HOUSE  (0 | (20 << 8))  #define MAP_ROUTE114_FOSSIL_MANIACS_TUNNEL (1 | (20 << 8))  #define MAP_ROUTE114_LANETTES_HOUSE        (2 | (20 << 8)) -// Map Group 21 +// gMapGroup_IndoorRoute116  #define MAP_ROUTE116_TUNNELERS_REST_HOUSE (0 | (21 << 8)) -// Map Group 22 +// gMapGroup_IndoorRoute117  #define MAP_ROUTE117_POKEMON_DAY_CARE (0 | (22 << 8)) -// Map Group 23 +// gMapGroup_IndoorRoute121  #define MAP_ROUTE121_SAFARI_ZONE_ENTRANCE (0 | (23 << 8)) -// Map Group 24 +// gMapGroup_Dungeons  #define MAP_METEOR_FALLS_1F_1R                       (0 | (24 << 8))  #define MAP_METEOR_FALLS_1F_2R                       (1 | (24 << 8))  #define MAP_METEOR_FALLS_B1F_1R                      (2 | (24 << 8)) @@ -401,7 +401,7 @@  #define MAP_ALTERING_CAVE                            (106 | (24 << 8))  #define MAP_METEOR_FALLS_STEVENS_CAVE                (107 | (24 << 8)) -// Map Group 25 +// gMapGroup_IndoorDynamic  #define MAP_SECRET_BASE_RED_CAVE1    (0 | (25 << 8))  #define MAP_SECRET_BASE_BROWN_CAVE1  (1 | (25 << 8))  #define MAP_SECRET_BASE_BLUE_CAVE1   (2 | (25 << 8)) @@ -464,7 +464,7 @@  #define MAP_BATTLE_PYRAMID_SQUARE16  (59 | (25 << 8))  #define MAP_UNION_ROOM               (60 | (25 << 8)) -// Map Group 26 +// gMapGroup_SpecialArea  #define MAP_SAFARI_ZONE_NORTHWEST                           (0 | (26 << 8))  #define MAP_SAFARI_ZONE_NORTH                               (1 | (26 << 8))  #define MAP_SAFARI_ZONE_SOUTHWEST                           (2 | (26 << 8)) @@ -555,14 +555,14 @@  #define MAP_NAVEL_ROCK_BOTTOM                               (87 | (26 << 8))  #define MAP_TRAINER_HILL_ELEVATOR                           (88 | (26 << 8)) -// Map Group 27 +// gMapGroup_IndoorRoute104Prototype  #define MAP_ROUTE104_PROTOTYPE                          (0 | (27 << 8))  #define MAP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP (1 | (27 << 8)) -// Map Group 28 +// gMapGroup_IndoorRoute109  #define MAP_ROUTE109_SEASHORE_HOUSE (0 | (28 << 8)) -// Map Group 29 +// gMapGroup_IndoorRoute110  #define MAP_ROUTE110_TRICK_HOUSE_ENTRANCE                (0 | (29 << 8))  #define MAP_ROUTE110_TRICK_HOUSE_END                     (1 | (29 << 8))  #define MAP_ROUTE110_TRICK_HOUSE_CORRIDOR                (2 | (29 << 8)) @@ -577,18 +577,18 @@  #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 +// gMapGroup_IndoorRoute113  #define MAP_ROUTE113_GLASS_WORKSHOP (0 | (30 << 8)) -// Map Group 31 +// gMapGroup_IndoorRoute123  #define MAP_ROUTE123_BERRY_MASTERS_HOUSE (0 | (31 << 8)) -// Map Group 32 +// gMapGroup_IndoorRoute119  #define MAP_ROUTE119_WEATHER_INSTITUTE_1F (0 | (32 << 8))  #define MAP_ROUTE119_WEATHER_INSTITUTE_2F (1 | (32 << 8))  #define MAP_ROUTE119_HOUSE                (2 | (32 << 8)) -// Map Group 33 +// gMapGroup_IndoorRoute124  #define MAP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE (0 | (33 << 8))  #define MAP_GROUPS_COUNT 34 diff --git a/include/constants/metatile_labels.h b/include/constants/metatile_labels.h index 836ab6ef2..b5ef69046 100644 --- a/include/constants/metatile_labels.h +++ b/include/constants/metatile_labels.h @@ -42,6 +42,8 @@  #define METATILE_General_BlueCaveOpen         0x1B1  // gTileset_Building +#define METATILE_Building_TV_Off 0x002 +#define METATILE_Building_TV_On  0x003  #define METATILE_Building_PC_Off 0x004  #define METATILE_Building_PC_On  0x005 diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index 51ef0c015..63c031824 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -272,15 +272,6 @@  #define MAX_FRIENDSHIP  0xFF -#define STATUS_PRIMARY_NONE      0 -#define STATUS_PRIMARY_POISON    1 -#define STATUS_PRIMARY_PARALYSIS 2 -#define STATUS_PRIMARY_SLEEP     3 -#define STATUS_PRIMARY_FREEZE    4 -#define STATUS_PRIMARY_BURN      5 -#define STATUS_PRIMARY_POKERUS   6 -#define STATUS_PRIMARY_FAINTED   7 -  #define MAX_PER_STAT_IVS 31  #define MAX_IV_MASK 31  #define USE_RANDOM_IVS (MAX_PER_STAT_IVS + 1) diff --git a/include/constants/trainer_hill.h b/include/constants/trainer_hill.h index 27357e99c..0e802bba8 100644 --- a/include/constants/trainer_hill.h +++ b/include/constants/trainer_hill.h @@ -37,8 +37,9 @@  #define TRAINER_HILL_TEXT_PLAYER_WON   4  #define TRAINER_HILL_TEXT_AFTER        5 -#define NUM_TRAINER_HILL_TRAINERS     (NUM_TRAINER_HILL_FLOORS * 2) -#define NUM_TRAINER_HILL_TRAINERS_JP  (NUM_TRAINER_HILL_FLOORS_JP * 2) +#define TRAINER_HILL_TRAINERS_PER_FLOOR 2 +#define NUM_TRAINER_HILL_TRAINERS     (NUM_TRAINER_HILL_FLOORS * TRAINER_HILL_TRAINERS_PER_FLOOR) +#define NUM_TRAINER_HILL_TRAINERS_JP  (NUM_TRAINER_HILL_FLOORS_JP * TRAINER_HILL_TRAINERS_PER_FLOOR)  // Values returned by TrainerHillGetChallengeStatus  #define TRAINER_HILL_PLAYER_STATUS_LOST 0 diff --git a/include/constants/tv.h b/include/constants/tv.h index f7b091f49..095a6ddca 100644 --- a/include/constants/tv.h +++ b/include/constants/tv.h @@ -6,12 +6,22 @@  #define POKENEWS_GAME_CORNER  2  #define POKENEWS_LILYCOVE     3  #define POKENEWS_BLENDMASTER  4 +#define NUM_POKENEWS_TYPES    4 // Excludes NONE + +// TV shows are categorized as being in one of 3 groups +// - TVGROUP_NORMAL, TV shows that can appear without Record Mixing +// - TVGROUP_RECORD_MIX, TV shows that can only appear via Record Mixing +// - TVGROUP_OUTBREAK, just contains TVSHOW_MASS_OUTBREAK +// Each group was allotted 20 spaces arbitrarily, though none use all 20  #define TVSHOW_OFF_AIR                              0 + +// TVGROUP_NORMAL +#define TVGROUP_NORMAL_START                        1  #define TVSHOW_FAN_CLUB_LETTER                      1  #define TVSHOW_RECENT_HAPPENINGS                    2  #define TVSHOW_PKMN_FAN_CLUB_OPINIONS               3 -#define TVSHOW_UNKN_SHOWTYPE_04                     4 +#define TVSHOW_DUMMY                                4  #define TVSHOW_NAME_RATER_SHOW                      5  #define TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE        6  #define TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE   7 @@ -20,7 +30,11 @@  #define TVSHOW_BATTLE_UPDATE                        10  #define TVSHOW_FAN_CLUB_SPECIAL                     11  #define TVSHOW_LILYCOVE_CONTEST_LADY                12 -//                                                  // +// +#define TVGROUP_NORMAL_END                          20 + +// TVGROUP_RECORD_MIX +#define TVGROUP_RECORD_MIX_START                    21  #define TVSHOW_POKEMON_TODAY_CAUGHT                 21   #define TVSHOW_SMART_SHOPPER                        22  #define TVSHOW_POKEMON_TODAY_FAILED                 23 @@ -40,8 +54,22 @@  #define TVSHOW_NUMBER_ONE                           37  #define TVSHOW_SECRET_BASE_SECRETS                  38  #define TVSHOW_SAFARI_FAN_CLUB                      39 -//                                                  // -#define TVSHOW_MASS_OUTBREAK                        41  +#define TVGROUP_RECORD_MIX_END                      40 + +// TVGROUP_OUTBREAK +#define TVGROUP_OUTBREAK_START                      41 +#define TVSHOW_MASS_OUTBREAK                        41 +// +#define TVGROUP_OUTBREAK_END                        60 + +// The first 5 elements of gSaveBlock1Ptr->tvShows are reserved +// for TV shows from TVGROUP_NORMAL. The remainder are for TV +// shows from TVGROUP_RECORD_MIX. +#define NUM_NORMAL_TVSHOW_SLOTS 5 + +#define PLAYERS_HOUSE_TV_NONE  0 +#define PLAYERS_HOUSE_TV_LATI  1 +#define PLAYERS_HOUSE_TV_MOVIE 2  // Number of ribbons to put Spot the Cuties on air  #define NUM_CUTIES_RIBBONS  4 @@ -221,4 +249,21 @@  #define CONTESTLADYLIVE_STATE_LOST       2  #define CONTESTLADYLIVE_STATE_LOST_BADLY 3 +// TV Show states for Smart Shopper +#define SMARTSHOPPER_STATE_INTRO           0 +#define SMARTSHOPPER_STATE_CLERK_NORMAL    1 +#define SMARTSHOPPER_STATE_RAND_COMMENT_1  2 +#define SMARTSHOPPER_STATE_RAND_COMMENT_2  3 +#define SMARTSHOPPER_STATE_RAND_COMMENT_3  4 +#define SMARTSHOPPER_STATE_RAND_COMMENT_4  5 +#define SMARTSHOPPER_STATE_SECOND_ITEM     6 +#define SMARTSHOPPER_STATE_THIRD_ITEM      7 +#define SMARTSHOPPER_STATE_DURING_SALE     8 +#define SMARTSHOPPER_STATE_OUTRO_NORMAL    9 +#define SMARTSHOPPER_STATE_IS_VIP         10 +#define SMARTSHOPPER_STATE_CLERK_MAX      11 +#define SMARTSHOPPER_STATE_OUTRO_MAX      12 + +#define SMARTSHOPPER_NUM_ITEMS 3 +  #endif //GUARD_CONSTANTS_TV_H diff --git a/include/contest.h b/include/contest.h index 1dd4340bd..9bac63eda 100644 --- a/include/contest.h +++ b/include/contest.h @@ -111,11 +111,11 @@ struct ContestPokemon      u32 otId;  }; -struct Shared1A004 +struct ContestTempSave  {      u16 cachedWindowPalettes[16][16]; // Saved palette data before a move happens? -    u16 unk18204[PLTT_BUFFER_SIZE];     // Saved copy of gPlttBufferUnfaded -    u16 unk18604[PLTT_BUFFER_SIZE];     // Saved copy of gPlttBufferFaded +    u16 cachedPlttBufferUnfaded[PLTT_BUFFER_SIZE]; +    u16 cachedPlttBufferFaded[PLTT_BUFFER_SIZE];      u8 savedJunk[0x800];  }; @@ -306,7 +306,7 @@ struct ContestResources  #define eUnzippedContestAudience_Gfx (gHeap + 0x18000)  #define eContestAudienceFrame2_Gfx (gHeap + 0x19000)  #define eContestDebugMode (gHeap[0x1a000]) -#define eUnknownHeap1A004 (*(struct Shared1A004 *)(gHeap + 0x1a004)) +#define eContestTempSave (*(struct ContestTempSave *)(gHeap + 0x1a004))  extern struct ContestPokemon gContestMons[CONTESTANT_COUNT];  extern s16 gContestMonRound1Points[CONTESTANT_COUNT]; @@ -326,8 +326,8 @@ extern u8 gHighestRibbonRank;  extern struct ContestResources *gContestResources;  extern u8 sContestBgCopyFlags;  extern struct ContestWinner gCurContestWinner; -extern u8 gUnknown_02039F5C; -extern u8 gUnknown_02039F5D; +extern u8 gCurContestWinnerIsForArtist; +extern u8 gCurContestWinnerSaveIdx;  extern u32 gContestRngValue;  // contest.c @@ -351,8 +351,8 @@ s8 Contest_GetMoveExcitement(u16 move);  bool8 IsContestantAllowedToCombo(u8 contestant);  void Contest_PrintTextToBg0WindowAt(u32 windowId, u8 *currChar, s32 x, s32 y, s32 fontId);  void ResetContestLinkResults(void); -bool8 sub_80DEDA8(u8 a); -u8 sub_80DEFA8(u8 a, u8 b); +bool8 SaveContestWinner(u8 rank); +u8 GetContestWinnerSaveIdx(u8 rank, bool8 shift);  void ClearContestWinnerPicsInContestHall(void);  void StripPlayerAndMonNamesForLinkContest(struct ContestPokemon *mon, s32 language); diff --git a/include/contest_util.h b/include/contest_util.h index 76f9ae522..1e97d91d3 100644 --- a/include/contest_util.h +++ b/include/contest_util.h @@ -7,8 +7,8 @@ void StartContest(void);  void BufferContestantMonSpecies(void);  void ShowContestResults(void);  void ContestLinkTransfer(u8); -void ShowContestWinnerPainting(void); +void ShowContestPainting(void);  u16 GetContestRand(void); -u8 CountPlayerContestPaintings(void); +u8 CountPlayerMuseumPaintings(void);  #endif // GUARD_CONTEST_UTIL_H diff --git a/include/data.h b/include/data.h index 2f8c44746..f94f55a8f 100644 --- a/include/data.h +++ b/include/data.h @@ -5,6 +5,12 @@  #define SPECIES_SHINY_TAG 500 +enum { +    BATTLER_AFFINE_NORMAL, +    BATTLER_AFFINE_EMERGE, +    BATTLER_AFFINE_RETURN, +}; +  struct MonCoords  {      // This would use a bitfield, but some function @@ -87,9 +93,9 @@ extern const struct SpriteFrameImage gTrainerBackPicTable_Steven[];  extern const union AffineAnimCmd *const gAffineAnims_BattleSpritePlayerSide[];  extern const union AffineAnimCmd *const gAffineAnims_BattleSpriteOpponentSide[]; -extern const union AffineAnimCmd *const gUnknown_082FF6C0[]; +extern const union AffineAnimCmd *const gAffineAnims_BattleSpriteContest[]; -extern const union AnimCmd *const gUnknown_082FF70C[]; +extern const union AnimCmd *const gAnims_MonPic[];  extern const struct MonCoords gMonFrontPicCoords[];  extern const struct CompressedSpriteSheet gMonStillFrontPicTable[];  extern const struct MonCoords gMonBackPicCoords[]; diff --git a/include/daycare.h b/include/daycare.h index 7d6f2fb19..d6c0d4201 100644 --- a/include/daycare.h +++ b/include/daycare.h @@ -6,7 +6,7 @@  u8 *GetMonNickname2(struct Pokemon *mon, u8 *dest);  u8 *GetBoxMonNickname(struct BoxPokemon *mon, u8 *dest);  u8 CountPokemonInDaycare(struct DayCare *daycare); -void InitDaycareMailRecordMixing(struct DayCare *daycare, struct RecordMixingDayCareMail *daycareMail); +void InitDaycareMailRecordMixing(struct DayCare *daycare, struct RecordMixingDaycareMail *daycareMail);  void StoreSelectedPokemonInDaycare(void);  u16 TakePokemonFromDaycare(void);  void GetDaycareCost(void); diff --git a/include/ereader_helpers.h b/include/ereader_helpers.h index 8dc3b907a..064b61ed7 100755 --- a/include/ereader_helpers.h +++ b/include/ereader_helpers.h @@ -5,30 +5,30 @@  struct EReaderTrainerHillTrainer  { -    u8 unk0; -    struct TrainerHillTrainer unk4; -    struct TrHillDisplay unk14C; +    u8 trainerNum; +    struct TrainerHillTrainer trainer; +    struct TrHillDisplay display;      u32 checksum;  }; // size=0x274  struct EReaderTrainerHillSet  { -    u8 count; +    u8 numTrainers;      u8 id; -    u16 dummy; +    u16 dummy; // Only read in an assert.      u32 checksum; -    struct EReaderTrainerHillTrainer unk_8[6]; +    struct EReaderTrainerHillTrainer trainers[6];      u8 unk_ec0[40];  }; // size = 0xf00 -bool8 EReader_IsReceivedDataValid(struct EReaderTrainerHillSet *buffer); -bool32 TryWriteTrainerHill(struct EReaderTrainerHillSet *arg0); +bool8 ValidateTrainerHillData(struct EReaderTrainerHillSet *); +bool32 TryWriteTrainerHill(struct EReaderTrainerHillSet *);  bool32 ReadTrainerHillAndValidate(void); -int EReaderHandleTransfer(u8, u32, u32*, u32*); -void sub_81D3F9C(void); -void sub_81D3FAC(void); +int EReaderHandleTransfer(u8, size_t, const void *, void *); +void EReaderHelper_Timer3Callback(void); +void EReaderHelper_SerialCallback(void);  void EReaderHelper_SaveRegsState(void);  void EReaderHelper_RestoreRegsState(void); -void sub_81D4238(void); +void EReaderHelper_ClearSendRecvMgr(void);  #endif // GUARD_EREADER_HELPERS_H diff --git a/include/event_object_lock.h b/include/event_object_lock.h index 9d31a25fd..0b1f5f098 100644 --- a/include/event_object_lock.h +++ b/include/event_object_lock.h @@ -2,9 +2,9 @@  #define GUARD_EVENT_OBJECT_LOCK_H  bool8 IsFreezePlayerFinished(void); -void ScriptFreezeObjectEvents(void);  bool8 IsFreezeSelectedObjectAndPlayerFinished(void); -void LockSelectedObjectEvent(void); +void FreezeObjects_WaitForPlayer(void); +void FreezeObjects_WaitForPlayerAndSelected(void);  void FreezeForApproachingTrainers(void);  bool8 IsFreezeObjectAndPlayerFinished(void);  void ScriptUnfreezeObjectEvents(void); diff --git a/include/event_scripts.h b/include/event_scripts.h index 925b4389d..c478f41f8 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -108,19 +108,19 @@ extern const u8 gTVPokemonTodaySuccessfulText08[];  extern const u8 gTVPokemonTodaySuccessfulText09[];  extern const u8 gTVPokemonTodaySuccessfulText10[];  extern const u8 gTVPokemonTodaySuccessfulText11[]; -extern const u8 gTVTodaysSmartShopperText00[]; -extern const u8 gTVTodaysSmartShopperText01[]; -extern const u8 gTVTodaysSmartShopperText02[]; -extern const u8 gTVTodaysSmartShopperText03[]; -extern const u8 gTVTodaysSmartShopperText04[]; -extern const u8 gTVTodaysSmartShopperText05[]; -extern const u8 gTVTodaysSmartShopperText06[]; -extern const u8 gTVTodaysSmartShopperText07[]; -extern const u8 gTVTodaysSmartShopperText08[]; -extern const u8 gTVTodaysSmartShopperText09[]; -extern const u8 gTVTodaysSmartShopperText10[]; -extern const u8 gTVTodaysSmartShopperText11[]; -extern const u8 gTVTodaysSmartShopperText12[]; +extern const u8 SmartShopper_Text_Intro[]; +extern const u8 SmartShopper_Text_ClerkNormal[]; +extern const u8 SmartShopper_Text_RandomComment1[]; +extern const u8 SmartShopper_Text_RandomComment2[]; +extern const u8 SmartShopper_Text_RandomComment3[]; +extern const u8 SmartShopper_Text_RandomComment4[]; +extern const u8 SmartShopper_Text_SecondItem[]; +extern const u8 SmartShopper_Text_ThirdItem[]; +extern const u8 SmartShopper_Text_DuringSale[]; +extern const u8 SmartShopper_Text_OutroNormal[]; +extern const u8 SmartShopper_Text_IsVIP[]; +extern const u8 SmartShopper_Text_ClerkMax[]; +extern const u8 SmartShopper_Text_OutroMax[];  extern const u8 gTVWorldOfMastersText00[];  extern const u8 gTVWorldOfMastersText01[];  extern const u8 gTVWorldOfMastersText02[]; @@ -584,9 +584,11 @@ extern const u8 SecretBase_EventScript_ShrubUseSecretPower[];  extern const u8 TrainerHill_EventScript_TrainerBattle[];  // Item Use -extern u8 BerryTree_EventScript_ItemUsePlantBerry[]; -extern u8 BerryTree_EventScript_ItemUseWailmerPail[]; -extern u8 BattleFrontier_OutsideEast_EventScript_WaterSudowoodo[]; +extern const u8 BerryTree_EventScript_ItemUsePlantBerry[]; +extern const u8 BerryTree_EventScript_ItemUseWailmerPail[]; +extern const u8 BattleFrontier_OutsideEast_EventScript_WaterSudowoodo[]; + +extern const u8 EventScript_SelectWithoutRegisteredItem[];  // overworld  extern const u8 EventScript_WhiteOut[]; diff --git a/include/gba/m4a_internal.h b/include/gba/m4a_internal.h index 2d0e1bb1c..2ccbb18f5 100644 --- a/include/gba/m4a_internal.h +++ b/include/gba/m4a_internal.h @@ -447,7 +447,7 @@ void SetPokemonCryPitch(s16 val);  void SetPokemonCryLength(u16 val);  void SetPokemonCryRelease(u8 val);  void SetPokemonCryProgress(u32 val); -int IsPokemonCryPlaying(struct MusicPlayerInfo *mplayInfo); +bool32 IsPokemonCryPlaying(struct MusicPlayerInfo *mplayInfo);  void SetPokemonCryChorus(s8 val);  void SetPokemonCryStereo(u32 val);  void SetPokemonCryPriority(u8 val); diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index a3d99ee21..6bafa9747 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -142,19 +142,15 @@ struct MapHeader      /* 0x16 */ u8 weather;      /* 0x17 */ u8 mapType;      /* 0x18 */ u8 filler_18[2]; -    /* 0x1A */ u8 flags; +               // fields correspond to the arguments in the map_header_flags macro +    /* 0x1A */ bool8 allowCycling:1; +               bool8 allowEscaping:1; // Escape Rope and Dig +               bool8 allowRunning:1; +               bool8 showMapName:5; // the last 4 bits are unused  +                                    // but the 5 bit sized bitfield is required to match      /* 0x1B */ u8 battleType;  }; -// Flags for gMapHeader.flags, as defined in the map_header_flags macro -#define MAP_ALLOW_CYCLING      (1 << 0) -#define MAP_ALLOW_ESCAPING     (1 << 1) // Escape Rope and Dig -#define MAP_ALLOW_RUNNING      (1 << 2) -#define MAP_SHOW_MAP_NAME      (1 << 3) -#define UNUSED_MAP_FLAGS       (1 << 4 | 1 << 5 | 1 << 6 | 1 << 7) - -#define SHOW_MAP_NAME_ENABLED  ((gMapHeader.flags & (MAP_SHOW_MAP_NAME | UNUSED_MAP_FLAGS)) == MAP_SHOW_MAP_NAME) -  struct ObjectEvent  { diff --git a/include/global.h b/include/global.h index 18e2bfea7..e4c11f9ef 100644 --- a/include/global.h +++ b/include/global.h @@ -107,7 +107,7 @@  #define T2_READ_PTR(ptr) (void*) T2_READ_32(ptr)  // Macros for checking the joypad -#define TEST_BUTTON(field, button) ({(field) & (button);}) +#define TEST_BUTTON(field, button) ((field) & (button))  #define JOY_NEW(button) TEST_BUTTON(gMain.newKeys,  button)  #define JOY_HELD(button)  TEST_BUTTON(gMain.heldKeys, button)  #define JOY_HELD_RAW(button) TEST_BUTTON(gMain.heldKeysRaw, button) @@ -727,7 +727,7 @@ struct ContestWinner      u8 contestRank;  }; -struct DayCareMail +struct DaycareMail  {      struct MailStruct message;      u8 OT_name[PLAYER_NAME_LENGTH + 1]; @@ -739,7 +739,7 @@ struct DayCareMail  struct DaycareMon  {      struct BoxPokemon mon; -    struct DayCareMail mail; +    struct DaycareMail mail;      u32 steps;  }; @@ -750,9 +750,9 @@ struct DayCare      u8 stepCounter;  }; -struct RecordMixingDayCareMail +struct RecordMixingDaycareMail  { -    struct DayCareMail mail[DAYCARE_MON_COUNT]; +    struct DaycareMail mail[DAYCARE_MON_COUNT];      u32 numDaycareMons;      bool16 holdsItem[DAYCARE_MON_COUNT];  }; diff --git a/include/global.tv.h b/include/global.tv.h index 64e6a984e..2bc7dda99 100644 --- a/include/global.tv.h +++ b/include/global.tv.h @@ -1,13 +1,15 @@  #ifndef GUARD_GLOBAL_TV_H  #define GUARD_GLOBAL_TV_H +#include "constants/tv.h" +  typedef union // size = 0x24  {      // Common      struct {          /*0x00*/ u8 kind;          /*0x01*/ bool8 active; -        /*0x02*/ u8 pad02[26]; +        /*0x02*/ u8 data[26];          /*0x1C*/ u8 srcTrainerId3Lo;          /*0x1D*/ u8 srcTrainerId3Hi;          /*0x1E*/ u8 srcTrainerId2Lo; @@ -22,7 +24,7 @@ typedef union // size = 0x24      struct {          /*0x00*/ u8 kind;          /*0x01*/ bool8 active; -        /*0x02*/ u8 pad02[34]; +        /*0x02*/ u8 data[34];      } commonInit;      // Local shows @@ -40,7 +42,7 @@ typedef union // size = 0x24      struct {          /*0x00*/ u8 kind;          /*0x01*/ bool8 active; -        /*0x02*/ u16 var02; +        /*0x02*/ u16 species;          /*0x04*/ u16 words[6];          /*0x10*/ u8 playerName[PLAYER_NAME_LENGTH + 1];          /*0x18*/ u8 language; @@ -62,16 +64,16 @@ typedef union // size = 0x24          /*0x1C*/ u16 words[4];      } fanclubOpinions; -    // TVSHOW_UNKN_SHOWTYPE_04 (dummied out) +    // TVSHOW_DUMMY      struct {          /*0x00*/ u8 kind;          /*0x01*/ bool8 active;          /*0x02*/ u16 words[2]; -        /*0x06*/ u16 var06; +        /*0x06*/ u16 species;          /*0x08*/ u8 pad_08[3]; -        /*0x0b*/ u8 string_0b[12]; +        /*0x0b*/ u8 name[12];          /*0x17*/ u8 language; -    } unkShow04; +    } dummy;      // TVSHOW_NAME_RATER_SHOW      struct { @@ -212,8 +214,8 @@ typedef union // size = 0x24          /*0x02*/ u8 priceReduced;          /*0x03*/ u8 language;          /*0x04*/ u8 pad04[2]; -        /*0x06*/ u16 itemIds[3]; -        /*0x0C*/ u16 itemAmounts[3]; +        /*0x06*/ u16 itemIds[SMARTSHOPPER_NUM_ITEMS]; +        /*0x0C*/ u16 itemAmounts[SMARTSHOPPER_NUM_ITEMS];          /*0x12*/ u8 shopLocation;          /*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];      } smartshopperShow; @@ -401,7 +403,7 @@ typedef union // size = 0x24          /*0x08*/ u16 species3;          /*0x0a*/ u16 species4;          /*0x0c*/ u8 language; -        /*0x0d*/ u8 facility; +        /*0x0d*/ u8 facilityAndMode;          /*0x0e*/ u8 filler_0e[5];          /*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];      } frontier; diff --git a/include/graphics.h b/include/graphics.h index 7c36b9cf5..dcb47a226 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4076,7 +4076,7 @@ extern const u8 gNamingScreenCursor_Gfx[];  extern const u8 gNamingScreenInputArrow_Gfx[];  extern const u8 gNamingScreenUnderscore_Gfx[]; -extern const u32 gUnknown_08D9BA44[]; +extern const u32 gPokeblockFeedBg_Tilemap[];  extern const u32 gConfetti_Gfx[];  extern const u32 gConfetti_Pal[]; @@ -4875,12 +4875,12 @@ extern const u32 gPokedexAreaScreenAreaUnknown_Gfx[];  extern const u16 gPokedexAreaScreenAreaUnknown_Pal[];  // Pokemon Storage System -extern const u32 gPSSMenu_Gfx[]; -extern const u16 gPSSMenu_Pal[]; +extern const u32 gStorageSystemMenu_Gfx[]; +extern const u16 gStorageSystemPartyMenu_Pal[]; +extern const u32 gStorageSystemPartyMenu_Tilemap[];  extern const u32 gWallpaperIcon_Plusle[];  extern const u32 gWallpaperIcon_Cross[];  extern const u32 gWallpaperIcon_Bolt[]; -extern const u32 gUnknown_08DD36C8[];  extern const u32 gWallpaperTiles_Ribbon[];  extern const u32 gWallpaperTilemap_Ribbon[];  extern const u16 gWallpaperPalettes_Ribbon[][16]; @@ -4903,8 +4903,8 @@ extern const u16 gUnknown_08DDCF04[];  extern const u16 gTradeGba2_Pal[];  extern const u8 gTradeGba_Gfx[];  extern const u16 gTradeMenuMonBox_Tilemap[]; -extern const u8 gTradeButtons_Gfx[]; -extern const u16 gUnknown_08DDB444[]; +extern const u8 gTradeCursor_Gfx[]; +extern const u16 gTradeCursor_Pal[];  // Party menu  extern const u32 gPartyMenuPokeball_Gfx[]; @@ -4924,21 +4924,21 @@ extern const u32 gRouletteMultiplier_Gfx[];  // Contest util  extern const u32 gContestResults_Gfx[]; -extern const u32 gUnknown_08C19EEC[]; -extern const u32 gUnknown_08C1A000[]; -extern const u32 gUnknown_08C1A12C[]; +extern const u32 gContestResults_WinnerBanner_Tilemap[]; +extern const u32 gContestResults_Interface_Tilemap[]; +extern const u32 gContestResults_Bg_Tilemap[];  extern const u32 gContestResults_Pal[]; -extern const u16 gLinkContestResults_Tilemap[]; -extern const u16 gNormalContestResults_Tilemap[]; -extern const u16 gSuperContestResults_Tilemap[]; -extern const u16 gHyperContestResults_Tilemap[]; -extern const u16 gMasterContestResults_Tilemap[]; -extern const u16 gCoolContestResults_Tilemap[]; -extern const u16 gBeautyContestResults_Tilemap[]; -extern const u16 gCuteContestResults_Tilemap[]; -extern const u16 gSmartContestResults_Tilemap[]; -extern const u16 gToughContestResults_Tilemap[]; -extern const u16 gContestResults_Tilemap[]; +extern const u16 gContestResultsTitle_Link_Tilemap[]; +extern const u16 gContestResultsTitle_Normal_Tilemap[]; +extern const u16 gContestResultsTitle_Super_Tilemap[]; +extern const u16 gContestResultsTitle_Hyper_Tilemap[]; +extern const u16 gContestResultsTitle_Master_Tilemap[]; +extern const u16 gContestResultsTitle_Cool_Tilemap[]; +extern const u16 gContestResultsTitle_Beauty_Tilemap[]; +extern const u16 gContestResultsTitle_Cute_Tilemap[]; +extern const u16 gContestResultsTitle_Smart_Tilemap[]; +extern const u16 gContestResultsTitle_Tough_Tilemap[]; +extern const u16 gContestResultsTitle_Tilemap[];  // Trainer Card.  extern const u16 gHoennTrainerCard0Star_Pal[]; @@ -4955,13 +4955,13 @@ extern const u32 gKantoTrainerCardFrontLink_Tilemap[];  extern const u32 gHoennTrainerCardBg_Tilemap[];  // Frontier Pass -extern const u32 gUnknown_08DE08C8[]; -extern const u32 gUnknown_08DE2084[]; -extern const u32 gUnknown_08DE3350[]; -extern const u32 gUnknown_08DE3374[]; -extern const u32 gUnknown_08DE3060[]; +extern const u32 gFrontierPassBg_Gfx[]; +extern const u32 gFrontierPassBg_Tilemap[]; +extern const u16 gFrontierPassBg_Pal[][16]; +extern const u32 gFrontierPassMapAndCard_Gfx[]; +extern const u32 gFrontierPassCancelButton_Tilemap[]; +extern const u32 gFrontierPassCancelButtonHighlighted_Tilemap[];  extern const u32 gFrontierPassMedals_Gfx[]; -extern const u16 gUnknown_08DE07C8[][16];  extern const u16 gFrontierPassCursor_Pal[];  extern const u16 gFrontierPassMedalsGold_Pal[];  extern const u16 gFrontierPassMedalsSilver_Pal[]; diff --git a/include/international_string_util.h b/include/international_string_util.h index f76fc5be1..fe7e85b41 100644 --- a/include/international_string_util.h +++ b/include/international_string_util.h @@ -17,7 +17,7 @@ void CopyMonCategoryText(int dexNum, u8 *dest);  u8 *sub_81DB494(u8 *str, int fontId, const u8 *str2, int totalStringWidth);  void PadNameString(u8 *dest, u8 padChar);  void ConvertInternationalPlayerNameStripChar(u8 *, u8); -void sub_81DB5AC(u8 *); +void ConvertInternationalContestantName(u8 *);  int sub_81DB604(u8 *);  void sub_81DB620(int windowId, int columnStart, int rowStart, int numFillTiles, int numRows); diff --git a/include/item_menu.h b/include/item_menu.h index a99272b0c..fd576c3b5 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -1,107 +1,111 @@ -#ifndef GUARD_item_menu_H -#define GUARD_item_menu_H +#ifndef GUARD_ITEM_MENU_H +#define GUARD_ITEM_MENU_H  #include "item.h"  #include "menu_helpers.h" -#define ITEMMENULOCATION_FIELD 0 -#define ITEMMENULOCATION_BATTLE 1 -#define ITEMMENULOCATION_PARTY 2 -#define ITEMMENULOCATION_SHOP 3 -#define ITEMMENULOCATION_BERRY_TREE 4 -#define ITEMMENULOCATION_BERRY_BLENDER_CRUSH 5 -#define ITEMMENULOCATION_ITEMPC 6 -#define ITEMMENULOCATION_FAVOR_LADY 7 -#define ITEMMENULOCATION_QUIZ_LADY 8 -#define ITEMMENULOCATION_APPRENTICE 9 -#define ITEMMENULOCATION_WALLY 10 -#define ITEMMENULOCATION_PCBOX 11 -#define ITEMMENULOCATION_LAST 12 +enum { +    ITEMMENULOCATION_FIELD, +    ITEMMENULOCATION_BATTLE, +    ITEMMENULOCATION_PARTY, +    ITEMMENULOCATION_SHOP, +    ITEMMENULOCATION_BERRY_TREE, +    ITEMMENULOCATION_BERRY_BLENDER_CRUSH, +    ITEMMENULOCATION_ITEMPC, +    ITEMMENULOCATION_FAVOR_LADY, +    ITEMMENULOCATION_QUIZ_LADY, +    ITEMMENULOCATION_APPRENTICE, +    ITEMMENULOCATION_WALLY, +    ITEMMENULOCATION_PCBOX, +    ITEMMENULOCATION_LAST, +}; -#define ITEMMENUACTION_USE           0 -#define ITEMMENUACTION_TOSS          1 -#define ITEMMENUACTION_REGISTER      2 -#define ITEMMENUACTION_GIVE          3 -#define ITEMMENUACTION_CANCEL        4 -#define ITEMMENUACTION_BATTLE_USE    5 -#define ITEMMENUACTION_CHECK         6 -#define ITEMMENUACTION_WALK          7 -#define ITEMMENUACTION_DESELECT      8 -#define ITEMMENUACTION_CHECK_TAG     9 -#define ITEMMENUACTION_CONFIRM      10 -#define ITEMMENUACTION_SHOW         11 -#define ITEMMENUACTION_GIVE_2       12 -#define ITEMMENUACTION_CONFIRM_2    13 -#define ITEMMENUACTION_DUMMY        14 +// Window IDs for the item menu +enum { +    ITEMWIN_1x1, +    ITEMWIN_1x2, +    ITEMWIN_2x2, +    ITEMWIN_2x3, +    ITEMWIN_MESSAGE, +    ITEMWIN_YESNO_LOW, +    ITEMWIN_YESNO_HIGH, +    ITEMWIN_QUANTITY, +    ITEMWIN_QUANTITY_WIDE, +    ITEMWIN_MONEY, +    ITEMWIN_COUNT +}; -// Exported type declarations -struct BagStruct +#define ITEMMENU_SWAP_LINE_LENGTH 8  // Swap line is 8 sprites long +enum { +    ITEMMENUSPRITE_BAG, +    ITEMMENUSPRITE_BALL, +    ITEMMENUSPRITE_ITEM, +    ITEMMENUSPRITE_ITEM_ALT, // Need two when selecting new item +    ITEMMENUSPRITE_SWAP_LINE, +    ITEMMENUSPRITE_COUNT = ITEMMENUSPRITE_SWAP_LINE + ITEMMENU_SWAP_LINE_LENGTH, +}; + +struct BagPosition  { -    void (*bagCallback)(void); +    void (*exitCallback)(void);      u8 location;      u8 pocket; -    u16 unk6; +    u16 pocketSwitchArrowPos;      u16 cursorPosition[POCKETS_COUNT];      u16 scrollPosition[POCKETS_COUNT];  }; -extern struct BagStruct gBagPositionStruct; +extern struct BagPosition gBagPosition; -struct BagMenuStruct +struct BagMenu  { -    void (*exitCallback)(void); -    u8 tilemapBuffer[0x800]; -    u8 spriteId[12]; -    u8 windowPointers[10]; -    u8 itemOriginalLocation; +    void (*newScreenCallback)(void); +    u8 tilemapBuffer[BG_SCREEN_SIZE]; +    u8 spriteIds[ITEMMENUSPRITE_COUNT]; +    u8 windowIds[ITEMWIN_COUNT]; +    u8 toSwapPos;      u8 pocketSwitchDisabled:4;      u8 itemIconSlot:2;      u8 inhibitItemDescriptionPrint:1;      u8 hideCloseBagText:1; -    u8 filler3[2]; +    u8 unused1[2];      u8 pocketScrollArrowsTask;      u8 pocketSwitchArrowsTask;      const u8* contextMenuItemsPtr;      u8 contextMenuItemsBuffer[4];      u8 contextMenuNumItems;      u8 numItemStacks[POCKETS_COUNT]; -    u8 numShownItems[6]; +    u8 numShownItems[POCKETS_COUNT];      s16 graphicsLoadState; -    u8 filler4[0xE]; +    u8 unused2[14];      u8 pocketNameBuffer[32][32]; -    u8 filler2[4]; +    u8 unused3[4];  }; -extern struct BagMenuStruct *gBagMenu; - -// Exported RAM declarations - +extern struct BagMenu *gBagMenu;  extern u16 gSpecialVar_ItemId; -// Exported ROM declarations  void CB2_GoToItemDepositMenu(void);  void FavorLadyOpenBagMenu(void);  void QuizLadyOpenBagMenu(void);  void ApprenticeOpenBagMenu(void);  void CB2_BagMenuFromBattle(void); -void SetInitialScrollAndCursorPositions(u8 pocketId); +void UpdatePocketListPosition(u8 pocketId);  void CB2_ReturnToBagMenuPocket(void);  void CB2_BagMenuFromStartMenu(void);  u8 GetItemListPosition(u8 pocketId);  bool8 UseRegisteredKeyItemOnField(void);  void CB2_GoToSellMenu(void); -void GoToBagMenu(u8 bagMenuType, u8 pocketId, void ( *postExitMenuMainCallback2)()); +void GoToBagMenu(u8 bagMenuType, u8 pocketId, void ( *exitCallback)());  void DoWallyTutorialBagMenu(void);  void ResetBagScrollPositions(void);  void ChooseBerryForMachine(void (*exitCallback)(void));  void CB2_ChooseBerry(void);  void Task_FadeAndCloseBagMenu(u8 taskId); -void BagMenu_YesNo(u8, u8, const struct YesNoFuncTable*); -void BagMenu_InitListsMenu(u8 taskId); +void BagMenu_YesNo(u8 taskId, u8 windowType, const struct YesNoFuncTable* funcTable);  void UpdatePocketItemList(u8 pocketId);  void DisplayItemMessage(u8 taskId, u8 fontId, const u8 *str, void ( *callback)(u8 taskId));  void DisplayItemMessageOnField(u8 taskId, const u8 *src, TaskFunc callback); +void CloseItemMessage(u8 taskId); - - -#endif //GUARD_item_menu_H +#endif //GUARD_ITEM_MENU_H diff --git a/include/item_menu_icons.h b/include/item_menu_icons.h index 7ff6ace94..d01dcccf5 100644 --- a/include/item_menu_icons.h +++ b/include/item_menu_icons.h @@ -14,18 +14,12 @@ void ShakeBagSprite(void);  void AddSwitchPocketRotatingBallSprite(s16 rotationDirection);  void AddBagItemIconSprite(u16 itemId, u8 id);  void RemoveBagItemIconSprite(u8 id); -void sub_80D4FAC(void); -void sub_80D4FC8(u8 arg0); -void sub_80D4FEC(u8 arg0); +void CreateItemMenuSwapLine(void); +void SetItemMenuSwapLineInvisibility(bool8 invisible); +void UpdateItemMenuSwapLinePos(u8 y);  u8 CreateBerryTagSprite(u8 id, s16 x, s16 y);  void FreeBerryTagSpritePalette(void);  u8 CreateSpinningBerrySprite(u8 berryId, u8 x, u8 y, bool8 startAffine);  u8 CreateBerryFlavorCircleSprite(s16 x); -#define TAG_BAG_GFX 100 -#define TAG_ROTATING_BALL_GFX 101 -#define TAG_BERRY_CHECK_CIRCLE_GFX 10000 -#define TAG_BERRY_PIC_TILE 0xFFFF -#define TAG_BERRY_PIC_PAL 0x7544 -  #endif // GUARD_ITEM_MENU_ICONS_H diff --git a/include/link.h b/include/link.h index 3b621e6c1..407dbabb9 100644 --- a/include/link.h +++ b/include/link.h @@ -323,7 +323,7 @@ extern bool8 gSavedLinkPlayerCount;  extern u8 gSavedMultiplayerId;  extern struct LinkTestBGInfo gLinkTestBGInfo;  extern void (*gLinkCallback)(void); -extern bool8 gShouldAdvanceLinkState; +extern u8 gShouldAdvanceLinkState;  extern u16 gLinkTestBlockChecksums[MAX_LINK_PLAYERS];  extern u8 gBlockRequestType;  extern u8 gLastSendQueueCount; diff --git a/include/list_menu.h b/include/list_menu.h index 0a54a069a..1c18f3dff 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -31,7 +31,7 @@ struct ListMenuTemplate  {      const struct ListMenuItem *items;      void (* moveCursorFunc)(s32 itemIndex, bool8 onInit, struct ListMenu *list); -    void (* itemPrintFunc)(u8 windowId, s32 itemId, u8 y); +    void (* itemPrintFunc)(u8 windowId, u32 itemId, u8 y);      u16 totalItems;      u16 maxShowed;      u8 windowId; diff --git a/include/mauville_old_man.h b/include/mauville_old_man.h index 29c66a992..603d585da 100644 --- a/include/mauville_old_man.h +++ b/include/mauville_old_man.h @@ -7,7 +7,7 @@ void SetMauvilleOldMan(void);  u8 GetCurrentMauvilleOldMan(void);  void ScrSpecial_SetMauvilleOldManObjEventGfx(void);  u8 sub_81201C8(void); -void sub_8120B70(OldMan *dest); +void SanitizeMauvilleOldManForRuby(OldMan *dest);  void sub_8120670(void);  void SanitizeReceivedRubyOldMan(union OldMan * oldMan, u32 r1, u32 r6);  void SanitizeReceivedEmeraldOldMan(union OldMan * oldMan, u32 unused, u32 a2); diff --git a/include/menu.h b/include/menu.h index c9d8e374d..07e00eb73 100644 --- a/include/menu.h +++ b/include/menu.h @@ -90,8 +90,8 @@ void *malloc_and_decompress(const void *src, u32 *sizeOut);  u16 copy_decompressed_tile_data_to_vram(u8 bgId, const void *src, u16 size, u16 offset, u8 mode);  void AddTextPrinterForMessage(bool8 allowSkippingDelayWithButtonPress);  void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, const u8 *a8); -void sub_8198DBC(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 itemCount, u8 itemCount2, const struct MenuAction *strs, const u8 *a8); -u8 sub_8199944(u8 windowId, u8 optionWidth, u8 columns, u8 rows, u8 initialCursorPos); +void PrintMenuActionGrid(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 itemCount, u8 itemCount2, const struct MenuAction *strs, const u8 *a8); +u8 InitMenuActionGrid(u8 windowId, u8 optionWidth, u8 columns, u8 rows, u8 initialCursorPos);  u8 ChangeListMenuCursorPosition(s8 deltaX, s8 deltaY);  u8 GetStartMenuWindowId(void);  void ListMenuLoadStdPalAt(u8, u8); diff --git a/include/menu_helpers.h b/include/menu_helpers.h index 4557ebbb1..df71ce252 100644 --- a/include/menu_helpers.h +++ b/include/menu_helpers.h @@ -7,7 +7,7 @@  #define MENU_L_PRESSED 1  #define MENU_R_PRESSED 2 -// Exported type declarations +#define SWAP_LINE_HAS_MARGIN (1 << 7)  struct YesNoFuncTable  { @@ -15,9 +15,6 @@ struct YesNoFuncTable      TaskFunc noFunc;  }; -// Exported RAM declarations - -// Exported ROM declarations  void ResetVramOamAndBgCntRegs(void);  void ResetAllBgsCoordinates(void);  void SetVBlankHBlankCallbacksToNull(void); @@ -28,17 +25,17 @@ void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *templa  bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1);  u8 GetLRKeysPressed(void);  u8 GetLRKeysPressedAndHeld(void); -bool8 sub_8122148(u16 itemId); -bool8 itemid_80BF6D8_mail_related(u16 itemId); +bool8 IsHoldingItemAllowed(u16 itemId); +bool8 IsWritingMailAllowed(u16 itemId);  bool8 MenuHelpers_LinkSomething(void);  bool8 MenuHelpers_CallLinkSomething(void); -void sub_812220C(struct ItemSlot *slots, u8 count, u8 *arg2, u8 *usedSlotsCount, u8 maxUsedSlotsCount); -void sub_812225C(u16 *scrollOffset, u16 *cursorPos, u8 maxShownItems, u8 numItems); -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); +void SetItemListPerPageCount(struct ItemSlot *slots, u8 slotsCount, u8 *pageItems, u8 *totalItems, u8 maxPerPage); +void SetCursorWithinListBounds(u16 *scrollOffset, u16 *cursorPos, u8 maxShownItems, u8 totalItems); +void SetCursorScrollWithinListBounds(u16 *scrollOffset, u16 *cursorPos, u8 shownItems, u8 totalItems, u8 maxShownItems); +void LoadListMenuSwapLineGfx(void); +void CreateSwapLineSprites(u8 *spriteIds, u8 count); +void DestroySwapLineSprites(u8 *spriteIds, u8 count); +void SetSwapLineSpritesInvisibility(u8 *spriteIds, u8 count, bool8 invisible); +void UpdateSwapLineSpritesPos(u8 *spriteIds, u8 count, s16 x, u16 y);  #endif //GUARD_MENU_HELPERS_H diff --git a/include/menu_specialized.h b/include/menu_specialized.h index 987fca9fc..c29110662 100644 --- a/include/menu_specialized.h +++ b/include/menu_specialized.h @@ -15,6 +15,14 @@  #define MAX_CONDITION_SPARKLES 10 +// Window IDs for the Player PC Mailbox +enum { +    MAILBOXWIN_TITLE, +    MAILBOXWIN_LIST, +    MAILBOXWIN_OPTIONS, +    MAILBOXWIN_COUNT +}; +  struct UnknownSubStruct_81D1ED4  {      u16 unk0; @@ -35,12 +43,12 @@ struct ConditionGraph      /*0x355*/ u8 state;  }; -bool8 sub_81D1C44(u8 count); -u8 sub_81D1C84(u8 a0); -u8 sub_81D1DC0(struct PlayerPCItemPageStruct *page); -void sub_81D1E90(struct PlayerPCItemPageStruct *page); -void sub_81D1EC0(void); -void sub_81D1D04(u8 a0); +bool8 MailboxMenu_Alloc(u8 count); +u8 MailboxMenu_AddWindow(u8 windowIdx); +u8 MailboxMenu_CreateList(struct PlayerPCItemPageStruct *page); +void MailboxMenu_AddScrollArrows(struct PlayerPCItemPageStruct *page); +void MailboxMenu_Free(void); +void MailboxMenu_RemoveWindow(u8 windowIdx);  void InitConditionGraphData(struct ConditionGraph *graph);  void sub_81D2108(struct ConditionGraph *graph);  void SetConditionGraphIOWindows(u8 bg); diff --git a/include/player_pc.h b/include/player_pc.h index bdf4a4e0e..2521eac13 100644 --- a/include/player_pc.h +++ b/include/player_pc.h @@ -3,69 +3,6 @@  #include "menu.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; @@ -76,16 +13,12 @@ struct PlayerPCItemPageStruct      u8 scrollIndicatorTaskId;  }; -// Exported type declarations - -// Exported RAM declarations -extern struct PlayerPCItemPageStruct playerPCItemPageInfo; +extern struct PlayerPCItemPageStruct gPlayerPCItemPageInfo; -// Exported ROM declarations  extern const struct MenuAction gMailboxMailOptions[];  void ReshowPlayerPC(u8 taskId); -void sub_816B31C(void); +void CB2_PlayerPCExitBagMenu(void);  void Mailbox_ReturnToMailListAfterDeposit(void);  void NewGameInitPCItems(void); diff --git a/include/pokeblock.h b/include/pokeblock.h index c82e99d8f..9e0161495 100644 --- a/include/pokeblock.h +++ b/include/pokeblock.h @@ -4,8 +4,7 @@  #include "constants/berry.h"  #include "constants/pokemon.h" -#define GFX_TAG_POKEBLOCK       14818 -#define GFX_TAG_POKEBLOCK_CASE  14800 +#define TAG_POKEBLOCK       14818  enum  { @@ -52,7 +51,7 @@ extern s16 gPokeblockGain;  void ChooseMonToGivePokeblock(struct Pokeblock *pokeblock, void (*callback)(void));  // pokeblock feed -void CB2_PreparePokeblockFeedScene(void); +void PreparePokeblockFeedScene(void);  // pokeblock  extern const s8 gPokeblockFlavorCompatibilityTable[NUM_NATURES * FLAVOR_COUNT]; diff --git a/include/pokemon.h b/include/pokemon.h index 82cdefeac..3565bd966 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -258,7 +258,6 @@ extern const u8 gFacilityClassToPicIndex[];  extern const u8 gFacilityClassToTrainerClass[];  extern const struct BaseStats gBaseStats[];  extern const u8 *const gItemEffectTable[]; -extern const struct Evolution gEvolutionTable[][EVOS_PER_MON];  extern const u32 gExperienceTables[][MAX_LEVEL + 1];  extern const u16 *const gLevelUpLearnsets[];  extern const u8 gPPUpGetMask[]; diff --git a/include/pokemon_animation.h b/include/pokemon_animation.h index c1ab8d817..5174c8a77 100644 --- a/include/pokemon_animation.h +++ b/include/pokemon_animation.h @@ -7,4 +7,186 @@ void StartMonSummaryAnimation(struct Sprite *sprite, u8 frontAnimId);  void LaunchAnimationTaskForBackSprite(struct Sprite *sprite, u8 backAnimSet);  void SetSpriteCB_MonAnimDummy(struct Sprite *sprite); +// Pokémon back animation sets +#define BACK_ANIM_NONE                         0 +#define BACK_ANIM_H_VIBRATE                    1 +#define BACK_ANIM_H_SLIDE                      2 +#define BACK_ANIM_H_SPRING                     3 +#define BACK_ANIM_H_SPRING_REPEATED            4 +#define BACK_ANIM_SHRINK_GROW                  5 +#define BACK_ANIM_GROW                         6 +#define BACK_ANIM_CIRCLE_COUNTERCLOCKWISE      7 +#define BACK_ANIM_H_SHAKE                      8 +#define BACK_ANIM_V_SHAKE                      9 +#define BACK_ANIM_V_SHAKE_H_SLIDE              10 +#define BACK_ANIM_V_STRETCH                    11 +#define BACK_ANIM_H_STRETCH                    12 +#define BACK_ANIM_GROW_STUTTER                 13 +#define BACK_ANIM_V_SHAKE_LOW                  14 +#define BACK_ANIM_TRIANGLE_DOWN                15 +#define BACK_ANIM_CONCAVE_ARC_LARGE            16 +#define BACK_ANIM_CONVEX_DOUBLE_ARC            17 +#define BACK_ANIM_CONCAVE_ARC_SMALL            18 +#define BACK_ANIM_DIP_RIGHT_SIDE               19 +#define BACK_ANIM_SHRINK_GROW_VIBRATE          20 +#define BACK_ANIM_JOLT_RIGHT                   21 +#define BACK_ANIM_SHAKE_FLASH_YELLOW           22 +#define BACK_ANIM_SHAKE_GLOW_RED               23 +#define BACK_ANIM_SHAKE_GLOW_GREEN             24 +#define BACK_ANIM_SHAKE_GLOW_BLUE              25 + +// Pokémon animation function ids (for front and back) +// Each front anim uses 1, and each back anim uses a set of 3 +#define ANIM_V_SQUISH_AND_BOUNCE                0 +#define ANIM_CIRCULAR_STRETCH_TWICE             1 +#define ANIM_H_VIBRATE                          2 +#define ANIM_H_SLIDE                            3 +#define ANIM_V_SLIDE                            4 +#define ANIM_BOUNCE_ROTATE_TO_SIDES             5 +#define ANIM_V_JUMPS_H_JUMPS                    6 +#define ANIM_ROTATE_TO_SIDES                    7 +#define ANIM_ROTATE_TO_SIDES_TWICE              8 +#define ANIM_GROW_VIBRATE                       9 +#define ANIM_ZIGZAG_FAST                        10 +#define ANIM_SWING_CONCAVE                      11 +#define ANIM_SWING_CONCAVE_FAST                 12 +#define ANIM_SWING_CONVEX                       13 +#define ANIM_SWING_CONVEX_FAST                  14 +#define ANIM_H_SHAKE                            15 +#define ANIM_V_SHAKE                            16 +#define ANIM_CIRCULAR_VIBRATE                   17 +#define ANIM_TWIST                              18 +#define ANIM_SHRINK_GROW                        19 +#define ANIM_CIRCLE_C_CLOCKWISE                 20 +#define ANIM_GLOW_BLACK                         21 +#define ANIM_H_STRETCH                          22 +#define ANIM_V_STRETCH                          23 +#define ANIM_RISING_WOBBLE                      24 +#define ANIM_V_SHAKE_TWICE                      25 +#define ANIM_TIP_MOVE_FORWARD                   26 +#define ANIM_H_PIVOT                            27 +#define ANIM_V_SLIDE_WOBBLE                     28 +#define ANIM_H_SLIDE_WOBBLE                     29 +#define ANIM_V_JUMPS_BIG                        30 +#define ANIM_SPIN_LONG                          31 +#define ANIM_GLOW_ORANGE                        32 +#define ANIM_GLOW_RED                           33 +#define ANIM_GLOW_BLUE                          34 +#define ANIM_GLOW_YELLOW                        35 +#define ANIM_GLOW_PURPLE                        36 +#define ANIM_BACK_AND_LUNGE                     37 +#define ANIM_BACK_FLIP                          38 +#define ANIM_FLICKER                            39 +#define ANIM_BACK_FLIP_BIG                      40 +#define ANIM_FRONT_FLIP                         41 +#define ANIM_TUMBLING_FRONT_FLIP                42 +#define ANIM_FIGURE_8                           43 +#define ANIM_FLASH_YELLOW                       44 +#define ANIM_SWING_CONCAVE_FAST_SHORT           45 +#define ANIM_SWING_CONVEX_FAST_SHORT            46 +#define ANIM_ROTATE_UP_SLAM_DOWN                47 +#define ANIM_DEEP_V_SQUISH_AND_BOUNCE           48 +#define ANIM_H_JUMPS                            49 +#define ANIM_H_JUMPS_V_STRETCH                  50 +#define ANIM_ROTATE_TO_SIDES_FAST               51 +#define ANIM_ROTATE_UP_TO_SIDES                 52 +#define ANIM_FLICKER_INCREASING                 53 +#define ANIM_TIP_HOP_FORWARD                    54 +#define ANIM_PIVOT_SHAKE                        55 +#define ANIM_TIP_AND_SHAKE                      56 +#define ANIM_VIBRATE_TO_CORNERS                 57 +#define ANIM_GROW_IN_STAGES                     58 +#define ANIM_V_SPRING                           59 +#define ANIM_V_REPEATED_SPRING                  60 +#define ANIM_SPRING_RISING                      61 +#define ANIM_H_SPRING                           62 +#define ANIM_H_REPEATED_SPRING_SLOW             63 +#define ANIM_H_SLIDE_SHRINK                     64 +#define ANIM_LUNGE_GROW                         65 +#define ANIM_CIRCLE_INTO_BG                     66 +#define ANIM_RAPID_H_HOPS                       67 +#define ANIM_FOUR_PETAL                         68 +#define ANIM_V_SQUISH_AND_BOUNCE_SLOW           69 +#define ANIM_H_SLIDE_SLOW                       70 +#define ANIM_V_SLIDE_SLOW                       71 +#define ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL       72 +#define ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW        73 +#define ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL_SLOW  74 +#define ANIM_ZIGZAG_SLOW                        75 +#define ANIM_H_SHAKE_SLOW                       76 +#define ANIM_V_SHAKE_SLOW                       77 +#define ANIM_TWIST_TWICE                        78 +#define ANIM_CIRCLE_C_CLOCKWISE_SLOW            79 +#define ANIM_V_SHAKE_TWICE_SLOW                 80 +#define ANIM_V_SLIDE_WOBBLE_SMALL               81 +#define ANIM_V_JUMPS_SMALL                      82 +#define ANIM_SPIN                               83 +#define ANIM_TUMBLING_FRONT_FLIP_TWICE          84 +#define ANIM_DEEP_V_SQUISH_AND_BOUNCE_TWICE     85 +#define ANIM_H_JUMPS_V_STRETCH_TWICE            86 +#define ANIM_V_SHAKE_BACK                       87 +#define ANIM_V_SHAKE_BACK_SLOW                  88 +#define ANIM_V_SHAKE_H_SLIDE_SLOW               89 +#define ANIM_V_STRETCH_BOTH_ENDS_SLOW           90 +#define ANIM_H_STRETCH_FAR_SLOW                 91 +#define ANIM_V_SHAKE_LOW_TWICE                  92 +#define ANIM_H_SHAKE_FAST                       93 +#define ANIM_H_SLIDE_FAST                       94 +#define ANIM_H_VIBRATE_FAST                     95 +#define ANIM_H_VIBRATE_FASTEST                  96 +#define ANIM_V_SHAKE_BACK_FAST                  97 +#define ANIM_V_SHAKE_LOW_TWICE_SLOW             98 +#define ANIM_V_SHAKE_LOW_TWICE_FAST             99 +#define ANIM_CIRCLE_C_CLOCKWISE_LONG            100 +#define ANIM_GROW_STUTTER_SLOW                  101 +#define ANIM_V_SHAKE_H_SLIDE                    102 +#define ANIM_V_SHAKE_H_SLIDE_FAST               103 +#define ANIM_TRIANGLE_DOWN_SLOW                 104 +#define ANIM_TRIANGLE_DOWN                      105 +#define ANIM_TRIANGLE_DOWN_TWICE                106 +#define ANIM_GROW                               107 +#define ANIM_GROW_TWICE                         108 +#define ANIM_H_SPRING_FAST                      109 +#define ANIM_H_SPRING_SLOW                      110 +#define ANIM_H_REPEATED_SPRING_FAST             111 +#define ANIM_H_REPEATED_SPRING                  112 +#define ANIM_SHRINK_GROW_FAST                   113 +#define ANIM_SHRINK_GROW_SLOW                   114 +#define ANIM_V_STRETCH_BOTH_ENDS                115 +#define ANIM_V_STRETCH_BOTH_ENDS_TWICE          116 +#define ANIM_H_STRETCH_FAR_TWICE                117 +#define ANIM_H_STRETCH_FAR                      118 +#define ANIM_GROW_STUTTER_TWICE                 119 +#define ANIM_GROW_STUTTER                       120 +#define ANIM_CONCAVE_ARC_LARGE_SLOW             121 +#define ANIM_CONCAVE_ARC_LARGE                  122 +#define ANIM_CONCAVE_ARC_LARGE_TWICE            123 +#define ANIM_CONVEX_DOUBLE_ARC_SLOW             124 +#define ANIM_CONVEX_DOUBLE_ARC                  125 +#define ANIM_CONVEX_DOUBLE_ARC_TWICE            126 +#define ANIM_CONCAVE_ARC_SMALL_SLOW             127 +#define ANIM_CONCAVE_ARC_SMALL                  128 +#define ANIM_CONCAVE_ARC_SMALL_TWICE            129 +#define ANIM_H_DIP                              130 +#define ANIM_H_DIP_FAST                         131 +#define ANIM_H_DIP_TWICE                        132 +#define ANIM_SHRINK_GROW_VIBRATE_FAST           133 +#define ANIM_SHRINK_GROW_VIBRATE                134 +#define ANIM_SHRINK_GROW_VIBRATE_SLOW           135 +#define ANIM_JOLT_RIGHT_FAST                    136 +#define ANIM_JOLT_RIGHT                         137 +#define ANIM_JOLT_RIGHT_SLOW                    138 +#define ANIM_SHAKE_FLASH_YELLOW_FAST            139 +#define ANIM_SHAKE_FLASH_YELLOW                 140 +#define ANIM_SHAKE_FLASH_YELLOW_SLOW            141 +#define ANIM_SHAKE_GLOW_RED_FAST                142 +#define ANIM_SHAKE_GLOW_RED                     143 +#define ANIM_SHAKE_GLOW_RED_SLOW                144 +#define ANIM_SHAKE_GLOW_GREEN_FAST              145 +#define ANIM_SHAKE_GLOW_GREEN                   146 +#define ANIM_SHAKE_GLOW_GREEN_SLOW              147 +#define ANIM_SHAKE_GLOW_BLUE_FAST               148 +#define ANIM_SHAKE_GLOW_BLUE                    149 +#define ANIM_SHAKE_GLOW_BLUE_SLOW               150 +  #endif // GUARD_POKEMON_ANIMATION_H diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 7b6a38678..73a7833ee 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -2,13 +2,13 @@  #define GUARD_POKEMON_STORAGE_SYSTEM_H  #define TOTAL_BOXES_COUNT       14 -#define IN_BOX_ROWS             6 -#define IN_BOX_COLUMNS          5 +#define IN_BOX_ROWS             5 // Number of rows, 6 Pokémon per row +#define IN_BOX_COLUMNS          6 // Number of columns, 5 Pokémon per column  #define IN_BOX_COUNT            (IN_BOX_ROWS * IN_BOX_COLUMNS) -/* -            ROWS -COLUMNS     0   1   2   3   4   5 +/*  +            COLUMNS          +ROWS        0   1   2   3   4   5              6   7   8   9   10  11              12  13  14  15  16  17              18  19  20  21  22  23 @@ -51,14 +51,13 @@ void ZeroBoxMonAt(u8 boxId, u8 boxPosition);  void BoxMonAtToMon(u8 boxId, u8 boxPosition, struct Pokemon *dst);  struct BoxPokemon *GetBoxedMonPtr(u8 boxId, u8 boxPosition);  u8 *GetBoxNamePtr(u8 boxId); -u8 GetBoxWallpaper(u8 boxId); -void SetBoxWallpaper(u8 boxId, u8 wallpaperId); -s16 sub_80D214C(struct BoxPokemon *boxMons, u8 currIndex, u8 maxIndex, u8 arg3); +s16 AdvanceStorageMonIndex(struct BoxPokemon *boxMons, u8 currIndex, u8 maxIndex, u8 arg3);  bool8 CheckFreePokemonStorageSpace(void);  bool32 CheckBoxMonSanityAt(u32 boxId, u32 boxPosition);  u32 CountStorageNonEggMons(void);  u32 CountAllStorageMons(void);  bool32 AnyStorageMonWithMove(u16 moveId); +  void ResetWaldaWallpaper(void);  void SetWaldaWallpaperLockedOrUnlocked(bool32 unlocked);  bool32 IsWaldaWallpaperUnlocked(void); diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h index 6413dcdec..3996c8e15 100755 --- a/include/pokemon_summary_screen.h +++ b/include/pokemon_summary_screen.h @@ -12,26 +12,16 @@ void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex,  void ShowSelectMovePokemonSummaryScreen(struct Pokemon *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void), u16 newMove);  void ShowPokemonSummaryScreenSet40EF(u8 mode, struct BoxPokemon *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void));  u8 GetMoveSlotToReplace(void); -void SummaryScreen_SetUnknownTaskId(u8 taskId); -void SummaryScreen_DestroyUnknownTask(void); +void SummaryScreen_SetAnimDelayTaskId(u8 taskId);  // The Pokemon Summary Screen can operate in different modes. Certain features,  // such as move re-ordering, are available in the different modes.  enum PokemonSummaryScreenMode  { -    PSS_MODE_NORMAL, -    PSS_MODE_LOCK_MOVES, -    PSS_MODE_BOX, -    PSS_MODE_SELECT_MOVE, -}; - -enum PokemonSummaryScreenPage -{ -    PSS_PAGE_INFO, -    PSS_PAGE_SKILLS, -    PSS_PAGE_BATTLE_MOVES, -    PSS_PAGE_CONTEST_MOVES, -    PSS_PAGE_COUNT, +    SUMMARY_MODE_NORMAL, +    SUMMARY_MODE_LOCK_MOVES, +    SUMMARY_MODE_BOX, +    SUMMARY_MODE_SELECT_MOVE,  };  #endif // GUARD_POKEMON_SUMMARY_SCREEN_H diff --git a/include/region_map.h b/include/region_map.h index 97364abd8..02d711afa 100644 --- a/include/region_map.h +++ b/include/region_map.h @@ -111,7 +111,7 @@ void PokedexAreaScreen_UpdateRegionMapVariablesAndVideoRegs(s16 x, s16 y);  void CB2_OpenFlyMap(void);  bool8 IsRegionMapZoomed(void);  void TrySetPlayerIconBlink(void); -void sub_8123030(u16 color, u32 coeff); +void BlendRegionMap(u16 color, u32 coeff);  void SetRegionMapDataForZoom(void);  extern const struct RegionMapLocation gRegionMapEntries[]; diff --git a/include/strings.h b/include/strings.h index 8880f3a5c..2357e3777 100644 --- a/include/strings.h +++ b/include/strings.h @@ -419,8 +419,8 @@ extern const u8 gText_FirmSlash[];  // item menu screen text  extern const u8 gText_CloseBag[]; -extern const u8 gText_ClearTo11Var1Clear5Var2[]; -extern const u8 gText_NumberVar1Clear7Var2[]; +extern const u8 gText_NumberItem_HM[]; +extern const u8 gText_NumberItem_TMBerry[];  extern const u8 gText_xVar1[];  extern const u8 gText_ReturnToVar1[];  extern const u8 gText_SelectorArrow2[]; @@ -442,6 +442,7 @@ extern const u8 gText_CantStoreImportantItems[];  extern const u8 gText_DepositedVar2Var1s[];  extern const u8 gText_NoRoomForItems[];  extern const u8 gText_ThreeDashes[]; +extern const u8 *const gPocketNamesStringsTable[];  // party menu text  extern const u8 gText_PkmnHPRestoredByVar2[]; @@ -596,7 +597,7 @@ extern const u8 gText_TooImportantToToss[];  extern const u8 gText_ConfirmTossItems[];  extern const u8 gText_MoveVar1Where[]; -extern const u8 gText_ColorLightShadowDarkGrey[]; +extern const u8 gText_ColorLightShadowDarkGray[];  extern const u8 gText_ColorBlue[];  extern const u8 gText_Friend[];  extern const u8 gText_Tristan[]; @@ -982,7 +983,8 @@ extern const u8 gText_RibbonsVar1[];  extern const u8 gText_OneDash[];  extern const u8 gText_TwoDashes[]; -extern const u8 *const gReturnToXStringsTable2[]; +extern const u8 *const gBagMenu_ReturnToStrings[]; +extern const u8 *const gPyramidBagMenu_ReturnToStrings[];  extern const u8 gText_NumPlayerLink[];  extern const u8 gText_ConfirmLinkWhenPlayersReady[]; @@ -2511,7 +2513,7 @@ extern const u8 gText_MatchCallMay_Intro1[];  extern const u8 gText_MatchCallMay_Intro2[];  // Contest Link -extern const u8 gText_ColorDarkGrey[]; +extern const u8 gText_ColorDarkGray[];  extern const u8 gText_CommunicationStandby[];  extern const u8 gText_AnnouncingResults[];  extern const u8 gText_PreliminaryResults[]; diff --git a/include/tv.h b/include/tv.h index f94c5b7e5..30cd13326 100644 --- a/include/tv.h +++ b/include/tv.h @@ -1,13 +1,10 @@  #ifndef GUARD_TV_H  #define GUARD_TV_H -#define SLOT_MACHINE 0 -#define ROULETTE 1 -  extern u8 *const gTVStringVarPtrs[3];  void ClearTVShowData(void); -void sub_80EE184(void); +void TryPutBreakingNewsOnAir(void);  void TryPutBattleSeminarOnAir(u16 foeSpecies, u16 species, u8 moveIdx, const u16 *movePtr, u16 betterMove);  void TryPutFrontierTVShowOnAir(u16 winStreak, u8 facility);  void DoTVShow(void); @@ -23,41 +20,37 @@ void ReceiveTvShowsData(void *src, u32 size, u8 masterIdx);  void TryPutSpotTheCutiesOnAir(struct Pokemon *pokemon, u8 ribbonMonDataIdx);  u32 GetPlayerIDAsU32(void);  bool8 GetPriceReduction(u8 newsKind); -void sub_80F14F8(TVShow *shows); +void SanitizeTVShowLocationsForRuby(TVShow *shows);  size_t CountDigits(int value);  u8 GetRibbonCount(struct Pokemon *pokemon);  void AlertTVThatPlayerPlayedSlotMachine(u16 nCoinsSpent);  void AlertTVThatPlayerPlayedRoulette(u16 nCoinsSpent); -void AlertTVOfNewCoinTotal(u16 nCoinsPaidOut); +void TryPutFindThatGamerOnAir(u16 nCoinsPaidOut);  void TryPutSecretBaseSecretsOnAir(void);  void TryPutTodaysRivalTrainerOnAir(void);  void TryPutTrendWatcherOnAir(const u16 *words); -void sub_80EDA80(void);  void ReceivePokeNewsData(void *src, u32 size, u8 masterIdx); -void sub_80F0BB8(void); +void DeactivateAllNormalTVShows(void);  void RecordFishingAttemptForTV(bool8 caughtFish);  void IncrementDailySlotsUses(void);  void IncrementDailyRouletteUses(void);  void IncrementDailyWildBattles(void);  void IncrementDailyBerryBlender(void); -void sub_80F1208(TVShow *shows); -void sub_80EE44C(u8 nMonsCaught, u8 nPkblkUsed); -void sub_80F14F8(TVShow *shows); -size_t sub_80EF370(int value); +void SanitizeTVShowsForRuby(TVShow *shows); +void TryPutSafariFanClubOnAir(u8 nMonsCaught, u8 nPkblkUsed);  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); +void TryPutPokemonTodayOnAir(void); +void TryPutSecretBaseVisitOnAir(void);  void PutBattleUpdateOnTheAir(u8 opponentLinkPlayerId, u16 move, u16 speciesPlayer, u16 speciesOpponent);  void BravoTrainerPokemonProfile_BeforeInterview1(u16 move);  void InterviewBefore(void);  void InterviewAfter(void);  void UpdateTVScreensOnMap(int, int); -void TV_PrintIntToStringVar(u8 varIdx, int value); -void SaveRecordedItemPurchasesForTVShow(void); +void ConvertIntToDecimalString(u8 varIdx, int value); +void TryPutSmartShopperOnAir(void);  bool8 ShouldAirFrontierTVShow(void); -void sub_80EE8C8(u16 winStreak, u8 facilityAndMode);  void BravoTrainerPokemonProfile_BeforeInterview2(u8 contestStandingPlace);  void ContestLiveUpdates_Init(u8 round1Placing);  void ContestLiveUpdates_SetRound2Placing(u8 round2Placing); @@ -65,5 +58,8 @@ void ContestLiveUpdates_SetWinnerAppealFlag(u8 flag);  void ContestLiveUpdates_SetWinnerMoveUsed(u16 move);  void ContestLiveUpdates_SetLoserData(u8 flag, u8 loser);  void ResetGabbyAndTy(void); +u8 CheckForPlayersHouseNews(void); +bool8 IsGabbyAndTyShowOnTheAir(void); +void TryPutTrainerFanClubOnAir(void);  #endif //GUARD_TV_H | 
