diff --git a/data/uking_functions.csv b/data/uking_functions.csv index 527d517d..95c44480 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -56406,7 +56406,7 @@ Address,Quality,Size,Name 0x00000071009793c8,O,000588,_ZNK5uking2ui16PauseMenuDataMgr12getItemValueERKN4sead14SafeStringBaseIcEE 0x0000007100979614,O,000496,_ZN5uking2ui16PauseMenuDataMgr11getFromShopERKN4sead14SafeStringBaseIcEEiPKNS_3act18WeaponModifierInfoE 0x0000007100979804,U,000316,PauseMenuDataMgr::shopStuff -0x0000007100979940,U,000120,PauseMenuDataMgr::x_28 +0x0000007100979940,O,000120,_ZN5uking2ui16PauseMenuDataMgr24useItemFromRecipeAndSaveEPviPNS0_9PouchItemE 0x00000071009799b8,U,002688,PauseMenuDataMgr::pouchUseFromRecipe 0x000000710097a438,O,000196,_ZNK5uking2ui16PauseMenuDataMgr13countArmorDyeEv 0x000000710097a4fc,O,000204,_ZNK5uking2ui16PauseMenuDataMgr21countAlreadyDyedArmorEv diff --git a/src/Game/UI/uiPauseMenuDataMgr.cpp b/src/Game/UI/uiPauseMenuDataMgr.cpp index 3d1f6569..6570cff8 100644 --- a/src/Game/UI/uiPauseMenuDataMgr.cpp +++ b/src/Game/UI/uiPauseMenuDataMgr.cpp @@ -2773,4 +2773,13 @@ void PauseMenuDataMgr::unequip(PouchItem* item) { item->mEquipped = false; saveToGameData(mItemLists.list1); } + +// FIXME: types +bool PauseMenuDataMgr::useItemFromRecipeAndSave(void* unk, int multiplier, PouchItem* item) { + auto lock = sead::makeScopedLock(mCritSection); + useItemFromRecipe(&mItemLists, unk, multiplier, item); + saveToGameData(mItemLists.list1); + return true; +} + } // namespace uking::ui diff --git a/src/Game/UI/uiPauseMenuDataMgr.h b/src/Game/UI/uiPauseMenuDataMgr.h index a141fce9..e33d2435 100644 --- a/src/Game/UI/uiPauseMenuDataMgr.h +++ b/src/Game/UI/uiPauseMenuDataMgr.h @@ -1,6 +1,7 @@ #pragma once #include +#include #include #include #include @@ -366,6 +367,9 @@ public: void equipWeapon(PouchItem* weapon); void unequip(PouchItem* item); + // FIXME: types + bool useItemFromRecipeAndSave(void* unk, int multiplier, PouchItem* item); + private: // TODO: rename struct GrabbedItemInfo { @@ -400,6 +404,9 @@ private: sead::OffsetList& getItems() { return mItemLists.list1; } const sead::OffsetList& getItems() const { return mItemLists.list1; } + // FIXME: types + bool useItemFromRecipe(Lists* lists, void* unk, int multiplier, PouchItem* item); + PouchItem* getItemHead(PouchCategory category) const { auto* p_head = mListHeads[u32(category)]; if (!p_head)