#pragma once #include "RE/B/BSTArray.h" #include "RE/B/BSTTuple.h" namespace RE { class BGSInventoryItem; namespace UIUtils { using ComparisonItems = BSScrapArray>; inline void GetComparisonItems(const TESBoundObject* a_object, ComparisonItems& a_comparisonItems) { using func_t = decltype(&GetComparisonItems); static REL::Relocation func{ ID::UIUtils::GetComparisonItems }; return func(a_object, a_comparisonItems); } inline void PlayPipboySound(const char* a_soundName) { using func_t = decltype(&PlayPipboySound); static REL::Relocation func{ ID::UIUtils::PlayPipboySound }; return func(a_soundName); } inline void PlayMenuSound(const char* a_soundName) { using func_t = decltype(&PlayMenuSound); static REL::Relocation func{ ID::UIUtils::PlayMenuSound }; return func(a_soundName); } inline void UpdateGamepadDependentButtonCodes(bool a_usingGamepad) { using func_t = decltype(&UpdateGamepadDependentButtonCodes); static REL::Relocation func{ ID::UIUtils::UpdateGamepadDependentButtonCodes }; return func(a_usingGamepad); } inline void ShowCraftingMenu(TESObjectREFR* a_furniture) { using func_t = decltype(&ShowCraftingMenu); static REL::Relocation func{ ID::UIUtils::ShowCraftingMenu }; return func(a_furniture); } inline bool HasRequiredInventoryForCraftingMenu(TESObjectREFR* a_furniture) { using func_t = decltype(&HasRequiredInventoryForCraftingMenu); static REL::Relocation func{ ID::UIUtils::HasRequiredInventoryForCraftingMenu }; return func(a_furniture); } } }