CommonLibSSE NG
EnchantConstructMenu.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSString.h"
4 #include "RE/B/BSTArray.h"
5 #include "RE/B/BSTSmartPointer.h"
6 #include "RE/C/CraftingSubMenu.h"
7 #include "RE/E/Effect.h"
8 #include "RE/F/FormTypes.h"
9 #include "RE/G/GFxValue.h"
12 
13 namespace RE
14 {
15  class EnchantmentItem;
16  class ExtraDataList;
17  class InventoryEntryData;
18 
19  namespace CraftingSubMenus
20  {
22  {
23  public:
24  inline static constexpr auto RTTI = RTTI_CraftingSubMenus__EnchantConstructMenu;
25  inline static constexpr auto VTABLE = VTABLE_CraftingSubMenus__EnchantConstructMenu;
26 
27  enum class FilterFlag
28  {
29  EnchantWeapon = 0x1,
30  DisenchantWeapon = 0x2,
31  EnchantArmor = 0x4,
32  DisenchantArmor = 0x8,
33  EffectWeapon = 0x10,
34  EffectArmor = 0x20,
35  SoulGem = 0x40,
36  };
37 
38  enum class Category
39  {
40  Disenchant = 0,
41  SoulGem = 1,
42  Item = 2,
43  Enchantment = 3,
44  };
45 
47  {
48  public:
51 
52  virtual ~CategoryListEntry(); // 00
53 
54  // add
55  virtual void ShowInItemCard(EnchantConstructMenu* a_menu); // 01
56  virtual void Unk_02(void); // 02
57  virtual const char* GetName(); // 03
58  virtual void SetData(GFxValue* dataContainer); // 04
59 
60  // members
62  bool selected; // 10
63  bool enabled; // 11
64  std::uint16_t pad12; // 12
65  std::uint32_t pad14; // 14
66  };
67  static_assert(sizeof(CategoryListEntry) == 0x18);
68 
70  {
71  public:
74 
75  // members
77  float magnitude; // 20
78  float maxMagnitude; // 24
79  };
80  static_assert(sizeof(EnchantmentEntry) == 0x28);
81 
83  {
84  public:
87 
88  // members
90  };
91  static_assert(sizeof(ItemChangeEntry) == 0x20);
92 
94  {
95  public:
98 
99  ~CreateEffectFunctor() override; // 00
100 
101  // override (MagicItemTraversalFunctor)
102  BSContainer::ForEachResult operator()(Effect* a_effect) override; // 01
103 
104  // members
111  float soulGemRatio; // 50
112  std::uint32_t pad5C; // 5C
113  };
114  static_assert(sizeof(CreateEffectFunctor) == 0x58);
115 
117  {
118  public:
121 
122  ~EnchantMenuCallback() override; // 00
123 
124  // members
126  };
127  static_assert(sizeof(EnchantMenuCallback) == 0x18);
128 
130  {
131  public:
134 
136 
137  // override (EnchantMenuCallback)
138  void Run(Message a_msg) override; // 01
139  };
140  static_assert(sizeof(EnchantMenuDisenchantCallback) == 0x18);
141 
143  {
144  public:
147 
148  ~EnchantMenuCraftCallback() override; // 00
149 
150  // override (EnchantMenuCallback)
151  void Run(Message a_msg) override; // 01
152  };
153  static_assert(sizeof(EnchantMenuCraftCallback) == 0x18);
154 
156  {
157  public:
160 
161  ~EnchantMenuExitCallback() override; // 00
162 
163  // override (EnchantMenuCallback)
164  void Run(Message a_msg) override; // 01
165  };
166  static_assert(sizeof(EnchantMenuExitCallback) == 0x18);
167 
168  struct Selections
169  {
170  public:
171  // members
175  std::uint32_t numEnchantmentsAllowed; // 28
176  std::uint32_t pad2C; // 2C
177  };
178  static_assert(sizeof(Selections) == 0x30);
179 
180  ~EnchantConstructMenu() override; // 00
181 
182  // override (CraftingSubMenu)
183  void Accept(CallbackProcessor* a_cbReg) override; // 01
184  [[nodiscard]] bool HasItemPreview() override; // 04 - { return currentCategory != Enchantment || craftItemPreview; }
185  bool ProcessUserEvent(BSFixedString* a_control) override; // 05
186  void SetItemCardInfo(ItemCard* a_itemCard) override; // 07
187 
188  void RenameItem(const char* a_name);
189  void RenameItem_Impl(InventoryEntryData* a_entryData, ExtraDataList* a_extraList, const char* a_name);
191 
192  // members
198  std::uint32_t pad114; // 114
206  std::int32_t sliderEnchantmentIndex; // 200
207  float sliderMaxMagnitude; // 204
208  std::uint32_t highlightIndex; // 208
211  float enchantmentCost; // 214
212  float chargeAmount; // 218
213  bool exiting; // 21C
214  bool sliderShown; // 21D
215  bool hasHighlightedEntry; // 21E
216  std::uint8_t pad21F; // 21F
217  };
218  static_assert(sizeof(EnchantConstructMenu) == 0x220);
219  }
220 }
Definition: BSTArray.h:377
Definition: BSTSmartPointer.h:36
Definition: CraftingSubMenu.h:20
bool enabled
Definition: EnchantConstructMenu.h:63
std::uint32_t pad14
Definition: EnchantConstructMenu.h:65
virtual void ShowInItemCard(EnchantConstructMenu *a_menu)
static constexpr auto RTTI
Definition: EnchantConstructMenu.h:49
bool selected
Definition: EnchantConstructMenu.h:62
static constexpr auto VTABLE
Definition: EnchantConstructMenu.h:50
stl::enumeration< FilterFlag, std::uint32_t > filterFlag
Definition: EnchantConstructMenu.h:61
std::uint16_t pad12
Definition: EnchantConstructMenu.h:64
EnchantmentItem * createdEnchantment
Definition: EnchantConstructMenu.h:108
Effect * costliestEffect
Definition: EnchantConstructMenu.h:106
BSContainer::ForEachResult operator()(Effect *a_effect) override
FormType formType
Definition: EnchantConstructMenu.h:109
EnchantmentEntry * enchantmentParams
Definition: EnchantConstructMenu.h:107
static constexpr auto RTTI
Definition: EnchantConstructMenu.h:96
TESForm * baseObject
Definition: EnchantConstructMenu.h:110
BSTArray< Effect > createdEffects
Definition: EnchantConstructMenu.h:105
static constexpr auto VTABLE
Definition: EnchantConstructMenu.h:97
float soulGemRatio
Definition: EnchantConstructMenu.h:111
std::uint32_t pad5C
Definition: EnchantConstructMenu.h:112
static constexpr auto VTABLE
Definition: EnchantConstructMenu.h:120
static constexpr auto RTTI
Definition: EnchantConstructMenu.h:119
EnchantConstructMenu * subMenu
Definition: EnchantConstructMenu.h:125
static constexpr auto VTABLE
Definition: EnchantConstructMenu.h:146
static constexpr auto RTTI
Definition: EnchantConstructMenu.h:145
static constexpr auto VTABLE
Definition: EnchantConstructMenu.h:133
static constexpr auto RTTI
Definition: EnchantConstructMenu.h:132
static constexpr auto VTABLE
Definition: EnchantConstructMenu.h:159
static constexpr auto RTTI
Definition: EnchantConstructMenu.h:158
static constexpr auto RTTI
Definition: EnchantConstructMenu.h:72
EnchantmentItem * data
Definition: EnchantConstructMenu.h:76
static constexpr auto VTABLE
Definition: EnchantConstructMenu.h:73
float maxMagnitude
Definition: EnchantConstructMenu.h:78
float magnitude
Definition: EnchantConstructMenu.h:77
static constexpr auto VTABLE
Definition: EnchantConstructMenu.h:86
InventoryEntryData * data
Definition: EnchantConstructMenu.h:89
static constexpr auto RTTI
Definition: EnchantConstructMenu.h:85
Definition: EnchantConstructMenu.h:22
BSTArray< BSTSmartPointer< CategoryListEntry > > listEntries
Definition: EnchantConstructMenu.h:199
std::int32_t sliderEnchantmentIndex
Definition: EnchantConstructMenu.h:206
Selections selected
Definition: EnchantConstructMenu.h:203
bool ProcessUserEvent(BSFixedString *a_control) override
GFxValue categories
Definition: EnchantConstructMenu.h:201
stl::enumeration< Category, std::uint32_t > currentCategory
Definition: EnchantConstructMenu.h:209
bool exiting
Definition: EnchantConstructMenu.h:213
std::uint8_t pad21F
Definition: EnchantConstructMenu.h:216
float sliderMaxMagnitude
Definition: EnchantConstructMenu.h:207
void Accept(CallbackProcessor *a_cbReg) override
stl::enumeration< FilterFlag, std::uint32_t > enabledFilters
Definition: EnchantConstructMenu.h:210
std::uint32_t highlightIndex
Definition: EnchantConstructMenu.h:208
static constexpr auto RTTI
Definition: EnchantConstructMenu.h:24
float enchantmentCost
Definition: EnchantConstructMenu.h:211
stl::enumeration< FilterFlag, std::uint32_t > filterDisenchant
Definition: EnchantConstructMenu.h:193
float chargeAmount
Definition: EnchantConstructMenu.h:212
stl::enumeration< FilterFlag, std::uint32_t > filterDivider
Definition: EnchantConstructMenu.h:194
FilterFlag
Definition: EnchantConstructMenu.h:28
bool hasHighlightedEntry
Definition: EnchantConstructMenu.h:215
GFxValue inventoryLists
Definition: EnchantConstructMenu.h:202
stl::enumeration< FilterFlag, std::uint32_t > filterItem
Definition: EnchantConstructMenu.h:195
stl::enumeration< FilterFlag, std::uint32_t > filterSoulGem
Definition: EnchantConstructMenu.h:197
std::uint32_t pad114
Definition: EnchantConstructMenu.h:198
void SetItemCardInfo(ItemCard *a_itemCard) override
void RenameItem_Impl(InventoryEntryData *a_entryData, ExtraDataList *a_extraList, const char *a_name)
bool sliderShown
Definition: EnchantConstructMenu.h:214
stl::enumeration< FilterFlag, std::uint32_t > filterEnchantment
Definition: EnchantConstructMenu.h:196
BSString customName
Definition: EnchantConstructMenu.h:200
InventoryEntryData * craftItemPreview
Definition: EnchantConstructMenu.h:204
Category
Definition: EnchantConstructMenu.h:39
static constexpr auto VTABLE
Definition: EnchantConstructMenu.h:25
CreateEffectFunctor createEffectFunctor
Definition: EnchantConstructMenu.h:205
Definition: EnchantmentItem.h:10
Definition: ExtraDataList.h:53
Definition: FxDelegateHandler.h:19
Definition: GFxValue.h:92
Definition: IMessageBoxCallback.h:8
Message
Definition: IMessageBoxCallback.h:13
Definition: InventoryEntryData.h:15
Definition: MagicItemTraversalFunctor.h:10
Definition: TESForm.h:36
ForEachResult
Definition: BSContainer.h:6
Definition: AbsorbEffect.h:6
constexpr REL::VariantID RTTI_CraftingSubMenus__EnchantConstructMenu__EnchantMenuExitCallback(688815, 396667, 0x1f462f0)
constexpr REL::VariantID RTTI_CraftingSubMenus__EnchantConstructMenu__ItemChangeEntry(688819, 396671, 0x1f46460)
constexpr std::array< REL::VariantID, 1 > VTABLE_CraftingSubMenus__EnchantConstructMenu__EnchantmentEntry
Definition: Offsets_VTABLE.h:4023
constexpr REL::VariantID RTTI_CraftingSubMenus__EnchantConstructMenu__EnchantmentEntry(688820, 396672, 0x1f464b0)
FormType
Definition: FormTypes.h:139
constexpr std::array< REL::VariantID, 1 > VTABLE_CraftingSubMenus__EnchantConstructMenu__EnchantMenuExitCallback
Definition: Offsets_VTABLE.h:4018
constexpr std::array< REL::VariantID, 1 > VTABLE_CraftingSubMenus__EnchantConstructMenu__CreateEffectFunctor
Definition: Offsets_VTABLE.h:4024
constexpr REL::VariantID RTTI_CraftingSubMenus__EnchantConstructMenu__CategoryListEntry(688818, 396670, 0x1f46410)
constexpr std::array< REL::VariantID, 1 > VTABLE_CraftingSubMenus__EnchantConstructMenu__EnchantMenuCraftCallback
Definition: Offsets_VTABLE.h:4019
constexpr REL::VariantID RTTI_CraftingSubMenus__EnchantConstructMenu(688813, 396665, 0x1f46260)
constexpr std::array< REL::VariantID, 2 > VTABLE_CraftingSubMenus__EnchantConstructMenu
Definition: Offsets_VTABLE.h:4025
constexpr std::array< REL::VariantID, 1 > VTABLE_CraftingSubMenus__EnchantConstructMenu__EnchantMenuDisenchantCallback
Definition: Offsets_VTABLE.h:4020
constexpr std::array< REL::VariantID, 1 > VTABLE_CraftingSubMenus__EnchantConstructMenu__CategoryListEntry
Definition: Offsets_VTABLE.h:4021
constexpr std::array< REL::VariantID, 1 > VTABLE_CraftingSubMenus__EnchantConstructMenu__ItemChangeEntry
Definition: Offsets_VTABLE.h:4022
constexpr REL::VariantID RTTI_CraftingSubMenus__EnchantConstructMenu__EnchantMenuDisenchantCallback(688817, 396669, 0x1f463b0)
constexpr REL::VariantID RTTI_CraftingSubMenus__EnchantConstructMenu__EnchantMenuCallback(688814, 396666, 0x1f462a0)
constexpr std::array< REL::VariantID, 1 > VTABLE_CraftingSubMenus__EnchantConstructMenu__EnchantMenuCallback
Definition: Offsets_VTABLE.h:4017
constexpr REL::VariantID RTTI_CraftingSubMenus__EnchantConstructMenu__EnchantMenuCraftCallback(688816, 396668, 0x1f46350)
constexpr REL::VariantID RTTI_CraftingSubMenus__EnchantConstructMenu__CreateEffectFunctor(688821, 396673, 0x1f46500)
Definition: BSIntrusiveRefCounted.h:8
Definition: EnchantConstructMenu.h:169
BSTSmartPointer< ItemChangeEntry > item
Definition: EnchantConstructMenu.h:172
std::uint32_t numEnchantmentsAllowed
Definition: EnchantConstructMenu.h:175
BSTSmartPointer< ItemChangeEntry > soulGem
Definition: EnchantConstructMenu.h:173
BSTArray< BSTSmartPointer< EnchantmentEntry > > effects
Definition: EnchantConstructMenu.h:174
std::uint32_t pad2C
Definition: EnchantConstructMenu.h:176
Definition: Effect.h:11
Definition: ItemCard.h:12