CommonLibSSE (Parapets fork)
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 
26  enum class FilterFlag
27  {
28  EnchantWeapon = 0x1,
29  DisenchantWeapon = 0x2,
30  EnchantArmor = 0x4,
31  DisenchantArmor = 0x8,
32  EffectWeapon = 0x10,
33  EffectArmor = 0x20,
34  SoulGem = 0x40,
35  };
36 
37  enum class Category
38  {
39  Disenchant = 0,
40  SoulGem = 1,
41  Item = 2,
42  Enchantment = 3,
43  };
44 
46  {
47  public:
49 
50  virtual ~CategoryListEntry(); // 00
51 
52  // add
53  virtual void ShowInItemCard(EnchantConstructMenu* a_menu); // 01
54  virtual void ShowItem3D(bool a_show); // 02
55  virtual const char* GetName(); // 03
56  virtual void SetData(GFxValue* dataContainer); // 04
57 
58  // members
60  bool selected; // 10
61  bool enabled; // 11
62  std::uint16_t pad12; // 12
63  std::uint32_t pad14; // 14
64  };
65  static_assert(sizeof(CategoryListEntry) == 0x18);
66 
68  {
69  public:
71 
72  // members
74  float magnitude; // 20
75  float maxMagnitude; // 24
76  };
77  static_assert(sizeof(EnchantmentEntry) == 0x28);
78 
80  {
81  public:
83 
84  // members
86  };
87  static_assert(sizeof(ItemChangeEntry) == 0x20);
88 
90  {
91  public:
93 
94  virtual ~CreateEffectFunctor(); // 00
95 
96  // override (MagicItemTraversalFunctor)
97  Result operator()(Effect* a_effect) override; // 01
98 
99  // members
106  float soulGemRatio; // 50
107  std::uint32_t pad5C; // 5C
108  };
109  static_assert(sizeof(CreateEffectFunctor) == 0x58);
110 
112  {
113  public:
115 
116  virtual ~EnchantMenuCallback(); // 00
117 
118  // members
120  };
121  static_assert(sizeof(EnchantMenuCallback) == 0x18);
122 
124  {
125  public:
127 
129 
130  // override (EnchantMenuCallback)
131  virtual void Run(Message a_msg) override; // 01
132  };
133  static_assert(sizeof(EnchantMenuDisenchantCallback) == 0x18);
134 
136  {
137  public:
139 
140  virtual ~EnchantMenuCraftCallback(); // 00
141 
142  // override (EnchantMenuCallback)
143  virtual void Run(Message a_msg) override; // 01
144  };
145  static_assert(sizeof(EnchantMenuCraftCallback) == 0x18);
146 
148  {
149  public:
151 
152  virtual ~EnchantMenuExitCallback(); // 00
153 
154  // override (EnchantMenuCallback)
155  virtual void Run(Message a_msg) override; // 01
156  };
157  static_assert(sizeof(EnchantMenuExitCallback) == 0x18);
158 
159  struct Selections
160  {
161  public:
165  std::uint32_t numEnchantmentsAllowed; // 28
166  std::uint32_t pad2C; // 2C
167  };
168  static_assert(sizeof(Selections) == 0x30);
169 
170  virtual ~EnchantConstructMenu(); // 00
171 
172  // override (CraftingSubMenu)
173  void Accept(CallbackProcessor* a_cbReg) override; // 01
174  bool HasItemPreview() override; // 04 - { return currentCategory != Enchantment || craftItemPreview; }
175  bool ProcessUserEvent(BSFixedString* a_control) override; // 05
176  void SetItemCardInfo(ItemCard* a_itemCard) override; // 07
177 
178  void RenameItem(const char* a_name);
179  void RenameItem_Impl(InventoryEntryData* a_entryData, ExtraDataList* a_extraList, const char* a_name);
181 
182  // members
184  std::uint32_t pad114; // 114
192  std::int32_t sliderEnchantmentIndex; // 200
193  float sliderMaxMagnitude; // 204
194  std::uint32_t highlightIndex; // 208
197  float enchantmentCost; // 214
198  float chargeAmount; // 218
199  bool exiting; // 21C
200  bool sliderShown; // 21D
201  bool hasHighlightedEntry; // 21E
202  std::uint8_t pad21F; // 21F
203  };
204  static_assert(sizeof(EnchantConstructMenu) == 0x220);
205  }
206 }
Definition: BSTArray.h:377
Definition: BSTSmartPointer.h:37
Definition: CraftingSubMenu.h:22
bool enabled
Definition: EnchantConstructMenu.h:61
std::uint32_t pad14
Definition: EnchantConstructMenu.h:63
virtual void ShowInItemCard(EnchantConstructMenu *a_menu)
static constexpr auto RTTI
Definition: EnchantConstructMenu.h:48
bool selected
Definition: EnchantConstructMenu.h:60
stl::enumeration< FilterFlag, std::uint32_t > filterFlag
Definition: EnchantConstructMenu.h:59
std::uint16_t pad12
Definition: EnchantConstructMenu.h:62
EnchantmentItem * createdEnchantment
Definition: EnchantConstructMenu.h:103
Effect * costliestEffect
Definition: EnchantConstructMenu.h:101
FormType formType
Definition: EnchantConstructMenu.h:104
EnchantmentEntry * enchantmentParams
Definition: EnchantConstructMenu.h:102
static constexpr auto RTTI
Definition: EnchantConstructMenu.h:92
TESForm * baseObject
Definition: EnchantConstructMenu.h:105
BSTArray< Effect > createdEffects
Definition: EnchantConstructMenu.h:100
float soulGemRatio
Definition: EnchantConstructMenu.h:106
std::uint32_t pad5C
Definition: EnchantConstructMenu.h:107
static constexpr auto RTTI
Definition: EnchantConstructMenu.h:114
EnchantConstructMenu * subMenu
Definition: EnchantConstructMenu.h:119
static constexpr auto RTTI
Definition: EnchantConstructMenu.h:138
static constexpr auto RTTI
Definition: EnchantConstructMenu.h:126
static constexpr auto RTTI
Definition: EnchantConstructMenu.h:150
static constexpr auto RTTI
Definition: EnchantConstructMenu.h:70
EnchantmentItem * data
Definition: EnchantConstructMenu.h:73
float maxMagnitude
Definition: EnchantConstructMenu.h:75
float magnitude
Definition: EnchantConstructMenu.h:74
InventoryEntryData * data
Definition: EnchantConstructMenu.h:85
static constexpr auto RTTI
Definition: EnchantConstructMenu.h:82
Definition: EnchantConstructMenu.h:22
BSTArray< BSTSmartPointer< CategoryListEntry > > listEntries
Definition: EnchantConstructMenu.h:185
std::int32_t sliderEnchantmentIndex
Definition: EnchantConstructMenu.h:192
Selections selected
Definition: EnchantConstructMenu.h:189
bool ProcessUserEvent(BSFixedString *a_control) override
GFxValue categories
Definition: EnchantConstructMenu.h:188
stl::enumeration< Category, std::uint32_t > currentCategory
Definition: EnchantConstructMenu.h:195
bool exiting
Definition: EnchantConstructMenu.h:199
std::uint8_t pad21F
Definition: EnchantConstructMenu.h:202
float sliderMaxMagnitude
Definition: EnchantConstructMenu.h:193
void Accept(CallbackProcessor *a_cbReg) override
stl::enumeration< FilterFlag, std::uint32_t > enabledFilters
Definition: EnchantConstructMenu.h:196
std::uint32_t highlightIndex
Definition: EnchantConstructMenu.h:194
static constexpr auto RTTI
Definition: EnchantConstructMenu.h:24
float enchantmentCost
Definition: EnchantConstructMenu.h:197
stl::enumeration< FilterFlag, std::uint32_t > filters[5]
Definition: EnchantConstructMenu.h:183
float chargeAmount
Definition: EnchantConstructMenu.h:198
FilterFlag
Definition: EnchantConstructMenu.h:27
bool hasHighlightedEntry
Definition: EnchantConstructMenu.h:201
GFxValue inventoryLists
Definition: EnchantConstructMenu.h:187
std::uint32_t pad114
Definition: EnchantConstructMenu.h:184
void SetItemCardInfo(ItemCard *a_itemCard) override
void RenameItem_Impl(InventoryEntryData *a_entryData, ExtraDataList *a_extraList, const char *a_name)
bool sliderShown
Definition: EnchantConstructMenu.h:200
BSString customName
Definition: EnchantConstructMenu.h:186
InventoryEntryData * craftItemPreview
Definition: EnchantConstructMenu.h:190
Category
Definition: EnchantConstructMenu.h:38
CreateEffectFunctor createEffectFunctor
Definition: EnchantConstructMenu.h:191
Definition: EnchantmentItem.h:10
Definition: ExtraDataList.h:50
Definition: FxDelegateHandler.h:19
Definition: GFxValue.h:92
Definition: IMessageBoxCallback.h:8
Message
Definition: IMessageBoxCallback.h:13
Definition: InventoryEntryData.h:14
Definition: MagicItemTraversalFunctor.h:8
Result
Definition: MagicItemTraversalFunctor.h:13
Definition: TESForm.h:34
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_CraftingSubMenus__EnchantConstructMenu__EnchantMenuDisenchantCallback
Definition: Offsets_RTTI.h:4555
constexpr REL::ID RTTI_CraftingSubMenus__EnchantConstructMenu__EnchantMenuExitCallback
Definition: Offsets_RTTI.h:4556
constexpr REL::ID RTTI_CraftingSubMenus__EnchantConstructMenu__EnchantmentEntry
Definition: Offsets_RTTI.h:4557
constexpr REL::ID RTTI_CraftingSubMenus__EnchantConstructMenu
Definition: Offsets_RTTI.h:4550
constexpr REL::ID RTTI_CraftingSubMenus__EnchantConstructMenu__ItemChangeEntry
Definition: Offsets_RTTI.h:4558
FormType
Definition: FormTypes.h:139
constexpr REL::ID RTTI_CraftingSubMenus__EnchantConstructMenu__CreateEffectFunctor
Definition: Offsets_RTTI.h:4552
constexpr REL::ID RTTI_CraftingSubMenus__EnchantConstructMenu__CategoryListEntry
Definition: Offsets_RTTI.h:4551
constexpr REL::ID RTTI_CraftingSubMenus__EnchantConstructMenu__EnchantMenuCallback
Definition: Offsets_RTTI.h:4553
constexpr REL::ID RTTI_CraftingSubMenus__EnchantConstructMenu__EnchantMenuCraftCallback
Definition: Offsets_RTTI.h:4554
Definition: BSIntrusiveRefCounted.h:8
Definition: EnchantConstructMenu.h:160
BSTSmartPointer< ItemChangeEntry > item
Definition: EnchantConstructMenu.h:162
std::uint32_t numEnchantmentsAllowed
Definition: EnchantConstructMenu.h:165
BSTSmartPointer< ItemChangeEntry > soulGem
Definition: EnchantConstructMenu.h:163
BSTArray< BSTSmartPointer< EnchantmentEntry > > effects
Definition: EnchantConstructMenu.h:164
std::uint32_t pad2C
Definition: EnchantConstructMenu.h:166
Definition: Effect.h:11
Definition: ItemCard.h:14