Document item menu
This commit is contained in:
@@ -29,7 +29,7 @@ enum {
|
||||
|
||||
struct PyramidBagMenu
|
||||
{
|
||||
void (*exitCallback)(void);
|
||||
void (*newScreenCallback)(void);
|
||||
u8 tilemapBuffer[BG_SCREEN_SIZE];
|
||||
u8 spriteIds[PBAG_SPRITE_COUNT];
|
||||
u8 windowIds[5];
|
||||
@@ -49,7 +49,7 @@ struct PyramidBagMenu
|
||||
|
||||
struct PyramidBagMenuState
|
||||
{
|
||||
void (*callback)(void);
|
||||
void (*exitCallback)(void);
|
||||
u8 location;
|
||||
u16 cursorPosition;
|
||||
u16 scrollPosition;
|
||||
@@ -64,7 +64,7 @@ void CB2_ReturnToPyramidBagMenu(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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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[];
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -22,10 +22,4 @@ 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
|
||||
|
||||
@@ -28,13 +28,13 @@ 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 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 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);
|
||||
|
||||
@@ -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[];
|
||||
|
||||
Reference in New Issue
Block a user