diff options
author | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2017-06-15 03:34:11 -0400 |
---|---|---|
committer | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2017-06-15 03:34:11 -0400 |
commit | 8435b8835a9b5c5348b2849e943e36ffdd8c76b3 (patch) | |
tree | 57eb9977f42413654a57774bcc6262d63654b78a /src | |
parent | f22e583db60f3d0c33a3d02509c51c2a861e6abd (diff) |
move player_pc data to C file and do a lot of labeling
Diffstat (limited to 'src')
-rw-r--r-- | src/battle_setup.c | 4 | ||||
-rwxr-xr-x | src/decoration.c | 14 | ||||
-rw-r--r-- | src/fldeff_cut.c | 6 | ||||
-rw-r--r-- | src/fldeff_strength.c | 6 | ||||
-rw-r--r-- | src/fldeff_sweetscent.c | 4 | ||||
-rw-r--r-- | src/fldeff_teleport.c | 4 | ||||
-rw-r--r-- | src/hof_pc.c | 4 | ||||
-rw-r--r-- | src/item_use.c | 10 | ||||
-rw-r--r-- | src/player_pc.c | 598 | ||||
-rw-r--r-- | src/rom4.c | 26 | ||||
-rw-r--r-- | src/rom6.c | 6 | ||||
-rw-r--r-- | src/safari_zone.c | 4 | ||||
-rw-r--r-- | src/script_pokemon_util_80F99CC.c | 4 | ||||
-rw-r--r-- | src/secret_base.c | 6 |
14 files changed, 357 insertions, 339 deletions
diff --git a/src/battle_setup.c b/src/battle_setup.c index a70157a43..cb99bf5f5 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -31,7 +31,7 @@ extern u16 gScriptResult; -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); extern struct Pokemon gEnemyParty[]; extern struct Pokemon gPlayerParty[]; @@ -580,7 +580,7 @@ void HandleWildBattleEnd(void) else { SetMainCallback2(c2_exit_to_overworld_2_switch); - gUnknown_0300485C = sub_8080E44; + gFieldCallback = sub_8080E44; } } diff --git a/src/decoration.c b/src/decoration.c index d33931206..6974f7c92 100755 --- a/src/decoration.c +++ b/src/decoration.c @@ -3168,7 +3168,7 @@ void sub_8100038(u8 taskId) void sub_81000A0(u8 taskId) { DisplayYesNoMenu(20, 8, 1); - sub_80F914C(taskId, &gUnknown_083EC95C); + DoYesNoFuncWithChoice(taskId, &gUnknown_083EC95C); } void sub_81000C4(u8 taskId) @@ -3226,7 +3226,7 @@ void sub_8100174(u8 taskId) void sub_8100248(u8 taskId) { DisplayYesNoMenu(20, 8, 1); - sub_80F914C(taskId, &gUnknown_083EC964); + DoYesNoFuncWithChoice(taskId, &gUnknown_083EC964); } void sub_810026C(u8 taskId) @@ -3257,7 +3257,7 @@ void c1_overworld_prev_quest(u8 taskId) case 1: sub_81016F4(); FreeSpritePaletteByTag(0xbb8); - gUnknown_0300485C = &sub_8100364; + gFieldCallback = &sub_8100364; SetMainCallback2(c2_exit_to_overworld_2_switch); DestroyTask(taskId); break; @@ -4047,7 +4047,7 @@ void sub_8101460(u8 taskId) void sub_8101518(u8 taskId) { DisplayYesNoMenu(20, 8, 1); - sub_80F914C(taskId, &gUnknown_083EC9CC); + DoYesNoFuncWithChoice(taskId, &gUnknown_083EC9CC); } void sub_810153C(u8 taskId) @@ -4060,7 +4060,7 @@ void sub_810153C(u8 taskId) void sub_810156C(u8 taskId) { DisplayYesNoMenu(20, 8, 1); - sub_80F914C(taskId, &gUnknown_083EC9D4); + DoYesNoFuncWithChoice(taskId, &gUnknown_083EC9D4); } void sub_8101590(u8 taskId) @@ -4089,7 +4089,7 @@ void sub_81015E0(u8 taskId) break; case 1: sub_81016F4(); - gUnknown_0300485C = sub_8101678; + gFieldCallback = sub_8101678; SetMainCallback2(c2_exit_to_overworld_2_switch); DestroyTask(taskId); break; @@ -4184,7 +4184,7 @@ void sub_81017A0(u8 taskId) void sub_8101824(u8 taskId) { DisplayYesNoMenu(20, 8, 1); - sub_80F914C(taskId, &gUnknown_083ECAA0); + DoYesNoFuncWithChoice(taskId, &gUnknown_083ECAA0); } void sub_8101848(u8 taskId) diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index 8fde74852..4a2313499 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -16,7 +16,7 @@ extern u8 gCutGrassSpriteArray[8]; // seems to be an array of 8 sprite IDs -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); extern void (*gUnknown_03005CE4)(void); extern struct SpriteTemplate gSpriteTemplate_CutGrass; @@ -48,7 +48,7 @@ bool8 SetUpFieldMove_Cut(void) if(npc_before_player_of_type(0x52) == TRUE) // is in front of tree? { - gUnknown_0300485C = sub_808AB90; + gFieldCallback = sub_808AB90; gUnknown_03005CE4 = sub_80A2634; return TRUE; } @@ -67,7 +67,7 @@ bool8 SetUpFieldMove_Cut(void) if(MetatileBehavior_IsPokeGrass(tileBehavior) == TRUE || MetatileBehavior_IsAshGrass(tileBehavior) == TRUE) { - gUnknown_0300485C = sub_808AB90; + gFieldCallback = sub_808AB90; gUnknown_03005CE4 = sub_80A25E8; return TRUE; } diff --git a/src/fldeff_strength.c b/src/fldeff_strength.c index f9db40a67..a831676b8 100644 --- a/src/fldeff_strength.c +++ b/src/fldeff_strength.c @@ -16,7 +16,7 @@ extern u32 gUnknown_0202FF84[]; extern u8 gLastFieldPokeMenuOpened; extern u16 gScriptResult; -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); extern void (*gUnknown_03005CE4)(void); extern u8 UseStrengthScript[]; @@ -26,7 +26,7 @@ bool8 SetUpFieldMove_Strength(void) if (ShouldDoBrailleStrengthEffect()) { gScriptResult = gLastFieldPokeMenuOpened; - gUnknown_0300485C = sub_808AB90; + gFieldCallback = sub_808AB90; gUnknown_03005CE4 = sub_811AA38; } else @@ -34,7 +34,7 @@ bool8 SetUpFieldMove_Strength(void) if (npc_before_player_of_type(87) != TRUE) return 0; gScriptResult = gLastFieldPokeMenuOpened; - gUnknown_0300485C = sub_808AB90; + gFieldCallback = sub_808AB90; gUnknown_03005CE4 = sub_811AA18; } diff --git a/src/fldeff_sweetscent.c b/src/fldeff_sweetscent.c index 4e8214b07..3a9281ac2 100644 --- a/src/fldeff_sweetscent.c +++ b/src/fldeff_sweetscent.c @@ -18,14 +18,14 @@ static void sub_812C118(u8); extern u32 gUnknown_0202FF84[]; extern u8 gLastFieldPokeMenuOpened; -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); extern void (*gUnknown_03005CE4)(void); extern u8 SweetScentNothingHereScript[]; bool8 SetUpFieldMove_SweetScent(void) { - gUnknown_0300485C = sub_808AB90; + gFieldCallback = sub_808AB90; gUnknown_03005CE4 = sub_812BFD4; return TRUE; } diff --git a/src/fldeff_teleport.c b/src/fldeff_teleport.c index 0e6933649..952193ff0 100644 --- a/src/fldeff_teleport.c +++ b/src/fldeff_teleport.c @@ -9,7 +9,7 @@ extern void sub_8087BA8(void); extern u32 gUnknown_0202FF84[]; -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); extern u8 gLastFieldPokeMenuOpened; extern void (*gUnknown_03005CE4)(void); @@ -20,7 +20,7 @@ bool8 SetUpFieldMove_Teleport(void) { if (is_light_level_1_2_3_or_6(gMapHeader.mapType) == TRUE) { - gUnknown_0300485C = sub_808AB90; + gFieldCallback = sub_808AB90; gUnknown_03005CE4 = hm_teleport_run_dp02scr; return TRUE; } diff --git a/src/hof_pc.c b/src/hof_pc.c index fcbc3f7e1..ca0c2f370 100644 --- a/src/hof_pc.c +++ b/src/hof_pc.c @@ -7,7 +7,7 @@ #include "task.h" extern void sub_81428CC(void); -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); static void ReshowPCMenuAfterHallOfFamePC(void); static void Task_WaitForPaletteFade(u8); @@ -21,7 +21,7 @@ void AccessHallOfFamePC(void) void ReturnFromHallOfFamePC(void) { SetMainCallback2(c2_exit_to_overworld_2_switch); - gUnknown_0300485C = ReshowPCMenuAfterHallOfFamePC; + gFieldCallback = ReshowPCMenuAfterHallOfFamePC; } static void ReshowPCMenuAfterHallOfFamePC(void) diff --git a/src/item_use.c b/src/item_use.c index d1c1dbf2a..c04cf9d7a 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -28,7 +28,7 @@ #include "vars.h" extern void (* gUnknown_03005D00)(u8); -extern void (* gUnknown_0300485C)(void); +extern void (* gFieldCallback)(void); extern void (* gUnknown_03004AE4)(u8); extern u8 gUnknown_02038561; @@ -150,7 +150,7 @@ void SetUpItemUseOnFieldCallback(u8 taskId) { if (gTasks[taskId].data[2] != 1) { - gUnknown_0300485C = (void *)ExecuteItemUseFromBlackPalette; + gFieldCallback = (void *)ExecuteItemUseFromBlackPalette; ItemMenu_ConfirmNormalFade(taskId); } else @@ -772,7 +772,7 @@ void ItemUseOutOfBattle_PokeblockCase(u8 taskId) } else { - gUnknown_0300485C = (void *)sub_8080E28; + gFieldCallback = (void *)sub_8080E28; sub_810BA7C(1); ItemMenu_ConfirmComplexFade(taskId); } @@ -825,7 +825,7 @@ void sub_80C9C7C(u8 taskId) if(IsPlayerFacingPlantedBerryTree() == TRUE) { gUnknown_03005D00 = sub_80C9D00; - gUnknown_0300485C = ExecuteItemUseFromBlackPalette; + gFieldCallback = ExecuteItemUseFromBlackPalette; gTasks[taskId].data[8] = (u32)c2_exit_to_overworld_2_switch >> 16; gTasks[taskId].data[9] = (u32)c2_exit_to_overworld_2_switch; gTasks[taskId].func = HandleItemMenuPaletteFade; @@ -944,7 +944,7 @@ void sub_80C9F80(u8 var) { DisplayYesNoMenu(7, 7, 1); sub_80A3FA0(gBGTilemapBuffers[1], 8, 8, 5, 4, 1); - sub_80F914C(var, &gUnknown_083D61F4); + DoYesNoFuncWithChoice(var, &gUnknown_083D61F4); } void sub_80C9FC0(u8 var) diff --git a/src/player_pc.c b/src/player_pc.c index f39d812b6..26dc8ccdc 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -16,152 +16,169 @@ #include "name_string_util.h" #include "mail.h" #include "rom4.h" +#include "player_pc.h" -// 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)(gNewGamePCItems + type)[i * 2]) - -// defined and used in the above macro -enum -{ - ITEM_ID, - QUANTITY +extern void DisplayItemMessageOnField(u8, const u8*, TaskFunc, u16); +extern void DoPlayerPCDecoration(u8); +extern void BuyMenuFreeMemory(void); +extern void DestroyVerticalScrollIndicator(u8); +extern void PauseVerticalScrollIndicator(u8); +extern void StartVerticalScrollIndicators(int); +extern void CreateVerticalScrollIndicators(u32, u32, u32); // unknown args +extern void LoadScrollIndicatorPalette(void); +extern void ClearMailStruct(struct MailStruct *); +extern u8 sub_807D770(void); +extern void sub_808B020(void); +extern void sub_80A4164(u8 *, u16, enum StringConvertMode, u8); +extern void sub_80A418C(u16, enum StringConvertMode, int, int, int); +extern void sub_80A6A30(void); +extern void sub_80F944C(void); + +extern u8 *gPcItemMenuOptionOrder; +extern u8 gPcItemMenuOptionsNum; + +extern u8 gUnknown_02038561; + +// event scripts +extern u8 gBrendanHouse_TurnPCOff[]; +extern u8 gMayHouse_TurnPCOff[]; + +extern void (*gFieldCallback)(void); + +static void InitPlayerPCMenu(u8 taskId); +static void PlayerPCProcessMenuInput(u8 taskId); +static void InitItemStorageMenu(u8); +static void ItemStorageMenuPrint(const u8 *); +static void ItemStorageMenuProcessInput(u8); +static void ItemStorage_ProcessInput(u8); +static void ItemStorage_SetItemAndMailCount(u8); +static void ItemStorage_DoItemAction(u8); +static void ItemStorage_GoBackToPlayerPCMenu(u8); +static void ItemStorage_HandleQuantityRolling(u8); +static void ItemStorage_DoItemWithdraw(u8); +static void ItemStorage_DoItemToss(u8); +static void ItemStorage_HandleRemoveItem(u8); +static void ItemStorage_WaitPressHandleResumeProcessInput(u8); +static void ItemStorage_HandleResumeProcessInput(u8); +static void ItemStorage_DoItemSwap(u8, bool8); +static void ItemStorage_DrawItemList(u8); +static void ItemStorage_PrintItemPcResponse(u16); +static void ItemStorage_DrawBothListAndDescription(u8); +static void ItemStorage_GoBackToItemPCMenu(u8, u8); +static void ItemStorage_LoadPalette(void); +static u8 GetMailboxMailCount(void); +static void Mailbox_UpdateMailList(void); +static void Mailbox_DrawMailboxMenu(u8); +static void Mailbox_ProcessInput(u8); +static void Mailbox_CloseScrollIndicators(void); +static void Mailbox_PrintWhatToDoWithPlayerMailText(u8); +static void Mailbox_TurnOff(u8); +static void Mailbox_PrintMailOptions(u8); +static void Mailbox_MailOptionsProcessInput(u8); +static void Mailbox_FadeAndReadMail(u8); +static void Mailbox_ReturnToFieldFromReadMail(void); +static void Mailbox_DrawYesNoBeforeMove(u8); +static void Mailbox_DoGiveMailPokeMenu(u8); +static void Mailbox_NoPokemonForMail(u8); +static void Mailbox_Cancel(u8); +static void Mailbox_DrawMailMenuAndDoProcessInput(u8); +static void PlayerPC_ItemStorage(u8 taskId); +static void PlayerPC_Mailbox(u8 taskId); +static void PlayerPC_Decoration(u8 var); +static void PlayerPC_TurnOff(u8 taskId); +static void ItemStorage_Withdraw(u8); +static void ItemStorage_Deposit(u8); +static void ItemStorage_Toss(u8); +static void ItemStorage_Exit(u8); +static void ItemStorage_ResumeInputFromYesToss(u8); +static void ItemStorage_ResumeInputFromNoToss(u8); +static void Mailbox_DoMailMoveToBag(u8); +static void Mailbox_ReturnToInputAfterNo(u8); +static void Mailbox_DoMailRead(u8); +static void Mailbox_MoveToBag(u8); +static void Mailbox_Give(u8); +static void Mailbox_Cancel(u8); + +static const struct TextStruct gPCText_OptionDescList[] = +{ + PCText_TakeOutItems, + PCText_StoreItems, + PCText_ThrowAwayItems, + gMenuText_GoBackToPrev }; -// player PC menu options -enum +static const struct MenuAction2 gPCText_PlayerPCOptionsText[] = { + { SecretBaseText_ItemStorage, PlayerPC_ItemStorage }, + { gPCText_Mailbox, PlayerPC_Mailbox }, + { SecretBaseText_Decoration, PlayerPC_Decoration }, + { SecretBaseText_TurnOff, PlayerPC_TurnOff } +}; + +static const u8 gBedroomPC_OptionOrder[] = +{ PLAYERPC_MENU_ITEMSTORAGE, PLAYERPC_MENU_MAILBOX, PLAYERPC_MENU_DECORATION, PLAYERPC_MENU_TURNOFF }; -// item storage menus -enum +static const u8 gPlayerPC_OptionOrder[] = { - ITEMPC_MENU_WITHDRAW, - ITEMPC_MENU_DEPOSIT, - ITEMPC_MENU_TOSS, - ITEMPC_MENU_EXIT + PLAYERPC_MENU_ITEMSTORAGE, + PLAYERPC_MENU_MAILBOX, + PLAYERPC_MENU_TURNOFF }; -// 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 +static const struct MenuAction2 gPCText_ItemPCOptionsText[] = +{ + { PCText_WithdrawItem, ItemStorage_Withdraw }, + { PCText_DepositItem, ItemStorage_Deposit }, + { PCText_TossItem, ItemStorage_Toss }, + { gUnknownText_Exit, ItemStorage_Exit } }; -struct MailboxStruct +static const struct YesNoFuncTable ResumeFromTossYesNoFuncList[] = // ResumeFromTossYesNoFuncList { - /*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. + ItemStorage_ResumeInputFromYesToss, + ItemStorage_ResumeInputFromNoToss }; -extern struct MailboxStruct gMailboxInfo; - -extern void DisplayItemMessageOnField(u8, const u8*, TaskFunc, u16); -extern void DoPlayerPCDecoration(u8); -extern void BuyMenuFreeMemory(void); -extern void DestroyVerticalScrollIndicator(u8); -extern void sub_80A6A30(void); -extern u8 sub_807D770(void); -extern void sub_80F996C(u8); -extern void sub_80A418C(u16, enum StringConvertMode, int, int, int); -extern void sub_80F98DC(int); -extern void sub_80A4164(u8 *, u16, enum StringConvertMode, u8); -extern void CreateVerticalScrollIndicators(u32, u32, u32); // unknown args -extern void sub_80F944C(void); -extern void LoadScrollIndicatorPalette(void); -extern void ClearMailStruct(struct MailStruct *); -extern void sub_808B020(void); +static const struct YesNoFuncTable ResumeFromWithdrawYesNoFuncList[] = // ResumeFromWithdrawYesNoFuncList +{ + Mailbox_DoMailMoveToBag, + Mailbox_ReturnToInputAfterNo +}; -extern u16 gNewGamePCItems[]; -extern u16 gUnknown_08406334[3]; +// the use of this struct is meant to be an ItemSlot struct, but NewGameInitPCItems refuses to match without a weird pointer access. +static const struct ItemSlot gNewGamePCItems[] = +{ + { ITEM_POTION, 1 }, + { ITEM_NONE, 0 } +}; -extern u8 *gPcItemMenuOptionOrder; -extern struct MenuAction gPCText_PlayerPCOptionsText[]; +static const struct MenuAction2 gMailboxMailOptions[] = +{ + { OtherText_Read, Mailbox_DoMailRead }, + { gOtherText_MoveToBag, Mailbox_MoveToBag }, + { OtherText_Give, Mailbox_Give }, + { gOtherText_CancelNoTerminator, Mailbox_Cancel } +}; -extern u8 gBedroomPC_OptionOrder[]; -extern u8 gPlayerPC_OptionOrder[]; -extern u8 gUnknown_0840632A[]; -extern u8 gUnknown_08406327[]; -extern u8 gUnknown_08406330[]; -extern u8 gUnknown_0840631E[]; -extern u8 gUnknown_08406318[]; -extern u8 gUnknown_0840633A[]; +static const u8 gNonSelectedItemFormattedText[] = _("{STR_VAR_1}{CLEAR_TO 80}"); +static const u8 gSelectedItemFormattedText[] = _("{COLOR RED}{STR_VAR_1}{CLEAR_TO 80}"); +static const u8 gNonSelectedItemQuantityFormatText[] = _("{STR_VAR_1}"); +static const u8 gSelectedItemQuantityFormatText[] = _("{COLOR RED}{STR_VAR_1}"); +static const u8 gUnknown_08406330[] = _("{CLEAR_TO 32}"); -extern u8 gPcItemMenuOptionsNum; +static const u16 gUnknown_08406334[3] = +{ + 0x5294, + 0x6B5A, + 0x7FFF +}; -extern u8 gUnknown_02038561; -extern u8 gUnknown_08152850; -extern u8 gUnknown_08152C75; - -extern void (*gUnknown_0300485C)(void); - -extern u32 gPCText_OptionDescList[]; -extern const struct MenuAction gPCText_ItemPCOptionsText[]; -extern const struct MenuAction gUnknown_084062F8[]; -extern const struct YesNoFuncTable gUnknown_084062E0; -extern const struct YesNoFuncTable gUnknown_084062E8; - -void InitPlayerPCMenu(u8 taskId); -void PlayerPCProcessMenuInput(u8 taskId); -void InitItemStorageMenu(u8); -void ItemStorageMenuPrint(u8 *); -void ItemStorageMenuProcessInput(u8); -void ItemStorage_ProcessInput(u8); -void ItemStorage_SetItemAndMailCount(u8); -void ItemStorage_DoItemAction(u8); -void ItemStorage_GoBackToPlayerPCMenu(u8); -void ItemStorage_HandleQuantityRolling(u8); -void ItemStorage_DoItemWithdraw(u8); -void ItemStorage_DoItemToss(u8); -void ItemStorage_HandleRemoveItem(u8); -void ItemStorage_WaitPressHandleResumeProcessInput(u8); -void ItemStorage_HandleResumeProcessInput(u8); -void ItemStorage_DoItemSwap(u8, bool8); -void ItemStorage_DrawItemList(u8); -void ItemStorage_PrintItemPcResponse(u16); -void ItemStorage_DrawBothListAndDescription(u8); -void ItemStorage_GoBackToItemPCMenu(u8, u8); -void ItemStorage_LoadPalette(void); -u8 GetMailboxMailCount(void); -void Mailbox_UpdateMailList(void); -void Mailbox_DrawMailboxMenu(u8); -void Mailbox_ProcessInput(u8); -void sub_813B27C(void); -void sub_813B294(u8); -void sub_813B320(u8); -void sub_813B348(u8); -void sub_813B3A0(u8); -void sub_813B454(u8); -void sub_813B4F0(void); -void sub_813B554(u8); -void sub_813B66C(u8); -void sub_813B718(u8); -void Mailbox_Cancel(u8); -void sub_813B758(u8); +static const u8 gHighlightedMoveToBagFormatText[] = _("{COLOR RED}{STR_VAR_1}"); void NewGameInitPCItems(void) { @@ -175,27 +192,27 @@ void NewGameInitPCItems(void) void BedroomPC(void) { - gPcItemMenuOptionOrder = gBedroomPC_OptionOrder; + gPcItemMenuOptionOrder = (u8 *)gBedroomPC_OptionOrder; gPcItemMenuOptionsNum = 4; DisplayItemMessageOnField(CreateTask(TaskDummy, 0), gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0); } void PlayerPC(void) { - gPcItemMenuOptionOrder = gPlayerPC_OptionOrder; + gPcItemMenuOptionOrder = (u8 *)gPlayerPC_OptionOrder; gPcItemMenuOptionsNum = 3; DisplayItemMessageOnField(CreateTask(TaskDummy, 0), gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0); } -void InitPlayerPCMenu(u8 taskId) +static void InitPlayerPCMenu(u8 taskId) { MenuDrawTextWindow(0, 0, 10, gPcItemMenuOptionsNum * 2 + 1); - PrintMenuItemsReordered(1, 1, gPcItemMenuOptionsNum, gPCText_PlayerPCOptionsText, gPcItemMenuOptionOrder); + PrintMenuItemsReordered(1, 1, gPcItemMenuOptionsNum, (struct MenuAction *)gPCText_PlayerPCOptionsText, gPcItemMenuOptionOrder); InitMenu(0, 1, 1, gPcItemMenuOptionsNum, 0, 9); - gTasks[taskId].func = PlayerPCProcessMenuInput; + TASK.FUNC = PlayerPCProcessMenuInput; } -void PlayerPCProcessMenuInput(u8 taskId) +static void PlayerPCProcessMenuInput(u8 taskId) { if (gMain.newAndRepeatedKeys & DPAD_UP) { @@ -226,13 +243,13 @@ void ReshowPlayerPC(u8 var) DisplayItemMessageOnField(var, gOtherText_WhatWillYouDo, InitPlayerPCMenu, 0); } -void PlayerPC_ItemStorage(u8 taskId) +static void PlayerPC_ItemStorage(u8 taskId) { - InitItemStorageMenu(0); - gTasks[taskId].func = ItemStorageMenuProcessInput; + InitItemStorageMenu(ITEMPC_MENU_WITHDRAW); + TASK.FUNC = ItemStorageMenuProcessInput; } -void PlayerPC_Mailbox(u8 taskId) +static void PlayerPC_Mailbox(u8 taskId) { MenuZeroFillWindowRect(0, 0, 10, 9); gMailboxInfo.count = GetMailboxMailCount(); @@ -246,26 +263,26 @@ void PlayerPC_Mailbox(u8 taskId) Mailbox_UpdateMailList(); ItemStorage_SetItemAndMailCount(taskId); Mailbox_DrawMailboxMenu(taskId); - gTasks[taskId].func = Mailbox_ProcessInput; + TASK.FUNC = Mailbox_ProcessInput; } } -void PlayerPC_Decoration(u8 var) +static void PlayerPC_Decoration(u8 var) { MenuZeroFillWindowRect(0, 0, 10, 9); DoPlayerPCDecoration(var); } -void PlayerPC_TurnOff(u8 taskId) +static void PlayerPC_TurnOff(u8 taskId) { if (gPcItemMenuOptionsNum == 4) // if the option count is 4, we are at the bedroom PC and not player PC, so do gender specific handling. { MenuZeroFillWindowRect(0, 0, 0x1D, 0x13); if (gSaveBlock2.playerGender == MALE) - ScriptContext1_SetupScript(&gUnknown_08152850); + ScriptContext1_SetupScript(gBrendanHouse_TurnPCOff); else - ScriptContext1_SetupScript(&gUnknown_08152C75); + ScriptContext1_SetupScript(gMayHouse_TurnPCOff); } else { @@ -275,34 +292,34 @@ void PlayerPC_TurnOff(u8 taskId) DestroyTask(taskId); } -void InitItemStorageMenu(u8 var) +static void InitItemStorageMenu(u8 var) { MenuZeroFillWindowRect(0, 0, 10, 9); MenuDrawTextWindow(0, 0, 11, 9); - PrintMenuItems(1, 1, 4, gPCText_ItemPCOptionsText); + PrintMenuItems(1, 1, 4, (struct MenuAction *)gPCText_ItemPCOptionsText); InitMenu(0, 1, 1, 4, var, 10); - ItemStorageMenuPrint((u8 *)gPCText_OptionDescList[var]); + ItemStorageMenuPrint(gPCText_OptionDescList[var].text); } -void ItemStorageMenuPrint(u8 *textPtr) +static void ItemStorageMenuPrint(const u8 *textPtr) { MenuFillWindowRectWithBlankTile(2, 15, 27, 18); MenuPrint(textPtr, 2, 15); } -void ItemStorageMenuProcessInput(u8 var) +static void ItemStorageMenuProcessInput(u8 var) { if (gMain.newAndRepeatedKeys & DPAD_UP) { PlaySE(SE_SELECT); MoveMenuCursor(-1); - ItemStorageMenuPrint((u8 *)gPCText_OptionDescList[GetMenuCursorPos()]); + ItemStorageMenuPrint(gPCText_OptionDescList[GetMenuCursorPos()].text); } else if (gMain.newAndRepeatedKeys & DPAD_DOWN) { PlaySE(SE_SELECT); MoveMenuCursor(1); - ItemStorageMenuPrint((u8 *)gPCText_OptionDescList[GetMenuCursorPos()]); + ItemStorageMenuPrint(gPCText_OptionDescList[GetMenuCursorPos()].text); } else if (gMain.newKeys & A_BUTTON) { @@ -317,7 +334,7 @@ void ItemStorageMenuProcessInput(u8 var) } } -void Task_ItemStorage_Deposit(u8 taskId) +static void Task_ItemStorage_Deposit(u8 taskId) { if (!gPaletteFade.active) { @@ -326,29 +343,29 @@ void Task_ItemStorage_Deposit(u8 taskId) } } -void ItemStorage_Deposit(u8 taskId) +static void ItemStorage_Deposit(u8 taskId) { - gTasks[taskId].func = Task_ItemStorage_Deposit; + TASK.FUNC = Task_ItemStorage_Deposit; fade_screen(1, 0); } -void sub_813A0C8(u8 taskId) +static void ItemStorage_HandleReturnToProcessInput(u8 taskId) { - if (sub_807D770() == 1) - gTasks[taskId].func = ItemStorageMenuProcessInput; + if (sub_807D770() == TRUE) + TASK.FUNC = ItemStorageMenuProcessInput; } -void sub_813A0F8(void) +void ItemStorage_ReturnToMenuAfterDeposit(void) { MenuDisplayMessageBox(); - InitItemStorageMenu(1); - CreateTask(sub_813A0C8, 0); + InitItemStorageMenu(ITEMPC_MENU_DEPOSIT); + CreateTask(ItemStorage_HandleReturnToProcessInput, 0); pal_fill_black(); } -void ItemStorage_Withdraw(u8 taskId) +static void ItemStorage_Withdraw(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; HandleDestroyMenuCursors(); MenuZeroFillWindowRect(0, 0, 11, 9); @@ -362,15 +379,15 @@ void ItemStorage_Withdraw(u8 taskId) ITEMS_ABOVE_TOP = 0; ItemStorage_SetItemAndMailCount(taskId); ItemStorage_GoBackToItemPCMenu(taskId, 0); - gTasks[taskId].func = ItemStorage_ProcessInput; + TASK.FUNC = ItemStorage_ProcessInput; } else DisplayItemMessageOnField(taskId, gOtherText_NoItems, PlayerPC_ItemStorage, 0); } -void ItemStorage_Toss(u8 taskId) +static void ItemStorage_Toss(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; HandleDestroyMenuCursors(); MenuZeroFillWindowRect(0, 0, 11, 9); @@ -384,22 +401,22 @@ void ItemStorage_Toss(u8 taskId) ITEMS_ABOVE_TOP = 0; ItemStorage_SetItemAndMailCount(taskId); ItemStorage_GoBackToItemPCMenu(taskId, 2); - gTasks[taskId].func = ItemStorage_ProcessInput; + TASK.FUNC = ItemStorage_ProcessInput; } else DisplayItemMessageOnField(taskId, gOtherText_NoItems, PlayerPC_ItemStorage, 0); } -void ItemStorage_Exit(u8 var) +static void ItemStorage_Exit(u8 var) { HandleDestroyMenuCursors(); MenuZeroFillWindowRect(0, 0, 11, 9); ReshowPlayerPC(var); } -void ItemStorage_SetItemAndMailCount(u8 taskId) +static void ItemStorage_SetItemAndMailCount(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; if (NUM_ITEMS > 7) // we have a full page, so set the num of page items appropriately. NUM_PAGE_ITEMS = 8; @@ -412,9 +429,9 @@ void ItemStorage_SetItemAndMailCount(u8 taskId) gMailboxInfo.pageItems = gMailboxInfo.count + 1; } -void ItemStorage_ProcessInput(u8 taskId) +static void ItemStorage_ProcessInput(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; s16 trueIndex; if (gMain.newAndRepeatedKeys & DPAD_UP) @@ -532,24 +549,24 @@ void ItemStorage_ProcessInput(u8 taskId) } } -void ItemStorage_GoBackToPlayerPCMenu(u8 taskId) +static void ItemStorage_GoBackToPlayerPCMenu(u8 taskId) { BuyMenuFreeMemory(); DestroyVerticalScrollIndicator(0); DestroyVerticalScrollIndicator(1); MenuZeroFillWindowRect(0, 0, 29, 19); MenuDisplayMessageBox(); - InitItemStorageMenu(gTasks[taskId].CURRENT_ITEM_STORAGE_MENU); - gTasks[taskId].func = ItemStorageMenuProcessInput; + InitItemStorageMenu(TASK.CURRENT_ITEM_STORAGE_MENU); + TASK.FUNC = ItemStorageMenuProcessInput; } -void ItemStorage_DoItemAction(u8 taskId) +static void ItemStorage_DoItemAction(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; u8 trueIndex = PAGE_INDEX + ITEMS_ABOVE_TOP; - sub_80F996C(0); - sub_80F996C(1); + PauseVerticalScrollIndicator(0); + PauseVerticalScrollIndicator(1); // PauseVerticalScrollIndicator if(CURRENT_ITEM_STORAGE_MENU == ITEMPC_MENU_WITHDRAW) { @@ -577,12 +594,12 @@ void ItemStorage_DoItemAction(u8 taskId) NUM_QUANTITY_ROLLER = 1; MenuDrawTextWindow(6, 8, 13, 11); sub_80A418C(NUM_QUANTITY_ROLLER, STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3); - gTasks[taskId].func = ItemStorage_HandleQuantityRolling; + TASK.FUNC = ItemStorage_HandleQuantityRolling; } -void ItemStorage_HandleQuantityRolling(u8 taskId) +static void ItemStorage_HandleQuantityRolling(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; u8 trueIndex = PAGE_INDEX + ITEMS_ABOVE_TOP; if(gMain.newAndRepeatedKeys & DPAD_UP) @@ -635,16 +652,16 @@ void ItemStorage_HandleQuantityRolling(u8 taskId) { PlaySE(SE_SELECT); MenuZeroFillWindowRect(6, 6, 0xD, 0xB); - sub_80F98DC(0); - sub_80F98DC(1); + StartVerticalScrollIndicators(0); + StartVerticalScrollIndicators(1); ItemStorage_PrintItemPcResponse(gSaveBlock1.pcItems[ITEMS_ABOVE_TOP + PAGE_INDEX].itemId); // why not use trueIndex? - gTasks[taskId].func = ItemStorage_ProcessInput; + TASK.FUNC = ItemStorage_ProcessInput; } } -void ItemStorage_DoItemWithdraw(u8 taskId) +static void ItemStorage_DoItemWithdraw(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; u8 trueIndex = PAGE_INDEX + ITEMS_ABOVE_TOP; if(AddBagItem(gSaveBlock1.pcItems[trueIndex].itemId, NUM_QUANTITY_ROLLER) == TRUE) // add item works. @@ -652,19 +669,19 @@ void ItemStorage_DoItemWithdraw(u8 taskId) CopyItemName(gSaveBlock1.pcItems[trueIndex].itemId, gStringVar1); ConvertIntToDecimalStringN(gStringVar2, NUM_QUANTITY_ROLLER, 0, 3); ItemStorage_PrintItemPcResponse(ITEMPC_WITHDREW_THING); - gTasks[taskId].func = ItemStorage_HandleRemoveItem; + TASK.FUNC = ItemStorage_HandleRemoveItem; } else { NUM_QUANTITY_ROLLER = 0; ItemStorage_PrintItemPcResponse(ITEMPC_NO_MORE_ROOM); - gTasks[taskId].func = ItemStorage_WaitPressHandleResumeProcessInput; + TASK.FUNC = ItemStorage_WaitPressHandleResumeProcessInput; } } -void ItemStorage_DoItemToss(u8 taskId) +static void ItemStorage_DoItemToss(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; u8 var = PAGE_INDEX + ITEMS_ABOVE_TOP; if(ItemId_GetImportance(gSaveBlock1.pcItems[var].itemId) == FALSE) @@ -673,38 +690,38 @@ void ItemStorage_DoItemToss(u8 taskId) ConvertIntToDecimalStringN(gStringVar2, NUM_QUANTITY_ROLLER, 0, 3); ItemStorage_PrintItemPcResponse(ITEMPC_OKAY_TO_THROW_AWAY); DisplayYesNoMenu(7, 6, 1); - sub_80F914C(taskId, &gUnknown_084062E0); + DoYesNoFuncWithChoice(taskId, (struct YesNoFuncTable *)&ResumeFromTossYesNoFuncList); } else { NUM_QUANTITY_ROLLER = 0; ItemStorage_PrintItemPcResponse(ITEMPC_TOO_IMPORTANT); - gTasks[taskId].func = ItemStorage_HandleRemoveItem; + TASK.FUNC = ItemStorage_HandleRemoveItem; } } -void ItemStorage_ResumeInputFromYesToss(u8 taskId) +static void ItemStorage_ResumeInputFromYesToss(u8 taskId) { MenuZeroFillWindowRect(0x6, 0x6, 0xD, 0xB); ItemStorage_PrintItemPcResponse(ITEMPC_THREW_AWAY_ITEM); - gTasks[taskId].func = ItemStorage_HandleRemoveItem; + TASK.FUNC = ItemStorage_HandleRemoveItem; } -void ItemStorage_ResumeInputFromNoToss(u8 taskId) +static void ItemStorage_ResumeInputFromNoToss(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; MenuZeroFillWindowRect(0x6, 0x6, 0xD, 0xB); InitMenu(0, 16, 2, NUM_PAGE_ITEMS, PAGE_INDEX, 0xD); - sub_80F98DC(0); - sub_80F98DC(1); + StartVerticalScrollIndicators(0); + StartVerticalScrollIndicators(1); ItemStorage_PrintItemPcResponse(gSaveBlock1.pcItems[ITEMS_ABOVE_TOP + PAGE_INDEX].itemId); - gTasks[taskId].func = ItemStorage_ProcessInput; + TASK.FUNC = ItemStorage_ProcessInput; } -void ItemStorage_HandleRemoveItem(u8 taskId) +static void ItemStorage_HandleRemoveItem(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; s16 oldNumItems; if(gMain.newKeys & A_BUTTON || gMain.newKeys == B_BUTTON) @@ -722,31 +739,31 @@ void ItemStorage_HandleRemoveItem(u8 taskId) } } -void ItemStorage_WaitPressHandleResumeProcessInput(u8 taskId) +static void ItemStorage_WaitPressHandleResumeProcessInput(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; if(gMain.newKeys & A_BUTTON || gMain.newKeys == B_BUTTON) { ItemStorage_PrintItemPcResponse(gSaveBlock1.pcItems[ITEMS_ABOVE_TOP + PAGE_INDEX].itemId); - sub_80F98DC(0); - sub_80F98DC(1); - gTasks[taskId].func = ItemStorage_ProcessInput; + StartVerticalScrollIndicators(0); + StartVerticalScrollIndicators(1); + TASK.FUNC = ItemStorage_ProcessInput; } } -void ItemStorage_HandleResumeProcessInput(u8 taskId) +static void ItemStorage_HandleResumeProcessInput(u8 taskId) { MenuZeroFillWindowRect(0x6, 0x6, 0xD, 0xB); - sub_80F98DC(0); - sub_80F98DC(1); + StartVerticalScrollIndicators(0); + StartVerticalScrollIndicators(1); ItemStorage_DrawBothListAndDescription(taskId); - gTasks[taskId].func = ItemStorage_ProcessInput; + TASK.FUNC = ItemStorage_ProcessInput; } -void ItemStorage_DoItemSwap(u8 taskId, bool8 switchModeDisabled) +static void ItemStorage_DoItemSwap(u8 taskId, bool8 switchModeDisabled) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; u8 trueIndex = ITEMS_ABOVE_TOP + PAGE_INDEX; SWITCH_MODE_ACTIVE = FALSE; @@ -784,44 +801,44 @@ void ItemStorage_DoItemSwap(u8 taskId, bool8 switchModeDisabled) } } -void ItemStorage_DrawItemQuantity(u16 arg1, enum StringConvertMode arg2, u8 arg3, u8 arg4, int isSwapSelected) +static void ItemStorage_DrawItemQuantity(u16 arg1, enum StringConvertMode arg2, u8 arg3, u8 arg4, int isSwapSelected) { sub_80A4164(gStringVar1, arg1, arg2, arg4); if(isSwapSelected != FALSE) - MenuPrint(gUnknown_0840632A, 0x1A, arg3); + MenuPrint(gSelectedItemQuantityFormatText, 0x1A, arg3); else - MenuPrint(gUnknown_08406327, 0x1A, arg3); + MenuPrint(gNonSelectedItemQuantityFormatText, 0x1A, arg3); } -void ItemStorage_DrawItemVoidQuantity(u8 var) +static void ItemStorage_DrawItemVoidQuantity(u8 var) { MenuPrint(gUnknown_08406330, 0x19, var); } -void ItemStorage_DrawItemName(struct ItemSlot *itemSlot, u8 var, int isSwapSelected) +static void ItemStorage_DrawItemName(struct ItemSlot *itemSlot, u8 var, int isSwapSelected) { CopyItemName(itemSlot->itemId, gStringVar1); if(isSwapSelected != FALSE) - MenuPrint(gUnknown_0840631E, 16, var); + MenuPrint(gSelectedItemFormattedText, 16, var); else - MenuPrint(gUnknown_08406318, 16, var); + MenuPrint(gNonSelectedItemFormattedText, 16, var); } -void ItemStorage_DrawNormalItemEntry(struct ItemSlot *itemSlot, u8 var, int var2) +static void ItemStorage_DrawNormalItemEntry(struct ItemSlot *itemSlot, u8 var, int var2) { ItemStorage_DrawItemName(itemSlot, var, var2); ItemStorage_DrawItemQuantity(itemSlot->quantity, STR_CONV_MODE_RIGHT_ALIGN, var, 3, var2); } -void ItemStorage_DrawKeyItemEntry(struct ItemSlot *itemSlot, u8 var, int var2) +static void ItemStorage_DrawKeyItemEntry(struct ItemSlot *itemSlot, u8 var, int var2) { ItemStorage_DrawItemName(itemSlot, var, var2); ItemStorage_DrawItemVoidQuantity(var); } -void ItemStorage_DrawTMHMEntry(struct ItemSlot *itemSlot, u8 var, int var2) +static void ItemStorage_DrawTMHMEntry(struct ItemSlot *itemSlot, u8 var, int var2) { ItemStorage_DrawItemName(itemSlot, var, var2); @@ -831,9 +848,9 @@ void ItemStorage_DrawTMHMEntry(struct ItemSlot *itemSlot, u8 var, int var2) ItemStorage_DrawItemVoidQuantity(var); // HMs do not have a quantity. } -void ItemStorage_DrawItemList(u8 taskId) +static void ItemStorage_DrawItemList(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; int tempArg; u16 i; u16 yCoord = 0; @@ -895,7 +912,7 @@ weirdCase: DestroyVerticalScrollIndicator(1); } -void ItemStorage_PrintItemPcResponse(u16 itemId) +static void ItemStorage_PrintItemPcResponse(u16 itemId) { u8 *string; @@ -936,9 +953,9 @@ void ItemStorage_PrintItemPcResponse(u16 itemId) sub_8072AB0(string, 8, 0x68, 0x68, 0x30, 1); } -void ItemStorage_DrawBothListAndDescription(u8 taskId) +static void ItemStorage_DrawBothListAndDescription(u8 taskId) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; s16 trueIndex = ITEMS_ABOVE_TOP + PAGE_INDEX; ItemStorage_DrawItemList(taskId); @@ -952,9 +969,9 @@ void ItemStorage_DrawBothListAndDescription(u8 taskId) } } -void ItemStorage_GoBackToItemPCMenu(u8 taskId, u8 var) +static void ItemStorage_GoBackToItemPCMenu(u8 taskId, u8 var) { - s16 *data = gTasks[taskId].data; + s16 *data = TASK.data; sub_80F944C(); LoadScrollIndicatorPalette(); @@ -968,7 +985,7 @@ void ItemStorage_GoBackToItemPCMenu(u8 taskId, u8 var) InitMenu(0, 0x10, 2, NUM_PAGE_ITEMS, PAGE_INDEX, 0xD); } -void ItemStorage_LoadPalette(void) +static void ItemStorage_LoadPalette(void) { u16 arr[3]; @@ -978,7 +995,7 @@ void ItemStorage_LoadPalette(void) LoadPalette(&arr[0], 0xD8, 2); } -u8 GetMailboxMailCount(void) +static u8 GetMailboxMailCount(void) { u8 i, j; @@ -989,7 +1006,7 @@ u8 GetMailboxMailCount(void) return i; } -void Mailbox_UpdateMailList(void) +static void Mailbox_UpdateMailList(void) { struct MailStruct mailBuffer; u8 i, j; @@ -1009,7 +1026,7 @@ void Mailbox_UpdateMailList(void) } // WWHHHHHYYYYYYYY SOMEBODY PLEASE FIX THIS -void Mailbox_DrawMailList(u8 taskId) // taskId is unused +static void Mailbox_DrawMailList(u8 taskId) // taskId is unused { u16 yCoord = 0; u16 i = gMailboxInfo.itemsAbove; @@ -1062,7 +1079,7 @@ weirdCase: DestroyVerticalScrollIndicator(1); } -void Mailbox_DrawMailboxMenu(u8 taskId) +static void Mailbox_DrawMailboxMenu(u8 taskId) { sub_80F944C(); LoadScrollIndicatorPalette(); @@ -1075,7 +1092,7 @@ void Mailbox_DrawMailboxMenu(u8 taskId) } // Mailbox_ProcessInput -void Mailbox_ProcessInput(u8 taskId) +static void Mailbox_ProcessInput(u8 taskId) { if(!gPaletteFade.active) { @@ -1083,12 +1100,12 @@ void Mailbox_ProcessInput(u8 taskId) { if(gMailboxInfo.cursorPos != 0) { - PlaySE(5); + PlaySE(SE_SELECT); gMailboxInfo.cursorPos = MoveMenuCursor(-1); } else if(gMailboxInfo.itemsAbove != 0) { - PlaySE(5); + PlaySE(SE_SELECT); gMailboxInfo.itemsAbove--; Mailbox_DrawMailList(taskId); } @@ -1097,12 +1114,12 @@ void Mailbox_ProcessInput(u8 taskId) { if(gMailboxInfo.cursorPos != gMailboxInfo.pageItems - 1) { - PlaySE(5); + PlaySE(SE_SELECT); gMailboxInfo.cursorPos = MoveMenuCursor(1); } else if(gMailboxInfo.itemsAbove + gMailboxInfo.cursorPos != gMailboxInfo.count) { - PlaySE(5); + PlaySE(SE_SELECT); gMailboxInfo.itemsAbove++; Mailbox_DrawMailList(taskId); } @@ -1110,135 +1127,135 @@ void Mailbox_ProcessInput(u8 taskId) else if(gMain.newKeys & A_BUTTON) { HandleDestroyMenuCursors(); - PlaySE(5); + PlaySE(SE_SELECT); if(gMailboxInfo.itemsAbove + gMailboxInfo.cursorPos == gMailboxInfo.count) { - sub_813B320(taskId); + Mailbox_TurnOff(taskId); } else { - sub_813B27C(); - gTasks[taskId].func = sub_813B294; + Mailbox_CloseScrollIndicators(); + TASK.FUNC = Mailbox_PrintWhatToDoWithPlayerMailText; } } else if(gMain.newKeys & B_BUTTON) { HandleDestroyMenuCursors(); - PlaySE(5); - sub_813B320(taskId); + PlaySE(SE_SELECT); + Mailbox_TurnOff(taskId); } } } -void sub_813B27C(void) +static void Mailbox_CloseScrollIndicators(void) { BuyMenuFreeMemory(); DestroyVerticalScrollIndicator(0); DestroyVerticalScrollIndicator(1); } -void sub_813B294(u8 taskId) +static void Mailbox_PrintWhatToDoWithPlayerMailText(u8 taskId) { MenuZeroFillWindowRect(0, 0, 0x1D, 0x13); StringCopy(gStringVar1, gSaveBlock1.mail[gMailboxInfo.itemsAbove + 6 + gMailboxInfo.cursorPos].playerName); SanitizeNameString(gStringVar1); StringExpandPlaceholders(gStringVar4, gOtherText_WhatWillYouDoMail); - DisplayItemMessageOnField(taskId, gStringVar4, sub_813B348, 0); + DisplayItemMessageOnField(taskId, gStringVar4, Mailbox_PrintMailOptions, 0); } -void sub_813B300(u8 taskId) +static void Mailbox_ReturnToPlayerPC(u8 taskId) { MenuZeroFillWindowRect(0, 0, 0x1D, 0x13); ReshowPlayerPC(taskId); } -void sub_813B320(u8 taskId) +static void Mailbox_TurnOff(u8 taskId) { - sub_813B27C(); - gTasks[taskId].func = sub_813B300; + Mailbox_CloseScrollIndicators(); + TASK.FUNC = Mailbox_ReturnToPlayerPC; } -void sub_813B348(u8 taskId) +static void Mailbox_PrintMailOptions(u8 taskId) // Mailbox_PrintMailOptions { MenuDrawTextWindow(0, 0, 0xC, 0x9); - PrintMenuItems(1, 1, 4, gUnknown_084062F8); + PrintMenuItems(1, 1, 4, (struct MenuAction *)gMailboxMailOptions); InitMenu(0, 1, 1, 4, 0, 0xB); - gTasks[taskId].func = sub_813B3A0; + TASK.FUNC = Mailbox_MailOptionsProcessInput; } -void sub_813B3A0(u8 taskId) +static void Mailbox_MailOptionsProcessInput(u8 taskId) { if(gMain.newAndRepeatedKeys & DPAD_UP) { - PlaySE(5); + PlaySE(SE_SELECT); MoveMenuCursor(-1); } else if(gMain.newAndRepeatedKeys & DPAD_DOWN) { - PlaySE(5); + PlaySE(SE_SELECT); MoveMenuCursor(1); } else if(gMain.newKeys & A_BUTTON) { - PlaySE(5); - gUnknown_084062F8[GetMenuCursorPos()].func(taskId); + PlaySE(SE_SELECT); + gMailboxMailOptions[GetMenuCursorPos()].func(taskId); } else if(gMain.newKeys & B_BUTTON) { - PlaySE(5); + PlaySE(SE_SELECT); Mailbox_Cancel(taskId); } } -void Mailbox_Read(u8 taskId) +static void Mailbox_DoMailRead(u8 taskId) { fade_screen(1, 0); - gTasks[taskId].func = sub_813B454; + TASK.FUNC = Mailbox_FadeAndReadMail; } -void sub_813B454(u8 taskId) +static void Mailbox_FadeAndReadMail(u8 taskId) { if(!gPaletteFade.active) { - HandleReadMail(&gSaveBlock1.mail[gMailboxInfo.itemsAbove + 6 + gMailboxInfo.cursorPos], sub_813B4F0, 1); + HandleReadMail(&gSaveBlock1.mail[gMailboxInfo.itemsAbove + 6 + gMailboxInfo.cursorPos], Mailbox_ReturnToFieldFromReadMail, 1); DestroyTask(taskId); } } -void sub_813B4A0(u8 taskId) +static void Mailbox_HandleReturnToProcessInput(u8 taskId) // Mailbox_HandleReturnToProcessInput { - if(sub_807D770() == TRUE) - gTasks[taskId].func = Mailbox_ProcessInput; + if(sub_807D770() == TRUE) // is black fade finished? why not gPaletteFade.active? + TASK.FUNC = Mailbox_ProcessInput; } -void sub_813B4D0(void) +static void Mailbox_DoRedrawMailboxMenuAfterReturn(void) { - Mailbox_DrawMailboxMenu(CreateTask(sub_813B4A0, 0)); + Mailbox_DrawMailboxMenu(CreateTask(Mailbox_HandleReturnToProcessInput, 0)); pal_fill_black(); } -void sub_813B4F0(void) +static void Mailbox_ReturnToFieldFromReadMail(void) { - gUnknown_0300485C = sub_813B4D0; + gFieldCallback = Mailbox_DoRedrawMailboxMenuAfterReturn; SetMainCallback2(c2_exit_to_overworld_2_switch); } -void Mailbox_MoveToBag(u8 taskId) +static void Mailbox_MoveToBag(u8 taskId) { HandleDestroyMenuCursors(); StringCopy(gStringVar1, gOtherText_MoveToBag); - MenuPrint(gUnknown_0840633A, 1, 3); - DisplayItemMessageOnField(taskId, gOtherText_MessageWillBeLost, sub_813B554, 0); + MenuPrint(gHighlightedMoveToBagFormatText, 1, 3); // gHighlightedMoveToBagFormatText + DisplayItemMessageOnField(taskId, gOtherText_MessageWillBeLost, Mailbox_DrawYesNoBeforeMove, 0); } -void sub_813B554(u8 taskId) +static void Mailbox_DrawYesNoBeforeMove(u8 taskId) { DisplayYesNoMenu(0x14, 0x8, 0x1); - sub_80F914C(taskId, &gUnknown_084062E8); + DoYesNoFuncWithChoice(taskId, (struct YesNoFuncTable *)&ResumeFromWithdrawYesNoFuncList); } -void sub_813B578(u8 taskId) +static void Mailbox_DoMailMoveToBag(u8 taskId) { struct MailStruct *mail = &gSaveBlock1.mail[gMailboxInfo.itemsAbove + 6 + gMailboxInfo.cursorPos]; @@ -1246,11 +1263,11 @@ void sub_813B578(u8 taskId) if(AddBagItem(mail->itemId, 1) == FALSE) { - DisplayItemMessageOnField(taskId, gOtherText_BagIsFull, sub_813B758, 0); + DisplayItemMessageOnField(taskId, gOtherText_BagIsFull, Mailbox_DrawMailMenuAndDoProcessInput, 0); } else { - DisplayItemMessageOnField(taskId, gOtherText_MailWasReturned, sub_813B758, 0); + DisplayItemMessageOnField(taskId, gOtherText_MailWasReturned, Mailbox_DrawMailMenuAndDoProcessInput, 0); ClearMailStruct(mail); Mailbox_UpdateMailList(); @@ -1263,24 +1280,24 @@ void sub_813B578(u8 taskId) } } -void sub_813B610(u8 taskId) +static void Mailbox_ReturnToInputAfterNo(u8 taskId) // Mailbox_ReturnToInputAfterNo { MenuZeroFillWindowRect(0x14, 0x8, 0x1A, 0xD); - sub_813B758(taskId); + Mailbox_DrawMailMenuAndDoProcessInput(taskId); } -void Mailbox_Give(u8 taskId) +static void Mailbox_Give(u8 taskId) { if(CalculatePlayerPartyCount() == 0) - sub_813B718(taskId); + Mailbox_NoPokemonForMail(taskId); // cannot be reached normally else { fade_screen(1, 0); - gTasks[taskId].func = sub_813B66C; + TASK.FUNC = Mailbox_DoGiveMailPokeMenu; } } -void sub_813B66C(u8 taskId) +static void Mailbox_DoGiveMailPokeMenu(u8 taskId) // Mailbox_DoGiveMailPokeMenu { if(!gPaletteFade.active) { @@ -1290,9 +1307,9 @@ void sub_813B66C(u8 taskId) } } -void sub_813B6A4(void) +static void Mailbox_UpdateMailListAfterDeposit(void) { - u8 taskId = CreateTask(sub_813B4A0, 0); + u8 taskId = CreateTask(Mailbox_HandleReturnToProcessInput, 0); u8 oldCount = gMailboxInfo.count; gMailboxInfo.count = GetMailboxMailCount(); @@ -1306,26 +1323,27 @@ void sub_813B6A4(void) pal_fill_black(); } -void sub_813B6F8(void) +void Mailbox_ReturnToMailListAfterDeposit(void) { - gUnknown_0300485C = sub_813B6A4; + gFieldCallback = Mailbox_UpdateMailListAfterDeposit; SetMainCallback2(c2_exit_to_overworld_2_switch); } -void sub_813B718(u8 taskId) +// you always have at least 1 POKeMON and you cannot receive mail before you leave Littleroot: therefore this function cannot be reached normally. +static void Mailbox_NoPokemonForMail(u8 taskId) { - DisplayItemMessageOnField(taskId, gOtherText_NoPokemon, sub_813B758, 0); + DisplayItemMessageOnField(taskId, gOtherText_NoPokemon, Mailbox_DrawMailMenuAndDoProcessInput, 0); } -void Mailbox_Cancel(u8 taskId) +static void Mailbox_Cancel(u8 taskId) { HandleDestroyMenuCursors(); MenuZeroFillWindowRect(0, 0, 0xC, 0x9); - sub_813B758(taskId); + Mailbox_DrawMailMenuAndDoProcessInput(taskId); } -void sub_813B758(u8 taskId) +static void Mailbox_DrawMailMenuAndDoProcessInput(u8 taskId) { Mailbox_DrawMailboxMenu(taskId); - gTasks[taskId].func = Mailbox_ProcessInput; + TASK.FUNC = Mailbox_ProcessInput; } diff --git a/src/rom4.c b/src/rom4.c index 79ac6d769..98060c3b1 100644 --- a/src/rom4.c +++ b/src/rom4.c @@ -67,7 +67,7 @@ extern u16 (*gUnknown_03000584)(u32); extern u8 gUnknown_03000588; extern u16 word_3004858; -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); extern u8 gUnknown_03004860; extern u8 gFieldLinkPlayerCount; @@ -1082,11 +1082,11 @@ void sub_80543DC(u16 (*a1)(u32)) void sub_80543E8(void) { - if (gUnknown_0300485C) - gUnknown_0300485C(); + if (gFieldCallback) + gFieldCallback(); else mapldr_default(); - gUnknown_0300485C = NULL; + gFieldCallback = NULL; } void CB2_NewGame(void) @@ -1099,7 +1099,7 @@ void CB2_NewGame(void) PlayTimeCounter_Start(); ScriptContext1_Init(); ScriptContext2_Disable(); - gUnknown_0300485C = ExecuteTruckSequence; + gFieldCallback = ExecuteTruckSequence; do_load_map_stuff_loop(&gMain.state); SetFieldVBlankCallback(); set_callback1(c1_overworld); @@ -1119,7 +1119,7 @@ void CB2_WhiteOut(void) player_avatar_init_params_reset(); ScriptContext1_Init(); ScriptContext2_Disable(); - gUnknown_0300485C = sub_8080B60; + gFieldCallback = sub_8080B60; val = 0; do_load_map_stuff_loop(&val); SetFieldVBlankCallback(); @@ -1166,7 +1166,7 @@ void sub_8054534(void) void sub_8054588(void) { FieldClearVBlankHBlankCallbacks(); - gUnknown_0300485C = sub_8080AC4; + gFieldCallback = sub_8080AC4; SetMainCallback2(c2_80567AC); } @@ -1216,7 +1216,7 @@ void sub_805465C(void) sub_8054F70(); set_callback1(sub_8055354); sub_80543DC(sub_8055390); - gUnknown_0300485C = sub_8080A3C; + gFieldCallback = sub_8080A3C; ScriptContext1_Init(); ScriptContext2_Disable(); c2_exit_to_overworld_2_switch(); @@ -1225,28 +1225,28 @@ void sub_805465C(void) void sub_805469C(void) { FieldClearVBlankHBlankCallbacks(); - gUnknown_0300485C = atk17_seteffectuser; + gFieldCallback = atk17_seteffectuser; c2_exit_to_overworld_2_switch(); } void sub_80546B8(void) { FieldClearVBlankHBlankCallbacks(); - gUnknown_0300485C = sub_80809B0; + gFieldCallback = sub_80809B0; c2_exit_to_overworld_2_switch(); } void c2_exit_to_overworld_1_continue_scripts_restart_music(void) { FieldClearVBlankHBlankCallbacks(); - gUnknown_0300485C = sub_8080990; + gFieldCallback = sub_8080990; c2_exit_to_overworld_2_switch(); } void sub_80546F0(void) { FieldClearVBlankHBlankCallbacks(); - gUnknown_0300485C = sub_8080B60; + gFieldCallback = sub_8080B60; c2_exit_to_overworld_2_switch(); } @@ -1280,7 +1280,7 @@ void CB2_ContinueSavedGame(void) } else { - gUnknown_0300485C = sub_805470C; + gFieldCallback = sub_805470C; set_callback1(c1_overworld); c2_exit_to_overworld_2_switch(); } diff --git a/src/rom6.c b/src/rom6.c index a2b52c9aa..a8233eb5b 100644 --- a/src/rom6.c +++ b/src/rom6.c @@ -14,7 +14,7 @@ extern u16 gScriptLastTalked; extern u32 gUnknown_0202FF84[]; extern struct MapPosition gUnknown_0203923C; -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); extern u8 gLastFieldPokeMenuOpened; extern void (*gUnknown_03005CE4)(void); extern u8 UseRockSmashScript[]; @@ -122,7 +122,7 @@ bool8 SetUpFieldMove_RockSmash(void) { if (npc_before_player_of_type(0x56) == TRUE) { - gUnknown_0300485C = sub_808AB90; + gFieldCallback = sub_808AB90; gUnknown_03005CE4 = sub_810B53C; return TRUE; } @@ -159,7 +159,7 @@ int SetUpFieldMove_Dig(void) { if (sub_80CA1C8() == TRUE) { - gUnknown_0300485C = sub_808AB90; + gFieldCallback = sub_808AB90; gUnknown_03005CE4 = sub_810B5D8; return TRUE; } diff --git a/src/safari_zone.c b/src/safari_zone.c index 8c2b63469..986412826 100644 --- a/src/safari_zone.c +++ b/src/safari_zone.c @@ -29,7 +29,7 @@ EWRAM_DATA u8 gNumSafariBalls = 0; EWRAM_DATA static u16 gSafariZoneStepCounter = 0; EWRAM_DATA static struct PokeblockFeeder gPokeblockFeeders[NUM_POKEBLOCK_FEEDERS] = {0}; -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); extern u8 gUnknown_081C340A; extern u8 gUnknown_081C342D; @@ -103,7 +103,7 @@ void sub_80C824C(void) { ScriptContext2_RunNewScript(&gUnknown_081C340A); warp_in(); - gUnknown_0300485C = sub_8080E44; + gFieldCallback = sub_8080E44; SetMainCallback2(CB2_LoadMap); } else if (gUnknown_02024D26 == 7) diff --git a/src/script_pokemon_util_80F99CC.c b/src/script_pokemon_util_80F99CC.c index 9e833ec34..ee140187f 100644 --- a/src/script_pokemon_util_80F99CC.c +++ b/src/script_pokemon_util_80F99CC.c @@ -18,7 +18,7 @@ extern u16 gSpecialVar_0x8005; extern u8 gUnknown_02038694; extern u16 gScriptResult; -extern void (*gUnknown_0300485C)(void); +extern void (*gFieldCallback)(void); extern void OpenPartyMenu(u8, u8); extern void TryCreatePartyMenuMonIcon(u8, u8, struct Pokemon *); @@ -284,7 +284,7 @@ void sub_80F9EEC(void) { sub_809D9F0(&gPlayerParty[0], gSpecialVar_0x8004, gPlayerPartyCount - 1, c2_exit_to_overworld_2_switch, 0); unk_2018000.unk8 = 3; - gUnknown_0300485C = sub_8080990; + gFieldCallback = sub_8080990; } void sub_80F9F3C(void) // count pokemon moves diff --git a/src/secret_base.c b/src/secret_base.c index aae3853f9..adcd47d66 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -250,7 +250,7 @@ void sub_80BBA48(u8 taskid) gSaveBlock1.secretBases[curbaseid].sbr_field_10 ++; sub_80BBA14(); warp_in(); - gUnknown_0300485C = sub_8080990; + gFieldCallback = sub_8080990; SetMainCallback2(CB2_LoadMap); DestroyTask(taskid); break; @@ -299,7 +299,7 @@ void sub_80BBBEC(u8 taskid) idx = 4 * (gUnknown_020387DC / 10); warp1_set(gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum, -1, gUnknown_083D1374[idx + 2], gUnknown_083D1374[idx + 3]); warp_in(); - gUnknown_0300485C = sub_80BBB90; + gFieldCallback = sub_80BBB90; SetMainCallback2(CB2_LoadMap); DestroyTask(taskid); } @@ -793,7 +793,7 @@ void sub_80BC074(u8 taskid) case 2: copy_saved_warp2_bank_and_enter_x_to_warp1(0x7E); warp_in(); - gUnknown_0300485C = mapldr_default; + gFieldCallback = mapldr_default; SetMainCallback2(CB2_LoadMap); ScriptContext2_Disable(); DestroyTask(taskid); |