diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/decoration.h | 2 | ||||
-rw-r--r-- | include/menu_helpers.h | 2 | ||||
-rwxr-xr-x | include/player_pc.h | 87 |
3 files changed, 89 insertions, 2 deletions
diff --git a/include/decoration.h b/include/decoration.h index 01a00ee91..2e83a9414 100644 --- a/include/decoration.h +++ b/include/decoration.h @@ -262,7 +262,7 @@ extern u8 gUnknown_020391A8; extern u8 gUnknown_020391A9; extern u8 gUnknown_020391AA; extern u8 gUnknown_02039234; -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); extern const struct YesNoFuncTable gUnknown_083EC96C[]; extern struct UnkStruct_020391B4 gUnknown_020391B4[16]; diff --git a/include/menu_helpers.h b/include/menu_helpers.h index f55a90615..74248e85a 100644 --- a/include/menu_helpers.h +++ b/include/menu_helpers.h @@ -7,6 +7,6 @@ struct YesNoFuncTable void (*noFunc)(u8); }; -void sub_80F914C(u8, const struct YesNoFuncTable *); +void DoYesNoFuncWithChoice(u8, const struct YesNoFuncTable *); #endif // GUARD_MENU_HELPERS_H diff --git a/include/player_pc.h b/include/player_pc.h new file mode 100755 index 000000000..5f53d80ac --- /dev/null +++ b/include/player_pc.h @@ -0,0 +1,87 @@ +#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 |