#ifndef GUARD_PLAYERPC_H #define GUARD_PLAYERPC_H // general task defines #define TASK gTasks[taskId] #define FUNC func // local task defines #define PAGE_INDEX data[0] #define ITEMS_ABOVE_TOP data[1] #define NUM_ITEMS data[2] #define NUM_QUANTITY_ROLLER data[3] #define NUM_PAGE_ITEMS data[4] // not used #define CURRENT_ITEM_STORAGE_MENU data[6] // not used #define SWAP_ITEM_INDEX data[8] #define SWITCH_MODE_ACTIVE data[9] #define NEW_GAME_PC_ITEMS(i, type) ((u16)((u16 *)gNewGamePCItems + type)[i * 2]) // defined and used in the above macro enum { ITEM_ID, 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 MailboxStruct { /*0x00*/ u8 cursorPos; /*0x01*/ u8 pageItems; // number of items (not including Cancel) on the current page. /*0x02*/ u8 itemsAbove; // number of items above the top item on the page. /*0x03*/ u8 count; // total number of items in mailbox storage. }; extern struct MailboxStruct gMailboxInfo; void ReshowPlayerPC(u8 var); void NewGameInitPCItems(void); void BedroomPC(void); void PlayerPC(void); void ItemStorage_ReturnToMenuAfterDeposit(void); void Mailbox_ReturnToMailListAfterDeposit(void); #endif