From bc9fe72c6e85b1930f137ed49c5d2b0c4e4b10de Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 30 Aug 2018 15:01:07 +0200 Subject: Do some pyramid bag --- src/item_use.c | 40 ++++++++++------------------------------ 1 file changed, 10 insertions(+), 30 deletions(-) (limited to 'src/item_use.c') diff --git a/src/item_use.c b/src/item_use.c index 9031338dd..23c829391 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -29,44 +29,26 @@ #include "string_util.h" #include "task.h" #include "text.h" +#include "strings.h" +#include "pokeblock.h" +#include "menu.h" +#include "item_menu.h" -extern void(**gUnknown_0203CE54)(void); extern void(**gUnknown_0203CF2C)(void); extern void(*gUnknown_0203A0F4)(u8 taskId); extern void(*gUnknown_085920D8[])(void); extern void (*gUnknown_03006328)(u8, u16, TaskFunc); extern void unknown_ItemMenu_Confirm(u8 taskId); extern void sub_81C5B14(u8 taskId); -extern u8 gText_DadsAdvice[]; -extern u8 gText_CantDismountBike[]; -extern void sub_8197434(u8 a, u8 b); extern void ScriptUnfreezeEventObjects(void); extern void ItemUseOutOfBattle_TMHM(u8 a); extern void ItemUseOutOfBattle_EvolutionStone(u8 b); -extern void bag_menu_mail_related(void); -extern void OpenPokeblockCase(u8 a, void(*b)(void)); -extern void overworld_free_bg_tilemaps(void); -extern bool32 Overworld_IsBikingAllowed(void); extern bool8 IsPlayerFacingSurfableFishableWater(void); extern bool8 sub_81221AC(void); -extern u8 gText_ItemFinderNothing[]; -extern u8 gText_ItemFinderNearby[]; -extern u8 gText_ItemFinderOnTop[]; -extern u8 gText_CoinCase[]; -extern u8 gText_PowderQty[]; extern u8 gUnknown_085920E4[]; extern u8 Route102_EventScript_274482[]; extern u8 Route102_EventScript_2744C0[]; extern u8 BattleFrontier_OutsideEast_EventScript_242CFC[]; -extern u8 gText_BootedUpHM[]; -extern u8 gText_BootedUpTM[]; -extern u8 gText_TMHMContainedVar1[]; -extern u8 gText_PlayerUsedVar2[]; -extern u8 gText_RepelEffectsLingered[]; -extern u8 gText_UsedVar2WildLured[]; -extern u8 gText_UsedVar2WildRepelled[]; -extern u8 gText_BoxFull[]; -extern u8 gText_WontHaveEffect[]; extern int sub_80247BC(void); extern struct MapHeader* mapconnection_get_mapheader(struct MapConnection *connection); extern void SetUpItemUseCallback(u8 taskId); @@ -86,7 +68,6 @@ extern void sub_81C59BC(void); extern void sub_81AB9A8(u8); extern void sub_81ABA88(u8); extern void sub_80B7CC8(void); -extern void Overworld_ResetStateAfterDigEscRope(void); extern u8* sub_806CF78(u16); extern void sub_81B89F0(void); extern u8 GetItemEffectType(u16); @@ -115,8 +96,7 @@ void sub_80FE124(u8 taskId); void sub_80FE164(u8 taskId); void DisplayItemMessage(u8 taskId, u8 a, const u8* str, void(*callback)(u8 taskId)); -void DisplayItemMessageInBattlePyramid(u8 taskId, u8* str, void(*callback)(u8 taskId)); -void DisplayItemMessageOnField(u8 taskId, u8* str, void(*callback)(u8 taskId)); +void DisplayItemMessageOnField(u8 taskId, const u8* str, void(*callback)(u8 taskId)); void sub_81C6714(u8 taskId); void CleanUpAfterFailingToUseRegisteredKeyItemOnField(u8 taskId); void StartFishing(u8 a); @@ -137,7 +117,7 @@ void SetUpItemUseCallback(u8 taskId) type = ItemId_GetType(gSpecialVar_ItemId) - 1; if (!InBattlePyramid()) { - *gUnknown_0203CE54 = gUnknown_085920D8[type]; + gUnknown_0203CE54->unk0 = gUnknown_085920D8[type]; unknown_ItemMenu_Confirm(taskId); } else @@ -221,7 +201,7 @@ void sub_80FD254() void ItemUseOutOfBattle_Mail(u8 taskId) { - *gUnknown_0203CE54 = sub_80FD254; + gUnknown_0203CE54->unk0 = sub_80FD254; unknown_ItemMenu_Confirm(taskId); } @@ -617,7 +597,7 @@ void ItemUseOutOfBattle_PokeblockCase(u8 taskId) } else if (gTasks[taskId].data[3] != TRUE) { - *gUnknown_0203CE54 = sub_80FDBEC; + gUnknown_0203CE54->unk0 = sub_80FDBEC; unknown_ItemMenu_Confirm(taskId); } else @@ -679,7 +659,7 @@ void sub_80FDD10(u8 taskId) { gUnknown_0203A0F4 = sub_80FDD74; gFieldCallback = MapPostLoadHook_UseItem; - *gUnknown_0203CE54 = CB2_ReturnToField; + gUnknown_0203CE54->unk0 = CB2_ReturnToField; unknown_ItemMenu_Confirm(taskId); } else @@ -1002,7 +982,7 @@ void sub_80FE54C(u8 taskId) { if (!InBattlePyramid()) { - *gUnknown_0203CE54 = sub_81B89F0; + gUnknown_0203CE54->unk0 = sub_81B89F0; unknown_ItemMenu_Confirm(taskId); } else -- cgit v1.2.3 From 917b32ffbe15243207de849683f8933f56bdeb07 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 30 Aug 2018 20:10:57 +0200 Subject: Finish decompiling pyramid bag. --- src/item_use.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/item_use.c') diff --git a/src/item_use.c b/src/item_use.c index 23c829391..bf7c2a386 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -33,8 +33,8 @@ #include "pokeblock.h" #include "menu.h" #include "item_menu.h" +#include "battle_pyramid_bag.h" -extern void(**gUnknown_0203CF2C)(void); extern void(*gUnknown_0203A0F4)(u8 taskId); extern void(*gUnknown_085920D8[])(void); extern void (*gUnknown_03006328)(u8, u16, TaskFunc); @@ -122,7 +122,7 @@ void SetUpItemUseCallback(u8 taskId) } else { - *gUnknown_0203CF2C = gUnknown_085920D8[type]; + gPyramidBagResources->callback2 = gUnknown_085920D8[type]; sub_81C5B14(taskId); } } @@ -987,7 +987,7 @@ void sub_80FE54C(u8 taskId) } else { - *gUnknown_0203CF2C = sub_81B89F0; + gPyramidBagResources->callback2 = sub_81B89F0; sub_81C5B14(taskId); } } -- cgit v1.2.3 From 4c54212b1f559a110fc7f6fffebe3a54748f3fec Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Tue, 4 Sep 2018 23:31:37 +0100 Subject: Bring labels for overworld.c over from pokeruby --- src/item_use.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/item_use.c') diff --git a/src/item_use.c b/src/item_use.c index bf7c2a386..ea8206502 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -878,7 +878,7 @@ void ItemUseOutOfBattle_BlackWhiteFlute(u8 taskId) void task08_080A1C44(u8 taskId) { - player_avatar_init_params_reset(); + ResetInitialPlayerAvatarState(); sub_80B7CC8(); DestroyTask(taskId); } -- cgit v1.2.3 From 991151f4613e534f73141035b054ab7914d04a14 Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Tue, 11 Sep 2018 03:04:19 +0100 Subject: Move item_use data to C --- src/item_use.c | 59 ++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 35 insertions(+), 24 deletions(-) (limited to 'src/item_use.c') diff --git a/src/item_use.c b/src/item_use.c index ea8206502..67bdabd87 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -1,15 +1,10 @@ #include "global.h" #include "item_use.h" #include "battle.h" -#include "main.h" +#include "battle_pyramid_bag.h" #include "berry.h" #include "bike.h" #include "coins.h" -#include "constants/bg_event_constants.h" -#include "constants/flags.h" -#include "constants/items.h" -#include "constants/songs.h" -#include "constants/vars.h" #include "data2.h" #include "event_data.h" #include "fieldmap.h" @@ -18,25 +13,31 @@ #include "field_screen.h" #include "field_weather.h" #include "item.h" +#include "item_menu.h" #include "mail.h" +#include "main.h" +#include "menu.h" +#include "menu_helpers.h" #include "metatile_behavior.h" #include "overworld.h" #include "palette.h" +#include "party_menu.h" +#include "pokeblock.h" #include "pokemon.h" #include "rom_818CFC8.h" #include "script.h" #include "sound.h" +#include "strings.h" #include "string_util.h" #include "task.h" #include "text.h" -#include "strings.h" -#include "pokeblock.h" -#include "menu.h" -#include "item_menu.h" -#include "battle_pyramid_bag.h" +#include "constants/bg_event_constants.h" +#include "constants/flags.h" +#include "constants/items.h" +#include "constants/songs.h" +#include "constants/vars.h" extern void(*gUnknown_0203A0F4)(u8 taskId); -extern void(*gUnknown_085920D8[])(void); extern void (*gUnknown_03006328)(u8, u16, TaskFunc); extern void unknown_ItemMenu_Confirm(u8 taskId); extern void sub_81C5B14(u8 taskId); @@ -45,7 +46,6 @@ extern void ItemUseOutOfBattle_TMHM(u8 a); extern void ItemUseOutOfBattle_EvolutionStone(u8 b); extern bool8 IsPlayerFacingSurfableFishableWater(void); extern bool8 sub_81221AC(void); -extern u8 gUnknown_085920E4[]; extern u8 Route102_EventScript_274482[]; extern u8 Route102_EventScript_2744C0[]; extern u8 BattleFrontier_OutsideEast_EventScript_242CFC[]; @@ -53,16 +53,7 @@ extern int sub_80247BC(void); extern struct MapHeader* mapconnection_get_mapheader(struct MapConnection *connection); extern void SetUpItemUseCallback(u8 taskId); extern void ItemUseCB_Medicine(u8, u16, TaskFunc); -extern void sub_81B67C8(u8, u16, TaskFunc); -extern void sub_81B79E8(u8, u16, TaskFunc); -extern void dp05_ether(u8, u16, TaskFunc); -extern void dp05_pp_up(u8, u16, TaskFunc); -extern void dp05_rare_candy(u8, u16, TaskFunc); -extern void sub_81B6DC4(u8, u16, TaskFunc); -extern void sub_81B7C74(u8, u16, TaskFunc); -extern u16 ItemIdToBattleMoveId(u16); -extern void bag_menu_yes_no(u8, u8, void(**)(u8 taskId)); -extern void (*gUnknown_085920E8[])(u8 taskId); +extern void bag_menu_yes_no(u8, u8, const struct YesNoFuncTable*); extern void sub_81C5924(void); extern void sub_81C59BC(void); extern void sub_81AB9A8(u8); @@ -92,6 +83,7 @@ void sub_80FDE7C(u8 taskId); void sub_80FDF90(u8 taskId); void task08_0809AD8C(u8 taskId); void sub_80FE024(u8 taskId); +void sub_80FE03C(u8 taskId); void sub_80FE124(u8 taskId); void sub_80FE164(u8 taskId); @@ -108,6 +100,25 @@ void sub_80FDBEC(void); bool8 sub_80FDE2C(void); void ItemUseOutOfBattle_CannotUse(u8 taskId); +// .rodata + +static const MainCallback gUnknown_085920D8[] = +{ + sub_81B617C, + CB2_ReturnToField, + NULL, +}; + +static const u8 gUnknown_085920E4[] = {DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_WEST}; + +static const struct YesNoFuncTable gUnknown_085920E8 = +{ + .yesFunc = sub_80FE03C, + .noFunc = bag_menu_inits_lists_menu, +}; + +// .text + void SetUpItemUseCallback(u8 taskId) { u8 type; @@ -784,7 +795,7 @@ void task08_0809AD8C(u8 taskId) void sub_80FE024(u8 taskId) { - bag_menu_yes_no(taskId, 6, gUnknown_085920E8); + bag_menu_yes_no(taskId, 6, &gUnknown_085920E8); } void sub_80FE03C(u8 taskId) -- cgit v1.2.3