From e7cf8e5c1713c624b7b9db7a58c6c812e90ec7a9 Mon Sep 17 00:00:00 2001 From: KDSKardabox Date: Mon, 12 Mar 2018 13:56:20 +0530 Subject: Start decompile player_pc --- include/event_scripts.h | 4 +++ include/item_menu.h | 1 + include/menu.h | 1 + include/player_pc.h | 75 ++++++++++++++++++++++++++++++++++++++++++++++++- include/strings.h | 4 +++ 5 files changed, 84 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/event_scripts.h b/include/event_scripts.h index 4c5dfd544..defeadc30 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -387,4 +387,8 @@ extern const u8 FieryPath_EventScript_2908FD[]; extern const u8 EventScript_290CAE[]; extern const u8 EventScript_2926F8[]; +//player pc +extern const u8 LittlerootTown_BrendansHouse_2F_EventScript_1F863F[]; +extern const u8 LittlerootTown_MaysHouse_2F_EventScript_1F958F[]; + #endif //GUARD_EVENT_SCRIPTS_H diff --git a/include/item_menu.h b/include/item_menu.h index 5c1b26faa..ccf52a7a9 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -20,6 +20,7 @@ extern struct BagStruct gUnknown_0203CE58; extern u16 gSpecialVar_ItemId; // Exported ROM declarations +void sub_81AAC14(void); void sub_81AAC50(void); void sub_81AAC70(void); void bag_menu_mail_related(void); diff --git a/include/menu.h b/include/menu.h index c2f15422a..4de9d4b75 100644 --- a/include/menu.h +++ b/include/menu.h @@ -53,6 +53,7 @@ struct WindowTemplate sub_8198A50(u8, u8, u8, u8, u8, u8, u16); void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos); void copy_decompressed_tile_data_to_vram_autofree(u8 bgId, const void *src, int size, u16 offset, u8 mode); s8 ProcessMenuInputNoWrap_(void); +s8 ProcessMenuInput_other(void); void do_scheduled_bg_tilemap_copies_to_vram(void); void clear_scheduled_bg_copies_to_vram(void); void AddTextPrinterParameterized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const u8 *color, s8 speed, const u8 *str); diff --git a/include/player_pc.h b/include/player_pc.h index cc2e85b2b..fcd58757e 100644 --- a/include/player_pc.h +++ b/include/player_pc.h @@ -1,13 +1,86 @@ #ifndef GUARD_PLAYER_PC_H #define GUARD_PLAYER_PC_H +// local task defines +#define PAGE_INDEX data[0] +#define ITEMS_ABOVE_TOP data[1] +#define NUM_ITEMS data[1] +#define NUM_QUANTITY_ROLLER data[3] +#define NUM_PAGE_ITEMS data[4] +// not used +#define CURRENT_ITEM_STORAGE_MENU data[3] +// not used +#define SWAP_ITEM_INDEX data[8] +#define SWITCH_MODE_ACTIVE data[9] + +// this is potentially an ewram access occuring in high ewram. TODO: investigate this further. +#define NEW_GAME_PC_ITEMS(i, type) ((u16)((u16 *)gNewGamePCItems + type)[i * 2]) + +// defined and used in the above macro +enum +{ + PC_ITEM_ID, + PC_QUANTITY +}; + +// player PC menu options +enum +{ + PLAYERPC_MENU_ITEMSTORAGE, + PLAYERPC_MENU_MAILBOX, + PLAYERPC_MENU_DECORATION, + PLAYERPC_MENU_TURNOFF +}; + +// item storage menus +enum +{ + ITEMPC_MENU_WITHDRAW, + ITEMPC_MENU_DEPOSIT, + ITEMPC_MENU_TOSS, + ITEMPC_MENU_EXIT +}; + +// mailbox mail options +enum +{ + MAILBOX_READ, + MAILBOX_MOVE_TO_BAG, + MAILBOX_GIVE, + MAILBOX_CANCEL, +}; + +// special item description handlers +enum +{ + ITEMPC_SWITCH_WHICH_ITEM = 0xFFF7, + ITEMPC_OKAY_TO_THROW_AWAY, + ITEMPC_TOO_IMPORTANT, + ITEMPC_NO_MORE_ROOM, + ITEMPC_THREW_AWAY_ITEM, + ITEMPC_HOW_MANY_TO_TOSS, + ITEMPC_WITHDREW_THING, + ITEMPC_HOW_MANY_TO_WITHDRAW, + ITEMPC_GO_BACK_TO_PREV +}; + +struct MailboxStruct +{ + u16 cursorPos; + u16 itemsAbove; + u8 pageItems; + u8 count; + u8 unk6[6]; + u8 unkC[4]; +}; + // Exported type declarations // Exported RAM declarations // Exported ROM declarations -void sub_816B060(u8 taskId); +void ReshowPlayerPC(u8 taskId); void sub_816B31C(void); #endif //GUARD_PLAYER_PC_H diff --git a/include/strings.h b/include/strings.h index ceb994900..907873160 100644 --- a/include/strings.h +++ b/include/strings.h @@ -372,4 +372,8 @@ extern const u8 gBirchDexRatingText_LessThan190[]; extern const u8 gBirchDexRatingText_LessThan200[]; extern const u8 gBirchDexRatingText_DexCompleted[]; +//player menu text +extern const u8 gText_WhatWouldYouLike[]; +extern const u8 gText_NoMailHere[]; + #endif //GUARD_STRINGS_H -- cgit v1.2.3 From 1f7fb45d0f84bc0a9b66b00b3918e1a16702bda2 Mon Sep 17 00:00:00 2001 From: KDSKardabox Date: Thu, 15 Mar 2018 16:07:24 +0530 Subject: Decompile more functions --- include/menu_helpers.h | 3 ++- include/player_pc.h | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/menu_helpers.h b/include/menu_helpers.h index e744c293c..bbdd21327 100644 --- a/include/menu_helpers.h +++ b/include/menu_helpers.h @@ -24,7 +24,8 @@ void ResetVramOamAndBgCntRegs(void); void SetVBlankHBlankCallbacksToNull(void); void ResetAllBgsCoordinates(void); bool16 RunTextPrintersRetIsActive(u8 textPrinterId); -void sub_8122344(void *arg0, u8 arg1); +void sub_8122344(u8 *arg0, u8 arg1); +void sub_81223B0(u8 *arg0, u8 arg1); void LoadListMenuArrowsGfx(void); void sub_81223FC(u8 *a0, u8 count, u8 a2); void sub_8122448(u8 *a0, u8 count, u16 x, u16 y); diff --git a/include/player_pc.h b/include/player_pc.h index fcd58757e..9e8ae6ef4 100644 --- a/include/player_pc.h +++ b/include/player_pc.h @@ -64,14 +64,15 @@ enum ITEMPC_GO_BACK_TO_PREV }; -struct MailboxStruct +struct PlayerPCItemPageStruct { u16 cursorPos; u16 itemsAbove; u8 pageItems; u8 count; - u8 unk6[6]; - u8 unkC[4]; + u8 filler[3]; + u8 scrollIndicatorId; + u8 filler2[4]; }; // Exported type declarations -- cgit v1.2.3 From a24ffb13213b7cd8761cd501bc4c052da66f57c4 Mon Sep 17 00:00:00 2001 From: KDSKardabox Date: Mon, 19 Mar 2018 15:57:33 +0530 Subject: Finish decompiling player_pc rodata --- include/decoration.h | 1 + include/international_string_util.h | 4 ++-- include/item.h | 4 ++++ include/menu_helpers.h | 2 +- include/party_menu.h | 1 + include/player_pc.h | 3 ++- include/pokenav.h | 8 ++++++++ include/strings.h | 39 ++++++++++++++++++++++++++++++++++++- 8 files changed, 57 insertions(+), 5 deletions(-) (limited to 'include') diff --git a/include/decoration.h b/include/decoration.h index c841bbfc1..a51d9ccce 100644 --- a/include/decoration.h +++ b/include/decoration.h @@ -69,5 +69,6 @@ extern EWRAM_DATA u8 gCurDecorationIndex; void sub_8126968(void); void sub_8126AD8(u8 taskId); void sub_8127D38(u16 mapX, u16 mapY, u16 decor); +void sub_8126B2C(u8 taskId); #endif //GUARD_DECORATION_H diff --git a/include/international_string_util.h b/include/international_string_util.h index f4ba827e3..426a2d48c 100644 --- a/include/international_string_util.h +++ b/include/international_string_util.h @@ -10,12 +10,12 @@ s32 GetStringRightAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth); s32 GetStringCenterAlignXOffsetWithLetterSpacing(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing); s32 GetStringWidthDifference(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing); s32 GetMaxWidthInMenuTable(const struct MenuAction *str, s32 arg1); -s32 sub_81DB3D8(const struct MenuAction *str, u8* arg1, s32 arg2); +s32 sub_81DB3D8(const struct MenuAction *str, const u8* arg1, s32 arg2); // sub_81DB41C // CopyMonCategoryText // sub_81DB494 void PadNameString(u8 *dst, u8 padWith); -// sub_81DB554 +void sub_81DB554(u8 *, u8); // sub_81DB5AC u32 sub_81DB604(const u8 *); // sub_81DB620 diff --git a/include/item.h b/include/item.h index d81a3de33..33d434f78 100644 --- a/include/item.h +++ b/include/item.h @@ -64,5 +64,9 @@ u16 BagGetItemIdByPocketPosition(u8 pocketId, u16 pocketPos); void sub_80D6FB4(struct BagPocket*); void sub_80D6F64(struct BagPocket*); void sub_80D702C(struct ItemSlot*, s16, u16); +u8 sub_80D6CE4(); +bool8 itemid_is_unique(u16 itemId); +void sub_80D6E48(u8, u16); +void sub_80D6E84(void); #endif // ITEM_H diff --git a/include/menu_helpers.h b/include/menu_helpers.h index bbdd21327..4de6603a3 100644 --- a/include/menu_helpers.h +++ b/include/menu_helpers.h @@ -14,7 +14,7 @@ struct YesNoFuncTable // Exported RAM declarations // Exported ROM declarations - +void sub_812220C(struct ItemSlot *, u8, u8 *, u8 *, u8); void sub_812225C(u16 *, u16 *, u8, u8); void sub_8122298(u16 *, u16 *, u8, u8, u8); void sub_8121F68(u8 taskId, const struct YesNoFuncTable *data); diff --git a/include/party_menu.h b/include/party_menu.h index 1ce12d98f..c96eb0d9d 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -37,5 +37,6 @@ void display_pokemon_menu_message(u8 windowId); void sub_81B1F18(u8 taskId, u8 pokemonIdx, s8 a, s16 hp, TaskFunc func); void sub_81B1B5C(void *a, u8 b); u8 sub_81B1BD4(); +void sub_81B8448(); #endif // GUARD_PARTY_MENU_H diff --git a/include/player_pc.h b/include/player_pc.h index 9e8ae6ef4..bd060faa8 100644 --- a/include/player_pc.h +++ b/include/player_pc.h @@ -72,14 +72,15 @@ struct PlayerPCItemPageStruct u8 count; u8 filler[3]; u8 scrollIndicatorId; - u8 filler2[4]; }; // Exported type declarations // Exported RAM declarations +extern struct PlayerPCItemPageStruct playerPCItemPageInfo; // Exported ROM declarations +extern const struct MenuAction gMailboxMailOptions[]; void ReshowPlayerPC(u8 taskId); void sub_816B31C(void); diff --git a/include/pokenav.h b/include/pokenav.h index ebe3b325c..fabe211ea 100644 --- a/include/pokenav.h +++ b/include/pokenav.h @@ -1,5 +1,6 @@ #ifndef GUARD_POKENAV_H #define GUARD_POKENAV_H +#include "player_pc.h" bool8 sub_81D5C18(void); bool8 sub_81D20BC(void *arg0); @@ -13,5 +14,12 @@ void sub_81D3480(void *arg0, u8 arg1); void sub_81D2754(void *arg0, void *arg1); void sub_81D1F84(void *arg0, void *arg1, void *arg2); const u8 *sub_81D62AC(void); +u8 sub_81D1C84(u8); +u8 sub_81D1DC0(struct PlayerPCItemPageStruct *); +void sub_81D1E90(struct PlayerPCItemPageStruct *); +void sub_81D1EC0(void); +void sub_81D1D04(u8); +bool8 sub_81D1C44(u8); + #endif //GUARD_POKENAV_H diff --git a/include/strings.h b/include/strings.h index 907873160..689acff5e 100644 --- a/include/strings.h +++ b/include/strings.h @@ -372,8 +372,45 @@ extern const u8 gBirchDexRatingText_LessThan190[]; extern const u8 gBirchDexRatingText_LessThan200[]; extern const u8 gBirchDexRatingText_DexCompleted[]; -//player menu text +//player pc text extern const u8 gText_WhatWouldYouLike[]; extern const u8 gText_NoMailHere[]; +extern const u8 gText_TakeOutItemsFromPC[]; +extern const u8 gText_StoreItemsInPC[]; +extern const u8 gText_ThrowAwayItemsInPC[]; +extern const u8 gText_GoBackPrevMenu[]; + +extern const u8 gText_ItemStorage[]; +extern const u8 gText_Mailbox[]; +extern const u8 gText_Decoration[]; +extern const u8 gText_TurnOff[]; + +extern const u8 gText_WithdrawItem[]; +extern const u8 gText_DepositItem[]; +extern const u8 gText_TossItem[]; +extern const u8 gText_Cancel[]; + +extern const u8 gText_Read[]; +extern const u8 gText_MoveToBag[]; +extern const u8 gText_Give2[]; +extern const u8 gText_Cancel2[]; + +extern const u8 gText_NoItems[]; +extern const u8 gText_WhatToDoWithVar1sMail[]; +extern const u8 gText_MessageWillBeLost[]; +extern const u8 gText_BagIsFull[]; + +extern const u8 gText_MailToBagMessageErased[]; +extern const u8 gText_GoBackPrevMenu[]; +extern const u8 gText_WithdrawHowManyItems[]; +extern const u8 gText_WithdrawXItems[]; +extern const u8 gText_TossHowManyVar1s[]; +extern const u8 gText_ThrewAwayVar2Var1s[]; +extern const u8 gText_NoRoomInBag[]; +extern const u8 gText_TooImportantToToss[]; +extern const u8 gText_ConfirmTossItems[]; +extern const u8 gText_MoveVar1Where[]; + + #endif //GUARD_STRINGS_H -- cgit v1.2.3